[jboss-svn-commits] JBL Code SVN: r27433 - in labs/jbosstm/trunk: ArjunaCore and 109 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jul 2 07:29:19 EDT 2009
Author: jhalliday
Date: 2009-07-02 07:29:12 -0400 (Thu, 02 Jul 2009)
New Revision: 27433
Added:
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java
labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml
labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml
labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml
labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/test-product.xml
labs/jbosstm/trunk/ext/junit-4.6.jar
Removed:
labs/jbosstm/trunk/ArjunaCore/arjuna/etc/RecoveryManager.properties_default
labs/jbosstm/trunk/ArjunaCore/arjuna/etc/arjuna.properties_default
labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-CommonLogging-properties.xml
labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-RecoveryManager-properties.xml
labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-arjuna-properties.xml
labs/jbosstm/trunk/ArjunaCore/product.properties
labs/jbosstm/trunk/ArjunaCore/txoj/etc/default-txoj-properties.xml
labs/jbosstm/trunk/ArjunaCore/txoj/etc/txoj.properties_default
labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/default-jdbc-properties.xml
labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/jdbc.properties_default
labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-RecoveryManager-properties.xml
labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-jta-properties.xmltmpl
labs/jbosstm/trunk/ArjunaJTA/jta/etc/jta.properties_default
labs/jbosstm/trunk/ArjunaJTA/product.properties
labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-RecoveryManager-properties.xml
labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-jts-properties.xml
labs/jbosstm/trunk/ArjunaJTS/jts/etc/jts.properties_default
labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/default-orbportability-properties.xml
labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/orbportability.properties_default
labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ConvertPropertyCase.java
labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/MergePropertyFiles.java
labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ModuleToProduct.java
labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/VersToProp.java
labs/jbosstm/trunk/antbuildsystem/lib/ext/xercesImpl.jar
labs/jbosstm/trunk/antbuildsystem/lib/ext/xmlParserAPIs.jar
Modified:
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/PersistenceRecord.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/logging/tsLogger.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreImple.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryManager.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusManager.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/nameservice/JNS.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/ActionStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/CacheStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedActionStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/Listener.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecoveryManagerImple.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/FileProcessId.java
labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java
labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java
labs/jbosstm/trunk/ArjunaCore/build.xml
labs/jbosstm/trunk/ArjunaCore/docs/user_guide/AdministrationGuide.odt
labs/jbosstm/trunk/ArjunaCore/docs/user_guide/AdministrationGuide.pdf
labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/perfgraph/PerformanceGraph.java
labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/internal/tsmx/mbeans/PropertyServiceJMXPlugin.java
labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/logging/tsmxLogger.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java
labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/logging/txojLogger.java
labs/jbosstm/trunk/ArjunaJTA/build.xml
labs/jbosstm/trunk/ArjunaJTA/docs/install_guide/InstallGuide.odt
labs/jbosstm/trunk/ArjunaJTA/docs/install_guide/InstallGuide.pdf
labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/AdministrationGuide.odt
labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/AdministrationGuide.pdf
labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/ProgrammersGuide.odt
labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/ProgrammersGuide.pdf
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/IndirectRecoverableConnection.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/BasicXARecovery.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/JDBCXARecovery.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/OracleXARecovery.java
labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java
labs/jbosstm/trunk/ArjunaJTS/build.xml
labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/AdministrationGuide.odt
labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/AdministrationGuide.pdf
labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/ProgrammersGuide.odt
labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/ProgrammersGuide.pdf
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java
labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/context/ContextPropagationManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/coordinator/ArjunaTransactionImple.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/interposition/coordinator/ServerTransaction.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/RecoveryInit.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/TransactionServer.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMClient.java
labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMTest.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/build.xml
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/ORB.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/Services.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/Configuration.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/event/EventManager.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/common/LocalSetup.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/jacorb/orb/implementations/jacorb_2_0.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/javaidl/orb/implementations/javaidl_1_4.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/utils/InitLoader.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/logging/opLogger.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/oa/core/OA.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/orb/core/ORB.java
labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/recovery/RebindFactory.java
labs/jbosstm/trunk/ArjunaJTS/trailmap/src/com/arjuna/demo/jta/jdbcbank/BankClient.java
labs/jbosstm/trunk/XTS/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java
labs/jbosstm/trunk/XTS/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java
labs/jbosstm/trunk/XTS/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java
labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java
labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java
labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java
labs/jbosstm/trunk/antbuildsystem/build.xml
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerService.java
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java
labs/jbosstm/trunk/common/build.xml
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/DefaultLog.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/LogImpl.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/PropertyManagerImpl.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/plugins/io/XMLFilePlugin.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/util/FileLocator.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/util/logging/LogFactory.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/PropertyManagerFactory.java
labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/propertycontainer/PropertyManagerPluginInterface.java
labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/iotest/IOTest.java
labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/PropertiesTest.java
labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SetPropertyTest.java
labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SimpleTest.java
labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SystemPropertyTest.java
labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/debugextension/DebugExt.java
labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_en_US.properties
labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_fr_FR.properties
labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logi18n.java
labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/testlevels/TestLevels.java
labs/jbosstm/trunk/ext/third_party_licenses.txt
labs/jbosstm/trunk/qa/config/jbossts-jta-properties.xml
labs/jbosstm/trunk/qa/config/jbossts-jts-properties.xml
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Common/PropertyManagerTest.java
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Utils/EmptyObjectStore.java
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/CrashRecovery11Utils/Delays.java
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/AssertCleanEnvironment.java
labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/EmptyObjectStore.java
labs/jbosstm/trunk/sharedbuild.xml
Log:
Refactoring of property management to flatten the properties file and simplify the way it is assembled. JBTM-438
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/PersistenceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/PersistenceRecord.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/PersistenceRecord.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -628,7 +628,7 @@
static
{
- String cp = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CLASSIC_PREPARE);
+ String cp = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CLASSIC_PREPARE);
if (cp != null)
{
@@ -636,7 +636,7 @@
classicPrepare = true;
}
- String wo = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_LOG_WRITE_OPTIMISATION);
+ String wo = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_LOG_WRITE_OPTIMISATION);
if (wo != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/arjPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,7 +33,6 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
/**
* Property manager wrapper for the Arjuna module.
@@ -42,32 +41,9 @@
*/
public class arjPropertyManager
{
- public static PropertyManager propertyManager;
-
public static PropertyManager getPropertyManager()
{
- return propertyManager;
+ // this is not actually a separate module, it shares the arjuna config.
+ return PropertyManagerFactory.getPropertyManagerForModule("arjuna", Environment.PROPERTIES_FILE);
}
-
- static
- {
- /**
- * Retrieve the property manager from the factory and add the Arjuna properties file to it.
- */
- propertyManager = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "arjuna");
-
- String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE);
-
- if (propertiesFilename == null)
- propertiesFilename = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Added: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/common/recoveryPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2009,
+ * @author JBoss, a division of Red Hat.
+ */
+package com.arjuna.ats.arjuna.common;
+
+import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+
+/**
+ * Property manager wrapper for the recovery system.
+ *
+ */
+public class recoveryPropertyManager
+{
+ public static PropertyManager getPropertyManager()
+ {
+ return PropertyManagerFactory.getPropertyManagerForModule("arjuna", Environment.PROPERTIES_FILE);
+ }
+}
\ No newline at end of file
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1068,7 +1068,7 @@
// default to dynamic mode
TransactionReaper._dynamic = true;
- String mode = arjPropertyManager.propertyManager
+ String mode = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TX_REAPER_MODE);
if (mode != null)
@@ -1089,7 +1089,7 @@
if (!TransactionReaper._dynamic)
{
- String timeoutEnv = arjPropertyManager.propertyManager
+ String timeoutEnv = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TX_REAPER_TIMEOUT);
if (timeoutEnv != null)
@@ -1121,7 +1121,7 @@
TransactionReaper._theReaper = new TransactionReaper(checkPeriod);
- String cancelWait = arjPropertyManager.propertyManager
+ String cancelWait = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TX_REAPER_CANCEL_WAIT_PERIOD);
if (cancelWait != null)
{
@@ -1146,7 +1146,7 @@
TransactionReaper._theReaper._cancelWaitPeriod = defaultCancelWaitPeriod;
}
- String cancelFailWait = arjPropertyManager.propertyManager
+ String cancelFailWait = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TX_REAPER_CANCEL_FAIL_WAIT_PERIOD);
if (cancelFailWait != null)
{
@@ -1171,7 +1171,7 @@
TransactionReaper._theReaper._cancelFailWaitPeriod = defaultCancelFailWaitPeriod;
}
- String zombieMax = arjPropertyManager.propertyManager
+ String zombieMax = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TX_REAPER_ZOMBIE_MAX);
if (zombieMax != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TxControl.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -171,7 +171,7 @@
{
if (TxControl.actionStoreType == null)
{
- String useLog = arjPropertyManager.propertyManager.getProperty(
+ String useLog = arjPropertyManager.getPropertyManager().getProperty(
Environment.TRANSACTION_LOG, "OFF");
if (useLog.equals("ON"))
@@ -179,14 +179,14 @@
.Implementation_ObjectStore_ActionLogStore());
else
TxControl.actionStoreType = new ClassName(
- arjPropertyManager.propertyManager
+ arjPropertyManager.getPropertyManager()
.getProperty(
Environment.ACTION_STORE,
ArjunaNames
.Implementation_ObjectStore_defaultActionStore()
.stringForm()));
- String sharedLog = arjPropertyManager.propertyManager.getProperty(
+ String sharedLog = arjPropertyManager.getPropertyManager().getProperty(
Environment.SHARED_TRANSACTION_LOG, "NO");
if (sharedLog.equals("YES"))
@@ -223,7 +223,7 @@
if (TxControl.actionStoreType == null)
{
- String useLog = arjPropertyManager.propertyManager.getProperty(
+ String useLog = arjPropertyManager.getPropertyManager().getProperty(
Environment.TRANSACTION_LOG, "OFF");
if (useLog.equals("ON"))
@@ -231,14 +231,14 @@
.Implementation_ObjectStore_ActionLogStore());
else
TxControl.actionStoreType = new ClassName(
- arjPropertyManager.propertyManager
+ arjPropertyManager.getPropertyManager()
.getProperty(
Environment.ACTION_STORE,
ArjunaNames
.Implementation_ObjectStore_defaultActionStore()
.stringForm()));
- String sharedLog = arjPropertyManager.propertyManager.getProperty(
+ String sharedLog = arjPropertyManager.getPropertyManager().getProperty(
Environment.SHARED_TRANSACTION_LOG, "NO");
if (sharedLog.equals("YES"))
@@ -361,7 +361,7 @@
static
{
- String env = arjPropertyManager.propertyManager
+ String env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.DEFAULT_TIMEOUT);
if (env != null)
@@ -378,7 +378,7 @@
}
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.MAINTAIN_HEURISTICS);
if (env != null)
@@ -387,7 +387,7 @@
TxControl.maintainHeuristics = false;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.ASYNC_COMMIT);
if (env != null)
@@ -396,7 +396,7 @@
TxControl.asyncCommit = true;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.ASYNC_PREPARE);
if (env != null)
@@ -405,7 +405,7 @@
TxControl.asyncPrepare = true;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.COMMIT_ONE_PHASE);
if (env != null)
@@ -414,7 +414,7 @@
TxControl.onePhase = false;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.ASYNC_ROLLBACK);
if (env != null)
@@ -423,7 +423,7 @@
TxControl.asyncRollback = true;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.READONLY_OPTIMISATION);
if (env != null)
@@ -432,7 +432,7 @@
TxControl.readonlyOptimisation = false;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.ENABLE_STATISTICS);
if (env != null)
@@ -441,7 +441,7 @@
TxControl.enableStatistics = true;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.START_DISABLED);
if (env != null)
@@ -450,7 +450,7 @@
TxControl.enable = false;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.BEFORECOMPLETION_WHEN_ROLLBACKONLY);
if(env != null)
@@ -459,7 +459,7 @@
TxControl.beforeCompletionWhenRollbackOnly = true;
}
- env = arjPropertyManager.propertyManager
+ env = arjPropertyManager.getPropertyManager()
.getProperty(Environment.XA_NODE_IDENTIFIER);
boolean writeNodeName = false;
@@ -520,11 +520,11 @@
if (writeNodeName)
{
- arjPropertyManager.propertyManager.setProperty(
+ arjPropertyManager.getPropertyManager().setProperty(
Environment.XA_NODE_IDENTIFIER, new String(xaNodeName));
}
- String enableTSM = arjPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_STATUS_MANAGER_ENABLE);
+ String enableTSM = arjPropertyManager.getPropertyManager().getProperty(Environment.TRANSACTION_STATUS_MANAGER_ENABLE);
// run the TSM by default, unless it's turned off explicitly.
if ("NO".equalsIgnoreCase(enableTSM))
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/logging/tsLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/logging/tsLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/logging/tsLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -57,8 +57,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.ats.arjuna.logging.arjLogger");
- language = commonPropertyManager.propertyManager.getProperty("language", "en");
- country = commonPropertyManager.propertyManager.getProperty("country", "US");
+ language = commonPropertyManager.getPropertyManager().getProperty("language", "en");
+ country = commonPropertyManager.getPropertyManager().getProperty("country", "US");
currentLocale = new Locale(language, country);
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -412,7 +412,7 @@
*/
if (objectStoreType == null)
- objectStoreType = new ClassName(arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_defaultStore().stringForm()));
+ objectStoreType = new ClassName(arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_TYPE, ArjunaNames.Implementation_ObjectStore_defaultStore().stringForm()));
return objectStoreType;
}
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/objectstore/ObjectStoreImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -240,11 +240,11 @@
public String locateStore (String localOSRoot) throws ObjectStoreException
{
if (_objectStoreRoot == null)
- _objectStoreRoot = arjPropertyManager.propertyManager.getProperty(Environment.LOCALOSROOT);
+ _objectStoreRoot = arjPropertyManager.getPropertyManager().getProperty(Environment.LOCALOSROOT);
if (_objectStoreDir == null)
{
- _objectStoreDir = arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_DIR);
+ _objectStoreDir = arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_DIR);
if (_objectStoreDir == null || _objectStoreDir.length() == 0)
_objectStoreDir = com.arjuna.ats.arjuna.common.Configuration.objectStoreRoot();
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/RecoveryManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -41,6 +41,7 @@
import com.arjuna.ats.arjuna.utils.Utility;
import com.arjuna.ats.arjuna.logging.tsLogger;
import com.arjuna.ats.arjuna.exceptions.FatalError;
+import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
@@ -397,7 +398,7 @@
public static InetAddress getRecoveryManagerHost() throws UnknownHostException
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
if ( pm == null )
return InetAddress.getLocalHost();
@@ -410,7 +411,7 @@
public static int getRecoveryManagerPort()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
if (pm == null)
return 0;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/recovery/TransactionStatusManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -39,6 +39,7 @@
import com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem ;
import com.arjuna.ats.arjuna.logging.tsLogger;
+import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
@@ -212,8 +213,7 @@
if (_port > 0)
return _port;
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
- //pm = arjPropertyManager.propertyManager;
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
String portStr = pm.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_PORT);
@@ -237,8 +237,7 @@
private String getListenerHostName()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
- //pm = arjPropertyManager.propertyManager;
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
return pm.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_ADDRESS);
}
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/OTM.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -215,7 +215,7 @@
try
{
- ClassName actionStoreType = new ClassName(arjPropertyManager.propertyManager.getProperty(Environment.ACTION_STORE,
+ ClassName actionStoreType = new ClassName(arjPropertyManager.getPropertyManager().getProperty(Environment.ACTION_STORE,
ArjunaNames.Implementation_ObjectStore_defaultActionStore().stringForm()));
ObjectStore imple = new ObjectStore(actionStoreType, root);
@@ -443,7 +443,7 @@
try
{
- ClassName actionStoreType = new ClassName(arjPropertyManager.propertyManager.getProperty(Environment.ACTION_STORE,
+ ClassName actionStoreType = new ClassName(arjPropertyManager.getPropertyManager().getProperty(Environment.ACTION_STORE,
ArjunaNames.Implementation_ObjectStore_defaultActionStore().stringForm()));
ObjectStore imple = new ObjectStore(actionStoreType, root);
@@ -790,7 +790,7 @@
public static void main (String[] args)
{
Uid u = new Uid();
- String timeout = arjPropertyManager.propertyManager.getProperty(pollingTimeout);
+ String timeout = arjPropertyManager.getPropertyManager().getProperty(pollingTimeout);
if (timeout != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/utils/Utility.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -314,7 +314,7 @@
public static final boolean isWindows ()
{
- String os = arjPropertyManager.propertyManager.getProperty("os.name");
+ String os = arjPropertyManager.getPropertyManager().getProperty("os.name");
if (("WIN32".equals(os)) || (os.indexOf("Windows") != -1))
return true;
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/inventory/StaticInventory.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -269,7 +269,7 @@
{
Implementations.initialise();
- Enumeration e = arjPropertyManager.propertyManager.propertyNames();
+ Enumeration e = arjPropertyManager.getPropertyManager().propertyNames();
if (e != null)
{
@@ -279,7 +279,7 @@
if (name.startsWith(com.arjuna.ats.arjuna.common.Environment.STATIC_INVENTORY_IMPLE))
{
- String className = arjPropertyManager.propertyManager.getProperty(name);
+ String className = arjPropertyManager.getPropertyManager().getProperty(name);
try
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/nameservice/JNS.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/nameservice/JNS.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/gandiva/nameservice/JNS.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -67,7 +67,7 @@
public int attributeType (String objName, String attrName) throws IOException
{
- String attr = arjPropertyManager.propertyManager.getProperty(objName+"."+attrName, null);
+ String attr = arjPropertyManager.getPropertyManager().getProperty(objName+"."+attrName, null);
if (attr == null)
throw new IOException("No such attribute.");
@@ -92,7 +92,7 @@
public String firstAttributeName (String objName) throws IOException
{
- Enumeration e = arjPropertyManager.propertyManager.propertyNames();
+ Enumeration e = arjPropertyManager.getPropertyManager().propertyNames();
if (e.hasMoreElements())
return (String) e.nextElement();
@@ -102,7 +102,7 @@
public String nextAttributeName (String objName, String attrName) throws IOException
{
- Enumeration e = arjPropertyManager.propertyManager.propertyNames();
+ Enumeration e = arjPropertyManager.getPropertyManager().propertyNames();
while (e.hasMoreElements())
{
@@ -120,7 +120,7 @@
public long getLongAttribute (String objName, String attrName) throws IOException
{
- String attr = arjPropertyManager.propertyManager.getProperty(objName+"."+attrName, null);
+ String attr = arjPropertyManager.getPropertyManager().getProperty(objName+"."+attrName, null);
if (attr != null)
{
@@ -148,7 +148,7 @@
public String getStringAttribute (String objName, String attrName) throws IOException
{
- String attr = arjPropertyManager.propertyManager.getProperty(objName+"."+attrName, null);
+ String attr = arjPropertyManager.getPropertyManager().getProperty(objName+"."+attrName, null);
if (attr != null)
{
@@ -172,7 +172,7 @@
public ObjectName getObjectNameAttribute (String objName, String attrName) throws IOException
{
- String attr = arjPropertyManager.propertyManager.getProperty(objName+"."+attrName, null);
+ String attr = arjPropertyManager.getPropertyManager().getProperty(objName+"."+attrName, null);
if (attr != null)
{
@@ -196,7 +196,7 @@
public ClassName getClassNameAttribute (String objName, String attrName) throws IOException
{
- String attr = arjPropertyManager.propertyManager.getProperty(objName+"."+attrName, null);
+ String attr = arjPropertyManager.getPropertyManager().getProperty(objName+"."+attrName, null);
if (attr != null)
{
@@ -220,7 +220,7 @@
public Uid getUidAttribute (String objName, String attrName) throws IOException
{
- String attr = arjPropertyManager.propertyManager.getProperty(objName+"."+attrName, null);
+ String attr = arjPropertyManager.getPropertyManager().getProperty(objName+"."+attrName, null);
if (attr != null)
{
@@ -244,42 +244,42 @@
public String setLongAttribute (String objName, String attrName, long value) throws IOException
{
- arjPropertyManager.propertyManager.setProperty(objName+"."+attrName, new String(SIGNED_NUMBER+""+value));
+ arjPropertyManager.getPropertyManager().setProperty(objName+"."+attrName, new String(SIGNED_NUMBER+""+value));
return null;
}
public String setStringAttribute (String objName, String attrName, String value) throws IOException
{
- arjPropertyManager.propertyManager.setProperty(objName+"."+attrName, new String(STRING+""+value));
+ arjPropertyManager.getPropertyManager().setProperty(objName+"."+attrName, new String(STRING+""+value));
return null;
}
public String setObjectNameAttribute (String objName, String attrName, ObjectName value) throws IOException
{
- arjPropertyManager.propertyManager.setProperty(objName+"."+attrName, new String(OBJECTNAME+""+value.stringForm()));
+ arjPropertyManager.getPropertyManager().setProperty(objName+"."+attrName, new String(OBJECTNAME+""+value.stringForm()));
return null;
}
public String setClassNameAttribute (String objName, String attrName, ClassName value) throws IOException
{
- arjPropertyManager.propertyManager.setProperty(objName+"."+attrName, new String(CLASSNAME+""+value.stringForm()));
+ arjPropertyManager.getPropertyManager().setProperty(objName+"."+attrName, new String(CLASSNAME+""+value.stringForm()));
return null;
}
public String setUidAttribute (String objName, String attrName, Uid value) throws IOException
{
- arjPropertyManager.propertyManager.setProperty(objName+"."+attrName, new String(CLASSNAME+""+value.stringForm()));
+ arjPropertyManager.getPropertyManager().setProperty(objName+"."+attrName, new String(CLASSNAME+""+value.stringForm()));
return null;
}
public String removeAttribute (String objName, String attrName) throws IOException
{
- return arjPropertyManager.propertyManager.removeProperty(objName+"."+attrName);
+ return arjPropertyManager.getPropertyManager().removeProperty(objName+"."+attrName);
}
public String uniqueAttributeName (String objName) throws IOException
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/ActionStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/ActionStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/ActionStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -325,7 +325,7 @@
{
if (!checkSync)
{
- String syncOpt = arjPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_SYNC);
+ String syncOpt = arjPropertyManager.getPropertyManager().getProperty(Environment.TRANSACTION_SYNC);
if (syncOpt != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/CacheStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/CacheStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/CacheStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -283,7 +283,7 @@
static
{
- String cacheSync = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_SYNC);
+ String cacheSync = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_SYNC);
if (cacheSync != null)
{
@@ -911,7 +911,7 @@
static
{
- String hashSize = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_HASH);
+ String hashSize = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_HASH);
if (hashSize != null)
{
@@ -928,7 +928,7 @@
if (HASH_SIZE <= 0)
HASH_SIZE = 128;
- String cacheSize = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_SIZE);
+ String cacheSize = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_SIZE);
if (cacheSize != null)
{
@@ -945,7 +945,7 @@
if (_defaultCacheSize < 0)
_defaultCacheSize = 0;
- String removedItems = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_REMOVED_ITEMS);
+ String removedItems = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_REMOVED_ITEMS);
if (removedItems != null)
{
@@ -962,7 +962,7 @@
if (_defaultRemovedItems < 0)
_defaultRemovedItems = 0;
- String workItems = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_WORK_ITEMS);
+ String workItems = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_WORK_ITEMS);
if (workItems != null)
{
@@ -979,7 +979,7 @@
if (_defaultWorkItems < 0)
_defaultWorkItems = 0;
- String scanPeriod = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_SCAN_PERIOD);
+ String scanPeriod = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.CACHE_STORE_SCAN_PERIOD);
if (scanPeriod != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/FileSystemStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -977,7 +977,7 @@
static
{
- String syncOpt = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_SYNC);
+ String syncOpt = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_SYNC);
if (syncOpt != null)
{
@@ -990,7 +990,7 @@
if (File.separatorChar != FileSystemStore.unixSeparator)
rewriteSeparator = true;
- String retry = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_HIERARCHY_RETRY);
+ String retry = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_HIERARCHY_RETRY);
if (retry != null)
{
@@ -1013,7 +1013,7 @@
}
}
- String timeout = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_HIERARCHY_TIMEOUT);
+ String timeout = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_HIERARCHY_TIMEOUT);
if (timeout != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedActionStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedActionStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedActionStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -216,7 +216,7 @@
{
if (!checkSync)
{
- String syncOpt = arjPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_SYNC);
+ String syncOpt = arjPropertyManager.getPropertyManager().getProperty(Environment.TRANSACTION_SYNC);
if (syncOpt != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/HashedStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -439,7 +439,7 @@
static
{
- String numberOfDirs = arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.HASHED_DIRECTORIES);
+ String numberOfDirs = arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.HASHED_DIRECTORIES);
if (numberOfDirs != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCActionStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -237,7 +237,7 @@
protected String getAccessClassName()
{
if (_txClassName == null)
- _txClassName = arjPropertyManager.propertyManager.getProperty(Environment.JDBC_TX_DB_ACCESS);
+ _txClassName = arjPropertyManager.getPropertyManager().getProperty(Environment.JDBC_TX_DB_ACCESS);
return _txClassName;
}
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1023,9 +1023,9 @@
public boolean initialise(Connection conn, JDBCAccess jdbcAccess,
String tableName) throws SQLException
{
- String poolSizeInitStr = arjPropertyManager.propertyManager
+ String poolSizeInitStr = arjPropertyManager.getPropertyManager()
.getProperty(Environment.JDBC_POOL_SIZE_INIT);
- String poolSizeMaxStr = arjPropertyManager.propertyManager
+ String poolSizeMaxStr = arjPropertyManager.getPropertyManager()
.getProperty(Environment.JDBC_POOL_SIZE_MAX);
if (poolSizeInitStr != null)
@@ -1091,7 +1091,7 @@
}
}
_poolPutConn = "yes"
- .equalsIgnoreCase(arjPropertyManager.propertyManager
+ .equalsIgnoreCase(arjPropertyManager.getPropertyManager()
.getProperty(Environment.JDBC_POOL_PUT));
_jdbcAccess = jdbcAccess;
_theConnection = new Connection[_poolSizeMax];
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/JDBCStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -451,7 +451,7 @@
protected String getAccessClassName()
{
if (_jdbcAccessClassName == null)
- _jdbcAccessClassName = arjPropertyManager.propertyManager
+ _jdbcAccessClassName = arjPropertyManager.getPropertyManager()
.getProperty(Environment.JDBC_USER_DB_ACCESS);
return _jdbcAccessClassName;
}
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/LogStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -802,7 +802,7 @@
{
if (!checkSync)
{
- String syncOpt = arjPropertyManager.propertyManager
+ String syncOpt = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TRANSACTION_SYNC);
if (syncOpt != null)
@@ -1683,14 +1683,14 @@
{
try
{
- String removeMarkers = arjPropertyManager.propertyManager
+ String removeMarkers = arjPropertyManager.getPropertyManager()
.getProperty(Environment.TRANSACTION_LOG_SYNC_REMOVAL,
"TRUE");
if (removeMarkers.equalsIgnoreCase("true"))
_synchronousRemoval = true;
- String purgeTime = arjPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_LOG_PURGE_TIME);
+ String purgeTime = arjPropertyManager.getPropertyManager().getProperty(Environment.TRANSACTION_LOG_PURGE_TIME);
if (purgeTime != null)
{
@@ -1704,7 +1704,7 @@
}
}
- String logSize = arjPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_LOG_SIZE);
+ String logSize = arjPropertyManager.getPropertyManager().getProperty(Environment.TRANSACTION_LOG_SIZE);
if (logSize != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredEntryMonitor.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -249,7 +249,7 @@
*/
String scanIntervalString =
- arjPropertyManager.propertyManager.getProperty( RecoveryEnvironment.EXPIRY_SCAN_INTERVAL );
+ arjPropertyManager.getPropertyManager().getProperty( RecoveryEnvironment.EXPIRY_SCAN_INTERVAL );
if ( scanIntervalString != null )
{
@@ -299,7 +299,7 @@
_expiryScanners = new Vector();
// search our properties
- Properties properties = arjPropertyManager.propertyManager.getProperties();
+ Properties properties = arjPropertyManager.getPropertyManager().getProperties();
if (properties != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/ExpiredTransactionStatusManagerScanner.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -199,7 +199,7 @@
static
{
- String expiryTimeString = arjPropertyManager.propertyManager.getProperty(RecoveryEnvironment.TRANSACTION_STATUS_MANAGER_EXPIRY_TIME);
+ String expiryTimeString = arjPropertyManager.getPropertyManager().getProperty(RecoveryEnvironment.TRANSACTION_STATUS_MANAGER_EXPIRY_TIME);
if ( expiryTimeString != null )
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/Listener.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/Listener.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/Listener.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -249,7 +249,7 @@
static
{
- String timeoutSocket = arjPropertyManager.propertyManager.getProperty("com.arjuna.ats.internal.arjuna.recovery.listener.timeoutsocket", "NO");
+ String timeoutSocket = arjPropertyManager.getPropertyManager().getProperty("com.arjuna.ats.internal.arjuna.recovery.listener.timeoutsocket", "NO");
if (timeoutSocket.equals("YES"))
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/PeriodicRecovery.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -874,7 +874,7 @@
private static void loadModules ()
{
// scan the relevant properties so as to get them into sort order
- Properties properties = arjPropertyManager.propertyManager.getProperties();
+ Properties properties = arjPropertyManager.getPropertyManager().getProperties();
if (properties != null)
{
@@ -1074,7 +1074,7 @@
_recoveryPeriod = _defaultRecoveryPeriod;
String recoveryPeriodString =
- arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.PERIODIC_RECOVERY_PERIOD );
+ arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.PERIODIC_RECOVERY_PERIOD );
if ( recoveryPeriodString != null )
{
@@ -1106,7 +1106,7 @@
_backoffPeriod = _defaultBackoffPeriod;
String backoffPeriodString=
- arjPropertyManager.propertyManager.getProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_BACKOFF_PERIOD);
+ arjPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_BACKOFF_PERIOD);
if (backoffPeriodString != null)
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecActivatorLoader.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -93,7 +93,7 @@
private static void loadRecoveryActivators ()
{
// scan the relevant properties so as to get them into sort order
- Properties properties = arjPropertyManager.propertyManager.getProperties();
+ Properties properties = arjPropertyManager.getPropertyManager().getProperties();
if (properties != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecoveryManagerImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecoveryManagerImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/recovery/RecoveryManagerImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -85,26 +85,6 @@
public RecoveryManagerImple (boolean threaded)
{
- String rmPropertyFile = RecoveryConfiguration
- .recoveryManagerPropertiesFile();
-
- try
- {
- arjPropertyManager.propertyManager = PropertyManagerFactory
- .getPropertyManager("com.arjuna.ats.propertymanager",
- "recoverymanager");
- }
- catch (Exception ex)
- {
- if (tsLogger.arjLoggerI18N.isWarnEnabled())
- {
- tsLogger.arjLoggerI18N
- .warn(
- "com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple_1",
- new Object[] { ex });
- }
- }
-
// force normal recovery trace on
tsLogger.arjLogger.mergeFacilityCode(FacilityCode.FAC_RECOVERY_NORMAL);
tsLogger.arjLoggerI18N
@@ -120,7 +100,7 @@
// by default we use a socket based listener, but it can be turned off if not required.
boolean useListener = true;
- if("NO".equalsIgnoreCase(arjPropertyManager.propertyManager.getProperty(Environment.RECOVERY_MANAGER_LISTENER))) {
+ if("NO".equalsIgnoreCase(arjPropertyManager.getPropertyManager().getProperty(Environment.RECOVERY_MANAGER_LISTENER))) {
useListener = false;
}
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/FileProcessId.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/FileProcessId.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/FileProcessId.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -91,7 +91,7 @@
* Use the "var" directory location from the property file.
* If it is not set, create "./var/tmp".
*/
- String dir = arjPropertyManager.propertyManager.getProperty(Environment.VAR_DIR);
+ String dir = arjPropertyManager.getPropertyManager().getProperty(Environment.VAR_DIR);
if (dir == null || dir.length() == 0)
dir = System.getProperty("user.dir") + File.separator + "var" + File.separator + "tmp";
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/SocketProcessId.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -71,10 +71,10 @@
{
if (_theSocket == null)
{
- Integer port = Utility.lookupBoundedIntegerProperty(arjPropertyManager.propertyManager, Environment.SOCKET_PROCESS_ID_PORT, _defaultPort,
+ Integer port = Utility.lookupBoundedIntegerProperty(arjPropertyManager.getPropertyManager(), Environment.SOCKET_PROCESS_ID_PORT, _defaultPort,
"com.arjuna.ats.internal.arjuna.utils.SocketProcessId_1",
0, Utility.MAX_PORT);
- Integer maxPorts = Utility.lookupBoundedIntegerProperty(arjPropertyManager.propertyManager, Environment.SOCKET_PROCESS_ID_MAX_PORTS, 1,
+ Integer maxPorts = Utility.lookupBoundedIntegerProperty(arjPropertyManager.getPropertyManager(), Environment.SOCKET_PROCESS_ID_MAX_PORTS, 1,
"com.arjuna.ats.internal.arjuna.utils.SocketProcessId_3",
0, Utility.MAX_PORT);
int maxPort;
Deleted: labs/jbosstm/trunk/ArjunaCore/arjuna/etc/RecoveryManager.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/etc/RecoveryManager.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/etc/RecoveryManager.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,106 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 2002-2004 by Arjuna Technologies Ltd. All rights Reserved.
-#
-# Arjuna Technologies Ltd,
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: RecoveryManager.properties_default 2342 2006-03-30 13:06:17Z $
-#
-
-# This is the special properties file for the RecoveryManager
-# it's settings add to and override those in the regular
-# arjuna properties file
-
-# -----------------------------------------------------------------------------
-# overrides of debug tracing properties normally set in the
-# arjuna properties file
-# RcvMgr uses debug tracing with facility code FAC_RECOVERY_NORMAL for its
-# normal messages
-# Consequently some of the debug properties need to be changed from their
-# defaults
-
-# Set debugEnabled=YES to show normal output.
-# RcvMgr will produce no messages apart from errors if
-# debugEnabled=NO
-com.hp.mw.ts.arjuna.logging.debug.debugEnabled=NO
-
-# (default is 0x0, RecoveryManager needs to set non-zero to make the normal
-# messages visible)
-com.hp.mw.ts.arjuna.logging.debug.debugLevel=0x0
-
-# visLevel default of 0x04 is usable
-com.hp.mw.ts.arjuna.logging.debug.visLevel=0x0004
-
-# (RcvMgr forces FAC_RECOVERY_NORMAL (0x40000) on ) 0x800 is FAC_CRASH_RECOVERY
-# Default would produce a LOT of messages
-com.hp.mw.ts.arjuna.logging.debug.facLevel=0x00
-
-#------------------------------------------------------------------------------
-# properties used only by the RecoveryManager
-
-# ------------ Periodic recovery settings -------------------------------------
-# Time values in this section are in seconds
-
-# Interval in seconds between initiating the periodic recovery modules.
-# (Default is 120 seconds)
-com.hp.mw.ts.arjuna.recovery.periodicRecoveryPeriod=120
-
-
-# Interval in seconds between first and second pass of periodic recovery.
-# (Default is 10 seconds)
-com.hp.mw.ts.arjuna.recovery.recoveryBackoffPeriod=10
-
-
-# Periodic recovery modules to use.
-# will be invoked in sort-order of names
-com.hp.mw.ts.arjuna.recovery.recoveryExtension1=com.hp.mwlabs.ts.arjuna.recovery.AtomicActionRecoveryModule
-com.hp.mw.ts.arjuna.recovery.recoveryExtension2=com.hp.mwlabs.ts.txoj.recovery.TORecoveryModule
-
-# ------------- Expired entry removal ------------------------------
-
-# Expiry scanners to use (order of invocation is random)
-# Names must begin with "com.hp.mw.ts.arjuna.recovery.expiryScanner"
-
-com.hp.mw.ts.arjuna.recovery.expiryScannerTransactionStatusManager=com.hp.mwlabs.ts.arjuna.recovery.ExpiredTransactionStatusManagerScanner
-
-# Interval, in hours, between running the expiry scanners.
-# This can be quite long. The absolute value determines the interval - if the
-# value is negative, the scan will NOT be run until after one interval has
-# elapsed. If positive the first scan will be immediately after startup. Zero
-# will prevent any scanning.
-# Default = 12 = run immediately, then every 12 hours
-com.hp.mw.ts.arjuna.recovery.expiryScanInterval=12
-
-
-# Age, in hours, for removal of transaction status manager item. This should be longer
-# than any ts-using process will remain running
-# Zero = Never removed. Default 12
-com.hp.mw.ts.arjuna.recovery.transactionStatusManagerExpiryTime=12
-
-#
-# Use this to fix the port on which the TransactionStatusManager listens,
-# the default behaviour is to use any free port.
-#
-com.hp.mw.ts.arjuna.recovery.transactionStatusManagerPort=0
Deleted: labs/jbosstm/trunk/ArjunaCore/arjuna/etc/arjuna.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/etc/arjuna.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/etc/arjuna.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,173 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 2002-2004 by Arjuna Technologies Ltd. All rights Reserved.
-#
-# Arjuna Technologies Ltd,
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: arjuna.properties_default 2342 2006-03-30 13:06:17Z $
-#
-
-#
-# These options are described in the ArjunaJTS manual.
-# Defaults are provided here for convenience only.
-#
-# Please read through this file prior to using the system, and consider
-# updating the specified entries.
-#
-
-# Licence properties.
-ArjunaCore_LicenceManager=com.arjuna.ats.internal.arjuna.common.ArjunaLicenceControl
-ArjunaCore_LicenceKey=01234567-89abcdef-01234567-89abcdef-aabbccdd
-
-ArjunaJTA_LicenceManager=com.arjuna.ats.internal.arjuna.common.ArjunaLicenceControl
-ArjunaJTA_LicenceKey=01234567-89abcdef-01234567-89abcdef-aabbccdd
-
-ArjunaJTS_LicenceManager=com.arjuna.ats.internal.arjuna.common.ArjunaLicenceControl
-ArjunaJTS_LicenceKey=01234567-89abcdef-01234567-89abcdef-aabbccdd
-
-# (default is java.home)
-com.arjuna.ats.arjuna.common.propertiesFile=""
-
-# (default is NO)
-com.arjuna.ats.arjuna.logging.debug.debugEnabled=NO
-
-# (default is 0x0)
-com.arjuna.ats.arjuna.logging.debug.debugLevel=0x00000001
-
-# (default is 0x0004)
-com.arjuna.ats.arjuna.logging.debug.visLevel=0xffff
-
-# (default is 0xffff)
-com.arjuna.ats.arjuna.logging.debug.facLevel=0xffff
-
-# (default is NO)
-com.arjuna.ats.arjuna.coordinator.asyncCommit=NO
-
-# (default is NO)
-com.arjuna.ats.arjuna.coordinator.asyncPrepare=NO
-
-# (default is YES)
-com.arjuna.ats.arjuna.coordinator.commitOnePhase=YES
-
-# (default is defaultStore)
-com.arjuna.ats.arjuna.objectstore.localOSRoot=defaultStore
-
-# (default is ObjectStore of installation - must be writeable!)
-com.arjuna.ats.arjuna.objectstore.objectStoreDir=""
-
-# (default is ON)
-com.arjuna.ats.arjuna.objectstore.objectStoreSync=ON
-
-# (default is ShadowStore)
-com.arjuna.ats.arjuna.objectstore.objectStoreType=ShadowNoFileLock
-
-# (default is )
-com.arjuna.ats.arjuna.objectstore.hashedDirectories=255
-
-# (default is ON)
-com.arjuna.ats.arjuna.objectstore.transactionSync=ON
-
-# The location for creating temporary files, e.g., Uids.
-# IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
-# may not be!
-#
-com.arjuna.ats.arjuna.common.varDir=""
-
-#
-# This class handles context propagation issues, and should
-# never be commented out.
-#
-
-#ORBPreInit1=com.arjuna.CosTransactions.OTS_ContextPropagationManager
-
-#
-# This class enables crash recovery and need never be commented out
-#
-
-#ORBPreInitRecovery=com.arjuna.CosRecovery.RecoveryEnablement
-
-# this is the distinguishing part of the name of the recovery manager service
-# A different string must be used for each ObjectStore
-# Default is the hostname and does not need changing if only one
-# ObjectStore is used on this machine
-# RecoveryManagerTag=<uniquestring>
-
-
-#===========================================================================
-# The Common Logging service used by ArjunaCore uses a set of properties
-# for which values may be defined by an application either via the option -D
-# provided with the java command or defined in a properties file which must
-# be named "CommonLogging.properties".
-# By default the CommonLogging.properties is considered located in the current
-# directory "." where the application is launched. This location can be changed
-# using the LogDir property.
-# For ArjunaCore the CommonLogging.properties is located under common/etc
-
-
-#========================================================================
-# Two commonLogger are considered for ArjunaCore:
-# - arjLogger : responsible to log messages without national text
-# - arLoggerI18N: responsible to log messages with national text
-# To determine if Finer debugging should be provided by these commonLogger
-# FinerDebug is used prefixed by the complete name of the commonLogger.
-# By default finer debugging is set to NO, otherwise it should be set to YES
-
-com.arjuna.ats.arjuna.logging.arjLogger.FinerDebug=NO
-com.arjuna.ats.arjuna.logging.arjLoggerI18N.FinerDebug=NO
-
-#========================================================================
-# If the FinerDebug is set to "YES", the following finer debugging
-# classes should be provided, where
-# - dClass is the name (with complete path) of the class implementing
-# the DebugLevel interface
-# - fClass is the name (with complete path) of the class implementing
-# the FacilityCode interface
-# - vClass is the name (with complete path) of the class implementing
-# the VisibilityLevel interface
-
-com.arjuna.ats.arjuna.logging.arjLogger.fClass=com.arjuna.ats.arjuna.logging.FacilityCode
-com.arjuna.ats.arjuna.logging.arjLoggerI18N.fClass=com.arjuna.ats.arjuna.logging.FacilityCode
-
-
-
-#=========================================================================
-# If Finer debugging classes are provided, the following properties define
-# default Finer debugging values a commonLogger should have. These values shall
-# be defined in finer debugging classes provided as described above.
-# Default values assigned for the Logger are:
-# - For debuggingLevel
-# NO_DEBUGGING - The value (long) is : 0
-# - For FacilityCode
-# FAC_ALL - The value (long) is : 0xffffffff
-# - For VisibilityLevel
-# VIS_ALL - The value (long) is : 0xffffffff
-
-com.arjuna.ats.arjuna.logging.arjLogger.DEBUG_VAL=0
-com.arjuna.ats.arjuna.logging.arjLogger.FACIL_VAL=0
-com.arjuna.ats.arjuna.logging.arjLogger.VISIB_VAL=0
-
-com.arjuna.ats.arjuna.logging.arjLoggerI18N.DEBUG_VAL=0
-com.arjuna.ats.arjuna.logging.arjLoggerI18N.FACIL_VAL=0
-com.arjuna.ats.arjuna.logging.arjLoggerI18N.VISIB_VAL=0
Deleted: labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-CommonLogging-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-CommonLogging-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-CommonLogging-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-CommonLogging-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the JBossTS manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="common">
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-RecoveryManager-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-RecoveryManager-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-RecoveryManager-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-RecoveryManager-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- This is the special properties file for the RecoveryManager - its settings
- add to and override those in the regular arjuna properties file
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="recoverymanager" depends="arjuna">
- <!--
- Periodic recovery modules to use. Invoked in sort-order of names.
- Check http://www.jboss.org/community/docs/DOC-10788 for more information
- on recovery modules and their configuration when running in various
- deployments.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension1"
- value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension2"
- value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
- <!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager"
- value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
- <!-- Enable the following to move logs that cannot be completed by failure recovery. But
- be sure you know what you are doing and why! -->
- <!-- property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner"/ -->
-
- <!--
- The address and port number on which the recovery manager listens
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryPort"
- value="4712"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryAddress"
- value=""/>
-
- <!--
- Use this to fix the port on which the TransactionStatusManager listens,
- The default behaviour is to use any free port.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
- value="0"/>
-
- <!--
- Use this to fix the address on which the TransactionStatusManager binds,
- The default behaviour is to use the loopback address (ie localhost).
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"
- value=""/>
-
- <!--
- For cases where the recovery manager is in process with the transaction manager and nothing else uses
- the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
- Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
- if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryListener"
- value="YES"/>
-
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-arjuna-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-arjuna-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/etc/default-arjuna-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-arjuna-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the ArjunaJTS manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="documentation">
- <!--
- This is the JBossTS configuration file. Note that starting with JBossTS 4.6
- the names jbossjta-properties.xml and jbossjts-properties.xml are obsolete.
-
- Both the JTA and JTS versions of JBossTS now read their configuration from
- jbossts-properties.xml, although the contents of the file differs between
- the JTA and JTS. Care should be taken to use the correct version of the file.
-
- ***************************
-
- Property values may be literals or be tokens of the form ${p1[,p2][:v]}
- in which case the token values are substituted for the values of the corresponding system
- properties as follows:
-
- - Any occurance of ${p} with the System.getProperty(p) value.
- If there is no such property p defined, then the ${p} reference will remain unchanged.
-
- - If the property reference is of the form ${p:v} and there is no such property p,
- then the default value v will be returned.
-
- - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
- the primary and the secondary properties will be tried in turn, before
- returning either the unchanged input, or the default value.
-
- The property ${/} is replaced with System.getProperty("file.separator")
- value and the property ${:} is replaced with System.getProperty("path.separator").
-
- Note this substitution applies to property values only at the point they are read from
- the config file. Tokens in system properties won't be substituted.
- -->
- </properties>
-
- <properties name="arjuna" depends="common">
-
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.commitOnePhase"
- value="YES"/>
- <!--
- (default is defaultStore)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.localOSRoot"
- value="defaultStore"/>
- <!--
- default is under user.home - must be writeable!)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreDir"
- value="PutObjectStoreDirHere"/>
-
-
-
-
- <!--
- (default is ON)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.transactionSync"
- value="ON"/>
- <!--
- (Must be unique across all Arjuna instances.)
- -->
- <property
- name="com.arjuna.ats.arjuna.xa.nodeIdentifier"
- value="1"/>
-
- <!--
- Base port number for determining a unique number to associate with an instance of the transaction service
- (which is needed in order to support multiple instances on the same machine).
- Use the value 0 to allow the system to select the first available port number.
- If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
- to the loopback address is created or until the the maximum number of ports (specified by the
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
- reaches the maximum possible port number.
- -->
- <property
- name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort"
- value="0"/>
-
- </properties>
-</transaction-service>
Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/objectstore/JDBCInventory.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -43,8 +43,8 @@
public void run(String[] args)
{
- arjPropertyManager.propertyManager.setProperty(Environment.STATIC_INVENTORY_IMPLE+"1", "com.arjuna.ats.internal.arjuna.objectstore.JDBCStoreSetup");
- arjPropertyManager.propertyManager.setProperty(Environment.JDBC_USER_DB_ACCESS, "com.hp.mwtests.ts.arjuna.objectstore.MyAccess");
+ arjPropertyManager.getPropertyManager().setProperty(Environment.STATIC_INVENTORY_IMPLE+"1", "com.arjuna.ats.internal.arjuna.objectstore.JDBCStoreSetup");
+ arjPropertyManager.getPropertyManager().setProperty(Environment.JDBC_USER_DB_ACCESS, "com.hp.mwtests.ts.arjuna.objectstore.MyAccess");
ObjectStoreImple os = (ObjectStoreImple) Inventory.inventory().createVoid(ArjunaNames.Implementation_ObjectStore_JDBCStore());
Modified: labs/jbosstm/trunk/ArjunaCore/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/build.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/build.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -123,23 +123,8 @@
<delete dir="${etc.dest.dir}"/>
<mkdir dir="${etc.dest.dir}"/>
- <taskdef name="merge-property-files"
- classname="com.hp.mw.buildsystem.ant.MergePropertyFiles"
- classpath="../antbuildsystem/build/lib/buildsystem.jar"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/arjuna/etc/default-arjuna-properties.xml"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/arjuna/etc/default-RecoveryManager-properties.xml"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/arjuna/etc/default-CommonLogging-properties.xml"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/txoj/etc/default-txoj-properties.xml"/>
-
<copy file="arjuna/etc/log4j.properties" todir="${etc.dest.dir}"/>
+ <copy file="jbossts-properties-arjunacore.xml" tofile="${etc.dest.dir}/jbossts-properties.xml"/>
</target>
Modified: labs/jbosstm/trunk/ArjunaCore/docs/user_guide/AdministrationGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaCore/docs/user_guide/AdministrationGuide.pdf
===================================================================
(Binary files differ)
Added: labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/jbossts-properties-arjunacore.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ as indicated by the @author tags.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2009,
+ @author JBoss, a division of Red Hat.
+-->
+<properties>
+ <!--
+ This is the JBossTS configuration file for running ArjunaCore.
+ It should be called jbossts-properties.xml.
+ You need a different version for JTA or JTS usage.
+
+ ***************************
+
+ Property values may be literals or be tokens of the form ${p1[,p2][:v]}
+ in which case the token values are substituted for the values of the corresponding system
+ properties as follows:
+
+ - Any occurance of ${p} with the System.getProperty(p) value.
+ If there is no such property p defined, then the ${p} reference will remain unchanged.
+
+ - If the property reference is of the form ${p:v} and there is no such property p,
+ then the default value v will be returned.
+
+ - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
+ the primary and the secondary properties will be tried in turn, before
+ returning either the unchanged input, or the default value.
+
+ The property ${/} is replaced with System.getProperty("file.separator")
+ value and the property ${:} is replaced with System.getProperty("path.separator").
+
+ Note this substitution applies to property values only at the point they are read from
+ the config file. Tokens in system properties won't be substituted.
+ -->
+
+
+
+ <!-- (default is YES) -->
+ <entry key="com.arjuna.ats.arjuna.coordinator.commitOnePhase">YES</entry>
+
+ <!-- (default is defaultStore) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.localOSRoot">defaultStore</entry>
+
+ <!-- default is under user.home - must be writeable!) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.objectStoreDir">PutObjectStoreDirHere</entry>
+
+ <!-- (default is ON) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.transactionSync">ON</entry>
+
+ <!-- (Must be unique across all Arjuna instances.) -->
+ <entry key="com.arjuna.ats.arjuna.xa.nodeIdentifier">1</entry>
+
+ <!--
+ Base port number for determining a unique number to associate with an instance of the transaction service
+ (which is needed in order to support multiple instances on the same machine).
+ Use the value 0 to allow the system to select the first available port number.
+ If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
+ to the loopback address is created or until the the maximum number of ports (specified by the
+ com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ reaches the maximum possible port number.
+ -->
+ <entry key="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort">0</entry>
+
+
+
+
+
+ <!--
+ Periodic recovery modules to use. Invoked in sort-order of names.
+ Check http://www.jboss.org/community/docs/DOC-10788 for more information
+ on recovery modules and their configuration when running in various
+ deployments.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+
+ <!--
+ Expiry scanners to use (order of invocation is random).
+ Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
+
+ <!-- Enable the following to move logs that cannot be completed by failure recovery. But
+be sure you know what you are doing and why! -->
+ <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
+
+ <!--
+ The address and port number on which the recovery manager listens
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryPort">4712</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryAddress"></entry>
+
+ <!--
+ Use this to fix the port on which the TransactionStatusManager listens,
+ The default behaviour is to use any free port.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort">0</entry>
+
+ <!--
+ Use this to fix the address on which the TransactionStatusManager binds,
+ The default behaviour is to use the loopback address (ie localhost).
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"></entry>
+
+ <!--
+ For cases where the recovery manager is in process with the transaction manager and nothing else uses
+ the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
+ Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
+ if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryListener">YES</entry>
+
+</properties>
Deleted: labs/jbosstm/trunk/ArjunaCore/product.properties
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/product.properties 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/product.properties 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,25 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-# ArjunaCore ant properties file
-# $Id: product.properties 2342 2006-03-30 13:06:17Z $
-#
-com.hp.mw.ts.product.name=ArjunaCore
-com.hp.mw.alltests.build=yes
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/perfgraph/PerformanceGraph.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/perfgraph/PerformanceGraph.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/bin/com/arjuna/ats/tools/perfgraph/PerformanceGraph.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -61,7 +61,7 @@
{
createMenu(getMenuBar());
- com.arjuna.ats.arjuna.common.arjPropertyManager.propertyManager.setProperty( Environment.ENABLE_STATISTICS, "YES" );
+ com.arjuna.ats.arjuna.common.arjPropertyManager.getPropertyManager().setProperty( Environment.ENABLE_STATISTICS, "YES" );
TransactionServiceMX.getTransactionServiceMX();
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/internal/tsmx/mbeans/PropertyServiceJMXPlugin.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/internal/tsmx/mbeans/PropertyServiceJMXPlugin.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/internal/tsmx/mbeans/PropertyServiceJMXPlugin.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -62,8 +62,7 @@
}
/**
- * Register the given property manager dynamic mbean wrapper. Then also register
- * each of it's children.
+ * Register the given property manager dynamic mbean wrapper.
* @param pm
* @throws Exception
*/
@@ -94,13 +93,6 @@
System.err.println("Mappings not found: "+e.toString());
}
}
-
- /** For each of this property managers children call this method again to register their mbeans */
- PropertyManagerPluginInterface[] children = pm.getChildren();
- for (int count=0;count<children.length;count++)
- {
- registerPropertyManagers(children[count]);
- }
}
}
}
Modified: labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/logging/tsmxLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/logging/tsmxLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/tsmx/classes/com/arjuna/ats/tsmx/logging/tsmxLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -57,8 +57,8 @@
logger = LogFactory.getLogNoi18n("com.arjuna.ats.tsmx.logging.tsmxLogger");
- language = commonPropertyManager.propertyManager.getProperty("language", "en");
- country = commonPropertyManager.propertyManager.getProperty("country", "US");
+ language = commonPropertyManager.getPropertyManager().getProperty("language", "en");
+ country = commonPropertyManager.getPropertyManager().getProperty("country", "US");
currentLocale = new Locale(language, country);
Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/internal/txoj/lockstore/BasicPersistentLockStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -78,7 +78,7 @@
}
if (lockStoreLocation == null) {
- lockStoreLocation = txojPropertyManager.propertyManager.getProperty(Environment.LOCKSTORE_DIR);
+ lockStoreLocation = txojPropertyManager.getPropertyManager().getProperty(Environment.LOCKSTORE_DIR);
if (lockStoreLocation == null || lockStoreLocation.length() == 0)
lockStoreLocation = com.arjuna.ats.txoj.common.Configuration.lockStoreRoot();
com.arjuna.ats.txoj.common.Configuration.setLockStoreRoot(lockStoreLocation);
Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/LockManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1379,7 +1379,7 @@
static
{
- String nl = txojPropertyManager.propertyManager.getProperty(Environment.ALLOW_NESTED_LOCKING);
+ String nl = txojPropertyManager.getPropertyManager().getProperty(Environment.ALLOW_NESTED_LOCKING);
if (nl != null)
{
Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/common/txojPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,43 +33,16 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
/**
- * Property manager wrapper for the Arjuna module.
+ * Property manager wrapper for the TXOJ module.
*
* @author Richard Begg (richard_begg at hp.com)
*/
public class txojPropertyManager
{
- public static PropertyManager propertyManager;
-
public static PropertyManager getPropertyManager()
{
- return propertyManager;
+ return PropertyManagerFactory.getPropertyManagerForModule("txoj", Environment.PROPERTIES_FILE);
}
-
- static
- {
- /**
- * Retrieve the property manager from the factory and add the TXOJ
- * properties file to it.
- */
-
- propertyManager = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "txoj");
-
- String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE);
-
- if (propertiesFilename == null)
- propertiesFilename = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/lockstore/LockStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -67,7 +67,7 @@
if (!singleCheck)
{
- singleLockStoreType = new ClassName(txojPropertyManager.propertyManager.getProperty(Environment.SINGLE_LOCKSTORE,
+ singleLockStoreType = new ClassName(txojPropertyManager.getPropertyManager().getProperty(Environment.SINGLE_LOCKSTORE,
TxOJNames.Implementation_LockStore_defaultStore().stringForm()));
singleCheck = true;
}
@@ -86,7 +86,7 @@
{
if (!singleCheck)
{
- singleLockStoreType = new ClassName(txojPropertyManager.propertyManager.getProperty(Environment.SINGLE_LOCKSTORE,
+ singleLockStoreType = new ClassName(txojPropertyManager.getPropertyManager().getProperty(Environment.SINGLE_LOCKSTORE,
TxOJNames.Implementation_LockStore_defaultStore().stringForm()));
singleCheck = true;
}
@@ -126,7 +126,7 @@
{
if (!singleCheck)
{
- type = txojPropertyManager.propertyManager.getProperty(Environment.SINGLE_LOCKSTORE);
+ type = txojPropertyManager.getPropertyManager().getProperty(Environment.SINGLE_LOCKSTORE);
singleCheck = true;
if (type != null)
@@ -140,7 +140,7 @@
{
if (!multipleCheck)
{
- type = txojPropertyManager.propertyManager.getProperty(Environment.MULTIPLE_LOCKSTORE, null);
+ type = txojPropertyManager.getPropertyManager().getProperty(Environment.MULTIPLE_LOCKSTORE, null);
multipleCheck = true;
if (type != null)
Modified: labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/logging/txojLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/logging/txojLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/classes/com/arjuna/ats/txoj/logging/txojLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -46,9 +46,9 @@
aitLogger = LogFactory.getLogNoi18n("com.arjuna.ats.txoj.logging.txojLogger");
- language = commonPropertyManager.propertyManager.getProperty("language", "en");
+ language = commonPropertyManager.getPropertyManager().getProperty("language", "en");
- country = commonPropertyManager.propertyManager.getProperty("country", "US");
+ country = commonPropertyManager.getPropertyManager().getProperty("country", "US");
currentLocale = new Locale(language, country);
Deleted: labs/jbosstm/trunk/ArjunaCore/txoj/etc/default-txoj-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/etc/default-txoj-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/etc/default-txoj-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-txoj-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the ArjunaJTS manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="txoj" depends="arjuna">
- <!--
- (default is LockStore of installation - must be writeable!)
- -->
- <!--
- <property
- name="com.arjuna.ats.txoj.lockstore.lockStoreDir"
- value="LockStore"/>
- -->
- <!--
- (default is BasicLockStore)
- -->
- <property
- name="com.arjuna.ats.txoj.lockstore.lockStoreType"
- value="BasicLockStore"/>
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.txoj.lockstore.multipleLockStore"
- value="NO"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.txoj.lockstore.singleLockStore"
- value="YES"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.txoj.lockstore.allowNestedLocking"
- value="YES"/>
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaCore/txoj/etc/txoj.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/txoj/etc/txoj.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaCore/txoj/etc/txoj.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,45 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 1999-2001 by HP Bluestone Software, Inc. All rights Reserved.
-#
-# HP Arjuna Labs,
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: txoj.properties_default 2342 2006-03-30 13:06:17Z $
-#
-
-# (default is LockStore of installation - must be writeable!)
-com.arjuna.ats.txoj.lockstore.lockStoreDir=""
-
-# (default is BasicLockStore)
-com.arjuna.ats.txoj.lockstore.lockStoreType=BasicLockStore
-
-# (default is NO)
-com.arjuna.ats.txoj.lockstore.multipleLockStore=NO
-
-# (default is YES)
-com.arjuna.ats.txoj.lockstore.singleLockStore=YES
-
-# (default is YES)
-com.arjuna.ats.txoj.lockstore.allowNestedLocking=YES
Modified: labs/jbosstm/trunk/ArjunaJTA/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/build.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/build.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -78,37 +78,13 @@
<target name="install.etc">
<property name="etc.dest.dir" value="${basedir}/${build.dir}/install/etc"/>
- <property name="jta_depends" value="arjuna"/>
- <property name="module1" value="arjunacore"/>
- <property name="module2" value="jts"/>
<ant dir="../ArjunaCore" target="install.etc" inheritall="false">
<property name="etc.dest.dir" value="${etc.dest.dir}"/>
</ant>
- <taskdef name="merge-property-files"
- classname="com.hp.mw.buildsystem.ant.MergePropertyFiles"
- classpath="../antbuildsystem/build/lib/buildsystem.jar"/>
+ <copy file="jbossts-properties-arjunajta.xml" tofile="${etc.dest.dir}/jbossts-properties.xml" overwrite="true"/>
- <copy tofile="${basedir}/${build.dir}/processed-jta-properties.xml"
- file="${basedir}/jta/etc/default-jta-properties.xmltmpl"
- filtering="true" overwrite="true">
- <filterset>
- <filter token="JTA_DEPENDS" value="${jta_depends}"/>
- <filter token="MODULE1" value="${module1}"/>
- <filter token="MODULE2" value="${module2}"/>
- </filterset>
- </copy>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/${build.dir}/processed-jta-properties.xml"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/jta/etc/default-RecoveryManager-properties.xml" override="true"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/jdbc/etc/default-jdbc-properties.xml"/>
-
</target>
<target name="install.tools">
Modified: labs/jbosstm/trunk/ArjunaJTA/docs/install_guide/InstallGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTA/docs/install_guide/InstallGuide.pdf
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/docs/install_guide/InstallGuide.pdf 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/docs/install_guide/InstallGuide.pdf 2009-07-02 11:29:12 UTC (rev 27433)
@@ -3,14 +3,14 @@
2 0 obj
<</Length 3 0 R/Filter/FlateDecode>>
stream
-xRMkÃ0½çWè\kù;MÂv+v;më`Ðö²¿?IiMà dYV_Å4Ül¬Ø^áaòÈçôV4]&(®rÊC÷Ë-qÐík¹4µ6km3y®7ôbC.mcµN¨Æ´þ¾b·Ñk¹XÉ>§»áòm.Én§Ò¨Å"e 9»lm~êî¶+vc8mç#
-*cÀ4AŶܥ'ìÞþ!r IÀN8ÔèÈ#x{«}
-*³¨ÒÐþܽå±*Èòd"L(ºQÒcäÅ\äßÝûüJUs5¢e/kZxèÑOwpÈCÀ&þMäv §\²Ïbywp°ù¾Ð?µgã
+xRMkÃ0½çWè\kù;MÚÂv+v;më`Ðö²¿?IiÖ&a²,KïIO+âJMn at C6Vl/ïð´/yäsù(®@W9å¡{õÁ8èϵÆ\Zµ¶<×z±!¶Ö1Z' TcZß°ÛèV.V²¯)eä"än¹ü.d÷SiÔb2Ð\]¶6¿tÅ®+746Êó
+
+FTÜhËmQxÂNèýpé"áäÐCLÁ3Ø¥ö)¨
endstream
endobj
3 0 obj
-386
+385
endobj
4 0 obj
@@ -173,94 +173,109 @@
12 0 obj
<</Length 13 0 R/Filter/FlateDecode>>
stream
-xÉ,¹ñÞ_çUVhO(º6øöLfnöØ·Ásñï;"B¹TõÐZb_¥lséoÿÌt2øÁâ3ÍôüíïÓ_~Lÿy3ç̧õïoÿxKæ<Oɤy²ôëñÉiý `ál'Èñì'0î&g'pÖúsE6öEtñÒÏç<BòbTÏ\iú5$/
-M¿4é ²9W0W"òZSkdúC5]?ßl$íEæéóoÓ>ìäâôùë_/
-c
-Z Tq ÊyB¸§lÌÌÄ/²^Âi|<"×Óø¬ÅK¼w°DXD*@å-T¹è«Lõv&«Ká#5ÈJ
-×<Í©éµÒcìSQ!îóëÅ?RþIhR½Ï;Dñ_IqËç²p~#×Lì0OÌ ùo~R90KXÌëfÜÚÞ;¿\f]ÉrµÎCÎÎ¥{íÒ¯[pë»^Õo _$GYæ;ýøéEhµSÀ)H³µ
-;¨4e>
-õ¶GÐ)ËHS`¡%À}T2?¿Ã~Û#×)ËHS`¡%À}ä6¨4eÓLïm«Ø6ª2ÒTMê4MêeëF(¿ðݾh¨q`[É@QÀâFØvEQ¬îXFÕ)H²´UWUÀÕ£d$vàq$¨4°8
Ä4²} *
-,vI}³~4ÐtiNA+¸#iú
-_2ê7¾oÂ=Tܬ޵zôÖØÜ~õ®U£·6@ñÛáM«¥o« ÍïW¥ræ (§Gçèí
-¸e;äJ«tTPÛ!Ä5*
-¬2BhÑiU¤j4ÐtiÅYÓH¬TûÙu9¶&s¿1SÏyÜÁGªp»
-<˲`WgP+vXÑ´eë~è[tzëHfÚº¬
AvÓÇa¿îö-IØöûu±}l÷zÝm+/ÐD¿w379é²»ÅL9;%4ÓtçµÝºö¯=0_É,îwíÁj/^;#{ÑÊ=ta"ò
A·óÖ?5
^Ï·ÁmÒÖ£ÁÉòÏ£xWf½ÚÒ
-òe^Ú2À&AÕ½Ù£I<:6Þ_¢BvIqͽNç#º:Ä÷ÓØÛÐN[Q/Û'«Áâ¦VZS×½dªQ¸¸NXÀcdßQ2nOËÅlc¦õf¤+§î¬ÍÝv5ÑåZryS6LñÇ~°bd:Kõ°Ã±÷¹ñ^:.b*ÙÕe%¨´Á¹?[©DrXIÐG}SÙzYßܤ9o/JyÁË¢Z!Vçz©K°íþÖL3»kèøÿÔAÀÔkõùf(º+'ë ÚÎ÷n¿=j5.ULj§{ý¡Y`S1j~oûÆ4ß³Ë+ͱhÛðñúÑ×\ùNá¸ÎÛ·¸´×ï
+x¥I3»ñ>¿¢ÏØQio0
+ãe¹}a [òòxdyüýTJR©{ Ú¥öU²Í¦ÿ¾ýg2ÓÉàkÏ4Óó÷Lù1ýûÍs0sÖß¿ÿó-ó<%Cßídì3aZ#XÀãÙO`Ü9LÎNà¬õç$mìéâ9
+¤ÏyäÅ©¹ÒôkH^~
+iÒ!.@es®`6®D䵧ÖÈôA5]?ßltbyúüûô;¹8}þò×Àr$ÍÕøåä/fæÃÏlÒâ.Æ-''æWÌÍÜ¿}þéíñùösE0Á¼EnL Ô®ÉË)!Å^L G$¸Dn4áqùÀ½ÍÃ7FçÝRøv°àf,eÖ1
+¨Ãy
+@úa^Ñ0À¼XPN»Ì,>ØgH<bKdÑËÇÂ<1yBÞrÍ2µÀÊ¿K4¦¬<6¬uè7»²´QAÔÄ
+®³x²²ÙD2dÔddëü2Ïk¬½À1xY/p(V!êôl.ûÙÈìÅ9¶» «r6#ó~%hA÷nA®8ï,"²QÜ w{=ð;d=`8ÇÖ/÷ùÛAôøèRcô §N"¡A(>þl>õr,&C/gáIh¶#ö:¶cÛkÚÔ{ÑÝGubnþbí»æóòú¡
+2Ü$A4NÄ="8qL(OÆ?pÿ)<×0JÔy,"ÀýøCbÄs¦»
+´ÅÇFC/¿ï¢DÝ÷lx
+Z Tq ÊyB¸·lÌÌÄ/²^Âi|<"Ôø¬ÅK¼w°DXD*@å-T¹è«Lõv&«Ká#¥R%
k©4XéÉgåþxK1B£\©Æp¡9,ûÔmâ'¾â)¿p ¬Rª9}á9!ÿÍOJf YbÝ[Ûç÷ˬ+Y®öÒyèÓÙ¹t³]ôun=pÛ«ò
+ääh1Ë|§!?½È
+8©tX°ýb·HÈî±]¨íàس>v*¤ÚRVÍ¥(oòâr~N¤\ÏÑtR
+ØBÖs4?þ£¼ðIدê¿ä\XFÿêÈð¨î,£_ß®?í_otló
+¸Ì*0³¿CwÝ9ð¨î,#E¹tà:
+;¨4e>¦
+ö¶GÐ)ËHS`¡%À}T2?¿CÛ#×)ËHS`¡%À}ä6¨4eÓLïm«Ø6ª2ÒTMê4MêeëF(¿ðþp¨3]ÖT·¢(Å°
+ì¢XݱªSdi5ª®ª«GÉHì*ÀãHPi`q
+idû8TXì*#úfý.h4 éÒ6VpGÒô$¿dÔo|ß{"6¨¸Y½kõè
+°¹ýê]«Fomâ·ÃVKßVAß
+¯J%äÌA%2P*)N7ÏÑÛpËvÈVé$¨ ¶CkTXeТӪHÕh4 éÒ³¦0X©.·´ërl9Læ~s¦ó¸Tá"w`¨¾Êᾫó)·mW/rw¼/Vp:Æ×
7nJÜòÅAú-(ÑÓ+-ì/aK íÏYïè¬BÛ©ö<ÀbÔ;ÍÖ==HyE@¯,ä'$hlZ¼4è©®&éý 4l-ÊjûZ¶µ¥3aÇv_ i¼1*W÷·4°ÀeÙC°«3(OÃ;¬ÈhÚ²uD?ô-º
+½u$3mN]Ö »éã°_wû$lûýºØ>¶½î¶h¢ß»tÛÝb¦ÌKiºôËÚn]û×
+ ¯d÷»ö`µ¯½h{1b"ò
A·óÖ?5
^Ï·ÁmÒÖ£ÁÉòÏ£xWf½ÚÒ
+òe^Ú2À&AÕ½Ù£I<:6Þ_¢BvIqͽNç#º:Ä÷ÓØÛÐN[Q/Û'Áâ¦VZS×½dªQ¸¸NXÀcdßQ2nOËÅlc¦õf¤+§î¬ÍÝv5ÑåZryS6LñÇþb#ÅÈu6êacïråÿ¼u,]ÄT²«ËJPis3¶Rä° 2ú¦²õ²"¾¹IsÞ^
+ò#
+
+EµB¬ÎõR`Ûýfv
+0ÖÐñÿ©©÷ê=òÍPtWN×Aµ
+ïÝ~{Ôj\ª&*0ÔNûC³À¦cÔüÞöi¾gW*cÿ¥i.n÷jÄ´_}Í£)×ÙrûöúÀ§^<ÊL7ôäs_5
endstream
endobj
13 0 obj
-2369
+2354
endobj
15 0 obj
<</Length 16 0 R/Filter/FlateDecode>>
stream
-xÝZI㸾ׯй;ÜI
-x³êIâ{¥Ky±gÙ{,X½*ÜÛká_Öȹ&¹+½eÙìçxÛÞ%±ìÚnǪ¤å,\Ý{cx%<W®É
-
¦Ã«¸óî:
-ÔBð ñhI&ÿfs6Î@0Ws3w»L°vÜ¡uß·$6÷`À
-pxwàÅQþ÷×~÷åèz
-ÐÌAMq E
-ÇEÖCQÕpí¼ÃQiÔKlÁy÷É!õXâSJ°xn¢¶{®m~P°°ô¬jÊó~
-rìMøìs×sÿW¡hQneæ ûÈvrm"ó©D[Ãyêó×6)é\>Ý´bu´x
-yö§~Ëá)õt#cÜêÇ
-TÝ0§OE=¾pR¶i ÍVÃC Ïbu¾µ¬©]°Ç`¶
-E$%R<h÷jED¡&1m¥)Qô
-k¬³/ò(x|±ºç&"5]F8
-*jLy;óûaÞÅ«$Ä#ç
-.k#ãu4A*¦Á@ ÇäøåÇ#¤RÝUXgkPQÎj/ÅÔ¾¼0Ù0DGÛÂѹLpJ
-F*EÈß)q§dÉs\aéØg¶Y©¼ê6Å]{GÊGísHHu3õz<8θ²)Ð2ýnèE
«n ò"Z¨àɵÍè^8R1ÜÁÆôÈAvSªècîæÖÎÒÜ£°B8S)æ #Í$!°ðLåDA¢Ãª«£Ò\Æ®]էϰºÃqÔebq L$߶yç#ÝS3ÐM~(M¨Ô eY:°Eÿ¿Åìq gÄ)8v¦ Ü,¶²¸;?ß³|^9 ÿ-:y+Ìu¶¤Ò1Ü.³|µ÷nOw$ ¹îK¨'ö/åºÚÿÉueÓs]£Ðr<è0¯nKXS¾)ÙÙÿ$9¬ Á 14G¡#OÏøÛÁ³ÞT
-XnGXö²H´-;¤ qSÄè(èªËöëÊ6,N{Fü?àò1ïhÿI¹¦;¾V.Öý¿r±ÚôÕr¡PXG#aàÐù.ôÁIG÷]¦XèW
-ÿëáIçtù ¦ÀÕ#Í !3©NÓW¥Ðeeså×ÏOE5Zg`æieد£Í¦:S1â8{!>ú#°×cl=·zn=«kKäö¦,þÕË:}¸Ü&¤õô)°
-ü×GÇoUçWçÚÓ¦¬ýãGÏd}eÇR:´ hóÂУ{N{JÚöV>ÝiOAðÕsöã¼kèCç^ÀËhVn²,Ï¿1]òÆ¡È7¶x©g»¢pÕ«þè=úàß|¯öZß_ûù½àzñ^Ã1ŧ3{§4Ǭè=MõuR{¶þXÔ¶[þ'`ñG<7ðÿ²¢Þf!íohÖï|þcÛ2£
+xÝZI,¹¾÷¯Èó*kZ
+¾=ÓàñÍazÀsñßw,ZB©êÏÉCÓU©%¶/
²[õô·Oj:)xÚÀgñóLù6ýü¦ÎÉEå§í÷/ÿ|ÓFÍU8ÛI+{övç?|{3Æc^´:ÂF±ÈÁ:ÄÑÀ¤äE¦Lé#¨) R,~ÐNæs CA!¯¾
+ÀÏÿÈ>dA¢>A4úi*#Ü~ÊNýëíúÛþñæ9»J\F¼½gEÄheÊà}tPÖíÊÃÌ;y$%gbï4ÊÊÄeÄÛ{VB2ÿѹ¢lÖfy§ÝÚ\YV!.#+lîCvÞGçʲ}*Úe$$bÆ·çQÞÞ³«ò(VÆí(»Qg´yTlæíý¨°Ä°Þ.ÞÞ
+«j³ÏqóQF5H6ÏÛÐô]tyáãþ¹SWn-ÍEýs§*:ßdÐBÕýH",·âU¦1ÉJËôÓ>0zVDÌ%cXq T\ß@Õ¹½ÿ}úÃ
+Þøëbô}[OqQi
+1ô8ìrëÉ.:'·¨;¬Á,LYÅÕ,*¬§ÔÍ3%Mü¸";»þíýOo÷·ï´14³ß*ô¬
+XÕtñ¤ñ½Ñ#˼سÅ{öV#ân
+÷öj±ëI«¼%?ÜF¤¯´nöóFÖwbI컺۰*¡`9ç
+¦ì½³C¬Se
+©lÌN8FKYí
¥
'øGÈ[«j>SÁÔLjd°\U
+Qì2"5Ìã&î·uAfÁ='7A!ÐÌáð*î¬ù¤¹õüfBÜ+§*Áï¬.Ê(¨ê¦îê¡`rZÓÝmµÉIÍ4X Sg^tåiñxíwΦ§
+Í&áVfðÙv®Ud\ºF´8»sþV;%ËÀ§ëVô°³öo!{/|ê·èv©'øyå8â6Æ4?n ê9Q|*(bùÊIY»Ú[
+/%x=óÎþÆOZ³¦zÅ3³À±_pÄx«>Aµc·ØûèÜñø
+è(æ4PÙ^Qe8ÚËzò¨?ê{CÕo4áWnÁ lXýb.¹2ÍeþlhT ÏåQO.ÅÚ-L:0w<Tä®GF:HMK»RÖÒ¡CÅ$G«¡³yóТ#õ-
+q!ªÂÐT~C;èg±»±ð ÛrC¸(Tà{Àß@pg´u'/¥çÂI4pÑMuZ!ÅÓË,Ría9úº@w£DáÈ1 ]7Ò·R(ÔDpd+ç|üt/¼î«@o²BP5vèc´_ä³rèÈEAë3ºmØYB9;ó»±ÈÙ;NoÝÈ{B¨xX>McP¼$È°ÑÒ)a¿@7_v\+\p at 5<:+a{P+Ú6»nÕE536ßVÃÝ®9MpA
+¿N⳪&Çqq¥ ì®/l!a©ð*Û¯;ç)R>ËG¸Ô¨f5ª<{Æb¯Ù3pZºÙ£
+¦¸ÑÈ%x´$PËÏ:¢3x`HE÷
+úणy)ZýR¡ðv:ÿÆ^Aĸ²¥$d$Õ©àªäº¬ã`î±üZ±qW$Yc¨u
+zZmkm6Õ'Ô¸ÀíתñÑß~õÜn°åÊÊõ".5ëÛ´ÚWïèöabíÚí#R`+nø/n¸ÆkøÁÉ:æ´Iíâq|ýhLC¸*úêgþïÌ k#¯yü¢¿ã}Ñèîw²ºðÿê
+ÎÎöЬ
+]w
+¾#ãÛP%k¼[U-Ê/Ê|c
Í5¬p0V¼p0±Î!î³´5núV^ßó¹c¼xÅaüîªÞ)Nwq-JUeDÇKRÛEü2vÿüoR´d5æ¥ïÓ,¡ T
endstream
endobj
16 0 obj
-2366
+2352
endobj
18 0 obj
<</Length 19 0 R/Filter/FlateDecode>>
stream
-xµ[K¯ë¶Þß_áu
-%¼SÄÊðª¨m²ù²$õ#©ÌO%³4Ì¥½)JQ at OIJó%³wp
'/ÑZä?Õ
-=Æ mh9-¸
-lÙ5ÐIæÐuTØyÎfÓÕIIÂmv(¨¾²;TªîdgâN1I!RïNJ#X±AUL
-å'MËÃÏó~§}qáÚR²z®êºîéñÍaÛÝæêøÞè37ÿÒ¾ ¤ ¯¹Èx´HÆÖ¹m%ËÛ¯£Æu-§8H³¡#ý6°µÑw«æØo^µf±§4u0ð2n²®òXÉÎPª^«+Ý·Ö
aDw®t½§¶V
ÆZfõ#yר´ÝöÆX×$m˶ýfõàsÓ®º®ZZHË)Õì6±þ.
-ã&ñðô`ð8REUÈ$H2ÐÅ}»s÷¾>yµQw¡ibu'nËzêÊrL¥Keé$ÂË\´E!d»QW¹lüui¬Ås 3ÂzÛÅZ'_á2Ú?[K>áÖRWë KoÍÖ°Â/t{Ò!ØÞ[Ssé'4Á3v%æÌÒÜ]RÈ
ÈYQOɶ8©rëé(¬¤}T©FcËÝ|ÅG;½
-¶cºæ±øçX²t±C£¾VuÉE@ÏL.[~8_|%ºaF×>LìrHɶÌãA
¸Ë¨:l¿ö fsÓñ¯ÞYÁ±<;5Á|j³â>·uE¶¯tª~½ö¬8éè@kè~KÁñ6BÖðè»èH0÷%ÿ}<[ÀâèØ
-ÿ@|p¬UZGÁ0"gQ$ËE¯A3Ñ2'ð=Tî>ôÑAzc»=½µM_/ ÒÅÛ`,ÄØsÆ*åO¾ÛS÷¿ÍZrÎO]
ölk»´Otc½©%=å]G;ÈÖM´5
-R(õu¾ÞsSJM,C×ƼÝÜä=q¼&ïaÕï¾I¥µÌ( /Î4Ó>U°#óukoM="JÁ½µ«&Úë½½µ;û$Ë0?U
-åzz óÝþªÂÖÔ®»»ýøÏ
-!KrúË
-IÕ*JÂï¸ov:I°GvôÎò`vû÷¾ñÕ©ªøET7ÛLí`·m¾¨£rôqï .
-ÆNKMÓ¶lv¡Î®s¡:ôÐ|¡W«äBàGøM£G੹³}ôëå&E
+xµ[I+·¾Ï¯ÐÙ&,®Ý @KërrK
+ô¦(E=k"nÊÎÌ2\Á¼Dkw|W4^«=¾@ñÀ¡ääð{¦Fľþu`ð³W¹ÜA¼ybz³uÊæEÏxß`*
+/[§ò×Eû00÷CÐæYY«MË9d²eËË«IÄ èÎÇÿé.9r
+¾GñÓ)Ç]ðü)Ï¿§ÑüôüT¶ëYÒ¸$ÒTBõøKä(~àå8Å@Oe(zt8Óĺá9É2I6 ËÐ+.y9åd-_8ÊÌƦÒãL/óT¢ç¹²adá®SdÍÛe
V?×|ð-XÕ|°WÊ^´A{7ÞlKàÑü8 ó¬"Xõu`Ñ<:ÈZÈèB¿>¯¡ °êϼ§gVp l¬l5#J
+x¹2Æ^Gx¶mIÛE±í#U»bZµm½´å8ÞÑK¶«¹¾¯²a"6¼ ùW¨YCE¬4 Õ²U>°ÉÒ©*sÇȳþbÆ~©¢4´âk³ÆV)m2b
+ÄT
+% iaiW;j®D¤a¼
+Î\÷Yí@ØZ3q¥³ÚÝE:CSQ¼pÍzÏ·82SÉT£Dö&#@Ðt`²fÜQçõÇôiWêÏ®27ô!#¥½d',«³ìS0'ürûÃXðLw°À<Lük6i=j¬5°`æzÐSüÏbóý¸
2B÷1àFZ`®¤Â[v
+t¹¥4C6³ÙtuRp`
+ªìª;ظSL`Ô;S ÒVlP
+nó[eC§Ã4Si'qÊg-&Ñ?Ǫ;³m<ZLղĦjk¡Õ@bcSU¢IT´fS\WY{¡0gÏĺèW¨uÁcÇE7G4CdsT,ÅáÖòÂ#µ²>|zBëF
+(©ßr=¬¥ÎHsK5áyÏÞg³.´öró¡Þ÷~J zµÐTl-´ØA¡ÿØq³$Q³d½çc ªNkH¨KL6qä1ánUgà©uÌð)E £Gí{Ccg¹Ý8~Ðf(F¸Âj#£¹{+¡ÀÜÖQbº²Òغ,W±MSÛrU|´¿²iëUêie×ÕÙ´Ïá¢N,õ|¤cA®¦2%¦þàc!6Æ,¯Ñm§êÎeÒÀÖ<PãoÙÿ¨Ê£Ú)ZX·xHD ×mdÕ éBð`Ã
C¡»ÂA¢ö:©y¶;x]Xê±¥}ª$àJs¶ ]Ì:ÔißéDI϶.=Jsãf%Y¾ãv 7Å|irÔõ½IZ¡Üâ¤iyø~Üï´³/.\[JËPºbªëVºC`¤Ç7uSnv«ªãSz£÷ÜüKÛ&&üÊÜ`Ä@Æó¤½DÊ0¶Îmm+Y¶ß~5¨k9ÅD
+Åé·¾¼#\5Ç~óB¨58¥É¨¨Ypu¥ÇJvºPõZ]é¾µ.¬{#ºs¥ëµ<µµ*4^áaVß³wJ;Ùu/ùgÌÕyNÒ¶LiÝoV«FtÕuÕÒBZN©®`·õwiw04§Ç*ªê@&é@ÁLòíÊÝoúz+æIÖFÝIz"¤Õ¸-ë©+ËL29.¥/sÑ
íF]åJ²ñ×Q¦±sÌÎêmk|
Ëhÿ\誩ak©À'üÓSêjdé
+³ÙVxÑaã%³n:[Ó{kªq.ý&xÆ®ÄYzÒbK
+¹9!Êñ)Ù'Un=í
´*Õ¨u,s¹¯øh§WaÓvL_yl&þ9,]ìШ¿ªºä" g&-?/¾]0£k&69I$ÎdÛM{æñÖ BÜdT¶[P³¹éøWï¬ÀàXà>µÙ;Aq[Àº"[MÈW:U¿^{Vtt 5t¿¥àx!kxô]t$Aûÿ¾
+C-`qtì >Ø×*£`³(åÆ"ECÈ× ÄÊÎhx*÷Fzè ½±ÍÍÞÚ¦¯PAéâm0K
+bl9cò'ßí©ûßf-9秮B»·µ]Ú'º±ÞÔò
®£dë&Ú·)ú:_ï¹Í©N¥&¡ÆkeÞnnò8^w·êËwß$ÉÒÍZfgÊiï*DØùºµ·¦¥àg¯fíê¡öæâzkEoíÎÁ6É2ÌwUB¹ÞÈ|·ÿRakj×Ý]H~üg
+NmÉÚÙIßõU
Ê%9ýå
+r{óÖÔ`*Gìõáce#àßÕJâýCIÞ×êàÀô$óëâns^QÊXX¶J^ܨd¸½¢~ÍOt¹w$Q×
imÖëz4[É|=©+r·f¡0oøuýP³óö°UgÄÜÆÞZÛäú(%K;=nЫÓÒ
4^Mv×)&àYð1õf]^Z69£y;W1¾.É5ÌÙÚ^¡ê¡Í ¬ïÏ,W³¢¯Î/«Ñ*±çhR;Ñu¡
+IÕ*JÂݯ¸¯v:H°{vôÎò`vÛ÷¾ñÕ©ªøET7ÛLí`·n¾¨£rôqo'.
+ÆNKMÓºlv¡Î®s¡:ôÐ|¢W«äBàGøM½G੹³~ôëéße
endstream
endobj
19 0 obj
-2981
+2978
endobj
21 0 obj
@@ -530,137 +545,461 @@
35 0 obj
<</Length 36 0 R/Filter/FlateDecode>>
stream
-xWMã6½çWø¼SR¢d 0Ì¡·ôPôÖn
-t/ýû}Ô§íIRZd¡±Dz$H-yøûô×@ÃHøôl0NQÇï¿
-?}þLBý}ÿý´ÞOâøIÂÙ
-÷_ÞY0Ü¿ý</q&³f&»n&YìLny&¿H&²VÀ&oi\컨Ê5ͳb¶q[F¯z¿Ü<Ýdlä ø270'dÆ/£ÕGÕè¢Î`,0)hÈ1ÞxÍ¢¢±êÙ¬xY·RØʧzÕSÈyý0}ÕeI:IÕèr8F/ÍèQº3Ѻ%´?e#ÞÃeNÞa½otÃ/FlÛ`ÝR·;8§ß®©ZKÏK¾ä0|äÓôÒÓb#ݾA5«z|àwè²Mi+ªÉÝ·] =ò_ÓÄÇp6
À¶òæÉÁÞ¤ËÏ
-úp¶[w^Æk!uº
-£-Xe£{ÜgÂÅ\¹jÔ×BͼÔ\ò²ùÊéWbÆÙx«¡,6UöÃ]X6ÛU²³R¨ýæº4Ê*´0³ø§±töùÉ©¦!"3³¥WQð7ÂÝû/,xA=ÜYЫÃÂj#Ât!ïîñßLg¦ãªêâçÉ"Át0KZ]Y çdMaÝXg ø£³ õG«+.NBÉÄVØLö_l=Oÿ-bÖ¶þðDÌâid Íñ"Ù¯®ëXÄn#Í©Ä=ü½Æoì3£IãÆBà¾Ø>Bó:Þ©¹èëiîXv[¸Þ¶µØ$¶ÔÄAï«ôù¾nÛX(125k¯°ëÂmÂQ¾ÕÐ'¢¸9·7ÑÞ|k@º!y|ÉßeI7¡ø-ê¸?_»é`KÅ{Tî¼ö³^ÙØnQ»é
-¤Ú
żTÏaí^ûC1gÃC¨±¤
-íwRíÙÛͳâ)¢·±zð'k]ªdZÀ®nD
-ÒúÔãƱ»V^´æÓ¨TòNù9c{'õÖN½Ü)óÞZÐDg&¼} ÍÀ>¿4o©Y^íTð:¦©ä
41ôúa⩳yʾôHWÀÕ÷ûUµÙVG¡onÝÞ®nKmßÙzhObÃzGK
-o6{El;¦^®uöÛÁèXü¡LÀ¾,»×åËÌ8\9ÄÐ^ƶmbãñtD0¢Z#©íøïÏ·/§4'âÁ>ñ¾»èëðÏüÒ½
+xWM#7½ûWè¼ÐN¾MôÛsÈmÁCÈ-Ù@ÝËþý¼Òg·×v<ÈTUzUõT¥¡3«ï§¯ÔDøéYcIÆo¨_>©¿ó¦|¾ýyZo'ëøU°ñìÔíwõÓ;[Õí˯3ñfÒˤg2Ëäf²É-Ïä[ C!òä-ë½ly^ë2yûíöóéz;}¾CÆÚ
+LÀ9Åi¿LFN\TK2±È$ ±ñÊkÙª«ÍEúÉ <pI9\ÖßÓ7Y¶Y&oq-ºÉÛnô~÷`¦ uJ9éxÛÝö.sö*6}£+>4bëÜÍÙ9,uxÃ3Ìü&pu2X|Xò¥)âG90O/#8=v9Òí;T½GÙ~,¶*Ý};ÒS$oø5M|g] lOÀ`¾c09زüÜ g³7ØyG%ùéeéÌÙ*©ómLýUÖ¢ã>.ævÌ&Q_+5ËÒ`pÍO,æ#Â!v®¤³ó85CX¬ÛÞæìʲ٬èXµJÐ×ÛÒ)+´ÒnBÏÖ?Í¡³W>X䧤TBffCdÙRB ¶åö×]oQ ºri,¶VÓ
4{Þã+£r̳Dá~UdññdXe0ËR6à¹gkÂàdØã4pè0Ð×/ñ:rÿG_9ÿÍW¯$>a·x
+uÍmùÎêJáÛ<+±xí
1½3U/þ=v¥$oî¾"ê§åÆùµº¼m¨oG¹5vÌÕÓ¤¶ñnC·öãErcs_pïGõ6°Çº;w´²Ñ|o¢=¾ßuIPýõI:/µZ°µî<*:^ºÊ¨/löÎÃtÍÔ3é
V¿ÔÈaë!ÇCgâCÌÏéIåR¿TG6¢ÿ¬YFÚY©ñ'°ò亢Yî ô4Ñâ;IO `-¾×§Î0î{\ãEoJ5ïTfôPoÔËI(ýª(ñ$:<·÷+öå½wÍ-ë²H¿×)OmYÈM¯ÎèV»§ìk§r\ëÚzW%µ×
pªn¼ízfïÜ®©Å¥5Ñb=ö)
+[»£Ù¥
·ÝÛls¬Iæø¨G»Þ_¯wF§öðu"
endstream
endobj
36 0 obj
-1011
+989
endobj
53 0 obj
-<</Length 54 0 R/Filter/FlateDecode/Length1 23512>>
+<</Length 54 0 R/Filter/FlateDecode/Length1 22608>>
stream
-xݼ{|TÕµ8¾×ÞçÌÌÉäÌLf&$Éä=Ì!CB9 at 2LB`HyòJH¨ ÈC%Z"(´E+õÁ XjÉmV«
ÛZûõÒ\¯µ×V
-×kýÖJïÞg&¼´~î÷ûùýõdÎÙµ×^{í½×c?f o];EC eùêÖÞÖ´nG½¯pþaæó.EK½«³ýçÿ¹ï\µ±ã
»¼Ëù;B³ßíjomó~üA.BsiyTÔE¶ß£EhGãé]«îÿôϦñßêYÞzþÇïD¨å÷®n½£·X$4>@ãÎ5«Û·ßýV!ïAHwkoOÿÀ^´g¡úQßÛ×Þ[´ôç3j Qüú
-g»{AöP8»²ôF:U&máùõÉ.WC·*lpW¨Yh¶2¬Öª(Ýt´ËyÌ;²óSZÖâms·µÞ^&´ìNR¹sçýá8O8Ç]ÎÙôa"my{Ø뮨{ÖêW멾V%ùÉíÜù7Dã¾øÉ)ÑMô7ÄAÊÞ;ngpgËÎÖSCËÜNɽóXlìÎÞJÊaTSOKøá®äpð°ÔÒ¥ÑÆTãç/©ã ³«¦Ðÿr·«8Ù×0 Sóϲeeå©ËžëÑHxh~}$îDË_DÏÓÆ-,gd2ÇRÇr&s®oqÓÞ¬^X¿3ÌeTµ¹+)wµÑñ´u
[
->Ov¹wâ%¾ÖI©ªjëvùLÊZêút¤°";%5bø<òºL+È39KÜ
-ÃSé®lþ¯ïJ¤yÞpÈéúÚú°RAJk´*É>Z¢µ
vQw
Ú}a»7lvϺڬÊî
õjh±°yvµ,
-û*+XÍÎÊ-.÷üúWbôØTgòK~45T0`ël:®2+wÖ·u-Émt¦u8ë]a¥vp»¾½
-4Ê¡QZK1g×ÖW/tWÏo¬/É`è¸Êиë#hèë2tÎzL( DApÏNam~%Êp5
-ÕYÓõ&¡)áge{EÅo@ʳá4;4MâÏìP²«Áùäy1ÍvF+¦%t©¡É,A%MÃÄxÈƼ³ÞÝînpw9ÃJM=kcÊå(3TGûªöØuÌ¢lB.=aÌ=É×37<G_nÊ®ÌvîÔ¹«îdÈÝQR^Fl+ÅqÉêìgóÙl¥Îhu>ï<¦(l.w±i»Ó]Õ¶Ó½°~º
-M%È]ÉX]&T
-Õµ³ò¼TÍ:æíó)°}acý+5¥¶×Ö¿ÏnÕp,æÕ¿âDHQS1Ke,âdièTøäWÔ\NMPãËORÓtiÂ4i2
-Ó4.¦¨iìC{)±òÊïJgë;ºv¶4°1¬#ôÂàA¹ãq°&6ãnÖ»g±ôr^I×°t-`
<ï¦R¥ûoyLIbôÕ²Ô&"H²4Æ©!8 !<áhfù;¾wÀ×ôý"Ç»â\ñq®¸w¸ö/÷ßJÞá·üc/ü2ûX5¨}àNç&%H%C¤õÒzTÂ×¢£< þæ â%^ákÔÈ×9ùaú"ü©!õ'«ï¢L¨¼<OÓÚ¾&ßRú\Ú´´éâÙç{õ#M¥Úóä¯Ü\V¿Ò&Ft>TjD ¬!5u.k4ÉceAFqÆ'l±Á(²8*^yhÓÔ8¤x£HÉòòòÀj¿X@ YÛ$ý®im¥ÂãÝils³`?Xü3¿ &©uåJgUöqÀ~@-uLf,Xl¼§6¿0oÅÌ伺»æ=H¦Uϵ¼·¤Ì컵Ðî½ýá¶1_ß%\5^Uêò·æãË e·
¬´BFä&e*ðر>59§W¹Ý(DÛ%ÇãáøCñáx_2¤¯Ql©¡oh½Ùv°·à¡(a|ÈÍÊ
-Tñ^>§ÆÒa8ýr:NOwJ¾Eß«ÇCzÐëy+*÷ûÖJ£/SI 45QÆÐØE¿Ïs1ÊåPSjöhj³²òhZ*øfàBƯ|R8µÈ_`MÐæwÆbNÅ ©<9QÖû½î¥öÝf:0<TÚÌÊ_°.8s¨Sùõ[/ý:å»\Q¿iÀs۪ƺêbxnÝ0ßcWºou,/eͧç:âãr+;nÛ³ÿî]æÜ·ñjoI]ÒÛܾYõÞ:&.ã\Þ¬h³²8Û
-
-ºÝlK¼mNË%QS[11¾Pv],§ÉO:ýþ ¾¦)2ò4§©imÓÚ¸Ó
-ãÜ
þi~ßâ3[ýEÓpnN]ñÿºkká?ÿ¹¿<i]§ÿuï§Þ;V7·\§ÌñÅpýtì è;JÁÆÀ
-q¦ßÅò
«#¡
-:<M:ø´Ì©3p9Fg6M«%ÚhãnÉ¢$
-1é·;
-:v;°Ã7äôµø|IJä(:°U¥ÈÕ|9
-ÒÒø¤æx©õëGõJ^îªä½WB9B¹ÒDù$½ÝDãIÒÅ\aliºöj*Jg
-)"c¯±gZ¡«Ðg i鸳áh¿çµá6÷¤ª®õC¯ÞuÏ¿.|`í"ûø\ç|òG+_ÿüX~ã)9Ý¿hómES릻jöüõ¾º¼i)ãÆäų2Wÿ÷Qýõ®êæJå^I®\W©ØAŧßÇgô°[P?¡'ú¬!^H¿Qº.SõÃéÒêÞ&á¬ËYx"z£z[dz*ik¼%'4§ê4(¡¾¤~!ms!ÈLǸ©âq³¦Ó±¥ß¤§¹Ò±÷_yþfM=Üÿ5:È%:OÈÏ´I]Z{n,XQK
-pQL0ÛÈíà8Öª]¯Ý¦åâJ.Úmºd¦Â!ç4½
Ã
ØQ
0R8ZmÒûjtÊLöÏDÇZ&g'el¤ãéGÕ&8Îkj>L½¾Í0ÉèT!
Omzç_à¡Í0Úþç0!xìßRf´TÎY]yËÊà¬ÅñBW#!5.ñørøÞñY¡é!&C.LÞÞCr~çÓwô\æÉïøÞUÝHåC
-íýJ~£{
7¦®HÅu¤`] $ÏQv¦æHÖPã89Òãj7ÇS Óñ¨&#wÖX%¾ÆL×ÐAÆLÖßj3¦%°.ÆqTá° `¬|PuÝU}5ë´=èØ·êò·n
-·m?Ùãû¡qøþ¼åµ¥üïºÝ%KCyyKª|
-IýzkYýþ_mJÜùìö[©cÛIû¼K]s¼S1îÀpc M3 ÁSÔe!ÓÃQÃeg0¸FEm%=±0d¤:×
-PBaq
-faº[à¨pP8*°t®WfÕNpå G8H3. ZjNL»$ÀÒ$çÒ#@
-6Qc ÔÈ:rÁEdé ¤uZ£
xLÀ,M!uÐ5ðæs
-NâsùR<|ÌÁc
-/\ÊE¥>F_Pº$S+3®VkµRHÀGäsªÅrg8ÌÕXÃV,[[¬ÃÖëe+ï³àfs|üzD¶`b
-ÔßTâSÝf¿û)SâµÁ¦ÏÏj¸þ³YyãÇE\Ä
-~òIhÛý±»¿û:.½ ÙFÀ»ñ86Âñ6æ»s8{Áì<ϯX=>
ί%pÏýT*¹3¢¢ªbN³}@ÍfædÙ9ñ´£ÀgpîÐ!µº¨®±Q[-££ü6YwZq¶[É
-²ZÜq»Í=à&µimii¤0µ2ßW
-µø¬Rö-ß°O½ðè 7ÙwÚ·n;<
-©(
mñÐOmíxü uV:ÍP¢þÅ¥:¤}Øæ`sÆ:)NÓ¸@ãÊt¹®×z×6×Ó®®×]¹>wžÁØÅ:sâýC¯¹eâ7ÑüÓòf]hË$ëýÌ£.øëW.|Ü\pëpAf¹¸ðT8]]&þÐõ« ]Ç]X
ls
-¸°
-îêÂß·áÐÊpB§
-ú#
-MI
-³æïqáW¯W¸j]Øé]s]xÔuÙ
_s½ëÂß76>
-Q @ÑWò1r15.®Æ5äv¸8ºDkiO#gj1¶OVçVþßk¯üQ~Uª«}×}®ùQ³Õ¨|Å~_¼ØO
^Àè£ÕN=âQ¯³åbffV![Û**ðǧdZ¼ß9oÙsÓJñrܼíþ¸ñ
#Æ8$ØScÞýñ²'zÊ8íý¬ßâá
-Ç~ÜØô3k¤âtÎP¹Æo¤r-=¯ÌcËSxx7gìÊÀ+2áÎôÒñtXÂI#\û
-;Þ
-S ;MÀÌ&üÆè5
-ÆgÎY6=©z~Zõ^È©.uWî|çþ{Î=|[w«mÆ´lBmª¬+?û?××~§C;¿Ó»îà²Üü¶'#ó-êí?S½Çï)¡=¶axP÷oÔÁ=G4x½TÇp#i1bpJlâ wÀvx¨5y¿öQ-Ñèb@Ëq ñLñ/¤rô%zÌéÍ´ýGúÏõä5=ìÕ??¡'[õ Ñgêúý6=K{B:=íÙ!=;½@@ %ÇñÔÄ2páãÐzÚDX$B
E"¤`á#ñsÿJ^a«¸G<,üÆç"|(Â{"¼& â"q¸W|Z|]|OüHöÒ
-NBj°íѹ¡º>_q1¹ ºÝÔ|ÃÊ
-_è®
-k²¥èÑ0_älºï̬¢´h¾êX\7®2ÝúÕõ§«ÙÍ7dß ®ØÑU* ®8°Yñ
-Ó¨5ð58AfßÓJné~éÚ6xbqu«²yw
-I^Ó¦,ØpkúPßtmÙÊkÇØ"pÚ»=HçØi*\î¦r |ÅIö"4pä° jX£CÔ`còÁ~|ÙêyäXL¡ßrú§çÏSBÚmÔÊç+U½°.6ã]Waݱ°)ug*®JmHíN%ë÷9ðÇbG§<KòVæmÎ#[$h$\'Õ2q!Qè4@%Á:¨µ!Ràl2@µaa¥$Ê>C®¡Ô@|løòNÌE¢jhMJÍM-M%B*|úå³#ÃQè |äøÜ©Ú$È
R ÀÇðPÝ
-Ñ ø}NÅ)ÊÚÖVlÕfeiÄWG.þ3ïïy8ï|>ÍÓùp4öçÃî|Ø=ù°$æå¿;ÿh>ÉWl)!g¾ù äóüQúOH¯KïIH:c±ñãvãcÆSFM¬QQ&l!ãùQù·2)ò"$ÈY2ÖÈ0Mî7ÈßOÊoÈÿ·¬ËA+'ÈøÍ7(ôdrüü|JæºeÈåzØü§ïËðüsïa§õr«JÐÉ2þ?áûX¶·Ëü¾7"pÛU¬|à lñÿÿSÆ¿áqùòe²KyäÎÁP¹2ÐcdøB?«¾%Ã)vÈûä#@ ¤Ê·È2É!IXºÆdøDßËð¶ÊÄ«2<+Ã(Þ;eX)Ãí2TË0])2èe¸"Ã_døM£eaµÍ2Ü&O.±]£´Kj
-ge øÊð»ì]2^¢BÉ'C²¢Å_ÊpQó2¼#Ãia¿ýf}µ¼DÆ%*96/Tr~¯!ÿ ü»TòTò2°p³<(ÏÈä Y(Ó+´µZ¬MÍ#F¥»èÀs
-&jVù=MqþòsÍ×DÓWå×Wì¦kªùëÁ¿*Ù<W¡Þ 쮫¢PkxEÔh»$?Û ÖXÀçó5Q£;_
-DWgÑç¹häCVfFk
-£Çãü;[Bi3SÄt1sJJLäxcãsó8~æÌÙùÜST]M±[ÔGÍ%Çô?&@iÎ-9xSÎÎÇsH¡T)áuÒ}Ò·%RdÚqìÌk´RURRKR
-/«Ñl³T¨-Ï<$æÕ]Vü4¦.XÄB*fj&.D=EÈíz7Xµn7S9¹R.ãu¯ TSs!3¾È
×s?ÊÅsao.lÌ
¢Ü`nG.±åÂg¹pemÍÝ;r×çâµ94¹ Ëꢵ`l0²Õq.Æøº÷#ïç^rØ{½@õkj½Pä
-z±Íyá#/¼æ
^Øç
m^PAJ¼`ö¦{±Æo}Áð2D\w´¨àµy1-ùy;¼Û¼ð°B@|è
÷&±~×{TÄ}^hcÐ0Õ[áÅi°û>÷ÂO¼¿òâã^xÚ[½°QØæų(X½^Ìyáï§^ü®^÷mË#*dw½O¶&ÁÇÚ¤ü&ÚªU`Fß^/©ðÖzqÑd½Ý3ðîdãÈw+ËÒætbõâÏX>òâ=ÞÃ^LÛÐ6 åyñÕf>M1àj¡
ÑN«"Ž¯yßõ~æåT¶V{A²õKµØ!5#iód/\V÷ƪÞ=Þã^®ÜKe¯äÅ:-3j²
-q¡YZª
4-hSrÑèÎåÑ1¥¾
-xÝ19õºÂìQØ2³Ëâ~áò®<B
-®ü<Êo90>ýñqËV÷êN òK
-êé`Ö;õ5ú^=§UEÉÒÎÚæE\0ºêã(ϵ!èñy<ª:P¯_4¯Ü'ñ;í.Ëüí±oâ±øô¹kÇÛ
&ûìaÚgê~
ªábbcÑPª
-étzà¯íÌÈzà/¡z`ÂQ8@§%!5À£f-áÕslö7u¨Ïá±¾tÓ'tÓ¿!sûìɱÑ.¥ú£ÂÍѽ¤¥4ÎIuÇf
=l{E-hc÷Æ<:Ä;Ö¡GÅÉGqLÂ!ñÆL¨]÷aS¿£<»x±ÀC£¶å
õb°ø-®ëÂðhL¼Ý¼)oJýا1æTóƼrê©"kG?½bükøû;¿£5{g@Åxº¶ÁÖ)ðh6qÞìò¸ö»¸û;Þ»´°zC`k)´A·ÖÇAnc;WøCB£Nâ)÷§6"äPDëâ¡;â·Ç?OÊâa*Si>´aêýSJJ§BüTÞ×Ü
-¹Pj¾ÜtÎÐÜ"À*øxÊ&¶ôÎììVº©¡îê\]wàÛºA©{ÎôÈIÜÉûM|aôðñõ§ïRyîïÃç÷1þoÙ¯J?ÒQ÷PGIyß-eV·³ç¿ÖwïnKø¡pÑæ
Ëîï._õPÍÌ-ë;oõÀ}
-{WN½1qfº}zó¬ÊEÅVÑá)¿2ضûöÜk\þ¢÷ôù¾òùEé&#ͬíSÇôÉñ¹ÐÄlI8«XȳÔåÔÓQοÇÄΨW^úàê5<%æÿ¼Çÿ¦&¿÷~$ÙLÊãük<þ.êÕáÈ5>ÅüÆ[!ÄÃeÞå?ä±z9FÍðþqHV¯ÿ7óé<¡0¯ñ°â®¦Vï>ólHñÐ÷"5E+ú0z¹FÿðPX½T©ÛxßvZ0$Eaî
-
-ñE½&Ò¦¾u¡j# ':ºCRZX²4T÷DI6R[öüy³8S1'¤^ò¡FíÅÐYZø^õV#ç`wÁà?:y¯QI¡þ7¯ÄYB
-!cÅ}<Ѳñð©<OäÐÑÒ&v²j¯>OÄõ¨ÞÍõx<Q_%Ñl¶ Íà=Ö.ñqþ¸OÏÕÞý÷{"ûÎð¿¥ó/e¡UÊ-K2 )Xà´.¨MK2,I
-ÊD7Ñ'Þ (ü&*<c%u5Ý×VÓýüuaÜÏäãú¿<¹ÊþSîrá¤|¸ð¨¤órp¼?Iç¥ÍRòîá~êÍP!.o<{HIÒi°Fÿ)³Ôy¤ºlºøvSqzZ¡]úîöM^üÌm| õ
¥;ê=úK_h} 1wÿùwÝÝ¿ÿËø®]ãÐÐïþ<öJK,¥Å£ÒRÄí"l`±SZNMüçKú>®RÄä¬äÐì¦T¡OwëA/!vBQ4v=E0yòir%{¾$é1FÒï>a$ýå÷¤ñ]WÏP¨÷(SÁðØ/=+áDr ác-±±j £mHaÞ.µìТ#:M³Ãì3Ï37ͼÑ|Ö<a&Z³B½,³Yß,íj]+ib÷-®]Þ?pÇE.E®ql<±q|Ù<ÿ®Þ9cäðáñûàÞ§ö÷o?¸®bì<¿%ÐóDë¶]cï>¢¶C]ÿ¤¶»ÏW¤¤í^Ú°a+\
-7Ê]æhø9¶Êñ8tªðòë ׮䩫¡?ý)Yyöìo=&÷¹/ssQ*BO)ê|í>ÜèYáÁ%Î*'.À¦Uç4¼_Ïoã9ÁTÜúÁ 8¡x(o@q+Åøl1 bgñpq¸«¹P#Å0¯cc±¯+¾ÌB ³&ÇIúìd/¸z%ÝQºyóúºËJQ£gWLªôOZlQºhZÑ4·ÀM2>üåÈÏÞÝ9?`S7¥Ç¼z4'/è)§zå¬Êe{r 5ÈN
-ÁJÿ %ÑôÙEY$nxÛEp2©Øb÷WOIÀ3ÖjÉñwgͪC]þÖ#êøÊÍ:Ölh»hHèNÀ
-¤`Õb® 2,bª12Ù4lºl"»MMGMĤÖQGÏ%&sÉL°¤Ó¢kÇ7ó=<ÙÍäñÙÈa
j>^CÄf¤JT?³4Øb·§iíä¶ÉÁÇ«WÕü7\d3`|~àÜ·)éصpÁ#kÊÜtè·æ÷¾¹l¹²{å·z¼-û{HÛ<»}VÄå´]ñèµWPY±z5
-9i( *DôÝÒ;M)!¶#sô
-[Ál÷((×(¢ÏD]J^%ï*ý¼Í*yÿsâKn"ÞL+ÉuDתd~&RYÇöõezV1Zà8aòäÆþ²«:ªa=ª£zBCo<¡Ã~ÎË;ÈQr%écKlipÚàt<!Ñ. Ô²gÖËZ¶¯®%6E·ñÕM|uï«7®h¨3uò¼ø7«÷o8ý\0«o¯ù5Nû5l»~=õ¸kì1ü;üÔØoqÎز1»*è7ömß·fãô¿!GäwÇ~ÖøíÐäocMüÛxöût:ö[(²´3Æç¢ÙW_ÐiÞÁ%èU®mç*¡a
-/7ÐNúÝAÃhÒ N¾ÅY>
uòÐ3Ü |úæðÐÞÅ`Ù¥)þ
-ÔEã[é÷!ý¨Þ¡Ån{4}'PøSôk×Ðtú>} ðÆÄ/ù7&ÆTüM¡u<CËUÓx6£V§ßAúep¬,ÃIëyÕEÓè\G¹h
-¿¼gµïò6ö¶·µ÷ww®¡íÏïX½ª®¿µg ¶ñºwPN;û{:6´öµ³ö÷¯[¶¢}ùs ¶;WÑv¬¡E[;ûÚÛW³®S)ÞÐÕ½¼Ë¹±g³uùòöÞÊþÏ0籫®R)E¨uÒï
-ÚÂ>6µÜdÛúiÍÿÓÑ´P¥n½Zçmjú:X^ë¥=é£Ô¿|
-s#æåQ¼ùjh5
ü-76Òx»ß¯ì5ÑþÏWq®¦ýY§ðÉþa¼ôã×÷qGtL;ÕuÐÐßíWû¿òpåd»Ê?±'Á¬öÇh&VõÛd®»ÇTzÓ§¶¥æ±2ËU½*gÛ®ÃþKsþÿ3gW}MM×x±1ÐøÃh/úÏ1Aù1hÙ¯]©ÏÀ)ÁÈ41ó¾çð·lǧÁlÇsGó¥ÁKØxiÞ¥æK»/½Äëÿøaªã?>:òAÐêø÷Ñ ãìè
ÑK£DõGß.Ôý!@ê.
+xí{\Sgøwïwonx$! Èë¥H@¡jQ§&@PB¤ÚÖ)B&AjmWÑê¬uZéc¬Ò·µÇ:NÖvmië¨3³ÎNw¶ÛÛjÝY§3rùï»7UûØß I¾ÇùÎûïÜ#|íNV"ÌMmv¯ûöÅ¡Ã1¦¥qêØ×`ü>¼¥fBBæèÙEËý
+Bod:wp`¡wxflhà(fL±ZÅ!®ÛÃÕr½Ü îÂù¹#\çgðc|=ÿ¼ñ¯X:ÒQ/óò£}øS\÷se\,zÁ;ÐÇ@ì
+46¢'ÐràÅÈxP'»
7ø#èaxy`ÿ³y¸ÛÇÜ¡1ÇÎB[c ×!ôºÛØNðË"¶øpó#?øc$v¬÷@«~¦âü1ú:
:²
+=¡êUÕY@
hì)æL¿ê>ÔÞÆ·âÛñÕ\·
6ÊÀ
+h#à~Q53Ë@vòZN°³\³}Ê5¨÷¯D at s[5£ýðîPé@¦iÌj¼8%»©èz6çzHOBa´íD»ÑDÜ6&*¯j
+ÿÜÂ}
+õQÞÌ×ð
+üF~O}4ëà¯
+n9àñ}į¬Í"âÍ8y³Æð¨~gÂæØM
+i,JÑ_ÇMÒêÒÀÏ?ÛG"à4ñAéèIÙúIz%"½ercòàd2÷KéÖÐ.ý©GzLjgÖ3ßÿ1£öxÏ®NJ1ñaÉöc̦§;ëæ11myhVù¿ÝÖ ýFúWé-é7ÙT7ÛÁ_¨Py,¯g1õà%|Z
y̲TjÝÙÃ}z"§ûC¦÷LðÏDâjêj¤ú§a>˨ð8¾Å/»Ð.ÌÚf²íøÀào3Ò`¬~`ñPÂ*awSÝO4Ñ8eØqávDßGÓÄ9L'°ßÁûG².7ô6ç@¡Ç¦k#âÚ%ºGõ÷Çô7qpû"À2BÊV¥;'ØD·ÌÙe´ÝÇ ÏÈyè
+4EE¸;ä`À\8«çëÕwrwòK»Ôp/'qã A§ÐRUû8r å.´&é®qw%ß²mOÖ:²Áù&MFSn`HzÉT©'ÝÀr$Ǩ¯ô3?*²Ï}zÍmoßqçÑù0Fë-IÒé;vt0¦¶=PÑÑ]RzøÚÂO^»õIoªôgDb½kè#n#È®EcP9^Õc@=ÑÆF¥Ä¥áä±àp§ûewÓ,`2Y½ÎPThÐëØBâ^Yä]¿åGà÷GÎ0QÒßÎþÆDñ5Òé0¼Úë¢É/º$`YÆÜÉüð°
+xèÆ¢«Ð|s:=Yz'¹´.1½G·)qC¶:%%#>
+ef¦Ä$gOÀN«?I=©; J/0'ö%½6î@ò©¯¥õ¥«wö>5à
ÌÂ)Ò@_øXt*c#ójFNتcâ[æ¼ùvÜÔÝïKgÝfôÒóÒÇ[ÖnÛ¶Þé½W]ÍÄ0ú[¸?ÿI¤mnIcØ÷Ø£/½ôècûL¯c-Sé½8²ö+Üóh?Ë3ktg§÷ÀV`Ö\Õ
+)1d> j2(¯¯Ú~óºu÷Ïè{òo¸ùͯÛïÚà|Öüìïÿ¦y7cçøñ6¹"#öÖmy!+ëIÜ8§&;îªÍwm}.Mö½åà{A¿ÊFû!;§kÇDÅ¢gƨöÆêÅ5éûRöf:ÇD£1x,±q:ÖWí/,/¢¾ã§Ï6_'I¢X_Lò» µ ½@,È(ÈcN5§ÓÍ¢9ÃYZV^#ÖdÔdÖäxsV§v¥u¥w]«3ïÍéÉ9<<<ÐÖÞ 6dxÓ¼é^ѱ2meúJqeÆØ
Þþ=f
+ICWEeD¦óDö÷[åyhooïýk;4xa~ áóÿç[Ô¼¼ÑÿÎÜÊÁU;í¯>öòCçú¼¼99gIsNæèÑ r¨GäÄ£SJ/WÉÊø~%~ðlг*鵸+¶7j¿ZPA)Yn þIsÖéþ¾£I²ÝS¿-Dìá°g§W¶<½wïÔ}«ãóRðþÐ+»!hxØuèR=åUâP9E˪Qì+Ñê.þe´?úyFÇ«ªcM4*×Ñly¼Ü©º~aHÄ©7ëkô
+z¯^NÆ`Ý/'ÐÇQ~«fÑ
+¿?°Åþjü§Ô§vOÍç WÑ4sJ8[lýÆÞhð#£¶
+²FyIlŲÜÇC)Ãp¤x=ÐL MÊì$)㧽½¥Ï·¿ú&ó[fûÔ }Û¶W`éy®¹éÞ¬ùràÎK|5.æÑØÂf=ó(ÚÉm³I¿a:)uãHÂêÕz'¿8Y°'.9=h=²¾$ò9Í'îBÒ)FÇ »N4/þì¤Jw2kº5ñÇnû¾ôôééïßöö¬YÌ6*hfÛÌp»Ä£ëçÑFÏ£ýA¥ìnïÈ,ªÿ,ª2n%il²Oªç
+CbfK1Î_3³Ï>±óÏê5pl\³#¶dãì[£nþW®¡ý®¾ã»:½¯¡n©_¯"½FM¸!ºMJlh¥rGP3{ëP7¿ä>à!ûr°·¢ª"äçÇ íìnxªºáÝïUl1zg¡)ÜÇèvv=ìÐ>nòp'Ðrº7ícþë;ùnÀû¼`úÑípt2ÑÍh7ú/21_°ÓÙFö}7à=ø/\¼VòüëüqUêfÕÕ'ê«Ôõj©©h<djÙ»tè!"1À&Â7é¯â+(ç!È*càWÆÖVÆw+cE£±
+ì|PÎÇÛÊXWÆ1G`G6]¿Uë6þ-e¬G\ü»@ᢡø1ôÊEea=_s0¶*cM¸E«1Á¯5(3¡KkÑÔgqLöÔq,jªu(qÚje¬Gi?)õxù\Zâø¦\±° Hl\&¸þÏio3î¦<ÑÒÚ*Ö(¿Xëô;}K<á£ÉQ}iÛb{Xbo9ÏÁ2çb{}»ØÔbw/rúE»Ï)ºÜ¢·½±ÕÕ$:<mv;SgwûK<%Óa½ÓçwyÜba^ády9 Ù㪢%ðNÍÏwÀúÒö<¿§Ý×älöø9óÜÎ@9#<)BãýN§ØèlõtäæÁq8³u·Å/ºÚ¼_Àé}6Ñâs.UX Ò j5IFÂÔA2»(³R³0ñ?¹¹h[#(»ü]øìgÝ·Dô4Ä"5N_ËOÕïò-Nh-òÙÝ º d±àhôlÑî^&zÁ`pÀÓ
+>Y¶ÝðDØæ$RÔAü-¦&B3ßãýN°@»UEü¤ sÖKdÕQB-àXç fhn÷¹ txD¿Ç$úÛ;d
È×ìig#5yÜÃ?UlÎÞèYê¤È^D9Û
+³·@9ä#
+Øs·.]n.q|Nò¯üDÄ.ÁðpÏ9}ôPÇçð¡8Ì$´B& ÛLª2°L¥/N$µl at t²Ôã
+1æ¼#
++¬UTVÎ+«¨)À¹ªjXY1·ÂHmÕô¨ªÂZG͵ÖΩ¥¤¢²Â¶À$Wت
+[ÖjK`vfVUϵ
+åÕóªÊ,¶ê*±Ä
+¢XJ*2o Ji¥¥b®I,³ÌµÌ$â0Y°:r`¦µÊZk©4u5ÖÒ
+2
+ at 2íí°êsÝ©\Ã>å¢a prù÷9ý^¸¥\KËò
+¸.»tºØZöÊÔA\R á:H¼Ä:H8·R|ÅäÞ£¨áE¸ZIÖJÂw£Vd;|mµ ìeÕJ¬p$^b$«.¡VÎW+_+ µRdø+à>$q¥Ê%A)ÄË*aìÒçÆ+]2 nxÙ%pEK&A)ÄK/%x)%0jÉ$~I°Yêçή&l[f]Ru$%¿êHVGâåTGBdu$^Ru$ZSg(¡ÂG8oá#~
ÂG¸pá#^Dá#ÐÂgxíðåM o¦E_yì\åw¸¸ò]AîÈó¶xó46¢sJyÑ2äC.´µ
+/ÕpùéÌ ßN8³>
+wvÀè¡!lÈ\ÖÀ¹À
+ð%üÃ`±ÖXd<'Rísææá¾&kC¾Kì°§Þr¢bû6úÎc
+UÒYß5
+ß5@@̾lTM4Q;yÊèyBu
9«V¬LÆa,y.e>þëCë¨üð©ü6X±QÛX
+ÿ«Óì+
ãmx_é|·ïù»Kòó¹\I|׺KÞ]½»ñÍthWÐàw»Ë$P;·ùæ»LÂw¸Ë$è2
u¿É.ð¥]&ñë2 _¡Ë$~m]&ê °Î¦ÜÊÚ¶Àþ7×;Fµù·Õ;ÎéßZïH8oï(Üúú{GÂWè]ï×Û;
+fÖóß(çv|KèøDvi®dÇG¸¬Ï¹ÏlÖñ":>ê;\Màüfî4å]Æß\åS½,w>åÍA«¦<Z¿zamx5vá¿9£ÿgYþ?ß?D7£Q~zÙæ¡30âdã¿â¿uã/bñ_%|ZÂÿÿÿ»ÊÆßcá?ðÉnüY7îÀÀÿ%áO§âOJð ÿ©|¼ÿ¸Àãuø£óùðùø ¿/á÷
+ññ»Ýø?$üGþ÷øð$ü{
+|ìèLþØ
+|t&~ûdþm ¿ÿU¿ðo%ü éÆ¥ñ%|(
+ÿºðë«õüë)øW¸O¿ðk~UÂ$ü/~EÂ/Kx¿_ð>=Þ»&ß+áÞ_â{%üâù_Â/®ä^øE6ÿÂBó~ÁÌý"ïðÏ»ñn ?/á]þw:ðOcñsÏfóÏ9ð³;ü³Ùx?L?3·Køi ?%á'
+ø ?þX,ÿx!~,?êÀ=
+ü^nKàgã;%¼LÂwÄâh¼TÀí`ÿ
+
+ñk²ù |M®¿&çðøl~¼çd㫳µüÕq8[¯p3ãpÈaÀ¢§à4!ÍScp
+h0EÂÉx\ NIÇ:ðÐÔ '¡Ä$ a£ã%l
endstream
endobj
54 0 obj
-15836
+9268
endobj
55 0 obj
+<</Type/FontDescriptor/FontName/DAAAAA+DejaVuSans
+/Flags 4
+/FontBBox[-1020 -356 1679 1166]/ItalicAngle 0
+/Ascent 928
+/Descent -235
+/CapHeight 1166
+/StemV 80
+/FontFile2 53 0 R>>
+endobj
+
+56 0 obj
+<</Length 348/Filter/FlateDecode>>
+stream
+x]Ín0ï<EÝ¡PZ !u´Hö£u{
+}ó>.Í'Ø[ø½cntXEÏ7ά¨
+endstream
+endobj
+
+57 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/DAAAAA+DejaVuSans
+/FirstChar 0
+/LastChar 28
+/Widths[600 294 686 610 684 360 294 774 636 336 636 636 636 277 392 611
+317 633 520 612 277 411 277 633 698 633 634 615 636 ]
+/FontDescriptor 55 0 R
+/ToUnicode 56 0 R
+>>
+endobj
+
+58 0 obj
+<</Length 59 0 R/Filter/FlateDecode/Length1 21948>>
+stream
+xí| `TÕ¹ð9óÝ;9É$3Ù ,ÉMbXtHbXMfHÈf2l*Ê$3!¥3""ϧ-¶Ôú´qÅZõ¯ý-*>7¨¥Ûkmõ=ÛFêï£>ßÿ;çÞÉLB ¸üKnrïY¾óíßw¾s\bnÉ kG{Àv½¸²Ý¾<¦'íø/lÿ»#¼4p,D& Ì¥]+:K¢ØÇùôNÇ{ÓÔ}cÉêÅùI8p¡L#ÄzöÏëÄ®¹!½©û³±ßØj÷¼=¼q8ö7bÿüçð-P&c/ö 'à+øxÖeØÿéáP4vY{#|>ñ
/¿·-¨r I{Ç(>ü'FÞ7$ÓLfaÉ̲ڲsÈÿS?´§d7ù3¶§ûIåß-ÔMzq¾
+!×J7R7~ÒÄó«¥ýÂ@Ç6òlIÐÝd'ùW¯¥ëåÙòeZâ¸>_ È
+ÉB) M¶Kk¥íÑ-uHkÉ6|O6îVJ¯K+ÉBÎç²Î¡¥da¡´Æ°<'øA7Ñ©òkòkä9Dré10úýVÐ
t;®ú|F°7Ñ0¦ÿo$`¡ÌÈ&rÍÆÞn²ùþ|J¢b%·ÈÈÈä}ò['d5à{$áó y,CͼO
+ò!cnZ±ÔaøôÒ>§¥ÔO6-Bm^ û¥%ÒKÒ:Eí Ë"ï+8|nB.Þ7vÐÇH§×ðaÊø,yåBê++
+È{t+Ýr#Ý*-IkMÆMÒBrë0ìG}4}||ßx!ùL2O .æ#eòsÅisÙdvJBà"²`W(Ó2G
+Òh¸y7V%ôFWýÉÐFîÏmt¹ì é¹F=f%0PbW¬ÛeuÞmK*//*gÐU¬iÊ6ҼͲBÙqüxóBi¸¼h<b¶Ie¥ïlòýqö¹Ít«FGëZR±É{8ã®1Ç©nËð·nÉ6¥½S¹Ùzsé¾)㸧«¤ùÌpi¤h7è(TzäuTì=Ø{!±ì=Ø[c+¶Û;$r4
+Ã~¨nHËüüÓq¬¦ãëÕÃtôtâtä¤HÚùy²>C6i¾@õèÜmYî¹Û¬îË>+/ÚÛ=y2âÿàh¯mòäJú¤Õâ°4[`qN±ÍJKmã«&MÜMתÔýÓ®Y)ïVÿ¬öÒÒþ 1
+Î{~ýïÊv¿¸Cä
Çÿ$FO'CÈ8Gqs6ÙñjöÆ¡æYõ03oêPäõ(7ÁGz+¼(gFAm k%ƼÜüñ/PWxëYµª§ûºëºi1u©»Ôß«ÿ¦>Mkaå#7?Âÿ(Q_V{ñy^Lsñ¹XØ,;þ'©
+yMÞu8,ÌôI
E
b%6©¨¨°¥Iyd=(åîË;8ô^toÙ«¶c
+YzÑð4Ò:¼%37¹¤a²®ó×fad_ýûaëßg\¾fÍüõ¯l7¥SºØq¥Ùlfæôôt9K.1Ì2,shÝTn.gåéåå±ÊdÓTóT65}JÆË\ó6'}NÆlKOFe§i§y'Û¾3c§¥,ÓiÊ4g2KúEc¯k^LS[9-Ê+¢R>³¸dÔh[!ÕTYAËéÄ ÆWåKC¢o^ÕÑ>×3æ<«~®ÆC¯ºúýY]`Æßö9Úþ¶4]ý¤²rüÄÊÓÍ¥÷=òø¥¥Ô:aÂÉSáý?Û¾¥ë¡.CM#ãFò^¢C>¹X6YÎÝÆ0$2EHÈ<$µ+ôVUÒí3å &/QmêjÕ*Rßû¢QÚ.l¶ mf#9òmfc=é·g¾j~<-ÄdÍæaãFô¦ã{xÄU!ú|pt¯{~%Õ´ÁIä]JȽ+nþ±ºv¸_}þ¨ÈÏûÅÏìú@ÖýVzé2RFîvo6¢tò!¯ïÍüµMÙWôÚ{KÑ12Héj1[Ò§%wê(î(\M¸2rãßvx²ÄJG}ÅèéÊôâ£âÅÊââ ,¾^¹¾8<úÊïVî.~Ty´øå⼪ÂÊ¢êBGQkasQ{á¢×ÝVø£¢ûï+Ú^¸Èº8%N¦Ó2[ñÄLvÔÄ çGc£ài6Z÷¿sù¥¾©_ýÉì'Ön}fÑ7núaô_çE?áæi¡×Ï©i¸50ö»ÇÖ>رøµû_Ü1b^Sy9µù·-älÔÉ2Ñ1Ô){'û×y¯ZϤ©µY,YVÎUG¸
§¡
+xÒ\ùÄ5äÙ³M5z Aälu£Å7»<¼ÛäÒ'Ï¿bøù±ù!zçÁa¥£½ãØ[ÒÚÖâÛf"òQ>1LÄjæ>ËA¶Ù&m&6ÓBr§³Ý[H,êO\5|õpÁI"DPoÙPgZÁ Xw[ÓÚàþÃýèÌË?§óiÅÂG0Þª|ìºP}§¨ó_>i<aÈ÷pËMY°ÙF7m&Ìn6%b±fgºsS¶¹Ûlü-"#GÆ´½G§íÝ«%ë½½G¦õV=Ã1tÃK,ȲfÙ
+Íзİ´`çÁ?h!
wî(6ÃxúõK®Ø¡î?øíÛå{Ô絬ñ¢ãäé;¸ó_"r3ÚÓmÌ{ãXÜ÷ÈãÒO
+2EÓZMÖ£ÓD$á[F³y9l^cñº
vpk©¤%_ÜgÌUß81G\ÀêpF9m¤Ñ(³&&e3oFJ@ñÏ4$`#ÍL Id«IZo40³)M°À0!Ýzp{î{Lu·S-·>N³Ê§i¿¼YTBk²
+6u°Õd5]mZm±Ù½ìø¼Ïï5Û4Â\Qf:߬dÔI³äZÓlóBX$Í;ÁEÃRãYI¯ºå¦yt|iùiücÓ&ó¦§Í¯é×Ò7í7¿EÞ¤oÞJ;dzÛ\ÁMSÅT< Í:öàUê*ÃXúa¬ºêØÃô}Ôª~Ûý2CVC'öz^t¡#?ckZúV²ÞcI£&ë8)ÝO WÛÚmÚ®iëí$r»ð
+[¢ڴ\_ºÛ°¤ª¯«RÕÕtí¡ðµ×åCÇþò×cÇâÒ³êU¯·Kø/Òµ
+ûSä9ERÒ õì^^ÆȹYeL1/_VsI¸W ãXHµC¡Å°b
+§3|ª^FtÐ-©·[&m<vl=ÚÓ'ÔJç ÉôÃöyëtrhlsfÐNu#½A]
°ëðìzy5c\`
+×83%¦ä!O×udê±rÀ13OøñõƲ[^ç¿ðDó
+zB7að)Ù"w
òv²Ez,7Èpód]üÙmã[ÉÀÈü®ÃÓ&ÿE=Ôç»íôxîúLÂi¾t»´Cú\ÎkätnrÉ´¸EVâàÜËñ+áØ0Ìw 7öñOÑõ¶á~ª·1<¤·1§ô¶L2ÈKzÛH²ÈzWæÔÛéd$ùO½mɾ
+§µ3ÉGõ¶¤ç¼¯·mDÊéET2#C9èmJòó½m ¦¼IzwÞ°}¥ÞÉмëõ¶æmÐÛ&R÷ÞN'SòÞÔÛ²)ùV½I:§ÎÑÛV?u»Þ¶ÓÔ«CáÿÒÎ2¦}¬R
Å Ò¶BéEc'`Wêí峫KiáPQ¥ÅõEû¼åì¥øR·gy`Y(¸Téé<ÉÂß2Ïün<ÉyK}QÅñ)þ înëò·+ÞPÀã&`Z=ÁèÌP7¥«ÖïDý¡ RU^5IãSãR@;BAd"2uÆbá)^_Þ]
+uGÚ}¡ÈR_yÐ%À8K\¨>=(c¢>Òæë
+õ-WNCr¥¶kE¸3ªøáP$æó*P at qF|ËuV4º5
¥a,IÅó(k}ZgãNùÃN´ÏiV@Ùe%ñx}Oäj%Ô1c;HÀ6ðGN_Ä´F<Aݲ£X¸5z¶+±â ®PÂh5\j¡Æü¨ÒL3uúzjoÂÎbµìFQ{%B%%cWñD£¡v¿é1o¨½;àÆ<1ÎO¿4cÖPG¬Õ_2Vpñ
#!ow»O ñúQ0[wÌÇy`ýØÑÌí]Ý^ÎI?Öê!3¿NShªD´ÝQçâØKÍD;í)4ìfE(¢D}hö#«ºøHsæm+:Æ4Õ B=èX',àfèè O,ôhÈ®D»ÛùÚc|Ë×êBgãµ^?#:
17¢ó´
û ú ¡¢Ú(·J8éÚíôtu±6®5d£ÄÓOÎPý"¢Bß b+±a_ kLõ
+xV`´àr¯¿ÃÏÍÓC×Ã"õx½BrMu<@=ä«»Ëa×õ/
+6j±¸zÚI¯HðH£dH@(ÌÓ58}M$6d/صBñ§¸9ãâD|üR\ÀòF+Û%>ô9_D,ê E¼Q¥¤/K8íÄ+áa["T©×ã¥Íıv£
+¸Nü}ù®aÄ(pÃËÓÖåãì7XÒ(Òé"F_°N¸×%½Û«t½:ÃIV`NðTVbòƨfãFò(]<{`¬$
+B´8ݦY³q2·®±Æ®¸6·¸Z[YSR×Ð\_籺Æêúy5uµÊL\×ØäVêëêÜÔÝ$ê¨ê\Y«¥z6v3ëêëÜìlV»q"s-Siv¶¸ëªçÕ;[æy-ÍM.ÄQhëgµ W
@DÕMÍZêjg»í¸ÈvænqÖ¸-sí
+"kB[R\"Å5/ní¬¯WfÖ¹[Ý-.gåÚ©mljp±YMókFe¦Eqάwi¼¡(Õõκ»RãlpÖrqD8&NR/¨u5ºZõv¥µÙU]ǨǺWµ[@¢îQõÝê¦ÆV×¥óp
+&
+þµÃ?.hb x(X9~ÊOysUÑã¿Ú_áÇrMy¸3\¡§±i¤H¬ â'KI'
!íd,~«H%>ã±Õ
+01Å¿ñ ;Ö ÂcËIºðQHK®¨èùðëÃ5ËñíEHvT'õQu#¥åHk® "4çÃk¾Ål-ÃuóI7B´#¬G`ó!Xø#Lâõ#ëCHÝ#æâiX¢ÈQá½'UN{~¾à:´B*ä½
+uº.±jÜI°vµ&bº¸fb(×RW_ðåÂoeõµ¡rÄáÃ5³R°%´°ÔþÀç¸æ}Âz>ä.DzÛêÜXcªÅÓ)Vúq.,ø ks
+DÄ
+îëòZ(GÒúûyØɤaø&»f=¶Rµv¢¯3´Ý?ì´âçÜGíàöNÊìÇ&Z11½, t}5
Ðÿ.Y³ÀØqà<u9.×RA%¨[Ý®Û]³FMó1Íí¯°~P¬ë±¦Q!Öîc~Ý<¦i¦ã .úS»ã~¨aO`àÐï/ûDäj¾Wâ%%Âr|W|£¯v\ãÑåc"
+ÚÑCKLÌ$ôÓ.=Æôñ¤Às
+ç?þ«y?§Ô ¨ñ"
v±:ÁWH¾Ö³11«Ñ`§ `×£¹9ëX4ôèY'¦k& ÆR%JÈéç·ÝBöëðv@ØS³5KÉ Q\m?ö>9+DQf-4Ü~]«ýj©Ó¸
+÷ytLðôº¤D=BÓ¢µº¾^ñæ4ìâË5±!Ú>
+&a¿±h-a¡vAÛ+8öëNÑéÖ¹ó ÆÈI¤æ¢¤NÌAéÑí¤ÆRs@ê:EÈì3ûû¦
+m/ñÂ!±Ë)ºíâ̧cØøÎéÑ%*里Så:Y¡ï-u®óÁ£W÷¤.᧾S®SoÍS½.±zÄè9£KôXD^Á)·W0EKûí«¥DõïÑ|7Ac ~¢ÿP¦L éaa£Óç ?ú7»nï.±ÎlÎú¬yÖ#òJob$Úçx¸{øô<çR$(õ©¼b}É ûaIÜW0Kì¶%)^¦ÅLýý¥MÄ{(
×n=~²gýhÌG®zêÆGÛ½<"£úúV¤Ú]ã91ÂNáñê<ú'ÌO¹n°Üí;APØ=U_i¥h.Õg«Q½òVtIÑ$^9tõÕ}EaáÑWã{©n1m?ä^Åú²êW©N.U#1}?ìèÓÔlâtH#ö8&ì¹É¬#[Ä\)XǵàÌ|ìÕàh°SÌðù°Í16y£ß÷"á¸Ñ罹߸øZY(h¸[+rÖm»GëñëÒáøj}Þ®%¼
+Õè5â*·¾ó¢qêÆñ$Õþ\Õ Î°×øgë³NÄ]'ðqþí¢>âíFOMs-;×ÇÌqV#Gõ¢ÇGçá·áZ
>BfÛF!Ã,×dq 4KhUã·isZäË-´À)¹uH»°#§F¬çTç
+(³&ÝʼÄR®ëRãë~åV!=>ß#na'âOàMøNÀÀùfBó|N¡&Aa¦ãZäú¬ïó¸«T}q»qÎk%§ÐHë $°¥Zg0ï`}j
|.¡©zÝzt!|]ßæuBÖj]×NÍï5¨OÑnµ[öR¤êÒ}Ê)t×_
+n§ÿ¤ú»:EgIë7êÖMðãÝheEr
+[·öÅÈ,¿
+:çóú<,æéþÙÔÇYý&â(w:¹Cà Ýß5Âêu[û´¡A°SàÕr÷µvqÎõåíþ;wjÕ¬FSëN{J®M´,\+`à£ÚiIÛ³gÔÚm°vât¬Õòª7Y}h¹[;¥V½^Qk5`´¯* :0ÔWôÙäÖïNBýÎy²Gìýö>Z½(K«+=¢ZàÔ¢hóä;;ádû½F¥G´czeÂåëÖaùøµNÃûm j,U©ú{õ³_h×å:ÞIË:áÐîÕ¬ô>m
+x«Àu°4
s¯Ð5#Ú§ÉD¾JÜq}ó·NçúÖöÛtÄúÝ
+¬¼¾ºû 6è}ò5ß±Óºê_É·§ð¼ëH@Þ
+ê`7,ì»WRN¸Wbÿÿ^)å^)yÃðæ½ë·Ã~s÷JlÓÚ·á^
+z¯èë¹Wb§¸/øzîù²÷JÉêt.ïñÖÿ^éd»ïÉo´ó¹VI|Ûné»4øíÆ×s»ÄN¡]%Eßî[&&|ìÄjæë¿ebßâ[&6à)yÖý:oØ?¼eR¾¶[&ö%n¯ì ÌG¬s·¶8ÿõݱAmþMݱîoìîôî(yôÕß±/qwt*¼_íÝQ"³|G9ñÆÁOê-͹¼ñaguãsâíÌn|XÊÏ©îÎÅ
+Mìü¼i`ïÅ¿sU!ôr5þUÞ¼¢j*õkÇúWc§þ7ÒþßIã×ËÈ ?Î6¬¡£J¾Ï£ÅȳLÏ#qì||èc%·*b¾ìÂw!R:RÌ øN
+ñ=L÷Pñ"ÞùâGsI&bÍ=Þ#ÚÙâE3É*Ï=Þj¡ä8fc²H4¦cÎÅPþÿ·h:edñÀ·ÇøP³Xiï4!Þ|
qûOÊeg5
+¹dñb7q_Ç/U
£_Øå£*|a¸
+ÿýyüß«àóZø¯8|¦ÂßU8¢ÂîOUø_*|¢Âß
+á°
+÷2ùczô:¤¿þ
É¿0øs>º5_þH
ÿÿÇáCì|¨Â*üI
?ªð¾
+Pá÷*ü[Þ{w¨üÞ
+ïÜW(¿ã
·ß*ßÃ[eð»eòïâðÛ7såßæìò¹pÈ
+ßH*ðF:ü!~ÿ@üúöù×¥ðú¯rå×GÁ¯ögË¿Ê
ýÙ°§÷×ráÕWvɯªðÊËåWvÁ+k¤Ç_*_^/;¤Êà_UxÑ{d÷ªðÂx^
çTØóË)ò8üòÑáò/§À³ÏgvÛägÁî]YònìÚ!ïÊð4{Z
*<OfÃÿTá WaûøElËÇÏcqØqxá[ð³e<¢ÂÏGÁÿPáaRáA~Æà~z¦üSîÏûÒfTÔæ8ÜKî+{ñsoîAáïw«p×»ä»T¸sÓbùÎ]pçiÓ-eò¦Å°É!Ý¡ÂFô*ü¤6àÂ
+
ãðc\úcnÏÛp趹ð/øùnE=Ü?²Â-eðCÖ«ð¾¯ÂÍ*¬Sá{ß-¿§ÂwËà&nTá«à
+ðO*¬UaM¬fp½
+«T¸N
q¸6+TèYþ Ü£Âò¡;6\îCl8DãYßQ!²Ë!;ãCW®Va
+~:Û3äÎ*XªBGø¼Lö©àeàuHímLnÏ6%y²g,¡6yI\ÅàJ«pö¯PáòËË«pö.TX*ÌǾãø|æ©à.Ö\h¹´@nÃ¥8qi47ÈÍqhj´ÉMÐhB¨+×çÁÜ96yn.Ì©ËçØ .fÇ¡vV®\³rÁêL¹&ª3a¦³L'âtcFìPaÆ%ò,¸$¦O³ÈÓóa¦za
+sáb.ÊIÉÊ`â\yâ0¸GÀ,ò\°F_!Ï
ñ©*.¬|P¾P
JÄ_ù Td at y³OÇÅÁW&Û§À^8ßcU£ØäÑ
0J²B8¯pÁy
PjbKâPÅIÉ
"
0rD<²FdåÈ#
+`ÄÌ·JÃ-0¬`®<l ѹ0T
!6ÈGjùqÈñ¼2ÈõB
+²U°aߦÕYV9+²öHVÈ\#YpÆ*HGÑÒó!}Ä,ÀY
+i*e&UÈIxÁ«*f/Lm@, at wPïëéÿwüo¯ðg$ùß&y'
+endstream
+endobj
+
+59 0 obj
+8589
+endobj
+
+60 0 obj
+<</Type/FontDescriptor/FontName/LAAAAA+DejaVuSans-Bold
+/Flags 4
+/FontBBox[-1069 -388 1974 1174]/ItalicAngle 0
+/Ascent 928
+/Descent -235
+/CapHeight 1174
+/StemV 80
+/FontFile2 58 0 R>>
+endobj
+
+61 0 obj
+<</Length 311/Filter/FlateDecode>>
+stream
+x]Ën0E÷þ
+/ÓE
+y4BJ ±èC%ý
+"WªyYý×Ó;¶\ZóÙ(ÕQªÔj_DNSäxS"¯·ò8UÈâõ
+yËò>²W#ïOÈ{fóÄzòø||äÈ{âùôÏQ£q^Íû§8_óþÙ÷Ï
pÿ[ïë'fin!ÄéR)[Lµsð{ï~ðè¢çDÉ
+endstream
+endobj
+
+62 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/LAAAAA+DejaVuSans-Bold
+/FirstChar 0
+/LastChar 19
+/Widths[600 372 762 687 595 348 682 493 674 711 592 478 342 773 732 372
+695 379 695 695 ]
+/FontDescriptor 60 0 R
+/ToUnicode 61 0 R
+>>
+endobj
+
+63 0 obj
+<</Length 64 0 R/Filter/FlateDecode/Length1 21368>>
+stream
+xí| tÇpuW÷̨f4Ð8¤ÖÉ(#,.K>A !ÉÒ
+õBÿ3ààÿòppå¸]ßú×Û@.`1.Ç+á¾B ýè}]zm
+ü«ü!þ-ôpTù
+üV~?z{{+¹guû
ô½Í¤ídÒÞntè¸ëD¯
+¸`
þj]ÚÃ]ßÁÛÑVôzCâ+êÝ\´8äùm)m ·¸1¾=ûÑè>î:"Tô}(`CÉ:ÎWµÆ]×ôH¯÷V,tLJV½4:ÇóǤC§Nuö³ÅÞqqÎ8®2Uïéåû«;{¤ñßz4¬¾&Xëî!Á2¬{"Ä£ ²G cèÑ,Iø
+Òý3×ðª=rtâRd=:qtbÑ[
ªÂVÐÉ}òß=zóÿ×Õ@.
+¸Ú¹Ê{Ê×Åc
+ÈEKÑ}®v&bÖyGù¢Ùb&F>Ï$ZÌ3
+øB<¢Åbn0aÎfA\Þ#
»,[ò9TbÍ7é0¯³Y¸ªJKµ9ðrbÂV_Ro£]Á&ôªO³&~h+©×î«ôWR/MÆ3®â.©®´ëô0®Ð_Å-®+.*Ô57+ûn0å·¸£+û~Í
+Vø_?ðdÿÔ'ëøUõ%®æïîûä¡ïïúÇïÚY£ÂS[AÞKÐW}¾7
ò2C¯'BYyY1\á=E{gØÐ=Ü^a jo~)7ÎÖsh¶Ã¬ÿ}¾õèêqâ]=>Ã{Ýêñ<ïu=/ û©Ãõ ¶ÔÃXôø'&¬ÊÇh2¨ìÞkç\e¡¼!2d***ô}3ú
+ûú£5£
£Eúàä@ö¢Ââr®+**ìÕÌ(%,ÔrNPμºbaëÒÐ/6%\×»ßyVùòaâÛùÞKÞwÜp³9}âß+ßÕ-Y¾¸l^¡ÉyÏWß7+oX¶dÞü"Óü¿õÒåLG=P
+ÄÁ'îw]e$yà:(
+bi!?$6Æ"*á¶C(¿¤xVéÌ¢Bs¾ÉhÈã·ÙfY¨2RE1mÒ-£7ÕõpI}ÕYíWLÔå:^uUik_Àe
_c{õÒ%ËϨ±xÿþ\d±rï_¹ê
ÅÊ/J§Û0~éÁ«Ä:
jk1qÎ?
¾¹}«{ÒÊU4>+Á/À3(û¿.ÙÜ9³g奢ÉXÂÏOà©7ðº<Ñh2Z-¼Íù¢ÉdlÈÓ¡R{Ù¤3¢=%»u¶Ê{ìwTóJgRH2KæàJlÇæBõè#¶zð°ÌY>úÓGõà?ê?SâÄ.YwËí,®ËW,²7V¸ìÝvE}wÅÝöÚ¯·Ú*æ®\=ïºÊëæmªÜ4ïÊæ=]ùô¼|êhÌÉÀVpU¸b¹¼®ºÖâåéø=þñ[n»¦%²»ÔÀíܦì/ë9xä%n5wÙ/ÁîÛ¶Fá[ûý×þëyÜ»¯¹²ùæ±[?ÙñDà«ß¹ã?c6+NÎ6gîÓÏÙ¯Ajâ¡:iyM¤yMdymËkÎÏäµ)y<×ÂÜ ò¶²OWø_`ÏN=êqÍ×zA/ OáÇ
+ºÇÐa¯ã9,ê !o°8râøaf*L^JÌ£y.®`¿Rnð]eDã`½r¿Ð÷Gu
+t|ÀGÒ,c¨üê«wÁWx©F,°]ÂUÏT`à9·S.ج0É7ó&h+°5 jl¬åÕxæ=¥{çI!Ó.뢫C¸Æj)/@´²Â¦Ëw
+xîYw0ôò{kVõß9úØò2.ôÃå&åÙÁW®_ºö©Þ?ªðÞôÜõ×î¿þåþ
+½áÀØ×7ø8 a©üVªàJ-ÝûÖ}ô|pÓß¾NAo!Þ
+5Nø°ËM
+DÔy:ÁO_ Ó0±ä
+¼\ÎFB·§ùJÀqò:l´ý©D?G'rBJo5d,^ûZ
+4Ê̤, µdÙE~A4HyÞ¼rAGCY^ôÉ3»èiqå^¥»çZΪüY¾_¡Öx ÇØн®ezÑgDt(DFx1/ÏÐ`3ó°Nðæ]y[ôF¢×!1ÏWmÈ/8Ðä|Ù7[¨ìr
+¢H6*J¥$N2KàK.äâ\fÅeuÙúP×gî³ôYûl¶+4YE¶D[uíÛþA
+²êzI˱oÌXTkÇøä¤ÐwxèA >®L*Í,ÖȾåj0
fEÔ¬ãE#2BÀ¼ÞüÒ@iÙbÚd5sù&½UÇçDÎ_VZVMjµÊhe8zÜétZYQµ±
+a ¾ýaV!2¾Pîùr[ÔÆSû¹Ür굩(ýó/Ç.\!oo´`}þ÷üþºoêD,¶ú@L}PûÞvÉiyRÍNÔN)/Ó*e5D}ùÜK¦!â h.ÏKËáuZ=4Ñ[>½éÍJoty,ÐJ&h¢Dí-Ófª¿îôf*£¬n*]5¡Ú8Ój&ÕÈL_vûNnà©Ù}´lxG¹¿bñ}O¸çùg>y¡¾³dEó3ûøKþòè_ßã»+Û?÷C¬d±ÚçNÄ4>tü¨2+Òsà
+áUTzÄ ªä_F+èO|Õðo ¤»ôÔVüGº¦LìVqêÙQ:Âã~ÁßßK'ñn¼[à
pTÇßä@<£Å#+
+_þÂ,¾¸¤Ñ5ÚNãe¯&)½aÆi»Lèoµ1F3ÑsÚXñkÚXÓÆ:T~¯
+66¢¹ð9¡óâjµ±-ñSmlEÆÂ6d*4ENÈ¥E
%ÚCÅE-ÚG36jchcÆßÑÆ"ÀÓÆ:ä(úP½¸TQCñåÚ8¿ª¡8
Ç/N[Qñ)lh棱±xh`0)Í÷×Hu-úǤ¡d"}aÔñ;%÷ð°ÔE¡Rã£rÀINÛºnõúFÃCÑÈ´Ò7xMòoÝäôEääËR("ÅFúC~)
+ûBL·/XHðò9kY:õur<F¤:gÝ2,¤ ¹;ÑðÉXCmm
+qUv$ðT©Ô9HbÐEÃAiÖFãRB;
+KµÓÒÞ±ÆC;Ö¶7¹½íÒJâ^ÙæQyQÛÜkR{»
"BÁTq2ê tC§ÝÓånsHÝÆV:
+¡4HBóÕÀ³-k1úBB+&ð#ùP9`µE
+´`O )>Øóé(6ÁhöC#
+Ï8hJf{ãL§NÀ!Ãæ,l)§ì|º7ÑwÔn2³½<FÑf¥¾8ö£ZàÍÀ²!xc|'¯P
+ÄÙê]ëèL#ã#9þy&i\ÓÉ®ÚÒ£l),yþ9§è»ø1?½½32à
+a£$[¡^fºÞkQ°À_ã
JÖÉð
¶LTOì¬É5À¨D4«;4»«ÖR©©>¦ú³ñeÖ°ý1-òT
+QÀÔ|,¤yáP5M4IÆÅTò38ê*ö
+ò®ú²ÌâXõ={ØåèÞ
+üà¡a%ÉÞ¤ôÑ°IóÓ<f(ÐLDùOÿªÞO)ftBWb,j@ÁÏv§¸ 0 Ì×úám½Ui³PphÑìÎFU'²¬Ô4fkÙ¥dçx¥ÊíÓ¡#Ë:tföTmM²2Hv;Î #-g-Ë Ã¬Æ;¤i5×úg:¥9ÛXÚ£¯×e$ÚÌô>'
+©h²¬Ñ$³(ØÒp°'ÕÄ@ø>&e¿ «(jfKYÈÏhÇ!Ó^;`²Ì±Av.ÊhàôLø¤
+ØT¬d4²÷ILfã°Üëkª6ÔZâ;=£¬ÊIíÃìÉçb$«D´rú49:Û^ª1¶¨Ô©ÎÇæIÃÌOãéSªÓ@ͳ½.UA}¬"XÎf3(À8¥ödic §®ªR9ÔǼGõÝ©úIüUR\MùÎ\:Sõ1oÍÞÃl_èÙ¤gyÖÇòJoj%öÈT¼L²çd&EÒf&Uí·OSíi¹§î ð.UmíY^¦ÆLÛúÒÏâ=Åë)?
·¡i4&£#Z$ÇàR«eT9½#Ûî*Ï©2m¤²/±gBãQft&?IåºérwU³{¶¾¦Ó*ÉÒ\¶
+Ï7VénÞ§e,5ÚRD;átï×väb1Þ÷Íbj=¤^EÒYõ³ÌTgª_¤ViMBF§µÃÒé>²½k
5 ú¸.x³fM°ÚÄìâfoè{;Æõ0¦;ÐZKÅÑw»I·Äæt¶àÛÝëA=°ug0¦¸×Àj<=ÝÑ+kaNÇ-v¡*½vØåe±C÷Q^TN½°¡ËU+£âl
+̺
+j§õÿªÜÚ½1Kgë·kÖMñãe½Óhe=Er3[w§c¤ÅïóµiËäµv¤9ËÕo*Rpç;T\)Ú¹lbþÔ¦qØÖ
+AÎWÍ]¨k~öLçíÜÊÝ5fºÑì¾Ók³;5·0Øð¸Ìªúµ¤Ö¬Ì·Nvï6ÝvêëXíåS]o¦ûPs·úMÝõX®ötWe}`4Ýlfo35=¦Ds¾ó(e«ý4T-ÊàRûJë(µÄ4Ú<s
"§}ÆX½W©lfã¤ÖPùF4Xº¾eÊ×pêüçtHÓÚ %ËtC¶þãÌÞ1í[*Ä4LûI§7RßeP
+¨çjá)VÏxÅÖ¦*Pdq`º&H=££4 ËW©3®/þÔébù~ÎHÎyÐÔÎë³;"ÓIóy9§ó ÜNÞÅSæ¬#yn'¨Ó°/ì\I:í\üÿs¥¬s¥Ì ÃÏs%Sa¿¸s%2Í×Úá\L{®èó9W"g9/ø|Îú´çJët1Ï2ñ{®t¦ê{æÓ%õû\í$¾l§Kå.Mºñù.³hWÊÒàû0;½ùüOÈøL9eÊ|ë~§Lä¯2IÛ)ù§LÒgvÊDÖÖ«·ª¶Ýðþó;;"ÓÚü:;"§I_ØÙ9ãÙQæè³?;"âìèlx?Û³£Tf=sE9ýÄÇOö)ÍÅ<ñ!tâsú7Ûùø¬³;\äiø](sÒ@:s^ÀsUËô² ~µ·
+þ¥ÿßVð/üóÅ+øgfü7·?QðÛð¯ß!¾¡à7¯¿Ö+¾~~}»ðÚ«Å×zñk.áÇÕø+øÈ$~UÁÿ4_1áW¶ü£Iüò6üëðüâñE¿àÀüßoÿqþ~þIü¼ÿ^Áü½ð¸+ÃÏ*ø»Ïñ»
+~àg\ÂÓOñé:üÁ7ì-TðÿÄOLâïÀä;
+> à¿Uðãø±Ggð£3ñ#eâ#ü°ëÔCUâÃø¡*ü
+Þ¢à±|c)Þ\GÏè$ÇÈ$N|r6NÀ#±
+Ç|C5)8ªàûN
++xÓYܤà!3r !PMhÂÁ2<
+îVp¯QpgGعwTáv+^£à6¯VðÕ¸u¯Êë\B³ç ±YÁ'pSãl±i7ÎÆ.ae
+endstream
+endobj
+
+64 0 obj
+7958
+endobj
+
+65 0 obj
+<</Type/FontDescriptor/FontName/OAAAAA+DejaVuSans-BoldOblique
+/Flags 68
+/FontBBox[-1066 -388 2003 1120]/ItalicAngle -30
+/Ascent 928
+/Descent -235
+/CapHeight 1120
+/StemV 80
+/FontFile2 63 0 R>>
+endobj
+
+66 0 obj
+<</Length 289/Filter/FlateDecode>>
+stream
+x]Ën0E÷þ
+/ÓEÄ# !¥$Xô¡~
+endstream
+endobj
+
+67 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/OAAAAA+DejaVuSans-BoldOblique
+/FirstChar 0
+/LastChar 14
+/Widths[600 372 711 595 478 674 342 342 715 348 773 493 342 711 682 ]
+/FontDescriptor 65 0 R
+/ToUnicode 66 0 R
+>>
+endobj
+
+68 0 obj
+<</Length 69 0 R/Filter/FlateDecode/Length1 23304>>
+stream
+xÝ|{|TÕ¹èúÖÚ{fv&{fg23É$ÌÉL2Lò`ÈaÒG $'¯$ T¢¥(%mÑJ}0(V-ikµZ-´µöxh9kÇzk%É]kÏÖß¹÷wÿºÌÞëño}ë[k}õ¾(
+ Uë»Xß¼!ôB`Zµ©Ïùo³qÑð(BXjën_7Õþ¯Ëiùöµ[Ú~5zâB1Gh×ÑÚÜâýèýlæ]¡8
+;hÂÎñ»´Íϧñ´u}·7ÿé4^Kã¿_ÛµªyÏów|¡,¿{]ómÝE ¡ñ#4î\ß¼®u×oÐø«énéîêíÛö#T+±üîÖîÂ?Iã2¥ï·4
+èûÄÒ Å1áxV'ÄècEQ3Å-ÖD[Rr=ÕátMq§¥gdNÍÊöxsr}ò´<~A!úÿçÿſ
îà·#Ú¢>oøp%È6#4ñ1]{/ûK
.ò:^AÇÐð
+Y»Ðôùô
+igÐOÑSjè ºÿkо~
+íCнÿn5ºâ9Bë¿öi¢©[Ð#´æÓèût L?uM4÷<zã«QÁ¿Ãè!ô$
|¢Ïtämà ð"´ÿlGw¡Ý´¡í¥ðMè,G+hjä³µ¢®¢!ô8ÚJgáÕ¿}â¿xåûòÝÏ~Ô6\WâIø½Òþ,zAMÛ>©
+Õø$ÆcߤQ;ý6Ã{ÎûÉ,¥¢®¶fÉâE«ÌwKÕ7*CsåsfÏRÊffM/,&ûrs¼S33ÒÓÜS\Dsd4úA§ÕðÁ¼î`3Ñæ2Ü¡P»iBóu Ma'M
+Þv6©`Î!
+Ùv¤T®Bäfäxngøír·ó4Ô/¬¥áûËÝuÎðE5<O
+sjD¤pV$v;ÃÐä¬7uV4S|Çõ1sÜsZcr¼èxõ4êî>SgÀS+Jc¤Yµa^ÑÜ®^X[QìrÕåx+Ãw¹
æ¨(Ã9aÒÙÉHG{ǽ#÷ÐÊ&Ol»¥ùÖÚ0i¦eIÅàà½á8O8Ë]ÎÚúA"mykØë.¯{ÖªEW멺V%ùtÉíü¢Íq_üøÆæh&]úbÁ eïà`Ðí6
+6XévJîÁã±±Ýèº:=ñÃ=Éáà}ua©©J¢
+.ª
+Ç/\^ÆéAgG3M¡ÿenWQ²+®n¦úe#ÊÊÊS5|Ïi¤ðÀÂÚHÜV&?§.XÎÈd¥åLæ\-Þ䦽Yµ¸v0Ì¥W¶¸+(÷4VÒñ´u
[
+>Kv¹MqÎb_
+ë¤TU¶t:Ã|e-u}:RXAI>¼.&Ó
+2âLÎb7EÃðT¸+¢ÿ:)g7òDº~ImX)§¥9ÚGÇe-ÑÜD»¨³\í¾°ÏÝ6»g_íOFVEçâZµH´XØ<'VEK
}å¬fgÅ`Sy˽°öEä=ïL~ÞòQ]9¶Î¡ã*£b°¶¥-ìhJn¡3ÍYì
++u´ëܵul QeÒê\ja<gImÕbwÕÂúÚ¢(!K¯¸ »69¹°.]ç¬ÅɤJ4Á¤÷ìôÖ¦ëèW¢WSÙP=ÃYÉhÎrV´GáXü¤<NsBØ4,JñÌ %»ê\OÓlg´bZBÇÌ"éTÐ4LѨIlÌ;kÝî:w3¬Tײ¶1ö¨\2Cåy´¯Ü»YMÈE³'#á 'ùzæçªñ«ÑÐMÙÙÎA»jñ Cî"DòÊ0bCX)KVg?Ïî`3ÄtF«óy𸢰¹ÜÁ¦í »²eн¸v
+M%ÈÉ[Y]&TUKfçx©0}Ü
+»W`×âúÚ©-åܵ¤ö9xNÓìºãi4¯öE'BY*Kd'0LhD§Â'¿¨ 4 ærj_u¦L´ê4¤Ii¦q4EMcÚKÇT~W8[XÿÜ^×1ØTÇÆ8²RÐ{&å{æqÀØp»uvXïÍÒËXzY$]ÃÒµtdr¼[¥
+÷ßsÄèmªeó¨MDe* i$SC4<"qBxÂÑ̲·}o¯ámú?MwŹâã\qos_¼
¼ÍoÿG?_ðE÷jPûÁí*ÎJÔ0K4 !':Hê¦õ" )¨
¯EÇx@ü0æ â%^á«ÕÈ×9ù!ú"üéç!õ#«ï¢L¨¬<OÃß
+ú\Ñ°¢áâ4Ùç{å#M¥Úóä¯Ü|Ö½¦L*iZ}(=¨T#8&(A(s$ó\æh&7 ÆLÈLZâOÙb#" QeqT¼,ò:Ѧ©vHñFZeyeeóÕ~1²¡'Iú}Ã$J
ÇÝSØçfÁL*±øg^*M"Å ù5eJ{åÔ1üZê$Í\´:X×LüìÕ³sjîX8v?Y<¥j¬å½Å¥fß-vï¶ù"ü.øäªÐtôRÓ»#wYú-{-dÒ!;,ùÀcÆúÔäTVév£mâãÃñ$¾x at _£ØRC11ÞÐ{£;í`o*)ÆÅPÌø*+©â½|Vµ¥ÁPÚå4æÕ|¾[ô ×óVTæ÷5l.F_¦âbhh ¡±~çb=y>Ê¡Ô
+1i·:õ;ö:°Ã7àô5ù|IJü:°U¥ÈÕxy
+LÂ'5fÅK¼¬WôxH?ªÇTòrW%ïŸbÊÊÊ$éO.Fä
+cKõO|¾©0)¤½Æé®W¦¥eàöºã yæ®WZÜ'*;v×¼r{`ö]?î_|ߥöñå¸Æ×ÿØËkÿìx~ýqy©5wé¶y
ù53\ÕûÎõ÷ÿæ@MJÎôñáñ$yÙìu?efãá=Tý
+¡ºyR±@+ÛUâ"6CPñé÷êñ=ìÕÖOè>s
+Bò\Åa!jd¤£¹8#=®vs< :ªÓÓygµUâ«
+Àt
+ôàa<È»Áä`ý6³pzëbG
+uÂa·ÀR=+Øü
+EtÒ>Y
+°_b
+s
+XÀ(@ûYáÃ,ÌR÷
+5ÇÎuÐ(¢Ú ¡t iÆ%AKÍéP!á@º¨À§Úç8&À
+ÍññDÙ)PC±OuSýî§LcÖ>?¨ábúÏfåq7øÈ%¢%.nïwÆîüîk¸ì=\8ö¬d·ìÆØÆ[ïÎá©æäð|nù¢©ãÓèüZçðÜM¥K1#:(º©*Fè¥Ãp°¨ÙÌLð1;'vÔrøÎ
+«²¸ÎÍXÚ?T®älÕêq§øõ
+ª)ÖcõÌw"5¡Ä#Û'jøÄÉaµµ)Ö:ÐÄ`;? O§#]ýÜÀÜ«whÓïq¾;þÛñ_ÿøÄQ¨bÈýæ&>ÆŪîW¶PÓC"YtKKبñNO\>Á ãà+z»¡Hõ,à8øØx§ýáãÇ+Ôvrà³Jé7 |à ö#¸_zTÂ÷£GÞj´ÛN:íðh*¤J¢z(vÆCO<µMÛâñC& &Z¡F³$¨£q©év: ÎAØ qÎaSã4.и2\
® «ÍµÉµÓõë¤ë5×®Ï\±¯³'v±é9ñÞG¡W]À2ñhþiyËJ³®¥4eDõêQüÄõk>áaÜåzÈ
û\ÐäÙ®E.藺Ëä¸>uaôë«-®>VÓ\ù.üõpKNP'´« ï2@
ÝϯU ÐÔ0kþ>nru»p¹k;]²s.³º.»ð«®w\øëá¦ÓÆGÁ
+Q"úR>F. ÚÅU»\C®çsQBra-íiäL3ÆVóÉLÉRþw¯Q xU
+ª=×}®ùZQ³Õ¨|E~_¼ÈO
DÀè£ÕN=ëQsâbYFf[*,ðǧdz¼ß±`åmó§8ã帻üqãG>q81I°§Æ¼ó£vrÚ{ Ù´ÝÃý ¹¾>$ègU/JÅ«éé >Ûê³e¢gl9oïñ¶ô=éxuÜv_^«Sà'm_mÇ; ;auæuVÓøåÕIMIøXÒ$ìLc$MT[+$)ËÜàv£FËFÅØm0Ï5FcL£
NouaD}B§?sÙ6\ÏIf¨o¸Þ5Kºeçc¾I¼íÅ;í/m\tﺥ®CÝÙôÔøÄ3Ktäß!wîæò¶ÝÜ?"Ù#K<ó×Ì¿`WK1óÆ«N[øyËÙToì`¾{Ô_yH:§m·¸ÁÁìÖDmLhgêþT\\+¹:ïýeÑLê»;ÁY0ÍÇI2ɦË&Ng
+@Y|É
I¯¶K&ká}Õ8â¨"
+)uÙãb^Þ¤oï\t|¸çITF£Õhý3é1/yúã=Û¾ç§gsê
+àTßæ«LåZÕÁSÆÞ¬[T$OáÏP&wq¼.uºÅfí¨ÿxü}Õi{ⶾÇVEý@°õeÊ+[_ÖÑAÀÖõA
jñT³¸{Ä}Î=êæFÜ`tÃ
+|Å$>³é¨õÐ6¨+Û
+\îëE{ëoÇ7üUoÓhâÍÝgg¸1ÅZV^f±Í.³âDlmêòÔE6Ô¢&¶Dx:< ¥ Û¸£$ÓÑVJÇ·ÍlÁ@ýN5hd0_s:㩯iô5U/³Î0u][G4c¨þ#g5i¯ù|ëêÓ_<8ö_ðëïAük]#öýrõ¦Kº^ÏÇÿû
~û£ãWNìýÅ]/xÍe7¹ùTmTn`K¬JUACf>aëxwuÃÙïÜë¼àäÎ$É©ëÖ
+èÎéFu<ÒIº&5:B´:[ýpdAä^ñ³¶6ç¿Ã·!&FÛtÃúG.Õ"3¹è
+ ºþñÉJ缦íÆÂö}ÍýÏuå¥Íªmï)Yþ@»"¾hèé×®$ã)
+6ÌìX;çöÅK~û¶uß¿£Æ·lS¹¡~µ¿ýÜ{ûh[h¦2U²Èl±¸blÁ<²Z>.#^lSã![¬IÒÕµï2ÿÛ¨Ôc[ö¾aÍ`Pk{ ²,G
;ï)©.¶NÕäÔ˦'SæÎ.IH(Yl¹¼Ô®%ó|ѪÝÇÞbãhÇø2ÎÎÍCÔcÚ§HE[pgöl¼3mNcÚ,j³JGWjë´x'ÙO½¦ëµ\&dÎb"Idé²Äé¤ð(Ý3f`Ç#3FgàoõÉj4&ë
+«ùÿó\Ý£z¶úË[_^ÐÚp »ïÙ\©7u±îYÊÂÙEeݦ¾Xºò3V/ÈeÊ®jUi"²íÜþÚìKíãu¼&3T-4IR~¥ÏRýàÛÛ[-Òtô^¶pW²þ°ºIýK\*Ð{Jhë´ÁiWâÖPÛëKVàRHp ²\ $ض$ìNà4v«}}§|A%ol~Ã6ÌÐÕ
Ô§çùs©Aä«ÌÅgçë;47<«¾0Fæ¹00wx.6ÎõÍÅçæ^f!Ðe§L¯vHÆYÕ«P]
+h5oó.F×EaEÝê
+
jÆÈ̼2?
eÏÕ1W·róØm¬h`îÿ¤¬*Z;ø-ÐyâG¬¥mIq9¦©~»þ7äÔJrêî¥Uf7áY32ïè~êþRüQöÄèó:}ÈÉ<ASJ¹Á÷|ûðIdùê|»}Dã'|'}ïú>ôq»}°Éu>Ðø¬¾ h}¶Øàk)U:ñ
+]bíø£ZûX©6áSVà©Àù
+Ñ ø}FÅ)ÊÜ }ÖVlÕffjÄSC.þ3çï98ç|.Í
ráX.Ì
½¹°-ºray.,ȼ woî±\«ØRBÎ\9sAÈå%ø£ô7 ^ÞtÆ"ãmÆ]ÆG§X£¢LØ2BÆÍòÃòïdR(å¥2I3e¬aºÜ.o¿/_ÿ$ÿ/Y!VNñ¯Sè?Éä6ùùIù´ÌuÊ0U.kebc ð2¼'ÃòÏe|@AjåW2 eü'~.Ã÷#±©rHÞ%ó^ÀíR±ò'²MÆÿ"ÿ§!÷åÈ?ÉäÛûCÅ2dË@kásþ¬Vú¦§eØ-2V"C®II2ÄÊÐ1&ÃÇ2üA·dP&^á)É@ñÞ.Ãn¡J2xdHA/Ãþ"Ãïe T¼< î¡_u24Ê0O\&c»Fh
+ÔÎÊ@ñáQö2Ø;d¼\
.!GdD¾á¢çex[dxF2PôÛTôUòr«äØTr>WÉùJNüGUòïPÉoPÉÈÀ
+8dÀr¿|X>#_'d
+¢L/×.Ñbmj1LÅhÝfÝCS0¬`0Q³Êïió%øk¼&¾,¿¾d7]V_
+þeÉæ¹
+µâaw
+\}ì@WcÄ+¢FÛu$ùÙ
+¤
+ oî¾%B{Ðí`g^£ªâÊ\)lyY]f¥@myæ!1¯î²â§1uÁ$2T0S3q!ªHì)Z@î©n¨uUëv3U-e3^WúòBÙ
+Ùðy6¼ýa6>
+û³aK6f³Û²->Í,kGö¾lܽ)«EÌÙ É]¶dTcs1Æ×¼z?ó#^Øïª_Û¼°Ä
Þ Û¼ð©>ô«^8é
^Øé
>¤Øfok¼ðæç¬èI/CÄuF
+^Ó/za©·Í»ÓKh +´È^xwëw½°OEÜã
+ùÞr/2 {à3/üÄûk/>á
'¼°Ã
-^<ÕáÅÞ÷~âÅïxá5/ж<¤B¶y7yñdkÒ,p¬MÊo£zNfôí÷rï/.¬·ó3Þléóî`ÙAÚÆ@¬^ü)kÂ^¼Ï{Äi:Õ³ÜB/¾ÚÌ'(¼[m"41ÒhU¤è÷Uï;ÞO½ÜÊÖ*/ÈQ¶~¡VY³-Â/IöÂey¿`¬ÚáÝç=áåʼÔQöJ^¬Ó2£fª!.4[ùZ¢mJ1ÝScãB9tL©o+ÕMÔ ¥2ÞÓàa/:Á`òtÉÍxòÌÉMý+öVoø7éëV|9}ÃuKò7{üQ¿¡GÝ öG7f©|PÿØ?ûÛðÏ%9¨üº·ÿWÏèât1£×=wnüWÏÒ´ZNÐIWüV¢aNkÔ ã&Wgx}9ÞE±op%c®9ÎôÌ4bÁ³%ͶOqÓØ$|ùÓì\Ú8µYõhÞZ¢%(Íát>#òB}ä Ñ"§ºÆ~x^à»îXzè^]aö¨ËlÙeqE¿Or9W"yW~Iæ·ñíqË!V÷4êN¤òK
+\iø[cß$Ec«ñK»IÆÝWþuì³i ¨óEªGN!5:FC66¤Ó鿶3#ëk¼`2è~8Çà,\
+!cÅ}<Ѳ½ð©<OäÐÑv²j¯OÄõ¨ÞÍõx<Q_%Ñl¶ Íà=Ö.ñqþ¸SOÏ×Þù÷»"ûÎÍó¿£ó/e¢µÊ7§CR:é°Èh]°$,É°<l б+F3³YY8uù±31ØÆG±59w#)[,
+_µù¬Î¬án8ñݾn×ÿ]ãñ+?;þgko}ø£OüÖÎêyÛ?ê/Õÿʶg¶â×ÿd¤ãÚ¶Ç?û^ÿ¹}Õ÷4xç&¹¸æE$M>OÅ º÷)Òõaq¢ð0Ú¯Q»¦h¨2êz¬Ódz´D_2çMGõ7Ê¿Ê<ÏØEI]M÷ÀµÕt?]7ÆÄ3ù8ö'ã/L®²ÿ»\0) ,¸&*é¼ì¯ÅÑyiE³{E¸WZ3ÔbK¤æÏF4¬Ñ¬'õ¥d©§..¾ÕP§Vh`d¢»}%ú³ëïk~vÅîZ§v÷gï«ÏÆæ=ãþ}gçþ2¾gÏøÇ4ôû?ݧÒKiñ¨´q»XfeÓÿù<#¾O¨19+94{)Uè½zÐKÐc]OL|\į IºoôûIù#i|ÏÕ3ê¹~J@ÅG1|3JOI8$lBøXKlz,¡ZÂhP·fm=;t èNÓè0ûÌÌæ~3o45OÖ¬P/ËlÖÆ7
+D{£Zf×0ØýkWQ¢çõÝqËY£ú
Ü[Nn_y/¼ã·Ï9rdü¸ûñä½[o,;Ïot=Ú¼sÏØ;©íP×?©-Æî¿*iD»6lÃ
+WÍr9æ0ÇV at 9þQ^vqrôÚ6u5ô§?%kνò³gÑä>÷en>
+ÑãÊæ_«×{V{p±³Ò
°©g»9
+oå7ñ;yN°·¾?áBN(Èk$CEJ>[¨ÈY4T.âª/ÁH,(¢á"l,òásEYtÖä8I?µZ#Ùó®^¡dwznÞ¼¾îrOÔ¨çÙÕª ýV[.^8Ým pÌ~9ò³7æ´/ØÔMég0¯ÃIeÚAʪZ3»beÀh²Sf°Ò¿$HIô}¶@a&ÚùE!J*²¥ØýUÓðÌMÃMYþÎï¬_;ÜáOo>ªÿǨÜÌ¢cÍv)ºÎ\G: V-æ
+ *bÀR¯(¦jӰȦ!ÓeÙk:l:f"&õ´<|.y4Kf%N]ý¾ïâÉ^þ0ÏF®Ø*Tðñ"6"U¢ú¥Á»=
+&/|M>^½Úå¿áâãó}ç½õLqÛÅZ_ö£áßgÞýÆ Ù~eïoðxv+Þv×ì=Ë;i»âÑ«/¢*3c=!õ*rÒP*Fè%»+¤wRBlGgéè,&ªç%hÆ·Õíø[;·O"£5Ó%YR¤niD:GebÅ2b9gµpê\2"F{ktJju &Ú=¡8^¡=ÒEÖÙ7rF½~ÛH-wªÊ£R¹©.°&¤ªãÅrf.0¦PGÌÀ6.~ðoøÌ=Í
§ÉYËÝWjùí_Vf¯Ê!Ø%{õîïaþÞ¬LÜÊA%¥dè¡
+-G±ã%gàBb#Y,a}ïM57èàxt¥:,èl:¼Hs4 at 24
¬Õ$hpìyuý)Ô½øȾ¶¬n#>á
+0,Â>ºÕC]oIÝRkTwD«ô"ôPî»SÑÌ°,w'ÄDóÅqøªø©¨9t-ÌëEH«ÄmâSâyß#¾$þE$h¦ðå"·Ø!îSQ4¯RDºR<½JÞUú)yÛTòþçÄßD¼VØ'ë^¢ù©HeÛ×EêYÅhãÉ#úËz¬z|RRjèôЯ:ê
+½qòFûù<J.ì ÇÈrp¤-y°¥mÂicÓñDo$PËY/ØF¾ºØÝÆW7ñÕm¼//Xܸ¢¡ÎÔÉóâ_¬Þï½áD@ôsýÁ
+Û¡¤¢¤»þ%ù»)Ø
+öõööñÔ©C|Ç°3ÃuÊÝé(Hµ|ÄzÕ#DãGhËM¥Wû ìj
+±æ·¢2uÑw·úlV1tÑÜ\v-ýsÒt½æõª±Vúfe7©5å¢[hþJ5åZy'ZLcë)ä"Ó6RLÍ"¨æö©ïÞJ!ó(¾Kè÷ëq9oÂ)rÐ4õigÑÿ!¥*dïU¸i*=ÿI,97aùê:;ÕúX/ô©9ëëTø54µE©a=¢òªyi¨]¥öAZÃÒ§â@vª¸k(ÄbªZ³Uå¬S¥A-ùÐÛhùU*ç'!W©¸Ùh`î¢áèøXM[Ø£RТl[/ù:«ÔmR맦÷©£åu¨±nÚ>ú·YýË¥07b^Å«ÖQÈÿÛr}h·ªù½êÈ^íÿ\ç:Ú5êìÆH?~u·EÇ´SmQ
+mVùÝzµÿ{)WRN¶ªüc»¢xÌÚh¬ÖÚLib¥Y¿MöéÆëx¼Y¥g}:i[ºh+³JÅÑr¶å:ìÿ§4çþ_svíWÔt§?ö£¯øý:ú<ò
+ãpx$|.L|ÇÊáágÂÏàgÎ=}O=?#?8÷¼àèÞ£Øw´ëè£G¹CÓÕ¡k?ÙûvÇ·ö%8ú÷íÝ7±È*â¡{ïÀ^<´FöÛÜ×x_×}dgpÂqøØq÷4G_o£¶ kýÇú`# klþÄÔhhh^#ýÞæX^rÔÓw|©§<áòHM#)#øÒÂ
XYXPT¦O
+UTCeÐéQsé÷X./ñ@¬y80ÖHyƨ8Æ2c£±ßÈ>ãcq¯ñq¨-£i¤Áx8
+CÇ,öxªNk'U
µÕËð+¾=
õaÍ®0ª©_^{àº{î¿Í¶W
ó×ìuUáPX`$ûq+]××Û·ÑÃ> >§·
ØïÚ!O$O
+§fS°Þ¾^éÛz=½}ÐÛKÕ]Mï
4ÜÛË{ ß^O=Å@¯ è£/º·Â÷Òò½+è¸þßmU|
+endstream
+endobj
+
+69 0 obj
+15673
+endobj
+
+70 0 obj
<</Type/FontDescriptor/FontName/CAAAAA+LiberationSans-Regular
/Flags 4
/FontBBox[-203 -303 1049 910]/ItalicAngle 0
@@ -668,21 +1007,19 @@
/Descent -211
/CapHeight 910
/StemV 80
-/FontFile2 53 0 R>>
+/FontFile2 68 0 R>>
endobj
-56 0 obj
-<</Length 466/Filter/FlateDecode>>
+71 0 obj
+<</Length 465/Filter/FlateDecode>>
stream
x]IÛ0E÷:ECbQ0¸=
-üÎxËx¿#ëüñð,m¦\ ÞFøXúËLWé/ð±ô¯àiéã6úkýè¿Ó¿Ò:Ñ_÷¥©¹ô¯4þÎké_â¼þj
-ý}ú¨/±ÿðú¾
п@ýGOþÎÓ?GßþÆÐ?×úðÌê¾ô/à/Ñ_çé£W²g¼úÐ_àï¢?zèè_à¼þûºxð]\ô£s9ú+½¨ñFâÊâMýy
-¦}Ìsxúðôþãæ÷ÿû6§qBþ~óéÊ
+üÎxËx¿#ëüñð,m¦\ ÞFøXúËL½,ý>þ<-ýsÑFýW`úW%8úë¾ô/5þæÒ¿Ây-ýKu
BAßþ%êKì?ü
þo!ô/PGbÿÑ¡¥óôÏÑ7¡¥1ôϵ>ü%³º/ýøKô×yúçèì¯>ôø»è:ú8¯£¿Ã¾.Þ|ýáæèã\þÅJ/j¼¸²xSió><½ÿ¸ùýàÿ¾Íi¥¿ßâéË
endstream
endobj
-57 0 obj
+72 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/CAAAAA+LiberationSans-Regular
/FirstChar 0
/LastChar 54
@@ -690,13 +1027,13 @@
610 666 333 556 277 500 722 556 556 500 722 500 333 556 556 500
277 277 833 277 943 222 722 666 500 610 333 666 259 777 333 333
333 666 277 556 722 722 666 ]
-/FontDescriptor 55 0 R
-/ToUnicode 56 0 R
+/FontDescriptor 70 0 R
+/ToUnicode 71 0 R
>>
endobj
-58 0 obj
-<</Length 59 0 R/Filter/FlateDecode/Length1 7488>>
+73 0 obj
+<</Length 74 0 R/Filter/FlateDecode/Length1 7488>>
stream
xå8pçïÛÕJI2¶1³klɶ0ÆÄØm-2Æà_ÉÄFBmÛ\iÒânH¦LCkH.¦÷®wMçr§½ô®¶¸i;mgpÉ
ÌMRð½oµ6?dÚNÿ»¿oßï÷¾÷Þ·»cÃ#AH
Q`A
ú#K8]
endstream
endobj
-59 0 obj
+74 0 obj
4603
endobj
-60 0 obj
+75 0 obj
<</Type/FontDescriptor/FontName/JAAAAA+LiberationSans-Italic
/Flags 68
/FontBBox[-271 -303 1061 1014]/ItalicAngle -30
@@ -763,10 +1100,10 @@
/Descent -211
/CapHeight 1014
/StemV 80
-/FontFile2 58 0 R>>
+/FontFile2 73 0 R>>
endobj
-61 0 obj
+76 0 obj
<</Length 249/Filter/FlateDecode>>
stream
x]ËJÄ0÷y³CÚN% º«&§5`¦¾½¹
@@ -775,18 +1112,18 @@
endstream
endobj
-62 0 obj
+77 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/JAAAAA+LiberationSans-Italic
/FirstChar 0
/LastChar 6
/Widths[750 277 277 556 222 222 500 ]
-/FontDescriptor 60 0 R
-/ToUnicode 61 0 R
+/FontDescriptor 75 0 R
+/ToUnicode 76 0 R
>>
endobj
-63 0 obj
-<</Length 64 0 R/Filter/FlateDecode/Length1 17732>>
+78 0 obj
+<</Length 79 0 R/Filter/FlateDecode/Length1 17732>>
stream
xÝ{}\T×µè^û3Ãfæ0s`d8À
QùÑÄTLL¯æˤMxÓ4ÍWëhLÔ&71mÞ61&mnonÛÚ¤½©Õ×´½5oí3Ñ$í»ïýÞ_o`ÎY{íµ×^{í½×Z{3áH" Ñú6ôæSBÈëÔ·9ìÙÜþ§
@@ -873,11 +1210,11 @@
endstream
endobj
-64 0 obj
+79 0 obj
12015
endobj
-65 0 obj
+80 0 obj
<</Type/FontDescriptor/FontName/BAAAAA+LiberationSans-Bold
/Flags 4
/FontBBox[-184 -303 1061 1033]/ItalicAngle 0
@@ -885,10 +1222,10 @@
/Descent -211
/CapHeight 1033
/StemV 80
-/FontFile2 63 0 R>>
+/FontFile2 78 0 R>>
endobj
-66 0 obj
+81 0 obj
<</Length 431/Filter/FlateDecode>>
stream
x]M0ïü
@@ -899,21 +1236,194 @@
endstream
endobj
-67 0 obj
+82 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/BAAAAA+LiberationSans-Bold
/FirstChar 0
/LastChar 46
/Widths[750 556 722 610 556 277 610 389 556 610 556 333 277 722 666 277
556 277 556 556 610 277 556 777 333 722 943 610 777 610 610 610
610 500 722 889 556 610 279 722 722 610 556 277 666 556 610 ]
-/FontDescriptor 65 0 R
-/ToUnicode 66 0 R
+/FontDescriptor 80 0 R
+/ToUnicode 81 0 R
>>
endobj
-68 0 obj
-<</Length 69 0 R/Filter/FlateDecode/Length1 30072>>
+83 0 obj
+<</Length 84 0 R/Filter/FlateDecode/Length1 20336>>
stream
+xÕ¼y\[×µ/¾s4G#æIÇÉÂØAÆ`6Âà0§$6q<Ä8¦ÝØM4IZÎÐØI»Mî½M4¹mï}ïÞq§¼¾6N|Óá¶M¿µ¶Ó¤ß{ß??sÎÞûìqµ×ú®½·
+Fý[ûÆW7 ÞBû·O:Y÷¯¾©Û¸5×÷âlÉù[v
+¾U{¶!µ¡²_EúømWB9¨£|}FñZgmÜfÛ)x/ÄïÞ2Úß×üg¿ñX|kßαGè¯(B
+;!îéÛÉ{Mþ
+¥JÑêôÁh2[¬¶ä{jZºÃéÊpgfeçäæå{
+
+¼ÅJ|¥eåUÕ5µuõ~qqÃFôÿçÿÿº êî7}¸jdF;cô¿á[óÿm/ñÇè[èt}B¯îB{ÐèòMÙ/¡7Ñ×ÑÝèUô:úª½õÜ&
îC=_
+?
FÑNtÚ½ê{Ç3¢^4î@ í0w{=¶ý?^ÇJt+öû¡÷A
÷¢§Ðf¸¿÷GXùÝKêÑyÐaa/YɯCÛ· 3x-Z3lz 4tS]Ùt:n
ÐÔoø}ÄÔsFÇ¡'ÃhZZ¯#0KÐQêÑ|½(¥/+{Wbö!t|WÀw
+¢ßÎö¶U+Ã-·¬XÞ¼¬)´4h\Ò°Xô××ÕÖTWUV-*öäædgeº3\Ù èuZµJ©Ëx
+î`¯3Ýå²Ý¡P!»û ¡ïÞ¨7ç:{¥lÎssð39ÅxNq!'µ¨¶°Àp;£o7ºp×Êmtw:£W¥ð
+)ÌeK-D\.(áØQÜëDÛf½Pßyµj{IDUXΫÔTC(ë;së± ¹êó)´¬Ù(Í
+ô
+DÃ+;v«³° )ªs7J¯Ð©Ê¨lIT.Uéf]GGç.ÏÜ}A@z=÷@ߺ(í²3403s(jðDóÜѼݿ¶ÁÈ#Ñwc êaµ6·.´Ó|½Iå³·sæOã¾úÁÍ)}Yð'ÄA ïÌLÐíÎôÎô]Þàv
+îóÍÌX
+
Ñ'Îú¶¨Ø±/Á£Àùb/èë
+7JìzÝcQ³»a¬[áURD±¨yIõö'JE½FÖ²30ÓÛï«Ë½²ã"òÍ]9_ê´?ïC¥¨³eNZré:zí0ÓvWTìwº;"LÐByW 9Ôb,iëh^ån^ÙÕQèHü«Ë
+|¦w=^
+\T¥pv;í$8p7ÔÂ=*ÏRÀ%
+¼v&
+FÔÐü+
+ô¼)»4ûÙ|vû`ÃæóÌyQdsyMÛwÓÀ{UG4Èíöݬ-#jÆÍm
+
Ìλñ]+Ïø®U]\wµu<G0YÒÛÐy>Þu\t"$J©¥²Dq²«©"
+)¿ý¢Ð´ô¤xÿ¤4Å|FýH<MO#ÆÅÓD)}K¶! 1èïsñç¶Î¡ÞN&ã( (8Ýõ@wýyLd¨ÊiªÝ
+,ÝÏÒýñtKdà$\X°{F¸ÿd+L;Ú½|YRDË2Ä3xé}Ûû6ö¾m¬ò¾½¨Øgp¨ËàÚKÉ1(F>513 hÛÜÜv¾å¡3baU¦NL£©¸b§£ØAzcrÚ§r:UjuT
Uæ.¥&¤Ry¶£PïÚbh [(²b ¦¬N!Y=)Ng
+'¨ªbU¯jLÅ«¦U类¨8ªIèß#ÿj·ÏÛ½Íïó
+W»1®vC×=hðy=ìÕø¢bÔ
+lN'¾zRaÕQwF&e¥Æzì+I'Vy¤è®Îm»s?ÒRm9Ú:ùÈàÑ·-÷o&òàèä§ô¥M}µ{[³ÉÓw~ÿîPñ-åÅÈL}ãsk+ºw5,.êhÌo<ô/q:ï5q· =r£N±n 3VgTL]J6ÛpÓF6q±ÓHÐÒsF ô
+T²R" %¬a> Æê¿
+C¼
+q&ÀH`ôiiañ$Ì5-ÙóâøÖó·7Îþö~˳b¸x¤¥ÐÛ2\µx4\HÒýèî@ãÝ?:89ö»Øû{ÎlÈÉë?së'6äælxcfî}.P·ùÐf±¹1£-c 6¬-Ù\B«ñ& ¦
+ór|J~@Ω¸n77Ãq¦`>
+ñ ãi#1ËKËR,Fä
+«BVQï*ûó/Ìç»>¶,vgà*I²úJ³K³Ë>Ëê.¢eó-K®_ôØ®ï½ïÚõø"ñ|fýEZ]ïÀ榬¬Ð¦Øëw~c¸f
¯ÞÀç*ñãrBµ%YR·ZT<üÔÎɯôæ
+>.ñò
+¼¦ ã½y8/¯Þn"ã4FQ8=S°é
+öÊ°nÒh¥á~¬ç¸Ó©Åà6
+®,ì1zöN½lv²e¹\¥áËêð}ä¤@ô¹>t(ëX2êMúNý°¢®½úãz¢SCHõz»YÞ
â´"ªà²³¨4Ìf¹©GIåFLÕy®ë:O÷Õîn&,¸`"¸¤yíÁi÷Ôìúæ±ÿu ¿uûË·Õ_>sæϱÖ]-Ùô|Û#;C³1>P½éËëo¿cöªgÙ £ïAèï:¯>1E¡`\]à¨J
+ÜD7psÏHr%ÁÄ÷ð¿¹è±8ÿͯ
¾"¶$áïJ?NRp£¥ÍB
+k
+dJq at AÔKUªÔ¥~{ý¸ýýÇþ}ÎN{íØnÏ1-eµÙ1²ö^û}Ú~Ù.³3ðjOÙí¶°+Iæê½êãjª!¦À¦G²ì¹mÞ®vo»qÖÉ0%LÌ.|]eÏ[}«¾Ð³ááÑ ö²0½}õX°¥Sí[^S6?:pøÒrþøÿ.+Y³½Q·v¸bøS#Õ¶jܶ¾jõoCïÀ>æªA[Ómzc(b20Ò¦´Î4BZC¨ÖQâ!5 ¦i
+@$
+"²IØ-ÌTzH°
+ÛvÙÃD
+
!Ý!8/©!ЬFÃ
¹k¢Ê ªõ!Ã>¶]»"jµBÈ&é½&ÌÛ~òÁð
+^Ø×a<Fñ^R<@6Prbz2¶F>õ#¾ý2~¥¡]âêíiÓHiÞ|0&ÇMyï26^-àÚÕZÒ$ï&Ú lm%O£Ã¶6¬Âs6zô½7Í;Û$ôl»Ù\K0l~ÝBT Vg>7ÜiçÞËÓbã¾K·ý7V¼ùè'O>úÐã÷§ýí|çúç1ÿµg19»:öDì¬ÃòØ_cÃ÷l^?Hth=1A8Ù5éÚïâ²å$kH;%ÚdYØ!ôZIþìF¼Ã.Ã<ü{¨h1ÐWM¸¸fãÉWxJ¨mqû¦UÓk
+ÉKáu¶ÂöÛWÎ¥«2Ëùª³wyYZÁºYo\.C_§anÉÑ2q\9¢ãpøÉqr\"ïYé!{!úyÈ)ÌhR,¼ÙLCÿ³Ûï3¶»±z-àJ¹§?YÃ=}ò$k¯Ú
+òMí¾î;WÎ~uyeæ¥åÞoSIJ'ñ|O=5{ÑêÌ:àM2Z/6F,SÑOé0`2m=a}×zÅzÍÊûø2É^ëq+±ZíÚ®ãªSªs*ú
+3w¨ljjLÌDQMÌ<îJÖàãêªw¼¸{òÕëëFÓ^ÿ;ü[+˦^9D·~úlßLGnnç4(Ííièï]ÀÛ´=!úg2ñîôt2\·«îpÍ*/+'&'X@5ÉJÒ
Ê:%å-
Q@~ÅA»¦¥²§TVZd/͹0÷±ðrÎÉñ-U+ív_>ÛM¼Ùdzç²iv¶+\ øÂF´R.×$àx5º·æNTJÀ½óow\x$EÒàÅQ$(?wÊå9
+nTÒj<ÍY!³×@N5¬a:×3
+|FWy7°¹¸?ÂFBÏÍ/WX-ñ¥¸4ª¯ñ
Øß°¬pàÔxZ8¼ÔbµL
+Dþ==ûi8%Éãkó©LÁÝCe<5¯oV%0øEf?¤þûÅ1Ý´pZ³vR»_ËF£'éA®+8å
+ÜUù¥¥¨
eøÄJeòϪ/IÇ]|QF©MlWíëò¾¸`Kø·b»K"E×íÄ$ÿÂÿ¦$ü)Ð5µÚjà¯êd`
+üßüµu
+ËO°0F¨¡÷3ò0ñBÞ¸{ÃÖW\ øÚï±'öoLMAÿ¡É1bîéH6ʲ,-
+B±¤;T)«ìȶé
Äp¤+¿a_Éàç=ü²?ïÓÆ¥ÛO®Îk]¾ØTjÉìåÅIów¿ºõ|¹F¯¼×¨ä©u=Kè?In2ðô¤°`ô®`oÆñr«ë¨\)®|JÅɺ Z(s:d2d¶hþÀHë_¾Ai/¬/ºKi¼ÕZÖî76å¼x'¤Ô·n
+víkËX×Êlã/øôÙÏ"
{È¿JkeÐç ©¢>±a7!¤Ñ×æðÑf÷Z÷f7æqY*æÇãCK{]Øå*÷ÈÌAd6Sv8%]0!¥8,£ÿx¥34ã$ÇLñç7|ÿ[ÏB)þãLpÅOO½þÆËéþMM¹¹MÃý½¢dÄ~{õ"§ôÔr¸«±Î´ª¤ëpOì÷±_}uã¢ÂO߶ãѶzQ}0«EÅ]¥uxk!nN[F6¸W'ë÷×É:,Ö
ëÈÁZÜXÛVK¶W¬ 9ûs
+L0÷Y§ÄlÍ´X©´c×{ôõ´TKU¸b ¡ö4
+?(7᤿ú4þvÜw_ÝwÐ3®3A¿°63E#X¸ÞT*¸G :Iwú絧¯$®?i\þ^Ò¢T×¥MìwI>_L;ðn«Ð0
+ò.'d;¨ðâ%Äö(^ÉTÿ äg
+IB³^gÖëuZܺ\®5˵·¦¹Ó˱YÓä·æ¹óó9¹åIToÎÌßOóóôùr\&OMMÊ˨^ïNJ:D´é¤%7¼W¶þÝÓÝ
+R' 5!u"wÈö
æâ$þ$g'îòx¤ÕZÏ#u
++~]Â41Û#H¬xVÄÞÀµ¾kcoðüáäINßç>ëàÒ¹f´ÐI±~wñL1ôã¦]ÑÐæêµÕ«ióiIÚ85źÛ:cå¼Á°ÐÖ.e©,È¿<w
+ñ0ërõÏ×.¦`òn
+IÉÕW3Ââ°ÞbQSVæJÆËJâv]úVØânܲߴÜãLØ'ù¢î7KÙs|iUé3lì:Ü_§½`ض®jíb71Õ¬
+Xçñô<8²ík
m¼|A§»["eK6ééþ¾²Áð¢XGöÒ
+µÉÍ+3w®þNîòjwÃÁïºó£Ëûë+r)¨¦OÿùW¿¡ïl{´¿ °ÿ+Û¦N®Ïñô>æàü.ÝCÆWi¢ZAH`ùeoܪ1{&lfÊð-¤¿{ú4èÜô?¥ó±Í/E)á@ÕlY7æ ɤ@]Â:Í-ï
©ÇL-Í%!nýa¦HË
+Ë9rÔcêi5À-ÏS¹
+&×ÓøÏ
+N:ì&ÑÏz³Æ#¬±KqY¸KâË®»]JìV2
+ôLìRì[ßÁ§bÿpþ± |¿k$D[ýãìÁå0î# vä@×."nîø³Ó¨'álLzSi©Î¬¹Læl|#]Îɬ¦³fþ¬ÌzÖâ¥~¶BmÅ2QQÁæ´+¶k6bÙl23U¹FyÉÓÓ¦am*Î-n1ô>ßKtdöjkOii¶<ZÖÀ[MTÅ#¯ÏZ?nóto3ø|ÂÕÄ#¾¼§åØ&-Oùc_z㵨mSMê6±Ë]æË@]>HwècK0ûMÇÈêØÛFÚÞüÅÿÂòμ¹c¤ãG³b
+¿*.¾V \ãÉz3Ç2§3ifæ;lEK£Q;aãÌ dûc>¶2Ò% /æj÷&¢ùÊêù÷Ø$ÂpråDÁÇ8г´¯¦¼;X ¿ GÛ4üµ©úÕÎvMõ¹gÿÕ®©²§×vÖTwÏt®ÿê}Ówï·õßlýbé¤j¿U«U*: ïÓ£oF·"Ò:©Ra³
+c';2ÕãÊ}J¢d¡ZR(ð1Ôü© X1y|ùpD®[L9VÜNªºã»d¨åÀVJUUmIë²Ý]X.aÉrý>ü8Ú_Ä$@ö<ó
+û
+~ÉÔ{û±eÇoëMy÷ÝCgs:î˨k+ùdù=ÒúÁQàx*ÑâÝÙ-ÎÎCN:²3宨h¯ EíȲ®BÒ³6$ &4âÏ:u*ë\w9ëÝ,VQ©¼#WÒ®¥wÒ0JÒHZéÉ&B6."C®àº"
+,qØÚ#m«,¨/É&ýýø
+« 7®%üC9pÿ·v¬Ü7J:ºcí²í°¥©{seï#[jü;Ï~ð_od5m.
+å¸C«ÊÈ¥ó±_êvÇZìkÛ÷¿qwÏÞ¸ûéÈÐÓ;b/Dîì¯)\5lXS±$2.Q~QV¢o{¦räí²ÜEÈNÅ]
+²#íPÙq8ì4Þe$x#aYÆpE¤g
+Òc$ß_H=Fõëߧõõ«B#WT×TY °d¢ªj
¤
+½)ò]üa¬Ïn¿dÀ¯VI3ºû¦IÁþþhQâ,
dÀã'ÞnÔûݼúìR
+¬zñöÛ^ÜQåm×tû]UcOnxz´ÜåﮫZáù¹½~ )ØïOMª¯¬0¸S'V·ÎàøJvLïn»gK]Ýæ{V-h+Urºú¶²ÆÛ{«ª{÷4´Õi8UYÛ6âó¶ÖºÝµÞ¬Ö@aQ uöÂÎ¥¡.oMdY~^óÆø¼û qXÎr¦ôèrR¹_IoÅG0iÂxÓ&æ/0¥zQIJçðrA©ôU
+Ê6¶
N©Ï©/©i\
+F
+"pØaGVHz&Ù¥§(8$)Zбz¼ÄøA©ªªù¸")[ÆOwÂ7 at 7ëØ{c÷îáüÅðð6ÄFù·>í#Úwö6±
® ßö"ä(G4Óû 8?÷{el@Æ#$#HÒ9¢«Ím7õ±Þ},÷JÌr4ï
+]AöÎÞAöÆi ´{
+tÝ/Êem2ºNkäÍr¨<Y'§«x\Ê7ò"^à<Õðr
t÷Yd_pNb©2*¢0êEÔÏ2x]ñcY>iµÞç[Xúçîøù¬EÅ=ë»{$iKü'òÆ«±Ô·ñv<ù6 Í^ !2;ûÒµ~ÆÀÎ!)ÑR±B¡Æ|b¿ëñã½ w©ò¥X´äÇÊ£9åDw_÷ã«}ì;¾]wÞÊ=3>:û+ð%ºÁ¥ª{âm¿¿G_û'äÿ^ýº¾¼tþ7ÕsÄÖpÿ
+Üb?f'DÌ~k=ûÐõ_m'þûÀ
+qîm´mCûиϣÑ×Ðqôà
Ö
+{Ý6ì(´û¶d
+y#Î-0(Ú·q<ÙÊF:%õxÇÐpÿs×賯¿?26 aÙ¿¨æ¢ÔÙ-
¤¢F46Â5 ×nAÈ WÄû ô4\%¨¾Zú«ò@h2'ZFá9&Ýû¤:Fámw|ÎêwR,OVv»ÔVèÌa´AJ¹^ÞVHÏQÐ/(=5õA :)=Ç!="õ®zçDÕpý㺩-^¦¢EÒ=>ÎÊÿÃZVK9'ò-úSú¹µÌ×Qø:>¿ÅabÒFóRþÍ6
+'ÞƱT²
+/açKá¦_¾ÄM¿}è÷?ÿÑóÒ¦çc:z"J¢ÑËÑw£Ô{Î~6ú,¹üì»ÏïYÿYrêëøò3ï>Cë±`8»
+endstream
+endobj
+
+84 0 obj
+14341
+endobj
+
+85 0 obj
+<</Type/FontDescriptor/FontName/KAAAAA+LiberationMono-Regular
+/Flags 5
+/FontBBox[-24 -300 607 832]/ItalicAngle 0
+/Ascent 832
+/Descent -300
+/CapHeight 832
+/StemV 80
+/FontFile2 83 0 R>>
+endobj
+
+86 0 obj
+<</Length 520/Filter/FlateDecode>>
+stream
+x]ÔÍ0à=OÁrºï50#E2ÉDÊ¢?j¦@ÀI@,òöåÜã¶Rp¯ýÙÂdÛÃîÐwsömcÓs×·S¸
+÷© é)\º>q¶]3Ç+ûo®õdKïñqÃõÐÕ*ɾ/ÏnóôH6íp
+ìëÔ©ë/éÓíq¹>ÞÇñW¸~Nód½NÛp^Æù\_êkȬëùÐ.»ùñ¼´ü+øx!»v¤4CncÝ©î/!Yåù:]í÷ë$ôíÏʶÎÍÏzZJÝRç^×KËåY=²g.ËU\2rÅlã¼°þù÷måÂzßX³EÞ2[ïõÖûnY¬~Ïü²dÓüLU"Ó_aLG¿ÇZ\ô[=ý<þrL5ºèwÈô{«¡¿´¹¢ß<ôÌ~±¹è/7ÈôW_è/±oBµý6_rg÷éW~ÅBõ
+ýõ
+ý~¡¿°¹è¯*dú=Ì÷ßîG¿ÍE¿·¹è÷GéWÌ«ô+Ö«ôØåþð(ý{¥ô{ìÒ¯oÈñý±úkWú{¢ô«Ý§_ÍC¿·qèW¼3J¿b~Åz}ôc.O^O¿`LýVý¥¨xrp´pöÿÙ´¹OÓr\íaç'´ëÃßoÈ8è²ßoÑ
+¶
+endstream
+endobj
+
+87 0 obj
+<</Type/Font/Subtype/TrueType/BaseFont/KAAAAA+LiberationMono-Regular
+/FirstChar 0
+/LastChar 68
+/Widths[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
+600 600 600 600 600 ]
+/FontDescriptor 85 0 R
+/ToUnicode 86 0 R
+>>
+endobj
+
+88 0 obj
+<</Length 89 0 R/Filter/FlateDecode/Length1 30072>>
+stream
xÔ¼k`TÕ¹0¼µöÙsßsÛÉ$3Ì\fÌ$+!MÈe CÈE%\DÑAä+*JêáX/ô8(µR{*=EO}ÕJ[ôµR½¼Ë±Ô·¯á[kÏm¿ïÏ÷çÂìuÛk¯õ¬çþ<{Ö¹m 2¢QDrã-FN?ÿøÏBo!¶×¯ó6%YLËgÂâÒn)ðBä<BZþ¦7,ýö+|éÿÐ`ϲ%oþÝ/Ã-Iç¨_FÈnÐÒú6ZݲîÏ$®Ö¦sVܼêÆEzþàÝ-?Mû÷ß²èßk~Â!´âfZ÷ߺè%ÜSËÓúý óGV]7NdZsõ¬Y2òþGÖÒ{ð:ÚôûiQÃêp¼F+èô£Él6»Ã)¹
Üo¡¯¨ØC%¥eåáHEeU4V]¯«ohlÜ<¥%ѪLmÖÞÑÙ>ýßùáw#'Jò-ÈFÔïk>är³ë¥?^ûyéËÿ?W!ä.ûÑSèÚÞGùNBËÑm´åêÏÐÏh+û¤P?zíüÓA/Óþܸ4ÚýãRèô"ú÷kB· »èZ¾ÞjôEUèsÐôõsÚvÝß
é×Rµ¸ôªÖÐA¼ÍÀ/e=8Et=éÌëè>w_Þñ¿tÚH¿ç¡eh=-«¾å«ÿBºK¦»Úf »ÑTtóUwü
@@ -1074,11 +1584,11 @@
endstream
endobj
-69 0 obj
+89 0 obj
21070
endobj
-70 0 obj
+90 0 obj
<</Type/FontDescriptor/FontName/FAAAAA+LiberationSerif-Regular
/Flags 4
/FontBBox[-176 -303 1005 981]/ItalicAngle 0
@@ -1086,10 +1596,10 @@
/Descent -216
/CapHeight 981
/StemV 80
-/FontFile2 68 0 R>>
+/FontFile2 88 0 R>>
endobj
-71 0 obj
+91 0 obj
<</Length 541/Filter/FlateDecode>>
stream
x]ÔÍn@à=OÁ2]D0÷&,KÄ%/ú£:}
@@ -1099,7 +1609,7 @@
endstream
endobj
-72 0 obj
+92 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/FAAAAA+LiberationSerif-Regular
/FirstChar 0
/LastChar 74
@@ -1108,13 +1618,13 @@
979 500 610 722 556 889 333 759 943 722 666 722 500 500 722 277
722 333 556 666 500 500 920 722 666 722 277 556 500 500 500 500
500 500 333 333 722 759 277 722 500 500 443 ]
-/FontDescriptor 70 0 R
-/ToUnicode 71 0 R
+/FontDescriptor 90 0 R
+/ToUnicode 91 0 R
>>
endobj
-73 0 obj
-<</Length 74 0 R/Filter/FlateDecode/Length1 10384>>
+93 0 obj
+<</Length 94 0 R/Filter/FlateDecode/Length1 10384>>
stream
xåykx[ÕèÞgëiÉzXËåsdY¶YKq'¶uâØ'±ü
²b+¶ü±åXrBÁ)¤8¥¥@¸@ètZ|¥
@@ -1173,11 +1683,11 @@
endstream
endobj
-74 0 obj
+94 0 obj
6823
endobj
-75 0 obj
+95 0 obj
<</Type/FontDescriptor/FontName/NAAAAA+LiberationSerif-Italic
/Flags 68
/FontBBox[-176 -303 1086 980]/ItalicAngle -30
@@ -1185,10 +1695,10 @@
/Descent -216
/CapHeight 980
/StemV 80
-/FontFile2 73 0 R>>
+/FontFile2 93 0 R>>
endobj
-76 0 obj
+96 0 obj
<</Length 315/Filter/FlateDecode>>
stream
x]Mn0
÷>
é"Â&4BJIXôG%=
endstream
endobj
-77 0 obj
+97 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/NAAAAA+LiberationSerif-Italic
/FirstChar 0
/LastChar 20
/Widths[777 610 389 277 500 500 500 556 389 443 277 277 500 277 250 722
500 443 277 443 443 ]
-/FontDescriptor 75 0 R
-/ToUnicode 76 0 R
+/FontDescriptor 95 0 R
+/ToUnicode 96 0 R
>>
endobj
-78 0 obj
-<</Length 79 0 R/Filter/FlateDecode/Length1 13308>>
+98 0 obj
+<</Length 99 0 R/Filter/FlateDecode/Length1 13308>>
stream
xåzkxÕè©Óó¦5ÖhFÒôhÔz¤5zÚÕõYÖÃzØlYK£m=,
EÖ`[lÂÂz%/Nìp`¸_B,!Ë].(]K0n-ÍîwÿÝuwUª:çÔ©ªS§5é=ab"³#òàxhª««5Hù!!`Ü®É@ø2!OçÞü
@@ -1289,11 +1799,11 @@
endstream
endobj
-79 0 obj
+99 0 obj
9004
endobj
-80 0 obj
+100 0 obj
<</Type/FontDescriptor/FontName/EAAAAA+LiberationSerif-Bold
/Flags 4
/FontBBox[-182 -303 1083 1007]/ItalicAngle 0
@@ -1301,10 +1811,10 @@
/Descent -216
/CapHeight 1007
/StemV 80
-/FontFile2 78 0 R>>
+/FontFile2 98 0 R>>
endobj
-81 0 obj
+101 0 obj
<</Length 330/Filter/FlateDecode>>
stream
x]Mo0ïü»C¡|´Bêh8ìCcû41ÒQ þýb»Û¤@¿Ö;aÕ3,á«Tè£ÌÓÍ)¸&±ÐZîýÕØÙ ôÚvÓOEoþl^Ü*6G=]à!_7«Ø|TÛµ_0YD¥ÐÐû>O}îFIµm´?uë%ï«S,Ù4̶Sà:s
¢Ru]`ô¿³8aÉ¥Wó¥ÒFQRcâ,EÞ1çÈ ³DN©>##äû÷\S#óùÈùò#ó¹ââ÷!>sú×̨sÌþ³=2ûOQ+ïþ3döã]$ûO)Ïþ3ô,ÙJ=ïþà}R8JÜõϺ9ç×Cöü¾;YTÑ÷
@@ -1312,1183 +1822,20 @@
endstream
endobj
-82 0 obj
+102 0 obj
<</Type/Font/Subtype/TrueType/BaseFont/EAAAAA+LiberationSerif-Bold
/FirstChar 0
/LastChar 24
/Widths[777 666 443 500 500 277 250 722 500 333 277 443 389 722 556 500
443 556 556 333 722 722 556 722 556 ]
-/FontDescriptor 80 0 R
-/ToUnicode 81 0 R
->>
-endobj
-
-83 0 obj
-<</Length 84 0 R/Filter/FlateDecode/Length1 22684>>
-stream
-xí{|Sõ½øïß9IzÒG¦
Ò×ik-ÐÖVÀôB¡´µ
-/mÚ¤4Ð61I)ÈX/L©/øBÇË´ zQÙ!Û®Âîw×9qÌ"w¹À¯ÿïïwN´ûùߦi~ç÷ûþ¾ïW¾bÀ×æBhÂÈÚÐâð¶Þ½°!ô.B©aq@8²éMXÿޤѻ ¥½=ßgôÂæ¥y[5³6 dXÒär8Û'ß
P
-{
¡G8)E¿pT¨ü\Þ.Îw!þoBQ*êá>@~´ð¡TFà£x'ú¨P_96¢hðbæ<¨_Æ×ÀÎÛâQô¼<p~ÛʽÜíçîEÇÑ#XৡÜqëúÝí|øeßü¿
-¸ÂýÇ_@âqNB{À=ЪgñXñ8{F@Ùvhz4fmP¡{{ëÕ<ºÑûø|7þ
-·ZȦ¡pÚ¸£w4ÜR¾Qì|»PÇíDuÚzÀý#*ÐÜË×Dè
-t DºzE«ÌsÈ"vóåÎÝÖ[çÊïÌKkò(´ònT½;j©ÜÓß_=WHçívãLÝn!3ãÃ~8Ö2£z®¼û¼TÅj«+
½Ú¹°¤O°
-û¶RvFî3á·¼n·ÜÐ$ßg¸/câ}×ı 6ÔHºFqd#-eÎ"ÍYN'vðÊ=t¬÷Fd8Ö{¬7/ÖfÌL3¦5
-è'ûti£ÿþ&qý]¤{P<ô¨Ø«çv³¸uB. s3vìs÷z7Ïë=QXhOë5æqÖ¨¼(kTuT]ÔƨmQù±Ff7® ü¸Ã?9úÑÌ)kZÅã}¿ÙÙ8=ù¯èéɨÄ6KM+¹ÍÒ÷Sz*¢è¤x1!)'%4ùÞüs qD!%ÛÛ{¦×pª0oOL:ÇÍçi@î¦ë3iùñqf6
3iÜ\éSO<ñ9ÀyhÓ¦Nöøöæ§Éé³çÿÈ>ÿÛÎõVóäïnï3_Z·Ý,yä_~úßO_-nÖðÑJ³â$duc'Î
-F&è
-)àçN;D#àõArìLcÚ¸4£FÈÑÒò
q9\ða¼ðy7µ?tí¤[ÏÝù=Nëñ[ONO¹Xδè¹ãܦgÎwÔÎâåZ¸VîÑieÿqWù)ùwòùi&¢~±±ÿ#¡øÔ£ëÐ\ëu±µ&uÇkºâ6tG®Kß´!32=")!%6 §¥&f·Àä Æ-xªá}Á ¬f¨qÜQþ(>*h´;Rö¤ðó!Ò5qæøE!Ç·pù(ÎòÄó;ÖnÛ¶Þ\DÅãï¼3iÏ¢9þ=9ONqÕ\bÅãxÒþíO¾úêÛ÷óK{®»ü
|6g>ùìÏ âîçrõÜÓ)¬à"Ô_Ìïavk5£QÏñ£0ÂÅü64q8÷K9gz|ÞóÒ©Wñºçÿ¾S<þ׫·. YqŸ[à»ÅZÔ¡KÕ$aÊA4ÌØC=crèsü34Mz@»7Çüü iFq\f¼pÓÉ£ë'Üôs;v
-þi=Óúïdô bÓÁ&Iè1k4Ixd%¢aYlxÒøPT·y
-y8³æÏf³µ÷÷;´ÐS$£ ¸$ÐbMÛ(b iZ°jÔªÄUIÏ¡ç ¸ñhÂ-Méí8jQæG
-Fæs~îþÇÌg×Üõþ{Íý#g¶Ý@Îìܹ³Û4±åáòö®âwoÌÿãw<íM&fþØ þ¸ùãaÕtPwä&ÓI1)8).q$¸ß^%T§ò¸tÞh0ä>+ºRF:ý˯ßòÄðûÄg¹ò·³gÉ߸±%ïÂû(¹»+è&~²t?s{¸û)+Nàa$mj·%tKOÝh]|j·aSüLmRRZl
-JOOb!ì¹úùk0"â%¼9ê`âÁ¤Éo¦JÕî40}bÂÆ¥¾L±Ñ
-hÜM¨@ôë9¥Ø°ù°bË{GÎrßs3ÈÇ[¸[ÔhI
8à¢8Óì;¸?ÿgm#·§ðc
Êô8ÖRÕô1Pq^^BxÓ ¨Lg87¹7<êoUOëIuDÔciÍXñFüug»5æO¨N
-:)ºÌÁo¾R^ÏL>ÔOÛÄ)Ê9~~ý8cƸ#×Î-#«gø_{íøöÎNq+ysãùîum{¯ÛÈÝÜ
-öiúÈtð}&´/²ú)æVl³
-ñkÆeh¦CÛ¡ëè:ôË";¢:¢;b:Æe¦îÓ ÆÁYj+ùzñ
;øâ§99uú¿Égpòðá|çíO¶wH/ù¼
-i,ô¤7³¥Nà1·&à£9Mg´±'òÄñ:T¡ÓSýÐ deôÌ¡^£iDaÞÞº¸ÅñT;FÅ
-hpÅÎo{óûöÿkÛ?æw¿ßºmëë;Îw
-u»\ÎÏ®§ÿ#ü6ÐÍB'£"ùh}mj
-XD+Õ¦¦¦KúT!áÖ æ5qëFî3
-û2{F§HúÔD-ªIÔEkuætÛhùC½N*½Kà×=E¹dI$fm´Gö ,ZÞ[¤$}RdNE²è-"&Iô"õ2¹ëøÑÒhý
-±¹æܸâG§NͳӮËZ#ѯ\e¢ãy¤ÑãH
£q6à<
-'â$!9"+7{Jö]ÙÙ+²ÈîÎ>=òÐÝJA¡¦Kåhg¦gÊbÁE
-Ëå@ÊÃë+»mݺú¦zúo¿¼íæÆ;Vmp½`}áßý´q¯0e×èÑv»µ<-úG×my9#ãõqãæÝ:£:3æºÍ«¶¾¢øÞ2ð½± _ e¢Sõ#"¢Ñó#4û¢òÔýIû2@#"Ñ<Ú8ë̶ëÁÎïëͧÎÆ>tâÌ9Ðæi(4Ò<Ñ'ç¥å¥Oɲ&[S¬©VÙfM¯N®N©N«ÓªÓ«³¼Y«;S:S;åδÕédugÎJ ^
-^
-^¨K©KëÒ¼)ÞT¯ìM[²"u
¼"mdxMþ7B¦¡ë©¢ÒÂÓy<ÿú/®ô<º¯§gʵ/9ã}¸îe»ëõÛþç4_и¬Þÿ«½ÙçWîlt¼±ýµ¦õ99;³²ÎÑåôWÐÃ<§CeÐK)ý5Ê ¶O^ñ´¨Q
-$ù½jüàé g#¶B£×"£wF÷DÐJhËLÔ?YÎ:Ó{èØ»4ÙîÝK#GñPØÀÓSË-[Ý·oâþÕ±9Ix¯Éxäõó{ hDÚµÿ7d6ãUbP©5IÏkQôëÚNñ5t ò%Î jª¢8]$*3°ly¢ÖTC/Ë04Hhâ4ZÕÆ:£×¨$Nsð;@úaÙî
-E7üâàÇ£Ñ0Ú>5W¨\aF¬I¡l±Aâ{"ÁÌúJÈeq4±*rÈH¸4eÄf¼B0hRnMßïé)y©íw¸qûùgÎ;¶m{}¿ìl÷
-§ñsÁ~5j^ä«QQOFï6¹'Ñ.aóMÆ
-£´ Q(ÏlEVï@zêóSy{cS©ÖÃ{Ó qÑñbVãÉUýæZu²qá§ÿB¾OîáÖpµk>ëßu'yüü¼}ç]ïOÆmã ûç¶M
-åQ°K,ºip}xø<ÚTÊ:¥ÆgQã?É¢óù4MöÙÂð?ta·XGíCÑæ}¢®'z÷>l4é§*Ç%SÚùJµ9A³¸áTº)Ý)¿K¸ù
-á©MåLÅùÁ+_Zö.êïwÙKüÍÏ~ï{ÏÒ÷sçwi¤N9@þ¯îÏGN<ïP
-ì
-È£²åü¼¼¹~©\ìø>£Å"·6äÈEÍÍr
-
òË5.¿Ë·ØåÌ.¸:^µ;·,ô´.M¹XêZèÝ&749Z¸ü²Ãçݲ·¾ÙÝ ;=-wk¦ÖÑê/öx
=-g»|~·§UÎÏɯl4zZj
-¼ss°¿¸-Çïió5¸=¾®VW Q¨Ë£ý.\ïjö´gçÈÁq<µy©·É/»[¼_Àå}¹ÈçZ¬²¤Á4Ô¦h($
¨dYam@ÍÒØKþHä²m)¡ìöK9às8]-ß"ÙÓ8$U»|-n?S¿Û/7¹|. µÀçhÑ- ;×@c gðÈÖ¥²<õÐTài M® <-^
-SO[K!ZàºÓÝè¦æhëÁ:N&¹¢: ðÕÖìðIÓåw/hel,Pb.Qu4
-¦RD/LµUÚj*,rmµ¤.@å5¶;Ý&*»%Uµ¶[gÁÀIX¤9ÓlP¿%3&~%KñØ«jì¬Ì)¯µYä¢òZj²*`Ú³ªyÀ,Ð'5^¥Ê/µÝ»Ð;
-ßAíÔsHת]ÔvI¾ªvIÄ.ûÞx[&©Õ#_uË$]ÓIR[&ùÊ[&ihË$_IË$
-Û2É_¤eìE³gN¯¢lM»¢îH
-I~5Ýìä«é¤ðîH¾¢îH¶;¯¦;¢Î:(Pé¢üéÒ|ÄÁ½Ã?ohAx+k¤øȹää*·Ý½Èë²$ÇÛäÍUÓØÉ*AäEK¹ÑÔHF£QÊÏ|¯XÕ&üðö!r dÝrÔ
-ð9°*BÍðQÍ
-ÐÜùbKaµîÍFm
-×Ú
Þ,¡±Wñ.+B®}\oïÌn8Ø*Àv¨µ0]/=XàñB%«føZ¶÷»OMì̥ʵQiUnQí®XK¡¦øâÏÆY¿Ý÷ª¦Pð
-4¯Pþà¿÷S!Ð/'Ph`·Ü8ækõp`§
-
-é,j47
-Ë ~¸m¹9sYf%ÜnU«i©S¸õxtñòºDíL-E!
-,k·ªºÂ(:Ù_JÃÂ>©&DçÀíGý¸YÍlA50ÚNƱ[åt"N»Ê0zXfÙ <
4pa&hø
-þA°ÁX i,<ßÌƹÄró`_S´¡ÔÇ%ìéaUNVmßÂ>Cùãrl`VN*QÎ M]ê.ÕÉRµ¶(Ô©ÎNÕúvN©Na6÷º`u°èf9£=I9§Ô^aÚX0¨®*9ÔÁ¼GñÝ ¡úñÿS\Jª!s0]>éÕÇp¼YT{7³{îdsiÀ:>g,¯ðwü¡ÕÃ¥æ9"H©Iåd÷Ó©ér½!ÁY°Ú¦y3CêK=wO¯mjýd1ºÑ-aznU#Ù/¥z9XFu
-Ü·»ÂspG6RXÙ§_åÑÅ<éb~ÌuÃån'«ÌîáúN«RæÂmx¥±êgY3X«CÑ$Ú94ô>õÆ`^æÑàïÕbJ=¤^%
-dÕ/3S]\ªz5Fj=lÐÔ4dctªP%<Q:UðdGs ¬agå°'CW'³á©vK]Ø =OgÑ8ÖcÅp)8jà/Å=v(n=Ó§
-§vØQÌU9£äl&<Õ
-öDwgÁg5ÀÕ2}1n+ep®Èbc(P8*Ïj M!¦_v¦JÉ®BZ©<¥ì>¥:A)U©V¦ëU
-Tÿ³(×2ù+à%3ùí°cg¶)üA¼AßÊ0P¾%¦YL¾"¦*F¡ÁQ-R}Vx\MUJ¾¨Ý(ç¥RÓHí°±
[g8ï(LeòÙ¦*t-èÑðå;?3YKT]+8¿W|¢"L»%LFjÙ[ªMõ©"¦»ÁRP;Íaü¤P,P¤þ- ÓYÈúªuüØeû0ZÃbÑÆ kb¤ÅïLóYʳTÿ¬àl°~q»Ü¡à
-ÒlÁRæO*µÚP ¤KàUr
-êZûÈÛ+wx×êFÃûNKX®
-ï,<Á¶í*ßú®Þ»
-÷
-;øíXéå]o¨ûPr·ò(¼ëu²þ\éý]õΤjºWx}Ï£¬ö[hkQÒW:X·@©ùÑæÅ+tÁ7C/«÷
-v¶¨ ¯M
¥û÷ù6ÿ\hyXe®s׿ÙÛ«~r3
-Ó~2GÅëCÁïe!P
-(sµ!VyÅ6
-*P,ãÜÉt-!eFGiJ,_g\_ÿÔéZÏe¿Ió iÐ<hhçõåͤaçAòW<.k4¸oã)4ëB^Þu¸ ôµÍäæJÒÿÍÂæJ¡ Ãÿι4¨Â~}s%iokß¹4ì\)$ÑW3W.1/øjæJú¢s¥Ðuºs¥P¼
-+]¬ú^|º¤|?W:oÚtIB§KÃO7¾ét íÊaüfO$æcv3_ýIúO¤!S¦ÐwݯrÊ$ýÓ)üM¤/0e¿´)Ät0°NgÜ*Ú.ó¯nv$
-kó¯kv$]0;¿¶ÙtÑÙQhôåϤ/0;ºÞ/wv̬¯(N|¤+øOi®åÄGºªÏ
ßÙ®lâ#
M|.5w¸Àø(4iúsÿæ*ée¼soNÖ5å°þÕ{»±Kÿ3öÿ,+ÿÏ÷wÐmh~
µÿ,Á}füLü÷|ü·.üy4þ+ÁgþLühüß]øt&þì¾"ñ3OuáO»poþsþÁLÄ,Æ' þC>þøDøq>'jñG¿Ï?êÿÏÅü;?ÈÇÿeÆ¿íÂÿIðoLø×Ëñ¯^Å¿$ø
-endstream
-endobj
-
-84 0 obj
-9322
-endobj
-
-85 0 obj
-<</Type/FontDescriptor/FontName/DAAAAA+DejaVuSans
-/Flags 4
-/FontBBox[-1020 -356 1679 1166]/ItalicAngle 0
-/Ascent 928
-/Descent -235
-/CapHeight 1166
-/StemV 80
-/FontFile2 83 0 R>>
-endobj
-
-86 0 obj
-<</Length 350/Filter/FlateDecode>>
-stream
-x]Ín0ï<EÝ¡P:Z$ûÑØ&¦CzàíÛÝ&í
-endstream
-endobj
-
-87 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/DAAAAA+DejaVuSans
-/FirstChar 0
-/LastChar 28
-/Widths[600 294 686 610 684 360 294 774 636 336 636 636 636 636 277 392
-611 317 633 520 612 277 411 277 633 698 633 634 615 ]
-/FontDescriptor 85 0 R
-/ToUnicode 86 0 R
->>
-endobj
-
-88 0 obj
-<</Length 89 0 R/Filter/FlateDecode/Length1 21948>>
-stream
-xí| `TÕ¹ð9óÝ;9É$3Ù ,ÉMbXtHbXMfHÈf2l*Ê$3!¥3""ϧ-¶Ôú´qÅZõ¯ý-*>7¨¥Ûkmõ=ÛFêï£>ßÿ;çÞÉLB ¸üKnrïY¾óíßw¾s\bnÉ kG{Àv½¸²Ý¾<¦'íø/lÿ»#¼4p,D& Ì¥]+:K¢ØÇùôNÇ{ÓÔ}cÉêÅùI8p¡L#ÄzöÏëÄ®¹!½©û³±ßØj÷¼=¼q8ö7bÿüçð-P&c/ö 'à+øxÖeØÿéáP4vY{#|>ñ
/¿·-¨r I{Ç(>ü'FÞ7$ÓLfaÉ̲ڲsÈÿS?´§d7ù3¶§ûIåß-ÔMzq¾
-!×J7R7~ÒÄó«¥ýÂ@Ç6òlIÐÝd'ùW¯¥ëåÙòeZâ¸>_ È
-ÉB) M¶Kk¥íÑ-uHkÉ6|O6îVJ¯K+ÉBÎç²Î¡¥da¡´Æ°<'øA7Ñ©òkòkä9Dré10úýVÐ
t;®ú|F°7Ñ0¦ÿo$`¡ÌÈ&rÍÆÞn²ùþ|J¢b%·ÈÈÈä}ò['d5à{$áó y,CͼO
-ò!cnZ±ÔaøôÒ>§¥ÔO6-Bm^ û¥%ÒKÒ:Eí Ë"ï+8|nB.Þ7vÐÇH§×ðaÊø,yåBê++
-È{t+Ýr#Ý*-IkMÆMÒBrë0ìG}4}||ßx!ùL2O .æ#eòsÅisÙdvJBà"²`W(Ó2G
-Òh¸y7V%ôFWýÉÐFîÏmt¹ì é¹F=f%0PbW¬ÛeuÞmK*//*gÐU¬iÊ6ҼͲBÙqüxóBi¸¼h<b¶Ie¥ïlòýqö¹Ít«FGëZR±É{8ã®1Ç©nËð·nÉ6¥½S¹Ùzsé¾)㸧«¤ùÌpi¤h7è(TzäuTì=Ø{!±ì=Ø[c+¶Û;$r4
-Ã~¨nHËüüÓq¬¦ãëÕÃtôtâtä¤HÚùy²>C6i¾@õèÜmYî¹Û¬îË>+/ÚÛ=y2âÿàh¯mòäJú¤Õâ°4[`qN±ÍJKmã«&MÜMתÔýÓ®Y)ïVÿ¬öÒÒþ 1
-Î{~ýïÊv¿¸Cä
Çÿ$FO'CÈ8Gqs6ÙñjöÆ¡æYõ03oêPäõ(7ÁGz+¼(gFAm k%ƼÜüñ/PWxëYµª§ûºëºi1u©»Ôß«ÿ¦>Mkaå#7?Âÿ(Q_V{ñy^Lsñ¹XØ,;þ'©
-yMÞu8,ÌôI
E
b%6©¨¨°¥Iyd=(åîË;8ô^toÙ«¶c
-YzÑð4Ò:¼%37¹¤a²®ó×fad_ýûaëßg\¾fÍüõ¯l7¥SºØq¥Ùlfæôôt9K.1Ì2,shÝTn.gåéåå±ÊdÓTóT65}JÆË\ó6'}NÆlKOFe§i§y'Û¾3c§¥,ÓiÊ4g2KúEc¯k^LS[9-Ê+¢R>³¸dÔh[!ÕTYAËéÄ ÆWåKC¢o^ÕÑ>×3æ<«~®ÆC¯ºúýY]`Æßö9Úþ¶4]ý¤²rüÄÊÓÍ¥÷=òø¥¥Ô:aÂÉSáý?Û¾¥ë¡.CM#ãFò^¢C>¹X6YÎÝÆ0$2EHÈ<$µ+ôVUÒí3å &/QmêjÕ*Rßû¢QÚ.l¶ mf#9òmfc=é·g¾j~<-ÄdÍæaãFô¦ã{xÄU!ú|pt¯{~%Õ´ÁIä]JȽ+nþ±ºv¸_}þ¨ÈÏûÅÏìú@ÖýVzé2RFîvo6¢tò!¯ïÍüµMÙWôÚ{KÑ12Héj1[Ò§%wê(î(\M¸2rãßvx²ÄJG}ÅèéÊôâ£âÅÊââ ,¾^¹¾8<úÊïVî.~Ty´øå⼪ÂÊ¢êBGQkasQ{á¢×ÝVø£¢ûï+Ú^¸Èº8%N¦Ó2[ñÄLvÔÄ çGc£ài6Z÷¿sù¥¾©_ýÉì'Ön}fÑ7núaô_çE?áæi¡×Ï©i¸50ö»ÇÖ>رøµû_Ü1b^Sy9µù·-älÔÉ2Ñ1Ô){'û×y¯ZϤ©µY,YVÎUG¸
§¡
-xÒ\ùÄ5äÙ³M5z Aälu£Å7»<¼ÛäÒ'Ï¿bøù±ù!zçÁa¥£½ãØ[ÒÚÖâÛf"òQ>1LÄjæ>ËA¶Ù&m&6ÓBr§³Ý[H,êO\5|õpÁI"DPoÙPgZÁ Xw[ÓÚàþÃýèÌË?§óiÅÂG0Þª|ìºP}§¨ó_>i<aÈ÷pËMY°ÙF7m&Ìn6%b±fgºsS¶¹Ûlü-"#GÆ´½G§íÝ«%ë½½G¦õV=Ã1tÃK,ȲfÙ
-Íзİ´`çÁ?h!
wî(6ÃxúõK®Ø¡î?øíÛå{Ô絬ñ¢ãäé;¸ó_"r3ÚÓmÌ{ãXÜ÷ÈãÒO
-2EÓZMÖ£ÓD$á[F³y9l^cñº
vpk©¤%_ÜgÌUß81G\ÀêpF9m¤Ñ(³&&e3oFJ@ñÏ4$`#ÍL Id«IZo40³)M°À0!Ýzp{î{Lu·S-·>N³Ê§i¿¼YTBk²
-6u°Õd5]mZm±Ù½ìø¼Ïï5Û4Â\Qf:߬dÔI³äZÓlóBX$Í;ÁEÃRãYI¯ºå¦yt|iùiücÓ&ó¦§Í¯é×Ò7í7¿EÞ¤oÞJ;dzÛ\ÁMSÅT< Í:öàUê*ÃXúa¬ºêØÃô}Ôª~Ûý2CVC'öz^t¡#?ckZúV²ÞcI£&ë8)ÝO WÛÚmÚ®iëí$r»ð
-[¢ڴ\_ºÛ°¤ª¯«RÕÕtí¡ðµ×åCÇþò×cÇâÒ³êU¯·Kø/Òµ
-ûSä9ERÒ õì^^ÆȹYeL1/_VsI¸W ãXHµC¡Å°b
-§3|ª^FtÐ-©·[&m<vl=ÚÓ'ÔJç ÉôÃöyëtrhlsfÐNu#½A]
°ëðìzy5c\`
-×83%¦ä!O×udê±rÀ13OøñõƲ[^ç¿ðDó
-zB7að)Ù"w
òv²Ez,7Èpód]üÙmã[ÉÀÈü®ÃÓ&ÿE=Ôç»íôxîúLÂi¾t»´Cú\ÎkätnrÉ´¸EVâàÜËñ+áØ0Ìw 7öñOÑõ¶á~ª·1<¤·1§ô¶L2ÈKzÛH²ÈzWæÔÛéd$ùO½mɾ
-§µ3ÉGõ¶¤ç¼¯·mDÊéET2#C9èmJòó½m ¦¼IzwÞ°}¥ÞÉмëõ¶æmÐÛ&R÷ÞN'SòÞÔÛ²)ùV½I:§ÎÑÛV?u»Þ¶ÓÔ«CáÿÒÎ2¦}¬R
Å Ò¶BéEc'`Wêí峫KiáPQ¥ÅõEû¼åì¥øR·gy`Y(¸Téé<ÉÂß2Ïün<ÉyK}QÅñ)þ înëò·+ÞPÀã&`Z=ÁèÌP7¥«ÖïDý¡ RU^5IãSãR@;BAd"2uÆbá)^_Þ]
-uGÚ}¡ÈR_yÐ%À8K\¨>=(c¢>Òæë
-õ-WNCr¥¶kE¸3ªøáP$æó*P at qF|ËuV4º5
¥a,IÅó(k}ZgãNùÃN´ÏiV@Ùe%ñx}Oäj%Ô1c;HÀ6ðGN_Ä´F<Aݲ£X¸5z¶+±â ®PÂh5\j¡Æü¨ÒL3uúzjoÂÎbµìFQ{%B%%cWñD£¡v¿é1o¨½;àÆ<1ÎO¿4cÖPG¬Õ_2Vpñ
#!ow»O ñúQ0[wÌÇy`ýØÑÌí]Ý^ÎI?Öê!3¿NShªD´ÝQçâØKÍD;í)4ìfE(¢D}hö#«ºøHsæm+:Æ4Õ B=èX',àfèè O,ôhÈ®D»ÛùÚc|Ë×êBgãµ^?#:
17¢ó´
û ú ¡¢Ú(·J8éÚíôtu±6®5d£ÄÓOÎPý"¢Bß b+±a_ kLõ
-xV`´àr¯¿ÃÏÍÓC×Ã"õx½BrMu<@=ä«»Ëa×õ/
-6j±¸zÚI¯HðH£dH@(ÌÓ58}M$6d/صBñ§¸9ãâD|üR\ÀòF+Û%>ô9_D,ê E¼Q¥¤/K8íÄ+áa["T©×ã¥Íıv£
-¸Nü}ù®aÄ(pÃËÓÖåãì7XÒ(Òé"F_°N¸×%½Û«t½:ÃIV`NðTVbòƨfãFò(]<{`¬$
-B´8ݦY³q2·®±Æ®¸6·¸Z[YSR×Ð\_籺Æêúy5uµÊL\×ØäVêëêÜÔÝ$ê¨ê\Y«¥z6v3ëêëÜìlV»q"s-Siv¶¸ëªçÕ;[æy-ÍM.ÄQhëgµ W
@DÕMÍZêjg»í¸ÈvænqÖ¸-sí
-"kB[R\"Å5/ní¬¯WfÖ¹[Ý-.gåÚ©mljp±YMókFe¦Eqάwi¼¡(Õõκ»RãlpÖrqD8&NR/¨u5ºZõv¥µÙU]ǨǺWµ[@¢îQõÝê¦ÆV×¥óp
-&
-þµÃ?.hb x(X9~ÊOysUÑã¿Ú_áÇrMy¸3\¡§±i¤H¬ â'KI'
!íd,~«H%>ã±Õ
-01Å¿ñ ;Ö ÂcËIºðQHK®¨èùðëÃ5ËñíEHvT'õQu#¥åHk® "4çÃk¾Ål-ÃuóI7B´#¬G`ó!Xø#Lâõ#ëCHÝ#æâiX¢ÈQá½'UN{~¾à:´B*ä½
-uº.±jÜI°vµ&bº¸fb(×RW_ðåÂoeõµ¡rÄáÃ5³R°%´°ÔþÀç¸æ}Âz>ä.DzÛêÜXcªÅÓ)Vúq.,ø ks
-DÄ
-îëòZ(GÒúûyØɤaø&»f=¶Rµv¢¯3´Ý?ì´âçÜGíàöNÊìÇ&Z11½, t}5
Ðÿ.Y³ÀØqà<u9.×RA%¨[Ý®Û]³FMó1Íí¯°~P¬ë±¦Q!Öîc~Ý<¦i¦ã .úS»ã~¨aO`àÐï/ûDäj¾Wâ%%Âr|W|£¯v\ãÑåc"
-ÚÑCKLÌ$ôÓ.=Æôñ¤Às
-ç?þ«y?§Ô ¨ñ"
v±:ÁWH¾Ö³11«Ñ`§ `×£¹9ëX4ôèY'¦k& ÆR%JÈéç·ÝBöëðv@ØS³5KÉ Q\m?ö>9+DQf-4Ü~]«ýj©Ó¸
-÷ytLðôº¤D=BÓ¢µº¾^ñæ4ìâË5±!Ú>
-&a¿±h-a¡vAÛ+8öëNÑéÖ¹ó ÆÈI¤æ¢¤NÌAéÑí¤ÆRs@ê:EÈì3ûû¦
-m/ñÂ!±Ë)ºíâ̧cØøÎéÑ%*里Så:Y¡ï-u®óÁ£W÷¤.᧾S®SoÍS½.±zÄè9£KôXD^Á)·W0EKûí«¥DõïÑ|7Ac ~¢ÿP¦L éaa£Óç ?ú7»nï.±ÎlÎú¬yÖ#òJob$Úçx¸{øô<çR$(õ©¼b}É ûaIÜW0Kì¶%)^¦ÅLýý¥MÄ{(
×n=~²gýhÌG®zêÆGÛ½<"£úúV¤Ú]ã91ÂNáñê<ú'ÌO¹n°Üí;APØ=U_i¥h.Õg«Q½òVtIÑ$^9tõÕ}EaáÑWã{©n1m?ä^Åú²êW©N.U#1}?ìèÓÔlâtH#ö8&ì¹É¬#[Ä\)XǵàÌ|ìÕàh°SÌðù°Í16y£ß÷"á¸Ñ罹߸øZY(h¸[+rÖm»GëñëÒáøj}Þ®%¼
-Õè5â*·¾ó¢qêÆñ$Õþ\Õ Î°×øgë³NÄ]'ðqþí¢>âíFOMs-;×ÇÌqV#Gõ¢ÇGçá·áZ
>BfÛF!Ã,×dq 4KhUã·isZäË-´À)¹uH»°#§F¬çTç
-(³&ÝʼÄR®ëRãë~åV!=>ß#na'âOàMøNÀÀùfBó|N¡&Aa¦ãZäú¬ïó¸«T}q»qÎk%§ÐHë $°¥Zg0ï`}j
|.¡©zÝzt!|]ßæuBÖj]×NÍï5¨OÑnµ[öR¤êÒ}Ê)t×_
-n§ÿ¤ú»:EgIë7êÖMðãÝheEr
-[·öÅÈ,¿
-:çóú<,æéþÙÔÇYý&â(w:¹Cà Ýß5Âêu[û´¡A°SàÕr÷µvqÎõåíþ;wjÕ¬FSëN{J®M´,\+`à£ÚiIÛ³gÔÚm°vât¬Õòª7Y}h¹[;¥V½^Qk5`´¯* :0ÔWôÙäÖïNBýÎy²Gìýö>Z½(K«+=¢ZàÔ¢hóä;;ádû½F¥G´czeÂåëÖaùøµNÃûm j,U©ú{õ³_h×å:ÞIË:áÐîÕ¬ô>m
-x«Àu°4
s¯Ð5#Ú§ÉD¾JÜq}ó·NçúÖöÛtÄúÝ
-¬¼¾ºû 6è}ò5ß±Óºê_É·§ð¼ëH@Þ
-ê`7,ì»WRN¸Wbÿÿ^)å^)yÃðæ½ë·Ã~s÷JlÓÚ·á^
-z¯èë¹Wb§¸/øzîù²÷JÉêt.ïñÖÿ^éd»ïÉo´ó¹VI|Ûné»4øíÆ×s»ÄN¡]%Eßî[&&|ìÄjæë¿ebßâ[&6à)yÖý:oØ?¼eR¾¶[&ö%n¯ì ÌG¬s·¶8ÿõݱAmþMݱîoìîôî(yôÕß±/qwt*¼_íÝQ"³|G9ñÆÁOê-͹¼ñaguãsâíÌn|XÊÏ©îÎÅ
-Mìü¼i`ïÅ¿sU!ôr5þUÞ¼¢j*õkÇúWc§þ7ÒþßIã×ËÈ ?Î6¬¡£J¾Ï£ÅȳLÏ#qì||èc%·*b¾ìÂw!R:RÌ øN
-ñ=L÷Pñ"ÞùâGsI&bÍ=Þ#ÚÙâE3É*Ï=Þj¡ä8fc²H4¦cÎÅPþÿ·h:edñÀ·ÇøP³Xiï4!Þ|
qûOÊeg5
-¹dñb7q_Ç/U
£_Øå£*|a¸
-ÿýyüß«àóZø¯8|¦ÂßU8¢ÂîOUø_*|¢Âß
-á°
-÷2ùczô:¤¿þ
É¿0øs>º5_þH
ÿÿÇáCì|¨Â*üI
?ªð¾
-Pá÷*ü[Þ{w¨üÞ
-ïÜW(¿ã
·ß*ßÃ[eð»eòïâðÛ7såßæìò¹pÈ
-ßH*ðF:ü!~ÿ@üúöù×¥ðú¯rå×GÁ¯ögË¿Ê
ýÙ°§÷×ráÕWvɯªðÊËåWvÁ+k¤Ç_*_^/;¤Êà_UxÑ{d÷ªðÂx^
çTØóË)ò8üòÑáò/§À³ÏgvÛägÁî]YònìÚ!ïÊð4{Z
*<OfÃÿTá WaûøElËÇÏcqØqxá[ð³e<¢ÂÏGÁÿPáaRáA~Æà~z¦üSîÏûÒfTÔæ8ÜKî+{ñsoîAáïw«p×»ä»T¸sÓbùÎ]pçiÓ-eò¦Å°É!Ý¡ÂFô*ü¤6àÂ
-
ãðc\úcnÏÛp趹ð/øùnE=Ü?²Â-eðCÖ«ð¾¯ÂÍ*¬Sá{ß-¿§ÂwËà&nTá«à
-ðO*¬UaM¬fp½
-«T¸N
q¸6+TèYþ Ü£Âò¡;6\îCl8DãYßQ!²Ë!;ãCW®Va
-~:Û3äÎ*XªBGø¼Lö©àeàuHímLnÏ6%y²g,¡6yI\ÅàJ«pö¯PáòËË«pö.TX*ÌǾãø|æ©à.Ö\h¹´@nÃ¥8qi47ÈÍqhj´ÉMÐhB¨+×çÁÜ96yn.Ì©ËçØ .fÇ¡vV®\³rÁêL¹&ª3a¦³L'âtcFìPaÆ%ò,¸$¦O³ÈÓóa¦za
-sáb.ÊIÉÊ`â\yâ0¸GÀ,ò\°F_!Ï
ñ©*.¬|P¾P
JÄ_ù Td at y³OÇÅÁW&Û§À^8ßcU£ØäÑ
0J²B8¯pÁy
PjbKâPÅIÉ
"
0rD<²FdåÈ#
-`ÄÌ·JÃ-0¬`®<l ѹ0T
!6ÈGjùqÈñ¼2ÈõB
-²U°aߦÕYV9+²öHVÈ\#YpÆ*HGÑÒó!}Ä,ÀY
-i*e&UÈIxÁ«*f/Lm@, at wPïëéÿwüo¯ðg$ùß&y'
-endstream
-endobj
-
-89 0 obj
-8589
-endobj
-
-90 0 obj
-<</Type/FontDescriptor/FontName/LAAAAA+DejaVuSans-Bold
-/Flags 4
-/FontBBox[-1069 -388 1974 1174]/ItalicAngle 0
-/Ascent 928
-/Descent -235
-/CapHeight 1174
-/StemV 80
-/FontFile2 88 0 R>>
-endobj
-
-91 0 obj
-<</Length 311/Filter/FlateDecode>>
-stream
-x]Ën0E÷þ
-/ÓE
-y4BJ ±èC%ý
-"WªyYý×Ó;¶\ZóÙ(ÕQªÔj_DNSäxS"¯·ò8UÈâõ
-yËò>²W#ïOÈ{fóÄzòø||äÈ{âùôÏQ£q^Íû§8_óþÙ÷Ï
pÿ[ïë'fin!ÄéR)[Lµsð{ï~ðè¢çDÉ
-endstream
-endobj
-
-92 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/LAAAAA+DejaVuSans-Bold
-/FirstChar 0
-/LastChar 19
-/Widths[600 372 762 687 595 348 682 493 674 711 592 478 342 773 732 372
-695 379 695 695 ]
-/FontDescriptor 90 0 R
-/ToUnicode 91 0 R
->>
-endobj
-
-93 0 obj
-<</Length 94 0 R/Filter/FlateDecode/Length1 21368>>
-stream
-xí| tÇpuW÷̨f4Ð8¤ÖÉ(#,.K>A !ÉÒ
-õBÿ3ààÿòppå¸]ßú×Û@.`1.Ç+á¾B ýè}]zm
-ü«ü!þ-ôpTù
-üV~?z{{+¹guû
ô½Í¤ídÒÞntè¸ëD¯
-¸`
þj]ÚÃ]ßÁÛÑVôzCâ+êÝ\´8äùm)m ·¸1¾=ûÑè>î:"Tô}(`CÉ:ÎWµÆ]×ôH¯÷V,tLJV½4:ÇóǤC§Nuö³ÅÞqqÎ8®2Uïéåû«;{¤ñßz4¬¾&Xëî!Á2¬{"Ä£ ²G cèÑ,Iø
-Òý3×ðª=rtâRd=:qtbÑ[
ªÂVÐÉ}òß=zóÿ×Õ@.
-¸Ú¹Ê{Ê×Åc
-ÈEKÑ}®v&bÖyGù¢Ùb&F>Ï$ZÌ3
-øB<¢Åbn0aÎfA\Þ#
»,[ò9TbÍ7é0¯³Y¸ªJKµ9ðrbÂV_Ro£]Á&ôªO³&~h+©×î«ôWR/MÆ3®â.©®´ëô0®Ð_Å-®+.*Ô57+ûn0å·¸£+û~Í
-Vø_?ðdÿÔ'ëøUõ%®æïîûä¡ïïúÇïÚY£ÂS[AÞKÐW}¾7
ò2C¯'BYyY1\á=E{gØÐ=Ü^a jo~)7ÎÖsh¶Ã¬ÿ}¾õèêqâ]=>Ã{Ýêñ<ïu=/ û©Ãõ ¶ÔÃXôø'&¬ÊÇh2¨ìÞkç\e¡¼!2d***ô}3ú
-ûú£5£
£Eúàä@ö¢Ââr®+**ìÕÌ(%,ÔrNPμºbaëÒÐ/6%\×»ßyVùòaâÛùÞKÞwÜp³9}âß+ßÕ-Y¾¸l^¡ÉyÏWß7+oX¶dÞü"Óü¿õÒåLG=P
-ÄÁ'îw]e$yà:(
-bi!?$6Æ"*á¶C(¿¤xVéÌ¢Bs¾ÉhÈã·ÙfY¨2RE1mÒ-£7ÕõpI}ÕYíWLÔå:^uUik_Àe
_c{õÒ%ËϨ±xÿþ\d±rï_¹ê
ÅÊ/J§Û0~éÁ«Ä:
jk1qÎ?
¾¹}«{ÒÊU4>+Á/À3(û¿.ÙÜ9³g奢ÉXÂÏOà©7ðº<Ñh2Z-¼Íù¢ÉdlÈÓ¡R{Ù¤3¢=%»u¶Ê{ìwTóJgRH2KæàJlÇæBõè#¶zð°ÌY>úÓGõà?ê?SâÄ.YwËí,®ËW,²7V¸ìÝvE}wÅÝöÚ¯·Ú*æ®\=ïºÊëæmªÜ4ïÊæ=]ùô¼|êhÌÉÀVpU¸b¹¼®ºÖâåéø=þñ[n»¦%²»ÔÀíܦì/ë9xä%n5wÙ/ÁîÛ¶Fá[ûý×þëyÜ»¯¹²ùæ±[?ÙñDà«ß¹ã?c6+NÎ6gîÓÏÙ¯Ajâ¡:iyM¤yMdymËkÎÏäµ)y<×ÂÜ ò¶²OWø_`ÏN=êqÍ×zA/ OáÇ
-ºÇÐa¯ã9,ê !o°8râøaf*L^JÌ£y.®`¿Rnð]eDã`½r¿Ð÷Gu
-t|ÀGÒ,c¨üê«wÁWx©F,°]ÂUÏT`à9·S.ج0É7ó&h+°5 jl¬åÕxæ=¥{çI!Ó.뢫C¸Æj)/@´²Â¦Ëw
-xîYw0ôò{kVõß9úØò2.ôÃå&åÙÁW®_ºö©Þ?ªðÞôÜõ×î¿þåþ
-½áÀØ×7ø8 a©üVªàJ-ÝûÖ}ô|pÓß¾NAo!Þ
-5Nø°ËM
-DÔy:ÁO_ Ó0±ä
-¼\ÎFB·§ùJÀqò:l´ý©D?G'rBJo5d,^ûZ
-4Ê̤, µdÙE~A4HyÞ¼rAGCY^ôÉ3»èiqå^¥»çZΪüY¾_¡Öx ÇØн®ezÑgDt(DFx1/ÏÐ`3ó°Nðæ]y[ôF¢×!1ÏWmÈ/8Ðä|Ù7[¨ìr
-¢H6*J¥$N2KàK.äâ\fÅeuÙúP×gî³ôYûl¶+4YE¶D[uíÛþA
-²êzI˱oÌXTkÇøä¤ÐwxèA >®L*Í,ÖȾåj0
fEÔ¬ãE#2BÀ¼ÞüÒ@iÙbÚd5sù&½UÇçDÎ_VZVMjµÊhe8zÜétZYQµ±
-a ¾ýaV!2¾Pîùr[ÔÆSû¹Ür굩(ýó/Ç.\!oo´`}þ÷üþºoêD,¶ú@L}PûÞvÉiyRÍNÔN)/Ó*e5D}ùÜK¦!â h.ÏKËáuZ=4Ñ[>½éÍJoty,ÐJ&h¢Dí-Ófª¿îôf*£¬n*]5¡Ú8Ój&ÕÈL_vûNnà©Ù}´lxG¹¿bñ}O¸çùg>y¡¾³dEó3ûøKþòè_ßã»+Û?÷C¬d±ÚçNÄ4>tü¨2+Òsà
-áUTzÄ ªä_F+èO|Õðo ¤»ôÔVüGº¦LìVqêÙQ:Âã~ÁßßK'ñn¼[à
pTÇßä@<£Å#+
-_þÂ,¾¸¤Ñ5ÚNãe¯&)½aÆi»Lèoµ1F3ÑsÚXñkÚXÓÆ:T~¯
-66¢¹ð9¡óâjµ±-ñSmlEÆÂ6d*4ENÈ¥E
%ÚCÅE-ÚG36jchcÆßÑÆ"ÀÓÆ:ä(úP½¸TQCñåÚ8¿ª¡8
Ç/N[Qñ)lh棱±xh`0)Í÷×Hu-úǤ¡d"}aÔñ;%÷ð°ÔE¡Rã£rÀINÛºnõúFÃCÑÈ´Ò7xMòoÝäôEääËR("ÅFúC~)
-ûBL·/XHðò9kY:õur<F¤:gÝ2,¤ ¹;ÑðÉXCmm
-qUv$ðT©Ô9HbÐEÃAiÖFãRB;
-KµÓÒÞ±ÆC;Ö¶7¹½íÒJâ^ÙæQyQÛÜkR{»
"BÁTq2ê tC§ÝÓånsHÝÆV:
-¡4HBóÕÀ³-k1úBB+&ð#ùP9`µE
-´`O )>Øóé(6ÁhöC#
-Ï8hJf{ãL§NÀ!Ãæ,l)§ì|º7ÑwÔn2³½<FÑf¥¾8ö£ZàÍÀ²!xc|'¯P
-ÄÙê]ëèL#ã#9þy&i\ÓÉ®ÚÒ£l),yþ9§è»ø1?½½32à
-a£$[¡^fºÞkQ°À_ã
JÖÉð
¶LTOì¬É5À¨D4«;4»«ÖR©©>¦ú³ñeÖ°ý1-òT
-QÀÔ|,¤yáP5M4IÆÅTò38ê*ö
-ò®ú²ÌâXõ={ØåèÞ
-üà¡a%ÉÞ¤ôÑ°IóÓ<f(ÐLDùOÿªÞO)ftBWb,j@ÁÏv§¸ 0 Ì×úám½Ui³PphÑìÎFU'²¬Ô4fkÙ¥dçx¥ÊíÓ¡#Ë:tföTmM²2Hv;Î #-g-Ë Ã¬Æ;¤i5×úg:¥9ÛXÚ£¯×e$ÚÌô>'
-©h²¬Ñ$³(ØÒp°'ÕÄ@ø>&e¿ «(jfKYÈÏhÇ!Ó^;`²Ì±Av.ÊhàôLø¤
-ØT¬d4²÷ILfã°Üëkª6ÔZâ;=£¬ÊIíÃìÉçb$«D´rú49:Û^ª1¶¨Ô©ÎÇæIÃÌOãéSªÓ@ͳ½.UA}¬"XÎf3(À8¥ödic §®ªR9ÔǼGõÝ©úIüUR\MùÎ\:Sõ1oÍÞÃl_èÙ¤gyÖÇòJoj%öÈT¼L²çd&EÒf&Uí·OSíi¹§î ð.UmíY^¦ÆLÛúÒÏâ=Åë)?
·¡i4&£#Z$ÇàR«eT9½#Ûî*Ï©2m¤²/±gBãQft&?IåºérwU³{¶¾¦Ó*ÉÒ\¶
-Ï7VénÞ§e,5ÚRD;átï×väb1Þ÷Íbj=¤^EÒYõ³ÌTgª_¤ViMBF§µÃÒé>²½k
5 ú¸.x³fM°ÚÄìâfoè{;Æõ0¦;ÐZKÅÑw»I·Äæt¶àÛÝëA=°ug0¦¸×Àj<=ÝÑ+kaNÇ-v¡*½vØåe±C÷Q^TN½°¡ËU+£âl
-̺
-j§õÿªÜÚ½1Kgë·kÖMñãe½Óhe=Er3[w§c¤ÅïóµiËäµv¤9ËÕo*Rpç;T\)Ú¹lbþÔ¦qØÖ
-AÎWÍ]¨k~öLçíÜÊÝ5fºÑì¾Ók³;5·0Øð¸Ìªúµ¤Ö¬Ì·Nvï6ÝvêëXíåS]o¦ûPs·úMÝõX®ötWe}`4Ýlfo35=¦Ds¾ó(e«ý4T-ÊàRûJë(µÄ4Ú<s
"§}ÆX½W©lfã¤ÖPùF4Xº¾eÊ×pêüçtHÓÚ %ËtC¶þãÌÞ1í[*Ä4LûI§7RßeP
-¨çjá)VÏxÅÖ¦*Pdq`º&H=££4 ËW©3®/þÔébù~ÎHÎyÐÔÎë³;"ÓIóy9§ó ÜNÞÅSæ¬#yn'¨Ó°/ì\I:í\üÿs¥¬s¥Ì ÃÏs%Sa¿¸s%2Í×Úá\L{®èó9W"g9/ø|Îú´çJët1Ï2ñ{®t¦ê{æÓ%õû\í$¾l§Kå.Mºñù.³hWÊÒàû0;½ùüOÈøL9eÊ|ë~§Lä¯2IÛ)ù§LÒgvÊDÖÖ«·ª¶Ýðþó;;"ÓÚü:;"§I_ØÙ9ãÙQæè³?;"âìèlx?Û³£Tf=sE9ýÄÇOö)ÍÅ<ñ!tâsú7Ûùø¬³;\äiø](sÒ@:s^ÀsUËô² ~µ·
-þ¥ÿßVð/üóÅ+øgfü7·?QðÛð¯ß!¾¡à7¯¿Ö+¾~~}»ðÚ«Å×zñk.áÇÕø+øÈ$~UÁÿ4_1áW¶ü£Iüò6üëðüâñE¿àÀüßoÿqþ~þIü¼ÿ^Áü½ð¸+ÃÏ*ø»Ïñ»
-~àg\ÂÓOñé:üÁ7ì-TðÿÄOLâïÀä;
-> à¿Uðãø±Ggð£3ñ#eâ#ü°ëÔCUâÃø¡*ü
-Þ¢à±|c)Þ\GÏè$ÇÈ$N|r6NÀ#±
-Ç|C5)8ªàûN
-+xÓYܤà!3r !PMhÂÁ2<
-îVp¯QpgGعwTáv+^£à6¯VðÕ¸u¯Êë\B³ç ±YÁ'pSãl±i7ÎÆ.ae
-endstream
-endobj
-
-94 0 obj
-7958
-endobj
-
-95 0 obj
-<</Type/FontDescriptor/FontName/OAAAAA+DejaVuSans-BoldOblique
-/Flags 68
-/FontBBox[-1066 -388 2003 1120]/ItalicAngle -30
-/Ascent 928
-/Descent -235
-/CapHeight 1120
-/StemV 80
-/FontFile2 93 0 R>>
-endobj
-
-96 0 obj
-<</Length 289/Filter/FlateDecode>>
-stream
-x]Ën0E÷þ
-/ÓEÄ# !¥$Xô¡~
-endstream
-endobj
-
-97 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/OAAAAA+DejaVuSans-BoldOblique
-/FirstChar 0
-/LastChar 14
-/Widths[600 372 711 595 478 674 342 342 715 348 773 493 342 711 682 ]
-/FontDescriptor 95 0 R
-/ToUnicode 96 0 R
->>
-endobj
-
-98 0 obj
-<</Length 99 0 R/Filter/FlateDecode/Length1 20104>>
-stream
-xÕ¼y\[×µ/¾s4G#æIÇ aì c°að
-móKp~ߣÏz4J¾BèÌ°¬âסïÛмm6£@¾¥lºF·Cjúæ;ü~âCêù? ã0´CmÛÏX%è(uÀl¾^Êî]xVö4'¯ÅÜÃè~ø®ï Äw¡Sè©Øpì$zp
-ú¢N(
-ÞZ'êìª9o)BÍ¡OÔã5ÅÅXpÖ¢ÚÂgÀí¾Ýèv^ÀÝ«:!}´ÑÝå^Ò+¥4-e´q¹à gÀ6Üèâ>g Ü1<èköΫUËÜË"ªÂt^¥¤RÑ\÷øy[¥É
-T'H¡eÝFiV 0^Õh´»\]
ÍQ»Qº
IMFeË¢r©Iç:º×y¾àòì}´±Ï£tö¯ïÒ~xvfgG
-h»1·çW6y$ZànD=¬Õ¶Å~Znt£|àvÎþ ÁtÜW?¸µ¤?Q"ËþX2ä
-ºÁÙ¾Ùþó3ÝNÁ={^£
-RF÷çøåª:È6Unhµpú;mг° òÄYßÞ!!ö'x8_ì
'úûE#û¢^÷xÔìnXä'V`du§ôHⱨyYõ
-$z¬gg`¶¯1>Ö{UçEä¿r¾ÔiÞJQW#«´ä*;0Û98uôÙa¥
-9;í®¨ØîrwFº
ò®@w.©Ç(YÖÞÙ²Úݲª»³21ø
-ÖøD3îN{¼¹¨"Káì$vÚ(p!án¨
sT¥C
-@5wã{Vñ=«»;/
-
-YÆÉ2¬¥6È(¤úö"B3Ò]N*ò0Êe
-\ ñ2a¡@/¥2ö.ÙÆ ¿ÎAÆ;ºgûº£$ üá(v×uÜõç1i¢*w¤!ªv7°r?+÷ÇËe¬\paÁY!àþP2íhBô.ò! d9JUT.WÊÏà¥÷mïÛØû¶±ÊûöbÁe .k%wÅà1òál
-ÉêMq:S8AåT«úTã*¾X5£zWuEÅ©TÍB@ø^ÁüW{|Þí~W¸Ú!uµîBÏëa·&£ø`s:ñÔ
-«º30)+5Öc_I:±Ê DGpunûÝëýÖjË©Ô¶©G¾}x©x໳/L~J_ÚÜ_Ûµ¯-<}÷÷îß6T¾4xpD\Àä±'1>·®¢gwÃÒ¢ÎÆüÆÃÿ§ó~ Q3wÒ#7êë3p0cMLÅÁÔ5©d
-7Ûºld7»50¡O ÒZ°Vpù$«ÿ*Lñ*LæV|j:S"eÑWb¤¥EMÇ0×¼lïÛÎßÙ8÷?~øMÏÊÍâÒÑÖBoëHÕÒ±p!I?öÃû÷ýð8¶âäØocïï=³1'oàÌí{¿²17gãl³óïsɺȶ-í´¥d]ÉZ75U[äÓòrNÅ¥p{¸Y3óQØOOÑXælB2,K±7¬VYaDaV¾«ìÏ¿83ïÆܲtØA«$Éê+Í.Í.3ø0/«»-p´,1aºaÉ㻿û¾g÷KÆ/`BðYmîçiu}Ë[³²Bbßùõ^X6R¾f#_R¨ÄO|lÊ Õz\fIu
-Þ:~zxIñÈS»¦¾Ô_4ôÄËÀË ðÒ<èÌÄ7çuåäÑæÌ®L2v0ìL=JvéîÑ=ÚY-i$ídÐ&CÝüê=Õ¼"
-CîúG+×,³ò>/2¡8)¥\²?<X?úàúÜm5ýÍ5Ã+A:7Ö$Ûß}°Ã\,!¢ê´XOs×ä+iVimJé%Öðç¿çàÉ-YýgO~©?¿jôqÉ)C¿ÿÓ2â@AѳKvp)æÂ%ÃáJRUàP©ö©"K¢m© WZÌøªfì»Ãk$&Çç°43µJ3M²rï¦úöCë¼ ²¯Éõ:áSë;¦Ú*·æÓêÆé1|³rjSÍV¿¬1~0³q~d9kAè عÕw[XÉV+Þ\'ܽ4-Y»dVàü4¬¢)ðNä6çä Åâ¨V7«TÞr0?ãà^_ÎpæÈ%¹¹æÕj ¾U>ïUä[Ä÷f®V¤Ó
%K¼´üf,µ¦S.³fü
-M¬4Òµl¬ªåù:w7{ê~ôfëìÖfÝãò¢eíEòܶuéÒ#ÛqÙ=EöúM+K3Ô¼¥Å%uùé&CîÒÁ2Í?0Vº4UeÛ
-B~píãÀËè<%Ò"QÌËyãÕË5Qð4y^§WV#yX¡G\¯0m0â*ïv#̬ÄË,ÅU´ÌSæ³ÿï¸}ÿá;ß9vìM?öËã2ôÚü5úW¾ÙQ§X¾Ù¶Ç6k£¶\¥.$i¼2rI2IY¡Q¡¢ [(Íc=P¾D²Ob*+O©ÌgÛnqÌIÖ°0Êõµgªwáh,ÜÑÛÑ°%×?þ8={§ÄÞ?67ÕºB®ÒðGdNuärJÒ ú\/@:ÖõCV,õf}~DOQ÷>ýq=ÑÉ©!¤Çz½Ý,ïF
-AqZUp
-Y¯YTBf³ÜÔ«¤r#,¦ê<7t§çjOIF\°\Ò:Ïö`´Â{kvãöØÿºßºóå;ê/9óçXÛîÖlz¾ýÑ]¡¹¨Þü
-wÞ5wÕ³|Ñ÷w½ÄW¢P0®.rT¥n¢¸¹ÈË¿g$¹`â{øß
\ôXÌæWÈB_Ûð w§I')¸ÑÒn!-u28¨ ê&*µÉooµ·²³óïØß³ÏÛiÛí9¦&ÖÚ¸#»`ï³Ûgìí2;O©öôÝn»taÞ¡Þ§>®¦j
-aÙ lÙy$Á®ÛìjÏöWSÂDÀêÂ7TfùÙ¿æè½j/3;ÖLkîØzÌð²qâ±Á#vô'þçLYÉÚºu##Þ¼M³ì
-UkzFß
-oÜu[FµÓTlh½·ØË¿jgºPkºCsýµ_«áä)Ýq×Î;·×Þº²^©®kiM#wI2×ÄÖÒÛA-(WLd×zÞÁ·¢kHÕÁp!ïjÉb¼
-%3K¯Db6ÓÐÿìÁ6aåûínfc,ä^¸Rîé×rO<Éúþ6UèØE?ÿîóJ}Èyaþ]±K©
-eT
Ò
.yßñÎ{iwÜK^¯×ï¥Þ^ï>ïq/'xÞb/õzk5!¤´äëµ~-yGûZ¬-
3r)#7N[ ®ôôDÂ
-Ù¾]«ULqz>ØIÖE»ãdjÝãtffÔÿ;m¦/XÔ¹ÖDÊ·®½Ôú«Õ°|½uóR»¯çîUs_^àF^Y¥9§©ÜÑ7èm.Ió$^逸æ2ZµR¼IFÄÆeÚrÐB#úiýALf¬'¬ïZ¯X¯Yy¿_4Ùg=n%V«]Û}\uJuNEßQaæ®MMuá0ª±èÇýS Ã|\]õÎ÷L}}²úRrÝHxõXcÚkø·G¾}{eÙô+é¶ëÏöÏvæævØDÒÚñÞ¼-AKÑWDÿl&Þ>NFêvש£YåeåÄä(³&YI²PY§¤|¡¥
-ȯ8h×´VöVÊJ˲ì¦ó/çà?øØRµÊn÷è³ÙÄ}<{>fg»Â/lD«är1IWãØ¡g»aÁéL¥Ü{À9/ñöÄGòÐ1X$M
-ì¤ÉÌL-X$EÒÙ]ÊV¤Û×£T!¤y>·0Ä®¢ÒJY,i,§ÑBZm~MEF¦$ìâÁ¬ ZÉ:z|W
-U
-Øl*KÊò´4d
-ÅîP¥¬¶#kئ[Â
-®`þa!Á/xøe Á¦M;N®Ék[±ÔTjÍìåÅFHËw¾ºí¡Þ|¹F¯¼×¨ä©u½Ëè?In2ðô¤°`®`_Æñr»ë^Q¹R\ù.ZuAµ:QæL&Éd(!ÉlÑ ýM(Ö·¾Ii/ÆÝPo³uøÅMÍ9/ÞÀ )õmÝûÛs
-SéÒI0}M:ÉL/M'ilöËM¶Ð4IcW434ÈÒÒHªnJÅ[RoO½7¦¥¦Ö¥Ru*¾Ý~¯Øj]HÇ"w)º|]µªuXËs°æ´8K[¦ÖÔrXjã|\÷`&~WÄqxÌV»Q*Càö· IB^gÖëuZܺB®5˵·¥¹ÓVȱYÓä·å¹óZò9¹åIToÎÊ?OóóôùCr\&OMMÊ˨^ïNN:D´é¤ÈÁÞ+÷öôÔIBgMHݢȶ}"°ÓË\ÄäìÄ]í¡EÀùRpN- hÇé,LgòÑ¿½u\aVªðgV=ð½ë¡jµB
-9ùáoíjB£¡(þö3+++ÓÑä¨ø²£o}Za»Ù57¹óÒ»{×$^¿ßþbk5ê+e2¬ãärÐPºq¸Çuë~åqå)%תìUîä;Ê÷2AJSôÊTÝËtç7oôxØgó
-+UÂ41Û#HD¼¿K+boàÚëoâÚØ|àäÇ8yÓÆ÷¹Ç:¹t®-AtR¬ßS<[Lü8 éÐD4´¥z]õjZæÂ|E6NeM±î±ÎZ9o°$#¬Ã't§uD§Kiùç¯!V]®ÞâùÚ¦h
-F)ï¦\}E8Ã!,
-ë-e9eÅ`®d,\V·ëÒµbÁݸe¿e?¹Ç7°OòEÝ7o²æxhUélê>2P§½`ؾ¾jÝR71Õ¬
-
-Xïñô~qtûW)ÛxùN?r·FÊmÓÓýý
-eCá%±Î즵É-«2Zvùvîjwáï¾û£ËGúë+r)¨æëÿüË_Ów¶?6PP8ð¥íÓ'7äxúsp~î%ãÀ«4Q½ $0Íü²7nÕ=@63eø6Rß=}ÉGtþúÒû±-/Eiá @Õ,¬kÐdR nAaaÁ»Daê5S at K@I[X)R ã= 8Cå§ÿé<¸ñko¹_QåW7ç
-ÄÞÄÂg¬î²Cì©M;>K'ÌàñD¬, ¹PÚ)¶F
-ñæL<äÄ·{ RP? ¦r53âã:#1æi»¢Ö²Ze
-Ü ?BãÇ~4ö±×ða
-ò¢8qyv:.! ¾VN»Ç9|Þ°GåD.WÞÀ_"oÑÄ5¤
-ô(Û-¿*üYǤ,Øn¬<ÛzÁ&L;ø4VÆÞúçâ¿ÌåÌmq¨ÑEq¼Ã;ää¤
-à÷Lw(p²¢KATD)§
-µ£
-ñ*H9òÛPEJ¶kÕZxdæa©°ã( A=®QlÐò<«`a)x=ïxø¬ é¤Ý$úYoÓxFõav(.+gI|YàºÇ¥Än%ÙðGÏÄ.žùm|*6ù/¸
-¤4¢&¬éÓðìrZÕ\Óðâs
-y
MÚcêvö
-Ø,#¹Ar ÉSbø
-ü$©ôB'`ø·KϼW{n
-Ó`ÉË-î2Àã
-¿).¾V \ã¨Éú2Ç3g2ifæ;,¢Ḁ̈Ѩ´Éqæ$²Åý1ôÄWI¹Zâ½
h¾²zþÖ=60Üe9Qpâ¯lÏiê¯)ï È/(űÇ7|uº~Íá3'gäÓýgî?p×Áåµk«ìéµ]5"ÕÅ=³]¾|bÿÌ]ÁÏ-ØúïI¶þ!±tJu at Eª5ª!OÉÈéQ· ÛiF]T©°Y
±½2ÕÊýJ¢d¡ZR(ð1Ôü© X1y<|B8"WÅ-¦+nB'U=ñ]2ÀLTr`CUbÛdR\±³Ë%Ì"Y®ßÅ
-û~ÉÔwç±åÇïèKy÷ßOçrJdÔµ|¼â~)~pxãÞd¢JôqçŬìÏÊÉ&çNça'NÙrO
-
-TtTÀ%dyaw!iÉYCLPõgÏ:u.»õnÉÊJ«VªTÞÑ+i×ÒÈ;i¥ i$tÒdMI!M?!×Mò]ExÙÚ#m«,ª/É&ý}ü¦hBÅͱ¿c(çøæÎUûBIgSw®[¾«c ¶4÷l©ì{tk×¹±þë¬æ-Á¥Ã¡wp8P²iu¹t>öûz\ÁñVûºÆoÜå]î³7îy:2üô®ØÑæ»j
-WO&×d,Kï¨K¿É¨C«Ð7ĽӹsÉÍ!
-ÙEî!dâÙv8ìÎ8Avï1ÍA¼YÄ0,g¸"R3Gé¨Å1o¯
-¤¿£úËõïÖÓúúÕ¡Ñ+ªk*Â,¯LAX6YUµRR
ÞÉùnþOVÆ×C_2àW«¤ÝsË¢`ÿjQâ]
-ÉÇßx»Yïróê¡.X5ýâw¼¸³ÊÛ)¯éñ»ªÆÜ6ùôX¹ËßSW7¼Òó3{ý`spÀT=^3Tap§6N®i8ÁUì5
-¼§ýþuu[î_Ý4Ù^ªätõíewöUU÷ím,l¯Ópª²öíÄçm«u»kÛ¼Ym¢@ÛÜ+
]M¡noMdy~^Ë&)>-t%ý££ÑL$à<è±ð¹GHF¤÷k®&6}ÝÔÇzß±Ü+1ËѼ+t%Ù7wÙ_Ë°µ¬@Ã¥²FY»®ãyOçÉéjòà¨#^à<Õðr
ôï/Böo)qÒJ*¥(úõ3CÞHüu%ÅöùcUÿÜSo©dIqï^ ¡aeJ~yãÕXêÛxzæ.ûV¿
-s`ïç(QXHL¡Pc>±Åõúñ>ÐGÔ¾ÿ)L±hÉOG½rÊ/¾(ÜsÃGÁ$ÇÑ
-g|93·þ½{:f|lîà?JtCU×èÚ÷{õµBøï¸ÿ©ûM¿5ÿ8¶ûWàû7Iböä¹oú3F·~0÷6¸âÛÑ~4ûyô{ôUpÌ_;zÊ ÂH
-ÁÝh
-°âµ´ép8VÃ6,þ§
"¶K'¥µh~*Ö!Éa#æ!m4Féä4A:r-¦hÄiÑÁDG6ú¹DZ
-è3´ýþ{"
-hûn"D©Üïi5ªäu´ç´ÅøÇiZ#;Ý8²idjdOdÐ9Ø?Õï|ÚYR\\á\:9L8MMôO9nÝêÙ4<5éLF&vDVlÄï;WµE6MoíNÇ&6E%EÅÎjç'j9ÕàNIáBè³ò3ª¬LL²²%EÅ¥7ª°
7=82éìwNMôF¶õOlq
-A+ÎPÿT³yt F½idr*2
#£Î¢ÕEÎpÿTdtÊÙ?:èl_|°uhhd "D&¦ú¡òØÔ0cóôÄÈäàÈ
-öoD¶±NK#Þ9<20ìÜ=6íìOEXõÏj¹è
-vëâCÒHa
- MpLÁ±EÐ rÂÑù~H=
-G *o¤þ:£P#Ì¡1¸Kç~©1¸[$ÕÝ
-_'³öáÞ¤À=»Cê«tæÚ(ÜxÞVJ×1Ð/xzZêA©tJºN at yD]ΪáøÇm9?ÑZüTHçø<+ÿ[Y#Õ\¬·DO駶²ÐFá'ÚøôG$1.LIwÍ·Iõ·@ÙXøXÇBÒjg$LH}°V¦¤¶ã5G¤¶; Æj©VXz2"Ñõ6*Õjÿ[¡Ç!x~@¢ûBÍ©m&-ñÇ =Í0à iÒssÿßÊÒjit;¤>WJåS±{ÃRnøè
ïNé[unmy ÑnÚ5ÿoB»!îOJr=à~Ôæ6àg$ßüa´óñÓy<h§4£!HíèYäÿ$Ðp#P2"ѵ8hÕÙàÇh¢×~{ñm§Ó7Ñx§48;a.cp=3 µ1.Qvð¦ÖÿOÇ\ôMÙÒÓ
-Æ1{µ£OùJÊÍá?
s¿æ:þ+ï¸,sÜûá£~íCºå£{?"¯|Ï|íûhËGû ñ¢ú]pÞñ¿~íxÿWu_ÿ*ÝñË_ê_`ñÁ$Çϯ¯\ùÞ_¡â_yðJÐæxQ=ål5u´ã½ºvü¬î'¯,Uâ$ípÌ_ÆIÏkÎ8é9LЫP(°ØòÜOê°A óá§Î?
-ÿtæ§ÑÊ? ÿdæ'Ñpúàw->Gïwƾ³ï;´÷õ±×÷½N/}+í
-;_+~íòktüµ×þUÇ«ÄûªÿÕ±WϽúÞ«üÅg³ÎÅÂÆ/Ì\à¥ß]0å
°ó¥ðK3/E_âf^¾HôÏûÿèyi£ÏóLÈ1=%Ñèåè»Qê=ç?GN?}\~öÝg÷¬ÿ,9õ5|ùw!KõXJ°DÁYà Ç8ÒcA´àðɾã'éÃf;¾Ìv?$>DØÛÔ&¥ÙxòÔ_°Ï;ô{àÒT| mIP| É'>¨ÿ¼÷óþÏïûüGçõ/c
-ÃÑI>w4ÛqÿêyÇ{'pñ ì8á=AÆNì;AÐqá¸ó8eí:ÛRÎcÅÇHëÑÞ£cGiñ}Xã>ï}T¼O0
KX
-U£b8(0HýÕ¼ÈbX0ïÝí8²¼ÖqÏá:ÇáµCËç§báó@ñZ|7Þ·ûà$°adklëHöÙ:ä>Ú!!
öÁ½^8.Î_ÁòçÙA)!:L©Á
-Ý!ÇúàÇ:¸vÃÕTbìà1íàJhǬxÑ^ëÐS|'cÛseñ\¬¹ÁX%fAma»ã£U󫸪¬2(®ÊÊ
-¾ÆïÀ+i`Ⱦíb7^$o
àhã\¿ü(Hf8©ÄÒaÀú¡DßA0È0ÂÞ¯ïÕïÓsz½WߪÓ׿§×ËýPö!Øütæñ|â|ûj§å|¾%ª¯â{¢Y«ÙY\ÕÝEÝë:Ïc|¬ëàÑ£¨!%Z²º3ÚÖÕÈ3ÒÎ'¡®É©É©iûàDby<SSp2Ò8gáY{&§¦&%ðä¦<ÓÒÙ39)=¥§t
-SñLÚz7 ôÿ
-endstream
-endobj
-
-99 0 obj
-14186
-endobj
-
-100 0 obj
-<</Type/FontDescriptor/FontName/KAAAAA+LiberationMono-Regular
-/Flags 5
-/FontBBox[-24 -300 607 832]/ItalicAngle 0
-/Ascent 832
-/Descent -300
-/CapHeight 832
-/StemV 80
-/FontFile2 98 0 R>>
-endobj
-
-101 0 obj
-<</Length 516/Filter/FlateDecode>>
-stream
-x]ÍPF÷<Ëéb×¾ÀEÊ$)þ¨>
-endstream
-endobj
-
-102 0 obj
-<</Type/Font/Subtype/TrueType/BaseFont/KAAAAA+LiberationMono-Regular
-/FirstChar 0
-/LastChar 67
-/Widths[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600
-600 600 600 600 ]
/FontDescriptor 100 0 R
/ToUnicode 101 0 R
>>
endobj
103 0 obj
-<</Length 104 0 R/Filter/FlateDecode/Length1 1282 /Length2 77308 /Length3 521>>
+<</Length 104 0 R/Filter/FlateDecode/Length1 1307 /Length2 99502 /Length3 521>>
stream
-x¸steo5ÛvNlÛ¶mçĶÍJŬضím£mT[¿·ûí¾ýõwÿ¹ãqö~æ\ÏÜkÍ=÷c
-e5sGS ¤£#3/@ÑÚÞÔÝUÍÄAAhéørÂQP¨[»ÙÿG¡ tqµvtàýwÐÄí/ nâö·\ÝÊ ân
-
`nmæ0ZZ;Àý·ú_hñk7k/3ã_Ìÿ|þëÌàï7wt°óþïrE{ à
-ý_´¨¨£À
ÀÀÊÍ`afeðp°üÿ§Ôðoþ
*XÿgÌÿ-)ã`áàù9þø³
-9 ø÷_Ù3¹7õUn
-ËÊyÓOÂ\$=§
-)q'!WÃ÷SÖÃfz'þÝ©GÔHØìpdî"2ª¨tW£ÌÂ_CuöxHßþÌ)>6Áü
-M&ËIê¾Ï(°O#EWügÒø2ó
-Õn¸Â|ñ-
-×1ýY/uX!AP=íW¦|½"¯qx¨"M:ú¬utCi»Åjà²8ÎQîÛÊWÅBñ°ÚÕcë®ÜƸöqÿT>X[cÌ÷5c=í{r
-ïW3Öìo7³X¦lèµ<àc¸Kª?ÔÏùDOÎú#n)gg+P7±Çd¨ÒÛÅ/gÎQwô4ÊIçZZ~]Á¸Øzu º´é×ÈÎÒ/Ç×`h³VÔõY÷"-®y¤ ^n²¯º°{ã?\}PúJßH mg
-ȹhZТFH³!qMÐ=)ÅèÌ]Òo\r_tòäË÷*"PêÓ ÏÁ¿±±3A:Ði01{!FuÒIta}þ5¥DÏ]wyËÿfº8r¥írH´eU;ÔO¦K7TÖZØí;X
-%nÏÈãG¹°cgU¦Å¯)5ïcïÜôÈÉÂ~+_+§I{O긦ÃÌ*:¹Ï¿oJæOúö
-
-z¾ã¶û沸Dê;º
-'1´/-j*ÑêãXÁJëF9Mça>ÑlS1ÂÜ.êfúÉZÙtÈÊÌ ôþè}®Æ.ðKgib4^fj9f÷êTYg!|v;îï"úDTÖÏo<á&J/T¦?&iÉ5èD)U
-«tM¨NÃ~
-#m)°xÊ~á°³Ûi`J0Zâ·.ÍôÑ|u>g¤0·'_ùK+sm~AI[ÌJû캡إ´^UO=ýc>µ5g·ÎpnA2¢9Fà%`îr*é6®ò±½à=¼:ÆÌÔc Ó¤.è6¿Ö{{+MtñÍ`wâù@=~`¯ÿP~·ÈÃã2«Q? ~xZÕàJög
->ºzu}£ÀõÎo3{ «0vùiÐ
Æ2&1·u^OF,)²þÊàEIbÞ~ÓW³
-U9PO+ÃëR&;®ð«£$ð`²dX)~ÛA)E{ÃÚkÞwpö$¢UÒ½ó¤ï7Ñ
m$½[^Sʤq£Ánu¯9E`edRô1Ô?YÖNÞßUØ\mi±Ì\S,iø³hçÓÑíîÕ8H¢Ì %¼¡2ø©ãµ}½ZB ¶«´edí{¢·I;ÐHæ_Å;^ê
-ScǶiú4)&Þ%4¥·QWDë4/¨
[Ý|9§é¥-UÂ'nò?¬÷ýüï"T4ÍåqÚfiûíÙ,9-cáaÜð0A»ã3t¾G4`bÎsûmn¦w×yÚ'ÌC0¼AòϳÕö1w-+êÈT8ìasÑ êQjÚ°Vôð9ëviÕ:
-YX?dzÈo¥qÝnkÏÃT°&l:+ÍÊÒD¨{)¼Ò<H¿}±è;îAévbÒÇÿâ@û@ÍV+©-HrY°ûì\Åø°Û!»ÒÛÞa$ÙÉF®,Ae¶Ò¿¹Ú¾òÚüÄ"W·@y«Zµ:¯·¦+âØÂàD/2|Ä~ðÖºT æDvq-·ú¢õÕÖ@it±wÓŤ_·
-Üý3e¥ÙËóñh»7O¾&ßVJE®KìLæÞ:T¼¸,â£F91ÑB¡Ói¥åãçÚãOë<8éÞxΪکhL-l¯:Pú cwVTÆÔ<Lrd
ÆÒ
Ô;ï.Qh¬GSÄ>ùʵØÀê
.úºr-F'É CrÅà/£ûÎg9È>më¡Ù<²f,JHk9
K$ïɱvjÊd\0øqjÊÃöº¿%Uº(æhWwG¢
wiäèÜífÆ%lB';S)©ò÷§&Å«+ࢥgC!îöÛâ-·FI<̼×ÈLüÄRQ;Ö,Ó*>/Ås{»æVmCÂ`±çÆCjÎÚ¡É-®ýd^hÙUSÕø05TfN÷ÚSþ6<ÏÕ%ÌÅYg5
-«oÞp[]m¡ë,(Íl
-$¾¼É>¯
-®¯ã×àÂlZÿÕ±ü{¿omýÑ=Ù¨¼e(¬Ml/û{C3-0µó±ácé3ó&oçY}·XáÚ1)Ôï'åÂë5VÏÔ|ªþaEÒIÜ·û?§ØMÏ Ï£)O½¦SH¿GM°Ö>
v`j×+ÈDÊ7Æ`iWÑFÞ¸UW\{í°Ý.¢å4.¡}|¢¦Nèa¾B'µ!¿+£_' xТ ÆÒ®áÃ#é>#;dÆÎ " åDù[
u
-0o¿&®Â=CÓHOeüü'
-Ñy«
-OL¸{eÊcXJZ-{÷hH&]ô®qRcÙöJ¾½¸cÅÞÑô>ºZÙr¢ËYIÑûÁz
-üÚ]¢b^þ4ÏbÚ&¡ü
-qgÚ6ð«¼)í3'ÆÏh
-®ªq¿kôu-$r í©ÎÜR
-51²vÅÔ} yK$:6ë<K
-@ ¢an
-'
-©zG^"_{ãg "#öuî?GÙ¼\ºUNH§ïÔµüa}l>GCÙ>ж×kãÜp
-Î{¹ÊHÿýè>Ê&Ç1Ç!nÖ
-M}lT±:pkDT§ÿ 8¨
-^¥$iPt[î%ÅúéH«Eáb2ÃÔÎ4eôEïÃѺi$Oã^ç*O;':°Æß»ã}WLò¨d9[MÙ-Î$)n-DD5ge¤ÐÚè6´º`3ÖröÓ¹È_H[ã^QFÚb©Í2D*ÖÉëy|Ýu¼²ìe¶èW6.CaÎWýªe, ¡{2øËA5¤B%.Él¨
-3ÚIì
}$RÍúÔÖª4!1Ì5¸£Ñèâ?óµ´ébBýÕ>v¥Ì6C_Ê_NûÌcÀkh%æR1Ä´"âM*s·Úùò;ïg¥«={mkÑT&Ñþ3±N
->B»CP2êGvL"Ì sØ:©RØn_eÀá6áH§ £I,g4R×ÃAçº?ßPz¥ºíKó'ÿ´#
-6^;ö]àÇuÄ$\L#0Ö×ç/~xKmøÚ{¤¥N5 âò7{l
-ͯgß)tº9ü¼¢]Õ¡/HèñÃÜSpºÂ»ÿÙÖxíEQ+N¿BÁåª ÝX&M}A4ék_óý'<ôÃ6[-ÑbÚñx88«#;çÁº*û¾Àþã.
-.!:ÈÌìWÜש4ìï¸sWGÑZ[K
-FâÚÐy¼H¡I±Ì}
-G
-ß°M¿33(²¹±Î
-yïò½²÷wDº¾£ÇºFú³dÓÈúYlÈ}3qÌÓÐ/ú
-;sÄ.0Cg-äÓa¯¼'wÀØÐðÁ@tPð£z=y°º)£opWýÀ×E(Áä»tkÚ¼ÀÝóNÅ«¹µÇõ¥609°ß"=¸úT®X×
-[ÄØ×v?ËËuT}Êá /;~9û¶_ìF¼mïäÑÁ¶¯¸6Æ^F£Z2y÷À°l,-Eqpw
-Aºª|i¬n|Ç'ȼÝz7ê_áÇ7a}ú.àå8]QVûÄãôÇjuëÒ,ãd!;Ô1t;FÊü$éÃ
-{¶ü¥~9H» Þk8¡Ñ¢î¢ Ƭtà¾BUiÎÎ3¤Û×,CðèQe-É
-°b·Îp¾ö®lÆ¿XHXQ¯0( î~ÃÊ0F§103ßʣÿlz$¶¢Ö¤¤Iö/g½§îÉqû4íl&>åR
çTq/ZÛ"b>ÝÈJËea§ñëjµg´ÏÍ<Fj®Cç|bâR»¹ØåóqYðOsAr£»¤h9vá¾KÞð©
-nÔG
æk©IÒ}Ò+£|§]h:+±ïhl]RÂÐÈ«C ^Iħ³ë=2׸_¾Èý±¢/Lºþ|íÐ8/g¨eåpYÒ!(?ÚÕF¤M¤æHOÓqúôF"÷®÷ÙlaEC#æä´º:VêøClK#P@ÃÑ`Öàïô^óAí¦Ø»O¿
-ëÌË}mòصô.ÜPä»áá?Æ10`HýÍnÉÐvÈnB_îy#ÈÁæÖ~½ý´#°y~¢«;)ì°¸c¾9N¶Ií¼T@<ütss¿R ¸7Eáþ1e Â@*ÙÑH£ ³Åì²îϨY÷@v¬åªÓlHò XÃþÄHµ!²k¸Y3iÑ.û2xÓ}¼®þôû¶Ý}ßCG7(sð4$©¬ÿ¾ïë~×÷see<J´²ÊY*z3OñMëÉ:(¸VPxÑ,§î±òD©ä;zåCƻ¶,.T0)
-¢ç-FöljHa$dA{p,'ÏC~Ó!ÿ
-GT,ö®pËU³tMXâHDÛïãYf;å?ð
!´¦ÀiÂ+º¤ç Ó_¤)8¥ítTn²ô*FÂRlÉz°G¤ÖNüúC1t¿éE3¤.;ÓÕ¢ÄÔÿì<Ñ/¶
-ºc¼ÇÞ'ζ&àîR×Jµc´ô[ó±Í×ÁôoäÉtqµ
-ù§úI+X|é?ÒPÄBĸï±Pó/qª#T4µSwEÁµçh{b+¬9Iï0+7v,ݬ1?Û h[V½U0bèQ¥r6ÜGft¢T*nJr§Bâýayy¾w%°nÕÌÙào¿«ÚôY@Jã<àØGjXrO!G×p(¡ºo§ïübº¤óÖrÿýRcYxû⳪BçpÜäAÁtæ
ñüSW°ñɾèm¹
¯,6ç]ÞWoÒaS¼õ·¼±IÙâÅe=,$ødÙÀ¹®x!ð¹{<
-¼Ù«ów®×Jdóo»ðýÏ073Z¹£ä:
êìü¹p/Ô£Ú&l*ÒÞ-çæÌ91_Õ¬2Ó¾µ<#©º!í¶úL%Á³9Úù
-Q°ÎO *¥¡xE÷ßYð05ãcmÇ/Guî@¢Álµ¤ûvýV¡
-¯¿ËÕ~Á.{ʶF4
h"®[¸J(~NVÁ"%m1
ÍnÜÖ®YA°[Ü·wð¿ÖÎ,¿ä3&>üäøE
õCÄì) ï6)iww:½$Èûý7Yó°«=&[kÆ=pGîºòá©@"ɧÛWûHBD«fíB{2)vªív!j:6©úõ>N6gDºê[e¨|_°BË@EÏ`*âLx¾N®#Xo1ë!q§±PT`MסÁ»ôÅ
-}ôæÄ^÷ÏòaµÕöÍ©NCðsÔ'=,v>Ê÷å¡.Ù
-ª'¬Ẕ»Wþx^øÓÞ¢üÓëJ¶2Ïñ¹¤Ä˳Þ(ëeASÀaQåQ §ár¾¾+}vTM ôÅ$nêÎ+v0P;%×e²T),dhÔïiH|íïÿèuù@Ò¥ý`Ç1ðQWöÓe|çYieÿÎ<¬)Trz×O9TÃôAòôgÔà2\}õ$ê-\¤äNú:xâËkx]È£¡SÅ"ZR¨b·%Yímñðz{õ}è»òÚ'
-ÔËv§»ÐqH¸Ô!w4§$yæ
-ëgÂÈ&lÒk$yC¯k´P-´M at 6i8YâAÂÌYÖý!úÐ?x1Li·×%'g0
-U4G
¶CÁËæã¹Ç7jå#c1þ:À¹jy¾@ÎÇT$í]{F¤8ÚijÜãEKê«xêÆÈü
-±@¼f=2_gR´$±®A\?wÜn.L 7
-â×JØ4ÿøÞ¿bÜÕPíµ±òmøS¦íPªÃEBKÄÊImi:ïª]t[8Ç¿ð½áÜ/QÏùKéLkCc.#ì(Ì®KÎ?U¹Ñ9ÈOGäòS3ãìqkFY%åÇÍ
-u¶øôMîu8©¢S>¶3ÜW|ÄÝç7ÇÝ*: 1Ú©Ù¥l¯¶¡âJ~Ö|a=«9«(ß-ÐÇèÌÛ¿^Wú\䣷q<÷r±]¼û²´árìI.Êÿ|
-t'ÍëzÃÞÛJ
-oez!±¶ùªÒTR&~áe4½¦Ön?ÿxa8FX«L2z+2!T}ÔuÿeiG7´ââY¨XM&îðÃìUJêÿýîa¶ì:ýwùbÒÃÜÅ5Í6Xî
ðéÒǺWôº]
->Ï£ä«!Cg¯.'/Bß@þ
-÷OS´eS8âû¡mAðy3Ì{Æ;êI§³QÈ8·Ñjç¹oª~U±ói?ÑÑý â5/¡Bðþ9Åær ä·=zØÉ[ÓW£¢Íh»2L]´ï÷º2gqÛxN}úT/FEßìwUíع¼:ß_P¨úf'sFìDWÁî°ú4êãôß=;6:»5äòiç³4ºÜ#°a°&¢ÚS÷?"µvÞwg"=èÍaL ÂæÜè3Ò©
-õ2bDÂðmÂ
-t<´ÙȹíE«
-k¾ï°zF±ùH´$¹SµÊÚLK9áµbdg,,65AN£#sêñ3[×j¬'wcj]Ç÷Êø¡fÕyç\ÿ°ßÝ£U.Â#ÃÜ
-åo®0"LútevùÍ÷¿w
-¶\ïéÔ-¹)ÿô8ÕÛôêÒAËëðä08¶Ô×Ë_ßÜ?md{ÔÇNÍÆÞæg'Ø%Ö
-Ó'~)
èܲwÝ÷]6ÐWGâÜ2G>xZÒñ,Ì%cE¤jôѵdFÜãÀI»Á¦:Ìÿ k¯ÐÉ;,Ál8âÉx»
-á9Ä}ánæFGï®;nNoÝÍ2@ Àʹµt«+8W=ïàBz -1+aøU¾x¤`ÙÖQG0Î+Æ7»3WÔR*ö½¦äu6Ó 7¨ÀmßU ;WçÊUÍÄN¿Êc 52ø(G åûj÷*E}>oaù¨br}9Þmkù¼
-"ÇÈÞ¾@ïÔP9ÓrZyoëo"Á0ünH4ÖãJðþæG8"273ÒiÉæ'sÄñ8N¯!xTãwFm1RƤ¡BX³ QáÛ×à¢Ñ=2X o¼ÇÇQ(:¯ê7
-~ÑÛÂÐób¯R¡hµW>;ò¶>ùF©kXμõïe?»Û¨
¢ÿý/\X`¥[L©hü§P°¼¶'¨{½çèçQB<[J¤'8CTÛ1g²ÏÁ#{9o¾i33q¬Hêrµ"Áð· ÝJv÷ÔÚÏ»(ÅÅxAüýòÀÅN;£ñÇËUÐÒóÊ%û¸R 0Q¹tÇÉ
-JðM¤ÎY½½à9$ã:e¨½VágóòÌñ±Ò}éÅ!Í/عóoÏ ëSQ3Ú Wßðú¼è,{ó«bY¹ÈWùP¼ßÀm˺ioIo//¡PU´1 )oC¼?-Áa$p]«î.÷SVÿRãøÁÖME¢Ï¯S£³£MØir¢¡»©/)]Úô
-bʪ^P4¹1ìªpuw½CïÕçäL(g:«©r~%ë'jH%uÿT$"*øɸd0HZr8ý_ÂÑ2}¤=Yü?ÐxwCó«Â Q6ê>¯+â!s¡k/j¬^óB¹µ1;Õï¡B,ç{°Ç¯IÐEHV<&/'®av¯
-ÞÐß&kæ
F7_`u!§}ì·ÖiîO®6û*
-¿5°åÅPrÍþno·EJ8øýãE§iaWNk0Ý w⻩Ìëí}õÜ®ú2²Ð<eu$Uü}¤rxU¼CƸ Zái³ÈÍ0ÊÏZÎK6ʹÁãJÊ)Ó²©>ÔáÔçÁ>m©Zþ+³HÐ!îcúíS9äùÚÃp\Ýô´¬ú·ÏdG:/Åù¼¿û¢\²(~_ `Ó¥yz±Å(ÜfÖ¥ÚãÁ"~*)ûíÞË{.½í¶ô}g}¤Ldé
l&AuÂ_Î
-®·q{ÕöB0®Ð#Í\õ×õ
-cíùz[+]³?gÊË~mùÕÛ°(Ç.°LwøÁܦG¼µ-M^"^A¤×æm.¿àu»í
-Q~dJãÙ«
"Ucíîo£u\ËÝÅrsSy¬Rkÿ¢Ø/ä<x¯]
!¼;¿"]:².ÙhUÊNöÂ7 ±uÇôÐV§]ýy[ö»Ñ$¡µÞÅ9C>èOeßHÑФ¬&¾~i9ÌBù6ú)ÑEOʸUMH}j'Äðq0L6üÀúr8;`9µ¤k÷Aat*o
-©X?Qߥ!AÁÒÒùG÷M[UÉËòû"XË~jÅÏÎâd¾Þê®÷ºËúµÂ=®3
F««c_9g|_lЬS!½ìñý[!¶Ø¬~û>^}ÙÉ~¡TRå¯N´L¯«ö
Iªîg;©£â±©fïÅHkÒnç²òÿ»JÈixuýãdgé³X>*K )UtÌð#¥$D#AÕï
-ù£î|Ãø"*!È*àð±É±°<×o·õ´5üwm+ë~å{I·¡v°°{¹Ç«û¼[½zù* [mY/à5ý=e&PòmÝY&w;&[jA>Ä}ÁÒÌ}
-0l~ "²>Ù\9
æxÝ7
|ô"E OX3Rvh½k䢢LÎ毬>pZÒ¯½6ÃX8Jô#ùc9¨Y`µ (Iá!C{(§füzر¼z¬ì½_ädð!D~Êð°ÎUcì'rÖPkD<é÷d³xF íÇnÇÖÌÏ£g$ßßrEñ«¥¸7ÞÃMïAÇ{|Á|¬¥F4¼pÃ\òÂ×%¸=zªÐǵOG{ó»JM¦S¹1Pí:²ÃÃHB´Z\»°ªä:£Ü¾ÔHçºé¼%¾ÿG³»¹}F¬´d(E ÙÔFô-³ÝÙÑo~£o²àókÊP·?Åû(f&©ÛahiÐz±NXÃì{ÔôI+sn4¤rq<
-DÖ¹÷> ~¥³õEÅêSÃz}@.åËò¹[û#¿VjRH;E¼\2°´ª"tÆý»ùvÑú[è»âå;¿ÍÉ
-»qÃlùfX¬HVó~ÍXZuV¡·tå¬`Ù`cH¼Å½ [íש.¡·ÓQs'ìáÕ£p¬kª+Ç«0}0WÓM|ã[9ѨÍÉ@ä1Iebúr®~¸qâi}]ÝgJìÎñ¼S×Qt_0Ó8Nµø}Ôcl"µõèÖ¾N
-°$äÚl/¾H
-1ʺ~Þ䱡Ê;Ê0_I.e¦éWuG{áÕD2ßÚ~¸Ü××>:Yî»;*
-"Ðè/¹¥æ·¥4åi§âò¸ý
-}(À¢vZ7Dqµ°h¬-úÈ[½(ë¤
-N¶NVêö`èr&ú.¦³Ôp»É>3¤*| ¼ÍÆSKÍmÑ9k2+®¿½fxO!^ËÆCpðVùG+ÆDéÀÉMlÂ\ !;ß½îÌMmÏOÝÐeÜ+i 5¶3®J?i<ÊYFóå@ÀãdJÒ]ùÞÊ+>9 ßÀ#äl59.\}ÊÖ¹h{ÉΪ8wT@öÆv¶ÚK¯Oüõç<ÊÉÓÞèÌmx~ºãjô XGà7¨×ït¹fÐ¥äCã
-hßf×lýzq
-õ~¼=Ù-ó0¡mÑCÈGFrTzÄ®|ø0gÍT¼-ÔîJÚÒUÛ g*ØÜî%g¯4×ýÅýzÐK'XSÑ/gØCS$¤TWAéPÏ!cE6ña|ãÀ4²Z
-ʪ@öÙ³ß)!=½`Îj@Ætl8B
-l$`©Â¯ã³g¢$ºÙ/YûcbË{§¨
-
-`7)w´¾ùnQÀ]ÎÏ*{cIÑ'cDI`¶ñç<i衳Â÷Ðýó<Ï«PM`ê9]R5¶ñÞ¡µÁñd£pƤ:sa%ñv%Ûº®ê8¥Ípj°ÇHØz¤kÒ z¨øµ9zµaJ%Úé=ĵNc&ÉnÊv§×§ã5D+8v"k^+àáÊ©¨ã¥²äY¨ß û:r|{Ú2&ߢaù"fJ³<íq®Qö±¯·qYAÑ[~à¨1E¿ÝR¶&óDGNÑyE{ºq×IúnRd`$ÀusÙ-à4&¿C
-ÜRHáÓðÍ>æ,¶ÏCͪ<\ò«ÓûTXy}|Z®BûqXN[v ühù;Õ]iì»âmoF
-ªÝ¬áê¸+á;>8¡êNb%d8&£~ä¡0¹Ywõ8´®^-!ÓÅÉ'8kŦ4_9Í£Êçøâ4HúåÖöȺ{§-{)iJ4áþJËxl5I©Õ5àLÿ
-Cø7ýsÄÐÀaÒõ§ÍÿäÏC.¤?
-å@-Å:`VÅO×ÞÀ}+ð°·òyóÏ
@#¨H
-Ç$P¯Ûµá4TQ?ä8þAìmá9[@EÛyÀ%\òêMHËÇmc³)ü&¡Ñjigi,ýÐw úcl#Sê³ÇªïÒCüÛ¬IÒæl»K¸|QDbÃmÊÐê¨v(Ý(¿í~ýh£mâÎóXjBʵ=æó()úè}Áùsüéz:õ¾*c@ ÍBH±Z³Kðexé±wà©kÄw¹DÏÃ~9F>´1,f¸ÛpOï>æßi¬Pôu_k÷ôböãj)øé8ÒH,FÎI'ý
- -%_°|T¯¦ï0Ê[õ§
-¹ ü!7mÏÈC0#îbMkXÔÔCfÒZ]Vr\t¡·çª`ÑìÕ~6#B© ÄårÅ<èiçPõQªÉ4cÌ¡Àº³ð~}]]
-_~wV]^OÜ°)¥ ïÑبö0«?äÉ)VAR®}\£$¤ÛdÈóm˳£²Ðw8J+\²UßMÄG£Lî`5móèªú(?l¼§úwñh%ÿU¶!Ú³Ömí`SZMÍT¿¨â¹JÄ!ݼ¾TÜÌÏRêî½ËÍ$ó¼ÖqsÓ}@¹r5(
-\©+÷Þq:?ê+áY¿ÔIp±'ZyìÛ0o?á¸ówG0¯4 |ôm§Va³Þ!¹«å<±MÐC¤eÏÚE3xæ¼»¢¥¥Á0®qÈÚǾ(A`¶sÌâtìÕ nsSt}=ÆQ´Ò®]
-Òþͨ©ÿ]¥#¡nUV½"(fÑy¸-Q.nEö\ûrá*¹¥uv®@èzñEµ¿ÔÅ×8(g!Êä?I7¶ÃÛ ZsÉ@±iáÃê¢IЩh uEv=zu3*-êÌOݬ.Ë;Ë,[ÁÝýîôü^¡¥Ñ=`ȬaÔ©I,U¤<?zÎ5
-£§_}¼V)âóy5Pnt£6Í38°ÞÝê
-¾®Ýû
¯øáÊ)úQðáYIO
-x3X8nu`jÌplæ sdyDrÝåå>>ÌXWë
-üÿqÏ]{Sj9oYh£.j¨{·TÝVδ±@wû£qjÒ#ÕµÝ9oêc÷§%¼;ÂÓÙ²»|EdcP_~¼B¯ü;gaòÿ¨#¨î's_ß$|Ñ3ýÒÕ]× R* tLN)
-[H>P|vK\"Y!³ì°NµÎM¤¹NÖ;ÄAQôR1ÝÞ61/é[VãL!èæ"vB§æ{çd»Q#<9àdAOÉdü0Sás9ëì©øÐìÆäJO #:R\È#ç*|/ÒÞ«Ø©ÏiGkQ ¯±ËnÞ=!¬n»j`<´²©DT¾MzË'=gåLúÙâ£ã¶¦}ƽ¼-È.^NQÎidr!pH>ôK!kØ¥8gU`b³ÆòÁ䯲.üÂXÞDkå¸O8}e
-»Mdº6Ö+'=6ºt6ÃxõÝUÏ3öÊ"J
-µYÂTm
-ï|t *3zõtP6<÷Â&¶yV[}÷Okëfõ²ñÇxvZyêòíâ³
-â$EU³ã`sõ!Pêà#Pðyþ5y覴÷,³OVþ%"
-ª×â'cb
-jçÅxª=
-±4ªÎSçlÀ|;>øwÛº
-"¥×TÞTR[|¾ºÐ$Ä°E¨pà:t at i 4:¬±ò-e:ßm-HÆY*¨yZw/ZNPðÃì:µò=RYóÂhÞüx Y¸µãáËSþ1ÊÕoø!ÿÉ (¥ì_ÿä£tLѹc<ÙØÕ¡4¾ÒýðmëÜÝjºtV¯X¡èU< ÆzFEFÆüà´ýkÊw+Ì-*n=׬<¦l"ú§¾7èÌ-»sëRuï§uï0Ñ?é£6/¼ñ}¨¹b¾ðXÕq@ÅU¤6.»ì¹ÃIÒ«k:Ôk*6Þ/üx.Ãu á(jMl)
-íSÅ|OÙ_æ2õàYìKO¬>T"£y.EQÝø!)Í·ÀÃ;é3³øhN«@wæzAä¬QwX¬?q¾²½Ò%l#/sÆÀ`²¸QÜÄ6¬ñxó*øÆR×¢úØ9¦èËÃ7\'FÈuå´Gç6îNÒ¥]}á à.2 };ögÁý".OeE!}VW äÒ^øà!ð[+ÍÄ8ý+˺K ºøg¢Þ÷`}}Mxh}4·1ïñíä®ð@Kñ¯¿úû·fôñÉIf~1VT\9iÔ¼ïécØu_ÇOÊóÅG{~bua"h·M<ÁË^åËèH?WøÃEW,]×&Mí¾Wpæ¦PWN2Fü7Ö>âÛª:¦elÏÇé;ßïÎCÜóbö:iöé$×ðÔ%¼KJ¸;DÆlÅýjÎ:úÝ?>É<óT*5×1Õ ·
-óL2TR;2¡O$PÑÕb
-H~Ì¥°" É$îD¤Ñ³z%0ï_x%¬K¼,µe
-ï0V®¸ï5Æ
\µNáÃW
-#,¢ê¿½·Õ®)Dz~Z¸îãè
-PU"Aºòñß.â(Ûd§E(9eVÙøçgüK|Öì[²¨»
-ªK£ii¢3#Õ µ×YÙÀiÑL»X3Uál{Ðßê),b¶rM²Ðc¾¼ÁsùL±^ì)Ä ìOä±GcXJóýg®±zp°iÔÝÅÙEÁ©Àr³Ýæî]hÐFáMÆ^Ô*vO´ß·<Òb¨}d¬ü!»´Í
(O÷°å@¬¯n×Ý|TWÝñ+gôHuªís3s±5¼¦6t-þËâºh!ô+
-«¶Óò×;bsêºÇ·Ã§U6-?gBöÜè¬Þ ÅoÓÙÖIñÔ©nb¦HKºGÜ£Ü~ÜcÑb<ùSûD3jn|¢[ESY8÷û¶¼f9Þl¯9´½Wßàä
-LçÖ9¬½øúZ>GôþuÐÃ¥øÍß\e²Ø_&îöÁ
-®ìÁ.üZdèÅxz,n? 4á
->ÜGñPi,xU&}5+h"Qì+Àí+\Ãpr\Wg/5:-wRoïß}~!þXô'xéÎ0Xï[*þ²Ó°~Ð}a³ð¶Oª'Þß¿©tÍÆÇ;£³ÉÊÑ
-W÷Hêºâ+Õ~ûàÔ8ÈM÷øÚ×UÓþ
-hìñѺw
-%Sç ¼ ãks?uÏV£V^¬[¦ûúÎ\¸\À*
-ägrÖÈAFvÿ(9P
-
-ªµIXTÁæ g»^±mÐ&ðxNaKYÖÉõpµpÄcêMyuhv»àaª!aÚ4vÌ渼R) Þ~þ'âÜU¾,mû7¿üANW´i\¸¶óÈ_ä©p2Å«2ìðV¾V%ÈUp}gW@¸×ØR
-MÉaµ¯â%â÷`ÿ*.õYT®OE´ eÍð<×Ù?ZSÄLdé!{ê=é8:²Ä²×Søá+ÀA·ö£AL(!Îå"íììHgý¯÷LðÇ&Òï¸þ6;Åçw×Ñ0m °\Dý©¢b¬8bÉ»ùÙÂ
-Ìdx2
-O±Æ0w¯ëBõ'5½£Ã¸YÐQÕÍóëJB¼`aÕ²?ûºoqbóC^ÎKþ IÊïú(·¥âcÚMM-Ø k¬âФgéîJßHÒç$í÷¤/Iiqc"¸â×&ëÜ~¡¡v¢Ú¹w@ð5^â£9#Þ)ÈWÉÁ-}®¥hæVrê@b;´c °÷[ç+úY>´)vdlæSêÙû*
-|ÔÍE\²
-
-îçÀÀmZõHû:(ËDjôrØUo½_Å#´}mñ6éäf£¢ÅÆýXH¬ëQã@*A:
-·4Äÿ
-Åá^/sDtosqÄÛêyF\iï©
-=ÑóË8IN Ï#1b_6ÆÊØÑ$GÓY6ÎCþÖ¼Ýðý20ËuÎ,¥ÀIªÆ ¡<áÍúei?ÅÓøéO¨kO
-wª¾
-
-çk¨1@£ÑêLnº/(`<|G¤+äÐ:oÃútK¾0´Ò¯YîòË},Zæ¯Lk.êÝÎt#Ï{8wâv¬Åã2ùï kë¥áJóÙN
-DõF1Ôí~׿xA!¢Û^;å¡p1\9Q£ÈÓJü4uõ^ÑqEÛóÛ²½oÝ#%)¾RöF%Eºýn[bEà]ûÀòªÊ²5SEØþ¨¼ØßÖ#øIª ÚùëÜ3 ¿¦}ù¶JaAÄh¡-Ôà)$"Áluê"âÁ¢9¤?år 2;öWçØ´ô¿Q[Ü|d=ýièȺóÿ ò
õóc¥¯X¹Ã¤80¸¬Í
-
?´¾rA%&éjÕâPl¸w:ºMѹXÿB8ËOè$J0Ù|6Õeß÷F%åF9É,Î%øå¸\ã¾ÙϾ«ËîvOßBâH¾ùöAbàL Ý"´BÀörZx1@=&Ï;3hq*§éjï^ú<®coïli/aU ºyÛ$xë1gÕt«Áj1ÂÍðXþbNݱ¼µÚµ
-«Ä:¸
-¥´uÿ )Þná|oªà>¥<µÓIwlg-Ó,[
-¿Vôà
-
-ßËkóhS±³)øPYK{
0»ç碌¬þO÷e+Ñ:¥#l/z aâG%I±'WP×W}| TznrâߤiA¹é¤óíy*,¢åü§J
-S)úº«å/l-B2Sû
-V#J
-Ô=ÃÓE¸lCd¨ÎhhöíiÉZG(ÏõKøEPoðá6ïï\ÍÄ\
-zlj¹<ÂñΡ42o¯'SêI®t8Ú×è
g9Moa3®½ß,T%D+2¨¦Ýåå¶XVvKn^8Y=w³ÁÖ5@ªÓR×R.æXØÒCÅiAoQ
-ÂV$:¸S»XW$K'G
-ÚGõeÍÏb½fÎÛdBRèj¬ùÙμûõ?(ÓbcJ
-Y±*ÿµ·G8öå8#¼Rõ}Â~-8rS°
µÆ·Åäëû°ÌEââ~¸ut®%áphºP·0Îj]ÓÞ
-ç±´ÈúUe¥8[µL¬tfá£pÆaM¦³
'èÃ)Í©(C½E¸³®0oó~z.®óýÍ:À«lqÿ®TgNfçI´c¹9ÏÂõ 6
¥¦n\SüØkÝß²è
-X*#rÄOñÆÅ©k§54ұƷîZyHÈ
-ù>{t{Óð§ÁXQòºÄgå·ú
-qÔèðPÖ®ÒìÄÝßfñÞßñp .i,Il´ïâÀ_GåxL`·i ¨Z5Tµ4Öí,+<ç}@ÚpÒöÄì^&ûúT<MýL¹ä)N¤Ð!¡A7^#gý½O¸®.X¥¶ÈnDÓ¡ºáïl|ÈsA^çQÓû8¨«ÎAW-Tùúòlïòϯ²<VÿíÈÓ«à*¤+v6tëqI}5ª¼¡¥v'£ìÃQ¶¶®QSïlØËdÝwOÚ
-L"ýSɵOÃh¥ùÀ«ç£@|<f'whûü#qÅBó<ô¨Öû§s|Ø4(Ûûà±s«ä`CR¬Çwf̶k~N~,[Ï àË{;¿mcl
-Jûaðèqòí8q5ÂD,ô&&cê º»OMȲGz·¶tO'Qx·y[DÄÝUu1PÑ5IW
ÂsCG]fxéY`7H¢ííò_óQUÿμ5/)9W±.Û #ïâBªÛÈÆ÷àÈ$Í#uÁÙáe
-(`±Ã2ÛNÿôª[,`âÄìÓ Ó¡è`ÅxhÍ4: üy¥|4&Æé?¯©¤uØÌØ«Å®´AL·}(¾Þf¹}~¶ü{>
-< Ë°&w(U±sºUñìfØJqР̵ÿÙݱÂluC¦ Qx¥_ÄYì¿!Ñb®ÍÅÝ%¼*¬Ö«áúÁQhÉïB^¾9Ùé¢ñ°5ÞÂQ®è96= ·ªáãèz(0vPVú]ðÞ"÷ÒÈ?Êo)ûÛù%@AÏeȯɱîOzÙL¥&8Þ°Úû|±¸\èDø®W}£U¹î~~õ(Í?ÂÝo
-ÌÕók=Û}¹bÉ[Z;ï¦6øÇí's/¾Zzë
-Ó¶\G9&:®szÎ,\Ôª¦è'ïÛlqì¶9U´¬~ųU*5Ü2S@ Æ¥)kÛ_kb¾ÉÁG]KI´TM
-m5íM¬dÒN}ÊéaBÎPÐJÕÄ¥ã
~ÐEë(÷Q£9$ú·ÄøÝä˺ËÙÕëPÜi$
nßJGU<²L>ßJZn×Ãý%·Ó,x}ài¶ÅUÏd¶?°ÎUJÜçÉWÚúc
-·Í£¢¦&
-¹òÈcûæ»"Ü
-Îfۧݮ
-ÄyÈØ&hܨDK®eûÛ[ÜU(ÎÁþ¾QXWÛ>±¿åOMÆ*%NÓ>õ/eëhÒ)Æ6µ¶@òËçT-fÓ(BÆëÇ4ö¯!¾íÎÖUaAÙÈ\=ÃÀ«>ñV£ãí8`Í©àSàdpÝ©Yä?«³a̺$ÞXó_l÷?¶Å¡/ ¦¡®=
-gÑ@(¹¤'8¡ÿ P ÛÖbÆ«±ôm¸ª©±·Õ¢dwè@ÓlÀ|úãö°?Âyï@ù"ñ ¬)KÇxÞ ÕÁÄüJ]ÞÿYLf±¹ :{ádkí«ò°CÝx"n6{ÊëXëÀ
-óÛË
-æ ÞîL&ø#ñþ^m§FüÓTs±UDâoO~èt¥F¯éê¡~y¢·Ùæ½×
0v7ÔÓ¾,¯:ݳqÚÅ÷ÌòæTð!üRnò²TOÁb Ô²G;¿u
-ñâq@Ìj'äÜvD3j<Ud-¬$¢Åæ´J>Ëþ´#Òkñ¨êx0ÕÏg¦¹!®Bó|AcþU7Õ,jmÈæAÈc]O¦â]½ÑÙÞôòùkPÍ`x¿u±aÜP=qtä³HεÖQø£îiõÖÎÍ«A ÍG¼\)C¹f¹!ÖÕö·ÕÄ;fÎ8§i]TYõº¥ÜOû-r EÀU?ðñµNV©ëþw§ªL÷ò¥4¸S·LìÚÒïØ>£'ê%·P[.mB|ºO9îãDºüb
-ÐW(;³ÜåOÁ,ý´1yÌbáz²Uä
-Òª¶(J[ßþ´ EëbÕÍjw
󿸥DK="²I°uG
-5ض¼ÄHlÅ¥TÙÑÓvHj×X
-Ï$rPÁ4ÿ3°µ4vý°ÓùÚ¦võ÷/FW¦ü2¬ç"Ì»#iòì#@µÎ·Z=m)êfƯõÜ®RÑÙ;ukÁKf9Þ@%ÿÊí1Ï#}±uÀgä$ñ¿ B_ ÅÙHÚUêmjVv0gõHvȶ
-_9²ßBg຺ïÄòÍßÅ0UKÇ!ö
µN\pÌNuîÅ6g^þí
-Ù'KÈ3¥È-O¹çóå{Ê
-ÑFäô_ÄVæåáF´i6¸Jv.-nT ʸ=EZ6Z]ÇGRÄiAÂ_l²cZÖ] ¾NÊG#Þö")f¯~Ýܬ ¶ãNìaóÞXêËÿ-¥â:·Zó#'KþJë
-°Vy¿©¨£VènLì[jI5PÜ&Ð ø44¹i÷ܧÙÓpιí¾üVðyÚXBeNi
-\tBÆ*ÌÞzUíX³&Q_Øöµ'è$R§z{qÅ|Eç±ycÜ?ª¦Ä7<?àô-Ó- at p¨
-Ê-FK³óPVGþ¾ák42èûTÀÚ_íú »NÖÄ=·;@»Ií×ó¶ai¾óËYD
¾/AömòÀ_Ø/üYÁǨV(`k¢~ô@÷î¤ ¼¨>ìúÚ¸SY#k÷Z*KþÊøî ÈQ@ôIXa¨ ûPGwëTui38³*ÂdzÁEmÐ2Á3
-¿CÝF4ÈS1ó\},ÀÁͪ%ÍÍÌ% &B¸Ñ»Ó<}¥ÏAë»wºìÌD½#ô>$gÉðÅÊ_æÿ´BbÇ
ÚÑ8_Y; ûI¿2)$ÞyYFç°M¶Uý1§ý¥
-ºP(ø¿KN
- N\'üãt\Ì¥`|0ÈüBÕ(ºèÌÅ©Õ¢36öíò²ýizSQhÇÔze-ô,oêègéÒ
-ðË¿JÇþ,õvÚõx¬Èá2&Í/U<à WÅzN
-m'ä¥[kÉkWÄ«EUlÝi+ÇÉwÓÇíe2YékbÒUFmIoj)059býTÖüzºðRi
-)DT3)ZØdQ÷ç@ÈõÞ¡ùm³ãÁmü$X
»\$9V
-MÐÇb&]ú/÷ArNòæ:'È.^d¡É»gÉaJAî-}+»+ÄÊÞµLà³Ý\qì3´åDê\`4|16GYcr>\ñA`Ú
-OKó+8Kï:jkؤ¬ÿbÅ»/ë}Jöq|q)»P3ïn¶Î»krÄ_ýìp/1zJÄÅi©×^á¨Zo8IJÇ]®FB>JMW}bعûj"u
-ùªbZð \¥L¼7³S-þdy51ö0ïväÓÍé Ôµ²ÝH¾féÇY|^kZû5ÂðmòÀo Ñã¡1Q
×Ö¼3dêâÜ{ËZ>Ìâ¹&¾Ë¯x̦¶¸7Þ#^cä«WE âp¤]
á?LpÙ$rµaô¾åáIÜnkKå9Ë
-ji¿ï
.®
-½¬±ªÎV4eìä°©?tò¾g½à{U^gîa V(#®
-¥ÎD?²ðçUÏË7 at IÞc_s&,¨°@ wV §K¨\ÒÐ31«O¢þØaý¾Åðf{i8Å%9>k¹ùê
-¤µ´IÛ<.¤6ÖkS
-MQ
-ÇéÆ%¼R4>óþÊ /rN9çp6¢CÑÌ}¤YÇÚA ÷Ð$`xÖoÖÝ×Fò½ºÏ½ÇYü¼XÕAcYzÖUµðlåß3ñ[/µ1GIÜ:XÌ*FÖïPrUEpÝ|/Ï4%1åæÁ,(62ùÏñóhv>RdÍ×óVNZó¾±ÏPLû3
-³x`àû"èLâ£:MV4)PSÖïðêçÁi~¹Cw@ôy&¼i¯g<ãceî?dpZÉgÔäÎJ¢Ð"ûõÆD¢ÿI7ì: +õ$VòW-Rb*ËnO¼q(KËM ¼¢,1.à+RÔqj
-rì«øXí+¢°½3¦ÃzQ±ØoÇ
-únÎ3çÐm"/JH=Dh·poõ©³~T¦Ïm
5|Ì)1qu«qÊqâxVrõÍ*k;Þ">ÆȾ!³
-wpÚ
,$%PÅ/H¢ÝHW=§!wò$«¿,KW+Ò'¦+{±&æ°rhh *
-ËÝ
-/à
-q«ê0)ÏçúÏCòôcÍE%½çÑá¯Þ0Z¾Á
-{-G¸ø8e ]qUÔCÑ`C&Ê°"ÿ¡¥¾ü0}êLã¬ËN//5 ¦>-z¸#$¯§A=ÌuE_6NªªNÃW*ÅoXkFXkmÏ4øC 4¾ÉÙ+s#å|=ì¤'X
-m°u kìlÂ\¾§2FC£yÒF×(EØÊ~5>û!Þ*d8¨ÊüDðÎñHÒ<Fñ´ãe\3¸¿\ÁöñÙ
- öÔIJhØÛÝ2wxÚa,"ÞQ"ÇcúØ©®_Üõ5kNÂlÿæs7ÆT²ÅÕè²ÿ¾.8²M)̲ҬêeM<T;¼Ù°ö5ÃÄйj\]åa¦Ñ_øOÓ®TËùÆáŸü$X¯á-]ÎÇÅ8tk`+ðÄê÷ý±z¬É©ÕCÜÈr£-Ó j´þfWr
-fàãí
-jÓT£ö@kbyeãï
-z#wì
Uw§|
-¡g|
OØ´®ü¤<EK}tÚ/Péµû°i<y}$à !Z×û ÝÛÅ·ò0y"Ãw¯ÒmGf¥¹òU9Îïµ²cNÍ´[qñ7ÈÞü¯i0ÄÄ]-'Ý°X6Tøì¶Ôî[¶¡%1Þ'ÜêÎ϶ôö°M)öØ[Ê8S×;ß5}Q¨3u¡¢&ÂÖéõF¶²'º=6îp©+8Fæ¯RÃVQ9A®zSèÍo>`òËCããÆå0ìåvA4ç
-í_ã&Eho¨OÔ>\ôî¼²¦ £ÅGEM¼î¤i³ø
-H±
¾Ø
-#lì1᤿ªÛ0îës¹Î¾:|åÆ¡´XfÛdÚ
-ź:¿%H^rMu]¦ýþ0f?ÿ¸dvéfM\5
"LFª¤Äd+ ³sÇÆ(ç8vG7mV8X'?sR±GJRzZH×
-ËkÚÐqEé1ÍÃ:w½¶´9Hõh]Cç~÷èÓS@ñÎýßP{ªðE?§ÓCI/4ÊQþðîij®Û-w©¹°î~Î-ç!B¸ë}>%¡cCÙMäÛ=ÝÀVóüt²bi$ØMtAím#qWéÓ±FGöƨzÃÞW?®y7U\ÜÝp^p£é_é5z-®þK¬gaô[Ý©íãb°L
-ºï¨)`ʯ[ë§æ/¸I²CÞÿØ{w^W
-Tb!P>Õxè.-¾þÅ= o]sqBã+öyuF#ÿÒ2¥B~3úÎZL14^#ßxtbõfÓûGAAjÈ@!²ìØô¯D¹Ócà¹SèM¦e'äUÅ^:lx¡÷½¾Ù1Z·æþQlt`£Ö¥8æ·R:ÑtÀ¬¾
-(«Ï[õÈ*+ñûBß
-ÚqYÃ`z
-,©cÌPCÏg9ÂOºqDå½DeÀoì+sÀI~{ä1Ö\
ìþúÐãÓÈR±tÿ(ét_dr-¥~¹Aùc$"عê=4AâU}ß1joDð¯4lò:Ë4«þ5θÔõI{k±§ûNùâ&L %³Í:
-"éûvGÓ
->/Þ+D3k |5ý?è±ÛîT¡û¶
-ðìkçPcøbÇMîÙò
-¦ZçQð»KÚW3.Ie'Òésaû
-ïBw®D4ß _1Ãði[þ³4dfßhÃÞY w槦½HóÛ¬ÞÏ"ãþîÝjKT`üm3©üdɪ(&éko¦z+
-
-T
-U±Z:P,«:OÁ"uÔÔit°bÔ¹¿è~'Aòa06H§&
ÐÄäF`Ëôáκ»·¬)ç_µoË3<dÔÿKFQ'cÔ1æg«Ú¬Úu?5;3,Ó:´E±Ó5Ö½ì[NoÆ
>
-H/^¤M;¼?*þHéìÏuê¬>åú}®§Ã¼íþQÕpÕ¶_ÇycVc È×%
-HůBëÆyHpRå¯óV¢X} y¡EÚòù^8ÑÒí+XuêwÎ3RqÎ/;ÞaÍ(
-ýÖ1ßüú6©1CçÌñWHJ{E*ȩ׺<G)õ,¦
-
Û55ÖR3á«´K@ gB¼t×U¢Ä+k>7aü¥ÚäB
-F.ÛºVºb
-æ.ª[ìÿÁ :écA<¸Åc;
®Î-¾õ7ÆÉ®,5aY« `ÍC
\¹þøþ]÷h¼¿â+E:¹ê£¬yð.«}RòåîccÊÜ&B®è×ìPF7Dbvôtl0ÎV¬£¿|k3ò§ û`×ͪH?TdP
-@}½áîmv[ÂI±UGZ°8¬{Þvq,$Z¹7RW?¨*DÝCÕÒÖýåOçKýìV=§ÈdëjÝÝPÿù1(
-Ã××a!¥@çpÚ/ä,rz~yNßseÍô`×
- µ§§Ù3"Ê"o'U4FËv{_aWX.j6!%hîp¡Ê0S´îí¯FDmÄâ½
¶vY¯]°ðÅdõµ6µ+þ%eÜF-óñÆÀlê o d,øH%éXÐ?Hجt`ìç:S ) Å1÷èz(êÖº±èLPÊÏ2ÆI¼<ÇÁª
-ÑçO6·*a´¿üÃiÂÀòO%Å)XH!\ÇïçÖ½¹pÒx\Ú!>IÃZÀ¯¬@Σª:êÎóY«$¢¹d¿·^]RK-AS˼Iaúyky0aïpg2íNL*¸vÚõÔc¯UÜwJ}ÞÌVä³bÁü>'wMqS»ÕEÆÊv¬¬¨e§ßØVÔ»20eéFD§«VÚ9In¾ûÌ)QvÕf'7[ßË Çè6ê#´àÎÿõàmJ¢héAç.o\÷Ï9ÈJim²Í}%ûѱ³
-[¥3Õ_â94
-
-ßrLH{»ÃÍÉt%j@?z7âª
-d®XCdËÖý%qlòØöfDìÄH½-éé)Eëº]åβb¸B¡éò±Õ©Àrú!ïE¶î(üouÛ
-Ð<KV.»?Èþ°ãbaÉ£03¡O¿"tZp4^¾îùÈ;;¶Òî%â¯
-O ebf60_cü¡È7%#Ǽe@ÚÞàbV«ÇN3N,³¾+_þ%òìÏÎAúr8BüKB
ÍeÉaÜñ:Ìüܾ3ÑcÀ8HA6á͹Õòr>3m«{ܽrKqE*ê¹Ì²J>§t4& |nn¦¯ÓéJd-E³)Ýîõ$>Q±UÂIáyM¼ó@F°á9ûG¶z,ðxJùø´½ÃFÖ]¢?Kþ
-!Xå°Ö
I¡Å0iß4u
-«æýþD¨\CrìnkU0¿õ"JÀ
-÷°¼wévÃ¥³ý¯}Ë·+F·Ic°,ïIWjJGg¿à)§ãÉ)dMb85í4^¹à2Q¹ìæÚ«dOË96Û¬EjòÞRLf¦EµWÛ^«×Nh..s)´ÝÄe£¡ãeÝWhÄi
¹ÃeÅ4¶pdjÃð ÍÁ»ÈªIÆ,ìcèçj¾¦àÍÐ:ÀÃJwÓÃu\®Ô^"X>EB
FÝÜÂý½iµÿ¬ÏÛròï#c[Ô¼ý)ÕP²q½làÙOº±QZLÎçÁóßÿñxV©6:@Ðæò«UBÎ?ÂZVBT¼ËÐ%é½C]·t êSÕd.zO¡ÄÇt@QÇVºwRzíÏq©wë/z3н¿ÈvIyË Øüäg½oScü¹Õ"_Þ(GQ)Ç»ìE<Fü°éMdÔôÌJ±eUäïU0ºj
-R4Lkêm¿³Në{{ÆK9tx~üô¬Å1Mlõî®;vòÝ´BÄ~I+Ýjsa6n0yjéþ
-\rÁ´n¨ì¬¡hÆmå¿S³ÁÔp¨Ô9ÛÖ¬Ã_âY:qâ#m¯Òªë?ýÙçÚKga=æ/¶dlèàÂ<J/ê"U»5krþ2ðª:ë©/[ÓÅwÔ
ï¼ú°:)Î7g÷ü5s ÿ©!xYõJ«g?zç¬ùC1#DBÇ~þ.)"uZáÚnK]&.«3ð-;tOx ©`Xè×ýd ¶ý±Ï®f`²&÷oñ26ÝõËm\!./-!ë°±RO¿ÏTà¾rhM×q)VéñNñ´V¿ÿbÄc6iñ¯ý5+±[³m[uÎiQCØP4v¹¬.§ªÝ°áN#Ox(A(=ÒÔl/Î!ðìF(?:ÿUÁàD_L¹2:Ï|Èæüfm=#Zq¡*Ù¨Ew:]/+Ë|àß]h^O·øÚm·DÍñƬMc'Oº#¹Ä©K:\9Ö§÷hÒöÜEîx¸PLC¾zÛ(ÇÅ×YýQ!I|(@8T?7è¶×ýÙcWâYMH:ð¤w ÒJ>R~ù¤®þ ÍPßc8ÛªÔ{yúÔlå+}YÉ^ãH(Ѽ(ö~¹µpLF¾h¿Ì]'Åe4|»_»§/ÀðZD&-.Aàüÿ
-²CJd¦sºTOÙãÜeõBo(L&d¾·=5O°ïÊéÊ,°Ç·oøà
)xJíG5z?ö_5¾îõø$§õêÐ-VêÉçòC ¬0o»Ñæ¥{°q
òôÃe_¿Wñ*OÄkA×ÄØrÎ]Ìl`êŹÅ8KKóaiÊð®Ûz´7º6®e²+ê¼ï4Ãy àÕ({îRÅ\ßPʼ\¹·O¡ÀS¶6DPÑQó©æ¨oÔ}$!Xßî-[g!D\äÐô¦OFþvÐ4®¬¥L¢(7@ÙIA,¾áFüiÆâÍ$¼¨ÈDùS§Åëôè}®79ªÇFçéVÇÎ#bwF¶I5é__FÔSè«Ðì¶í?ÜÁ}åÚ?+ÿÈ_³&ãÒõè!<¿4xÉb =èF;ïè²Cª£'×ÙÌíÊU±s'!
-2²1й£»mcX}éEËÜRï~ÇÏý38S\ª§mê_*cãĽË,}L-Hkf]
-ÑçVz8öèÀN-Í@&3Gçï@}ÁlU;«´ ëy
-ÉØéêÓuý¦ßg>ÆÚ{Õ¸2ö{OTôsاôq¤u
-+³öî½4vÄÚøizZXI0®y=D,ê¨fR(
-è°ymÞZ³OYhI0ý úÌáSMÕxX«¿GaËÉÙÖö.ñÔÒw§jÓ=EL®¹y}ã`þ×=úfaUU/&ò·ðýÜÃçj·nNpu[ m>á¨ÔñBe=TJ|§ù,a7hïCÄß©y3à>Zð[Ù5À/;;st½¤"1ÀRÒ
-+|üûQ-ÉûLDÄ©í=
-ÍN ^qýÀáýÐ9<1Ø MP¬§¡¬Ür C$->ÛÓ¹£roÔ@®ò].µËp»aþÄz¡{Ö
-RrT6þ"±Øø¢ßóC10YËG5=ÙËÕeo[ò®ïMðÈǹb8ǹ|qÁá¶ë!ú!iF^Íåw¢«I^,búj4q¸Ä@2UufÁ(Ìî}³4©_RV34Ý}
-n£¦ÔÔ=À
-[û·ðdRú® W<Ú¸Hõ;÷ðÐ
-j/ï¶Í yßjIïÄîìê
obl¯ ôCÇ_CòrÚä>Ýi´PÔÐ~ý(µM,#Ãgªx§ÃäNîË úÕ
-Ìä©ÞKON¦<½Cvè²x¸Ô%J m¯¥³¸¸×ßt
-g{Æ&kÊ]ûTg×ÃÐñÙvU¼£ »¸[£üW /æu xt§Fm³¡²¶§nêÎÍ
ã(´6UoëÚc8ÞûZ³X±Ò©ü±½%̹Æì3xͦyÌÕèR#yI±«d±¢^7+còÂå©âÙä¿9ÍÙéH
é×Eص-²ÛPcFf\ Xï®Ü6m":bµYP2AÛRtÂÇñ±Ö¼wÎÒJÛlòyt%uu´EúÙ÷"Ký/~GµÝ±bVù°%
-ìq®Cc~@s
-,ôTw¼Å@þÿd'ëkïå8ÞÊòÛÕE£÷©èCqyͶãÜKO¥8è{gkl²Òì^
E¨¨Q{HVÛx\DýûÔ sÆS²8 e7î¤0tÖWñy¢äÖþRÖöî|úg-Û¦Ì#YJù3·ëádYCZ|¬ÜNMÀ§m ´7{PgÖÂ9~{qÃ~Ï]ögq)'Zq3É£ýøåÁ;óþ.ÿX̹Êpö[hÐÇ´dôaY_µ0ê_.jÒR¥Ð¦ýÔ¦Üiâo|
-s½îVTñÄGÊ¢j9ò+U PEôp{åØÑ+gÉ8Iº³¯@7Õ÷(
-¬¥¾YÄ×·wÀô0âûô'¨³_f)5¤Û4s D*Uf&"mDdiDÝ~á6 1\Z
-=@Á®
-«8~θA:s]ý¬ú±D¿+puãU¯¦öÑÍÀËâèÅ 3#õ³d^C ð¥x|D訰¹âU±âyWP¦àbØ\ÔýàZýÆBÊúÏB÷îÞó£ÌÓP@×Qç'ïÄ©ûßÔ¤Hd'Ogg`ô/(ìMЩ H)ÄqS~±jNzÍ´ËcqÃòlmbE±Á\idúZÍZfkz=Çä`
-^èád ÆTtE|°<KÿJöfÚf=-p¨8qwßúÒõÓÀØ|&¦ØQIA"
-1IjÒ³TpVñà´\È÷#KtC¶%¯õ"þÊrJb>¸Ü
-(o&ö;ÕÞe0´*òÁft§Jå°°2¿aì% qTú+¬P'VdÏRT
-"Z®'Ü{gÝKkè¯XYà~ U]w(§;St®ÆnJÑæ¶6|&â9eñmÛìéß¡Ôq
3{4¯ÚoMóyɪkc]¬¤_*êD5¼Ó¬§
-qRPñ jÄVKõV9(ÁèLõÍ
Â[À½¾Wÿñá¹iÈÇ°Ù2øÝoMÑ*¡êW³ïrÞ
í¶çªp
-~mª,ÔLÓßøÖiU6}êFPEz®½§¨6!w1Aµá¯®ïçÅïµ8нJíÄFi@¿¥Ð6ù1m¢=wo¥-s²ÞÈNc3ÈÇ !
-ÉÏtÖ6n@.&ºD_ÖT÷PI²iCêæ+6ðKé¼ ?Ê3Ø¡`¸î~Jm|Üä¸rÇ{iÜÌÿÌ
-¥vûGëÌÉNyî±J'
-%érStúIÆ~&«ú|2ÏKGõÈiá{<´Ä¯FPúÞnÞÚ3ðÌÅ*µ78²Ýhï"#³õ'h1û¬6pÙðæh=éê ѼKtÊe5b¨ÄiË@[ø[suüÃi)YÎï®!Ön
-ZT8ïÛs9é¨ßfOipßv÷ÇÏCpÉy$dÙ/yé°i8:}ÔAóâ©ÅêÏlßÐhÈõFÂnSñ¶ï¡Eé¬P¯±Ã¶¢¥Þ¬Ç1\ÛÝJ5¼à@ø
-¥æĹóóQ@'c¥p>*cêi6¼¬"ܺ ôºÓÇ|_<ÄÛ`:¢j <F±°:Æ¿(0É !Aíh\Äõt7wcfQ«ÉÈw^Y«£»
-ð(ØíLKU{Q²"¿½ªy0Ù'Ê3Æ>]"ºÞûÞçà-Q9{DõgÅfÿ@8p¼9ÞLßËæMEåµ{Y\?Ô$ÑÙøCÓJºKß^׺2ïoòo±Ñ^¼#5ë{
¶üÛêS4§
-(Bk õ¶U:YÛÅÆãÃ
¨Úêiøľç0§mNÜiü}í¤Aæ¸<£%J¡Õv £¶j(¶£&ÔãvJÇResÂ\^Ãk
-âÍ%§E¯¯jQÃÊKó(K
-~m_ «ÈªEöÓZ#%¦'Lõ $iàKWhtÀ-fOÄ®½õMp¼¹Ì%\´ÚAvJÁ`-ì.j0uwéÁYìþT'Sñ±:é £Â`¢dä&ÿ²íV`³+úS «Ïõ๵½þ Ëݲ¬ÞÈðê#=
-±Æ7$4*Ã3ýÛ"ö´ÏInË5iüÁû-Q.3$¨ëê¹N*«&qJot$,¢ì"6f©h¥VÁ
üæANWÙ Aî£yñ/%» »s¢Áe§wg|hìÚhs¾('8˨ëDâÉOõÈj¯>qnqÛ þñà'ÙzØô4uòëØ
-!×ÿ®ÀÃ
-Ò¤Ù}U/zѱ`ÈCì.ÖZº¥Õ ÂMtjÓV{7EQ¹T¸
X
-¾ÚqcÒ£ ©kyøäRÙì@9Ÿ¿ÐÐduÎ
-eåé_1ýêXú'
-
-K»,ØÖt_¶]Z¥vÂ@a7ÇæùzßþÅSKæÛÙ!ÍlúéÁ·fÌê#:=Îâv,,rq,³#bß;#[µ>zà|ÄÈ-5ûÑñu
-T¨ëûhÀ|²Xz^þ
ù<
-qÜæAxfNòd'
-IK½×Ò¸÷{·Mýô u·÷Z¸²6ëÄÚ)ª=ç½míCì¼ýåC$3ÐÅú¯qÙ¦ú÷n6Jò©=6íÙkû»×C³[$§Û<<è#®0=DQ
-þ¨¥Ua4Â_¥ÁØ("> ä_qWbsU¥D¿§ÇóØ.¹.}äti¦Hz²¬µÄ¾ìƤ#TÑÌ{æ]{ļ®YaÂêlÙÖ÷ÿï8 at b
-=NK`CC#òB@~QÙîdÔz»G¬ÐØE^³
-kÔÍôß¿AqÀZ$.ìË0±0ðëæ5d@¤8e¨@C5»X¼4¹5©<ϱpDı4,¢GÀ-îÀþô>ôóMë?¢WèuDØ×Âsº {ÓÿeáG-ìÜ
-þÓÝ8èÆfðº®ÛÆ!þjMrÊÅ¿ßÚµü6!ÃâG³º@|gêGnédH`"UÀ;R¯¾-å~ÙËC;ÂfÞ9cõU}l[Ïå´~_WM4QîÀ$pbuéÙ&E:¡ñÇBé®û[/¡{¿»xy4 ÷ qëWæ°>¤VîÙléáË;ÚT
-Dz& µÃÃQo*$ͺ¶®8¥àV°±
-8¢OúxÃÂøÚ¼Ä 8
²î_Ï-^CàÖ½9.Ü7¾[hlkÈaݹگØ_ì3ïgTÆÏi§p¼áëú°ïê¦7ã3oúÈK1»?ÙLK;ì!jõÿ¿äº
ÊtïSBÀþÝЪ«´|)ëMrê?\
-4˼T¯nmĹYJã¿BZvÒ½[h91ÆÀùýæÄG¹väb§Åxo»ýÎfgxÍþ{Öª¬ñWpÍ_ðAÀ*Ç©qQÅsX.ÕMói3=KÑdÉ më²"Êwr®¦÷Sëý)J|<h{K¿/·OÇ¿þk21R
búsâD/EGP âÏ)-4¸OÔèrؤh$T(À»Õ »ÀpG{¨¿¢\¬É®X]ÔuXI6bIçNµ<<W Wª+ûpeåËd¾Lä®;+\7&ÜUѺj§5 µaü¡aïèô-åRnX!êðS_ö9Cï¢,Bi6If¡æWT´I²ÄêÙ]ûLßmV&VMçiÊJ}}øp ^Ã
j.£ÑQ½¤¬§å+¬¢0uhDtn$N{åÍéøÅï"Þ§J«ÞÃìô¹µkif4Êältz±Hî°pÔ:!dwðé«þPâ[_íëË[!mCvÑäu±+êDÃ!àP
'z<ÓÒnªLͼ9QyºÑ&lo!ïèsþüÒFþû´,c÷ÝþÝÛæ-43¨d«½¹âÕÉcÇ£Ðú§Q_lr²èü+Ë Òíi¾ßGòDâ''mQ¤0S"Æ®YT»iûÀ³ôüTÀOmãwã]!ÏF
-Tí§á©ýÌrÉ´Ö±ÉmMÆØ|Ï'F« ¨È-ðQr)ÝÊc-ÛÅèo%MCôçòFöaòãfá¼½ÄGaú}
-QD.8ÀÌÏ·<;ßGÖFnís(M'*gÂZofW>NåX(Ðdr§ÌT¬/9(7ìx?j:¢R°§µ¨;»ÑÖBâ7¦¼Ìä
-¶é+qßuHsì|É+CR-ø¼Fpë®vZ;[Oaëj 1Íd,HÈÁ<%wnk]Düc¥Ö$ËÉ¥£·ÅmåöÅLÜÎ3E§ë#º YÕÃ÷R+/®·[xÛçÉïÒËðGP
-Ü¢m8$,¼nÝÝ36¿&ÖukXÅf!osÖÞß½r}«aWó'ÝÙ5R^v?Ýy|¸÷ì¥ãu¥Þø6S fíuKøB»÷)DÔ:ÖÊbàíèýg+{¹¿Ü
-
-üÚôU!Vúѧë\#Ö
-_LÀ(£ÍÙÄÃQ/Qúe§qt׬Âöº$a]XÎ6¨@5ï}èÍ÷£(Ë£6© ©Cç¬ùCÙ>(Y"R\Evö¼6½~dpc*\½º§i
-ÿÃÒ¨1½½æhDä°ÖWâJcYz´7¼}A¾Ó ̼V%:HÍ
-K8BUåµ9$xÁÐÓ
\ÛkÄ> f4¯ñÔ?+Ñ$~4íÌ6ÃïèsÚf\ÊJÚ¸Ìì¬3³ië:}g[[tÄZKY¦µ3Á·¤HÿN}OEüGñmØú³6æÊCå_Ð[;®¢}æ=°
-p>Þ?ÈÉ䫬`âùÑF¶á¦W}ÂïºåZ=r=¶
-(FÐr`ÓMhyy3¯Ü4×+Æg
-øë~£ ß¹gèJBrPZ
-Er½Úë
Éî$¬¡æ¬-߸D©fãuO¹¨ÆíSíEëiE0È"(LÿHÅhW}[íÉîØM%® «=@õFóÆL¥\´8SðÌßbbFWlWpC¦Þðàk½¥Ñµñ8¬Qeæ´ÎNÄ®aønµþA5Í2K=Q6ü0)|M»ux<gìrÃÀAcgúzE_kwV'ÄVRÞ9R>Sε¶¢5$±T|B#d1E³°£?-^Øú
!¬ÅÁ)ô÷}üÕ üW[â
-!&zûf¹æ}êÃÇÿ?!¾|É¢
²Zé°gVÉ¡¼¨òC6/á;r¯2=ùs*]âݬ;áDWé½q
-TÏE*JÚ¬N~`ÇlyÞ"(Sßm0zîaßx¸õ{¡ãGÓ
-½'{ABó²Ð!Y4?ã8×Wïqô¹ÌÞóHyÄ.JÎF^ÀîM$æg~{Ï_Y2ì+[#à ªJ.bíûZqÝÕ¥õ=ÕmKyÓø??ª^s4ÈeyÁ.È2ÿ\ìg¢fôÖ
-^SRl1-ÿº<%T㿯\?§¿´Èc®díôÓ7~
-¤¡N7ÿ%%ªÀzì#ÛC»j{T°?£kËÄkÁ_SîéV
-ÌØp|é±9õZÛP;à#=^5¡àóR6X¶»¢èäu>Ëä¡¡²°SsO'ß¼
-öüß«B*ÁpôFÎJªÞká**©K±Þf ³î²S³î~ÎÈ9
-V?ré4q~6¬hê[Y>57ØeõV×ÒSBèÇ+O8rú+ùµ_Y¥Öî"¸ëåÞn!§E|ku?=Q°Òmû
-[æÊ@rÿ1!-Ùûkrõuè$amÜ),ÂÊ1y2¾¶FÝIQÛå±k>Ð)D㵦²%ÄÝzá]J^4ðÿ¿=Ü"MK2bëákç´y~FtªDá)g¥ÏUhðöY-mæÔç"ų~0ÛS#´bò¥²¼Ã¿Ó±-u¥µZX¡ÑiÂ~è6±ÜÕfbK°ÿ²<
ÔZÚVvÌö¹5h2-pf;#Nl"Û-¢6âPÔ©àÔ:áÏ
-Yr]b}Dk§»K¬`jáÖ¯(×ô®ÌÝç¾
'oÑ10¢«rT
-íÅLñbIL·¦uÆa/uM.sUI[>u(\²c
-[ÎcwÜqËdÝçî!&Ç>O«]9õü§n¸Ùø°sdòAJ
-æIJ'£7ÊàÞ©/ÙÛJt= io%buÕq£ýg;7XWÓg¿zÜ3úä¢éøßÿ;ü}NÞvòÃWfz½\Xhû໬{¤O3hK®&$Gª:s rVöQöbc8%Uå. Ðég9F=¢À
-ñÝ¡'|[\üÿcVpgöÀI]Þuq¡Zá¢nhmȱ FÖLÿ§âBý¥
-ùFnÿlm@ÜÜ8ȧ8\°=¼ÕKÇvNÕÿÈÚÓJhæ%u¢7(Úãò·&ÈYúí'³rãÒy'àbì!ï+¼473i¡ÔoBнÃÛjçÒ»¤3ÑzÁVW`ÍHÂuäo
-f\'g?e´XÐByéõóý`à54NO¥J
-k¾¢I8F³¦Ð¥ÎÈ4°JoÌÑ6Oê0dË
ûµúÏIð!
-ÁêØuê-:ü ÆÕ{¯ßÂ
-ñ¦ÿñRñ¸!£
å
-%õ pô¹+j¥=¤¯Z«T.=q&\OHö &ª¡¹¢Kddö§»V¹¸Þ£(v£\¸RïL²ÚÃ}[q%A¯û
-G
-bc¢gøYâºW¼K;Øüì
-E*CaUФ[?ÁsG}ã}#kÓ¾\2yýÖ=èÖ¨¿©>8w6ÒôYmô
- at s56ú"R*Sõ 8eÃ>6¢»kÔ?ÊPY_CÁ#ïß»\a±GøL[JÆ'ó®c7gÎZ1(Rsúï(ÏØUëDÒUãÓÃõÊl´¹Þ;fªK&:lô)bÅÑÐÜ$}~vÎ]oòÞx±¤ß1ÔYÞß ÇØä´õ´ÿ
-v½f¤µe#½,÷Ù
[P
-_Æù2å,ÊȨ¢/µf¯Ft¶½vû7²Ë¶éó6àËíá{0Ü3Ø*óWgçnÛJÂ[îí¥Bý^ÆÚ(b|ñ¯¥XÛ^Ë|ú_2y¥¢oSÊ}áÇÓ°A|dîx±G±$O7à·üÌH¨ÙçÊ+Jp
-àÔW#ÃÁÿîáTU
ªáÍ3Ë=)¦KúÐØqøǺÐá(/qQ-º
-uëƺMÊtÉÌþ¯«íðÒob}oåÆp0¾û®âJi~RGøòûÁ7V&UÞ+³]è«<J+uäd`aBÈ&^wÒ½~z .mø *K²Ëe¡µ´kìpO
-[q¦3X\[2 l<5HÓ¥|uã8Æu ½F)ÈæIß¾áMöù´QªúŬÀUú:¦n£#@
-çf²c $®SG@,`çÔëfõVHv at W'P=l dnÃyS8^o¾ÃÁkÞòÄvRý§o³6O©ØÐÝì\ô×2w[EÊaµ2ÞfR3ÔÐ0]à¥Z㽡k)·ú®
- ־
-YPüßJ·JS0
-v*Ûä³ÑP[@@ÓòuølxNµÆ
-
-®£¤@Ã7ô¼Kõ£kÄîÂÒþRp¢æ2àJÃ#½¢ÎfKɬaf¹ZÜsH'#'iÓ¶Èß Xúyî¢
-¡n~Ã/»ã5B"äT¸ÀâëÉ|Áe¡ÂºGLaLDBm´Q#¶éRv³Âû1L0à%º.dZÕxüÃ÷;;Ò
KÕä©kZZ¬eý
-¾UuPYVbèÈà>u¯pl¼Ç~éÉ:7Smูù8¢ø`zgm
-½}ixQßF²aôàµFU{¨óQè¢ÜZc]PÇNÌýX´m(1)Hxb£{qá
-úé¬DdxlÿAç
-/R¼Úi]µ&í!n äú^4HºI¾°õå¸übòr££E®ï\ØeÕ
-|Ú@¿8Ó_ÉBÎÅ$Ö'vXäMOLúßNêåTDÀ D[¶JDõõX¥DÎ
-ù;û&ÞÙø$#LÀÝ;fÛás2æè2Æ,pe ê
-Ø`,£ )ÿ iDÛhÖ.¨¿"Py`A´ãáuJNå¸rK<J@Êúêaö^â]¯Õª7ÛçàÓßuuô+
--®íg q.Â[Dîû2Rã¸Ù;EȽÌ}Âw»±xüþsIÿcæyáPñÁ
-ùäêgGóuúÞG=&ýãâJ_ËÆ
-5Ïø{v rüÇ÷1b}ÝõO÷¢ÙEegAç¤ËGëÏбÖï
-©'W@ÞF¥Óï/èõ+¦¨âltîZËÜ÷ó8¦]}¦æìßV·bHü[ hS'ÇÖòÒ°®õZLÀLd»M\¢8ĵ,gq)`(öEhõÿs¸70,gÃXN¢~ëzLªHÒ+QÂVÃ%×¼¶îËcÂÚ
YB
-HÖ±Äü¡¼GºÉÒ· s¨ÐÎö¥Ý`è'JjR³B»¾À5¬È^mpo¡ÿÔi\¹E^ÿsÙ
-$ä°-¾ßhǾ§mvf½;@þRÚbÖÅÀ¹µ/M< /÷®ebÈ|ì°)0TsÉéÙÍ3ø7koeúCªÁÌ
-qâH»À:P¬ÎKÛà¹ôêuãW'+ïS8+/b7àóö¿ûX`JMë'_ÌËt«ï,BêçÌPYAKfddÒ«¯)£Q2TbõÀ2Í÷#
-áºÓò0A
-"eÆ2G0ÄhtÕYez±h<;+åÜßD$°t«ú$I¡S²k
rpl9MTùi>¯ø7(.cÎE)¼
-wF]$5^¦¹\CX×õ°J±rvm,?ï¹g¼°ÊýGkÆ@/©üÇ@òqÕ7SÔe¢éD¦oàXb£A©ÔÄÖ°3ÓD'=aÉ)MÔêh°nT/haºÜÇsZÝõ¯?îÙßÛVvkÓ}£óz*ñ~ÕÝGÉ®ì¼@ö.SÒKìB%Eó´DÇ
-¯-#\Ý¢ÃàÙÌnQ}L;êìçuçvg.ÅÉM%ÏH¤
-k¿9(§â-|TÊt§tÝ*³
-U =2 c<[Å»÷P=ªZ·co'ðU¹Ë¹^y¥õ·lÝËR1C¡%¿³å=P,¬.&
-rªEÌÐkÞ)æ2ªó²sÀWÀu \Ó1<»ª2N
-5Qþ;=mBþ,®Ë"ð
-fµm[ÿVÿÁ;yw¬ÇPEÏoiW1ü\JË¥@ÇdA,Öäõí*/wkfsØ1=ù}'î1á^8¹¢=m!jdÀ¯À&Å[ÓÌ4λs¦âá#ÜÑ í=Ü>=S)ãEc
ByÜ1Eíõ=,zf¨8òéÃn_È`ǹ> 9/Ì19(>&¾ßd×.8ÉZ|5ºÎ6ðÈâpG°.§¢8{Á2";õËö\pmÄ$´áÂÙÌöÆO`3xíF¹ý>õA{SÄbyõóÛm¦8á9qÅ"SÜ¿ö| üPê¤rᾩ³÷âèîÝ
-"ùãã"ãÏA¼@o¨ØæÆíÓv%¬cìØìØرí¤cÛ¶m۶ݱmÛ¶ÝÑüë¼Â¹5õ
-}ºã½0¾;¯A_ÀyÕ¼?ɺHÛoØð0(P¨eKå#ÁKJgëæf
íÂqF¨PNÿ(®ÒÒM
-ÞºaUÐÙe:Õ¹Z-ÿfàF¡(¶>/r ³¸ FáK$´ÃÆ9Åê×+naiÎ*Ò×Â
-A(|{¢ªM¾üH-¾1¸ÄpeíiKáñ¿¢)üodo=BGFÞulg
¸~¿¾¼87$sþ3qLÎU1éGÏo(QªsîküØÓ½zzl2j)ÎÉÓ!2ç`z³û¡«Î mA¼k,fbÚºËzÝÈ/®tbvEÆ
-î>øSÁÃÏßfÃ[ûêo®¬¢Å<ÉQU¨/
¶c+M.õKk*n¢48zªÄôw8lØè=üi©ëouQü<_ÝÁ ãMtÑ;))pûþ½ÏßO½¦{íFǸòÒãv08ÿo^Ô|l»@°õü^~èqÏís¿oÜõA̾$h3:hôAó+pï|Ä%û¡&V·9üd
-ÁáÑl¶LÃk7= QV§DJÉ+ã
-ëÐ"w ?M
ôzÚhÓjXÙpcÚ,å=Õ¶C ¿±nzÈ¡P¶à0]4#pÎUßpá¥ÇqùRga¾ëÚ6.ö<9ù2§Nnþ-ðåS{)^o"10kªzS²MæÊþP©"ýf°úÓì0Íü¾Þ9˯PÝЫ] õh3+ÞmA[§\I=«ñúÙi>8æ¦
-_0ìââ«wTÙÄ~ѸÀâ»#3É×vô
-W«ZIàò¢{ÀFå®h½C7,ì ß)ãd¿ÎG1E¿CÊ°Zs!i
-¨íQÆèÊíyã2¬}¬u¯R!Ãbý¸¯fD*íìk£#wäX×üòѹXòèrÐUöiÐa²Ì8Q¢-8'>%Ç£ô}»¶Ã¢q ÓÆò6êBÐÄ®?þ6 ªä
-'N̬Â3[y<<õ÷Ý)äÈ//¡a¼î}ÜÁgWÚĨ®£|þUvÆî6ýÛºï¿ÚFæº,r~àuÆÒùç8Î.úo}{D>UÒi4±¡2U¬
5dTÏBÒX_Æ
×·Äik ÖEÁËâµG¿XÓ -Zë·o°ðÇ~µáüü¿
-Bõ_K:ß) íöé°¹·-qæ*uâÜð¬(dNÙG½áFb2nh<Ç4ÞÌaNÎ¥iàÌ'Ây|Þ
/ݾAKoÎm²&O³ªlglêñEòUDÇB2#ڮɻ<áÈ`yk²q¼5ÂN*v>\Ö)£VÇë¡ñmyç¿®2_y<²Ï'Ò1×Çxþ\h35çâw¾ðéAäBåÃ/è´Rì)Þæ¯~¢Þwî)Èoè8aqµÉ<lûQóØ ÿJkn_Ãp
a?cxÌNÌù¸Bñ¹
-F.Ù¸ÈLÞU¨´¤yÍçy£ÿ7ÎòµîÜ©YÔÀ,¾"ã½ÜV`ûÆ«k"+|"0.2äÓ:möÜÏ#¸îRð¾|pñAþnLð1ßz§ÁÒ]Û=5ÛÚÅ}¢g Ðîðmw¤ är¸ýâg¿RVy
éÙ¿|ù$`¶Ð+èùû÷mÿ[¶\UüÄáç{zËXÀÒüÑuA=È£t09¬ÌP½;ö ã¢vº>@sÜv[·7x
-f.à8¨XÙ\aظ3llî;§¸èÜÙßeXɸl.~õ¨ø|Êy§¶±h?cºËí¢%"ïM] "]ëdÞÆè¿
Ú%¶R1PÜÆô÷¦
-{ÌP5áá¬Ù¶-RO=JÓ!à§Êµ±a©]z¯/ù§çiHÀ¹(%êe½M<9ðÕ½ª#Ô2«¢Î
-â1±µeê±@ÇOn ]/{£âWNÃny¬ABËêpêè²4ud õk êè>
-ækóñí¯£¯òf7mT¢º])Òp ܵuÃuòÙúåÁñ·F¶3q7i¥Héê7B^0Û! |tîsÈQÇåÎ_mcÛÅ'ÁO³÷ÿ ÿÝ?{àNõ¾rµWWöpÈ@ô8ÉÄ Íüä ÜKs8hÚÙøÚ©A$ Ì5
-/_Þwc`0AøÁöêä9´-ã$'7âJ%ÅMú-nų7çö¥²¨ÚUâÁ!_èfpÃkÖIápìíÍjXã®ß¦fy-ÝînÉRþ+ðþºè@vÞ ÉïjGÒF¶øXJ´xmd%ÅdwPþ~õZØÿÄL8Ó+û×ÙClø±Ñ³Í²ÖìjÁ«®Xr«¨ÝÒ2tS»ãJåòýlYÜ䲪'>ûÈdëñÇûô·òèÚVà|þ$
-wâ1Oæ寳ØT
-1ØO#01ä"
-âõíéÕÆqõÝ/Y0¡Î-4tÂ.xýaÄ¥ÅlkU)¨à²nÂ
KsêýÜH¼î1¶2EI_,\,Ø0HûååW>´÷͹ºP¦Å\}°Äú«·¼á¶µ|îÕíß
-lOD¸ð>¸683©È +C:3&exWá3ÌZ|塯jù¨©uôñ³±¹\ÐL
-ÒJ°BþjäaÆ/êÒ%Ñà§?#âsÔ½ð{1¨r?:àï"Ârb°'9û«£ùéQÐqÍyNR1X+¢dsÅkkcvvt!ù
vTNÁ1%:VµB"jÞî*Ë®äùUèªÿ`Ü "?kOoÊBëB§óráÝ(.J¡ÚCÉƦüóAÛ?[í7e]BË°_ì>;¥´°"ûÅ¥öTêºzÛ´F´áO
-×AöçNÂb|ô©÷110y0ÆýîÅé;ÇU³´æ"£'?ZéoÈÝÐ,ìq°:߿ܵ©ªØ¶g^«õÊزZîÝ°¥ú'
-¿y%²yö2MÙîàdÅ%_?¯®¾H2'Ô_d?7*-Òæ&ÌKÁ¨ÉÂÇÑ_I)JoA[ÿ`ÍZìjs|Ì^<÷T-Îà³æµÀò3§yËÍ,tw|ÃÁätè{.&p,eÔ4×gK&Óø 81þU³>ÑltwñÖ^¼¾Ô5
LÅÁ¡6ï<¿
-ÈS°»±kH¢À3|+ËËÃ_aót*´ÇÕßÝÚd¥CÆ)|bÃ¥Ø ³ý»Í&È&ÖF®¬¥LIé-0,Ø_áçj×ô<óÕºuÛÊi\yÞSÒ7âãô¯§Òµ·ÒÎÖ2jÜúV¥
-º[¿êEÎóFµ7ëªäZü©÷tÕ#IÔ¼4íKýN!ePKÀ²ÐdsGƵÂNÃ0@ÎÃD):-UZCe/g4²uï£g¸J_Pì/ ¼¯*5:ÇÇ62Ñl,÷T¶ÔZ{Ó)Ä6ÏbyLÈfL*6©Ó¥='Í.ì£Owõ°x³·o/%ÕÔiL»Àà±ôd+Qd.H0=ü-L ¨âãcÜÊÈDd¾Lð?
-TqÇ0åÁ|p²8o4;9
-Ç3¤Ñ;@ýM+£¢7¿- _ÝÉlß\5nzL¶ìÓJøF"Ænk}ºôTÒ?÷Êp,VêU1zc¶þÄÏÑ£R53\ÅWKÙHq[_ºY=p<>NîB[+;××Xw°¥8è$￯vrzýÛ3Òæ<
¤ &J¡Mw&¼Þ»%ÿ5½ÀϽ×àë&³(x×6UÛt9lêü7çÊÞ^¨ä»KU:Æa¸BPPDÊòý¥ªm0k¨|ýtS`úªÁþ¥l.BAÇÖ
-ÉÛÅ/l½ÚVéA AÝIY¼ygø^hÎbß;Dx÷¤çiR®}Áß æk ÖÄ]zúZc99æm^ìϲe7}]Cbþ¨¢rÏõ^ê~ëk¦1K䶷bmêrWï]QûÜ©üö67 5b8^(ÒOOßnKYy'.MÛMûSÂ"Ôgí8aY»¦¬ =DÇïåAÄ~¾ */ú£O2Mw6ÝÈ;0AÇþï?öë1¹6yqëC¯Næ\@1ñý`RÞz¾ßC;RMÿ\æ¸mGZÜ%gÜÓË
-ÒÅSÛñrúZÆ\ΫNhëÃîØhExÞ¿úßìÉTu´{HÜy=ô0 U¾wQ°´ü¡*nt]ÒÞ4Ö%ÍôåôµÒ¨a65÷ª=BùéÀ÷êÑ.NDBvX½¤äj¢;»4I¥?«ìÔÓIWàâ$^]OÅÃ6D#, 9
-?cX?PIXðG¶MË:¥S"}¤AIµW=©ÌÚWyUڵ˽Ðñ$O¡Õo_ªCWÊðJÊe®Å°£DKºOçcFor´fÂtÖßý£Î|aîÐÏ$g'
F#S1Ì[vEF:åÄØÕ>YbmI'(Íȯ³ÁÂ=ë[]{Ð5æh\Úí¤ùæ´sÆí;Ëèiem.
tnÅy´G¯¯`jEOÃôMïVì£0p^PAñ±W¶¶íåðÊÒü&¯µb
-=GëÔEûw9UøÓm8ö|çµýÍÛqnÂJÌü@
mQ¥Ys
Æü~ZtJ®ëñÀnXv<ð}ç¼Ük*z:#UA6ÏbóÒj=
-Ãàq?§¡"ÄÆÞk
-s9lªO£3ÙiÀÉ4ØBùt?TD¨v¶Þ4á?Ûâ1·^Xmó¡©½¡<«$ÔíLrn\uù¼f:
-gH¥Ó<3]ß5ðR6«·Dj)}õeãoõxËrBeRý!#ÊÐÿX[4(2ˤ.Y|â
-viíA°~_âשo!Q>¢·nì®o
-âh©%HóVo¸QÿY©+&~\±eR¸î!HºjêtÖ.gw¨kتþ᧪!-/pIC.IzRN0t_]ÎôØ8å
-p
-#Pe!¬¢údoÒÎAVWyn~N®#÷u§®äî0úJ&nX Gèã5 ¶J¦`6M{î;¼¾6¬ íÇKKÎ+¤©M5¼vÃñ^ÕºÙØWëܧà1)Wùqåú'ÀdälÆ'ñ3½brwN^U:ë4UAS|õz¬GFè¿ð¯Uuz¯Ý¾* ßÔîQûØRúûb.psE!6J]ìÅ´ÿd`½i~BÅk3Å°F1QÀy*lFó³iB11t¬F»ÝuöÄÁ«ÄÍ6¡£ò7áËáçÝ7?µú&y¬*þ~Ö_w9
-X×±þh54BjÊ`ñByhEø¤ØK)DîB/GѪÅèÇn§gôñÅP.®.;f@¾þ½% céâ´Ý
-4Í»kâIê,°ÄÂkiyòOö9cnAÆHÀ£"ÚúÝ>_2{ÆØöµý9Bp½ddе×8ÄüÀkõÈêªÆÝìÿ ¨ÀήÜ
æð÷ïÌÊSÐÜc9A¬ÂÁ¦We <ûS {
ÛïáÍSRß
-nÌë9w§7gqüþ
-pïj¬ÐT`2/öõ]vþ5DXl¦«DxzàS`lð<4çDáUÀܸ
Îß9¢¯R[+CgÙgT´
-ßÈõ¿·]ívçÏE+'ª4Üëï
-d,ñÍýÇ;T®]
¡$Ï¿¸5\¥äíWD¨\G_É#~ÂRT%ÁÆA8b¨ÿíSÓ2\iVH)q~åïw"0£VýP:Sÿ&ð7ÁñC¹ÔOH*=´=P¡¾6s]#)öõA°°<¦¶¨ã]gªÔJ¶§¢Í£»¼é¦ÔÒ¶3¢êË?+¼ä¸§Ïî=ÙNbLPÄÞ}jpÆ[%ÜW<¹
-r}s¤ñFÕ'!£aÔÿpw\T
-@:[yUo-q}¨þÀ®è»<1¢H.æ]>Ó+wÿÖO;nò¥/BÆ=¬ÂVݽü
-Åìí=JürI¸Dùçñ0ÁW/ÑàI¿B].µ&ÏlT;îþÄÐú,g
-ô¦#g·ÿæÆ(¬Y<±"ÄÿëOä!B íDû8
-ÂkEçF²¦¦2<½ße
-L «qîèçéÆ£Æ ¿§
-<Õ$G?|eOg74®.§±,3Ì{l¹®É3Þ©E2«
-Ò[AkÅG7ZùåúÑÓÇ"åW}¬Ö
: gÊi"yÝÜ©Ì#ò¹*A~A,k V£`ry§#1òɸ[Ø=¸(Pj3¥°ÒJ©±ñï%ËãÁèGÉëñ¿T6§Zý
--ídV¿µ8ùï
-YV> ~rñ)#R×*®ÚFecËí5jRUf,^`êÕ>¨bO)×¥¡¡têöºâØ3ÏOÄø©.$>ÖF]Ë]e´Y6©j#{óiTF¸Ëåu:¶òj°°ÿèôøÈZ¬v&:±3¥RMÕ<Ô»çx1ýc¬Fn¶ ìȹãÔS·Ê°N}TyÐÖ¶#Ý®ñá.®fýKÐè9úhO´,çÍÛ5K¶-aéÄý6
û¦Ë|·8Q¾PRjÙdã²®çÓp¤¹«-÷ÍNê°Ë´\hõ£Gñ{mèàKá©NêE'N·ãU«èBÜ¥9©Yöc¥ÙtÉâ/OJx8æoe) ²M¡oÎ
-0Õ«ÅôäéL¾ê¨iï0I0f½§l3üÍÐPçÓ?ͬ²µ´ÂI<ö'vkªDKõ
Y
-kß3iÓ:WeÑ«Ã_ÜÖ;úÞ8¿fts¥]*dDÐÆ·2ñ.Ïô;£5ÑLFhr¸bp#²ÀÔí*7gÀÏR(êÌ8b¡B1½»*àͧRq^ Úô)ª«ù~ûX½³85
-T~SL¾VòãqO3qW=1ÐI¯%
-ð¤Üëów
i¹Õ¨
-¬Ñ*;ƦãAÄ(VÃ|s®MÃ^P#w+Yôc`áä©ZÑ£!:ɬ¾x$ïÎk×%Ã}Tð|ÅPQ ´ÓÏrçþµÝ×»ÉÛØÍ&Z/»ÀÔ÷f£(Lg"´¦Lá¨ðo_^ª_DË)k{ 2õcìe>K1!LÒ_Ì~w8Ä`².Ù÷9²ëÕõòé±RûyÆMpo¡xãtæsÀ«ÜMhÈÙ(üÜý*IÏï,Y#j±ü¨«@ÇO¿=ó[ß;e'
-î¾d8A`T
-2Ja+Vê£-¢þC>>_-û
-¦©íòÜrúäVËdó3ÍƼ楤NÊ.Ó'aZÞHz>Q
-,@à%<&ME]NY
-AõxZÛ^'â5=l&.Ý|êÕ2ñHs5o¨ô}¿è¸P¤Ê!-|gÅÉ ³0ZjßTÏ;!å5Ø, ÕR?CRZ¼'>ÚO
-´ùå×ñ&ò˱£;é¦ë
-äå'ÍÍyá9eÂ6(¤ûÖ®
-r¹«éÞJzåëy¯¶Z^wJÔ4e"ÕG/òæ¥m?µJ§? Ì'¹ø÷Âê¡ëR°§ä"¿Ï?Sxôí*T7 V¡=ÎRûäf¸U\t/Dî@¼/ÅGÞV´éW¿¹EglTµ¤©o1'°¸Ì¸¬~p:$ÿ¯Z[È>©ë¼RÚ"³"®yÌP*>Q:;6cSöÆJ.\¶ñ-ÓS?l_|Ðrõ½Ï^M}ð°ä%³ý±vñB!«ZÄhg¦øøFÓ
ø<×;÷©hþØ
-$^tÿU
-|
-º·Újj¥ÉØë_8FÛÜf!wQ<Jùô©ºr¶³:~gc|õqJñ'
-l[Üs´@AKÉÂäJË'y¨ù
NàR¼9aiGdlP/³OiL¶RÕ5ÏS @´Å¬
-S¨;AR³E÷H¶(á5bLNW¯1UÁ²ô
-ì]?!½9 ü#ùmî¾ZW#A
æ|±Ýa¸§Ñ¸Ãòú
7ϯl«êf^´Ý.
úøû2=DR<IGî¶ú×ÀxÛ;t|ôN¯ý¥x(hôz6¨F¦<Âñi¢hp©;ÃÇüâò/{+LIÌ÷½U·Àù·êê4ísµ6àÈ«R{ââÜêÒNk/Oý»0ú¹5
Öù0}N$ÐZ}¡~ØaaoÓ Ü<ÐHÆ99pkns~[÷w±¡V0!Ú@·>S$ ê:-áÏfýoT|Õ^Ñ=ÐOë|¡@¢8 y(øwváS4]ËÚ_å;Ó l`¡
ÿnÒlS,
-&®T»*ÂÝ#ZÑÖ°$õª´ÅMAyZÍO+ZvªhóE÷3æqñÒ>âÊî9è%Mo¯,,ÈôƼÏ1Þl·1â ص$Réç
-ãJÿ¾ï.§}k©ÀTä
-Rëòþºu'ÍíJõQj!ËNäÐg·¢§Ì
-5
°3J8`\`0»úòÑÄ$Uýî÷Ûpz¬¡E%Näw`4XøE¡4Íp
-/X6ûHè8Áx("CXb`
-5¶eýìF°Í<D6ú¢{qïªÅãð;ÊuÒðâ/ôóuT-tSctýÁô§LÌ.éF»Ñ2¬8O§1·\³ÐÃâG¼òý¢MÖôE7øÙ²F\ìèõ·ë÷ÙØ4pèþud E?Äû~(ñvÛ¨`i"ºôpEQ¬Ñ$ĽSãQ1÷WJ×Ô7T7(Ëh
-¶(*wÂdÓp´ç×j2Û/â p¾ËÖüóÖ*ï¤aªkô [Æö,åPa£#êØU{6ã
-\d±ck±ÔJ&ùÞÉ8
-j®
Líe»¾4sªVÜfæ3®l&+ù hú¨e®%ï?)uú;{\$+£³O¸Y¿Ì+â-cp`¯º£Öi{àÒX;¨ø¹¾¼ ±z
-äÎ
- É<psLÈüxWõÑF°ö!)Réóºæ¹êd$~ê©
-\0k1ƾ®´F%5¢"¡bV)LV{ÊEès¤zìºO|8z-S.ÏzK3DÔÛôWE<èøw(Îø
-endstream
-endobj
-
-104 0 obj
-78230
-endobj
-
-105 0 obj
-<</Type/FontDescriptor/FontName/NimbusSanL-Regu
-/Flags 4
-/FontBBox[-174 -285 1021 953]/ItalicAngle 0
-/Ascent 953
-/Descent -285
-/CapHeight 953
-/StemV 80
-/FontFile 103 0 R>>
-endobj
-
-106 0 obj
-<</Length 875/Filter/FlateDecode>>
-stream
-x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
-ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
-lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
-̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷p×Ø
-endstream
-endobj
-
-107 0 obj
-<</Type/Font/Subtype/Type1/BaseFont/NimbusSanL-Regu
-/ToUnicode 106 0 R
-/FirstChar 0 /LastChar 255
-/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-278 278 355 556 556 889 667 221 333 333 389 584 278 333 278 278
-556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556
-1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778
-667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556
-222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556
-556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 333 556 556 167 556 556 556 556 191 333 556 333 333 500 500
-0 556 556 556 278 0 537 350 222 333 333 556 1000 1000 0 611
-0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
-1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 1000 0 370 0 0 0 0 556 778 1000 365 0 0 0 0
-0 889 0 0 0 278 0 0 222 611 944 611 0 0 0 0
-]
-/FontDescriptor 105 0 R>>
-endobj
-
-108 0 obj
-<</Length 109 0 R/Filter/FlateDecode/Length1 1307 /Length2 99502 /Length3 521>>
-stream
x¹cte]·5ÛvvR±m;UìT´cÛ¶mÛ¶mUl§Â[Ï{ÎyÏ=÷;ßÛvk{9ú}Ñg_ëÏ"'ù¡L/llk°µq¢gf`âÈ[:;*ÙZËÛrËÒ+Mãpää*æNVÀÿ-\
èàhnkÃó_©¢@§¿1§¿*fÎ
endstream
endobj
-109 0 obj
+104 0 obj
100460
endobj
-110 0 obj
+105 0 obj
<</Type/FontDescriptor/FontName/NimbusRomNo9L-Regu
/Flags 4
/FontBBox[-168 -281 1030 924]/ItalicAngle 0
@@ -3317,10 +2664,10 @@
/Descent -281
/CapHeight 924
/StemV 80
-/FontFile 108 0 R>>
+/FontFile 103 0 R>>
endobj
-111 0 obj
+106 0 obj
<</Length 875/Filter/FlateDecode>>
stream
x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
@@ -3330,9 +2677,9 @@
endstream
endobj
-112 0 obj
+107 0 obj
<</Type/Font/Subtype/Type1/BaseFont/NimbusRomNo9L-Regu
-/ToUnicode 111 0 R
+/ToUnicode 106 0 R
/FirstChar 0 /LastChar 255
/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
@@ -3351,6 +2698,690 @@
0 889 0 276 0 0 0 0 611 722 889 310 0 0 0 0
0 667 0 0 0 278 0 0 278 500 722 500 0 0 0 0
]
+/FontDescriptor 105 0 R>>
+endobj
+
+108 0 obj
+<</Length 109 0 R/Filter/FlateDecode/Length1 1282 /Length2 77308 /Length3 521>>
+stream
+x¸steo5ÛvNlÛ¶mçĶÍJŬضím£mT[¿·ûí¾ýõwÿ¹ãqö~æ\ÏÜkÍ=÷c
+e5sGS ¤£#3/@ÑÚÞÔÝUÍÄAAhéørÂQP¨[»ÙÿG¡ tqµvtàýwÐÄí/ nâö·\ÝÊ ân
+
`nmæ0ZZ;Àý·ú_hñk7k/3ã_Ìÿ|þëÌàï7wt°óþïrE{ à
+ý_´¨¨£À
ÀÀÊÍ`afeðp°üÿ§Ôðoþ
*XÿgÌÿ-)ã`áàù9þø³
+9 ø÷_Ù3¹7õUn
+ËÊyÓOÂ\$=§
+)q'!WÃ÷SÖÃfz'þÝ©GÔHØìpdî"2ª¨tW£ÌÂ_CuöxHßþÌ)>6Áü
+M&ËIê¾Ï(°O#EWügÒø2ó
+Õn¸Â|ñ-
+×1ýY/uX!AP=íW¦|½"¯qx¨"M:ú¬utCi»Åjà²8ÎQîÛÊWÅBñ°ÚÕcë®ÜƸöqÿT>X[cÌ÷5c=í{r
+ïW3Öìo7³X¦lèµ<àc¸Kª?ÔÏùDOÎú#n)gg+P7±Çd¨ÒÛÅ/gÎQwô4ÊIçZZ~]Á¸Øzu º´é×ÈÎÒ/Ç×`h³VÔõY÷"-®y¤ ^n²¯º°{ã?\}PúJßH mg
+ȹhZТFH³!qMÐ=)ÅèÌ]Òo\r_tòäË÷*"PêÓ ÏÁ¿±±3A:Ði01{!FuÒIta}þ5¥DÏ]wyËÿfº8r¥írH´eU;ÔO¦K7TÖZØí;X
+%nÏÈãG¹°cgU¦Å¯)5ïcïÜôÈÉÂ~+_+§I{O긦ÃÌ*:¹Ï¿oJæOúö
+
+z¾ã¶û沸Dê;º
+'1´/-j*ÑêãXÁJëF9Mça>ÑlS1ÂÜ.êfúÉZÙtÈÊÌ ôþè}®Æ.ðKgib4^fj9f÷êTYg!|v;îï"úDTÖÏo<á&J/T¦?&iÉ5èD)U
+«tM¨NÃ~
+#m)°xÊ~á°³Ûi`J0Zâ·.ÍôÑ|u>g¤0·'_ùK+sm~AI[ÌJû캡إ´^UO=ýc>µ5g·ÎpnA2¢9Fà%`îr*é6®ò±½à=¼:ÆÌÔc Ó¤.è6¿Ö{{+MtñÍ`wâù@=~`¯ÿP~·ÈÃã2«Q? ~xZÕàJög
+>ºzu}£ÀõÎo3{ «0vùiÐ
Æ2&1·u^OF,)²þÊàEIbÞ~ÓW³
+U9PO+ÃëR&;®ð«£$ð`²dX)~ÛA)E{ÃÚkÞwpö$¢UÒ½ó¤ï7Ñ
m$½[^Sʤq£Ánu¯9E`edRô1Ô?YÖNÞßUØ\mi±Ì\S,iø³hçÓÑíîÕ8H¢Ì %¼¡2ø©ãµ}½ZB ¶«´edí{¢·I;ÐHæ_Å;^ê
+ScǶiú4)&Þ%4¥·QWDë4/¨
[Ý|9§é¥-UÂ'nò?¬÷ýüï"T4ÍåqÚfiûíÙ,9-cáaÜð0A»ã3t¾G4`bÎsûmn¦w×yÚ'ÌC0¼AòϳÕö1w-+êÈT8ìasÑ êQjÚ°Vôð9ëviÕ:
+YX?dzÈo¥qÝnkÏÃT°&l:+ÍÊÒD¨{)¼Ò<H¿}±è;îAévbÒÇÿâ@û@ÍV+©-HrY°ûì\Åø°Û!»ÒÛÞa$ÙÉF®,Ae¶Ò¿¹Ú¾òÚüÄ"W·@y«Zµ:¯·¦+âØÂàD/2|Ä~ðÖºT æDvq-·ú¢õÕÖ@it±wÓŤ_·
+Üý3e¥ÙËóñh»7O¾&ßVJE®KìLæÞ:T¼¸,â£F91ÑB¡Ói¥åãçÚãOë<8éÞxΪکhL-l¯:Pú cwVTÆÔ<Lrd
ÆÒ
Ô;ï.Qh¬GSÄ>ùʵØÀê
.úºr-F'É CrÅà/£ûÎg9È>më¡Ù<²f,JHk9
K$ïɱvjÊd\0øqjÊÃöº¿%Uº(æhWwG¢
wiäèÜífÆ%lB';S)©ò÷§&Å«+ࢥgC!îöÛâ-·FI<̼×ÈLüÄRQ;Ö,Ó*>/Ås{»æVmCÂ`±çÆCjÎÚ¡É-®ýd^hÙUSÕø05TfN÷ÚSþ6<ÏÕ%ÌÅYg5
+«oÞp[]m¡ë,(Íl
+$¾¼É>¯
+®¯ã×àÂlZÿÕ±ü{¿omýÑ=Ù¨¼e(¬Ml/û{C3-0µó±ácé3ó&oçY}·XáÚ1)Ôï'åÂë5VÏÔ|ªþaEÒIÜ·û?§ØMÏ Ï£)O½¦SH¿GM°Ö>
v`j×+ÈDÊ7Æ`iWÑFÞ¸UW\{í°Ý.¢å4.¡}|¢¦Nèa¾B'µ!¿+£_' xТ ÆÒ®áÃ#é>#;dÆÎ " åDù[
u
+0o¿&®Â=CÓHOeüü'
+Ñy«
+OL¸{eÊcXJZ-{÷hH&]ô®qRcÙöJ¾½¸cÅÞÑô>ºZÙr¢ËYIÑûÁz
+üÚ]¢b^þ4ÏbÚ&¡ü
+qgÚ6ð«¼)í3'ÆÏh
+®ªq¿kôu-$r í©ÎÜR
+51²vÅÔ} yK$:6ë<K
+@ ¢an
+'
+©zG^"_{ãg "#öuî?GÙ¼\ºUNH§ïÔµüa}l>GCÙ>ж×kãÜp
+Î{¹ÊHÿýè>Ê&Ç1Ç!nÖ
+M}lT±:pkDT§ÿ 8¨
+^¥$iPt[î%ÅúéH«Eáb2ÃÔÎ4eôEïÃѺi$Oã^ç*O;':°Æß»ã}WLò¨d9[MÙ-Î$)n-DD5ge¤ÐÚè6´º`3ÖröÓ¹È_H[ã^QFÚb©Í2D*ÖÉëy|Ýu¼²ìe¶èW6.CaÎWýªe, ¡{2øËA5¤B%.Él¨
+3ÚIì
}$RÍúÔÖª4!1Ì5¸£Ñèâ?óµ´ébBýÕ>v¥Ì6C_Ê_NûÌcÀkh%æR1Ä´"âM*s·Úùò;ïg¥«={mkÑT&Ñþ3±N
+>B»CP2êGvL"Ì sØ:©RØn_eÀá6áH§ £I,g4R×ÃAçº?ßPz¥ºíKó'ÿ´#
+6^;ö]àÇuÄ$\L#0Ö×ç/~xKmøÚ{¤¥N5 âò7{l
+ͯgß)tº9ü¼¢]Õ¡/HèñÃÜSpºÂ»ÿÙÖxíEQ+N¿BÁåª ÝX&M}A4ék_óý'<ôÃ6[-ÑbÚñx88«#;çÁº*û¾Àþã.
+.!:ÈÌìWÜש4ìï¸sWGÑZ[K
+FâÚÐy¼H¡I±Ì}
+G
+ß°M¿33(²¹±Î
+yïò½²÷wDº¾£ÇºFú³dÓÈúYlÈ}3qÌÓÐ/ú
+;sÄ.0Cg-äÓa¯¼'wÀØÐðÁ@tPð£z=y°º)£opWýÀ×E(Áä»tkÚ¼ÀÝóNÅ«¹µÇõ¥609°ß"=¸úT®X×
+[ÄØ×v?ËËuT}Êá /;~9û¶_ìF¼mïäÑÁ¶¯¸6Æ^F£Z2y÷À°l,-Eqpw
+Aºª|i¬n|Ç'ȼÝz7ê_áÇ7a}ú.àå8]QVûÄãôÇjuëÒ,ãd!;Ô1t;FÊü$éÃ
+{¶ü¥~9H» Þk8¡Ñ¢î¢ Ƭtà¾BUiÎÎ3¤Û×,CðèQe-É
+°b·Îp¾ö®lÆ¿XHXQ¯0( î~ÃÊ0F§103ßʣÿlz$¶¢Ö¤¤Iö/g½§îÉqû4íl&>åR
çTq/ZÛ"b>ÝÈJËea§ñëjµg´ÏÍ<Fj®Cç|bâR»¹ØåóqYðOsAr£»¤h9vá¾KÞð©
+nÔG
æk©IÒ}Ò+£|§]h:+±ïhl]RÂÐÈ«C ^Iħ³ë=2׸_¾Èý±¢/Lºþ|íÐ8/g¨eåpYÒ!(?ÚÕF¤M¤æHOÓqúôF"÷®÷ÙlaEC#æä´º:VêøClK#P@ÃÑ`Öàïô^óAí¦Ø»O¿
+ëÌË}mòصô.ÜPä»áá?Æ10`HýÍnÉÐvÈnB_îy#ÈÁæÖ~½ý´#°y~¢«;)ì°¸c¾9N¶Ií¼T@<ütss¿R ¸7Eáþ1e Â@*ÙÑH£ ³Åì²îϨY÷@v¬åªÓlHò XÃþÄHµ!²k¸Y3iÑ.û2xÓ}¼®þôû¶Ý}ßCG7(sð4$©¬ÿ¾ïë~×÷see<J´²ÊY*z3OñMëÉ:(¸VPxÑ,§î±òD©ä;zåCƻ¶,.T0)
+¢ç-FöljHa$dA{p,'ÏC~Ó!ÿ
+GT,ö®pËU³tMXâHDÛïãYf;å?ð
!´¦ÀiÂ+º¤ç Ó_¤)8¥ítTn²ô*FÂRlÉz°G¤ÖNüúC1t¿éE3¤.;ÓÕ¢ÄÔÿì<Ñ/¶
+ºc¼ÇÞ'ζ&àîR×Jµc´ô[ó±Í×ÁôoäÉtqµ
+ù§úI+X|é?ÒPÄBĸï±Pó/qª#T4µSwEÁµçh{b+¬9Iï0+7v,ݬ1?Û h[V½U0bèQ¥r6ÜGft¢T*nJr§Bâýayy¾w%°nÕÌÙào¿«ÚôY@Jã<àØGjXrO!G×p(¡ºo§ïübº¤óÖrÿýRcYxû⳪BçpÜäAÁtæ
ñüSW°ñɾèm¹
¯,6ç]ÞWoÒaS¼õ·¼±IÙâÅe=,$ødÙÀ¹®x!ð¹{<
+¼Ù«ów®×Jdóo»ðýÏ073Z¹£ä:
êìü¹p/Ô£Ú&l*ÒÞ-çæÌ91_Õ¬2Ó¾µ<#©º!í¶úL%Á³9Úù
+Q°ÎO *¥¡xE÷ßYð05ãcmÇ/Guî@¢Álµ¤ûvýV¡
+¯¿ËÕ~Á.{ʶF4
h"®[¸J(~NVÁ"%m1
ÍnÜÖ®YA°[Ü·wð¿ÖÎ,¿ä3&>üäøE
õCÄì) ï6)iww:½$Èûý7Yó°«=&[kÆ=pGîºòá©@"ɧÛWûHBD«fíB{2)vªív!j:6©úõ>N6gDºê[e¨|_°BË@EÏ`*âLx¾N®#Xo1ë!q§±PT`MסÁ»ôÅ
+}ôæÄ^÷ÏòaµÕöÍ©NCðsÔ'=,v>Ê÷å¡.Ù
+ª'¬Ẕ»Wþx^øÓÞ¢üÓëJ¶2Ïñ¹¤Ä˳Þ(ëeASÀaQåQ §ár¾¾+}vTM ôÅ$nêÎ+v0P;%×e²T),dhÔïiH|íïÿèuù@Ò¥ý`Ç1ðQWöÓe|çYieÿÎ<¬)Trz×O9TÃôAòôgÔà2\}õ$ê-\¤äNú:xâËkx]È£¡SÅ"ZR¨b·%Yímñðz{õ}è»òÚ'
+ÔËv§»ÐqH¸Ô!w4§$yæ
+ëgÂÈ&lÒk$yC¯k´P-´M at 6i8YâAÂÌYÖý!úÐ?x1Li·×%'g0
+U4G
¶CÁËæã¹Ç7jå#c1þ:À¹jy¾@ÎÇT$í]{F¤8ÚijÜãEKê«xêÆÈü
+±@¼f=2_gR´$±®A\?wÜn.L 7
+â×JØ4ÿøÞ¿bÜÕPíµ±òmøS¦íPªÃEBKÄÊImi:ïª]t[8Ç¿ð½áÜ/QÏùKéLkCc.#ì(Ì®KÎ?U¹Ñ9ÈOGäòS3ãìqkFY%åÇÍ
+u¶øôMîu8©¢S>¶3ÜW|ÄÝç7ÇÝ*: 1Ú©Ù¥l¯¶¡âJ~Ö|a=«9«(ß-ÐÇèÌÛ¿^Wú\䣷q<÷r±]¼û²´árìI.Êÿ|
+t'ÍëzÃÞÛJ
+oez!±¶ùªÒTR&~áe4½¦Ön?ÿxa8FX«L2z+2!T}ÔuÿeiG7´ââY¨XM&îðÃìUJêÿýîa¶ì:ýwùbÒÃÜÅ5Í6Xî
ðéÒǺWôº]
+>Ï£ä«!Cg¯.'/Bß@þ
+÷OS´eS8âû¡mAðy3Ì{Æ;êI§³QÈ8·Ñjç¹oª~U±ói?ÑÑý â5/¡Bðþ9Åær ä·=zØÉ[ÓW£¢Íh»2L]´ï÷º2gqÛxN}úT/FEßìwUíع¼:ß_P¨úf'sFìDWÁî°ú4êãôß=;6:»5äòiç³4ºÜ#°a°&¢ÚS÷?"µvÞwg"=èÍaL ÂæÜè3Ò©
+õ2bDÂðmÂ
+t<´ÙȹíE«
+k¾ï°zF±ùH´$¹SµÊÚLK9áµbdg,,65AN£#sêñ3[×j¬'wcj]Ç÷Êø¡fÕyç\ÿ°ßÝ£U.Â#ÃÜ
+åo®0"LútevùÍ÷¿w
+¶\ïéÔ-¹)ÿô8ÕÛôêÒAËëðä08¶Ô×Ë_ßÜ?md{ÔÇNÍÆÞæg'Ø%Ö
+Ó'~)
èܲwÝ÷]6ÐWGâÜ2G>xZÒñ,Ì%cE¤jôѵdFÜãÀI»Á¦:Ìÿ k¯ÐÉ;,Ál8âÉx»
+á9Ä}ánæFGï®;nNoÝÍ2@ Àʹµt«+8W=ïàBz -1+aøU¾x¤`ÙÖQG0Î+Æ7»3WÔR*ö½¦äu6Ó 7¨ÀmßU ;WçÊUÍÄN¿Êc 52ø(G åûj÷*E}>oaù¨br}9Þmkù¼
+"ÇÈÞ¾@ïÔP9ÓrZyoëo"Á0ünH4ÖãJðþæG8"273ÒiÉæ'sÄñ8N¯!xTãwFm1RƤ¡BX³ QáÛ×à¢Ñ=2X o¼ÇÇQ(:¯ê7
+~ÑÛÂÐób¯R¡hµW>;ò¶>ùF©kXμõïe?»Û¨
¢ÿý/\X`¥[L©hü§P°¼¶'¨{½çèçQB<[J¤'8CTÛ1g²ÏÁ#{9o¾i33q¬Hêrµ"Áð· ÝJv÷ÔÚÏ»(ÅÅxAüýòÀÅN;£ñÇËUÐÒóÊ%û¸R 0Q¹tÇÉ
+JðM¤ÎY½½à9$ã:e¨½VágóòÌñ±Ò}éÅ!Í/عóoÏ ëSQ3Ú Wßðú¼è,{ó«bY¹ÈWùP¼ßÀm˺ioIo//¡PU´1 )oC¼?-Áa$p]«î.÷SVÿRãøÁÖME¢Ï¯S£³£MØir¢¡»©/)]Úô
+bʪ^P4¹1ìªpuw½CïÕçäL(g:«©r~%ë'jH%uÿT$"*øɸd0HZr8ý_ÂÑ2}¤=Yü?ÐxwCó«Â Q6ê>¯+â!s¡k/j¬^óB¹µ1;Õï¡B,ç{°Ç¯IÐEHV<&/'®av¯
+ÞÐß&kæ
F7_`u!§}ì·ÖiîO®6û*
+¿5°åÅPrÍþno·EJ8øýãE§iaWNk0Ý w⻩Ìëí}õÜ®ú2²Ð<eu$Uü}¤rxU¼CƸ Zái³ÈÍ0ÊÏZÎK6ʹÁãJÊ)Ó²©>ÔáÔçÁ>m©Zþ+³HÐ!îcúíS9äùÚÃp\Ýô´¬ú·ÏdG:/Åù¼¿û¢\²(~_ `Ó¥yz±Å(ÜfÖ¥ÚãÁ"~*)ûíÞË{.½í¶ô}g}¤Ldé
l&AuÂ_Î
+®·q{ÕöB0®Ð#Í\õ×õ
+cíùz[+]³?gÊË~mùÕÛ°(Ç.°LwøÁܦG¼µ-M^"^A¤×æm.¿àu»í
+Q~dJãÙ«
"Ucíîo£u\ËÝÅrsSy¬Rkÿ¢Ø/ä<x¯]
!¼;¿"]:².ÙhUÊNöÂ7 ±uÇôÐV§]ýy[ö»Ñ$¡µÞÅ9C>èOeßHÑФ¬&¾~i9ÌBù6ú)ÑEOʸUMH}j'Äðq0L6üÀúr8;`9µ¤k÷Aat*o
+©X?Qߥ!AÁÒÒùG÷M[UÉËòû"XË~jÅÏÎâd¾Þê®÷ºËúµÂ=®3
F««c_9g|_lЬS!½ìñý[!¶Ø¬~û>^}ÙÉ~¡TRå¯N´L¯«ö
Iªîg;©£â±©fïÅHkÒnç²òÿ»JÈixuýãdgé³X>*K )UtÌð#¥$D#AÕï
+ù£î|Ãø"*!È*àð±É±°<×o·õ´5üwm+ë~å{I·¡v°°{¹Ç«û¼[½zù* [mY/à5ý=e&PòmÝY&w;&[jA>Ä}ÁÒÌ}
+0l~ "²>Ù\9
æxÝ7
|ô"E OX3Rvh½k䢢LÎ毬>pZÒ¯½6ÃX8Jô#ùc9¨Y`µ (Iá!C{(§füzر¼z¬ì½_ädð!D~Êð°ÎUcì'rÖPkD<é÷d³xF íÇnÇÖÌÏ£g$ßßrEñ«¥¸7ÞÃMïAÇ{|Á|¬¥F4¼pÃ\òÂ×%¸=zªÐǵOG{ó»JM¦S¹1Pí:²ÃÃHB´Z\»°ªä:£Ü¾ÔHçºé¼%¾ÿG³»¹}F¬´d(E ÙÔFô-³ÝÙÑo~£o²àókÊP·?Åû(f&©ÛahiÐz±NXÃì{ÔôI+sn4¤rq<
+DÖ¹÷> ~¥³õEÅêSÃz}@.åËò¹[û#¿VjRH;E¼\2°´ª"tÆý»ùvÑú[è»âå;¿ÍÉ
+»qÃlùfX¬HVó~ÍXZuV¡·tå¬`Ù`cH¼Å½ [íש.¡·ÓQs'ìáÕ£p¬kª+Ç«0}0WÓM|ã[9ѨÍÉ@ä1Iebúr®~¸qâi}]ÝgJìÎñ¼S×Qt_0Ó8Nµø}Ôcl"µõèÖ¾N
+°$äÚl/¾H
+1ʺ~Þ䱡Ê;Ê0_I.e¦éWuG{áÕD2ßÚ~¸Ü××>:Yî»;*
+"Ðè/¹¥æ·¥4åi§âò¸ý
+}(À¢vZ7Dqµ°h¬-úÈ[½(ë¤
+N¶NVêö`èr&ú.¦³Ôp»É>3¤*| ¼ÍÆSKÍmÑ9k2+®¿½fxO!^ËÆCpðVùG+ÆDéÀÉMlÂ\ !;ß½îÌMmÏOÝÐeÜ+i 5¶3®J?i<ÊYFóå@ÀãdJÒ]ùÞÊ+>9 ßÀ#äl59.\}ÊÖ¹h{ÉΪ8wT@öÆv¶ÚK¯Oüõç<ÊÉÓÞèÌmx~ºãjô XGà7¨×ït¹fÐ¥äCã
+hßf×lýzq
+õ~¼=Ù-ó0¡mÑCÈGFrTzÄ®|ø0gÍT¼-ÔîJÚÒUÛ g*ØÜî%g¯4×ýÅýzÐK'XSÑ/gØCS$¤TWAéPÏ!cE6ña|ãÀ4²Z
+ʪ@öÙ³ß)!=½`Îj@Ætl8B
+l$`©Â¯ã³g¢$ºÙ/YûcbË{§¨
+
+`7)w´¾ùnQÀ]ÎÏ*{cIÑ'cDI`¶ñç<i衳Â÷Ðýó<Ï«PM`ê9]R5¶ñÞ¡µÁñd£pƤ:sa%ñv%Ûº®ê8¥Ípj°ÇHØz¤kÒ z¨øµ9zµaJ%Úé=ĵNc&ÉnÊv§×§ã5D+8v"k^+àáÊ©¨ã¥²äY¨ß û:r|{Ú2&ߢaù"fJ³<íq®Qö±¯·qYAÑ[~à¨1E¿ÝR¶&óDGNÑyE{ºq×IúnRd`$ÀusÙ-à4&¿C
+ÜRHáÓðÍ>æ,¶ÏCͪ<\ò«ÓûTXy}|Z®BûqXN[v ühù;Õ]iì»âmoF
+ªÝ¬áê¸+á;>8¡êNb%d8&£~ä¡0¹Ywõ8´®^-!ÓÅÉ'8kŦ4_9Í£Êçøâ4HúåÖöȺ{§-{)iJ4áþJËxl5I©Õ5àLÿ
+Cø7ýsÄÐÀaÒõ§ÍÿäÏC.¤?
+å@-Å:`VÅO×ÞÀ}+ð°·òyóÏ
@#¨H
+Ç$P¯Ûµá4TQ?ä8þAìmá9[@EÛyÀ%\òêMHËÇmc³)ü&¡Ñjigi,ýÐw úcl#Sê³ÇªïÒCüÛ¬IÒæl»K¸|QDbÃmÊÐê¨v(Ý(¿í~ýh£mâÎóXjBʵ=æó()úè}Áùsüéz:õ¾*c@ ÍBH±Z³Kðexé±wà©kÄw¹DÏÃ~9F>´1,f¸ÛpOï>æßi¬Pôu_k÷ôböãj)øé8ÒH,FÎI'ý
+ -%_°|T¯¦ï0Ê[õ§
+¹ ü!7mÏÈC0#îbMkXÔÔCfÒZ]Vr\t¡·çª`ÑìÕ~6#B© ÄårÅ<èiçPõQªÉ4cÌ¡Àº³ð~}]]
+_~wV]^OÜ°)¥ ïÑبö0«?äÉ)VAR®}\£$¤ÛdÈóm˳£²Ðw8J+\²UßMÄG£Lî`5móèªú(?l¼§úwñh%ÿU¶!Ú³Ömí`SZMÍT¿¨â¹JÄ!ݼ¾TÜÌÏRêî½ËÍ$ó¼ÖqsÓ}@¹r5(
+\©+÷Þq:?ê+áY¿ÔIp±'ZyìÛ0o?á¸ówG0¯4 |ôm§Va³Þ!¹«å<±MÐC¤eÏÚE3xæ¼»¢¥¥Á0®qÈÚǾ(A`¶sÌâtìÕ nsSt}=ÆQ´Ò®]
+Òþͨ©ÿ]¥#¡nUV½"(fÑy¸-Q.nEö\ûrá*¹¥uv®@èzñEµ¿ÔÅ×8(g!Êä?I7¶ÃÛ ZsÉ@±iáÃê¢IЩh uEv=zu3*-êÌOݬ.Ë;Ë,[ÁÝýîôü^¡¥Ñ=`ȬaÔ©I,U¤<?zÎ5
+£§_}¼V)âóy5Pnt£6Í38°ÞÝê
+¾®Ýû
¯øáÊ)úQðáYIO
+x3X8nu`jÌplæ sdyDrÝåå>>ÌXWë
+üÿqÏ]{Sj9oYh£.j¨{·TÝVδ±@wû£qjÒ#ÕµÝ9oêc÷§%¼;ÂÓÙ²»|EdcP_~¼B¯ü;gaòÿ¨#¨î's_ß$|Ñ3ýÒÕ]× R* tLN)
+[H>P|vK\"Y!³ì°NµÎM¤¹NÖ;ÄAQôR1ÝÞ61/é[VãL!èæ"vB§æ{çd»Q#<9àdAOÉdü0Sás9ëì©øÐìÆäJO #:R\È#ç*|/ÒÞ«Ø©ÏiGkQ ¯±ËnÞ=!¬n»j`<´²©DT¾MzË'=gåLúÙâ£ã¶¦}ƽ¼-È.^NQÎidr!pH>ôK!kØ¥8gU`b³ÆòÁ䯲.üÂXÞDkå¸O8}e
+»Mdº6Ö+'=6ºt6ÃxõÝUÏ3öÊ"J
+µYÂTm
+ï|t *3zõtP6<÷Â&¶yV[}÷Okëfõ²ñÇxvZyêòíâ³
+â$EU³ã`sõ!Pêà#Pðyþ5y覴÷,³OVþ%"
+ª×â'cb
+jçÅxª=
+±4ªÎSçlÀ|;>øwÛº
+"¥×TÞTR[|¾ºÐ$Ä°E¨pà:t at i 4:¬±ò-e:ßm-HÆY*¨yZw/ZNPðÃì:µò=RYóÂhÞüx Y¸µãáËSþ1ÊÕoø!ÿÉ (¥ì_ÿä£tLѹc<ÙØÕ¡4¾ÒýðmëÜÝjºtV¯X¡èU< ÆzFEFÆüà´ýkÊw+Ì-*n=׬<¦l"ú§¾7èÌ-»sëRuï§uï0Ñ?é£6/¼ñ}¨¹b¾ðXÕq@ÅU¤6.»ì¹ÃIÒ«k:Ôk*6Þ/üx.Ãu á(jMl)
+íSÅ|OÙ_æ2õàYìKO¬>T"£y.EQÝø!)Í·ÀÃ;é3³øhN«@wæzAä¬QwX¬?q¾²½Ò%l#/sÆÀ`²¸QÜÄ6¬ñxó*øÆR×¢úØ9¦èËÃ7\'FÈuå´Gç6îNÒ¥]}á à.2 };ögÁý".OeE!}VW äÒ^øà!ð[+ÍÄ8ý+˺K ºøg¢Þ÷`}}Mxh}4·1ïñíä®ð@Kñ¯¿úû·fôñÉIf~1VT\9iÔ¼ïécØu_ÇOÊóÅG{~bua"h·M<ÁË^åËèH?WøÃEW,]×&Mí¾Wpæ¦PWN2Fü7Ö>âÛª:¦elÏÇé;ßïÎCÜóbö:iöé$×ðÔ%¼KJ¸;DÆlÅýjÎ:úÝ?>É<óT*5×1Õ ·
+óL2TR;2¡O$PÑÕb
+H~Ì¥°" É$îD¤Ñ³z%0ï_x%¬K¼,µe
+ï0V®¸ï5Æ
\µNáÃW
+#,¢ê¿½·Õ®)Dz~Z¸îãè
+PU"Aºòñß.â(Ûd§E(9eVÙøçgüK|Öì[²¨»
+ªK£ii¢3#Õ µ×YÙÀiÑL»X3Uál{Ðßê),b¶rM²Ðc¾¼ÁsùL±^ì)Ä ìOä±GcXJóýg®±zp°iÔÝÅÙEÁ©Àr³Ýæî]hÐFáMÆ^Ô*vO´ß·<Òb¨}d¬ü!»´Í
(O÷°å@¬¯n×Ý|TWÝñ+gôHuªís3s±5¼¦6t-þËâºh!ô+
+«¶Óò×;bsêºÇ·Ã§U6-?gBöÜè¬Þ ÅoÓÙÖIñÔ©nb¦HKºGÜ£Ü~ÜcÑb<ùSûD3jn|¢[ESY8÷û¶¼f9Þl¯9´½Wßàä
+LçÖ9¬½øúZ>GôþuÐÃ¥øÍß\e²Ø_&îöÁ
+®ìÁ.üZdèÅxz,n? 4á
+>ÜGñPi,xU&}5+h"Qì+Àí+\Ãpr\Wg/5:-wRoïß}~!þXô'xéÎ0Xï[*þ²Ó°~Ð}a³ð¶Oª'Þß¿©tÍÆÇ;£³ÉÊÑ
+W÷Hêºâ+Õ~ûàÔ8ÈM÷øÚ×UÓþ
+hìñѺw
+%Sç ¼ ãks?uÏV£V^¬[¦ûúÎ\¸\À*
+ägrÖÈAFvÿ(9P
+
+ªµIXTÁæ g»^±mÐ&ðxNaKYÖÉõpµpÄcêMyuhv»àaª!aÚ4vÌ渼R) Þ~þ'âÜU¾,mû7¿üANW´i\¸¶óÈ_ä©p2Å«2ìðV¾V%ÈUp}gW@¸×ØR
+MÉaµ¯â%â÷`ÿ*.õYT®OE´ eÍð<×Ù?ZSÄLdé!{ê=é8:²Ä²×Søá+ÀA·ö£AL(!Îå"íììHgý¯÷LðÇ&Òï¸þ6;Åçw×Ñ0m °\Dý©¢b¬8bÉ»ùÙÂ
+Ìdx2
+O±Æ0w¯ëBõ'5½£Ã¸YÐQÕÍóëJB¼`aÕ²?ûºoqbóC^ÎKþ IÊïú(·¥âcÚMM-Ø k¬âФgéîJßHÒç$í÷¤/Iiqc"¸â×&ëÜ~¡¡v¢Ú¹w@ð5^â£9#Þ)ÈWÉÁ-}®¥hæVrê@b;´c °÷[ç+úY>´)vdlæSêÙû*
+|ÔÍE\²
+
+îçÀÀmZõHû:(ËDjôrØUo½_Å#´}mñ6éäf£¢ÅÆýXH¬ëQã@*A:
+·4Äÿ
+Åá^/sDtosqÄÛêyF\iï©
+=ÑóË8IN Ï#1b_6ÆÊØÑ$GÓY6ÎCþÖ¼Ýðý20ËuÎ,¥ÀIªÆ ¡<áÍúei?ÅÓøéO¨kO
+wª¾
+
+çk¨1@£ÑêLnº/(`<|G¤+äÐ:oÃútK¾0´Ò¯YîòË},Zæ¯Lk.êÝÎt#Ï{8wâv¬Åã2ùï kë¥áJóÙN
+DõF1Ôí~׿xA!¢Û^;å¡p1\9Q£ÈÓJü4uõ^ÑqEÛóÛ²½oÝ#%)¾RöF%Eºýn[bEà]ûÀòªÊ²5SEØþ¨¼ØßÖ#øIª ÚùëÜ3 ¿¦}ù¶JaAÄh¡-Ôà)$"Áluê"âÁ¢9¤?år 2;öWçØ´ô¿Q[Ü|d=ýièȺóÿ ò
õóc¥¯X¹Ã¤80¸¬Í
+
?´¾rA%&éjÕâPl¸w:ºMѹXÿB8ËOè$J0Ù|6Õeß÷F%åF9É,Î%øå¸\ã¾ÙϾ«ËîvOßBâH¾ùöAbàL Ý"´BÀörZx1@=&Ï;3hq*§éjï^ú<®coïli/aU ºyÛ$xë1gÕt«Áj1ÂÍðXþbNݱ¼µÚµ
+«Ä:¸
+¥´uÿ )Þná|oªà>¥<µÓIwlg-Ó,[
+¿Vôà
+
+ßËkóhS±³)øPYK{
0»ç碌¬þO÷e+Ñ:¥#l/z aâG%I±'WP×W}| TznrâߤiA¹é¤óíy*,¢åü§J
+S)úº«å/l-B2Sû
+V#J
+Ô=ÃÓE¸lCd¨ÎhhöíiÉZG(ÏõKøEPoðá6ïï\ÍÄ\
+zlj¹<ÂñΡ42o¯'SêI®t8Ú×è
g9Moa3®½ß,T%D+2¨¦Ýåå¶XVvKn^8Y=w³ÁÖ5@ªÓR×R.æXØÒCÅiAoQ
+ÂV$:¸S»XW$K'G
+ÚGõeÍÏb½fÎÛdBRèj¬ùÙμûõ?(ÓbcJ
+Y±*ÿµ·G8öå8#¼Rõ}Â~-8rS°
µÆ·Åäëû°ÌEââ~¸ut®%áphºP·0Îj]ÓÞ
+ç±´ÈúUe¥8[µL¬tfá£pÆaM¦³
'èÃ)Í©(C½E¸³®0oó~z.®óýÍ:À«lqÿ®TgNfçI´c¹9ÏÂõ 6
¥¦n\SüØkÝß²è
+X*#rÄOñÆÅ©k§54ұƷîZyHÈ
+ù>{t{Óð§ÁXQòºÄgå·ú
+qÔèðPÖ®ÒìÄÝßfñÞßñp .i,Il´ïâÀ_GåxL`·i ¨Z5Tµ4Öí,+<ç}@ÚpÒöÄì^&ûúT<MýL¹ä)N¤Ð!¡A7^#gý½O¸®.X¥¶ÈnDÓ¡ºáïl|ÈsA^çQÓû8¨«ÎAW-Tùúòlïòϯ²<VÿíÈÓ«à*¤+v6tëqI}5ª¼¡¥v'£ìÃQ¶¶®QSïlØËdÝwOÚ
+L"ýSɵOÃh¥ùÀ«ç£@|<f'whûü#qÅBó<ô¨Öû§s|Ø4(Ûûà±s«ä`CR¬Çwf̶k~N~,[Ï àË{;¿mcl
+Jûaðèqòí8q5ÂD,ô&&cê º»OMȲGz·¶tO'Qx·y[DÄÝUu1PÑ5IW
ÂsCG]fxéY`7H¢ííò_óQUÿμ5/)9W±.Û #ïâBªÛÈÆ÷àÈ$Í#uÁÙáe
+(`±Ã2ÛNÿôª[,`âÄìÓ Ó¡è`ÅxhÍ4: üy¥|4&Æé?¯©¤uØÌØ«Å®´AL·}(¾Þf¹}~¶ü{>
+< Ë°&w(U±sºUñìfØJqР̵ÿÙݱÂluC¦ Qx¥_ÄYì¿!Ñb®ÍÅÝ%¼*¬Ö«áúÁQhÉïB^¾9Ùé¢ñ°5ÞÂQ®è96= ·ªáãèz(0vPVú]ðÞ"÷ÒÈ?Êo)ûÛù%@AÏeȯɱîOzÙL¥&8Þ°Úû|±¸\èDø®W}£U¹î~~õ(Í?ÂÝo
+ÌÕók=Û}¹bÉ[Z;ï¦6øÇí's/¾Zzë
+Ó¶\G9&:®szÎ,\Ôª¦è'ïÛlqì¶9U´¬~ųU*5Ü2S@ Æ¥)kÛ_kb¾ÉÁG]KI´TM
+m5íM¬dÒN}ÊéaBÎPÐJÕÄ¥ã
~ÐEë(÷Q£9$ú·ÄøÝä˺ËÙÕëPÜi$
nßJGU<²L>ßJZn×Ãý%·Ó,x}ài¶ÅUÏd¶?°ÎUJÜçÉWÚúc
+·Í£¢¦&
+¹òÈcûæ»"Ü
+Îfۧݮ
+ÄyÈØ&hܨDK®eûÛ[ÜU(ÎÁþ¾QXWÛ>±¿åOMÆ*%NÓ>õ/eëhÒ)Æ6µ¶@òËçT-fÓ(BÆëÇ4ö¯!¾íÎÖUaAÙÈ\=ÃÀ«>ñV£ãí8`Í©àSàdpÝ©Yä?«³a̺$ÞXó_l÷?¶Å¡/ ¦¡®=
+gÑ@(¹¤'8¡ÿ P ÛÖbÆ«±ôm¸ª©±·Õ¢dwè@ÓlÀ|úãö°?Âyï@ù"ñ ¬)KÇxÞ ÕÁÄüJ]ÞÿYLf±¹ :{ádkí«ò°CÝx"n6{ÊëXëÀ
+óÛË
+æ ÞîL&ø#ñþ^m§FüÓTs±UDâoO~èt¥F¯éê¡~y¢·Ùæ½×
0v7ÔÓ¾,¯:ݳqÚÅ÷ÌòæTð!üRnò²TOÁb Ô²G;¿u
+ñâq@Ìj'äÜvD3j<Ud-¬$¢Åæ´J>Ëþ´#Òkñ¨êx0ÕÏg¦¹!®Bó|AcþU7Õ,jmÈæAÈc]O¦â]½ÑÙÞôòùkPÍ`x¿u±aÜP=qtä³HεÖQø£îiõÖÎÍ«A ÍG¼\)C¹f¹!ÖÕö·ÕÄ;fÎ8§i]TYõº¥ÜOû-r EÀU?ðñµNV©ëþw§ªL÷ò¥4¸S·LìÚÒïØ>£'ê%·P[.mB|ºO9îãDºüb
+ÐW(;³ÜåOÁ,ý´1yÌbáz²Uä
+Òª¶(J[ßþ´ EëbÕÍjw
󿸥DK="²I°uG
+5ض¼ÄHlÅ¥TÙÑÓvHj×X
+Ï$rPÁ4ÿ3°µ4vý°ÓùÚ¦võ÷/FW¦ü2¬ç"Ì»#iòì#@µÎ·Z=m)êfƯõÜ®RÑÙ;ukÁKf9Þ@%ÿÊí1Ï#}±uÀgä$ñ¿ B_ ÅÙHÚUêmjVv0gõHvȶ
+_9²ßBg຺ïÄòÍßÅ0UKÇ!ö
µN\pÌNuîÅ6g^þí
+Ù'KÈ3¥È-O¹çóå{Ê
+ÑFäô_ÄVæåáF´i6¸Jv.-nT ʸ=EZ6Z]ÇGRÄiAÂ_l²cZÖ] ¾NÊG#Þö")f¯~Ýܬ ¶ãNìaóÞXêËÿ-¥â:·Zó#'KþJë
+°Vy¿©¨£VènLì[jI5PÜ&Ð ø44¹i÷ܧÙÓpιí¾üVðyÚXBeNi
+\tBÆ*ÌÞzUíX³&Q_Øöµ'è$R§z{qÅ|Eç±ycÜ?ª¦Ä7<?àô-Ó- at p¨
+Ê-FK³óPVGþ¾ák42èûTÀÚ_íú »NÖÄ=·;@»Ií×ó¶ai¾óËYD
¾/AömòÀ_Ø/üYÁǨV(`k¢~ô@÷î¤ ¼¨>ìúÚ¸SY#k÷Z*KþÊøî ÈQ@ôIXa¨ ûPGwëTui38³*ÂdzÁEmÐ2Á3
+¿CÝF4ÈS1ó\},ÀÁͪ%ÍÍÌ% &B¸Ñ»Ó<}¥ÏAë»wºìÌD½#ô>$gÉðÅÊ_æÿ´BbÇ
ÚÑ8_Y; ûI¿2)$ÞyYFç°M¶Uý1§ý¥
+ºP(ø¿KN
+ N\'üãt\Ì¥`|0ÈüBÕ(ºèÌÅ©Õ¢36öíò²ýizSQhÇÔze-ô,oêègéÒ
+ðË¿JÇþ,õvÚõx¬Èá2&Í/U<à WÅzN
+m'ä¥[kÉkWÄ«EUlÝi+ÇÉwÓÇíe2YékbÒUFmIoj)059býTÖüzºðRi
+)DT3)ZØdQ÷ç@ÈõÞ¡ùm³ãÁmü$X
»\$9V
+MÐÇb&]ú/÷ArNòæ:'È.^d¡É»gÉaJAî-}+»+ÄÊÞµLà³Ý\qì3´åDê\`4|16GYcr>\ñA`Ú
+OKó+8Kï:jkؤ¬ÿbÅ»/ë}Jöq|q)»P3ïn¶Î»krÄ_ýìp/1zJÄÅi©×^á¨Zo8IJÇ]®FB>JMW}bعûj"u
+ùªbZð \¥L¼7³S-þdy51ö0ïväÓÍé Ôµ²ÝH¾féÇY|^kZû5ÂðmòÀo Ñã¡1Q
×Ö¼3dêâÜ{ËZ>Ìâ¹&¾Ë¯x̦¶¸7Þ#^cä«WE âp¤]
á?LpÙ$rµaô¾åáIÜnkKå9Ë
+ji¿ï
.®
+½¬±ªÎV4eìä°©?tò¾g½à{U^gîa V(#®
+¥ÎD?²ðçUÏË7 at IÞc_s&,¨°@ wV §K¨\ÒÐ31«O¢þØaý¾Åðf{i8Å%9>k¹ùê
+¤µ´IÛ<.¤6ÖkS
+MQ
+ÇéÆ%¼R4>óþÊ /rN9çp6¢CÑÌ}¤YÇÚA ÷Ð$`xÖoÖÝ×Fò½ºÏ½ÇYü¼XÕAcYzÖUµðlåß3ñ[/µ1GIÜ:XÌ*FÖïPrUEpÝ|/Ï4%1åæÁ,(62ùÏñóhv>RdÍ×óVNZó¾±ÏPLû3
+³x`àû"èLâ£:MV4)PSÖïðêçÁi~¹Cw@ôy&¼i¯g<ãceî?dpZÉgÔäÎJ¢Ð"ûõÆD¢ÿI7ì: +õ$VòW-Rb*ËnO¼q(KËM ¼¢,1.à+RÔqj
+rì«øXí+¢°½3¦ÃzQ±ØoÇ
+únÎ3çÐm"/JH=Dh·poõ©³~T¦Ïm
5|Ì)1qu«qÊqâxVrõÍ*k;Þ">ÆȾ!³
+wpÚ
,$%PÅ/H¢ÝHW=§!wò$«¿,KW+Ò'¦+{±&æ°rhh *
+ËÝ
+/à
+q«ê0)ÏçúÏCòôcÍE%½çÑá¯Þ0Z¾Á
+{-G¸ø8e ]qUÔCÑ`C&Ê°"ÿ¡¥¾ü0}êLã¬ËN//5 ¦>-z¸#$¯§A=ÌuE_6NªªNÃW*ÅoXkFXkmÏ4øC 4¾ÉÙ+s#å|=ì¤'X
+m°u kìlÂ\¾§2FC£yÒF×(EØÊ~5>û!Þ*d8¨ÊüDðÎñHÒ<Fñ´ãe\3¸¿\ÁöñÙ
+ öÔIJhØÛÝ2wxÚa,"ÞQ"ÇcúØ©®_Üõ5kNÂlÿæs7ÆT²ÅÕè²ÿ¾.8²M)̲ҬêeM<T;¼Ù°ö5ÃÄйj\]åa¦Ñ_øOÓ®TËùÆáŸü$X¯á-]ÎÇÅ8tk`+ðÄê÷ý±z¬É©ÕCÜÈr£-Ó j´þfWr
+fàãí
+jÓT£ö@kbyeãï
+z#wì
Uw§|
+¡g|
OØ´®ü¤<EK}tÚ/Péµû°i<y}$à !Z×û ÝÛÅ·ò0y"Ãw¯ÒmGf¥¹òU9Îïµ²cNÍ´[qñ7ÈÞü¯i0ÄÄ]-'Ý°X6Tøì¶Ôî[¶¡%1Þ'ÜêÎ϶ôö°M)öØ[Ê8S×;ß5}Q¨3u¡¢&ÂÖéõF¶²'º=6îp©+8Fæ¯RÃVQ9A®zSèÍo>`òËCããÆå0ìåvA4ç
+í_ã&Eho¨OÔ>\ôî¼²¦ £ÅGEM¼î¤i³ø
+H±
¾Ø
+#lì1᤿ªÛ0îës¹Î¾:|åÆ¡´XfÛdÚ
+ź:¿%H^rMu]¦ýþ0f?ÿ¸dvéfM\5
"LFª¤Äd+ ³sÇÆ(ç8vG7mV8X'?sR±GJRzZH×
+ËkÚÐqEé1ÍÃ:w½¶´9Hõh]Cç~÷èÓS@ñÎýßP{ªðE?§ÓCI/4ÊQþðîij®Û-w©¹°î~Î-ç!B¸ë}>%¡cCÙMäÛ=ÝÀVóüt²bi$ØMtAím#qWéÓ±FGöƨzÃÞW?®y7U\ÜÝp^p£é_é5z-®þK¬gaô[Ý©íãb°L
+ºï¨)`ʯ[ë§æ/¸I²CÞÿØ{w^W
+Tb!P>Õxè.-¾þÅ= o]sqBã+öyuF#ÿÒ2¥B~3úÎZL14^#ßxtbõfÓûGAAjÈ@!²ìØô¯D¹Ócà¹SèM¦e'äUÅ^:lx¡÷½¾Ù1Z·æþQlt`£Ö¥8æ·R:ÑtÀ¬¾
+(«Ï[õÈ*+ñûBß
+ÚqYÃ`z
+,©cÌPCÏg9ÂOºqDå½DeÀoì+sÀI~{ä1Ö\
ìþúÐãÓÈR±tÿ(ét_dr-¥~¹Aùc$"عê=4AâU}ß1joDð¯4lò:Ë4«þ5θÔõI{k±§ûNùâ&L %³Í:
+"éûvGÓ
+>/Þ+D3k |5ý?è±ÛîT¡û¶
+ðìkçPcøbÇMîÙò
+¦ZçQð»KÚW3.Ie'Òésaû
+ïBw®D4ß _1Ãði[þ³4dfßhÃÞY w槦½HóÛ¬ÞÏ"ãþîÝjKT`üm3©üdɪ(&éko¦z+
+
+T
+U±Z:P,«:OÁ"uÔÔit°bÔ¹¿è~'Aòa06H§&
ÐÄäF`Ëôáκ»·¬)ç_µoË3<dÔÿKFQ'cÔ1æg«Ú¬Úu?5;3,Ó:´E±Ó5Ö½ì[NoÆ
>
+H/^¤M;¼?*þHéìÏuê¬>åú}®§Ã¼íþQÕpÕ¶_ÇycVc È×%
+HůBëÆyHpRå¯óV¢X} y¡EÚòù^8ÑÒí+XuêwÎ3RqÎ/;ÞaÍ(
+ýÖ1ßüú6©1CçÌñWHJ{E*ȩ׺<G)õ,¦
+
Û55ÖR3á«´K@ gB¼t×U¢Ä+k>7aü¥ÚäB
+F.ÛºVºb
+æ.ª[ìÿÁ :écA<¸Åc;
®Î-¾õ7ÆÉ®,5aY« `ÍC
\¹þøþ]÷h¼¿â+E:¹ê£¬yð.«}RòåîccÊÜ&B®è×ìPF7Dbvôtl0ÎV¬£¿|k3ò§ û`×ͪH?TdP
+@}½áîmv[ÂI±UGZ°8¬{Þvq,$Z¹7RW?¨*DÝCÕÒÖýåOçKýìV=§ÈdëjÝÝPÿù1(
+Ã××a!¥@çpÚ/ä,rz~yNßseÍô`×
+ µ§§Ù3"Ê"o'U4FËv{_aWX.j6!%hîp¡Ê0S´îí¯FDmÄâ½
¶vY¯]°ðÅdõµ6µ+þ%eÜF-óñÆÀlê o d,øH%éXÐ?Hجt`ìç:S ) Å1÷èz(êÖº±èLPÊÏ2ÆI¼<ÇÁª
+ÑçO6·*a´¿üÃiÂÀòO%Å)XH!\ÇïçÖ½¹pÒx\Ú!>IÃZÀ¯¬@Σª:êÎóY«$¢¹d¿·^]RK-AS˼Iaúyky0aïpg2íNL*¸vÚõÔc¯UÜwJ}ÞÌVä³bÁü>'wMqS»ÕEÆÊv¬¬¨e§ßØVÔ»20eéFD§«VÚ9In¾ûÌ)QvÕf'7[ßË Çè6ê#´àÎÿõàmJ¢héAç.o\÷Ï9ÈJim²Í}%ûѱ³
+[¥3Õ_â94
+
+ßrLH{»ÃÍÉt%j@?z7âª
+d®XCdËÖý%qlòØöfDìÄH½-éé)Eëº]åβb¸B¡éò±Õ©Àrú!ïE¶î(üouÛ
+Ð<KV.»?Èþ°ãbaÉ£03¡O¿"tZp4^¾îùÈ;;¶Òî%â¯
+O ebf60_cü¡È7%#Ǽe@ÚÞàbV«ÇN3N,³¾+_þ%òìÏÎAúr8BüKB
ÍeÉaÜñ:Ìüܾ3ÑcÀ8HA6á͹Õòr>3m«{ܽrKqE*ê¹Ì²J>§t4& |nn¦¯ÓéJd-E³)Ýîõ$>Q±UÂIáyM¼ó@F°á9ûG¶z,ðxJùø´½ÃFÖ]¢?Kþ
+!Xå°Ö
I¡Å0iß4u
+«æýþD¨\CrìnkU0¿õ"JÀ
+÷°¼wévÃ¥³ý¯}Ë·+F·Ic°,ïIWjJGg¿à)§ãÉ)dMb85í4^¹à2Q¹ìæÚ«dOË96Û¬EjòÞRLf¦EµWÛ^«×Nh..s)´ÝÄe£¡ãeÝWhÄi
¹ÃeÅ4¶pdjÃð ÍÁ»ÈªIÆ,ìcèçj¾¦àÍÐ:ÀÃJwÓÃu\®Ô^"X>EB
FÝÜÂý½iµÿ¬ÏÛròï#c[Ô¼ý)ÕP²q½làÙOº±QZLÎçÁóßÿñxV©6:@Ðæò«UBÎ?ÂZVBT¼ËÐ%é½C]·t êSÕd.zO¡ÄÇt@QÇVºwRzíÏq©wë/z3н¿ÈvIyË Øüäg½oScü¹Õ"_Þ(GQ)Ç»ìE<Fü°éMdÔôÌJ±eUäïU0ºj
+R4Lkêm¿³Në{{ÆK9tx~üô¬Å1Mlõî®;vòÝ´BÄ~I+Ýjsa6n0yjéþ
+\rÁ´n¨ì¬¡hÆmå¿S³ÁÔp¨Ô9ÛÖ¬Ã_âY:qâ#m¯Òªë?ýÙçÚKga=æ/¶dlèàÂ<J/ê"U»5krþ2ðª:ë©/[ÓÅwÔ
ï¼ú°:)Î7g÷ü5s ÿ©!xYõJ«g?zç¬ùC1#DBÇ~þ.)"uZáÚnK]&.«3ð-;tOx ©`Xè×ýd ¶ý±Ï®f`²&÷oñ26ÝõËm\!./-!ë°±RO¿ÏTà¾rhM×q)VéñNñ´V¿ÿbÄc6iñ¯ý5+±[³m[uÎiQCØP4v¹¬.§ªÝ°áN#Ox(A(=ÒÔl/Î!ðìF(?:ÿUÁàD_L¹2:Ï|Èæüfm=#Zq¡*Ù¨Ew:]/+Ë|àß]h^O·øÚm·DÍñƬMc'Oº#¹Ä©K:\9Ö§÷hÒöÜEîx¸PLC¾zÛ(ÇÅ×YýQ!I|(@8T?7è¶×ýÙcWâYMH:ð¤w ÒJ>R~ù¤®þ ÍPßc8ÛªÔ{yúÔlå+}YÉ^ãH(Ѽ(ö~¹µpLF¾h¿Ì]'Åe4|»_»§/ÀðZD&-.Aàüÿ
+²CJd¦sºTOÙãÜeõBo(L&d¾·=5O°ïÊéÊ,°Ç·oøà
)xJíG5z?ö_5¾îõø$§õêÐ-VêÉçòC ¬0o»Ñæ¥{°q
òôÃe_¿Wñ*OÄkA×ÄØrÎ]Ìl`êŹÅ8KKóaiÊð®Ûz´7º6®e²+ê¼ï4Ãy àÕ({îRÅ\ßPʼ\¹·O¡ÀS¶6DPÑQó©æ¨oÔ}$!Xßî-[g!D\äÐô¦OFþvÐ4®¬¥L¢(7@ÙIA,¾áFüiÆâÍ$¼¨ÈDùS§Åëôè}®79ªÇFçéVÇÎ#bwF¶I5é__FÔSè«Ðì¶í?ÜÁ}åÚ?+ÿÈ_³&ãÒõè!<¿4xÉb =èF;ïè²Cª£'×ÙÌíÊU±s'!
+2²1й£»mcX}éEËÜRï~ÇÏý38S\ª§mê_*cãĽË,}L-Hkf]
+ÑçVz8öèÀN-Í@&3Gçï@}ÁlU;«´ ëy
+ÉØéêÓuý¦ßg>ÆÚ{Õ¸2ö{OTôsاôq¤u
++³öî½4vÄÚøizZXI0®y=D,ê¨fR(
+è°ymÞZ³OYhI0ý úÌáSMÕxX«¿GaËÉÙÖö.ñÔÒw§jÓ=EL®¹y}ã`þ×=úfaUU/&ò·ðýÜÃçj·nNpu[ m>á¨ÔñBe=TJ|§ù,a7hïCÄß©y3à>Zð[Ù5À/;;st½¤"1ÀRÒ
++|üûQ-ÉûLDÄ©í=
+ÍN ^qýÀáýÐ9<1Ø MP¬§¡¬Ür C$->ÛÓ¹£roÔ@®ò].µËp»aþÄz¡{Ö
+RrT6þ"±Øø¢ßóC10YËG5=ÙËÕeo[ò®ïMðÈǹb8ǹ|qÁá¶ë!ú!iF^Íåw¢«I^,búj4q¸Ä@2UufÁ(Ìî}³4©_RV34Ý}
+n£¦ÔÔ=À
+[û·ðdRú® W<Ú¸Hõ;÷ðÐ
+j/ï¶Í yßjIïÄîìê
obl¯ ôCÇ_CòrÚä>Ýi´PÔÐ~ý(µM,#Ãgªx§ÃäNîË úÕ
+Ìä©ÞKON¦<½Cvè²x¸Ô%J m¯¥³¸¸×ßt
+g{Æ&kÊ]ûTg×ÃÐñÙvU¼£ »¸[£üW /æu xt§Fm³¡²¶§nêÎÍ
ã(´6UoëÚc8ÞûZ³X±Ò©ü±½%̹Æì3xͦyÌÕèR#yI±«d±¢^7+còÂå©âÙä¿9ÍÙéH
é×Eص-²ÛPcFf\ Xï®Ü6m":bµYP2AÛRtÂÇñ±Ö¼wÎÒJÛlòyt%uu´EúÙ÷"Ký/~GµÝ±bVù°%
+ìq®Cc~@s
+,ôTw¼Å@þÿd'ëkïå8ÞÊòÛÕE£÷©èCqyͶãÜKO¥8è{gkl²Òì^
E¨¨Q{HVÛx\DýûÔ sÆS²8 e7î¤0tÖWñy¢äÖþRÖöî|úg-Û¦Ì#YJù3·ëádYCZ|¬ÜNMÀ§m ´7{PgÖÂ9~{qÃ~Ï]ögq)'Zq3É£ýøåÁ;óþ.ÿX̹Êpö[hÐÇ´dôaY_µ0ê_.jÒR¥Ð¦ýÔ¦Üiâo|
+s½îVTñÄGÊ¢j9ò+U PEôp{åØÑ+gÉ8Iº³¯@7Õ÷(
+¬¥¾YÄ×·wÀô0âûô'¨³_f)5¤Û4s D*Uf&"mDdiDÝ~á6 1\Z
+=@Á®
+«8~θA:s]ý¬ú±D¿+puãU¯¦öÑÍÀËâèÅ 3#õ³d^C ð¥x|D訰¹âU±âyWP¦àbØ\ÔýàZýÆBÊúÏB÷îÞó£ÌÓP@×Qç'ïÄ©ûßÔ¤Hd'Ogg`ô/(ìMЩ H)ÄqS~±jNzÍ´ËcqÃòlmbE±Á\idúZÍZfkz=Çä`
+^èád ÆTtE|°<KÿJöfÚf=-p¨8qwßúÒõÓÀØ|&¦ØQIA"
+1IjÒ³TpVñà´\È÷#KtC¶%¯õ"þÊrJb>¸Ü
+(o&ö;ÕÞe0´*òÁft§Jå°°2¿aì% qTú+¬P'VdÏRT
+"Z®'Ü{gÝKkè¯XYà~ U]w(§;St®ÆnJÑæ¶6|&â9eñmÛìéß¡Ôq
3{4¯ÚoMóyɪkc]¬¤_*êD5¼Ó¬§
+qRPñ jÄVKõV9(ÁèLõÍ
Â[À½¾Wÿñá¹iÈÇ°Ù2øÝoMÑ*¡êW³ïrÞ
í¶çªp
+~mª,ÔLÓßøÖiU6}êFPEz®½§¨6!w1Aµá¯®ïçÅïµ8нJíÄFi@¿¥Ð6ù1m¢=wo¥-s²ÞÈNc3ÈÇ !
+ÉÏtÖ6n@.&ºD_ÖT÷PI²iCêæ+6ðKé¼ ?Ê3Ø¡`¸î~Jm|Üä¸rÇ{iÜÌÿÌ
+¥vûGëÌÉNyî±J'
+%érStúIÆ~&«ú|2ÏKGõÈiá{<´Ä¯FPúÞnÞÚ3ðÌÅ*µ78²Ýhï"#³õ'h1û¬6pÙðæh=éê ѼKtÊe5b¨ÄiË@[ø[suüÃi)YÎï®!Ön
+ZT8ïÛs9é¨ßfOipßv÷ÇÏCpÉy$dÙ/yé°i8:}ÔAóâ©ÅêÏlßÐhÈõFÂnSñ¶ï¡Eé¬P¯±Ã¶¢¥Þ¬Ç1\ÛÝJ5¼à@ø
+¥æĹóóQ@'c¥p>*cêi6¼¬"ܺ ôºÓÇ|_<ÄÛ`:¢j <F±°:Æ¿(0É !Aíh\Äõt7wcfQ«ÉÈw^Y«£»
+ð(ØíLKU{Q²"¿½ªy0Ù'Ê3Æ>]"ºÞûÞçà-Q9{DõgÅfÿ@8p¼9ÞLßËæMEåµ{Y\?Ô$ÑÙøCÓJºKß^׺2ïoòo±Ñ^¼#5ë{
¶üÛêS4§
+(Bk õ¶U:YÛÅÆãÃ
¨Úêiøľç0§mNÜiü}í¤Aæ¸<£%J¡Õv £¶j(¶£&ÔãvJÇResÂ\^Ãk
+âÍ%§E¯¯jQÃÊKó(K
+~m_ «ÈªEöÓZ#%¦'Lõ $iàKWhtÀ-fOÄ®½õMp¼¹Ì%\´ÚAvJÁ`-ì.j0uwéÁYìþT'Sñ±:é £Â`¢dä&ÿ²íV`³+úS «Ïõ๵½þ Ëݲ¬ÞÈðê#=
+±Æ7$4*Ã3ýÛ"ö´ÏInË5iüÁû-Q.3$¨ëê¹N*«&qJot$,¢ì"6f©h¥VÁ
üæANWÙ Aî£yñ/%» »s¢Áe§wg|hìÚhs¾('8˨ëDâÉOõÈj¯>qnqÛ þñà'ÙzØô4uòëØ
+!×ÿ®ÀÃ
+Ò¤Ù}U/zѱ`ÈCì.ÖZº¥Õ ÂMtjÓV{7EQ¹T¸
X
+¾ÚqcÒ£ ©kyøäRÙì@9Ÿ¿ÐÐduÎ
+eåé_1ýêXú'
+
+K»,ØÖt_¶]Z¥vÂ@a7ÇæùzßþÅSKæÛÙ!ÍlúéÁ·fÌê#:=Îâv,,rq,³#bß;#[µ>zà|ÄÈ-5ûÑñu
+T¨ëûhÀ|²Xz^þ
ù<
+qÜæAxfNòd'
+IK½×Ò¸÷{·Mýô u·÷Z¸²6ëÄÚ)ª=ç½míCì¼ýåC$3ÐÅú¯qÙ¦ú÷n6Jò©=6íÙkû»×C³[$§Û<<è#®0=DQ
+þ¨¥Ua4Â_¥ÁØ("> ä_qWbsU¥D¿§ÇóØ.¹.}äti¦Hz²¬µÄ¾ìƤ#TÑÌ{æ]{ļ®YaÂêlÙÖ÷ÿï8 at b
+=NK`CC#òB@~QÙîdÔz»G¬ÐØE^³
+kÔÍôß¿AqÀZ$.ìË0±0ðëæ5d@¤8e¨@C5»X¼4¹5©<ϱpDı4,¢GÀ-îÀþô>ôóMë?¢WèuDØ×Âsº {ÓÿeáG-ìÜ
+þÓÝ8èÆfðº®ÛÆ!þjMrÊÅ¿ßÚµü6!ÃâG³º@|gêGnédH`"UÀ;R¯¾-å~ÙËC;ÂfÞ9cõU}l[Ïå´~_WM4QîÀ$pbuéÙ&E:¡ñÇBé®û[/¡{¿»xy4 ÷ qëWæ°>¤VîÙléáË;ÚT
+Dz& µÃÃQo*$ͺ¶®8¥àV°±
+8¢OúxÃÂøÚ¼Ä 8
²î_Ï-^CàÖ½9.Ü7¾[hlkÈaݹگØ_ì3ïgTÆÏi§p¼áëú°ïê¦7ã3oúÈK1»?ÙLK;ì!jõÿ¿äº
ÊtïSBÀþÝЪ«´|)ëMrê?\
+4˼T¯nmĹYJã¿BZvÒ½[h91ÆÀùýæÄG¹väb§Åxo»ýÎfgxÍþ{Öª¬ñWpÍ_ðAÀ*Ç©qQÅsX.ÕMói3=KÑdÉ më²"Êwr®¦÷Sëý)J|<h{K¿/·OÇ¿þk21R
búsâD/EGP âÏ)-4¸OÔèrؤh$T(À»Õ »ÀpG{¨¿¢\¬É®X]ÔuXI6bIçNµ<<W Wª+ûpeåËd¾Lä®;+\7&ÜUѺj§5 µaü¡aïèô-åRnX!êðS_ö9Cï¢,Bi6If¡æWT´I²ÄêÙ]ûLßmV&VMçiÊJ}}øp ^Ã
j.£ÑQ½¤¬§å+¬¢0uhDtn$N{åÍéøÅï"Þ§J«ÞÃìô¹µkif4Êältz±Hî°pÔ:!dwðé«þPâ[_íëË[!mCvÑäu±+êDÃ!àP
'z<ÓÒnªLͼ9QyºÑ&lo!ïèsþüÒFþû´,c÷ÝþÝÛæ-43¨d«½¹âÕÉcÇ£Ðú§Q_lr²èü+Ë Òíi¾ßGòDâ''mQ¤0S"Æ®YT»iûÀ³ôüTÀOmãwã]!ÏF
+Tí§á©ýÌrÉ´Ö±ÉmMÆØ|Ï'F« ¨È-ðQr)ÝÊc-ÛÅèo%MCôçòFöaòãfá¼½ÄGaú}
+QD.8ÀÌÏ·<;ßGÖFnís(M'*gÂZofW>NåX(Ðdr§ÌT¬/9(7ìx?j:¢R°§µ¨;»ÑÖBâ7¦¼Ìä
+¶é+qßuHsì|É+CR-ø¼Fpë®vZ;[Oaëj 1Íd,HÈÁ<%wnk]Düc¥Ö$ËÉ¥£·ÅmåöÅLÜÎ3E§ë#º YÕÃ÷R+/®·[xÛçÉïÒËðGP
+Ü¢m8$,¼nÝÝ36¿&ÖukXÅf!osÖÞß½r}«aWó'ÝÙ5R^v?Ýy|¸÷ì¥ãu¥Þø6S fíuKøB»÷)DÔ:ÖÊbàíèýg+{¹¿Ü
+
+üÚôU!Vúѧë\#Ö
+_LÀ(£ÍÙÄÃQ/Qúe§qt׬Âöº$a]XÎ6¨@5ï}èÍ÷£(Ë£6© ©Cç¬ùCÙ>(Y"R\Evö¼6½~dpc*\½º§i
+ÿÃÒ¨1½½æhDä°ÖWâJcYz´7¼}A¾Ó ̼V%:HÍ
+K8BUåµ9$xÁÐÓ
\ÛkÄ> f4¯ñÔ?+Ñ$~4íÌ6ÃïèsÚf\ÊJÚ¸Ìì¬3³ië:}g[[tÄZKY¦µ3Á·¤HÿN}OEüGñmØú³6æÊCå_Ð[;®¢}æ=°
+p>Þ?ÈÉ䫬`âùÑF¶á¦W}ÂïºåZ=r=¶
+(FÐr`ÓMhyy3¯Ü4×+Æg
+øë~£ ß¹gèJBrPZ
+Er½Úë
Éî$¬¡æ¬-߸D©fãuO¹¨ÆíSíEëiE0È"(LÿHÅhW}[íÉîØM%® «=@õFóÆL¥\´8SðÌßbbFWlWpC¦Þðàk½¥Ñµñ8¬Qeæ´ÎNÄ®aønµþA5Í2K=Q6ü0)|M»ux<gìrÃÀAcgúzE_kwV'ÄVRÞ9R>Sε¶¢5$±T|B#d1E³°£?-^Øú
!¬ÅÁ)ô÷}üÕ üW[â
+!&zûf¹æ}êÃÇÿ?!¾|É¢
²Zé°gVÉ¡¼¨òC6/á;r¯2=ùs*]âݬ;áDWé½q
+TÏE*JÚ¬N~`ÇlyÞ"(Sßm0zîaßx¸õ{¡ãGÓ
+½'{ABó²Ð!Y4?ã8×Wïqô¹ÌÞóHyÄ.JÎF^ÀîM$æg~{Ï_Y2ì+[#à ªJ.bíûZqÝÕ¥õ=ÕmKyÓø??ª^s4ÈeyÁ.È2ÿ\ìg¢fôÖ
+^SRl1-ÿº<%T㿯\?§¿´Èc®díôÓ7~
+¤¡N7ÿ%%ªÀzì#ÛC»j{T°?£kËÄkÁ_SîéV
+ÌØp|é±9õZÛP;à#=^5¡àóR6X¶»¢èäu>Ëä¡¡²°SsO'ß¼
+öüß«B*ÁpôFÎJªÞká**©K±Þf ³î²S³î~ÎÈ9
+V?ré4q~6¬hê[Y>57ØeõV×ÒSBèÇ+O8rú+ùµ_Y¥Öî"¸ëåÞn!§E|ku?=Q°Òmû
+[æÊ@rÿ1!-Ùûkrõuè$amÜ),ÂÊ1y2¾¶FÝIQÛå±k>Ð)D㵦²%ÄÝzá]J^4ðÿ¿=Ü"MK2bëákç´y~FtªDá)g¥ÏUhðöY-mæÔç"ų~0ÛS#´bò¥²¼Ã¿Ó±-u¥µZX¡ÑiÂ~è6±ÜÕfbK°ÿ²<
ÔZÚVvÌö¹5h2-pf;#Nl"Û-¢6âPÔ©àÔ:áÏ
+Yr]b}Dk§»K¬`jáÖ¯(×ô®ÌÝç¾
'oÑ10¢«rT
+íÅLñbIL·¦uÆa/uM.sUI[>u(\²c
+[ÎcwÜqËdÝçî!&Ç>O«]9õü§n¸Ùø°sdòAJ
+æIJ'£7ÊàÞ©/ÙÛJt= io%buÕq£ýg;7XWÓg¿zÜ3úä¢éøßÿ;ü}NÞvòÃWfz½\Xhû໬{¤O3hK®&$Gª:s rVöQöbc8%Uå. Ðég9F=¢À
+ñÝ¡'|[\üÿcVpgöÀI]Þuq¡Zá¢nhmȱ FÖLÿ§âBý¥
+ùFnÿlm@ÜÜ8ȧ8\°=¼ÕKÇvNÕÿÈÚÓJhæ%u¢7(Úãò·&ÈYúí'³rãÒy'àbì!ï+¼473i¡ÔoBнÃÛjçÒ»¤3ÑzÁVW`ÍHÂuäo
+f\'g?e´XÐByéõóý`à54NO¥J
+k¾¢I8F³¦Ð¥ÎÈ4°JoÌÑ6Oê0dË
ûµúÏIð!
+ÁêØuê-:ü ÆÕ{¯ßÂ
+ñ¦ÿñRñ¸!£
å
+%õ pô¹+j¥=¤¯Z«T.=q&\OHö &ª¡¹¢Kddö§»V¹¸Þ£(v£\¸RïL²ÚÃ}[q%A¯û
+G
+bc¢gøYâºW¼K;Øüì
+E*CaUФ[?ÁsG}ã}#kÓ¾\2yýÖ=èÖ¨¿©>8w6ÒôYmô
+ at s56ú"R*Sõ 8eÃ>6¢»kÔ?ÊPY_CÁ#ïß»\a±GøL[JÆ'ó®c7gÎZ1(Rsúï(ÏØUëDÒUãÓÃõÊl´¹Þ;fªK&:lô)bÅÑÐÜ$}~vÎ]oòÞx±¤ß1ÔYÞß ÇØä´õ´ÿ
+v½f¤µe#½,÷Ù
[P
+_Æù2å,ÊȨ¢/µf¯Ft¶½vû7²Ë¶éó6àËíá{0Ü3Ø*óWgçnÛJÂ[îí¥Bý^ÆÚ(b|ñ¯¥XÛ^Ë|ú_2y¥¢oSÊ}áÇÓ°A|dîx±G±$O7à·üÌH¨ÙçÊ+Jp
+àÔW#ÃÁÿîáTU
ªáÍ3Ë=)¦KúÐØqøǺÐá(/qQ-º
+uëƺMÊtÉÌþ¯«íðÒob}oåÆp0¾û®âJi~RGøòûÁ7V&UÞ+³]è«<J+uäd`aBÈ&^wÒ½~z .mø *K²Ëe¡µ´kìpO
+[q¦3X\[2 l<5HÓ¥|uã8Æu ½F)ÈæIß¾áMöù´QªúŬÀUú:¦n£#@
+çf²c $®SG@,`çÔëfõVHv at W'P=l dnÃyS8^o¾ÃÁkÞòÄvRý§o³6O©ØÐÝì\ô×2w[EÊaµ2ÞfR3ÔÐ0]à¥Z㽡k)·ú®
+ ־
+YPüßJ·JS0
+v*Ûä³ÑP[@@ÓòuølxNµÆ
+
+®£¤@Ã7ô¼Kõ£kÄîÂÒþRp¢æ2àJÃ#½¢ÎfKɬaf¹ZÜsH'#'iÓ¶Èß Xúyî¢
+¡n~Ã/»ã5B"äT¸ÀâëÉ|Áe¡ÂºGLaLDBm´Q#¶éRv³Âû1L0à%º.dZÕxüÃ÷;;Ò
KÕä©kZZ¬eý
+¾UuPYVbèÈà>u¯pl¼Ç~éÉ:7Smูù8¢ø`zgm
+½}ixQßF²aôàµFU{¨óQè¢ÜZc]PÇNÌýX´m(1)Hxb£{qá
+úé¬DdxlÿAç
+/R¼Úi]µ&í!n äú^4HºI¾°õå¸übòr££E®ï\ØeÕ
+|Ú@¿8Ó_ÉBÎÅ$Ö'vXäMOLúßNêåTDÀ D[¶JDõõX¥DÎ
+ù;û&ÞÙø$#LÀÝ;fÛás2æè2Æ,pe ê
+Ø`,£ )ÿ iDÛhÖ.¨¿"Py`A´ãáuJNå¸rK<J@Êúêaö^â]¯Õª7ÛçàÓßuuô+
+-®íg q.Â[Dîû2Rã¸Ù;EȽÌ}Âw»±xüþsIÿcæyáPñÁ
+ùäêgGóuúÞG=&ýãâJ_ËÆ
+5Ïø{v rüÇ÷1b}ÝõO÷¢ÙEegAç¤ËGëÏбÖï
+©'W@ÞF¥Óï/èõ+¦¨âltîZËÜ÷ó8¦]}¦æìßV·bHü[ hS'ÇÖòÒ°®õZLÀLd»M\¢8ĵ,gq)`(öEhõÿs¸70,gÃXN¢~ëzLªHÒ+QÂVÃ%×¼¶îËcÂÚ
YB
+HÖ±Äü¡¼GºÉÒ· s¨ÐÎö¥Ý`è'JjR³B»¾À5¬È^mpo¡ÿÔi\¹E^ÿsÙ
+$ä°-¾ßhǾ§mvf½;@þRÚbÖÅÀ¹µ/M< /÷®ebÈ|ì°)0TsÉéÙÍ3ø7koeúCªÁÌ
+qâH»À:P¬ÎKÛà¹ôêuãW'+ïS8+/b7àóö¿ûX`JMë'_ÌËt«ï,BêçÌPYAKfddÒ«¯)£Q2TbõÀ2Í÷#
+áºÓò0A
+"eÆ2G0ÄhtÕYez±h<;+åÜßD$°t«ú$I¡S²k
rpl9MTùi>¯ø7(.cÎE)¼
+wF]$5^¦¹\CX×õ°J±rvm,?ï¹g¼°ÊýGkÆ@/©üÇ@òqÕ7SÔe¢éD¦oàXb£A©ÔÄÖ°3ÓD'=aÉ)MÔêh°nT/haºÜÇsZÝõ¯?îÙßÛVvkÓ}£óz*ñ~ÕÝGÉ®ì¼@ö.SÒKìB%Eó´DÇ
+¯-#\Ý¢ÃàÙÌnQ}L;êìçuçvg.ÅÉM%ÏH¤
+k¿9(§â-|TÊt§tÝ*³
+U =2 c<[Å»÷P=ªZ·co'ðU¹Ë¹^y¥õ·lÝËR1C¡%¿³å=P,¬.&
+rªEÌÐkÞ)æ2ªó²sÀWÀu \Ó1<»ª2N
+5Qþ;=mBþ,®Ë"ð
+fµm[ÿVÿÁ;yw¬ÇPEÏoiW1ü\JË¥@ÇdA,Öäõí*/wkfsØ1=ù}'î1á^8¹¢=m!jdÀ¯À&Å[ÓÌ4λs¦âá#ÜÑ í=Ü>=S)ãEc
ByÜ1Eíõ=,zf¨8òéÃn_È`ǹ> 9/Ì19(>&¾ßd×.8ÉZ|5ºÎ6ðÈâpG°.§¢8{Á2";õËö\pmÄ$´áÂÙÌöÆO`3xíF¹ý>õA{SÄbyõóÛm¦8á9qÅ"SÜ¿ö| üPê¤rᾩ³÷âèîÝ
+"ùãã"ãÏA¼@o¨ØæÆíÓv%¬cìØìØرí¤cÛ¶m۶ݱmÛ¶ÝÑüë¼Â¹5õ
+}ºã½0¾;¯A_ÀyÕ¼?ɺHÛoØð0(P¨eKå#ÁKJgëæf
íÂqF¨PNÿ(®ÒÒM
+ÞºaUÐÙe:Õ¹Z-ÿfàF¡(¶>/r ³¸ FáK$´ÃÆ9Åê×+naiÎ*Ò×Â
+A(|{¢ªM¾üH-¾1¸ÄpeíiKáñ¿¢)üodo=BGFÞulg
¸~¿¾¼87$sþ3qLÎU1éGÏo(QªsîküØÓ½zzl2j)ÎÉÓ!2ç`z³û¡«Î mA¼k,fbÚºËzÝÈ/®tbvEÆ
+î>øSÁÃÏßfÃ[ûêo®¬¢Å<ÉQU¨/
¶c+M.õKk*n¢48zªÄôw8lØè=üi©ëouQü<_ÝÁ ãMtÑ;))pûþ½ÏßO½¦{íFǸòÒãv08ÿo^Ô|l»@°õü^~èqÏís¿oÜõA̾$h3:hôAó+pï|Ä%û¡&V·9üd
+ÁáÑl¶LÃk7= QV§DJÉ+ã
+ëÐ"w ?M
ôzÚhÓjXÙpcÚ,å=Õ¶C ¿±nzÈ¡P¶à0]4#pÎUßpá¥ÇqùRga¾ëÚ6.ö<9ù2§Nnþ-ðåS{)^o"10kªzS²MæÊþP©"ýf°úÓì0Íü¾Þ9˯PÝЫ] õh3+ÞmA[§\I=«ñúÙi>8æ¦
+_0ìââ«wTÙÄ~ѸÀâ»#3É×vô
+W«ZIàò¢{ÀFå®h½C7,ì ß)ãd¿ÎG1E¿CÊ°Zs!i
+¨íQÆèÊíyã2¬}¬u¯R!Ãbý¸¯fD*íìk£#wäX×üòѹXòèrÐUöiÐa²Ì8Q¢-8'>%Ç£ô}»¶Ã¢q ÓÆò6êBÐÄ®?þ6 ªä
+'N̬Â3[y<<õ÷Ý)äÈ//¡a¼î}ÜÁgWÚĨ®£|þUvÆî6ýÛºï¿ÚFæº,r~àuÆÒùç8Î.úo}{D>UÒi4±¡2U¬
5dTÏBÒX_Æ
×·Äik ÖEÁËâµG¿XÓ -Zë·o°ðÇ~µáüü¿
+Bõ_K:ß) íöé°¹·-qæ*uâÜð¬(dNÙG½áFb2nh<Ç4ÞÌaNÎ¥iàÌ'Ây|Þ
/ݾAKoÎm²&O³ªlglêñEòUDÇB2#ڮɻ<áÈ`yk²q¼5ÂN*v>\Ö)£VÇë¡ñmyç¿®2_y<²Ï'Ò1×Çxþ\h35çâw¾ðéAäBåÃ/è´Rì)Þæ¯~¢Þwî)Èoè8aqµÉ<lûQóØ ÿJkn_Ãp
a?cxÌNÌù¸Bñ¹
+F.Ù¸ÈLÞU¨´¤yÍçy£ÿ7ÎòµîÜ©YÔÀ,¾"ã½ÜV`ûÆ«k"+|"0.2äÓ:möÜÏ#¸îRð¾|pñAþnLð1ßz§ÁÒ]Û=5ÛÚÅ}¢g Ðîðmw¤ är¸ýâg¿RVy
éÙ¿|ù$`¶Ð+èùû÷mÿ[¶\UüÄáç{zËXÀÒüÑuA=È£t09¬ÌP½;ö ã¢vº>@sÜv[·7x
+f.à8¨XÙ\aظ3llî;§¸èÜÙßeXɸl.~õ¨ø|Êy§¶±h?cºËí¢%"ïM] "]ëdÞÆè¿
Ú%¶R1PÜÆô÷¦
+{ÌP5áá¬Ù¶-RO=JÓ!à§Êµ±a©]z¯/ù§çiHÀ¹(%êe½M<9ðÕ½ª#Ô2«¢Î
+â1±µeê±@ÇOn ]/{£âWNÃny¬ABËêpêè²4ud õk êè>
+ækóñí¯£¯òf7mT¢º])Òp ܵuÃuòÙúåÁñ·F¶3q7i¥Héê7B^0Û! |tîsÈQÇåÎ_mcÛÅ'ÁO³÷ÿ ÿÝ?{àNõ¾rµWWöpÈ@ô8ÉÄ Íüä ÜKs8hÚÙøÚ©A$ Ì5
+/_Þwc`0AøÁöêä9´-ã$'7âJ%ÅMú-nų7çö¥²¨ÚUâÁ!_èfpÃkÖIápìíÍjXã®ß¦fy-ÝînÉRþ+ðþºè@vÞ ÉïjGÒF¶øXJ´xmd%ÅdwPþ~õZØÿÄL8Ó+û×ÙClø±Ñ³Í²ÖìjÁ«®Xr«¨ÝÒ2tS»ãJåòýlYÜ䲪'>ûÈdëñÇûô·òèÚVà|þ$
+wâ1Oæ寳ØT
+1ØO#01ä"
+âõíéÕÆqõÝ/Y0¡Î-4tÂ.xýaÄ¥ÅlkU)¨à²nÂ
KsêýÜH¼î1¶2EI_,\,Ø0HûååW>´÷͹ºP¦Å\}°Äú«·¼á¶µ|îÕíß
+lOD¸ð>¸683©È +C:3&exWá3ÌZ|塯jù¨©uôñ³±¹\ÐL
+ÒJ°BþjäaÆ/êÒ%Ñà§?#âsÔ½ð{1¨r?:àï"Ârb°'9û«£ùéQÐqÍyNR1X+¢dsÅkkcvvt!ù
vTNÁ1%:VµB"jÞî*Ë®äùUèªÿ`Ü "?kOoÊBëB§óráÝ(.J¡ÚCÉƦüóAÛ?[í7e]BË°_ì>;¥´°"ûÅ¥öTêºzÛ´F´áO
+×AöçNÂb|ô©÷110y0ÆýîÅé;ÇU³´æ"£'?ZéoÈÝÐ,ìq°:߿ܵ©ªØ¶g^«õÊزZîÝ°¥ú'
+¿y%²yö2MÙîàdÅ%_?¯®¾H2'Ô_d?7*-Òæ&ÌKÁ¨ÉÂÇÑ_I)JoA[ÿ`ÍZìjs|Ì^<÷T-Îà³æµÀò3§yËÍ,tw|ÃÁätè{.&p,eÔ4×gK&Óø 81þU³>ÑltwñÖ^¼¾Ô5
LÅÁ¡6ï<¿
+ÈS°»±kH¢À3|+ËËÃ_aót*´ÇÕßÝÚd¥CÆ)|bÃ¥Ø ³ý»Í&È&ÖF®¬¥LIé-0,Ø_áçj×ô<óÕºuÛÊi\yÞSÒ7âãô¯§Òµ·ÒÎÖ2jÜúV¥
+º[¿êEÎóFµ7ëªäZü©÷tÕ#IÔ¼4íKýN!ePKÀ²ÐdsGƵÂNÃ0@ÎÃD):-UZCe/g4²uï£g¸J_Pì/ ¼¯*5:ÇÇ62Ñl,÷T¶ÔZ{Ó)Ä6ÏbyLÈfL*6©Ó¥='Í.ì£Owõ°x³·o/%ÕÔiL»Àà±ôd+Qd.H0=ü-L ¨âãcÜÊÈDd¾Lð?
+TqÇ0åÁ|p²8o4;9
+Ç3¤Ñ;@ýM+£¢7¿- _ÝÉlß\5nzL¶ìÓJøF"Ænk}ºôTÒ?÷Êp,VêU1zc¶þÄÏÑ£R53\ÅWKÙHq[_ºY=p<>NîB[+;××Xw°¥8è$￯vrzýÛ3Òæ<
¤ &J¡Mw&¼Þ»%ÿ5½ÀϽ×àë&³(x×6UÛt9lêü7çÊÞ^¨ä»KU:Æa¸BPPDÊòý¥ªm0k¨|ýtS`úªÁþ¥l.BAÇÖ
+ÉÛÅ/l½ÚVéA AÝIY¼ygø^hÎbß;Dx÷¤çiR®}Áß æk ÖÄ]zúZc99æm^ìϲe7}]Cbþ¨¢rÏõ^ê~ëk¦1K䶷bmêrWï]QûÜ©üö67 5b8^(ÒOOßnKYy'.MÛMûSÂ"Ôgí8aY»¦¬ =DÇïåAÄ~¾ */ú£O2Mw6ÝÈ;0AÇþï?öë1¹6yqëC¯Næ\@1ñý`RÞz¾ßC;RMÿ\æ¸mGZÜ%gÜÓË
+ÒÅSÛñrúZÆ\ΫNhëÃîØhExÞ¿úßìÉTu´{HÜy=ô0 U¾wQ°´ü¡*nt]ÒÞ4Ö%ÍôåôµÒ¨a65÷ª=BùéÀ÷êÑ.NDBvX½¤äj¢;»4I¥?«ìÔÓIWàâ$^]OÅÃ6D#, 9
+?cX?PIXðG¶MË:¥S"}¤AIµW=©ÌÚWyUڵ˽Ðñ$O¡Õo_ªCWÊðJÊe®Å°£DKºOçcFor´fÂtÖßý£Î|aîÐÏ$g'
F#S1Ì[vEF:åÄØÕ>YbmI'(Íȯ³ÁÂ=ë[]{Ð5æh\Úí¤ùæ´sÆí;Ëèiem.
tnÅy´G¯¯`jEOÃôMïVì£0p^PAñ±W¶¶íåðÊÒü&¯µb
+=GëÔEûw9UøÓm8ö|çµýÍÛqnÂJÌü@
mQ¥Ys
Æü~ZtJ®ëñÀnXv<ð}ç¼Ük*z:#UA6ÏbóÒj=
+Ãàq?§¡"ÄÆÞk
+s9lªO£3ÙiÀÉ4ØBùt?TD¨v¶Þ4á?Ûâ1·^Xmó¡©½¡<«$ÔíLrn\uù¼f:
+gH¥Ó<3]ß5ðR6«·Dj)}õeãoõxËrBeRý!#ÊÐÿX[4(2ˤ.Y|â
+viíA°~_âשo!Q>¢·nì®o
+âh©%HóVo¸QÿY©+&~\±eR¸î!HºjêtÖ.gw¨kتþ᧪!-/pIC.IzRN0t_]ÎôØ8å
+p
+#Pe!¬¢údoÒÎAVWyn~N®#÷u§®äî0úJ&nX Gèã5 ¶J¦`6M{î;¼¾6¬ íÇKKÎ+¤©M5¼vÃñ^ÕºÙØWëܧà1)Wùqåú'ÀdälÆ'ñ3½brwN^U:ë4UAS|õz¬GFè¿ð¯Uuz¯Ý¾* ßÔîQûØRúûb.psE!6J]ìÅ´ÿd`½i~BÅk3Å°F1QÀy*lFó³iB11t¬F»ÝuöÄÁ«ÄÍ6¡£ò7áËáçÝ7?µú&y¬*þ~Ö_w9
+X×±þh54BjÊ`ñByhEø¤ØK)DîB/GѪÅèÇn§gôñÅP.®.;f@¾þ½% céâ´Ý
+4Í»kâIê,°ÄÂkiyòOö9cnAÆHÀ£"ÚúÝ>_2{ÆØöµý9Bp½ddе×8ÄüÀkõÈêªÆÝìÿ ¨ÀήÜ
æð÷ïÌÊSÐÜc9A¬ÂÁ¦We <ûS {
ÛïáÍSRß
+nÌë9w§7gqüþ
+pïj¬ÐT`2/öõ]vþ5DXl¦«DxzàS`lð<4çDáUÀܸ
Îß9¢¯R[+CgÙgT´
+ßÈõ¿·]ívçÏE+'ª4Üëï
+d,ñÍýÇ;T®]
¡$Ï¿¸5\¥äíWD¨\G_É#~ÂRT%ÁÆA8b¨ÿíSÓ2\iVH)q~åïw"0£VýP:Sÿ&ð7ÁñC¹ÔOH*=´=P¡¾6s]#)öõA°°<¦¶¨ã]gªÔJ¶§¢Í£»¼é¦ÔÒ¶3¢êË?+¼ä¸§Ïî=ÙNbLPÄÞ}jpÆ[%ÜW<¹
+r}s¤ñFÕ'!£aÔÿpw\T
+@:[yUo-q}¨þÀ®è»<1¢H.æ]>Ó+wÿÖO;nò¥/BÆ=¬ÂVݽü
+Åìí=JürI¸Dùçñ0ÁW/ÑàI¿B].µ&ÏlT;îþÄÐú,g
+ô¦#g·ÿæÆ(¬Y<±"ÄÿëOä!B íDû8
-ÂkEçF²¦¦2<½ße
+L «qîèçéÆ£Æ ¿§
+<Õ$G?|eOg74®.§±,3Ì{l¹®É3Þ©E2«
+Ò[AkÅG7ZùåúÑÓÇ"åW}¬Ö
: gÊi"yÝÜ©Ì#ò¹*A~A,k V£`ry§#1òɸ[Ø=¸(Pj3¥°ÒJ©±ñï%ËãÁèGÉëñ¿T6§Zý
+-ídV¿µ8ùï
+YV> ~rñ)#R×*®ÚFecËí5jRUf,^`êÕ>¨bO)×¥¡¡têöºâØ3ÏOÄø©.$>ÖF]Ë]e´Y6©j#{óiTF¸Ëåu:¶òj°°ÿèôøÈZ¬v&:±3¥RMÕ<Ô»çx1ýc¬Fn¶ ìȹãÔS·Ê°N}TyÐÖ¶#Ý®ñá.®fýKÐè9úhO´,çÍÛ5K¶-aéÄý6
û¦Ë|·8Q¾PRjÙdã²®çÓp¤¹«-÷ÍNê°Ë´\hõ£Gñ{mèàKá©NêE'N·ãU«èBÜ¥9©Yöc¥ÙtÉâ/OJx8æoe) ²M¡oÎ
+0Õ«ÅôäéL¾ê¨iï0I0f½§l3üÍÐPçÓ?ͬ²µ´ÂI<ö'vkªDKõ
Y
+kß3iÓ:WeÑ«Ã_ÜÖ;úÞ8¿fts¥]*dDÐÆ·2ñ.Ïô;£5ÑLFhr¸bp#²ÀÔí*7gÀÏR(êÌ8b¡B1½»*àͧRq^ Úô)ª«ù~ûX½³85
+T~SL¾VòãqO3qW=1ÐI¯%
+ð¤Üëów
i¹Õ¨
+¬Ñ*;ƦãAÄ(VÃ|s®MÃ^P#w+Yôc`áä©ZÑ£!:ɬ¾x$ïÎk×%Ã}Tð|ÅPQ ´ÓÏrçþµÝ×»ÉÛØÍ&Z/»ÀÔ÷f£(Lg"´¦Lá¨ðo_^ª_DË)k{ 2õcìe>K1!LÒ_Ì~w8Ä`².Ù÷9²ëÕõòé±RûyÆMpo¡xãtæsÀ«ÜMhÈÙ(üÜý*IÏï,Y#j±ü¨«@ÇO¿=ó[ß;e'
+î¾d8A`T
+2Ja+Vê£-¢þC>>_-û
+¦©íòÜrúäVËdó3ÍƼ楤NÊ.Ó'aZÞHz>Q
+,@à%<&ME]NY
+AõxZÛ^'â5=l&.Ý|êÕ2ñHs5o¨ô}¿è¸P¤Ê!-|gÅÉ ³0ZjßTÏ;!å5Ø, ÕR?CRZ¼'>ÚO
+´ùå×ñ&ò˱£;é¦ë
+äå'ÍÍyá9eÂ6(¤ûÖ®
+r¹«éÞJzåëy¯¶Z^wJÔ4e"ÕG/òæ¥m?µJ§? Ì'¹ø÷Âê¡ëR°§ä"¿Ï?Sxôí*T7 V¡=ÎRûäf¸U\t/Dî@¼/ÅGÞV´éW¿¹EglTµ¤©o1'°¸Ì¸¬~p:$ÿ¯Z[È>©ë¼RÚ"³"®yÌP*>Q:;6cSöÆJ.\¶ñ-ÓS?l_|Ðrõ½Ï^M}ð°ä%³ý±vñB!«ZÄhg¦øøFÓ
ø<×;÷©hþØ
+$^tÿU
+|
+º·Újj¥ÉØë_8FÛÜf!wQ<Jùô©ºr¶³:~gc|õqJñ'
+l[Üs´@AKÉÂäJË'y¨ù
NàR¼9aiGdlP/³OiL¶RÕ5ÏS @´Å¬
+S¨;AR³E÷H¶(á5bLNW¯1UÁ²ô
+ì]?!½9 ü#ùmî¾ZW#A
æ|±Ýa¸§Ñ¸Ãòú
7ϯl«êf^´Ý.
úøû2=DR<IGî¶ú×ÀxÛ;t|ôN¯ý¥x(hôz6¨F¦<Âñi¢hp©;ÃÇüâò/{+LIÌ÷½U·Àù·êê4ísµ6àÈ«R{ââÜêÒNk/Oý»0ú¹5
Öù0}N$ÐZ}¡~ØaaoÓ Ü<ÐHÆ99pkns~[÷w±¡V0!Ú@·>S$ ê:-áÏfýoT|Õ^Ñ=ÐOë|¡@¢8 y(øwváS4]ËÚ_å;Ó l`¡
ÿnÒlS,
+&®T»*ÂÝ#ZÑÖ°$õª´ÅMAyZÍO+ZvªhóE÷3æqñÒ>âÊî9è%Mo¯,,ÈôƼÏ1Þl·1â ص$Réç
+ãJÿ¾ï.§}k©ÀTä
+Rëòþºu'ÍíJõQj!ËNäÐg·¢§Ì
+5
°3J8`\`0»úòÑÄ$Uýî÷Ûpz¬¡E%Näw`4XøE¡4Íp
+/X6ûHè8Áx("CXb`
+5¶eýìF°Í<D6ú¢{qïªÅãð;ÊuÒðâ/ôóuT-tSctýÁô§LÌ.éF»Ñ2¬8O§1·\³ÐÃâG¼òý¢MÖôE7øÙ²F\ìèõ·ë÷ÙØ4pèþud E?Äû~(ñvÛ¨`i"ºôpEQ¬Ñ$ĽSãQ1÷WJ×Ô7T7(Ëh
+¶(*wÂdÓp´ç×j2Û/â p¾ËÖüóÖ*ï¤aªkô [Æö,åPa£#êØU{6ã
+\d±ck±ÔJ&ùÞÉ8
+j®
Líe»¾4sªVÜfæ3®l&+ù hú¨e®%ï?)uú;{\$+£³O¸Y¿Ì+â-cp`¯º£Öi{àÒX;¨ø¹¾¼ ±z
+äÎ
+ É<psLÈüxWõÑF°ö!)Réóºæ¹êd$~ê©
+\0k1ƾ®´F%5¢"¡bV)LV{ÊEès¤zìºO|8z-S.ÏzK3DÔÛôWE<èøw(Îø
+endstream
+endobj
+
+109 0 obj
+78230
+endobj
+
+110 0 obj
+<</Type/FontDescriptor/FontName/NimbusSanL-Regu
+/Flags 4
+/FontBBox[-174 -285 1021 953]/ItalicAngle 0
+/Ascent 953
+/Descent -285
+/CapHeight 953
+/StemV 80
+/FontFile 108 0 R>>
+endobj
+
+111 0 obj
+<</Length 875/Filter/FlateDecode>>
+stream
+x]ÖÍnÛ8à½BËvQXïOHY²é iÀ±Ô@#³ÈÛWGÎtø®>R4éuw¿¿Ï·õ?ÓåøoÕÓy<Mùõò6sõÏãªi«Óùx[ÊÿãËáºZÏ÷>¼¿ÞòËýøtÙnWë/ó¹×Ûô^}§Ëcþ¸ZNy:ÏÕoÝÃ|üðv½þÈ/y¼Uõj·«Nùi®ó×áú÷á%¯Ë]îOóéóíýÓ|Ëï¾¾_sÕããå_¯cãs^mëzWma·ÊãésM]óǧã÷ôڶ¸¶®c½sSòü1ç¹EÌYYÙ
+ÙçÜÖÍùíwÈæÒ#rbNÈs¼§mܳ½Gçnýþ@?Ðàôøýþ@?ÐàÎìÈôøýþ@?Ðàôøýþ@?Ðàú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àú~¡_àWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_áWú~¥_á·sõ~ßè7ø~ßè7ø~ßè7ø~ßè·R~ßè7ø~ßè7ø~ßè7ø~ß9þñwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßátF8#ÎHg3ÂÙ¶
+lÎù+Ú²rÉæÿY,h6¥;ÑÈDt8.Pi|ñFv ¢±+íåK÷ÌèdDTôÀg¥uNmÉ-^F
+̸>-AÍÄNèÄ
²,²éuð¬´aÆ`¥ÅALt&8eÁM³<#artËF{ÇN®tÛáÞ®LvqèípvÆv¼øÎKû2¥=²æn±ö=Ûaîzf»õ1þûåOOgñôË$@;<«)bÏwW<}ynS~y.®X§G¡ô¥)Á°ÔÁõë¨3,uðîÖÙÿdØ@±ÃÿÚ«ãÛ4ÍrùPvcìÃç1ÿûKáz¹â®ò÷p×Ø
+endstream
+endobj
+
+112 0 obj
+<</Type/Font/Subtype/Type1/BaseFont/NimbusSanL-Regu
+/ToUnicode 111 0 R
+/FirstChar 0 /LastChar 255
+/Widths[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+278 278 355 556 556 889 667 221 333 333 389 584 278 333 278 278
+556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556
+1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778
+667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556
+222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556
+556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 333 556 556 167 556 556 556 556 191 333 556 333 333 500 500
+0 556 556 556 278 0 537 350 222 333 333 556 1000 1000 0 611
+0 333 333 333 333 333 333 333 333 0 333 333 0 333 333 333
+1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 1000 0 370 0 0 0 0 556 778 1000 365 0 0 0 0
+0 889 0 0 0 278 0 0 222 611 944 611 0 0 0 0
+]
/FontDescriptor 110 0 R>>
endobj
@@ -4952,8 +4983,8 @@
endobj
124 0 obj
-<</F1 67 0 R/F2 57 0 R/F3 87 0 R/F4 82 0 R/F5 72 0 R/F6 122 0 R/F7 112 0 R/F8 123 0 R
-/F9 62 0 R/F10 102 0 R/F11 92 0 R/F12 117 0 R/F13 77 0 R/F14 97 0 R/F15 107 0 R
+<</F1 82 0 R/F2 72 0 R/F3 57 0 R/F4 102 0 R/F5 92 0 R/F6 122 0 R/F7 107 0 R/F8 123 0 R
+/F9 77 0 R/F10 87 0 R/F11 62 0 R/F12 117 0 R/F13 97 0 R/F14 67 0 R/F15 112 0 R
>>
endobj
@@ -5052,7 +5083,7 @@
endobj
40 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[259.7 275.5 392.4 288.2]/Dest[1 0 R/XYZ 126.2 517.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[260.4 275.5 393.6 288.2]/Dest[1 0 R/XYZ 126.2 517.1 0]>>
endobj
41 0 obj
@@ -5080,7 +5111,7 @@
endobj
47 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[430.4 455.9 539.6 468.6]/Dest[1 0 R/XYZ 126.2 517.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[432.3 455.9 541.9 468.6]/Dest[1 0 R/XYZ 126.2 517.1 0]>>
endobj
48 0 obj
@@ -5088,7 +5119,7 @@
endobj
49 0 obj
-<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[453.4 450.1 539.6 462.8]/Dest[1 0 R/XYZ 126.2 517.1 0]>>
+<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[455.5 450.1 541.8 462.8]/Dest[1 0 R/XYZ 126.2 517.1 0]>>
endobj
50 0 obj
@@ -5114,149 +5145,149 @@
/Author<FEFF004D00610072006B0020004C006900740074006C0065>
/Creator<FEFF005700720069007400650072>
/Producer<FEFF004F00700065006E004F00660066006900630065002E006F0072006700200033002E0030>
-/CreationDate(D:20090612114838+01'00')>>
+/CreationDate(D:20090702111305+01'00')>>
endobj
xref
0 131
0000000000 65535 f
-0000557648 00000 n
+0000557535 00000 n
0000000019 00000 n
-0000000476 00000 n
-0000000496 00000 n
-0000557793 00000 n
-0000016099 00000 n
-0000018883 00000 n
-0000557956 00000 n
-0000018904 00000 n
-0000020070 00000 n
-0000558101 00000 n
-0000020092 00000 n
-0000022534 00000 n
-0000558287 00000 n
-0000022556 00000 n
-0000024995 00000 n
-0000558501 00000 n
-0000025017 00000 n
-0000028071 00000 n
-0000558648 00000 n
-0000028093 00000 n
-0000030079 00000 n
-0000558820 00000 n
-0000030101 00000 n
-0000031417 00000 n
-0000031439 00000 n
-0000052023 00000 n
-0000558967 00000 n
-0000052046 00000 n
-0000053591 00000 n
-0000559114 00000 n
-0000053613 00000 n
-0000057394 00000 n
-0000559261 00000 n
-0000057416 00000 n
-0000058500 00000 n
-0000559979 00000 n
-0000560098 00000 n
-0000560217 00000 n
-0000560338 00000 n
-0000560458 00000 n
-0000560578 00000 n
-0000560698 00000 n
-0000560818 00000 n
-0000560938 00000 n
-0000561058 00000 n
-0000561178 00000 n
-0000561298 00000 n
-0000561418 00000 n
-0000561538 00000 n
-0000561656 00000 n
-0000559809 00000 n
-0000058522 00000 n
-0000074445 00000 n
-0000074468 00000 n
-0000074671 00000 n
-0000075207 00000 n
-0000075593 00000 n
-0000080282 00000 n
-0000080304 00000 n
-0000080511 00000 n
-0000080830 00000 n
-0000081022 00000 n
-0000093124 00000 n
-0000093147 00000 n
-0000093349 00000 n
-0000093850 00000 n
-0000094201 00000 n
-0000115358 00000 n
-0000115381 00000 n
-0000115585 00000 n
-0000116196 00000 n
-0000116663 00000 n
-0000123573 00000 n
-0000123595 00000 n
-0000123801 00000 n
-0000124186 00000 n
-0000124436 00000 n
-0000133527 00000 n
-0000133549 00000 n
-0000133752 00000 n
-0000134152 00000 n
-0000134416 00000 n
-0000143825 00000 n
-0000143847 00000 n
-0000144041 00000 n
-0000144461 00000 n
-0000144731 00000 n
-0000153407 00000 n
-0000153429 00000 n
-0000153628 00000 n
-0000154009 00000 n
-0000154248 00000 n
-0000162293 00000 n
-0000162315 00000 n
-0000162524 00000 n
-0000162883 00000 n
-0000163109 00000 n
-0000177382 00000 n
-0000177405 00000 n
-0000177607 00000 n
-0000178194 00000 n
-0000178635 00000 n
-0000256981 00000 n
-0000257005 00000 n
-0000257195 00000 n
-0000258141 00000 n
-0000259109 00000 n
-0000359685 00000 n
-0000359710 00000 n
-0000359903 00000 n
-0000360849 00000 n
-0000361817 00000 n
-0000452421 00000 n
-0000452445 00000 n
-0000452645 00000 n
-0000453591 00000 n
-0000454561 00000 n
-0000555148 00000 n
-0000555173 00000 n
-0000555366 00000 n
-0000556312 00000 n
-0000557284 00000 n
-0000557348 00000 n
-0000557535 00000 n
-0000559408 00000 n
-0000559467 00000 n
-0000559678 00000 n
-0000561774 00000 n
-0000561936 00000 n
+0000000475 00000 n
+0000000495 00000 n
+0000557680 00000 n
+0000016098 00000 n
+0000018882 00000 n
+0000557843 00000 n
+0000018903 00000 n
+0000020069 00000 n
+0000557988 00000 n
+0000020091 00000 n
+0000022518 00000 n
+0000558174 00000 n
+0000022540 00000 n
+0000024965 00000 n
+0000558388 00000 n
+0000024987 00000 n
+0000028038 00000 n
+0000558535 00000 n
+0000028060 00000 n
+0000030046 00000 n
+0000558707 00000 n
+0000030068 00000 n
+0000031384 00000 n
+0000031406 00000 n
+0000051990 00000 n
+0000558854 00000 n
+0000052013 00000 n
+0000053558 00000 n
+0000559001 00000 n
+0000053580 00000 n
+0000057361 00000 n
+0000559148 00000 n
+0000057383 00000 n
+0000058445 00000 n
+0000559866 00000 n
+0000559985 00000 n
+0000560104 00000 n
+0000560225 00000 n
+0000560345 00000 n
+0000560465 00000 n
+0000560585 00000 n
+0000560705 00000 n
+0000560825 00000 n
+0000560945 00000 n
+0000561065 00000 n
+0000561185 00000 n
+0000561305 00000 n
+0000561425 00000 n
+0000561543 00000 n
+0000559696 00000 n
+0000058466 00000 n
+0000067821 00000 n
+0000067843 00000 n
+0000068037 00000 n
+0000068455 00000 n
+0000068725 00000 n
+0000077401 00000 n
+0000077423 00000 n
+0000077622 00000 n
+0000078003 00000 n
+0000078242 00000 n
+0000086287 00000 n
+0000086309 00000 n
+0000086518 00000 n
+0000086877 00000 n
+0000087103 00000 n
+0000102863 00000 n
+0000102886 00000 n
+0000103089 00000 n
+0000103624 00000 n
+0000104010 00000 n
+0000108699 00000 n
+0000108721 00000 n
+0000108928 00000 n
+0000109247 00000 n
+0000109439 00000 n
+0000121541 00000 n
+0000121564 00000 n
+0000121766 00000 n
+0000122267 00000 n
+0000122618 00000 n
+0000137046 00000 n
+0000137069 00000 n
+0000137270 00000 n
+0000137860 00000 n
+0000138302 00000 n
+0000159459 00000 n
+0000159482 00000 n
+0000159686 00000 n
+0000160297 00000 n
+0000160764 00000 n
+0000167674 00000 n
+0000167696 00000 n
+0000167902 00000 n
+0000168287 00000 n
+0000168537 00000 n
+0000177628 00000 n
+0000177650 00000 n
+0000177854 00000 n
+0000178255 00000 n
+0000178522 00000 n
+0000279098 00000 n
+0000279123 00000 n
+0000279316 00000 n
+0000280262 00000 n
+0000281230 00000 n
+0000359576 00000 n
+0000359600 00000 n
+0000359790 00000 n
+0000360736 00000 n
+0000361704 00000 n
+0000452308 00000 n
+0000452332 00000 n
+0000452532 00000 n
+0000453478 00000 n
+0000454448 00000 n
+0000555035 00000 n
+0000555060 00000 n
+0000555253 00000 n
+0000556199 00000 n
+0000557171 00000 n
+0000557235 00000 n
+0000557422 00000 n
+0000559295 00000 n
+0000559354 00000 n
+0000559565 00000 n
+0000561661 00000 n
+0000561823 00000 n
trailer
<</Size 131/Root 129 0 R
/Info 130 0 R
-/ID [ <16E579A46136D73BFA55674E36F70EEC>
-<16E579A46136D73BFA55674E36F70EEC> ]
-/DocChecksum /DC93FA4F7509071DC75D07AE5F3AF5DE
+/ID [ <0CF546764F6C6A82FAC84A9119FE78B9>
+<0CF546764F6C6A82FAC84A9119FE78B9> ]
+/DocChecksum /6F36CB5E3CC12C7F6B80DD60DBE29452
>>
startxref
-562247
+562134
%%EOF
Modified: labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/AdministrationGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/AdministrationGuide.pdf
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/ProgrammersGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTA/docs/user_guide/ProgrammersGuide.pdf
===================================================================
(Binary files differ)
Added: labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTA/jbossts-properties-arjunajta.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ as indicated by the @author tags.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2009,
+ @author JBoss, a division of Red Hat.
+-->
+<properties>
+ <!--
+ This is the JBossTS configuration file for running ArjunaCore.
+ It should be called jbossts-properties.xml.
+ You need a different version for JTA or JTS usage.
+
+ ***************************
+
+ Property values may be literals or be tokens of the form ${p1[,p2][:v]}
+ in which case the token values are substituted for the values of the corresponding system
+ properties as follows:
+
+ - Any occurance of ${p} with the System.getProperty(p) value.
+ If there is no such property p defined, then the ${p} reference will remain unchanged.
+
+ - If the property reference is of the form ${p:v} and there is no such property p,
+ then the default value v will be returned.
+
+ - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
+ the primary and the secondary properties will be tried in turn, before
+ returning either the unchanged input, or the default value.
+
+ The property ${/} is replaced with System.getProperty("file.separator")
+ value and the property ${:} is replaced with System.getProperty("path.separator").
+
+ Note this substitution applies to property values only at the point they are read from
+ the config file. Tokens in system properties won't be substituted.
+ -->
+
+
+
+ <!-- (default is YES) -->
+ <entry key="com.arjuna.ats.arjuna.coordinator.commitOnePhase">YES</entry>
+
+ <!-- (default is defaultStore) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.localOSRoot">defaultStore</entry>
+
+ <!-- default is under user.home - must be writeable!) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.objectStoreDir">PutObjectStoreDirHere</entry>
+
+ <!-- (default is ON) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.transactionSync">ON</entry>
+
+ <!-- (Must be unique across all Arjuna instances.) -->
+ <entry key="com.arjuna.ats.arjuna.xa.nodeIdentifier">1</entry>
+
+ <!--
+ Base port number for determining a unique number to associate with an instance of the transaction service
+ (which is needed in order to support multiple instances on the same machine).
+ Use the value 0 to allow the system to select the first available port number.
+ If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
+ to the loopback address is created or until the the maximum number of ports (specified by the
+ com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ reaches the maximum possible port number.
+ -->
+ <entry key="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort">0</entry>
+
+
+
+
+
+ <!--
+ Periodic recovery modules to use. Invoked in sort-order of names.
+ Check http://www.jboss.org/community/docs/DOC-10788 for more information
+ on recovery modules and their configuration when running in various
+ deployments.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension3">com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</entry>
+
+ <!--
+ Expiry scanners to use (order of invocation is random).
+ Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
+
+ <!-- Enable the following to move logs that cannot be completed by failure recovery. But
+be sure you know what you are doing and why! -->
+ <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
+
+ <!--
+ The address and port number on which the recovery manager listens
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryPort">4712</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryAddress"></entry>
+
+ <!--
+ Use this to fix the port on which the TransactionStatusManager listens,
+ The default behaviour is to use any free port.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort">0</entry>
+
+ <!--
+ Use this to fix the address on which the TransactionStatusManager binds,
+ The default behaviour is to use the loopback address (ie localhost).
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"></entry>
+
+ <!--
+ For cases where the recovery manager is in process with the transaction manager and nothing else uses
+ the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
+ Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
+ if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryListener">YES</entry>
+
+
+
+ <entry name="com.arjuna.ats.jta.supportSubtransactions">NO</entry>
+
+ <entry name="com.arjuna.ats.jta.jtaTMImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</entry>
+
+ <entry name="com.arjuna.ats.jta.jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</entry>
+
+</properties>
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/ConnectionImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1014,7 +1014,7 @@
static
{
- String isolationLevel = jdbcPropertyManager.propertyManager
+ String isolationLevel = jdbcPropertyManager.getPropertyManager()
.getProperty(com.arjuna.ats.jdbc.common.Environment.ISOLATION_LEVEL);
if (isolationLevel != null)
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/IndirectRecoverableConnection.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/IndirectRecoverableConnection.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/IndirectRecoverableConnection.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -378,7 +378,7 @@
if (_theDataSource == null)
{
Hashtable env = new Hashtable();
- Enumeration e = jdbcPropertyManager.propertyManager.propertyNames();
+ Enumeration e = jdbcPropertyManager.getPropertyManager().propertyNames();
/*
* Look through the properties for any Context related
@@ -390,7 +390,7 @@
String name = (String) e.nextElement();
if (name.startsWith("Context."))
- env.put(translate(name), jdbcPropertyManager.propertyManager.getProperty(name));
+ env.put(translate(name), jdbcPropertyManager.getPropertyManager().getProperty(name));
}
if (env.size() > 0)
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/BasicXARecovery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/BasicXARecovery.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/BasicXARecovery.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -38,6 +38,8 @@
import com.arjuna.ats.jta.recovery.XAResourceRecovery;
import com.arjuna.common.util.logging.*;
+import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
import java.sql.*;
import javax.transaction.xa.*;
@@ -65,14 +67,12 @@
* The db parameters specified in the property file are assumed to be in the
* format:
*
- * <transaction-service>
- * <properties name="jdbc">
- * <property name="DB_X_DatabaseUser" value="username"/>
- * <property name="DB_X_DatabasePassword" value="password"/>
- * <property name="DB_X_DatabaseDynamicClassA" value="DynamicClass"/>
- * <property name="DB_X_DatabaseURL" value="theURL"/>
+ * <properties>
+ * <entry key="DB_X_DatabaseUser">username</entry>
+ * <entry key="DB_X_DatabasePassword">password"</entry>
+ * <entry key="DB_X_DatabaseDynamicClass">DynamicClass</entry>
+ * <entry key="DB_X_DatabaseURL">theURL</entry>
* </properties>
- * </transaction-service>
*
* where X is the number of the connection information, starting from 1.
* The DynamicClass is optional. If not present, JNDI will be used for resolving
@@ -161,10 +161,9 @@
try
{
- jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class
- .getName(), fileName);
+ PropertyManager propertyManager = PropertyManagerFactory.getPropertyManagerForFile(fileName, false);
- props = jdbcPropertyManager.propertyManager.getProperties();
+ props = propertyManager.getProperties();
}
catch (Exception e)
{
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/JDBCXARecovery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/JDBCXARecovery.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/JDBCXARecovery.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -38,6 +38,8 @@
import javax.sql.*;
import javax.transaction.xa.*;
import com.arjuna.common.util.logging.*;
+import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.ats.jdbc.common.*;
@@ -97,9 +99,9 @@
try
{
- jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class.getName(), parameter);
+ PropertyManager propertyManager = PropertyManagerFactory.getPropertyManagerForFile(parameter, false);
- _props = jdbcPropertyManager.propertyManager.getProperties();
+ _props = propertyManager.getProperties();
_dbName = _props.getProperty(DATABASE_JNDI_NAME);
_user = _props.getProperty(USER_NAME);
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/OracleXARecovery.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/OracleXARecovery.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/internal/jdbc/recovery/OracleXARecovery.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -36,6 +36,8 @@
import javax.sql.*;
import javax.transaction.xa.*;
import com.arjuna.common.util.logging.*;
+import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.ats.jdbc.common.*;
@@ -94,9 +96,9 @@
try
{
- jdbcPropertyManager.propertyManager.load(XMLFilePlugin.class.getName(), parameter);
+ PropertyManager propertyManager = PropertyManagerFactory.getPropertyManagerForFile(parameter, false);
- _props = jdbcPropertyManager.propertyManager.getProperties();
+ _props = propertyManager.getProperties();
_dbURL = _props.getProperty(DATABASE_URL);
_user = _props.getProperty(USER_NAME);
Modified: labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/classes/com/arjuna/ats/jdbc/common/jdbcPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,42 +33,15 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
/**
- * Property manager wrapper for the JTA module.
+ * Property manager wrapper for the JDBC module.
*/
public class jdbcPropertyManager
{
- public static PropertyManager propertyManager;
-
public static PropertyManager getPropertyManager()
{
- return propertyManager;
+ return PropertyManagerFactory.getPropertyManagerForModule("jdbc", Environment.PROPERTIES_FILE);
}
-
- static
- {
- /**
- * Retrieve the property manager from the factory and add the
- * JTA properties file to it.
- */
-
- propertyManager = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "jdbc");
-
- String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE);
-
- if (propertiesFilename == null)
- propertiesFilename = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Deleted: labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/default-jdbc-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/default-jdbc-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/default-jdbc-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-jdbc-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the ArjunaJTS manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="jdbc" depends="jta">
- <!--
- property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/>
- -->
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/jdbc.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/jdbc.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jdbc/etc/jdbc.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,38 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 1999-2001 by HP Bluestone Software, Inc. All rights Reserved.
-#
-# HP Arjuna Labs,
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: jdbc.properties_default 2342 2006-03-30 13:06:17Z $
-#
-
-#
-# These options are described in the ArjunaJTS manual.
-# Defaults are provided here for convenience only.
-#
-# Please read through this file prior to using the system, and consider
-# updating the specified entries.
-#
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/recovery/arjunacore/XARecoveryModule.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -295,7 +295,7 @@
_recoveryManagerClass = null;
}
- Properties props = jtaPropertyManager.propertyManager.getProperties();
+ Properties props = jtaPropertyManager.getPropertyManager().getProperties();
if (props != null)
{
@@ -313,7 +313,7 @@
* and store it.
*/
- String theClassAndParameter = jtaPropertyManager.propertyManager
+ String theClassAndParameter = jtaPropertyManager.getPropertyManager()
.getProperty(propName);
// see if there is a string parameter
@@ -399,7 +399,7 @@
* Find the node(s) we can recover on behalf of.
*/
- String name = jtaPropertyManager.propertyManager
+ String name = jtaPropertyManager.getPropertyManager()
.getProperty(propName);
if (_xaRecoveryNodes == null)
@@ -1350,7 +1350,7 @@
static
{
- String env = jtaPropertyManager.propertyManager
+ String env = jtaPropertyManager.getPropertyManager()
.getProperty(com.arjuna.ats.jta.common.Environment.XA_BACKOFF_PERIOD);
XARecoveryModule._backoffPeriod = XA_BACKOFF_PERIOD;
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/XAResourceErrorHandler.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -65,7 +65,7 @@
{
// explicitly add tibco
- Properties props = jtaPropertyManager.propertyManager.getProperties();
+ Properties props = jtaPropertyManager.getPropertyManager().getProperties();
if (props != null)
{
@@ -82,7 +82,7 @@
* and store it.
*/
- String theClass = jtaPropertyManager.propertyManager.getProperty(propName);
+ String theClass = jtaPropertyManager.getPropertyManager().getProperty(propName);
try
{
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1376,7 +1376,7 @@
static
{
- String optimization = jtaPropertyManager.propertyManager.getProperty(
+ String optimization = jtaPropertyManager.getPropertyManager().getProperty(
Environment.JTA_TM_IMPLEMENTATION, "OFF");
if (optimization.equals("ON"))
@@ -1395,7 +1395,7 @@
* with. Hence USE WITH EXTREME CARE!!
*/
- String assumedComplete = jtaPropertyManager.propertyManager.getProperty(
+ String assumedComplete = jtaPropertyManager.getPropertyManager().getProperty(
Environment.XA_ASSUME_RECOVERY_COMPLETE, "FALSE");
if (assumedComplete.equalsIgnoreCase("true"))
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -32,16 +32,12 @@
package com.arjuna.ats.internal.jta.transaction.arjunacore;
import com.arjuna.ats.arjuna.coordinator.TxControl;
-import com.arjuna.ats.arjuna.utils.ThreadUtil;
import com.arjuna.ats.jta.common.*;
import com.arjuna.ats.jta.logging.*;
import com.arjuna.common.util.logging.*;
-import java.util.Hashtable;
-
import javax.transaction.NotSupportedException;
-import javax.transaction.SystemException;
import java.lang.IllegalStateException;
@@ -329,7 +325,7 @@
static
{
- String subtran = jtaPropertyManager.propertyManager
+ String subtran = jtaPropertyManager.getPropertyManager()
.getProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS);
if ((subtran != null) && (subtran.equals("YES")))
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1936,7 +1936,7 @@
static
{
- final String xaTransactionTimeoutEnabled = jtaPropertyManager.propertyManager
+ final String xaTransactionTimeoutEnabled = jtaPropertyManager.getPropertyManager()
.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED);
if (xaTransactionTimeoutEnabled != null)
{
@@ -1947,7 +1947,7 @@
{
XA_TRANSACTION_TIMEOUT_ENABLED = true;
}
- final String lastResourceOptimisationInterfaceName = jtaPropertyManager.propertyManager
+ final String lastResourceOptimisationInterfaceName = jtaPropertyManager.getPropertyManager()
.getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE);
Class lastResourceOptimisationInterface = null;
if (lastResourceOptimisationInterfaceName != null)
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/jtaPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,7 +33,6 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
/**
* Property manager wrapper for the JTA module.
@@ -41,34 +40,8 @@
public class jtaPropertyManager
{
- public static PropertyManager propertyManager;
-
public static PropertyManager getPropertyManager()
{
- return propertyManager;
+ return PropertyManagerFactory.getPropertyManagerForModule("jta", Environment.PROPERTIES_FILE);
}
-
- static
- {
- /**
- * Retrieve the property manager from the factory and add the
- * JTA properties file to it.
- */
-
- propertyManager = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "jta");
-
- String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE);
-
- if (propertiesFilename == null)
- propertiesFilename = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -69,17 +69,17 @@
public static String getTransactionManagerImplementationClassname()
{
- return jtaPropertyManager.propertyManager.getProperty(Environment.JTA_TM_IMPLEMENTATION, DEFAULT_TM_IMPLEMENTATION);
+ return jtaPropertyManager.getPropertyManager().getProperty(Environment.JTA_TM_IMPLEMENTATION, DEFAULT_TM_IMPLEMENTATION);
}
public static String getUserTransactionImplementationClassname()
{
- return jtaPropertyManager.propertyManager.getProperty(Environment.JTA_UT_IMPLEMENTATION, DEFAULT_UT_IMPLEMENTATION);
+ return jtaPropertyManager.getPropertyManager().getProperty(Environment.JTA_UT_IMPLEMENTATION, DEFAULT_UT_IMPLEMENTATION);
}
public static String getTransactionSynchronizationRegistryImplementationClassname()
{
- return jtaPropertyManager.propertyManager.getProperty(Environment.JTA_TSR_IMPLEMENTATION, DEFAULT_TSR_IMPLEMENTATION);
+ return jtaPropertyManager.getPropertyManager().getProperty(Environment.JTA_TSR_IMPLEMENTATION, DEFAULT_TSR_IMPLEMENTATION);
}
/**
@@ -209,17 +209,17 @@
public final static String getTransactionManagerJNDIName()
{
- return jtaPropertyManager.propertyManager.getProperty(Environment.TM_JNDI_CONTEXT, DEFAULT_TM_JNDI_CONTEXT);
+ return jtaPropertyManager.getPropertyManager().getProperty(Environment.TM_JNDI_CONTEXT, DEFAULT_TM_JNDI_CONTEXT);
}
public final static String getUserTransactionJNDIName()
{
- return jtaPropertyManager.propertyManager.getProperty(Environment.UT_JNDI_CONTEXT, DEFAULT_UT_JNDI_CONTEXT);
+ return jtaPropertyManager.getPropertyManager().getProperty(Environment.UT_JNDI_CONTEXT, DEFAULT_UT_JNDI_CONTEXT);
}
private final static String getTransactionSynchronizationRegistryJNDIName()
{
- return jtaPropertyManager.propertyManager.getProperty(Environment.TSR_JNDI_CONTEXT, DEFAULT_TSR_JNDI_CONTEXT);
+ return jtaPropertyManager.getPropertyManager().getProperty(Environment.TSR_JNDI_CONTEXT, DEFAULT_TSR_JNDI_CONTEXT);
}
private static final String DEFAULT_TM_JNDI_CONTEXT = "java:/TransactionManager";
Deleted: labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-RecoveryManager-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-RecoveryManager-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-RecoveryManager-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-RecoveryManager-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- This is the special properties file for the RecoveryManager - its settings
- add to and override those in the regular arjuna properties file
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="recoverymanager" depends="arjuna,txoj,jta">
- <!--
- Periodic recovery modules to use. Invoked in sort-order of names.
- Check http://www.jboss.org/community/docs/DOC-10788 for more information
- on recovery modules and their configuration when running in various
- deployments.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension1"
- value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension2"
- value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension3"
- value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/>
-
- <!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager"
- value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
- <!-- Enable the following to move logs that cannot be completed by failure recovery. But
- be sure you know what you are doing and why! -->
- <!-- property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner"/ -->
-
- <!--
- The address and port number on which the recovery manager listens
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryPort"
- value="4712"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryAddress"
- value=""/>
-
- <!--
- Use this to fix the port on which the TransactionStatusManager listens,
- The default behaviour is to use any free port.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
- value="0"/>
-
- <!--
- Use this to fix the address on which the TransactionStatusManager binds,
- The default behaviour is to use the loopback address (ie localhost).
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"
- value=""/>
-
- <!--
- For cases where the recovery manager is in process with the transaction manager and nothing else uses
- the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
- Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
- if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryListener"
- value="YES"/>
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-jta-properties.xmltmpl
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-jta-properties.xmltmpl 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/etc/default-jta-properties.xmltmpl 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a
- full listing of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-jta-properties.xmltmpl 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the ArjunaJTS manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="jta" depends="@JTA_DEPENDS@">
- <!--
- Support subtransactions in the JTA layer?
- Default is NO.
- -->
- <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
- <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction. at MODULE1@.TransactionManagerImple"/>
- <!--
- com.arjuna.ats.internal.jta.transaction. at MODULE2@.TransactionManagerImple
- -->
- <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction. at MODULE1@.UserTransactionImple"/>
- <!--
- com.arjuna.ats.internal.jta.transaction. at MODULE2@.UserTransactionImple
- -->
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaJTA/jta/etc/jta.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/etc/jta.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/etc/jta.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,53 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 2002-2004, Arjuna Technologies Ltd.
-#
-# Arjuna Technologies Ltd,
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: jta.properties_default 2342 2006-03-30 13:06:17Z $
-#
-
-#
-# These options are described in the ArjunaJTS manual.
-# Defaults are provided here for convenience only.
-#
-# Please read through this file prior to using the system, and consider
-# updating the specified entries.
-#
-
-# Support subtransactions in the JTA layer? Default is NO.
-com.arjuna.ats.jta.supportSubtransactions=NO
-
-# Which transaction manager implementation to use?
-#
-# JTS is com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
-#
-#com.arjuna.ats.jta.jtaTMImplementation=com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple
-
-# Which user transaction implementation to use?
-#
-# JTS is com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
-#
-#com.arjuna.ats.jta.jtaUTImplementation=com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/nested/SimpleNestedTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -43,7 +43,7 @@
{
try
{
- com.arjuna.ats.jta.common.jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS, "YES");
+ com.arjuna.ats.jta.common.jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS, "YES");
javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
Deleted: labs/jbosstm/trunk/ArjunaJTA/product.properties
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/product.properties 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTA/product.properties 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,25 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a
-# full listing of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-# ArjunaJTA ant properties file
-# $Id: product.properties 2342 2006-03-30 13:06:17Z $
-#
-com.hp.mw.ts.product.name=ArjunaJTA
-com.hp.mw.alltests.build=yes
Modified: labs/jbosstm/trunk/ArjunaJTS/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/build.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/build.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -134,24 +134,10 @@
<ant dir="../ArjunaJTA" target="install.etc" inheritall="false">
<property name="etc.dest.dir" value="${etc.dest.dir}"/>
- <property name="jta_depends" value="jts"/>
- <property name="module1" value="jts"/>
- <property name="module2" value="arjunacore"/>
</ant>
- <taskdef name="merge-property-files"
- classname="com.hp.mw.buildsystem.ant.MergePropertyFiles"
- classpath="../antbuildsystem/build/lib/buildsystem.jar"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/orbportability/etc/default-orbportability-properties.xml"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/jts/etc/default-jts-properties.xml"/>
-
- <merge-property-files master="${etc.dest.dir}/jbossts-properties.xml"
- merge="${basedir}/jts/etc/default-RecoveryManager-properties.xml" override="true"/>
-
+ <copy file="jbossts-properties-arjunajts.xml" tofile="${etc.dest.dir}/jbossts-properties.xml" overwrite="true"/>
+
</target>
<target name="install.jacorb">
Modified: labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/AdministrationGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/AdministrationGuide.pdf
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/ProgrammersGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/ArjunaJTS/docs/user_guide/ProgrammersGuide.pdf
===================================================================
(Binary files differ)
Added: labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jbossts-properties-arjunajts.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ as indicated by the @author tags.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2009,
+ @author JBoss, a division of Red Hat.
+-->
+<properties>
+ <!--
+ This is the JBossTS configuration file for running ArjunaCore.
+ It should be called jbossts-properties.xml.
+ You need a different version for JTA or JTS usage.
+
+ ***************************
+
+ Property values may be literals or be tokens of the form ${p1[,p2][:v]}
+ in which case the token values are substituted for the values of the corresponding system
+ properties as follows:
+
+ - Any occurance of ${p} with the System.getProperty(p) value.
+ If there is no such property p defined, then the ${p} reference will remain unchanged.
+
+ - If the property reference is of the form ${p:v} and there is no such property p,
+ then the default value v will be returned.
+
+ - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
+ the primary and the secondary properties will be tried in turn, before
+ returning either the unchanged input, or the default value.
+
+ The property ${/} is replaced with System.getProperty("file.separator")
+ value and the property ${:} is replaced with System.getProperty("path.separator").
+
+ Note this substitution applies to property values only at the point they are read from
+ the config file. Tokens in system properties won't be substituted.
+ -->
+
+
+
+ <!-- (default is YES) -->
+ <entry key="com.arjuna.ats.arjuna.coordinator.commitOnePhase">YES</entry>
+
+ <!-- (default is defaultStore) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.localOSRoot">defaultStore</entry>
+
+ <!-- default is under user.home - must be writeable!) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.objectStoreDir">PutObjectStoreDirHere</entry>
+
+ <!-- (default is ON) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.transactionSync">ON</entry>
+
+ <!-- (Must be unique across all Arjuna instances.) -->
+ <entry key="com.arjuna.ats.arjuna.xa.nodeIdentifier">1</entry>
+
+ <!--
+ Base port number for determining a unique number to associate with an instance of the transaction service
+ (which is needed in order to support multiple instances on the same machine).
+ Use the value 0 to allow the system to select the first available port number.
+ If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
+ to the loopback address is created or until the the maximum number of ports (specified by the
+ com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ reaches the maximum possible port number.
+ -->
+ <entry key="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort">0</entry>
+
+
+
+
+
+ <!--
+ Periodic recovery modules to use. Invoked in sort-order of names.
+ Check http://www.jboss.org/community/docs/DOC-10788 for more information
+ on recovery modules and their configuration when running in various
+ deployments.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension3">com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension4">com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension5">com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule</entry>
+
+
+ <!--
+ Expiry scanners to use (order of invocation is random).
+ Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerContact">com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTopLevelTran">com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerServerTran">com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner</entry>
+
+ <!-- Enable the following to move logs that cannot be completed by failure recovery. But
+be sure you know what you are doing and why! -->
+ <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
+
+ <!--
+ The address and port number on which the recovery manager listens
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryPort">4712</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryAddress"></entry>
+
+ <!--
+ Use this to fix the port on which the TransactionStatusManager listens,
+ The default behaviour is to use any free port.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort">0</entry>
+
+ <!--
+ Use this to fix the address on which the TransactionStatusManager binds,
+ The default behaviour is to use the loopback address (ie localhost).
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"></entry>
+
+ <!--
+ For cases where the recovery manager is in process with the transaction manager and nothing else uses
+ the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
+ Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
+ if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryListener">YES</entry>
+
+ <!-- Recovery Activator to use. -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryActivator_1">com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement</entry>
+
+
+ <entry key="com.arjuna.ats.jta.supportSubtransactions">NO</entry>
+
+ <entry key="com.arjuna.ats.jta.jtaTMImplementation">com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple</entry>
+
+ <entry key="com.arjuna.ats.jta.jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple</entry>
+
+
+
+ <entry key="com.arjuna.orbportability.bindMechanism">CONFIGURATION_FILE</entry>
+
+ <!--
+ This class handles context propagation issues, and should never
+ be commented out or removed.
+ -->
+ <entry key="com.arjuna.orbportability.orb.PreInit1">com.arjuna.ats.internal.jts.context.ContextPropagationManager</entry>
+
+ <!--
+ This property ensures the JTS knows which ORB to use and should never
+ be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostInit1">com.arjuna.ats.jts.utils.ORBSetup</entry>
+ <!--
+ This property ensures the crash recovery is initialised correctly and
+ should never be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostInit2">com.arjuna.ats.internal.jts.recovery.RecoveryInit</entry>
+
+ <!--
+ This property ensures the JTS knows which ORB to use and should never
+ be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostSet1">com.arjuna.ats.jts.utils.ORBSetup</entry>
+
+ <!--
+ This property ensures the JTS knows which ORB to use and should never
+ be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostSet2">com.arjuna.ats.internal.jts.recovery.RecoveryInit</entry>
+
+ <!--
+ This property controls the port on which the Recovery ORB listens
+ -->
+ <entry key="com.arjuna.ats.jts.recoveryManagerPort">4711</entry>
+
+ <!--
+ This property controls the address on which the Recovery ORB binds - defaults to the loopback connection
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.jts.recoveryManagerAddress"></entry>
+
+
+</properties>
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1648,7 +1648,7 @@
static
{
- String optimization = jtaPropertyManager.propertyManager.getProperty(
+ String optimization = jtaPropertyManager.getPropertyManager().getProperty(
Environment.JTA_TM_IMPLEMENTATION, "OFF");
if (optimization.equals("ON"))
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/BaseTransaction.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -34,29 +34,15 @@
import com.arjuna.ats.jta.common.jtaPropertyManager;
import com.arjuna.ats.jta.logging.*;
-import com.arjuna.ats.internal.jta.utils.jts.StatusConverter;
-
import org.omg.CosTransactions.*;
-import com.arjuna.ats.jts.*;
import com.arjuna.ats.jts.OTSManager;
import com.arjuna.ats.internal.jts.OTSImpleManager;
-import javax.transaction.*;
-
-import com.arjuna.ats.arjuna.coordinator.BasicAction;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.common.util.logging.*;
import javax.transaction.NotSupportedException;
-import javax.transaction.RollbackException;
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.HeuristicRollbackException;
-import javax.transaction.HeuristicMixedException;
-import javax.transaction.SystemException;
-import java.lang.SecurityException;
import java.lang.IllegalStateException;
import java.lang.NullPointerException;
import org.omg.CosTransactions.SubtransactionsUnavailable;
@@ -65,11 +51,6 @@
import org.omg.CosTransactions.HeuristicHazard;
import org.omg.CosTransactions.InvalidControl;
import org.omg.CosTransactions.WrongTransaction;
-import org.omg.CORBA.NO_PERMISSION;
-import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.INVALID_TRANSACTION;
-import org.omg.CORBA.TRANSACTION_REQUIRED;
-import org.omg.CORBA.TRANSACTION_ROLLEDBACK;
/**
* Some common methods for UserTransaction and TransactionManager.
@@ -345,7 +326,7 @@
static
{
- String subtran = jtaPropertyManager.propertyManager.getProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS);
+ String subtran = jtaPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS);
if ((subtran != null) && (subtran.equals("YES")))
_supportSubtransactions = true;
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/TransactionImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1940,7 +1940,7 @@
static
{
- final String xaTransactionTimeoutEnabled = jtsPropertyManager.propertyManager.getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED) ;
+ final String xaTransactionTimeoutEnabled = jtsPropertyManager.getPropertyManager().getProperty(Environment.XA_TRANSACTION_TIMEOUT_ENABLED) ;
if (xaTransactionTimeoutEnabled != null)
{
XA_TRANSACTION_TIMEOUT_ENABLED = Boolean.valueOf(xaTransactionTimeoutEnabled).booleanValue() ;
@@ -1949,7 +1949,7 @@
{
XA_TRANSACTION_TIMEOUT_ENABLED = true ;
}
- final String lastResourceOptimisationInterfaceName = jtsPropertyManager.propertyManager.getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE) ;
+ final String lastResourceOptimisationInterfaceName = jtsPropertyManager.getPropertyManager().getProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE) ;
Class lastResourceOptimisationInterface = null ;
if (lastResourceOptimisationInterfaceName != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/client/ImplicitClient.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,12 +31,14 @@
* $Id: ImplicitClient.java 2342 2006-03-30 13:06:17Z $
*/
-import org.jboss.dtf.testframework.unittest.*;
import com.arjuna.orbportability.ORB;
import com.arjuna.orbportability.OA;
import com.arjuna.ats.jta.common.*;
import com.arjuna.ats.jta.*;
+import org.jboss.dtf.testframework.unittest.Test;
+import org.jboss.dtf.testframework.unittest.LocalHarness;
+
public class ImplicitClient extends Test
{
public void run(String[] args)
@@ -50,8 +52,8 @@
{
try
{
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TM_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_UT_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_UT_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
ORB orb = ORB.getInstance("implicitserver-orb");
OA oa = OA.getRootOA(orb);
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/arjuna/ats/jtax/tests/implicit/server/ImplicitServer.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,14 +31,15 @@
* $Id: ImplicitServer.java 2342 2006-03-30 13:06:17Z $
*/
-import org.jboss.dtf.testframework.unittest.*;
-
import com.arjuna.orbportability.*;
import com.arjuna.ats.jtax.tests.implicit.impl.*;
import com.arjuna.ats.jta.common.jtaPropertyManager;
import com.arjuna.ats.jta.common.Environment;
+import org.jboss.dtf.testframework.unittest.Test;
+import org.jboss.dtf.testframework.unittest.LocalHarness;
+
public class ImplicitServer extends Test
{
public void run(String[] args)
@@ -50,8 +51,8 @@
}
else
{
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TM_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_UT_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_UT_IMPLEMENTATION, com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
try
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAAbort.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,21 +33,13 @@
import com.arjuna.ats.internal.jts.ORBManager;
-import com.hp.mwtests.ts.jta.jts.common.*;
-
import com.arjuna.ats.jta.common.*;
-import com.arjuna.ats.jta.*;
import com.arjuna.ats.jta.utils.*;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.orbportability.*;
import javax.transaction.*;
-import javax.transaction.xa.*;
-import java.lang.IllegalAccessException;
-
public class JTAAbort
{
@@ -76,8 +68,8 @@
boolean passed = false;
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
try
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTAOrder.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -36,18 +36,11 @@
import com.hp.mwtests.ts.jta.jts.common.*;
import com.arjuna.ats.jta.common.*;
-import com.arjuna.ats.jta.*;
-import com.arjuna.ats.jta.utils.*;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.orbportability.*;
-import javax.transaction.*;
import javax.transaction.xa.*;
-import java.lang.IllegalAccessException;
-
public class JTAOrder
{
@@ -76,8 +69,8 @@
boolean passed = false;
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
try
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,20 +33,14 @@
import com.hp.mwtests.ts.jta.jts.common.*;
-import com.arjuna.ats.jta.*;
import com.arjuna.ats.jta.common.*;
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.orbportability.*;
-import javax.transaction.*;
import javax.transaction.xa.*;
-import java.lang.IllegalAccessException;
-
public class JTATest
{
@@ -98,8 +92,8 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
/*
* We should have a reference to a factory object (see JTA
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/JTATransactionCommitTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -61,7 +61,7 @@
}
/** Ensure underlying JTA implementation is JTS **/
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerImple.class.getName());
try
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/NullResource.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,24 +31,14 @@
package com.hp.mwtests.ts.jta.jts.basic;
-import com.hp.mwtests.ts.jta.jts.common.*;
-
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.jta.*;
-import com.arjuna.ats.jta.utils.*;
import com.arjuna.ats.jta.common.*;
import com.arjuna.orbportability.*;
-import com.arjuna.ats.arjuna.common.*;
import org.jboss.dtf.testframework.unittest.Test;
-import javax.transaction.*;
-import javax.transaction.xa.*;
-
-import java.lang.IllegalAccessException;
-
public class NullResource extends Test
{
@@ -75,8 +65,8 @@
assertFailure();
}
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
boolean passed = false;
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/Performance.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,22 +31,12 @@
package com.hp.mwtests.ts.jta.jts.basic;
-import com.hp.mwtests.ts.jta.jts.common.*;
-
-import com.arjuna.ats.jta.*;
import com.arjuna.ats.jta.common.*;
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.orbportability.*;
-import javax.transaction.*;
-import javax.transaction.xa.*;
-
-import java.lang.IllegalAccessException;
-
public class Performance
{
@@ -73,8 +63,8 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
/*
* We should have a reference to a factory object (see JTA
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/SuspendResume.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -63,11 +63,11 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager
+ jtaPropertyManager.getPropertyManager()
.setProperty(
com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION,
"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager
+ jtaPropertyManager.getPropertyManager()
.setProperty(
com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION,
"com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/basic/ThreadedCommit.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -36,7 +36,6 @@
import javax.transaction.TransactionManager;
import com.arjuna.ats.jta.common.*;
-import com.arjuna.ats.jta.utils.JTAHelper;
import com.arjuna.ats.internal.jts.ORBManager;
@@ -119,11 +118,11 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager
+ jtaPropertyManager.getPropertyManager()
.setProperty(
com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION,
"com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager
+ jtaPropertyManager.getPropertyManager()
.setProperty(
com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION,
"com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/hammer/JTAHammer.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,22 +33,16 @@
import com.hp.mwtests.ts.jta.jts.common.*;
-import com.arjuna.ats.jta.*;
import com.arjuna.ats.jta.common.*;
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.orbportability.*;
-import javax.transaction.*;
import javax.transaction.xa.*;
import java.util.*;
-import java.lang.IllegalAccessException;
-
class Worker extends Thread
{
@@ -204,8 +198,8 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
/*
* We should have a reference to a factory object (see JTA
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/nested/SimpleNestedTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -48,7 +48,7 @@
{
try
{
- com.arjuna.ats.jta.common.jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS,"YES");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.SUPPORT_SUBTRANSACTIONS,"YES");
javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
@@ -98,8 +98,8 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
new SimpleNestedTest();
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/tests/classes/com/hp/mwtests/ts/jta/jts/twophase/SimpleTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -93,8 +93,8 @@
System.exit(0);
}
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
- jtaPropertyManager.propertyManager.setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_TM_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
+ jtaPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jta.common.Environment.JTA_UT_IMPLEMENTATION, "com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
new SimpleTest();
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/OTSImpleManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,31 +31,20 @@
package com.arjuna.ats.internal.jts;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
import com.arjuna.ats.jts.common.Environment;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.logging.*;
import com.arjuna.orbportability.*;
-import com.arjuna.common.util.logging.*;
-
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.coordinator.TransactionReaper;
-
import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
-import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.internal.jts.utils.Helper;
import org.omg.CosTransactions.*;
import com.arjuna.ArjunaOTS.*;
-import java.io.PrintStream;
-
import org.omg.CORBA.SystemException;
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.UNKNOWN;
@@ -206,7 +195,7 @@
* Only check once, when the factory is first created.
*/
- String transactionManager = jtsPropertyManager.propertyManager.getProperty(Environment.TRANSACTION_MANAGER, "NO");
+ String transactionManager = jtsPropertyManager.getPropertyManager().getProperty(Environment.TRANSACTION_MANAGER, "NO");
int resolver = Services.CONFIGURATION_FILE;
boolean requireTransactionManager = false;
@@ -215,7 +204,7 @@
{
requireTransactionManager = true;
- String resolveMechanism = jtsPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE, "CONFIGURATION_FILE");
+ String resolveMechanism = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE, "CONFIGURATION_FILE");
if (resolveMechanism.compareTo("NAME_SERVICE") == 0)
resolver = Services.NAME_SERVICE;
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/context/ContextPropagationManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/context/ContextPropagationManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/context/ContextPropagationManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,18 +31,12 @@
package com.arjuna.ats.internal.jts.context;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.logging.*;
import com.arjuna.orbportability.ORBType;
import com.arjuna.orbportability.ORBInfo;
-import com.arjuna.common.util.logging.*;
-
-import com.arjuna.ats.arjuna.exceptions.FatalError;
-
/**
* Registers the appropriate filter with the ORB.
*
@@ -60,7 +54,7 @@
public ContextPropagationManager ()
{
- String contextMode = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.CONTEXT_PROP_MODE);
+ String contextMode = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.CONTEXT_PROP_MODE);
boolean interposition = true;
if (contextMode != null)
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/TransactionFactoryImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -912,7 +912,7 @@
static
{
- String timeout = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.DEFAULT_TIMEOUT);
+ String timeout = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.DEFAULT_TIMEOUT);
if (timeout != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/coordinator/ArjunaTransactionImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/coordinator/ArjunaTransactionImple.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/coordinator/ArjunaTransactionImple.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -38,7 +38,6 @@
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.logging.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.logging.*;
import com.arjuna.ats.internal.jts.recovery.RecoveryCreator;
@@ -47,18 +46,13 @@
import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
-import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
import com.arjuna.ats.internal.jts.resources.SynchronizationRecord;
import com.arjuna.ats.internal.jts.resources.ResourceRecord;
import com.arjuna.ats.internal.jts.resources.ExtendedResourceRecord;
import com.arjuna.ats.internal.jts.coordinator.CheckedActions;
-import com.arjuna.orbportability.*;
-
import com.arjuna.ats.arjuna.coordinator.*;
-import com.arjuna.ats.arjuna.objectstore.ObjectStore;
-import com.arjuna.ats.arjuna.state.*;
import com.arjuna.ats.arjuna.common.*;
import org.omg.CosTransactions.*;
@@ -69,7 +63,6 @@
import java.util.*;
-import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
import org.omg.CORBA.SystemException;
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.UNKNOWN;
@@ -2369,7 +2362,7 @@
static
{
- String interpositionType = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.INTERPOSITION);
+ String interpositionType = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.INTERPOSITION);
if (interpositionType != null)
{
@@ -2387,7 +2380,7 @@
}
}
- String supportSubtran = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.SUPPORT_SUBTRANSACTIONS);
+ String supportSubtran = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.SUPPORT_SUBTRANSACTIONS);
if (supportSubtran != null)
{
@@ -2395,7 +2388,7 @@
_subtran = false;
}
- String syncOn = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.SUPPORT_ROLLBACK_SYNC);
+ String syncOn = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.SUPPORT_ROLLBACK_SYNC);
if (syncOn != null)
{
@@ -2403,7 +2396,7 @@
_syncOn = false;
}
- String checked = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.CHECKED_TRANSACTIONS);
+ String checked = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.CHECKED_TRANSACTIONS);
if (checked != null)
{
@@ -2411,7 +2404,7 @@
_checkedTransactions = true;
}
- String propTerm = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.PROPAGATE_TERMINATOR);
+ String propTerm = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.PROPAGATE_TERMINATOR);
if (propTerm != null)
{
@@ -2419,7 +2412,7 @@
_propagateTerminator = true;
}
- String propRemainingTimeout = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.OTS_1_0_TIMEOUT_PROPAGATION);
+ String propRemainingTimeout = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.OTS_1_0_TIMEOUT_PROPAGATION);
if (propRemainingTimeout != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/interposition/coordinator/ServerTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/interposition/coordinator/ServerTransaction.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/interposition/coordinator/ServerTransaction.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -707,7 +707,7 @@
static
{
- String inter = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.SUPPORT_INTERPOSED_SYNCHRONIZATION);
+ String inter = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.SUPPORT_INTERPOSED_SYNCHRONIZATION);
if (inter != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -44,22 +44,12 @@
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.common.util.logging.*;
import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.orbportability.orb.*;
-import com.arjuna.orbportability.*;
-import com.arjuna.orbportability.OA;
-import com.arjuna.orbportability.ORB;
import com.arjuna.ats.internal.jts.recovery.recoverycoordinators.*;
-import com.arjuna.ats.arjuna.common.Environment;
-import java.io.File;
-
-import java.io.PrintWriter;
-
import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.arjuna.coordinator.TxControl;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
-import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
import com.arjuna.ats.arjuna.state.*;
/**
@@ -219,7 +209,7 @@
* lot easier.
*/
- String env = jtsPropertyManager.propertyManager.getProperty("com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.noDaemon");
+ String env = jtsPropertyManager.getPropertyManager().getProperty("com.arjuna.ats.internal.jts.orbspecific.jacorb.recoverycoordinators.noDaemon");
if (env != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/jacorb/recoverycoordinators/JacOrbRCServiceInit.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -55,7 +55,6 @@
import com.arjuna.ats.arjuna.coordinator.TxControl;
import com.arjuna.ats.arjuna.objectstore.ObjectStore;
import com.arjuna.ats.arjuna.state.*;
-import com.arjuna.ats.arjuna.utils.Utility;
import java.io.IOException;
import java.util.Properties;
@@ -117,8 +116,8 @@
{
_orb = com.arjuna.orbportability.internal.InternalORB.getInstance("RecoveryServer");
String[] params = null;
- String recoveryManagerPort = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.RECOVERY_MANAGER_ORB_PORT, "4711");
- String recoveryManagerAddr = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.RECOVERY_MANAGER_ADDRESS);
+ String recoveryManagerPort = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.RECOVERY_MANAGER_ORB_PORT, "4711");
+ String recoveryManagerAddr = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.RECOVERY_MANAGER_ADDRESS);
if (recoveryManagerAddr == null)
recoveryManagerAddr = "";
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/orbspecific/recovery/recoverycoordinators/GenericRecoveryCoordinator.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -32,25 +32,17 @@
package com.arjuna.ats.internal.jts.orbspecific.recovery.recoverycoordinators;
import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.objectstore.*;
import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.orbportability.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-import com.arjuna.ats.internal.jts.recovery.*;
import com.arjuna.ats.internal.jts.recovery.contact.StatusChecker;
import com.arjuna.ats.internal.jts.recovery.recoverycoordinators.*;
-import com.arjuna.ats.internal.jts.recovery.transactions.*;
import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
import com.arjuna.ats.internal.jts.orbspecific.interposition.coordinator.ServerTransaction;
import org.omg.CosTransactions.*;
import org.omg.CORBA.SystemException;
-import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
import com.arjuna.ats.jts.logging.jtsLogger;
import com.arjuna.ats.arjuna.logging.FacilityCode;
@@ -424,7 +416,7 @@
{
_issueRecoveryRollback = true;
- String issueRecoveryRollback = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.OTS_ISSUE_RECOVERY_ROLLBACK);
+ String issueRecoveryRollback = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.OTS_ISSUE_RECOVERY_ROLLBACK);
if (issueRecoveryRollback != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/RecoveryInit.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/RecoveryInit.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/RecoveryInit.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -119,7 +119,7 @@
// register the ContactWriter to watch for the first ArjunaFactory construction
- opPropertyManager.propertyManager.setProperty(eventHandlerPropertyName,eventHandlerPropertyValue);
+ opPropertyManager.getPropertyManager().setProperty(eventHandlerPropertyName,eventHandlerPropertyValue);
// Change here above the way to call this startRCService -
// otherwise call it in JacOrbRecoveryInit above.
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/contact/ExpiredContactScanner.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -34,29 +34,20 @@
import org.omg.CosTransactions.*;
import java.util.*;
-import java.io.PrintWriter;
import java.text.*;
import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.coordinator.*;
import com.arjuna.ats.arjuna.objectstore.*;
import com.arjuna.ats.arjuna.recovery.*;
import com.arjuna.ats.arjuna.state.*;
-import com.arjuna.orbportability.orb.*;
-import com.arjuna.orbportability.*;
-import com.arjuna.orbportability.OA;
-import com.arjuna.orbportability.ORB;
-
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.logging.jtsLogger;
import com.arjuna.ats.arjuna.logging.FacilityCode;
import com.arjuna.common.util.logging.*;
-import com.arjuna.ats.internal.jts.recovery.*;
-
/**
* This class is a plug-in module for the recovery manager. This
* class is responsible for the removing contact items that are too old
@@ -156,7 +147,7 @@
static
{
- String expiryTimeString = jtsPropertyManager.propertyManager.getProperty
+ String expiryTimeString = jtsPropertyManager.getPropertyManager().getProperty
( RecoveryEnvironment.TRANSACTION_STATUS_MANAGER_EXPIRY_TIME ) ;
if (expiryTimeString != null)
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/ExpiredAssumedCompleteScanner.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -34,13 +34,11 @@
import org.omg.CosTransactions.*;
import java.util.*;
-import java.io.PrintWriter;
import java.text.*;
import com.arjuna.ats.arjuna.common.Uid ;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.arjuna.objectstore.ObjectStore ;
-import com.arjuna.common.util.propertyservice.PropertyManager ;
import com.arjuna.ats.arjuna.recovery.ExpiryScanner ;
import com.arjuna.ats.arjuna.recovery.RecoveryEnvironment ;
import com.arjuna.ats.arjuna.state.InputObjectState ;
@@ -168,7 +166,7 @@
static
{
- String expiryTimeString = jtsPropertyManager.propertyManager.getProperty
+ String expiryTimeString = jtsPropertyManager.getPropertyManager().getProperty
( RecoveryEnvironment.TRANSACTION_STATUS_MANAGER_EXPIRY_TIME ) ;
if (expiryTimeString != null)
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/RecoveredServerTransaction.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -32,7 +32,6 @@
package com.arjuna.ats.internal.jts.recovery.transactions;
-import com.arjuna.ats.internal.jts.interposition.resources.arjuna.*;
import com.arjuna.ats.internal.jts.orbspecific.interposition.resources.arjuna.*;
import org.omg.CosTransactions.*;
import java.io.IOException;
@@ -40,10 +39,8 @@
import com.arjuna.ats.jts.utils.Utility;
-import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
import com.arjuna.ats.internal.jts.orbspecific.interposition.coordinator.ServerTransaction;
import com.arjuna.ats.internal.jts.orbspecific.interposition.*;
-import com.arjuna.ats.internal.jts.orbspecific.interposition.resources.arjuna.*;
import com.arjuna.ats.internal.jts.recovery.contact.StatusChecker;
import com.arjuna.ats.arjuna.exceptions.*;
import com.arjuna.ats.arjuna.common.*;
@@ -51,10 +48,7 @@
import com.arjuna.ats.arjuna.objectstore.*;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.orbportability.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.ats.arjuna.state.*;
-import com.arjuna.ats.arjuna.utils.*;
-import com.arjuna.ats.arjuna.exceptions.*;
import com.arjuna.ats.jts.logging.jtsLogger;
import com.arjuna.ats.arjuna.logging.FacilityCode;
@@ -63,8 +57,6 @@
import org.omg.CORBA.SystemException;
import org.omg.CORBA.OBJECT_NOT_EXIST;
-import com.arjuna.ats.jts.recovery.RecoveryEnvironment;
-
import org.omg.CORBA.TRANSIENT;
import java.util.Hashtable;
@@ -107,7 +99,7 @@
public RecoveredServerTransaction ( Uid actionUid )
{
this(actionUid, "");
- String assumedExistString = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.ASSUMED_OBJECT_NOT_EXIST);
+ String assumedExistString = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.ASSUMED_OBJECT_NOT_EXIST);
if (assumedExistString != null) {
Integer assumedExistInteger = new Integer(assumedExistString);
_assumed_not_exist = assumedExistInteger.intValue();
@@ -125,7 +117,7 @@
{
super(actionUid);
- String assumedExistString = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.ASSUMED_OBJECT_NOT_EXIST);
+ String assumedExistString = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.ASSUMED_OBJECT_NOT_EXIST);
if (assumedExistString != null) {
Integer assumedExistInteger = new Integer(assumedExistString);
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/internal/jts/recovery/transactions/TransactionCache.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -34,10 +34,7 @@
import java.util.Hashtable;
import com.arjuna.ats.arjuna.common.*;
-import com.arjuna.ats.arjuna.objectstore.*;
import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.orbportability.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import org.omg.CosTransactions.*;
import com.arjuna.ats.jts.recovery.RecoveryEnvironment;
@@ -358,7 +355,7 @@
static
{
- String retryLimitString = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.COMMITTED_TRANSACTION_RETRY_LIMIT);
+ String retryLimitString = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.recovery.RecoveryEnvironment.COMMITTED_TRANSACTION_RETRY_LIMIT);
if (retryLimitString != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/TransactionServer.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/TransactionServer.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/TransactionServer.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -35,12 +35,8 @@
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.arjuna.common.*;
-
import com.arjuna.orbportability.*;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
import org.omg.CosTransactions.*;
public class TransactionServer
@@ -50,7 +46,7 @@
public static final int getResolver ()
{
int resolver = com.arjuna.orbportability.common.Configuration.bindDefault();
- final String resolveService = jtsPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE);
+ final String resolveService = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE);
if (resolveService != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -47,14 +47,14 @@
boolean otsNeedTranContext = Defaults.needTransactionContext ;
boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext ;
- final String needTranContextValue = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT) ;
+ final String needTranContextValue = jtsPropertyManager.getPropertyManager().getProperty(Environment.NEED_TRAN_CONTEXT) ;
if (needTranContextValue != null)
{
otsNeedTranContext = "YES".equals(needTranContextValue) ;
}
- final String alwaysPropagate = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT) ;
+ final String alwaysPropagate = jtsPropertyManager.getPropertyManager().getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT) ;
if (alwaysPropagate != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/jtsPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,42 +33,15 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
/**
- * Property manager wrapper for the Arjuna module.
+ * Property manager wrapper for the JTS module.
*/
public class jtsPropertyManager
{
- public static PropertyManager propertyManager;
-
public static PropertyManager getPropertyManager()
{
- return propertyManager;
+ return PropertyManagerFactory.getPropertyManagerForModule("jts", Environment.PROPERTIES_FILE);
}
-
- static
- {
- /**
- * Retrieve the property manager from the factory and add the JTS
- * properties file to it.
- */
-
- propertyManager = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "jts");
-
- String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE);
-
- if (propertiesFilename == null)
- propertiesFilename = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Deleted: labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-RecoveryManager-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-RecoveryManager-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-RecoveryManager-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a full listing
- of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-RecoveryManager-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- This is the special properties file for the RecoveryManager - its settings
- add to and override those in the regular arjuna properties file
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="recoverymanager" depends="arjuna,txoj,jts">
- <!--
- Periodic recovery modules to use. Invoked in sort-order of names.
- Check http://www.jboss.org/community/docs/DOC-10788 for more information
- on recovery modules and their configuration when running in various
- deployments.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension1"
- value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension2"
- value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension3"
- value="com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension4"
- value="com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension6"
- value="com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule"/>
-
- <!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager"
- value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerContact"
- value="com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTopLevelTran"
- value="com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerServerTran"
- value="com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner"/>
- <!-- Enable the following to move logs that cannot be completed by failure recovery. But
- be sure you know what you are doing and why! -->
- <!-- property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner"/ -->
-
- <!--
- The address and port number on which the recovery manager listens
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryPort"
- value="4712"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryAddress"
- value=""/>
-
- <!--
- Use this to fix the port on which the TransactionStatusManager listens,
- The default behaviour is to use any free port.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort"
- value="0"/>
-
- <!--
- Use this to fix the address on which the TransactionStatusManager binds,
- The default behaviour is to use the loopback address (ie localhost).
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"
- value=""/>
-
- <!--
- For cases where the recovery manager is in process with the transaction manager and nothing else uses
- the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
- Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
- if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryListener"
- value="YES"/>
-
- <!--
- Recovery Activator to use.
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryActivator_1"
- value="com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement"/>
-
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-jts-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-jts-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/etc/default-jts-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a full listing
- of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-jts-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the ArjunaJTS manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="jts" depends="orbportability,arjuna">
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.jts.transactionManager"
- value="NO"/>
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.jts.needTranContext"
- value="NO"/>
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.jts.alwaysPropagateContext"
- value="NO"/>
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.jts.checkedTransactions"
- value="NO"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.jts.supportSubtransactions"
- value="YES"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.jts.supportRollbackSync"
- value="YES"/>
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.jts.supportInterposedSynchronization"
- value="NO"/>
- <!--
- Timeout in seconds to use for top-level transaction if 0 specified.
- (default is no timeout)
- -->
- <!---
- <property
- name="com.arjuna.ats.jts.defaultTimeout"
- value=""/>
- -->
- <!--
- Propagate the context? (default is INTERPOSITION)
- -->
- <property
- name="com.arjuna.ats.jts.contextPropMode"
- value="INTERPOSITION"/>
-
- </properties>
-
- <properties name="orbportability">
-
- <!--
- This class handles context propagation issues, and should never
- be commented out or removed.
- -->
- <property
- name="com.arjuna.orbportability.orb.PreInit1"
- value="com.arjuna.ats.internal.jts.context.ContextPropagationManager"/>
-
- <!--
- This property ensures the JTS knows which ORB to use and should never
- be commented out or removed
- -->
- <property
- name="com.arjuna.orbportability.orb.PostInit1"
- value="com.arjuna.ats.jts.utils.ORBSetup"/>
- <!--
- This property ensures the crash recovery is initialised correctly and
- should never be commented out or removed
- -->
- <property
- name="com.arjuna.orbportability.orb.PostInit2"
- value="com.arjuna.ats.internal.jts.recovery.RecoveryInit"/>
-
- <!--
- This property ensures the JTS knows which ORB to use and should never
- be commented out or removed
- -->
- <property
- name="com.arjuna.orbportability.orb.PostSet1"
- value="com.arjuna.ats.jts.utils.ORBSetup"/>
-
- <!--
- This property ensures the JTS knows which ORB to use and should never
- be commented out or removed
- -->
- <property name="com.arjuna.orbportability.orb.PostSet2"
- value="com.arjuna.ats.internal.jts.recovery.RecoveryInit"/>
-
- <!--
- This property controls the port on which the Recovery ORB listens
- -->
- <property
- name="com.arjuna.ats.jts.recoveryManagerPort"
- value="4711"/>
-
- <!--
- This property controls the address on which the Recovery ORB binds - defaults to the loopback connection
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.jts.recoveryManagerAddress"
- value=""/>
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaJTS/jts/etc/jts.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/etc/jts.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/etc/jts.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,79 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a full listing
-# of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 1999-2001 by HP Bluestone Software, Inc. All rights Reserved.
-#
-# HP Arjuna Labs,
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: jts.properties_default 2342 2006-03-30 13:06:17Z $
-#
-
-#
-# These options are described in the ArjunaJTS manual.
-# Defaults are provided here for convenience only.
-#
-# Please read through this file prior to using the system, and consider
-# updating the specified entries.
-#
-
-# Transaction Reaper Timeout (default is 120000 ms)
-com.arjuna.ats.jts.txReaperTimeout=120000
-
-# Transaction Reaper Mode, can be: NORMAL or DYNAMIC (default is NORMAL)
-com.arjuna.ats.jts.txReaperMode=NORMAL
-
-# (default is NO)
-com.arjuna.ats.jts.transactionManager=NO
-
-# (default is NO)
-com.arjuna.ats.jts.needTranContext=NO
-
-# (default is NO)
-com.arjuna.ats.jts.alwaysPropagateContext=NO
-
-# (default is NO)
-com.arjuna.ats.jts.checkedTransactions=NO
-
-# (default is YES)
-com.arjuna.ats.jts.supportSubtransactions=YES
-
-# (default is YES)
-com.arjuna.ats.jts.supportRollbackSync=YES
-
-# (default is NO)
-com.arjuna.ats.jts.supportInterposedSynchronization=NO
-
-# Timeout in seconds to use for top-level transaction if 0 specified.
-# (default is no timeout)
-com.arjuna.ats.jts.defaultTimeout=""
-
-# Propagate the context?
-# (default is INTERPOSITION)
-com.arjuna.ats.jts.contextPropMode=INTERPOSITION
-
-#
-# This class handles context propagation issues, and should
-# never be commented out.
-#
-com.arjuna.orbportability.orb.PreInit1=com.arjuna.ats.internal.ts.jts.context.ContextPropagationManager
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/timeout/DefaultTimeout.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,13 +31,10 @@
package com.hp.mwtests.ts.jts.local.timeout;
-import com.hp.mwtests.ts.jts.resources.*;
-import com.hp.mwtests.ts.jts.orbspecific.resources.*;
import com.hp.mwtests.ts.jts.TestModule.*;
import com.arjuna.orbportability.*;
-import com.arjuna.ats.jts.extensions.*;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.common.Environment;
@@ -49,11 +46,6 @@
import org.omg.CosTransactions.Unavailable;
import org.omg.CosTransactions.WrongTransaction;
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.UserException;
-import org.omg.CORBA.INVALID_TRANSACTION;
-import org.omg.CORBA.TRANSACTION_REQUIRED;
-import org.omg.CORBA.TRANSACTION_ROLLEDBACK;
public class DefaultTimeout
{
@@ -74,7 +66,7 @@
ORBManager.setORB(myORB);
ORBManager.setPOA(myOA);
- String timeout = jtsPropertyManager.propertyManager.getProperty(Environment.DEFAULT_TIMEOUT);
+ String timeout = jtsPropertyManager.getPropertyManager().getProperty(Environment.DEFAULT_TIMEOUT);
int sleepTime = 0;
if (timeout != null)
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMClient.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMClient.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMClient.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,7 +31,6 @@
package com.hp.mwtests.ts.jts.remote.transactionserver;
-import com.hp.mwtests.ts.jts.resources.*;
import com.hp.mwtests.ts.jts.orbspecific.resources.*;
import com.hp.mwtests.ts.jts.TestModule.*;
@@ -39,12 +38,7 @@
import com.arjuna.orbportability.*;
-import com.arjuna.ats.jts.extensions.*;
-
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
-import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
import org.jboss.dtf.testframework.unittest.Test;
import org.omg.CosTransactions.*;
@@ -52,9 +46,6 @@
import org.omg.CORBA.IntHolder;
import org.omg.CosTransactions.Unavailable;
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.UserException;
-import org.omg.CORBA.INVALID_TRANSACTION;
public class TMClient extends Test
{
@@ -109,7 +100,7 @@
Services serv = new Services(myORB);
int resolver = com.arjuna.orbportability.common.Configuration.bindDefault();
- String resolveService = jtsPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE);
+ String resolveService = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE);
if (resolveService != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMTest.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/transactionserver/TMTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,32 +31,18 @@
package com.hp.mwtests.ts.jts.remote.transactionserver;
-import com.hp.mwtests.ts.jts.resources.*;
-import com.hp.mwtests.ts.jts.orbspecific.resources.*;
import com.hp.mwtests.ts.jts.TestModule.*;
import com.arjuna.orbportability.*;
-import com.arjuna.ats.jts.extensions.*;
-
import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ORBManager;
-import com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple;
-import com.arjuna.ats.internal.jts.orbspecific.CurrentImple;
import org.jboss.dtf.testframework.unittest.Test;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
import org.omg.CosTransactions.*;
-import org.omg.CORBA.IntHolder;
-
import org.omg.CosTransactions.Unavailable;
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.UserException;
-import org.omg.CORBA.INVALID_TRANSACTION;
public class TMTest extends Test
{
@@ -88,7 +74,7 @@
Control topLevelControl = null;
Services serv = new Services(myORB);
int resolver = com.arjuna.orbportability.common.Configuration.bindDefault();
- String resolveService = jtsPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE);
+ String resolveService = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.RESOLVE_SERVICE);
if (resolveService != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/build.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/build.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -38,7 +38,9 @@
<taskdef name="idl-build-list-element" classname="com.arjuna.orbportability.common.ant.IDLBuildListElement" classpath="${build.dir}/lib/orbportability.jar"/>
</target>
- <target name="compile" depends="sharedbuild.compile"/>
+ <target name="compile" depends="init">
+ <compile.macro includeant="true"/>
+ </target>
<target name="compile-tests" depends="compile-tests-idl">
<compile-tests.macro>
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/ORB.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/ORB.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/ORB.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,29 +31,21 @@
package com.arjuna.orbportability;
-import com.arjuna.orbportability.orb.core.*;
import com.arjuna.orbportability.orb.*;
import com.arjuna.orbportability.common.opPropertyManager;
-import com.arjuna.orbportability.common.Configuration;
-import com.arjuna.orbportability.common.Environment;
import com.arjuna.orbportability.logging.opLogger;
import com.arjuna.orbportability.internal.utils.*;
import com.arjuna.orbportability.internal.common.LocalSetup;
import com.arjuna.orbportability.logging.*;
-import com.arjuna.orbportability.exceptions.FatalError;
import com.arjuna.common.util.logging.VisibilityLevel;
import com.arjuna.common.util.logging.DebugLevel;
import java.util.*;
import java.applet.Applet;
-import java.io.*;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import org.omg.CORBA.SystemException;
-import org.omg.CORBA.BAD_OPERATION;
/**
* An attempt at some ORB portable ways of interacting with the ORB.
@@ -397,7 +389,7 @@
"Adding property '"+o+"' to the ORB portability properties" );
}
- opPropertyManager.propertyManager.setProperty( o, p.getProperty(o) );
+ opPropertyManager.getPropertyManager().setProperty( o, p.getProperty(o) );
}
}
}
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/Services.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/Services.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/Services.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -185,10 +185,10 @@
break;
case CONFIGURATION_FILE:
{
- String cosservicesRoot = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_ROOT);
+ String cosservicesRoot = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_ROOT);
if (cosservicesRoot == null || cosservicesRoot.length() == 0)
cosservicesRoot = com.arjuna.orbportability.common.Configuration.configFileRoot();
- String configLocation = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_FILE,
+ String configLocation = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_FILE,
com.arjuna.orbportability.common.Configuration.configFile());
String configFile = cosservicesRoot+File.separatorChar+configLocation;
LineNumberReader input;
@@ -274,7 +274,7 @@
{
try
{
- String fileDir = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.FILE_DIR, null);
+ String fileDir = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.FILE_DIR, null);
File f = null;
if (fileDir != null && fileDir.length() != 0)
@@ -394,10 +394,10 @@
break;
case CONFIGURATION_FILE:
{
- String cosservicesRoot = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_ROOT);
+ String cosservicesRoot = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_ROOT);
if (cosservicesRoot == null || cosservicesRoot.length() == 0)
cosservicesRoot = com.arjuna.orbportability.common.Configuration.configFileRoot();
- String configLocation = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_FILE,
+ String configLocation = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_FILE,
com.arjuna.orbportability.common.Configuration.configFile());
String configFile = cosservicesRoot+File.separatorChar+configLocation;
LineNumberReader input = null;
@@ -496,7 +496,7 @@
break;
case FILE:
{
- String fileDir = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.FILE_DIR, null);
+ String fileDir = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.FILE_DIR, null);
FileOutputStream ofile = null;
if (fileDir != null && fileDir.length() != 0)
@@ -556,10 +556,10 @@
* Now check the configuration file equivalent.
*/
- String cosservicesRoot = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_ROOT);
+ String cosservicesRoot = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_ROOT);
if (cosservicesRoot == null || cosservicesRoot.length() == 0)
cosservicesRoot = com.arjuna.orbportability.common.Configuration.configFileRoot();
- String configLocation = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_FILE,
+ String configLocation = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.INITIAL_REFERENCES_FILE,
com.arjuna.orbportability.common.Configuration.configFile());
String configFile = cosservicesRoot+File.separatorChar+configLocation;
LineNumberReader input = null;
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/Configuration.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/Configuration.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/Configuration.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,7 +33,6 @@
import com.arjuna.orbportability.Services;
-import com.arjuna.common.util.logging.*;
import com.arjuna.common.util.FileLocator;
import com.arjuna.orbportability.logging.*;
@@ -215,7 +214,7 @@
if (!_bindDefaultSet)
{
- String configuredMechanism = opPropertyManager.propertyManager.getProperty(Environment.BIND_MECHANISM);
+ String configuredMechanism = opPropertyManager.getPropertyManager().getProperty(Environment.BIND_MECHANISM);
if (configuredMechanism != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/common/opPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -33,7 +33,6 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
/**
* Property manager wrapper for the ORB Portability module.
@@ -42,32 +41,8 @@
*/
public class opPropertyManager
{
- public static PropertyManager propertyManager;
-
public static PropertyManager getPropertyManager()
{
- return propertyManager;
+ return PropertyManagerFactory.getPropertyManagerForModule("orbportability", Environment.PROPERTIES_FILE);
}
-
- static
- {
- /**
- * Retrieve the property manager from the factory and add the ORB portability properties file to it.
- */
- propertyManager = PropertyManagerFactory.getPropertyManager("com.hp.mw.ts.propertymanager", "orbportability");
-
- String propertiesFilename = System.getProperty(Environment.PROPERTIES_FILE);
-
- if (propertiesFilename == null)
- propertiesFilename = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(), propertiesFilename);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/event/EventManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/event/EventManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/event/EventManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -35,7 +35,6 @@
import com.arjuna.orbportability.common.opPropertyManager;
import com.arjuna.orbportability.logging.opLogger;
-import org.omg.CORBA.Object;
import java.util.*;
/**
@@ -176,7 +175,7 @@
* are any classes for us.
*/
- Enumeration e = opPropertyManager.propertyManager.propertyNames();
+ Enumeration e = opPropertyManager.getPropertyManager().propertyNames();
while (e.hasMoreElements())
{
@@ -184,7 +183,7 @@
if (name.startsWith(Environment.EVENT_HANDLER))
{
- String val = (String) opPropertyManager.propertyManager.getProperty(name);
+ String val = (String) opPropertyManager.getPropertyManager().getProperty(name);
if (val != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/common/LocalSetup.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/common/LocalSetup.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/common/LocalSetup.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -78,7 +78,7 @@
FacilityCode.FAC_ORB_PORTABILITY, "Setting property: "+propertyName+" with value: "+params[i+1]);
}
- opPropertyManager.propertyManager.setProperty(propertyName, params[i+1]);
+ opPropertyManager.getPropertyManager().setProperty(propertyName, params[i+1]);
i++;
if (propertyName.compareTo(Environment.CORBA_DIAGNOSTICS) == 0)
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/jacorb/orb/implementations/jacorb_2_0.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/jacorb/orb/implementations/jacorb_2_0.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/jacorb/orb/implementations/jacorb_2_0.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -40,6 +40,6 @@
{
System.setProperty("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
System.setProperty("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
- opPropertyManager.propertyManager.setProperty("com.arjuna.orbportability.internal.defaultBindMechanism", Services.bindString(Services.CONFIGURATION_FILE));
+ opPropertyManager.getPropertyManager().setProperty("com.arjuna.orbportability.internal.defaultBindMechanism", Services.bindString(Services.CONFIGURATION_FILE));
}
}
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/javaidl/orb/implementations/javaidl_1_4.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/javaidl/orb/implementations/javaidl_1_4.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/orbspecific/javaidl/orb/implementations/javaidl_1_4.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -40,6 +40,6 @@
{
System.setProperty("org.omg.CORBA.ORBClass", "com.sun.corba.se.internal.Interceptors.PIORB");
System.setProperty("org.omg.CORBA.ORBSingletonClass", "com.sun.corba.se.internal.corba.ORBSingleton");
- opPropertyManager.propertyManager.setProperty("com.arjuna.orbportability.internal.defaultBindMechanism", Services.bindString(Services.CONFIGURATION_FILE));
+ opPropertyManager.getPropertyManager().setProperty("com.arjuna.orbportability.internal.defaultBindMechanism", Services.bindString(Services.CONFIGURATION_FILE));
}
}
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/utils/InitLoader.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/utils/InitLoader.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/internal/utils/InitLoader.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -37,7 +37,6 @@
import java.util.Properties;
import java.util.Enumeration;
-import java.lang.ClassLoader;
import java.lang.ClassNotFoundException;
import java.lang.IllegalAccessException;
@@ -60,7 +59,7 @@
protected void initialise ()
{
- Properties properties = opPropertyManager.propertyManager.getProperties();
+ Properties properties = opPropertyManager.getPropertyManager().getProperties();
if (properties != null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/logging/opLogger.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/logging/opLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/logging/opLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -47,9 +47,9 @@
logger = LogFactory.getLogNoi18n("com.arjuna.orbportability.logging.logger");
- _language = commonPropertyManager.propertyManager.getProperty("language", "en");
+ _language = commonPropertyManager.getPropertyManager().getProperty("language", "en");
- _country = commonPropertyManager.propertyManager.getProperty("country", "US");
+ _country = commonPropertyManager.getPropertyManager().getProperty("country", "US");
_currentLocale = new Locale(_language, _country);
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/oa/core/OA.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/oa/core/OA.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/oa/core/OA.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,7 +31,6 @@
package com.arjuna.orbportability.oa.core;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.logging.VisibilityLevel;
import com.arjuna.common.util.logging.DebugLevel;
@@ -39,9 +38,6 @@
import com.arjuna.orbportability.logging.*;
import org.omg.CORBA.Policy;
-import java.util.*;
-import java.applet.Applet;
-import java.io.*;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.CORBA.SystemException;
@@ -131,7 +127,7 @@
*/
private final void initialise ()
{
- String className = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.OA_IMPLEMENTATION);
+ String className = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.OA_IMPLEMENTATION);
if (className == null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/orb/core/ORB.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/orb/core/ORB.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/orb/core/ORB.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,17 +31,13 @@
package com.arjuna.orbportability.orb.core;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.logging.VisibilityLevel;
import com.arjuna.common.util.logging.DebugLevel;
-import com.arjuna.orbportability.common.Configuration;
-import com.arjuna.orbportability.common.Environment;
import com.arjuna.orbportability.common.opPropertyManager;
import com.arjuna.orbportability.logging.*;
import java.util.*;
import java.applet.Applet;
-import java.io.*;
import org.omg.CORBA.SystemException;
@@ -112,7 +108,7 @@
* Let the application provide its own ORB implementation.
*/
- String className = opPropertyManager.propertyManager.getProperty(com.arjuna.orbportability.common.Environment.ORB_IMPLEMENTATION);
+ String className = opPropertyManager.getPropertyManager().getProperty(com.arjuna.orbportability.common.Environment.ORB_IMPLEMENTATION);
if (className == null)
{
Modified: labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/recovery/RebindFactory.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/recovery/RebindFactory.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/classes/com/arjuna/orbportability/recovery/RebindFactory.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -35,11 +35,8 @@
import com.arjuna.orbportability.logging.opLogger;
import com.arjuna.orbportability.common.opPropertyManager;
-import java.io.FileNotFoundException;
-import java.io.IOException;
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.UNKNOWN;
import org.omg.CORBA.SystemException;
/**
@@ -72,7 +69,7 @@
if (name != null)
{
- recoveryClassName = opPropertyManager.propertyManager.getProperty(name);
+ recoveryClassName = opPropertyManager.getPropertyManager().getProperty(name);
if (recoveryClassName != null)
return createRecoveryClass(recoveryClassName);
@@ -84,7 +81,7 @@
{
String ior = orb.orb().object_to_string(obj);
- recoveryClassName = opPropertyManager.propertyManager.getProperty(ior);
+ recoveryClassName = opPropertyManager.getPropertyManager().getProperty(ior);
if (recoveryClassName != null)
return createRecoveryClass(recoveryClassName);
Deleted: labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/default-orbportability-properties.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/default-orbportability-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/default-orbportability-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- JBoss, Home of Professional Open Source
- Copyright 2006, Red Hat Middleware LLC, and individual contributors
- as indicated by the @author tags.
- See the copyright.txt in the distribution for a full listing
- of individual contributors.
- This copyrighted material is made available to anyone wishing to use,
- modify, copy, or redistribute it subject to the terms and conditions
- of the GNU Lesser General Public License, v. 2.1.
- This program is distributed in the hope that it will be useful, but WITHOUT A
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License,
- v.2.1 along with this distribution; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- MA 02110-1301, USA.
-
-
- (C) 2005-2006,
- @author JBoss Inc.
--->
-<!-- $Id: default-orbportability-properties.xml 2342 2006-03-30 13:06:17Z $ -->
-<!--
- These options are described in the orb portability manual.
- Defaults are provided here for convenience only.
-
- Please read through this file prior to using the system, and consider
- updating the specified entries.
--->
-<transaction-service
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
- <properties name="orbportability" depends="common">
- <property
- name="com.arjuna.orbportability.bindMechanism"
- value="CONFIGURATION_FILE"/>
- <!--
- The location of initial references file (default is user.home)
- -->
- <!--
- <property
- name="com.arjuna.orbportability.initialReferencesRoot"
- value=""/>
- -->
- <!--
- The name of the initial references file (default is CosServices.cfg)
- -->
- <property
- name="com.arjuna.orbportability.initialReferencesFile"
- value="CosServices.cfg"/>
- <!--
- When reading and writing IORs, they can be read/written in this
- directory. (default is serviceName)
- -->
- <!--
- <property
- name="com.arjuna.orbportability.fileDir"
- value=""/>
- -->
- <!--
- Default resolution service for the Transaction Manager Server.
- ORB specific.
- -->
- <!--
- <property
- name="com.arjuna.orbportability.resolveService"
- value=""/>
- -->
- <!--
- Event handlers.
- -->
- <!--
- <property
- name="com.arjuna.orbportability.eventHandler_0"
- value=""/>
- <property
- name="com.arjuna.orbportability.eventHandler_1"
- value=""/>
- -->
- <!--
- The ORB implementation class - this defaults to the class which
- implements support for the first supported ORB in your classpath.
- -->
- <!--
- <property
- name="com.arjuna.orbportability.orbImplementation"
- value=""/>
- -->
- <!--
- The OA implementation class - this also defaults to the class which
- implements support for the first supported ORB in your classpath
- -->
- <!--
- <property
- name="com.arjuna.orbportability.oaImplementation"
- value=""/>
- -->
-
- </properties>
-</transaction-service>
Deleted: labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/orbportability.properties_default
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/orbportability.properties_default 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/orbportability/etc/orbportability.properties_default 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,66 +0,0 @@
-#
-# JBoss, Home of Professional Open Source
-# Copyright 2006, Red Hat Middleware LLC, and individual contributors
-# as indicated by the @author tags.
-# See the copyright.txt in the distribution for a full listing
-# of individual contributors.
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions
-# of the GNU Lesser General Public License, v. 2.1.
-# This program is distributed in the hope that it will be useful, but WITHOUT A
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
-# You should have received a copy of the GNU Lesser General Public License,
-# v.2.1 along with this distribution; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-# MA 02110-1301, USA.
-#
-# (C) 2005-2006,
-# @author JBoss Inc.
-#
-#
-# Copyright (C) 1999-2003 by Arjuna Technologies Ltd. All rights Reserved.
-#
-# Arjuna Technologies Ltd.
-# Newcastle upon Tyne,
-# Tyne and Wear,
-# UK.
-#
-# $Id: orbportability.properties_default 2342 2006-03-30 13:06:17Z $
-#
-#
-# These options are described in the orb portability manual.
-# Defaults are provided here for convenience only.
-#
-# Please read through this file prior to using the system, and consider
-# updating the specified entries.
-
-com.arjuna.orbportability.bindMechanism=CONFIGURATION_FILE
-
-# The location of initial references file (default is etc)
-com.arjuna.orbportability.initialReferencesRoot=""
-
-
-# The name of the initial references file (default is CosServices.cfg)
-com.arjuna.orbportability.initialReferencesFile=CosServices.cfg
-
-
-# When reading and writing IORs, they can be read/written in this directory.
-# (default is current working directory)
-com.arjuna.orbportability.fileDir=""
-
-# (default resolution service for the Transaction Manager Server: ORB specific)
-com.arjuna.orbportability.resolveService=""
-
-# Event handlers
-
-com.arjuna.orbportability.eventHandler_0=""
-com.arjuna.orbportability.eventHandler_1=""
-
-# The ORB implementation class - this defaults to the class which implements
-# support for the first supported ORB in your classpath
-com.arjuna.orbportability.orbImplementation=""
-
-# The OA implementation class - this also defaults to the class which
-# implements support for the first supported ORB in your classpath
-com.arjuna.orbportability.oaImplementation=""
Modified: labs/jbosstm/trunk/ArjunaJTS/trailmap/src/com/arjuna/demo/jta/jdbcbank/BankClient.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/trailmap/src/com/arjuna/demo/jta/jdbcbank/BankClient.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ArjunaJTS/trailmap/src/com/arjuna/demo/jta/jdbcbank/BankClient.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -576,8 +576,8 @@
System.exit(0);
}
// Initialize the property manager with the correct JNDI credentials to use to log in to JNDI
- jdbcPropertyManager.propertyManager.setProperty("Context.INITIAL_CONTEXT_FACTORY", "com.sun.jndi.fscontext.RefFSContextFactory");
- jdbcPropertyManager.propertyManager.setProperty("Context.PROVIDER_URL", "file:/tmp/JNDI");
+ jdbcPropertyManager.getPropertyManager().setProperty("Context.INITIAL_CONTEXT_FACTORY", "com.sun.jndi.fscontext.RefFSContextFactory");
+ jdbcPropertyManager.getPropertyManager().setProperty("Context.PROVIDER_URL", "file:/tmp/JNDI");
// Create a local representation of a bank and then create a bank client to interact with it
Bank bank = new Bank();
Modified: labs/jbosstm/trunk/XTS/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src/com/arjuna/webservices/logging/WSCLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -65,8 +65,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.wsc.logging.WSCLogger");
- final String language = commonPropertyManager.propertyManager.getProperty("language","en");
- final String country = commonPropertyManager.propertyManager.getProperty("country","US");
+ final String language = commonPropertyManager.getPropertyManager().getProperty("language","en");
+ final String country = commonPropertyManager.getPropertyManager().getProperty("country","US");
final Locale currentLocale = new Locale(language, country);
log_mesg = ResourceBundle.getBundle("wsc_msg",currentLocale);
Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src/com/arjuna/webservices/logging/WSTLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -53,8 +53,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.webservices.logging.WSTLogger");
- final String language = commonPropertyManager.propertyManager.getProperty("language","en");
- final String country = commonPropertyManager.propertyManager.getProperty("country","US");
+ final String language = commonPropertyManager.getPropertyManager().getProperty("language","en");
+ final String country = commonPropertyManager.getPropertyManager().getProperty("country","US");
final Locale currentLocale = new Locale(language, country);
log_mesg = ResourceBundle.getBundle("wst_msg",currentLocale);
Modified: labs/jbosstm/trunk/XTS/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/XTS/WSAS/classes/com/arjuna/mw/wsas/logging/wsasLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -57,8 +57,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.mw.wsas.logging.wsasLogger");
- language = commonPropertyManager.propertyManager.getProperty("language","en");
- country = commonPropertyManager.propertyManager.getProperty("country","US");
+ language = commonPropertyManager.getPropertyManager().getProperty("language","en");
+ country = commonPropertyManager.getPropertyManager().getProperty("country","US");
currentLocale = new Locale(language,country);
log_mesg = ResourceBundle.getBundle("wsas_msg",currentLocale);
Modified: labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/XTS/WSCF/classes/com/arjuna/mw/wscf/logging/wscfLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -57,8 +57,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.mw.wscf.logging.wscfLogger");
- language = commonPropertyManager.propertyManager.getProperty("language","en");
- country = commonPropertyManager.propertyManager.getProperty("country","US");
+ language = commonPropertyManager.getPropertyManager().getProperty("language","en");
+ country = commonPropertyManager.getPropertyManager().getProperty("country","US");
currentLocale = new Locale(language,country);
log_mesg = ResourceBundle.getBundle("wscf_msg",currentLocale);
Modified: labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/XTS/WSTX/classes/com/arjuna/mw/wstx/logging/wstxLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -57,8 +57,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.mw.wstx.logging.wstxLogger");
- language = commonPropertyManager.propertyManager.getProperty("language","en");
- country = commonPropertyManager.propertyManager.getProperty("country","US");
+ language = commonPropertyManager.getPropertyManager().getProperty("language","en");
+ country = commonPropertyManager.getPropertyManager().getProperty("country","US");
currentLocale = new Locale(language,country);
log_mesg = ResourceBundle.getBundle("wstx_msg",currentLocale);
Modified: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -22,8 +22,8 @@
arjLogger = LogFactory.getLogNoi18n("com.arjuna.webservices.logging.XTSLogger");
- final String language = commonPropertyManager.propertyManager.getProperty("language","en");
- final String country = commonPropertyManager.propertyManager.getProperty("country","US");
+ final String language = commonPropertyManager.getPropertyManager().getProperty("language","en");
+ final String country = commonPropertyManager.getPropertyManager().getProperty("country","US");
final Locale currentLocale = new Locale(language, country);
log_mesg = ResourceBundle.getBundle("xts_msg",currentLocale);
Modified: labs/jbosstm/trunk/antbuildsystem/build.xml
===================================================================
--- labs/jbosstm/trunk/antbuildsystem/build.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/antbuildsystem/build.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -24,6 +24,10 @@
<import file="../sharedbuild.xml"/>
+ <target name="compile" depends="init">
+ <compile.macro includeant="true"/>
+ </target>
+
<target name="compile-tests"/>
<target name="run.tests"/>
Deleted: labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ConvertPropertyCase.java
===================================================================
--- labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ConvertPropertyCase.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ConvertPropertyCase.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,103 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.hp.mw.buildsystem.ant;
-
-/*
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
- *
- * Arjuna Technologies Limited,
- * Newcastle upon Tyne,
- * Tyne and Wear,
- * UK.
- *
- * $Id: ConvertPropertyCase.java 2342 2006-03-30 13:06:17Z $
- */
-
-import org.apache.tools.ant.*;
-
-/**
- * This ant task can be used to easily convert property values cases.
- *
- * @version $Id: ConvertPropertyCase.java 2342 2006-03-30 13:06:17Z $
- * @author Richard A. Begg (richard.begg at arjuna.com)
- */
-public class ConvertPropertyCase extends Task
-{
- private String _inProperty = null;
- private String _outProperty = null;
- private String _function = null;
-
- public void setInProperty(String inProperty)
- {
- _inProperty = inProperty;
- }
-
- public void setOutProperty(String outProperty)
- {
- _outProperty = outProperty;
- }
-
- public void setFunction(String function)
- {
- _function = function;
- }
-
- public String uppercase(String text)
- {
- return getProject().getProperty(text).toUpperCase();
- }
-
- public String lowercase(String text)
- {
- return getProject().getProperty(text).toLowerCase();
- }
-
- public void execute() throws BuildException
- {
- if ( _inProperty == null )
- {
- throw new BuildException("'inproperty' not set");
- }
-
- if ( _outProperty == null )
- {
- throw new BuildException("'outproperty' not set");
- }
-
- if ( _function == null )
- {
- throw new BuildException("'function' not set");
- }
-
- try
- {
- java.lang.reflect.Method function = this.getClass().getMethod(_function, new Class[] { String.class });
-
- String newValue = (String)function.invoke(this, new Object[] { _inProperty });
-
- getProject().setProperty(_outProperty, newValue);
- }
- catch (Exception e)
- {
- throw new BuildException("Failed to invoke function '"+_function+"': "+e);
- }
- }
-}
Deleted: labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/MergePropertyFiles.java
===================================================================
--- labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/MergePropertyFiles.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/MergePropertyFiles.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,215 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-/*
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
- *
- * Arjuna Technologies Ltd.
- * Newcastle upon Tyne,
- * Tyne and Wear,
- * UK.
- *
- * $Id: MergePropertyFiles.java 2342 2006-03-30 13:06:17Z $
- */
-
-package com.hp.mw.buildsystem.ant;
-
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.BuildException;
-import org.apache.xml.serialize.XMLSerializer;
-import org.apache.xml.serialize.OutputFormat;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Node;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.File;
-import java.io.FileOutputStream;
-
-/**
- * This ANT task allows an XML property file to be produced by merging property files into a
- * single property file.
- *
- * @author Richard A. Begg
- * @version $Id: MergePropertyFiles.java 2342 2006-03-30 13:06:17Z $
- */
-public class MergePropertyFiles extends Task
-{
- public final static String PROPERTIES_ELEMENT_NAME = "properties";
- public final static String NAME_ATTRIBUTE_NAME = "name";
- public final static String DEPENDS_ATTRIBUTE_NAME = "depends";
-
- public final static String PROPERTY_ELEMENT_NAME = "property";
- public final static String VALUE_ATTRIBUTE_NAME = "value";
-
- private File _master = null;
- private File _merge = null;
- private String _topLevelElementName = null;
- private boolean _override = false;
-
- public void setMaster(String filename)
- {
- _master = new File(filename);
- }
-
- public void setMerge(String filename)
- {
- _merge = new File(filename);
- }
-
- public void setTopLevelElement(String name)
- {
- _topLevelElementName = name;
- }
-
- public void setOverride(String text)
- {
- _override = new Boolean(text).booleanValue();
- }
-
- public void execute() throws BuildException
- {
- if ( _master == null )
- {
- throw new BuildException("Please specify the master property file (master)");
- }
-
- if ( _merge == null || !_merge.exists() )
- {
- throw new BuildException("Please specify a valid property file to merge (merge)");
- }
-
- merge(_master, _merge);
- }
-
- private void merge(File master, File merge) throws BuildException
- {
- log("Merging '"+master.getName()+"' with '"+merge.getName()+"'");
- Document mergedDoc = mergeProperties(master, merge);
-
- try
- {
- log("Creating merged file '"+master.getName()+"'");
-
- FileOutputStream out;
- OutputFormat of = new OutputFormat(mergedDoc);
- of.setIndenting(true);
- XMLSerializer srl = new XMLSerializer(out = new FileOutputStream(master), of);
-
- srl.serialize(mergedDoc);
-
- out.close();
- }
- catch (Exception e)
- {
- throw new BuildException("Unexpected exception while outputting merged file: "+e);
- }
- }
-
- public Document mergeProperties(File master, File merge) throws BuildException
- {
- Document masterDoc = null;
- Element masterDocRoot;
-
- try
- {
- Document mergeDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(merge);
- Element mergeDocRoot = mergeDoc.getDocumentElement();
-
- if ( master.exists() )
- {
- masterDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(master);
- masterDocRoot = masterDoc.getDocumentElement();
- }
- else
- {
- masterDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
- masterDocRoot = masterDoc.createElement(_topLevelElementName != null ? _topLevelElementName : mergeDocRoot.getNodeName());
- masterDoc.appendChild(masterDocRoot);
- }
-
- NodeList mergePropertiesElements = mergeDocRoot.getElementsByTagName(PROPERTIES_ELEMENT_NAME);
- for (int count=0;count<mergePropertiesElements.getLength();count++)
- {
- Element mergePropertiesElement = (Element)mergePropertiesElements.item(count);
- String name = mergePropertiesElement.getAttributeNode(NAME_ATTRIBUTE_NAME).getNodeValue();
-
- /** Find the equivelant element in the master document **/
- Element masterPropertiesElement = getPropertiesElement(masterDocRoot, name);
-
- /** If we have been told to override then remove the previous settings **/
- if ( _override )
- {
- masterDocRoot.removeChild(masterPropertiesElement);
- masterPropertiesElement = null;
- }
-
-
- /** If this element doesn't appear in the master document add it **/
- if ( masterPropertiesElement == null )
- {
- Node newNode = masterDoc.importNode(mergePropertiesElement, true);
- masterDocRoot.appendChild(newNode);
- }
- else
- {
- NodeList mergePropertyElements = mergePropertiesElement.getChildNodes();
-
- for (int childCount=0;childCount<mergePropertyElements.getLength();childCount++)
- {
- Node childNode = mergePropertyElements.item(childCount);
- Node newNode = masterDoc.importNode(childNode, true);
-
- masterPropertiesElement.appendChild( newNode );
- }
- }
- }
- }
- catch (BuildException e)
- {
- throw e;
- }
- catch (Exception e)
- {
- e.printStackTrace(System.err);
- throw new BuildException("Exception while merging properties file:"+e);
- }
-
- return masterDoc;
- }
-
- private Element getPropertiesElement(Element masterDocRoot, String findName)
- {
- NodeList masterPropertiesElements = masterDocRoot.getElementsByTagName(PROPERTIES_ELEMENT_NAME);
- for (int count=0;count<masterPropertiesElements.getLength();count++)
- {
- Element mergePropertiesElement = (Element)masterPropertiesElements.item(count);
- String name = mergePropertiesElement.getAttributeNode(NAME_ATTRIBUTE_NAME).getNodeValue();
-
- if ( name.equals(findName) )
- {
- return mergePropertiesElement;
- }
- }
-
- return null;
- }
-}
Deleted: labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ModuleToProduct.java
===================================================================
--- labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ModuleToProduct.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/ModuleToProduct.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,184 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.hp.mw.buildsystem.ant;
-
-/**
- * Ant task to take individual module jar files and create product jar files
- * from them. Parameters are <EM>destdir</EM>, <EM>destfile</EM>,
- * <EM>workdir</EM> and a fileset containing the complete list of module jar
- * files.
- *
- * Unpacks the module jar files into the work directory. Jar files with a
- * <EM>-orbname</EM> suffix are unpacked into <EM>-orbname</EM>
- * directories. Jar files without the suffix are unpacked into the default
- * directory. All these directories are then packed into jar files in the
- * destination directory and are named with the prefix <EM>destfile</EM>
- * converted to lower case.
- *
- * @author Julian Coleman (julian_coleman at hp.com)
- * @version $Id: ModuleToProduct.java 2342 2006-03-30 13:06:17Z $
- */
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.taskdefs.Delete;
-import org.apache.tools.ant.taskdefs.Expand;
-import org.apache.tools.ant.taskdefs.Jar;
-import org.apache.tools.ant.taskdefs.Mkdir;
-import org.apache.tools.ant.types.FileSet;
-
-public class ModuleToProduct extends org.apache.tools.ant.Task {
-
- private String workdir = ".work";
- private String destdir, destfile;
- private List libs = new ArrayList() ;
- private HashSet orbList = new HashSet();
- private boolean ignoreOrb = false ;
-
- /**
- * Set the destination directory.
- */
- public void setDestdir(String destdir) {
- this.destdir = destdir;
- }
-
- /**
- * Set the destination filename root.
- */
- public void setDestfile(String destfile) {
- this.destfile = destfile.toLowerCase();
- }
-
- /**
- * Set the temporary working directory.
- */
- public void setWorkdir(String workdir) {
- this.workdir = workdir;
- }
-
- /**
- * Set the list of .jar files to process.
- */
- public void addFileset(FileSet fileSet) {
- libs.add(fileSet) ;
- }
-
- /**
- * Set the ignore orb glaf.
- */
- public void setIgnoreorb(final boolean ignoreOrb) {
- this.ignoreOrb = ignoreOrb;
- }
-
- /**
- * Unjar list of jar files into separate directories.
- * Jar directories into separate product jar files.
- */
- public void execute() throws BuildException {
- DirectoryScanner ds;
- int hyphen;
- String orbName, srcDir, destDir;
- Expand unjar = new Expand();
- Delete delete = new Delete();
- Mkdir mkdir = new Mkdir();
- Jar jar = new Jar();
-
- try {
- /* Remove any existing work directory */
- delete.setProject(getProject());
- delete.setDir(new File(workdir));
- delete.execute();
-
- /* Get list of files */
- final int numLibs = libs.size() ;
- for(int count = 0 ; count < numLibs ; count++)
- {
- final FileSet fileSet = (FileSet)libs.get(count) ;
- ds = fileSet.getDirectoryScanner(project);
- ds.scan();
- final String[] files = ds.getIncludedFiles() ;
- for (int i = 0; i < files.length;i++) {
- /* Build extract directory name */
- destDir = workdir.concat("/classes");
- hyphen = files[i].lastIndexOf('-');
- orbName = new String();
- if (!ignoreOrb && (hyphen > 0)) {
- orbName = orbName.concat(
- files[i].substring(hyphen,
- files[i].indexOf(".jar")));
- destDir = destDir.concat(orbName);
- if (!orbList.contains(orbName)) {
- orbList.add(orbName);
- }
- } else {
- if (!orbList.contains("")) {
- orbList.add("");
- }
- }
- /* Unpack jar file */
- unjar.setProject(getProject());
- unjar.setDest(new File(destDir));
- unjar.setSrc(new File(ds.getBasedir(), files[i]));
- unjar.setOverwrite(true);
- unjar.execute();
- }
- }
- for (Iterator i = orbList.iterator(); i.hasNext();) {
- /* Delete META-INF directory */
- orbName = i.next().toString();
- srcDir = workdir.concat("/classes");
- srcDir = srcDir.concat(orbName);
- srcDir = srcDir.concat("/META-INF");
- delete.setDir(new File(srcDir));
- delete.execute();
-
- /* Create destination directory */
- mkdir.setProject(getProject());
- mkdir.setDir(new File(destdir));
- mkdir.execute();
-
- /* Create new jar files */
- srcDir = workdir.concat("/classes");
- srcDir = srcDir.concat(orbName);
- destDir = destdir.concat("/");
- destDir = destDir.concat(destfile);
- destDir = destDir.concat(orbName);
- destDir = destDir.concat(".jar");
- jar.setProject(getProject());
- jar.setBasedir(new File(srcDir));
- jar.setJarfile(new File(destDir));
- jar.execute();
- }
- /* Remove the work directory */
- delete.setDir(new File(workdir));
- delete.execute();
- }
- catch (Exception e) {
- throw new BuildException(e);
- }
- }
-}
Deleted: labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/VersToProp.java
===================================================================
--- labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/VersToProp.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/antbuildsystem/classes/com/hp/mw/buildsystem/ant/VersToProp.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,79 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.hp.mw.buildsystem.ant;
-
-/**
- * Ant task to convert an HP-TS version number to a property filename part.
- * Parameters are <EM>version</EM>, <EM>property</EM>.
- *
- * Takes an HTPS version number in the form <EM>A.B.C</EM> and stores the
- * HPTS property filename part as <EM>_A_B</EM> in the specified Ant property.
- * Generates an empty string for version numbers not in the format
- * <EM>A.B.C</EM>.
- *
- * @author Julian Coleman (julian_coleman at hp.com)
- * @version $Id: VersToProp.java 2342 2006-03-30 13:06:17Z $
- */
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-
-public class VersToProp extends Task {
-
- private String property, version;
-
- /**
- * Set the property name to store the property filename part.
- */
- public void setProperty(String property) {
- this.property = property;
- }
-
- /**
- * Set the version number to convert.
- */
- public void setVersion(String version) {
- this.version = version;
- }
-
- /**
- * Do the conversion and store the result in the specified property.
- */
- public void execute() throws BuildException {
-
- int dot1;
- String fileVersion = "_";
-
- try {
- dot1 = version.indexOf('.');
- fileVersion = fileVersion.concat(version.substring(0, dot1));
- fileVersion = fileVersion.concat("_");
- fileVersion = fileVersion.concat(version.substring(dot1 + 1, version.indexOf('.', dot1 + 1)));
- project.setProperty(property, fileVersion);
- }
- catch(ArrayIndexOutOfBoundsException e) {
- project.setProperty(property, "");
- }
- catch(StringIndexOutOfBoundsException e) {
- project.setProperty(property, "");
- }
- }
-}
Deleted: labs/jbosstm/trunk/antbuildsystem/lib/ext/xercesImpl.jar
===================================================================
(Binary files differ)
Deleted: labs/jbosstm/trunk/antbuildsystem/lib/ext/xmlParserAPIs.jar
===================================================================
(Binary files differ)
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerService.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerService.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jta/TransactionManagerService.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -31,7 +31,6 @@
package com.arjuna.ats.jbossatx.jta;
import org.jboss.bootstrap.spi.ServerConfig;
-import org.jboss.tm.*;
import org.jboss.logging.Logger;
@@ -52,6 +51,7 @@
import com.arjuna.ats.arjuna.utils.Utility;
import com.arjuna.ats.arjuna.common.arjPropertyManager;
import com.arjuna.ats.arjuna.common.Configuration;
+import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.ats.internal.tsmx.mbeans.PropertyServiceJMXPlugin;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
@@ -107,7 +107,7 @@
* Hence the static initializer block.
* see also http://jira.jboss.com/jira/browse/JBTM-20
*/
- com.arjuna.ats.arjuna.common.arjPropertyManager.propertyManager.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
+ com.arjuna.ats.arjuna.common.arjPropertyManager.getPropertyManager().setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
//System.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler") ;
}
@@ -186,7 +186,7 @@
}
/** Register management plugin **/
- com.arjuna.ats.arjuna.common.arjPropertyManager.propertyManager.addManagementPlugin(new PropertyServiceJMXPlugin());
+ com.arjuna.ats.arjuna.common.arjPropertyManager.getPropertyManager().addManagementPlugin(new PropertyServiceJMXPlugin());
// Associate transaction reaper with our context classloader.
TransactionReaper.create() ;
@@ -240,13 +240,13 @@
/** Bind the transaction manager and tsr JNDI references **/
log.info("Binding TransactionManager JNDI Reference");
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerDelegate.class.getName());
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_UT_IMPLEMENTATION, UserTransactionImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerDelegate.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_UT_IMPLEMENTATION, UserTransactionImple.class.getName());
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TSR_IMPLEMENTATION, TransactionSynchronizationRegistryImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TSR_IMPLEMENTATION, TransactionSynchronizationRegistryImple.class.getName());
// When running inside the app server, we bind TSR in the JNDI java:/ space, not its required location.
// It's the job of individual components (EJB3, web, etc) to copy the ref to the java:/comp space)
- jtaPropertyManager.propertyManager.setProperty(Environment.TSR_JNDI_CONTEXT, "java:/TransactionSynchronizationRegistry");
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.TSR_JNDI_CONTEXT, "java:/TransactionSynchronizationRegistry");
JNDIManager.bindJTATransactionManagerImplementation();
JNDIManager.bindJTATransactionSynchronizationRegistryImplementation();
@@ -287,7 +287,7 @@
private boolean isRecoveryManagerRunning() throws Exception
{
boolean active = false;
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
if ( pm != null )
{
@@ -739,7 +739,7 @@
public InetAddress getTransactionStatusManagerInetAddress()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
try {
return Utility.hostNameToInetAddress(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_ADDRESS), "");
} catch(UnknownHostException e) {
@@ -760,7 +760,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_ADDRESS, tsmInetAddress.getHostAddress());
isTransactionStatusManagerBindAddressSet = true;
}
@@ -769,7 +769,7 @@
public int getTransactionStatusManagerPort()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
return Integer.parseInt(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_PORT));
}
@@ -783,7 +783,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_PORT, ""+port);
}
}
@@ -792,7 +792,7 @@
public InetAddress getRecoveryInetAddress()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
try {
return Utility.hostNameToInetAddress(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_ADDRESS), "");
} catch(UnknownHostException e) {
@@ -811,7 +811,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_ADDRESS, recoveryInetAddress.getHostAddress());
isRecoveryManagerBindAddressSet = true;
}
@@ -819,7 +819,7 @@
public int getRecoveryPort()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
return Integer.parseInt(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_PORT));
}
@@ -833,7 +833,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_PORT, ""+port);
}
}
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -32,7 +32,6 @@
import org.jboss.bootstrap.spi.ServerConfig;
import org.jboss.iiop.CorbaORBService;
-import org.jboss.tm.*;
import org.jboss.logging.Logger;
import com.arjuna.ats.internal.jbossatx.jts.PropagationContextWrapper;
import com.arjuna.ats.internal.jbossatx.jts.jca.XATerminator;
@@ -57,6 +56,7 @@
import com.arjuna.ats.arjuna.recovery.RecoveryModule;
import com.arjuna.ats.arjuna.utils.Utility;
import com.arjuna.ats.arjuna.common.arjPropertyManager;
+import com.arjuna.ats.arjuna.common.recoveryPropertyManager;
import com.arjuna.orbportability.ORB;
import com.arjuna.orbportability.OA;
@@ -121,7 +121,7 @@
* Hence the static initializer block.
* see also http://jira.jboss.com/jira/browse/JBTM-20
*/
- com.arjuna.ats.arjuna.common.arjPropertyManager.propertyManager.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
+ com.arjuna.ats.arjuna.common.arjPropertyManager.getPropertyManager().setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
//System.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler") ;
}
@@ -193,7 +193,7 @@
System.setProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, alwaysPropagateProperty);
/** Register management plugin **/
- com.arjuna.ats.arjuna.common.arjPropertyManager.propertyManager.addManagementPlugin(new PropertyServiceJMXPlugin());
+ com.arjuna.ats.arjuna.common.arjPropertyManager.getPropertyManager().addManagementPlugin(new PropertyServiceJMXPlugin());
// Associate transaction reaper with our context classloader.
TransactionReaper.create() ;
@@ -213,13 +213,13 @@
/** Bind the transaction manager and tsr JNDI reference **/
log.info("Binding TransactionManager JNDI Reference");
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerDelegate.class.getName());
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_UT_IMPLEMENTATION, UserTransactionImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TM_IMPLEMENTATION, TransactionManagerDelegate.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_UT_IMPLEMENTATION, UserTransactionImple.class.getName());
- jtaPropertyManager.propertyManager.setProperty(Environment.JTA_TSR_IMPLEMENTATION, TransactionSynchronizationRegistryImple.class.getName());
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.JTA_TSR_IMPLEMENTATION, TransactionSynchronizationRegistryImple.class.getName());
// When running inside the app server, we bind TSR in the JNDI java:/ space, not its required location.
// It's the job of individual components (EJB3, web, etc) to copy the ref to the java:/comp space)
- jtaPropertyManager.propertyManager.setProperty(Environment.TSR_JNDI_CONTEXT, "java:/TransactionSynchronizationRegistry");
+ jtaPropertyManager.getPropertyManager().setProperty(Environment.TSR_JNDI_CONTEXT, "java:/TransactionSynchronizationRegistry");
JNDIManager.bindJTATransactionManagerImplementation();
JNDIManager.bindJTATransactionSynchronizationRegistryImplementation();
@@ -320,7 +320,7 @@
private boolean isRecoveryManagerRunning() throws Exception
{
boolean active = false;
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
if ( pm != null )
{
@@ -407,7 +407,7 @@
}
else
{
- jtsPropertyManager.propertyManager.setProperty(com.arjuna.ats.jts.common.Environment.DEFAULT_TIMEOUT, Integer.toString(timeout));
+ jtsPropertyManager.getPropertyManager().setProperty(com.arjuna.ats.jts.common.Environment.DEFAULT_TIMEOUT, Integer.toString(timeout));
}
}
}
@@ -421,7 +421,7 @@
*/
public int getTransactionTimeout()
{
- final String timeout = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.DEFAULT_TIMEOUT);
+ final String timeout = jtsPropertyManager.getPropertyManager().getProperty(com.arjuna.ats.jts.common.Environment.DEFAULT_TIMEOUT);
if (timeout != null)
{
try
@@ -815,7 +815,7 @@
public InetAddress getTransactionStatusManagerInetAddress()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
try {
return Utility.hostNameToInetAddress(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_ADDRESS), "");
} catch(UnknownHostException e) {
@@ -836,7 +836,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_ADDRESS, tsmInetAddress.getHostAddress());
isTransactionStatusManagerBindAddressSet = true;
}
@@ -845,7 +845,7 @@
public int getTransactionStatusManagerPort()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
return Integer.parseInt(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_PORT));
}
@@ -859,7 +859,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.TRANSACTION_STATUS_MANAGER_PORT, ""+port);
}
}
@@ -868,7 +868,7 @@
public InetAddress getRecoveryInetAddress()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
try {
return Utility.hostNameToInetAddress(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_ADDRESS), "");
} catch(UnknownHostException e) {
@@ -887,7 +887,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_ADDRESS, recoveryInetAddress.getHostAddress());
isRecoveryManagerBindAddressSet = true;
}
@@ -895,7 +895,7 @@
public int getRecoveryPort()
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
return Integer.parseInt(pm.getProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_PORT));
}
@@ -909,7 +909,7 @@
}
else
{
- PropertyManager pm = PropertyManagerFactory.getPropertyManager("com.arjuna.ats.propertymanager", "recoverymanager");
+ PropertyManager pm = recoveryPropertyManager.getPropertyManager();
pm.setProperty(com.arjuna.ats.arjuna.common.Environment.RECOVERY_MANAGER_PORT, ""+port);
}
}
Modified: labs/jbosstm/trunk/common/build.xml
===================================================================
--- labs/jbosstm/trunk/common/build.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/build.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -22,12 +22,59 @@
<property name="modulename" value="common"/>
+ <property name="global.ext.test.libs" value="junit-4.6.jar"/>
+
<import file="../sharedbuild.xml"/>
<target name="run.tests">
+
+ <javadoc sourcepath="${tests.dir}"
+ packagenames="com.hp.mwtests.commonlogging.testlevels"
+ failonerror="yes"
+ private="yes"
+ defaultexcludes="yes">
+
+ <doclet name="com.hp.mw.buildsystem.doclet.resbundledoclet.ResourceBundleDoclet">
+ <path>
+ <pathelement location="${sharedbuild.base.dir}/antbuildsystem/build/lib/buildsystem.jar"/>
+ </path>
+ <!-- force absolute path for -basedir or bad things happen -->
+ <param name="-basedir" value="${basedir}/${build.dir}/tests"/>
+ <param name="-resourcebundle" value="TestLevels_en_US.properties"/>
+ </doclet>
+
+ </javadoc>
+
+ <copy todir="${build.dir}/tests" flatten="true">
+ <fileset dir="${tests.dir}" includes="**/logging_msg*"/>
+ <fileset dir="${tests.dir}" includes="**/test-product.xml"/>
+ </copy>
+
<run.tests.macro>
<tests><fileset dir="tests" includes="**/TestLevels.java"/></tests>
</run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/logi18n.java"/></tests>
+ </run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/DebugExt.java"/></tests>
+ </run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/SetPropertyTest.java"/></tests>
+ </run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/PropertiesTest.java"/></tests>
+ </run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/SimpleTest.java"/></tests>
+ </run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/SystemPropertyTest.java"/></tests>
+ </run.tests.macro>
+ <run.tests.macro>
+ <tests><fileset dir="tests" includes="**/IOTest.java"/></tests>
+ </run.tests.macro>
+
</target>
</project>
\ No newline at end of file
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/DefaultLog.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/DefaultLog.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/DefaultLog.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -152,7 +152,7 @@
// ------------------------------------------------------------ Initializer
private static String getStringProperty(String name) {
- String prop = commonPropertyManager.propertyManager.getProperty(name);
+ String prop = commonPropertyManager.getPropertyManager().getProperty(name);
// if the property manager has no info set, use the system property
// and if this isn't set either, default to JAKARTA simple logging.
if (prop == null) {
@@ -227,7 +227,7 @@
setLevel(DefaultLog.LOG_LEVEL_INFO);
// Set log level from properties
- String lvl = commonPropertyManager.propertyManager.getProperty(LOG_LEVEL, null);
+ String lvl = commonPropertyManager.getPropertyManager().getProperty(LOG_LEVEL, null);
if(null == lvl) {
lvl = System.getProperty(LOG_LEVEL + "info");
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/LogImpl.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/LogImpl.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/LogImpl.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -92,7 +92,7 @@
String defaultLog = "false";
try {
- defaultLog = commonPropertyManager.propertyManager.getProperty(DefaultLog.LOG_ENABLED_PROPERTY, null);
+ defaultLog = commonPropertyManager.getPropertyManager().getProperty(DefaultLog.LOG_ENABLED_PROPERTY, null);
// if the property manager has no info set, use the system property
// and if this isn't set either, default to false.
if (defaultLog == null) {
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/logging/commonPropertyManager.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -23,8 +23,8 @@
/**
* This class is used to control properties values for CLF.
*
- * The properties can originate either from a configuration file (by default CommonLogging.properties or
- * CommonLogging.xml) or it can be primed by using the class directly from an embedding product (such as
+ * The properties can originate either from a configuration file (by default common.properties)
+ * or it can be primed by using the class directly from an embedding product (such as
* the JBoss Transaction Service).
*
* The default file location can be overridden by setting the property
@@ -35,34 +35,11 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
-import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
public class commonPropertyManager
{
- public static PropertyManager propertyManager;
-
- static
- {
- /*
- * Retrieve the property manager from the factory and add the CLF properties file to it.
- */
- propertyManager = PropertyManagerFactory.getPropertyManager("com.hp.mw.ts.propertymanager", "common");
-
- //TR-2003-08-07: removed loading of a properties file for logging, since all log configuration
- // is now delegated to the underlying logging framework.
- // reinserted to support fine-grained logging configuration
- String defaultPropertyFile = System.getProperty("com.arjuna.common.util.logging.propertiesFile");
-
- if (defaultPropertyFile == null)
- defaultPropertyFile = Configuration.propertiesFile();
-
- try
- {
- propertyManager.load(XMLFilePlugin.class.getName(),defaultPropertyFile);
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
+ public static PropertyManager getPropertyManager()
+ {
+ return PropertyManagerFactory.getPropertyManagerForModule("common", "com.arjuna.common.util.logging.propertiesFile");
+ }
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/PropertyManagerImpl.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/PropertyManagerImpl.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/PropertyManagerImpl.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -20,16 +20,16 @@
*/
package com.arjuna.common.internal.util.propertyservice;
-import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.util.propertyservice.propertycontainer.PropertyManagerPluginInterface;
import com.arjuna.common.util.propertyservice.Environment;
-import com.arjuna.common.util.exceptions.LoadPropertiesException;
-import com.arjuna.common.util.exceptions.ManagementPluginException;
import com.arjuna.common.util.propertyservice.plugins.PropertyManagerIOPlugin;
import com.arjuna.common.util.propertyservice.plugins.PropertyManagementPlugin;
-import com.arjuna.common.util.propertyservice.propertycontainer.PropertyManagerPluginInterface;
+import com.arjuna.common.util.exceptions.LoadPropertiesException;
import com.arjuna.common.util.exceptions.SavePropertiesException;
+import com.arjuna.common.util.exceptions.ManagementPluginException;
-import java.util.*;
+import java.util.Properties;
+import java.util.Enumeration;
import java.io.IOException;
/*
@@ -51,45 +51,19 @@
public class PropertyManagerImpl implements PropertyManagerPluginInterface
{
/** Specifies whether the property manager is in verbose mode **/
- private static boolean _verbose = false;
-
- /** This is the top level property manager **/
- private PropertyManagerImpl _topLevelPropertyManager = this;
-
- /** The parent and children of this property manager **/
- private HashSet _parentPropertyManagers;
- private HashSet _childPropertyManagers;
-
+ protected static boolean _verbose = false;
/** Properties stored within this property manager **/
- private Properties _properties;
-
+ protected Properties _properties;
/** The name of this property manager **/
- private String _name;
-
+ protected String _name;
/** The uri associated with this property manager **/
- private String _associatedUri;
- private String _associatedPluginClassname;
+ protected String _associatedUri;
+ private String _associatedPluginClassname;
- public PropertyManagerImpl(String name)
- {
- _name = name;
- _parentPropertyManagers = new HashSet();
- _childPropertyManagers = new HashSet();
-
- _properties = new Properties();
+ public PropertyManagerImpl(String name) {
_associatedUri = null;
- }
-
- public PropertyManagerImpl(String name, PropertyManagerImpl parent)
- {
- this(name);
-
- _topLevelPropertyManager = parent;
- }
-
- public PropertyManagerPluginInterface getTopLevelPropertyManager()
- {
- return _topLevelPropertyManager;
+ _name = name;
+ _properties = new Properties();
}
/**
@@ -119,17 +93,17 @@
_associatedUri = uri;
}
- public String getIOPluginClassname()
+ public String getIOPluginClassname()
{
return _associatedPluginClassname;
}
- public void setIOPluginClassname(String classname)
+ public void setIOPluginClassname(String classname)
{
_associatedPluginClassname = classname;
}
- /**
+ /**
* Get the value of the property with the name <code>name</code>
*
* @param name The name of the property to retrieve the value of.
@@ -140,38 +114,13 @@
/** Get the system property **/
String value = System.getProperty(name);
- /** If the system property is null look in this property managers sub-tree **/
- value = value != null ? value : getPropertyFromSubTree(name);
+ /** If the system property is null look in the local properties **/
+ value = value != null ? value : _properties.getProperty(name);
return value;
}
/**
- * Get the property from the sub-tree without checking the system
- * properties.
- * @param name the property name
- * @return the property value
- */
- private String getPropertyFromSubTree(String name)
- {
- /** look in this property managers properties **/
- String value = _properties.getProperty(name);
-
- if ( value == null )
- {
- /** Else search upwards **/
- Iterator itr = _parentPropertyManagers.iterator();
- while (itr.hasNext() && value == null)
- {
- PropertyManagerImpl pm = (PropertyManagerImpl)itr.next();
- value = pm.getPropertyFromSubTree(name);
- }
- }
-
- return value;
- }
-
- /**
* Get the value of the property with the name <code>name</code>.
* If the property cannot be found return the value <code>defaultValue</code>.
*
@@ -186,7 +135,7 @@
return value == null ? defaultValue : value;
}
- /**
+ /**
* Set the value of the property <code>name</code> to <code>value</code>.
*
* @param name The name of the property to set.
@@ -198,7 +147,7 @@
return setProperty(name, value, true);
}
- /**
+ /**
* Set the value of the property <code>name</code> to <code>value</code>.
*
* @param name The name of the property to set.
@@ -214,17 +163,14 @@
System.setProperty(name, value);
}
- String oldValue = setLocalProperty(name, value);
+ String oldValue = _properties.getProperty(name);
- if ( oldValue == null )
- {
- _properties.setProperty(name, value);
- }
+ _properties.setProperty(name, value);
return oldValue;
}
- /**
+ /**
* Removes the property from the property manager.
* @param name The name of the property to remove.
* @return previous value of the property
@@ -237,52 +183,17 @@
System.getProperties().remove(name);
}
- String oldValue = removeLocalProperty(name);
+ String oldValue = _properties.getProperty(name);
- return oldValue;
- }
+ if ( oldValue != null )
+ {
+ _properties.remove(name);
+ }
- private String removeLocalProperty(String name)
- {
- PropertyManagerImpl pm = this;
- String oldValue = _properties.getProperty(name);
-
- if ( oldValue != null )
- {
- _properties.remove(name);
- }
-
- Iterator itr = _parentPropertyManagers.iterator();
- while ( oldValue == null && itr.hasNext() )
- {
- pm = (PropertyManagerImpl)itr.next();
- oldValue = pm.removeLocalProperty(name);
- }
-
return oldValue;
}
- private String setLocalProperty(String name, String value)
- {
- PropertyManagerImpl pm = this;
- String oldValue = _properties.getProperty(name);
-
- if ( oldValue != null )
- {
- _properties.setProperty(name, value);
- }
-
- Iterator itr = _parentPropertyManagers.iterator();
- while ( oldValue == null && itr.hasNext() )
- {
- pm = (PropertyManagerImpl)itr.next();
- oldValue = pm.setLocalProperty(name, value);
- }
-
- return oldValue;
- }
-
- /**
+ /**
* Get the properties stored in this property manager only.
* @return the Properties
*/
@@ -291,7 +202,7 @@
return _properties;
}
- /**
+ /**
* Get all the properties stored in this property manager and it's parents.
* It also includes the system properties.
*
@@ -299,7 +210,7 @@
*/
public Properties getProperties()
{
- Properties returnProps = getAllProperties();
+ Properties returnProps = (Properties)_properties.clone();
returnProps.putAll(System.getProperties());
@@ -307,29 +218,6 @@
}
/**
- * This is an internal method which retrieves all the properties stored
- * in this property manager and it's parents. But it does not include
- * the properties stored in system.
- *
- * @return the Properties
- */
- public Properties getAllProperties()
- {
- Properties returnProps = new Properties();
- Iterator itr = _parentPropertyManagers.iterator();
- while (itr.hasNext())
- {
- PropertyManagerImpl pm = (PropertyManagerImpl)itr.next();
-
- returnProps.putAll(pm.getAllProperties());
- }
-
- returnProps.putAll(_properties);
-
- return returnProps;
- }
-
- /**
* Returns an enumeration of the property names
* @return the enumeration
*/
@@ -338,7 +226,7 @@
return getProperties().keys();
}
- /**
+ /**
* Loads properties from a given URI using the given property manager plugin.
* This plugin can be overridden by setting the system property 'propertyservice.plugin'.
*
@@ -350,15 +238,22 @@
{
try
{
+ String existingUri = getUri();
+ if(existingUri != null && !existingUri.equals(uri)) {
+ throw new LoadPropertiesException("Not allowed to reload from a different uri! [existing: "+existingUri+", requested: "+uri+"]");
+ }
+
/** Check to see if the system property has been set **/
String classname = System.getProperty(Environment.OVERRIDING_PLUGIN_CLASSNAME);
classname = classname == null ? pluginClassname : classname;
PropertyManagerIOPlugin plugin = (PropertyManagerIOPlugin)Thread.currentThread().getContextClassLoader().loadClass(classname).newInstance();
- plugin.load(uri, _topLevelPropertyManager, _verbose);
+ plugin.load(uri, this, _verbose);
+
+ this.setUri(uri);
}
- catch (java.io.IOException e)
+ catch (IOException e)
{
throw e;
}
@@ -368,7 +263,7 @@
}
}
- /**
+ /**
* Saves the properties stored in this property manager using the given
* property manager plugin. This plugin can be overridden by setting the
* system property 'propertyservice.plugin'
@@ -378,9 +273,9 @@
* load the properties is also used to save them.
* @param uri The URI to save to. If null is provided the uri used to load the properties
* is also used to save them.
- * @throws IOException
+ * @throws java.io.IOException
* @throws ClassNotFoundException
- * @throws SavePropertiesException
+ * @throws com.arjuna.common.util.exceptions.SavePropertiesException
*/
public synchronized void save(String pluginClassname, String uri) throws IOException, ClassNotFoundException, SavePropertiesException
{
@@ -399,7 +294,7 @@
plugin.save(uri, this);
}
- catch (java.io.IOException e)
+ catch (IOException e)
{
throw e;
}
@@ -410,123 +305,31 @@
}
}
- public boolean verbose()
+ public boolean verbose()
{
return _verbose;
}
- /**
- * Adds the given property manager as a child of this property manager
- *
- * @param pm The property manager to add as a child
- */
- public void addChild(PropertyManager pm)
- {
- if ( !_childPropertyManagers.contains(pm) )
- {
- _childPropertyManagers.add(pm);
- ((PropertyManagerImpl)pm).addParent(this);
- }
- }
-
- /**
- * This method adds a parent property manager.
- * @param pm The property manager to add as a parent.
- */
- public void addParent(PropertyManager pm)
- {
- if ( !_parentPropertyManagers.contains(pm) )
- {
- _parentPropertyManagers.add(pm);
- ((PropertyManagerImpl)pm).addChild(this);
- }
- }
-
- /**
- * This method creates a property manager with the name <code>moduleName</code>.
- * @param modulename the name of the module
- * @return the PropertyManagerPluginInterface
- */
- public PropertyManagerPluginInterface createPropertyManager(String modulename)
- {
- return new PropertyManagerImpl(modulename, _topLevelPropertyManager);
- }
-
- /**
- * This method returns an array of parents to the property manager.
- * @return a PropertyManagerPluginInterface[]
- */
- public PropertyManagerPluginInterface[] getParents()
- {
- PropertyManagerPluginInterface[] pms = new PropertyManagerPluginInterface[_parentPropertyManagers.size()];
- _parentPropertyManagers.toArray(pms);
- return pms;
- }
-
- /**
- * This method returns an array of the children of the current property manager.
- * @return a PropertyManagerPluginInterface[]
- */
- public PropertyManagerPluginInterface[] getChildren()
- {
- PropertyManagerPluginInterface[] pms = new PropertyManagerPluginInterface[_childPropertyManagers.size()];
- _childPropertyManagers.toArray(pms);
- return pms;
- }
-
- /**
+ /**
* This adds a management plugin to this property manager.
- *
- * @param plugin The proeprty management plugin to plugin.
- * @throws IOException
- * @throws ManagementPluginException
- */
- public void addManagementPlugin(PropertyManagementPlugin plugin) throws IOException, ManagementPluginException
- {
- try
- {
- plugin.initialise(this);
- }
- catch (java.io.IOException e)
- {
- throw e;
- }
- catch (Exception e)
- {
- throw new ManagementPluginException(e.toString(), e);
- }
- }
-
- public PropertyManagerPluginInterface getChild(String moduleName)
- {
- PropertyManagerPluginInterface returnPm = null;
- Iterator itr = _childPropertyManagers.iterator();
-
- while ( returnPm == null && itr.hasNext() )
- {
- PropertyManagerImpl pm = (PropertyManagerImpl)itr.next();
-
- if ( pm.getName().equals(moduleName) )
- {
- returnPm = pm;
- }
- }
-
- if ( returnPm == null )
- {
- addChild(returnPm = createPropertyManager(moduleName));
- }
-
- return returnPm;
- }
-
- static
- {
- String verboseSetting = System.getProperty(Environment.VERBOSE_PROPERTY_MANAGER);
-
- if ( verboseSetting != null && verboseSetting.equalsIgnoreCase("ON") )
- {
- _verbose = true;
- }
- }
+ *
+ * @param plugin The proeprty management plugin to plugin.
+ * @throws java.io.IOException
+ * @throws com.arjuna.common.util.exceptions.ManagementPluginException
+ */
+ public void addManagementPlugin(PropertyManagementPlugin plugin) throws IOException, ManagementPluginException
+ {
+ try
+ {
+ plugin.initialise(this);
+ }
+ catch (IOException e)
+ {
+ throw e;
+ }
+ catch (Exception e)
+ {
+ throw new ManagementPluginException(e.toString(), e);
+ }
+ }
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/plugins/io/XMLFilePlugin.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/plugins/io/XMLFilePlugin.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/internal/util/propertyservice/plugins/io/XMLFilePlugin.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -22,31 +22,15 @@
import com.arjuna.common.util.propertyservice.plugins.PropertyManagerIOPlugin;
import com.arjuna.common.util.propertyservice.propertycontainer.PropertyManagerPluginInterface;
-import com.arjuna.common.util.exceptions.LoadPropertiesException;
-import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.StringPropertyReplacer;
-import com.arjuna.common.util.FileLocator;
+import com.arjuna.common.util.exceptions.LoadPropertiesException;
import com.arjuna.common.util.exceptions.SavePropertiesException;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.DocumentBuilder;
-import java.io.IOException;
-import java.io.FileOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.Hashtable;
+import java.io.*;
import java.util.Enumeration;
-import java.util.StringTokenizer;
-import java.util.ArrayList;
import java.util.Properties;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Node;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
@@ -61,57 +45,7 @@
public class XMLFilePlugin implements PropertyManagerIOPlugin
{
- private final static String PROPERTIES_ELEMENT_NAME = "properties";
- private final static String DEPENDS_ATTRIBUTE_NAME = "depends";
-
- private final static String PROPERTY_ELEMENT_NAME = "property";
- private final static String NAME_ATTRIBUTE_NAME = "name";
- private final static String VALUE_ATTRIBUTE_NAME = "value";
- private final static String PROPERTY_TYPE_ATTRIBUTE_NAME = "type";
-
- private final static String SYSTEM_PROPERTY_TYPE_NAME = "system";
-
- private static DocumentBuilder _documentBuilder;
-
- /**
- * This hashtable is used to store the URI's of files already loaded.
- * The map is from PropertyManagerPluginInterface -> URI[]
- * A PropertyManagerPluginInterface can only load the properties from a
- * file once.
- */
- private static Hashtable _loadedFiles = new Hashtable();
-
- private static void setURILoaded(PropertyManagerPluginInterface pcm, String uri)
- {
- ArrayList uris = (ArrayList)_loadedFiles.get(pcm);
-
- if ( uris == null )
- {
- uris = new ArrayList(1);
- _loadedFiles.put(pcm, uris);
- }
-
- if ( !uris.contains(uri) )
- {
- uris.add(uri);
- }
- }
-
- private static boolean isURILoaded(PropertyManagerPluginInterface pcm, String uri)
- {
- boolean loaded = false;
-
- ArrayList uris = (ArrayList)_loadedFiles.get(pcm);
-
- if ( uris != null )
- {
- loaded = uris.contains(uri);
- }
-
- return loaded;
- }
-
- /**
+ /*
* This method loads the properties stored at the given <code>uri</code>. The
* plugin uses the <code>PropertyManagerPluginInterface</code> to put the properties
* into the property manager.
@@ -122,138 +56,36 @@
*/
public void load(String uri, PropertyManagerPluginInterface pcm, boolean verbose) throws LoadPropertiesException, IOException
{
- /** Ensure we haven't loaded the URI before **/
- if ( !isURILoaded(pcm, uri) )
- {
try
{
- String filename = FileLocator.locateFile(uri);
-
- if ( filename != null && new File(filename).exists() )
+ if ( uri != null && new File(uri).exists() )
{
- Document doc = _documentBuilder.parse(filename);
- Element rootElement = doc.getDocumentElement();
+ Properties propertiesFromFile = new Properties();
+ FileInputStream fileInputStream = new FileInputStream(uri);
+ try {
+ propertiesFromFile.loadFromXML(fileInputStream);
+ } finally {
+ fileInputStream.close();
+ }
- setURILoaded(pcm, uri);
+ Enumeration namesEnumeration = propertiesFromFile.propertyNames();
+ while(namesEnumeration.hasMoreElements()) {
+ String propertyName = (String)namesEnumeration.nextElement();
+ String propertyValue = propertiesFromFile.getProperty(propertyName);
- NodeList propertiesNodes = rootElement.getElementsByTagName(PROPERTIES_ELEMENT_NAME);
+ propertyValue = propertyValue.trim();
- Hashtable pmDependents = new Hashtable();
- Hashtable pms = new Hashtable();
- for (int count=0;count<propertiesNodes.getLength();count++)
- {
- Element propertiesNode = (Element)propertiesNodes.item(count);
- Node nameNode = propertiesNode.getAttributeNode(NAME_ATTRIBUTE_NAME);
- String propertiesName = nameNode != null ? nameNode.getNodeValue() : null;
- Node dependsNode = propertiesNode.getAttributeNode(DEPENDS_ATTRIBUTE_NAME);
- String dependsName = dependsNode != null ? dependsNode.getNodeValue() : "";
+ // perform JBossAS style property substitutions. JBTM-369
+ propertyValue = StringPropertyReplacer.replaceProperties(propertyValue);
- NodeList propertyNodes = propertiesNode.getElementsByTagName(PROPERTY_ELEMENT_NAME);
-
- /** If the name is provided get the OM from the top level else just load into the current PM **/
- PropertyManagerPluginInterface pm = propertiesName != null ? pcm.getTopLevelPropertyManager().getChild(propertiesName) : pcm;
-
- /** If the child doesn't already exist create one **/
- if ( pm == null )
- {
- pm = pcm.createPropertyManager(propertiesName);
- }
-
- if ( verbose )
- {
- System.out.println("Properties loaded ("+uri+"):");
- }
-
- /** Associate the current URI with this property manager **/
- pm.setUri(uri);
- /** Associate this plugin with the property manager **/
- pm.setIOPluginClassname(this.getClass().getName());
-
- for (int nodeCount=0;nodeCount<propertyNodes.getLength();nodeCount++)
- {
- Element propertyNode = (Element)propertyNodes.item(nodeCount);
- String propertyName = propertyNode.getAttribute(NAME_ATTRIBUTE_NAME);
- String propertyValue = propertyNode.getAttribute(VALUE_ATTRIBUTE_NAME);
- String propertyType = propertyNode.getAttribute(PROPERTY_TYPE_ATTRIBUTE_NAME);
-
- if ( verbose )
- {
- System.out.println( propertyName +"="+ propertyValue );
- }
-
- // perform JBossAS style property substitutions. JBTM-369
- propertyValue = StringPropertyReplacer.replaceProperties(propertyValue);
-
- /** Set the property but don't allow any system property to be overridden **/
- pm.setProperty(propertyName, propertyValue, false);
-
- /** If the property is specified as a System property and it's not already a system property **/
- if ( propertyType != null &&
- propertyType.equalsIgnoreCase(SYSTEM_PROPERTY_TYPE_NAME) &&
- System.getProperty(propertyName) == null )
- {
- /** Set this as a system property also **/
- System.setProperty(propertyName, propertyValue);
- }
- }
-
- /** If this has no dependents then it is a top-level module **/
- if ( dependsName.length() == 0 && pm != pcm)
- {
- pcm.addChild(pm);
- }
-
- pmDependents.put(pm, dependsName);
-
- /** If these properties belond to a named set store them **/
- if ( propertiesName != null )
- {
- pms.put(propertiesName, pm);
- }
- }
-
- /** Ensure dependency tree is kept **/
- for (Enumeration e = pmDependents.keys();e.hasMoreElements();)
- {
- PropertyManagerPluginInterface pm = (PropertyManagerPluginInterface)e.nextElement();
- String depends = (String)pmDependents.get(pm);
-
- StringTokenizer strtok = new StringTokenizer(depends,",");
-
- while (strtok.hasMoreElements())
- {
- String dependantName = strtok.nextToken().trim();
- PropertyManager dependant = (PropertyManager)pms.get(dependantName);
-
- if ( dependant == null )
- {
- throw new LoadPropertiesException("Dependency not found - property file invalid");
- }
- pm.addParent(dependant);
- }
- }
- }
- else
- {
- throw new FileNotFoundException();
- }
+ pcm.setProperty(propertyName, propertyValue);
+ }
+ }
}
- catch (FileNotFoundException e)
- {
- if ( verbose )
- {
- System.err.println("Cannot load properties file: "+uri);
- }
- }
- catch (IOException e)
- {
- throw e;
- }
catch (Exception e)
{
- throw new LoadPropertiesException("Failed to open properties file: "+e, e);
+ throw new LoadPropertiesException("Failed to load properties: "+e, e);
}
- }
}
/**
@@ -279,81 +111,16 @@
try
{
- String filename = FileLocator.locateFile(uri);
- Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(filename);
- Element root = doc.getDocumentElement();
- String depends = null;
-
- /** Remove the properties node for this property manager from the tree **/
- NodeList propertiesNodes = root.getElementsByTagName(PROPERTIES_ELEMENT_NAME);
-
- for (int count=0;count<propertiesNodes.getLength();count++)
- {
- Element propertiesElement = (Element)propertiesNodes.item(count);
- String propertiesName = propertiesElement.getAttributeNode(NAME_ATTRIBUTE_NAME).getNodeValue();
-
- /** If this is the properties node we are looking for remove it **/
- if ( propertiesName.equals(pcm.getName()) )
- {
- root.removeChild(propertiesElement);
- depends = propertiesElement.getAttributeNode(DEPENDS_ATTRIBUTE_NAME).getNodeValue();
- break;
- }
- }
-
- /** Now add the new properties node **/
- Element newPropertiesElement = doc.createElement(PROPERTIES_ELEMENT_NAME);
-
- newPropertiesElement.setAttribute(NAME_ATTRIBUTE_NAME, pcm.getName());
-
- if ( depends != null)
- {
- newPropertiesElement.setAttribute(DEPENDS_ATTRIBUTE_NAME, depends);
- }
-
- for (Enumeration e = props.keys();e.hasMoreElements();)
- {
- String key = (String)e.nextElement();
- String value = props.getProperty(key);
-
- Element newPropertyElement = doc.createElement(PROPERTY_ELEMENT_NAME);
- newPropertyElement.setAttribute(NAME_ATTRIBUTE_NAME, key);
- newPropertyElement.setAttribute(VALUE_ATTRIBUTE_NAME, value);
-
- newPropertiesElement.appendChild(newPropertyElement);
- }
-
- root.appendChild(newPropertiesElement);
-
- /** Output new properties file **/
- FileOutputStream out;
- OutputFormat of = new OutputFormat(doc);
- of.setIndenting(true);
- XMLSerializer srl = new XMLSerializer(out = new FileOutputStream(filename), of);
-
- srl.serialize(doc);
-
- out.close();
+ FileOutputStream out = new FileOutputStream(uri);
+ try {
+ props.storeToXML(out, null);
+ } finally {
+ out.close();
+ }
}
- catch (java.io.IOException e)
- {
- throw e;
- }
catch (Exception e)
{
- throw new SavePropertiesException("Unexpected exception: "+e, e);
+ throw new SavePropertiesException("Failed to save properties: "+e, e);
}
}
-
- static
- {
- try
- {
- _documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- }
- catch (Exception e)
- {
- throw new ExceptionInInitializerError(e);
- }
- }
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/util/FileLocator.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/util/FileLocator.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/util/FileLocator.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -67,6 +67,11 @@
if (findFile == null)
throw new FileNotFoundException("locateFile: null file name");
+ String testAbsolutePath = new File(findFile).getAbsolutePath();
+ if(testAbsolutePath.equals(findFile)) {
+ return testAbsolutePath;
+ }
+
if (findFile.startsWith(absolutePath))
return findFile.substring(absolutePath.length());
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/util/logging/LogFactory.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/util/logging/LogFactory.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/util/logging/LogFactory.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -286,11 +286,11 @@
try
{
// find out which log subsystem to use; by default log4j:
- logSystem = commonPropertyManager.propertyManager.getProperty(LOGGER_PROPERTY, "log4j");
+ logSystem = commonPropertyManager.getPropertyManager().getProperty(LOGGER_PROPERTY, "log4j");
- debugLevel = commonPropertyManager.propertyManager.getProperty(DEBUG_LEVEL, "0xffffffff");
- facLevel = commonPropertyManager.propertyManager.getProperty(FACILITY_LEVEL, "0xfffffff");
- visLevel = commonPropertyManager.propertyManager.getProperty(VISIBILITY_LEVEL, "0xfffffff");
+ debugLevel = commonPropertyManager.getPropertyManager().getProperty(DEBUG_LEVEL, "0xffffffff");
+ facLevel = commonPropertyManager.getPropertyManager().getProperty(FACILITY_LEVEL, "0xfffffff");
+ visLevel = commonPropertyManager.getPropertyManager().getProperty(VISIBILITY_LEVEL, "0xfffffff");
}
catch (Throwable t)
{
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/PropertyManagerFactory.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/PropertyManagerFactory.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/PropertyManagerFactory.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -21,8 +21,15 @@
package com.arjuna.common.util.propertyservice;
import com.arjuna.common.internal.util.propertyservice.PropertyManagerImpl;
+import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import com.arjuna.common.util.FileLocator;
-import java.util.Hashtable;
+import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.File;
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
@@ -42,23 +49,118 @@
*/
public class PropertyManagerFactory
{
- private static Hashtable _propertyManagers = new Hashtable();
+ private static ConcurrentMap<String, PropertyManager> propertyManagersByModuleName = new ConcurrentHashMap<String, PropertyManager>();
+ private static ConcurrentMap<String, PropertyManager> propertyManagersByCanonicalFileName = new ConcurrentHashMap<String, PropertyManager>();
- public static PropertyManager getPropertyManager(String name)
- {
- return getPropertyManager(name, null);
- }
+ /**
+ * Return a PropertyManager for the given module. If no such PropertyManager exists, create one using
+ * the property file whose name is found by resolving the given key property.
+ *
+ * @param moduleName The symbolic name of the application module e.g. 'arjuna', 'txoj'.
+ * @param fileNamePropertyKey The name of the property whose value is the config file name.
+ * @return a PropertyManager.
+ */
+ public static PropertyManager getPropertyManagerForModule(String moduleName, String fileNamePropertyKey)
+ {
+ // once loaded, Property managers for each module are cached here.
+ // Clients (usually the xxxPropertyManager classes in each app module) should not cache the returned
+ // propertyManager object, so that we can flush config just be clearing this one cache.
+ if(propertyManagersByModuleName.containsKey(moduleName)) {
+ return propertyManagersByModuleName.get(moduleName);
+ }
- public static PropertyManager getPropertyManager(String name, String moduleName)
- {
- PropertyManagerImpl pm = (PropertyManagerImpl)_propertyManagers.get(name);
+ // first time we have been asked for this module's properties - try to load them.
+ return createPropertyManagerForModule(moduleName, fileNamePropertyKey);
+ }
- if ( pm == null )
- {
- pm = new PropertyManagerImpl(name);
- _propertyManagers.put(name, pm);
- }
+ public static PropertyManager getPropertyManagerForFile(String propertyFileName, boolean withCaching)
+ {
+ // Convert the possibly relative path into a canonical path, using FileLocator.
+ // This is the point where the search path is applied - user.dir (pwd), user.home, java.home, classpath
+ String filepath = null;
+ try {
+ filepath = FileLocator.locateFile(propertyFileName);
+ File propertyFile = new File(filepath);
+ if(!propertyFile.exists() || !propertyFile.isFile()) {
+ throw new RuntimeException("invalid property file "+filepath);
+ }
+ filepath = propertyFile.getCanonicalPath();
+ } catch (IOException e) {
+ throw new RuntimeException("invalid property file "+filepath, e);
+ }
- return moduleName != null ? (PropertyManager)pm.getChild(moduleName) : pm;
- }
+ // We have a candidate file. Check if we have loaded it already. If so, associate it to the module cache and return it.
+ PropertyManager propertyManager = null;
+
+ if(withCaching) {
+ propertyManager = propertyManagersByCanonicalFileName.get(filepath);
+ }
+
+ // We have not loaded this file before. Do so now.
+ if(propertyManager == null) {
+ propertyManager = new PropertyManagerImpl(propertyFileName);
+ try {
+ propertyManager.load(XMLFilePlugin.class.getName(), filepath);
+ if(withCaching) {
+ PropertyManager existingPropertyManager = propertyManagersByCanonicalFileName.putIfAbsent(filepath, propertyManager);
+ if(existingPropertyManager != null) {
+ propertyManager = existingPropertyManager;
+ }
+ }
+ } catch(Exception e) {
+ throw new RuntimeException("unable to load properties from file "+filepath, e);
+ }
+ }
+
+ return propertyManager;
+ }
+
+
+ private static synchronized PropertyManager createPropertyManagerForModule(String moduleName, String fileNamePropertyKey)
+ {
+ if(propertyManagersByModuleName.containsKey(moduleName)) {
+ return propertyManagersByModuleName.get(moduleName);
+ }
+
+ // This is where the properties loading takes place. The algorithm is as follows:
+
+ // If the specified fileNamePropertyKey exists as a key is the system properties, take the value of that property as
+ // the location of the module's properties file. This allows file location to be overriden easily.
+ String propertyFileName = System.getProperty(fileNamePropertyKey);
+
+ // If the system property is not set, try to load the build time properties for the module. Build time properties
+ // are not the module properties! These are optional and so loading may fail. That's not considered an error.
+ // If the build time property key PROPERTIES_FILE exists, take its value as the module's property file location.
+ // (In JBossTS it does exist for most modules - the build scripts put build time properties files for the modules
+ // into the product .jar)
+ if (propertyFileName == null)
+ propertyFileName = getFileNameFromBuildTimeProperties(moduleName);
+
+ // Bail out if it has not been possible to get a file name by either of these method.
+ if(propertyFileName == null) {
+ throw new RuntimeException("Unable to resolve property file name for module "+moduleName);
+ }
+
+ PropertyManager propertyManager = getPropertyManagerForFile(propertyFileName, true);
+
+ propertyManagersByModuleName.put(moduleName, propertyManager);
+
+ return propertyManager;
+ }
+
+ private static String getFileNameFromBuildTimeProperties(String moduleName) {
+ Properties buildTimeProperties = new Properties();
+ final InputStream is = PropertyManagerFactory.class.getResourceAsStream("/"+moduleName+".properties") ;
+ if (is != null)
+ {
+ try {
+ buildTimeProperties.load(is);
+ } catch(IOException e) {
+ try {
+ is.close();
+ } catch(IOException e2) {}
+ }
+ }
+ return buildTimeProperties.getProperty("PROPERTIES_FILE");
+ }
}
Modified: labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/propertycontainer/PropertyManagerPluginInterface.java
===================================================================
--- labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/propertycontainer/PropertyManagerPluginInterface.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/classes/com/arjuna/common/util/propertyservice/propertycontainer/PropertyManagerPluginInterface.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -39,51 +39,7 @@
{
public String getName();
- /**
- * Get the top-level property manager for this property manager
- * @return the PropertyManagerPluginInterface
- */
- public PropertyManagerPluginInterface getTopLevelPropertyManager();
-
/**
- * This method creates a property manager with the name <code>moduleName</code>.
- * @param modulename
- * @return the PropertyManagerPluginInterface
- */
- public PropertyManagerPluginInterface createPropertyManager(String modulename);
-
- /**
- * This method adds the property manager as a child.
- */
- public void addChild(PropertyManager pm);
-
- /**
- * This method adds a parent property manager.
- * @param pm The property manager to add as a parent.
- */
- public void addParent(PropertyManager pm);
-
- /**
- * This method returns an array of parents to the property manager.
- * @return a PropertyManagerPluginInterface[]
- */
- public PropertyManagerPluginInterface[] getParents();
-
- /**
- * This method returns an array of the children of the current property manager.
- * @return a PropertyManagerPluginInterface[]
- */
- public PropertyManagerPluginInterface[] getChildren();
-
- /**
- * Get the child module.
- *
- * @param moduleName the name of the module
- * @return the PropertyManagerPluginInterface
- */
- public PropertyManagerPluginInterface getChild(String moduleName);
-
- /**
* Get the properties stored in this property manager only.
* @return the properties
*/
Modified: labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/iotest/IOTest.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/iotest/IOTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/iotest/IOTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -22,8 +22,15 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
+import com.arjuna.common.util.FileLocator;
import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
+import java.util.Properties;
+import java.io.FileInputStream;
+
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
*
@@ -37,28 +44,19 @@
public class IOTest
{
- public static void main(String[] args)
+ @Test
+ public void ioTest() throws Exception
{
- PropertyManager arjunaPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "Arjuna" );
+ System.setProperty("property.file.name", "test-product.xml");
+ PropertyManager testPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("test", "property.file.name");
- try
- {
- arjunaPM.load(XMLFilePlugin.class.getName(), "test-product.xml");
- }
- catch (Exception e)
- {
- e.printStackTrace(); //To change body of catch statement use Options | File Templates.
- }
+ testPropertyManager.setProperty("com.arjuna.ats.arjuna.IOTest", "SavedProperty");
- arjunaPM.setProperty("com.arjuna.ats.arjuna.Test","SavedProperty");
+ testPropertyManager.save(XMLFilePlugin.class.getName(), null);
- try
- {
- arjunaPM.save(XMLFilePlugin.class.getName(), null);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
+ Properties properties = new Properties();
+ properties.loadFromXML(new FileInputStream(FileLocator.locateFile("test-product.xml")));
+
+ assertEquals("SavedProperty", properties.getProperty("com.arjuna.ats.arjuna.IOTest"));
}
}
Modified: labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/PropertiesTest.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/PropertiesTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/PropertiesTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -27,6 +27,9 @@
import java.util.Properties;
import java.util.Enumeration;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
*
@@ -40,24 +43,14 @@
public class PropertiesTest
{
- public static void main(String[] args)
+ @Test
+ public void propertiesTest()
{
- PropertyManager arjunaPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "Arjuna" );
- PropertyManager txojPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "TXOJ" );
- PropertyManager orbPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "ORB Portability" );
+ System.setProperty("property.file.name", "test-product.xml");
+ PropertyManager txojPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("txoj", "property.file.name");
- try
- {
- arjunaPM.load(XMLFilePlugin.class.getName(), "test-properties.xml");
- }
- catch (Exception e)
- {
- e.printStackTrace(); //To change body of catch statement use Options | File Templates.
- }
-
- boolean passed = true;
int count = 0;
- Properties p = txojPM.getProperties();
+ Properties p = txojPropertyManager.getProperties();
System.out.println("TXOJ Properties size = "+p.size());
@@ -66,6 +59,10 @@
String propertyName = (String)e.nextElement();
String propertyValue = p.getProperty(propertyName);
+ if(!propertyName.startsWith("com.arjuna.")) {
+ continue;
+ }
+
if ( ( propertyName.equals("com.arjuna.ats.arjuna.Test") ) ||
( propertyName.equals("com.arjuna.ats.txoj.Test") ) )
{
@@ -74,38 +71,10 @@
}
else
{
- System.out.println("Found unexpected property '"+propertyName+"' failed");
- passed = false;
+ fail("Found unexpected property '"+propertyName+"' failed");
}
}
- passed &= (count == 2);
-
- count = 0;
-
- p = orbPM.getProperties();
-
- System.out.println("ORB Portability Properties size = "+p.size());
-
- for (Enumeration e = p.keys();e.hasMoreElements();)
- {
- String propertyName = (String)e.nextElement();
- String propertyValue = p.getProperty(propertyName);
-
- if ( propertyName.equals("com.arjuna.orbportability.Test") )
- {
- System.out.println("Found property '"+propertyName+"', value: "+propertyValue);
- count++;
- }
- else
- {
- System.out.println("Found unexpected property '"+propertyName+"'");
- passed = false;
- }
- }
-
- passed &= (count == 1);
-
- System.out.println( passed ? "Passed" : "Failed" );
+ assertEquals(2, count);
}
}
Modified: labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SetPropertyTest.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SetPropertyTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SetPropertyTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -23,6 +23,8 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import org.junit.Test;
+import static org.junit.Assert.*;
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
@@ -37,37 +39,30 @@
public class SetPropertyTest
{
- public static void main(String[] args)
+ @Test
+ public void setPropertyTest()
{
- PropertyManager arjunaPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "Arjuna" );
- PropertyManager txojPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "TXOJ" );
+ System.setProperty("property.file.name", "test-product.xml");
+ PropertyManager arjunaPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("arjuna", "property.file.name");
+ PropertyManager txojPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("arjuna", "property.file.name");
- try
- {
- arjunaPM.load(XMLFilePlugin.class.getName(), "test-product.xml");
- }
- catch (Exception e)
- {
- e.printStackTrace(); //To change body of catch statement use Options | File Templates.
- }
-
- boolean passed = true;
int count = 0;
- String value = arjunaPM.getProperty("com.arjuna.ats.arjuna.Test");
+ String value = arjunaPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Test");
- arjunaPM.setProperty("com.arjuna.ats.arjuna.Test", "OverriddenInCode");
+ assertEquals("Test", value);
- value = txojPM.getProperty("com.arjuna.ats.arjuna.Test");
+ arjunaPropertyManager.setProperty("com.arjuna.ats.arjuna.Test", "OverriddenInCode");
+
+ value = txojPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Overridden");
- value = arjunaPM.getProperty("com.arjuna.ats.arjuna.Test");
+ assertEquals("OverriddenInCode", value);
+
+ value = arjunaPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("OverriddenInCode");
- System.out.println( passed ? "Passed" : "Failed" );
+ assertEquals("OverriddenInCode", value);
}
}
Modified: labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SimpleTest.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SimpleTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SimpleTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -24,6 +24,9 @@
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
*
@@ -34,51 +37,31 @@
*
* $Id: SimpleTest.java 2342 2006-03-30 13:06:17Z $
*/
-
public class SimpleTest
{
- public static void main(String[] args)
+ @Test
+ public void main()
{
- PropertyManager arjunaPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "Arjuna" );
- PropertyManager txojPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "TXOJ" );
- PropertyManager orbPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "ORB Portability" );
+ System.setProperty("property.file.name", "test-product.xml");
+ PropertyManager arjunaPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("arjuna", "property.file.name");
+ PropertyManager txojPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("arjuna", "property.file.name");
- try
- {
- arjunaPM.load(XMLFilePlugin.class.getName(), "test-product.xml");
- }
- catch (Exception e)
- {
- e.printStackTrace(); //To change body of catch statement use Options | File Templates.
- }
- boolean passed = true;
int count = 0;
- String value = arjunaPM.getProperty("com.arjuna.ats.arjuna.Test");
+ String value = arjunaPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Test");
- value = txojPM.getProperty("com.arjuna.ats.arjuna.Test");
- System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Overridden");
+ assertEquals("Test", value);
- value = arjunaPM.getProperty("com.arjuna.ats.txoj.Test");
+ value = txojPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= ( value == null );
- value = txojPM.getProperty("com.arjuna.ats.txoj.Test");
- System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Test2");
+ assertEquals("Test", value);
- value = orbPM.getProperty("com.arjuna.ats.txoj.Test");
+ value = txojPropertyManager.getProperty("com.arjuna.ats.txoj.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= ( value == null );
- value = orbPM.getProperty("com.arjuna.orbportability.Test");
- System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Test3");
-
- System.out.println( passed ? "Passed" : "Failed" );
+ assertEquals("Test2", value);
}
}
Modified: labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SystemPropertyTest.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SystemPropertyTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/SystemPropertyTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -23,6 +23,9 @@
import com.arjuna.common.util.propertyservice.PropertyManager;
import com.arjuna.common.util.propertyservice.PropertyManagerFactory;
import com.arjuna.common.internal.util.propertyservice.plugins.io.XMLFilePlugin;
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
/*
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
@@ -37,50 +40,30 @@
public class SystemPropertyTest
{
- public static void main(String[] args)
+ @Test
+ public void main()
{
- System.setProperty("com.arjuna.ats.arjuna.Test","SysOverride");
+ System.setProperty("property.file.name", "test-product.xml");
+ PropertyManager arjunaPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("arjuna", "property.file.name");
+ PropertyManager txojPropertyManager = PropertyManagerFactory.getPropertyManagerForModule("arjuna", "property.file.name");
- PropertyManager arjunaPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "Arjuna" );
- PropertyManager txojPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "TXOJ" );
- PropertyManager orbPM = PropertyManagerFactory.getPropertyManager( "test-property-manager", "ORB Portability" );
+ System.setProperty("com.arjuna.ats.arjuna.Test", "SysOverride");
- try
- {
- arjunaPM.load(XMLFilePlugin.class.getName(), "test-product.xml");
- }
- catch (Exception e)
- {
- e.printStackTrace(); //To change body of catch statement use Options | File Templates.
- }
-
- boolean passed = true;
int count = 0;
- String value = arjunaPM.getProperty("com.arjuna.ats.arjuna.Test");
+ String value = arjunaPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("SysOverride");
- value = txojPM.getProperty("com.arjuna.ats.arjuna.Test");
- System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("SysOverride");
+ assertEquals("SysOverride", value);
- value = arjunaPM.getProperty("com.arjuna.ats.txoj.Test");
+ value = txojPropertyManager.getProperty("com.arjuna.ats.arjuna.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= ( value == null );
- value = txojPM.getProperty("com.arjuna.ats.txoj.Test");
- System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Test2");
+ assertEquals("SysOverride", value);
- value = orbPM.getProperty("com.arjuna.ats.txoj.Test");
+ value = txojPropertyManager.getProperty("com.arjuna.ats.txoj.Test");
System.out.println("Value["+(++count)+"] :"+value);
- passed &= ( value == null );
- value = orbPM.getProperty("com.arjuna.orbportability.Test");
- System.out.println("Value["+(++count)+"] :"+value);
- passed &= value.equals("Test3");
-
- System.out.println( passed ? "Passed" : "Failed" );
+ assertEquals("Test2", value);
}
}
Added: labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/test-product.xml
===================================================================
--- labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/test-product.xml (rev 0)
+++ labs/jbosstm/trunk/common/tests/com/arjuna/common/tests/simple/test-product.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+ <entry key="com.arjuna.ats.arjuna.Test">Test</entry>
+ <entry key="com.arjuna.ats.txoj.Test">Test2</entry>
+</properties>
Modified: labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/debugextension/DebugExt.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/debugextension/DebugExt.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/debugextension/DebugExt.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -21,33 +21,54 @@
package com.hp.mwtests.commonlogging.debugextension;
import com.arjuna.common.util.logging.*;
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
+import org.junit.Test;
+import static org.junit.Assert.*;
-//import com.hp.mw.common.util.logging.CommonLevel;
-//import com.hp.mw.common.util.logging.commonLogger;
-//import com.hp.mw.common.util.logging.LoggerFactory;
-//import com.hp.mw.common.util.logging.LogManager;
-//import com.hp.mw.common.util.logging.Level;
-//import com.hp.mw.common.util.logging.DebugLevel;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
-
public class DebugExt
{
- static LogNoi18n myNoi18nLog = LogFactory.getLogNoi18n("com.hp.mwtests.commonlogging.debugextension.DebugExt");
-
- public static void main(String[] args)
+ @Test
+ public void testDebugExt()
{
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ PrintStream bufferedStream = new PrintStream(buffer);
+ PrintStream originalStream = System.out;
- myNoi18nLog.setLevels(DebugLevel.FULL_DEBUGGING, VisibilityLevel.VIS_ALL,
- FacilityCode.FAC_ALL);
+ // TODO: how to configure this on a per-test (not per-JVM) basis?
+ commonPropertyManager.getPropertyManager().setProperty(LogFactory.LOGGER_PROPERTY, "log4j");
- myNoi18nLog.debug(DebugLevel.FUNCS_AND_OPS, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL,
- "This debug message is enabled since it matches default Finer Values");
+ System.setOut(bufferedStream);
+ writeLogMessages();
+ System.setOut(originalStream);
+ verifyResult(buffer.toString());
+ }
- myNoi18nLog.debug(DebugLevel.CONSTRUCT_AND_DESTRUCT, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL,
- "This debug message is discarded since it does'nt match default Finer Values");
+ public static void writeLogMessages()
+ {
+ LogNoi18n myNoi18nLog = LogFactory.getLogNoi18n("DebugExt");
- myNoi18nLog.mergeDebugLevel(DebugLevel.FULL_DEBUGGING);
- myNoi18nLog.debug(DebugLevel.FULL_DEBUGGING, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL,
- "This debug message is enabled since it the Logger allows full debugging");
- }
+ myNoi18nLog.setLevels(DebugLevel.FUNCS_AND_OPS, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL);
+
+ myNoi18nLog.debug(DebugLevel.FUNCS_AND_OPS, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL,
+ "This debug message is enabled since it matches default Finer Values");
+
+ myNoi18nLog.debug(DebugLevel.CONSTRUCT_AND_DESTRUCT, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL,
+ "This debug message is discarded since it does'nt match default Finer Values");
+
+ myNoi18nLog.debug(DebugLevel.FULL_DEBUGGING, VisibilityLevel.VIS_PACKAGE, FacilityCode.FAC_ALL,
+ "This debug message is enabled since it the Logger allows full debugging");
+ }
+
+ public static void verifyResult(String result) {
+ String[] lines = result.split("\r?\n");
+
+ assertNotNull(lines);
+ assertEquals(2, lines.length);
+
+ assertTrue("Got actual value: "+lines[0], lines[0].matches("\\s*DEBUG \\[main\\] .*enabled.*"));
+ assertTrue("Got actual value: "+lines[1], lines[1].matches("\\s*DEBUG \\[main\\] .*enabled.*"));
+ }
}
Modified: labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_en_US.properties
===================================================================
--- labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_en_US.properties 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_en_US.properties 2009-07-02 11:29:12 UTC (rev 27433)
@@ -18,6 +18,6 @@
# (C) 2005-2006,
# @author JBoss Inc.
#
-FATAL_Message = This is a Fatal message
+FATAL_Message = This is a Fatal message
INFO_Message = This is an Info message
IDENTIFICATION = The FirstName is {0} and the LastName is {1}
Modified: labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_fr_FR.properties
===================================================================
--- labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_fr_FR.properties 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logging_msg_fr_FR.properties 2009-07-02 11:29:12 UTC (rev 27433)
@@ -19,5 +19,5 @@
# @author JBoss Inc.
#
FATAL_Message = Ceci est un message Fatal
-INFO_Message = Ceci est un message pour information
+INFO_Message = Ceci est un message pour information
IDENTIFICATION = le prenom est {0} et le nom est {1}
Modified: labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logi18n.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logi18n.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/i18n/logi18n.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -22,41 +22,64 @@
import com.arjuna.common.util.logging.Logi18n;
import com.arjuna.common.util.logging.LogFactory;
-//import com.arjuna.common.util.logging.CommonLevel;
+import com.arjuna.common.internal.util.logging.commonPropertyManager;
import java.util.*;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
public class logi18n
{
+ public static final String CLASS = logi18n.class.getName();
- //static LoggerFactory log_fac = LogManager.getLogFactory();
- static String language = System.getProperty("language", "en");
- static String country = System.getProperty("country", "US");
+ @Test
+ public void testLogi18n() {
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+ PrintStream bufferedStream = new PrintStream(buffer);
+ PrintStream originalStream = System.out;
- private static Locale currentLocale = new Locale(language, country);
- //private static ResourceBundle log_mesg = ResourceBundle.getBundle("logging_msg", currentLocale);
+ // TODO: how to configure this on a per-test (not per-JVM) basis?
+ commonPropertyManager.getPropertyManager().setProperty(LogFactory.LOGGER_PROPERTY, "log4j");
- //static commonLogger mylog = (commonLogger)log_fac.getLogger(logi18n.class.getName(),"logging_msg_"+language+"_"+country);
- //static Logi18n log = LogFactory.getLogi18n("logi18n", "com.hp.mwtests.commonlogging.i18n.logging_msg_fr_FR");
- static Logi18n log = LogFactory.getLogi18n("logi18n", "com.hp.mwtests.commonlogging.i18n.logging_msg");
+ System.setOut(bufferedStream);
+ writeLogMessages();
+ System.setOut(originalStream);
+ verifyResult(buffer.toString());
+ }
- public static void main(String[] args)
+ public static void writeLogMessages()
{
+ Logi18n log = LogFactory.getLogi18n(CLASS, "logging_msg");
- Object[] myParams = new Object[2];
+ Locale.setDefault(new Locale("en", "US"));
+ log.info("IDENTIFICATION", new String[] { "Foo", "Bar"});
+ log.fatal("FATAL_Message");
+ log.info("INFO_Message");
- String lastname = "Foo";
- String firstname = "Bar";
- myParams[0] = firstname;
- myParams[1] = lastname;
+ Locale.setDefault(new Locale("fr", "FR"));
+ log = LogFactory.getLogi18n(CLASS, "logging_msg");
+ log.info("IDENTIFICATION", new String[] { "Foo", "Bar"});
+ log.fatal("FATAL_Message");
+ log.info("INFO_Message");
+ }
- log.info("IDENTIFICATION", myParams);
- //log.log(CommonLevel.FATAL, "FATAL_Message");
- log.fatal("FATAL_Message");
+ public static void verifyResult(String result) {
+ String[] lines = result.split("\r?\n");
- //log.log(CommonLevel.INFO, "INFO_Message");
- log.info("INFO_Message");
- }
+ assertNotNull(lines);
+ assertEquals(6, lines.length);
+
+ assertTrue("Got actual value: "+lines[0], lines[0].matches("\\s*INFO \\[main\\] \\(logi18n.java.*The FirstName is Foo and the LastName is Bar$"));
+ assertTrue("Got actual value: "+lines[1], lines[1].matches("\\s*FATAL \\[main\\] \\(logi18n.java.*This is a Fatal message$"));
+ assertTrue("Got actual value: "+lines[2], lines[2].matches("\\s*INFO \\[main\\] \\(logi18n.java.*This is an Info message$"));
+
+ assertTrue("Got actual value: "+lines[3], lines[3].matches("\\s*INFO \\[main\\] \\(logi18n.java.*le prenom est Foo et le nom est Bar$"));
+ assertTrue("Got actual value: "+lines[4], lines[4].matches("\\s*FATAL \\[main\\] \\(logi18n.java.*Ceci est un message Fatal$"));
+ assertTrue("Got actual value: "+lines[5], lines[5].matches("\\s*INFO \\[main\\] \\(logi18n.java.*Ceci est un message pour information$"));
+ }
}
Modified: labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/testlevels/TestLevels.java
===================================================================
--- labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/testlevels/TestLevels.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/common/tests/com/hp/mwtests/commonlogging/testlevels/TestLevels.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -26,14 +26,11 @@
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
-import java.io.File;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
-import junit.framework.TestCase;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
/**
* JUnit test that verifies log statments made through the CLF appear at the expexted log level.
* It does this by replacing System.out with a memory backed buffer, writing some log messages
@@ -42,7 +39,7 @@
* Note: due to the way logging is initialized, this is somewhat fragile.
* In general you can run only one such test in a given JVM without risking interference.
*/
-public class TestLevels extends TestCase
+public class TestLevels
{
/**
* for logging purposes.
@@ -60,14 +57,15 @@
// CommonLogging-properties.xml: <common><properties><property name= value=>
// cd common/install/lib
// java -cp jbossts-common.jar:tests/common_tests.jar:../../../ext/commons-logging.jar:../../../ext/log4j-1.2.8.jar:../../etc/ com.hp.mwtests.commonlogging.testlevels.TestLevels
- junit.textui.TestRunner.run(suite());
+// junit.textui.TestRunner.run(suite());
}
- public static Test suite() {
- return new TestSuite(TestLevels.class);
- }
+// public static Test suite() {
+// return new TestSuite(TestLevels.class);
+// }
+ @Test
public void testLog4j() {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PrintStream bufferedStream = new PrintStream(buffer);
@@ -75,7 +73,7 @@
// test the releveling for AS integration:
// TODO: how to configure this on a per-test (not per-JVM) basis?
- commonPropertyManager.propertyManager.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
+ commonPropertyManager.getPropertyManager().setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler");
System.setOut(bufferedStream);
writeLogMessages();
Added: labs/jbosstm/trunk/ext/junit-4.6.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbosstm/trunk/ext/junit-4.6.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: labs/jbosstm/trunk/ext/third_party_licenses.txt
===================================================================
--- labs/jbosstm/trunk/ext/third_party_licenses.txt 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/ext/third_party_licenses.txt 2009-07-02 11:29:12 UTC (rev 27433)
@@ -2277,6 +2277,99 @@
--------------------------------------------------------------------------------------
+JUnit 4.6:
+Common Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+ b) in the case of each subsequent Contributor:
+
+ i) changes to the Program, and
+
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+
+ b) its license agreement:
+
+ i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+ iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+ iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+
+ b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any clai!
ms or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), 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 OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no !
rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+
+-------------------------------------------------------------------------------------------------------
+
+
+
+
LICENSE TERMS FOR LRMP/INRIS THAT MAY ACCOMPANY THE ARJUNA SOFTWARE
Modified: labs/jbosstm/trunk/qa/config/jbossts-jta-properties.xml
===================================================================
--- labs/jbosstm/trunk/qa/config/jbossts-jta-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/config/jbossts-jta-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<!--
JBoss, Home of Professional Open Source
- Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ Copyright 2009, Red Hat Middleware LLC, and individual contributors
as indicated by the @author tags.
See the copyright.txt in the distribution for a
full listing of individual contributors.
@@ -16,311 +17,145 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
- (C) 2005-2008,
- @author JBoss Inc.
+ (C) 2009,
+ @author JBoss, a division of Red Hat.
-->
<!-- This is the jbossts-qa version of the properties file. It should get copied over
the top of the default one from the product build by the jbossts-qa build process.
It differs from the standard one in the following respects:
- - shorter txReaperTimeout = 1000 (was 120000), does not actually matter as now DYNAMIC
+
- com.arjuna.ats.arjuna.coordinator.maintainHeuristics = NO
- periodicRecoveryPeriod = 10 (was 120)
- recoveryBackoffPeriod = 5 (was 10)
-->
-<transaction-service>
- <properties depends="common" name="arjuna">
- <!--
- Transaction Reaper Timeout (default is 120000 ms).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="1000"/>
+<properties>
- <property name="com.arjuna.ats.arjuna.coordinator.maintainHeuristics" value="NO"/>
-
- <!--
- Transaction Reaper Mode, can be: PERIODIC or DYNAMIC. Default is DYNAMIC.
- -->
- <property name="com.arjuna.ats.arjuna.coordinator.txReaperMode" value="DYNAMIC"/>
- <!--
- Transaction Reaper Cancel Wait Period (default is 500 ms, min is 10 msecs).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperCancelWaitPeriod" value="500"/>
- <!--
- Transaction Reaper Cancel Fail Wait Period (default is 500 ms, min is 10 msecs).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperCancelFailWaitPeriod" value="500"/>
- <!--
- Transaction Reaper Zombie Max (default is 8).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperZombieMax" value="8"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.arjuna.coordinator.asyncPrepare" value="NO"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.commitOnePhase" value="YES"/>
- <!--
- (default is defaultStore)
- -->
- <property name="com.arjuna.ats.arjuna.objectstore.localOSRoot" value="defaultStore"/>
- <!--
- default is under user.home - must be writeable!)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="PutObjectStoreDirHere"/>
- <!--
- (default is ON)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreSync" value="ON"/>
- <!--
- (default is ShadowNoFileLockStore)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore"/>
- <!--
- (default is 255)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.hashedDirectories" value="255"/>
- <!--
- (default is ON)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.transactionSync" value="ON"/>
- <!--
- (Must be unique across all Arjuna instances.)
- -->
- <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/>
- <!--
- Base port number for determining a unique number to associate with an instance of the transaction service
- (which is needed in order to support multiple instances on the same machine).
- Use the value 0 to allow the system to select the first available port number.
- If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
- to the loopback address is created or until the the maximum number of ports (specified by the
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
- reaches the maximum possible port number.
- -->
- <property
- name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort" value="0"/>
- <!--
- The maximum number of ports to try starting from the value specified by the property
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort. Any non-numeric or value less than 1 will
- defautl to 1.
- -->
- <property
- name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts" value="1"/>
- <!--
- Run the TransactionStatusManager to allow out-of-process recovery managers to query
- the status of transactions owned by this coordinator. Default is YES.
- This can be set to NO in cases where an ObjectStore is used only by one transaction manager
- and the recovery manager for that store is in the same JVM. In any other cases disabling the
- TransactionStatusManager may cause crash recovery to misbehave.
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable" value="YES"/>
- <!-- property
- name="com.arjuna.ats.arjuna.coordinator.actionStore"
- value="HashedActionStore"
- value="JDBCActionStore"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
- value="JDBCAccess"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
- value="ShadowNoFileLockStore"
- value="JDBCStore"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
- value="JDBCAccess"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial"
- value="1"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum"
- value="1"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections"
- value="false"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size"
- value=""
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period"
- value=""
- -->
- <!--
- The location for creating temporary files, e.g., Uids.
- Default is under user.home.
- IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
- may not be!
- -->
- <!--
- <property
- name="com.arjuna.ats.arjuna.common.varDir"
- value="var"/>
- -->
- </properties>
- <properties name="common">
- <!-- CLF 2.0 properties -->
- <property name="com.arjuna.common.util.logging.DebugLevel"
- type="System" value="0x00000000"/>
- <property name="com.arjuna.common.util.logging.FacilityLevel"
- type="System" value="0xffffffff"/>
- <property name="com.arjuna.common.util.logging.VisibilityLevel"
- type="System" value="0xffffffff"/>
- <property name="com.arjuna.common.util.logger" type="System" value="log4j"/>
- </properties>
- <properties depends="arjuna" name="txoj">
- <!--
- (default is LockStore of installation - must be writeable!)
- -->
- <!--
- <property
- name="com.arjuna.ats.txoj.lockstore.lockStoreDir"
- value="LockStore"/>
- -->
- <!--
- (default is BasicLockStore)
- -->
- <property name="com.arjuna.ats.txoj.lockstore.lockStoreType" value="BasicLockStore"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.txoj.lockstore.multipleLockStore" value="NO"/>
- <!--
- (default is YES)
- -->
- <property name="com.arjuna.ats.txoj.lockstore.singleLockStore" value="YES"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.txoj.lockstore.allowNestedLocking" value="YES"/>
- </properties>
- <properties depends="arjuna" name="jta">
- <!--
- Support subtransactions in the JTA layer?
- Default is NO.
- -->
- <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
- <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/>
- <!--
- com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
- -->
- <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/>
- <!--
- com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
- -->
- </properties>
- <properties depends="arjuna,txoj,jta" name="recoverymanager">
- <!--
- Properties used only by the RecoveryManager.
- -->
- <!--
- Periodic recovery settings.
- Time values in this section are in seconds.
- -->
- <!--
- Interval in seconds between initiating the periodic recovery modules.
- Default is 120 seconds.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" value="10"/>
- <!--
- Interval in seconds between first and second pass of periodic recovery.
- Default is 10 seconds.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod" value="5"/>
- <!--
- The port number on which the recovery manager listens.
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryPort" value="4712"/>
- <!--
- The address on which the recovery manager listens.
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryAddress" value=""/>
- <!--
- Periodic recovery modules to use. Invoked in sort-order of names.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension1" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension2" value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension3" value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/>
- <!--
- Expired entry removal
- -->
- <!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager" value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
- <!--
- Interval, in hours, between running the expiry scanners.
- This can be quite long. The absolute value determines the interval -
- if the value is negative, the scan will NOT be run until after one
- interval has elapsed. If positive the first scan will be immediately
- after startup. Zero will prevent any scanning.
- Default = 12 = run immediately, then every 12 hours.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScanInterval" value="12"/>
- <!--
- This is the interval, in hours, after which a process that cannot be contacted will be considered dead.
- It should be long enough to avoid accidentally removing valid entries due to short lived
- transient errors such as network downtime. Zero = Never removed. Default is 12.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime" value="12"/>
- <!--
- Use this to fix the port on which the TransactionStatusManager listens,
- The default behaviour is to use any free port.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort" value="0"/>
- <!--
- Use this to fix the address on which the TransactionStatusManager binds,
- The default behaviour is to use the loopback address (ie localhost).
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress" value=""/>
- <!--
- For cases where the recovery manager is in process with the transaction manager and nothing else uses
- the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
- Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
- if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryListener" value="YES"/>
- </properties>
- <properties depends="jta" name="jdbc">
- <!--
- property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/>
- -->
- </properties>
-</transaction-service>
+ <entry key="com.arjuna.ats.arjuna.coordinator.maintainHeuristics">NO</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod">10</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod">5</entry>
+
+
+ <!--
+ This is the JBossTS configuration file for running ArjunaCore.
+ It should be called jbossts-properties.xml.
+ You need a different version for JTA or JTS usage.
+
+ ***************************
+
+ Property values may be literals or be tokens of the form ${p1[,p2][:v]}
+ in which case the token values are substituted for the values of the corresponding system
+ properties as follows:
+
+ - Any occurance of ${p} with the System.getProperty(p) value.
+ If there is no such property p defined, then the ${p} reference will remain unchanged.
+
+ - If the property reference is of the form ${p:v} and there is no such property p,
+ then the default value v will be returned.
+
+ - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
+ the primary and the secondary properties will be tried in turn, before
+ returning either the unchanged input, or the default value.
+
+ The property ${/} is replaced with System.getProperty("file.separator")
+ value and the property ${:} is replaced with System.getProperty("path.separator").
+
+ Note this substitution applies to property values only at the point they are read from
+ the config file. Tokens in system properties won't be substituted.
+ -->
+
+
+
+ <!-- (default is YES) -->
+ <entry key="com.arjuna.ats.arjuna.coordinator.commitOnePhase">YES</entry>
+
+ <!-- (default is defaultStore) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.localOSRoot">defaultStore</entry>
+
+ <!-- default is under user.home - must be writeable!) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.objectStoreDir">PutObjectStoreDirHere</entry>
+
+ <!-- (default is ON) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.transactionSync">ON</entry>
+
+ <!-- (Must be unique across all Arjuna instances.) -->
+ <entry key="com.arjuna.ats.arjuna.xa.nodeIdentifier">1</entry>
+
+ <!--
+ Base port number for determining a unique number to associate with an instance of the transaction service
+ (which is needed in order to support multiple instances on the same machine).
+ Use the value 0 to allow the system to select the first available port number.
+ If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
+ to the loopback address is created or until the the maximum number of ports (specified by the
+ com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ reaches the maximum possible port number.
+ -->
+ <entry key="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort">0</entry>
+
+
+
+
+
+ <!--
+ Periodic recovery modules to use. Invoked in sort-order of names.
+ Check http://www.jboss.org/community/docs/DOC-10788 for more information
+ on recovery modules and their configuration when running in various
+ deployments.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension3">com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</entry>
+
+ <!--
+ Expiry scanners to use (order of invocation is random).
+ Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
+
+ <!-- Enable the following to move logs that cannot be completed by failure recovery. But
+be sure you know what you are doing and why! -->
+ <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
+
+ <!--
+ The address and port number on which the recovery manager listens
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryPort">4712</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryAddress"></entry>
+
+ <!--
+ Use this to fix the port on which the TransactionStatusManager listens,
+ The default behaviour is to use any free port.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort">0</entry>
+
+ <!--
+ Use this to fix the address on which the TransactionStatusManager binds,
+ The default behaviour is to use the loopback address (ie localhost).
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"></entry>
+
+ <!--
+ For cases where the recovery manager is in process with the transaction manager and nothing else uses
+ the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
+ Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
+ if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryListener">YES</entry>
+
+
+
+ <entry name="com.arjuna.ats.jta.supportSubtransactions">NO</entry>
+
+ <entry name="com.arjuna.ats.jta.jtaTMImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple</entry>
+
+ <entry name="com.arjuna.ats.jta.jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</entry>
+
+</properties>
Modified: labs/jbosstm/trunk/qa/config/jbossts-jts-properties.xml
===================================================================
--- labs/jbosstm/trunk/qa/config/jbossts-jts-properties.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/config/jbossts-jts-properties.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<!--
JBoss, Home of Professional Open Source
- Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ Copyright 2009, Red Hat Middleware LLC, and individual contributors
as indicated by the @author tags.
See the copyright.txt in the distribution for a
full listing of individual contributors.
@@ -16,468 +17,203 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
- (C) 2005-2006,
- @author JBoss Inc.
+ (C) 2009,
+ @author JBoss, a division of Red Hat.
-->
<!-- This is the jbossts-qa version of the properties file. It should get copied over
the top of the default one from the product build by the jbossts-qa build process.
It differs from the standard one in the following respects:
- - shorter txReaperTimeout = 1000 (was 120000), does not actually matter as now DYNAMIC
+
- com.arjuna.ats.arjuna.coordinator.maintainHeuristics = NO
- periodicRecoveryPeriod = 10 (was 120)
- recoveryBackoffPeriod = 5 (was 10)
-->
-<transaction-service>
- <properties depends="common" name="arjuna">
- <!--
- Transaction Reaper Timeout (default is 120000 ms).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="1000"/>
+<properties>
- <property name="com.arjuna.ats.arjuna.coordinator.maintainHeuristics" value="NO"/>
-
- <!--
- Transaction Reaper Mode, can be: PERIODIC or DYNAMIC. Default is DYNAMIC.
- -->
- <property name="com.arjuna.ats.arjuna.coordinator.txReaperMode" value="DYNAMIC"/>
- <!--
- Transaction Reaper Cancel Wait Period (default is 500 ms, min is 10 msecs).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperCancelWaitPeriod" value="500"/>
- <!--
- Transaction Reaper Cancel Fail Wait Period (default is 500 ms, min is 10 msecs).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperCancelFailWaitPeriod" value="500"/>
- <!--
- Transaction Reaper Zombie Max (default is 8).
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.txReaperZombieMax" value="8"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.arjuna.coordinator.asyncPrepare" value="NO"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.commitOnePhase" value="YES"/>
- <!--
- (default is defaultStore)
- -->
- <property name="com.arjuna.ats.arjuna.objectstore.localOSRoot" value="defaultStore"/>
- <!--
- default is under user.home - must be writeable!)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="PutObjectStoreDirHere"/>
- <!--
- (default is ON)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreSync" value="ON"/>
- <!--
- (default is ShadowNoFileLockStore)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore"/>
- <!--
- (default is 255)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.hashedDirectories" value="255"/>
- <!--
- (default is ON)
- -->
- <property
- name="com.arjuna.ats.arjuna.objectstore.transactionSync" value="ON"/>
- <!--
- (Must be unique across all Arjuna instances.)
- -->
- <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/>
- <!--
- Base port number for determining a unique number to associate with an instance of the transaction service
- (which is needed in order to support multiple instances on the same machine).
- Use the value 0 to allow the system to select the first available port number.
- If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
- to the loopback address is created or until the the maximum number of ports (specified by the
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
- reaches the maximum possible port number.
- -->
- <property
- name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort" value="0"/>
- <!--
- The maximum number of ports to try starting from the value specified by the property
- com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort. Any non-numeric or value less than 1 will
- defautl to 1.
- -->
- <property
- name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts" value="1"/>
- <!--
- Run the TransactionStatusManager to allow out-of-process recovery managers to query
- the status of transactions owned by this coordinator. Default is YES.
- This can be set to NO in cases where an ObjectStore is used only by one transaction manager
- and the recovery manager for that store is in the same JVM. In any other cases disabling the
- TransactionStatusManager may cause crash recovery to misbehave.
- -->
- <property
- name="com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable" value="YES"/>
- <!-- property
- name="com.arjuna.ats.arjuna.coordinator.actionStore"
- value="HashedActionStore"
- value="JDBCActionStore"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
- value="JDBCAccess"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
- value="ShadowNoFileLockStore"
- value="JDBCStore"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
- value="JDBCAccess"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial"
- value="1"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum"
- value="1"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections"
- value="false"
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size"
- value=""
- -->
- <!-- property
- name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period"
- value=""
- -->
- <!--
- The location for creating temporary files, e.g., Uids.
- Default is under user.home.
- IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
- may not be!
- -->
- <!--
- <property
- name="com.arjuna.ats.arjuna.common.varDir"
- value="var"/>
- -->
- </properties>
- <properties name="common">
- <!-- CLF 2.0 properties -->
- <property name="com.arjuna.common.util.logging.DebugLevel"
- type="System" value="0x00000000"/>
- <property name="com.arjuna.common.util.logging.FacilityLevel"
- type="System" value="0xffffffff"/>
- <property name="com.arjuna.common.util.logging.VisibilityLevel"
- type="System" value="0xffffffff"/>
- <property name="com.arjuna.common.util.logger" type="System" value="log4j"/>
- </properties>
- <properties depends="arjuna" name="txoj">
- <!--
- (default is LockStore of installation - must be writeable!)
- -->
- <!--
- <property
- name="com.arjuna.ats.txoj.lockstore.lockStoreDir"
- value="LockStore"/>
- -->
- <!--
- (default is BasicLockStore)
- -->
- <property name="com.arjuna.ats.txoj.lockstore.lockStoreType" value="BasicLockStore"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.txoj.lockstore.multipleLockStore" value="NO"/>
- <!--
- (default is YES)
- -->
- <property name="com.arjuna.ats.txoj.lockstore.singleLockStore" value="YES"/>
- <!--
- (default is YES)
- -->
- <property
- name="com.arjuna.ats.txoj.lockstore.allowNestedLocking" value="YES"/>
- </properties>
- <properties depends="jts" name="jta">
- <!--
- Support subtransactions in the JTA layer?
- Default is NO.
- -->
- <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
- <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple"/>
- <!--
- com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple
- -->
- <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple"/>
- <!--
- com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple
- -->
- </properties>
- <properties depends="jta" name="jdbc">
- <!--
- property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/>
- -->
- </properties>
- <properties depends="common" name="orbportability">
- <property name="com.arjuna.orbportability.bindMechanism" value="CONFIGURATION_FILE"/>
- <!--
- The location of initial references file (default is user.home)
- -->
- <!--
- <property
- name="com.arjuna.orbportability.initialReferencesRoot"
- value=""/>
- -->
- <!--
- The name of the initial references file (default is CosServices.cfg)
- -->
- <property name="com.arjuna.orbportability.initialReferencesFile" value="CosServices.cfg"/>
- <!--
- When reading and writing IORs, they can be read/written in this
- directory. (default is serviceName)
- -->
- <!--
- <property
- name="com.arjuna.orbportability.fileDir"
- value=""/>
- -->
- <!--
- Default resolution service for the Transaction Manager Server.
- ORB specific.
- -->
- <!--
- <property
- name="com.arjuna.orbportability.resolveService"
- value=""/>
- -->
- <!--
- Event handlers.
- -->
- <!--
- <property
- name="com.arjuna.orbportability.eventHandler_0"
- value=""/>
- <property
- name="com.arjuna.orbportability.eventHandler_1"
- value=""/>
- -->
- <!--
- The ORB implementation class - this defaults to the class which
- implements support for the first supported ORB in your classpath.
- -->
- <!--
- <property
- name="com.arjuna.orbportability.orbImplementation"
- value=""/>
- -->
- <!--
- The OA implementation class - this also defaults to the class which
- implements support for the first supported ORB in your classpath
- -->
- <!--
- <property
- name="com.arjuna.orbportability.oaImplementation"
- value=""/>
- -->
- <!--
- This class handles context propagation issues, and should never
- be commented out or removed.
- -->
- <property name="com.arjuna.orbportability.orb.PreInit1" value="com.arjuna.ats.internal.jts.context.ContextPropagationManager"/>
- <!--
- This property ensures the JTS knows which ORB to use and should never
- be commented out or removed
- -->
- <property name="com.arjuna.orbportability.orb.PostInit1" value="com.arjuna.ats.jts.utils.ORBSetup"/>
- <!--
- This property ensures the crash recovery is initialised correctly and
- should never be commented out or removed
- -->
- <property name="com.arjuna.orbportability.orb.PostInit2" value="com.arjuna.ats.internal.jts.recovery.RecoveryInit"/>
- <!--
- This property ensures the JTS knows which ORB to use and should never
- be commented out or removed
- -->
- <property name="com.arjuna.orbportability.orb.PostSet1" value="com.arjuna.ats.jts.utils.ORBSetup"/>
- <!--
- This property ensures the JTS knows which ORB to use and should never
- be commented out or removed
- -->
- <property name="com.arjuna.orbportability.orb.PostSet2" value="com.arjuna.ats.internal.jts.recovery.RecoveryInit"/>
- <!--
- This property controls the port on which the Recovery ORB listens
- -->
- <property name="com.arjuna.ats.jts.recoveryManagerPort" value="4711"/>
- <!--
- This property controls the address on which the Recovery ORB binds - defaults to the loopback connection
+ <entry key="com.arjuna.ats.arjuna.coordinator.maintainHeuristics">NO</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod">10</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod">5</entry>
+
+
+ <!--
+ This is the JBossTS configuration file for running ArjunaCore.
+ It should be called jbossts-properties.xml.
+ You need a different version for JTA or JTS usage.
+
+ ***************************
+
+ Property values may be literals or be tokens of the form ${p1[,p2][:v]}
+ in which case the token values are substituted for the values of the corresponding system
+ properties as follows:
+
+ - Any occurance of ${p} with the System.getProperty(p) value.
+ If there is no such property p defined, then the ${p} reference will remain unchanged.
+
+ - If the property reference is of the form ${p:v} and there is no such property p,
+ then the default value v will be returned.
+
+ - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
+ the primary and the secondary properties will be tried in turn, before
+ returning either the unchanged input, or the default value.
+
+ The property ${/} is replaced with System.getProperty("file.separator")
+ value and the property ${:} is replaced with System.getProperty("path.separator").
+
+ Note this substitution applies to property values only at the point they are read from
+ the config file. Tokens in system properties won't be substituted.
+ -->
+
+
+
+ <!-- (default is YES) -->
+ <entry key="com.arjuna.ats.arjuna.coordinator.commitOnePhase">YES</entry>
+
+ <!-- (default is defaultStore) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.localOSRoot">defaultStore</entry>
+
+ <!-- default is under user.home - must be writeable!) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.objectStoreDir">PutObjectStoreDirHere</entry>
+
+ <!-- (default is ON) -->
+ <entry key="com.arjuna.ats.arjuna.objectstore.transactionSync">ON</entry>
+
+ <!-- (Must be unique across all Arjuna instances.) -->
+ <entry key="com.arjuna.ats.arjuna.xa.nodeIdentifier">1</entry>
+
+ <!--
+ Base port number for determining a unique number to associate with an instance of the transaction service
+ (which is needed in order to support multiple instances on the same machine).
+ Use the value 0 to allow the system to select the first available port number.
+ If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
+ to the loopback address is created or until the the maximum number of ports (specified by the
+ com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
+ reaches the maximum possible port number.
+ -->
+ <entry key="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort">0</entry>
+
+
+
+
+
+ <!--
+ Periodic recovery modules to use. Invoked in sort-order of names.
+ Check http://www.jboss.org/community/docs/DOC-10788 for more information
+ on recovery modules and their configuration when running in various
+ deployments.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension1">com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension2">com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension3">com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension4">com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryExtension5">com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule</entry>
+
+
+ <!--
+ Expiry scanners to use (order of invocation is random).
+ Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager">com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerContact">com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerTopLevelTran">com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.expiryScannerServerTran">com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner</entry>
+
+ <!-- Enable the following to move logs that cannot be completed by failure recovery. But
+be sure you know what you are doing and why! -->
+ <!-- entry key="com.arjuna.ats.arjuna.recovery.expiryScannerAtomicActionLog">com.arjuna.ats.internal.arjuna.recovery.AtomicActionExpiryScanner</entry> -->
+
+ <!--
+ The address and port number on which the recovery manager listens
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryPort">4712</entry>
+
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryAddress"></entry>
+
+ <!--
+ Use this to fix the port on which the TransactionStatusManager listens,
+ The default behaviour is to use any free port.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort">0</entry>
+
+ <!--
+ Use this to fix the address on which the TransactionStatusManager binds,
+ The default behaviour is to use the loopback address (ie localhost).
+ If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress"></entry>
+
+ <!--
+ For cases where the recovery manager is in process with the transaction manager and nothing else uses
+ the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
+ Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
+ if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
+ -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryListener">YES</entry>
+
+ <!-- Recovery Activator to use. -->
+ <entry key="com.arjuna.ats.arjuna.recovery.recoveryActivator_1">com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement</entry>
+
+
+ <entry key="com.arjuna.ats.jta.supportSubtransactions">NO</entry>
+
+ <entry key="com.arjuna.ats.jta.jtaTMImplementation">com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple</entry>
+
+ <entry key="com.arjuna.ats.jta.jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple</entry>
+
+
+
+ <entry key="com.arjuna.orbportability.bindMechanism">CONFIGURATION_FILE</entry>
+
+ <!--
+ This class handles context propagation issues, and should never
+ be commented out or removed.
+ -->
+ <entry key="com.arjuna.orbportability.orb.PreInit1">com.arjuna.ats.internal.jts.context.ContextPropagationManager</entry>
+
+ <!--
+ This property ensures the JTS knows which ORB to use and should never
+ be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostInit1">com.arjuna.ats.jts.utils.ORBSetup</entry>
+ <!--
+ This property ensures the crash recovery is initialised correctly and
+ should never be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostInit2">com.arjuna.ats.internal.jts.recovery.RecoveryInit</entry>
+
+ <!--
+ This property ensures the JTS knows which ORB to use and should never
+ be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostSet1">com.arjuna.ats.jts.utils.ORBSetup</entry>
+
+ <!--
+ This property ensures the JTS knows which ORB to use and should never
+ be commented out or removed
+ -->
+ <entry key="com.arjuna.orbportability.orb.PostSet2">com.arjuna.ats.internal.jts.recovery.RecoveryInit</entry>
+
+ <!--
+ This property controls the port on which the Recovery ORB listens
+ -->
+ <entry key="com.arjuna.ats.jts.recoveryManagerPort">4711</entry>
+
+ <!--
+ This property controls the address on which the Recovery ORB binds - defaults to the loopback connection
If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property name="com.arjuna.ats.jts.recoveryManagerAddress" value=""/>
- </properties>
- <properties depends="orbportability,arjuna" name="jts">
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.jts.transactionManager" value="NO"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.jts.needTranContext" value="NO"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.jts.alwaysPropagateContext" value="NO"/>
- <!--
- (default is NO)
- -->
- <property name="com.arjuna.ats.jts.checkedTransactions" value="NO"/>
- <!--
- (default is YES)
- -->
- <property name="com.arjuna.ats.jts.supportSubtransactions" value="YES"/>
- <!--
- (default is YES)
- -->
- <property name="com.arjuna.ats.jts.supportRollbackSync" value="YES"/>
- <!--
- (default is NO)
- -->
- <property
- name="com.arjuna.ats.jts.supportInterposedSynchronization" value="NO"/>
- <!--
- Timeout in seconds to use for top-level transaction if 0 specified.
- (default is no timeout)
- -->
- <!---
- <property
- name="com.arjuna.ats.jts.defaultTimeout"
- value=""/>
- -->
- <!--
- Propagate the context? (default is INTERPOSITION)
- -->
- <property name="com.arjuna.ats.jts.contextPropMode" value="INTERPOSITION"/>
- </properties>
- <properties depends="arjuna,txoj,jts" name="recoverymanager">
- <!--
- Properties used only by the RecoveryManager.
- -->
- <!--
- Periodic recovery settings.
- Time values in this section are in seconds.
- -->
- <!--
- Interval in seconds between initiating the periodic recovery modules.
- Default is 120 seconds.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" value="10"/>
- <!--
- Interval in seconds between first and second pass of periodic recovery.
- Default is 10 seconds.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod" value="5"/>
- <!--
- Periodic recovery modules to use. Invoked in sort-order of names.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension1" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension2" value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension3" value="com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension4" value="com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension5" value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryExtension6" value="com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule"/>
- <!--
- Recovery Activator to use.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.recoveryActivator_1" value="com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement"/>
- <!--
- Expired entry removal
- -->
- <!--
- Expiry scanners to use (order of invocation is random).
- Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager" value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerContact" value="com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerTopLevelTran" value="com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner"/>
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScannerServerTran" value="com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner"/>
- <!--
- Interval, in hours, between running the expiry scanners.
- This can be quite long. The absolute value determines the interval -
- if the value is negative, the scan will NOT be run until after one
- interval has elapsed. If positive the first scan will be immediately
- after startup. Zero will prevent any scanning.
- Default = 12 = run immediately, then every 12 hours.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.expiryScanInterval" value="12"/>
- <!--
- This is the interval, in hours, after which a process that cannot be contacted will be considered dead.
- It should be long enough to avoid accidentally removing valid entries due to short lived
- transient errors such as network downtime. Zero = Never removed. Default is 12.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime" value="12"/>
- <!--
- The port number on which the recovery manager listens.
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryPort" value="4712"/>
- <!--
- The address on which the recovery manager listens.
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryAddress" value=""/>
- <!--
- Use this to fix the port on which the TransactionStatusManager listens,
- The default behaviour is to use any free port.
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort" value="0"/>
- <!--
- Use this to fix the address on which the TransactionStatusManager binds,
- The default behaviour is to use the loopback address (ie localhost).
- If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
- -->
- <property
- name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress" value=""/>
- <!--
- For cases where the recovery manager is in process with the transaction manager and nothing else uses
- the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
- Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
- if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
- -->
- <property name="com.arjuna.ats.arjuna.recovery.recoveryListener" value="YES"/>
- </properties>
-</transaction-service>
+ -->
+ <entry key="com.arjuna.ats.jts.recoveryManagerAddress"></entry>
+
+
+</properties>
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Common/PropertyManagerTest.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Common/PropertyManagerTest.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Common/PropertyManagerTest.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -21,6 +21,7 @@
package org.jboss.jbossts.qa.ArjunaCore.Common;
import com.arjuna.common.util.propertyservice.PropertyManager;
+import com.arjuna.common.internal.util.propertyservice.PropertyManagerImpl;
import org.jboss.jbossts.qa.ArjunaCore.Utils.ChangeClasspath;
import org.jboss.jbossts.qa.ArjunaCore.Utils.qautil;
@@ -200,5 +201,5 @@
}
}
- private static PropertyManager pm = com.arjuna.common.util.propertyservice.PropertyManagerFactory.getPropertyManager("qa");
+ private static PropertyManager pm = new PropertyManagerImpl("qa");
}
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Utils/EmptyObjectStore.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Utils/EmptyObjectStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/ArjunaCore/Utils/EmptyObjectStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -43,8 +43,8 @@
{
try
{
- if (arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_TYPE) != null &&
- arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_TYPE).startsWith("JDBCStore"))
+ if (arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_TYPE) != null &&
+ arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_TYPE).startsWith("JDBCStore"))
{
JDBCAccess mJDBC = (JDBCAccess) Class.forName(System.getProperty("JDBC2_USER_DB_ACCESS")).newInstance();
Connection mConnection = mJDBC.getConnection();
@@ -53,7 +53,7 @@
}
else
{
- String objectStoreDirName = arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_DIR, com.arjuna.ats.arjuna.common.Configuration.objectStoreRoot());
+ String objectStoreDirName = arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_DIR, com.arjuna.ats.arjuna.common.Configuration.objectStoreRoot());
System.out.println("Emptying " + objectStoreDirName);
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/CrashRecovery11Utils/Delays.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/CrashRecovery11Utils/Delays.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/CrashRecovery11Utils/Delays.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -41,8 +41,8 @@
//
// get from the propertyManager
//
- String backoffPeriodString = arjPropertyManager.propertyManager.getProperty(Environment.RECOVERY_BACKOFF_PERIOD);
- String recoveryPeriodString = arjPropertyManager.propertyManager.getProperty(Environment.PERIODIC_RECOVERY_PERIOD);
+ String backoffPeriodString = arjPropertyManager.getPropertyManager().getProperty(Environment.RECOVERY_BACKOFF_PERIOD);
+ String recoveryPeriodString = arjPropertyManager.getPropertyManager().getProperty(Environment.PERIODIC_RECOVERY_PERIOD);
try
{
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/AssertCleanEnvironment.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/AssertCleanEnvironment.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/AssertCleanEnvironment.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -88,7 +88,7 @@
ORBInterface.initORB(args, null);
OAInterface.initOA();
- objectStoreDirName = arjPropertyManager.propertyManager.getProperty(
+ objectStoreDirName = arjPropertyManager.getPropertyManager().getProperty(
Environment.OBJECTSTORE_DIR,
com.arjuna.ats.arjuna.common.Configuration.objectStoreRoot());
}
Modified: labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/EmptyObjectStore.java
===================================================================
--- labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/EmptyObjectStore.java 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/qa/tests/src/org/jboss/jbossts/qa/Utils/EmptyObjectStore.java 2009-07-02 11:29:12 UTC (rev 27433)
@@ -66,10 +66,10 @@
orbClass.start(args);
}
- if (arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_TYPE) != null &&
- arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_TYPE).startsWith("JDBCStore"))
+ if (arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_TYPE) != null &&
+ arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_TYPE).startsWith("JDBCStore"))
{
- JDBCAccess mJDBC = (JDBCAccess) Class.forName(arjPropertyManager.propertyManager.getProperty(Environment.JDBC_USER_DB_ACCESS)).newInstance();
+ JDBCAccess mJDBC = (JDBCAccess) Class.forName(arjPropertyManager.getPropertyManager().getProperty(Environment.JDBC_USER_DB_ACCESS)).newInstance();
String tableName = mJDBC.tableName();
if (tableName == "")
/* from arjuna.internal.JDBCStore */
@@ -100,7 +100,7 @@
}
else
{
- String objectStoreDirName = arjPropertyManager.propertyManager.getProperty(Environment.OBJECTSTORE_DIR, com.arjuna.ats.arjuna.common.Configuration.objectStoreRoot());
+ String objectStoreDirName = arjPropertyManager.getPropertyManager().getProperty(Environment.OBJECTSTORE_DIR, com.arjuna.ats.arjuna.common.Configuration.objectStoreRoot());
System.out.println("Emptying " + objectStoreDirName);
Modified: labs/jbosstm/trunk/sharedbuild.xml
===================================================================
--- labs/jbosstm/trunk/sharedbuild.xml 2009-07-02 11:09:43 UTC (rev 27432)
+++ labs/jbosstm/trunk/sharedbuild.xml 2009-07-02 11:29:12 UTC (rev 27433)
@@ -87,12 +87,14 @@
<macrodef name="compile.macro">
<attribute name="excluded.classes" default="${excluded.classes}"/>
+ <attribute name="includeant" default="false"/>
+
<element name="additional.classpath" optional="true"/>
<element name="additional.src.dirs" optional="true"/>
<sequential>
<mkdir dir="${build.dir}/classes"/>
<property name="excludes.list" value="${excluded.classes}"/>
- <javac srcdir="${src.dir}" destdir="${build.dir}/classes" debug="${debug}"
+ <javac srcdir="${src.dir}" destdir="${build.dir}/classes" debug="${debug}" includeantruntime="@{includeant}"
deprecation="${deprecation}" excludes="@{excluded.classes}" fork="true">
<classpath>
<fileset dir="${build.dir}/lib/ext/" includes="*"/>
@@ -126,7 +128,7 @@
<sequential>
<mkdir dir="${build.dir}/tests"/>
- <javac srcdir="${tests.dir}" destdir="${build.dir}/tests" debug="${debug}"
+ <javac srcdir="${tests.dir}" destdir="${build.dir}/tests" debug="${debug}" includeantruntime="false"
deprecation="${deprecation}" excludes="${excluded.test.classes}">
<classpath>
<pathelement location="${build.dir}/classes"/>
@@ -372,7 +374,7 @@
<sequential>
<echo file="${build.dir}/tests/jbossts-properties.xml"
- message="<properties/>"/>
+ message="<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties/>"/>
<mkdir dir="${build.dir}/testresults"/>
<junit printsummary="yes" fork="yes" dir="${build.dir}">
@@ -392,6 +394,9 @@
<batchtest haltonerror="yes" haltonfailure="yes" fork="yes" todir="${build.dir}/testresults">
<tests/>
</batchtest>
+
+ <!--<jvmarg value="-Xdebug"/>-->
+ <!--<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"/>-->
</junit>
</sequential>
More information about the jboss-svn-commits
mailing list