PK kHoa,mimetypeapplication/epub+zipPKkHMETA-INF/container.xml PKYuPKkHOEBPS/commands005.htm,Lӳ configure

configure

Use the configure command to configure Business Transaction Management as an alternative to using the browser-based Configuration Wizard for initial configuration. You use the configure command in conjunction with an input file that contains specifications for various Business Transaction Management settings.

Before executing the configure command, you must decide whether you want to store information in an embedded database, or in an Oracle database. If you want to store information in an Oracle database, you will need to install and set up the database before running the configure command.

The sections following the syntax description provide additional information about the configuration process and the input file.

Command Syntax

btmcli configure -i inputFile -sphereUrl -l username:password
NameLong NameDescription
-i-inputFileThe path to the configuration file to use to configure a Business Transaction Management installation.
-s-sphereUrlThe URL of the sphere you want to configure.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the configure command.

btmcli configure -i myConfigFile.xml -s http://localhost:8080/btmcentral/sphere/
                  -l admin:abracadabra

How the configure Command Works

The configure command checks every Business Transaction Management service for its current configuration state. If all services are in a configured state, the command exits and informs you that Business Transaction Management is configured. If there is a mix of configured and unconfigured services, the configure command attempts to configure the unconfigured services. If an error or exception occurs, Business Transaction Management logs the error and the configuration continues. When the configure command completes, it returns a message that describes all successful and unsuccessful service configurations.

If all Business Transaction Management services are configured successfully, the command returns a "configured" message.

You can run the configure command again following a configuration attempt where an error occurs, and the system will attempt to configure the service(s) that returned an error during the previous configuration attempt. The configure command does not try to reconfigure a service that reports a successful configuration.

If you would like to reconfigure a service that has been configured successfully, you can run the getSetupData and putSetupData commands.

Any reconfiguration of Business Transaction Management services requires a restart of the server.

The Configuration File

When you install and configure Business Transaction Management using the browser-based configuration wizard, a configuration file called essentialConfiguration.xml is created. (See Backing up and Restoring Business Transaction Management, for information on its location on different platforms.) You can use this file as a starting point to initialize a new Business Transaction Management system; you will need to change the contents of the file to specify your desired settings. This then becomes the input file to the configure command. The preference names in the configuration file, and their values, are both case sensitive.

Unlike the Configuration Wizard, the configure command does not allow you to stop midway through the configuration and then resume configuration at a later time. The configure command requires a complete configuration file -- if required parameters are missing from the file, the configure command returns an error.

Password Encryption

To supply an encrypted password for the configuration file, run the encryptPassword command and then copy and paste the resulting value into the configuration file.

If you use a clear text password in the configuration file, Business Transaction Management encrypts the password when it stores the configuration information in the setup data of the appropriate system services.

Configuration File Parameters

The following table lists the parameters to use in the configure command configuration file.

Alias Preferences

You can specify alias values for the nodes running Business Transaction Management central services: sphere, performance, and transaction monitoring. In each case the preference value is a comma-separated list of alternative DNS names/IP addresses that can be used to access services on the respective server.

For example, if the sphere URL is http://server1:8080/apcentral/sphere/, but the machine server1 also has the DNS alias spherehost, you can set sphereAliases to spherehost to reflect that. If the machine's primary IP address is 10.10.22.44, but the sphere's container is listening on all lP addresses and the machine has a second network interface running on 10.10.22.47, you could set sphereAliases to spherehost, 10.10.22.47 to reflect both these aliases.

If all Business Transaction Management central services are running in the same container (the demo case), the performanceAliases and transactionAliases are ignored. If the servers are running in different containers but on the same machine as the sphere, the aliases are applied to the same node definition. So, in effect, the performance and transaction aliases are added to those for the sphere, rather than tracked separately.

Note: All parameters are type=string, except for the acceptLicenseTerms parameter, which is type=boolean.

Parameter NameRequiredDescription
sphereUrlYESURL of the sphere you are configuring. The sphere is deployed in btmMain.

The value should be the same value provided in the -s flag for the configure command.

http://hostname:port/btmcentral/sphere/

databaseChoiceYESIndicates the type of database to use for the Business Transaction Management databases.

Use one of the following:

  • embedded (Java platforms only)

  • oracle

If you specify embedded, ignore all subsequent database settings.

nodeAliasesNoAliases for the node running the sphere.

See discussion of Alias preferences, above.

performance.nodeAliasesNoAliases for the node running the performance server (btmperformance.war).

See discussion of Alias preferences, above.

transaction.nodeAliasesNoAliases for the node running the transaction server (btmexmrt.war).

See discussion of Alias preferences, above.

deploymentUsername, deploymentPasswordYESSome Business Transaction Management services communicate with the application server to perform discovery; these services require a set of administrative credentials mapped to an administrative user for the application server

This is required for all application servers except Tomcat

agentServiceDB_databaseUrl, agentServiceDB_provider, agentServiceDB_userName, agentServiceDB_passwordNOAgent message log database. By default, all agents in a container log to this database. You can override the behavior after initial configuration. See Setting up the Message Log Database.

This is required if databaseChoice is Embedded.

sphereServiceDB_databaseUrl, sphereServiceDB_provider, sphereServiceDB_userName, sphereServiceDB_passwordNOSphere database settings.

Required if databaseChoice != Embedded

exmServiceDB_databaseUrl, exmServiceDB_provider, exmServiceDB_userName, exmServiceDB_passwordRequired if databaseChoice != EmbeddedException management component database settings.

Required if databaseChoice != Embedded

performanceDB_databaseUrl, performanceDB_provider, performanceDB_userName, performanceDB_passwordRequired if databaseChoice != EmbeddedPerformance component (SLM) database settings.

Required if databaseChoice != Embedded

performanceUrlYESThe URL to use to contact the performance (SLM) component of Business Transaction Management (this component is deployed in btmPerformanceServer). The performance component must be running at the time of configuration.

btmPerformanceServer is typically deployed in a separate container than the sphere. When you specify an performanceURL on a different node that the sphere, Business Transaction Management also registers the remote container with the sphere.

transactionURLNOThe URL to use to contact the transaction component of Business Transaction Management (this component is deployed in btmTransactionServer). The transaction component must be running at the time of configuration.

btmTransactionServer is typically deployed in a separate container than the sphere. When you specify an transactionURL on a different node that the sphere, Business Transaction Management also registers the remote container with the sphere.

base_locationType, base_directory,

base_maxDuration, base_maxSize, base_numFiles

OptionalBy default, trace log files are stored in the directory BTMStorageRoot/deployment_name/system_service/logdir

BTMStorageRoot varies with the application server; for more information, see Backing up and Restoring Business Transaction Management..

If you wish to store trace log files in a different location, use the parameters described below.

Note: These parameters will not affect the trace log file settings for the following system services: aqms, notifier, and domain.

  • base_locationType - This required parameter must have a value of "default" or "custom"; if the value is "custom", then the base_directory parameter must have a value.

  • base_directory - The directory where Business Transaction Management should create log files. This parameter must have a value if base_locationType = custom. Do not use this preference if base_locationType = default.

Note: If you change the directory location using the above parameters, you are required to also include the base_maxDuration, base_maxSize and base_numFiles parameter settings.

  • base_maxDuration - log file age in hours. Once a log file reaches this age, it rotates. (When you configure Business Transaction Management using the Management Console, the default setting is 168.)

  • base_maxSize - size in kilobytes for all log files together. Once the log files become larger than this setting, log file rotation occurs. (When you configure Business Transaction Management using the Management Console, the default setting is 50000.)

  • base_numFiles - number of concurrent log files that can exist. (When you configure Business Transaction Management using the Management Console, the default setting is 7.) base_maxSize / base_numFiles gives the maximum size for each log file. When this size is reached for a particular file, it rotates.


PKt1L,LPKkHOEBPS/content.opf a Oracle® Enterprise Manager Business Transaction Management Online Help, Release 12.1.0.3 en-US E37014-02 Oracle Corporation Oracle Corporation Oracle® Enterprise Manager Business Transaction Management Online Help, Release 12.1.0.3 2012-12-14T16:15:03Z Oracle® Enterprise Manager Business Transaction Management Online Help, Release 12.1.0.3 PKӰKa aPKkHOEBPS/commands002.htm  addBaseAddressAlias

addBaseAddressAlias

Use the addBaseAddressAlias command to add the specified alias for the entry point with the given base address.

If another entry point with this alias as its base address is already known to the sphere, the two entry points and their contents are merged and duplicate WSDLs and endpoints removed.

The addBaseAddressAlias command accomplishes the same thing as the command removeDuplicateEndpoint when that command is given two endpoints that differ only in their base address.

Using the -force option creates an entry point and its alias before any endpoints corresponding to that entry point are discovered or registered, thus preventing duplicates from being (mistakenly) created in the first place.

Unlike the aliases created by the addNodeAlias command, aliases created by the addBaseAddressAlias command or the removeDuplicateEndpoint command apply to a single entry point. If the same alias is added at the network node level, either automatically by message observation or discovery, or manually by the addNodeAlias command, it will supercede the locally-defined alias for the entry point, and it will not be possible to delete that alias using the removeBaseAddressAlias command.

You can preview the results of this command before committing to the changes it defines. After previewing, you must run the command again without the -P option to actually make the changes.

Use the removeBaseAddressAlias command to remove an alias created with the addBaseAddressAlias command.

Resolving Discovery Issues describes the use of this command in resolving discovery issues.

Command Syntax

btmcli addBaseAddressAlias -baseAddress address -alias address [-P] [-f]
                           -s sphereURL -l username:password
NameLong NameDescription
-baseAddress--The base address of an existing entry point in the sphere. Use the format scheme://host:port/
-alias--The base address to use as an alias for the above entry point.
-P-previewPreview the result of the command, but do not actually make any changes to the model.
-f-forceCreate an entry point with the given base address if it does not yet exist. Use this option to prime the system with aliases before duplicate endpoints are discovered.
-s-sphereUrlThe URL of the sphere. http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Examples

The following example shows the addBaseAddressAlias command.

btmcli addBaseAddressAlias -baseAddress http://jbujes:8080 
          -alias http://1.2.3.4:8080 -s http://localhost:8080/btmcentral/sphere/
          -l admin:abracadabra
PK  PKkHOEBPS/alerts008.htmZ About Conditions

About Conditions

You can associate one or more conditions with a transaction. A condition is an expression that Business Transaction Management evaluates against a transaction instance. You might use conditions to have Business Transaction Management let you know about the following kinds of events:

You can define three types of conditions for a transaction:

When a condition evaluates to true, Business Transaction Management does the following:

Conditions are evaluated on a per-instance basis; therefore, instance logging must be enabled. If you define a condition for a transaction and you have not enabled instance logging, Business Transaction Management automatically turns it on for that transaction.

When you define a condition, you also assign a severity level to the alert that will be issued when the condition evaluates to true. Severity levels include info, warning, and failure.

Working with Conditions explains how you define conditions, view condition information, modify a condition, and delete a condition.

Defining and Evaluating Conditions

You must observe the following limitations when defining content-based conditions.

  • Condition definitions can include multiple clauses, but all clauses must reference the same message (operation.request, operation.reply or operation.fault).

  • A content-based condition can test for a property value, a fault value, or both. If both, the property must be defined on the fault phase of the operation.

  • Only message elements that are referenced by means of properties can be used in a condition definition, with the exception of fault codes.

The system evaluates a content-based condition when the message for which it is defined is seen. If the condition evaluates to true, Business Transaction Management will correlate back to the transaction's start message to make sure that the instance that has satisfied the condition has been called from within the transaction. If so, the resulting instance is assembled and saved for the time duration specified on the transaction's storage settings Retain archived condition instances.

The system begins to evaluate a missing-message condition when it sees the starting message for the transaction. It then looks for the message for the period specified in the condition definition. If it does not see the message in that period, the missing message condition evaluates to true.

Once you have defined a condition on a transaction, it is listed in the transaction's Conditions tab.

Interpreting Condition Alerts

Alerts are commonly thought to signal that something bad has happened, for example, that an error has occurred. However Business Transaction Management uses condition alerts to signal the occurrence of any kind of message pattern. So, depending on the condition definition, an alert could signal a positive event: a customer has doubled an order, a process has attained a certain level of efficiency, sales in a particular region have exceeded the norm, and so on. You can use severity settings to signal whether the alert denote a positive event (info level) or a negative one (warning or failure level).

Once an alert is issued, you have several ways to deal with the situation. You can:

  • view the logged instance

  • notify interested parties by email

Condition alerts that have occurred can be queried, filtered, and viewed on the Alerts tab of the related transaction instance. Alerts created in the last 24 hours for all objects can also be filtered and viewed using the Condition Alerts view (from the Navigator bar). The dashboards also include various alert counts.

PK_ZPKkHOEBPS/discovery.htm Discovering Services and Dependencies

3 Discovering Services and Dependencies

This chapter explains how you use Business Transaction Management to discover containers, services, and dependencies. Using this information you can get an exact picture of how your distributed application works, what components have performance issues, and what components require closer monitoring. It includes the following sections:

PK|PKkHOEBPS/commands037.htmg registerMonitor

registerMonitor

Use the registerMonitor command to register a monitor agent with the sphere.

Following installation and configuration of Business Transaction Management central services, you can deploy one or more monitor nodes to additional application servers for processing observed messages. You need to run the reigsterMonitor command for each monitor you want to add.

If the nodes hosting Business Transaction Management monitors use aliases, you can run the addNodeAlias command to register the aliases with the sphere.

Command Syntax

btmcli registerMonitor -e endpointUrl [-fn friendlyName]
                       -s sphereUrl -l username:password
NameLong NameDescription
-e-endpointUrlSpecifies the URL of the monitor to register with the sphere. For example,

http://localhost:8080/btmmonitor/agent/agent

Replace the host name and port number with appropriate values. This URL always ends with btmmonitor/agent/agent.

-fn-friendlyNameThe friendly name of the endpoint for the monitor agent you want to register.
-s-sphereUrlRequired. The URL of the sphere with which you want to register the container.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

btmcli registerMonitor -e http://localhost:8080/btmmonitor/agent/agent
                       -s sphereUrl http://localhost:8080/btmcentral/sphere/
                       -l admin:abracadabra
PK9PKkHOEBPS/commands030.htmJ monitorEndpoint

monitorEndpoint

Use the monitorEndpoint command to enable monitoring of the specified endpoint. The endpoint will be monitored by the monitor agent (or group) that discovered it.

Once an endpoint is monitored, you can apply policies to it and the system can connect measurements, log messages, or record transaction instances that include the endpoint. In most cases, observer-discovered endpoints are automatically monitored. However, if the type of endpoint you want to monitor is not monitored by default, you might need to use this command to start monitoring.

The observer communication policy settings determine whether an endpoint is monitored by default. The default settings for this policy always monitor discovered endpoints immediately. But the user can deselect that option for any or all genres.

Use the unmonitorEndpoint command to disable monitoring.

Command Syntax

btmcli monitorEndpoint -n name | -e endpointUrl1 [[endpointUrl2]...]
                       -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe friendly name of the endpoint to monitor.
-e-endpointUrlA list of endpoint URLs for the endpoints you want to monitor.

If this is a web service, you can supply the actual URL to reach the endpoint. If this is another type of component, look in the Profile tab in the management console to determine the endpoint's URL.

-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Examples

The following example shows the monitorEndpoint command used to monitor MyEndpoint.

btmcli monitorEndpoint -n MyEndpoint
                       -s http://localhost:8080/btmcentral/sphere
                       -l admin:abracadabra
PK7PKkHOEBPS/commands042.htmq removePathAlias

removePathAlias

Use the removePathAlias command to remove an alias representing an alternative URL path that can be used to access the specified WSDL or endpoint. Any future registration or discovery will again treat the two paths as distinct.

See also removeNodeAlias for host name aliases and removeBaseAddressAlias for other aliases in the authority part of the WSDL's URL.

The removePathAlias command allows you to remove outdated aliases from the system. For instance, if a service descriptor has an alias added due to an HTTP redirect that is later disabled (WSDL URL A redirected to URL B, but now the two URLs represent different WSDLs), this command removes the alias so that WSDL A can be registered independently.

See Resolving Discovery Issues, for a discussion of the use of this command in resolving discovery issues.

Command Syntax

ap removePathAlias -w wsdlUrl| -e endpointUrl -alias pathAlias
                   -s sphereUrl -l username:password
NameLong NameDescription
-w-wsdlUrlThe full URL or the WSDL (service descriptor) for which you want to remove an alias.
-e-endpointUrlThe full URL of the endpoint(s) for which to remove the alias. If multiple endpoints are matched, the alias will be removed from all of them.
-alias--The alternate path to remove from the service descriptor or endpoint. This should be just the path portion of the URL, starting with "/".
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the removePathAlias command using an encrypted password.

btmcli removePathAlias -e http://jbujes:7001/credit/CreditService 
                       -alias /bookmart/amex/CreditSrevice 
                       -s http://localhost:8080/btmcentral/sphere/ 
                       -l admin:abracadabra
PKNvqPKkH OEBPS/toc.ncx < Oracle® Enterprise Manager Business Transaction Management Online Help, Release 12.1.0.3 Cover Title and Copyright Information Contents Preface 1 Overview of Oracle Business Transaction Management 2 Using the Management Console 3 Discovering Services and Dependencies 4 Working with Transactions 5 Monitoring Services 6 Working with Consumers 7 Configuring and Viewing Alerts 8 Creating Reports 9 Commands and Scripts 10 Utilities 11 Administration of Business Transaction Management Index Copyright PK% PKkHOEBPS/alerts001.htm About Alerts

About Alerts

In addition to ongoing monitoring of the performance of services, endpoints, and transactions, you can have Business Transaction Management alert you when specific events occur.

Business Transaction Management issues several types of alerts:

PK܎PKkHOEBPS/transactions003.htmkU Working with Properties

Working with Properties

Properties are variables that hold values associated with the request or response phase of an operation (message). This section explains how you use Business Transaction Management to work with properties. It includes the following sections:

Defining Properties

The process you use to define a message property varies depending on whether the property corresponds to a single message element, a fragment of an element, a combination of elements, or an expression that includes an element.

You can access the Create Message Property tool by selecting a service, operation, or endpoint in any view; then select Create Message Propertyon Name from the Create menu.

Independently of the kind of property you create, you will need to specify the following information (in addition to specifying the message element that supplies the property value):

  • A Name for the property

  • The Operation (message) whose content you will use to define the property value

  • An optional Description explaining the purpose of the property or anything other notes you want to retain about this property.

  • The Property Source: where the value of the property is to be obtained.

  • Whether the property should be mapped to a consumer through a particular attribute. If you want the property to be associated with a particular consumer attribute, check the Consumer Mapping check box. By default, the only user attribute defined by the system is Consumer Name. You can define other consumer attributes if you need to.

  • Whether the value of the property can be accessed only by Business Transaction Management users whose role allows them to view sensitive information. To restrict access, click the Treat as sensitive check box.

If you define a new property after messages have been collected, the logged messages will not include the newly defined properties.

The following procedures describe how you can create properties based on a single element, based on an element fragment, or based on more than one message element.

Defining a property based on a single element

  1. Select a service, operation, or endpoint in any view.

  2. Select Create Message Property on Name from the Create menu.

  3. Specify the name of the property. If you do not provide a name, uses the message element name for the property name.

  4. Property Source: Specify whether the element of interest is part of the message content or the message header.

    If you select Header, Business Transaction Management displays a small dialog you must use to specify the Header Name, the phase (request, response, fault), and the data type. Then skip to Step 8. Steps 5-8 apply if you selected Message Content.

  5. Click the Pick from Message link to display the message elements.

  6. Use the Message drop down list to select Request or Response.

  7. Double click the message element to select it.

  8. Click the Consumer Mapping check box if you want to map this property to a consumer attribute.

  9. Select the attribute if there is more than one.

  10. Click the Sensitivity check box if you want to restrict access to the property value.

  11. Click OK.

Defining a property based on an arithmetic expression

  1. Select a service, operation, or endpoint in any view.

  2. Select Create Message Propertyon Name from the Create menu.

  3. Specify the name of the property. If you do not provide a name, Business Transaction Management uses the element name for the property name.

  4. Property Source: Select Message Content.

  5. Click the Pick from Message link to display the message elements.

  6. Use the Message drop down list to select Request or Response.

  7. Double click the message element to select it.

  8. Click the Convert To XPath item. The display shows the XPath definition of the element.

  9. In the XPath box, create the desired expression. For example, if you want to define a Tax property that computes tax, you could take the original XPath expression for the Price element

    /soapenv:Envelope/soapenv:Body/*[local-name(.)='submit']/^*
    [1]/^tns1:OrderItems/^tns1:Price
    

    and define it to compute a tax of 10%; for example:

    /soapenv:Envelope/soapenv:Body/*[local-name(.)='submit']/^*
    [1]/^tns1:OrderItems/^tns1:Price * .10
    
  10. Click the Consumer Mapping check box if you want to map this property to a consumer attribute.

  11. Select the attribute if there is more than one.

  12. Click the Sensitivity check box if you want to restrict access to the property value.

  13. Click OK.

Defining a property based on the partial contents of an element

This might be useful if you have nested xml documents and want the property's value to contain a nested element.

  1. Select a service, operation, or endpoint in any view.

  2. Select Create Message Propertyon Name from the Create menu.

  3. Specify the name of the property. If you do not provide a name, Business Transaction Management uses the element name for the property name.

  4. Property Source: Select Message Content.

  5. Click the Pick from Message link to display the message elements.

  6. Use the Message drop down list to select Request or Response.

  7. Double click the message element to select it.

  8. Click the Convert To XPath item. The display shows the XPath definition of the element.

  9. Edit the XPath expression to limit the property value to the nested element.

  10. Click the Consumer Mapping check box if you want to map this property to a consumer attribute.

  11. Select the attribute if there is more than one.

  12. Click the Sensitivity check box if you want to restrict access to the property value.

  13. Click OK.

Defining a property based on the combined contents of multiple elements of the same message

This might be useful if you need to provide manual keys to correlate messages but no single message element is unique to a service. You can create a property for the unique value that results from combining two message elements; for example, Customer ID and zip code.

The following procedure assumes you are combining two elements. You can extend this case for additional elements.

  1. Select a service, operation, or endpoint in any view.

  2. Select Create Message Propertyon Name from the Create menu.

  3. Property Source: Select Message Content.

  4. Click the Pick from Message link to display the message elements.

  5. Use the Message drop down list to select Request or Response.

  6. Double click the message element to select it.

  7. Click the Convert To XPath item. The display shows the XPath definition of the element.

  8. Copy the XPath definition and push the Cancel button to dismiss the Create Message Property tool.

  9. Select the same operation again.

  10. From the Create menu, select Message Property on Name.

  11. Specify the name of the property.

  12. Property Source: Select Message Content.

  13. Click the Pick from Message link to display the message elements.

  14. Use the Message drop down list to select Request or Response (the phase has to be the same as for the message from which you copied the first element).

  15. Double click the message element to select it.

  16. Click the Convert To XPath item. The display shows the XPath definition of the element.

  17. Paste the XPath definition you have copied from the first element. Depending on the element type, use the appropriate operator to form a valid XPath expression.

  18. Click the Consumer Mapping checkbox if you want to map this property to a consumer attribute.

  19. Select the attribute if there is more than one.

  20. Click the Sensitivity checkbox if you want to restrict access to the property value.

  21. Click OK.

Properties for Services that Have Missing or Incomplete WSDLs

Business Transaction Management uses the same model to represent interconnected components no matter what the component type: the model shows services that interact by sending request and response XML messages. The model also assumes that each of the services is described by a WSDL specifying the service's location and its interface. However, not all discovered components can be precisely rendered by this model. If the component is not an actual web service, the corresponding WSDL might be missing or incomplete. In such a case, you will need to take some additional action to create properties for the message elements of this component. Basically, you will log a message containing the element of interest, and then copy the XML into the property definition.

The process is the following:

  1. Enable message logging for the transaction operation that contains the element for which you want to create a property.

  2. Run traffic through your system to capture at least one transaction instance.

  3. Select the transaction of interest in the main area of the console.

  4. Open the Message Log tab and select the operation for which you have logged messages.

  5. Click on the magnifying glass icon to open the Message Content inspector.

  6. Select View XML for either the Request or the Response message, depending which of these contains the element of interest.

  7. Copy the XML for the message.

  8. Select a service, operation, or endpoint in any view. (The service must contain the operation of interest.)

  9. Select Create Message Property on Name from the Create menu.

  10. Property Source: Select Message Content.

  11. Click the Pick from Message link to display the message elements. Ignore the element tree that is already filled in (if any).

  12. Select the operation phase: Request or Response.

  13. Click the Get XML button to open the Paste XML document window.

  14. Paste the text in the window and click OK.

  15. The element tree should now contain the message element.

  16. Select the element of interest.

  17. Click the Consumer Mapping check box if you want to map this property to a consumer attribute.

  18. Select the attribute if there is more than one.

  19. Click the Sensitivity check box if you want to restrict access to the property value.

  20. Click OK.

Viewing Property Definitions

You can view partial property definitions on the Properties tab of an operation, endpoint, service, or transaction. The property name, phase, type, and description are displayed. The property's sensitivity and consumer mapped attribute is also displayed.

To see the full definition, click the Edit button and select Modify.

Viewing Property Values

You can view property values in the following views:

  • Message Log tab for a selected endpoint, operation, service, or transaction

  • Alerts tab for a selected endpoint, operation, service, or transaction

  • Transactions view, Instances tab

  • Transaction Instance inspector

Modifying Properties

You can change the definition of a property. Note that if you change the XPath definition of an existing property, the runtime will start calculating the new XPath definition based on incoming messages. Previously recorded messages will continue to hold the value calculated based on the old XPath definition.

To change the name of a property, you must create a duplicate, assign it a new name, and then delete the original.

Properties play an important role in transaction definitions, segmentation, conditions, and logging; for this reason, modifying a property definition might have the following consequences:

  • If the property is used as a key in a transaction definition, the transaction will be disabled.

  • If the property is used as a key in a transaction definition, the transaction will be disabled.

  • If the property is used by a condition, the condition will be disabled.

To modify any user-created property

  1. Select the Properties tab of the operation, endpoint, service, or transaction of interest.

  2. Click the Edit button and select Modify.

  3. Modify the property definition. Refer to the instructions for creating a property.

  4. Click OK to save the new definition.

Duplicating Property Definitions

There are a couple of reasons why you might be interested in duplicating a property definition:

  • You might want to use the original property as a starting point for creating another property that needs a similar complex expression or includes some of the content that is extracted by this property. In this case, you would want to duplicate the property and partly modify its definition.

  • You need to rename a property. In this case, you can duplicate the property, assign it the desired name, and delete the original property. Deleting properties can have significant side effects. See Troubleshooting Transactions to learn more.

To duplicate any user-created property

  1. Select the Properties tab of the operation, endpoint, service, or transaction of interest.

  2. Click the Edit button and select Duplicate.

  3. Modify the property definition. Refer to the instructions for creating a property.

  4. Change the name of the duplicate if you wish.

  5. Click OK to save the modified copy.

Removing Properties

Properties play a key role in transaction definitions, segmentation, condition definitions, and logging; for this reason deleting a property might have significant consequences:

  • If a property is used as a correlation key, it is considered fundamental to the transaction definition. If one of these properties is deleted, the entire transaction will become disabled and a system alert will be generated.

  • If a property used for transaction consumer segmentation is deleted, or modified so that it is no longer marked as "consumer," the transaction segmentation will no longer be captured. If the transaction is marked enabled for segmenting by consumer, a system alert will be generated and consumer segmentation will be disabled.

  • If a property used by a condition definition is deleted, the condition will be disabled and a system alert will be generated.

  • If a property is deleted which is defined on an operation in a transaction and logged (but not explicitly used for other purposes), the user will no longer be able to see that property and associated content when viewing instances of logged messages.

To delete any user-created property

  1. Select the Properties tab of the operation, endpoint, service, or transaction of interest.

  2. Click the Edit button and select Delete.

  3. Click OK to save the new definition.

PK yrpUkUPKkHOEBPS/monitoring001.htmv Ways of Monitoring Services

Ways of Monitoring Services

This section lists the ways you can monitor services. The list orders these monitoring tasks from the most general to the most specific, and explains, for each task, how you navigate to the view where you can perform the monitoring.

To monitor:

PK?Y{vPKkHOEBPS/commands045.htm z renameEndpoint

renameEndpoint

Use the renameEndpint command to change the specified endpoint's friendly name in the sphere.

When multiple endpoints at the same URL are given the same name in their respective WSDL definitions, giving them unique friendly names can make it easier to distinguish between them in future commands and in command output. You must provide the endpoint URL and a new friendly name. All other parameters are optional and are included only to help you distinguish the desired endpoint from others with the same URL.

See Resolving Discovery Issues, for a discussion of the use of this command in resolving discovery issues.

Command Syntax

btmcli renameEndpoint -e endpointUrl -fn friendlyName [-bn bindingName]
                      [-w wsdlUrl] [-n name] [-service serviceName] 
                      [-qname qname] [-V version] [-interfaceQName interfaceQName]
                      -s sphereUrl -l username:password
NameLong NameDescription
-e--The endpoint URL of a web service.
-bn-bindingNameThe binding for the endpoint. Used to disambiguate endpoint URLs with multiple bindings. For example: SOAP and HTTP
-w-wsdlUrlThe URL of the WSDL file.
-n-nameThe existing friendly name of the endpoint to be renamed.
-service--The friendly name of the service to which the renamed endpoint belongs.
-qname--The qualified name of the service to which the renamed endpoint belongs.
-V-versionThe version of the service to which the renamed endpoint belongs. Use with the -service or -qname flags if needed.

Use the "-" string to represent the default, unnamed version.

---interfaceQNameThe qualified name of the interface the renamed endpoint implements.
-fn-friendlyNameThe new friendly name for the endpoint to be renamed.
-s-sphereUrlThe URL of the sphere. http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the renameEndpoint command used to rename CreditService to MyCreditService.

btmcli renameEndpoint -e http://jbujes:7001/bookmart/credit/CreditService
                      -fn MyCreditService
                      -s http://localhost:8080/btmcentral/sphere
                      -l admin:abracadabra
PKrV PKkHOEBPS/alerts006.htmF SLA Compliance Tab

SLA Compliance Tab

The SLA Compliance tab displays the current state of SLA compliance for the selected object, either a transaction, service, endpoint, operation, or consumer. Because some types of information are relevant to only certain types of objects, the layout of the Compliance tab can vary from object to object.

The SLA Compliance tab has two subtabs, Threshold Compliance and Baselines.

There are no baselines for consumers. The information that is displayed on the Threshold Compliance subtab for other object types is displayed directly on the SLA Compliance tab for consumers. This information is described below.

The Threshold Compliance subtab uses a grid view. Each row represents one performance objective.

The columns provide various types of static information that identify and define the objectives. Also provided are two dynamic columns with real-time monitoring values. These are the Value and the Current Status columns.

The Current Status column can have three possible values:

The Value column displays the current value of the instrument on which the objective is based

Click the magnifying glass next to a value to pop up a chart showing the instrument's recent history, for example:

Description of pop-up_chart_with_callouts.gif follows

The chart displays a time period equal to the SLA's evaluation period. The right-hand edge is the current time. In this example, values above the yellow line have crossed the warning threshold. Those above the red line have crossed the failure threshold. (If you set up an objective whose value must remain above a specified threshold, then colored warning and failures areas are displayed below the threshold lines.)

Objectives are listed per consumer only if the objective is part of a usage SLA. For objectives that are not part of a usage SLA, the Consumer column is empty.

PK!-ǾPKkHOEBPS/transactions004.htme& Defining, Modifying, and Deleting Transactions

Defining, Modifying, and Deleting Transactions

A transaction is a sequence of service operations that you want to monitor and manage as one unit. This section explains how you use Business Transaction Management to define transactions, to modify transaction definitions, and to delete transactions.

Keep in mind that the more features you turn on for your transactions, the greater the impact on Business Transaction Management performance, especially with high volume. For example, it is best to restrict message logging to narrow areas of interest rather than to enable it for all operations in a transaction. The following guidelines indicate the relative performance cost of transaction monitoring options:

Defining a Transaction

Defining a transaction involves specifying the following information:

  • The operations that participate in the transaction, and the start and end message for the transaction.

  • Whether the transaction should be actively monitored or temporarily quiesced.

  • Whether you want information to be segmented by ip address or consumer.

  • Whether you want to log transaction instances or message content.

  • How you want the system to correlate messages: using fingerprints or using manual keys that you define

  • How long transaction messages should be held by the system.

The following subsections explain how you specify each aspect of the transaction definition.

Selecting Operations and Enabling the Transaction

Once you have defined the operations that participate in a transaction and enabled transaction monitoring, you will be able to view transactions and related services in the Transaction view, create fixed-value and baseline Service Level Agreements (SLA), view summary of link measurements on the Summary tab and other measurements in the appropriate views. For measurements, you will be able to see the number of started and completed transactions, throughput, average response time, maximum response time, and faults.

  1. Select any operation that you want to include in transaction. You can select the operation from any view: service graph, dependency diagram, data grid, or message search tool.

  2. Select Transaction from the Create menu. Business Transaction Management brings up the Transaction tool, which allows you to define all aspects of the transaction.

  3. Select the Definition tab if it is not already selected. Note the basic elements required for a definition as shown on this tab: start message, end message, and maximum transaction duration. The Enable Transaction Monitoring checkbox is enabled by default. Disabling the box allows you to keep a transaction definition while temporarily turning off monitoring.

    In the upper pane, the tool displays all the operations that are dependent upon the operation you selected. By default, the request message of the left-most operation in the dependency chain is designated to be the start operation and the response message of the left-most operation is designated to be the end message. The tool displays the specified starting operation along with all the service operations in the consequent dependency chain. By default message fingerprints are used to correlate messages in a transaction. These are represented in the transaction map with a fingerprint icon. You can choose to have Business Transaction Management correlate messages using manual keys if you like.

  4. By default, the transaction name is based on the starting operation. To assign another name, specify it in the Transaction Name text box.

  5. If you want to change the start and end message selected by default, click on the Start message or End message drop down lists and select an alternate start and end message.

    If the start and end message are not the request/response messages of the same operation, you will need to specify keys with common content for Business Transaction Management to measure performance. You will be prompted for the required information.

  6. To further customize the transaction, use the buttons to the right of the graph to add an operation, connect it to existing operations, to indicate message flow direction, or to remove an operation. You will also need to specify manual keys to connect the operation you have added to an existing operation in your transaction.

  7. A new transaction is enabled by default. This means that Business Transaction Management is monitoring transaction performance, collecting measurements, and evaluating conditions if these have been defined for the transaction.

    To disable a transaction, click the Enable Transaction Monitoring check box. This will turn off measurement collection (segmented and non-segmented), condition evaluation, instance logging and content logging. However, SLA's applied to the transaction will continue to evaluate and potentially fire unless you explicitly disable them. Disabling a transaction is a way of quiescing transaction monitoring without losing the transaction definition.

  8. By default the scope of the transaction (how long it takes for it to complete) is set to one minute. Business Transaction Management uses this value as a guideline in locating transaction messages; it defines the time window within which unique content is expected to appear. You can change this value to a shorter or longer duration for Maximum Transaction Duration), depending on the characteristics of your transactions.

Enabling Segmentation

Business Transaction Management allows you to segment transaction measurements based on ip address and by individual consumer. You use the Segmentation tab of the Transaction tool to enable segmentation. Enabling segmentation allows you to create usage SLAs for the transaction, to see transaction usage by client IP address, and to see transaction measurements by consumer. You can see on the Profile tab which segments are enabled and which property is being used as the consumer property.

You can choose to enable either or both of the segmentation options. The image below show what the tab looks like after segmentation has been enabled and a particular property has been mapped to a consumer. Note the consumer icon.

To enable segmentation:

  1. Select the Segmentation tab of the Transaction tool

  2. To enable client address (ip) segmentation, click the check box Enable client address segmentation.

  3. To enable consumer segmentation, click the check box Enable consumer segmentation.

    Consumer segmentation depends upon defining a property for the transaction's starting message. This property refers to the message element that you want to map to the consumer business object. If you have not already defined this property before you define the transaction, you can do so as shown in steps 4 through 9. If you have defined the property, select it now.

  4. Click the New Property button. Business Transaction Management displays the Create Property tool.

  5. Specify a name for the property, and provide a description if desired.

  6. Property Source: Select the source for the property value: Message content or Header.

  7. Select the Pick from Message.... link, and select the element you want to map to the consumer business object.

  8. Consumer Mapping: Click on the check box Map to consumer through attribute Consumer Name. You can change your selection later if you wish, but you cannot have more than one property mapped to a consumer object.

  9. If you do not want the consumer name displayed exactly because it contains sensitive information, check the Treat as sensitive check box.

  10. Click OK.

Enabling Instance and Message Content Logging

Enabling instance logging allows you to see a list of transaction instances captured in a given time period. These are displayed in the Instances tab of the Transaction view. You can inspect a given instance, view any property values for that instance, and create conditions based on property values. You can also assemble any of these instances.

To enable instance logging:

  1. Select the Logging tab.

  2. Click the check box titled Enable instance and property logging.

Enabling message content logging allows you to view message content for the operations you specify. (In this case, Business Transaction Management logs all messages for the specified operations, not just those belonging to this particular transaction flow.) You can get to the message content in different ways: use the Message Log Search tool to find an operation based on free text search and then open the related transaction instance, or you can drill through to the message log from the Analysis tab and alerts.

To enable message content logging:

  1. Select the Logging tab, and click the check box titled Enable message content logging on selected operations.

  2. Select the operations (messages) whose content you want to log. Logging message content is an expensive operation. It is best to narrow the scope of messages that interest you before you start logging messages.

The example above shows that message content is enabled for the operation checkCredit of the service CreditService.

Correlating Messages in a Transaction Using Manual Keys

By default Business Transaction Management correlates messages in a transaction by computing fingerprints (hash values) based on the content of each message and by pairing incoming messages with outgoing messages all the way to the end of the call chain. Defining manual keys provides an alternate means of correlating messages. Manual correlation is used to add a secondary operation flow to a transaction, to define a transaction whose end message and start message do not belong to the same operation, and to define a missing message condition.

Transaction messages do not have to be correlated by a single method: some messages can be auto-correlated; others can be correlated using manual keys. In order to define a manual key, you must map it to a message property and that property must satisfy certain requirements as explained next.

A manual key is mapped to a message property.

The property can correspond to a single element in a message, to a combination of elements, or to a fragment of an element. You can define the property before you define the manual key

The property you define for the manual key must satisfy two requirements:

  • Its value must be the same for the messages you are correlating.

  • Its value must be unique for the scope of the transaction (the scope is defined by the value of Maximum transaction duration).

For example, in a shopping type application, the order ID is often an excellent choice for a manual key.

You will need to manually correlate operations in the following cases:

  • To add a secondary operation flow to the transaction. This might be necessary in the case of asynchronous systems like JMS or desirable if you want to connect two operation flows that share underlying data but are not causally connected. For example, you have one flow defined by an order entry, and another flow defined by the fulfillment of the order. The same order is involved in two otherwise disjoint processes.

    In this case, you will need to figure out which two operations you want to link, and to find a common element for those two operations that you can map to a message property. The process would be as follows: add the operation to the transaction; connect it to an existing operation in your transaction, and indicate the direction in which the request is going. The two operations will then be shown in the Message Keys tab, where you can connect them using a manual key.

  • To define a transaction whose end message is not the end message of the operation that starts the flow.

    In this case, you will need to find a common element in the starting message and the desired end message that you can map to a message property. When you specify the end message, the system will prompt you for the manual key that will connect the start and end message.

  • To define a missing message condition.

    In a missing message condition, an alert is generated if the target message you specify does not arrive within a given period of time after the start message occurs. In this case, you must define a key for some element that is common to the start and target message. When you define the missing message condition, the system will prompt you for the key that will connect the start and target message.

You use the Message Keys tab of the Create Transaction tool to define the means by which Business Transaction Management correlates operations when you are adding a secondary flow. Note that if a given operation correlates to more than one operation in a dependency flow, you have the option of creating manual keys for each correlation. For example, in the tab shown below, the start operation of OrderService.submit correlates to one of three possible operations. You do not have to use the same key to correlate to the three different operations nor do you have to use the same means of correlation.

To create a manual key to correlate messages:

As mentioned above, the start key and end key of a correlation must be mapped to the same property and the value of the property must be unique to the transaction. You can define the properties you need before you define the correlations or you can access the property tool from the Message Keys tab and define the property at the same time that you are defining the correlation.

  1. Select the Message Keys tab.

  2. Select the start operation for the pair of operations you want to correlate.

  3. Click the Message Fingerprint item for the Start operation of interest to see the key drop down list. Business Transaction Management displays a list of properties for the operation from which you can pick one to use as a manual key.

  4. If a property is displayed that satisfies the requirements specified in the introduction to this procedure, you can select that property to use as a key.

  5. If no property is displayed that will have a unique value on each invocation of the operation, select New Property from the drop down list to open the Property tool and use that tool to define the property you want to use as a message key.

  6. Select the End operation that corresponds to the Start operation for which you have just created the key.

  7. Repeat Steps 4 through 5 to select or define a key for the end operation. (Although the property names might be different, the value of the property must be the same.)

  8. Repeat Steps 4 through 7 for each pair of operations that you want to correlate. (The properties you have created for the manual keys are displayed in the Profile tab for the selected transaction, in the Properties pane.) When you are done defining the transaction, the graphic that represents the transaction will be changed to show key icons rather than fingerprint icons for all operations that are correlated using a manual key.

Defining Storage Settings

The final step in defining a transaction is to define archival settings and to enable the indexing of message content.

Use the Storage Settings tab to define these values. The table below shows the default settings and explains the meaning of the settings.

ItemDefault valueDescription
Retain archived condition instances30 daysThe amount of time Business Transaction Management must retain archived condition instances in the transaction server's database.

An archived condition instance is a transaction instance that is assembled and retained when a condition set on one of the operations belonging to the transaction evaluates to true. (Instance logging must be turned on when you define a condition if it hasn't already been turned on.)

Retain individual messages24 hoursThe minimum amount of time Business Transaction Management must retain logged messages in the transaction server's database.
Rotate message log720 minutesIf you have turned message logging on, this specifies the rotation interval for logged messages. Messages that are rotated out are held in the message log database for the amount of time defined for Retain individual messages.
Text index message contentOnCreates a text index in the oracle database that speeds up keyword-based searches (at the expense of storage and some initial processing time). If you disable this feature, you can still do content-based searches, but they will be slower.

Modifying a Transaction Definition

Modifying a transaction definition changes the definition of the transaction in the environment. You can modify any part of a transaction definition, but keep in mind that Business Transaction Management does not track definition versions. For this reason changing some aspects of the definition might confuse things. For example, if you add or delete operations to a transaction definition or if you change the keys used to correlate operations, and then you try to assemble a transaction instance that preceded the modified definition, you might get odd results. On the other hand, enabling or disabling the transaction, or changing storage options should not be a problem.

To modify a transaction definition:

  1. Select the transaction of interest in the Explorer > Transactions summary view.

  2. Select Edit TransactionName from the Modify menu.

  3. Use the Modify Transaction tool to modify the transaction definition. Refer to Defining a Transaction for information about definition elements.

  4. Click OK.

Business Transaction Management offers you a short cut you can use to enable or disable a transaction without having to edit its definition.

To enable or disable a transaction:

  1. Select the transaction of interest in the Explorer > Transactions summary view.

  2. Select Enable TransactionName or Disable TransactionName from the Modify menu. The appropriate action will be available, depending on the current status of the selected transaction.

Deleting a Transaction Definition

Deleting a transaction definition removes the definition from the environment. No condition alerts defined for this transaction are triggered. The system deletes all existing instances of this transaction.

To remove a transaction:

  1. Select the transaction of interest in the Explorer > Transactions summary view.

  2. Select Delete TransactionName from the Modify menu.

  3. Confirm the deletion.

PKv:eePKkHOEBPS/utilities.htm Utilities

10 Utilities

This chapter describes the Business Transaction Management utilities. You use these utilities to connect to and manage a database, to manage system service deployment log files, and to display information about the Business Transaction Management product. This chapter includes the following sections:

PKJPKkHOEBPS/commands039.htm^ removeDuplicateEndpoint

removeDuplicateEndpoint

Use the removeDuplicateEndpoint command to remove the specified duplicate endpoint.

Typically, you would use this command when the system discovers two endpoints with the same path but different host names due to a DNS alias that was not known to the system. Executing this command also adds the missing alias to make sure that future discoveries do not result in recreating the duplicate endpoint.

If duplicates differ only in their base address, it is assumed that other endpoints found under both base addresses are also duplicates. In addition, the service descriptors (WSDLs) for the duplicate endpoints are also deleted from the model. WSDLs and endpoints under the duplicate entry point that are not actually duplicates are not removed; they are moved under the remaining entry point.

If the specified endpoint URL refers to a dependency-discovered endpoint and the duplicate URL refers to a discovered or manually-registered endpoint, the command is reversed: the duplicate endpoint is preserved and the base address of the endpoint URL is treated as an alias.

You can preview the results of this command before committing to the changes it defines. After previewing, you must run the command again without the -P option to actually make the changes.

See Resolving Discovery Issues, for a discussion of the use of this command in resolving discovery issues.

Command Syntax

btmcli removeDuplicateEndpoint -e endpointUrl -d duplicateUrl [-P]
                               -s sphereUrl -l username:password
NameLong NameDescription
-e-endpointUrlThe URL of the endpoint to preserve.
-d-duplicateUrlThe URL of the endpoint to remove as a duplicate.
-P-previewPreview the results of the move without actually moving endpoints.
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Alternate Means of Removing Duplicates

In the following situations, the removeDuplicateEndpoint command will refuse to make the specified changes to avoid compromising the integrity of the model or destroying information that is not actually duplicated.

In these cases, you might need to do the following:

  1. Use the unregister command to unregister the service endpoints that cannot be removed with the removeDuplicateEndpoint command.

  2. Use the addNodeAlias or addBaseAddressAlias commands to add aliases that help the system recognize endpoint duplication.

Example

The following example shows the removeDuplicateEndpoint command:

btmcli removeDuplicateEndpoint 
              -e http://jbujes.edge.com:7001/bookmart/credit/CreditService
              -d http://jbujes.delphi.com:7001/bookmart/credit/CreditService -P
              -s http://localhost:8080/btmcentral/sphere/
              -l admin:password
PKE2c^PKkHOEBPS/reports.htm Creating Reports

8 Creating Reports

This chapter explains how you create reports based on the performance information gathered by Business Transaction Management.

It contains the following sections:

PKePKkHOEBPS/admin003.htmf$ Business Transaction Management System Security

Business Transaction Management System Security

This section provides information to help you administer Business Transaction Management system security and includes the following subsections:

Authentication and Role Mapping

Business Transaction Management relies on the WebLogic server in which it is deployed for authentication and association of roles with users. By default, authentication is enabled for the Management Console. To disable authentication, use whatever tool or procedure is appropriate for the application server you are using.


Note:

In order to log into the Management Console, you must use credentials that are mapped to at least one of these Business Transaction Management user roles: btmAdmin, btmUser, or btmObserver.

If you disable authentication, users of the Management Console must still log in. However, they can log in using any user name and are not required to provide a password. Note that all UI personalizations, such as edits to the Navigator, filters, and column sets are stored as preferences and associated with the user name.

This topic describes how the supported application servers authenticate users and map them to Business Transaction Management application roles.

Summary of Initial Application Role Mapping

Business Transaction Management RoleWebLogic Group
btmAdminWebLogic Administrators
btmUserWebLogic Operators & Monitors
btmObserverEveryone
btmInspector

(Note that the role name is singular while the group name is plural.)

btmInspectors


Note:

The role btmInspector is, by default, mapped to a group named btmInspectors, but the application server administrator must create a group named btmInspectors and assign it to the appropriate users.

Business Transaction Management Application User Roles

Business Transaction Management uses roles to authorize access to various parts of the user interface.

Primary Roles

Each user must be assigned at least one primary role. The primary roles are:

btmAdmin – users with this role are granted all privileges. These users can use all tools and facilities provided by the Business Transaction Management Console, including the ability to view and create sensitive properties and to view all message content.

btmUser – users with this role have most privileges needed to configure basic monitoring. For example, they can configure monitors; create, edit, and delete policies (does not include system policies); register services; set registry attributes on services and endpoints; and create and edit transactions and conditions. They also have all the privileges of btmObserver. This role does not grant the privilege to modify the Business Transaction Management environment, access message content, or view or edit sensitive properties.

btmObserver – users with this role have privileges to use most of the basic monitoring facilities. They can view summary, dependency, and administrative information about the monitoring system, but are not allowed to configure any of the policies or settings related to it. They can also view transactions and conditions, but are not allowed to create or edit them. This role does not allow users to modify the Business Transaction Management environment, access message content, or view or edit sensitive properties.


Note:

All navigation and views in the Management Console are available to all primary roles. However, some roles cannot access certain menus and menu items and the tools associated with them.

Auxiliary Role

In addition to the primary roles, Business Transaction Management defines an auxiliary role. The auxiliary role provides additional privileges that you might want to assign certain users. For example, you might want to let a user access message content but not want to give that user full administrative privileges. You could do this by assigning the user a primary role of btmUser and an auxiliary role of btmInspector. The auxiliary role is:

btmInspector – users with this role can view message content and view and create properties, including sensitive properties.


Note:

The btmAdmin role has all of the privileges of btmInspector.

PKlk$f$PKkHOEBPS/commands054.htm#- unregister

unregister

Use the unregister command to unregister the service, WSDL, or endpoint from the sphere.

This command produces no output if the items to be removed are not registered with the sphere.

To unregister a specific endpoint, specify the service the endpoint belongs to using -n or -qname flags, and the endpoint to be removed using the endpointUrl and -interfaceQName flags. This option is generally useful if a dependency-discovered endpoint was created incorrectly. If you do not specify the -interfaceQName flag, only dependency-discovered endpoints are removed.

When unregistering replicated services composed of endpoints from one WSDL file, specifying the service name or the WSDL URL, results in the same behavior. Unregistering replicated services composed of endpoints from multiple WSDL files, results in different behaviors, depending on how the service is identified:

Once you unregister a service or endpoint, you will no longer be able to access its history. If you think you might want to re-register the service or endpoint and access its history, you will need to save its UUID (shown in the Profile tab).

Command Syntax

btmcli unregister -n serviceName | -qname qualifiedName | -w wsdlUrl1
                                                  [[wsdlUrl2...]
           [-V version] [-e endpointUrl] [-interfaceQName interfaceQName] [-f]
           -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe friendly name of a service to remove from the sphere.

If the name is not unique, it must be qualified using the -V (version) flag.

-qname--The qualified name (WSDL targetNamespace plus service name) of the service to remove from the sphere.

This option is useful when multiple services with different qualified names have been assigned the same friendly name in the sphere.

If the name is not unique, it must be qualified using the -V (version) flag.

-w-wsdlUrlThe URL for the WDSL file whose service(s) you want to unregister.

You must specify the -w or -n flag, but not both, with this command.

-V-versionThe version of a service to remove. Must be used in conjunction with the-qname or -name options.

Use the "-" string to represent the default, unnamed version.

-e--The URL of a specific endpoint; in this case the corresponding WSDL is not unregistered.

-interfaceQNameThe qualified name of the interface for a specific endpoint to unregister.
-f-forceUnregister a service even if some of its endpoints are monitored. They will be unmonitored prior to removing the service.
-s-sphereUrlThe URL of the sphere where the WSDL is installed.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example unregisters the service in the specified wsdl.

btmcli unregister -w http://myProductionBox:28006/OrderService.wsdl 
                  -s http://mydomain.com/btmcentral/sphere/ -l Admin:abracadabra
PKa##PKkHOEBPS/consumers.htm Working with Consumers

6 Working with Consumers

This chapter explains how you can present performance results to reflect consumers' use of your services. It explains how you set up consumer segmentation, how you create consumers, how you map messages to consumers, and how you view and manage consumer-based performance information. It includes the following sections:

PK2$PKkHOEBPS/commands028.htmC listNodeAliases

listNodeAliases

Use the listNodeAliases command to list the aliases for all known nodes or for the specified node.

Command Syntax

btmcli listNodeAlias [ n nodeName]
                     -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe canonical name of the network node. Typically a fully-qualified domain name. For example, jbujes-myPC.edgility.com

If you do not specify this flag, aliases for all known nodes are displayed.

-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the listNodeAlias command.

btmcli listNodeAliases -n jbujesPC.edgility.com 
                       -s http://localhost:8080/btmcentral/sphere/
                       -l admin:abracadabra
PK{UrPKkHOEBPS/console002.htm=d Viewing Data

Viewing Data

All data known to the sphere about the services, endpoints, and operations that make up your application are presented using different types of views: graphical views, charts, tabular views, and dashboards. You can view this information using the format that makes it easiest for you to find and interpret data. In addition, you can use a variety of controls to filter and sort the data to highlight selected aspects of application performance.

This section describes the controls and views used to display data. It begins by describing controls that are available for all types of views and continues to describe the characteristics of each type. It covers the following topics:

Viewing Controls

Data is displayed in the console using graphs, tables, charts, and dashboards. This section describes the controls that are available no matter how you view data. Controls specific to a single type of view are described in the section for that type.

For all types of views, you can use controls to filter the information displayed, to add or delete columns in a table or to change time intervals when data is reported; you can also use controls to display additional information or to display information in a separate window.

Filtering Controls

You can use filtering controls to filter service maps and tabular data. Business Transaction Management provides two kinds of filters: deep and shallow. Not all views provide both types. The figure below illustrates these controls.

Description of deep_shallow_filters.gif follows

Deep filters modify a view by re-fetching data from the sphere according to the constraints you specify using the filter control. Shallow filters simply limit what is currently shown in the console. So, for example if you used a shallow (Look for) filter to show only items that have "Order" in their name, the current view would be refreshed to show you only those items.

You can define deep filters in two ways:

  • Select one of the pre-defined filters from the drop-down list. The choices listed in the drop-down list include those filtering criteria most commonly needed for the object selected in the Navigator.

  • Select the Choose Filter... item from the drop down list to open the Filter tool and specify the desired criteria.

    The filter tool allows you to filter objects according to their salient characteristics (attributes); these will differ depending on the object selected in the Navigator: services, containers, policies, devices, consumers, and so on. If the Filter tool does not list an attribute, that means you cannot filter a view based on that attribute.

    For more information about the Filter tool, see Using the Filter Tool.

Column Chooser and Sizing Control

Controls for modifying tabular displays (by adding or deleting columns) and for resizing columns are shown just above table views. The figure below shows the column chooser and its drop down list. It also shows the sizing control, which allows you to resize columns so that all columns are visible in the table.

Described in text.

Choose No Columns to display no columns. If you select Choose Columns.... Business Transaction Management displays a tool you can use to add or delete columns.

Time Interval Control

The time interval control allows you to specify the interval during which instrument data is fetched and displayed. This control is shown in different locations and has a different effect depending on where it is set. It is displayed either as a clock icon or a drop-down list labeled Time Period.

  • In the column chooser (Instruments tab), the control allows you to specify the intervals over which you want to get instrument data. You can choose this interval to be dynamic, or you can choose fixed periods of 10 minutes, 1 hour, 1 day, or 7 days. If you specify "dynamic," the interval is set by the time interval control shown in the main pane.

  • In the main area, if displayed, the time interval control allows you to specify the intervals for which instrument data is reported. You have the choice of 10 minutes, 1 hour, 1 day, or 7 days.

  • In the Analysis pane, which gives you the finest granularity, you can look at measurements taken in the last fixed period of 10 minutes, 1 hour, 1 day, or 7 days; you can look at measurements taken since a given date and time; or you can look at measurements taken between two specified dates and times.

  • In the Summary pane you can look at measurements taken in the last fixed period of 10 minutes, 1 hour, 1 day, or 7 days; you can also use it to set a time range.

Note that for day and week intervals, the interval is expanded so that you get at least as much data as you ask for. For example, if today is 11:20 a.m. on 12/22/10, and you pick last 1 day, data is returned from 12/21/10 11:00 until now. Similarly, if you pick last week, data is returned from 12/15/10 00:00 till now.

Pop-up Links and Inspectors

Some items in tables are underlined to indicate that they are links you can click to open an inspector. For example, in the Operational Health Summary dashboard, the number specifying up containers is such a link.

Description of link_to_container_popup.gif follows

Click the link to open an inspector window that displays additional information about containers that are currently up.

Tear-off Controls

The looking glass icon, indicates that you can open a new window showing information about the selected object, including the tabs area.

Viewing Maps

A map is a good way to represent relationships; maps provide a visual representation of how services, endpoints, or operations are related.

  • To view all services and their dependencies, select Maps > Service Map from the navigator.

  • To view containers, select Maps > Container Map from the navigator.

  • To view dependencies between a subset of related services, endpoints, or operations, select the object of interest and click the Dependency tab.

  • To view dependencies between the operations that make up a transaction, select the transaction and click the Summary tab.

The following figure shows a map that presents endpoint dependencies.

Description of endpoint_dependency_graph.gif follows

Because map views focus on relationships, Business Transaction Management attempts to present as clean a picture as possible so as not to obscure these relationships. Additional information is usually available if you move the cursor over the links that connect objects or if you hover over the object itself. In this case, hovering over an endpoint icon displays information about the endpoint's container, service, and core instrument values.

All map views also provide specialized controls that you can use to get additional information or to filter available information. These are described in the following sections.

Displaying Tabular Data for a Map

If you click the table icon in any map view, Business Transaction Management displays the corresponding inventory in a table to the left of the map.

The tabular tree view allows you to see one or more layers above or below the objects shown in the graphic. Note the shallow filter at the top of the display; you can use this to further filter the contents of the table.

To close the tabular tree view, click the table icon again.

Description of table_and_graph.gif follows

Filtering and Adjusting the Map View

If you click the wrench icon in any map view, Business Transaction Management offers several controls.

  • The Layout control allows you to choose the direction and type of layout used.

  • The Show Related control allows you to display additional objects that are only indirectly related to the objects whose dependencies are shown. These might be objects that you might want to manually add to the map by registering them.

  • In some maps, this control might also allow you to filter the current view.

Scaling a Map View

The scaling icon allows you to expand and shrink the currently displayed map.

Slide the scaling bar up and down to resize the map to the desired size. If scaling does not produce the desired results, you can try using the region control, described next.

Focusing on Different Regions of a Map

If a map cannot fit in the current window, Business Transaction Management displays a thumb view control in the lower right hand corner of the map window. You use this control to reposition the map so that you can view all its branches.

To use this control, click on the white rectangle and drag it to position the map as desired. Use the triangle icon in the lower right hand corner to collapse or open the thumb-view control.

Viewing Charts

Charts provide a graphic presentation of how instrument values change over time. The following chart displays the response time for a transaction. The chart is accompanied by a table that serves both as a key and as a tabular presentation of the charted data. You can get more information from charts by passing the cursor over the graphed instrument values. As you pass the cursor over the nodes in the chart, Business Transaction Management displays instrument values for the point in time associated with that node.

Response time sample chart shown and explained in text.

Viewing Tables

Tables are shown in the main area of the console.

Controls situated above the table allow you to filter the contents of the table, to change the columns shown, or to re-size columns to fit data. You can also sort columns, change column widths, and move columns.

  • To view sorting options for a given column, pass the cursor over the column heading. A pop-up will inform you of your options.

  • To change column widths, place the cursor on the line separating column headings until the resizing icon appears, then drag the icon to change the width of the column.

  • To move columns in different positions, click the column heading and drag to the desired position.

Any changes you make to a table will be lost when you close or refresh your browser. To save a modified view, you must choose View > Save current view from the menu. After naming and saving the view, it will be listed under My Views in the navigator.

Viewing Dashboards

Dashboards are containers that include graphical and tabular elements. They are used to give you a snapshot of some aspect of your system: transaction performance, top ten services, and operational health. You can display dashboards by selecting one from the Dashboards in the Navigator.

PKd)@]==PKkHOEBPS/alerts010.htm Viewing Condition Alert Information

Viewing Condition Alert Information

When a condition evaluates to true, the system tracks its occurrence and automatically creates a condition alert. This section explains the various ways Business Transaction Management displays count and condition alert information, and it explains how you can modify the amount of time that alerts are stored.

You cannot manually delete alerts.

Viewing Count Information

You can view count information condition alerts as follows:

  • In the Operational Health Summary dashboard (counts for each type of alert).

  • In the Top 10 Transactions dashboard.

  • In the Alerts tab of a transaction.

  • In the Performance pane of the Analysis tab for the transaction.

  • In the Conditions pane of the Analysis tab for the transaction.

You can also edit the summary view (for a transaction) to show a count of condition alerts and the current condition alert rate by using the column chooser and selecting the Condition alert and Condition alert rate instruments. The Condition alert instrument specifies the condition occurrences in the specified period. The Condition alert rate instrument specifies the number of condition occurrences per hour in the given period.

Viewing Alert and Detail information

You can view condition alerts in the following ways:

  • on the Alerts tab of the related service, endpoint, operation, or transaction instance. Detailed information for the selected alert is shown in a separate window if you click the looking glass icon or double click the alert

  • in the Condition Alerts view from the navigator for condition alerts that occurred in the last hour. Detailed information for the selected alert is shown in the Info tab in the tab area.

Condition alert detail includes the following information:

  • the name and severity of the condition and the expression whose evaluation triggered the alert.

  • summary information: The name of the transaction, the time it was captured (Start Time), its ID, the number of message exchanges and the total messages, the response time for the transaction, and any conditions alerts raised while the transaction executed (with severity flags shown).

  • a graph of the transaction, showing the operation for which the condition expression evaluated to true with a red broken arrow. To display the request and response message for each operation, click the inspector icon for the desired operation in the list below the graph.

Modifying Alert Expiration Time

By default logged information for alerts expires after 1 year (31536000 seconds).

You can change the alert expiration time as follows:

  1. Select Administration > System Services from the Navigator.

  2. Select the AP_Notifier_Service in the summary pane.

  3. Select Edit Setup Data for AP_Notifier_Service from the Admin menu.

  4. Modify the Logged notification expiration time field to the desired number (of seconds).

  5. Click Apply.

PK{eaPKkHOEBPS/admin004.htmS Backing up and Restoring Business Transaction Management

Backing up and Restoring Business Transaction Management

The following sections explain how you back up and restore your system. The topics covered include the following:

About the Back up and Restore Process

Oracle Business Transaction Management stores a large amount of data. This data describes the system's configuration, what the system is monitoring, and the current and past states of monitored applications. All of this data is needed for the operation of the system; if something happens that causes this data to be lost or damaged, the system can no longer perform as you expect. This is why it is important to create a backup of the system's data and to be able to recover this data.

You might need to back up Business Transaction Management for different reasons:

  • on a regular basis to enable recovery from unforeseen events

  • before migrating to a new sphere

  • before upgrading an application server in the Business Transaction Management environment or adding an application server

  • before installing a new version of Business Transaction Management

This section offers general guidelines for backup and recovery, and suggests milestones for testing the process you have defined. How often you create a checkpoint by backing up your data depends entirely on the lifecycle stage of your application and on business requirements.

Backing up and restoring Business Transaction Management does not include the backup and recovery of the hosting application server and its configuration settings, some of which Business Transaction Management needs to function properly: JVM settings, Java System parameters, and so on. You should already have processes in place for backing up your application servers and their configurations.

Before You Back Up

Business Transaction Management operates in a complex environment. For this reason, before backing up, it is important to make sure that you can isolate Business Transaction Management components and that you can identify any other systems that might be affected by the backup and recovery process. Consider issues like the following:

  • Databases might be shared with components other than Business Transaction Management. Unless the problem is database failure itself, it is important to restore only those database instances that are used by Business Transaction Management.

  • Recovery might affect other systems. For example, if Business Transaction Management shares JDBC drivers with other applications, recovery might restore a driver to a previous version and cause other applications using the driver to fail.

Testing the Backup and Recovery process

You should test your backup process periodically by attempting a recovery and making sure the system can be brought up to the desired state with no side effects. Identifying and resolving problems with the backup process will ensure successful recovery when recovery matters. Your backup verification checklist should include things like the following:

  • database and file system structure, and permissions are as expected

  • Business Transaction Management is functional and in the expected state: the console shows everything is running, services are reachable, traffic flows normally, and so on.

  • no application sharing the same resources is adversely affected.

Backing up Business Transaction Management

This section describes how Business Transaction Management data is organized, explains how you back up each type of data, and discusses timing issues related to backups.

How Business Transaction Management Data Is Organized

The next figure shows the various kinds of Business Transaction Management data and the Business Transaction Management system services that rely on this data.

Description of btm_backup_data.gif follows

With reference to the figure, the basic principle of backing up data is as follows:

  • All data contained in databases is backed up by backing up the database.

  • All data contained in files or directories is backed up by backing up the btmstorage directory, which can be found on every host where one of the Business Transaction Management system services or monitors is deployed. The location of this directory for your server is specified in Backing up Business Transaction Management Data.

The rest of this section provides more information about elements shown in the previous figure. You do not need to know this level of detail just to do backup and recovery. But this detail might be helpful in troubleshooting and in understanding the resources used by Business Transaction Management. If you want, you can skip ahead to Backing up Business Transaction Management Data.

As the figure shows, Business Transaction Management is composed of multiple system services:

  • The sphere, responsible for the overall operation of Business Transaction Management and coordination of its member services

  • The SLM service, responsible for gathering performance measurements

  • The ExM service, responsible for transaction management

  • Monitor agents, responsible for collecting data from observers

Each of these services depends upon data that specifies the system's configuration, describes what it is monitoring, and records the state of monitored applications. This data can be grouped into the three categories shown in the figure.

  • Definitional metadata is stored in two places and contains the following information:

    The Sphere database contains data that describes Business Transaction Management as well as the monitored user systems. It includes a description of the users' applications, the policies used to monitor them, and transaction definitions.

    Monitor agent configuration files contain data that describes whether and how each user endpoint is being monitored.

  • Operational data is the information Business Transaction Management gathers about user applications: performance and behavioral metrics, logged messages, transaction instances, and generated alerts. This information is stored in the Measurement, Transaction, and Agent Message log databases shown in the figure.

  • System configuration data controls the basic behavior of Business Transaction Management: what databases it connects to, the address a container should use to connect to the sphere, default GUI views and layout. This information is saved in various configuration files: initial configuration data, GUI customization, setup data, container registration, and miscellaneous configuration files.

Backing up Business Transaction Management Data

Backing up Business Transaction Management is fairly simple: you back up data contained in databases by backing up the respective database; you back up data contained in files or directories by backing up the btmstorage directory.

The btmstorage directory can be found on every host where one of the Business Transaction Management system services or monitors is deployed at this location:

WebLogic_InstllDir/user_projects/domains/MyDomain/servers/MyServer/btmstorage

Once you have backed up the databases and the btmstorage directory, you are done with the backup process.

In general it is best to back up and recover all data, even if only a subset of your data has been damaged or lost. However, if you would like a more detailed understanding of the individual components used by Business Transaction Management, see Data Storage Reference.

Timing Backups

The timing of backups is important: you should back up the databases and the btmstorage directory as close together in time as possible. If possible, follow these guidelines:

  1. Quiesce the system if possible.

  2. Back up the btmstorage directories.

  3. Back up the databases, with the Sphere data last.

Restoring Business Transaction Management

The goal of restoring Business Transaction Management is to bring it back to the desired state with no side effects. Before you start this process, make sure that you have complete and accurate information about the Business Transaction Management system you are trying to restore.

It is assumed that you are restoring Business Transaction Management to the same environment from where it was backed up. If you need to recover to a different environment, for example, in the case of hardware failure; you will need to change the host name of the machine where you restore to (at the operating system level) to the host name of the machine that failed. You will also need to make sure that Business Transaction Management services hosted on the new machine can run on the same ports as on the old machine. It will then be possible to recover services to the new machine without disruption.

The restore procedure recovers the whole system to the last checkpoint created by the backup process.


Note:

After the restore, the database schema and the file system must reflect the state they were in at the time of the backup. To make sure this happens, before you restore, check that the existing database and storage directory is completely clean. Because the data in the two storage locations are connected in various ways, problems can arise if either holds data that is newer than the backed up data. Thus, you should never restore a backup on top of an existing btmstorage directory. Most database restores take care of this issue; be sure yours does.

The restore procedure consists of two steps:

  • Restore databases

  • Restore the btmstorage directory on each server hosting a system service or monitor.

In the case where there is some damage to the Business Transaction Management software itself because something has damaged or corrupted the installed instance, we recommend that you do the following.

  1. Reinstall the Business Transaction Management software.

  2. Restore the btmstorage directory on each server hosting a system service or monitor agent.

  3. Restore the databases.


Note:

If the damage affects only the EAR, WAR, or JAR files themselves, a simple re-installation of the Business Transaction Management software is all that is required

Data Storage Reference

The following table offers some additional detail about the Business Transaction Management components. This detail might be helpful to understand the role of each component or to locate specific information.

DataContentsBackup Procedures
Sphere databaseDescription of Business Transaction Management system, monitoring and logging policies, transaction definitions, user application definitions.Use the backup features of the Oracle database to create a backup.
Monitoring stateInformation about whether and how each user endpoint is being monitored.

This data is also replicated in the sphere database; however the monitor agent's configuration file is considered the master source for this information. Although monitoring state data is backed up when you back up the sphere database (and restored when you restore it), that copy does not count, and if you recover an agent without capturing its original monitoring state, your endpoints will end up unmonitored.

Back up the btmstorage directory.
Operational dataInformation Business Transaction Management gathers about user applications. This data is stored in the Performance Manager's database, the Transaction Manger's database, and the message log database. These might be located on the same physical database, but they are considered to be distinct databases.Use the backup features of the Oracle database to create backups.
Initial configuration dataBy default, information gathered from the user's initial configuration of Business Transaction Management is saved in the file essentialConfiguration.xml in the directory

WebLogic_InstallDir/user_projects/domains/MyDomain/servers/MyServer/btmstorage/globalPreferences

WAS_InstallDir/profiles/MyProfile/btmstorage/MyNode/MySrvr/DeployEarFileName/globalPreferences

This information includes the location of databases used by Business Transaction Management, deployment credentials, and database type.

Back up the btmstorage directory.
UI customizationInformation about customizations done by the administrator and preferences and views created by the user. By default, this information is stored in files in the following directories:

WebLogic_InstallDir/user_projects/domains/MyDomain/servers/MyServer/btmstorage/btmui/userPreferences

WAS_InstallDir/profiles/MyProfile/btmstorage/MyNode/MySrvr/DeployEarFileName/btmui.war/userPreferences

Back up the btmstorage directory.
Monitor registrationRegistration information about monitor agents that you have added to the system.Back up the btmstorage directory.
System Service setupSetup data for each of the Business Transaction Management system services.Back up the btmstorage directory.
Miscellaneous scripts and configurationIn the course of configuring Business Transaction Management, you might create various configuration scripts: for example, scripts to configure email subscriptions known to the notifier service or scripts to set up baseline performance values.Back up the btmstorage directory.

If you have stored scripts anywhere else, back up that directory as well.


PK&SSPKkHOEBPS/commands053.htm. unmonitorEndpoint

unmonitorEndpoint

Use the unmonitorEndpoint command to stop monitoring the specified endpoint with the monitor agent where it is registered.

Once monitoring stops, no performance measurements are recorded, no messages are logged, and no transactions are traced.

Use the monitorEndpoint command to re-enable monitoring.

Command Syntax

btmcli unmonitorEndpoint -n name | -e endpointUrl1 [[endpointUrl2] ...] 
                         -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe friendly name of the endpoint to stop monitoring.
-e-endpointUrlA list of endpoint URLs for the endpoints you want to stop monitoring.

If this is a web service, you can supply the actual URL to reach the endpoint. If this is another type of component, look in the Profile tab in the management console to determine the endpoint's URL.

-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the unmonitorEndpoint command used to stop monitoring MyEndpoint.

btmcli unmonitorEndpoint -n MyEndpoint 
                         -s http://localhost:8080/btmcentral/sphere/ 
                         -l Admin:abracadabra
PKw3.PKkHOEBPS/intro001.htm  Using Business Transaction Management

Using Business Transaction Management

Using Business Transaction Management, a component of the Oracle Management packs, you can do the following:

You access the Business Transaction Management feature set by way of the Management Console. For information about using the console, read Chapter 2, "Using the Management Console."

You can also use a command line interface (CLI) to execute scripts and individual commands. For information about using the CLI, see Chapter 9, "Commands and Scripts."

It is also possible to access some Business Transaction Management functionality from the Enterprise Manager console. See "New Features and Changes" for more information.

PK PKkHOEBPS/commands021.htm+ importBusinessObjects

importBusinessObjects

The importBusinessObjects command imports one or more of the specified business objects described by the specified XML file into the target sphere. Currently, the only business object defined is the consumer business object, which is the means used to segment transaction information by consumer.

By default, this command replaces all existing objects that are older than the imported objects. You might use this command to migrate data from one environment to another or to populate your environment with a set of consumers.

You provide the data to import using the -inputFile argument or standard input. The objects you import must have first been exported using the exportBusinessObjects command.

If you are using this command to populate your environment with a set of consumers, the trickiest part is to create a valid input file. Here's a way to do this without having to guess at how to format your input file properly:

  1. If needed, customize the business object by adding custom attributes.

  2. Use the management console to create a consumer.

  3. Use the exportBusinessObject command, specifying the name of an output file. Data about the consumer you created in Step 2 will be exported to an XML file.

  4. Examine the output XML file. Using the format shown in the file, expand the file to add more consumers.

    See About Consumers, for information on working with consumers.

Command Syntax

btmcli importBusinessObjects [-i inputFile]                    [-replace ALL | all | NEWER | newer | NONE | cleaned | CLEANED]
                   [-v] -s sphereUrl -l username:password
NameLong NameDescription
-i-inputFileThe name of the file containing the data to be imported.

The input file must contain at least one business object to import.

-replace-replacementLevelDetermines the outcome when an imported object matches an existing object in the system:

ALL: replace all existing objects

NEWER: replace existing objects that are older than imported objects. (Default)

CLEANED: remove all existing business objects and then import the new business objects.

NONE: do not replace any existing objects.

-v-verboseDisplay more detailed information about command execution.
-s-sphereUrlThe URL of the sphere. http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the importBusinessObject command used to import data from the file MyConsumers.

btmcli importBusinessObject -inputFile MyConsumers -replace ALL
                        -s http://localhost:8080/btmcentral/sphere/
                        -l admin:abracadabra
PKPKkHOEBPS/commands026.htm! importTransactionDefns

importTransactionDefns

Use the importTransactionDefns command to import previously exported transaction definitions to the specified sphere.

By default, this command replaces all existing definitions that are older than the imported definitions and it recreates any missing properties that are needed to define the transaction.

Normally if a transaction contains errors, you cannot import it. Setting the -importWithErrors flag allows you to import the transaction anyway, but in a disabled state. You can then use console tools to fix the errors. Errors are displayed in the transaction's Profile tab.

It is possible that a transaction depends on one or more properties (for example, if these properties are used for correlation). In this case, the system will recreate the properties if any have been deleted before the transaction is imported. The system does not recreate the property if the transaction does not need it. You can specify the -failOnMissingProperty flag to have the import fail if it cannot recreate all the properties needed by the transaction. To take an example:

  1. You create property X on operation A, and you use this property to correlate two operations in a transaction.

  2. You create property Y on operation B. This property is not needed by the transaction; it might be useful to surface a particular value.

  3. When you export the transaction, the system makes a copy of any properties that affect the transaction definition.

  4. You now delete property X.

  5. When you re-import the transaction, the system knows that a property needed for the transaction definition is missing. By default, it recreates the missing property. If you specify the -failOnMissingProperty flag, the import operation will fail.

  6. Because the transaction does not depend on property Y, the system does not make a copy of it. This property is lost during the export/import process. You can recreate it after you import the transaction. Or you can use the exportProfile and importProfile commands to have the system automatically recreate any such non-definitional properties.

Command Syntax

btmcli importTransactionDefns [-i inputFile]
                              [-replace ALL | all | NEWER | newer | NONE |none]
                              [-failOnMissingProperty]
                              [-importWithErrors]
                              -s sphereUrl -l username:password
NameLong NameDescription
-i-inputFileThe name of the file containing the data to be imported.
-replace-replacementLevelDetermines the outcome when an imported transaction definition matches an existing definition in the system:

ALL: replace all existing definitions.

NEWER: replace existing definitions that are older than imported definitions. (Default)

NONE: do not replace any existing definitions.

---failOnMissingPropertyBy default, the system recreates a missing property if the transaction depends on it. Specify this flag if you want the import to fail if a property is missing.
---importWithErrorsSpecify to have the command save the imported transaction even if it has errors.

Setting this flag allows you to correct the errors in the console. Normally any error in the definition will cause the import to fail. With this flag, the import will succeed, but the imported transaction will be in the disabled state. You can then use console tools to view and correct the errors. Errors are displayed in the Profile tab of the transaction.

-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the importTransactionDefns command used to import data from the file MyTxDefns.

btmcli importTransactionDefns -i MyTxDefns -replace NONE -failOnMissingProperty
                              -s http://localhost:8080/btmcentral/sphere/
                              -l admin:abracadabra
PK+Vz!!PKkH OEBPS/toc.htmxB Oracle Enterprise Manager Business Transaction Management Online Help , Release 12.1.0.3

Contents

Preface

1 Overview of Oracle Business Transaction Management

2 Using the Management Console

3 Discovering Services and Dependencies

4 Working with Transactions

5 Monitoring Services

6 Working with Consumers

7 Configuring and Viewing Alerts

8 Creating Reports

9 Commands and Scripts

10 Utilities

11 Administration of Business Transaction Management

Index

PKxxPKkHOEBPS/reports002.htmT Generating Reports

Generating Reports

Using the sample templates and command lines for reference, you can learn to create the output data and the templates of your choice to generate reports. You might also need to use the listInstruments command to determine what attribute names and segment names to use for the retrieveObjectData command.

For information on how to use Business Transaction Management templates when working with BI Publisher, visit http://www.oracle.com/support/contact.html or visit http://www.oracle.com/accessibility/support.html if you are hearing impaired.

PKKPKkHOEBPS/commands013.htmP# exportMessages

exportMessages

Use the exportMessages command to export (request and reply) messages for an endpoint for the period during which logging has been turned on. Exporting messages can be useful in testing and debugging.

You have the option of exporting messages to an XML file. If you do not specify a file, output is sent to the stdout.

IMPORTANT: Message logging must be turned on for this command to work. See Defining, Modifying, and Deleting Transactions, for information about message logging.

Command Syntax

btmcli exportMessages -name name | -e endpointUrl
                      [-bn bindingName]
                      -baseDate date -baseTime time -duration minutes
                      [-outputFile outputFile]
                      [-max numberOfMessages]
                      -sphereUrl sphereUrl -l username:password
NameLong NameDescription
-n-nameThe friendly name of the endpoint for which messages are exported. See the discussion below.
-e-endpointURLThe endpoint URL. If this is a web service, you can supply the actual URL to reach the endpoint. If this is another type of component, look in the Profile tab in the management console to determine the endpoint's URL.

See also the discussion below.

-bn-bindingNameThe binding for the endpoint (for example, SOAP/HTTP). Use this parameter to disambiguate endpoint URLs with multiple bindings.
-baseDate--The start timestamp (date) in the format yyyy-MM-dd when messages are to be exported.
-baseTime--The start timestamp (time) in the format hh:mm:ss when messages are to be exported.
-duration--The time in minutes, starting from the base time during which logged messages are exported. Messages might be exported for a shorter time if the number of messages exported during the stated interval exceeds the value specified with the -max option.
-o-outputFileThe path name of the file where messages are to be exported. The command fails if the output file already exists.

It is recommended that you specify an absolute path. If you specify a filename only, the file is created in the directory from where the host application server is launched.

IMPORTANT: If you specify a path, the command will work only if the process hosting Business Transaction Management has write access to the specified directory.

-max--The maximum number of messages to export. If you don't specify a value, all messages will be exported for the specified interval.
-s-sphereURLThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


You can specify the endpoint for which messages should be exported in the following ways:

Examples

The following command exports messages for the service MyShippingService.

btmcli exportMessages -name MyShippingService 
                      -baseDate 2010-3-15 -baseTime 12:15:30 -duration 10
                      -s http://localhost:8080/btmcentral/sphere/ -l admin:passme
                     
PKYU#P#PKkHOEBPS/discovery001.htm/ About Discovery

About Discovery

Discovery is the process that allows you to identify the business components that make up a composite application and to understand how they relate to one another (their dependencies.) This section explains the concepts and processes you must understand to get exactly the information you need during the discovery process. It explains

For information about resolving discovery problems, see Resolving Discovery Issues.

What Can Be Discovered

Business Transaction Management can discover the following elements:

  • Application components: this includes the logical service that designates a deployed component type, the endpoints (instances of that service), and the operations that can be invoked on an endpoint.

  • Containers

  • The dependencies between components

Business Transaction Management can discover a wide variety of component types and the containers in which they reside. The same model is used to represent interconnected components no matter what the component type: the model consists of services that interact by sending request and response XML messages. The model also assumes that each of the services is described by a WSDL specifying the service's location and its interface. If such a WSDL does not exist because the component is not a web service, Business Transaction Management constructs an artificial WSDL that it uses to enable the system to process the component consistently. The model is illustrated by the following figure.

Description of svcs_and_msgs.gif follows

For example, if you have a composite application consisting of a web service that calls an EJB that accesses a database via JDBC, it will be modeled as three services that communicate using XML messages. When you use the Business Transaction Management console to view discovered components, these are listed as services, and the messages they exchange are listed as operations belonging to these services. A message corresponds to either the request or response phase of an operation.

In some cases, the observed traffic type suits this model perfectly; for example, a JAX-WS service or a JAX-RPC service. In other cases, Business Transaction Management must map the component type in a way that is compatible with its basic model. The detail of this mapping might be important if you plan to discover and monitor components that are not web services.

Business Transaction Management discovers components by observing the message traffic that flows from one component to another. Based on the data derived from observing this traffic, Business Transaction Management can also discover how these components are related to one another and draw a map of their dependencies. Dependency information provides an accurate picture of how your composite application is really behaving. It might alert you to the fact that certain components are never called, and it provides a basis for defining business transactions.

The Discovery Process

The most important fact to understand about discovery is that it is entirely traffic-based. If messages are not flowing through the observed endpoints, Business Transaction Management cannot discover any application components nor can it discover the dependencies between these components. When in doubt, send traffic. This section outlines the steps involved in discovering distributed application components in your observed environment. To learn more, read the sections that are linked to from the following steps.

Before discovery can happen, you must install the observers in the environment you want to observe, and you must configure the observer communication policy to define communication between the observers and the monitor or monitor groups responsible for the further processing of the data discovered by the observers.

Discovery happens in two stages: during the priming stage, observed traffic causes the observer to start communicating with the monitor; during the observation stage, a measurement policy is applied to the data that flows from observer to monitor. This is to say that it might take a little while to build a complete picture of your working system. One symptom of this is that if you send 100 messages and Business Transaction Management reports seeing only 98, the messages that are not accounted for are the messages that served to prime the discovery process.

Discovery involves the following steps:

  1. Send traffic through your system.

  2. Check the containers being observed. If load balancers are being used, these must also be visible. (Restarting the containers after installing Business Transaction Management is not enough to make them visible, you must send traffic to have them be seen.)

  3. View services to see that all the services you are interested in observing have been discovered.

  4. Check that measurements are being taken by looking at the Summary or Analysis tab for a service. Throughput, traffic, maximum response time, and average response time should be available for all the services involved in message traffic. If measurements are inaccurate or missing, it's possible that not enough time has elapsed for Business Transaction Management to calculate traffic measurements or perhaps monitoring was disabled.

  5. Look at dependencies in the Service Map to see how traffic is flowing in your system.

  6. Adjust as necessary. Generally speaking if the discovered picture does not meet your expectations, the first thing to do is run more traffic to make sure Business Transaction Management has had time to see all pieces of your system. If that does not resolve your problem, you might need to do one or more of the following:

    • enable probes that are appropriate for the objects you are trying to discover.

    • manually register a service; see Manually Registering a Service.

    • resolve discovery problems due to versioning policy or replication problem.

Limiting Discovery

Depending on the technology, some messages flow directly from a client to a service; others flow through a host of intermediate endpoints before they reach their actual destination. Such intermediate endpoints might comprise the implementation of a messaging system, a job scheduling system, a distributed system, and so on. When installing probes for technologies that use intermediate endpoints, Business Transaction Management allows you to specify whether you want to monitor all endpoints or just the endpoints at the edge of such systems; often these are the endpoints that directly represent the business services of interest. By default, the monitoring of intermediary endpoints is turned off. This improves monitoring performance and eliminates data that is not essential to monitoring your distributed applications.

Figure 3-1 shows a number of observers monitoring endpoints conveying messages from a client to a service (EP5). Note endpoint EP1 and endpoint EP4 at the edge of the message flow. Note also the dotted line which indicates the relaying of context information. If you choose to monitor all endpoints, all the endpoints shown in the figure will be discovered and monitored by Business Transaction Management.

Figure 3-1 Modelling Intermediate Endpoints

Figure is described in text.

Figure 3-2 shows you how message flow is modeled if you choose to restrict the number of endpoints monitored. In this case, only the client, EP, and EP5 are discovered and monitored. Context information is still conveyed from the client to the final recipient, EP5.

Figure 3-2 Limiting Endpoint Discovery

Figure is described in text.

The observer communication policy gives you the option of controlling the monitoring of intermediate endpoints for SOA, OSB, and EJB probes. Options for monitoring different technologies vary slightly. For example, in monitoring EJBs, you have the following options: you can choose to model the edge of flow, which models only the first local EJB in a local request flow; you can choose to model all, which models all local EJBs; and you have the option to model none (no local EJBs). How you model local EJBs has no effect on the modeling and monitoring of remote EJBs, which are always monitored. For additional information about the observer communication policy, see Configuring the Observer and Monitor, especially Advanced Settings Field Reference, which describes the options you use to control the monitoring of intermediate endpoints.

Registering a Service Manually

There are cases where Business Transaction Management cannot discover SOA-type components directly: for example, the service resides in a container that cannot be observed or the service resides in a container where no observer has been installed. In such cases, it might still be able to discover the object if you manually register the service.

While it is possible to discover services in this way, it is not usually possible to monitor their performance without the services being directly observed. For more information, see Manually Registering a Service.

PK3//PKkHOEBPS/commands014.htm exportPolicies

exportPolicies

Use the exportPolicies command to export the selected policies either to stdout or to the given output file. You specify the policy to export in one of two ways:

After exporting policies, you can use the importPolicies command to import them to another sphere.

Not all files can be exported. Data that you cannot migrate between sphere environments includes the following items:

Command Syntax

btmcli exportPolicies 
             [[-n PName] [-t PType] [-subType PSubType] [-v Version]|[-exportAll]]
             [-o fileName]
             -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe name of the policy to export.
-t-typeThe type of the policy to export.
-subType--The sub-type of the policy to export.
-v-versionThe version of the policy to export.
-exportAll--Specifies that all policies should be exported.
-o-outputFileSpecifies a file into which the results of the export will be placed.
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following command exports all policies known to the specified sphere to the file MyPolicies.

btmcli exportPolicies -exportAll -o C:\Home|MyPolicies
                      -s http://localhost:8080/btmcentral/sphere/
                      -l admin abracadabra
PKbTPKkH$OEBPS/img/main_view_example_audi.gif$GIF89a 3<% )11+3<2223395)<<hՒ~ILnZ蜌6huv!}kYḡJjኞ^Yii*h説s*무A뮼k+1J&`.F;VVkR. +k覫뮺h+(ǿ,l++6",0OA\1ueK`WJ9]#V̲S1-"FV qX%]I[nuV_3-ZaUUewatV vDCf[R PM A -wXH}Xmu@VBEqC@u: /-ZUZQN-T]9'P[KYI $C7T-;Ug%g7y }?L BIB:1ۃ]o,@)"W5uTAOXܞ%C4)i3шGL""&QH 7H_FC_D)2L\"DlMbE-RM^ P|#$6Lj I` (4ђP|"%/FNRq[SW  1i%On74e)E)RnMe Hb&:>)_ !9$ؔo9K[њPQYܡȧpdzܢ8ɹEs6%{dyL|<ՙ 2c9ROXzPn|pM[fӞ$ R(eGωfjFb`0< Oob4d.=EN1 H 0\fP,X4zd*ᣈ|b,I4RՓ}Hd+w(эghZ]ZIzu[jSZPAtv+zTՆW[f%,b8:*]d'6)V zYVhoeGKYJVMTLKnEmSXYTm(hl TKܧ=.b۔ֶenn2(Ȯvz ;౸Ž.yuz[nY@FE PovJ a_[{-~{ GL=;0q7l-F1TX ˸/UU#&ǻڱLdiHN&;PL*GYEβѫ-{bL2hN6pL:xγLg1#E$xHL &.I=F ъ,@!itzNDRx+bꂴzՠ~a Y35jָy]awD/AKm͆qZuE?wōr+$1juEq4FZbvL8uߑ&u-Ibj~/Gn"D.u&&Hx#р8}|C{ψ <.tCb~a6W뙧<"6o/v+{n ;ſwW~|>w~|'m˷iu| s)pE}qP }pm0~~\7us+sׂnG{zH6x{eGzǀ7gB'63({ Xi*r{`w7a}X}y!8 $:Hh|?glpQs}W>m8hX7@nC{ 8|~oE[xu rwhx^~p|ox-t;(Ȇ{Lj_xtXbȊ8tMh Hl upvjbF1x} (iD8Өm؀Y#' ޘFo舏ӸlHwI揉8aǶ H YVl9j It>!y()si)f| eF2y8yg6<@C9EyH91bLٔNPR9TYVyUXZ^`b9dYЕfNjٖnlrsYtixz9ظ~ٖqYɕi٘WYY}y)SəٔyYٚV) 9) )aɚ{ IiKy P#PiɝP)IwSi)꩗鞆YV UП y zʔM ڠzj8@ R *y (ڔ($:ਜ਼,+ILOih*j*L IJB݉ZڧڨpZ 쪭sjz4 %8ʯ6d Q )ꪻZ ڱz"{N  1KJ՚ 6[ 8ڨYD[Kʯ4:;!:*L+'ui[  L)   ఻٪z|;lº t 5k 溸9Jڳ C+K]9T{+iQ;=˭v,*KyA{ͩ@@ hj˶n +t z NK0#.ڬ{L]˸9+FX{*뮭;I[/+۾ c; p  {k|˫M+Kp;K-+̳˿{ =3,+C|̚lpR k pŶ0:z: ,kynL$&)l絛[ ךKǯJA+l<řȒ\Eܴw|1ļɧ;S|L \ W Y c\9({F~Jʀi \ḽ5P P Pǐ쨾lT){|̜l뼻کLͰ < lͳȼ |l  S:׌lP--#}%ݜV.2=`y*]Ŝ mDӖZv D|@m[n)<-P-XM?[TV@zՑIJ^*=lMftm0}>7!ICaB؀]tʸ30Ah:9ْ]n#yq](1'aڄړ}MڵٶPѹhڮ-Mt Qәܵ]h fm ]]=ݩ}==޺M2a Io+ ='zyǂcЍa^aN>^ߛ} !3!n]Y ˍn? ~LfM^^-NŤŨnw];8;y<᫄;hԍ (e>n^%^cn nnj^[h^^.镾鑾. NklPql{-߃탞~^z<8.a(,Ž~N첞>c^>NM>>ٍBdk xpN!n@bN_>4_M~/d>n% Q&/5uAث:_n[^AHoJNN_Z]?_%i{Zb<A`[ h *LQaF\X#8p`mJ([LPɊ/]d sL6sLsϛ7WD'KMi:SK%MZŚU֊IӤJrEV-Vd:֭\F{ןk*lW`… 'TG< z@WI&J…W0Νµ)LĥV1ȒZVa|[k~y޿6~\r%3vJtT. \ݻ%itsܮU$1yl۲o=?x}~/@zNlI$ L"E Gp$O2` 6$6RDQŬXt1F p /\$Cq $!;I8'QE\$-r(K1KR23[M7N|'4lM=O=T3?U+N[$T0<e-?M{Ѯe2RIc4KoSO'%KE%T3?4STZtMM% De-RW 3]wW_6Xab=3XeeYgdj6bvi[p%\ls57j]u߅7^]ݕwz^|w_`7`Ewaf3}z#6-8w ^c +>ޔ]3r_ڜ9w䠭egN`Yge\Zخ9wk>Y  ui^{na~E:g&[qqj%g/`iWVl^Vv쐢bŦkٹ=wqߝΪ prq7n9ǼƯ//D>Ґ5ŒE-NWF<`(9T;\Bmx0K!}A hBLlʑ-&6_:jn KHD2s[&'ΨkAȡz|A;O3WM@OJJJU_R*7:a՜hEJ]@ =P®X`/.9Ni_{@ݽ1-eyF=S,'+!){uĬ(j֯j5Ude; T}.JuQI:U\:[`qpk@1 JtB E(6-pmgs\vb5Ϣ~|(9)@/XYƐN&ݫZ֒}x+󒝭b{7DG4o ([6xW\d(: @#9L" ;%vW%/z͘.Q[.FqOP"uKGxCT s(by4兵X{ךr.ml.z][q?uN *P D!a3\~o^9B& !gfZs"-Ѵ%,-M;xҜ>`"Z6%굎]^ue -¬FVqMi_.jSN'ϕ;_˖Cmlh{@g푩V':ͷ%EN[Q*o[=vԽyޥ7b޴O ӿ]}AJc:('EQ0Zm >7=闣;PK$$PKkHOEBPS/img/chart_resp_time.gif8!GIF89a? 3< #&--+///4& 6' :*:.;6/<;9<<)bIH&ٓJ69PF)TViXf\v`)cĤh%lnZ&tix|駝r)蠄R蓂Z裐F*餎Njit梜4^*ꨤ>j֙)AvGyj֚ꬶ*#Z@Jd|lv箽R4,A^Hik9 )mB{kKIo»'-6ʮw^,L$loCsNOT =oϰHz{SG@QMD }Ca`SAJDЂ 'AhpCB6% Qv8|ac蓳ЁáeuC*pwat29P)ZщG^`bH2hL6qnÞ̐b8> $(B1"kG7Ґ$IZ2uyF (RQZ2;$'+I6Ҕe JTD|I R+k25g)&LG21g Z)G[Z\ \@ K9 DթNZD&01hsDd3o1TI`p$?8BІ6Tˌ(:Lb,2ytN )1JQxe(Y{JL)SXW'7ИТL'ыZujEIjvbtUhT O|iZRL#{YZ E"Y\J׺M&0 dmk IQP6&IةfuTTeԫ=cZ͂6=+G2 V)NP!D5a+T>KUcw U-JSJKs=KazSkKo jo25a` ݪxuk[򾳷p1+ITnr\s?y:]T%VzZU ljRNVLyiH”4#YIj^HL`>ؙ͜pY3Eb]5D]80gBԸ8v受c&112;2!tA-075A m6nKnK\狜oP!jN?;яF[B4Nm4Kji$F蠢0VծWBRO$wGnXNfZ"@3#ʜU *5M?M;ڮkc!PnI"cM 5AU׉|y3 m M{!yPADf<6๲ >A1|$A4w3gNs{d*Ʀsdcg}$}r.kN<2zӎvֱiwyo;/(Zݯ=oFVeϞwA?:sg`s-*1OO9C%s%?uVVI2ӊW}zcsgY[vzF5h?콧{僯w^q_;=߯}Pz8lVue{m/o"#pCt>syWt'z(;w zWr gO /ŀVɖfB|zƒ'%B'M_[]r'v:''(>FrԀ3u`qgf''IpavkfxT!VqqeXJZфgcdm~8DABtvmop`fns4jpe؇BhAxlx1riHFeCrx_98zx(vƨ[֋-`ixabZcx]b刋بeU2sxHˆfH eGhoq Qcid X ~6LV `{摝KvDXrhȒ}?&2){E{w LHd>h@cBO8Yhu^.6 SVYYg[ص*i`ɌEha1}܇ ח~y5n4z~@5woyFbe}E}sHXJIiF 4ZWSn nH_)KFcHꈒ'YMesق! ٓ9yID֙KٜNFd3Yl99ckɕmYFis4"6 hAhD_ AXdɩl @*Afh MF oȡ+? Cty9]Z9;ʣ-+X4ZӸFzӣ;<AZY] Jdt٤^ڕ bz?d?f:,h J zCp3S_YJky{ڠrՂSdyh雌ZhVfj{zEڨtzMi9uפ)#SyW9 1MڧDڪuey} x_zozڗv5r5i{Ǭ1*4@hډv:OzJ«|+<  K(|R蚮jmu(cFjڱɜ^ϩ&ƺ9[;bK2AۤQZGcI K{J)YֳJ٤(X)]EZ #JCXa붰twj :Sg|˳艥s[n'p)k5{䷣D% MZJ\DKi禺 :뺙 $ڤ]rl57kH+Jd){ɯ;դQ O+۸ 6*v˔A}kʻr{@[G8:6ʺ .*C *+ G 8C\\5~z`5n4㺾! E[k$,IJkh)93,pvK _++FC|I5\K;Mk@<>-벨mÝUYy ũ.?Tq`h<*j\0l\nLCLt\Ǘr"{B[,ȓB⫇<\j/dI|gʖ"͒4^+l˅̢ D ,̑Bbe Z )М+ܯ%ٜ|˫A\h+|o|)ǧllB\g\LUhl/9_kiφ勄=fĀ=x7SfA~z#}'l+tȮg}ͺV$0-?ϥ3+DsJJkskL@?8)l,3oY&3]+W1m68DNY9Ӵ\v}פ:,MQ}JCc`-b-xB65 ؛& c}M-I=  u >)=ۋܐTۧZHIcm܆ Q ojԭ]4Aͣ}~ 2\zށd݅o ۩ߙһ-߂+=I}Hߍ. M.#~׃{ m1!-.ָ֤z}t-;.ޝU^m qŘ?nԿ:^Ik@x%d4VF~ L 1(mg&iM+XH1X2ѝmݹ)}Mjlӈ a&Ṅ Q~t红g z褎*ma͡.hv4a뭾^*~/ݦ~~N*n-ɮ]{纞Ia؞N\YMb8I` P1~)*; m*"-n*mlFp&?)l0@`p7@p_^r IQPB#B?[ !ڬ.#eIOI_K.BuhMO [PB_S!_#l. ل_pl_quϙn/B?h0|6zV(mI#12E,`_Co<8@B `O}0/I$`* Q0 !F! #d0BPa1TPbĄ<Q!"n0fB TaD BEGNFeY1A?0ET(K>UTU^*iV]POe-Hvam$LdW^ 7NxW0^( 1XpÉ}1 έ{r޾obY"O 4&ʥ`K#G\ڵmMãEĭ(׭^G\˝ ;tjD$aT^'P@z16!˧L*N'+/A.?!A..xa xhi{DO8H%JSeUW_ʹSH-EiS,-";a%XcE6YeeYg6ZiVY'̠H֪p͵v]{ΉjE7]ue]w"5åz\@N;w:򷬁`Pm^睸|S &K6c<1 >χb!~91dDA&g}^ߔ\YFgYF7YcC6{vblnzé'ѮZQZ[:,:*>z.nAp? ?Q]xzG>zUy星p{z]{o?}/߇?~?8@}C` `%8A94`tA" E8BB0%DaA0p S8CP5D U#i#yy!p$Abu&b N!D# qib)RFVaXЌg шAJX<"E&^%uayxE9z|"-6z,8Ij\c$%i?HNm8HE&2s,;11}"IFJd)G)KA9d.׈K]n̢&Xv1UҙLe3gJZ2D4V^vӒ&~*aҲc )rԦ*yMwRӞg3I4nӟf?7V3L&4LOTzOV4DQS-a@A*?n L$Nsw>⃥Tq.o^[ qsOw7enݘQWοc#(h&X F 9(*H^ua`B"$h(B$0(-"8b~u0ʐDiH&GLF)K:Tf%V`(dih暢(eИpilʉxfy栄rC(&hn6裐F*CBV餍*駛jz)Bʨ>J ZB'j+nު뮼kЬɯ*+,B6[+Z>ev[ +In'ۨkCBkon;/*0o$&Wl1n^lqo±1k| Ml&,Ǭ1, 1<|4;D%H'4n.}IO+M'sNgBBGguUcd{5B]tM_ݶXBm#vS]Jw*$_M؈nxV-~-8+dޜwN .衻I锘 诓N .z魳ӎȻ/u{.|¼7}󸇐Ǘ~|~篿AL HPHH:Ѐ DHt6AD GH#@B<'T!BXM6L9Ce @ b3 6$"B&PvHXX̢.zQHHH2ыaD6~1Q!&Gx̣>QHHHBҏD F1q$c$0⒘̤&7NzL %L'0JR%(YIڒ[d^BaH &0^S Ic:\nI͇qȦ6nz g6QxL:Mxœd}'@JPB MhІ:7 }D'ZRE3юe HґQJlVҖ0LgJӚ8ͩNwӞ@ *O RMHMRԦ:PTJժZXͪVծz` XJֲhMT@THAp\J׺xͫ^׾Ε)_KMbƮyc'KZͬf7UDLUQEҚMjWYE*iIKXڲͭnw۸6-mgMrjbM*tG릣6ʺUu ]Fw}nxMXV~7um׽ /qZS}Ǜ0J۝~m`ΰO[`Hv |॒o0f.d=xkb#)olHNV;<+PyT8yXβ*_`ǜV/hNj5p&sL:sgϸ}]<ЈN4f F;уe4'MJV7JӠQԔ.5WjBհu_-Z̴w\6Mb_xN͋e;TMjζ/m{ۉ6MNov~Yv&k~u8.O8o8!.+x1B GN(OW(̷Rҙ<9ws@:I~.(!;PԧN8BP{`NhOvA,T9&Θxb{8,TD!PAOB b$? OPCZ 2D сTPe:=z[WBCt_aK(B/%9~h H.r{n" ; >(AoJ@"BP uҾ:j?C Kz=(|@(B EDx}@=8 !'؀HHTH -X(77338~(|&h7h8+\"|0uXOQRRxU[H(j3؈g o"X+t{}8~hhZh7WS 8H%xkȆ#|‹8.E0(8H Qz@̨x}xT 3. ǘ8Ȉx˘~B،x#0Y3y28I&gd2qfyI1VԐ`zpJ0AI9G%294IWPWPВr@JANWNS>7Iap|ua`RBDAxWx =d!BHjlٖnp^@ `upxz|ٗ~9YdDW)Q٘P PYO9IT*9Yyٚ9Yy(ٛ9Yyȉٜ9Yι֙ٝYy虞깞I9Yٟ9:Zjz ڠ d@.SڡXᡐb\y(*v 02ʚ {:7\$j*ZF,?y9ڣR<2AX- yҢ^./Y<Ӷ~f.D~Žq,S>~Z!:cj~:tk>)~ioa^O / 4 ]?ڧ]5|ڰ=- Ϝ,c|/Y9ܡI0_U{sq.?=Dݦםu}r;ݤݮ]JށjJoڽ蜳}* =8+v~#0IU[LҬ*l O(= "ޭz)A献+? )6^ Z䖟yKȸ8..%`B{ZWH!,泯♏+6ϽN)snv^{G}~Oo.=jߵ^)@F ,(eR&A˜QF=~RH%MDRJ-]SL57‰JN6}lAPE *(JХD>UTD*P]~VXe͖j'ϳmcji\u^KT[}X`i$x 5?YAdʕ-_ƜYe5+ZhҊ -x ?\[lڵmƍ5}\p?BC͝?]tխ_Bݽqj@zݿ_|1h1_~/@$@/dAЧ#B /Đ 3C?1 C$DODSdE_pEgFFwGr1H!2Ȑ"I%dI'2J)L6y H"K6bFN!L3D3M5dM7ld+6)2O=I 7J4PA%PCE4QE uC:sSA>'R%SM7SO?5TQGԈGuBRUWT\mIKVg@5W]wW_6Xa}TR5Yeug6ZhZk6[mH7w\s5(:Y]wEt^{[ds$`( &8aFx8bs8/ƸB.c96cuX]I9䒏Y~UKlw@*:hh(f蠏V7iniƺrƳgυI&lGĨV;m܆~;ٮmu{llNHG۱_C6RF<򎅹{Gٿy^h{;8U{ x|8Ǔ[]`lLWn`ɄM]!ozሄU&hJX*#.K":h!YEDiH>0dL@FRfUVe >ɥ_JaHf5tJ՚R)ҙэYI-৘^Ucx^bħ :裐F*)b]cYN"ѢI*t^6*gHަY1 orfi&;L)SF?|TN qgqǜ2F# c`,.Dsr2\sK:c3It=s44`TM.5-=5Nh6`-6ZکhgP|.ʵ@bm7bjX|c7c.݈7ڀ/xߍmuogyk{.8bo:硳y>--2͸趍k{v챺۲SN.oXI\^~k!oeTg&{=?~ݛ1<~1*m/N/Pw8K߽藒R$b)~)JxMI@x XK2նU35kQPtl m BRP*83 E T7aO8%2\X -0;"p< ]RE tJEDva#tTƤQb#Ffr"X;z,eܣ8⨍^cX>rL$Hl$T""7JDI;IGt$XJS2!Y']Ҽ]%, Yɡ05E-bdT`f̈ JUQSVK S,f572kuk(ILӚ׬TҰ5d5)Miu˹7qhL kSA*E^:WJHЈS#էH+jV "IMқPrDJa&DLq:@sIZ1@PYԛoMUOg՘>URKbԇu'PWa֨'emY֤DX*ʶJT+Sj TW5lZS5]}VN:eWnvGM hGKҚ";PKG  PKkH&OEBPS/img/column_chooser_tool_audi.gif1GIF89aGAk@Cjm 3<---+3<19B;;;7?GADKSCmn@CCIIIRZZRX_^ab[ahcefjjmnlnpnqrotzmimnqtuvyzuzy{|z|@CTrjmCﻻ̏@ҒCӒCоjɄ͍ҖlmHҒ֜ڥޮk֔🡣!,GAk@Cjm 3<---+3<19B;;;7?GADKSCmn@CCIIIRZZRX_^ab[ahcefjjmnlnpnqrotzmimnqtuvyzuzy{|z|@CTrjmCﻻ̏@ҒCӒCоjɄ͍ҖlmHҒ֜ڥޮk֔🡣HHcÇ#JHŋ3jqLJ?Iɓ(KLɲƕ.cʜMVɳϟ@ JѣH*]ʴӧPJJիXjʵꡯ`ÊKٳhӪ]˶۷pʝKݻx˷߿'È+^̸ǐ#KKx˘3k̹Ϡ+DӨS^ͺװc˞M۸sͻ Nqߣ+_μУKNÓcνOFfxrjm:,(+..v+!_K0l,0ґm.[L0^ s0 #K 0,4l8<@-DmH'=0>q4?G#_^]?S/+X@5#B']-tmx|߀.n'7>7tqC`fц˹쪽j;-9喯'oڡGv"./ă y7io p|OK|y0e-aS_/OHL58'H Z̠7z GH(L W0D!>@8̡w@ H"HL&:PH*Zщ3.z` H2S"6pH:Pṿ> $@BL"F:򑐌$'IJZ̤&7Nz (GIR*WV򕰌edIZ̥.s] 0^L2L5Ќ4KcR̦69Knz 8idqL0˩v;Iz~bgB~ @JЂMBІ:D'JъZ!)E7юz HGJҒ'ͨ0LgJSD)biMwӞ@ fn" HMRTDFmTJժZ~yծz` kRZ"hMb-Pp\J׺ZV l]WUM,^jȬjd'{BX! `BŲf;fv2Y!RYt! eɫmPNQSegKrƹbf+bȵͮv$,w,vJ ABY+/z[ԕZ0S!D5( œ`,88M;W0O{7vx8(>pnFL&ąidS9wc54MS70U"/fc&%<ʤ9q<5>(,Y7i&˚\3xMo Urπ%ʦ9O uvih<:' hJ_}qGMF6QjVG[=#>u=<$[8WWZGV\f;/6@3bcԞ"%ڹvi#oKmr.+Mzυf۽lF4( ol(dx m~~Me浫y]}k.jY0.{H [{;J9Y8plD~GOWD~3HA~R0Aʢӣj(KOԯ>/QG{"OO~k_Џ~>yWǽOsQ{0O:_8{ Z!X8Xx؁ "8$XU]lT.XՂaр0x8T246@=_у?(H.E`DŽm%aAa/e`?nJxLbAZRbajXgxm'VoXk^_sxx}HX؆iT_1)(o+fȇvl8u؉chxHiHtX舴{g8Z(ȅŨ}l8HȈpXzxh(oh888hxxxX؍Xwы'e8ۈUX̨ X)y i# % ${ؒ+i59+Yȍ<9;ٓ54ɒ j;.)<9;Y6)؎YȎHHFIXgi[vZYٌ)9i i wyC:"ؔ*,ؕyVU*TIEIv1ٍpiLrf1y>yy鐘)i CAy-ٛ٘ٝYY隀i)i(X2Y⨎8h]٠HD Z8HbxdI,j ڡZyN  y==C؏]X4 )qxPx?S:UZF*ZJEYyѤHQJjpa[lrnvp:xdQzkʧ5Z)wjJPJʐRڔz 9ک :JZ*ꃳZZz׫ *~ڪŚwxʂ&8ZzؚںڭvePIZG暮ᇮڮǮnZWNG毇@' ۰;[{[3gꨠuZZko%[['; J]a0;2l4ve畳 ֳ)b_֡_DF[jH{Fg1aOuQKjS; .iac[h UI_efNl_phrt{sv3vgyFef|;j̘#Ʌ h{ihQig 9y["6n&qW"W=v)enpoFtݦ+3Iepo{r̋"缻 |/ɓիe Y$r.q{#2';f$ [q[sB+FG=ֿOZuu~ch+j;ww~a<_xx~a!\`yy'+s+‡z7<{13Icq}W}=|~Z@LNPR+,߻$Kld`&y+rnꦼK$q[5RloϩFѿ$wl$"B%=#']$-R-ݹ 6}hm5 r-vbAkkE=l'l/6No&61}bEahkff}ibnyvvi5mY?=qAkV=Bpz Q}rIYK=_ j\se֡g湝ӌi:| p ԇ'k{Ѕ д~pImԁnO탑Jdm&چ&kŭimܟxөaxc`NcqpbRO#kMcmMayC՝]=Mۍuտ=M=ڟ{= hldm} m}vw$mw#T,hܖi >AӰAyi=KU#>7H~M+]QQ.N^7Z4L6,܄eVC^9M.iMfxݱ 8zl΃Nn7~M ^鄳.7~nwl>>~^EG믡tnȾ쓤X^N@~؞ھR0~>^kAz__ OO >b_㬪!8N%'_b}n1/Nn>@B?D_FW:NQTTĻ2U\_b=  gSKcVe*0)ڮKB\Aq/c,ظbͽۯ>c?{@$j붾7 CG/&ĺBQEǚ2LØL|(sGvB|DI%  H*r,9rK/T/ Q7M0QM6krM9sIܞl))紋O?8%4:j%ygycG~|~F8&}gߥ,!8xg p}Le{`6!ۋ/(.b`0sܣ~~0p+6A瑏C(myʛ 1 `gÈP% Rbœ$ 0$8!$ygd"wCЌ > "юu,٘!x%C8y†5 Бsܣ֘F7ёrl$4IEВx X< J$7r}db7K#{!2irFlX W"Ӛf(esee3baR Mv& 7N g>gr3MNz[TA-4ԡ(y?<HhF5QtEhCQWS@L:N3o cBLe:әzsz@\qRJZh.yzӝp 0.rd4T#Mh,:BA63MMyӊv ?=hi]Uр8^mȓ;> "ZӇ5g2#&p2_%6-mNO^2j\Ft+8҅]m`.3ec3ʶtq]hxy޾73/uNm\{R tW )~]/'8h|/ʣ|'5-o|kS=EtӮ6̧mAJv~j!sʽ=.p5-gb4 dg ^ps}M.^ë`ʸ@ LS|?gv|w2&>My''UjOFO~7>r@FSǴɏ}3?_s?Tڏ)q5_&7Я$ͿP/.?ϻ?D-@ٿ)* I@pK*@v | =@<t1AoAp=st ċ&X@$*. M"ŠB{+$# $@9/oIyZRGBi 8$.#)lB>28B:B)> < "!$$]LDv FA KNO*2ęj$k4l [{(Ys"t &+GTrGǿ!z<8rCGOӨBODLlNhR>*\508(S|&EB< P|aPq!%>LE  P }@uѧAQpQQ5:* !. #E$U%e&u'R(5(*R+-.R/}=3m,E5e6u+U7S):;u0%p]<8A%B]RA5TCEDeFT=>PQltS1LTM=EuO@ BQ5SRHI3qS)XYU)TT\R/^`QUVQ&t&eef]& iRjPlRO8*;Wn%+%V0V2?m$wx}$j{}R}-WB~}E W~UR؃est26@؉XzQ~VqXցXtя|ה YXMُ%YE9יURDWuٕ5YْuYk١V`X4H6=pڧZEY٫=ْUYlٗY Z[ [5[eӚE!YUٗ[}ڹ}[]lU؇8ZLZ 7=%\=۪[Zڑ-ۺi۱[4UѶ=٫q ]̽\׼uml@7ؕ]}[-ݟ%[M\5]-#\ƥ[ V5$c567Z]u۬%E^.ZM__u_S^ ^uQ77`eY}\mYME`^Y_&m XXY~ FIEگlqv0\`i%]a"a5muu6u60#Fb#vU *FaUDdW65$60&2Q)>^46cVu6%#9c9&2^c3Vc<.6އeS# B6dCc?>\FV_$ԃ,^G~FdL䡍IJVKM6R^O RFe?dX>]U/Q[D yf`nUv)cCefA@>H}$jQ\eVOẀA4Pl^bFs&qfEEyB(tt6{Cc^ чICF$G|~f|;ㄜ,!st`:}dEH ~NDhņ7ʐGPhMōhZ\M\Ydϑ~Z dTFTMVMÞj|Fg4iin[oɳyFΨKJkO>qȧJ^Gʁk4\f]&:!K5HNGͦTGfjDr1 @|#l|K&Le." ƽigKlGĹ~ͺg8@DƸNɿm|l2KlmOK˸6nkeVE& ::ؾr̦~E&~ob\_loӼjۆvigq`n)NxQIĂRpO>'?N^ Ox g)8OAqldπOq$?rh7.~N!P3%$,gfV*+gsrv/s42goQ6Oq.o# ?s@?C7tb[CIorC t5K@RutM^VO SgS[_ZLjT׈gu3Foa/=[Z1(5ev#d^_t q ڊef?k vjwgwBv Uvڣ3$::dG+yǴxhv-É>;[aw0|ou,g8Rx?6E4;kyK0/ù#Iy{󒍷7V'w/2`t+}3iyv^zyw0_Pz;9Mӹ{ZWϋ9k69ﴮzx(;{{30z9ϗyx`?H@S>.yض͟4|/:_'ϵxҟ /nwG}=|Ysy((dz'` ˛{<~"-i G ;8=B,h „ 2l!Ĉ'R4إ"ƌ)^#Ȑ"GVpHTjҊ?2gG.[:B! $BJH2mҧRAFj*V&Tr'L5ԹT&jײejָr犄KnAx[h®+w K&ٜVSȒBL2K'եaɚuXʨW5װg38G-'m_=xȗ}H`c ;PK&11PKkH%OEBPS/img/link_to_container_popup.gif_ GIF89aV@@@@Տ发𠠤!,V@@@@Տ发𠠤?@*\ȰÇ#JHŋȱǏ C`ɑ(S\rI/[ʜI̘%5Tɳ8hLH*xdPDKj݊S`NS(Lў-:mI5]؄X,8s #F|q+p;*l&V: !8V²F̟pAtIi {p=+\7F@z­wY˿6 |Hz`{˟4=Ͽ?( `h]Q 6F(Vhfr^H%$h(,0(cT|x!Ψ<@XcAiH&yyPF)L6Xf*V "`)&^褈Hl9pX&LW&TwX.0hiE)" Uiޙ'VbHxR1Z爐 4j*Z '⤹˪Ȳ+66keV+*f+v*+k覫+"zoook9ph 0;lkP #< dzīV  8`31k wjj rr)2G͢23̥ڨClG# jL̋J}*GL1`u8w.]l1C3kSz&|ht_q(1_A-܌W>gw~"n騧K>mKes{W{n4~Mo25:'B|Dg&ڵrs[AVmww_~փng:ydzOzn{C?pYhdQƁ/^ͺgVعZ텷nk䀯 У3`>8ojΡ@F jd50˟_@y=gyg]gۂ̃)1yĒ*S}vᇇ#*v~]vmfva7P"`y @b8C n٥aGaT AvH)dihlpF"iչ$h X3*7yGȃV|)2ͤVj饘f馜v駠*ꨊ9wEx*AUdH lHshLf+Bj&ʖQlH&_UjF[{@G2P%)nR ku:9qdPUd(:ʋG,1^įkMK,\qDdĢq ,ʢVlŭ%qTH%3'aΎ@rE0E3'n]t> AWm5CSTj DOSOj[msi=w}5YOjXN8f'!qSmG;[}K⠇~}7ݕMx_骛xWzol}.E۬n鱣xz3{n,75|;>cuߺ-w=?˞УH/Y{Nms\ǿn5 f$H^$j!L '@,Є0! WHC뵰!/8j7dHwHD-=Yą P ]'"Q$.kB.:-X HFi1!\ E+UvFqx|-" 8kXr<G{D20t$%iUtdD e4( #XdЖIIFrY09av&;K@ȅ0IL^"Ael",/ov״v\8[yKK :" c肘g.ta i,a@HEO1fl)ЀrseB˩І6T. RVe% 5)ώ“HH$h1H"T28ijS{`JƂnp<(9uJ>M>k!ypHP3JT@#Mj1iTpbRp E( A МbѦ ͪ,J-1D m}ZJW#^ {UUS!FVriL#DօSu`W7AH [C5 pVfJZxFHBgV>UZD+wj!kP AxsJ\ #(jBbHAeN x5-D ʰA56UCr&=#"^NT0"x"B VcE)..`CpAqa"ǀ'("G /W\^, A5.0/4C@rK̿ArB*V(Z鉉*wYbQ Ăc= .pps3Ysg $Hߢ!*x*bm/29 6N{Cr@-lP~agp.x1݁ԦFYjPx*qD+z^FiP(ڵ LvA!` buj(S0(a @T;=N X*U Nf\IK ª=O⿛ y;Oh<+ġ5 qϛ.wG.'s*8w\RYMgȢ#v z>d+ ,Jq G8y+A2[ d-19$+x gCde?'} D-ωsBcD'ogfDKBrJ#4o]B׶gOד1X:qz XjO^"p?ސ sy/¿E Wxΰ?ͬZK˶49XGd4!,y(PBiE Ev8O@gvY@#wvsW ؁w Xt7LpBIXUG~ģP`@DXPSeNZV~ISAK ApXZXq6 ("H!Qrl w &Tgq1W qxz|؇~%h(x)+xOn/WiGvHu'~Gt℄D)ϘKɔN8x"[iؕa)dYP F&3 ItlBy@t!ɀY @깞61y|ey& 8PGjEpPy8PiSV1Y ]`)gpٟPd>,>ȝ+K%y{Ѕ ؓ,)`qH NɍYX zw biP maKPnʚЈJYL JIzѥaZHy+ڢ!xI1T 1) i YIVjwߥ ٦妚t*[ Jڔ|RZu#Z"fy+Y7ꫩ)ɩ4sku_X xa z3yyq~ЦxYn2*vzIƺZ QJڬ*z w} [vQwy2;4[6{8:<۳>@<%qzb10Y1v7iyJ@DiI ;:jJiɟG)LI_ ` P@ۉǦ S !մ X+`Zyx  03E`K r| [ ۠zU 1["&׵ш􈧛ۺK@s(HLvkeP ʹ_ a ˆ13: vFڿ}Ⱦ adZ !k0H;k[nĤ @]Xx,=dBDM u[up uW ` q="kT+B'LFP\{|]ТAw[ " ] Q z`{DQt7oWD >וGIY BW]a [}Xޠy ٳ ! HELǰMeN<5[X l6xr t p al %$߹  >^[afz`BP:H @N ,>V64ez:\BpJTnz!/B^`b.L4MN@gW14UTN)JJL~!o~@DҰqNL@߆Z8}狆z.|jhW &4TQ0ZIy镽 QE @~ /[ɩ)3x᳞%` a}м6}ݺ~A~ .흞n%B>a^VK6̞ď̸vEK~aW>_  u1Q:6M!n݉I;PǶe5!966oaWn /: _.SNN/XGGEzĮy?jjF?WU*^` tEuTOѪt1~VO]/t /ޑ=~`6br?lG^7^> |@O;מ__zW>S-N:__p/pO/A/ڞmoٛo 4x@ &D*Q4;rǑG~HI"7SL5m޴ʒ/AT(*C f0_J>ʰĉ*5bVZz©SEVʄV׊`ޭjQ²Ūx\R6ʷ-[V̗lY1̝=ODj ui֭];^,Ɲ[n޽/s#gōGtFWW]{_Ǟ]Ypoo^G^嬛}1zoͼ$+=3h>0B w &0 4C? AeN$`F`626-d4Ňv%8(*dL  w\K CYO\7 ژ+Л6gifΖ^U,$)i3Si5'~Ӗs%}ckcgrr9 z\2ŗǩb/rʧGrkNf,H0\ޏ|m*|WкPyg#U<$pQX=5O)$8A VURZh$.OR2(/1x;1 K@$&MC W4C*#<53|0UIxFЈY 0EO$-zBъW|JE$1*a8FH1T$c՘-rэ"T#юxG>fo$h9Aa c 3q9I )O,JIN{d($IJ&T gH$Qk+e)!RҖ {i))J`37ѭt]Ӟ!%/S7WZDժ`W-zE&("2^~{:"p1[ƾpJ6>AC5*1 'FqUb FI6%g. >/b#d /up2UFEɎ$H\d5VrI vnt(%W^T$8Tn3wVaLe,Y 69kNMRB q= \8xsg<3hClk,lM,_90yy,gUCb +Kтe׆zU2_ݬp4eW.UCֳ&z@0[k6K{EܖgCfyG'Dʭ29v2u;yPpz#;ʬ7W3uO%3Vr5<⢔W4@8ZRqN\H#9Lqt~pc{'Y k39[tXTDԥ>uWWzֵuw_{أ_i ^#z< |LE~Wߺї9o}]-1_Wo~cg;??oTȿ?D\?>brl@ղL@ WҲR4AN A<Td|@E;A 44’;T`#tBJBZ&|*<(%.,d'-2r;͓>d1B3CiC2;9,&17?=%>C@4DWYCtIPZF|JB4K;[DKEDH6O T Q\R N4j@N+BN"ЁĔ؜NN M,*N-p8Ol#"K,O4 X<UTOlPQPPO MȾk?IxN4@с%hQ}\p"+'"0%M,,|$p#(}*%@,-%,ZRh1R3+L5-BM)`&1KhL<}G=fH&m*]E]S]z2i%?%=JDMu]B'OT5Rӱ)T%f"h50HUUUꥀZhsB'Pl%6s!fY%lpVkVqEUltu,vp}z -ѢW{׿t~XsD $ׁ}W6]Ueq]Xh>m؉ŇSGXolYJ9X>a\=SNV Y~k) ٖ%gmsf8yYڵj`ݍ uZIڎZIڨ͚ڷN ry5ٚK[[^VסYUUio[[ gwYa6Yܭ}=-mxWBݍU]ve֝X\P0W]] ]óX}ٕ^{#ɘQQXYZڔ\j^셻ٴ7ḚE_^ Y_C}>Z\ ݽUaeZ!`!e]3`y:ߜ a :avaߍF؀;PKY]a**PKkHOEBPS/img/table_and_graph.gifasGIF89a  ) k -(1h "p!&0/4=m"x=>Fs %%',4"({6>'e'~*+*+Fs %%',4"({6>'e'~*+*+УKިسkνQR;UӫORZ]jϿݣTQ*߁Ս9F%;ɀ^T@f!WH Jn( 68bZp9t0&Vc2x@9&1N#G2L-8F)eY3\JH$L1UTAՙQiҍSɔ,An˅4B ) ]&hU^ S=ILӖf՗vCsF%LaUlA19@5H>6Li.ɓ WPL#aC.J*ڡ&dik H;cL"˥6&TĔNL@ > ?>Thn͠+Sʰ+Sʐm`N=kԍ h"2';W$Q=6Dc$O١Ʃނ[;i%w{RqaLLfۍͬ2ʴJ3O1!Sݠ{/hbў.LhF2g92uLb.&4|aўD9𧧮pqXa}okRq5S-\H Z> ,̫Lp0GS#1U 4pE SXR>D#'ݳw;wlI3T 4c 1R{77&kp` Rg9X48^ fhlTC̼~ `8d|pSF<I}=AF zၶW$S|7 4AR^a)N)3a6g1AL0Ir :&0pLA"Aq`;:X!"b Let39~0hs aAB؈)i[Θbp_4$AzqaDLS"!KL| T@5H 1T6mPd8C, K3ݷ@4#MaXf1u,1&7jT(687Ž>ĠbG!?Iγ P;>|`Zn)PʌRfУFQ(*snYPSчfS~ U(jĹ EJ JJAoъXկO`eFX%"{VdCKzC-ZF0<w"< -PJR9qS4c~;i*z4ʠsy)#1doA]SCMG.8|ByuK\7_0@Zf*#uuSh4 yt B[*d1w)DeO*P/6\\F$G{}|w ݃66P!bsNkɛΕ_(ZApc `B 50B2AO;ЏO}^=1 "`X,PQ y~+ BA@|#Υ?zuh` EPh p.~w OB_;~Qa x ʀ}+G! zˠ NY ]PCxo;(6kԐp gPCh=vN9o=NpYׁ! pHlKƄo` Ġ{Z(8y0cB ڳZ`&.#UA@ a 5X!?fЄy PlJ !_7B`VQW!0a0K`ݰ 6U` )%͂=3"&qՑYWpx"4؅P X CWSf0 hH0j s`Sp \RF>y CR0O R   50 vxEFPPx#00N>@N0^P=AqP P)   S P   C"c" Q- [#L0V9kc``wwV^dXB Ra u j Հ !P j M1 ]An 2ĚLQ!AM8ri,. xyP->0p?e4IqCMJ}SV@Pzа O੏s" (P ! a P P i$R>P&@+ R9A4`H2.L5SǹlqB XZ R]`   )`p YF j0Nke"r?0{!h= tL[L=z:86Fk@c 0>=`AΙr[@v^:"ԉ V0d :C7 H0 p a Oa@ PB"=If#p! RP"Ӛ eҠVJ!J-'b@ع>ȫ"Z P& K s0f꠩$I g r["rA (*_d԰)z 6{dS0 ivg@Ԑ%B" ACh ; _O]*mkh" u Sd;A+ 6`LT02L!m=铓ǃ.k) 1Crz I" F!e up ŐW x@ٷV@䈕ky0a?e{4;"hx{hVp X˺i Q73 "0 c1ؼfQ ˻s +ëN෇]pۦgWѺky 3 # Ip$ X KP P~:@]"P%mx"01 ܽsP RQ\/OV ]6LQ۔ "`q~`LХP pm K5|V9B! x6lDF< Scv!{$Ŧ<p]c + p gR8Q`q+2,6Nj=o\倪iI2ʣϑ$Xh|Ƃ`,\G1j(#wlX(" @#&E\|UlDV$Ǵl se؍iEUl-s^Hy] 3Ǭ ȑKV `m,ǘ< <a, @JdQ4&K2 t]I0C0 J(&=' y3RQ Agb"8^KBɔW:6YK$p?κ`SˑlaaP|-p2 cPfc:*)3c 9`@v0E^ȔAQ̯>@-P: cM=Oe'v49} N&0j>Bm|cԗ  aG 7c-- 0Pz> MJDc ,/=ND53p0q #0)R>3**c0A->% c*D-dజ @PjFI!0#ǟMưƢ Hɰ|P-jp3PۂFEG4 m&gm>9։vT!;jg> ]⮴;S>5mdӬ:69&f&rtZ!  {@ jPI*Bs -%~GzM̀CUd ޳{-!tܒ -IKA-Dƒ_H@d$rU<^M:)1d(f h>|X p)F : 4zl9A4> d*J LcF`tDOF&[` jEֺvP- Ծ`H4.OmR4 [ڀ4 E +ϛX!f}v <@d{ap xL{),`)0 ?)-OB{ Ee>>L = lQ3ՒYC/9)=B>l@JN)AAP ~ XX'fb쐥SX"݀߆퓥"=Q)K۲] E2s\/ uUH9.AmAI\ob{O!}IpjI1UqHd%B1`BM pLq"6&oip%O ǧ>º~_Ư1}NQށF)qk,hUO7y JV%V\*8ӭ{ęSD}dTPE֫2dGTU^ŚUVB:4Xe͞EVZmݾu+/HuX݈_/Ir؈qH Zaw+,y[+JFVI$u%rz6p97.%PE;wR)kzD F͝?װBn]vݽK7če'b{rY pl"ҊG}ʥ z¶K ƮHa >,,x z PdE_:bpn1GY;2ȶ檋l'ˑG椷$K9ɋdޮfmkFag!/yShV[,;Q'<nvf4#hLA4+8#,A7QTᔵ WP4GEj. A.v*r"XW4jb@Xh 5FBD"[/c7a& ke(Etbld,`c 3bF kaR!,VmV Dko  y!ƒd@v 3?WFkr.O ]Xevpܦ۽M.C GZ8P.4?գc~$g^"pcU"͸,SۑvH1 Xd-ȴPO B[ fl\[ ? )RO@Qpa1x(䮟b7ZFzғLԛnm#y(HuXuCNQSc. NQ dyPWa ư*hB Ġ;I¦詔43V>hO:,NA a8[]ZO[ D40ֱ#pIsX) a <*/_Cq\G$SHc59~'$3%1>NF)hz3b,\1[)x ?jNL-P& ɅTHm, JO^&"J#Ϝ6"(m(UM&1P YIDPkJtB2 mP$Qd-ІP(Y $J9(NIe!%RelyPlNd b1-&xQ0@e1QO]gLUEڴZDuN;!x!x!Ё6@x|{0ru?]Ig01G)[{UH5B݄"PHI-8\Z(B%Qm)p`,UIN@}T2P^eB0E]-YP(0,fLL?(1I&]]?]2I#.$&UU8TޣtE eޭytR'7PJx!ȃ430Oea v \8}@-"PϤߥ`dԂMpG\^Ym6ImTS$aA]JN\9bg0!Y^X-MQ6@fgڅQg2c^fLvQnh{zޔ p'ȃJh799~!䉇(=o?@/H=>Ph>P>`n-("pe_U1܊PY0Y .]vCShMO(-X"Yg``et?(i-2Xܿb^(#ṔLeY`"N@骆j&ӒQNSŇ^/n:dic9[JLe/gEJ 9~{!`pKցf[UW3>bPG(M+9]HNxd.B`Uv.M5mjk+oYlLll8'xDkE. 7('KJL3v쭁ۃ%Pp#pdQPQ]]Q,ʤI SPULLʜL.^G7䪡Qg'U/ȃoo<~C(`޿|T(+؁/x}3?gO||LR/~VTOrVr؅hzx,h „ 2l!Ĉ'W">$Ӆ)R$]1¤Wa(/q0Y:w=yB*YWjsRϹ+(/!N|TOSc>gW9w 8>0I=22v8F79)C3H|%wBFZBsdy!DC\UV}[9!cBe[SE u$5W0„s$P&jRM7,K$aC9@(K=?B,[(1,CřU4C2f# qf ԗtSřqhb g=@ʰI 8q&IvTR!:viD9J@V҄0C_%^,c+9#N7@M8+nȚr]աi.6IlN9y3bpM9”Q-5pXF=づ 7  Ǿ Ppظ N57a6p(7DLndՇIL"3d YZ>hpv4n7(|bDXkKPcqN7D`G DO/>&Ї ZZ pw`-[Oвz9wE!8 cwQE̎qA9a-5ލ,;Ѝw>wGCn;ݏ=Yz"oIϸ2>\aȍXp'@ L`DsFqTW` `ш X Ȏ8c T 8݀] I8< P\ X{ rP S>Ɇ&qB q1-`AdFc@9z'6 X@Bȃ-1# 86B_: L!VVu@2 e6(S"`;n=_p驑z2^ʸ਀0>245 />#>2$ۭFN# ! pt@pN7fh44]D3ПɃ8%s _y āEt )@ іE8 %P 8Bt_3žK dhѥ]yE@ C2?Z : !Ćr9N@"g$bD0A$)$R@@<XBtM=T1,x ,调ahK$Q+@LBxFJC[ǙE }J 1." c+ 2iH`i>r&%`C1,XXT`&}~BfV=`e#L E3Љ  p 8ה $1i` Z T,f+ЉԴ+lAN4 B3Ԏ 8h¥ZF=rb=PЃ DMƁ& v )8%e$8i{B9(cz46T&ZdNėbV=,AL@B7D1TɄlt&޻ru${IVCc=R C3$, Azh&l kej*iA8H+}e}GKk\e]ED#>AB7C*8.|m\A98$A-Lh{2A @{9[y%0D8ѠazE_x aV7h JV"n}oE.azDA9>Xn+4U+\U@V=lZ2T@߳q0m=܃A1gb _\q9\C^o5rq X7A.$CCa+ ao9A 4$Rqo­>9[p-, p˝8[#@2Y=4B/70ĦAb 80-؁ჳ@+nZ@-X.X2[ TqiB$fEG dnĈ]0)w'/.S7\@AБkÐr@XC.GX _@?@9TQܐA@LݦƀرQq  EB$`i$H$M%v~2=svrPo>q E4r-_mF1x:&?SE/dxnGaG|#8F8`RKwwG9GČԷxBhL@`@4xf91)Xo|sIT8)c>Ԋ?M9Hd8;C1.dw4l hCCxB0m~8S_xkG[95 2dz{9G`LAx D uRáZD l, _6N&9c~͸[C#W%1UhKf@m݂]~@<,J ҝ/迌 @ԛԭ^A&TaC 'bECXBA9G*X -Շip4\5s`R35it'ULU)mL0Ws|#>@tcM3sz_&ؽʻ[47h'Vx1Ǝ?-$&+[›9wTwC7L;p垇^)jTLʼn[,bJVfCt7Y{լ|{Y^ A G3NƒPS8b+H#E/XͣYU/hm[p㒑B5>hnkWR{%/wڏh /vfp?WYoa]ic/B$\%ф&/lQ/@ ,H p %h!U% |C `;l Lʨ~15 Nb  @X e,c8e<ȎeHz nNC#cϸ"O0i /@I +Nb?D! V,;A) LrAҙb~ʐv9U8_eX2Y f(cx(-`G38aCAG_62g6ԩ;y`="X:ڟGn=Pz]H!xAZ,(]_=Hn,XF752~/ci=ptc3sN&'01XI0A0 Sc Txh r oFl XCs`t45⃡7Ap#l9ps=7>ŰVlc{v0э!!V|CяVb$qjHyA>uY>IKU;m\dž͘1T5rc5$EAI fqN'0 ٕ-?&CI̛$wZGz^J똳CM\ԠwB(!"T)xa8E81nZQY`W^k`A.΄` )-fYE4i O<+Aȯ"O X`XAZ >X@ K-Vgц"/h@a!O""nOKZFx|' LjAfV A Nf|O ` d Uc"uPpҐ"ڐ v(Vv gg BB a$A؁i|GPBZZ%aD ЋRp|Jbv"N vg[pRuX"fm'i15CA1 g"q7NTRhZ`R0d@bJ/U=  dqQ'*O F !6*: &TE5q|8)$Q2la1 l*R~37 #Z> S(2)_g%Ϡ!ˡ"x)mw2(a' r-2)?aך`CG +#$ء`TRamB-1-3%MG`*yl"!+W/"j 5={ޠK 43R2Z! 33Q4R6ID9꺆8#<(7K 8E83c3<}O:a# Q=!:sy34a4S>{<˦~?3sDS?{,? g9TBJB B7F 's8#T8Q$* 52[@>TI&?n!(".kCEK(6 h$hEE RPGe$F32JF>CtG91OJKO ZX@ 2Dk~` lKQIc JE(t4UY:(rAbl`x&@\@BOEV] ! :e;`aPԃOM[%%chnFQ54![ `xb ! @Vra]oKeU*>s` b4 ` 'V&u\Yq*lZ'FC@#VU Dcc *c)#JtLgztAb"L@oohwNGA*OZVb@D <FA< ZR4lVSVt:t` tc` $r`ruϠpv-/;wG \3 2 8lsty׶Kc{!aH/G %pFu"(@l qOGa'7ruD* ƈ ZD e,큭la` ,x `|N.syc7.7]P8j_ DR85u'M"~ cXgBj54KdlZad2KXY^92ZxEAX]=+t^iEb޺XZ~Y!Keq@T@dW4x2%VBӅNsč{pq[ww'ُ5Nv^X09 J9M (يf& lJp9! 5(́!29G2i#%n vYb.R hRb# R Rq zMit$vztwеDCUQƓAc`A&X[! F/plؒ1(+ڃGF&_zKיu$%l'!`- TawkDs&a@lcS# k?} "9!ŵab ,rt3^ {$$`q v[M{ZFc9AY;GۡFc@Esc@k#b@] 6cqbt Zz8vs7b g"ġ*CāLA^!2۩PǴa0"o {(p@,:q)Cf٨qB&kfr&qAk 1u;+RǥzSA\-ck FcEЈ1adȘނ @8,+˧c"A;@b`4b|/|.4CY,A FV9G۠{(M;Q)Π*T Z !Z&]?=t H3%sbºD]F8W:AAD ɭm}+^ė (C(Zd 򪪿7,ʹ #LMH[^625, Ȏ>D2| #L"da UؽY@MAI&M'nnF.%,J zp ac@i8OV/SZak 0 &Ė6:Z׋"D6 ~.(I! >3 +JεL(l4l [ ʜT| LN ^+I>*~=g."DV#,L` >a*5daT`@ءs}%zäx3|h ;MdA cHtWc ^ndR!2,$c.p&J;,a^=ɫʫzk(1QLcrsXOU~hڢ$>Ǝ&T(j)vZuTԩTZ5֭[u 6!Uy:XjUׇ\ڽ7^NʮO݇q2Ō?&L0z-\dU<꣙f,GK'P\oXSA#> ;54f 8ncJTF4[(ɛI*Yi.ULU9-k$٠1(iliԿJYhգ[` ._cbMHa=#9G1ݨR[tpBM5Fj sP[ ضCexT1( 1)18cCE!`C4)+qFi2%D WO8"14B$8D+L9. UVYmh.zzGaar|nl LduO';ZKQn)CKqLm[c4Y20C 1,km$)3ΗdF6 Mp|8GwrslgiӘ$EZ|]>YbS, mQ?Q"B45aQm¢FK>Ƴ %HRb1CT+G)OchU%!-v4~ **Zԣ\*UTF-*L:C~}˪'UU}![zz-&WյT_jw%P^v`{ЭFUbR\iazVxլiOYkz6h VʶjZ?lŭnE[pjw]l%>7␮BrK-/KNr _$q]^7=|WZߊ7kl}K` ;X`oE z~jld_\kU)0bxB2>7?E<w,4GLdغTf7c<Ћ\0+ʔd2,9tˋʱuLGs bYQf]r+V;ztev^WG7e7h;;Z-+Di9[zэtjj"!T'ղʪIKձu"k@rdG7\ M{/^6UnHy`k괏dkA]MHiS;6`ۛ-xʼqY{3:J=JVv?{ؐ%g]vK-ϋ:xŽ{lw>bt>_6ӣ)H?9"ęY'S}oq]v@&wsGhǝgׅ滻❽pvם킇3cz s8,6yO'_ 5|߼cZ ;Kowޒ_}5\5=k_(5}pKXo|#]b>moOs#;ыZˁ~[~6V؁;0`@I B8](ewhTw^;oC]p W ]_ЁO0!BmPvc\hEBBx`o0NpI V0?^F15(aO$xA8!o`O`XHSOЁ@X RhhNFзՅDT O0BHgxF8cu HrHhC YX|}_C`_Hx; Ԑ Nc/hK8Z}GnyP X PEȊ7~p V ` VHEȨ 7X%1t :B0;B8>2찍mvvP ָ /N@A Su+V!)#nPȉ9I0x ]$i'yJqWCP`G xOCR Pj_ ȊOp=r2䆔q)FyN`^i1{ɗ}  }I ɘVtgj=^) JvY}kCma)w )r`1ɛ ) ) Y8r ˹8 @iwsu`p ` NPO(yO5`>8xY(i)7105IJjG]H N|Cm  n NgL)+ʢ-. /jc)qoBc::Dx[J0>wJҘIb&d:`zuci|z7 @s My  ~A J XF&>@ ꭯`<$<`D|D@ \I0кӋ #\) lgXX`WϢ|7l;̧{D#pD Ѭ!|D}K ld0` 0S1 K X,X|~ac}ɰɍ ߌXң@;$ W }) "p{ӭ6ۓX+|I}ٜ V # YР)Յ\\ے1`Կ:u  ƭK k}` s}]J)Ppͼ lП&"`{p} 틿}},ʲXNtd=<"~@ʦ|͖M$l `'=I ,,ʸ ~<2:,L}@ ||;R <0pq ~O< qtjڭo :޺~ on߁~ ,W~foaq> ~grs 0]#oŒDŽ!к::bbEr,1лVѼgA I$&Wl=YH[ZxT؞JO}T aK~ rTuSQ_WaQ-`[I@ZXhoK`RbD X U^Ti0W>mIRQ >pSq`1?u"0u SAD}@P bo6 QWArNGnaHGf0Gq> M #+L"ٳ=_mk\/nv/Nx }P?Ro@֡-DD+> ,f+X!ҭM 0 -٧Q 7-^ $6 1 a^-?rE6ЭJ}lD I `%Yz .L(Cj}=WE5nG!E$YRddedK1eVDؐ¨+8*$(mkdWbӆ;Bޕ$*ಱե}lqJrRYݢ:*(gqcb=|g&ZW\W$2^rs-mtՕrMfJVI: [!WtQ"^ܹuoT^|f͢:S {rz7"RFg.W=n،q>f˩uŒʙDeEG}n83p9;{'pi&%, y0nªGv䂏βِB;+fͻ G !VhGV꣏rk䀈Dc,Xp;#:"̫z59>n*HL"|^lErF*J,N Iܬ@nKFJ { Dl)"H¨>8>.h$FE²Mc-GIx-,F6%,4SaVrqv*k!^Xۆfs)#u7\~6%>+1؈l>zjf2eeХ]~V;-Zm~{Ǩ;+{o&p nTbr+G|Gn|s$7kC;PKXfsasPKkHOEBPS/img/single_monitor.gifCGIF89a!!!!!!!!!!!!)!)))!!))!))1)111)11111191991BB9)991!91991B99)9919BB9BJB1BB9BB9JBB1BBBBBJBJJBJRBJZBRRBRZJ9JJBJJBRJJ9JJJJJZJRZJRcJZcRBRRR9RRJRRRRZcRZkRccRkkZJZZRZZRcZZBZZcZZkZckZcsZksZsscRccRkcZkccJccccckccscksck{cs{c{{kRkkcskkJkkRkkckkkkksks{ksk{k{ksZsscssc{sscsssss{s{ssss{c{{k{{Z{{{{{{{{{sZc{s{ck{{k{ksƜsƥƥΥƥΥέs{ƭέޭέֵƵεֵ޵ֵ޽ֽֽ޽ƥƽΥέέֵ֭Δ֥֔޵޽֜ޜޭ𠠤!,!!!!!!!!!!!!)!)))!!))!))1)111)11111191991BB9)991!91991B99)9919BB9BJB1BB9BB9JBB1BBBBBJBJJBJRBJZBRRBRZJ9JJBJJBRJJ9JJJJJZJRZJRcJZcRBRRR9RRJRRRRZcRZkRccRkkZJZZRZZRcZZBZZcZZkZckZcsZksZsscRccRkcZkccJccccckccscksck{cs{c{{kRkkcskkJkkRkkckkkkksks{ksk{k{ksZsscssc{sscsssss{s{ssss{c{{k{{Z{{{{{{{{{sZc{s{ck{{k{ksƜsƥƥΥƥΥέs{ƭέޭέֵƵεֵ޵ֵ޽ֽֽ޽ƥƽΥέέֵ֭Δ֥֔޵޽֜ޜޭ𠠤 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNثS!O ~e_:)m˟O޴S7g`Z 6K(<vXV (K\r`88W"K*AѴHN=1hdW6d;d $xΊW )Ж+z#U&K2Ȁǟ& ƥT׃FEra3B쨃x ߢާ9@+z3lK mhNf<*pQ@EAgTlB#&>Y|GЈRE&b xy"B,plB"|  e`hB E@:aFe:BcTBdr˃E9v#C-#HNh*ÄEX0ـG<,[09z[ & m8bBe m$H & iR7! l&C|0EWS\M #1Oi- ~؜?;1,d Z:! KZB :,m^ TƱߑ?(âXyL%SAH9ш AH)'GI &<-B3 jcoh0/b;^]{sےfv*iiW1@UORhjj^(4/"lQzlB$=U}T,5 |S jJT^jBE|PAN"x$4iGG:meZ$QM\jZVF?JG\1ӭ-jUψ(p4*:jJb~ J, )P rSlQQp X *pN`~a4$ l֢H3-Zw.BHhB΍aMnպ]e΄fc'< @|;! bB;H!*A$REN@\ kpZj cXkpAG!tI|2CXiZJ;bfNilj#2{c gE0 O(<۶]έy-;9a&R$Tk.@ g7o,-s<< Zc‡ YPyLhmxȰNP@7I[e-2)Wq#&l;dmxx~nLv i)>qa,Tph=*@h@]*!4@EA5f`4-J*r/mrҙ2ʯNSk*0 iPJ9O7"5VW*X_TE2|ʜS0GAi -Y'm>81" VKr*[Ti~zܠ 26Q`Ct9%R QU#>ĄF k#wASL(8=|lO!~tPAo#@!̎!񆗈U瓾J~@:п 0_>FsI2z0FDF6QWZq1v$ȀVh1HhRсD"$hC&H0G#yR(N+Ԃ3AfQ68B:(<GpD # (G@I1T*j4!eaDU;+2"fwwqXxZ@\14(4)UXbPs"#x[qXsH@uIR"+=x16p 1Rfj؄?B+PpE 9-hE،)F10o9'0< 5!>2RoQ$!35$(K,XIϷJLٔ9Jdy z|ٗ~u o-Hv@9Yy0Dd1DИeyY 9ir)drYyș9"p@ 9YyؙI  9Yyٹ霄ٝ9Yy۩Y)::џjy:ʡ٠"Z& ':$ڢ0ڙ*, /*:4Zq-;:-ڣ>z@zBJLʡFz&MZP:RZTj^JX"ڥ_zbdʡfp:j}Ѧq9tvx|ڧy鹞:ʨJv:Ztʩʨ r!J:p ʪO*}*JzyynPa J:hZV'9&dALZ|DD1V sk jJ nGC&C5!(zMSv4!)@+ !ˣ@KKu4"=o"D Z\۵^`b;d[fkЖ>!IE+#%Ue)cj6=ްoۢ=[G>=R*-={j` |/|뷇[ PqTU[PBS`BԞ l͡ M P=О` &9c(G3؅m/Z0$JpFc`7qmFHӹS`(|P^tȍ=Gز(Or4W7<Ԟ ۠-Lڦ2;T6x@'nXtPP* tRۿMÝٲ` _ C-aA'jEߩב]jp кM\0 4po^;-1l]N ``LP{ z96n1J,aI) K $d`+|Bp * '0)^J@I>A]à 4T.Ӑ > \N)^Ip I ]vx^ ~阞隞{e@gE 2*̴`,P~븞}ꢾ,}N .Ȱ_ʰN1E \0p> OE; e` >pȎHvHTJq!Ky`U@kP (Q  Q P&/n^fo 2Zp96:#z 9Lyp9GiWÓ@"! ^(n\P͞ y- oJ y {"{Nz y ͮ C5T_zݾY[>P`_ E ![*.3ֽ1\y0#y 0v{P Y֮`z 4t n 3`fPvTg(4!=Pc(r4*Tpq aZ DPB >Pمu-3wQF"~l]=%MDRJ-]SL5mDard+<$@Dvj Fl ?٣N`Pd2 9m SBF Pa.[$i1D0b|G'AoQ"J+' H/3L1[Z7~a0GdD8@A D$*=j >3 pl "x1oa#IM&u(5" SOM,!I_5VYcVIe(`TdC8`I쪒̓}-GB6 赻mU[k\ +t]oLD\}x9fW*g{Œ!%q󡐑.l#:99Ԕ+2GQH*^^ԙ;lSʹ(9m{FʼnKRz˩AA?QX U qk.Qfm/g4>^Bto ?@|7̜dqw5D8sF3hЇR>6f6(H*2 Ynppf nou$GR3Tr./-舾k߬Q'pFr)]プ7A h}#Ay@"+ 6@28A OvAPf`u .FExȳ"| aFH'X(nhFl;Ћ_tIbj ьբ24D1M| )6QC,Vdc I4gD$ҸF-!pcXGQ#0] EC1吉DeȒd$M7IJŒن%,2\\G9 R(ȂRFБlTKY⍖-5 >YPӜ3&HeE#ƽ!Ԭ&ӮMh"۸@q3Dhu-1҆ 2y>\ >9}3"Q>fBU*FM2QQ^4quԣ zÕq-K3 e©rjJ5VP!**vըJpTQA~9Ny)!|A'KjqҧFHN 0E@l\a{z_fh RR ;lM+kfOuI]OK<@~W5`R2Ad   Ja6s?d+2xg\6Yc ֛Cqk[&ğUd~7rpBܶ HyC^\mNAd֜l侥`6,<XD"FL|W#biAW)p$`-MJߐ;xHIFa?UF"x,GZv!*6P;3w-F | o[@<^dE[dHܥoTZZf 9et-|f8R5E~űU}BFI6LdY@ D)SVʇWkٟ vW#%ֳF #Am׺>4}a,*¾r I׋ *oz͘`,AK `3@"[ l@NH˽nY;Z NU Hcɹ.t|X`6j%x?mLӌ0G 3 09\Y81n̠C f2\938&O { y0Mw!*i8 tLA2m I ot '70 H`U-4`js[XN$5X(,x3#wz`tA8_׿-(CDͤ&>.*z uǬ{ f/834nx|Q$þ ;S!ZB7R:( IKِ8-h'Ƚ>3D1@ |i5ܰ L-rZ- ԓ-,l_ѺA,B+@4sȅ*159 :B!@8B$%<1+?`_Yԋ44SA( ;kU'>DTCdCKX8x #(J=ho4ST!+5-C[>\ isFHc܉j }S0ܿfƝ8MP (`>YG6ǐ$ zT0{&؃eGAPəbH B-?ɟ$9EIyGj}̨~\6M!Jr;ZʐlJ`e)4&\-'eJSA;J"DTK " y!ƃ˺ fH1GCNJ(QQŏ/Ŧ4̟ ʽP#X85o9*Ni5d@ëd.N'M*gTgЭP=-Ӄx<8BEP}-ȄMH}R0PLTSԃ8PLT"5MԌNjtUK8:TRZXUB'CS(Г!m1Ӈxej3xVh lGF~؀؁%؂5؃E؄U؅e؆u؇ى `oE(C2IYYׇhOw$qW05O u8-x؀}؛ٜٝٞY~Xٸe؂3@B`x.ѩDͧ#ϔMKV;VPm9X Z( NT&UE}"&ڍ0Q(-kS׵(L$Hhc=PQIaRګ(c@]cu@\\U\b_P_Xt- >z cMeHSUU)|!ZRaЀPi38uEaϽfDeފp^-ݹ ޞ_`΀~^XޏVfv`g]PR潆 ם_ա <&6cW)HnVT]$t 6^'$ faCFa %b2(6`'VL(b5bb!,F-hIy51~2b4152<1ee^K R`;NcuEHUy5cD/in hhygXp gb2fHFf0QfuHý/w&fz٭y0&0_h6٭Ur8i^iS_0`6ziypUuP6>^V-16ثQC>w;_+ "P "z`j0Єzpr0[u X |i" %@l띸cj'ݡN SP썮Ȁ։hHi^mnƇ@1zkh >ly(mSp "Pcl ,h>X!inmukn 0z^m ׮vkkv]F|&&lioxcN8C\gkxӖzo(o. X`pVp. ^n '%s@$%?@Z8nCd0*q<'?'vqo(_qMh hq&l"qn0z@bRr'FGQSpPfyH[Km0wooy4gy5?Ƈ`s|9vV(s 0)v`E>D x_oy]Pp?z % _^=Z'ζeX]i FB[C( ;KxC,M Pǵ|}7~ƒ؂a(-rW2M@|Mz/Y؃ʯ3؃d{e#|7Sn|^HtA7}=>Zb7ׯ%h}|}Oߒ}ާ$$7񓸂 yg\΀섒(&|@W:b~0n97]' s "UO2l!Ĉ'RhQ6r#Ȑ"G,i$JB\lB2̧РFx@*pLp 7D2@rIM$2 ÚX\b -c^hDt0{nQ>Bb;*-b,..HE1\w8A!  j!bCi=1lGN&<FGFn$pިAm1A$䀸D↨HhR R9y@px2de(@%"Ө,1.[4Q l`>M~KH@q$NG2X}$$#AJ&$!9B>V'/reR0*#UTYʞu -(A3SR+if%ic83+%Y"M$, 9ӹv3g9G{3-AZ*@ ൹-y!51 iL4iPw5o4MzN5AjL:5\֞5͙Y_ם_("Ʈ$-iْ6X;6nC>7BA;>w[fۏ`aM ?8pW-M 83sH89$F;&R;Atw8c.àG㒟#jG4cF?:3~g":1}.u`4]LЄA}8@/w`.wȃB`;N 3 9G"J (r9B)'9; rCCL1C!s"Rc5Ck:CRZB˂P)YD*@؍BE ch|B)(!"0 "`Lף>g#сg!i=v.DupE@ OQTx:&@*T\ #D)yC4@#4)\4A A}߈CQJK_g_`xa:d@46|& #\^%!<#<;t@;ģ<j<ʣ;<5X1Dcd)hfD;P@@XX#\w\ =l@HРTO=A :D "u-^sm]dEփ D@/BL6@)pG AFW)BFSrEj_Y@d  P ^G|M*PCjR<|@hc=h _.e; S:c+KLUzE %x_S(ǒtxH&Dw(vx`փ!B 9@UPە(/ȃdYmva=QzCF.H>R4D(n:$Kŀ@t>tF/"hKwR'29fv2D{>L="CLN,tBi=Tke{.D.賐9s\G dh2bZcڨ*hf= d ApB'Ii$qFH d.D֐_Ni!Dj2.N.%Nޅ,ߛf-橷'RBK|FF NzdnHd,AfD2` ^L=lj=``ngn+>,Fh*@A.4!e:$r +kփ*A>bFTb"%Ux_jk^M jg$ʃT)߷"*2ܞ> |P"Ġ +Pr\Md$浃փ.+DAd  ral}BjBhdâ.*bkƲZU.2DX_iv%CK*ABhF}._xCei6@"shiw gL̜BGRΦTJmVm(::cg^}*H^H5fv)B hi];cۭv*A`-*1&.?ޕfN.6oDeHn n Fb R).Ĵ~$'BH09\jx^Ba 7T_v2.,*#xe.B >&PcHsE'ehxBjAHFXX3/.KqlHʍMձCB$Cܱʁnw rCC 1 9"h1`%"3 hJ"J!g"&%CA&w(**O2C-w/1w+E(kT,`Y"U`o9/WjEDPvP> 7\,r,Q5cbi3R3<<=۳?>;s?4E@W3AA#4D/ /@sD_4Z(4EqCCctDkFoG G4BHoII?J#nKôM;L404ON[sMPXNP'Q*R+5T S7>uT_udM5U(VwiVU{5YXu4>?7BC:FG4>?7BC:FG\ Jͼ{ ]/@ e9cF eΜ1?>3ǯN}M:/QhP^'= /PaF/xQ,x'r(∙巟}I |q hp @ ht@ (lADD$6䓊H]Q@HC^0pDj1Ic:nA Kd"t9Uw],,Yd!ZAhEln0v(b'A@@E[hYqfcF F:j]wh'5t:Zƙ+ mB<@*[_p"DGA fh,q h1cYXA,A[̫–,mbDF`W qO|1 ,dl(7Vr,.,3&F^v<@-t[l q@oCL7PG-TWmXg\w`-d?C Hp-t C`v߀.n'#BnԠFWngX.褗n騧ꬷ묫!Ӆ[+̬/=3z<9A pp<>i<)1la@zrӁNW$}c@ ,ap_ v'[e|ޔ7>J"\RA/"3`f~q)[1~Xl?cʀa ,WK¤!O3-@PtxL f4@('Q?EPWzc#H8nF*hML.P@ ?|<$*ԂQ4a(#/Eh{qf9W,K7H(P(pUh"pFSZXDU/.7rJHxA<@58Mc1POWⱈ#ANHip(}Чhc2GHz=7IH)1f/ e yA;9Yy);>ah!ٛ9YyșʹٜΩ1ye 0UWbQT9Yy虞깞ٞ9YdY,@0?>HG11z ڠ:Zz.+P*R#i{)0 2 +MQY,:4:19DZC!|FڤDӋVTpLHedե^` !&J(a_'Wau+j:qRZTU[zHp}je9@jC+@Zb1#ҢA.f0N'rD^oJ/ 䈖$ꩦ:b@zVJD*r+ZQ$fi C;A{  B\`|L \ǘb`e` c"Pz^PDi4(gmHjqDa,\4ºkp&[ULb8YWUQSL]E0^0Cw]púq#0VC #jp5Sh| 7'bPv!PX=@P]BƔ$ƹAf|VJpqTtf1<K0:! tIP"=9#O@mFZJ{H`G jPAZ# 0OipPI0H@PP_`ao|v˷XΦejsi0+9S Of`ǞwWAkjٱζT3Dɬn^`/K 2eP70MP[`Z^SC @dѵgp `bP & T ubmdɶll2[]0C\Y dZkO&xvVOP/"U pF"g!BZШ39,(i`y"]IF-W0`Ov JenI*JK9f1<UZQ?E:q}PrrE޿!#n%NL')nB/>1ND3 +K9~+H^㭻6t qM/@뻲Z3!Mb吓;[jlnpr>t^v~xzn|~l9A.`2>^~阞难>n.@ꪾ>^~븞뺾;PKYD~PKkH#OEBPS/img/navigator_abbrev_audi.gifkGIF89aEqEEEqEqEEEEEEqEEEqqEqEqqqqEqqqqqqEEEqEٹٗqqٗٹٗEٹqٗqٗ𠠤!,EqEEEqEqEEEEEEqEEEqqEqEqqqqEqqqqqqEEEqEٹٗqqٗٹٗEٹqٗqٗ𠠤H*\ȰÇ#JHŋ3jȱǏ C4ɓ(S\ɲ˗0cʜḮ!FɳJ(E$*] f2JUԅ@ ZפJlTMԬ[WӱoR*7&`rKx'Ծn[O/Ji{7h˘3k̹ϠCMч&&yYװc˞MvET| N7!dnУKNسkνEDx! >Ͼ˟Oك}(B&F(Vhf($h Ê,0(4h8:@)D `6%L6,1ؔf FeYUiJy 昏II#p@U@ ]6d p 'S L$HpB0< '^i(Bp>PVP( tZ'uRZ'<|yVZ&e e0|jYY+ sʪÝ>Ω+Q髮'5@:0@:k,)lp컹nS*ПAAȦ-AzV pg:fAvIПLjtkZp^YsA Sl1ȬYm΃˱ifL"%PO=uV#uo^]ibIvh6^NG$E6 wCr}P-;TGcwA™Bˆ8ߌی[\@zku6gs|*k{9AsỹB>/{{xw"1X7ۥ@#T7Rk?yckyG/=XYhP.)C`oƒ'74nr$gq Ǻ;r/`8NluYB/ F>Ѱi!٦Im>$ !-FuM,H] T)֥P[EУD{ PfR^4,g,{]LZgTH6 4լp0^4:5"f=CҪrN*\#)׹vv5[vį>71dɤAէ¦S accv< *d"YHֱ-;YT1Gb @6_'g2O#l)789]v8J9X9-,UКhE%RAg[*:[U|C-*5"$HgZvaM,r!NtǺ)%;Iy X ‰ޝϵ{t!jqb)=76-8EIsy`U3OG)] 0m [cP XrP=` wfRa\,F ]&y= l=9,~s-n a++E{DшtNW9mbQ,`(w{lA2+1wR;F~QvorRnDŀs۸ӟÖʧ%$[s]}7q %wP? +]K9).}N_._}_]U1iiz{Y0)LcmUFv߽3#/DNAP9os?9Q^r\boX!-q7gyFz^nWpz[VdzX;PKUpkPKkHOEBPS/img/txs_w_shared_svc.gif GIF89af       #( !#( $(!%(#%(#)0$*0%+0((((,0(08),0)08)18*-0+18-38-6@.>M/380482582=H6CP8<@9=@:IX>O`>Sh@DH@P`ADHBEHBUhDVhEFGF[pHHHH\pIMPI]pIaxJMPJc|LfMbxNgOgPkQUXQhQlRUXSmTnTpVrWtZ]`[^`[y\z\{^`a_```aehacfhdfhddikklnplmopnoqsvxsuwxwwxwz}|~|}~~ׂل߇ዹ狺錍𠠤!,f       #( !#( $(!%(#%(#)0$*0%+0((((,0(08),0)08)18*-0+18-38-6@.>M/380482582=H6CP8<@9=@:IX>O`>Sh@DH@P`ADHBEHBUhDVhEFGF[pHHHH\pIMPI]pIaxJMPJc|LfMbxNgOgPkQUXQhQlRUXSmTnTpVrWtZ]`[^`[y\z\{^`a_```aehacfhdfhddikklnplmopnoqsvxsuwxwwxwz}|~|}~~ׂل߇ዹ狺錍𠠤3 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧ +E4 P^Š jVXh"DRb!`yos@LmLhpa56rX(> GNY(3g5qC!ӆ`ӢMWLlm -YPC0!!^4ba&9R2AzaB&b{a2)mQKKi_ 菇`#3WrXTPn_Xa&% F}E1a@ل@T ͡%Xf$E '!0EMQzEtHElfnE48%pFJrY"4GG I .Xi#lcRDrR ȐĩETNI#gB~Ĝj*Z[ja`GH&h'DUbAVAMT@wq)$aAR`ڕ= i@RQJΉCwMqFEVW JYl|i8V4 Bhq*u i#60BmlcRi]Ln:eRz Duq_F$le$ŰeMa2(Z꙰'q_x` FunxTxPix[Gl2XFPЄAb~fZE  XE S38_U40dI"[D r0%9 m83+=Bj%]Ad; o|?O_%Dcd4UF DA^+Q˔LgX` }~L u kIx;aKBGXiB@܋?nBXA (_Z2;ؒ rkB@@8 $aK0Vg%ʐ%fҍX=1aK6,KnD8V28*iE<,–8F7bFXA8Ih!e11i1DP3* e<`jn4oLLaDpl`'p"@&0bm̥.w^ 0IbL2f:Ќ4IjZ̦6nv0 ;PKf" PKkHOEBPS/img/observer_detailed.pngPNG  IHDR7LsRGBgAMA a cHRMz&u0`:pQ<PIDATx^ \Ǻ{hԸﻨ1D5FqG%jĈ,,**(* ;Qp5rrSiӶttoޓ3OUwꭷ? Hg(p g\I ,_~R~1#;w|yљo8tpl۶M6OC2jOAp۷O{ *ϼn߾]+aS椀K*pqᷤK ) EFEEU>riRvFT]XDGJ+4ݹ~ UJ<D)*8x E,(~B']k-QJ^=)7T׭[pӦMJZtM讪iXr%lo(%k*& C!#wg lwd_k g8U=TtU233`JsD)S* Tmur_vM>}uY(UVɈ:Q(? ߬ݷI'JQx`X!%4D)5\V~" s.{BNeȒ-(*U1%XG4Q4SرccizKY(>r?w\xMv0_,G_|φÉ7)\W ǁˏ.1_8OxB9_X>WZŚwLJʉRrV 2 $%%.sG&o Wx ~+w,oL) %_R#g_H\LY~.*~$ ghs]H;,ţJO1HI[::eJ-_B@b0|/ʸpeLyZd&̝kp9\Kp }mRb۟ws$Cꔿ_BK`7X":Rqq&EPwﶻGER*P (ԇ@5?uh_V29ؗ7>:yD~F%FV)0۷ozAQzU;u7& _>0x] y)ޭq(~ O8~xO2ى49T8y)έ"mIm_Rd.@r/qsyHuM9u'Dr< 4p'D\Qbo{6_W`sNsx؀ X)/1=W#ғRJRU3DaFUoЎ2I0ؑ-R@@ !=2Q}]+@BxK̟(%Q(J Cj#J-hU>X~~Ք4'E"J `]lE;qrӽiRdQJKv@8M@KSIR@6blRFzW`X .[,t/2M7"IyR$BH*ߎ&RN )uTW.H XQgtD)j=UH~FjUVI(`nv( bʡ@BB!$A ȯm+WdM_kQ Q֭l`@W"JUfPuo 2rНP -- ?%12/. 4P3TU REHRqzz:QGSh۶mrwN7L JGjkR@* pyz ر'OKS_Wwevqj2)Ԧ v+ԁRvk'Fȱ8N!H@L`ʲkr.O)>Jŋ5] T8RT ..,Qs,PJ'gK \Kfׇ/l4zڧ \R@5fS<D0/eChB_㙹|ę;XAX`&t:)@ ݻwAg/uJWѲLZ$}i0 {RV)Trr2QJQIcyϸd҇P?t0ҭ*U[q$mqGz_ʤgV~: N )bŊ˗S_J5~![)eyʎ,sÀ&e a)=)@ 5kdKh{Bx~y?# еrD)۟B:C T:@b'LH)YsUA ƥM?Է|k5lѧ R*4f^Bqj0/.~M|Oc0|/Ӕ(en6eȞDJN/&zB9̹oifF-LSJ(ⷿgas aR=_ڭQn餟(/Lv*5%z-]ycRZ\UDn.ޑ4^A2x;:A6 DI.T6ؙ6w#&ς;xÖnCC1 WzY.X+-;=+ӫB[Wdv_FD]j:K6Y7wQZ\լ̝1p?Ʉ^۹2o(P^/KIIԫEʣnx?˷-0sB ˦ 5G e1bPo{um>Ӆ ^ѬkTX~p#`F xn*0Cx-&JYNl=ŃjH{w.QVŤ7AcJ)$>jJw>`NCLG6.:~{r+Z* |=;ɢe-hNoV)%~ Jkd1xј8O C=US3ikѫfyY:}nV߻wOUiR^Ӽ=7ɮm:޼ySFb>2clD)+*d_n]gf:E=;j%د2K) 8 #SH1uwO(%]+JIF-ݾW1+loOOo~MSj_$\HwdDQm>|#WQMɕ|RJ+2AykK'# U.}gmQΜ92A)trvrwseY|}WXC?e|F5R O?+~y%q%-F0GUugXX/^>7'kGp\wTL@%.-$M@TO.ѠŒ%Kt\^HkP{,_Eԏ8Ĕk+v31gl^fTiϰ/T{y 懘RcXL r}S1>_ٲmlURNq[elM=fllcJg:2ՀR/2۽Wx[Ș oܸhnH)zgS sLGG )5+j}5mzl!a*ߦrD)/eI&WaR,Tv&) },H8x w1#"?~a/P +xk3p RDG9Ju8*zǞ 0 (Zm% J)M <6%vZv:)n(zdOiQ Bl==enx?xE/ڴ%U 8 *JwDn([UĂlU5(+kRSSyl=雸4S̀C-?㏘\Χ10\FM{j~[TI;M*&QAMo6k!#}v BZTq=y+F$uWeT*_2ĈT2XQgF%w^œKT[wVCD:yV)'}2;2l%6'(ny\BUڱ@/4O0 P]FRS|- ctKvJa˨!!~)}Ek*y)Rӳ*dps|]yID朼|-[)#@DDa)tR5QJM, 9B)1mm%RQ.f0RK3;~Qү>K7fz}%LGadDD):K92 QJF5HtxtsδsOj6u ,(gչ~H [W IRpQJM;uVeP /k}Wo̻`WK|)(bS Q$Zy3Ћ(A(–6>m?sRެrpNbρƔ€Ф;0Xޭ [8şBJA)PNj+BEK,yFz5- 0gnorq!\NJVr+y)F_ BP.-1cߑE*Wl~GTVRU6@(M"xzqrQ*Ḵ[CPj~a3WS as#v. ;+zTSyJNJO+U*,/'J64@JJJæc2R*2Ko&E RfR؏jN)?QBM?)i%UvCrR&xO`.\;'Nջg~JPjU]Cbq(5~g__zm ]C_ O4v_)v{v]j) (8&9tRwn[(堀t:\/h(D})"~ &e^'mAhvRÈߤlָ5&) GMqߗuTXN{R!HPUמ㔚cfl{ RUN37GW0? d2 )/ <8~zobX(mR̅bJa݅rUh-JQ +e? QJrTu)RD){ s4&LO?YHUR"nfRȉ3ӏRB(KL|D +DrQí#dDERyiEEE3gL=aW_?e*NJ.6 tJ77!aj*x^'6w_ӕRRYsQ#Jٺ QJQXTۮuNm/99[GV: ئqs5RѼoYm&6oL&,(%5ڬx^ jйls <snKC'$awў}׎8C)I_rVYCD)g>cڤn|;{^IuWQ8RjVRx gd RW'_kǏݗj=r~9Jg V`@WVt7z);(EYǽ{.aR)C>m5q\*QJ`K7|J—6QK=)V:PXO|,`J*< !DnX(e\V#$\/b-3tkN_v;f,>8#ܹ. ?ga?yOc*F?HgWJ6hȰ7~R ]]VV&KgcHe MUb76'B~:۝Y?\p/!ݼywp9~nC(D)RbJaH ›[ S0 ߈cOH1%o5haR+X]EƔڐ`wJ]JcGcv*C8Q_Ӧ{@QWdU]ꮉ~ Y#Q5ZXX蠆F{8GE|_x,ebm7$~K\z!Ÿ\-Sjz!qƔCNMvG "r. |>;r(ŅKqwN?}=~"gLxR}Sh?4iV>8\Ti[ $#?RB GK+8^,/^R3K)! .$)h-7oRc9R~dl0Bz4¯YB2!dzR?(%ϛ^\3,u\wW,HJLGN<<̄=8ʀR6k\o׮]sދ3eKGgw~ ?p2kQG NÈ_Q=W~}3@)q'LSlO~:Kxx.^{@}?*c*3x%R'4I/ei})PO&4h{KBV+(D\ΗkRGY#u3JpP]`&U墎Se+|}}g okR/nz|9K?],ު$Ji/땠bUIJ_z$3)H_ʸd/%WYKð6RGL5ʐeOtF)o9K˃ ,fRI^˔U%נuӗ乾&)ώ5 ^tɸ OƗ?/ͥ4AVE¨楈Rع(,tݤ >OebܗJz|q㋛Rf}~\#~Ȕg,xO 7]e?*,K-yo(hoaC)Ä`p.7y3 8hR2w/e˗[V^a^j'--K[8ܼTFC2cOX]/%DL=0`9J%a_yC)jЗ9}Շ n.;`&Uf!I*--[iJxxfó"?O5+6ŋ~Nmj,})RXkj<3+Z^kRث? q{¦J$,$sǏɷ)+OttlZاcZO*;jNxpTm[7?uMw!N#~¸trU/A8O8QS]k4wB),uW~a_6Pju7n]5N]&tm6ThF J誙@)$64d7ŞzPd _{½saÆRlCJaU@!,KDO,3D$6!,{_!>#BCY`LgvC q9JE8ۧz#~BesGEU3]:DZ ]ɔoI Wu+xooޮt҈[/-N? ZE)aďǕЗ2s4؞x|HieZY}=Zg4/eN`!͙s7gDw&1e˖9~S^`9 /67> )|?X޹C#~[u]qJ%zC=]URxkkR[]&ҷm)Rq]7r@ ŅlHg%A?48 RcwTTHǠ{fn^ fVRׅmMn8~>sEnDBe< )F})fD)a,72e_YYɎ&Wxru,jqJ' ~F7%6oNWǯP~NX%RKOOu!d=QJz(%Օ2IKKsk7_ڧy[?9ա/!|n>{t{oݺuxy Y(e0'xOPbJDk MFG?P!]B {[Yystt4؅g'*A ށNQe/W9 )X4})ӪѼPi޹wn}JRկ !GJql]vJq( 9-á^)5eUJ).*l{ 15tˮ| Lǜy R[K]ÅԨ7j5gV}FMٔ2/qQy)NF2K jo9UNƛ٩l}}کx~qxjBJg&K_꽱/H!l,SJI\KR˯:oQԗȋ[bgoMm-o>~9>yOI "J^|-5`% })`%3P Vvmu7gMڿפC;b?N]'QD)lfTt [;%,..!Jst>}R&}:[R7eEuɖ)XY!:D)W9KfZ(Ǟ(++)&- ۔$ZEwko+Z9wʼec'M%Ote.ə06&sgT!dʹf:R GˤS 7\L-ɩ Ժl2 Dh;Bfy U8Af,0k@=D)U%1_N2bIVö]TL1bїzrXR~9 1[XTœ\B:2 DTJ8~V:?x^;mXIDKZk(# |>x؀)ƞc.=ѧ(Ѡƣe)m:زǑm+NJ`d JYl6iډfCQʑ&ŌԅhMMGȂo7]!=B$ia+R|=naAl}) r.XThd{dlu/P*;;u3ٹ\0+l[R/d~du8Vq%٢6ڌKGW_(zSYBvd˹ly` Pj)MPjtLqv]_Na#ynr#~[/= q 8}Yv#C.XWأGy8:PR#MУW"J9^eA}Z!Z`##F ?4kz  |u!1;QGЌ",f/[* Jco@)D}zi{*22#\ 뽸zc'}4yk˗[M4пm4#a7 ա@&&q]bJ\zY(%U!oNvAH0/5esIv]w],R>;}C `V)Ԏ]{do&(x!5)6 ]8O}ce6m${*:ڲ=;dmt`n(%R9Naѫwѫ1gՎp`ʱlywM ;+_E C1A)|3OF1HwH-µ[盌/ u(*|re{dlֳjz?ZOhӱbw+Zwyb6bFl ;cV)z^JTiJJWcL!ZY XĉJԮryRak"7(j/[v(%ֳ:4E6R)P}:_B/ "Q&{"hϭ|&R1s $4 Ba_Ӳ>yL^>~V@zQXLՇlV{WD)Z:R1 nGե@(هUp:݂$Cio\cUJmteHBB(37k{ad(0|MQnXx1zQzDFN!JW-XJgZTfWA^pOWh_lDJw`&mMf!E ; N<`R(hO>jҩV(SsssVACW8lR`H+ nd@BPlRIO%HU=V`ZfMDT}w/gڷ^>HX:l&.ڹ,,ԏL 2KHVS ?~_|EFMޮtب@5!]| 2J !x, lU\fEְg,PG6{_fj H`3.c)[TJU0~~~J vԃ tRҵ?%<{_ٟ*gIa#Uh{ʵ1=&b |L(L/a6|D޽ }U"v\YЌ_R̹N\ъTERjT!di=ո):O`we ,{Q3i^CD{zݪˇseOǔ+[}zŝp9bn񚙖Ll@JE'epA餜NqRW$a;N%" zWr|罞K܇^2~gŤl&}YܦKol}ܲĘ 瘃RwRIY+(%W|tQJJ ?0W{GeED`'mx[d}<`pժ}AM k/E--fؼdEov3kF'2HܨV,D)mݙ+@ͳL`KnTCChd+q䦂֡\ Ew bZA,x3Ӡ|e1%7=g%vۨG]Q}0+$3Py&Ek@T{̺<1QQ֚Z1Zv^Z}OōadO<'e"N{܅פ;x]?pz' 0^'_5߳DI!s7 oۅѓf*:|I4l.˹^6ZD)$RJU\Wbv*|9~čO^qai >˄yf-go zWB>{OB$/⫈S6ָTU Xng֮ƕ}%лRy /}+s*;${*^ځQ O)VY@\(tE)/J$|2@IzPY;xEEE; 'tqCG[oywlhx&#Jɫ'i4H)'& iWsRe\KulbK-`8i̝pוǙҶp녉Z3oJpITLoǘ}(; NVK-f!Һ 9yN(*6)% 9$w-cguvhzmj^G;9RϝώZL]{oˣ'7zI'JI ز# p=Q^+0`mp\DfQ_z4,";nMSRKJjW}Q'I?^b)&2e)Sù}@$^`jX@#7}O9(&_tw1^'8c7/H^h}Us{ O"So6D)Z eE4E)- dL\3a,'|AY1ID9K@BDBj2+`Bñ)FATuPaU(e|ٟeQ| 6)cbEQ8zF|2dVu`զkLeK?$z뾠r;Q¤8D)!RVufDs }9Z8~*VGo.NP*SڒFnv5'KݖD*@0#u2]ϐ'7ssrf`Ej{F<wݐbڥ%L^TTeOU7kOD)MP* Q7wKhy˓%g?d({2ŋ)i~~C##&Ӵ+>K:VhT .:uɓ'SLhOi) )@2 Har , 0afkEHxX􆈭 *, mpJS8@_H+A;ą CVNn C8VٞK&no!R*GPC)1;lBƈBh նacw"\.N*@*%L݃ںQJ[AQTSJ$a8>NfC)*LdRZsTn;5ьD62&}IkI&]uQ6A}ӉR/*C  #(bHMVQ!Q4ϓR7*] $(e2wߙ6%D\k.qQ%nBG) dsO5RT+*| DIk.(傕JdN >LfBfIYJgO81D:(tRPt5(;Noegn6Kt[MGG]w? }*tWytjzӟ?jJD)ťQA) 'ub9#7 32(݃QzJk}"vTN"JUwKdi=m>$`I2 [f]6V-[uӗR^dOC]RP ltbk*D;rn. * %7]XmD)!݁dRLxp 6,Séoe~Q<(Fa0*"O? 3/`L*D)Z1cRXf?v7ǶlO*B $paR& 4!AqJr9v>Pv ] +.ݛD)ۚa 9% SPⱾ.i%!VguȞ(zRʢQJ'0H(8`R(% d32YKx|xPau=QJgFuDT-صRە^X]C s ! xXro$2Mb.{QenXVVԾsb},@EV2 UJܓ8G'QJcK\CzT%yN}@$A1FB&ߌ d49j'deR4'ADi\D>Rw[O@Wv9 \z^T(eER;?gY#t Շla&z/S]ZKW/QJm瑐W5YJ*6 Ji(@})+2cJW#Vʱקt(-+@rPdV(eIPg[*Wܑ¸E)`A5*QReڇX>Rt JQ B VZkRNqw}*VS(ent. Jq,IzE\ &3\bPR(:Qʬ| ٩챵 znBԾ#eGgW RU.+ J9!d3楂w[> J飞(@2!eW(l9}f!v배 q%+D_#00kYY4X)T$ J=W%mhy+%b Q)4O j"Ҕ1Fר;M#| mɥ) +**8D)' OuD?<"_a͸=cj*}yT$WQQ2 rX: ެݠúO{t)/t»~_- sƣk>][eRGG mUJ eruFz^fz/Htb6" o`€ayy hRU69RAsJRx=z6+RmبUAIQ>ySo7kN]fR.XV(\c^AJF:|rD@eˮZ1*$ N?T:u?SͼvWV轹0 Q  sJ)(\ҏC8|Y_zO-q9Ŧ'z.p1@%sRk13J(\ו楊ۿӵG&l-aZ0 u8]A}RWtGf J=n\Zu: kP <`oncIe?֥uRNB @)f:%U'"P*ª^RؿCwf}aRj :P@vJ=ci(JAŔxj ZsX*a }na\TQ!G+|V0@SraR:,* Kgw[æ5P!ߊϺSJ,bۋYa,΁m][W#( 8C;ʕ{}WZ˴s/K(J2RQngMԾQaaoUSi*lF--˝xPfRT29aQgl μuO J9,!e:f{PZ }&H&?h!pC]'m,ZQVד8ΑULEX.}Gd3Gf?tX#ʛ+QJDœSY(>>C)JPIX+/?,Q*L3[wl,2TqrB[YdRvmuyfs } xb5hD)Guz֋?t4\1 chG^ӼLCh Zud'Y-CQMR|6iKifnG/0n5mkz64lP!QAJU"Cɥ?΁1SPr߉CCp_udffyc^e$ Vbk4i(2S3,"lCL@.:2D% Ji:0*xw"Jyə;0L);י]ӔB7˹^ZI,BY B)<֠-`n/tuŋ[STRKwJƿH@Z6/R'gqwMk.\1K2 H1u\a2KVg]0쿯KʈKؠNQ]^MԳ{ǚT.(5n\Z;&(ukX'F0F|xx (b jJԬ\iai% G͗o\uYX5PƉ_(*чHxԼמAQ֞op_ awʹKz'Ov?w|1ӀA)l4F+2Dx Zs-|ydWJ{DM](\*`+~#;Z!6JdZ]ag;"bЉKzԽvS . 3\R3sXޞ߆P*<07v,ZEԆܼ|U/FrtiR~Q7w}J-whm1WiIڏJ:^BwJ+H'avS l3 uRcSTʹ a})NTѯH?~/6OMxTMeMGUNL Hhzc(u`;Y]6J1wU(54AJ.vV3V;9FiX"2 (a43׃w,-bTlSTT~6rT@:|}}JO+\q m~YwʉKz: 𚶟9NM{u=%AE v5TY݆پwoϖEī(IWt*Q-SՎpRN\ۮSWe/˿v NrHdԔ쵚 "rJ<?@ug 7^8;|e;O݋[A?ޘtaPR?ru ׺Px7 g-E7k7H) 4 (üMRϭ1^3 `0P =vڣKRSmPRbN)Qp9kI%GN9,*-LR ,Džm)P*Kwhj3QJ5BW@eJ?h↫RppbMZ]eۯoV5.W_jR67@(2KR9,rkoHљ TԃJJx|r!PrVˀ?^~ /h(y.TO<MR !- ݰSLW+F?~X#J 2]B+ 8R?QĎ"Jݶ|ߢuvߐiRAy =.oB_jm|9B((ew#(u2d]RpjPmM0)uC@X(@U$T-%bJZҕERZa_C 8RWZ#\R18ˁ˟?i^n7oL06;;[Լ۠b(>ᅎxv MM/5Dnq| (u٠ BeELSkxxzcQڹ zuҧ깽lnzfǓMmZ5UU_PRCL<; 'pP)(|}5jγx `֓ekE+2זΧԙg=*o!Pj=p{Fykvhݼywڷqcom3fzwJц{nO|#RaO 7ƦԖD6,E]RP 8Rx%R~gn4/<~g1*AsΘR^_ ѫCߎkɝ%dG6,wc[?cx[*纕 Y,PVlbqbPl$J4B)؂Y&)]E#JYTY'QK~u*#J >~N:Rh(_yĦSRI?_I}|%Օ(eH{B zzZ5,K-HTĦ,ہ(%0%wJP#~'9JORSn 8Aϻs, Ð /|Y8,,lRp$ L5K۟Ds.^/ ~Q艮Z )>CTlVqRIiZQJ[6QxGyf?0Tex4p"_r{_mq=mv{SRR77G) TG֣hn^UǏOKKnRI;z_Z~ 0._nw<(%PRXpYD0/n.r2oRU\wŘ ĕ#~X[+)uzóVvz߹ԯ_{/v$P T$ bOPA R#6RUKYTSSD)MUp*o~`U0gǯr | &_ZV '9:/%TWR ۩]FOt8+q D' Kޡ}G?TgL).VL!I5JIS {3N?w(vCŋe|rR2IYi]E)e^JX` '\qݵɋp,?'=Ѥ^^^~~~e[tU/e ?8~QԨzIKYTB9WM}<*IJݢV$V-GH_ݽ¥֭Y%}ڶnt 68_ Ql\ {j_*nŭn3Orӹ:S@s:$shh1tjS![OjTw`` 0`{׾I/WmD;6)j۸Ǭՙ6ދ3QNIMQѹ%RLLtwrfK S; ׾e˖:?(_JŲ}֎lT ysR+ !bRVZW@C%vȢq\&kV4}˺G}uɲ-%UR79/GL]%QKL ,x{QM2 R2IYi]P aU5٫o(櫋&t)&Ė] xLӄEO)Ǯ3!B'ޟsO_aT>W:LCvY?q$6m?f9ylA6 [Ͼ+`ٲBΫ-Ҫ,$ ;ɰRubw(+>KKضl;"![(IJPr?sT=+TJstN ]X+VddȼDT~v@ J_Xޗku^jڬoQ_J/B*pN~<"_J#~m,)))f\vJ57J",/Ǟ?jpV!̏"vBOp+X1l!m>|͙9l6e?{鍚1$Rj"}+W=yDʥy)|t(u|Ń 'J9Ѿ,t.' 7]Y:j3,S<htjV BT0K۰4XNe{O$x_iy)A(eoH N) AT ޠҐF8m|UHX/hfo *M7h/5+:/2}2xD#~2IYi]5)Hڲ;DعC2\ (ea48;5~kݞJp92/լL锚(|\˔8~4Kʤ* Qʾ #Abnɔ\G S RgYTSvﱯ"LE})Ť:wyF}){!ߝVf^PJ#fX.S:g\;[X/eOsH^*--nCoѷv{;4k|iDWpہ|áas e@IΗ8w(s)WFy)7mIqxMZwiC'zu !/t],Z>DD})ŤtJN*C"OҽC `܎M(u(CMDAU K ;]G-! AiRKygWkuͮb(5d=~J!r3qܯF/*)`6QJARaR(u(~ʈ8*IUXѤ`R(>!p{]r_j f-̿8laor4{ՓrӴRJU/-Šl( 2gzoJj,ƞ߾GW*l񻊬R*68}7y"QJ^=)7M+`~Uf|ir}0s͟4쉷ǽtjsQ6a15ͻ01у3PJISRJ\y-&R5.JM;d^O[ 'QJUaW9ֲ1ᄯ(/en $s_}7޹ceep<17@E6]clԄ PJI)RSRnJѥM"?o /pR/J[Mbi_nӷ :ƽugh{y,-e6Qj[cfR*Ƚx+RKJjWG(TG>X% 7h2Ч6adnmQn "QvyL{.R')B-{N:%{]d2ԮRwP-L]} FҖ%ufl(숾#lf<Rg=zITv5Eh)pRAtb(B xEP*pi 6K,((`?Oj{xÈٓo('!&&";/)`zwq<6J]vL &rRv7Z:Q IۻYRkΟ9S$+͚e+LFsQ6n]J׭ }>7IsҪހm;ITԗRHXV C) jC W3%T90ޱ4M }2^coppMǮ##.lƶ焥B L58[xP*B*(ŗ)I!8+1YXm g r(\ƏPRO" X~J{z}4n##n"(:jfN{N:#B vR )[*`#6^21>(mzCtH&+^_B_grXm):'i>Gʶ]e &N1R#E()+) R S\==ΑZCqjG:J ?1db)ŧBr!Up1u8evӔ)n@-*JM K6_b߮N^|I7[͑4ztD_MYl-Ԗ᳴wP ssP@x,SJ(Al~i,:o0'VgIǭN ٖy|9i'wlw;39ݼ2; )W=vԊE}$Rjϵ⡆UI@rD=:Wg XeX[ls;϶'~La_®}rmyJIKG5:G X lkwxu^=eKXp dB>~>t233 ΟfJ;  >Vt9bKbvN >NYz4aOJ@KIO7:K X%ppIV9U! z֜LG]./WclN.5-n{w髹a1'+3G } 4.FxQʚBwR,.d ݫѭ8TJSJQe9a gŠ*f D_ؘw"?;s<𼛿<6YMɩ*'QJerTyswy_ 2 xN)WյG`H/O^֚SZt8%\@V "JbBWYsSZ5Rq~O0'y)}ߧ<}$,M>)uѮŻp״|}VI :fm*JLڬSQJHIPjߊنf,˟RV8P*o,k*W*Gv,ڕ7k>.:TMY>ĦkN))cO>ykE)uOd ؑ;nwF- vyh|*JHפq3/n{+Bf䀍6Y~cq[ykc}=?pbv[{#ݻ'HIRBUSc +{Gzjpr׃ODf<WkZ̖ n.I1h>^gFKGvL^<Аa'68.rG6w6(]9"s8VD)/;BYۑkc8],{>@њC/ ;q%d/3š#r.`sE> < =m`^Aɰo7``i##m+vlM̆;w3)2QJGjI\7Y; +tzDa cq糵飧:fC2}߷_-:`K#aa[ oO>[ͼ\ohM,&Jڮ(~mnbjrC[c(B/ҍF Kz E!!xw^gNOb2rCÏ+ҚzD)G>n͝(tR]^ӣB*t5-ں|*8\PV(eU"JC#eUv(eXe`讎0( @*n!R%|*Sȶ{TxU'LA>[5E@݃ؖN# 5k R5&s 6gB YdtY5)//*5i ol49nIEeQ;$XjǮ=20QJͶGRXt0ߑr(%I}##,N -! }sX-qFGl͍[x4ӭWxlk֧aPqo>.H.*ˆG~qƗQ,n )Rh_qN}) Q>uagbu-q,c`a[[!CÆK.] a+aINV"JYH nKn>\t #EQZXD2+OQg7~L$aN8!/^oP("iQk+Sr*fs R|2@IzI*X >ؒUYxgjN$4mWNBr52qȘ1ei8gC}Ͱ(QS%oG$/6TI>9 )/@PeX*Asc}wsF|Nau^3]LWzZy%Wd_ cRj6BUKw QJӉR:8+Ŷ0od($^ˤ;Cis}F&p# q]:]j"C@)eamϘ^V]- |*'xKc.*g}*vc[ߐzJR`3ϣGPim]26T(Em HOl# .1QʺtK!;q)- ѩz)*@r՚}wt r JI~Q;eNb)s}-a@҇PT _ 6>'JIPMm%%5Qqs :B2~_(NM֐v*2ehXiS{M.PVHvWjb唰# !nihGnnu {"J-RKJʤ|%j-nD)4n67"},Y^"QdvntڱLRy.eOS>R(R҇ ncmؽL?YdmMjW߬YN_5{(U5_M9_ D:Lf6?Q^^L İE6,)mM|i7JJJ\R:s7ERխbU)DRr ٲǝaÝ,B /ILv\mRXzM7i"jƕ.QJi^HǶUncx5%J-| $9u˲X59ܼRRRqkoSg*/WUoμ.?wErnv@QERrkk37lVS 6l]Lej5N¬"JV@63eRr(CҺS'K/uIβ|two0ͥ3rmފ^^!55Y*\(Ȯ~ g57bX(%s7`YCd¼^Q,$-lД ɟ4bSvwZa"-@RG Njh\9Hl|%|CpuǮc1%uw XJ{_"љX>&w/gIGr.Ka%)D?iLHewX2/i:|!Nn/MQ*}%(HRV$P [wc媰f{._ϴo}gi۩kthJyR(e]#;RQrsxLoՊ=k'h ڳW 1o7lvOgBYbSnQJfTBCc]n0Ӵ۬eLPV9;QJbWXCznMn05u\[y`.g߬GukG8.ʭӬMleMRLZWvg[X(b ]߷FKߌQ>aGY1Y1ȌҺMZ={VC*K+ QJNU9nn:k0M5CI.{27a=h~]+lcŪ0xWBLELw&Ԓs]Qm>oMF CqDBAR1ܷ5co{)aՔjؽ7u 9>Jg:ÈR7u~ӧZZbRnng}Y4׸9Ug]/TEQZZڰrs 9B`363pW#F)QJ>-])'(;OuBRZ ~cYk7@TI~>iC!-P xcD)tl}-os½Ԩ]_N\0u4OQ4@s,S* :h@P^ڛ5(gC[%ϻ,mV%(%A$WΝ!I)o7`[̮B5X֝Ր<NUJO>}D3.+Qgҕ2%--H ['JiΘ{߻،C:2M)R3*nvZ.D))*U4\oFBzM1JGWǹs#fff mTL1ՀM/lٶ{ZKR0s(^ bjML^V:hmxtαNs,.Ja뷘;wri\=M҉v5lnay/ʉ{M#ժnjnox[RT|1K8;H)m;`NNŖaR6KR'`o _ml6Ul=ζt4ϥ_sl(umT7\4<דRZmٲeֵ+E)lܸ1ʂnR1Q9Z^HT@-t&{*u`o:ݦgSjESn=ݵܝRgΜ !;vCflcڍ=<)sZ͎(vX ?Q r1vWQPj%KB,*z](QQQZwuRi-\k\=CL^0?ͺHJJ(h_^J^C9^NJa)!!pܹsV/C dT?y0߿o[gB܉RNFP 1TYKzt(;Kضll3J8 K;+VX!P Cy}v $(NP '8_V:s &1AW^Qv\cekԤlv&LxS*EmԞ={fD\ ]Ҡi޽J0\$F;WՃ(圚Et TZZ9y5s Z!Je^c;]71d)G#{miiF㝸o>u)0;|r0q]~ BEr3tl0#,,muao(KA{fyAR ?xo ӄ0, {{p`UD)7tt.'<>.SqJ`Y7Y- SRcwpSS4*tݼTJab ?]lP 22?#m3೏eTjR ɻb*Sİ.u۰ac+V(uI JC9‡"2;nrߊw@_SrİR-3Ws`D[mn]r-F|VSR@TVpW!ʔ,qJ< (JU `doGZ^%r#Ji%ܩMV͛'F/׹S[Y16t:t`@2)58ZnRXJ&l~*%S}1sZ J9WCva;9~8CκZ5u;]sV(u;f#?p-)5n/ bauR >xip&M;w|Sffs0)"jݬNɕG?8oxJ]97_qa;R >;vɔšzX(6MG8}y?"LD)ItG[9R<8"G *͞4}G} Gsދ3KrL2{&Oy)!qOt޸qme?4N8."߆CXE)Qʹ.~2TɐkNSk_e@Aj+Z^;R°M'p:Sxg})|#x! 6+Pj5Ν’jڡiJ\kxmʈ;Gܞ6yuveu=wU|Zړ"Kס᭽)lóяc{x62T7^[뵉[Ov^+fvŇ}aÆ]xB4t>6m?f9yln-g0lY![~e+XqzdkN3,,-f,}[lѡC{|OpOh%63(%(qN;MJ99P3:}tC1ԋb[ kkS Jlm3꧇k8ǥb ='|AbnβS I+QdT)w椔&fưv>p-=UZst/ )!^v)C*PNKeK̔6 *ȑ#J Z VR1պ7vЈulU{QmyY;"J a*ݻw׍e\I;Y("Sْ.l9W̹r;"Nէ8U"x@0[t}1<&Ğ>)K .X!zWcO$oyַv֔>Hz=S\$Ԏ pA@'VU){|3񃛟 &xZ"o99 3@3)גխݞ2a7nCmQXBnK2lQJRnZ!b84ArSqR8gtg#})Tf)#={ՠ-ŽWǏ˦~KlKe|FD)6SAv1]Ĕ2 ?{YHikЪ|Ka KkvRz6& [ii_14k6Ib3`xP>lơA w[4SEx H8?9uvvvwzAbna Űc^o7v{G),JAgyYIiDO[lX< 39!Ӳ=D)\r఩&vb%(%}:3m=6hl򞘑Uj匔;RX*ޗ9}n]4n6BX{'Q")KjcZnG$JKKK%S6!YKY+n,3Alu̮! Afk%;tvj#ůrCvm]U¤o׬=GW8ƅGA}94[ t5K҇1owF.BէO%oi}:0xR{dJ'P*4dո/ CYJocBuDme&{g'/ep'g[MLh᧘f p-]ȭ'N>-B{BVmJimFR'90Svmϴ|uzɎyY##!U"YRRO0jplo-d(=ϹV׬ݴ2s1CNp иVvԳ_ේ5hoJFӧ,᝜:{c[I/'u9Jޝ"J4}loz+DJIf-Em_arlޡ3{]fð,ڞ xS<>j_ +4w7GwִAEY(J~9KT_HAeϴ7g\U7bU< (Tm1/342SU)Go r7o,;Ƴ~ݚV?ViveD2 x쒓N 5)]1ݙR3Jkm`+V\tID[N\T(?C{jCFs=/Ud#J!<4觋W _܃P~G򣺵#\Yu6m<,Im.?w-'P 4͚?eB%;'CQkfGRZ:RƵ/į%-UE[ 4lvrB1V4ףBbbT6_!&TK/_6Է-W>"F{߳R&I zya97oެߴ71SC/I^ ϲ5ke<޳gAիAʐ}5g0%4n@Rk¡(eE<vFr[p0kԼ'L;fX;w~v^0&&䘼:͝/~ڵþDE-.ܭm{YjF24"Ut*I>Xxž\vyDEEE)U}^N,3Zvp jL)]7NQ\:tUZ2r$Q3~wL{rpчlU>.P`<&{~S ![ԃp,@+]~f#nnh˺(q@)s Rr'SJTъWX҉<@1$P uj!LE%SAAAM9*`ucCq?~xPO>gj7"0'j&=M9WAKXHqSh&/ܫt4 >R"pS˦ߣۻmD)ˏTn`D ױL)qf Q!;k6mծA3rmRfyUYwВkÆ Zݱ lxx8ևX(RodN*;h JOyy ϳ JYDdmp&8R>iҤuii66W߬Qq%Ѕ5T-X( 㣗fJ +; R<7|[oRV_Ӽ+8.|> \߲WOx> erI G>3gHGOQN.RAw;VD))љ3g;RSPR6Ax &tѴ}dNfۗŭǫ5n, |G-8M'? \mD RADaזR'QU !JI|CY%3P@iJiUKBaÆ5k?V];~?(쎊 Y>Qİ_vBa|W/c[/(? w5QJ]PQnsʰ}?PkkRV>O;EM$R yZ݌J|]m*BHthK'NtwwGzڵ[umw<? l^S"|sVb V7#ԥ[#{s5eX H)'L)ksdt& stR%;A J^=^/]zES?p1G:pxCQ;HY.lynFJaЖ4¼7< IՄLn|' 8ҪtC!J١0qX0\w_;N!Vʕ+@TjjR!:q@")7e_b]m۶ZJ'J٧*Z2ȯ "ݻw br(ER-?s;vTRa6e)_8=ӂW:Qj7¸ˆ_e/j唟l +' _usHjog<_ D~> /eRaV-ǹm(H!~pHut:)z ȭ@MT<QԗJ6ބ& })JKZʑZq\bj PasHݻs0JJ. եԳ=@0g}))5&_x Ď΍O'mreHP e=M'\M E`]rd ޫkK]Ny6A9*g_ K5M3$Frr.=V /Oƈ_zհ3BT9})=ٻu떼9SnUSWb'\detuRhg/az7IODe?'ftܩ:RR(%{xus;ʲeG)ti&yR+Ӡ[Ǔ{_(םrZ{eȷ|{#D)y!}TXPqe[p1J;p5RhXWZJ!,O;HCӮ] e1SE~9  .Bc rR e 7&O*33&z!z;=%h#O)Q/+RZ)Q.@) CG"aORS:rR,*`g夔{ؾ ?(Rlʙ(e\%/GxTxPcccUX550'` e\ߏݣH]"<&^~}Z5o FR.*^mxt{j ЅP@BS?p?Çqv"?A%;!!Ləu7w<!{;a_˃ChŏWxb!=q&sPp woRMxQOapxر.`*##yuǎSJ?{o8J)JG,m=h{=uA;Yjz-UJ?ap@ ϶)t# hR9aGݰ0N/8巗"5Heg_2dqD)`ú}Z J9q\<=y}͚5;w ^tTAĔ_NTM0v}-)%)R+BYJ\p,P?nɔ EЗZ<1ۙ*]hSR_JerM ˥8ۨ~#Ǚ[@vKːKq N^U8M#}ԗ)%)R+BqJ(ܖ]S!n=苁 G)%)R+B J41p  z*7RԗʎU4Uo>:I(%)D)隫D)x7oTJ!NLkڠF6ZD)QR P)^O6?;8ZkdxL*% QJQ ^-=1ƾ9o*B\R [`U()DRWR(Ӫ|ݼ Cv6ZD)QR *PӏN{#z:1%QʉӥI J$$PR;5"_]hmxL*% QJjS %쟡 K ԬI}-3YD)$W(%]s'Prn'#\I0jJD H'*@.(͙5c{{$jM V0QʪDpD);R–'ieS xkhۺ#""KD)MU0P(%I8R[ο~9c]4b(LzoN6M[`U()DRw2PPehss±zt{W[`U()DRw>ް^C1v,^V+(eU"J@ 8QtO)/kxL*% QJ 8,h V+(eU"J@ 8QtB)$_Gyyt(zRD)-AC^hJiUU()DR'JIJO)Rz-*kS(%ΉRҵSJjZ5(Ġ?cOjha]lQK?iR+*iR %Pm/BRHUt(ڢVܴDK?V!lQ-j'-QJ?uE%B X>s(OQ5J >[-w@E-JK A?#J p%j@ +`rЏ,4s(Jw pQ%-7AE-JK  TmZQJ @e L*`0G} sDrzră~4ܧ-iH|&|v)K&SRR g#KD)IGpuJ98νv@)|;7Y(uUVɈ:Q(rnTD S# ~4gUFײnݺjR 8؀ݹ%[P"OUzb\\uj* V>rVZNYH̿ϝ;//^,{ݠ]vW 6"l>xozuL0'!("*|wJ|`􏿨qBN|X1*($$MWĤ)` Yɓ'Ajjs >p׮0ǿѻ***w,oL) %_R#g_H\LYᖁ.*sy 3r~PʹUWXa߹t)@ hOn߾ J]xQ &o[ ¿^0́*`^A \ 2G&<-2 K5%\H_qDq&@X+)W)[v}Y)Kչ½>} J۷[UHUxoΑ ^H X/OV%|((*?AFsmBm=ғ ОR~ֱ rqk~HѾdr/%w:yD~F%kkR嶞HIRК(g^f{g}A?ea.R[+ }s-KY癌G9-H?ACIo\ f0/e) Hm*R(%/qsy`uM9u'Dr< 4p&VWp۞`d/\TK)IRКdYk|{0  ***t}TxR uW!Μ9ۍ7䕆(%Vs[lYXXd U,5:Oӝy'8JJJ-^2;((H MH7f9Zk(PZZ SIa}FL,vꌅ%/mlɖϕΖf6q`n 0|NG#z-ZuCΟ Up*@ FaÆvt: egg#O5kO€]Br֟c Y6^, tm.a[k,:K,6gg\2ʳ`|<)]ymZӃk20rA~u5tpP*2*Mu')0.n㔅!_{tٶNŜ,,;9(J)_y-0kMgG/IjfacDϕΐRÛntU^֘UUPiq{%],#l1(bǙ(""*K(Ci&z%Qv@D̡TT5%dQ-4!Kn )P5MٓW\0 /}Q*+yar$\lcR^@*G"UV𬿿?<_h)E^1Sv3 [Ͻ]RlkӃ2veaRhv!WM:CI.(RVIp}E.osW<rب%I[4U4ӛuG2NIRM*Sxx8$)@ ؤ@Tg0X7ۤ#ǎۤ[D ӜU>903Z)`pze{I)܍utv[ŷ#%Jmڴ ھ}) ).F0V)t ʖpI>˳^URExE[nK*TϚ9l@$rlQ4@-D)~fiP0IBׯcp /Ǥ$z9:FkuQ[lqV躤~HLLW3QJxF5khZR 78mݺ‹+ޒK V\ >v{"V[n_/ERڽߧO.=R|Dڵk޺uKUkjj*DfQU#w)е{ "JP{ͪRm<|0!!*=_b$}TpXUp `GV/5HԲ#G^]C#~B_jR؉86NJ 7ާ}:dT"D^^jɡRQo;.YϖAN4Է}ABkN]]:Vɓ%m>*T*P4+;t{~^>6XfJi&T)@ @Rܼ>ɘ@ዾk\;#BΟ}<: HR@+ )Ԓm=2U8~^aM:~+,`?GJӤr)`З;ojt|3?wvKFƇ_/jѥߐ|P(=)@ hNOgfgݲg_/쿧R_4la&AuRkT R x,S>ll.V᧺ثwYcZh]aw[[yR8)Q$RJ1 +$ vt~G͛6K!y/4ŞeqgY|1[%g8x+lmʒ,zۜaܟs`+s"sX|J2;p\@ڻ~-8}m>^F# Hl<:R0S{jo/_1~P+JcOB8?` {-k۳j$^0l^w%(clΈRIRПR*8;Nr_>'&¨O,h; <+/;7jb@ⲴA;+mW]f`0и}Wd n}L//UDQ% HAy)aGbOW|xJOm߳ow[u1a~< %[GA?mR \Ju(xٔy٦gRןMDUK21/ştQʥ% )@ *R69$)@ hWKz)N*)@ D)=)@ hWQJJF Q(EO)@ U(En뤒)@"JS@ v J:d)@ R)]dnU/NGsA=)v[ HGpR<_!ڬ}갉Rx#m%HR@ hOJF 5 /fG4.—.?]#~Ÿ; 6⿧])3^ؽ -30߹;/ ?:|&|ˆ@)|K իJ%H*SI/ zRUR|RSJ|!;RD)K*1)@ vS iˆ|6~O^J9>GN ^R4(|ߣ킨M *ÎbJ}{ֆAIRЄvP@3KxbOtEŽUpUh@TR U(Ezm`9)@ )@"J9ԀdR U@vJBFE?*'Ӎ"H)@Z- D)Tit)?A YFI|%8 H;Rı'K! &_Mz,W%KRХSJD)QJ!a)[RМ*PJb})!AmD4r7w5Ǹ5| _Js D eOyވGY=xP7¼>/w A HR@ (M)~D K)%xOlC?RD)]E*4)@  @)ad_J㓉GL+&g0'">ӈ|R Ҕ{ϸ/enďu>#~4/צI&HR N)D!I߿0/e/%POIRԀIRp}dxxU/W |cvO{O'aKL)a;+|I>~dIRJ)8M'^+K xQ KUn (_~IR@ RoT b1},`? <sݰ:BЂg[Pkq?kڮȑ#Y}zR kҎ(64h=Kkj,^8))I~ȑ(%)@ Dž~{S_]M\|ÇYD)m  Rq:~8*>^T~󑣾Yt5k>}KrL?: tsתoRH՜^m:L6 l54[5T0RPP;vk{̌Ϫ"ڛ5~eD| (kRв?^^}f72;}4W^ObŊӧOk_GTBRPPתWu?nJxkx̩$坏G/hS@@ى(&J))kRЋeeeiiidUްI_֭&.RR=֭TNRPI/^(Cw|jۭ}⋴7pO6n3:]/ C8rt2ԗUNʌ \Ejʕ舌5G^u6ރo7jѮ{~|̉՛paċ z7_ePI bmhR qݯBF Sæ-ݱ dB n˖-gĩS|8έS--pibɾM(vR2y~]w\oxo =K޼-[ۄLuQD)K(oB@+::!e?1lhֲ (Rnau6Еu)׫ g!XljLBW NR~~>8=(eU"J@ Y0n%ذaw pg)?IB88F⊮$cR)X:8233 '\EJLR.*,)@ ULTp]R t. IENDB`PK;PKkH'OEBPS/img/endpoint_dependency_graph.gif/)GIF89ah۾(c*k  { 3<${$(sr{!!!!$Z!Qz!!))))*Z)Q**))11110c111199998k9p4 &TK-ZeUH`R;\z߿[,Ⴧ"$kG9PTP3`K:؂*'ϠU8q[ &Mt鳫Y7.z᳸ b AluuMȓ;y۷vqCt3.9SÖ*o`SbgG{|5~E0bHAX `$X=݂+آ}Qa 8c'a Z(6ڂm7_aK|lcc&, A0Ed$fI#"t#Zt+`JxftfEf0QEa˟Qgb)gfyqHbxy:&x!,*$x*Ek[`dJhl6ٲF+-WNk7Uܖm+ҷ[.-k-,K,[*(&'<$ 7\,CD,'zHFcqh1D&$,S%; AU8\@4 T_9M-Cr404.,<LmD᪆-0P;:-4L 0 Ё` h/J(|m+[ؒ# *#'o$ŢpS'H x!F(Bz℞0BL+_c1W8 K  0 ƒ;L.&Zn$"cȢE$|6aW\L  T,cD5qH1Bb#1g 8&c 4R"FG"de $F\r O)PrQ& N%V )q!r!4 Z*h<"H` CHB0D%4H҂OTgĠЄf5e [9:l$ bXh(L4әNUQB 0`W o юz { i tSPmg @*Je(vJ.tt46` qtPFL!1T!@M ԧ?%-su=P);nZO2n!{)OʅX$d5 Y7 tBMC h!L%l^ p-}4M~ fQr!"`jg `R`le2ۯޖ ] [Ѝn "˜F(\ W9 o*7%HfJ.$A+eCΛ^{~ۯx!fdmP0@XUX.Dx };L W#IK=aPbX(fSc pyK=d6MCx 8JOd!G>q\T1x:darͼ'{e2l2a e&SYu^s]PZG,, f1e;y9󥹼Jͅ>4bh: sN/S:ͫƴ4PFtUEԩ\KȒ#iY GX&<jdCFo, 7dG {PĺB6-=s{IfmZ.#6* Óq<A2zQ7T6AePHJiMk7Gȫ3\Oa\N6\$GCZ&4m$kHy#z itqfY:M/6osLְtu,h>3}Lw;sr ѽX7#R"{ ~ { [VVEm#:dh$*O<"MOϏgώڞwa/IX޻|19ֽ߼ګd?QJ+gZkכHQOzU?}~B?i#m!oCtn m1DGnTh0 `gesvwWaopO1p C&heqq?o'P'APq+d pH 7>>@ 7$P Z\ 1NPz(nBHD ` p  $ cHevxtwukrxpHx=ȇ !wgmR Y؅`x ؁7wWƠ Ơx {8 q|z&R X ΰarX Q8~x~ qQoɠ ،g~ q v q؉߸p[ ! 8z ȅ{7|ȅPLG h k i ȅx39DƸhqa ::C;;a@y2y~x /e6 Yc<3DN p(1ٔゐqTi 99>#D >shfR ~0QUH33>PdΠA1 x 1AtAAXљI[8B/$PS@CQ[ 9 \h=CA KcTiI*ɡZȝK $QpZj68JƹLLID \xm\zJʑIN4}j>\ joʞrYuP eЩJHj^1RGeR$)R\(1^+jDeTHTTᠯګpz9*%XHVj9i{W: ꩩj XڪSPXE@y ZzZ3Z)p ' ڦJ#Ѥ  y@;+[Iа#  GiѲp 09j *; aȐ-  !۟D[Z umX\ȟ S[y["ഽY p[ `[٘QK *$аѲf۔|C´I  y+mpص#aP2h´+){*}{' `%4aкHs!\@\Pk{ z »&ld ۧc6wziBk$;zQya; ;֫xel]K{;}7vl]fvmGfۿ+dl,ilg}!,c f",eöRb4?6. u& Q$25)ܽ˦P<JLO 7g<8'41XL}G,ÝDCS`5p x b~7J~l"]]>%OQ_q { 7H\";ɟq{ ,GL"U lЛe]^\ Aʔ\El ʽLeWAÜp6\1sl2˒L<DZϼCŜtY̔Ƶ8^b0PXK.L~,eG[jl9GWtL%;%>\|n хz˸(Zܾ ]giqtu)mq--f4}Y" Uae6@~鱮xk.U?\O@>;.ߺ@ .-W Ra_َޯn~ѲQ|QE Ѥw>;C@`PL& P5/M^Rp`oO)],.N0!o: 'Nl./:Rǣ( yE0H;R-'$UOT/WOM6B[L#a/d+~VX/꘮ *?Rzib_SK$yֽ c ah?0`/UcRUa*!_o0O$!jxfOh o" 8xύ./}IUȯ\ш8h$y$ɐ$}z2MD-^ĘQFi LH%KRJe"TdęSNm1Ph`pH8vUjƏC|U֑(~2̚7E'! N 4h4}V/˪ºU[ \N2Xd?}W.]xR-`H JҖГ qֵ[[n0sܹu:lhK.Zױg^}NpiW4~zj6 z/ܻ3$IأN1&ߟ .q"K *J ­* ?wP"0Dp!~BCĨ$B jF ]̩i> G-K>~ idİ5D#%2˯ <-3+D3MT2N;5b=O1;MK7$C33QG44%DQMIҙ@EMOPOOUD>TToeOUeXM?"Ykŵ l)`eV[  lZj4^GVh=ZɼŶ"oA=nYeVhUm]vyA W\~:d~k'jm当z[%Y}=Xy]m/֘eBI mxK>Y/9byF+9Ng9v]vRCɢ!UNHڢ'6ZH"y8bЮilC2G'ڛ".n̾n7ʳOdx 4Dǜ#Cd(pN] Xعկ#^wOz>r{$4>{T,B+5_5ÿӿțQ 3 ݘ$tY3 e  SA ˅rĊHx*POYX!BE@@`B&ܬ'گ{2(4糵>#[ @@ U/) ?8<@yG;4B?63/4\6?FA CxsH-<<8D\{B'[s 1=8PLQ$ðY`,;Hҋ;{ 鳈YEŸ{-(F[ER|ÎhglhF 4b h$E^$ GG#Ge\FZ,m=#G"QGbx "q'Up'$ȂLHÜYtFt}Ȃ,:G"| 虩˴K "L35iѢK#"l!2aјD"DM"L/Isḑi$ *̲L("ˬ/:N3l12!Ԟ+JN,1ڔT l|L|O @"TN\ NYLԳtNdK#, #"#<8x'*˘3ky+w܂/ rǐ&d*M[ wU<%5ru+{(Zm~Ŗ-OË< 췤`|[Ye&vY"( ( ZhYFțb8 HaVa%t`b%T dEjH2HV֙c`?#;HW|I*J6)1IKɤ t V@WVKYވ:9$;%“XdQBɛQgWi]F`ed)zV&gr9XTQg*뫨ZELz+YVæ&~fqJB>#wS|m p-zㆫS\-G.a[ޛեv*x`s*YH ,̛90m7pG|qw_7 oolܵrZD!4l8Ls:לYA0AAA@EG@ICEQMN8=I?CHHHH*LL2HHAJJJIROJRJJVXJYEH``PEJPP2QQPRRJTTTPXYUjlb@HXNRYTXZZ-YY0[[8[[B]]G[\\^_R[_^[cf\nq^twcV[``5__9eeC``Iaa_dddbnqcy{g~lW]m]ambhkkCiiammmkkkiyclhj{}jtKTthnssEppfssspipqx=J~LW~Q[U_vbfvhm{ls{uvyyy||Iy}|wx|~GTszNN[VaxRTb}XVfXgZģWbɭhŢ˧Ԯjԯܹ]oexoڵfxȬtz޷k~q̯дwԷؽ|wڼ~݆{𡠠!,8,ὦSSdd  !QQ!!'' ,,$$(((0'*1100038,2;<5EF7/3;3799$99999B8@?8HI?OQB99D;???&>A0AAA@EG@ICEQMN8=I?CHHHH*LL2HHAJJJIROJRJJVXJYEH``PEJPP2QQPRRJTTTPXYUjlb@HXNRYTXZZ-YY0[[8[[B]]G[\\^_R[_^[cf\nq^twcV[``5__9eeC``Iaa_dddbnqcy{g~lW]m]ambhkkCiiammmkkkiyclhj{}jtKTthnssEppfssspipqx=J~LW~Q[U_vbfvhm{ls{uvyyy||Iy}|wx|~GTszNN[VaxRTb}XVfXgZģWbɭhŢ˧Ԯjԯܹ]oexoڵfxȬtz޷k~q̯дwԷؽ|wڼ~݆{𡠠 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKِGAi$:pݻTp +&. .z@3kL* -z`z"\Ai^۵H;7nP y |&ExʤL Ԯd "tql|P= /փl= @@GD[i'NAWt\nT;`XfqؤFl|8s0 D m8!|X R@?Fjy n]_r s6AЙSv;CjlBh=ܧwߴnRce{39r`B;n yԧ&|V(3 f0 @{H|P]n3 Yz|8_=p` ?[`ء -!V=S-?숄0 3'mZ$Aapl!8̡w@\Z0"HL&:PSHED0EpBE.hLFOhp#A4fx.t f0cnHBL"uA=c1tAJVR` IZ (GIRʢL%%9JLj,,gIQґ̥X)JWn20I[8e(} Kb:4&2i;e6)Mjzso$6;rҲL'iqӜ%:ION%9Oγ=)~ B3P]LB'>(E7泙(*9JRx )<5ZҖ|3X Bt#uH,@ PHMj @3-F1V JpC#(a ]Td*P43c ֶmF׺VRb0$!C)z|fXI6p g=Kv$kVOau} ak3@'DufBAlKrv$ ieZ]Q/ n\.l -l5eN26 >d E& |^*9•*h)KX-i]ʗW摌ye^晛-n 9Y P`獰X. GY>щ17AU4:Y&=iTZ#sP n܍DYt^o[Mi["#|Q[!SڟV)DE쭼:#NROɐv{kG3 Ժmc!Q}AC [8aǎ8:Ho|#RnKc 9 '@6 _$ ѷ-Nrx7G!©͖I[Q9YṈk;&x+sx'9U|^{D&:>QkJ^0G~X;%l7ۂŴ:Bup"^).vݒç !u \BEL-ʜ,}'x ^*.P7ψ3~exЂ'ܭ o %RN0û 4@xD<΍@ }v^{2_#JEl?@l d$m -X47~LQ~q~~!)Ѐ؀tA~Pjz$x a Py~!~(|nr8%ap<؃>@afulTyz`0{5Gpw{ǂ1/  Іnpqx z a ~Hx7s"H QPu2^G1Q X  k r k 0kttQ6Whp(.ȈK ! M z x0z n8ygq\zx4^p]xyHXpxȆHKfxi 4 3P?p]'H h Q yXHq  юp`x k XvZrhKP@w[a w@91q3t5ޠx `r p/pSL%HsPp[(ؓ@a  Qr z \Npp*|Z9Jp `Ph6ln pH @ PYZK5 D@Q`Q@PЭeYzADp>@;ڋږxJw .DSEb[ u C+\VOkQSUpp ^+tj/:SUS=ۨprkY6(T@)Փ;@gB md1YZ- ~*MkZ@ 0 P.Lr:&PC#94Y kAʻ{;m CSBSN0/S.##/(5  @ "<$\&MBᠺ .+0b0jA XG5u~q3~!(9M,+~v`A^ݠؐ&GR>20$C>9@o <@z u-׺x1 r>t^v~x~+(@ o h C9P&#KB- b,NA}re¬?G.9 \ꪾ뭎*nPSh ܶy;2!/0ʾΞcwA ؞ھPn00 ̠c=r'lq}PӀ 2 pL|ikMvF4m0 "n5 o Q\\<@ :0 =8FHJLo0pќ*OKF t1_oIj-@ $UdOG enpr?5"S_a,/JŰH! ;)!ڔXMf3Lyr|.GAsdm!bLPx~X `Q~Pi 1Cʖ'_G'}P ঽ?!O#~ǏT-?~G ~OD~eHdʯoFY!@ ePA m.dC-cQF=ZԄ.%Kʈ 47pFSL5m"2#}T(A"v٬k'Cpl Bd{tf>e!@Kp EHzl1N1śaȬ1QdR`…Kۑ^ƍ=jX׮]lq&$PX]J4(K&+Xde3X6`ZS|1ƹ '_WZd> } dJMqnݸ}ZDZt:mXװc˞.hssܭwp$n&Kn9jncP/E8x0C 'X@cͽbkPA4/!M"K1ew,A1ȠԪU$n4dI -:&s-&2-qs?FR:N0ߤGD΍-@I?-k=;b' ,oƴh?߾\15aM8?5IN̴Ԃ-lYOW30 )+=KS?bKH5 ʼ]ԤNk@Q7"LQ}͔U[}5nfS;,mEQڎjM_-'am SsJ$6 2}?}VhEZ"ܢl-<[MԲ\+cHzIZvGtEUN.Y"|PNMڅ LFXVeeCWRј-굢uX6c]BVNNb ((H3ĔYɧEHa˙Sk nrfCntpεlƀJڱi3(Vlq_l0(]a>* Vn;gnqm׈u G56WGVÉDZ _@ܴՑҜ6|tgb Qs&8/qMڒ|E*څFSg'-a+-C0<<#;*֑pP# [^Φ(l{mKZ1rNwܹ"B>U[%Ä9t P OGz#H8>ōd2Lva $XュS! %>O{в>υax3;_FC#TeEmA"Uݸ8Ob+B8v NQyq/b cBȏaGD p@+c /D5|D&HH8ԃPePL"t dB$(\ZOܰE3D|F6JoA  pJ3+ e;D/=AEc"#C( D Y@FapClZH c 1@I1/@ER~f(kg LeD%ZC?!YrTJ0@s*!d$WG5ñ҈S3iq &Ž8y7#L&Slq# ,+^7P TE^X0$`3qD"oa-/T"2!Bc>0&^1%4 Ht< X$XyVm 04N2(7sV ~\ȅNDauAפB |zxɬVDP Cx+ASmjk@c"&X(`F6c6Ly 󊑶ƸIݸC$ɳqZkESNp w\Ff" !,x?2 |HyDH&x+Ak#\$bCxقcl` Ьf ((g8Sdʭ3BFv@ ;A?7,2 Xy תF4ߎʼ,;| x p|0d " ,R4L0d'c5a~ %k&EV6k*P8s]3\p9#}>9b-bynhCvFcww֡P q rl/]hx7|!!|ʫ]]Z Y2D?zsxFGd!.N4 8HцhI ;;b^- A mDχ~ld#5ZqS?R'jh]Gտ~#\ڙ/Zz0CȀ(@DCnPBoۈp@6x,aBϙ]6SZ 'O2QhtoAP, ?뜁?H6 9;üiۼۿ,(3 IG,L0x_>&PB@庹H= 6, J2n)$ 6%y=PmBsȄ5plT1`/z3;3v16icBh*0&GsPR;0uR\Z q#7L$0; +> TElSXQXCFWXI8\F\#Hӛb{ T*e=3>3P켁)0=nxzt%[a[ 4\h=_5܂ Yc=$flA\_AX<' /|DžhK,.'^vy4xrp(ד 4˹F  >n.ˁ@BHD\?up5hd6rJ  †K¸RIBfC@k+]@-4E`;,k0LVJ'q \(‡,\K,`d Aj̄k,Dڴͳ[eȄ$eAK2Gʫ'̨GT\ 1VLEI)$Jv(ͧb"ؠBG8f!# k->  ȄBVx3N5%Zq:`ce]:K/>o׵ӄ| RwWՄE_x GɃQg p R0$VbJ0dpHOP(0ˑ Më́ 0a,fHW]2l VZ '$M9άF=P7R2"fh-&NjjLeCO[xZK .PSB8Q a>c^r4 KjW;NWvB=֢U0{^ pp4֢ ߻bZ6Dmn(ז=%(Ɂ07`W`hj@Wi`b-H(nL:KM4iūF& CFu(hypu 20֝p2#Xf-WnVoԐaFQ80V0P XzmQV9¯SFIf?Pµ$n.!/o&!//_$7D W8SXh/B=G4Os6J% 6sQ'QuTWUguV?my(5tt 0/{;T|7qQ`sL7tt\{'l&(+op%X<_oX߀hkB?OCuDPYk((r;Ctg_Mt#gp`;wA yh5klw_uxrBB넭V"еdfeϬKG'+Ŋ_y&uyO,zq{_%ޅ'P@xK030:y֙vԋz׃hOt? Sh3G>mgfG{PW\+ϼypQpx i__f`.i|;QxWw~ُD`zEW,(}v۟g}|\v{X{ Wgw [~plٟ|/>z,.K 2$mLÈ'Rh&4tqQF,f#ʔ*WlRv;0&Μ:qY%РB[SfdZY ΢RljBvNdbm bװb f<H&m&W5ҭ+Ozr,z4Ҧ*FkXUZzͲ,ю,i/pg΅@".m4ԪWFMqӦ1K5>AVxbȎ{'qrk33һ҅ ڷs;hRpSL \s{:b?䕔^n?fuv7p& * : :H )s!)>H 8&_XfwVr" ]18#3ؕU#]AM1A $/2 3j9$M:$QJ Q4 Yj%7b]$r9)!@iAO4 (&uy'yID7a9& TY88(`344 )j)z* 6 zjCNu(]*h:+[*cZ+b+JwNɎ,>FNƆ.j[9If+P8}U2KV[ 㒚/U@aC44gδ.U"+W>A. ;ZP Wgo}l+GC &hN8ظl1 :3s=,"& tܚ<#6H-0j89DdA=\l .@/PmR9rϝsBdJ=53F@V 8h+cq{A9t68襃zk/;EtDcY?>GؖC?P???(cYSH8p3 yLet3\0ꁍבdqBXMD{:^DE(!x! c(PJ`0">)d7"C 2N|"(EOJ D^$aUpyà_wd&BB0'(lH8 m(Bѐ )A2ߐ籆R%#$#9-6I*#%Mr$(u".0k)HӮ1םK+ fY݅m9 Gy5H| !5b\$VNfH"QNXX.Ɓ-ꑃ>Վm4"AlDt "hNt GD1qLAcՄ3s<G nz3)*8Y,F.ᰒI֡CT-IrRl¥/@1U B Ed4 mҢS $M~ ]HTʜbei&p "U!uTBCp&4!5NJF J)G-sUecT^AweeYoօ8DaMBbV+#Ol! O6ͪ vHN L&k ۺԣu'ht!k_kEUbz΄ό zH=(.N4#p9Z5),ue{ZĶ EцѼtPa;7]m`cVIaK0.~I4"` sh;! W9<݈Txχ&-sm*5Y=.۠[d6|/9vHwLgG g) %Ć2$0XakFPCrkg!M4rNdО ^0ӝ` S4{Vzp<7!QzFjeN0`Du4Q цi`H4 `6!Ԯ% mXaDfݖu_KsF"c63d!k=Sg!d2@j~0xE*ndV{ڸ;OV*B#pcܪ.I iʐ`"@i+Ȁ4OQ_`\f:EN҂-Da5\;ɫ,pܩ^Ҿ SP`JxBlnjwYˀ E o8pT2*h7L/yd|65vYfG=[v S Z@ԐG Hp H޹Æj$ |@Ԕ񄃾|L M[0@0 NeMUإY@ xH]I^ Eڙ8\/t`73B 8PBکW@:48D@S\X N8aDùh@9P| E} B \d`J E18#$7t7\ b 5BpA'P^Aɀ Bi*0 4%>*}ZNVzNhT_'hA"$C7.5"&hA!P0"A8BDH^1+, )S4"7 b7$.h"a#:H))nO*\<#=֣=ޣ=("ҡ5/ C.vA&0\:c2 Dçd$06?zD148CA$Jv#911F$bMdE4Y5a'hA$P"d AHvK DLdNhKNK*hA-dP5A#.%M@RF:F EMSK|/l/DAi6*]Gl(& B%<",&3@#h+~K+~Z.ub7g}&&7`)&HƶN:`4Bhb$7\쯢" -lll͚V(G;* F:j3 k&DԎmT`0kd7|t+C\,bB---ʘ-%7! () >->Ln.v~..rBMXC&҈DQ$7B0-B0 uA* / 4=q&Nh{"-mbn%F&7%/zTN0e00\oL/Za$=X\//-r/G.D$->X&XLSt68\M|@b*u ܉OS(lʥtmRuuN0'4D<+AdA08 ؛@D4 6ӲN0@MC;<@[pffʂb&$s0Wq'2/qJ8P>xa-"4(A@( rr@D( 81j|^7j%W6-"+2//#Kp0 D0D;8@HO8|q|@q@n0H@NRnfR&P h.C.N:,)l&Xbڂ4f..2@/3(3AL$S2,B)˔&Ds=8||CZ%z%ljEhIE8@@#SJJ<*A X ↂ r?4PNNC%0`DHC8@ǴhBC݌} o\GoI8DHC@WXƸ5 enٵJMqJ\_GLS.!&tPa-OtX^6fg6$J>  LuM 6d@9@ g6'%v5DA#03b!p88'8Bt堂N8\-*B%2cNzHHWZ{I ,+ETg%FBD+@,wC;-BD|4n0)[[X@[;%X;y{'/P8`B-283$/~W`h9׹9ygV8@ rE 8 ;@t9G&"A=NB'tP=dA ļyH;T6IhDA!H!~N8x@x<  pO4pgO`8E3Ad1x#z=0@ѿv:K@R*t%O>+*Vڰ׃`g!A0@[D@@a| 2;$4C'D2O/BC:!j9.Fb_Ȉk=g?7K#,6C`?}D,@,W.feaC!F8*eԸcGA9dI'QTIv؅RfK7qɎBZGA$H"/":jUWDhW_i`$ -FM;.H9do_p- vD0to߿%BiUqǑ'Wq]Eiz"{[W-B4쨃l"rA o[Gy6hs kuv[AYp-H$l93g2`aa(W|k#R"uHi3 2)hy. > MA`mN[mAI>mrR{1"iLk#l"^M"a70zV6HZj׮+XkV, .$m}k1Hv|Mu2,y|ʓ^"4 a L}a*6yy1Ab쑏}HA)PN8G#~vt#!W %1IMnO$AJQ4)QJUt+aKYΒ- iSLt _b%aKe.6 G P@bHMP  i9љNxpnAE@^!lkC8R e ԙPK>"A,W1"(OiB̖R2UE3lLeW8 vV ,=u%;]Un#MW@OQ#`Gf At-Q!McSVqZh4Q#ȀL3!pXZh &0'W4Ue1YngAZю5iQZծukaـ;PK KKPKkH"OEBPS/img/deep_shallow_filters.gifUGIF89a?ŽŽ{{s{{ssskkkkkscccZZZ1:!!!!,?@pH,Ȥrl:ШtJZجvzwL.zn|NC  }_ QbDrk Ǻ϶h Ѧ ٝߛhfHMg  P9H zg 0#JHŋ3jȱc!BH80JCNK`‹Y%Bț8=#V21RHyҜJ蟖(cҤ"0W{Vܙg.rgH N$(̷ʝ*DeZ:P ܻT[(X0XkF7"6, "G@xq kd\#v/R*gH2yapmkص]}6_=xpÃ8pƟ#w rzرW~mΙ~&*W3wzf BZ+~I`Bg5iVkfbzU+k"Prq!pA6G,1\ kq@l(a q1<@-DmFkFlQD-TWmXg\w[dmvDMlpkvtmx]=߀. 3̈'7G.Wngw砇.褗n騧ꬷ.n/oo.̋F =?1}[@<̛As_}k~+?{Q?F{_wяW!DE^=&AA0D` O8Є!a cxAQ03``yaCX<̡\?P!8E'bP! Yxz \!x(>Y&v C Ocb k(QUҏl"(C|%/IYS^Ғ'_hq,6#|R4N*rLc_In2sT] ϙ=?JP!;PKsPKkH!OEBPS/img/replicated_monitors.gifGIF89a!!!!!!!!!!)!))!)1)!))!1))))))11)191)11)911!11)1191991BB9)991991B99)9999BJ9JJB1BBB)BB9BBJBJJBJRBJZBRRJ9JJBJJJ1JJJJJRJJZJRZJRcJZZRBRRJBRJZRR9RRRRRcRZcRccRkkZJZZRcZZBZZZZZcZckZkkcRcccBcccccsckscsscs{cskRkkZkkZskcJkkRkkZkkkkksks{k{{k{k{ksZsscsssRsscsssss{sss{ss{c{{k{sR{{c{{{{{{kkss{ZZk{cs{ck{k{ƥsƥΥƥ֥Υέs{ƭέ֭έֵ{εֵ޵޽ƽֽ޽޽ƥƌƜέέƥΔΥֵֵ֭֔޵޽ֵ֜ޜ޽𠠤!,!!!!!!!!!!)!))!)1)!))!1))))))11)191)11)911!11)1191991BB9)991991B99)9999BJ9JJB1BBB)BB9BBJBJJBJRBJZBRRJ9JJBJJJ1JJJJJRJJZJRZJRcJZZRBRRJBRJZRR9RRRRRcRZcRccRkkZJZZRcZZBZZZZZcZckZkkcRcccBcccccsckscsscs{cskRkkZkkZskcJkkRkkZkkkkksks{k{{k{k{ksZsscsssRsscsssss{sss{ss{c{{k{sR{{c{{{{{{kkss{ZZk{cs{ck{k{ƥsƥΥƥ֥Υέs{ƭέ֭έֵ{εֵ޵޽ƽֽ޽޽ƥƌƜέέƥΔΥֵֵ֭֔޵޽ֵ֜ޜ޽𠠤 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNuhH㢌jzlFGdB1IYpz8+g>3`3t_J ƨJ>_% € (ZpmhP0򥪜Ë AJA ple Ge!<#P=*:U1!XgZ}%:l|*>'db+`UL*SE#r'x WKԗu+(H߆HIZa){м|Cmƽ;ᬂҎ*` Zԁ{>D5 al5 Ns( jB(yki 1;pO[ D w\Pm^k/܎7e8>oHv>Yyi2!}='Y ߭Ym 38] T}5·w6;4]́T寁vGzk|r[Ns緀!|qC17j& N6'OIu{0 !|Ф}qgzgj4 %0wst{x@WUu* mU`xj*0(9F>OG4NO(g0Px|JAT\vwb6?{%4pQic>4`r9 D`kt٣@ڤN*j^&*7j9j;L\ B:5UZWZY[ʞ` 㹦 P]_*a cJeJgip0@i ?r#pɐ @B |* p0J5SSѨX A: (o p| @c0)p WQY/ jZ^ **jڦx@ Y5* `0Pc PWPjlzCiit}ٮ) )` c`x0p * Plj  ;]ʨ; $+P*IP ff08PR ?[J^CE G IKkOKS0W p * pePik;^moqsu[w;y {۷)p`+۸#Jlk^r}ɱ乹ٹ0p* )p @j @ 0Y1NQNqHɻ+ #` @x(o 7pIpp@ ᥽MMr+I黲`f +05lPp!LR* ^  l, Q  `00cw `)I@ p 0I¡)gI{iyϐopt  pn V@ Ȑ mU0Ȅ р 7 -) @¹K1KQߛRW Pv|P ʰ˲50ŗ p)ƄIƏ9ʓm < 0I r )<\|lr@B=D]F}HJ `JPR=TWXaaD-QVi"4?%/7j_Oan|~׀؂=؄]Or|7vc @0P32 `Я:˴a #`-W |ڬ~Wafx'c XC#րU4#$qXc '`0FU ,ʕsI=Ӱ` ;ڦګ򍷰mjCa\e-V4 b5&:V5W,b?`&B$sĜƼ|Ji= ^`/ެ.޻] D2bHT 퐈6~cS'=0 Bm*S6]=w:'@'j!CO0V a4,Q !|%⫡/-~.xϼq8dI>>2Tr}D2ІԲg@e_B#BGzPu1VhZ5m!柜 LllPtv\.|Ek >3..۟UX/$JBQ#/WZnJqkʅe2*ڳ1ޤ^Ym pScP跧%s71D J`?|\3Vɿ[ͮmo Pp묯sNDz>aͳx`PB >QD-*4BF=~RH%M"BI-]s!.ę3g: ƫBX^ pU訅'B(x/4dc0l{'Gv B|[L\^Z;R%'2w,g F8L2;F *dʕ-_ƜYfȠ\Hc'[~wYz #'4Zn3\8Ȕ+G#ͯ9ؘ5"U B[8wX[# ҇U\,kᄄ@ylǘ+j|ƀK+80C 13#ʹyg 4F  B|16j6lB^Fa$¯ox"=Fq(7妤22˖ˈ+1Zh ,+5d65 NK, ԺM!5!A:58b"usKMs1Ѯ G%uC:]' dѱ$JҔ N 25@',9dUQ ^`hMRKmr[ok˒btrK#'j (6ŧI_aHq'\*^Eax zwT\#TdPTO PuWV|Ё{[**$@6]Q*5^ CzGZ?-o[2\$ :d~{ Z.x5I5@\IMQy!<b.i@[1|$;]43w.l7%t/V}SeQᦝT$THձU+U8BD1EH! 矏q𩷍xyycu6=|i>F^1G1ud}_I F,h$_zy%."8tWmB|x0)r1:)yk r0j,>q|-!HЧBq 1FhB2 q( 1,Po((ҎX9L{%a6q=p7Qŋ?= =hz8j/c gX Na FVklǁ%1ØE̐/6XX` QLdD,AF砣 /[B^4:` U8B,FԅO U=j!} Mr" $(-X>E7tOrNďK GT5D/`Qb8eJ!av` "')| `vD @ "f >Eƀ"ԝ)Rc`\ Dk cW4g1x! W(0ФfY3"x0XRo,p{ &:zwS!PO5$;l`&,@"(dm  1-@Txj;Lr|T&RhV>LRQ:BưĈ%ߨmcyРnbBOʼnX L.h} Zp| h$L)^-! (hm-(? b.{Z5lL@[6h}iW.suP;t*B $8\@ɱ+.!_ECc4Kɸ5 $u* 1 hBd _Ndl\vm}Aa2`$7<knRMEX^T` d @i0C'ڬ(K!0H6¨:1QVM7$['u`)'ZR7 *20ue, . 3&K<F8ѝ 6/[pfHT@K*A E-%gCC-iZHȪd4Mf͜FGL=uOMd#OfՔi^Yz5e,p^ڔĉ)ٰS|C^c8ҀRQ<ԣܰܛZZ5R<>4JYD5S=FL$: z2bEIj E%,fƉPL %giǤpN%;HN2'{o2 xYc6ڠX$$4xL%YRKDqXKԀBLň[:},1,PLP2ux+ t. =: } @/P͝8m 0QpQQ왊Ѩ|< 3P K:\J r։t*MloX9,IKp92֭`195JRɸ S Hӷ) (68G t؋`TEHԟ,TT* hN$>pWH '%UeVuUUoYQV:S_:Hr+WIV\VjVGtHԀVی;[tH4Ws}tUuݩ#ȢQxԬ0ЊH4|#,)F9գU&LҮL'\ Q SFËM  + Y P-YF<ْ 8ZYAي&Gq6 ўUWvuM'P ;#d8Hh<CBiXyUOے@- u&\ݩ Ur;t ] `a˨DVVX"2DbH;@kb U\a+,vG-bJb c:-c3VZc 8nc(JF=ޣ>6?6@A6cG$&>( bpG<Id<1NXeBtb6cFdVeffvg^6G[H_0Ѐ+`Ax*ixexX:d'@+ `l_֡`+&6FVfVhmfPY(E`0 &+ܐASsvt.Bw]YnϯuB!9ja H~~6+~'ȣ&6FVFjWHғhi8iipM_z6@9]wx!` XrHNp Z!f'N+O.A8HǶ* `(BRRT )m!0y t` `p H 4& 4kkgXt VX+N'+Ahezdž> G +(K \RBJ20nm(m6Ltkʬ F qICvgM6p3Rk`wrn@e`zl()Ц157 $N*~[aoǺhr H f |$)9q pmHpކ!wrr/V7 xמ<* =sK<[}j h mHYpB  'rtx ;0N0rsFkWV dR 0 *%o䍱/0BU8f 6yjsv:erp9w;)J l7  F9Ie=dPH`NЂ(H؀ $C`8,Ar(ni6 p9Zwd'X fΡ aOp4}GWgwWyKLvˈ 8g 8K _!X-.D]uGW ` Zя88x1 mGs щ%ghis?/8B6. zY/ȩnPPLJڀ Zw` 8r c'7G/6=y(|H:4t?DXHxc_޸WBe2ZIqCM+{g} X{a p,h Bih!Ĉ'Rh"ƈ$` +-ʔ4x&Z!1^ Gfq'РB|f(ҤJ>ې)adF5))<f0֘)x%xLI$E5dcCt`'񄎒0xGQFp=;tL!s҈G.mNnM:YѮmvmL=pKXaHKvleė1gJpv؄ܧ'o|O&s^DtH!bRGq-(WA}pp]Ɍ1Y0F|d<!z)7!hh" Z5I}ۊEB><\R%Q!tIWL49QGR9&PyfQN] I0@ K2qr0I!"`L2p) @ xKWXKjoF戜@9jzj_3# C242JĒK0aI]DrO: JzPW'$ARX4tPk[k^a$aAh4*T!C1Nb*| LC+ lޮDdCF',EYVgSbnf+ZA^`F"I QxC ,zX/p]wH.AH@ .krU{Z_rP ,[PO$$Odr(+w0LkZ2H0\\ :G5xX AQ&0D!4W{)ୣ5c6fb(g ֶ-ܿVЕ% QM*xCowG{ 0a#Qa)`?#pt褛#e==^;Rw$`bM9H/C^P!nv93g(\ ]8`iBh ʠ9` !e`X =Ƕ[( >2Ƥ JB(`YJ9 x  r;Z ^ h1#)Ip"qQё'P(d! ī4HA$ *a(4"(iDaPER X@ J,"!BoԾV0ք$MĤmPKNj̚KR9EytbD초z$|!)C1t@ c `q@ cYab)lp8(tM ;Omr478y eF%2ʔFĝ,mr й )MG܀#0,/E0%%kH5_JčvLF vRAd)JZեjM8ЁN0/2X"l/ y50 +$*[UR6v@jad)MV٪Uc++M udU Yܵ-ns[Qvox64ke8 (h_*ڗx̰Rֽ.v$k}mc+ۃA=/zӫwe-ojait,mnJl>03"+YBO%#:Np0C,b<<@߱& b9ߔ7p=|>1,!F>2%o,,[sV2-sYˈ. µMX_KA i' /#gtE,e2Mx}j )ˎ~4 v@*vtf~eģ[$x T a34;lN@"†O5DSv>RE-+#ﭝ!M_Bmc/%ҝn%E& /`%Q!ߠa |z m6f֠}Qh;.R1fw5Rƴ3m= ^mYyO5}oyFw T34w*<%+]ZߦD jhꏦF"qVy:$l (?-ŃCGJ !UhC=XBO|h`M_gSAn#/Wky*Š˄ g'e)xP [(1r& Y5>S|ׅ q-s9׶РO/C ]ҵzh y@0!C,ŖHi>*Q}2`C1B\ fn v[1$Y1 f]_ إ8 *b| /<#tCE H@03/`HP9@.E5DC|bh9a;9 :H!! QI ."a<Ă&a!Q%D=DZAa=bRT=AGp,Z рCá7Fs-%:f5F=5"YcLd4H#Fq7L@!@;#<ƣ<#=£X7!I20"@ZY :)@@6LL٤B!'(rQ !D8@]#_Y6Е+51T.B@͝XB4DvaRۗD1""0I3Dép<D(ae:8B6[%\ƥ\[>F>)_@q"lnp20dh@,jD"Ω^c ]=dDΕSTT+C 9l1(ex :X ZBq(GTU@TJDPepJDL:0uZHJF:ee\0>@D"f:%]'|ҥ]F9B?`_䗙 3 $ X $( L$ FyI:<2f0hZmLzD!cPFL=Dx U}fP*`ਗ਼+hqh`,ŮLsVT>gUdcsp"DhE(Dh9U(^dn63F#VDx> D0`̝+ dç#lp!2nC#i ||id"ƙZ] VV?cii m@g!w++䄭) ª Z p+/(#c">R>DLt<\5@E [ ^Q>*V^e"x7f&,Z-Dh@Φ G\i-Dx!JCkECǺZD+eU^#fkpXQ 8B$3W@hzD<_3TSM%@FOf>} ڶmۺ~mڭ4Qll@:L0,r%.P3ވfceFD;PDn=<(>:.:鐺N.gf ozf<eGV+8ŃFb+0Vi뒐nFkeǦR+v-i'5ϩHJ9 B0 f`:҄.k:DBx2E<4cv*):C W枀w +fT%(k)ދҀlr1EaoDhA,1+?1FVm< _&H/ ܯ/9` (\]]E7RqDH0n+h07r0jF,ڬppdƞ`J]J۰WfzM\EG7/XZ'++,;,r--L%Š6.2m` .X!B5C+27H`nJOn6hq32'z $!d#7C3+:g&/ ,/mTClMw(ECVڶA#۾wTC?4D$% 09h6`@&HK3t;>H @f t 4Pc388:\;dZҀHI06ծU6Z5+W헶C6c3vF<8Y&4K-´[iD!&n(T ,X6@.*2RN*63nG`Z8(bêt wg|C(>t=&V2IFD7()Z8tnFEU=SD=0"R|:.7sǧst+tOw_V87Btt'\yjIhPCQ5bT5N5ggԌK8@dm9,CpATR8&9G;B9RcK3CMssyZ+ZsT"H/TbC)/f*FxA':/s76=:HTz%00C!ű':6weG>fctkf:+:їz$ 9x6 m{T`g;NCmqԡۨwo;\v!Һ6G{-0 'ymH@{}:;OoNg<F Pmog7|=S6T0`+9s1yp|J+ ʇHG⻆ 4~OkmxyQz{ҽ7܃y>W-U|c,< A*>n@+sQ'Ӈ/,u #L?GW?@H8`A&Di!F8bE1VtBSxH7dt +g%K7>4D]=7qԹgO? hQG&RO&}f!jUF&6'Y;lYJ};@C*FMpn]wk׎og4"faÇ6̸qc7vD\8d˒lYiٲ g !ѭ*hpn'N㙤k )l.פ OCC&HÉ HXo<`a_Lc) q7ƕN`x@lo^8"J,t M2GT„#/ Ba7,a=.jF-Oz30 J^Cl'+!+KDK M=,SXXOT4NJU\U,@/2ٖtѾ9-W&5)K1-VM#B3$<:"D&Hj̈ AiNN8ZjYTbQf%fFSi(U~Ղ5HZ8vl^4X"KFDT DPiDp@,Va,P!af7ğ8P!$!%RTq 4Yo::>JvHλ > ㌯Xo<ː;AM: xȖbh68.!aai F ΈDZPfNFuw-C^0r&Y BM\Ӂ;j zUW.oG||> 7126^9C["iD: q HDKD!#JPYD0owWg!&"P{n6m KV[aAUo㛐ইiqPP#R2TF`ugheՒŁ@R@w b543m aGqCHvp-(^$mOnxF,=!wC!:!T Rx0P1"Ԉtnh1p@E:J8Mj 0"L xTQG7 y-~ N y%G.Л$%2bYJpD)è` Tk+)K)K-/\r`2: 9H`1 b̳!|43yc >TWMW=!cq6} 2>2j 5% &D0 # "E0T A$1etGS`>2hA$1rϢ(k )9%3͑D(T(݋JҖ&d@V8z@6S8bNchP\0ѲH"HQ %`$hVJp CH2¶ iZ5` B{kqWUB~eN$W(~I1 갨Y@ 0~X mqk]׽l_E66<(AIwxҰ xJ;monq6wi B~FI ,І>89KW e@.7Tq@3kUOp!qO1q[@DAr%7Q^r OPx`'p ns=ρtE:Nm~t=g+w ȭeܘ4x@(8y4C/ >q ϝuw}ǻ%tRʈ_0LJ!B- `IF&GT~ Ȅ dcEե'ԅz]`ac4Q/g6!,0a ʀ  QXڮzYoo&7&x;T&& 0ApQp,Pz|u@f %p/vxL,y8x$ 0C&^EnlL$~F"b! OdA@~: F: !`8Oh^ , , 0ro2P7,@_*@FB&80o-4D`fc.`dkZ@%N* 9Cj&7EJ,Ϧ7BSKl. XD S1 `d!, "P ";Gq;;,E]Ea4FetF-q3'>9E>;4?Ec` dQ>(<@[Id)%@@@R%f\s€]U b! F B0oe[ g 6 ! h0# 6>6ttav1|TY$`XZukR3hN@4dHI@IP#s4 Xs/'STi9i=6#Tubwaa2&Ap!lUֶ *A5!bT- T6W' voovX;Xwla>cd h< ڰ%Llc6D6b6W uU#&8O7Nuu_wGgZHb[*6@F,Ra t@6Yb WR;c@VyӶ*6A b ^VBuW{WXfdO~l d`VQY ,xx7yohyf\!V!LL"Ɩ:0@ ` how5 io!jA6n)@$H%ȡnȄ%~S8iLjsCFF`4#L/4Y$`,`9SxrW@ ubwvkwQ*b/C.$>HH[V6ƌ/J,%w 7 2 ?"L/:|` |.^ j8@ :xݸI1Y 6j%6.Q x X??%RbII݊",rx:.d   %GbuiM!!{os&KH`v@0 w%[qcs(*^Qs0N By|$`X8zN)Cq/py5ષP`wH%`nw뷌yz}~-:La D!AlF|@$ v:3:=A;E{?@l8a@0!8 `@wrO#y:GjLe &@.Ġ.AUײ/BZ'CX{;ķ IBds_9+}3^ .`6 D'Z& $k&Bjz繞AI`,,E#'ڀ>ӅO O@8N&,@8^ `: eq=rS~7)M;o7t sĉ-F1G4Rt%ҁo^T͋Qp^4xx&)-hX <:CZ5+֨y 6X,Ɇ6ڵlۺ} wWZ5,y [@]*[͛͜/_J "p ! O liDٴk۾/  SGz#d }a7PTH@aNqWlpC\"HXG_ Vic$5_}AƼΈ6ߏ<//nE:'+ `☳ !_Sv8 %ێu;CsŎfuih)c`O Q"'ϫ:p|Q;3F]5:|P FTdr]NpX@/T69k9@?q8hwF|M2`#Lс9<4tW:c;cxfȊIEqXR+8hmhph! pnno5wVW hVia(`J@pV{l~*@.`h&p.@` Qяh3@P*򨆎r{4w )Pi0 L0"!t"34g"/Hƃp،b"h(VV^PC Z@gIjŠ TFo q)sF@T Őe闍r#I@59ba /Si0iV!!5əy. A >HQ'^ ZU^fvfɩɜ)~Y~c^3`qP! e6ePH]sIu74m>fЃiPhQ pa 7DNiRp/  phVVƉiɑ   @ vP%( w ࡿ@/3KfY9)Q0&@yhA00!d Oy Cz@ (J:Rmq !Ǚg͹  QYY(*Wɣa} !>~ iQE /dpIi2c / i IUp vI@ ^&/5Ec豢1 ") Vx"x{ŧZ5!8IO mq>{Adg # Q/_ j_! pƺ լz*  Hh q^f:7#`p0_ px{pI0(0(4벘p"0ɀ I0(xpFGjGj[te/01z^+qo뺱Rk 7@5 e`Ś 0(p ' 0` 0 o")2( ;ʯtK@T;V;p\)[]JpHl |n ͛r@{ gзwj8J 8P]` ^ R R[8WP0fpP.( '+pP[pк{jU Wa 'um@vb Y`물 ˓[>U h; 'j"{e 9 pp` дps`I`P;|NfPzO !33Ij Qb n sz[( Ȍ!c UR}6)ಅ0Qg cKĈ _ı \Qk;X+#E;T2(|ko,qw|,'2 >(fC.\@>)p b]DM~@pi `I0Ŏ @ `0PL 7 R@pߛ 8H]OrލalpJ2a3'U!`\0 =S4z2b LbJ4 4Me.a%( U7a\¡p ]2u0ڜoXG:;7[R\~^nH` Ф9 :'/C!W(%=H,]A4"C~!(4=0=~;jnE/>6\ˋ޼}_޹.; ^2[֞*uKaLpUJe1!/!<9V#[9>,  mda,ݶn^ެ/G8)0 > `,K m~R!Sd4@쿅zeT%VEc  ƃ*Ly)pI`f`pvР/C cIn` CLU?gWЗo9 dOy"=CaIuwǔ;a1F/a+~P >U>"p0*`(ǀ)8'u<d{WDj?8g z x޷NX0/nFϾ}{Di' GX ) طsx+I+8SQNMUYnhՑ4aŎ% iD6٘ "]y 하 0L%\0,'IW-Q7e̙5ogИ9`éUfuYY][5 Զu5Di^YFY0^* xax3i+04hqxhH3kR’EcG4MJ) 4P*Tp Gʸ e,Nn1JCf(,!dv[-:jBFsl"$7rHibq " H%[Ȃ*λ*z8Ayf6~{ x;AǘQF9EegZDg&:'jQxFvFr+et@]K&(n@(B1D 8dBTծcڨA0%&bvzIQG`V4LVd%H$M7gU{)iSPFcx&K$@zFy55ݬwި"^*]$: 1À1 & 1|Y5h. XV #@aSV4erK3y-C: `0㰘Ih&lZe3i)ij} SX$&,$(8w.;ŽRHqW&1|RSl9oxaѩ)Byee_ xMvđ x!], wti}:yfުź(.L< 1nBu砃n"YGy^OpŻqȎU$wH\Dt D^WQ4d @@ P߅* q8 o2a Y~~SF*X ٫w+KR 0"0D` i7@:w x̹: 3I޷OzdWE@abE0Qc$cx1v 0 8xD,4E<"G^p z QxHqM6 G/0!&p l )xh_2p h1(:tT\cVXu+e/}K`S$f1)RRV-  %ӆnDd77RE3_$@63ࠉ0^) , ) @JjF2rKF Ljo;Kp]2baGLn)WЀfCPjeY͊CJvXBp:`AxÁט. a1\%܁Y.LARTjԠ27I҈R=B') zJÞmbwFu5S[AwQMVZۤdGK(,aĮPapbcDC<" @:03ӅqE *Vm,"i`L%*hJڟx,O Va\ۄ`U+8^PdP8 q@\Q2Tt"|DA ThG@6%,IPްeU,,Ѫ-/ ϋ>E,,+!LTgzԟI@,FVx`g%fz~6L#1tz~bl ʤ+cXb=/x#xc# "L,ɒ%B )YX,JTL, .7, d[& A`0$Xs.L\UKS$ϐyB,`~r cT$Ѐ $p[į>EmԪ1֖AC@A!! G"<8 l5uP^ZqJU7_N+n`+`0Ͼh 87p4 le6qs3 ,|SdV^ hS 0p Ha$ps0%4_i" 0x\Ҹ GrhK2~Q`"(;kɈZ-굢zBH*\k#8|;H$_p 5( tH KL (˪Qp@[$3s3 r=S"Wh 6 $ 8ZQ YP Zʺ13+@>Z:v0ADzEqAiA: s{- Lt8(B#п=z* `z1Ր#?,DؤMK8J[D=,v8Ӏ%,X uR3 x *L,l YG G!H}gx @ph`wp (KFf$gLhij HBADכ x8^x6Ɇ})C8+4H{>GP0<ȧCă$J]Lgx5X]fЅU I|KiHIdYɬjIxXNj6xIIIɤy| "FKH1J웱dvp ':PhwFvhP:P#Ȁ*[LK*Œj, p|:ɤ" ^FL:60'HKִ2]5pcoT8I&)·:NH8|c `|̷Ԁ'8,gx=QMQ]QmQ}QQ}?BCsz# |pyhpt` Zn=\^aS|8^M^]^m^}^^ޖ^^L^ei\dW80`*IM4,"р*`p x6X8F_Hk dQQm`~`娂]IB`pۇvԔȞof@NT`v[75< p1KcU ax ap['m1 C-k`opQxæ> 8grX1R#cYN^=0ԺX1 h]tgkpxY="aD7JkiUfV6Qt@}>F@ `dy;_vN~/ lƭh\R[. PPgS8zXFTL0;kp ui el^XgalVxhmxl.꩸b6ЦQL^= @Qxآz ]>1>İKl@_ wQCƊ:WWZ$ldnc~i bnnv08^\fc4i߰ Dݶ]:7~` qL#@xxFSЂdXê8osrnX7g啛`>#8A s1 C^0bu# 5쓆q5 C0Xi+osi x ĮftK( ON,-gqh9r7/vxWYcx@z :w@i3>b[sa rBuA w=AiY8ѭrGg5 |i?]ډ0@+V?189uo@0SvN4oQk7v7dc`wt鮨riW-g >5^QpGop$Ayo0i1Nwtഀgu0/wax)pqb?7a &EYNyw韕k\OtH [7&l玠ŭ$ia~xz$MwL?| 4>t'_>3 H??Ȟg,u޾{/@^ OoU: _菺Oq}| t=.B_ǿ]R 8ZнnWo`^ʄHhEGxū@zhp"Ŋ/b̨q#ǎ? )r$ɒ&OL% +_Œ2\=b;cajX'v^4$aGdBJV:<U=6UųpމN1z8vzGjV`]l|ڵx `Qc]m9 >ONz5[-ڶM57oZ@e'ȘNgĻx :-#ͨu-@42w^o~6%vi)n ~4҃Dd5#=D9}LY^1hXTqy"~83!8OUijV}W\Lcz2٤OV S&8%L Z҃YF%af=Xq(5/i^aa('OWz > PLfW>8wϞf=tlεF8,Sd[o.n*G!Վ+Hn-XU7%Q% cE +`F:0rƮ$]]r%p;ܳFھA;/3'dOCm*Q64F4!acmeduX5SBo]1}IjvnQޅw~ 8C؇K<3s޹R9E l^z+;ï{߼З+b1Z"/1_h31j76h:h;1z#?2@r $! iCRd\$#yBE:2 IKb2&;O%)K5Q2\%J~Ń+%-k3KX@g%/{ va%1iLY1gZ%9&ikb%&o3 IP3<&/9e3,qKSd;Ё'\LBTzBIG}?O'.$.F }ʆ@i*)ӝx4KOg "}>z:#Q-xBS-$HEsb=N`HՈpcZ\( GFs{וZ8aPbw"!HSFʋ~}TsR OHdTGkp$}8b!@xo!Hq:v+pVi(.j 2*pLKfL*؟mA]16v)OhS;4 3$R ,ПIҀVRY"ي~G^`B)3B̴+(Z5|fՒG@m5&3e8uB3Xpg0Fhw Ux^=\[Y rġ :@MY܍Xq!A]EX^G|PhWtT=Ʌ30}0ļWuhG _Ye EY#WGăOa4|(]a~*b#:0#:1C%Z%e]%R^<&^b"JjD(.^|4Ʊb 4])F)Ң! b..(F."b"ob1"c2>1*c3:03J4J4R㧍E ! r7U9Cy ڕEpc8dcLKX5>OyD!X\_|yDX70_VHTF$m^*rF_ ^~aĎM;S^| R9]C DLX@(QX@>Ƅ}!z` T VᒄwM?c$CH $RB$qOWZ]0M ^iZA$hv fSR1S0œN< eEW%@Xr:DIxC^=̙EUՍ%KpZ\F#1^,hŘECģ.'YaYd!9ĵFM8@C8DXܨpʆY$IbA09@!PdQftA"Xª\M2dD XqhљeCa_bzX*HĮ᤹B\@vDe)aKC !DRͪ*`VBpn>axeEJE􀈺QEۿX`DOAU\nTOJj%(bOȲ8qmx_QDNWk>OD;("{D0պWBHfcZwAs| X@\IFVG LD .](SA  !KPUpF.I@E8+{(YhD Wgtf v8q TT[wPDbUi@9K; 0s3Su&ɂa1//kB4s3KU`r ֘rn-g"+nQD+qKPnQR>`Xu(EH1~,JMY;, /dՈs) w:ą&D Ot0²2`2fם'2'1YY:Z(UtY8g;A3y2E;(:7 h7W %ihU<(`W{NY {2~`9A+(Nnﻟ8#ՉDƓ|ɛɣ|ʫʳ|˻|| Oge+Ie$}*Q:@ts,j}ԛұHO={gK}חұ|؈YU0/ r$3_ˌ/۫Iμ}V>wTJTړ /=@hKޙ[GB,^ɖ1L}|(Q1(XX':@k23(Q1WRQ;#0ID˜Ө'<D]F%I/$ .F  %W.'1s: F3N 1BQG8B=d]fħǘ6 oicc mEZx6#t\-7kkڌt^jy[ hg`(g >^~%-5ޘ=EM>U^]~emuޙ}蠅袍>餕^馝~ꨥ8 ;PKȯ\?qgPKkHOEBPS/img/btm_backup_data.gifkjGIF89a!!!!)!)!!)))))1)1)1)!1))11)9)91)911999B1B9!B9)B99BB1J9!J9)JB9JJ9JJBJJJRB)RJ1RJJRJJZJ!ZJ1ZR1ZRBZZRcJ)cR1cR9cRBcZRccRccckR)kR1kZBkcRkccsZ)sZ1sc9scBscRskRskZskkssZsscssk{cB{kR{sR{sZ{sc{sk{{c{{s{{{k1kBsBsRsRsc{Z{k{s{{{k1k9sB{Z{ck{{s9{9{B{R{ZRck{{BJRZk{BBRRckkRRkk{JJZcZk{{JRZk{ƜJƜZƥZƥkƭkƭ{ƭƵƵƽƽƽƜƵƽΥRΥZέcέkε{εεƥƵƽƽ֭R֭c֭kֵcֵkֵsֵֽ{ֽֽֽƔƜƵΥεν޵Z޽k޽޽ΜsƄƌΌΜΥֵֽ޽Μֵ֥֜޽޵޽𠠤!,!!!!)!)!!)))))1)1)1)!1))11)9)91)911999B1B9!B9)B99BB1J9!J9)JB9JJ9JJBJJJRB)RJ1RJJRJJZJ!ZJ1ZR1ZRBZZRcJ)cR1cR9cRBcZRccRccckR)kR1kZBkcRkccsZ)sZ1sc9scBscRskRskZskkssZsscssk{cB{kR{sR{sZ{sc{sk{{c{{s{{{k1kBsBsRsRsc{Z{k{s{{{k1k9sB{Z{ck{{s9{9{B{R{ZRck{{BJRZk{BBRRckkRRkk{JJZcZk{{JRZk{ƜJƜZƥZƥkƭkƭ{ƭƵƵƽƽƽƜƵƽΥRΥZέcέkε{εεƥƵƽƽ֭R֭c֭kֵcֵkֵsֵֽ{ֽֽֽƔƜƵΥεν޵Z޽k޽޽ΜsƄƌΌΜΥֵֽ޽Μֵ֥֜޽޵޽𠠤 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ L_Lc30L5!;v|C4 004̰c˞MQVP4}i+_μ<9"uD`]Dすy˟Oo>u@&N8s#I0Vhf#S(f#L!/b<+|7؈%b-4&XfI&&P``bIcF L@ss `Frzs0h}Pw)}PC/"_bi&jǦpI'Zd@f!W@ i_prsW&30`A_jjg`060+xVB$/4Bp QBEa$\b(AN KP,\0Ueh{*x[J&/<0łl9 Ql1Xl@0,D`D3/p@CGk5` 9\ \LPL?:@kZQV0H oT /y!0 _M*@3g9q0!LBte_ҡF P).Pÿ@&_s0A9$u*4(!z`_Bыb̉xd"s\ŗx lo"'&p(0" RF"^\1 ῂQ;яB&XȕgĤFRpHԥiiKzd( <cX) (@#j%Ki fzwx@ ~}󜺣 fPvPg81Gt799tb 9sRFbφ._T1BPâ|(y_LB6VҖ0iL9J q x< I+ RPK +cYP+J@Ԧ: P%N` X[;~ȩ@QVCjP;RGZz;" ®wգ8!FԵ`^ hGB)X'KYάtd!H+H:Wt2 8 =clj0:P@F9lg+Jq FAUc-kM) pȅx"H_Q*vRfzWA ]Ԟ7xΜ=b W-r_*ZKDB+T(mKڣpwv1e9ݭqYʍ0g܍Ը?\r4`׼#?CpI1 V&ȰLb`@aH66ކ-40=&G. [Enp!BET*5o,aHǘ IK99`)6s~V:s4v<ÏoP ܦd|P~p_K$cpi4q!iO ݓ'Cw6tk znǻ3[\oMT<8G8jL@0;@Sdnq,d|'4H}"8-@j7jn e}61 Xvc\sBAz~knX@0<1:24v߻Whe1͛>.x?NMӂ>_/7cA,5h3#`7)yʈ42SК+nY,%|-6SdG)**Yˉszz` z7FV0 }ip퉞l؛yZ|302pjY3Q:V8 Zʥ+~"k9%ZBĉ,I#*6:|:@9ۧz)ii8zU)IJyتٜ + cȟ: ֫.*ٟny8'|ڧ^Y:/*3 fwπ (ъ}םFuۇɬH-*Jq w ˰zcʠWKڦ谚 rךXu܊"*Ɉ1 >V HHGX맊CJMRKOFKaJazywlyӰɺ`_e ?g zXZ*@t5!˂ΚhKzo (j'zJ5`е 7BKiQSI 'J7VIF71E8y(B2 l!Vh_ K2뛥fΛ˶3;&_)۷,ۖB:kj̋ mHrۛeۼӴV;EKPۀե!K:Gjcz~JX&꾥ټ ۱ ,Yܫ*\j;#̾%kѫ\: ٣+! @ ڿ~K* pMb҄&WU1l'~(2' wH•ypϪӄg%>Ak&{pW,췿eK{5Mz`a<ysǩʭ,<*Kk1JI:+ykhɡɎڜ ?\l.aR̫&W<\; 8,f|UɃ9Jl69ל̀.銫Ź= @Gوټי#@ \ }߂mMm>ZX _+-!>#oN~ np莏lp܏~~G\J о61}-ǒ>cIn&ϖ-onn%y'BΦ.%O1ҽw. O o Ap t`V0wo] "?-:hnԢ<v__CrH|f(^z]3I   6 +߼MqA7ۍfNE Y|A+yw{r^nʾa(VhYn]_5&÷ /O_oϻN:2\bEltÑOM nmCMB =LbiEqF=~RH|VT(" n#hpL3m޼Y-BLIq '̕#Gn`m;5ERV]~VXXrO/c\uM:S'OlLLd Abеl+dJ|p@>;zYj!X@ɔ']f#Қ~W5\5DSv_mOk(R1U*UwV^xlZ/ K! At±v̱G}<1Šͺ'BnyFvq:#P% +z3,GBAl2 -QHHK1MPSn8O0TQU\tFT&QU]Gc17,n&rGoowtG> p= qHq^_bUkQFV5 Ip \xЃo zcAą/a e2%S(,bxM+Ĥ+=jQH@ #WsQw6qDjcCb=čQGLaWR>O`SN6VOEOX#Bq)=#F*A"# TC` GD&fx#>H UjN"s 7rTG4$/=ik\ԽHj~k8)V;o!CԘ:6p/H>(͵=WHh8,IYD!=rdT(Zҝܤ!;)oPGVVԢܬD" Ym0ҘK~GRLf&S][bX=-~IǥRr D)5G@SݢȞv$1账[2oѪ,$; -D*20CӠzUZ8B?95j0k /vHExN+iy!<@{T&Hڥ3 5"f+9qʿTըEj73 9@ZXlZu+[j3~P׆vgm}ݾ5.EX׎yEMv]V"`g$n w*J-3USTZb-溼v6N;̹"!pA[ hBv]g[y;a =CXiWr)Uع=ۈ`q 5#;ckw3B 8сXBx/++1UqE.oj49b4%]2-rf̑} ʦRҢSނ g: Z.cUo><M@/ccHku5{|E @pzn}q=mp`>P`9JStխ ǦkU༡v98,~k9] [u Zޑ~{îT➈)hף_/nXa-rb\"_KGk"oscI%USerHeYY7Sțvq*Q1:_D!gyE] )\"83mo}l_e6-7<y\ܨw:~-b|N0tcLpǾ<+]Y&^嚗s`T PHGtl=ǟRW{[Z"z%~3x>IQ yaIס?R0񚧟@I3S? ?<@>c  i  +;HX$T%d&t' vB*C-XxA {Y@0:J `k  4Z :h-302#ÿ{BC=A P'A$D&`xSDEr8. > 51<ÇhDqSDNDNA3M=SDjh Ly|aXsLH1< 0؁hxK_%_-]U\_:i<D@dÅAL@gz`s>@܄>X]h{mNO?( eun^僩8hE#;J8…6704L=>F^0_i9P `oy xoa ؀ն_`P~Y Vo [˄q(CD^iPHJV\j~fheA)#d>53P8p6G8Wq8Gp6)WsV\9L`oRq&gtVgvy8Yp臆舖hWmŒ΄hi@hf~h`h6NW`艦階gx韦Ȅg@6jFgȄ;vjЁꤋLfPx*밾 Ygjm)08 g_(HŽf]6l5LxXh뫠Wp"Nz@v>f.mlm8NfmkNlmF8j6lmznjlmn&f.FvﴖoѦm&p6Fg 7/'q5FVqf'lqϮqg&r6#$%&O'Yr:"273G4W5g6w789:;<=>?@,-O./7n&tnE0o5tFtJ'KLMONm&6STUVWuuAu\]^_o`$6FvVeOfgOhivKvvvnoopqr7DwUmfwvwǿxyz{wA܂Wxcxux߲wًyym&ؔowyxy0֝ޞS)v)PzzE+fpHo._'7{ g' B)%X?Džjpc{T{J5HGٖww)`@'P̗'-`!J֛jh%X0GP} %5z!!^}Fx+7iC|1Fz޿GWF 68;6Ђ8} ~~7~'8-`/S+f+h „ 2l!Ĉ Lh"ƌ7r<(AZǐ"Gf2dʔ*Wl%̘/MpA&Μ:w%̠B} HJN)Ԩ>JdѬZni*ذbq3+ڴD٘"ŷr"J.Dj/d-lx%]옩ǁ,ԯ̚3e6mLȨRz%ղQ3@6!~~j7Wmul3_>%<,WQoE).=N/r͞ɛn˓J4:hw=e ODC} nJ=|8Waoa}v]CAA#!(Պ:A ("mp7Fdž$]#jia4\-fuѓԋs =xfadp.VXfB)q\\Og<$xߞ(bg ;v2y~t:TcN.N0%nn&3٪cjjr[OJsg~ W(GvÆgls*~_RQޔ|c.w`likK= _{Qf[O@w ]AK=эh-lSҤf umjs;&-)Nvӓ$ :OR,`QB!%>oI!Dme=H$М2z0jȆ"S("i/{dG=PL)Xωq,EK iPiqj4zzd`vG:Dn#)9N8=*4?Al(AҐDk:ԪT@ԤkYǪZ*`"ʻVg;bN&y4F],FJS+Nhg+YBEjO+ְIkYA3,!uLdOђp]Qӊf:\_ǵr[\1dti٨Z4_v]Bi7WIS$6YQZU~xVU,W6w9 r fָDI"jbwm1=I + a`2Vqs=:^억 uAhU{UF)Ee'Yہjeb`1 L3KUn\gn*qs;IiGM g?k˃rs&N3#aNͥtѻiZcG hSO]![h4o y[׹{/c.]h0zVviՍJ2نf혰F}fP;vԁ mr3V}d|$LKbeq j>X n2D:֐~vW}8ugVOMAtֵs9-$İjP?>_Hrfyͳ>{FNG-b'R$&1IR%"֙ $DT| 0ѝ(D,=]2"Aa*!, %.~bA_NJY#0}Zi+7r`8ݣљ#:::4@\$FfF^d8;D<`Nd@JQK!@m Az!ڢ!>$#:N$, R.%SNGqPHAPAXN W֖\!C$ B-b.F$CeQ>堂L` <䅈Tm}UL#B, `ŤΤ* d6esx,$-_!#[B[ "j>@4"J%^:_v%OP=@ PfNe%5 bbu7~eb$G .e%<$h^GT~[A\͕4J`a ¸aRHLvUwa0ymYnr[+ޤMS=68 Pޚq&"r0sZttL2AVGpe.ɔLhzp@|"Mz\oס~F!7Hh tf`K4h=(ID=%:}1IA@LĮД XĒ6ɕBt.|h}+f~ccC%H.\f& ;HL)0]B'Tީ\L+g}%(>h*nf-IYϼ2nodg2dUB<>CiN ,@6j<8lP,*+"}(~ddt <=D j&8@`2k:/ B2)Cm+p:ez܀\n +>W'g +QNfn,v~,b,Ď;6@ PnB~r2@l ̩\j&k k5>-.G^cl.G B$@H@备 j_*HP- l@n*f;(= |H,ǻbe. X0GZ4Dlm.h=c&AʎQ&H~"n%fl/v*o&6/=/EoM/o١/魯//oo/w/N,ӭo"&G0f6kK0?Ҟ_{g0/[0 \o 0 c \ K 0 _\ ? 03\K1o[?'1;[3G1g[g1Co 1K[1CZ1o1 Z"/2#7#?2$G$O2%W%_2&g&7|&2((S(2*$*:,2-ײ-2. n'2//0-+3&22r22?31934_055c746W~9[H88]7;V::[];9+1Գ={3>י>? ?5s4 4A?AGB'B/t 74=DD1EE Fgtout|4HHsIϊIt4w4Kg1LL MtߴV4O'O{PPu6u$R0SKS TGu O#U5\5V+0;`X X5)Yc/Z/.[+U~uc/Ex@v؀ap6 ` L{ƇC&@A_{\$ (]bAb6 \l6L[@&` _w`@ai6a36FR@_j=@ @ %(g)Pa ssp K'gB'i {5I#LAsFuS` L#p7r/A\A0KƳA\t\ݚ8A% AlD48"JX74lāD A7"xJ!x{T&A ̸;D !.{J09Pv<7)0A#4|l!\9KB_9D5\(;lGKPi4jzP`7:̓%HiPˆdD*Ӛ z!dH{P@:D*4Iw* ;]|@{KPiH;oC7, E#sHizEq&Ph>;7/{`@8SBlh4< |s <3DXI<3Emp&x:%t(ÏD z HfHBBo)d%[uD$كσ2 BBD7Óf҃%؆B%S}fX=8|Ct?{A?Ttם4 vd+`Gk|P=%ʝ`A< ; 0_9%lܽd佦 t!{#` Fj |k)H>G4 BHwv ~\Є:LXK.4@`A&TSV:90#^GA9dɐ9`۝"lPj8f͚pˋl0chQG;Jr%+'"DhjUtUşB:֨J0#*uvG2խ7WE]*z;%ny?㼻|V[ꎛ൅] liӧQVh&L}Z47hHCjNllDtI90jȚHr#NSygg;cСѓTxqKLDtT5V;ŦV&;#J)Jb̭:/2݊(lHký4, +H1 la,5+Fr<ᯃL@p99%,lpSk'b\9pV:Μd 2x(9ƾ!J2`aAy*O*[˕jQ7jk&6͆ osIO$7zb#D-AGL6l9 A#UYUM VX_36(%e5,0:10mQ9m Skn者!8eɱ3J3hX2z톒CovcZ;()b rĎkmaG&oC(fz/O5?--Ye Zic@6bpox@#0jjFR@T[RPTGktvWsW=þZX-nD @_" jp#x<0Ġe䖑wVI8.p9hX/qAe^2Xao$ |pX@ Xap+"t) Rp{3TSUW_'MWv>2aӳW ID߭ۇgn]ƥ ?5(`,0Ә@P]v'IU<- Ԇ2P4-7.e,I4Љt%4 !@p!Hvb@*FĶl mqG&Unkc>E\ъ64A0tza p=.Qsh玵p#5R@:wcAC<<~ A7  G$H}O%KaɪSE#\Ӓ<7BLdiQnzG@Nt38DNT"yPVIcҤ7 O*2YyuOnG61\NSW%*mCN O! Rk2sD6Col gQJJsFnt⪩Yhψ32? 3w_ x1)4]mFOuŮB0F8FbP}c3iJRzTbj͙_E:RD38gJS j_yv%#/6L]P2Uפ-U~mVz 12NQ}&RXpV|tk5MOkB`I쩞Z m&[7)k5=mA933=AҪUU%فV~~3)iT#֭sQ)Fwxnn!FSԢ2|$9I׽)j_W/^2J>yH{ZL6e b27e63GjSQLc+5G)ax,c.PߛN(/O9c[e8Go}xw=AWDeYn9!& `[Ye%EI5Yl4rl)7nIֆ%hE2dulM٧v~(6am[;ݻvUSӖ$sA:u dחhk0tw^nrvKlޛɇ?)uK uD۳ܣC;d+^9NFo/5ŗr;;\S.&Ep;a|؋8: |yMm.Ov1(s'+6$G?ux=tO~,N',ky z±pγ^ע>vfdc=6'{̿MEǣ9gHpK[s4Xշ~-gN~7=|&e=9u}y>g˒ƭnNͿVkޤo)йN|ofO>O-LO0oOЎb"tOxoo:˘ i~p "*p В.P- k.!2rmLMR`_Kd0dmm n MʄlpMݨ- o ߭ )H1͌^,kkΆnlp6nj&&IR /q禣ɯ L+DcN@ȱVZ1xOQ˚Q +Q EQ:Ҳ줴11ZO=UI-f ps#q#0ҮR 1$Er^1" iQR1!_HQϵ"O#RY,'}iJ4Tn҄ "am2)swr'F('(ݲ=ңklрq.☯Q"ek,K., J,.-q-#T6-=RI)rRrA ^$ & c1Nk22'qnFL&hl<:-C:?3;14q6?0Q 1[SR/ 26Us5 Џ-^ K ߳23+RX-0jf#kQ;4)._Mh 7a1>51T4tC3{>kxpDBoM"?Ţ0@e"aBd0@1 3I4J;%HBB?2* 3HtKs'5+ VN>@oLRԀ"f.6<"EҦ tQ+Jm4qK DSsѨ>ߔNNN΋@Gop44B.DWZEQ1rUQ("Q3*E/Ct@t6tls2E$ԽJu+SU5kdknsO*35e\m35A_M"YiB;CRZR67Z==?3Zt&YMMV5 f5PVuTnKl mG}اeufC`H`#;O`>SK=Zc/4R-T%K+4\WU94qOw]tdMHum&#HQ$m3fgfAg=.O0T7M(eSnEkTL-5agqEOEI6btf4]p2GMOKGwj6fu#d8-6;32G2%5o־6+g)its)Y(GuȖOD0 tK3ORҜuSC6=SWu]8z6,{+hnT uulHU`9 p䪭yv=h[OR@w|ѷ iFThʗw)M [-'xd@A`/|@ckZ8J #Q7 +X2sat ̆vW+X+Ոe1O@<8nq-sA\D3SHL0LÒbMliV (LYx,Wx! @!6 #ĔBa)Ywt؍H$  8| 86Dw͘)S,z>@ AifN SvCW"N\ \؏\2+Y'Q9xR6 `YH4@܀YT $FH7*f@yٽad(3f IYv{2Ya 2Ma6 80K^,)>Xy((ę[ zTKz)@yuxtH@ XAĀ<@`@ \ RRAM 9?Rg` :عFQ`N!?mza@ f: (a%\ºaU[F2`L~DQFZ/H*$`P[Y~Ό~2>@h{ A&fD{d L@>R[2?MkQu{pQL[{-3` t@9&`p | S'G X}G`%@i2  ŭ \8ʭƅ`kF!/qUuF`L\2`R<V_'ap`2 ۻy9~A9ЙN}\X)˟[ս&%.ݿ5}?С]s=>F:۵}7< y%y۹}ݻǭAX3[׫ڏ_ܩ]n=> g6~)-1>5~9=A>E~IMQ>U~Y]a>e~imq>u~y}>~艾>~陾>~ꩾ>~빾>~ɾ>~پ>~eީ}? ?!?%)-1?59-,EIMQ?UY]a?eimq?uy}?????ɿ?ٿ?ǁVX##&P0… :|1ĉ+Z1ƍ;z2ȑ$K<c&*n%q3Ν<{ 4СDop%:} 5ԩTZաMLUyqMU6M9+M?d 8 z4/C><LlJܖe-o ѤKhլ[el2&8w߽޼?n7S*^\2=;Vl>˗ :E{.Mbz XAfu{Iޙ`n3n NH8e@Xes.Gt\v\t!".D >HcbcA#="1ekGPWPLeXc (e=)5JU4w=bifQieaf9&A*B<^}y2dkډhR)gt* )D-T{=6;[8)k/Jjji#1hb5ފ+d%ـN&AG*($:v,A^mn@&3@n#Pfpk^5Bދo< ݥ1&!A+M<Xp4pmI@2_IH1J* =. s.#oEzV}r9'djrBcbb]nq2I,2MvG묵 gtU KZte2Q壀Y,YM#^6-90 x>WwE^:C)AFcȭ?:ߍNU龗A6a>>Z*U?V~G{e C[Js/(_jsie7gtmt\28|)nW]$Ow=!xFNN&#$h4ʧ0&z5*r,|x ʬi=S^y srJO PM^۸l{}pi-P¨ΑU9;󃤽ON[={Uw6q@A@, kҀ!l]@ۼmMgbyv+Dw zS{ v&O굴e\@M,pcnhR]qS' g|o't|S|hy>|UXZhXEX6^}Og7#lSSu2&L7b!5%&x!y4"7WcS[aՃl3lV}l[Q\]ŵ+Tsi0UV%"',ݕ8Rxrʄ}TSQ(Mq?8Ugl3USHVౄ"Pu6+rtX'uSI(8G^ [QXMgUlW6Tk<8ņӈHrxSP1#(6(k;GGXGHGcyö}|Hh&cmE8Dظƍ5շ+H{C!Z(97_y9Zh ~nIuPC:aU :jRlh`7gnv(96fZkBّ@w;+YthDch5i<pfgKYjHyfv*iC;ђSC[y43('3OI t%m ZYIckkǍ ,@ChVz%|ٗXy8٘DYeٖLy9EZ@F% 9LIiyɖov(v0i㈙y9a<)7YǑ&ّsFI)kw Ad>t@PY9mDAv ƍaA&uSZsC JMIzې;lJnjD/r[{/{hj);nõښʉ,,$sd#ق / =5p:)l0,3;?L 2 4BD-T=3 B QUR 10 ?1(mjm xK$w gvF-C{]7' eMw+.ύOx_Uyy~+9:鍛n7J꟭/$ -;+o+~;ߐ+;[oӮ{B\.O;/ĵO⪺Xq3-| A w- jc;A^!5b| 'Go]u~$ٸ҇Y %IC|8H3id>YFQq4PyHU)pl+=o-qɥZrԒ/!`Ri41LP*sSjf))L]pbABJ)jS$ܔ3& ~0L5UG5-~Cg19q5##/ "*cZs% E3r4IF/:PZ$& >H̔ZdK+_t)1[S4~aR]jGi.U~!qn.Z[CuQo8zlTBU\REjثYrp}?z%N]"+YTamgl&*O2S  )7L΍%1wix3;K`=7K}o|%/A:mk)Hx5r/ϊPQL/ B0qe匦 isVh<|J)' Sa"vӫzn`?+UI49`V bYq-וӨ>q>ؓ>o>wݰ3,ȇ \t_qv Кi{];'h[ $L :WIU}Y•3an?{#}apwi/0͟ CtAԐU`/\ ?zK%'=/_RlNx8vsjsc?y6 xw;rG*X$9hwx-#WNN78%X'l$YwYekU 3re[B8}"uDŽ JQP R"(\؅^`b8dXfxhjX jpr8tXl nXz|؇rx2`~XxR2phPx'؉H2828X* _\芥i؊j5芰[Ȋ( ȊHЋh؅؍XҘHʈX$X؎ܨ옍(f`8ؐ )IqX8xh|H (xj4I295>Г?9~(BHLٔNy5R#PVy0R)00^9 SY5Qfy kpRr;PK|=SPKkHOEBPS/img/down_schedule.gifGIF89ada9AH]ktAAAH9HHHtH}Hkktt)))AAAAkAAAAAkAAAAAAAAAkkAkAkAAAAAACCCHH9H]HH}Ht]HtHHkkAkkkkkkAkAkkkktt9tHtH}tttttuuu}}}AAAAAďޏHH]t̜kkkįѯޯ볳t}̿ΏAΏίߜ9ߜH߿k믶Ώ]t}ߜ𠠤!,da9AH]ktAAAH9HHHtH}Hkktt)))AAAAkAAAAAkAAAAAAAAAkkAkAkAAAAAACCCHH9H]HH}Ht]HtHHkkAkkkkkkAkAkkkktt9tHtH}tttttuuu}}}AAAAAďޏHH]t̜kkkįѯޯ볳t}̿ΏAΏίߜ9ߜH߿k믶Ώ]t}ߜ𠠤UH*\ȰÇ#JHŋ3jȱǏ CQ ɓ(S\ɲ˗0cʜ$͛8sɳϟ@! JѣH*]r(ӧPJJ*GVjʵטXKٱaϪ]˶[N LIJEwC qIH Lݷ+^,`Q* {p3`3eLi6~jzxphãOͻM ^- 5oxrg% ❻/so b[{˟O JmZ] Ar5Ya~^&kiz'~W߇ } !nفs7@qH!n;H&E߉u1ي5/dd9g=6\XIAVHciےp)A)@i9\PZX#BW`^#BFI$f)p{MXQF,b5a`(C]{"Z,W@Kh" J,X %0I(]"JQ!HF2Ovhbp) Y, *PljqdF dp4ɺ8(8!#/.0z(=aBAȉcSCQ{C$N0ZVk`ƃ2 ̢NRQ4X 0V"b@F8DD@"bthn!D,ΐz|yrc:H,A#3iNtA:l-7P5c]=J2{4oV<*АsjDbHA;Dut)L11eCl@3,NqG(X!05\f3&Ts0{)9TD&1q?j8?`0u}a^/aE' AT&AOհa7k:$p  u.Hi[`C#P}ip׼^յUmV~d؊'X XV +0]\i`uSWE6m[Kޝ D\oNֽ4J;FӤC&_jL: ABSi: L0\(A(~C#\R07cB^(Ra0NvŌ0bT BA^vm8<^O2k@v BH>#. N,KMՆEɂeYx0"c4[qi7D4q/ZE8 HKRsAClD6VͮM$C~ =ɻɒ>̾)+ p=deu~=w_ |7U{CoU7xVoݷQܗYyK0\]GW1Z oxu`F{27G'~r.&b1b$7Ff w?*Nvpq~$FVG|Sg"?'ch@Yco@ah{IDbv['(npBFdzctnrAh[XcZx7gqjVfou`f}(r9ĄexhG@CmV!SsCI=f%o=B44dI2Zd>X9iU60sF7b9?,ӖIx93w9):hc峘4YI3yL)Y)y)=Y37q5+Iz e2l, ٜ#0Ɖ4ygE9SͩztBnDkeB3\[pVRT_lF_^hVE5x9I)VcT,` 6]~փhDz?a68c):I#{nl)ڝ'@R@i/pc]\ע,$iWDE_MG*jt+5^MJF5]I(\hmu~FF z?HViquԷX~٥x䩅56 8 zDIjڠbDu&ayIֈ-:r&9cEyW4: c:㪪ê)#1I4R-;YȚsڬʬ Z\J֚ڭ /*):z!R躮ڮoZJѯ;[2q ۰ ;B{;PKPKkH!OEBPS/img/response-time_chart.gif sGIF89a 3ٮDHGS]Ihr|KoőϦ׺Wa͗lwƌ˗С֭۸𠠤, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@J4BPD4NCΪ`U@8 ! R0PAGׯlֱ,BLA ^ HE ġDM2͙/',3QWUWrʎER pR)8T tk 4ׂu-_g3V̝[CDLԓC_ `wCT|jvME@@ ^t .~)GUys gbE\php)! BAA)ŠIUgXUkys(iVa (]1@a옗]Cw嗑uIbX}M8aZJ`v)z~*蠄j衈&袌6裐F*餔Vj饘f馜BtJF Bzjjh&Jkz{ʒ&u E.PĬKR!]̱rг-#Q"vk.B+"Hu;,Dxƣ.{ /eG,Wl1edWYt,$\rEkpFJ_tǺ]h.4,rJj+, G}ώͺlmC1Gu8Hd z̐vvcTGk )v&+YwB] B-~w'-Pڌ'Ķ ww+Ew@#߂R1= %.?Iodޕt]豹Dk@.3A%0CJLP$@|&}}@|lAuQKGADGEϯyI_{A7! ;G]v9Rj(O[ :6$I`AhO$]JX t64.A Bw:$4< CpQ-nIDw *$Xń!!Z,A!&g:󞷰BC ,=!$%b;֫a y1cf! c&7i I2O!\}fƠ)$YCu|BjhDaHn1䇅"#=ˇ!vCr6C)3pI9AkG=z/uM%l252PA&gGD%y<5'AD|%G4ǙĜ!Pxr 6J$T#Yz/l!?8×feGmJT!!;SN # =hxx#H("R=l1/Hv $RW?7(b0*&s"thB볃>La o^دy<Ze6!Q8a (kjXrK4?{YQ d"9i3d cP'@ t*DlHB[Zyl{95C:0؄A bkAF[ZTSaH$*$H"w`]A&C> Z "\/+^uUN @4jЖ`8D5m)jF P,I0iPm%ƈ\ .cŰEK:Y#/[4{~a\}#ܷR&E",>#~JG:>eyLn Y\юKb,2#"-IӸ H mHF,yӂZ 8تOFDV$UV9iYKD R F2ӨX=î@ 0uH x$9HAPSMAC"]A<] $9*25$k N,.ȨD@O~ 8'NS ϸ7%FE(OWr!gN&y2@ЇNHOҗ1AӧN[X2ʮ :Sdn=a>wD{,=j7H%w]'|7 s Wvb%/γs񞿼l:j>#g&gOϽw43lY 5ǗO[OmA#cq1~˺ ENOk~G|V}V~>5|-_~h~~}7uUԁKw(*,؂;PKH PKkH'OEBPS/img/btm_architecture_overview.pngPNG  IHDR0\\msRGBgAMA a cHRMz&u0`:pQ<IDATx^wxE~FQ=BB ҂P EDDPCC @AbJ  ??g={N^皛>kfg ?)@ )@ P?ڵkG]r",Ym64:>O@v?'^|@"HRpϟ?=ʞ.Q-5s{#y~ŋmܹV:w~x>{[Άxbb"l#Hx˥9s0e>S`֭ .X'OKdx F?C'KOOn0?:;*qqqU HO6m$z(1 _ ͞=[3fvUf ۷opav5R߹s'x<_e )@ Ξ=+>1?S@AcYg͚d/[nM?Yoܙ͛7k׮fjM ^c狾UDT@Ƣ,dp*1mXlJ8&0)@ (Ɉ^3wDSEx`*9L8R%̗^w,fm o(mDz7<8 DL ݯX`?x)@ 7SsȓHe{;_Xelvz>?aV_ٔV/bn}ä)@ ~{0s}r->^8k[qMIrC6M=U*7<ѝ1##ew6o (xEO䣴/jX+bgj<0i^.@IK.eצ t9,Ƞ.ǭ!%$Ho+"vAXC\\1E5tSGjm"Ni@h$FiŘ̔4a{wʁ0d5^INYQLRpL"qD+iLYRj45(]'O/'!ZLmcKܹcLl}x NH@LL Lʊ HEKH_1 d-=e)Nq'75ĔNjFI~RUe4 d1,We_~%P+H"HRxb5d4cܩ&O 1B> mG.=ܥ5Flٲe1-m'XM9 5A  J_zVCnS;4dX{fnkFja )@ ZL'V*nEvƍb1S.#OM+V]kVL8)@ XW`ǎN4̺XEj$6dxgQO>m OMRLR)`ka[28ӗZ Zv@_Wjwfuwoؕ36?~]ɓ2֐͜9#.)?RxJOOGqՎL%HR $pe*ޙ=/n!_w=~Te)(r(`k-X`ZNU ܩVcԳ Eb 2 ezF`yTdE)u9:i opbL=5fNs֐ݻ77+Fu'H)`3Rэ C.5զ2eeILRw*ZnhݜT0%K`9VFzj[+-0۵\nD) |Fud!OiPbƘ͖hq/^fv'TeS{>u#4V툽˱̷fS)x `^p=68(@w/heub*gjƭ %tRѸdw'kGe)$-~dp^{c"w| dNT#WRBS1; Rlx7o޴\eE@!{Ȩ BpUZyULF;=eiC9&mzy3kdF@fSQ)@2紦HR@]2+s%U.Pr}7e ?&=B%ʼnVp[Z2C2)vZ(33Zo*>iwQ+أWo>K\̅B&*@2)8ZСC Jz9`= ە]BUF@ѩ( T0)@ H 3EO/P 铒{CEK?}Ym-BД%RpdZc箥BL8bYaڴe+%$$m "dRpd[{U[tNJzQR+W7m1 "dRpd[h~l\:SNy^uayJWyms[42C@F} ܮJIIydlds/ /]b. g +T1b222NڥZ`!q%))mR=(@ H]t%› *mJ‚+v‚KԿliM|RBEp#L\)LB;UիI-7l׃J:$''MS{ yO[ʙ +@@]?e-*,nS&," 'Bƌk" Ȁ@Fnp<h=V|ݶa͠fMcy2/ Kْ)ȴU rW]V\Vi]îL K*Ck9sT<,==fQ}q?i5seDd ”?)@ QL[t7d`7u7sl4+MauZMƞ :HS'[lMCNqt$_ѴFخ=mER w*@@8oq!l 6]]'o%nRKU<|OW=Z7 cQ 3%E&H/)@@!l^*}B2^]Ѹam} yL+QQQ~@ڴ~OG>2\YZ{ْ'^_\_2 :C e5XHp`{mŊTJ!HW^rƀ+F@xjD PZ}o^0%%%o"#wR0"dO\v} +V޲и҇$ k\j)۞bhۅK6j[2E@[5+V8^aw+[h>}P:vUSYK @fv"C6e&&сo@ͺ Ax3i;~0`%E>__g. XcZhR ߛ9$ƛgQjjP'bYc .T۔߸ pwC%HR 1X_ۚt, n,WoOTUXGn;OJk1`#/'l #vgWm%V}ƸȘ@׏5SNu*_>HaI bc`)_+@@GƓ8(b@|fL$,?Apx֬WrFF]Z.u`+{,$&&(V9'% v/S+t¥@ W\ٸq#e*ϟ?ƌu밿ȳgt+IFiJ) \Cuᝃ5|OYjk8,=pӧ-J.RܱcǴ s5L?322TQd(@@撆 3H\aF+h5:S-ȃ-?T9tL=ĉM>KмFoN/Z\dQd/ T6)@  TYZOF_$/\Y6XrT4bbe9 |9ݕCk=\H2SG}'H)K/Q~JUFg& ?& ۳یO(X|z c 4c`H=4% 4Ǝڴ7^^y@j٦8mDK|>M F`W97]ٮdjK۸˯dlTTLݤZl!r!xrʕpk8"ÃJUm "e;EK5oђg9sܻw lzưÅ ]]9"/b`Wdץ)MXzMXxEdV.}d|I|otRIRU!S[vԩ%K`D>|"##3o޼}yD%+l< jJ8h.;]X$7r2Q'ՂA=P$ h㾣ư>OP2=Jw1Vuc fag?>>;`]vo^d9*4aO4+F!TA;*xbYuli_!!HML%^}QSث@ UpN6%^[n bO#^|K|;4lqG@foCSnUF26 N 2fԘS} D=/wP;㎰a-} {wjbpZK.K@`-}O! A#UeӚj"iiDe}tVT'JhGkϏޟ>JdY`21~!,6 Ԙ jLYDCƐxpb _@;='5duT!op8&z۷m'kMGxuȏ+[P A nPh%fiUr6ݠ6\|o2qR^əه©V̸BEK+&nH:P_eJk̈́o;O1Y5TT1lRboQnUB2׶)F |ʦ&h9;)Ȳгۦ?ͫW~':7~ $\@E7/1d|eiy O XtZZZL; %RQ::F1jĉvdKY, rX}W ]@ݲY1eNU-ԼY+|";J 2KTzZl,_bQQQvaA}yl4w|?vS2) fm Ȯg W2 rj^;AjƎ6H_ ";IVۗ kCvqo !)K<ѰnlӦMnm[l5Dԃ&Oz&ƵɎ#~C6+*@@F ܠZ zpi^GoYbQxQ"}R{%%ͷ þ-B2`@׏N}p,K/dױfۛ{U2KA h.ea AWpm{/؇m{ڇ>^VdiӦbQ?&+˖.viKWܴ32x|fdI}߯~N񇫺c]2R)`]2$?ư@v~x_iȹ~lcXq2\YzMP;@ݿޝk?iu* yCUʓ *@@fV1/^b) { b_x#dȗl`@v9ՅWq@vA}n.d- "#eB  (<?3 d88<++2] {d#GbRg@T*Z8Հ,'ז?kKՁlM׭uV(`ۙ`F]Va`R u4lKII[,2&"๨- )~3* [l :DX[ZYxzc뫞\_dg|X`X|k?Q@ךD7 d+j 9]%P5Q' )gsœTa%abkȶ6A<{EoY_aٹs|d.u~~ó[ᷛ ٽ}!ٳ={؊f1tYKt3 ܭ@@F 8U]?p] xK@C}QO2EEB"##'v>đR6dnmzöwn7d@&FcO}Ծ*0=#E뙓YJTP,QhO· S)`D ֭}7bVŋy3[CFT1b_SOH1e*jbbb "(?+z~{A +R(_|qHH$ŋ")b, RD1.4tE HR@[S@Z=c1 1-3_<א-R ۨi 8.\(2Xӣ[EZ*٥X1}y^PݩNfҙ;EcK1$5K22wkgr 3:S)).Cc3J8:z/U;?):Ej1~@. mTTYf ^yu.5߲e Gq?9ʢ$nҙ" kX᛻dy,*XCTܥYBp0w鍀JDu떚;zuYSXYf?>3ashRdX={X@݄O}=rRQ"Hg?2l\l[*Sj |4! sDR Ph`ڎ^ !,Gɓ< d04n[j~4'iI6,P2ltt+>217ăY'Cve*JDEEa9FFF\!r@vСB޸6P3<:3RB ӹEsmsUqZJ2Z6"%6Ce5@۶nwX+CC+3fصkn))@@wMF"*޹Se ;;iS£S2cRj+uڵ-TQxq ۳ ^kқEJUpa j1&Ź5}Accp͚5/WP26 D B8->?|unc=m߾}|Iͺ v $#ْ= boC+\PR6gd*+ c}ԵsjSΙw7GT$T-]XQAN*@@T)@ )`ff]Jk\!'YdFu6m:th۶m*TFxm,UBktYt,Xb`*ߥMلf$ӢX|ML-7H4fQ|2?j,2`,Yj̯9{mnw_:8l޼y H;J_^cW Ș7n֭vTА}e!uCϛvlVͼy׭ɰ\=zT #IQ"e_Z}uѓpͽ{RSSO:w8bu@=}˖dT(ƾ%pfggo(@@ U)OR0 @s>ުU+V97d}%Uicq_.Bw3%)(5xRWQ[tlFYL2C c!R].Zı'jj`|ӽ@IZh?:U#W&~9!55Ղ/5e{Ѥ pz dDi!Rxb՚5#&& O?܍@ܲYwPm-p}'weN2_ڡ{sIHU)N(}k& ֧*NGWR˗//mРȌ#3OD=<9aWL~tvp)测cW߼y`/|FFsxP%L . KOOo٬ayޡtC>#{-UДo&V"ܷfh}BT{{U.E C | vM{p|peЪJay(5-Kj pzJ!c]V(|s 0W‘ﶨ8n 8۹k^;tZRK‚6KBL@6rZw{ [ta߮ /&OGpjb6F/[ݻMDܭ K֑ pzj d2dfns1B7{\\^/\;)M8%-2|pE} dX_JDd o&OrJ:BnUL@&%HGW5d3Y7vhf7f}+U22x dׅi6X ȺD'ViNV|>ȰAKyg&Nh?JkQZw*}k& sgUܣ^7g+ ?LV(mDmV֍Yi;@Qd1'5 [sCXg- i@6PQx='.} do ;\?< ;7-Ԙ_S s@o2 ;k.^h( 55$RܣHq?LVެ,wEKWm 6 @+>h͛7*K קܨfJ@6Kٗpʽ^yٽCU*:bĈ?bQrW)}k& sU;1qG"8b2d Y;VBo.8ZK$%%EFl–;R洁 ָ_~m}dp-vS˱O,~rmTե65 ճV۶\vYLVo Vjiisc*ȝ䤀^5,NILLjrCaŽ;taGC@֠7-[޺uTsV5%Ԁ,'㟦M)<d8atɢx kOޖrmƱhsg-攐ܣޫfsW *PlŎS ٮtaOwb"A f̘ ݩ]ƺng߯iٝݟg͚Y@@fphnS{" ]R2ko5` m @Õwi^;e97Kwlԩ{0dnmzv{$l3= o7򠔌 f2yL)Kh(Tu]vEmbY f멏PPE =)5O62MT) E3W.T=2I2!Ôeg]!p+R#[(@Vه'D|dnjnbȞ?+z~{A +R(߄ nݺeIȴZK*:lLƅ(RC@idո` ̠Ppdnkg[#)I@d|@Vөaaa .=EE}zlQlܸqjv٣葒6IE'Y;gIjihFuΓzd9)`d6˳رcn up k6"^3g=͞=;)߾FI#S(::/}sxl2)&bY4@&l6'yցL1O}Ḉ_]F||6lؐoyT}R^Lݩ-Z#7ZC6TNC#Hc! 7*UM6@q7VX4mM,OKK3h!i-EŘl$n2<n?@f|qߚиU sLc',Tیl ,•_9@vAdk>M-U&|dXk_D!m {z}pMkE_]3tΜ9:d*5$R 5ZR,۲uc"s\2SװD##)nSm-(XӜd@vWSu) ߙ>[ԏ֫{{^]}eNPKX]bvVqA.S$!vQJNH'Z2wF*EǕh,T x,+5HcL@P<+=꽪yȼ*2X9n CWWR&c)K0|ELY/f͜1[-e 8Kŝ$F/ĉ56R{{ZvYFdVd^̫z)ƍ4m?YFnV jԂW,++@-*+qiKoge]0:'?\|Ҡ͛6ORLD+rߚ ȬNiI*=j3WRݻwH#@&N_2?[FMb {~|N}2t83a36JѕCk`~9HH1˭?tC+pڹ `˗˗-3M极Mj͝;ѣGVҺV[3k۔ #^̊_~ Ѳи^qҶ_<pc(0^G@3Dq(22<<"y=]!c횙ٴQݺ錽0 Uh|}a4ptJfodnnVP{{UU2>y-[H)@Ui |iK6*\2hƍfxq„S¤·)ŒBL]`o,Y~ȑ8Qj0U* -9}x3k?wZHmCbm[/^46#od~d*) U{{UF2^IwJWhNؓ| Ҥe[ԬרXm K) H=e*j d̲[n :i +S@%uճ ŕ*c(#?NK}k& &Id_DPNL |X߸=W^yV8ɬ"MX|UXp969aI/KT /n߾v cP FEE 4FDDllcccb@oA1W[36:Y^Ս̸xA2~u{be*:uʸIwn@`WPa{ #3]SjbgWkݫ+W1odPQU ʛZ"x/ 58`*CFΖ![|E1,=2Ǐ{yzdťhD[3Y.!TS{{U 2#9 +=he,oui%*&5 eBL8R\{)gހ0nܸBJ:bw/ƞч_6ue;FV֜k ?ΰ|ܹ1.oŃW\f~:7=Vd9}ShMS.EO{m/cry<2?e:c׵kWvvP ͛Ν;pm̍2'&&[~52Yfo͹ Ʈ]fsKPv~X[v2 cv ~9 ϴLCK0Q\ dAo͹ ȰX`PUy&{_j=ZA2Eyo9& ]x$\x,_^>iM5ZubVѫ= lܷdxNy#yXNw^j-Ppxt% {,\5/,T9]ݫ=] dv嗭Z4E\2/[ȏ"=:Sx™'22eSZlc/qOVܷ[ѪU%D8ϝpzVLMbe*jq K1gWCv֪ǏjO1sY=kqtdS3x|fdI O2F(+(}k` |Sll]l,g)&6%Ξ=Mr&2ydjbYֽ َ;t3Y_ Ы;W{Ҫx+@vnZօYYs~M1.:/sޫR)~xܠ9PW\1:2*"PMotM6fř*wUmCWfc@fBǏs/lG4V/e_^.exٽC˖(0a}ę;H}kT 1e .K .>v.ԇ.ԂLC2vIa)ais1eMa=o@ZmYqkkk ټy"| dŊ"z9EO- Wd_VN8my lnŢ嶛g?P 4dWŇMCJ]ـ,`e)o+N[lmf立R' VfFablud"c5m= nBuZo7=#\[*m KI7!YKᛅ]f$> d׮] -K_dzJd1?S%FΖMY.*,bgyPbe&N;g@6u=kۛ?n{d8\rL]gy*ƑFx& (Kf(zee+JrVS< zrQ%|M۵ Uxe5Y쥜 ǖ8/|"L:-TӪw1رCBEEF oo5dE ú[nqHQLd2)Wy~ћTj!OSiUJ>ܷ289V)}؋rC|#ŝV& 3p6:L\?7UF5$m5x_EE}zF,};; MٸqRSSm2mdān'{+N#Kg"`jdz)YH c|ǴqflmW7lۯx/j)f3' 3X*>yƹ'WCCjӸlV |dpGv34e( zpK’'Lt_2T^恓de M$E{2 ;P[F,l|Mo>Ip{W *\JS ȿt`t̵*3 âW5![u^j/꿸[Ē/<7\P9h'feGي-@ۇ}kH >[F'ۚʲ_ל̸VO< so\vɓ'q阨π W * dO;b`2m/m\Ǽ-ꗑ"08L:h #kqdᮝqh{LLzl`!H! 3p ,Ocm:xĮ 0֦ܐg:ݻw>2\)؊^Y}eNPKXec >HJ <ȦuQeI 棍Fa{yv!6"|#Tɱ-",*ְ߽{BAn^# YEDsvsƀuL2yT@vq6bՎNz'^lԋ1T] v-|hRcCWj 2S'"NSX={n!-K0KEmۇcS u(egg.Q(䇋sp^piÛ5iTXyh$¿ά&ddf_' sV`E`Itkؤ__-G^$hALϓ-lď̟wހ5´o{jIƿ+"bٓy.-/_ %>}JI{tCf)ezpr£ӓaW zWs'"L'47s "k5SxvsSTWL w 1UG}u@f#F߿?V~5o"|︂Ub#GdϼyQX$]C~yP0ނT=<5Lf%ȦhӴQ=6Y.!ۨɨxݔd.ZMTKl!揎`̭Ħqp85v@*4e)2{ қ[2 d9pw&25^GJKN2~atx;r$&5jTbŘU}ne1g?J6ǢHV2dF́"QoNZZ+WKȑ#";wζم }_U4|3ʆrW' fs ޾dA\1t*7Rȸ۵ǔWA߹ sWLrk1^0>>͛dѠL<1w Wj7Rȸ $XƝ,!{!w`4.6ouEdt!eU3':X Ȍ k=eA$~0}JS4O!!N+U̮k+j9[[J|XF@dN4 |#Jx<_1}i%M-Dg-gRuO  21&C +]AP ag0c҂̥@)JQX\H"d1;cV6i$ֱ++dvIMxE 1eJR^P ,6Vo|X0W$c#5fe)`@fj&H0qZZYq(K,H0P'ӄJ2bؕ|۶m[jdH@fڔW{y;8SB@fIw 9z貎~$:G+$X Rt_Dj6 "#A1-G؛ŋ' ,Ζ^)7{]H! ްw޵L!e^^02bj;mHfK1qZ`Zl%,}=$ 3|22wM7Rlidk۷[,g@b5UE9=)7֓zp42gs33Q) ?~y;w}_uK jT-r]cQc^ =rX"koVFY뉅-5o_F -~aoZ^uud$[rF&>2שzngOMxpR<1~xƟtb{dX +[7C\aw5TjeZQP)d7+e͚5̳>9s\s^q[lYp cM6}toL@֫waQG~tz_x,̓0qE%:c KMMZfOb<\qz#IL+o9@a'xٓ^ jU ۿ@ ve!iS͆Gg쬋/-0+6|4q17Rȼ-)s@g6=OΎg"}juL6DO=pҋ6IGHFjTj:# cL&A˖.~f =X;hTnDWM,ˇLWX@ 8s@94zXC@ÎK߅緷/.7,/E'/|]q.*)s{(Z)7WV|2 6u^_\_`w˕-mZ[Tmgh=Ɨ9`?)`\ ihgJQY7L8/ ͇nO2ES+E bjj|13d@fx߾ǺWS[T3fZNf{g-1k|"^U9 U yȾ_Ln \ME8b{8O$-g~*0ާ3d@f'o9K<7n] {Ud >@@;t%c 8d8lUÊ"iBBR{BNKŢt7.pP^?`ց̱N]MfТ~2\ToQ G]9ğj=\_Q)YgVRDV;]x*2ZQLR 8d8fhwvR'זjK4 YuX9sh݅5= Qɞ j b)xr{Gn൛9!}UǏakڏ]W4vڬ&-]d2a.jQLepd2R4R2T_s)%T}yvN*4hwW.,91 ,'OlpӅ@?e QyJfmw dh 8 d7Q_Sc XҵlhΝFE8Tjox߰ՀE[7Ef2L=B9@p)dF83 8 d{۬`b&d!NhWVJ{{eQiʺ`<(.E뺵BMvP.)oA |dK]VcEK(&mrf{R3jlFU)яͅiX .*qb=Fnlx| d/^(P/0x)&) GV *-sFSU*[u|dQ7t֭VPlV $Ņ JÕ-c#~21b{8 d^Zd ƫzEqU+HlsRc8Z5}Oo&d__}eYŸ>:7)?&?VF}RTO Nk| PB@KF|d@i#Zx/iDƱSY橉';:-:wG^.iVM yCF#ňdFT83 8 d yCm_|vsGZ5k8dpk@ٶm4rx2_K x*4ٳSrm7Ϻu먁O yl񐁮@Z|=ah&D8~d.[Tp?5Ygv~slӄN~h|\9!][#B@}3gpٳ !::= L6 2cƌoٲ{^47t?ve[_[7_TpMʓ-*}LfL{2,9O:SG_xϙ3gѢE˗/O;Xvŋ(3g.3Li@2@ִ^}G6ܲҔau`E':lut>!d|TgH@3,jbQ Uҽ>;}ޗB@dse޽xTGyN:8ieE{Aόbcc]f%C*7qJJYΔ!Flx>mڤN *5[MhZ(O{a՛ԩРfP!Q[lyȻ=8YLL FtgZ]Kf?f0f9eJJ[T dX噾wƓC2 [ oƍQu oWXHiM)͛څe@qllBڱ{Vٻĵ_%&|vU8353yRƉ/%.q37ƞn uUrnȤh\ƣG֯V6[o`=772﵈s{׮]^]@]? ;w\PE}\dY}6v{o߯}Ȯ.ͺgS}yGcJ >u,6s+@@f7a7]铎'84z~ܮȞ53 =W2ֳfzɒ%nC15)Az"h|hIdĢ˻Gl5f@FX)Yi4^e4SX٧K)#;nͱ',` )d`><|ğ_ :b-˖-nd2'l(5o83)o)2ҌGu_rqR|2ݾ^nKm U0;c#=o }&z>e/z +eQ!sK9@it#H{Zd{|$!+OF2ٍy7}PVy8дIڥ81ы֮]d͛UpRB?UkK)59d6,'8x ik+8CC*W._%'T'ǕƍݺucƖ`Ν;6ՙM(_ ]s%v]N \4dSeU3`nPzk.^ܸb w|(aQka77n8 |9 dϞ=uֱcǰmqe'fE| ÒP̀C~H@fV˗|ۈߥA\jz*#>r.rB1["*o cqqw/.։'@Μ.g!_ L\ bK~H@fVʕ+ͦ(ÀIf<+ ͖hA%k~ QC3ZX?G3RYg K C2S?13y2:l шk֬87a-) R|eQ\_/L9#|RC2S}c۶m'.l)-Stܐ%mݺEٻFΘ1X H v)e][lB|Bt !aqm,nxҥ E+(wEG9Ν;/ъ%m=lДX~n|RC2S} !p$,.1pѝSx]X)px_yuȲhؾxTaR9GX%'|nN 䓈ȇmֵp L^oJ'#;yu^,⿲^bAD%v).^u쒗 0L5(-XFf* E7Xr$-{Զ(>Q`޼yV6p hfSR ٳDžԝSVɦPd 3XK.;O/h2(Ra<4Ht1RݝS@@fJ.>a2t;ݯE \v1vYsI)]Rk'ǔ*"*dbݺuVNR5"*i&?+?+sӗiYo#}vߚÃ6N>m{iA;Ζ-[lBd2h6ADKKKSu! ӕH1Bbb"]Fڑ=z,N ٬ݻc 2dʕxp"(K2/!3 a=dVsImCB6[VӚӺy$@2l bT><@ͳh?KNTo;vl遲yڒ!YqҭgV]#ǞKV>s==ձ=>?'3QK [f--%,+Rvg@ +Q}^CYy̱5a3Eנ4gd#!cKwfŁ x%1|ǏZM+)8aj9چ0 }8eda]rՃ2bdK@\!Ð^tHwIc#F07 +{|XqM|?8mUMDIE@H.ڃq0rE b0Әx Ƥ6[˺ REAރnvLiC@fMڟŧ~sVFxoZ3Ub\iL@%62Oe<@|UT΍nUÃ-&^i4H8⦒n6Rzwd4\})ޱ%+k% @c 3G?¤kE,Cg()qFǡCiρ `F”$" d`tk1h$n!f*C4+cya7ÌsBCjԱ7djDZ` mV{m0^r>vMV  Ƹ8]oE:'`t+1E@LX76 >煘T/BLzV0l^Xp-e1m@þ x wA8{Ν~Ecx$5dGu\d `"(fv`V{Ɣ! x'əͿ(,ls,^ʁ<dO 56bm.`3 ӵkעbK?]#%Нpru'W=<@c`/eG W9\5-N@v %Wl  ^I/)q?T+40i}aJ[W#G -=<\vzP9Fz hƔ!vwRvߕi@[q]Xf5H_w2 pRmֲ5W1>8;/3jˀel4ŖūꅘW, c^Muc;_A@]wڄ"Ɲ 4憰ZX}CF~Y4ˏlVe8g7~̙Y"1E@v08xC@vGؙn.#l1dثW yd`(?81nkU@;;gynmuG-pkڍDr}6d]Bw? {Y؄ZubP6̷I{pjRnc vL),W-^.dA/Cw"!2LYݚfwJc}bAd+ AD Sd= k dhӜEXCvG 1\9z_8WwEI2D2Ȇ& BF/=v}xT/2ScL&|9Al> ;Y2YE> +S;8vOdh2"`p#`6\;d@i+bkUz`}ܣg/2HCg 9,ͧ]v=|**2rS})"Պ(1 dlu9ܛ<'26e)YsL d.e;SuzO ۾}"G@Ƨ"pÃS\;<,zvEJ-3!C5d8>R Xp5; ,Y1 kYb_t~2h&2opo$CIWp혲dBΠS3&Yw7@&]Ϧ,dײO@&Z,KCƀ_^$ 7RZ> Fd()`F׎) SWWrt3b0w zO1d~&q +3f4|d@@)ڇG@LM vLɁ̿8Lj)==XP !H[͇M)϶gΝ;# 󖲔oTTPcSmt8)a!:Ey^QXpYXzMX&`2fWiڔe.#:7k֬4Jat2ZQLR@_>'2xl *m{v3g;wbu%&&ٸy[ 7SxH0yYL9i—SSS-E@fQ@JN kN*1}%S[xvcÓTXqG^ʦ,]dgYFL+VZ'..=o6()w=j R p혲k;ȸc"ͻ(^YFfoIϲE7xOބ ̤a'mju`Nldf>Qk^!mNccRsxźz`UF̓IJJRvw#Ȏ:.pOh6)($ h2JB *ڇ) vL2VFEuee ȒQ,'}v&}~Nqދ7$m. .XqU[6`KRg6nRk8U,p2./2cMxQtPFT.8)}8 F7o޳gL ~7qR`o{EG1b()`THHRc<`FLδ}GMvf/=Aw|3Zdܹf VYqۦZI6N;2tN*4`p#`S8-fӚL֣W:FʞpR+YU8"јc+aUj%aWC)6j'Y̨~*󻞳եH+1)&3%2"L@M|=cOV *W Tbŋ17j;vԵ׬s ,0ЬgTnhXH@f(>)kl*11+KcR6/ipR{ t]{dtR j14v fCM5Pў={̙i&-ǢO9dxOr` P^D2?G.U=w= Df&pR۩_6W aR8M U,+Ib*yȘXRjժ-j5sUzd>K}Bb:qT%^_L蛶lӡW9Ā (}km q :Ǯ>|X`2v$}xP~kdGa+5k 0qWdej=U >yU2RvF .8p,֯#vgˀlUa5{uPK dQf]S=2=(ڇ) vLң&)))K.7n&c>>'N>}:+q6^䘣 ר{ԄS'-&sdaB 2[eB )d bൺuNڷoPcJ+2d}? ~وBQFI7%; ZSrS@aNMBfacE CsH!öxs֐!++Aw}M6m񦂨@v .CMLR@ξX`ݻ[|Nye(7:+hlՏ?EJ$)pڵX֑/^mݯk,$p25̒U_2iZńn8\ #RV]UH}g.zDJh!rXQG1l2 ;}XTV+pIjݳg˫Iw=7w vL d~,]+e]npBBB#S Ȱ_!ÿ'lbL!+Tl„ v޽{mב2 `G740Z5\pbd)kǔ@&C.{:dEl/y"vƛX2sW c2ƺpb 7oZg)r,ttK¸ 2XJ,0'UVȤ^hR h,2PXp/X2<.\'ŋA1I^*1OYY!vtEKˀLm~#x%SG'uT! oSφ9#Tݝ݅2d+W4{ ȼ-;p"?vHvtZ,@&^NG'Wc+8:xeexEܩ]IZϜ9@dX+<21l9`;`2%qRC׎)2ySE"-)Kx+2_4lAtKX40βuAIvtR؇La֓ަy"D#BsM\2d)k_6VЗ\S2)?/n0+Bڹs'?aTs63[5õB vLqo,RQ' m `62qRIնZXBs 6GGR3Qj d}ҵ6*1E@=jȨCc얰+l>gR*6 ٳ'VI[&رcxډ[iKف6bF/}ڇrI vL2k-@|222,Iɡj,T/5U61Udr1K<ŒIaȰ~4&C9JIE b#6J}xD *kǔq 5o\wJa'-YThe+؝l5au{ҫ9^֐}<'bHuOQ [n @ 8ke?>(ELRv\; YoI:;zwxdֻْeu:}&+b[CWlїx322RX}ݻz)R1ΝKNJ ry)DR\;_4VҮfWHxd{W.wV<:iŜlȖCs֯_i>p5ֻ0/_z'% ]U]19 ҰV 7[QU׎PW)`kI+)f-td )B\;. 0yIvBÃG{aX﷏?nҲM ߝ)UZ댮 .h۩ dUȂd@׎mF9Va0c 1ۨ Rp2l߰^ 7v` ɏN|ٽպq0uXpܷ_Dez䡗Q0xGvb;A`ں1iUlݘ?8r %q]xҙpXaT ) vLycWE =N8%7L{tf"g'էNM*Ӷ}|K4wSc#>V ڵ+zkŊQJT|'L?|աTQkY 68S  1J!T׎). ~|~fօYM' scpٲeM[/Tkt!IZm!m>} JV͚5 [ڟ\f'Nૼk_u({Zqqq8LəZYmT ) vLY,5ԹCŘ`s3Ȝs+**SNTc6S"Tbȓ-\ƛ%6~x 0 T׎)K@v96#K ~87ǣF@Flźe6m8nܸDNl^6a8;%%$g2!k+];~4TQkYK7T֝BP|R (1erPbpuQe2tv,ran݊/`^׭oB dXοdn \;~kD ]wB^xۨRp혲dO/rM3\]B@揝f |9"kw(KZm~mK&3H)1e][ʧiÓkOi=x@.]{\;~t-.Wk%jjmQ?*1e }ji2VlV˗/ݿ;_׎QB(ݵ6mڄYKjmQ?*1enmzvkn' Ǿjf KMME?;k׎QB(ݵy\҈d)`JQoȶ?l{~g>9 =zƲv@*pw}CSGk3?;;L@sg @f6 +ݵjFr[h0F 6\;ld% ˵M5e{Ѥ b&k ;6֐m'\28cl̦r>ێ̝ JVm@vs(_ 'Т~ܖL=b=#[L-WZWmm榚[j*oJ'Ol5K)m/h׈̍-N@*dnd)+^_\_Aúgd$0OVa_N/d>2餡81*Īj,7*-"9u|5B f0ESUngv%ᶙ֐)@ 0Yy,぀̙^ظb˵<{ ͨe7;SfUOjģ42 drYZ]~-OUS樓7dv4>L@ChR*dJXfBN*yU i#jľcO V褗M|]2=ƭ( Sސym/oO4Mn 3p sbRYo m>.qkwR)wv6!zSi)1&^݌##3J8:r}{wS 555A֍1 6^\?@68˯viFHdHR% hɆjw  0uXt9%"_3,*,zC {e"%=h2+QZRodی&ߌZ  srf*7D1kQBdK ˯{J ۬ekŭ ,4)%u\9.9H  kKƬtJP !ÿ{dׅik9H%*T<犀JRZ sZq* T0d9L.kzK;\XFF s"gXO 4pS=g*;)t61FtYU,-edMEƁ1Yq_7fS|Jm m-l56t c,Y;Yl\JdM $&&bʇ U[thlag㎰C@VΝ;˜ddۗrpN2紦HR@S@FrA}"ZM0d҅? {6 u\bȖ-[ F 3#H/+@@e}z2C|pPw'đ]*.2>tM-U&(&&:T.hBsXϮѿK%g qFIHR yCUQXJϱ6$֐;C~rb\ d{RnICL[RUF"fzE)s*@@ChR*@@ws{| dB<^0 c/WVKאZlD| 8e9d`Voql_X?JKݽ{l\2ZQLRd^'$$T!}<k$eYөaaask5d3OѻŃk%` ݳ,e)=R8f,oBǏ_n[,;;l"?d@׏L gy< @yt/5nP^q'+2YB r,vՀ8xujG`"{bs :P8]l7q 18K#!̔ SKU6mN;+iqtdS3x|fdI O2b_.T̅B&S2vxFF-{} ffv~.jw&Žta†57iN z* - \ٹiYfe55HȺ0;,Zt1}ڮR)noEϘ]taq"0˖Cc /|8e-sl@*#@VrAȤrQ>=F5S_/Ͼ}yvR\Vj';4l77ą Q$R w*@@fݱxrLؓ}2H2Ӭ;wm„S¤·)ŒBL] 7,# @+>Xr?;wt fڎ^@v9EO- Wd_VQ=kkN8g9 >/EK|RwBۇoFs[h$sC QT[,Z_Y r oMY0(Rwj@6R@Se5?L63IWK\J9\_2 ;SE׬Yd?zlx)~W(m3eK ZȌ7}AM?p%s."8z'IYG.T*1BO6oEosoY9+@;w>ϿX(o~g_a) 7nJP2P`K?d,FBfK4:2<)߾FIdC&9)))j@+2礡̤%(TҤ\#ʜFk ڣ{j$̔\ t Ӑ2C+@vYXZXe_I %.QVi0,URQӋU9r̙3=π ?n_Հl {zn~vX'o.A6]Yfk{d EHRdB vDְˀ _-䬚P"^lֲg 'O*T'0SYBh իWkX3 Z2% iSl{q}bآLcۋoۆW3gE0Aڳ2_K|.隡AHf'FM!)MYP4RS0-U󤜍S%;vX$1P2l0pEW`&-y7® |Dú1T7~g@jV >}Սa,ʾX'o %r׮]!S;JCpJ F2-Yd  9=/J{l`(8281>Z42 y EHRdjB}; NGÿk.( QΞo|6@45 ǭӠH6Ŗ}VT! dpFZ`ݘLh/lʔɣzV~.*t'1|y .mG hcFETR/ Sl&`PGtl34pX$LpT #c#a35b'SGBuU i$S[/3ϗ@fTƮ9_`8pA7m8mڴ'Omf:d) Sln, dw9^4+q2]UdE:޲O2YHOw/H^Wߍ,mH:иaٳ'Ma1| di~|R=N60yRGG_گ|"8Yu?6wdnnU )67N1j6)IWˈS v ?ޟd2XR5+2T3Ǐ!5Wy4UzTښ}!VXfM1 ;݊w6sX2HR@M2Oe7l ,_Os"a[L҇]dL8 0u֘nР~p"{8Gf ; *@@fP(F VSvã,Pjp2JhGRxY2%%76c b3뚷'mȼ0O  oj 8X`kȸ,aI:uQ̞  K % M$ܯgyeij ޲ @޲}YH@/-Ev(@@F \gC4Cvc2-'[ԏ>-.0dF)@@` J!W2϶KLL i [@.h޲,0|Ӷd{qdn2M y6Vkv_G'MYfm//?Y'Zz~AS^ 2O޷&OLےu% sPl*  STa.sMw? FMCALrي!X@/֐KK9 Q? H(@@qqqu>mv b^w6~/n [plGbdh 3$E"H+@@1Β. d-6kY`(&~WTF`#G=@@f xpx> |Ё H+@@5(uIa)Aq 2p/j=#$XZ*>' 3ܸo>g)`F25ҊWd?{'E]BuaUa%!&U`O:cNEB"##7[L8.77ҙ"d{.щ2q4WҾj@*ku֯_ۈ@@ ct .B .QL!djcMYu^]4`p[h0F .Qt .ZLƽV>.ECc;~BLL5ccc}d@uZI(أӓaẈ{W2xϻ qAyYlv|ܬ_嗡C+].vXqV?" 5.V\DDsa;~BQ:%K q#L{m6<:3a$dPΝ; rdnnU ̚5 ~rUmsظYBJ+\24|`OiN qWAFM3+Vx葍&<+ MȰWE n u~V3K,#)rҠa-^>^@@f!)@ )_ZJ0E.]:nܸ]ժS/BReVWpsQQQ%6cƌ-[h޽{^!ö{`9]y^bRc)`Q anBɵn:4mՓ4n~S{ťN~9lv,]M@cx҄GH2P)[ @7pժUO>5C1Y ?n_Րud:5dwvk/zt9FB|it;'2>2OtM^nܡ)K5 L rnܸ'vҲQ~I;wζك%. !+,R}l2d*c)>d %f/2cBZY)I&`♧hCBv壝V0v؜Q קܨf@vi~ ïTw/[ȑ#uO~3E~W)z&8Q+K0Yґ#ɥWdӇXj)3LEIR֭Jl&,>[!Z[4|f8}>DԮK`$G&0|a|^a"J 'Od0c҂̥@) J(]2D{]Uqt`,&5 (A@@zGPFCB5Bhf9k̃l<9}s6z>u?18ÝV1+4Fu 4` dXULQU M0}{QrCK5:Ɖ6mdO@0 $ȺD ,aqh+Q0fe)fSf`@f La"`ae!-1!Ҍ8& FZ kvl&U5kh*!-c.??-'͜MsvԉNwlDVʠ% e`YD݄eK+y$d> ) lǜ)Y "ct9h%B݄jXyDf3|? y}ƠT]8z,- +ꏇ;}j3Ƌ@h5*2aƖPIIIĔnln[XF סn'FYqi[UP<..kO<[Zr pY5e]֮] &32*HEzJ/14~FX<,9yX@6).KD,K0);"\z*iƔ%;`XF"4wɀ7@}ܶeL7:>mQɷ^{n#%?!YUeL%*|;$.^h0Qπ <9Lג&7J`]֣G*U,Jg =27 JyJ *ܹsfj' QLעr1lEcvD2rϞ=QccTם[۩W**TElsBG/- 9B(ä@$+o>[]Z‚Z$oƔGjc CԨQn:i_KnZVW 3b؆a \ܺu'@pH2hIR!>Lxb]ueP@P @,3 gƢ={[VKXtll,U b8񖣴f!+@@yPHRtٰ?D… X/@*ۆ?o|r2(=RwȨ-Z2ϫ([r٘%/=e^l955'oZ^ja SlȌD~CQ޽{=[Us]@OӭZ-۟n t%Zp#[ HBfΜC˨_R|@gϞfow~o/*4){A@faA0Xڡvxlٲ-nWXsW>eӡľSW b~֚ơhfX-m4[vXv*2);L9mXfK0yik{G_ԟyzRڶ&|1R&Z:699?{]C+W;w.K[2i.ڻטcԯQNUh{B _c@924,rB@fpPa͛ddR jx@u|l塵wNط~Ҿ'鳌r/}p~F)R'f!  >Wbst[:H%cF|R@Tk d)`9d p7r//d2drg  Ȥ>]ƭnm^|;w$L3gΠdgg2)`d(iT)YڴOYgvx ӮS9pł |[1+e8癤!H 2)N*UϪ*m̡4pвK䍄ha[ER"(Y@+KȔ1HyKfܳh&wbTM29 V. ,k+" d{9GpXd$c,˺gedm{6Fű͕׮]3UQQQ4aT8x ݧdJ4L 5@]GM sc/,_J6b19L[E Z)NĨE0$z%+VmP oIII%g6P,2FU ۷/u(@?dtBfeRIobS̾^miRF]2t~5]f"^)QtrWE醟d t1HcTjZSG׃4= c`" Vl-vff bLz9!^UN DiOiX $k.L t ԈMLE5m#v]:t#(G{ (' pTG8#zR:Jd> ʞ#v[[@&MB5,n2P~X B"TM)- H,i=o< k&| KW^BQHPQ,Tj*B7Bi4\^퉻.8Ң (W{aJ'2l._䊉rt@f0^|Wf~c ;NMo h g$&&r4Hx_FKO* ?2(lW[?}NNnZNڬm׾SlW ܲE3,b;w.O TqC2Ҕe0YmfPF7њ#! |Uw/$WŤtI*Av`F.TՂ/ׯYf'mI$y%>XMOnmy݆G߮fٝ 9M5|Zx#SbʕFihN@fAwXF@ޭJ ;|0SƷo^r?䓘J˖/[";o¿F׫ۧOd]^J1y@E@F@u72&*Yzz:&;;;|ݘ%o޼yq.<c dOuÞ>}ʝg  p7eVM.d!K1_Ky@&+6+@ @'4/I+0Q޲e u%!GZ! Eư1ecB@޽w+WQQiqjV[M.u3_( x# JGa#'N_7NFMkwA(7$2Suܪ>4%<9\=)F@_,1wr0rnZ؇ .ŝCF@!._c& lM@63Ý9n̝@wvA(77LjbEe1{'J2fvd.._c& ^X0u=zt=}͛XAL c… `E  FaSgwSv%*3f,E2hR!UF\a L7kdF*ZJ1 H~LW4Ɛ6SNٕ?⬥]xH J~nah%8Yט t#sV`M<ٳgF>}:@ZGO)@ xŋ9o P?LO㓏ҀC\9l! ӨLPuN z[Uhɒ%y;KL71%ڰ3|%٢@fK(?(ט Ȕu ,qjVe]վ; ʮ 3>k蟀 G#.,&sGbJ]*zۣՈo1ld89{fkZ|LV.\H|rs _!87MPL6b$☾oђlO(Wac@.^1Cu "ҥKStNOHR Zdjkɯ_n5f2;v@۷ϸ2%&YEVj-fXAX@n8 J9CsXU_UfޖHX۷ooݺ5?~l63O4]9_pP;f2lJLL _*-[fS. ) 0Bݱ*9|uU3ԾtCheK4 Ljx$҇A͎$}WƠ+,*JAc@ODc2&2/*˗/Šϟ~I Rz=K~D/Y@cjf4hw1))?|3R&w? Ƞخ] q.mwRK 6 ` ȘЁ(\kǬk %l R=sA*@kXmWA dFhܥL:}ABƥ@vU6T=绯Y@ S3*?ѕ۵ Y c#!)B_JD5r#@L4Zi6 Çا"FVww3?R9<7yY*>6] 񁽊Ydr2Gueg(m ,ebDeYQ2䆝,?̠6ǖ0g-f:5K`G$0|a|^a "J!L HXf[1r)P Ҙ7e4̃,N=sU|gʦ;5Xꍭ)ONqBBΘ1SD)؀h*TZSp Q;LigK|"'9HqJ5vdATaijW}"RoAāOؔ ,+c.tt.`.-&:#ZX貎~$:lãu,ce˪M<ƾ ]!6#N~`ì:2"!Ĕq/yvf_cX (ބ=4'ϑF+,( n)" ؂-󒱎2fB'Lw2bl8i0l6q !xz~"~} 1Mq\]S/y k d8Dbp)!8qE2_`n ]OBZ2.1X7w-{ `I|Sҧ Vm d u`S e xbg;HdX87o_GFKFNSv2iZSʴdˌX zVzsn*LT9-- ܹ?9%@|>,j<46A4ʃ-b$d#F)z!˓,NU PLH#6llo2S+OZO 0 *C p(6z1؄8 >2@t%Yr VddVY)))aV2p ,sUܑId6N))7-qbD218g2,d' Iq`gϲ[x0P1 M %K*Z6r@ A"N,g# 夤$tLݘ#S`3a!`Td;ֈnٝ~Cfffʎ2`de38c_C k20boX/kvxTB~+̓g e,G[]9@f d O*1S1`w3 ௑0cc) UAG[s1 yݺuGjR8RdQXʩ{$}z #N$Y`T74j P~*ʄt k1EMb)8)[89G˂mtS[)t3L8ev vZdg`[F˝1@@bx*'AV &o۷.#( ۳g)ɳE8 .;5dn"Ro aV lɿ8j'MEi.( S^wcDyíGN8IzU@)z_`AԬľ*̓ pݻweiE.cj[d*@@NvJAΩ۷1|b5Ja6ߠТBd'oL2j p rv&J_9}"ݑ[Nm QOZˁOOMM+~o5B m9KdV`($`@&*75B)3-_[% # UDUm0paշ|-q U\=,zӢH?R! Ȕ~l<ơ7- ddsFFƻMbՊ2c !l4YɌF(? P TA!C.ZJ@F@ԿjV QNuJO2Gȝ$ [P~B[AΡ2i4-J@F@tsӂA эG[2'*ρLJK0qrU22M=//ZSǟpJ.]/b6c~O@|CevT70^/Sճ4]#,:kddZ;h\!2sLZ3j r s( U22m3uKJqA*M.x=2=$ [P~B[AΡ2۷oΝ;F|ỎP|x!IIIiiiW\XCV Ȍn_ 3/ s. sqyB-kGs%r'R L@;w.Wg}BJSʪo׮](J@F@fuϜ t?#<taea]eaNs xFvp. oV#Vos̪@vE|6lׯ;Q7o3fU22#MFF}@c˾]-FXg CEJTXrLj rYd999PaڸqgJP@ةSXE=Xf*ݼU6 -FHVXaCyaR6DAΉM  NAqbjewejU22޴pZٶ]fN1 fX˖-Cq2zQv*7ٙpVC+m6#LLL_pz=MaOPALlmaO~cnX"!y B(! CȜ9sB"N?~,dm 2o@&]lQ?,a!١#;<~g C sȰ1eo/xЬ%YȾV)To(x0)㤨L&VG4;}*6j;km E:S8~7/!HLw ٠T؞={feeqsOy";% xd06-̦mڴ hcỉWk5(`X!E @]=Nx\ $2#@V)oVl#ʿ@v5L'2`U;@zjiݘWJwh-fٝLO2f)|@8}Nr.;g2 ryPٳg.]ض|Dk&p@Ý;wB(!9rz[sn<F٫OŜ @&]@&R\C)Kz0ڙjzvSSSɄ6FAJL'N1 >_^Ηh;v6LlkddfR4 Ģ~Ţ~˒0=DNʖ+Uƛ>2 paˁƽRJL9upڸW1W@Bk?YaɿC \5b0~22RnG | bZN-Q4Z7G 06@Nn߾xW\ʀy&{a63GH4$O SB4_Ue&$$FnQۦ,PL doWLzA{@(V)K ,#{x"!;9] Crm@oܸC& Æo_=U l۶ml&Xߖ} Bۯ*ˌmp Fe dX1vY{-}+,n[d7n`q(^Z![C$} c}SUVFVi4EثܬL<_aQ,ᔚs\,+߭m۶Xh߱1r]ā-r m-SYnnO$fe CiPTTt8}?PŦD@F@ѴpBrKå9dJ}Yjg@;ye#P`XK=Xg}U| ? 6*I_UPd Z ȴ; 7WSE8O7d$u Ё1"bWf lݺ-'\@a1I#sa݌E@d~"ZmeAi͵Z썡M.M'l7d~ \Rirq#@핪 { \l@N9#|Be7s R* 9 Zo!1rfB)))fcp3fFmQYsJNN-@*HVMJcK;q",#ҬA `*/ nZLdC } N9? Y4ŋ!K!w޽+f&ۢ_d,/%\όϼ-tem5d/,4f̘e˖Vp 2&wM1v)-ƒk!w<|!_r #;dIQ( U1wtg][ylp Ȥf-6';w赣O Y2e0'\رej_t굢1(:ulU21 8g5z7n_XO4Ts@֍a lcF`(Bm#*7_;wLrhHA+WکdkVvlPen-CuI1xdedNzy߂j05~#,@/ p .~>n|Q -S3&]\nSp,.eg|`c /ԸI,cBLXb W6@ *dޞK7UQ^nf#{ĺ|U{cu[ @vU2gu[}2Y C4>)W[ 38AV|+TA iMf-*Zjt':."躖_DQD U8"i@PB,[.!$V(;ŜˆKf(_]@԰9]E_2FCņb MΓMY.FXrN'!BE?~<^|#NJoGވ뚘QiȮ\q… )pg @'LQ* 24? >!dg66!QaeUd36+aKKl3kGWymYN ]T޻9wC@|bڬ?GL/Yē |Y% -BCo,ƪݝ]moLdh{ʪ~r^Hפ_k7X\?7]p} YqMz*+aͪT#DztL蚍Xv@=#C@rJIN(bO2>"!_;4֨Znfhs@Ƹ}d͕f=l~aʖiu.ӓ+VJMfOHݲu{Cwda[K?{n-;ӺqR?  $ &BvX^n歛, > 6f a+SJ[&sfX:6{쬬,yc޾>v.~>Mܘy۶}v 'cx\Gu)|!\d|EB(v =b}ddc{vm7>s`LvHJ_ᤴ r3.Xٙ3gͭQ4-mժUh.O %i;Y|b 'f} XY ?165uֳx衻Xb+^9P1V>*z_ .: k\ p4aȖŊw^0ݴ ##3|TTb XPrh1c[b*,[9)2XԽE}9zn'# 35p+4j_G8ĀxpGS>}P\S:rlD* ;۾4?¹xZr굃2Ɓr߱)j.0%%yL6={any;!$ ^xknY>ո8LF@щ]o40]r!CXФi,)q.8ry훐X&⫁q]n?T!Ov*X͡8߻#! i mZxi>|5J2Knd?Ƥ"'JCM5̿,Wbno\'k@Ɩ gmC&# kx-w兿xXb YRm? /8q$6Tr7l㐋*Dx 9}#,mӺNˮ J ;p:aV`Ckn 8 GBwsW G+ ¸GV:nvRl a-a-aM qB?h*;_rrr  ԈJ?|(TD)״?0/|y# .XkȖuvƵ u cg96cOP\iS$^M~YΗ 2oFl®]?ۿ7dm/S)J֭[JnM⹥ 5 .Ƴg\/|3aC:u=rSvr9 YuΑ4P6o/2si#ru'9Wݨc GaCnOBm@6 X'=)Sȸ_w;S*kۡbVXM2)LG짿"MW`az d=HvIeYn@ľ4i tfKT2!cSxGHWE8x9I_;;k ,ǔ%\v]vêcIIIܒ wBVtB7rdv |S ~v~@J+E6+KȔ??\}d YF B1_蟁L{Q?׬-=IȬ7AU/]P;y0Ȝd'R]v%~j5cX U9.1]x^ 1 E6e-d‰ڧ p|?uO8OR  k5;D8JMZȲa_疎j+ݴ/^.˝C daJ4\COգuݮ1 dڄ)ܴ1+X(eZQz fnYYY_/d'\'~93, gij*@v2L\QoAp!Z y!Gl2P*ys]kl:9E> dI5lo6L+@v!GH9B}u _wYJא_^xObYzz:ڙtYE*F *ݴ6nhecxDOb ay4%8!٦ucu]Hg7ؾ}{h`Q?bQ?֐aQ?_(v&[] |PȌLY8*\I&nȎ;fі.pV(UimݺLtnCD` CG[t)d4Y7N2Se'n*;4Ⱦͳ *Dܠ@fOj+.pV(UiIk[m6m*6uxӐvaJma=;)mɳT| Yg[Lf!C3YƎ{y2j0r^scb&4SyF' d%RkJxWȰ݇CƦ,q`Q?,/<s~_C4 <2w(t?͍trD> dd>leXu`[z%׮]ծQI.yBf"=o޽{6jlQIPT*˒ dlג VvYb)͛7d/ V-Ƭ,JghN̉8z |ٽY^|v繛0G*# QLw/L<_aQ?B&s287EFv9^Al9! 3U5܂jiy[C n[xxPo-]lR</s_gYq+W]ɿg2fcfsYsY,ZYyx(˰jH=X S!X)dhzk6ay& # 麜:_OȦ<2%wrҖ)w% s0.=ČZo ~x2wk۶-N,OS9H䶐IQLd1`(%hLdҍJ F L]Hx&U1ԇH2e16 ]z,@cN# loαѲbLG@GaCnO/7d/,4f̘e˖t H7̠dd!S-d9998Bv Pڷo_wZj>}u#,\ ӧOSRː)KOfR8 iX锯],t7fd-N_ bn  eԀ (kGn߀lݺ6nd 87zC˾]{RF0 ٚ a52eׄEW%{+<%3qR12^KC#WRϲB0Q%fLԡ*< 3d~bѥȿY߫8KU*Z*<9z爁م ҿ^( sv ]cl-ӛXqGn1GIII)]}U [~MXaKVȆP0-<2"R 0C@f#@ZUҦΙs4k7>t a=pFOJ ӯdL6-7'&# ˧eݭڼuɬw&M'_CvUX>j;yg̘qiY)\鹓U>֛1 3dv'n4G::qIy?׬NDh|=,$+:@<]~*kl횕ZD=]nW-ɬwl_bԈ=yE . .iʲ*ϙ3G<~L,@&YEdP+*ސo! dX+VfU_:6xh`&ow@`\T@c{vdݔ 3ZYJG-[݉'.Y鎸9̋4a"ba_̿@f]qo:p[°uR2 %-(YG=2> YJqcwo)r/̽h]{a0J-^, z_OؽTl޽ʜ'?9P>w!"Xe-2 -;Xx@ d?Y?1ބ3 {nQC:`ۚU6:L*ǏQy ȬW"| XϺOp9]ҼWKs@vh"C{M'R) i,LuI2^^+a|{e;LYWXԀlƒ_%wvԉJ >xxC|e!åa.MSᝫ&ëEWڴi;b .vnM'l됯]scֻԍ-XHb,LSb_BaȀJeK@&>ve0ڲ@}3/'{ʕNgM)9Ba| {z4)XG~g+~@vaFn,r*m:kӧO/^ܱcJk/R6f)prv,* {X)jխ}E?tQEaȰCѵ:pwwY>?_RV=w Έ zi0`R Yn&/7. g,*pܹs{TZDҢÆ cXaÆWrC@fZȗ?fX!.;y^1$"!6YB {r}6>I6? {&M՜PO#U, X7֨ZVBoe/lC.q$=X5~vlκq9&niR/,׫o)xneEUYX+@wyAEܕƚ3 fuV ?&͛/,YϏ9?dVԣn+`vG@&*#2}6oM#@g?l| Y >22eMjNaˉ*uFX'@c e}Y:`{>8!0 cOH3c}dK0YG@fŻKl'N@z5R05H! 3 d 6a ۻ Yү|@ 7R Ad 1]`LTQd`*}OY {hY~vd kaώSuF2q% d0]` odaQSÌL2@[#|zk[[|b^+􏸸8,2GĪW~хU*$3\$*YU-H0F͒̃OcUvX,6iׅ#cgcL_K$ 3Cڿ @,+ƍ,idՔ!] y f2M+}Xgd j1-d2M:}fLs‚:6rwNWٿOn|&q g [z&{rc5df}#su^+\Cʋ>ouFow`O-j'czըQ魂^?Q.P!ʿYPUM vK/$;EQ%u ^dRu2wY]Ӯ? `a2ǀYY u[˜٧@vjӿSd=sss|k[ ؘ Ȭ / ëqk6EOu]ƮúzX@uNfM sMpG ]|b둃 ߯;a.K;Jk|?Oʒ%`3[vO.K<;%A=UYeE\$d}1 ȬJ(-_VJ`HӿC۾!k6!4r/\.~xYoI(`3Ys?w r>o]8_eyb;k0)oj9Ո2LV~nҔa}d# <OҶ{7n k*`dQel/.7{_sNwrc#R- F,{ a'q%ԏ',܅.teZCPyY9:ֻ;5~8'GmSx{\wed|@eŊANơ>83 hBͫV.²eUxOaLvnB[!dRs5d| hQn#?D3;{f^2fJX~E%2>ȴ" 2J޵#^d?xq'Sɷ^?~<^=ӹmɱԏa'yf횉4n򃿋wI+t2C\3滝` nj{真fvB$' dY)kTz>&8iȸ 'ӹE5 Pk8 k>.y2S3٤T.אp[CE |ѸR^2ϢG{cndӏ@ lpytR]jm߾[> c^$kkŗkE].8/L/ 7oTX0}a7;'m -m["ׯ_*)}0;̈Y22_L7:>mq 4hx2(?+Sd5+>!k'Q9="pW0P cU=3ބ@*SZ/]d=zR.fq%<]6֙@Wj_+t՜ԮRc[7r P%qѕ '^Y&O@ f]Ʀ^^>G dGV.СCB0 B@f|xطVNnv7e)wy[^U+_1c@ck֬t)WR_t,E-\%-(7~^^@&?,dGV>w/_ٗ'ߕ@& .=;=p9᥹g6`=N}~tC :'{ \EVSNpsF銵o8}q딘鬢% :zπ e.CȮ$R3π,0_ٰ<.f d;tmeՎX1KP Ko~kW"kˉacNQe7'wAl2D?V*}EWsR[g4@ }ݔ{zlBx(?c ح[5_OdS8dbBvx9uɾ(J= !Քe΅sYwaVKJ rjӡKݶsJ5j_[!AjoW sqjm ! /kD1'd " X<8?l޼y~)?*Sb e|PLll,atGOảF8' L֕B& -|pٓKup)sAMPO3 G{Bvnʃ_;tcX' Kze# >lRZF,Uv*s[̃=/bN]{y]0v=\9={(K/uzd9M`?~B@f/p /^Q?~h|ٿ?ЍPl;@&2Yz̮!lQ<>h{]R {mk2,jNCZ`h<g g#c5pֲS[C;[c9w ߎ6c9 7bW['&ҕ3 ݻל ٿۻ6@+cǎy @&!UʑgU1PXƂvU9R_}U`uaL&8?~ӚULmQ@Ƙxפ@j>}ZIqQ?J̉,'.KI'2~ą]L0:Вr ;{?٢ߩM4o@壢':|r[xv.CȞ};3n!=kTk6)N]_7E &v,rv c2X/)2 cL&ܽ{@z2Џh!~id'2XĘݴ 8h!wrL)\ wY6ׯPS*GΚqAuQ錛. ӿ-Y5W׈.֐}M٠ iӦ? &]a1jK)i2c,ցLU%#3o! # 3B?_OQLGiOY>ڷ37ϧ,EYY!0ey|Ľq6;6Fr+V/o$/ /s҅ywe0lGVe` }XIw5O2㌵}8VZe]s|NF8s 4Y>uu 22m,<|] ۱c[dlry~RWkȤ+eFr1+] ƞd@a5aŷ68ăd@E2Dug@)YA)׶m[XȴOն1cda0{ŏl0KU37TIji$$$pYt2d{S=к1k]&fYª Yd=2(U^ug@6czR=<߈S=}}^-/[ZQh)7̠ ddj熯hYNN+]ffv *ɢ-nyu {r#O lM;^wCXs]XdO 5 mպrK o}嗋_0sY8Xv~ ߩ[Μ9c(fd-eFC*UVDN,#܎OpR vE-~>͊pa @;aMaNMɲx diS' d<մ;;>fc#l/p[ lxtD͟?k0C@>n6i`@Ÿ0Ad9m7,2;Ԙ8~p~3dwÿG3ufȆ|-ZT\\t{ ɓI܂=n216`WA1 f2`ۿ4v@#[373|;sOZ0'A "U TNeȶLБ,TZsLII);(EP2*1e'{LxV ¾ϱ?")b_'vY"uYؾmڴ. nܸQZŘ/N_ֵ͢3$s5{30C@fR[6&}޿ɶF=?-¬{Wd~ƪ77|=ޜ;rnzpke_KwuIVܬui6nx'(2STl۶m0il\ûLj}WiQT(~} :,^ˀ= .2c/6%&&?qŢȐ'XbXycqjKûT/RN3f ^}-FSa ܌p/džrbLfD <5.x)CN68I%OQr%#q*"NXlF1݉jA &Z9@@a!R\,yL^s1?YOA)Xp(F獹Ӛ=Oo! 2ӰF1{m_Kk֬9qz@X\@g-Fma=;|RƳѺMۦ,ٕ 8 dedťk-(R "?LAb~Æ x}\YmH'ϟbxfȸ fKvjV>%u q2RmLGa)zȖ/_ Y9J6]JȰ?0Ec/c @ 32e!v`)PWʧ' 3dVZa![4.-*Q6S76M*oZВvk>q:qOXx$SD gsvv;jYucu]ܩLW>Xe욲l9;D2CoBlua[(a:rfʰ+;l_%w*6]6Vwmp g]4k'|ֱ5kU&:d6&`{Bce p?dg& sd ,eO3lGlY2/_҆AqsJOvC7k*l;L Ȯ nu7tz4²SNYhSS7MyȂ3>=T/5_I.3NobcͳSw6PZx/{ ]w:ˋ}A猋cO4$&"Ԍ6/eb`0Roݺe<3\|oVYs +3% lo3/ _ g6A^+^1鑰,d!3^{2 pѮP\J 7"=gUOjۈ4F@װX5/2s_UO` )g4ʻm'mY!W`ρ=}4X|dl'w;1Ҋ;YZU-o!Oa !,~`OPF.TՂ/ׯYf'1kfL^>9@vi.q5@agVƏΝkkgxd3Y?ΚKȴ[58Ꙕ2W-*#U 둔Q͒iii,_},{@lZJt[222y}Cke}rԡ^Cb2 1| 3dǫJ>䓘jU*/[忩_rB_Ԋӧ^F0n$Kxd&k5g0שQ5?TuGS1zѧn,d2Ѕ'ZpkN|-S/W^H`ƍEmyuRx9?bw !U+9׽@TL|p6?3~ٽc#:Vw' 3d/n=~8l.G&{l2^a9q|=C ܄wvWN Ecd!>WѾ; m-C4 7#\UA_]￯^k%+vwB⺯xrtU\bޜ/lİ_ luls ;s~jif݃Nd@~Xyf“So! dQ7~@ 1S|B^u1-d?;ujXW1Vd!Smx 3 dp{YP"5 wY)F0HZ $@rojF[EoԮ%a {n:/,pBn' KsafEnV΅9 J8uH``\| s@\]SV)c5*:sv:6#k9m^H-Q؃[}0w+2DXq\7fπ,&enmyzsV^K||<d6bF}3Ih3XU0 L*Fj?Y[\iT2Ru?JHI[_noIX!AO2?;,[CE1? dR; nATMe<:)KdY N@&Uʕ+={fER K `|Μ9$AȔBuqۭ)/OYB'f#'VCƅ"[oYJJʻuJk٣k3VoWjLעdױ?Qdʡ]dhlS#4*iSFV bȼm ȤbH~2 `2111tr Ȕ,.zBm .K9dl e ;wEIttF pVk_5,IcZ^jxhi.I'흲4d6UDqn]~ɔǻF=* -p_Z0dJ1Fu dggvYV0>!g@ԡⱍ\4?#.Iŋ#tuoOMlTR@U26iVҕn{Q?KɤL_Tq-vxJ"dv˗PdUB6d;Lucq8&Cg@0nLճdܩu}JUd񠱋/Fk" N@Z ,[!Z2R,==}VJ  8"1& K=AP aNb KR&Ryɲ`Yt~롛7oa2VWm)şLf^p.IrqX6w XȆſ/5kI C S썽s&4/[8{ʪqT1cCrrq%u}2`%%HFImL4I30!L\,,9%&$W1P'ӄT+#auwkN@;^w#t K\ —煉g8P&Mcg̘D@ԙ<9VNnv7e)wy[NkFUm 屲şD 6n܈F#XDu.'1aDTI`+/Hl&~Od(cԏ4հNWS:GsB@L^UAYV_VeXr3ـ]y -@f! Ȑ=GU{{${S]wnm^PZDL%rx?Y02 NaH&l2fB&SL:N7dl8i0HL۪\>OheL',n`Zq6j!vh<Z-_@pQjը߻uO\g&r\Ə|Wo{? m`ᬬRrkV2 `[rҺKLbK`N>Wdkjw4 ?Xk!ӶN1ck”S3UӠ4fD#!cPl?&+pŊ!iWtz,K![5dWtʧ,(FIT… C<1}dq#8ٳnZeJ(u\/+/ߘU eβdzb$͛eg"=%U324~FX<,9yX@6)VMD,x0*.]J1e"~ɖI k, c7'dDzc*.Y]c ٨ÿ)^KAr׬W} dLTq=2[b0< ?JPJQtŮ"0AC 9tG.J6zG-Y>laEav#1#~,/S={cݼЃL3y,΍dFj~p =vȌ8i?U0Ivnf%K7dHœWHeL5߬2?Ʋe@c4`R jǝj3o N8\>Fpk O@fE7_(@@f0bM- HX4RWL0d+ea%+lOT^8KTvPG@fEO 3Uv,0<XVl,񰺰x@tq(n>aClEׯ=xx~|蓀̇BY q 0".7+0nٲBtmrO @ >q]j50?5`!SJԘ1cKcʕέ5UF+q&R!pɁάD=jZIFMk֭"A"eܹz0xgEf%rGat TU}*))1x=dԋm8}qk3/aK c*$EL(d㝅",18:8tF5DaJM'b8qh^(YWk.f~إKv )Naa#k׮% Y`xEV={Jl֟ `>͎Zf[Z\54cL9xnjӧO]VY^W~+*F)xWСn氊fw`q'' .# ^={0 m0;=zd=~M0a]^@m Q"9]8}sƍ'#&&cO Ao<%.% $ ?7(NPW͠Y86QAj.kcǿ?>55נ;>?-t& sQB< f, ,gIS,a#h]#FdhKX)- /GȲO8ȶYh2N()@ 8#vrFn k+p=;u؁>;騾{$yr痧wHMyj純Mڌt`&cu2e pEB[& Z28*|GƔd 3 3NlYf?7-'mVnW]K|wk.Ͻ œi|mtJ)))rbdKJ0b[(,) &@zdf韙2,H> :9:a^Z훀,\kE V!Zw>6_#ˏ@O?o_>vχ>[Z5{;O s_sJ 48wJ8V )ú d@vv| 哆BY2?Lp"&.mu>VT`=<,֭[ah|hX\6a1~{̹ ]OYߔA[6*YT tM9DFM|e5*)+H#Ͳ1W> ߹cp %xN 6h 1C[Xa ] /VͿ@Nr?dȘV#ziۇ_أ?={uKt6h +D RXWAEŠeK$"8'J^h64_@]1`q}7oTa2kyf>r~K4}n^uSkV~GZ3F]~ pUW̹t Ȃio>عG1Q~pܹs*.F8x >W5n4| M/C@fb9P^2#Yf`B JY?KEy1/Y*8;xJ`rA X3b|Ĕ%1 <5.[p c| [;n7̽0gdr/ub1fLȤ-L\,Nr>]gҀƅ%9F­@OY7t.]|XeQv/RV8GCk׬"aldAǩ=WX 1WXB!Ex) W(Eq@i(E,cAedq1;cV6i$ڱ+\ XzٔGk|ͭood2Yer6J1CnlJե ]v5í@~D}·6B2K,! Vct̰ĸD(3) 0BZ `&}H0qX䐖X^iDbCӄT+#a}DT޽?ıȔF@1ȂF!Gs 6*@? ,2mgaJ-@le#I t؆G+&$mx2V^,#&Cac_~tth XPUc[L'JbBҶ.kM1y,-J&=ltbbbSV:fpٳOaH%&c{-df!̢Lt0ӝlcl8i0]V1,dو, Sp)!) Rw ?)M$6m@@Q}*rQ `F*rbd˖-SC\%g+ج%0O'}.ξ֐ h@~,E(]{ 2Q ؚ0L4(dkjXF, )"cTHS#4`gjdHF"X2 @Vd+ƍ94a"]& I`; c2KmG'%ǠM j_˒/'U);"\z*iƔ%;`XzӧO`Td(&k2 k,h 6?xSV\~ގU jBH+qqqvܺu Lh"KUyU  éX*22xIJZʇ {6ef+ @jq?m5rrB5dqJ5k0EN;sIq |ҥi,0d?Cc/t9IՃKi3 MFo۱,odڕECc5* ШJtI,77ז' -2 &sq@ݮ]&Y@&7Ԙԅ0+N1Ki֒fX7,'!CLK+yQ +&"Uy@X|9… E Px*nFT"?(@{{ ʸm6Ip" 1RСC@1_5 E@Z5q% 3RXEhE~(cVdVbXRK`ٸ,4 -܉^vEcҹ d8kVwY:,$2)ojw}Q)BRgNF/}#m)@mO4XM0ZhP|67Trqg,m CsS 2}swС=6ҩ[xfYȬK)ԮliGٳ0`fʕ+Wl"qGV|]P Ch(R+R/f}_0C!ɉ/ywG߮:Er,*( Qr &Ѳ駛;-TBfV+6 'xX\Asm66 mmٲW͚5 3Op/ygfRN@vaa? L2`t:ʗ-U\) |׋ 5 6 F խ\#SX?+״PH[C&Dҥ -s`\g5Ds %g0aG &e2{ܣ&p^˚5k,Y@ a} h?lTi(~L%,a4m 3e:W(p< (FL3)T rV Z%0g}~`hjd 3-Á0H#Qc9~:"}P 0LSoxt*)* ݻdlɒ%~ÐH?f0+L?$`@6!hKHXUC VU:\>$z4e2,,R2L\r{NFM Ǡ`YFDŔ*`FAeR<ڃJT H]@lݺuy5Sw2)!*Q1 R|So&fUjW)ρ ,N{NF|M ;Tرc30cte\"ü$I:E#)`]@deK+";E4-V~U٣G8R0S2xv Kаr?Dxdwg!)F_+?0"MH(/ bѺvI1ˉe=ρ 9Cr}E)`JW1oܸT( `I20a0 (]m"%c\NP6 ӚPR ctixk$b޼yw,S0)H7R ,e BWu c?/1M >gd 5p,`._^,sM}2GՂY*H&`S̞ţVX6D9wtb(?MJbYYY "Mu ǎhodSx` 0YKF*Rs%ux% (0SNHXf҄ȥ@)6PzH]2fDXA'9*3feӝFFZwʕ0bp@7@/dD#Ϥ)A I2%0]W0`%%HFImL)îA9#E`ʒCZbBbyI q2MT+#akhwV)R,WY̐@$+dЅBcˏH.']Nb6 dJVc$>A X20U.Te/C v({)@#`yf2ݩHHW̚5 h"2k\)Jj-M`p KڂnRʥA޽c'>Xyi7R@L0і޽#o33nE2߶@)l2V 16n܈AP!4X$8a}HT]$ KI BWۀL ''c 3fXrٳgqqЕ+WhZ3tۊ]9t$>{]p8yNS q]PKkHOEBPS/img/cde_audi_mapping.gifGIF89aG 3< +3}o?| ހ&_-`>(>xyz_?HɅh"h&(8/H .X#;2(d9B9d2xc:.YFhXf\nyVrcr`4i#;θfNfo" gl9nYscu9h{کh&ꨞ]F*餑0ĕ)h Jj*u:ꩫ 묶*+맮Ɗ+u 쪵+*,쯾V+fv-'- , ZúC*nۮ+  0/ܿ?,q #l_< $l(|$ $S̠ͬC7+`s;\:@L<L'4=FM5V?4P7u\O-U+uhlp&=Axwzޠ 7͸S8w_N9皃Gx㘟N{.מ <:|o|7|A 7Togm؃o~⟯~/.\ HL:ЁGV@ Z̠7z GH(L W%x gH8̡w@ H"H4b&:PH*ZX̢.z` H2hL6pH:x̣> IBDF:Rə"IJZdB&Kzb'I& *WQjd*YIZ&ҕ|e,m^)}Ib1ܥ)f1\&2Ijq̦6߈mz 8IrL:v~X,?+v$hLP'BsɆJTL?TR4.˃j )'EZRXJ3,IOzϔTLDEQWt6i4sQHFiQBLaP*XͪVծz` XJֲhMZֶpLJϙs}(]i,Uݫ5STB1*T[U35Gz:-,I7+^7-*N9kʲJ)]Ze( ӊF(l7[ pKHr:ЍtKZͮvz xKMz|Kͯ~L .ǻ;ؾ n;aVo+]3;b^8W'ٝS]ؕc/F?b#x@q#c#x"23<*xB򐝬e-R{$+^|3o5[xe>btLh:x&s|EoyooG?Te2w~4E۹rns7=СNu;iM;ϔuQǚ׾u!f&yخnjXy5o}lM&6-mQ ^mrڴLYʽ~7M$V2m|'ް=o}N6< 8{ͬa?<ϸ7{ GN(_qW0gҜv=Jm~scu88 ڑ.Vz3UZӆV,n_JҤBOjgӫOwzнuH-QvpNxϻ̫ J$qKƢ̺aҭlHZԞ:uߣOaV硏^k=zjS#x:ϽwOOه/[19Qvſg?[NG?5?T|dKZs/iE7oJCxZ~\yXg{~VZItX(gv'Kuy|W~;U[g~[y+Jׂ0284X6x8:<}eF/xNgs|Z}FDxx~LHE|]id`d{JEw[YXM7Yc8ExevNKy!hz#X~jR@(LDdžgx~1e xyERQ(T`Mz zdUQtH'WUE(uxTLEztDH䉅凧H}v cL'vLRHȀ`8xxxȍݸ`㨅)JhyHyvāEX︇Oet7[uQX{㧊ׁyHVAFr8$>؃iF;PK@PKkH!OEBPS/img/services_in_failure.gif) GIF89a@!!!!!)))11111999999B@@@@BBBJJJJJJRKKKRRRccceeekkkkksssxxx{{{发呔.=BLT\tԅ֊ڔݞߥf𠠤,@YH*\ȰÇ#JHŋ3jЌǏ CIɓ(S\ɲ˗0cʜI͛%ɳϟ@ J΢H*]ʴSGJJիAbʵׯMKٳ$CKݴ,@ݿ 653M~T2& {x G ]vHƎ!{"ÃS^R+" lˍ#{-l!em1+guoߏkK3=>f3ѯ8tf^_ξ=`=w={wzl߁4[\ep% Yb]oG/A8a~$ $^Zff[y!хq)!yg$X<"zl"'[lB g|T$H yf쥥/vmifVp`t)؜vYx[ 蠄W&ʔ6ꨜ>*51Joҡ馜vJb**)j*IBP۪"jJs0lkaN z *@D"5CɵE ơI$ײͶ[ӳSLȩG'Ġ'muPBdU %Į /X@+Pl[&hRhG,`._#K)7,sHB R\H1fX`w@X nE2pbpE[1_AU\ C4AFLW-,O[.Zs-ZDH`e/H f(1AK|xG }6cj*hܒL@bxԗ\ݙ>q΀{ztD CmT,T>7yl'|\a 3D!;IWX6IY_W$ +Ё<"(24A ^^#)VZo 1ؚRJZE ]HâЀ,4w@ H"HL&:PC3X.zʢ2z1cL#PF?1$ǢHǖьo̰u,qy)9!pp2Z [ڊ]Dp\C_~גO}hCذ5 h8H37ɐ aW0N"O,)SxĘ8Z$dU+42Nn,\6K;D`LW&g?3C I |2εLwۜ>Y'Hn1uk$ivMd2k45MS!$OEoz P׽k3})}YftZCՁn"t]X-9AJw}At^{{p T7a02%T UiPff5D'JQQ |56Wbꨥ@ђt\hN7Zj~8 trVQT3(SpӢ^)]O[ѵ ]@Z_xg50 ϲ$ J#PFȐЅV9GÜT\DHB]Z4ɢ qxQY& L"9DJ]늡@X<w!F lЀd>R5Ѐ$з B8<` @Z`4{޲dŬ:X` aY J x"sA|y*8Y'\JI$0lmfܻ(ʄˊi5{;]+9MX$0OE@2C,cxX# W^SD 9M9%j1EU)L;\ #2q䌌TL'f~#u&ˤe9HsVLf3Л"tLin±]>Gz'\!?H1I%K?RҙvèQI)f}\ؚU+~j^QwL5)R ĀQb.ŵYM9 JI&k$!S;h8J.`b '1$ fB~K<7Nx)͒mg눸'N[<:7Ij {]VlgG-M)x(yć#~8?Ig<7ZtT1%ۘKo|xtΧN[X nn/< |2_s;۵x=v:>l}jgл?K1G~ly{5@z˛RH/ֳ77ݟA{ۋ{7}GG|oi7x|}ww'xh|'v7wvyy~~zg"wvGv|{((hyקR|׀͗{vh}*hy'03H~'x~~+8x.0zG)c{>zAhGv ~8Xx؈8Xx؉ ؊8Xxpt(Pw8XxȘʸ yupv8Xxؘڸ(eGȍ8Xx蘎h Cv x8Xx؋؏ȋ_gyy [ِ9Y9ҋّx Y&y(*02,yVd:ŀ;YdC40#g 1x8~<C9:Y gIz`aM8x1ySYB˹ ''ۿ{{ Ghԫ5 *.\3[K3[(8* А5H@]@Ȝ.P#:ycx n`]) ϐdk4 ʊP@<8Z+`4# ɰ£G -;Eb̜ J0x{ zGxtlǞȀpɰ,  (p mܰ12 ܻK+n,ȏɓ||F:ͤɟ[:ʥ|JaE”Y <Kn ޿Q:PYX.kH0XY4U8 H KȜVn 1 pC@T陷-01 ppQz- pv˗0 ~@Te  8Y`a z-^`Ygnz K2<|Y9[;?2("@R4@Jj-{Z ?TIR8b-,WȻ]"?X+ yϹ2OKsMFHKl?ijG-8/Lω_Ψ3_;Oa.ʸf[JQ`V*.QPP{+g3N  a@"w8@3@-^#!!$n F-Iǐ#KV PwС!΃na.YLLaaUsQePХH19[3\5QBrFA #=4E\N"B ӶoA Ubx$*~vlShuז#У'S˘3 Y'O@V,z4 ! P+SW.KB ah{oxGэd%d4(.N)&*pRD&fChbG(D1EWdE_1Fg#1ѺNJ|4`A$+"!Tr&uʨtK+B"#Ҡ0\.-DS22Mw|Ҡ:13?9.Ӣ;94N)/-dZ =qm5TQG%`4UU'V5VYgV[o5W]w׺x4 z@B-$<5Yg6ZT}[xZm[o7\q-hE7]uם\w߅7^y祷^{u]}_!H`F=Uw!g$[iAf r8app-0pM ƈ#.bA c JE.hGsVndIyh ʢK\*i;un纄8芉Q!xHFǦ+f+! 4_.8L"X-nXlp\ᶝNٜ!aUr/ov6_ROlʪ9c֩u @)A WR r=M!`RJ= L3v@H ru__="hxq)3w`p-Jy,&c.]%]|G5hbE@a'&rt/$OQ1rCa U"!s6o6ސ4w)=t+pa7+zF hw!$jHsh)Qp- d-!:PD4; =L hA>O!AJrl@oO~X>OউKeQ'4mĢT#ud7ԥ(JMk@ 8؃VqQ\Ч <}oݛF8ɂ!;9F\D}-N}jy h'^X1ah_4C!6Gd7]fiS"hmnC2.7 Ir t e"hЉVdGGȥ-;g|Oш%}i{[pȚ*RH%suRfcmwGaEQHaό)QC\@d2C,s` =h;8 D ># ё527`"h7ТtW;Aڲ0ā1Ӏ|)A3q> p8c=<tA AAC*A$A j0` sۨ$>xc ÿ,? L@Jf3$;PPG8DB T‹؀xK>3S1=?Ii <C  @0;Q"Ӡ* 30S#0Q BgΘ$84lX<8F̫ !/(>wHŨƚFF(<> n  Gsh 衊t $KsE`ZB\̾],`lRDS ϶H(]PANGPD]SMR*M@Q3}t kVt9H̅ xLZr on L,xz{ ϘL6˖ ~ L ,|؉uLD ˍX܈!̌ŐL,٘8Y pP٘9THtm qLuYKs], pL$٦uZZؘX I)Oi~eXZZXHXǴhe۶m' CX,ٸYl ][˺-Xdm̟h) pu\qpLZ ) lL@`W\̕KuՐLԍ k uǥ}l)АEŅ=K\Ph}W]ZeѭeL1x؟NL7Xؕ=E`Ƅ|ٱ˶XmLt㐖\N!XbiY]ݔ=5χYIPэmYa`6WL -^|K![^ZZ `t[Vb6 Qڋ LL}S˜\K=߱LYr߿ ruX]8nܟM`Jmc,`k K <`qM `\E.Z4 ٝpJf[+X!aIUa  i^ IޥKR8۸$YF^vZE-K2/FEKe؝]M Y3FEbaJ,c(b vMRpX(ctl`MAJA`EIB`T=TדUeVF穄 bda\ee݅hT"vi-$fZuFE.㇘&f_v6jcKm _jcVxJA _6"J{j~ɪMܙg^g@Jukݹ;kT*aP6EFdFZNY5ݵ!FT#N$PxDx~JxFEؖ mh?& 1mԎ?x 7 mK \$ i4n oL;NkuoXoofrkpFw-.opdpV rO)QESYME [=TU+mT/M0mf5TgQh=V"q$UU;-qSMO5%"/wR&w.Pq)e1_e-r?U%Uq<MRo[ؐV]L_K`^o0u_Oۆ Kg7EhJi?EjphɂN8h\vLrJsLtKu?ke|wP1TOq|R}\Hlvn,x!RdaF42UBB 88$QJ9%UZy%O $Qn*dy&i95Б(+#d&ydoJtQ枅e9RIcJ.aR02)DT%fS-B$"M*0 ΪƝ:>ɫui,ͦ)#4jLol)0Ei&E֤@ɬ^i,$R0R%۪:Hmtdj8+-0|Ҽ5IqIG ƣOZiwMbo@:*?ʟ}zj,C첿fls.Gst @4JQ%MW^`NetO?kJ0Sp'1L *.JX, ID"GxQc=5$NhBh9ܣ/?Jxy DȨ_<+4rKFƏs+CT"xC)\$DJrd1a#';Il2c+J* O*&JWJ t:Gb>JҴ5yHcU}]<aRQ|IEc҅%ivғ:#RTqYұ4 B/@ǁI, &_VEʶNrtF^h**Q Dq\[mk7K @zTX EDIw` laͭF,q!42fu0@Π4cJnuYN**ְ&+(0 v9? 2 v ܖHu``h?%D0d̑",߭o" N&+Vq@! V7~RW9v:P@.ހBq?ˏ)_T-N"U4gkT( Թ7aP H4Ni&;"!ƺPm(tb]> RO!ݻ(̏ $G%' Dt|C+1`_܃\8|7]+-?/`>xOqY bח%}YBT\YxuDX747^\  0`8B3@AT 3%3D24ߡ``^`F 'l]@_ C _@v_ ^r"MԝBKe0+_zDL!V!FU]Da@ _xAQqm`֐mA#Y,#ΑEP ,EDLbOT(V C(XLJuS H- _ :@(b)(#DL¡,,..b=I'Fr0b1"2J'<D {:{cA}&deZEfcFd?@5T*0%Gb k k "q[$VyׅI@TA D@ &xD&Dqc Arz̢* `bA}('8]>u Ȣ,r^Cxc Oyzi)"f)SJ 9\%BjAĞCJ7si)`,r,BgULh_`a"?#>IKpB(d#~]aNDe PgO@F? iPlJ"؃ؐOyBl=>ND(%B>꩞@Ņi 4tN,V^,Rl( j=), ,ctBȊHA,n)Bk ,lDžN0lF1 ^-Ɗ@|A|A,Ҳ: dA`~p%bfl_T^n~@5Ȁ &E~ǔ :lM0RlH1vVs688;9ov5tIJ4FH?Y>sK9'WK󓜂<IumE8p E;F`54IfrD Lt/j^+wiŃrDA\\ B0YS&D_V\C'xC6 F8Ap{CsZ5*@ `oscY_Bq` 0,wB A 'zHD wB LP3+zߟ{|50))0}!a 0> iy_ݝ! PӾKy6̼Cs>Z,@ $?8?#!J3@ :&D(_C!F8bʼnRf< ,A9rNXPexٵ[>Z3=CvM~j?f H-vb1dP5貋B,,C ZO hC<[C&; F;P! L|A@.lTɑ ".5rfPg8EfuQQGJ3hl@# Ia|20NpT#`1.K4!TA8KKHϝSՄfU0XcUlˢK)vY֒$uTuINɑCm"NolU$T~`2%^Kf8 `^%I>R I8LK ]ڋJD#%XkCp$@l <ԁ/, Nr2Xob< i`Q^1V]a^"$4oE2노㭡& 8:ɝ5CeL:`[e/=ۻɞ3&0؈)`[scG5Z#2[>f:[ncduϰpu|)f.3E9x-B AǮ`:<)!?_FY(`u!pRPlh){0 f?- hjh$` V\c tGB ;PRB\n ꫖59s>, ] Lx>=$:Q٨:O*VT p)^;WQQ#F7 +W Q#"4@?LD* ),PyƐLE(  7 /@SlH'B G@iˈRUB@)VIM TLe> #JO@%l"j-8:UX]EO *RU*Dz͹?[0ZX.uc!Y:kԍW:VB YaOZSG'WbO ,?ħ>uHlg[V9~oj)}ПC8mO( R|mt!wtkЖRՎWA\D = oaDP/6S Pk^*пq*|m_X#&a~EK7 6H  8AAͅWՀCKK! 26qfR]Jx=k,K=W'e)Oٱbpe`xT =gќ/aL6ȲɅg=4 mNhAkk6hE/1ѲyIǠ 4dh\9ӝAjQkZ+0gaIW:5qk]׽ɩك4䰉m!]6h=uWjږbnqʑ$ lF (hZ0YR! % G,nMmA# .Ar{N7*-P?p0dxk 'ig&hQ t ZfVhz F؃i؄(∭er7މ~H0xe,5⢌<#P&xc-xޏH&$GA8$|TR٤OB)e\v)fI^if`F(fd5 xb'thgZ"Pg:Ģ4ˢfDj` j饍5)f,B:eb<@HD5LɬL(J$>%{'cBqάRJ" -:)9eX p!w00|+v [!*3 ?\rG.Prj\@j|ךP K"o&A :|H ol3R L9Z3O9: q%BE  *ؚwTE8T?@rN%,s4)1H$eNʼnS QH"F_t2ThQM< {!U)ܠ^QJj M18 aBWe|WF5B"ɪ4{*Ttw/䗿"xX*#/˿a|PF  94M 4ʠKvS %E9:p3@2Gx@B(B`&JI#4tc;V@ H"?D s8}@C$ZXq@H'1# Y˵J ȅ:P*TpE cI⏉hA&Gv;\XdM@b^ڐ}P4EIݐCILdI:(Vr/[2;3z'Lhr@(3 Ud}ODR#lz/raB$ £1Ű#YnR#8E dO9>7, L=5ɠ!(}!Fg2= {(!>gF9*f ) ET (uSBYLL9͈HSSTV|MYЀ3:S(?7]O>DT7ʝ1VSd=4ͭRSxz䱨G;`=tu(ԻlkFޱ(\32'P kDUO#rp j@ܑ(^Š(lk*ѱ(e)s(j L":p aBq5YJ`އPi7T;(z [AW9e.F\  <ЄG7 8E (X ր&x$ '8Qوvky% mz('xixV ppGĹtIfu*@X@uf/.a] @0[2diDmԉ `"p  N0"0 @b-k,G,Zsq+WH,<hw"P|3@Y6-n65#ͅ; s Ⱉȡ}+O8A&p+\y9-\TWƅMDdhBƺPCq/c ͵CAē]j.c~?׋;}R3˳)R,sdRڽz'2rA(Ԡ*`X:w) -p HK Bgw):h)8:( C5@N5T s` % Uh)7((!HX&@0Ă- @bU)96;(=8?A а샄 0 wGyms7hr*{0ptaq{΁wl冼Lj"(A]QprO!(|C2nS"W9 P3i؋y (d7Êy@Y~ ڸXyxw8XhcxQ'y̘'h3Ј'((Px r9Yr@_?Gb'X3(Wrp+e @%cl~Ƀ%)YPj#m!"wX: #8 1} @B 00L 80a9"%L Q^`Q qg+ a d ˆ% =9"@ h 0J`c5xh/j ``p 0vݧ0Tґ*` (j1lٛ(}mQrGa < Թ. }PNEb$:i5\JQà JP)2J = EI,YP,*! %~%' fP Q 9꡽Y @PY8p,ڢ.02i@ꞽ `rPVD0 j ڞABʛJ `Π):Y0RphjlڦjJ 7`U 0 ?Aʛd0DjP#) 򠧼 1Pz}J !q٨i ̐ SzНr FpW*z pKQ6/` ^F(  :Ϛp`c*~W#- ΀$:J`H Zʛps 8~}$/)5`Ba`[ @qPfqA"-m12 [ Z *e2ʌr Wڱ6k J@E*@6ESP{ꞗzRKꡕ ` Lu?G* Pl۶nJpP@B[(Dk 46불[96P*+yec#` z?2۶0[o q;J wy %{6Z(a t ඥж;&`sh\ȋ<}Ց=X ֨FP ĥ,ņl잫+Ga$'¯z0 ˆ߫,Ōʎ J țYP5D pg 1< ݼ;iA#"kQ KS=ƌjZX#Bˣ h<rL qP<-<*akk/,3}t = $D"$m5 Ѱ\,X,JQZɮ|?!  mY` dԡmX `  wf~Sa@i;؅}}N(}o, PcD![ ц?φ}~<;df9u]җ JFXr ܬQԿ ]=b,9 6?[eAi f hԤM R p Wa漯ap`--Ňp-K 4Ͷɼ@! !HpK (!Kڿ`| " aB\2^!kŐucX "9̪` ; ,.N0~=[t^|@`?>.Lq{pK 0 N(@e K ,09¼[ȌJu+qsu^DA`p `p 堭/ ᬞꘀ(-4 А Q |IҰ` $ `Us g4 ذpgs >sN6K!BC!ku[B 0 Ps g #0#?Ns`| n-ǐ\ ! QNf wDs@0M+ v  Հ ]p = ԽbMrB{ )KzFQB}A2` ?ZP@ h@ M0 gLh s@M0 E PSװجаo~PA  L` | L vPe HD$IcȐQ)">QDxPĘQ#- K fy_fּs毜:BWxEP ؘTxj4RmĆ B$ZCHPY̝TEJ )c_h![(&(aV>GدHժ8RƜYf:4p`V< -wX1v qLN򇭞FC yC{պt91(w4EKx^xɻDB;śr-2s%hRC n(c!Ht =й(.İ<'".##ڪ k-huXa70Ŋ.EPyM`2jDnÜlB2*2K<"HCȫӒH :@ Jm8c>xE\&m! XG&{!jȢK,.4SM7tS 8$ >jb$8!"uX 3"9ΉFIhN:*"9:6ZN%rĬ3EJ!*XzyQpY ;a@;>f=I{L XJK+%8b̸JD"xv_@ &0&thlyF02i)vB d Tb<Bzr)ynأPP)#Č;)$h@(A"Y-XGR٥& DD8"P w"'#R1!p2SD&-MlB sق2w4Y1I#nL1?4: M4ѣT<7h s IxJJ }iZK,-kjXc:ֈ K*2 Jҗ&ld%;ٟ|)d%ԬK:6d8j@T;;R8K^@EQ eZvp\/I B @E(,D! [ð R2Xʶ׽<jd77zKFȇA nm@.Љ~`7uaHKD&eѡ6l R vX#lŒF{ "I:n!TТ /b!q B (({M2[ުO|j+[' 1`GeQ'TXa bF+b!46JT튫/Ȩ0L""`h@ Z|O(NQ R)1b5&-Zӻdʯ;\*YyX]"7E ^hvxPq?V j" 9a~Za_&r34 3(A&-4M/)@,# B[+%G4Kc|a=(T5|hH#x&(ck`B _4& y@h,vd"u=rSܸS7@-IBd 4L`§h&_Dq|(Eejc 8a-k};P~}hipR=/\" 0- a  .'!8%}-zJ@ q`"axe0A cqɣ!@A }vβZq;~qs}5 0Ca9!S@CT`Wc@0%0=[?, ч Q0 l \Q`ٳ81 {'>'۾>΀+[C <\$MHt)< PB)$Ш Ke}0+*:|) ؅qػ',x,&'N>,"bZ0 Al&Aw8*A :TC,О p!R!ܤ%|d5dCrCsл J"%ZIaܤ"jFQz4Ht%IDʪfi uEj"b$"`C;]pF54΄ԌM@zPLtEǤ,`Ta n@Ij5X#LޜN0]@:^NJ,d LlCd_ΤIOPִKLJX"L|8یD|OVM*yNȊOo I,O%[@\ ZTPdP-Id`˶8D{& D0X@Od}4Q 9,"$URFQeH8 PQn,M4R0s6Il(͔dLRF:Q*Q++Ә1< KJ"|G7pX:t˧[ȻT.TV-/>P%eS,S@(MTYW%מ,/3M)x,5T)MJXV!?h:r%gV&UgTHДfVWOL 2MXPXW PJ& *,J@:ͤ/McHUUg؍Xgȁ}e Ox XYZ=&>KWZVGB%]D3@yGL\-L2ZRԧgXڣQTZiS݌fcP.MJE\5&Mnƒ #PZ,Q]W1Aҕ۹gP@%wu[-ۿEU]]tE(x!!AP@mسe$nH]EWM0u؝RO8^^YV]x\Ej+uExHݣqe^nE6`YXe$![H"6FEX]H(ΕȻ `T^2]~SYa Sd?V@}(\,-.b?v{M|GaN$e `ebmbɂ][7ǀaVa2$pGHId14HdX O֯d^@d:cIxPd7֯qGD^楝E!K`a&b6b΂11T#L}Xp`udp] όFpp ζp j q 7q^NqmqyqqXqo#rg"O(?o$oqFm 0 X Ns2o7wo s8gs&s,X o:/s0.p?wA'BOCGDt qDwH tMgHG8s΂prRߎ qSuErnE0[gSIo0(mbl(cwd nUl*vvr7sGtWugvwwwr]vр{wx}~suȂc6GWgOzoox݀;PK,'9,4,PKkHOEBPS/img/complex_bus_obj.gif#bGIF89aJ"""""33333DDDDDUUUUUfffffwwwww𠠤!,J"""""33333DDDDDUUUUUfffffwwwww𠠤SH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M93<`B p } !N; {E/XDA):DXC &tX;|(_] (tU(}DpA7$5@#XfYVsЕ@ HBOxd7@B p~yjwd"ȕ9fL ¡"ĩUPD@ >…-qQޥ j *^4i*l-@\I뮼runEL`h6F+VkUx؆+I8Ћw+EmbDڛ$ee^{f 6Fk&,d}7&5МrO"NX≽il"zjp/As%[ } fm dNI.hp*hEjoz &T O51in?mc nn`g7vmb^\g "ѭډ}]]>A d F0x/nz_N: Ӯ;^/o'7G/Wogw/o觯o H/~2:|Rw=!1U"yI$ϹY6H+*lD8ʅH!t3\B}tn5_4YlD1[hm`PR .FEwqLBd.K!1`9ȟ  =L:RhG;:}>`3f$QJF'1 hAh%=U(J f؝|0,#$Kɔ@$"_D=qiA'/)OaHY5ЗH`).9*LXTʵ2 .^VZTVX-Zj 7)||a:2Έ|:TɑH`"̠=+Bυ't 9ERQ (Fu>DW(BcI00 5 h G4"M4{`8x,%PRX)@FT(AF7Nt:@pH̺V1e=+4.I׷nltb u~cU+[jV4`{YQX=jٟx @jIJV1MkZԳ!*nؐ+lөW&MlN|jߚX:DRgY/SO;`mlK^ܲ׽ns ]~@9-vo]٦3AB: s޼R{[FhV2XfqJK`Xv-NAO|S tm;W40Y(-_S dDMՎ2`i*#VA/cf};ժ d^PT`Jm<ڴL~) G@SdC:H9\ -;"!'e2H;';zHD D Jtug<$0 f&E=%dt5wI_%sdP6d=M! Le4"wy?zkS)cԣ4 p汝 Ԥ-4G̎2ʣO)6En"%TvC7-R So-@#?] ~99}<RsQ~q~g'O&}h2M767X(`#rEK$ơ!&'2|Dʦc~KрqxB5@3*2:3&89Ahq`N69gK>04Px4.iUhҖi ,v$!QNYS;S?UE[cł&)N+(c3eX%X)cR^h;T|rw`4R~e`AGMH.wl$FXm%q_h_F?pߕcYepnTHJy$`PHvB('c](.tR23qoUE%T V'EYRESS:S]BETuVIT#U71TCURTYggxjhXfi8^l8?YhpDd_%g5@J[(kg( Y^TWjefS`6?heb^KfTp6zFgwg(٤ikFTqFe^Zb:rIRy+AI>r}Ѓ<"X.P$ǒnшh{ouxmx k֣ZfJ8f㪂1KO8+ ëIPkY5Ga AȪt*sfʠ׊ v5䇮zwa֕ʮzn 嚯i!{᯽įJaz &Qǰ[ajFqK p$;#k9)Wު&Ų-/˳(>KC EQv `mijPKLSU{vE[ \{1#0aJ#@j agbh+E)kt _"a[ 1bZU i9ix[UɛvՆySv冷ZQdǧȔfX%2fW\:EUjXW}X`Y4KلmCYEY%3Q8+k<Ǩ ٛESq ;\axC#aI[ϻ^{KdXL%$HkK˷/61Ƣ%) ZWe['dK-9;&<'\?K''im{^o˦u[ifgYᩎsz1?#6HǨGTkkR Ŕ5TJ[Y^}PLl\O S)YZKXFII"ړTٜ3:R\KT;]KɖB[꫞)7ɺZlu ˫dz,˵雧ܟ)ɩkLa|aɞlʵ`K,qˬhWbaVd*f Jcud ʓ $jV&z|yL oݺܵo\eLRXXfy9g7lea H˟+ǿjlĐrJLv,^*xХ7j'2=i4]ӞveӋaQ*\BrCmi>} F.Ԙ/ -D%I Ԕq(Kkf͊aNBx|nM5 \-^==v=I\}{-j}=z-t =]ͳ.]Iݰӝoڢ]oⰣ}ovڪ D/ڶfr{-ۚ] ٸ-8hֵ] >mtߓܻ}̭M ѽDMm>J״ݧk͈ &܊kޅʼn~ݿv&-ğYYREz2Q# \{c^'IB2J: "ss!. Tuu(usv,sC9u È8K ~G'2"!Uā 03 GK(:LRf"%'|RN6۷_*aR$%}dKqm.$oDs&g盄l 1-ǀ{J@y y/4ȃ79]dFt!zq4 粮ذ>൮ij׻>^!rnB2B1JzN^T$)( N/a$~wGu8v=XA1wdW0ƭ..U^``y凷bySy^DɔGGp{}G#bm?r"NI}͇4u#t%pIn& *Nm,-n7udSU^]:*V]"JT)A )BUmV )v\uޅvaS +V¾ APmm4,2EሜA-Xlǔśwqj֐[~ ,lڪg3]mm b % {pF 4p`@\!N3J0xtbBrkknDeoe}zko9a.ϽĖ;<;p.LM60B 'B /\lr 4 h2Bo>"ɤRBh%sEFk5댼ZLݫ L0K7ͨSh#+S;* T C1$L ?>ʃq9Ԍ@3Op, 'tJ%JO@+6bQ8t; fh$)됦ZћrBKPQ#m@p/4jVZzV DS)D4a3J]eWGT$` sJB!m&!pSV[N7Z6-;GE+\܂j;UVmҖD#oKRo4e- 6lf3Ok3`&4wMmfpz9iq2Hlxg)6Ӄ'@)4ҴaA;6@!NPthF5zRG&R"Ԥ'U6Rԥ/+wёԦ7UQ`SԧcA-JRu45*ꕥIUHթV'UrՏXXUBueuXsPխ;[ Uwh\Ȉԯ k`W_ g|ld%kONlfyXWCіִ=?SZ.le;~mnuڨ^׸h-i{\j#xT` {Kiiv4Zx8ݲnzmAM# 1Z&5E9֢}U"g8o`gZ$ <ù Uo^E&z TDl5We*qyRB6= G[;{Y x]Ȝ21{~$CMmMNrS$cϯ6Mqlٸ2la%U0OrA:e(dI> ʄ]>FVrF2!UsK-P#EeQ_k3I,gş2ɢIGlgtGK+V-|`!v&֖O]\ƀ#Z_:4XRf'c7TVlj? vN[%emp[-]Tr[놷o w޵7.ot;wp xp&| xM WxƇr\諸=|$G1rK3/y{rT7y}Ws?zЅ>tGGzҕt7Ozԥ>uWWOM@;PK帕##PKkHOEBPS/img/count_chart.gif* GIF89a191Z999J9R9Z9Z9c9cB1BZBZBkBsB{J1JBJJJJZJZJcJcJkJ{JJR1RZRZRcRkRRRRR{Z1ZZZcZcZcZsZ{Z{ZZZ{ZsZ{Z{cccccckcsc{c{cccccscsk9sk9{kBckkk{kkkkk{kkkskks9ssss{sssssss{JJ{R{{{{{{{{{{{{{{Z{{{Ɣ{{Z΄΄ƄRΌބ焌Bc֌ƌƥΥޔJsR1֔֔Δքޜ甜RkRsZ1Z9cs֜ޜ֜ΜƜƜƵε眥JZRBRkZ9֥ޥ֥Υ֥νޥ祭Zkޭƭ֭έ֭޽筵RRZZZccZks{絽ֵﵽ޽޽ZZcZcckkkkss{{֌֭֔ޜޥޭ絵𠠤, H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sl0<۳h0& 1ѧ4yWʴS_n sΫRPӺDZ=b; W`1T_w "Tϼ :-޿O&xWqbI>ǭm} 2Ǜ{^QԪW.|lPØUf{ϳL+ǿ ^7PZ<_$ʼËOӫ_Ͼ˟OϿ(m %  | .^a znh^bH"x&]*2b2- A <"M 5 ԣ?2tLW0 ?BC>b>˕X^)\v`)a LlIfGrg=r(x:K@ %~rY'BKThB{ xHС%RC1:H,JrRQ*iz*.FԧͪQ'b@*'IĄ eZR$,Q;) H'ʣ(>Z_ǎdaN +)Ut}JkFނϲ$UD;0Fd-SETx֣UC€|ӓ nTAĶƹ!UQ &CQlr,Bp c-AXJ8 A)#=ie=H9]j   @&*GC4B, ;Ҏf@y;L@@Y࢕' @Q>AQaxCqǀӫ=T іhq/3_ 7Hi=G~  '/ * PKkHOEBPS/img/consumer_profile.gif GIF89a9AH]ktAC}HtH}HkmtttttAAAAkAAkAkkAkAAAHH9H]HC9HC}HHHH9HHHHH}HmHtHtH}HH}HHkkAkkkAkkkkktt9t]tHt}t}tttAAAAkACC9C]HH9H]9]9]}}Ӵ̜ߴ̜kkΏίmm9tt9]]tߜ̿̿߿įİűƳɶ̹̺ͼΏAϾпߒ9ߜ9ߜH}}kΏ]]t}}ߜ𠠤!,9AH]ktAC}HtH}HkmtttttAAAAkAAkAkkAkAAAHH9H]HC9HC}HHHH9HHHHH}HmHtHtH}HH}HHkkAkkkAkkkkktt9t]tHt}t}tttAAAAkACC9C]HH9H]9]9]}}Ӵ̜ߴ̜kkΏίmm9tt9]]tߜ̿̿߿įİűƳɶ̹̺ͼΏAϾпߒ9ߜ9ߜH}}kΏ]]t}}ߜ𠠤_ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@.DѣH*]ʴӧPJJիXjʵׯ`ÊEJpٳhӪ]˶۷pv-+ݻx˷W~ L~#^̸ǐ +L˘3;YjϠCMӨS^ͺװcL0Ncͻ Nȓ+_μX-]nسkνЫYE5y#˟訄Gtا%MzaƝ:a'0.JF o;Y0 y"J*1lq&Jg p&*ƫ,;)8.Utzi1ꛩalJ˺pLոvb1Z~'TƙMBІ:D'JъZͨF7юz %r 2hHWҖ0LgJStN/a K@⧐0+ aҧBڋJkԦ:PT*ёb85V B(fP'zFA+dJնp\:K`u N*=rXEsMbƵxN?).|0k{:MjW[QWp٥pK Ә'#VBiYKouVζJYT6(v" x=:RKl+h{R@_r4=nLBji iPMv "`j4Ihi},%pc v}n{_޳U3w%/ְgL Na{`uћ^$ Gm*\&;2ql'S]1Jy^ݛ.hNHfc&qL:;٪@sj+΀4/~N^ J[zs*g,7Ӡ^m;̊WQ7ԉFTYMZ ul^ZBPNE]ղVQf'Mnw6f"n{Am[r获mvG jz v3eQ}vF^[%^c ¸Ge4W~rN5gq9w` ǏyNAЋt=nԛ]|Xp՟hg=9wzv}/w~ܷ;僚Yk{={Cʿ5 Oxns׼x8/[VW?ӑ:\oy-]#ᯆur?ZsU|ᓿkT[W[žd 臨k0~SzW nz_C\e`vaD^~wH7Vcx~8_cTVp7}y 8Tmfg(fmS?u*}xgzg(3H4iFiVii)PNPR8TXVxXNgN\؅̃s^bx`8fxQhlj؆p!zrXvBz|؇~8Xx؈8Xx؉8Xx؊8Xx؋8XxȘʸ،8 Nqp %P؍8QqٸHh\p쨍܈ ! =P *!%=pب0 xq` Ψ5 'ɑ㨎hyHh'ُEEDGy%:ɍd`iX d?EŨpɔO)B98Y?/X@ t(:=gɎ I\U9XWuY)6h{I~Yy<ڈ d,yjYiy| I0@0"i(Y/Y9Yyșʹٜ6q9Ay9oٝ~9IyYY PI' rztRٟ)Qڟ]R ZDTY EVbi%!j PJXT):`#С'z/ZXbfʢ#Y9'F6H/ `_a BbD$Jd>dO ɣ%E)*f)h0&abqjJʥF5_]Gѧ#&Ca]{ vx* 8d@Qj{}*`#bu)9m5[*&桺`;E1Wp(BRc]+_EZ(4UHc)ڵcD!Gmhڻ]/U싹)$9Rޛ~ˆK ;[4Gb];uk뭹(ubB=u4Jh 'd+=p"0SZ*GQGgȵvfuc(rAgbqapqV|X\O@D^b\AfƝjƖnǏr\LjA(z|Iy"QRxP|܅||̅|,~\6H*e ' ʟ,S!DɣP Q qlN J6ILQ.e %\ EŜt; nan, =@ NeLTP:d] <B0| ֲ ϼ*,о\@40 Npʼ|ʳ@p }m, ѧЫ<P!3 ϫ%aŋ{_ n"G{/m<͠˾o` JR 2mo`P-[P< +ͅ@(]٧y۪|}Pĝd M MtL}([ U&Nժ-GѬЭVbMO\k}YyMcݳ M]ӝHLޡmm\|ZmܬaM麮EqΨ ͦ̽ M!}=?*]}L E-[ڼ҉&m^^MПS 0Ձ~P7<\l\dqM.M7Zw eM.!&~\,gV-+'t`FvĤ^uAnib^s?;PKΡPKkHOEBPS/img/custom_breakdown.gif/GIF89a; 3<JJJggg𠠤,;H*\ȰÇ#JHŋ3jȱǏ C.@ɓ(S\ɲ˗0cʜI8sɳϕ7 Jі*]ʴ)̠NJ:*իXL׮V4,ٳh{rM˶mMnE wݸkŻ}gL2 q.1LҲf?,ӳOѐ9YЮ*lcȒqo}uJ'?/:|t4Q#OryڂI ~tƇ/[Ny;s#{7};Ũ#<()}ˏ|Iغyg^b|`G}-` R|gP^}^v hv&U5{ۅ!aB<,hdSe b9iBܐ9%?uhԏRe()T 7A:7Yb{깦X7lEf1ڟ-I(f2z䞝8(3(. )(::ӡ+)*ik]zj[籢~j|vۛpSv%Zm͚ke8kry]o^ki􁪢jVȥn"̯0j3J;uܥ,盭Ùm#믧oҗ&:駕fVeqnp(,a["(`-l:T! c5MEؾ*$04*qA _|D"RqxӒD%Nx^lr { ۏJ4| dya$x09"o^%a%,k"Y䕶I-s ]r+I|)̕` &2!K631D1IiRl5fb3QLfLGNiMoW@a0 :Ftt$m:H),\LgauzE-eQszѤ.sOKM՝&gZsbLM\r3ZƮ2K*OR[K\Ƙ(GG.e_Bdz}ӭlhAL"GE7C쯍hSҐݽ3NXҶTL_;lOOq?UU3nὦU)Vkx|5"DjQ8|tn>2Jƞ7#䡼y֯⬳\p1.갻kz.ѮUOcg{nK_,5oMsJc{vƧ\KTjBAnd7=i@C'lx)K_~>bkn|ˀ$|P ҍ ]id ^Wo`bׇo-%o8{RUc~iZGlG} Wb ee}׆[Pad7UsV 7r)u`};DƎ'fn,NFHm%}tϱfu&GY# (% l?ȊiftPבZGnm&6o=Gf5n dt ;HDXG%{T7FE@)PG8S:I0pW?yا?BpLiDqyy9i@cqTIg~}LƐ]_r)^Oɖw~{JWاq9 Tzkx-)2"ǔIzqtg6@PlrqD/s!qb_wT؍by[aGYi򸁽`[y`Fi9;CYY!V!IYX)̖CїMYQwYٞƝx>Iy6%RwqTIrhJşoiډ9qqqV% 3RZm@eS)Xi]Qx(؜lC(1稣5HeJ4QAeHȣ(9PR:TZVzX;PK*wPKkHOEBPS/img/wavetop_on.gif?iGIF89a!!!!!!!!!)!))))!))))1!1))1111!1111919))99)9919999B9B1B11B91B99BB1BB9BJ9BJBJ99JJ9JJBJJJJRJRJRBBRRBRRJRRRRZJZJJZRJZZRZcRZcZcRRccRccZcccckZkkZkkckkksZZsccsscsskssss{s{k{cc{{k{{s{{s{{{s{B{Jkks{s{{ss{sZ{JB9s9ƥZksƭƵ)έεƜƥƥƽƽRƽε!ֵΥένֵֵֽֽ֭֌޵޽ƄƜ罵ƽスƽ𠠤!,!!!!!!!!!)!))))!))))1!1))1111!1111919))99)9919999B9B1B11B91B99BB1BB9BJ9BJBJ99JJ9JJBJJJJRJRJRBBRRBRRJRRRRZJZJJZRJZZRZcRZcZcRRccRccZcccckZkkZkkckkksZZsccsscsskssss{s{k{cc{{k{{s{{s{{{s{B{Jkks{s{{ss{sZ{JB9s9ƥZksƭƵ)έεƜƥƥƽƽRƽε!ֵΥένֵֵֽֽ֭֌޵޽ƄƜ罵ƽスƽ𠠤 H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺR.c˞Ml<0[ ƬУKo~`SǽŅIq˧_֘˟_% .(wp J姠t% V$\'ʀ I&)Gb(&$J\m"I+^b7㏜#hdw(C*$PFM$FG$Gc(De])h6fsDrKsŒ*Ci ]F` Bk:ɡ2ʡ<e)餅.3R @)/I, E%jtjHhYPĂ#x!`A@:Vk\cAD|g$pBI!QK6qABiA$A ѩRp At'0m~_f uKla !L\pDwt]1vw7><-ς%t y\Ƣ8 bkN+8МΕ} S h9ژ$+ec2n7;7he @0j tE"RV{B`]PPP l'|ϱ"tzS5` `Ӹ g(6'j\cJ=q)E /B Q{ 8 IՖ!=VD~zIJZ"#%/rGFrǑ7yR!$)+IOcIe`yZڲ\$ ZJD;4|ِ\:21\(JtLJ$<̮nz 谎2) /%\1ٝu6) gK.d5)~<,A?Od%(7І:D'*[f ag&CB\1 {4<B-@*o=t ~0*h8MKRݜpiHM!Sr6}N1::A}I0S.¦ i'.#T Rz*\CWk o(iF7ҨT%jJW y'1u=` z ՐFE[Xԯ9kU'{ʚ^KٲBZ֗5r)HqW{(lLr/Mb <*@+Tˢ})gt.V_Zb6 =NAVG|e[׹=]ꕸ*e7Xҕ )t!YʾtCnvJMxU~5/eokڗZ4†q[궹VZ8αw@L"HN&;PL*[Xβ)jL2hN6posγ>πmdo#EF;ѐ'-d#(N{ӠGMdx走MbE&gf;ЎMKζfq_ˇNna+3nMzOƓa~{C-΄'NKQȁ`ЃFHgߊ+d0#i0_X=`@4U0P!pwwq (P`{AD^D8.0=JA1LYȱz&r;c Ʈ"x@@3f2՞cKI_;78x"ސoyI9ߘs)$r؟#1] P Wtٞ_] P=o/^ѵ;23p;6zby0M85` /<rx#@0 x7fuRy7P @'0P~PE@Ew3pc.w9puqL@(`t"{:vwc@\7ZlWptF0EH-g%MuWw86w9`!GeNa*"0 /4pxsFT7H-08vccP0NP&X GG@PNGP A!8&@"h@'v&p{CGFHX w2v`xcsB.W|:':@sHx 'pNhcFW2Zpzk瀖0wPE4I@Bpc CQ@`8  1(! @r8$h7V 0hwvlWr2  q%ВW&/ycU'~*iPǍ獻7otyx xKx:f;cG I`VW 4({XI.8Zvy18zR@yY~6h|lAvLGRpp-`VȌ%pcfԀT~n(DpO.xxVc:[`jWB@ [0Źq`2b7v)BP .`1X{E$ٝ9gB@uaЂp`Z+9wP0xYXpsיswTy>rPf|W;.Px PscFOg%Y3o0cMըJW!8F>gOt h-7$87JjI8jAXeq8>'&rjpʇ1z9t}czc@Zze:y:ctdf4 x.PFjXkw`uTz" ZPpZmvJf %dްq<r9e$gr(wc+'ZdopGp9B@CpZpzQ{v[nQI(mv_Juww2>tB7tEwtIt)t*dS7t!rkupFYD eedz@ ׏'}{8})icٷ}ݧg~.Zx7iwWd(PWNC8JwGLE$~%wXDȲ^aHcXg/J8qFYcGz9;&pS®HF2@(Ę(S{cیH8G'~ب)@dhtX8Bv݇pS y|C9s'G8Q7F6:K> xCEy`̻d{ȏ;}p{l=gS3pcހgWver@˘y|-I!@ycZKۼ\1c  ;w' OG˽uia@80|wp*~܈>@i |c dQ0zCq9c)dAFF+WtY]cJn<:;v?FS)ČxNJeXɎLsݸ}am}5x|0&LH0-^0=3v0Q`T}@nz*`v+9c&n*.GmTpݽ/b*~'*@mh.߅޸Ԇowu>x0 ġ.}>mM@mk^LʟP1is1%manq :I~:^Hણ^D>]֞ھ#-~x~ĝq^`mM Y <Դv=ڊףԁ=Oի@eϏ}X}^ /aO\lN Mb?7>O~Qm֪]*-olO3/ a9oL]>{2_G.L'PO-oȌۄ/k-!a_ېOm Q_ۜoN]Q۬` s(1Pm Y _ۖ5/)$'PP #M_nؿG.sPaOoJ_r>QO@ :fPB6!CM\DX=~RH%Mh J-]SzęSN= aCcfTn\j!OU^e#V]~8*e͞eA,Iklv'0uAWU8X} F Җ74 rAgAx|D3 !Kx@ǔ >T;#\41NO MnzDw*-DtT Hp"iō5p"':x9HԭcO, @0d0'.(paA Ěn(7ب[j9tp) -iE./t(hš)DH 8FzPTE+9Nknl@c9-NXѱMѲ1(8B+2E!eѐ!G';StN' >: SMԅ|+͇-@ֺ0U[T X}k@%t$Vbb r8KcܚpꙖX&PMGҺRyc&HŗR"0_c6 Nu  QDhk 6q 0 WՄb4`N5zDw#D5!3zzXȇYsn5SE\ p_CW{듲:lŁP) ,Y|Q1[ ۨMixDnnNh-7cDkpQ}z&HsL+"-K0/]Sg'lozkw]%j'8F݋hnG(ȵA2-WGhOʚ蟏~zoP3T_OvJs&IXCw֗la<%/hRl w 8An' 0+5"R0nmih\`0`C]\J8U$DT"ĸŰcqK)Є8H4TbAэ=YOl4vb q1H>4+ : EjD!#EҒz%5"D jIR$D^,JV" :tH P%qKAf0 _D&M&Lf6ә;Y&K@T*f6M`߄19NrQ vӝg<9OzӞ4K̜(5i/ b00 6ԡhD%:QVԢ ةπF$iH/Q@'6+.Rԥ+@K7*iNuJJ'B_:Tm&ѹS6թ$YJVժWejIRKOkXU ejZRoZg\:Wy@@Wկ'Ms 7հ굠cl=`M56,0YD5 XkhE+Q.pt!!n1e`3Oñ`Ա[ַnp;\  6CA";]V׺nvc0)br׼Eoz]0-z;_J>EjIֿ58QWZ]Hznƅp%k7H{/19mˑn q? o: ws '\DpryMwP}h8 Zߺ>aYf)]G諒~Ua4B󮍪=ܸ nvA' Ov'9{Op/jR%puwǸz^ЬM?r'19i7jM{ WG>pv̟Vekm:um5@=& ~.?/ҿ,k{߱@j[ c.C ÿ󿗀 l> @+ 1,P߂d?< @p\AR>V؂'؃D4$@78;ScAD/D*BBʾ>ýHªڂh*8B :C%$' ²/Ԯ.?A3D"C?3 -x"(@$Ck =CD=D$"<+@`;S+lh+hBBf87)8 N`l /`V8 B-LċJEE?7Sn`jaE"@%<%Gd ܱ3 .!t/~zl(D0cDI;Rj7p-ƦuthF2 g%ֻ+_(KHmݺ"K#[1_s ¤2Zҁ0EcLRO.]Fe0+/0MdY\ [>)dV``TUV$G'( +\4 ݆l{¤56ḦjڧeȉK C Ѕ^@@f;pN<Ȃ΂X0FJޢd$18eY`|uO8Q$LɍWS&114l. XWRۊٚnXiuT!1ե/k@iPꚼ0U n*ݜ鞮jSВ-*ppM؂).si޴9-Mf 8ޗ:gZ/hJzJ<޴ZdPȫh#CxQ*#߰Њ5Uf&b0̀j<\y.0V%Vj 鐯SfM=tnڞ m^n^eoBo^o^'Q>ib<'p)l:^lf`xlD*LcV,ôO^jTӆ\nkDW#4hDHP7ݮ"0߶ _D.d.bkVM鲆߮egr78er^1'bfv,vf\ފS7\/7:sƃAR Oxi3gT`'r̖l} *+ u+Hn(CxZ /~)gAM9mR&pޘ=o r(&.pm#->2@8eL* ObUESfaF xte>2ز0SpjVatWT~OLFfd"BejpDir쀈mΠ/)gK: sS K$pIl/PRMhmQgPKG8LaG^+[eZZKp4 'vv$5bnm{ oq\:/.8'JūZ+->ޮrx2/\XVx6=W|/bG{ήxx(Nx>PHܱ4,B7LlV֒iMZ!% ?l,F#Wz3&zijs6U~zkW^=z6xy^`-o{r'P{Em[BK 2l!ćhXseб7rx "G,iʔй`Rd/_ZA'ulBfKA.W.T!§RR ZrVrnHR,ml Uu+wŠh!ӥqCq6Z\l2̚7s(Y:2ÀW?utUѤ9j96ܺwDؠAIY/ڢSg <跭ٖ>q8ǑdRr& hWCY^+ WY^03h0DfUjP.~cD9#d}"1X4\ttI9Р=vgc&y$nF#Pyg^HZyAu]uOF c܏X B<%Ʌ}C7R}yRJ4'#@@ yiy([y ѣ iX&8T@IVnjz:v`QhBwgʪޒEukԍ:,n*ѹkeFe4F:S -\<"Ԝt2DW[.FjѮZ"\9/gxR"^TkDG$͛T -H9'1%tcHZq$X#k'n=> ͗'{o5b-w/95nwے.eIsJɰmhS$ {392U.SG[o63[:2<4Ͼp&OAH@הq; \&j@1kp &@p a3CyNXpCLD!Q*1\bzxd (m\CN/!bd7*|Ea#6ь\ O;J,am|e rTXA ^t~IO~P#%Bk LLH)##y  rFt*ei&TJS h3q3ÝrdT7{Ec61D8w)MuPb kxf"]g,Ku^΂X:T1`T?AvQe4b6E6u"-sn"rgK廅VT3 `'yR|GC@;¸XQsQ1.`zU Ɏr*O3C< Be(jĢ0bk֤:d JBgy`*$:$l=˅5FZH9*0BK*;bIR+Jl tJW B{1ZmF7}e!(PQxY.k!n=J ԃ8A{$ՂrCf/<".mLF:R \`; Q5qWB@05CNWcVpa VF.x:zqrݯ^s_7E ?!4/:: c8D S|l= :`1;$. 6> FNn4Z!HpL[T fTҚa @I\` S!FA֝B@h Dq|F!AB! pa\a=!2&!h`q i-#Fdusa#^SCl&~9W :44GT!4C!""":+".ƚMAjBA.cք[0&2"]9&8sᔜ T)*G+U-:!C  l\Y=::"t]\]=#b>d∸0 @@PN@|?nQK86B ggYhhB@ic&kksu!m6K|yfhtΕ?d`bhie@jD 9LuYcƣ1hhuX]i(b"-"{z"D'&:T1UD|)"Q'|ʧG4i=g]@% Ty)Z"))N\bw" 4@ƥ⧝ W&d)P6]):))BRI^f)_n*v"5&.`Y面C)>iFŠvR G|**NkRTj`l+6~NC^+fAfkE\vM렫+"ѭ kkMUɅՃɭQQNrBu}MÃǞƾBBl=Jl|JElƢ]Z,҉nlwqA+B,^Vk%QPlR Þ,&-".kњr˺e, Vl ӂ-R͎߿b& *R-&m-q,޲2,Bl--.B-l.nƲN.+ .N-^n"D>.F^BX.ƮZW+/>e&/6>/FN/V^/fn/i-oo;PKO??PKkH!OEBPS/img/simple_bus_obj_attr.gif`GIF89a"""""33333DDDDDUUUUUfffffwwwww𠠤!,"""""33333DDDDDUUUUUfffffwwwww𠠤SH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊK`L8!Bٷpʝ+ !߁La⇏KL2 2(9E |Ha"Ä RD.i  D1 x-ͻ7 4W$R5n #NhEO +0Ԫw>2hϿ Z\|%Xb^ ߄VX^_q@ ~ ' @Bf,8 p"6c5%^0DH&) DA (8ؕU)\cVyA~h96Aj)t-`@HH|zxj(S$C裐F*餔Vj饘f馜g 1vj꩘b@> ]뭸pv%nZɑƦhi)jqE`ppxV}Eryryuzz"|׺p p#` 7\[1#=g h |&;lN-vr[h {)Љh2%X!\d`"S"3ݸ1qDJx^Xs"ń$mt |ύǦQ͙Θ=Ln·FdџoMՙCz˞Y}"HsURc0:Hi,֓b (xȣt٨F($e*I/ևb[,/# ,ƉX~b0 4cr>TU i^GRmV6&4\$.$A*יQ yC[@((mQ w# ǤSiF{4Js_6٠o !̖M!h).-R͵V!D¨9lE[n"[l@n6\!0Andp݊8W!Iv%FD\Be.W{7!U+ޞ|@0p> DD)([DNy> 0 /0 W o $"ӿ1AXJ0E{hЯR` Ꮓ !;#`H9H`k-"Lf,yC>_ld%Y^@Χe.Ƥ/ %'8αv<x̆&Sh sA< HyIfhRYcfcPӔf]$_jmKAχ2dNZF6 Ib5e}=9ivq[{ʮrך2OkD|f('yr\0Z7x [@]^9}&h8wq$-2l`>ߖ2{;g1Ӻr;̀T mq sKOp :|u<כ2{rv}kwZwv]~ECOH Y[k|^ȻNSDj*ARTEdOڟ~pLtO)GyEAq>v/:I'G7Xo˘O T1/GϿ@/!0Aagwr (\ $ 8^x$8x!#H%"('8+X{-W/-H3x6Z9(=X;A|?Q1Xń焷P[#0`vzu,^煰"cF)]ƅW|GHB(tDH| o4V\t0a`Gcfau6aem[C%_c,6avabEljvT(r'ofMV`FeQFn_fmgf'td=^f%f) C)baxmwVHSֆFilۖnc&&#XhnnfcUnǶx8}il¦GSdva?_@slc1n8lWjLXv8xZzXxp&nl(Sibh'{/%eL3)]^xgk4)19}{Hqgmkwd掬tVe=iuqMƋc@fwfH&pWhyS`cnrzI霌)֖Hgvh&i- jVij$*& iIt)iڨ, /O2IӉp ZB٠u9 jkaԤviJHHnɡWlNZЙ%*dfYHv~:Ȧ3oJ:mwIQ:n_Qi1:vʕXj^:ʎI{j9{n:X:Vdo_q]U)? שpvOdq8pd)_WiLDY9yYz|j7W1kyF.Gs2GsusIsjJt.&HsKwaNGPӚ3vC7?sJ)犤EY__h%mUDɬNYHrLh "z3S؃z;|2 {~Ț$| 8& li[L-KY+k K28 ˲1Uz*y;{}7ۉ״mC[~P˴F;woǜ`?Y;7RkWjl۶npr;t[v{j;u~핷K׶exL;<ۚ{ Q[{t|(냪8{9ۅK'9;03Uh{)kll3h[:ۓ>ܛ& {k*k﻽{u8ZK;>Z3YlKxh,\;q򋗖X#cK!vӻvx-a _Lq\<Â78 j؆ |ZA(ABIB!$|:,Y0=츆ɣXxDEMB4E"q QJ;ſid|\8OnE"<0.X8U@a۷Ÿ Y:}, &K%bKȋKT: +̶%&x>_ܵADN%OoE#$F;jo#p ƒ],%K=V#xAX襶#_l Q`x¬Z"&ꬶlo h̐laMo+HUK56m >+%6œflL ei }}fr F*9nyZ\97ʡ|;MV P WM+ɨy̠K̍\O=;:iZ֔,\MF2:?H կlE+՘zusoyizrrߘ階ޖ>h^~ꨞꪾ>^~븞뺾>^~Ȟʾ>^~;PKÜ|jPKkHOEBPS/img/messages_chart.gifC GIF89a 3<22KKKR.aacceeerw*yyyݐ]╖͓""ݼݿWWЈՍݧ𠠤,qH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳgH@M 4ϣH0CѤPJ@U0@eL*CXfN(+@25Xl Prq( E'&] 䢆q xg:xQ(q݀#CiS^@NiL ; D`-6UZOQU>ʟ*qXW]\=z_[a`U&dVm!~ISIV\zFciVTeuPbZX B_ t@W d0 N%h zq[pbv:#yhG@5vG6RVE)"Xf\v`)dihlp)'~(0'"  wj~hF"gzE1@(>ZQZ%zԢrZ>j(j =禲6D+OC+q.PjMr0аw"k@PB쳬 ^P/m++Cud.)m KAo7@ÿ,l< 7 {$A 41Bnf^L{|P-mm"oD2K&SZ&$RˡDsǜL;ߊʭd<*PG@0P)Zw2#kdpԯՅb6f ͈,m-Mawtiw^wLQg>36Jw39oǽ0>ImxM'~7`ηh{K8饧Kz='%?;-IOy+4;#?pWpwΐAo^xBNۿ7gQa%\^0v@ @-p\ X5 mu,]I집 2 $ӱĄB!Tvxm \Zx zw#ij.$8ۦ~PvۻȌؑ)3獵Śxqk`GEQkiB8"QG b1u R>2B.qkM\GZяcb GX2Ɋ|RI{"HJISʑz!DTVNĕ\;R" jjZE<~ĭ@䊪vbk kʯ T[WR4鲘ͬf7z hGKΒ )AiWֺlLr\-Bl1 |K%$%A\6w a.'$xnp;]Jun]j7}u)Uy+Mҷ ~^ҤT0G27XP;'L-'+pὬ5+2;[91jgHy̯6,8<.ދѦ|bqk3a$b9\cܘb0+Cd /yT某#jb0WY4氙#((BQ&i39dQ&u SH\BЈNt;PK H C PKkHOEBPS/img/simple_bus_obj.gif GIF89a"""""33333DDDDDUUUUUfffffwwwww𠠤!,"""""33333DDDDDUUUUUfffffwwwww𠠤SH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիS3<`B K٤U ݻx- >È\ ~St&2L mQh@/ SF/p}_\ .4 O<{~tk5|& bp֕{U^@B[ XiX} m"``)ea{^08 < A D(7՘%i`JN4֟\v^v~ihRep`p)Pe"s5@f砄j衈&袌6裐F N6p(馜~ɘwqWf"ej`m e]FV_Y6jp+WX ybX V]sA']WFe覫SX܉\8Wge`i 4ދV,La5$Ն%iW~ 3<~mA}oqH@v(,I~qv/yY3e)9꘳[3'4FBre*~]F]=A ,)+E05c.m6j0Ipm7KuDwH~(n'7G.Wngw砇.褗n騧ꬷ..S}MgC`4jdrn85m Ew$9W/w/o觯엏`F3`0#M+dȔF~ ˡvá F0B<5`9*׵- "J#?/JPS+RH \Xwԓ!|QNu/:Bm"~%/;灉7H.@.4ꋥTHDŵ `([##DB+VA.N'6"עioG\&HuIړa` dHCMA p o Niݯz! p K 0 xS 7 =0`v%P򚗰n Dz5 a,cx d`:α8 X'0} *L\\830%7Y~gy9`_8?鮊<8Ts= GVp `1=g2N?K:]4eg;qNU4ߗϨ^ <[y S=h>;Ճu}jL7z9.*Q#}.샄ƚeL3D\sXѯ洲9G^s %cn ʗx[Xmhfcǯ1nx#,M(d_|e}a O }*g9\' n_ne3@&C\{L0/ߏ;gm{QԱ~Y_;6#Cv}yޑ}ﹻN@]_ݹnX/F R$sSUHg yl(jEOSz1}QBգq}ewڥ vCxÇ#~C/xߛ=A~O[vweaOO1O?Jo7A~I]O^bd5A23!dw1 WR1s(H!(5d|,%' (#@_gmw 1uE)Ow~B('1^uVb`&`@` _Wbօv`t[a2Tg.af`&hK>ȃ+DXp m/cYdhE&dcQ_Sop[}5Webd84y8QXwȅsh_$`=b|VhFkfif0va1`&nx|NnjgȉRhdϸ`淍SWkkk:kۃ`$prcUxHX7Iƍi> qqjvUH2ta( {|%N9\!,F|x\ՎhuQ QGteoKohd%@tHq؇v y>AHkOk4H_ d(sN+=3j5XtI$s;kZqA'^&^s$)_J7`eX8HZtzIa^'&`9uiV iFtxbQ (_")S>HoO6+ x9x}\ cfmFsffӘoTheX h_i\ Ԩvަj8ȞhtkrlYm6lVh mhbVɠkYƕFƨȡOq$!ٷȋ8! I :ʢy')'l)52hZyY mxTJi$mQim ie*_ʄ@jܵHA#ڤ֓6n& ))C|oxhwfigIR p㥓4tct:qCʐIg:p !MXbT!wr%wrN`erVd)s4gs9ss@GBG_*Czɮ ۯ7* >% u+" }q3"9 wgR@B;D[F{HJL۴NP۴ <[(TkjQZ\۵^R[{ [vc(fK|¶s*yB hw{z]|bK ۶&~k{&벏 Kj;UwǦ{%۱WV[=2&iڪhav+iln#˻fؗȶl{i&Ui֛Vaiv&M{|f NѸ pLPf9Zp+b' {Kۥ֟ʟxj^;'_7(J4hދfh7k~:y)9<8(cڸM $ Jܩʶ꛹D "FzZ,=)7)GRLcn< )ncƤ]!_)Ga"ʖ* s:jiJȹrjfۊ (C~,xPʨuˆ;˴츶 ˺ܺ\pœ7|eǨL,l7\cp|6ͅ/o H!Cg:'H ZDo@ z GHp `:x0 gPX,w C HLM(!⨈KH*گNl.z;bE0hL8ݔqYxǁQx̣i6[)BF~~D wHE&%\XUJu3Y!V pj[ּOs%L]G8K՝_gX +?V0ZWvZͬf}XU}XD6fW.V/HC [Tg]iJ JOmmE\ Wm\N ¥Rxׄmuk[*Wyn2~<};;]&ָ.qv6 sپWժz^e/X5mxoZY`1Xu0?؄_Xذ<;L?4"f'}cآ8M\"Ϝ"FdO&߫ؑB9Ne(o]2C/yd6sü1s[f6vγ3ϳh! db _K F0HXҘδ1=瘂޴9=4KJnƌp<#P֙Ehk\kZ"1oU˰'k]i_ػ`}ih+ ZHMlcǐ^6kkG&{!vMSjU =uw$=\v joaK]7P&xme 1>q[$/wOܐuKBD.'xor 0|x-h~yC>҃d^%I~&K_@W'Wk> _{ _,z=z?~σG?o~S=(*Os>[|ݷ}}wHGz} ~Bdd`wou|7?Pty-7, /b/v$?Df<؃>dׁ?8DXFxHJL؄I(}&@iR8TXVxXZ\؅^#m0hd7g -}nȀWo4^EhHVNuHxh@g`xdmf}-.xjHhJ8c8d؊HnDs!7mHw(ȉ6|6׊"،[e(gX~rx׆藍q؍ׇvBo(py5[{Hm긎ÌيV+q6H9:y<ٓ&dt"3YGXK 9NY7PVw1tEYyhi[Mٕ(DYqimpYArɎTi|1CUIxyl,jy|9Y)j>𣇡|8GGb9Yʉkٛ&Fyȹ霛Ӈ$N؃y깞ٞHXY^`坞ÚCfIidi8)yٙƷ#؉: ї] vġ:)Ii+-ꢹ )DFw8Fi<>@@>6J*Gj9CMZR:}P:SIBRڥacڕ CA9i)ʦmzk+:w٥ui9Y4TPf Zv{z)Z&i0iJ*zWͅpkА\:pŠŘ 機**JIgH٬Y֪*Zˊh鬢嫛xjȭyOvkd6pze e֯+ K k˰받&ʮY jح 9iZ?/xy=)(GJd&jiԊ?4?CE6ۧjв. GW樁Bk2+Y }fǦJU @g;uyqpʶ^ˑ8 b;t{xy׷JEcP*K睌 Dù+AKAs:[o?w1tCiu㸸{A>kK{x?k{m+oKB;nqK@K>vj73Hכ[z'pʿ)@ܫ%l֫{рwpə;+ +\p{1~~/q#o~tx~~˘6Ye lnp}N0t]v}uz|~׀؂=؄]}׈؊،؎ْؐe|[N60٠ڢ=ڎ?G0ڨڪڬڮڰ۲=۴O\[|g>f@N=]}ȝʽ=]}؝ڍ\j[]}r{DSQ-?E?~>?|? .? N>j[ʊt^ᣘ#*>n)/,^3 3+.$>=n{-C(5>G>;NN8>OLHT.ZP.JzZ1^NYQK>-@4~p>Sa`.mx탸隸g-$璮v'^N>~:|HJ檷S@ G-7{F$iRnǎ^3D~ҮGlDSӞQIqخ~Dv ~$d^hߎ.ݾ\BcKe#~_B~b Tw} !+} q? Y"@&?UaP-A JT"^.OA_GGlc̹j%e%OP_P҉Ư_O#6LrhJGLoGO{/KOL˕~B0oO//Aܟ& 4XpB 648pM-B,QF5yRHF%MDRJ-M. 傓4KƔM={YfN8}u T˔<":4fP/>Ԫ7v+QVb HoxW\uŻd[jX`… FXbƀWdʕ-fΝ=ZhY|{Yj֭?~SZlڵmƝ'Ԯ}>73_ōG\q?>rխ_ǞesݽVx͟zvÓD_|Ko_^0@ۯK@d40B A /0õNMB6G$DOD1EWdE_1FgFo|w-D2H!$H#D2u|T2J)J+rJ&2(3L1$L32M˾ logMerger utility PKΟSUNUPKkHOEBPS/consumers004.htm/ Adding and Deleting Consumers

Adding and Deleting Consumers

Business Transaction Management creates consumers in one or more of the following ways:

  • If you have set up consumer segmentation, Business Transaction Management automatically creates a consumer whenever it encounters a message for a consumer that does not already exist.

  • According to the information you provide using the importBusinessObjects command.

  • According to the information you provide when you choose Create > Consumer and supply values for the consumer name and attributes.

This section explains this last option: how you use the management console to create consumers. It also explains how you delete consumers.

To add consumers using the management console

  1. Choose Create > Consumer.

    The Create Consumer dialog box opens. The contents shown depend on how you have defined the consumer business object. Any custom attributes you have defined are shown in the Attributes area.

  2. Enter a descriptive name and notes.

    The value of the Name field is used as the display name for the consumer in the Management Console.

    You can set up filtering on the value of the Notes field.

  3. Supply the value of any attributes defined for the consumer business object in the Attributes field.

  4. Click Apply.

To delete consumers using the management console:

  1. Select the consumer you want to delete in the Explorer > Consumers view.

  2. Choose Modify > Delete consumer_name.

    The Delete Consumer dialog box opens.

  3. Click Delete.

PK4 / PKkHOEBPS/utilities004.htm showProductInfo utility

showProductInfo utility

Use the showProductInfo utility to collect information about the Business Transaction Management release you have installed on each machine. You should also check this information and report it when dispatching support requests.

The showProductInfo utility reports the following information about the installed product:

  • release number, build number, and build date associated with the installed product

  • location of the uninstaller for the installed product

  • URL for Business Transaction Management support

  • URL for the product documentation

  • URL to main Business Transaction Management web site

PKedPKkHOEBPS/consumers003.htm Monitoring Consumers

Monitoring Consumers

This topic lists the ways you can monitor consumers. The list orders these monitoring tasks from least to most detailed. Each listed task directs you to where you can perform the monitoring and provides a link to more detailed information.

In general, there are two views that offer transaction performance information segmented by consumer:

  • Explorer > Consumers view: Analysis, Alerts, SLA Compliance tabs

  • Transactions view: Consumer Usage pane in the Analysis tab,

If you have defined a consumer that participates in different transactions, the Analysis tab and the information presented in the main view for that consumer will display values that aggregate performance measurements for all transactions that involve the consumer.

Before you can monitor consumers, you must map messages to consumers and enable segmentation by consumer. See Mapping Messages to Consumers for more information.

To get information about a consumer definition, select the consumer in the Explorer > Consumers view, and select the Profile tab. The tab shows the name of the consumer, its ID (useful in some CLI commands), any description you entered when you created the consumer, and any attributes you have created for the consumer business object.

To monitor consumers:

  • Total number of consumers with SLA violations

    Navigate to Dashboards > Operational Health Summary and look for Consumers information.

  • Transaction performance and usage summaries per consumer

    Navigate to the Analysis tab, Consumer Usage panel in the Transactions view, and select a transaction.

  • Detailed current transaction performance and usage for a specific consumer.

    1. Navigate to the Explorer > Consumers view.

    2. Select a consumer in the main pane.

    3. Select the Analysis tab.

    4. Look at Transaction Performance for a graphic rendition of performance over time; look at Transaction Usage for a grid view.

  • Segmentation by consumer and by ip address

    1. Navigate to the Explorer > Consumers view.

    2. Select a consumer in the main pane.

    3. Select the Analysis tab. Look at Breakdown by Client Address.

  • Violation alerts by consumer

    1. Navigate to the Explorer > Consumers view.

    2. Select a consumer in the main pane.

    3. Select the Analysis tab. Look at Violation Alerts.

  • Detailed current SLA compliance for a specific consumer.

    1. Navigate to the Explorer > Consumers view.

    2. Select a consumer in the main pane.

    3. Select the SLA Compliance tab.

  • Recent history of SLA violations for a specific consumer

    1. Navigate to the Explorer > Consumers view.

    2. Select a consumer in the main pane.

    3. Select the Alerts tab.

PKPKkHOEBPS/commands044.htm\ removePolicyTemplate

removePolicyTemplate

The removePolicyTemplate command removes the specified policy template from the system.

Command Syntax

btmcli removePolicy -name PolTemplName [-type Type] [-subType SubType] 
                   [-version PolicyVersion] [-f] 
                   -s sphereUrl -l username:password

To determine the type and subtype of a policy template, select Policy Templates in the Navigator. The type and subtype for each policy is displayed in the main pane.

NameLong NameDescription
-name--The name of the policy template you want to remove. If this name is unique, you do not need to supply additional type or version information.
-type--The policy type for the policy template you want to remove. Use this flag if the policy name is not unique.
-subType--The policy subtype for the policy template you want to remove.

If the name and type combination is not unique, specify a policy subtype.

-version--The version associated with the policy you want to remove.

If the name, type, and subtype triple is not unique, specify the version number. Version numbers are automatically appended to policy names to create unique policies.

-f-forceRemove the policy template even if it is marked internally "do not remove."
-s-sphereUrlThe URL of the sphere where the policy is applied.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example removes the policy template myPolicyTemplate from the sphere.

btmcli removePolicyTemplate -name myPolicyTemplate
                            -s http://localhost:8080/btmcentral/sphere/
                            -l admin:abracadabra
PK$\a\PKkHOEBPS/alerts007.htm  Scheduling Service or Endpoint Downtime

Scheduling Service or Endpoint Downtime

If you need to shut down a service without affecting the state of your SLAs, you should schedule a downtime for the service before shutting it down. Instrument measurements continue to be collected and displayed during scheduled downtimes, but these measurements are not used for SLA evaluations.

In order to schedule downtime of a service, you must first create a downtime schedule and then add the schedule to each of the service's endpoints.

This section also explains how to view a schedule, how to remove a schedule from and endpoint, and how to delete a downtime schedule from all endpoints.

To Create a Downtime Schedule

  1. Choose Create > Schedule to open the Create Schedule tool.

  2. Give your schedule a descriptive name.

  3. Set the Schedule Type to Custom.

  4. Click the first drop list and choose the recurrence frequency for the downtime. For example, the following schedule chooses a weekly downtime, specifies the day, the starting time, the duration of the down period, and the starting date.

    Description of down_schedule.gif follows

    The pick a day of month options let you schedule by a numeric day of the month, for example, on the 1st day of each month.

    The pick a day of week options let you schedule by the name of a day, for example, on the 1st Monday of each month.

  5. Use the remaining fields and drop lists to specify the time the downtime begins, its duration, and the date of its first occurrence.

  6. To schedule additional downtimes to the schedule, click add new period.

  7. Click Apply.

To Add a Downtime Schedule to an Endpoint

  1. Select the endpoint.

  2. Choose Modify > Set Endpoint Downtime Schedule.

    The Set Endpoint Downtime Schedule tool opens.

  3. Choose your downtime schedule from the Choose schedule drop-list.

  4. Click Apply.

To View Scheduled Downtimes for an Endpoint

  1. Select the endpoint

  2. Open the Downtimes tab.

    The name of the schedule is shown, followed by a list of all events specified for that schedule.

To View All Schedules

  1. Select Explorer > Schedules from the Navigator.

  2. Currently defined schedules are listed in the main pane.

  3. The Profile tab shows the definition of any schedule selected in the main pane.

To Remove a Downtime Schedule from one Endpoint

  1. Select the endpoint.

  2. Choose Modify > Set Endpoint Downtime Schedule.

    The Set Endpoint Downtime Schedule tool opens.

  3. Choose No Downtimes from the Choose schedule drop-list.

  4. Click Apply.

To Delete a Downtime Schedule from All Endpoints

  1. In the Navigator, select Schedules.

  2. In the summary area, select the schedule you want to delete.

  3. Choose Modify > Delete schedule_name.

  4. Click Delete.

PKI_T PKkHOEBPS/transactions005.htm.Z Viewing and Monitoring Transaction Performance

Viewing and Monitoring Transaction Performance

After a transaction is defined and if monitoring is enabled for the transaction, Business Transaction Management applies the default transaction measurement policy. In addition, if instance logging or message content logging is enabled for the transaction, it starts logging the appropriate information.

As traffic flows through the services that participate in a transaction, Business Transaction Management displays core measurements for the selected transaction in the Main area. This includes the number of started and completed transactions, the throughput, and the average response time. In the Tabs area it displays more detailed information about transaction performance and its definition. This includes the following:

  • A Summary tab that presents summary performance information for the transaction and a map of the operations it includes.

  • An Analysis tab that presents a graphic view of transaction performance over time as well as summary information for conditions, performance segmented by consumer usage or client address, and violation alerts. This tab also gives you the option of creating your own custom chart and breakdown.

  • An Alerts tab that lists the alerts triggered for this transaction in a given period.

  • An Instances tab. If you have instance logging enabled, you can use this tab to assemble an instance and view performance information for the instance.

  • A Message Log tab. If you have message logging enabled, you can use this tab to view the contents of any request or response message for a logged operation.

  • An SLA Compliance tab that shows the status and definition of service level agreements currently associated with this transaction.

  • Definitional tabs. These tabs contain information about the transaction definition and the policies, conditions, and properties associated with the transaction.

This section explains how you use transactions attributes to filter your transaction view, how you view summary and analysis performance information for a transaction, and how you view and respond to alerts.

See About Instruments for a detailed discussion of the instruments used to measure transaction performance.

Filtering the Main View of Transactions

By default all transactions are shown in the Main area when you select Transactions from the Navigator. You can have Business Transaction Management display a subset of currently defined transactions by using the Filter link or drop-down list. Using filters allows you to customize your view and to focus on the characteristics of interest.

Summary and Analysis of Performance Information

Business Transaction Management uses the Summary and Analysis tabs of the Transaction view to present summary and detailed analysis of transaction performance. This section describes these views.

Summary Tab

The Summary tab uses four panes and a grid view to present performance information in a Transaction Summary Dashboard. These are mostly self-explanatory, except for the Delay Analysis pane, which is described in greater detail below.

The Transaction Summary Dashboard includes the following:

  • A Status pane showing the overall compliance for the transaction.

  • A Measurement and Baselines pane showing the number of started and completed transactions, average response times and maximum response times. If you have defined baselines, these are shown as gray lines in the picture.

  • A map of the transaction showing average response times for each transaction link. Place the cursor over each service icon to get detailed performance information for that service. The thickness of the arrows indicates throughput.

  • The Delay analysis pane, which you can use in conjunction with the map pane, shows graphically what proportion of the overall response time is spent in each hop (link) of the transaction.

    Each colored area of the grid corresponds to a transaction link. Clicking in a colored region highlights its corresponding link in the map and displays the percentage of the response time taken up by that hop.

    At the bottom of this pane, a graph shows the average and maximum response times and the started transactions. Clicking in the pane displays a vertical red line that shows how the colored proportions correspond to message traffic flows.

  • A grid view showing the logical and physical operations that make up the transaction, and the following instruments for each: violation alerts, average response time, maximum response time, throughput, and faults.

Analysis Tab

The Analysis tab of the Transaction view allows you to see the measurements in the Summary tab graphically rendered as trends across time. The Analysis tab offers six views of transaction performance data. These are described in the table below.

ViewDescription
PerformanceProvides two color-coded charts: one that tracks started transactions, completed transactions, and conditions; the other tracks average response time versus maximum response time.
ConditionsLists information about the conditions that have been triggered in a given time period: the name of the condition that was met, the endpoint where the condition alert was triggered, and the number of condition alerts triggered.
Consumer usageIf you have chosen to segment by consumer: Lists service consumers and the number of started and completed transactions in which they were involved and the average and maximum response time for each consumer.
Breakdown by Client AddressIf you have chosen to segment by ip address: Lists the hosts for the services involved in the transaction, the number of transactions started and completed on each, and the average and maximum response time for each host.
Custom chartingDisplays performance results for custom charts. Lets you set up a customized chart and table with instruments of your choosing.

Click Choose Instruments and select the instruments you want displayed in the chart and table. You can select multiple instruments.

Custom breakdownDefines the custom performance information to measure and the segment on behalf of which measurement is done.

Click Choose Instruments and select the instruments you want displayed in the table. You can select multiple instruments. Click Choose Segments and select how you want to segment the measurements. You can select multiple segments.


Viewing and Responding to Alerts

Alerts are shown on the Alerts tab for the selected transaction. You can use the Filter button in that tab to determine the range of time for which alerts should be displayed.

The system automatically generates alerts when one of the following happens:

  • An SLA enforcement policy issues a failure, warning, or compliance alert.

  • A condition evaluates to true

You can respond to alerts triggered by a condition by examining the assembled transaction instance and taking appropriate action.

PK..PKkHOEBPS/intro.htms Overview of Oracle Business Transaction Management

1 Overview of Oracle Business Transaction Management

This chapter introduces Business Transaction Management. It describes the following:

If you are upgrading from an earlier version, please see Functional Upgrade Issues, for more information.

PK"PKkHOEBPS/commands.htm: Commands and Scripts

9 Commands and Scripts

This chapter introduces the Business Transaction Management command line interface (CLI), which you can use to execute commands as well as scripts. It explains how you use the CLI, how you get help and version information, how you can execute commands securely, and it describes the system variables you can set to use with commands. It includes the following sections:

In addition to commands, Business Transaction Management also provides several utilities. These are described in Chapter 10, "Utilities."

PKHR? : PKkHOEBPS/commands038.htm@ removeBaseAddressAlias

removeBaseAddressAlias

Use the removeBaseAddressAlias command to remove the specified alias to the entry point with the given base address

The alias must be defined locally for this entry point only. Aliases defined at the network node level must be removed using the removeNodeAlias command.

The removeBaseAddressAlias command allows you to remove incorrect or outdated aliases from the system. Although it does not undo the removal of duplicate artifacts caused by the complementary addBaseAddressAlias command, any new discoveries for the base address and the ex-alias will again be treated as separate entities.

See Resolving Discovery Issues, for a discussion of the use of this command in resolving discovery issues.

Command Syntax

btmcli removeBaseAddressAlias -baseAddress address -alias address
                              -s sphereUrl -l username:password
NameLong NameDescription
---baseAddressThe base address of an existing entry point in the sphere. Use the format scheme://host:port/
-alias--The base address to remove as an alias for the above entry point.
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the removeBaseAddressAlias command.

btmcli -removeBaseAddressAlias http://jbujes:8080 -alias http://1.2.3.4:8080
                     -s http://localhost:8080/btmcentral/sphere/
                     -l admin:abracadabra
PK>PKkHOEBPS/commands043.htm! removePolicy

removePolicy

Use the removePolicy command to completely remove an applied policy from the Business Transaction Management system.

Command Syntax

btmcli removePolicy -name PlcyName [-type PlcyType] [-subType PlcySubType]
                    [-version PlcyVersion] [-wait true|false] [-f] 
                    -s sphereUrl -l username:password

To determine the type and subtype of a policy, select Policies in the Navigator. The type and subtype for each policy is displayed in the main pane.

NameLong NameDescription
-n-nameThe name of the policy you want to remove. If this name is unique, you do not need to supply additional type or version information.
-t-typeThe policy type for the policy you want to remove. Use this flag if the policy name is not unique.
-subType--The policy subtype for the policy you want to remove.

If the name and type combination is not unique, specify a policy subtype.

-V-versionThe version associated with the policy you want to remove.

If the name, type, and subtype triple is not unique, specify the version number. Version numbers are automatically appended to policy names to create unique policies.

-wait--TRUE: Wait for the policy to be removed before executing another script.

The default value is FALSE.

-f-forceRemove the policy even if it is marked internally "do not remove."
-s-sphereUrlThe URL of the sphere where the policy is applied.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example removes the policy myLoggingPolicy from the sphere, and waits until the policy is removed before executing any other command.

btmcli removePolicy -name myLoggingPolicy -wait true 
                    -s http://localhost:8080/btmcentral/sphere/
                    -l admin:abracadabra
PK5zFPKkHOEBPS/admin.htm1 Administration of Business Transaction Management

11 Administration of Business Transaction Management

This chapter provides information to help you administer Business Transaction Management ; it includes the following subsections:

PK]Rn61PKkHOEBPS/transactions002.htm{ About Properties

About Properties

Properties are variables that hold values associated with the request or response phase of an operation. A property value can correspond to a message element, a fragment of an element, the combined value of several elements from the same message, or an expression that uses a message element. You can use a message element from either the message header or body to define a property.

Properties are commonly used to facilitate searches, to surface message elements without having to log message content, to define conditions, and so on.

This section explains the different ways you can define and use properties.

Property definitions are shown in the Properties tab for any transaction that includes the service operation for which a property has been defined. Property definitions are also shown in the Properties tab for the service operation, endpoint operation, service, and endpoint. However, you can modify or delete a property only from the Properties tab for a transaction.

Using Properties

Using properties helps you do the following:

  • Surface aspects of a message that you would otherwise need to drill down to see. In fact, the use of properties can improve performance by making it possible for you to view values of message elements without having to log message content.

  • Define keys that allow you to manually correlate the operations that make up a transaction.

  • Segment transactions by consumer

  • Define a condition that depends on the value of a message property

For example, imagine you have a service element containing a customer ID. If you wanted to know which customers experience exceptions on a transaction that includes the operation, you could create a property to hold the value of the customer ID element. Then, when you inspect performance results, the ID of customers experiencing exceptions on that transaction would be prominently displayed.

User-Defined Properties

A property can be based on any XPath expression defined on a request or response message, including message content or message headers (for example, SOAP headers, HTTP headers, or JMS message properties).

The simplest type of property holds the value of a single message element. For example, you might have the following message element:

OrcerServiceImpl.submit.request.order.orderId

You could create a property named Order_ID whose value is the value of this element.

You can also create a property that stores the result of a computation involving one or more message elements. For example, you might multiply an element that holds a price times a constant to compute tax:

OrderServiceImpl.submit.request.order.grandTotal *.0825

You could store the result in a property named Tax_Due.

In some cases, you might not be able to extract the data you need from messages directly. In these cases, you can create a property based on an XPath expression to extract data from your message and perform computations.

For example, if your message contains an indeterminate number of <item> elements, you could create a property to count the number of <item> elements in the message and store that value.

You might also use an XPath expression to extract data from an XML element that itself contains an encoded XML document.

Finally, you might have a service that is missing a WSDL. Using Business Transaction Management you can log a message from this service and then use the XML view to obtain the element you need to define the desired property.

The following subsections provide additional information about creating, modifying, duplicating, and deleting properties.

PK<{PKkHOEBPS/commands031.htm$: moveEndpoints

moveEndpoints

Use the moveEndpoints command to move one or more endpoints from the source version to the target version of the specified service.

You can only move the entire set of endpoints defined for a service in a given WSDL as a unit, regardless of how you identify the endpoints.

You can preview the results of this command before committing to the changes it defines. After previewing, you must run the command again without the -P option to actually make the changes.

The moveEndpoints command does not move any measurements. The measurements for the endpoint remain associated with the endpoint and nothing happens to these when the endpoint is moved to a new service. The measurements for the old service version continue to include data previously aggregated from the moved endpoint. The historical measurements for the target service version are unchanged; new measurements for the endpoint are included in the target version of the service.

You can use this command to split a service in two by specifying the previously undefined version with the -T flag and using the -force flag.

Use the mergeServices command to merge all endpoints from one service version to another.

See Resolving Discovery Issues, for a discussion of the use of this command in resolving discovery issues.

Command Syntax

btmcli moveEndpoints -n friendlyName | -qname qname -w wsdlUrl | -e endpointUrl
                     -V version -T targetVersion [-P]
                     -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe friendly name of the service whose endpoints are moved.

If two versions do not have the same friendly name, you must use the qname flag to specify the service name.

-qname--The qualified name of the service whose endpoints are moved.

The qualified name has the form WSDLtargetNamespace:serviceName. For example: http://amberpoint.com/orderService:CreditServiceSOAP.

-w-wsdlURLThe URL of the WSDL file that defines the service whose endpoints are moved.
-e-endpointUrlThe URL of an endpoint in the source version of the service.

The endpoint URL might identify multiple endpoints if the WSDL defines more than one endpoint at the same URL with different bindings. This is a common case for WSDLs that define more than one endpoint for a service.

-V-versionThe version of the service that will be merged into the specified target.

Use the "-" string to represent the default, unnamed version.

-T-targetVersionThe service version in which to merge the source version (-V). After the merge, this version will contain the endpoints from both versions.
-P-previewSpecify this flag to preview the results of the move without actually moving endpoints.
-f-forceCreate a new service version if the specified target version does not exist. You can assign this service a name different from that of the source version using the -newServiceName flag.

-newServiceNameIf you use the -f option, you can use the -newServiceName flag to specify a friendly name for the target version that is to be created. If a target version already exists, this flag is ignored.
-s-sphereUrlThe URL of the sphere. http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the moveEndpoints command:

btmcli moveEndpoints -n catalogService 
                     -e http://test.myhost.com:7412/catalogMgmt/svcs/CatalogSvc
                     -V 1.5 -T 1.6 
                     -s http://localhost:8080/btmcentral/sphere/
                     -l admin:abracadabra
PKl$$PKkHOEBPS/alerts009.htm8+ Working with Conditions

Working with Conditions

This section explains how you complete the following tasks in working with conditions:

Viewing Condition Alert Information, provides information on viewing alert counts and alerts that are generated when a condition is met.

Enabling and Disabling Fault Monitoring

When you create a transaction, a fault monitoring condition is automatically created on the transaction and is disabled.

To Check Fault Monitoring Status

  1. Select the transaction of interest.

  2. Click the Conditions tab. Fault Monitoring state is shown.

  3. You can click the Edit button to enable fault monitoring, or you can use the Modify menu as described next.

To Enable Fault Monitoring

  1. Select the transaction for which you want to enable fault monitoring.

  2. Select Modify > Enable/Disable Fault Monitoring for TransactionName. Business Transaction Management displays the Edit Fault Monitoring tool for the selected object.

  3. Use the Severity drop down list to select the severity level you want to associate with fault-generated alerts for this object. Business Transaction Management shows the fault monitoring is enabled for the service on the Conditions tab for the service, and also shows the severity status for fault monitoring.

  4. To disable, you can click the Edit button in the Conditions tab and deselect the enable check box in the resulting dialog. (You can also use the Enable/Disable Monitoring item from the Modify menu.

Defining a Condition

How you define a condition differs, depending on whether it's a content-based condition or a missing message condition. Both options are described below.

To Define a Content-Based Condition

  • Select the transaction for which you want to define a condition.

  • Select Create > Transaction Condition > Content Condition for TransactionName. Business Transaction Management displays the Create Condition tool dialog.

  • Specify the name of the condition in the Name text box.

  • Select a value for the severity you want to associate with this condition from the Severity drop-down list.

    Associating a severity level with a condition allows you to filter your views of alerts based on this attribute.

  • Use the Enabled check box to enable or disable the condition.

  • Optional: Use the Description text field to provide a description that helps you understand the nature or use of this condition without having to read through the boolean expression.

  • Use the buttons and the items in the Criteria area to create the boolean expression that will be used when the condition is evaluated. Three buttons are displayed from which you can select the elements that will compose your condition. (All clauses must belong to the same message (operation phase).

    The Property button is displayed only if you have defined properties for the selected object.) The table below describes the use of the buttons. Once you click a button to select an element, a row is added to the Criteria used to define the condition. For each row, select an operator, and a value to test.

    When you are done, click Apply.

    ButtonsDescription
    New PropertyIf you need to define a property to base the condition on and you have not done so already, you can use the New Property button to create one.
    PropertySelect an existing property.
    FaultSelect the operation whose status interests you, and specify whether you are looking for a particular code or any fault in the Criteria section.

To Define a Missing-Message Condition

To define a missing message condition, you must specify the message whose arrival time interests you and how much time must elapse before its absence raises an alert. The absent message can be a request, a response, or any fault.

  1. Select the transaction for which you want to define a condition.

  2. Select Create > Transaction Condition > Missing Message Condition for TransactionName. Business Transaction Management displays the Create condition tool dialog.

  3. Specify the name of the condition in the Name text box.

  4. Select a value for the severity you want to associate with this condition from the Severity drop-down list. Associating a severity level with a condition allows you to filter your views of alerts based on this attribute.

  5. Use the Enabled check box to enable or disable the condition.

  6. Optional: Use the Description text field to provide a description that helps you understand the nature or use of this condition without having to read through the boolean expression.

  7. Use the drop down lists in the Criteria area to create the boolean expression that Business Transaction Management will evaluate when the condition is evaluated. Three drop down lists are displayed from which you can select the elements that will compose your condition.

    Drop-down listDescription
    Operation nameSelect an operation from the drop down list.
    Operation phaseSelect request, response, or fault from the drop down list
    Evaluation periodSelect the period of evaluation: either before the transaction's maximum duration has expired or Use timer.

    If you select Use timer, you must specify the time period in milliseconds.

    In either case, Business Transaction Management will start timing on a per instance basis when the transaction's start message arrives.


Enabling and Disabling Conditions

You can enable and disable conditions individually or multiple conditions at once.

To Enable or Disable an Individual Condition

  1. Select the transaction for which this condition is defined.

  2. Click the Conditions tab in the detail area.

  3. Click the Edit button for the condition you want to enable or disable.

  4. Select Modify from the drop down list.

  5. In the ensuing dialog click the Enabled/Disabled check box to change the status of the condition.

  6. Click Apply.

To Enable or Disable Selected Conditions

  1. Select the transaction whose conditions you want to enable or disable.

  2. Select Modify > Enable/Disable Conditions for TransactionName.

  3. In the ensuing dialog click the Enable All or Disable All buttons to change the status of the conditions or use the radio buttons to select the conditions of interest.

  4. Click Apply.

Viewing Condition Information

  1. Select the transaction of interest. from the Transactions view.

  2. Click the Conditions tab to see all defined conditions. An icon indicates the severity level of the condition: green for Information, yellow for Warning, red for Failure.

Modifying a Condition Definition

  1. Select the transaction of interest.

  2. Click the Conditions tab in the detail area.

  3. Select Edit from the Edit drop-down list for the condition.

  4. Use the Condition tool to modify the definition.

Duplicating a Condition Definition

  1. Select the transaction of interest.

  2. Click the Conditions tab.

  3. Select Duplicate from the Edit drop-down list for the condition.

  4. Modify the definition if needed.

  5. Click Apply.

Deleting a Condition

  1. Select the transaction of interest.

  2. Click the Conditions tab.

  3. From the drop-down Edit menu for the condition of interest, select Delete.

PK(&88PKkHOEBPS/commands036.htmk) registerExternalContainer

registerExternalContainer

Use the registerExternalContainer command to group the endpoints of one or more entry points (not part of an observed container) into their own external container. This is only necessary for manually-registered endpoints. In the console, such endpoints show up under the Unassigned Endpoints node.

Note that there is no command that allows you to move endpoints between containers individually; you have to use this command to move all endpoints starting with the given base address.

By default, manually registered endpoints are allocated to the System container. The registerExternalContainer command allows you to create an external container for endpoints that you want to treat and examine as a group. For example, this container might allow you to model the fact that two or more base addresses for manually registered endpoints are located in the same application server.

You cannot use base addresses from a physical container or a device, but you can use base addresses from another external container if you specify the -f flag. That is, you cannot group endpoints that have been discovered into an external container.

The optional flags for this command allow you to specify information that is then displayed in the container's profile information. To update this information, execute this command again with different option values.

When updating an existing container, if the first entry in the list of base addresses changes, the container's primary base address also changes. If you omit base addresses that previously belonged to the container, they are excluded from the container and returned to the System container.

You can run this command before or after services with endpoints in this container have been registered.

Command Syntax

btmcli registerExternalContainer -baseAddress baseAddress1 [[baseAddress2]...]
                                 [-fn friendlyName] [-vendor vendor]
                                 [-containerInfo containerInfo]
                                 [-ofName osName] [-osVersion osVersion]
                                 [-administratorUI administratorUI]
                                 [-phaseInLifecycle DEBRECATED | deprecated 
                                 | DEVELOPMENT | development  
                                 |PRODUCTION | production
                                 | STAGING | staging |TEST | test]
                                 [-caseInsensitive] [-f]
                                 -s sphereUrl -l username:password
NameLong NameDescription
---baseAddressKnown base addresses for endpoints that you want to associate with the container. If you specify more than one, the first one is considered the primary base address.
-fn-friendlyNameThe friendly name for the new container. By default, this is the host:port of the primary base address.
---vendorVendor of the application server software for the container; for example, IBM, Oracle, Microsoft.
---containerInfoThe name and version of the application server software for the container in the format name/version. For example, WebLogic Server/10.3.
---osNameThe name of the operating system the container is running in. For example, Windows or Linux.
---osVersionThe version of the operating system the container is running in. For example: 2003, 4.3.
---administratorUIA URL that can be used to access the administrative UI of the container.
---phaseInLifecycleSpecifies the lifecycle phase of the container.
---caseInsensitiveIf set, URLs in this container are compared without attention to case.
-f-forceSpecifies that you want to re-associate a base address that currently belongs to a different external container.
-s-sphereUrlThe URL of the sphere with which you want to register the container.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example registers an external container that will contain the endpoints with the specified base addresses.

btmcli registerExternalContainer 
                       -baseAddress http://my_host:1234/ http://my_host/4567/
                       -s http://my_host:1234/btmcentral/sphere/ 
                       -l admin:abracadabra
PK=p)k)PKkHOEBPS/commands003.htm addNodeAlias

addNodeAlias

Use the addNodeAlias command to add the specified alias to the network node identified by the canonical name. If the node does not exist, the alias is not added unless you also specify the -force option, in which case the node is created as well.

Use the removeNodeAlias command to delete an alias created with the addNodeAlias command.

See Resolving Discovery Issues for a discussion of the use of this command in resolving discovery issues.

Command Syntax

btmcli addNodeAlias -n nodeName -alias aliasName [-f]
                    -s sphereURL -l username:password
NameLong NameDescription
-n-nameThe canonical name of the network node. Typically a fully-qualified domain name. For example, jbujes-myPC.edgility.com
-alias-aliasAn alias for the network node. This can be a domain name or a static IP address.
-f--Force the alias to be created (as well as its canonical network node) even if the network node is unknown.
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Examples

The following example shows the addNodeAlias command.

btmcli addNodeAlias -n jbujesPC.edgility.com -alias Athena         -s http://localhost:8080/btmcentral/sphere/ -l admin:abracadabra
PK t PKkHOEBPS/commands004.htm addPathAlias

addPathAlias

Use the addPathAlias command to add an alias representing an alternative URL path that can be used to access the specified WSDL or endpoint. Specifying this alias can help prevent duplicate artifacts from being created during discovery.

Normally, path aliases are added automatically in one of two ways:

  • The register command detects an HTTP redirect and adds the original URL as an alias to the service descriptor created with the redirected URL.

  • The user uses the removeDuplicateEndpoint command to remove an unwanted duplicate created due to message traffic being observed at a non-canonical URL for an existing endpoint.

In the second case, adding the alias when the original endpoint is registered or discovered will prevent the duplicate from ever being created. So, you might add the addPathAlias command to a script used to recreate an environment that was observed in testing to have this problem.

Use the removePathAlias command to delete an alias you created with the addPathAlias command.

See also addNodeAlias for host name aliases and addBaseAddressAlias for other aliases in the authority part of the WSDL's URL.

See the section "Resolving Discovery Issues" for a discussion of the use of this command.

Command Syntax

btmcli addPathAlias -s wsdlUrl | -e endpointUrl -alias pathAlias
                    -s sphereUrl -l username:password
NameLong NameDescription
-w-wsdlUrlThe full URL of the WSDL (service descriptor) for which you want to add an alias.
-e-endpointUrlThe full URL of the endpoint(s) for which to add the alias. If multiple endpoints are matched, they will all be given the alias.
-alias--The alternate path to map to the same descriptor or endpoint. This should be just the path portion of the URL, starting with "/".
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the addPathAliascommand.

btmcli addPathAlias -e http://jbujes:7001/bookmart/credit/CreditService
          -alias /bookmart/amex/CreditService
          -s http://jbujes:8080/btmcetnral/sphere/ -l admin:abracadabra
          
PKn PKkHOEBPS/consumers002.htm[ Mapping Messages to Consumers

Mapping Messages to Consumers

Consumers are the default Business Transaction Management business objects that allow you to segment transaction performance based on some desired criteria. Mapping messages to consumers is the means by which you teach the system what criteria to use to segment performance information. The mapping process involves your creating a property that identifies the consumer and then mapping that property to a consumer business object. Please read About Consumers for a detailed discussion before you proceed.

Before you map messages to consumers, take a moment and decide the following:

  • What properties do you need to create?

    The consumer you choose must be uniquely identified by information contained in the starting message of a transaction: for example, an ID number or an email address. This information can be contained within a message element or header.

  • What message element or xpath expression will you use to define each property? (For the sake of clarity, the remainder of this procedure refers to this element or header as Consumer_ID.)

  • Do you need to customize the consumer business object by adding custom attributes? You might need to do this if you do not want Business Transaction Management to use the default name for the consumer or if you are tracking consumers across different transactions and the consumer is represented in different ways in each transaction.

The basic steps to map messages to consumers are as follows:

  1. Customize the consumer business object if needed to provide additional mapping options for your consumers.

  2. When creating the property, use one of the mapping options described below to map a property to a consumer.

After you complete this mapping, enable segmentation, and send traffic, you can then view transaction performance information segmented by consumers from the Explorer > Consumers view, or from the Analysis tab of the Transactions view.

Customizing the Consumer Business Object

The consumer business object is seen throughout your environment. Each consumer created manually or automatically is an instance of the consumer business object. You can see the structure of this object in the Consumer's Profile tab. Setting up Consumer Segmentation explains why you might need to add attributes to the consumer business object.

To add attributes to the consumer business object:

  1. Select Admin > Edit Data Model Attributes. The Edit Data Model Attributes dialog box opens.

  2. Scroll down to the Business Object Custom Attributes section and click add attribute.

  3. Specify a Name and Type for your attribute.

  4. You can optionally specify a display name for your attribute in the Form Label field. This name will be used to identify the attribute in the Consumer's Profile tab.

    The default display name is the value of the Name field.

  5. You can optionally specify a name for querying on your attribute in the Query Label field. You can use this name in forming query expressions. The default query name is the value of the Name field.

  6. Repeat Steps 2-5 to add more attributes.

  7. Click Apply.

Mapping Options

You can map a message to a consumer either when you create a property or when you create a transaction.

Do the following to create a message property to hold the value of Consumer_ID and map the property to an attribute on the consumer object.

  1. Select the starting operation of the transaction to be segmented.

  2. Select Create > Message Property on operation_name.

The Message Property dialog box opens.

  1. Specify a Name for your property.

  2. Specify the Property Source: Message Content or Header, and specify Consumer_ID.If you specify Header, a dialog is opened that allows to specify the phase of the message, the header name, and the data type. If you specify Content, use the Pick from Message link to select the desired message element.

  3. In the Consumer Mapping section, select the Map to consumer through attribute checkbox and choose the consumer attribute that you want to map it to, either the default Consumer Name attribute or an attribute that you created when you customized the consumer business object.

  4. Click OK.

PKB\PKkHOEBPS/utilities002.htm$Qۮ datastoreUtil utility

datastoreUtil utility

The most common use of the datastoreUtil utility is to assist in the installation of the Business Transaction Management product. During configuration, the system automatically creates the appropriate database tables for database users for the sphere, performance, and transaction databases unless you choose to create them beforehand with the datastoreUtil utility.

By using the generateSchema command, you can create DDL for the targeted database environment. The output of the generateSchema command can be used as input (with the appropriate database utility) to create the necessary tables and views for the Business Transaction Management product.

Use the datastoreUtil utility to connect to a database. Once connected, you can do the following:

  • generate the DDL of the specified schema definition within the connected database

  • check the status of the specified schema within the connected database

  • create the specified schema within the connected database

  • upgrade the specified schema within the connected database

  • drop the entire specified schema from the connected database

  • save the database connection information into a file for easy reconnection to the database at a later time

  • display the owner of the database instance (service name and UUID)

  • reset ownership of the database instance by removing knowledge of its current owner

  • dump the definition of the connected database to a text file containing SQL dml statements in the given database format

  • enter the database explore mode (commands to search and display data)

Invoking the datastoreUtil Utility

To invoke the datastoreUtil utility, navigate to the tools directory and use the following from the command line:

  • Windows:datastoreUtil.bat

  • Unix: datastoreUtil.sh

After starting the utility, you can call the commands described in the next subsection. For commands that have multiple arguments, you must call the arguments in the order described.

Use the exit command to exit the utility.

Commands

datastoreUtil commands include the following:

CommandCommandCommand
helpgenerateSchemacheckOwner
connectcreateSchemaresetOwner
saveConnectioncheckSchemadumpDataBase
closeupgradeSchema--
exitdropSchema--

help Command

Use the following syntax to get help:

help | help command

Use the help command to view help for all commands, or enter a command name to receive help for a single command

connect Command

Connect to a database using the user-specified connection information

connect databaseType|filename

databaseType - specify oracle. This is the only supported value.

filename - name of a file as specified by the saveConnection command

Use the connect command to enter database connection information and connect to the database. You must have the following information for the database to which you want to connect:

  • driver name

  • username

  • password

  • URL connection string

Once connected, you might issue the saveConnection command to save the connection information within a file. The next time you want to connect to the same database, you can provide the file name with the connect command. If you provide the database type, the utility automatically selects the corresponding default driver.

close Command

Close a connection previously opened with the connect command. This command takes no parameters.

generateSchema Command

Generate the DDL of the specified schema definition. You do not have to be connected to a database to call this command.

Alternatively, you can use generate for this command.

generateSchema  schemaType databaseType
               [[directory] targetSchema] -partition|-nopartition

generate schemaType databaseType [[directory] 
                      targetSchema] -partition|-nopartition

schemaType - one of the known schema types:

  • sphere - schema for the sphere database (the sphereDB user)

  • exm - schema for the transaction database (the transactionDB user)

  • performance - schema for the performance database (the measurementDB user)

  • monitorgroup - schema for a monitor group

  • msglog - schema for the system message log

databaseType - one of the supported database types:

  • oracle

directory - location to generate the DDL file (defaults to the local directory)

targetSchema -target the generated schema for a specific user, for example sphereDB, transactionDB, or measurementDB.

For example, you have a high-level administrative permissions on the database, but you want to create the schema for someone with much lower-level permissions. You would use something like the following example:

generateSchema sphere oracle \temp sphereUser

-partition | -nopartition

This flag is required if your specified schemaType is performance or monitorgroup. If your specified schemaType is any other value, this flag is not required and is ignored if you use it.

If you are using Oracle Enterprise Edition, you can create a performance or monitorgroup schema that takes advantage of Oracle's partitioning feature by specifying the -partition flag. If you do not want to take advantage of this feature or if your Oracle edition does not provide the partitioning feature, you must specify -nopartition (if you are creating a performance or monitorgroup schema).

checkSchema Command

Check the status of the specified schema within the connected database

Alternatively, you can use check for this command as the syntax diagram shows.

checkSchema schemaType

check schemaType

schemaType - one of the known schema types:

  • sphere - schema for the sphere database (the sphereDB user)

  • exm - schema for the transaction database (the transactionDB user)

  • performance - schema for the performance database (the measurementDB user)

  • monitorgroup - schema for a monitor group

  • msglog - schema for the system message log

Use the checkSchema command to check for the specified schema type within a connected database. You must successfully execute the connect command before executing the checkSchema command. The checkSchema command displays the status of the schema as found in the database. If the status of the database schema is not up-to-date, this command displays the differences found, and the DDL you must apply to upgrade the database schema.

This command does not change the database schema. If you wish to automatically upgrade the database schema from this command line utility, use the command upgradeSchema.

createSchema Command

Create the specified schema within the connected database. You must successfully execute the connect command before executing the createSchema command.

Alternatively, you can use create for this command.

createSchema schemaType -partition | -nopartition

create schemaType -partition | -nopartition

schemaType - one of the known schema types:

  • sphere - schema for the sphere database (the sphereDB user)

  • exm - schema for the transaction database (the transactionDB user)

  • performance - schema for the performance database (the measurementDB user)

  • monitorgroup - schema for a monitor group

  • msglog - schema for the system message log

-partition | -nopartition

This flag is required if your specified schemaType is performance or monitorgroup. If your specified schemaType is any other value, this flag is not required and is ignored if you use it.

If you are using Oracle Enterprise Edition, you can create a performance or monitorgroup schema that takes advantage of Oracle's partitioning feature by specifying the -partition flag. If you do not want to take advantage of this feature or if your Oracle edition does not provide the partitioning feature, you must specify -nopartition (if you are creating a performance or monitorgroup schema).

You may want to use the commands checkSchema and upgradeSchema before or instead of the createSchema command.

upgradeSchema Command

upgrade the specified schema within the connected database

Alternatively, you can use upgrade for this command.

upgradeSchema schemaType

upgrade schemaType

schemaType - one of the known schema types:

  • sphere - schema for the sphere database (the sphereDB user)

  • exm - schema for the transaction database (the transactionDB user)

  • performance - schema for the performance database (the measurementDB user)

  • monitorgroup - schema for a monitor group

  • msglog - schema for the system message log

Use the upgradeSchema command to upgrade the specified schema of the connected database. You must successfully execute the connect command before executing the upgradeSchema command. The upgradeSchema command will add any missing table, column, or index to the database.

You may want to execute the checkSchema command before executing the upgradeSchema command.

Note that the upgradeSchema command only adds missing elements; it does not remove anything. You cannot roll back the upgradeSchema command.

dropSchema Command

Drop the entire specified schema from the connected database

Alternatively, you can use drop for this command.

dropSchema schemaType

drop schemaType

schemaType - one of the known schema types:

  • sphere - schema for the sphere database (the sphereDB user)

  • exm - schema for the transaction database (the transactionDB user)

  • performance - schema for the performance database (the measurementDB user)

  • monitorgroup - schema for a monitor group

  • msglog - schema for the system message log

Use the dropSchema command to drop the entire schema from the connected database. You must successfully execute the connect command before executing the dropSchema command.

Warning: the dropSchema command removes all tables and any data stored within these tables. If you have any unsaved data you want to keep from the connected database, export or save the data before executing this command. You cannot roll back the dropSchema command.

saveConnection Command

Save the database connection information to a file

Alternatively, you can use save for this command.

saveConnection filename

save filename

filename - name of the file where you want to save user, password, url, and driver values.

Use the saveConnection command to save user, password, url, and driver values to a file.

Once connected to a database, you might issue the saveConnection command to save the connection information to a file. You can later reconnect to the same database by providing the file name with the connect command. Make sure to remove any unused files as they contain connection information.

checkOwner Command

Displays the owner of the database instance (service name and UUID)

Alternatively, you can use owner for this command.

checkOwner

owner

Once connected to a database, you might issue the checkOwner command to display the service UUID and name that owns the database instance. Only a service owner can connect to a specific database instance. To reset ownership, use the resetOwner command.

resetOwner Command

Reset ownership of the database instance by removing knowledge of its current owner

Alternatively, you can use reset for this command.

resetOwner

reset

Use the resetOwner command to remove the service ownership information associated with a specific database. You must successfully execute the connect command before executing the resetOwner command. Once reset, the next service that accesses the database takes ownership of the database instance.

dumpDatabase

Export the contents of the given database to a text file containing SQL dml statements in the given database format

Alternatively, you can use dump for this command.

A command to connect must have been successfully executed before this command can be issued.

dumpDatabase schemaType databaseType [directory]

dump schemaType databaseType [directory]

Use the dumpDatabase command to export the data contained in the specified schema to a text file containing SQL dml statements that you can use to import into another database. You specify the database type and the text file is formatted into SQL statements supported by that database type.

Note: If your database contains clob fields, they are truncated to 4000 characters in the resulting text file.

schemaType - one of the known schema types:

  • sphere - schema for the sphere database (the sphereDB user)

  • exm - schema for the transaction database (the transactionDB user)

  • performance - schema for the performance database (the measurementDB user)

  • monitorgroup - schema for a monitor group

  • msglog - schema for the system message log

databaseType - one of the supported database types:

  • oracle

directory - where the SQL file is generated. The default location is the local directory.

exit Command

Use the following command to exit the datastoreUtil utility.

exit
PKN))Q$QPKkHOEBPS/consumers005.htm W Editing Consumer Names

Editing Consumer Names

As consumers are discovered and added to the Business Transaction Management sphere, they are named according to the value of the message property to which you mapped them. For example, if you mapped them to a message property that holds an email address, the name of the consumer displayed in the Management Console is the email address of the consumer.

You can edit the name of a consumer by editing the consumer profile.

You should do this only if you created a custom attribute on the Consumer object and mapped the message property to that custom attribute. Otherwise, message traffic will no longer be segmented for that consumer. See Mapping Messages to Consumers for more information.

For example, in the following consumer profile, you could edit the Name field to provide the name of the consumer whose email address is listed. Whatever you enter in the name field becomes the format and content used to display the consumer in the console. But make sure that the property used for segmentation is mapped to the User ID attribute, which remains the email address.

Description of consumer_profile.gif follows

Another reason you might edit the consumer profile is to add notes. You can use the value of the Notes field to set filtering.

To edit a consumer profile:

  1. Select the consumer whose profile you want to edit from the Explorer > Consumers view.

  2. Choose Modify > Edit Profile for consumer_name.

    The Edit Profile for consumer_name dialog box opens. Make your edits.

  3. Click Apply.

PK PKkHOEBPS/commands015.htm exportPolicyTemplates

exportPolicyTemplates

Use the exportPolicyTemplates command to export the selected policy templates either to stdout or to the given output file. You specify the policy template to export in one of two ways:

  • The name of the policy template - you can further qualify this with type, sub-type and/or version information.

  • The type of the policy template - you can further qualify this type with sub-type and/or version.

    To determine the type and subtype of a policy template, select Policy Templates in the Navigator. The type and subtype for each policy template are displayed in the summary pane.

Command Syntax

btmcli exportPolicyTemplates 
              [[-n Name][-t Type] [-subType subType][-v TmplVersion]]| -exportAll
              [-o fileName]
              -s sphereUrl -l username:password
NameLong NameDescription
-n-nameThe name of the policy template to export.
-t-typeThe type of the policy template to export.
-subType--The sub-type of the policy template to export.
-v-versionThe version of the policy template to export.
-exportAll--Specifies that all policy templates should be exported.
-o-outputFileSpecifies a file into which the exported data is placed.
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following command exports all the policy templates to the output file MyPolicyTemplates

btmcli exportPolicyTemplates -exportAll -o C:\Home\MyPolicyTemplates
                             -s http://localhost:8080/btmcentral/sphere/
                             -l admin:abracadabra
             
PK+"PKkHOEBPS/commands012.htmt exportBusinessObjects

exportBusinessObjects

The exportBusinessObjects command exports one or more of the specified business objects from the target sphere. The command outputs an XML document that you can use to import the business objects into another target sphere.

You can specify the objects to be exported using the -query flag or the -exportAll flag.

Command Syntax

btmcli exportBusinessObjects [-exportAll] | [-query filterQuery ]
                             [-o outputFile ]
                             -s sphereUrl -l username:password
NameLong NameDescription
-exportAll--Export all objects of the appropriate type.
-query-filterQueryExport only those objects that match the criteria expressed by the filterQuery expression.

Use the Filter tool to construct the query, and then copy and paste the query into the command line.

-o-outputfileThe name of the XML file where the data is written. If you omit this flag, the data is written to standard output.
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Examples

The following example shows the exportBusinessObject command used to output data to MyConsumers.

btmcli exportBusinessObject -exportAll -o MyConsumers
                   -s http://localhost:8080/btmcentral/sphere/
                   -l admin:password
PKe.ytPKkHOEBPS/commands027.htmf listInstruments

listInstruments

Use the listInstruments command to list the instruments defined by the policy templates in the system, as well as the attribute names and segments for each. You can use this information as arguments for the retrieveObjectData command.

Command Syntax

btmcli listInstruments -s sphereUrl -l username:password
NameLong NameDescription
-s-sphereUrlThe URL of the sphere.

http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Sample Output

Here is some sample output for the listInstruments command.

Avg Response Time
   Attribute Name: averageResponseTime
   Description: The average amount of time a transaction requires to complete,
                 or a service/operation requires to respond.
   Segmented By: 
           operation
           containingManagedObjectId
           clientAddress
           clientName
           businessObjectId
            businessObjectKey
Faults
    Attribute Name: faultCount
    Description: The number of faults generated by a service or operation.
    Segmented By: 
         operation
         containingManagedObjectId
         clientAddress
         clientName
         faultCode
         businessObjectId
         businessObjectKey

Example

The following example shows the listInstruments command.

btmcli listInstruments -s http://localhost:8080/btmcentral/sphere/
                       -l admin:abracadabra
PKankfPKkHOEBPS/commands020.htm getSetupData

getSetupData

Use the getSetupData command to write the setup file for a system service to standard output.

You can redirect output to a file, modify the file, and then use that file as input to the putSetupData command to save the service setup data.

You can also get the setup data from one service and transfer it to another. This command does not verify that the target service has been initially configured.

See Backing up and Restoring Business Transaction Management, for a discussion of the use of this command in backing up the system.

Command Syntax

btmcli getSetupData -e endpointUrl -s sphereUrl -l username:password
NameLong NameDescription
-e-endpointUrlThe location (URL) for the system service.
-s-sphereUrlThe URL of the sphere where the service whose setup data you want to get is registered. http://hostname:port/btmcentral/sphere/

This flag is not required if you have set the AP_SPHERE_URL environment variable for your sphere.

-l-userLoginThe username and password associated with the sphere, in the format: username:password. This set of credentials must belong to a user in the btmadmin role.

See Security Options in Accessing CLI Commands for information on furnishing login credentials.

You can encrypt passwords using the encryptPassword command.


Example

The following example shows the getSetupData command.

btmcli getSetupData -e http://localhost:8080/apcentral/policyManager
                    -s http://localhost:8080/btmcentral/sphere/
                    -l admin:abracadabra
PKy!- PKkHOEBPS/dcommon/blafdoc.cssc@charset "utf-8"; /* Copyright 2002, 2011, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2011.8.12 */ body { font-family: Tahoma, sans-serif; /* line-height: 125%; */ color: black; background-color: white; font-size: small; } * html body { /* http://www.info.com.ph/~etan/w3pantheon/style/modifiedsbmh.html */ font-size: x-small; /* for IE5.x/win */ f\ont-size: small; /* for other IE versions */ } h1 { font-size: 165%; font-weight: bold; border-bottom: 1px solid #ddd; width: 100%; text-align: left; } h2 { font-size: 152%; font-weight: bold; text-align: left; } h3 { font-size: 139%; font-weight: bold; text-align: left; } h4 { font-size: 126%; font-weight: bold; text-align: left; } h5 { font-size: 113%; font-weight: bold; display: inline; text-align: left; } h6 { font-size: 100%; font-weight: bold; font-style: italic; display: inline; text-align: left; } a:link { color: #039; background: inherit; } a:visited { color: #72007C; background: inherit; } a:hover { text-decoration: underline; } a img, img[usemap] { border-style: none; } code, pre, samp, tt { font-family: monospace; font-size: 110%; } caption { text-align: center; font-weight: bold; width: auto; } dt { font-weight: bold; } table { font-size: small; /* for ICEBrowser */ } td { vertical-align: top; } th { font-weight: bold; text-align: left; vertical-align: bottom; } li { text-align: left; } dd { text-align: left; } ol ol { list-style-type: lower-alpha; } ol ol ol { list-style-type: lower-roman; } td p:first-child, td pre:first-child { margin-top: 0px; margin-bottom: 0px; } table.table-border { border-collapse: collapse; border-top: 1px solid #ccc; border-left: 1px solid #ccc; } table.table-border th { padding: 0.5ex 0.25em; color: black; background-color: #f7f7ea; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } table.table-border td { padding: 0.5ex 0.25em; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; } span.gui-object, span.gui-object-action { font-weight: bold; } span.gui-object-title { } p.horizontal-rule { width: 100%; border: solid #cc9; border-width: 0px 0px 1px 0px; margin-bottom: 4ex; } div.zz-skip-header { display: none; } td.zz-nav-header-cell { text-align: left; font-size: 95%; width: 99%; color: black; background: inherit; font-weight: normal; vertical-align: top; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-header-link { font-size: 95%; } td.zz-nav-button-cell { white-space: nowrap; text-align: center; width: 1%; vertical-align: top; padding-left: 4px; padding-right: 4px; margin-top: 0ex; padding-top: 0ex; } a.zz-nav-button-link { font-size: 90%; } div.zz-nav-footer-menu { width: 100%; text-align: center; margin-top: 2ex; margin-bottom: 4ex; } p.zz-legal-notice, a.zz-legal-notice-link { font-size: 85%; /* display: none; */ /* Uncomment to hide legal notice */ } /*************************************/ /* Begin DARB Formats */ /*************************************/ .bold, .codeinlinebold, .syntaxinlinebold, .term, .glossterm, .seghead, .glossaryterm, .keyword, .msg, .msgexplankw, .msgactionkw, .notep1, .xreftitlebold { font-weight: bold; } .italic, .codeinlineitalic, .syntaxinlineitalic, .variable, .xreftitleitalic { font-style: italic; } .bolditalic, .codeinlineboldital, .syntaxinlineboldital, .titleinfigure, .titleinexample, .titleintable, .titleinequation, .xreftitleboldital { font-weight: bold; font-style: italic; } .itemizedlisttitle, .orderedlisttitle, .segmentedlisttitle, .variablelisttitle { font-weight: bold; } .bridgehead, .titleinrefsubsect3 { font-weight: bold; } .titleinrefsubsect { font-size: 126%; font-weight: bold; } .titleinrefsubsect2 { font-size: 113%; font-weight: bold; } .subhead1 { display: block; font-size: 139%; font-weight: bold; } .subhead2 { display: block; font-weight: bold; } .subhead3 { font-weight: bold; } .underline { text-decoration: underline; } .superscript { vertical-align: super; } .subscript { vertical-align: sub; } .listofeft { border: none; } .betadraft, .alphabetanotice, .revenuerecognitionnotice { color: #f00; background: inherit; } .betadraftsubtitle { text-align: center; font-weight: bold; color: #f00; background: inherit; } .comment { color: #080; background: inherit; font-weight: bold; } .copyrightlogo { text-align: center; font-size: 85%; } .tocsubheader { list-style-type: none; } table.icons td { padding-left: 6px; padding-right: 6px; } .l1ix dd, dd dl.l2ix, dd dl.l3ix { margin-top: 0ex; margin-bottom: 0ex; } div.infoboxnote, div.infoboxnotewarn, div.infoboxnotealso { margin-top: 4ex; margin-right: 10%; margin-left: 10%; margin-bottom: 4ex; padding: 0.25em; border-top: 1pt solid gray; border-bottom: 1pt solid gray; } p.notep1 { margin-top: 0px; margin-bottom: 0px; } .tahiti-highlight-example { background: #ff9; text-decoration: inherit; } .tahiti-highlight-search { background: #9cf; text-decoration: inherit; } .tahiti-sidebar-heading { font-size: 110%; margin-bottom: 0px; padding-bottom: 0px; } /*************************************/ /* End DARB Formats */ /*************************************/ @media all { /* * * { line-height: 120%; } */ dd { margin-bottom: 2ex; } dl:first-child { margin-top: 2ex; } } @media print { body { font-size: 11pt; padding: 0px !important; } a:link, a:visited { color: black; background: inherit; } code, pre, samp, tt { font-size: 10pt; } #nav, #search_this_book, #comment_form, #comment_announcement, #flipNav, .noprint { display: none !important; } body#left-nav-present { overflow: visible !important; } } PKr.hcPKkHOEBPS/dcommon/doccd_epub.jsM /* Copyright 2006, 2012, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2012.3.17 */ function addLoadEvent(func) { var oldOnload = window.onload; if (typeof(window.onload) != "function") window.onload = func; else window.onload = function() { oldOnload(); func(); } } function compactLists() { var lists = []; var ul = document.getElementsByTagName("ul"); for (var i = 0; i < ul.length; i++) lists.push(ul[i]); var ol = document.getElementsByTagName("ol"); for (var i = 0; i < ol.length; i++) lists.push(ol[i]); for (var i = 0; i < lists.length; i++) { var collapsible = true, c = []; var li = lists[i].getElementsByTagName("li"); for (var j = 0; j < li.length; j++) { var p = li[j].getElementsByTagName("p"); if (p.length > 1) collapsible = false; for (var k = 0; k < p.length; k++) { if ( getTextContent(p[k]).split(" ").length > 12 ) collapsible = false; c.push(p[k]); } } if (collapsible) { for (var j = 0; j < c.length; j++) { c[j].style.margin = "0"; } } } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(compactLists); function processIndex() { try { if (!/\/index.htm(?:|#.*)$/.test(window.location.href)) return false; } catch(e) {} var shortcut = []; lastPrefix = ""; var dd = document.getElementsByTagName("dd"); for (var i = 0; i < dd.length; i++) { if (dd[i].className != 'l1ix') continue; var prefix = getTextContent(dd[i]).substring(0, 2).toUpperCase(); if (!prefix.match(/^([A-Z0-9]{2})/)) continue; if (prefix == lastPrefix) continue; dd[i].id = prefix; var s = document.createElement("a"); s.href = "#" + prefix; s.appendChild(document.createTextNode(prefix)); shortcut.push(s); lastPrefix = prefix; } var h2 = document.getElementsByTagName("h2"); for (var i = 0; i < h2.length; i++) { var nav = document.createElement("div"); nav.style.position = "relative"; nav.style.top = "-1.5ex"; nav.style.left = "1.5em"; nav.style.width = "90%"; while (shortcut[0] && shortcut[0].toString().charAt(shortcut[0].toString().length - 2) == getTextContent(h2[i])) { nav.appendChild(shortcut.shift()); nav.appendChild(document.createTextNode("\u00A0 ")); } h2[i].parentNode.insertBefore(nav, h2[i].nextSibling); } function getTextContent(e) { if (e.textContent) return e.textContent; if (e.innerText) return e.innerText; } } addLoadEvent(processIndex); PKo"nR M PKkHOEBPS/dcommon/oracle-logo.jpgJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222'7" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE!KEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEzE7V%ȣOΏ9??:a"\fSrğjAsKJ:nOzO=}E1-I)3(QEQEQEQEQEQEQE֝Hza<["2"pO#f8M[RL(,?g93QSZ uy"lx4h`O!LŏʨXZvq& c՚]+: ǵ@+J]tQ]~[[eϸ (]6A&>ܫ~+כzmZ^(<57KsHf妬Ϧmnẁ&F!:-`b\/(tF*Bֳ ~V{WxxfCnMvF=;5_,6%S>}cQQjsOO5=)Ot [W9 /{^tyNg#ЄGsֿ1-4ooTZ?K Gc+oyڙoNuh^iSo5{\ܹ3Yos}$.nQ-~n,-zr~-|K4R"8a{]^;I<ȤL5"EԤP7_j>OoK;*U.at*K[fym3ii^#wcC'IIkIp$󿉵|CtĈpW¹l{9>⪦׺*ͯj.LfGߍԁw] |WW18>w.ӯ! VӃ :#1~ +މ=;5c__b@W@ +^]ևՃ7 n&g2I8Lw7uҭ$"&"b eZ":8)D'%{}5{; w]iu;_dLʳ4R-,2H6>½HLKܹR ~foZKZ࿷1[oZ7׫Z7R¢?«'y?A}C_iG5s_~^ J5?œ tp]X/c'r%eܺA|4ծ-Ե+ْe1M38Ǯ `|Kյ OVڅu;"d56, X5kYR<̭CiطXԮ];Oy)OcWj֩}=܅s۸QZ*<~%뺃ȶp f~Bðzb\ݳzW*y{=[ C/Ak oXCkt_s}{'y?AmCjޓ{ WRV7r. g~Q"7&͹+c<=,dJ1V߁=T)TR՜*N4 ^Bڥ%B+=@fE5ka}ędܤFH^i1k\Sgdk> ֤aOM\_\T)8靠㡮3ģR: jj,pk/K!t,=ϯZ6(((((((49 xn_kLk&f9sK`zx{{y8H 8b4>ÇНE|7v(z/]k7IxM}8!ycZRQ pKVr(RPEr?^}'ðh{x+ՀLW154cK@Ng C)rr9+c:׹b Жf*s^ fKS7^} *{zq_@8# pF~ [VPe(nw0MW=3#kȵz晨cy PpG#W:%drMh]3HH<\]ԁ|_W HHҡb}P>k {ZErxMX@8C&qskLۙOnO^sCk7ql2XCw5VG.S~H8=(s1~cV5z %v|U2QF=NoW]ո?<`~׮}=ӬfԵ,=;"~Iy7K#g{ñJ?5$y` zz@-~m7mG宝Gٱ>G&K#]؃y1$$t>wqjstX.b̐{Wej)Dxfc:8)=$y|L`xV8ߙ~E)HkwW$J0uʟk>6Sgp~;4֌W+חc"=|ř9bc5> *rg {~cj1rnI#G|8v4wĿhFb><^ pJLm[Dl1;Vx5IZ:1*p)إ1ZbAK(1ׅ|S&5{^ KG^5r>;X׻K^? s fk^8O/"J)3K]N)iL?5!ƾq:G_=X- i,vi2N3 |03Qas ! 7}kZU781M,->e;@Qz T(GK(ah(((((((Y[×j2F}o־oYYq $+]%$ v^rϭ`nax,ZEuWSܽ,g%~"MrsrY~Ҿ"Fت;8{ѰxYEfP^;WPwqbB:c?zp<7;SBfZ)dϛ; 7s^>}⍱x?Bix^#hf,*P9S{w[]GF?1Z_nG~]kk)9Sc5Ո<<6J-ϛ}xUi>ux#ţc'{ᛲq?Oo?x&mѱ'#^t)ϲbb0 F«kIVmVsv@}kҡ!ˍUTtxO̧]ORb|2yԵk܊{sPIc_?ħ:Ig)=Z~' "\M2VSSMyLsl⺿U~"C7\hz_ Rs$~? TAi<lO*>U}+'f>7_K N s8g1^CeКÿE ;{+Y\ O5|Y{/o+ LVcO;7Zx-Ek&dpzbӱ+TaB0gNy׭ 3^c T\$⫫?F33?t._Q~Nln:U/Ceb1-im WʸQM+VpafR3d׫é|Aү-q*I P7:y&]hX^Fbtpܩ?|Wu󭏤ʫxJ3ߴm"(uqA}j.+?S wV ~ [B&<^U?rϜ_OH\'.;|.%pw/ZZG'1j(#0UT` Wzw}>_*9m>󑓀F?EL3"zpubzΕ$+0܉&3zڶ+jyr1QE ( ( ( ( ( ( ( (UIdC0EZm+]Y6^![ ԯsmܶ捆?+me+ZE29)B[;я*wGxsK7;5w)}gH~.Ɣx?X\ߚ}A@tQ(:ͧ|Iq(CT?v[sKG+*רqҍck <#Ljα5݈`8cXP6T5i.K!xX*p&ќZǓϘ7 *oƽ:wlຈ:Q5yIEA/2*2jAҐe}k%K$N9R2?7ýKMV!{W9\PA+c4w` Wx=Ze\X{}yXI Ү!aOÎ{]Qx)#D@9E:*NJ}b|Z>_k7:d$z >&Vv󃏽WlR:RqJfGإd9Tm(ҝEtO}1O[xxEYt8,3v bFF )ǙrPNE8=O#V*Cc𹾾&l&cmCh<.P{ʦ&ۣY+Gxs~k5$> ӥPquŽўZt~Tl>Q.g> %k#ú:Kn'&{[yWQGqF}AЅ׮/}<;VYZa$wQg!$;_ $NKS}“_{MY|w7G!"\JtRy+贾d|o/;5jz_6fHwk<ѰJ#]kAȎ J =YNu%dxRwwbEQEQEQEQEQEQEQEQEQE'fLQZ(1F)hQ@X1KEQE-Q@ 1KE3h=iPb(((1GjZ(-ʹRPbR@ 1KE7`bڒyS0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((?l:ϊw "{{-3j3%{Ə77}>ٻګ=Vf&-P7h)Y3>eր.QX>,ާy43/c'Vg%|#Ee$+|NU0>޺F.ݼFm[zWA<7V\[J6 dGhJ+/R.\-3X&+2qF}\㼰L $0? ESմ>P[G4ʍ3d ',r`zZ7tmPiszlZuAhHlm NF9Ƞ J*z66h)[ELrɜ/$wNŞ#wu&vCr;`p آˏĺ \ڤZޚ|/[C73=ǭ\,伿?8ԀvW.o,ާy43/c'VU=KVtku5 K,S,J[ g{tH5_dkt$n8g{ZԢxn⸷9$l]H #=O]O+[U"ߌg2:zТ麶۵ƗZ_@QeP#8 Qjnnic8EeK` c@(KĺpcHH AA5@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@'K|U].VCyCO#GUH~9Й䊏4ıZpq8=} y|Y`ZǿmRGNeY8Kev#FA<|B9X^U2822Vf qՉ'=+*E5s_P|w_x6\ҾuX8FνO?[|5OXe|Ň8'qw|rq,ҵ^3>BIm]YY'䊯K_)^ ͥŭܵvp,YMI{#kKM."o91 8'+،'ihAw{ft@aN wky}YghSˑr0H94? eOU;߽[rpq=5_§FװPΚ& jYٛx%1 $+  - n 'u h?k ydF#37}@󂧔|gcS\i,Ʉ4P6PdpI#Oc~濇W. H9vH?+ſ..̍ydGY$JN2۸+> 6ӼgZim\2!<`FAX+xz@klMJS~GU '9TV#"g'dQP>Ѽ#C6-d <ד.f$QWQh›??'_c6}cInQjxkRFGj #AeCq"bbH hڑ#\H^öXyC99w)#Jf#tkv-oEܮI$?6'a2_u\g d |Ć^\F>#mN"lq#: EƵ?Xm,s^9cܐ IaY?TT3–'k$:uUFsrH!u|?q |7^Aj[<+$Xd%1t'ğӵ%k!\#FG˹89qy<-]nx/uMkRO:ky5Da@2s/ ww^Wcٶ.-$r*r@fB `(vq]x%5ѿ [LU$]o Z@Gq8Q@މxGIխc>2-웶aʐG  X4k 8[XSq;Q@ 2y8uP=DžkZx{=F.<miwUgCC=ad3F=UN`kBo 5Ӵ0QIA F`a [F%gKY%32y&\ ˒z(be4OZlӼ.L Y!Vy}O ࿅ wwzèWե՘@RJZ>kiV7N|ۤ3p8OAFh'Xy>noqg=}MI5n4VX(PN^U4H'fFxd 7g]E{ׄ|+xo4}.IWNY+|և<-xN\]r<׏=uEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQExƛc:N}im$:}C7cq8'?PxιM[ɴ|?{{e<!9$c[0M~sž(:/CcaSm(?6=V|{7_$;ԣ F@fEx~Sz?|a}-9/rQEr3Ik49KK3fU'$=z^ޙaOMeX :ד ax{Sտi}[+3.[n|pO3޽s^Լ/Mex]U s*O_KO i:5Uխ# `w"x ]NJq}D-=AÅ$D@rA*{z~ic\v:hMĚ͸Ul`c J3yZY@!ͻ PqE| 0.Y4SZJ2ݙxShx{|0| J{'ArʤȌ zVmͧu{|$Itج͒1dWx_>gxtF(W!TDV]n0HW_ kmnL%q;~flg=kOÝ+Tnu^;OoA|CV-Q_:\i_M/S#մ9nZDBn!A%XfuƮ-:igPgn2 Q^uZashYE,e$S<(((((((((((((PTz uGk~ydt\ۜV8?ZP1ΗsỘƘɩOcF$y8d : &];_u"iZ{27v:+<' ZsY趞W3y&e' 8&k%JU#GBhڶmR}B- yoc\ #DVt x Gni&uՕe(#XTmQS|C4KPwI#Y|d`H f<A(߇߃z|IeҮ&Y۾xs)R2_ ;^i=\YKq`䐠y9|!mQ5(b{U,3ʪy, 0Ea_§FAInQnxZo5 T9[[,.]#a򤑘B: ×zku{8:@ $_ K^: *OSIaѴk.ݤh,㷍 TP3+Zm4K=,-ͼQTXmx?'ߡX"{7qo5̐`NTq! gRg冹ɝAw$0WjUiw6w X8 A^_?ٮ%.ܲePF'Ԛy/[Z֮ k]$Ȱ~b >Hr;Eljz_>!g|nY]^[0mH3Ig ֧x+Nk=vv/$̣aA'd?>E׳ZOe}!~$:Jdn@ߛ'%H`˓"LjdtGY񩈜CgFy Dԡ'WW* 8*χ528(0}`'N@<OxwCO_Ydt̊y0R 'M~4cShtet]Hɻ!A88q\K]V5`B>AEn:GON+ "@TP0%s;y_]覮l:΍}44d TFp} q_QInQuݟ|9iI<< r@xv~.އ$l06 ;P<Rח[^ kwM2!,ϔƠdgak46FF;xB E 8Y ƺrVo21I!f%X~*H89Om_W|xU[ 9cH_qyVOhhj)y*j[0VU  E]1ʐNA^ |Ms ptQ @(*?mt_YuK)ZEUs ')ݟ9wa&2U]N1\8 |5ᯉο⹾ۭw):xd #*TA*2+' ZsY趞W3y&e' 8&|uGԦWgeT1,,I44/Z+m#ö^N欷.$E 3 g'Wj٧v +=79 sM}Q+ T&7I*T/Uڹ?_;}COhmR]l9Fr@݌+b;˛8no!Ix G#=k~ o- $B޸@WQh^ 9̗~VO#]PdFRpf2pO 2dgo GÖkkc$:X.conR?ӭopC~`(Xs đޥo%|4aUAa\^^hӯ˺X e#|Vxn}RO,~@8#n;[W$GjO'UZOR7UNXv#Aeom!AX oyxYơanm]|H2nsGAtQEQEQEQEQEQEQEQEQEQEQEQEQEWeOG.Ifgy t [7gMN#(<<tBv8@Q^ozt=:;*[qpAAS:ϋy^}=AW< 2Տ@EPEPEPEPEPEPEPEPEPEPEPE_xOwڿ.<5ݍw#vQEV_ x~ZԚAij]Đz s$kVCXwFs\a`TUE{~+|6Ρx,|EIܨrv2&sÚ|?gi!B.R VR=C8G4EPEay| ydx˗Hث#ya חsIy ؞@2Ǔ($0h:4xbK[Go i&m; A%cgىy@]#EyH ě{qyVOn|%޳XծΟ#d=_d`@9$P**O{mG=ϲ0LE%)ۗu*%O65KN(]Th"VoMmӠ`CHڭUnpO |_ }RWT6˿$ w{uUi]́$溵r0S"go~y|cwi6‰@gʖO2p`mzʟiG/$:D_]BuZʂy|ڿœkWk5sx>kKmBkY.+AYA,uu( *mh|a5Ky|1&}6m{PXd d\0y2)cQO?Q~SCVIrcҺO3F4ki| *$eI gyb`eIz?;uť$z\@0i1rW s>8w _f:~5;gRvˌ`AAIWq(ğԴkrD|Q2]mX+He 'EFeP63 dʑvH9<|VIs=p )aI^6UEI' ? 4SX$\,j[|$5MP')n]LTi]OB<\~g^XK:ݣAWnOLf>'؟֓yav߲Xv2qg4o?{7TO'UZOR7T^ě{95{_ZbXː̊Kۜ <:υ9o|>ƭ,q\Y;}pbθc)'b7XY]]Ky ) х< :{_Hgerܐt ;|#.|Uw?QFJKT30@`*#+rh5-0ۻ$eijF|,9 O׮t>*jR7ηhUۧ3ƭ5MST "rݤIV>U*z5o?{7T2xoRof_ݢk`64SXo#zC'C?IQJ o@' x_YTƥ]ڌYNFHG(<M5x^UG"q"ci9<\mmⷷ8`GjQ@Wt?YG]xPI,#2Â~t| xKvO+p8;0 Ԟn巸9 I]H#W^ XZ$~dl# }'>m_WʷUswcHn.t}sױw^ m(ܨ䏝1@9 !/']B_>ᤗ찉dA9F!m'ej߉O ^6-!uK/T.~Gv-%JF(*?mtu(uzn, SY_Q6rQKIoQ%e,յ-C_-u -503:¾l Œ(Ұ&k,͡i~&ݝ!`AH b>CaQn('u@IW}u..< Ȥ͹S!AOxok[du˞61]x$P**1/=ά\q'eBʟ=w?XIM7z$|ǽs,dTMr j5o;n:UsaLIU[IWw?][oqSY PȒ38zC}K*dW=UH A+BcfoǨ;wYVGi3 atQEQEQEQEQEQEQEQEQEQEQEQEQEy6۝ogvQ@q< O붹|+D]s޻ (WnZ{Xw,*Ć ]2C`KX?Tmoź:m:%>rvfy?+y{g}G|1w,t}g/vN1{WAEq0/%~!ƭ_;^F?獶pW@7HON1uqoG^εG+dS!TYdqEy~x!WTQ,-\cC8;@ xW5 h LAl3*bAP6wd)?..!ȑc[Y;`ˌ9zs+F#QKVRقJ`A*6Tr n|%fҾ~v(IevG s>ֱWnZ{Xw,*Ć ]2C`K^Eyo"_Y״JR3-#~>/Wlw#9ێ렢3-3fya۷~ 83↓O/>ѭgȔn߻6aE8/+\i??oѭgȔn߻6Ğ>FY-v$RHBpJ3r1]e+uOjZn-}Ŕay(9[{ PȡԌA8y=KmSt)*@ +\ Hfl1WQ@Ga&Tϲۤg8u]?xڿ.y F-f}#]iKaH*ι2HP? SXF#뚖2cu႞T{^Lӭ,mbHaME(֬QEQEQEQEQEQEQEQEQEQEQEQEQEQEp~;x;KH5or#E0Pz +7_[2uy'kk<>vnXrp]G.߇0 Č7cClCj%2A+$ AD8<c{qyi-0Y\$^De<(I>|&ү_-m%$(y]#ÃpxҊ|ASg~ݯSHew̧s*bz;)5_Fm-丶XF%q3l)|]rwQ q0:<+_N-Wdwq)| gk8qyVO{:σ< _.FU).N;FUpŰ03vRkwZZ#ql0K$ g 8#4V?|Co 2O$ `8WWegqxf\(y6Yɍl0RW/p`Þ3_cgi+!mwlAo [w}4NZ.<5 C ;`I%@x(B5R4h3E$QBG;`##Bk4][TXռam}R{:DXmg@v'Ky *?*2bsFw|#M3þ>k=ZVRLL(~dS@EP8.5v<:~El!80LyQ iė.&_wW^nHAWAI=w;y_]覮 ?J<_ ]jt(YdF ))ǠWڋ~ҿZ,ЭNPI8E@Uc!F} oěm}zAicéRѱSGy=qYJmgºFpPH3bI85\?xkV)k_ ]s>պʻVpd'u)o YMq Rȅ8 #WFj0V,H@ gh pYhG^(珼9u}/iwlaw!6V `eHz5Q?Ҵc@FXI#;Hl1]熵) ƳCq"P΁$'y|Q!6Ҭl꺬qB$[s< +7iXkkOeO5È9BF?{pzW+%KojqݷBzH&m~ %21'b@ u9:YCei̼8I?0k)=k/jSIỻXƮ[v8;ݣqseO7Z+uM |N~  QPTy ´d$@)61\x*ſ`M%}g ?Qgaqvzr[VD FCwzQ@xW_)%$B(KOƯiot[ך8HH8IYz'1xsGI|Uˋf$IWZxę[A bFo˟񶕬k~Ӵ jsy~MϜlĊ ,2~[Si;@4s S@_~Ņn$]]w>2pܒOQ^omⵧ'/!w#P`"OQ𭏈E]`$/ [x.X-2#si{hܬUAf*I9|,o5z&~eD<_v3I,BOrMqs|1PZ=Ibw𱌍N\4k 8[XSq;Q@ 2y8u QEQEQEQEQEQEQEQEQEQEQEQEQEQEB@g6_g;q׽tP~bx{L|;6[yv؁wc'qZQ@氳 .w}gpmcpq֬QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEwQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEPKۇ풂PKkHOEBPS/dcommon/oracle.gifJGIF87aiyDT2F'G;Q_oKTC[ 3-Bq{ttsoGc4I)GvmLZ).1)!ꑈ53=Z]'yuLG*)g^!8C?-6(29K"Ĩ0Яl;U+K9^u2,@@ (\Ȱ Ë $P`lj 8x I$4H *(@͉0dа8tA  DсSP v"TUH PhP"Y1bxDǕ̧_=$I /& .)+ 60D)bB~=0#'& *D+l1MG CL1&+D`.1qVG ( "D2QL,p.;u. |r$p+5qBNl<TzB"\9e0u )@D,¹ 2@C~KU 'L6a9 /;<`P!D#Tal6XTYhn[p]݅ 7}B a&AƮe{EɲƮiEp#G}D#xTIzGFǂEc^q}) Y# (tۮNeGL*@/%UB:&k0{ &SdDnBQ^("@q #` @1B4i@ aNȅ@[\B >e007V[N(vpyFe Gb/&|aHZj@""~ӎ)t ? $ EQ.սJ$C,l]A `8A o B C?8cyA @Nz|`:`~7-G|yQ AqA6OzPbZ`>~#8=./edGA2nrBYR@ W h'j4p'!k 00 MT RNF6̙ m` (7%ꑀ;PKl-OJPKkHOEBPS/dcommon/cpyr.htmd Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2016, Oracle and/or its affiliates. All rights reserved.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Alpha and Beta Draft Documentation Notice

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

Private Alpha and Beta Draft Documentation Notice

If this document is in private preproduction status:

The information contained in this document is for informational sharing purposes only and should be considered in your capacity as a customer advisory board member or pursuant to your beta trial agreement only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle.

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this confidential material is subject to the terms and conditions of your Oracle Master Agreement, Oracle License and Services Agreement, Oracle PartnerNetwork Agreement, Oracle distribution agreement, or other license agreement which has been executed by you and Oracle and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers that have purchased support have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Oracle Logo

PKS\UKPKkHOEBPS/console004.htm/iЖ Management Console Reference

Management Console Reference

This section provides reference information about using controls and tools that are common to many views. It describes the following controls and tools:

Using the Analysis Tab

The Analysis tab displays detailed current performance and usage information for the selected object, either a transaction, service, endpoint, operation, or consumer. Because some types of information are relevant to only certain types of objects, the layout of the Analysis tab can vary from object to object.

The Analysis tab is composed of a number of panes that you display one at a time. Each pane displays a different type of information. The set of available panes changes depending on the object you select (in other words, not all panes are available for every type of object). The panes are described in this section.

Performance Pane

When you select a transaction, this pane provides started transactions, completed transactions, condition alerts, average response time, and maximum response time instruments. These instruments are displayed in a Count chart, Count table, Response Time chart, and Response Time table.

When you select a service, endpoint, operation, or consumer, this pane provides traffic, throughput, faults, fault percentage, average response time, and maximum response time instruments. These instruments are displayed in a Messages chart, Messages table, Response Time chart, and Response Time table.

The blue line in the Count chart indicates the number of transactions that started; the green line, the number of transactions that completed; and the red line, the number of condition alerts that occurred during the associated time segment, for example: Count line chart. Described in text.

The Count table displays these measurements numerically.

The total height of the bars in the Messages chart indicates the traffic observed during the associated time segment. The green portion of the bar indicates the throughput, and the red portion indicates the fault count, for example: Messages chart; described in text.

The Messages table displays these measurements numerically, with the addition of the fault percentage measurement. Clicking a hyperlinked value in the table opens the Message Log Search tool and runs a predefined query to return the messages associated with the measurement value. For example, if you want to examine the messages responsible for the Traffic value, click the value: Messages table; explained in text.

The green line in the Response Time chart indicates the average response time for the associated time segment; the orange line indicates the maximum response time, for example: Response time chart: explained in text.

The Response Time table displays these measurements numerically.

Transaction Performance

Displays transaction performance measurements associated with the selected consumer. See the description of the Performance pane for details concerning the charts and tables.

Service Performance

Displays service performance measurements associated with the selected consumer. See the description of the Performance pane for details concerning the charts and tables.

Consumer Usage

Displays throughput, faults, fault percentage, average response time, and maximum response time measurements for the selected object, segmented by consumer. The table lists all consumers of the selected object and the aggregated performance measurements associated with each consumer's use of the object.

Transaction Usage

Displays started transactions, completed transactions, average response time, and maximum response time measurements associated with the selected consumer. These measurements are segmented by transaction.

Service/Endpoint Usage

Displays throughput, faults, and fault percentage associated with the selected consumer. These measurements are segmented by service and endpoint.

Condition Alerts

Lists information about the condition alerts that have been triggered in a given time period: the name of the condition that was met, the endpoint where the condition alert was triggered, and the number of condition alerts triggered.

Breakdown by Client Address

Displays throughput, faults, and fault percentage for the selected object, segmented by the client address, which is the machine host name from which the request was sent. The table lists all client addresses that sent requests to the selected object and the aggregated performance measurements associated with each client address's use of the object.

Callouts

Lists each operation (qualified by endpoint) to which the selected object made an outbound call. The Operation column identifies the operation that made the outbound call. Aggregated link throughput, link faults, and link average response time is displayed for each type of outbound call.

Custom Charting

Lets you set up a customized chart and table similar to the Performance pane, but with instruments of your choosing.

Click Choose Instruments and select the instruments you want displayed in the chart and table. You can select multiple instruments. When you set up a custom chart/table for a transaction, it is available for any selected transaction, likewise for consumers, and for services/endpoints/operations.

Custom Breakdown

Lets you set up a custom table of numeric instruments segmented in various ways.

Click Choose Instruments and select the instruments you want displayed in the table. You can select multiple instruments. Click Choose Segments and select how you want to segment the measurements. You can select multiple segments.

For example, you might set up a table that displays the number of started and completed transactions per consumer, where your instruments are started transactions and completed transactions and your segment is Consumer Name:

Custom breakdown table: explained in text.

Health Summary Dashboards

The Admin Health Summary dashboard enables you to quickly assess the health of your Business Transaction Management system components. The Operational Health Summary dashboard provides that same information plus information about the health of your business components.

To display the Health Summary dashboards

  • Choose Dashboards > Admin Health Summary

  • Choose Dashboards > Operational Health Summary

These dashboards are composed of multiple tables. Each table provides summary information about a particular type of object, such as transactions, services, SLA alerts, and so forth. The rows in each table generally indicate a status that the object can be in, and the numerical value indicates how many instances of the object is in that state. For example, in the following case, 5 services are in a state of failure and 5 are in a state of warning.

Service failure table. Graphic is explained in text.

The clock icon at the far left indicates that the numeric value is relative to the Time Period selected at the top of dashboard. Click the magnifying glass next to a value to pop up a list of the individual objects in that state.

Using the Filter Tool

The Filter tool allows you to filter objects according to their salient characteristics, which varies according to the item chosen in the Navigator. Although the basic structure of the Filter tool does not change as the target object changes, the criteria you can select does change depending on whether the filter is used to modify the view of services, containers, policies, consumers, and so on.

In addition to the predefined filters, which are shown in a drop list next to the Filter link, you can also click on the link to open the Filter tool and obtain a richer choice of filtering criteria.

Note: You cannot filter condition alerts, observers, or schedules.

To open the filter tool, click on the Filter link in any view where it is displayed.

Business Transaction Management displays a dialog like the following:

Description of filter_link.gif follows

The tool initially presents a short form that allows you to define a filter that references the most common criteria for the object of interest. The domain of objects for which you are creating a filter is displayed in the text box. For example, in the figure above, the text box informs you that you are creating a filter for all user services. To display additional criteria, click the Show More button.

As you select criteria for a query, either from the short form or from the longer form (Show More), Business Transaction Management translates your choices into an AQL expression that it uses to search the database. You can see that AQL query statement in the text box at the top of the tool by clicking the Show AQL check box.

You can use this feature to define AQL expressions that you can pass to CLI commands that use the -filterQuery flag. Simply use the filter tool controls to define your criteria, then copy and paste the AQL expression into the CLI command. Remember to enclose the query in quotation marks if it includes spaces.

When you are done selecting the criteria of interest, click the OK button to use this filter to modify the current view. See Saving a View for instructions on saving your view.

Adding a Custom Attribute for Filtering

You can add a custom attribute for any object in the sphere (service, endpoint, container, and so on). This enables you to use the filter tool to find objects that have specific attribute values. For example, you might want to assign priority levels to services and then filter services based on their priority.

Note that unlike default attribute labels, user-defined attribute labels are not automatically translated.

The basic process for adding and using custom attributes for filtering objects is as follows:

  1. Add a custom attribute for the object type of interest.

  2. Edit an individual object's profile to assign a value to the custom attribute.

  3. Use the Filter tool to select only those objects whose custom attributes have the desired value.

Adding the Attribute

To add a custom attribute, do the following:

  1. Navigate to Admin > Edit Data M

logMerger utility

Use the logMerger utility to merge Business Transaction Management system service log files (logdir) for analysis or archiving. You can use the -config flag to load the utility options from a named log merger configuration file. Command line options will override options defined in a configuration file.

The log merger configuration file is described after the discussion of the logMerger utility.

Command Syntax

logMerger -config config_file_name |-dir directory|-url url 
          [-username username -password password]  
          [-output output_file_name] [-overwrite true|false] 
          [-format format_pattern] 
          [[-from start_time -to end_time]|[-last number_of_hours]] 
          [-loggerName logger_name] [-loggerLevel level|level+] 
          [-className class_name] [-methodName method_name] 
          [-userName user_name] [-V]
NameDescription
-configLoad options from the named configuration file. Command line options override options defined in the configuration file. For an example of a logMerger configuration file, see logMerger Configuration File.
-dirDirectory that contains Business Transaction Management logdir directory you want to merge. The logMerger utility searches all subdirectories of the specified directory for logdir directories. You can provide multiple -dir directory options. Each directory must be a separate entry.
-urlURL of the running Business Transaction Management service whose logdir you want to merge, with the inclusion of the user credentials required to access the service. The logMerger utility will communicate with the service on this URL using the Business Transaction Management user credentials specified by the -username and -password options. You can provide multiple -url service URL options, but all services must have the same username and password credentials. Each URL must be a separate entry.

Note: If you want to merge logging from multiple service URLs that require different username and password credentials for access to each service, you must use a logMerger configuration file.

-usernameThe username credential for access to the Business Transaction Management service associated with the url option.

Note: The -username flag is different from the -userName flag described below; the two flag names are case-sensitive.

-passwordThe password credential for access to the Business Transaction Management service associated with the url option.
-outputSpecifies where to save the merged result. The logMerger utility will exit without overwriting if the output file already exists, unless the -overwrite option has a value of "true".

If no output option is specified, the resulting output file with be written to the directory from which the logMerger utility was called, with a default value of "logmerger_<date>_<time>.log".

-overwriteSpecify true to overwrite existing output file. Default is false.
-formatSpecify the output format of each log entry in the merged result. Possible format tokens include log entry properties:
  • time

  • methodName

  • loggerName

  • loggerLevel

  • className

  • userName

and four more special tokens:

  • message - the actual log message

  • logName - log identifier which is the 'logName' attribute found in the 'logHeader' element of each log file

  • eol - end of line character to separate text

  • tab - tab character to separate text

Each format token is separated by a plus sign '+'.

There is always an End of Line character after each log entry is output.

Default format pattern is: time+logName+eol+loggerLevel+message.

-fromMerge log entries with timestamp later than start_time.

Absence of this option means no start time limit unless -last option is specified.

Use time format of "MM/dd/yy HH:mm:ss". For example: "10/05/06 00:00:01"

-toMerge log entries with timestamp earlier than end_time.

Absence of this option means no end time limit.

Use time format of "MM/dd/yy HH:mm:ss". For example: "10/05/06 17:21:57"

-lastMerge log entries from last number of hours.

This option is ignored if -from or -to is specified.

-loggerNameMerge only log entries generated by the logger with logger_name.
-loggerLevelIf only level is specified, then merge log entries with the specified logger level.

If the level+ is specified, then merge log entries with any level equal to or higher than the specified level.

The following loggerLevel attribute values are listed in order from highest to lowest:

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

-classNameMerge only log entries generated by the class with class_name.
-methodNameMerge only log entries generated by the method with method_name.
-userNameMerge only log entries generated by the user with user_name.

Note: The -userName flag is different from the -username flag described as a sub -flag of the -url flag above; the two flag names are case-sensitive.

-VDisplay version information for the utility and exit.

Examples

  1. The following example collects log entries under the server \BTM_INSTALL_DIR\btmstorage directory (and all sub-directories below it), sends them to an output file named BTMLoggingOutputTo10_05_06, the overwrite option is set to true, all entries with a loggerLevel of INFO or higher (WARNING, SEVERE) will be collected, with multiple format options, and a date and time range over two-and-one-half days:

    logMerger -dir "C:\BTM_INSTALL_DIR\btmstorage" 
              -output BTMloggingOutputTo10_05_06 -overwrite true 
              -loggerLevel INFO+ -format time+loggerName+userName+message+eol 
              -from "10/03/06 00:00:01" -to "10/05/06 12:00:00"
    
  2. The following example collects log entries under the local machine's directories \BTM_INSTALL_DIR\btmstorage\btmui and BTM_INSTALL_DIR\btmstorage\btmtransaction, sends the entries to an output file named BTMuiNtransactionLoggingOutLast24, the overwrite option is set to true, all entries with a loggerLevel of INFO will be collected, with multiple format options, the utility collects all logging entries generated by the action of a user with the name SalesOpsManager that have occurred over the last 24 hours.

    logMerger -dir "C:\BTM_INSTALL_DIR\btmstorage\btmui" 
              -dir "C:\BTM_INSTALL_DIR\btmstorage\btmtransaction" 
              -output BTMuiNtransactionLoggingOutLast24 -overwrite true 
              -loggerLevel INFO -format time+userName+messgae 
             -userName SalesOpsManager -last 24
    
  3. The following example collects log entries from three URLs:

    http://remoteServer1:8080/btmcentral/sphere http://remoteServer1:8080/btmcentral/sphere http://remoteServer1:8080/btmcentral/sphere

    The user and password credentials to access these service URLs is the same (otherwise, you must use a configuration file). The log entries are sent to an output file named remoteServiceOutputFrom10_13_06, all entries with a loggerLevel of INFO or higher (WARNING,SEVERE) are collected, with multiple format options, and a date range from one second after midnight on 10/13/06.

    logMerger -url "http://remoteServer1:8080/btmcentral/sphere" 
              -url "http://remoteServer2:8080/btmcentral/container" 
              -url "http://remoteServer1:8080/btmcentral/agent" 
              -username BTMAdminUser -password BTMAdminUserPwd 
              -output remoteServiceOutputFrom10_13_06 
              -loggerLevel INFO+ -format time+message+eol -from "00:00:01 10/13/06"
    
  4. The following example uses settings from within a user-defined LogMerger configuration file named myLogMergerConfigFile.xml. Use this option when you frequently use logMerger to collect the same type of information. You can add options to the command line to overwrite the options defined in the configuration file.

    logMerger -config myLogMergerConfigFile.xml
    

logMerger Configuration File

The following text contains the formatting and content for a sample log merger configuration file. Options specified in the file will be overridden by command line options.

If you want to encrypt the passwords for accessing remote service URLs via the configuration file, you can use the encryptPassword command.

The attributes defined in the configuration file, which are described in the following subsections, are enclosed in the following:

<ap:logmerger xmlns:ap="http://namespace.amberpoint.com/amf" debug="false">
.
.
.
</ap:logmerger>

Sources Attribute Example and Discussion

  <ap:sources>
   <ap:source dir="C:/Program Files/AmberPoint/SOAManagementSystem/
                                                      server/amberpoint"/>
   <ap:source url="http://remoteServerHost1:7001/apcentral/sphere"
                              username="SMSUser1" password="SMSUserPwd1"/>
   <ap:source url="http://remoteServerHost2:7001/apcontainer/container"
                              username="SMSUser2" password="SMSUserPwd2"/>
   <ap:source url="http://remoteServerHost3:7001/eProxy/agent/agent"
                              username="SMSUser3" password="SMSUserPwd3"/>
   <ap:source url="http://remoteServerHost1:8080/apcentral/sphere"
                            username="ALSMUser1" password="ALSMUserPwd1"/>
  </ap:sources>

You can provide multiple source dir entries. Each source directory must be a separate entry.

dir: Directory that contains the Business Transaction Management logdir directory you want to merge. The logMerger utility searches all subdirectories of the specified directory for logdir directories.

You can provide multiple source URL entries. Each source URL must be a separate entry.

url: URL of running Business Transaction Management service. This utility will communicate with the service on this URL using the user credentials specified by the -username and -password options.

username: username to access the Business Transaction Management service

password: password to access the Business Transaction Management service

Filter Attribute Example and Discussion

<ap:filter
   from="10/02/06 09:00:00"
   to="10/02/06 11:59:00"
   last="24"
   loggerName="com.amberpoint.services.lifecycle.initialize"
   loggerLevel="INFO+"
   className="com.amberpoint.util.soa.services.urservice.UrServiceImpl"
   methodName="createServices"
   userName="BTMdministrator"

The filter attributes are used to query the log history for messages that contain an exact match of all attributes.

For example, filter attributes of last="24" loggerLevel="INFO" will merge INFO messages logged within the last 24 hours.

If no filter options are specified, then all log messages will be included.

from: log entries with a timestamp later than "from" will be included. Absence of this attribute means no start time limit unless "last" attribute is specified.

Use time format of "MM/dd/yy HH:mm:ss". E.g. from="12/25/05 10:34:25"

to: log entries with a timestamp earlier than "to" will be included. Absence of this attribute means no end time limit.

Use time format of "MM/dd/yy HH:mm:ss". E.g. to="12/25/05 10:34:25"

last: last number of hours of log entries will be included. this attribute is ignored if "from" or "to" is specified.

loggerName: only log entries generated by the named logger attribute will be included.

loggerLevel: this attribute accepts values in two formats: level or level+.

If level is specified, only log entries with the specified logger level will be included.

If level+ is specified, log entries with a level equal to or higher than the specified level will be included.

The following loggerLevel attribute values are listed in order from highest to lowest:

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

className: only log entries generated by the specified class will be included.

methodName: only log entries generated by the specified method will be included.

userName: only log entries generated by the specified user will be included.

-->

Output File Example and Discussion

<
<ap:output file="c:\temp\testmerger.log" overwrite="true"
                        format="time+logName+loggerName+eol+loggerLevel+message"/>

file: where the merged log file will be saved.

The LogMerger utility will stop processing if the output file already exists, unless the overwrite attribute has a value of "true".

Absence of the file attribute will save the merged log file to a new file named logmerger_<date>_<time>.log.

overwrite: allows the utility to overwrite the file specified by the "file" attribute if it already exists. The default value of overwrite is "false".

format: defines the output format of each log entry in the merged result.

Possible format tokens include all log entry properties (attributes on logEntry node in log file).

Examples of log entry properties with values are below:

<logEntry
      entryId="1127753975442:0"
      time="Mon Sep 26 09:59:35 PDT 2005"
      entryType="1"
      dataSize="102"
      loggerName="com.amberpoint.agent.backplane.servlet.ServletDriver"
      loggerLevel="INFO"
      methodName="findOldStorageDirectory"
      className="com.amberpoint.agent.backplane.servlet.ServletDriver">

There are four additional special tokens:

  • message: the actual log message

  • logName: name of the log file that is stored in <logHeader>. The logHeader is used to identify the service that generates the log message.

  • eol: end of line character to separate text

  • tab: tab character to separate text

Each format token must be separated by a plus sign.

The LogMerger utility inserts an End of Line character after each log entry that is written to the output file.