PK 9Aoa,mimetypeapplication/epub+zipPK9AiTunesMetadata.plistZ artistName Oracle Corporation book-info cover-image-hash 777550958 cover-image-path OEBPS/dcommon/oracle-logo.jpg package-file-hash 74186223 publisher-unique-id E16540-06 unique-id 491908834 genre Oracle Documentation itemName Oracle® Database Real Application Testing User's Guide, 11g Release 2 (11.2) releaseDate 2011-12-07T19:52:31Z year 2011 PK*b_ZPK9AMETA-INF/container.xml PKYuPK9AOEBPS/cover.htmO Cover

Oracle Corporation

PK[pTOPK9AOEBPS/spa_upgrade.htm Testing a Database Upgrade

7 Testing a Database Upgrade

SQL Performance Analyzer supports testing database upgrades from Oracle9i and later releases to Oracle Database 10g Release 2 or newer releases. The methodology used to test a database upgrade from Oracle9i Database and Oracle Database 10g Release 1 is slightly different from the one used to test a database upgrade from Oracle Database 10g Release 2 and later releases, so both methodologies are described here.

This chapter describes how to use SQL Performance Analyzer in a database upgrade and contains the following sections:


Note:

For information about using SQL Performance Analyzer in other cases, see "SQL Performance Analyzer"

7.1 Upgrading from Oracle9i Database and Oracle Database 10g Release 1

As illustrated in Figure 7-1, SQL Performance Analyzer supports testing database upgrades of Oracle9i Database and Oracle Database 10g Release 1 to Oracle Database 10g Release 2 and later releases by building a SQL tuning set from SQL trace files captured on the production system, executing the SQL tuning set on the upgraded database remotely over a database link, and then comparing the results to those captured on the production system. Because SQL Performance Analyzer only accepts a set of SQL statements stored in a SQL tuning set as its input source, and SQL tuning sets are not supported in Oracle9i Database, a SQL tuning set must be constructed so that it can be used as an input source for SQL Performance Analyzer if you are upgrading from Oracle9i Database.

Figure 7-1 SQL Performance Analyzer Workflow for Database Upgrade from Oracle9i to Oracle Database 10g Release 2

Description of Figure 7-1 follows
Description of "Figure 7-1 SQL Performance Analyzer Workflow for Database Upgrade from Oracle9i to Oracle Database 10g Release 2"

The production system which you are upgrading from should be running Oracle9i or Oracle Database 10g Release 1. The test system which you are upgrading to should be running Oracle Database 10g Release 2 or a newer release. The database version can be release 10.2.0.2 or higher. If you are upgrading to Oracle Database 10g release 10.2.0.2, 10.2.0.3, or 10.2.0.4, you will also need to install a one-off patch before proceeding.

To ensure that the analysis made by SQL Performance Analyzer is accurate, the test system should resemble the production system as closely as possible because the performance on both systems will be compared to each other. Furthermore, the hardware configurations on both systems should also be as similar as possible.

Next, you will need to set up a separate SQL Performance Analyzer system running Oracle Database 11g Release 2. You will be using this system to build a SQL tuning set and to run SQL Performance Analyzer. Neither your production data or schema need to be available on this system, since the SQL tuning set will be built using statistics stored in the SQL trace files from the production system. SQL Performance Analyzer tasks will be executed remotely on the test system to generate the execution plan and statistics for the SQL trial over a database link that you specify. The database link must be a public database link that connects to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system. You should also drop any existing PLAN_TABLE from the user's schema on the test system.

Once the upgrade environment is configured as described, perform the steps as described in the following procedure to use SQL Performance Analyzer in a database upgrade from Oracle9i or Oracle Database 10g Release 1 to a newer release.

  1. Enable the SQL Trace facility on the production system, as described in "Enabling SQL Trace on the Production System".

    To minimize the performance impact on the production system and still be able to fully capture a representative set of SQL statements, consider enabling SQL Trace for only a subset of the sessions, for as long as required, to capture all important SQL statements at least once.

  2. On the production system, create a mapping table, as described in "Creating a Mapping Table".

    This mapping table will be used to convert the user and object identifier numbers in the SQL trace files to their string equivalents.

  3. Move the SQL trace files and the mapping table from the production system to the SQL Performance Analyzer system, as described in "Creating a Mapping Table".

  4. On the SQL Performance Analyzer system, construct a SQL tuning set using the SQL trace files, as described in "Building a SQL Tuning Set".

    The SQL tuning set will contain the SQL statements captured in the SQL trace files, along with their relevant execution context and statistics.

  5. On the SQL Performance Analyzer system, use SQL Performance Analyzer to create a SQL Performance Analyzer task and convert the contents in the SQL tuning set into a pre-upgrade SQL trial that will be used as a baseline for comparison, then remotely test execute the SQL statements on the test system over a database link to build a post-upgrade SQL trial, as described in "Testing Database Upgrades from Oracle9i Database and Oracle Database 10g Release 1".

  6. Compare SQL performance and fix regressed SQL.

    SQL Performance Analyzer compares the performance of SQL statements read from the SQL tuning set during the pre-upgrade SQL trial to those captured from the remote test execution during the post-upgrade SQL trial. A report is produced to identify any changes in execution plans or performance of the SQL statements.

    If the report reveals any regressed SQL statements, you can make further changes to fix the regressed SQL, as described in "Tuning Regressed SQL Statements After Testing a Database Upgrade".

    Repeat the process of executing the SQL tuning set and comparing its performance to a previous execution to test any changes made until you are satisfied with the outcome of the analysis.

7.1.1 Enabling SQL Trace on the Production System

Oracle9i uses the SQL Trace facility to collect performance data on individual SQL statements. The information generated by SQL Trace is stored in SQL trace files. SQL Performance Analyzer consumes the following information from these files:

  • SQL text and username under which parse occurred

  • Bind values for each execution

  • CPU and elapsed times

  • Physical reads and logical reads

  • Number of rows processed

  • Execution plan for each SQL statement (only captured if the cursor for the SQL statement is closed)

Although it is possible to enable SQL Trace for an instance, it is recommended that you enable SQL Trace for a subset of sessions instead. When the SQL Trace facility is enabled for an instance, performance statistics for all SQL statements executed in the instance are stored into SQL trace files. Using SQL Trace in this way can have a severe performance impact and may result in increased system overhead, excessive CPU usage, and inadequate disk space. It is required that trace level be set to 4 to capture bind values, along with the execution plans.

For production systems running Oracle Database 10g Release 1, use the DBMS_MONITOR.SESSION_TRACE_ENABLE procedure to enable SQL Trace transparently in another session. You should also enable binds explicitly by setting the binds procedure parameter to TRUE (its default value is FALSE).

After enabling SQL Trace, identify the SQL trace files containing statistics for a representative set of SQL statements that you want to use with SQL Performance Analyzer. You can then copy the SQL trace files to the SQL Performance Analyzer system. Once the SQL workload is captured in the SQL trace files, disable SQL Trace on the production system.


See Also:


7.1.2 Creating a Mapping Table

To convert the user and object identifier numbers stored in the SQL trace files to their respective names, you need to provide a table that specifies each mapping. The SQL Performance Analyzer system will read this mapping table when converting the trace files into a SQL tuning set.

To create a mapping table, run the following SQL statements on the production database:

CREATE TABLE mapping AS
    SELECT object_id id, owner, SUBSTR(object_name, 1, 30) name FROM dba_objects
    WHERE object_type NOT IN ('CONSUMER GROUP', 'EVALUATION CONTEXT', 'FUNCTION',
                              'INDEXTYPE', 'JAVA CLASS', 'JAVA DATA',
                              'JAVA RESOURCE', 'LIBRARY', 'LOB', 'OPERATOR',
                              'PACKAGE', 'PACKAGE BODY', 'PROCEDURE', 'QUEUE',
                              'RESOURCE PLAN', 'SYNONYM', 'TRIGGER', 'TYPE',
                              'TYPE BODY')
    UNION ALL
    SELECT user_id id, username owner, null name FROM dba_users;

Once the mapping table is created, you can use Data Pump to transport it to the SQL Performance Analyzer system.


See Also:


7.1.3 Building a SQL Tuning Set

Once the SQL trace files and mapping table are moved to the SQL Performance Analyzer system, you can build a SQL tuning set using the DBMS_SQLTUNE package.

To build a SQL tuning set:

  1. Copy the SQL trace files to a directory on the SQL Performance Analyzer system.

  2. Create a directory object for this directory.

  3. Use the DBMS_SQLTUNE.SELECT_SQL_TRACE function to read the SQL statements from the SQL trace files.

    For each SQL statement, only information for a single execution is collected. The execution frequency of each SQL statement is not captured. Therefore, when performing a comparison analysis for a production system running Oracle Database 10g Release 1 and older releases, you should ignore the workload-level statistics in the SQL Performance Analyzer report and only evaluate performance changes on an execution level.

    The following example reads the contents of SQL trace files stored in the sql_trace_prod directory object and loads them into a SQL tuning set.

    DECLARE
      cur sys_refcursor;
    BEGIN
      DBMS_SQLTUNE.CREATE_SQLSET('my_sts_9i');
      OPEN cur FOR
        SELECT VALUE (P) 
        FROM table(DBMS_SQLTUNE.SELECT_SQL_TRACE('sql_trace_prod', '%ora%')) P;
      DBMS_SQLTUNE.LOAD_SQLSET('my_sts_9i', cur);
      CLOSE cur;
    END;
    /
    

The syntax for the SELECT_SQL_TRACE function is as follows:

  DBMS_SQLTUNE.SELECT_SQL_TRACE ( 
    directory              IN VARCHAR2,
    file_name              IN VARCHAR2 := NULL,
    mapping_table_name     IN VARCHAR2 := NULL,
    mapping_table_owner    IN VARCHAR2 := NULL,
    select_mode            IN POSITIVE := SINGLE_EXECUTION,
    options                IN BINARY_INTEGER := LIMITED_COMMAND_TYPE,
    pattern_start          IN VARCHAR2 := NULL,
    parttern_end           IN VARCHAR2 := NULL,
    result_limit           IN POSITIVE := NULL)
  RETURN sys.sqlset PIPELINED;

Table 7-1 describes the available parameters for the SELECT_SQL_TRACE function.

Table 7-1 DBMS_SQLTUNE.SELECT_SQL_TRACE Function Parameters

ParameterDescription

directory

Specifies the directory object pointing to the directory where the SQL trace files are stored.

file_name

Specifies all or part of the name of the SQL trace files to process. If unspecified, the current or most recent trace file in the specified directory will be used. % wildcards are supported for matching trace file names.

mapping_table_name

Specifies the name of the mapping table. If set to the default value of NULL, mappings from the current database will be used. Note that the mapping table name is not case-sensitive.

mapping_table_owner

Specifies the schema where the mapping table resides. If set to NULL, the current schema will be used.

select_mode

Specifies the mode for selecting SQL statements from the trace files. The default value is SINGLE_EXECUTION. In this mode, only statistics for a single execution per SQL statement will be loaded into the SQL tuning set. The statistics are not cumulative, as is the case with other SQL tuning set data source table functions.

options

Specifies the options for the operation. The default value is LIMITED_COMMAND_TYPE, only SQL types that are meaningful to SQL Performance Analyzer (such as SELECT, INSERT, UPDATE, and DELETE) are returned from the SQL trace files.

pattern_start

Specifies the opening delimiting pattern of the trace file sections to consider. This parameter is currently not used.

pattern_end

Specifies the closing delimiting pattern of the trace file sections to process. This parameter is currently not used.

result_limit

Specifies the top SQL from the (filtered) source. The default value is 231, which represents unlimited.



See Also:


7.1.4 Testing Database Upgrades from Oracle9i Database and Oracle Database 10g Release 1

Once the SQL tuning set is built, you can use SQL Performance Analyzer to build a pre-upgrade SQL trial from the execution plans and run-time statistics in the SQL tuning set. After the pre-upgrade SQL trial is built, you need to perform a test execute or generate plans of SQL statements in the SQL tuning set on the test system to build a post-upgrade SQL trial. SQL Performance Analyzer test executes the SQL statements using a public database link that you specify by connecting to the test system remotely and generating the execution plans and statistics for the SQL trial. The database link should exist on the SQL Performance Analyzer system and connect to a remote user with privileges to execute the SQL tuning set on the test system.

You can run SQL Performance Analyzer to test a database upgrade from Oracle9i Database or Oracle Database 10g Release 1 using Oracle Enterprise Manager or APIs, as described in the following sections:

7.1.4.1 Testing Database Upgrades from Oracle9i Database and Oracle Database 10g Release 1 Using Enterprise Manager

To test a database upgrade from Oracle9i Database or Oracle Database 10g Release 1 using SQL Performance Analyzer:

  1. On the Software and Support page, under Real Application Testing, click SQL Performance Analyzer.

    The SQL Performance Analyzer page appears.

  2. Under SQL Performance Analyzer Workflows, click Upgrade from 9i or 10.1.

    The Upgrade from 9i or 10.1 page appears.

    Description of spa_upgrade_9i_101.gif follows
    Description of the illustration spa_upgrade_9i_101.gif

  3. Under Task Information:

    1. In the Task Name field, enter the name of the task.

    2. In the SQL Tuning Set field, enter the name of the SQL tuning set that was built.

      Alternatively, click the search icon to search for the SQL tuning set using the Search and Select: SQL Tuning Set window.

      The selected SQL tuning set now appears in the SQL Tuning Set field.

    3. In the Description field, optionally enter a description of the task.

  4. In the Creation Method field, select:

    • Execute SQLs to generate both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements remotely on the test system over a public database link.

    • Generate Plans to create execution plans remotely on the test system over a public database link without actually running the SQL statements.

  5. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged time period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  6. In the Database Link field, enter the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system.

    Alternatively, click the search icon to search for and select a database link, or click Create Database Link to create a database link using the Create Database Link page.

  7. In the Comparison Metric list, select the comparison metric to use for the comparison analysis:

    • Elapsed Time

    • CPU Time

    • User I/O Time

    • Buffer Gets

    • Physical I/O

    • Optimizer Cost

    • I/O Interconnect Bytes

    Optimizer Cost is the only comparison metric available if you generated execution plans only in the SQL trials.

    To perform the comparison analysis by using more than one comparison metric, perform separate comparison analyses by repeating this procedure with different metrics.

  8. Under Schedule:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  9. Click Submit.

    The SQL Performance Analyzer page appears.

    In the SQL Performance Analyzer Tasks section, the status of this task is displayed. To refresh the status icon, click Refresh. After the task completes, the Status field changes to Completed.

  10. Under SQL Performance Analyzer Tasks, select the task and click the link in the Name column.

    The SQL Performance Analyzer Task page appears.

    This page contains the following sections:

    • SQL Tuning Set

      This section summarizes information about the SQL tuning set, including its name, owner, description, and the number of SQL statements it contains.

    • SQL Trials

      This section includes a table that lists the SQL trials used in the SQL Performance Analyzer task.

    • SQL Trial Comparisons

      This section contains a table that lists the results of the SQL trial comparisons

  11. Click the icon in the Comparison Report column.

    The SQL Performance Analyzer Task Result page appears.

  12. Review the results of the performance analysis, as described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

    If regressed SQL statements are found following the database upgrade, tune them as described in "Tuning Regressed SQL Statements After Testing a Database Upgrade".

7.1.4.2 Testing Database Upgrades from Oracle9i Database and Oracle Database 10g Release 1 Using APIs

After creating a SQL Performance Analyzer task on the SQL Performance Analyzer system, you can use APIs to build the pre-upgrade SQL trial from the execution plans and run-time statistics in the SQL tuning set. To do so, call the EXECUTE_ANALYSIS_TASK procedure using the following parameters:

  • Set the task_name parameter to the name of the SQL Performance Analyzer task that you want to execute.

  • Set the execution_type parameter to CONVERT SQLSET to direct SQL Performance Analyzer to treat the statistics in the SQL tuning set as a trial execution.

  • Specify a name to identify the execution using the execution_name parameter. If not specified, then SQL Performance Analyzer automatically generates a name for the task execution.

The following example executes the SQL Performance Analyzer task named my_spa_task as a trial execution:

EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'CONVERT SQLSET', - 
       execution_name => 'my_trial_9i');

To build the post-upgrade SQL trial using APIs, perform an explain plan or test execute using the SQL Performance Analyzer system by calling the EXECUTE_ANALYSIS_TASK procedure. Set the DATABASE_LINK task parameter to the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system.

If you choose to use EXPLAIN PLAN, only execution plans will be generated. Subsequent comparisons will only be able to yield a list of changed plans without making any conclusions about performance changes. If you choose to use TEST EXECUTE, the SQL workload will be executed to completion. This effectively builds the post-upgrade SQL trial using the statistics and execution plans generated from the test system. Using TEST EXECUTE is recommended to capture the SQL execution plans and performance data at the source, thereby resulting in a more accurate analysis.

The following example performs a test execute of the SQL statements remotely over a database link:

EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', - 
       execution_name => 'my_remote_trial_10g', -
       execution_params => dbms_advisor.arglist('database_link',
                                                'LINK.A.B.C.BIZ.COM'));

7.2 Upgrading from Oracle Database 10g Release 2 and Newer Releases

You can use SQL Performance Analyzer to test the impact on SQL response time of a database upgrade from Oracle Database 10g Release 2 or a newer release to any later release by capturing a SQL tuning set on the production system, then executing it twice remotely over a database link on a test system—first to create a pre-change SQL trial, then again to create a post-change SQL trial.

The production system which you are upgrading from should be running Oracle Database 10g Release 2 or a newer release. Initially, the test system should also be running the same release. To ensure that the analysis made by SQL Performance Analyzer is accurate, the test system should contain an exact copy of the production data found on the production system. Furthermore, the hardware configuration should also be as similar to the production system as possible.

Next, you will need to set up a separate SQL Performance Analyzer system running Oracle Database 11g Release 2. You will be using this system to run SQL Performance Analyzer. Neither your production data or schema need to be available on this system, since the SQL tuning set will be built using statistics stored in the SQL trace files from the production system. SQL Performance Analyzer tasks will be executed remotely on the test system to generate the execution plan and statistics for the SQL trial over a database link that you specify. The database link must be a public database link that connects to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system. You should also drop any existing PLAN_TABLE from the user's schema on the test system.

Once the upgrade environment is configured as described, perform the steps as described in the following procedure to use SQL Performance Analyzer in a database upgrade from Oracle Database 10g Release 2 or a newer release to any later release.

  1. On the production system, capture the SQL workload that you intend to analyze and store it in a SQL tuning set, as described in "Capturing the SQL Workload".

  2. Set up the test system so that it matches the production environment as closely as possible, as described in "Setting Up the Test System".

  3. Transport the SQL tuning set to the SQL Performance Analyzer system.

    For information about transporting SQL tuning sets using:

  4. On the SQL Performance Analyzer system, create a SQL Performance Analyzer task using the SQL tuning set as its input source.

    Remotely test execute the SQL statements in the SQL tuning set on the test system over a database link to build a pre-upgrade SQL trial that will be used as a baseline for comparison, as described in "Testing Database Upgrades from Oracle Database 10g Release 2 and Newer Releases".

  5. Upgrade the test system.

  6. Remotely test execute the SQL statements a second time on the upgraded test system over a database link to build a post-upgrade SQL trial, as described in "Testing Database Upgrades from Oracle Database 10g Release 2 and Newer Releases".

  7. Compare SQL performance and fix regressed SQL.

    SQL Performance Analyzer compares the performance of SQL statements read from the SQL tuning set during the pre-upgrade SQL trial to those captured from the remote test execution during the post-upgrade SQL trial. A report is produced to identify any changes in execution plans or performance of the SQL statements.

    If the report reveals any regressed SQL statements, you can make further changes to fix the regressed SQL, as described in "Tuning Regressed SQL Statements After Testing a Database Upgrade".

    Repeat the process of executing the SQL tuning set and comparing its performance to a previous execution to test any changes made until you are satisfied with the outcome of the analysis.

7.2.1 Testing Database Upgrades from Oracle Database 10g Release 2 and Newer Releases

Once the SQL tuning set is transported to the SQL Performance Analyzer system, you can use SQL Performance Analyzer to build a pre-upgrade SQL trial by executing or generating plans of SQL statements in the SQL tuning set on the test system. SQL Performance Analyzer test executes the SQL statements using a database link that you specify by connecting to the test system remotely and generating the execution plans and statistics for the SQL trial. The database link should exist on the SQL Performance Analyzer system and connect to a remote user with privileges to execute the SQL tuning set on the test system.

After the pre-upgrade SQL trial is built, you need to upgrade the test system. Once the database has been upgraded, SQL Performance Analyzer will need to execute or generate plans of SQL statements in the SQL tuning set a second time on the upgraded test system to build a post-upgrade SQL trial. Alternatively, if hardware resources are available, you can use another upgraded test system to execute the second remote SQL trial. This method can be useful in helping you investigate issues identified by SQL Performance Analyzer.

You can run SQL Performance Analyzer to test a database upgrade from Oracle Database 10g Release 2 or a newer release using Oracle Enterprise Manager or APIs, as described in the following sections:

7.2.1.1 Testing Database Upgrades from Oracle Database 10g Release 2 and Newer Releases Using Enterprise Manager

To test a database upgrade from Oracle Database 10g Release 2 or a newer release using SQL Performance Analyzer:

  1. On the Software and Support page, under Real Application Testing, click SQL Performance Analyzer.

    The SQL Performance Analyzer page appears.

  2. Under SQL Performance Analyzer Workflows, click Upgrade from 10.2 or 11g.

    The Upgrade from 10.2 or 11g page appears.

    Description of spa_upgrade_102_11g.gif follows
    Description of the illustration spa_upgrade_102_11g.gif

  3. Under Task Information:

    1. In the Task Name field, enter the name of the task.

    2. In the SQL Tuning Set field, enter the name of the SQL tuning set that was built.

      Alternatively, click the search icon to search for the SQL tuning set using the Search and Select: SQL Tuning Set window.

      The selected SQL tuning set now appears in the SQL Tuning Set field.

    3. In the Description field, optionally enter a description of the task.

  4. In the Creation Method field, select:

    • Execute SQLs to generate both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements remotely on the test system over a public database link.

    • Generate Plans to create execution plans remotely on the test system over a public database link without actually running the SQL statements.

  5. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged time period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  6. In the Database Link field, enter the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the pre-upgrade system.

    Alternatively, click the search icon to search for and select a database link, or click Create Database Link to create a database link using the Create Database Link page.

  7. Under Post-upgrade Trial:

    1. Select Use the same system as in the pre-upgrade trial to use the same system for executing both the pre-upgrade and post-upgrade trials.

      Oracle recommends using this option to avoid possible errors due to different system configurations. When using this option, you will need to upgrade the test database to the higher database version before the post-upgrade trial is executed.

    2. In the Database Link field, enter the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the post-upgrade system.

  8. In the Comparison Metric list, select the comparison metric to use for the comparison analysis:

    • Elapsed Time

    • CPU Time

    • User I/O Time

    • Buffer Gets

    • Physical I/O

    • Optimizer Cost

    • I/O Interconnect Bytes

    Optimizer Cost is the only comparison metric available if you generated execution plans only in the SQL trials.

    To perform the comparison analysis by using more than one comparison metric, perform separate comparison analyses by repeating this procedure with different metrics.

  9. Under Schedule:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  10. Click Submit.

    The SQL Performance Analyzer page appears.

    In the SQL Performance Analyzer Tasks section, the status of this task is displayed. To refresh the status icon, click Refresh.

    If you are using the same system to execute both the pre-upgrade and post-upgrade trials, you will need to upgrade the database after the pre-upgrade trial step is completed. After the database is upgraded, the post-upgrade trial can be executed. After the task completes, the Status field changes to Completed.

  11. Under SQL Performance Analyzer Tasks, select the task and click the link in the Name column.

    The SQL Performance Analyzer Task page appears.

    This page contains the following sections:

    • SQL Tuning Set

      This section summarizes information about the SQL tuning set, including its name, owner, description, and the number of SQL statements it contains.

    • SQL Trials

      This section includes a table that lists the SQL trials used in the SQL Performance Analyzer task.

    • SQL Trial Comparisons

      This section contains a table that lists the results of the SQL trial comparisons

  12. Click the icon in the Comparison Report column.

    The SQL Performance Analyzer Task Result page appears.

  13. Review the results of the performance analysis, as described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

    If regressed SQL statements are found following the database upgrade, tune them as described in "Tuning Regressed SQL Statements After Testing a Database Upgrade".

7.2.1.2 Testing Database Upgrades from Oracle Database 10g Release 2 and Newer Releases Using APIs

After creating a SQL Performance Analyzer task on the SQL Performance Analyzer system, you can use APIs to build the pre-upgrade SQL trial by performing an explain plan or test execute of SQL statements in the SQL tuning set. To do so, call the EXECUTE_ANALYSIS_TASK procedure using the following parameters:

  • Set the task_name parameter to the name of the SQL Performance Analyzer task that you want to execute.

  • Set the execution_type parameter to EXPLAIN PLAN or TEST EXECUTE.

    If you choose to use EXPLAIN PLAN, only execution plans will be generated. Subsequent comparisons will only be able to yield a list of changed plans without making any conclusions about performance changes. If you choose to use TEST EXECUTE, the SQL workload will be executed to completion. This effectively builds the pre-upgrade SQL trial using the statistics and execution plans generated from the test system. Using TEST EXECUTE is recommended to capture the SQL execution plans and performance data at the source, thereby resulting in a more accurate analysis.

  • Specify a name to identify the execution using the execution_name parameter. If not specified, then SQL Performance Analyzer automatically generates a name for the task execution.

  • Set the DATABASE_LINK task parameter to the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system.

The following example executes the SQL Performance Analyzer task named my_spa_task and performs a test execute of the SQL statements remotely over a database link:

EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', - 
       execution_name => 'my_remote_trial_10g', -
       execution_params => dbms_advisor.arglist('database_link',
                                                'LINK.A.B.C.BIZ.COM'));

To build the post-upgrade SQL trial using APIs, perform an explain plan or test execute using the SQL Performance Analyzer system by calling the EXECUTE_ANALYSIS_TASK procedure with the DATABASE_LINK task parameter set to the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system. If you choose to use EXPLAIN PLAN, only execution plans will be generated. Subsequent comparisons will only be able to yield a list of changed plans without making any conclusions about performance changes. If you choose to use TEST EXECUTE, the SQL workload will be executed to completion. This effectively builds the post-upgrade SQL trial using the statistics and execution plans generated from the test system. Using TEST EXECUTE is recommended to capture the SQL execution plans and performance data at the source, thereby resulting in a more accurate analysis.

The following example performs a test execute of the SQL statements remotely over a database link:

EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', - 
       execution_name => 'my_remote_trial_11g', -
       execution_params => dbms_advisor.arglist('database_link',
                                                'LINK.A.B.C.BIZ.COM'));

7.3 Tuning Regressed SQL Statements After Testing a Database Upgrade

In some cases, SQL Performance Analyzer may identify SQL statements whose performance regressed after you upgrade the database on the test system.

You can tune the regressed SQL statements by using the SQL Tuning Advisor or SQL plan baselines, as described in Chapter 6, "Comparing SQL Trials". This involves using APIs to build a subset of a SQL tuning set with only the regressed SQL statements, transport this subset of regressed SQL statements to the remote database, and running the SQL Tuning Advisor on the remote database.

Oracle Enterprise Manager does not provide support for fixing regressions after running SQL Performance Analyzer involving one or more remote SQL trials. For more information, see "Tuning Regressed SQL Statements From a Remote SQL Trial Using APIs".

If you are upgrading from Oracle Database 10g Release 2 and newer releases, you can also create SQL plan baselines to instruct the optimizer to select existing execution plans in the future. For more information, see "Creating SQL Plan Baselines Using APIs".

PKE"yPK9AOEBPS/part3.htm9 Test Data Management

Part III

Test Data Management

Oracle Database offers test data management features that enable you to:

Part III contains the following chapters:

PK">9PK9AOEBPS/title.htma Oracle Database Real Application Testing User's Guide, 11g Release 2 (11.2)

Oracle® Database

Real Application Testing User's Guide

11g Release 2 (11.2)

E16540-06

December 2011


Oracle Database Real Application Testing User's Guide, 11g Release 2 (11.2)

E16540-06

Copyright © 2008, 2011, Oracle and/or its affiliates. All rights reserved.

Primary Author:  Immanuel Chan

Contributing Author:  Mike Zampiceni

Contributors:  Ashish Agrawal, Lance Ashdown, Pete Belknap, Supiti Buranawatanachoke, Romain Colle, Karl Dias, Kurt Engeleiter, Leonidas Galanis, Veeranjaneyulu Goli, Prabhaker Gongloor, Prakash Gupta, Shantanu Joshi, Prathiba Kalirengan, Karen McKeen, Mughees Minhas, Valarie Moore, Ravi Pattabhi, Yujun Wang, Keith Wong, Khaled Yagoub, Hailing Yu

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.

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.

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, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

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.

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.

This software or hardware and documentation may provide access to or information on 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. 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.

PKSgfaPK9AOEBPS/rat_intro.htm%{ Introduction to Oracle Real Application Testing

1 Introduction to Oracle Real Application Testing

Oracle Real Application Testing option enables you to perform real-world testing of Oracle Database. By capturing production workloads and assessing the impact of system changes before production deployment, Oracle Real Application Testing minimizes the risk of instabilities associated with changes.

Oracle Real Application Testing comprises the following components:

SQL Performance Analyzer and Database Replay are complementary solutions that can be used for real application testing. Depending on the nature and impact of the system change, and on which system the test will be performed (production or test), you can use either one to perform your testing.


Note:

The use of SQL Performance Analyzer and Database Replay requires the Oracle Real Application Testing licensing option. For more information, see Oracle Database Licensing Information.

1.1 SQL Performance Analyzer

System changes—such as a upgrading a database or adding an index—may cause changes to execution plans of SQL statements, resulting in a significant impact on SQL performance. In some cases, the system changes may cause SQL statements to regress, resulting in performance degradation. In other cases, the system changes may improve SQL performance. Being able to accurately forecast the potential impact of system changes on SQL performance enables you to tune the system beforehand, in cases where the SQL statements regress, or to validate and measure the performance gain in cases where the performance of the SQL statements improves.

SQL Performance Analyzer automates the process of assessing the overall effect of a change on the full SQL workload by identifying performance divergence for each SQL statement. A report that shows the net impact on the workload performance due to the change is provided. For regressed SQL statements, SQL Performance Analyzer also provides appropriate executions plan details along with tuning recommendations. As a result, you can remedy any negative outcome before the end users are affected. Furthermore, you can validate—with significant time and cost savings—that the system change to the production environment will result in net improvement.

You can use the SQL Performance Analyzer to analyze the impact on SQL performance of any type of system changes, including:


See Also:


1.2 Database Replay

Before system changes are made, such as hardware and software upgrades, extensive testing is usually performed in a test environment to validate the changes. However, despite the testing, the new system often experiences unexpected behavior when it enters production because the testing was not performed using a realistic workload. The inability to simulate a realistic workload during testing is one of the biggest challenges when validating system changes.

Database Replay enables realistic testing of system changes by essentially re-creating the production workload environment on a test system. Using Database Replay, you can capture a workload on the production system and replay it on a test system with the exact timing, concurrency, and transaction characteristics of the original workload. This enables you to fully assess the impact of the change, including undesired results, new contention points, or plan regressions. Extensive analysis and reporting is provided to help identify any potential problems, such as new errors encountered and performance divergence.

Database Replay performs workload capture of external client workload at the database level and has negligible performance overhead. Capturing the production workload eliminates the need to develop simulation workloads or scripts, resulting in significant cost reduction and time savings. By using Database Replay, realistic testing of complex applications that previously took months using load simulation tools can now be completed in days. This enables you to rapidly test changes and adopt new technologies with a higher degree of confidence and at lower risk.

You can use Database Replay to test any significant system changes, including:


See Also:


1.3 Test Data Management

When production data is copied into a testing environment, there is the risk of breaching sensitive information to non-production users, such as application developers or external consultants. In order to perform real-world testing, these non-production users need to access some of the original data, but not all the data, especially when the information is deemed confidential.

Oracle Data Masking helps reduce this risk by replacing sensitive data from your production system with fictitious data so that production data can be shared safely with non-production users during testing. Oracle Data Masking provides end-to-end secure automation for provisioning test databases from production in compliance with regulations.


See Also:


PKY҉%%PK9AOEBPS/part1.htm SQL Performance Analyzer

Part I

SQL Performance Analyzer

SQL Performance Analyzer enables you to assess the impact of system changes on the response time of SQL statements.

Part I contains the following chapters:

PK PK9AOEBPS/preface.htm8 Preface

Preface

This preface contains the following topics:

Audience

This document provides information about how to assure the integrity of database changes using Oracle Real Application Testing. This document is intended for database administrators, application designers, and programmers who are responsible for performing real application testing on Oracle Database.

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 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.

Related Documents

For more information about some of the topics discussed in this document, see the following documents in the Oracle Database Release 11.2 documentation set:

Conventions

The following text conventions are used in this document:

ConventionMeaning
boldfaceBoldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.
italicItalic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.
monospaceMonospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.

PKֈ?PK9AOEBPS/index.htm Index

Index

A  C  D  E  H  I  M  P  R  S  U  V  W 

A

Application Data Model (ADM)
application tables, viewing and editing, 13.1
associating a database to, 13.2, 13.3
creating, 13.1
prerequisites for, 13.1
definition of, 13
discovering sensitive columns, 13.1, 15.6.2, 15.6.2
editing application tables, 13.1
exporting, 13.4
importing, 13.4
manually adding referential relationships, 13.1, 15.6.2
relationship to other DDM components, 13
sensitive columns
automatically discovering, 13.1
changing the type for, 13.1
creating a type for, 13.2
manually adding, 13.1
source database status, 13.5
upgrading, 13.5
verifying source database, 13.5
viewing application tables, 13.1
viewing referential relationships, 13.1
application database administrator, role of in data masking, 15.1.3

C

changing the type for sensitive columns, 13.1
cloning production database in data masking, 15.4
creating
Application Data Model (ADM), 13.1
data masking definition, 15.6
data subset definition, 14.1
masking definition, 15.2
masking formats, 15.5.1
sensitive column type, 13.2

D

Data Discovery and Modeling (DDM), 13
data masking
Add Columns page, 15.6
adding columns to a masking definition, 15.5
advanced options, 15.6.3.1
application database administrator, role of, 15.1.3
Canadian social insurance numbers, 15.5.2.2.5
cloning and masking, 15.7.2
cloning the production database, 15.4, 15.6.4
Create Masking Definition page, 15.6
creating formats, 15.5.1
creating masking definition, 15.2, 15.6
Data Masking Definitions page, 15.6
Define Column Mask page, 15.5.4
defining new formats, 15.5
dependent columns, adding, 15.6.1
description, 15.1.1
deterministic masking, 15.5.4
DM_FMTLIB package, installing, 15.5.2.3
encryption seed, 15.7.1
evaluating performance, 15.7
format entry options, 15.5.3
importing data masking templates, 15.6.5
information security administrator, role of, 15.1.3
ISBN numbers, 15.5.2.2.3
major task steps, 15.4
mask format libraries, description of, 15.2
masking definitions, description of, 15.2
masking dependent columns, 15.6.2
masking format templates, using, 15.5.1.2
masking selected columns as a group, 15.6
minimum privileges, 15.6
North American phone numbers, 15.5.2.2.6
other Oracle security products, 15.1.4
patterns of format definitions, 15.5.2.1
post-processing functions, 15.5.1.1
pre- and post-masking scripts, 15.6.3.3
predefined masking formats, 15.5.2
primary key, 15.2
random number generation options, 15.6.3.2
Script Generation Results page, 15.6
security administrator, 15.3
shuffle format examples, 15.9
social security numbers, 15.5.2.2.2
staging region, 15.3
substitute format, 15.5.4
supported data types, 15.1.6
UPC numbers, 15.5.2.2.4
upgrading, 15.8
user-defined functions, 15.5.1.1
using with LONG columns, 15.10
workflow, 15.3
working around Mask Data step limitation, 15.6.4
data subsetting
Ancestor and Descendant Tables, 14.1
Ancestor Tables Only, 14.1
creating a definition, 14.1
exporting subset templates, 14.3
generating a subset, 14.1
importing subset templates, 14.3
providing rules, 14.1
required privileges, 14.1, 14.4
space estimates, 14.1
specifying Where clause, 14.1
data, hiding with data masking, 15.1.1
Database Replay
about, 1.2
methodology, 8
replay clients
about, 8.3, 11.2.6
calibrating, 11.2.6.1
starting, 11.2.6, 11.2.6.2
replay filter set
about, 11.2.5
reporting, 8.4, 12
compare period reports, 12.3, 12.3.2
usage, 1.2, 8
workflow, 8
workload capture
about, 9
capture directory, 9.2.3
capture files, 8.1
capturing, 8.1, 9.5, 9.7, 9.7.2
exporting data, 9.7.4
managing, 9.6.3
monitoring, 9.6, 9.8
options, 9.2
prerequisites, 9.1
reporting, 12.1
restarting the database, 9.2.1
restrictions, 9.3
stopping, 9.6.2, 9.7.3
workload filters
about, 9.2.2, 11.2.5
defining, 9.7.1
exclusion filters, 9.2.2, 11.2.5
inclusion filters, 9.2.2, 11.2.5
workload preprocessing
about, 8.2, 10
preprocessing, 10.1, 10.2
workload replay
about, 8.3, 11
cancelling, 11.5.9
exporting data, 11.5.10
filters, 11.5.4
monitoring, 11.4, 11.6
options, 11.2.4, 11.5.3
pausing, 11.5.7
replaying, 11.3, 11.5
reporting, 12.2
resuming, 11.5.8
starting, 11.5.6
steps, 11.2
database upgrades
testing, 7
database version
production system, 7.1, 7.2
system running SQL Performance Analyzer, 7.1, 7.2
test system, 7.1, 7.2
DBMS_SPM package
LOAD_PLANS_FROM_SQLSET function, 6.2.6
DBMS_SQLPA package
CREATE_ANALYSIS_TASK function, 3.2
EXECUTE_ANALYSIS_TASK procedure, 4.2, 5.2, 6.2.1, 7.1.4.2, 7.2.1.2
REPORT_ANALYSIS_TASK function, 6.2.1
SET_ANALYSIS_TASK_PARAMETER procedure, 3.2.1
DBMS_SQLTUNE package
CREATE_TUNING_TASK function, 6.2.4
SELECT_SQL_TRACE function, 7.1.3
DBMS_WORKLOAD_CAPTURE package
ADD_FILTER procedure, 9.7.1
DELETE_FILTER procedure, 9.7.1
EXPORT_AWR procedure, 9.7.4
FINISH_CAPTURE procedure, 9.7.3
GET_CAPTURE_INFO procedure, 12.1.2
REPORT function, 12.1.2
START_CAPTURE procedure, 9.7.2
DBMS_WORKLOAD_REPLAY package
ADD_FILTER procedure, 11.5.4.1
CANCEL_REPLAY procedure, 11.5.9
COMPARE_PERIOD_REPORT procedure, 12.3.2.1
COMPARE_SQLSET_REPORT procedure, 12.3.2.2
CREATE_FILTER_SET procedure, 11.5.4.3
DELETE_FILTER procedure, 11.5.4.2
EXPORT_AWR procedure, 11.5.10
GET_DIVERGING_STATEMENT function, 11.6.1
GET_REPLAY_INFO procedure, 12.2.2
INITIALIZE_REPLAY procedure, 11.5.1
PAUSE_REPLAY procedure, 11.5.7
PREPARE_REPLAY procedure, 11.5.3
PROCESS_CAPTURE procedure, 10.2
REMAP_CONNECTION procedure, 11.5.2
REPORT function, 12.2.2
RESUME_REPLAY procedure, 11.5.8
SET_REPLAY_TIMEOUT procedure, 11.5.5
START_REPLAY procedure, 11.5.6
USE_FILTER_SET procedure, 11.5.4.4
deterministic masking, 15.5.4
discovering sensitive columns, 13.1, 13.1, 15.6.2

E

editing application tables, 13.1
exporting
ADM, 13.4
subset templates, data subsetting, 14.3

H

hiding data using data masking, 15.1.1

I

importing
ADM, 13.4
data masking templates, 15.6.5
subset templates, data subsetting, 14.3
information security administrator, role of in data masking, 15.1.3

M

manually adding sensitive columns, 13.1
mapping table
about, 7.1.2
creating, 7.1, 7.1.2
moving, 7.1, 7.1.2
mask format libraries, 15.2
masking definitions, 15.2
credit card numbers, 15.5.2.2.1
masking formats
entry options, 15.5.3
predefined, 15.5.2

P

post-processing functions, data masking, 15.5.1.1
prerequisites for creating an ADM, 13.1
primary key, data masking and, 15.2
privileges
data subsetting, 14.1
minimum for data masking, 15.6

R

Real Application Testing
about, 1
components, 1
referential relationships
manually adding, 13.1, 15.6.2
viewing, 13.1
regulatory compliance using masked data, 15.1.2
Right to Financial Privacy Act of 1978, 15.1.2

S

Sarbanes-Oxley regulatory requirements, 15.1.2
Secure Test Data Management, 13
security
compliance with masked data, 15.1.2
data masking, 15.1.1
list of Oracle products, 15.1.4
mask format libraries, 15.2
masking definitions, 15.2
security administrator, data masking and, 15.3
sensitive columns
changing the type for, 13.1
creating the type for, 13.2
discovering, 13.1, 15.6.2
discovering automatically, 13.1
manually adding, 13.1
performing discovery of, 15.6.2
SQL Performance Analyzer
about, 1.1
comparing performance, 6.2.1, 7.1, 7.2
creating a task, 3, 3.1, 3.2
executing the SQL workload, 4.1, 4.2
executing the SQL workload after a change, 5.1, 5.2
initial environment
establishing, 4
input source, 7.1
making a change, 5
methodology, 2
monitoring, 6.2.7
performance data
collecting post-change version, 5
collecting pre-change version, 4
comparing, 6
remote test execution, 7.1.4, 7.2.1, 7.2.1
reporting, 2.7
setting up the test system, 2.2
SQL Performance Analyzer report
active reports, 6.1.2.4
general information, 6.1.2.1, 6.2.2.1
global statistics, 6.1.2.2
global statistics details, 6.1.2.3
result details, 6.2.2.3
result summary, 6.2.2.2
reviewing, 6.1.2, 6.2.2
SQL tuning set
selecting, 2.3, 3
SQL workload
capturing, 2.1
executing, 2.4, 2.6
transporting, 2.2
system change
making, 5
task
creating, 7.1, 7.2
usage, 1.1
using, 2
workflow, 2
Exadata simulation, 3.1.3
guided, 3.1.4
optimizer statistics, 3.1.2
parameter change, 3.1.1
SQL plan baselines
creating, 6.2.6
SQL statements
regressed, 1.1, 2.8, 6.1.3, 6.2.4, 6.2.5, 7.1, 7.2, 7.3
SQL Trace
about, 7.1.1
enabling, 7.1, 7.1.1
trace level, 7.1.1
SQL trace files
about, 7.1.1
moving, 7.1, 7.1.1
SQL trials
about, 2.3, 2.4
building
post-upgrade version, 7.1, 7.1.4, 7.2
pre-upgrade version, 7.1, 7.1.4.2, 7.2, 7.2.1.2
comparing, 6.1
SQL tuning set
about, 2.1
building, 7.1.3
comparing, 6.2.3
constructing, 7.1
converting, 7.1, 7.1.4.2
staging region, data masking and, 15.3
statuses for Source Database Status column, ADM, 13.5
substitute format, data masking and, 15.5.4
supported data types, data masking, 15.1.6

U

upgrade environment, 7.1, 7.2
upgrading
ADM, 13.5
data masking, 15.8
user-defined functions, data masking and, 15.5.1.1

V

verifying source database, ADM, 13.5
viewing
application tables, 13.1
referential relationships, 13.1

W

Where clause, specifying for data subsetting, 14.1
Workload Analyzer
about, 10.2.1
running, 10.2.1, 10.2.1
PKӖf8&PK9A$OEBPS/img/dbr_comp_period_report.gif2GIF87adڴlrL<>dfDLV,μd䌒t||\Ҽj2V pk} F|t}24jufx4qp C]rޞ-޼A 7D!Wny$w砇.褗n騧ꬷ.n/ī|'/+ G/Wogw/o?wγ C7YzLxf@{<-i^=vp0&a \7 {A7&4 AxCgCA8J.A7Ab g9(lpD E@I@&Ltbx.^8hM (F)V! (!@(GT iE pּ&X?,TAbp4蔟]-V|3 >*;JO6J >rgLv+䑳5M8ئ#A;Wf1r*:aY&iTBX9%,(s)&SN &!Y2P3B$=,W/`-tup1`f9&R2l;)qU4WpE*9n3X A+BԱ{́8ՅbQ( .)e*A] ar$n5l{hY#1>quK^Ncia\뚲d}";uJ.Nuu۫ f/O nj) ,;=㶑L~erJagfI=$7n=WvxwL\|v|E"O2Z |ؗ6)Tv6soz[?N}U'- C7:ÈJ"} jjKהTR$E(Ӗu?in-㺗nۨMkw}8%6*q-&:`G٫,|Jw",i',yWαxl@߫r!PdO^S[JWלG&|1'१{m+TgHq8`Ɏї[)m^2xTzB-{[5a6WWwJxaUc0x|G^3I '\DLoؗT6cYԓ^H3qC5&i4`EIu֋I'vWUlUJho_4W IIe6G!QJėh9x_8uv8ڇM%O9c9\ux]y7%gI?.ԉTCp-<]Hh(CJ8qqC')DX.wC'Hbs*AB2#V!č,ayII8?iC@iW1 30Z@$5  ڡ JJ >(*,ڢ.03&Z6zá8ُ1S0YKT䳫ʤz̕ Gɺ"옪{HHKY{to-5V\=6DlP|\pVވEVynsGy|uH>@x˘h}I Nc]$!M_ y N ?QKQ+})yi1\"9HQ|SZ^]^y1FBx9*cR!:]ӟ,:k=X<Jj2|8:_G*EASz ^ B_F ?$^(,~.2"?65:9>ts0D_FHJLNPR?T_FBoZ\^`0a_fhj_)14- r?t_vxz|~?s oOOpNV*?_+./_/0(}/ȟO̿cv_?O~|/s_/O?}O@  Dp@LXpaD VĘQFz"HO` 0@$"XcC0CysfN=i@EY '̑MT˟SB)5kFWZU'BW>͸Z.=kUmW@;,d:)`L) ob-*cM#;jX"˜1«]IL\էŚ燜c,{ɻCWI;D1+7^==uזMV$w&8qu?$ٲ7ֽ3׫ & JB><`;|. Jp<8 ?[oNQ-%?$9fl=tmGFO3$@o|H4+JmQ|2G//3pH*Ы'_2L [/EؔTR*MK3+24ZS64s L"J2ERAS`B93RN۳NH1UŊ:V-IJ--E5tUmQ^,371et[2?WBѰlO]wuVpOJTUS ڄ 5 bUSVT9u˹ghFM){)Eq7W^ث x[\T7FtR6ǫ8<,gEcwRԕ.p@FŐc[lfm>1c+[5Ѓ0`4}O6es[dҥf9ŃLWgӲV_ ~;Lmu9ߢ>Moٮ 3h,V%c";ÌQreWFy G|>˕{N>gʧ\55G?\N/c7yvekD[Y oo ϭv -ոg|* &Mח}e$J?od?~J--_<`4$%ȿ "|+( v$ 5ԅ%UBd`OІ|a xЇ?bFrXxdGDbD&6щOb8E*VъWbHЈZc8F2ь[ϸF6эo#XD @G>яd 9HBҐDd"H=E##%9IJVҒD2e(E9JR6(ud*UJVҕe,e9KZҖe.uK^җf01KӘDf2Lf6әτf49MjVӚf6Mnvӛg89n;PKGYK72PK9AOEBPS/img/spa_create_trial.gifGIF87aڴ|RĔddpИojΌldԶol䶌lndlnĬ\$VllpttԜtԼd֜Ԝ̜۔캜t̘$$άLbttҜ,$$$ܼrttrLLD<<4ļtޤTTtrtܤtT|nndΌ⬜f4Ƭ4fdּf4f4tԮt4tfļĜtfĜfnntԮ4ft4tf̶dln|~|LNLΌļ̖ll⬼ּ䔖dԚԔԮƬƬ̖dtftl<Ԝ뼮̜df䜚Ԝr꼼tϼʴƮԚt֜trtrt֜ndԺt¬ּ㴎̪Ŭ4ּּlrL<>dfDLV,gtq|\wfwolo .~-tL]nW3<w^7ng?o| 3Ch:ih)`doBM1΀C9k`f ]sf{{^g o&ɷ;o|g^+ai/|;y?:ҒO<މ `=m4#]Oz>.1[Ҹ8a㳟|߬Cyo>!9Z3]R1q'~ c` xvA ?7`5hpg9c>1tHA6ilpa`}XfWxMhvwZ&pvfvye oAuwgxZ_؆`^r8w{xvWofȆ0ч`ua(]doL8'HopHՇQnN{Pxvn]H'Wi_&`X~x{(fwlfl!~7hwy 8wgwgPH8fsx~F%xc c.V6vx~cF?x0sXg~Ũ~hӈc.&x2퇎s/刁5@K5d{HvH5nk_ wz)%7YmrHkX}aiaшi(]=I+YiAyRvgY9WeS/9bJ4\)?)(x^Z0k9VB |?6Ghshs3Fs?hubp Fc֎c?g8g=#_A}悩s栁4? b?@(EgɹЩ@{eQ8'91A'iOhX_T䉔7i9bOh,Iᙕ gU6hQILjdi'ߙ`W5|Yx쩠YӘH5X!/?*虦4ؙ+p)'cHj,sSZ搃ys9hٍw+60Lښht`:Ihd:9Jkrf׉nXv_JDwzJjx\VV8iӅx zwj]y'v'WHxS(X*|u咣Lj7b:]w^dX%bw`}٫uz}8J}lSpiNi[o⊠-J~ZC(Y9c#5؀0 )DjKJ 3gZ^mzS;?lNtZn9j* $-U]_3[iׅ^F3)DžaEVuFB-'kf]הMi:V *aVT;[up7ٲqp))ZVj< vn6 J}{\f;u|;zK`Y˶(o[i2H=,͸ K|F~>Kc˥9hۦh[*똻gu&0 H@7 9xgufis:6mṟAN"XaD }P یǯi+c+]jg*hua>(5z;|{ȼk#ؽfZLhhlʼ1t 6r̪5L"2fP :f|VƾM.|H/ \qÙ;/{R,sKaJ\K^\f|ƍbIpr<Ǭ5@`x,d|~LCwǂX\Ȇ|-FLŃ={Ȓ ݥ೽8 ^Tn,hA  Pԑ}4nT/~>*nj7,Nᥝ"n>x\U ߎNgNhj.JN{&V#-i>Tm? qm}.h#VmxZ bd.fu^? ׊>`Ns慞}PD]MoO>n穝|܁~~ f>߽6۳~c~bw.@#ߴNn~n݄ ^. Nannn@dڊ  n] 0N?N֠>1_,.$= o^:ݎ!@:^~=nAPEM8LH=Y/#o]a޴Tqg./A . }޿-?MՒK޵jm-xoemNO?Gkdz}O܂uoU3U'}t/E3%?[cH,Nl sZž\Ua?_Cwj}3Qi{@@sQPBDQ"&\A"h | 9c $tfJ@@c H@ĤDE֬hTGwQbǍ ЈV,*%XHcn zU 66@'f nR}X` @Xbƍ?Ydʕ-_ƜYfΝ=Zi0vE+.3S0ŭ"B b j2m.!.oS@^&.yę8<+0C׷[ݮO;i4"r2:3&̽ oJ>h;iz+?X" o@)@.C 70D1DG$DOD1I3m!% ##!-HP HO+(JqC'l70rvj@!I"ʓ;hiƳO PYOlˋ@Dl(R(o; .@ zH#>(M=RJcF*Ve@%Xc? :PHǞ3jkI6[X4PH ʅ)1z1Jbc.ϠF^$~ة=Vy`(iW7]j+sK8^r U/ҘPW"%ƦP饔bJ-4P]m*Ti)KS]])Oa2zT0ZV&'_+5:VTXSB蝦5q56m $$ۀ殬[ϔ oj ;@@rh|1'r157딏OP[~&2'J4DrdV5L2K"0-"U/Rr\ces"" 2Đ(8 xΚkb4NpӤ)8]iq|bЁy"Yd:PMFpY@4w^bǙ+Nǩ %Om:,lAC *QvD',/H4z8q^(uR85T1H)S)ŤIx4Q;6uc̘Q:Uj#*m͝Y*RFkĤ, aUB4A{Q|rUM,qVT>;Yʧ!FT6&ۊ\c) yԪ/3;\Px ,n{pT^sP# Ԑ*.궸 bwG@ w -@ ^BMw!B!Z}w^0qM40TS!].܎wLu^w^(a8I݄NRVYyq@:v>n)6`D빺LeѺQ&3.*J%u^%R䂴襓̌'VfFUB&aUI a:RTH4> (V,pkRM*qe=k uy*&jN] l4$ULk6~p1cۭrUܑ6d cG j7lkXnI\݃ K.mqBOdd592,F`bc18z&^Oή $%(V/"AR=|5Q)i?: ~MטkxO}Gb|uѽ} B~#pl '=OZp7uo d\ :<6=toy'<_Mx3[- }?~wOvOz3v<č-\sH =/Ƒ?ps1#6k=iKd(r>=XC L?)1{CM) B$=aO)Qi,J}KYTFqaRQl@ДVH Y!W X AQ%2U[B|F~c6$ݷj;7yKlUlB{lM|?eԩk5uAAb?0^ZW@5k{&10ն1?P6(7u[A)wA`ӚQr**z8M]yQ͍$|DHyPM-uY)!IIC\rZ 'ۃФ&䍿Z=ڛ/5s^mC=ެU&ڊ]=3s?s< +=!ӡ8t_C?콼l_~>,Ir2A29Z+*`Q%y &I`ԥt5 Y8ƠxJ-";⽿%#[MU<"Z* [uߴݰ@U@!.F@%.cyP?Wf5ߊ|^->c+t2-ؙ[:S£ &E:DFrQ$յ$L, M$PݬKE d ] ^eJ.OCiE1;DL0ĀB]%A$85n<]iUE(LV9.`[S$<EjE㸴 X""3*E-z,&X,OHh]A 9 &Dڭf` -Y u'e;Ɓ_0f)cy@‡lf+eB‰T7uȟV)0'p4GULAƅ\({$j{jH3ek)\T$@נ'#:9e<, 갊)<]dA3BTZUEFĂm+4Z̴85>1mҊV3m4qvCviiL7$ʽaT#M"NlsTknpۈ2QY:i@ʺ((яHanA -Pe#ho”i56nI=gBnc Wn WJ\&,BVo I w W&gqŐ r"7#w%grͼTpQjey)'L.~m0srckYb#$^mzN\s//* %?,<Έ N3漼a7Gs>D< 0Lt\u =7 '16jJ]G'Qm'Ma!&G umu FWR !u4U"$URUu0m"ũ615TRYwvZ2euRM7s/ʺT0`5V![0*$W={EVCWc1omWtey k<]?eZeEZ!g|XuN=s2Bɯjk_o'Eb}+c_V!?S(Og~tw~Z^3_`4NX1aE+^T!Ȑ"E @*Wl%̘2gҬi&Μ:]'РB-j(R=02! +HHqQbԎˀL`՚o@Z*a( ʤxw:^B( ye"R^;yak^eT2Lq,du9b\xE=VU(^.Lr\$Ԃ5 m&|#(G0L~Ga_EPfK6G>Ú!y?E닠"-RbhQrM_c~ƗmZ#=h'α%0UG\nw 8Eqwܕ :l&#QCݽdS|b9+Lf90fN^l' Lgb4F}s/)ЁTLֹ,2'`/[jDeIQmr})I̖e2\103~0#,a ? ɅV"t`Z2lP&>1דq` c2IL/za$Xr 5"r %3N^ɊO<KUndnhG$BmYW6UE'nnQ(#h‘HFc3%X+7 o@VFQV0w 4T~5 aNAh m[8tU ?ƎQtg--X*H  ţ[\h,$vǴ%qt%(ro6M8?6~q i/[pjx;cfn򖲚6P ;K wg͘[ݤ9FroEЙy 5?ʇ"̃m#ާ> i8~&Wx96ssXXVQp@#˅F:Ȭ[#WMxa$"}VEt%,) 2 :AI'ͬ:bRmɨ}FNh4;;KF^g+Fٖv H 1(?$(-<,l)>V 7|/Ey_nOm}rn$<x_7ç5BC꘿;SuDW=pS}oέ;"aˏ]5-&Y]Dh4edIs_P5D[gh F8uE`Ɖ\]0Gۣa`jPG|HEi[ :^h^ afܘ \Q[/F.`K䘋xeUQmH!~&um1gP pdq3hYr#Mg^eD=h}ƍ9fM[h<^ Kq`X(I&N>L(]v"^`hE^V愈iF)A*'sDXGu)_!^ba]'aޢ_**MrަgJ_f] XGfNN 2Dߕ&"}کMԩ#<&BY(I})E+)'_Fi鶂r*m_~ߩG|Ng*^ٴhChAȩw*="NGZW>,Kk)Rꩊi:\`l"'r^,_l=JW6.Iڮ.l}6z  )!p\!!)P YV7o oHLU6=RozMƔTOyLD MMv ? $ZF 8C XδtRP]x0Ɉ6p#O0I.Y]Oh%yKO!KxTHTC ^1 ъF/^ "Q 2,3q3$1Kpl3Г|LuM\L91LeS"7p£Gα oK&KTf%`rzzL;1`R i4rO07}4#-C%~$*0B*dmm1[(&S)'k(ï(&s!%=k3(/ )7e8LA 2V< 2"C"p#sTyW~XRIs݆b7ّtLʙACK64wBPC7HT_dT4PH0pkV1ѷqh=3qQQ?/HZ]e_Fjh_A_Ҧ⟏n5R?nrcrlƫ35e"mZ_&@`&fUg&e5]6Zu[ZTZqoUVX p e  O82ZtW(Hn4;$Q/ =?;6g?z%N>5>Jb";B?fuZXu5_uI@@"XO"Lp@V 8 JDp  B!A@,4J>4J7i&PpF@Є(OQ@(yiN;+^QfLbҔ+}IQ K)5KcԒ'rX=)c EfcǏ!C`˗1gּsgϟA=tiӧQVukׯaǖ=vm"d`B-vV7:82HZAb!hh ecW>1O( $|Lݑ3P]F$б춃2ڠS;Ǽc<vo/,Eo"\.>--s ʰ_q cez'r)X'q >/R&O;w>>!QUPRDE98?y|@-f5^> {;eN0E$. #X7ᬘEZF/vQeF VHABt#!9*E2IӰQZ C,@G;Fc'Q?&DRZ$[Y5K:&tL#gK]eBИJanD XGe43=_Nմ5`Bsk9FMpb̌8i$d4e9Lif=YmS .@Nt& . @CQI (^Q*UZu}FT؅G ebFc%Qֳ'j7O@m꣱A C+5ruHUJg9;ZfU-_% VyA@8yʀ=x[T;:V ugk&2e(~QjC]Uˁv0j0,G ks]ե.*۪]=n&a֖!9p 5R!OLr`REM{[[ k%y*RQzF>* (3EKGX9t&8u ҂^H/2aߌ4A:}#7R gf͙a5lbD%aJ+&.e+;E^JaZն}=ð̩leɌup`ZrBQa. ]7y#tz3$ӭj;sy=nb`qlfіv*mo`yzc0xN4~ (3mnp`5eN׹/y&1UF7<:$י!:#Ԭ@wIg4> $l@ x'3qϝ$4 ꬻCkPY厵̋¾O`oxo(qNѢ֪,8Ѝ2J#}2xA!8 L;_`hj{ݑ|#>}8 f\{?~_~S7CZL /'pif(fiKIsF a 0e.@0H,@8pɟ.,p!:jj& *gH,(`vTԢ(\7T-,#a oOk`6 F-bL hGpTbLbp u +0oR4B yFThzN m 11 Qap#qcw/B1. (//H4lbt76=,OJq=^-"$N' O!G*'D^  1B#dO.( F=CJdj"sg=>//uVGj8VMJCV#RWRCfAC 2!d0OGj1! c gLFC p"D$'C6D9B$rKdy'}2aDO<2h9@xd^N+-|(i i$i6[~V=r"DTdXt,M4(a*f(I,)FL$-:+͈0 0g#(p^b}Qh}pFZM`7 Nޅ-&_6^[:S=,դ4w#y4(#Etư*5e%22q%]Vvp1@ޅ21[Ds0w13:S61(f̲) :))$3fj0'drdphF<$=d\!>#!'CA4f E9DQxlGRyvxC{wDFx0&BmcLL30Z1\YRR'81r M)K胎N!ȕHH)YEi֑7je~zhUt>h®n3.mΔ⤉;YO>AgJcܓgvolzhdh+9ZѳA))>"[:'Fo-lsW9w),9Ywz<No7j1f n6PaT~+4=(q7GORkTNGGeJFCCF4JKU4wfeޱ=6^G4;Yn]zzzoծ  62BMX5LD4Ä(5MQ*đPu )PO4>{ߔP3!B#oYOCa{Y{RuvHW {HO#}ue^'i )*oܭ;yG<0Ep/|im`\|U˅ȻOM<ɜ<ίY߼a<9\< =3\}%-#}5]*=]3}E]:}lqxzp2=G}q%Dr`s^]ig zxׁ} f]Eک=5=Hiۻ]km02hv)ݳU|w1s2ۧ}; ^¦}G5>5"3*~6 ~%g`2C{dˆMT=xS9#0Y7c7W?ݚ}^{]3!B`%<3OC7i^U᱾Դþ5"~%>HLè0 U)vmg>qu=׉葾  ?B>K 9?ۭ]}>>3D^o-#}E/%LS_v_3j7aua qA2_Ӛ n `#HP #'(J!Dذ`T0`]V`&Qf(q@ȑN$GvP1B:U@ɆNxD Ϋ$1F JV&Ug%*hJ8pʂ)_ ތhǟ3| 9D 9͜;{ :ѤK>:u^9Z{=u/v N;D#>u8Hq3z$]ίNd; >9Aץ/׌=|w:ͣWO_~Yw_fqwM`v|i7a@zjf͵ס 0㉇rF|^xrx~b߆dQ^$YM*-^KA)" $HTŀNMRXc%i%O,B!RuCZ:P1NqR 'KyVePCI.4TWZAl1j(*If$cehvքѥk:ГDy ƥC (Yk]c lȋ/ CLl9" mn}Gތ(fx"rRr*bRojc8゘āAٷ #u[g0&ׯ'޸#.nfG2#NyFvVPM0JѕVf$jW)mCjNC{A @0UY IM(O'I`4>Q5r) t,=iM5P۝4jc20خx?9fblN5F˛o&ڒr}~- |zftlN~-wn;lL?0:0Am˞›Q!9yf.#dOOJ 8Nb;sTSݐO*~Z0RNh8Q P%0(<Ė'S5 H UpP%"ZPjU؇Cťo<3 ʵfYLm6Q 4^grO#9dCVEapG6ump2] #&!V0S3dlK`ƈJ&0dvMVH *ݏh`dyBSle&6JRQd5R 0B[-p:5M_(2ggFZG7?އ>P4tֹ .v;˃!Etg BHi3wAZ^OGQp(Q001; Bc?3Q,n/(RE*)ip]( 0BC%0E(Y@$Uɨ,Qd*YʬW6$O-\U*55\-[S [EԴ:-m+bRx­`Ԟ⪚g?\4GM>%~{T6n6c̉BLm9*9}[tĵ(m88qWF[v5gv׳ݝF^uh2]w7Nr/q>#\i7},k T&SJJ .-.C %NriV#Axi  `8oڰV0'o3[OKS(vCj,c_DBqP, ZmdQlWd.O;#".fns8˙sd@ ?Ac(FG%hmfJG}73M2?G7ޗJ7YI~GSJ}AL4JfBD2H6'QX)hfT*RT4TUWZ38@e$\(X396U%lEUV%X(Zs}!XV[8VgŀW~?VKxMm"ȈHfFdqQB Vd&vrk2C}cqb;d'bmBataMkXwBB?yF6o*HkO؈B&~fufdxqxnWihvh緌>&涉j;ȍhm6(Xp^Gȏhj؏i gy n I pyn i>)#Ɍ'ZxUo$Yo5iI3F9D 3L sJ'e4ySI(HlT <^Iu\ՕrUgUo),98n1wQI1xMq}thUwXbvx.wh'[7AzQqIU)#1Vv%;uY%zI$dȗOњcatN%C@w5Җp)Ér9(ר3|v{Q{7XWB+u{i)ȗ4rb'Kx5{*{(ٜ{5)hr)ω'fUIwiIA7{$D%%RbI!)'i:#3i~qi} zJ(zh38kK#sG(56U3(}B6X*,JUC7\㊂EyAf3$5,JU>4dԁāt5I 8CWAcJfםԤ_?C%(C#|Ł{h h8襣JTg t^JXX饱5VYA%4!ʄ$tTKTLHI4suiIEh5ChiH:ĊD*IGU|J6P $z*lE5*)Vx(fxdiD^XGYm:s?AW}XwVu(ʮwXԗWeBw T')le|VC$YK5]xiJLQ*ت# 3;y`+*[&hd-@Vcc9bcW9sbLdWmNq8li~'a$$`mrnnVW&'luw>e}蛞ne|a 瘞^e|.ny몾V&;'AQn^꓎>k^'47๥"9 @]1Y.3+޴M$$>k<wdS«Q^ JC/,oE.NRP.r^j|h3 c4^0A??+ɡ6؂@}  YMdX؂l[2a {xR+?m7ʒ#:H/ 0^KK5`@~JQ!?3 63 %?  /A?0,@{_).IK<bbJU)*nYWy0]rOJYmwڷVЃ"VsU[mtQj+%B ݋y2#"6S8ԎVYXTK?(PXGJ7B=8>ZB=ZZi> 7޻5a;Uٖ[3l{نZ[b>r?I yH{ 72[~:c?,@v*E,tP?'y9\ӟܑJmMY[ݼ\,g]]:L1y]m @msڿz^"A0;^\]^]eԲ% _í_u____ `~`e1T```&48#C%TK^av>#2O,"l" -^RbM9`=401B<EbaĤ+32EJ0fL!FXTtc2 ]E9cH1a1I}VXPZdű@X+-~db2.ΰ2 I3$DccJ.2:`(INtFD q,pŢd[*ITdP3R(>4ʋ`n :#fФc4(U 5.RPQМZM:UҭffHcc( Zдf=)ijC:nS'!UoVqX(e6RC61l SeұKFka5)=e>F1 $LCfhJh 3TEI?xf0FkƸnXFwRtqԛmkqjq]EjBII$$ꫮ[k`K˚6UV^r]kEMgikazsa\"ͲD>!pb-jʼn TBS[-u[.SOו®(+ ͤrH7+}cb"^`HCoDMtSIt:__,SHVuZ_Xu\wTu^[u`]ub_vdb_v؛abŞKXytZXd镗_c5[(We*Jf:^~*z h@ש"֫^+\z(Yj`6^۫\ΞaPFl."ZG)4m5ɉ!X.]c,Ţ86l0j+eaݓ?! e 3pW%'tI)}7}fj8@XY'' ٪`~p%X<,q2rV5ˡil 74`FMU@y@e|@3f; VYUMrh-:S@^lbsttޅ琹y+4N@ᗣHӒE #裓sI&VId)_[1" >܂2( ;>1N>闵x̿ ,cҽ&q ͷ`brj ox!0\:i0"D" `jDiWZ'NwsZ70ZPKֲe,” obhH#V,bu1/Vt X.Ɉ_TØ,.Q4caE5!T18jY\F$x10EB2G*V46/=N{!bJiuw r%Hf4&8dY ZB&e}JXOOw,sGRO0yf΅2fXJ8NQfrG<倒L |ӭG418۹Ne"'=A{s*h΅Ŭ,B:&)VNٙτu, Sry_x1_rtVfL0BcYͧ]eEA3Qv3C cTz3zMHpE Y`9$k'TXjֳgt)i<9CU ZUb̻~|iNקϣsB#{8m&☴+.lyUl0Ԯ%VViXЖ.d%6W._TU3UWbv[B:B7ҝ.ukb7.w W*j-yk7]/{"7/}7/[70;^"8 ^080I c80 \` A:܁$^1as`82=ba$6MAAa tL>aC79tÍleZ2 _9#3]SX%L(8#Er:۹ Q0:` tQtSa@0 B܁t%ч$3AXhpp>YE5YSv== :ـ&]=5hB鋀Gc;tϼg:zpĚ3g^!s> ܬȫHëL_Ϥ&jx+;Ufv D#ڪ6+^n_ۀ@oST>[=oɽHZ6qNi$uíCNgߙ#71@euy VyHwb;LVrǃ دO柋[WS~'/+^SzaܕTlřR`9|2Eg 3яR `I_ԙ*X fZY-`N4 U x؟=`Wv"cR15_XVL@)`Lӱn raGvbEp^(UJ]Q_|LS=@aib RD^\]aiӹr`"rJ^{6!_u$!N'r(b)' N*)b, *"|M@b..+b/bѢ. b1&/NXw)su2:c3:241Z5j2J;Ip#lxy|#5M06c:6F8 A # `@lPY9#?S<=>c9BdR:RdE;;@Gc#<@hdMpGHdIdL.JdH=dDLLEO~%[JDd ($ $Q΄Q"K*%S6SBT&R^%T$9$PXBFWz |$U@#V>Z&e[SS%[֥]~e_$Yf`$ZvD^R^%^ebb6bb @ @ ebfr_B`fiRYfЈ HS$IL\ҥ[B&l~ĉtlem $d\jSF^>8€ ` Ā x,@tfizOfT$@r d=JA ]yڈf{'=|6KˀB~{cNf Ad@tJTh\hn'uw:H DE"y9{(]?v@hh!is,JTq&'6(7 H(Zh@h,CG\i~(vY소*@i-hA8D<)JDzFGM`@{ h '_F8FDjJꨥVi"s$YNF|jNj^ j @G(D@șvz(AP *D lԩbn+(* jCHmsHzĈ`F\K*ZI琘ːd@oK+hޫh)*@ tD ЀrI jfVhTA@\lnƄh džbi+tIJi *!v څюFЎ+k霫ADZN\h(= gf@גBYn-ڪ-7jdAhF XhxX ޺@Kn8i-ҎZ Ҷ2JК.օ.~5-B&@tRjA B@8Ad@аl/o᩷0@8 0BW -'@kƦ$|1W cIq|ִ {K1#\&p~-4F8r=*joS $,%P %cj2'g*{)֞r'wĕAŮ@􀛪2/n(qв @.ik[a@H\P1 WE6Q<r[3}- 8QE;ss7˳6NZ`넆wxRx3$Az%h)Jk4i5AYtxn>7iSZ9Su[890l@4㶒DmM'W8s=wRty785i4{ ϷҲwЋlX\soUy35G~̀+:[!J~4g15Y3py\7wE4s4w/)z؅z:N뺣ڮ :{+;g'K5[Fk{U{vf;uN;{ۻ/ @ |#|+3|;C|KS|[c|k|{ǃgȓ|ɛɣ|ʫʳ|˻||||} }#=;PK+4PPK9A!OEBPS/img/spa_optimizer_stats.gif8GIF87a|\$VltԜt֜ttldԚttrtttּtrrlΜ$$ʔԜLbҜ,$$$LLD<<4rtrtԬޤTTtrܼtrrtT~TzƬtt4f4䜎t伎ԮԮԮf4Ĝttffļtf44fft4fƬ䜮tfļttԜ2d캜424dttrrtڴtԼļĜd̼Ƭtdfdf4֜tndԺtt4t,H*\ȰÇ#JHŋ3jȱǏ Iɓ(S\ɲ˗0cʜI͛8sɳϟ)JѣH*]ʴӕBI©Cd֮>T$dVg^UڧpʝKѨZuzTd}{2(l˘3{x:q/8ВSfZװcnHձ{ⱟ9h֡:d#/+_F}D-r+#Wu,-RTsyp\M;.;z|}W{ׁ5'zh|~[b"GY^yTšaa!uh(_$nMEdj)g(m ez'9GZ4 T~%iL6 A)e\ve+XhiftFYUAǣIQךr,7UcOIF塈&Ԋj)h Y&݁GY$W36b{Vo6:ҩ*TWn*I!Y m*''Қ}vT♥]qfK^G"]BUPUN[Q.{JZbi^ZeeiF矶*^#٠ 3J\)tT]i9֨pWp[1U%iU^['љ;[)3x1Wk*aLe:|Uy-*-m0\wM+d*lglm)t]vrE߀.n'7G.Wng7ߠ.On騻Tzꬷ.ްnf׎{0o<%[|Wg=Qo8uN|/Io߯q0v<Q:0t | Zm˖ zk Z%< K-| Om컡A=Q!E<a%:M|q8*BъXO E/aٱK*B)?(qcҚ.~+KȈw1mG2Y52(!}'D#$%ㄑj`gXNg8b4"u,iDnd <1Sv$XvJcSE.WF1$ 2,22.iE) ]~cJq`dr6swsc0m$26uGݰkk5iyNAZ@Ti]<ɗRN\Q9s#ҟX:/t,ԣьDAN%4"KrS ;HISeCz,R% UHty(Cuu\͈UTv+S TjX(YRR,f#6 hGKҚMjW˹z6}c+[.ҶX-nJu"prMMr:ЍtKZͮv]"z .O›(Œ zeޗ76y/ _~7zL˥ڄ/(:# |`W/y0#X%F ? Df MDx%'.X'#qJb*IN쁁@$3 \ QCY2cxApd`&|TE 0d 8{s18@5CT[& cc sa&ɞ;@`sE)0:bs i"yvp :8uj/V2 8h1I2Ldgn0\RD[Fvl m:و3hl‹HXwz^CeܯaL< Ag@nkyßf/oOg;ۂFuLuãH)Sb6!d' A!kc[0!f +!9P.^Kջsypen9]l*}9KHOҗ.<<.R:^>=~f?Үv{;\#OO;;EBa #16{GOқOWֻ/N$OySAOO;gmRwڛ{OO&Go叿OIOzw8X|vW{Wuqc#1fAn/fm6X(08$X& }yC8j`G6lց va?"!``"xB8DX.}tp6jǃ8ho:N؁F\؅,)5c:6>m#gSHqeipbM |Fib6`#^8&Q}w}j%AmmT(ulmȆӶohN6w@}g%~H3qh'ApVGֆӶ638m(?j1jWH7y@yWpH׆ia&loo(NjdB8X[Xָ~ȍKaж&jdR茓a(o FoiF̨ ihX7רKru1j.e&kHf f yr8m3yyof$BI~7-X,0q '@ 4dVy%є,'8hFiH)y8rPGц3j|ي,"Jywyn(zٗ斕7w3ɘj۷ٖn:P ٚ9Yyٛ0!ws-YyBdG;i=Ys =ڹӝ?.Y椥+(j` Dp*k=hMv e$qfk\*n X%릳Z?Ep\P[+[`{o0)vv-midjRct Y[I Q)((Q{ xr6mp&ܓȪø`,P=\.hؒxcjIk&PK\m+a[3[ p?u\IB l@i[+m80XfŶqjvO,{'cG&TfXlFk(j`jl[YŬ}i3<7|ʍ,wg(bf{v Xʦ.̌I(Ƙɛ\+ʖecFniZfi֔gwC,o UZ;y|6(S=⬺&A̚|j mu >fcyqG+ЮdmdVl0Sv'n{Peg[B D'@B] 8_(R8?A=EMqr> ,BM @ ՙec= fm?Tq@z !K 25pQLAhGd]&kO$؎]7s3ٔ6}kKv-bcc۱# Ia+۲/4kjf@D[W;#Garuk7|vtik;mvW]yܵS^>tKVd݉,iH ˵5qfFѭ)Q[Uv^Wx`m:ŧ{>!'Q˻]=qbe\,Yčn >9el Z=xo Ua @yKCa P p Ta 0gb1ݭr ߵ__251\~U#Pa0S @"T!#M׏8 FӏH/!DD2k?2(?aP Φ u ozHFp"0E">!C%RQF9~TcC%GV< RI)[Z\Q0$3RPEr+@:n5UMxj=RdA]ÈfȆ`%;!OҮMYlHj{9/MtV.A%hN.u PYr{ye~E*2ꚟ>Z]1-guŌvM+Iʈ@>]DKkW $ʽoYg"7_m[s B(ϲ,1Kt#I@hB)6c?&o?C\ #P9N4o sbQi9DEHٲG.I%4))cd+>0ֈB9lnrH0"g$3&8 $8͊+3 K20P S _2TLGk԰HuKDSĎ񧠘D5UUt]J+ǻRs(S;TL1ո^-t_m,} @dLٽYo#6d3] {]8Jps؄uWQ#$W%ne\ݥ)[2׌vWzR/͔>u΋٤)Qf|pD8TLsĀc[ӄ| u-lE"#OW+vC].țŨ1RldM}k4㭍w'D!}?޴뛟K8nj^Zh|! 0z/6{IºЀDT@6%0D@ VЂt 5ALa@4a UBp(ta e8C(0auC=b8DGDbX#.щOE*Vъ6E.~0]c/ьgDtʘF6эY87ƑwcG>1{c 9D@Ґa!HFPd$1HIVҒ%5ɂeJRu4e*UTҕ$H+a9KS*rx邌wg]BD/[2Xh9%L0IqE #29Mz<4/T @)\HK&vn?A[jسEȂ" i"l1':ή3!z 9gp6(,gY զ2gvtD\O:t,A,Zҁ%H@)x:(<3zH0Rb&oʹl% .OeԳ%g&Mj*4&zγU!TIkNiε~96 AW}bsMU:1fa7EOuSRPYփի+ q@v.Bc#VxF-I-N^ukhخuKM1eFT@Nݭ\7*D+RXݲP69+-30[YrEnAd/he |`j\p%, WdE5awqEN9c },“>/؆"I^s\Aast=n`  B}$|-oON`|<';'_ *0w0q'+S%Hگ>_}o;;:~~Ŏ)@[?b۽3TSpc =c㼗>0Al= ?p763A:dA;>܏dzc>: 9 A s„;8q= 2<"3 X29'\> C @  8C($6":9 -Dp;< A{C8Kl 34H$&S37C)B+DYp$NE,;fCBc:%L=3=i9<B (53< 0 `U<ӈ8#X9IGd C9GD[=OD!D6Ӣp,sLG62J@4Y5Z#Fs4HJ4_M`- a}O c-5S5gLf% km#ij6PTJf{6kG ;fD7v58XqWx5WUVj5\W%l V@1P̈"7EUX17t*PʀρUH`lVM?,75%Y9:c8{jeUR>mĿļj,:xċD=8ʃĊ+6(8+;9P$ڈZ ùӋkS{ps?>@H\̳5}77ȵ8"~QaSdضmG,H%NZu_g$]D{ڗ;Y&G@HCLlU z>JX@44ɝdt޶ xW, S@JdJe%"HFʮJvMI [$afL`~ UEdVeeQEMcvf$hMjMhf(lInmfVpN2l&R2stVObvޤwKB2xxKgX%h~3X*&H ~y4 DVhqg΁@1茘I$zX,p# Ȁ x_EniE~i)gxh&,x$ H #AY:ZlD9=$d3]ޡ&j%&h'x(H HȀ߻}k^3K\f@G<@,vEv>$H% j٥A!db}E`d>6i ЀM94D@BFje-.$i~kPjnT,`5>^kAV"lpjXmJTL, Vb nf 퓮r-^*.mc7s /j-r. jUe=9s(z5/ik5lJt3*m<7n~m>ݞ2urN1V"oa!Kj]"" o 6cPp4fudp&!pl$vCpq'wz6s$pWwWow~wbxvztסe}w~\yGb椈P:Px_2MBx)gפx\#$: #$玒Γ7۷V.JokVF=!2y':x븏 9B7~Õ xzzWocFIι Z`z{؋;zR?`o@f|D||!:o%|:aȥFXET}ln{y#>+;7^|k}nR@~P~玳wz<}Dbt~}ˏ||Eo`l|D&Z/I~{rkg!O,h „ 2l!Ĉh"F$B ;: pdB#CH4[)L,x%'ҌJ2hauRU*Zru ůb d 3H;(^Cws%͐B)юmB2Jj3Rl-lQmD<Ӯ` ֱ\7˜.+ǻn; =qg(*(]ʰ1ظ]y]P>`Wj1iG GYCExvbTYGP`{ M!MhV"UR`11s"hA 9$Ey$I*$M:$Q(UZy%/ҸeWrPj%\tU]a%m&D^9'uy'y3'}9 :(MWŕBrB@pDXCy BSQjLe@iriz@(["+Fr!"$!$. Hr(",JH*F(ݢ8G"2(JȻ2ku@z"C$Q- tG"l@Тwd1 .2C*%}vǵ(&2o2˛NlA&,P ~MW4Yg7ֻ򜯹+uМ+srԎJR?q !d20ć1 LLc=еV=Q[s׍χЬ9?ڂAN"p%ӑ9S3ُJ,ɲ_\).ґ3'9,l<_mO?sMK=I~X\?nZ1 ~!zh> 1S:Ū*2 }.:1d^]D1lK&lη:x+CU'aFR:!x F$%*L|"(RlbȤ dZdad'kθ4h+cԸ7 jЅxƌюx#HAvQ)cG1rtcK&d m`B. & ȁp!(KiJTrye(0R2d4٭V l.Iy L@ /ic"Sl3ILP3d3M` J'AJYV xg6myuֱ;ȌГ>ɩ5s^HM t4"QH?|j G S QRuJZT"5et BG*M8˴1@=C F)9 C$4 F'E9#!AJTDEGWJ D`Khx 4+VT3;POz4 ,)Y$utҜ į,Kx60aC X.@VḚ*P = @ׂ,'1/GS [BiQZ$"Zb;ºUH6`=jXSف̠ qlYd)At (V'="v~7:v$]ovKD`Ajt rCu@䅽%#mqkZe `* 1n.ʑԄ$/%nO:]!kv' s8ycc<Wt |dȜrviLك<`pd x@ZB@^(5pA|8%I:<"09 hpB@ !D33\8!A @Uww4^@-++dh2z4#"yԘt:G -' H Pb6 0f@@ >m3Y45N6 ;㹸QmAiM&Tb PdȸmsK .Ȼ}DxO`Z'< IB R@tk :S`s p-HGCqjW z&PۑX7:鵸mn<֛궥_c4=X}3GHHX@y8_Gѯp^u׊: N~JUޣ|K=!dn8y踯$$RbCX%&m"!C(XX")ƈ)I+Ⓚ-6+J,/ T/0Q1#2&2.#363>#4F4N#5V5^#6f6n#7v7Vc@;PK|h888PK9A OEBPS/img/spa_upgrade_9i_101.gifNGIF87a|\$VltԜt֜ttldԚttrtttּtrlΜ$$ʔԜrLbҜ,$$$LLD<<4rtrޤTTԺtܼtrtrrtT~TzƬtt䜎tԮԮ4f4伎Ԯf4Ĝttff4Ĝtf44fftf4fƬtԜtt2d캜t424dtrrtڴtԼļƬtĜԜdtdfdf4lrL<>dfDLV,μd䌒t||\ҼOߒ?hm ZU 7 4(Pt< W0T gHC8̡Kn$<q!E<O%:M|/)ZсU-z]1}e<5wm|e91tu=c} A2R<"E:r)|$QIZ5&Mzr^(Q8RRL%#Q)]-SJd鰰,)R%g6쒇qgLDE5Іfcyh@R^H#B󒦲 5b e\'K,fb.eeM:Ǘ=ZiYaErp.Z F @GVPH\}O:nC1WCFUYANUȪo *5OZTͼ;T?eBh})L%i VB -UdK ggT`KtDZ^45X?Aš h 5VU>U$Ǯ n"< ,oArһJ(Kޔbh_|KuyӋ/x,=0'% [ΰ7{ GL(Nq7H 3y1;?&6f_!cx;~ԑ|%/*! 2!iI`Y:q2I"f8 +_IQ"j=)\;(WrJ.;s3;-@I쁁`$3 HO!BF | " KKUnbCZыs6@I{ʝv=fYq.7E8`e^k7vࠤ9켒5;;,`8Q^iwc/psN}#/<ʲ@.5 uHY: r~G\^Ix=ogӥ]isûw@x}nA ~?U;񐏼'OV+; #Cѓގ?Sz7j|=(ً"s/Lc7 4OO;ЏO[ & Olc/ 4AOO>v{'/Gx ؀8Xxhw~G<(*,؂.+؁5 "Xs0؃>@B284hm9x@<8NPRxE(Iw:X`F&>h#oj-A.х_M8pr80X1#N_o_(e6?|8~o`t؈vx$InuHeXnEjHx8G[&$W]Gv"jng GkSVea$Q،'7vBo'^X?k\rFqDg؆#W8X(&wՆal e(kqre34Ѝ-nFh%}ܗ FXs!XspsFא6{m&i8ȑi9h7iFגp3nFEI00X̨^OȑGi4o>7o]VkVk,钾q3ɆtV\y`Y)8=!xzsZqf؋i DO2I,avuy/(}?tA)fK4ѕٛy-# |!7ǖ>ٜyb))Y~: ٛ<9yoI;i9s9;Р9Yyٟ:ZJ1!xg< dK4zDzCCڡ= C":5T&:C(HĠ,I++2D.::<ڣ>*yG@YC*,4jEVI ,GZKQOH7:QMU(MJWK[ASjyv7]Jg:%fuAQzi*%kZnWLcrg#wjhxuoF <Egǘn!t{:cghl/Pj'yttyx0RܴIg .mjIZ! VeY YrpZ+gwȑ#rZh4m *gtz㭡 *rtn**ƭ֬eHIْ:iR7vYׯc_zp*kIk;k+I!!y#H){Y+H/[- 1kH5]B:<۳>x|ZVB;H3[tHkAJԴNEDwT@V{\4ZFY۵` F\;g$f?hdTlEkruJt{듷zFn۷Rķd;ZO30q9+K+d3˸,븶TV!*AtMSMK:AKcKJuDYNQL(a0\50 rMb04[KC YeZ%S|qP] 5ӻW,J$bRxu3ۻ5%WKk9"4 b$\%S*&$*r;9EKB+!24XS3B8R"R}e KWuV;SOA&18<·24Kr1óCS, .,0Y)\ ,L4S-{21\VNVU%I K fs" ;rB*)!ۼNR,EeBĒOLVaP[$.]Qy*O~Zwu0L{)ʡ̺1&lvʢ˲<˴\˶|˸鳸lʿG̗H̨AǕ̜LlϚeAMrƍ(_Z`!:۹pFkZIm|򌛓bfemJ,c o@'014 s|iυ4ndž+mM{4ajg-ΓZp&JѢi(};Aku>E]2pIWf/}Nhk n D^ڀ[iR: exaX@@,m ,mju)a{lL<0%ю4a#q:nXF- rhmkhe,p vM-yf f%E RVeB'AԥILm< Ԟs}}Vnqzvns3e,nzpfq9}c'Z<lWNlmh.'AٽnDٺAt=iogýT \AoX90kYvYVnZ63~huνe7>vϓ-U$ai$~c+~hNl~Uvum7yex rwgdk mxlPʭ/^7T3]b>7@^c^&g}-#'ai`^Uu:t肮gpqZ=i5mHtQ^?-ӝEoiٽM&쪎~Zm΍)lEF-h`'v ƽYWu^vo-q,i.٠tmmvTɦ=\^nڗ.i _in Ws98^^Lc #pL'G@+G\|3Ѱh-_ƜYfΝ=,߃;n,T b3N\CQ%*8@8}fҶ!X7ʠ?]tE%}ЈsfyPO'' &_w#y ۞0@:$bl%2H.GLa%TLO*GN*I>JAn =i@gF3FRPT1H!$H#s,3I'2͐$AΓ2K-RK*3L1$/"%M5dM7߄3N9N;3O=O?4PA%PC[}C&y7>ݔ9`eƀ ȈY! n۲b!{!绵4@"񪭞;뀷h9/0Nmг1ܠ 8ZS }ȗd#`kǩ,U3+>ctqK ARmNVVMUΝɵœVedj¿^eql@VcoyjֱkdYrֳZpIkjɛi6OŸF?W@(".l.颮J>@"ڱ  TDA0QTɰcyAUd ̮" 4$$]%T7&|^>BZBQq[x[.|+, O[\p[HØ>(H`FH3>> DD(8DHD E F4x N^؅7 ]p0?(:l@8L W X4D>̌DEx ZԊ[ _ ;E c8x`,M/ [B]_„STT,PVŲp(Ǯss,t$ xsF] ĐXy hܔ>HCj6DC+DmTDE`]D@CWpAe]tHd̈ FHAlpPt|<DǍH+ɉq DȚȄPƝ\ƇTD8HIC $ʏ? ĠTIJJ cу Q2Hj[],En,UEʕƳXTĞ D@˾tLLCGH|z$ ̾JKL(M tGZMLؔ|bMpM ,Ll|E\\G 6DSLn\Hs|H@M9O> $L ]>DOPQQRƔFOS]OKQ:m UT%̸$M5(V0}atU=Mp`TLdtOSqVr=GiUHF`><[X6$ECKoTT lJ0pUŒTʯtLmEȅ2Ie,I Y o%ў٘R}Iھ}ٰ܎RҠZϖL57Ή,MX1cVX([E=uj[PA۹dۼ1۾%5ĭUQ/mʵ\4 LL}/e\]V.]}1 {U] m%ު`]Eq]1L٥݄Xv8me-ݰs^u5tMuP%0u>_0sVf5l_33%53[}_ U_ aE]am-jH}6*5Rc5Kb}>b]bNmb#^b` B` 6 o6cb4Va55n#n6>9c5:Vb;c76c'c;cpbqΫ" !,;:$6i&݊؝譊n0>f@UfeUc&W~eW^a@fYeYVXfV^nB6C#r~Zd!w!,d\RmU]es[Vg_&gu^Zw>g_ 8$f#z'ɩA`Z؋%۫7,;AܭL qFe?Nc:686afa9.h7uV>fa}9\dVV< dBԃ(-`mn0hԅhSn^gYNtevvgzNN(Fb^7#Ak'a[dke5e!NjXqhyjiYVeWꋾnj^a)8r|N)f73jfΝ]Fhd&irhFa:c4mjuil!`cf+ҫ-k=nHnS%$lJfk>fp'vo5g00oVPp.fokSuy,ݏ%-K׎E{7W|T9%|HT'QOXz%R/uP8PєuA']wѪwvyI;XPU};C")XpP *舏r‰"4*njCZTOB;%60$C 1L}n4ȍ#1jdHMp鈨i8%JAK8Ɠ)?FT1]B UJ5gɼz/.l0zJhV]} [ 5@L3_K+G#,TgʁQtYa'.bK/eW^]Y |;BPuQ W PevI[冑"fRYdHRo5!}SLU>w!nlO݊v]mvG1vs-A0Ǭ üf_:Lw"`¿%:.d7Ds}3=`x8ߋfa \P$Ѕ.'_$?6a GL@X!ML(@`V؟qA<| JF ~@~+  rLzu ~`^`̜`Z I"~Ap`L`   Bl `|^eᛰatA, a!@v!Đ  (AFDz ! `&Ҡ&$@(,bB, % l*b ~!-rҢ!`E @&!à  )2 ` R !a450pv#!! B `J:|c8cab}b^'!*b"+@0N~(| +"d@Vb*#3@4CVD@!! 0CcB<". WP @5:&d;6dP0 d:r# z8: Fc L#8 UdXWJ2"]6 L!4c F˜I."' Dfdb-\!B%M$ K~f:$2ZdKdh9`i " t! P %0&!h6fD^f jEcTF Фc 2fNgdJX&fppڤm2rnaVdm*'o@ $gcl T^"f7"#Xfc_e\d]#b2#{$!< LsF ,$e:% P6&aKgo&Ldzdk^jzy 7@Fm'|^{/%g*fbDv"4fb(b$I H@> PVD(?fa~XTRYe }x(^逢ahg^i]&}G#6֑&d.i>iuN`s9&NfHf*fg+)&7~m((BjDHh`a! tJR8)`X*`*`!@T,e0@^ jl *a3z *WM+V^+_KnI~uv+Ȑa++Ϋ+k?⫾ǻ ,%6=,ĖNlUŚfl]XMI%^@2XsF+يa,Ŭ6ri䄖B䐉X1JB۪,쐩iDR,[0muւ,Ws̰p۳)C֒lӮ1՟-qZ{\![ZMxǹM-٭|WZܢmƊ-rڸ-.ZP0q.A^T^n} i-Th YƘ쾨Xg$ɝˆe$-)ܮ.zmF/M/b^u~///>^j+oů/ݺ/d0p^oƳ.ClFV}___k>0aDk_i0r`xpk`p:`03:n>RoxA cERi~9(1b 1:1apz p.WGqb^'eNg>B? r gX#[YtnE4<:4'5Wqj[5$^\5VK'upq@)ch]'DP!9c)6Et26G t":Gb_vLrgOQfkZrB$肚@*Wg1ϵjhR$S%r''e)'5B[& v+#EeD rWD(@6^"$vŜ*h~66a7Ұ#}>h*J秆*تK~Kea)ȣ**xWcO+ ~FV8zk87;x渎S,8kyWٌ'yw-9;?99SW <D<`ymD ,A<DʑP0A@ @@#3@|uD @9o{7:s{8@d<;lC:Kb89\<@@yf2aJ2$pb_i$N"H:+i;:fx4;@AA @DyjF4g{3"#=󗦩\gV(7ք}$A #~D7Mbfs3yPFz̄y$:LXZ|{hH.h~kcMؠ׀ t' ,zc>>x]_iew~h}{9~|g,?/[hG۾/=@§| PQ?h{|z=@dC>WO#W{3 ֺ/A{CS4@`A&TaC!F8bE1fԸcG9=z찑!C4<(H"$^сM"IhQG&UiSEuJ.`fM$WEt|m[oƕ;7iT R jm&`MLv(]Ǐ!G@ Q@;DTTL2FcCqtG^QHC;ȸ4'Cdܯ)ۺ,R?-l,2>,91SR6~`'^cӴ>] 1?\3M.t͑s- `ڀ<ؔ O=ԅf4BRQQJ+RL* Y{µduCmsUZաz FUhAT(1j:5=o v䊥X}aINڲlRLZRu[`vʝ\ kNeh>7PPkM߄\U_]r`vEуzu݆~76.`# `A ZR]E 0m)X7ff1Q:!7kr]rH+H TS44M.dKjN@g"D:heقXfKq@v1vk7dw"s#6<3ݾQ<'/W2o{376t4Q9nֻ]h~֧AmM3"n;γ0鹷xMvォH5Krw3x璼LRaxY r!A Np 1A q mj@,5h$A+t BΐJa qCܰdpOd >ȁ"먇FCC.b΋*?"@&VdXGjMKAM>9PD,߃/M ^\@&jy`u8A΢_ťng+dO{7WJ{ f*ћOh֓A< XA^x5Wm}~ٿ%6 MPPT{~2 dk$` %2 w&@ x- V% BB PV BEfgDh!z oq'/g/|jp08P ^/fP'S%$DpY ߮ ( -[Fe&`Mof moqא qQKL"%|  b"LCq8%Yr`Gۦq&xjQ0c{YPtp!@nlO? SNMr q""!kq! b*j "+1rp l#;/BhL%ݑR6z""3)'-!5#'K!1!/#"㖱S+gTP)ϱ)]h%O&m&P.rxr" ,q,,R"R, ͒t63 f0 00M3832+}Qtf21E2{2[ 353.3 47!0672N#6zll6 D"h6q`7{!~8+^6b6"^((9#2wd B;#;sD;<9s=|*=3>s>>>3?s???4@t@ @ @?;PK)yNNPK9AOEBPS/img/spa_report.gifGIF87aڴǬ2gd244欌2d2gsҬ՛2dd22jdveΌ̗lԔrppd2fvvdldnlnͫԚgĶĔvhvȬ2ȔnndnΌdĶdnnddlԷfvv2no̶dЬvdvdΌ̌vʤdf4fԺ4fڴĪd4ڴʴʬڬڬʤĺf4ftfƬt44ԮttԜ4rtԼt֜tttttdtrtrttrrtsdvtd4̜f4dd42444644fd'''d24̚LJLlnlfDBDdfd<>dfDLV,лgt||\|RJhh\Xiwم9yBraޡQPtJP8D'e=%"N Vc}!c&Zltچ\xK`sY\y~d^svhC)#6'\VzZ:nW-y٦voN.X_uA뗻_8ҘZevo%nM[kLZ ^Ho1  ]c_.oLե1L~qrͬB֬߶Y陧a0qf1mKn|m. zʈ2P^Weicі2}0kxkU `d3(Zy}.XV;yoxgђYf&:yMf\ytaۂ5(R)H%{*kfEQ&dRN|B /RƘ&j; RTSu|{K6I54;?tF^#W: ǘ TSc+9==1V6+0AΥdf@G4'8źv0`WѯnoO4ٹ ޛeezʅ@*FPZ@dYז&u=,耆J!{TUrPvfe_wG!ۍ+Zc9׸=DjZS'uc%<\̦nbDa hխxy;x-]JQy~M@%T؅LEЪQ G):ZjrwڬG9ВkPtW˵=z?wE_ͻ{5]'oSϼ7y3 DGOқOWֻgOϽwOOA.wЏO}XϾ}_O~}OuOϿ/h@p ؀` 9  (HTN|F\؅DK(8Ix1Wer8t~bk8mȇ| w؇(pu8ԧSxp8a(臨؊wUȈx8~HVxȊ8XgUxH ؀Xʸ艹Ƹ؍th؀XȎ(8XRa(H`8xh  m( (h9혈kxؐ$Y& c0)#ؒ/'y8N("<AHJy젎DɀДOQ9 \ٕ]y`b9dYfflIhr97)xz|ٗ{>a~9 t`1YyJ! 0 #@N P!c2a>9y  @ y` / 09ٛIiiȩ0I II) 9y4*9  I8 * ڠ1p/0 *#  'Z4 +ڢy2J01EBəq 9QaAN pWpyɞ 3qB yabrJǙ mtJhk pfjʦqڦ}XRI KڤPY['* p:7{ڢYJ 'J71*rښ ٚHʙ v@jКŪ}p™'BXD  yy[jךyI 7K bڨn2 /a ٨omə9oڞQ?Ή bʙ5 r*j2ڰ5q2AZʠJL L%+3* . x`.ښ z 3z@ F+$M?JYH j 9 *)#@ d{Q JUڜ)y9p v+ >+%Ifj [:pm*ڸP˸ٹk]++ R{D}78j1!)+K.+Jy; Щ-{#{zAٲk5;o[T֊f۱ \[b 9 BRٶi K{K;:in P:qڥ ʝ\| 튣tj %ܜ\Qھ Z(,J:/!S [4k6k(ۿz*<JJ̲i ,6*dj kBq k_)|,$y I4A8?+ >\㚿=` \*L*-ɝ9 l,yʖ;ex)Ɏ?|4Ij|RڴA˩ {QrzXZ< t/+ڌ m J SO-0۵oΘԬAjeW]=,$ rݳP `mz̽]miʤM.:Y`ߊl}Y\ҦmIZ]]q˰9w1=*_塎9}ʷ -F!Am=+:Sl[^ݍ>,4YlUnKmjj튉h#&">^N& j0bOqt O_u8O&n?8R 3Zvj -I-,I݁#!/->@ V Yn34zZ.> .ܷL`R_&o&*ޝS-ۮ(쩹 vR{-Ǿ*}NNޖjͲJ؋-**JE99:ڙ oΫI+/eg/ N[ZȯoI>7o+ַ؛HĚ/ԟ'=- ܴ?XϷe̼D6 0%>QD-^ĘQF=~RH D&>0Ka\<i)Ҷ : @A>Epq`>S8AXd,l9@xTW\iF6c&|t qX*d4%xȒjB 0VZ6W$ic-k6lW#tv pIwsV]͝?]t'_80WK.-)Êýu e(S|0}2 :k=0#KEîA|iB) [;"NpB@J*4 E,,6c.ޢQ  KB0 xT1J+9벤R; {K{G<0a G6i&0kͦ2*ʉdAp۳O2ņD%ZTKI' ; 2L00KXHKK+RQD0OQU)2! 54B JP&H]A@=#1%-mHwZk-SO7LM{/S:B=EӈBM,C u,H%;;'l^0]FWb)[։Z R!G%ʕ2rlr5TG]H Xi4`wg$2r%~ntaiNq>eAںC4LD]y#Ԡ6:FpߋXSQȵLbAF!Y9ϴ_7DVduZOw5Y[sfuקuZ䴾h<)`^=Q}g7&U GJg{b ~-'3Hoٷw2V 2s[2O8Mau~5`z*dK|f%?]>!{`1; ZT>#PA0 O"ZɆ'@YvbA' F(?WM;ʅdR>@?n\VaAl)1HTv!.m&҆,ob3 \fͻcBTfXEkrj@SZŞG9,QʷMBu]$;Z*0P! BW+:5"&bq`BTʙ@+61FύJʇ`x8Vj,nuz5_0Gsڮ|҆u# eF2^H\6Tid8` J}FFB7PNKq؆_ +v͘4Cz}?<8[xՔCtIt\)\2VF.P-$J ׏+Փ1K8P4_s0-+9#HR4P<[`UӠHMib>1,@U&pByDcauwn:|zX9z fH6VXʦؤycMZg $vj>)[ |_ 2{na_՘Nu.N\a;bSTyB79 ۘ7S3q!(ݫ6նk[;f0INuZ]q6<3w+NV'܇4I1$^!ruON*|=OPR_8<R;] 9$6o^q+zaec>j=08-?,c~HSU  1Jf47yGu q~n21=٬BۑE7Y sChٻ=yr>}1=kj^ę>6@ 6gm r7~cxTvx\{)3- )|7 G>~~__ ? ۟wkݓy/]A*K@2! 689EL&j!B9ސ  4?<Ai#'|)XoH ua:›)/:B@OBYB:C$ZRB:DQAn + ۗҫR?d   n@Dʪڛäþ"D΢+BDĿcDG1TJܗ8E`C.. .h0E;.1*?:+S{!^TC_<:,4Fa/0; edfDՊ4wl[|z 9V8)3A2v1hH˿{M*rG'ӺQ1-;H/[qCHxI[C3`Hw8TKJ{RZS!L2XátaC 3B;l;Ɋ%z4cAC79GI6\ä\7 ɩ46趻Gn6rD8TF+8:s |L7Kdۑ--\7KO%U RTeQUWSI-)[ϊ^_TR6ͻP WSXeVؑ_r&P* ?mV-bp<9l\zV_UT,9Z"([WJ{l{ Y Z-/4TKR|u'!G*JU7W؅5r%~Jzvc"؄K ׊ؑ l =̎w%MY4٘Ո gjDVU M8,;R5٣EڥeSڦڨڪ>ګڭ媬گ[eڰ%۲͈ , l'5۷[.uXn1%kAۿZ &0d1$ܳDsZTuܫCL<=&Pt,b,KYC쫝}ѵm lvF,Ɣ Fqb<9ErV]5] UktO!ʈ׃17H2ce^3KI$4XK|Km]畈6o[ʼȅرX\^{ȔtLCݼ9:}E3ɦ,Bf%p߸3Jn%(q/]2&aVdq!.&#%%5i-ɨO eNTz?r.3"MZY[EZOA Ivf{FhgYȄv]Um臦cWhhi| 6l-ViUMvGm闖5陶+ijܭ;?> @4ݑ9d49Fj&ꦎN@pjp kk<8;;?kj>9kkĖVfL?p >jރl>)/`kՎmjڶmmVN>h&n\FkFjnV꿆n̐ff>mnj߮:ovVoc3mP자nAhmlVn^movoj=(vpq:;xoWmվpQo~pžl Oql\ppwlVpnGkWqq'?оnooh2Ps5l!kfsȆ:o>js O,sVE vt'Kn&lmFnjn &qRGTGkGԎX\6)^'՞`7.`bZ^7didpghijklmnopq'r7sGtWugvwwxyz{?wbW}pfj-7x^*Wx9w+n_xKxLHyC 7Bwm0귎;Ȇ0Nn ozQmDdmOshyFjLjxj9/ m99zGs>.y7Gu(kEs:Hf|p{7|_@h,noGO>ou3@֧}lG }?W~ƶVVׯ~懈|A0?w}'&wtǖm~D}C^rgr?_G;_ ea'Rh"ƌ7r#Ȑ"G,i$ʔ*WsGD]>$7,B>YtМqD4bF%!/vb=-9tp'̨dOF-񗵀Q,ܺ-]-wbݽ{gNӖa˦m4dj7kA袅;Ǔ//ȨUbu^عԡ|\pI@UWQYqWz%ou6Q5[>eviMvM^4:t>=$| c%AD_fYQ=hi)YM(Efag6juAD5k"f-6젻K]d,. yE2aB;(k "=[}5Yk=c]g32m* ٵ^/&d%iշ^7k7ӹķamHtҽʶxj 4vyjh/goh{2mDG~'8!uhA~P; znO{{}˭`ݢDs<鄓ǁgd_LUc֋v&!ܪ1oP7CQj|HUW!5l\! 1>Ks X|! c(::816iGV[A$_\A8l]PJ)&"-rLۺ/Dd<#Ө5oj(9ұv#G~# )A<$"E2|$$#)Id$&3Mr$(C)Q<'U|%,cEUʲ%.s]%0)a,&2e293)iRɄ5mrSr`@Y @BeDD"A8@;ǃng0N>1`%NvjdBRa Fr^yYt/HP:TuVܪӗ<)MqA[zѭ=,bI"Vլ(+ν>7m"{󨗍Hf)+`"pO3IJ)ew سUm-Ohn`Q~U+mUK2\%ّu0ij!Y▻EJ-n--CO]}/|M n\)wj׉t}0HߩWw`+ S8'}kx m;/QRHV{+X 5 -*o7Ԗ~3Z0sc`snJڻ!2Jl%3DIܦ=SN^<5BZ^fcmLaw/SI*H\@%j]]] V]IB}_Ѡ b$,^y$v9"$ 'Q%( DU%LM',\ &}3 ,2 3b/"nB-8:6-/:D20C#e>#??#@>#H1+#>FY.dHcCNIXdC_Ev@$;z aH3I)B0d`"$L H^TGE:PL H10-٤QnCS RNVDMrD.E0UOJ%0ZZ%[[%\ƥ\/K1.n^YV-B0ZdDB 44,&c6c>&dFdN&eVcB]1C^gGWfD.أE01kk&lƦl&m֦m&0|۪)eo&pF&feC!G~rzGhbD-/SYTm*<wvw~'xx'yy'0&J%{{'\gf҉F@14 r~D+'('28Wsb-b<-fFly^(fgzI'p~'G3((ƨ((2$hs-(F@,0fYjm)fzI>{ʧh^)f(2FT~q`)nvhJ@))b& AZBv&ǁ橞ri֗#)j.隺.2睒VZ* ~*l"z.*:i҉,B)lN*^fjt*ꇖ*Ή+$DA/*vjxЪ>z$G6ink{C2kw`0㸒niVVD3+E+iF[ګ%,+hRD,FJ¶kÎl>HH,ʪ%^M՞ )kάn,ku,8l,Цiz&jʢ. uV/ݛ=\VlbD0e..뾮.ήN.r)ʚY,:-~F,薇/JD2ν- m䪄lC2dF.//yoEDOFn.n.n+Rv2RAob~B:mG&m*Cp3,$ )v/7w b~𿶰Wm8X:/mZ jnr 1 r骦=1"jM1Jiq++wU_0Q] cksSqQks p-loDjOپI 2rI}*k062>FDN$gbMV:pErF*W%+*,&g(2Fyr 3j2sFB3J#b566 ,\URv7c+8C8C)9FU03H3MY̲O>=3:E>^ t6ߨr3:E@3&%%[43b1E32GGWHDRUC1,(IJ4Fwq*D=mδt,<. EePJ,KD 54E0tn,0D.ȂODV)A4XXOYYRVD-[u\\kVg-Kn^=_g`9Vtbbh]]{uLvGWv^{f6K..'V~Hh7v5:0jëj.kGS/-,C%0bv@6vGiwDq);Z-0ws;G@wt^5I2u;pwvkgzky*zco~q7_Ϸ\77wJ7G%s)2.SR0q+ ,.a7o?xDB_xox\*xJC0@(oYm0rv#S;UR829mbw@9s.$Zs-n9wy+Fa2pg9[8Jp-D-o۹EyyF02N* ;+)밡m.+Vu9'9Kz 2$9gFQB2i8Z"71CK:ފx.8j1{YxQzY *Z1zCrR+;F׹d;y19<'/<7?'HϰߙØ~>6k9,.xׇ<>O}OY+ۙ-?>7M?%3{s#".*~-?[?E~>ѿ0ܡ.@8`A&T!@(P"Ł-N("nj9dI'Q< ʔv0lWˆ6/pUO?:hQGS ̥@VOF:jUWfꋫ_ E7><;#K uKlNRt˱[w;Zyͻ߾!G<&eXUIĆutiӧ.eTkkׯa_rmۑ=8o0܄}p仡RrױN+,Z5<^ڄѧWt5{}ot>c kΠC0,o??)), %\hA4M5+DfPEr." .^t5,-mizƻn1ɽzīz)J#OH&/ S1,3LS5ߌ@9鄳;q2Z|yW~E<8CM4"F!m,Io6\reAېOA UQI-Sc0WH7Ti[qU]qSu0^`Ȗ^L1F^MVem:-6kVm{WVqɥhCWG&_vKv-WJ}{F=6UW`⽭N^KvH\GR;"3Xa| Lp9Y啝㎕tve'd~g!Efܒ#-Wr1wgf0+e͘_!Ze!s;j᎛TFliyfrl`fW&Lfai!Q}.\V1=%7^Xharщaoֻw|=GbݻvIs积Z .Z'oJKo e._O@ZS @. t} 61A nAB%4! h-t a*()XUp ;a|H pR5\4*a"KK,J:[ԟH'#k}SF(QLjcҨFQVL|#x812lH Li(R.h#!A&`@*I=1OtDby8c~&6\E)Ew!dI$$Q!{IH- fX~)c2KJdCQbɨUZ:B5mN4әae.9EbT&;Kxҝg)I2= PxM@{XNEs6ԍ*5LhHzӦ=:W~d}*Mk.%*Ӗ&4q"MU4HTUqԺdK/K8|/o}K@ů{tN}dA>1z䕰 OHԏXIn/.p30E0˭% ,.p qG0O 7#GP OFp/V0 oOns mWGplBo0P@oO4J "#hPl )PEؐ C0oN"O1:QM7V&NVlƐP˰1.NvOAoE9.Ţ7QJ11ɱg11nqqqڑێ%6 12"&. B  90 1b@  @##H!:F$Ra~nVn2 =2&$3$20oKApR ʎ2OPnpv:b`jBNTH#_R 8R&ŲhB֎=O O-Wo32}R0Q 3Lٍ\+7r,,.oo24o p10! ! O%/ o3s7,+&q*R*-OWMS![ N R!Q672,u73|B U<851)50Vvq SR#dz<}SAΒL#T0C.I:C3?/O n>;q@sAaA#3%vr<G`(->D_%fpB {6'n 4FyOJ2 @2Kv4N=yKlLT|4N,MT4OO'cO4PuAftP P-PuQ5tQ!5C5R)uP'R1O/U2HS=SA5TEuTITMTQ5UUuUYUT3UseS#UiVmVq5WQVyVd2t5XuXUW{XMWuYRYYYuZQZZZu[Q[[[u\ P\\\u] Pg ]>G%CoC Ea,`^12]b_t$Q/r `5TR%NBI2Q%Y% A7eat(O X~R舮CX*R!bb1`a6j]ie0OLo-6+T 2D_o/v0}| 3!\VjvF33Ej0~05?(r6574n%d7q-%:yC 5A.;; 4^u)cc#N* 0C5w ]38vI S@_E]wyUqSaa xSwOo3rd;tEHmE[obE ]uw}5jk^DfTïs7wRI2Y tx 7ٷ=M2ׁ)Xָ(ՊMϬ98;8c}EyM8U݇]8em8Ku冇}8φ8888yŸo8OոE8h 4QBX "ؐN X88%ّ㏐树Eb qq 2Y!3%Y)Yؖ -Y bCF@!Y)#CeY”U!I@šU]yG]yoϛY*99!2Z!9 y,%2 %ِ&z$:Kz {Y Z#Ygy ޹ dڎI9q1 I:q) @}y٥[~:ѭU !G Z㹑ڎyOZ]izkڦڐY H:i 8!/[AE+ُOY^Z B›SڗY9S!{ِZ:iCYkY3:𹧓!.˜3۟?E[@y+9ۮۮo"s;C9ۏɻCa Y{(;;aK[O◣ΨYs/y/oZ!E9ڭ9\{)!eٻ[{83[Q|6ṷʙ?} }ُ圦\]WX:|>695<~ٺUO~9[>]e{牛 *!9;]eُ{X5]}}ӻ7ØY^Y ;?B'[뺵/9Wgڵ[-^_+-< _ڬWG_Gݝ_9kZZ>kuiE%ۯBP|4 :|1ĉ+Z1ƍ;z2ȑ$K<2ʔt(g:/-ڹΝ:լ[~ ;6 ۾;ݼ{Xċ?<G =:ҫ[2ܻ{Ó/M%Gۛ6>ӿ_Yz`g` fWZ"7b h{(|/xd|Fjc|cb?h:]lcAi(xTf%v[V#j?9ff$FgMYb\eQٟh'}Xfj5$N)9itf):&5(@;"z EZ`jP~$b뫮 pfr)~6鲱5+mY7ꍋɅ\9jߚd br;b"F樷ژ#_Y 򪬵RK߳aj ?pudIzu^F'W2P8LQ=o|]#hzU\U&]&XQћQoa$5dk{oJĢ@Xwlcn+f { fWHf:$Q_89URHch.Q eCyGvhadhxW4vz\MWYGW< M"q2|5*[tVs3?˞^S̘CY1UW4h|s Ӥ(%SǘYІdD Z."w=f. Y7j] J]hޗ_P5 X+-v.r_V/{ª`܁ޮRM`; 7,]zdҮ {k;nҊBNegz c-ݦ;V9Myg+\|6fQI[d#]g2m GAe%Zm5P_=.S *Lz^bnQ,Ђ[srWol]4;Ic"te'yx>oqyj5b[7;n{7~䉉^ZonR.T[~@IHbHAarBBlB]1Q#7{#O h)eiҖq)sIu9/hEHyɗ} FIiI4阇٘)iYsəIYM$I障 Ii}ty)IYyɜŹD9 ITٜ׉ɝ9E Q$iyP$DiD Ep0D Nğ9DzpY頫#E ;DI*0 JD$ ):(G-ZD$JzD ! C*Z8::+rDI9OD`iHDDa:e:kڦoj9u,zФ{ʢ𧂪IjDCԨCDE:vxG* GBʨʢ< xYDT:VDO䥷D-Jfzʬ)POI$0jKz::ۺʭ`ꭥڢ*튮ڬB"J ʭCФY?A IYyozy-pp:b*>$[FZ fJD I0X  i*y DZ<ʣ暩ٴ:"P I+HV^۵X;I?Oڡ*{W?@G:)U: PfpZ+;^Y  ʟz۫D4 \Wpjʟ)JA;+Ev[kS p˵T۝Z)pvK;xKD;R>;D[จƚCD⛥j`)JD@Z*p;=ڵ;O+a;{|{F뮬˧Z|`[QڛF$UJ+ [뾋p5,jZ'Ýkʥj@ [˴ \ \NJ; |Ipۯp+R L;"'Sy˥r݋\# {̾' 5PŋjWY'J:[,<Lbĉ-AQLɜ\ 1ЯƗ{ٸ7ܥ; Zk7 ,\DlpZ&黦- ͊lEZ ΠJDΓɒIΎ _ڡ} CJOʪ_*;D% 9D۾.k[:Y|zQmͣ4. Iڢ8] ԌCm>]+] G:<$STelЙf ;-sMumwyl*]o0Y$ бɟ}ׄ-ٔ)ؕ=n͗]֜}Iّ͡ٯ AvګڭEإM9,۵մLٺ-Wdٸ=ܚ۲ Vܡm] *ݚJ} ~iގ;sDJJG 0MTc*M|K$ Nm[I-7jDE*ӮZS4EDE W\D0- ܤ~ |C񍥍 m]D-EK?\9 ܺ:lLD̋DINAĘGZΘjeMLJZ lWDc]lSī :'*BЪ[ ,ɟL+J+ͩV聾Ғ>IԺnkő֝1.ݦ++۫JV@k -̀.mߢ-͚_ƥة'jj.Ln֭I$2-#0L p~<~ Ц<.<6.6|ޞiSmDNZLv ؞ ˟~^| ܝmC Ղܥ\*{ ׫̚>FLC䚛#ߜCJK|XN0ݤJnp*X),0ϝ2߰D_K @1i|k,{Ax^5Edǽ9νK O/_UdMKbB2J0R-:yI~^ΎNԙnO b0A .dC  E5jP#"aB $P`ɂ88BA .$(a` 4yT@I8u&(M H{&I ӑYnWaŎ%[֬rrC)D$b@݃݊/ o|Xq`ڂqv8_t.meuϊ"VH@Qw pbōssFQ ׎2h0Ӧ* (͟` Éd ԥ?Fl^zϧ_~XwTQ5D m#3H|3HZp6CV۰A34Ľp [. <@B"݂C~GǰB2+"tI(k2>+rKK:RL4TsM6t/"3N:rN;3ϲO-TNs7=u< TQH#R4"K/ՔL PDt%G%TMMEU'mU,a]SP9V\suW^{W`vXb5XdUvYfuYhvZjZlv[n[p-֍TuM:Ew@=2WTyi%wDR]}߇%U`_%8N{baXΉM\ })^3|8dG9ғ!M6Ĉ_ӑF@@bp4 1?EG(Q@œ+$'OiMؘQ%OdgܙYHQ8wW$MlC!,A@(SȔ\a:Sr(ʱ|D*UQd6MJ2yLLy{)͜]s(iA6]})E|_SC?VA,_ Jo]SEil)~cPXbƞ),mjO2@ ia[\_RH]>CGt fw@aQb!\f7'qC&s a4uWBvƦ,ș y^_2`8qp3`zᘧ om "һ S~d*\Q^EAM*4젟x+.A {x?'qƪH@-y.'ܗ FSػDISr<\&u.Ur=dRȐe/'!Csf8H ss N8((!gY7"t }hD'ZыfthHGZғ4|K26N$EfN ̆bC]S ZRQyz5k]V'ױvݧK#o[lz>ʆ5:T|y,ϒe?9f#,NvN]!XgEdj`5{ZS #D[XL>Hilg5CxQ|33MBa7A;}T ïtGQo~&TXF@vK]$Хr 2{/`+8q0l&nBs: y)K;j?K,=.i}RA@w1.Y$.")*O9K(@{: $|(>$L@)b)#B|5J#*Z?EqAAr93L#CB8\ԬA* BZ3j*t+m+!-;ABYS,k;3Qt9;;WSĄ,; ?C@ #պ_̦- Fe0{(У(ʾr֒&Mt< .ͨ99p9IF횹n*/0.ŖC/@E@ /Hܯ/2p9 )GAG;mcA.97ȚH1D6m|H˿\$]7;.wt5i++JviM7s.(8H!ǿ0Fډr sDǞ{pϗظ4(zl/x鎨 QHB:ÂVU4R\PtQO4=[| a"U\Qyz6 %>##PH:ג6˨ c&r#/-.˼Ѥ @P7D)6t7!lCc<:c$dA =ʃ@FIjR pXYάcΦAN.weʳY mh\GCMKFFB<fpχ@HcCNO0^j9ɺi^d$бA xx\d^nJG:fm {edg^[9Ժ:% %ܿ ́m*VZBIY]ΈxV "0E!`(ҟ{hg똣 g m"3Z^E_SC T%=6u"ϸ%ԋVFh^j"H4խֹ>Iҝd4 1 ڣSURZe\LZ Zۓjܣf=dgex_~iI/Js(8k 4ܹk>X,îȥ.Xf¶!Գ~glEw?(H>Z-Ĭ#+,)mmƏm.j&ZSjnjvꫜWoV)Z]n!PleZ_^[73I[_v}*\hz ܄~TT5hoT"1V\X.E&-%.}OJ.kIz&  =.m-^)?Ȑ^U yqtnb|[1_+i堎 %_+`Ű~I1CVL1YFPt IqqKun;ktcdVG2uLU7S6[  +`uռ1v@6quI]_blvmvnvovp48 iWhWrc8~sgtחukNzy}OvDf2VRe9wyGvjWvpQ/xyY3q ޼ĹMeFd_eO:SNС4s[ej;o!ZF8uecQj%a)F(IF@xOr(,w:)҉WXt{){uPwiv+,eOѤ b o> h o"0AĂFJnD7cZ ʫ'+AR O oj>%kCJiPROL5-[K}.w6aU_ `"Lp!Æ ?0 !JhQB%@pÒ&OLr%˖ ?a"2P M=j9cC#LԤ*u*U$ " @ & 1 8+,,,p@7mX0AX@qAbVx53Ξ?}hE6 ь}ł3 X3,[4H5qcթ.}:zNmP̩Oo*{гF݊׉6[dWV 4`C'AHpZ<`5YzX'k!j76kХRxD:"5tcqy(K2ْ*BVİ\9d@[>'Zr%#|e Jt<1dd}hT`mIṏz.ŁQdP+,A$ !LRɫ`  /|PûBlD!o#T1&|B1k$;a6|'DGUiy@Z.sZybPp@|JT/= 4"v:Ī=> {ϜS߀-xkx◯$A7NQ9}c鬘Ӛ"뮛y :!ޞ.{CۼzU ?@CS_K)s?_|ݓ_sUYoε]ֿ{R+y N1=p`0 ;0"! Kh0*\! [02! kh0:!{10L/> JUD=qN_X@))X"h-jы #h+DdL#%5J㒪>(!y?Ɔ|# (Qyx5}MnwBfp}+n|2iRq eTJSt)SORt_`u2I'K訕AE?3Z!J`#2;kj$3SɄ\X^fe&gYqvlX%tSn&rpnnb=&O`fB]"WȨ4%YJ~ڡd5[BphBҏ4K )ZjtIst5S]i(C@;*]PT4YmM@$?| ,J{5hDP> kfL($)6Wz+TlkM5a%">(!k]gt c"OT k`@T?m˨VUW$YCiZM[g3 XWEW,՗7Dƕ>+^U*&I`O5-]{5hAL)pRS2?H%mB-w~s_R+ьTL-P\ +o^G涹'2Ѝs LIe(^~}q4t%ƥM\^ܩj?;_?`ݓEX$vɌ_|ȅTŇŝQVE}ZDpTgAM F0m "Z͠ JZ_D씏AtPj6d8TApȵ( Y|bx@ˆA*@ բpX A>W o1ِaaH "H`jZAb)RX:A|_H eqּ8ߵK|V쇷N4Ȝ! !i"bynCQ\ ͜ޕN~Hjş0 {]M:IE:@Rb3 }͊- 2 *2@#AaJL_?r51&b7R8IfDG}epPIEj) >Kl!I_J0"d ޗOL2.$N:VmLVlEVbF^F:7~828 ڦ]Mx_IIKM}QKa L͠ED C.R2em*ZPbY"uGj~٨#HZ&ddd:KHK٢Z[r; [_fl:k9 ! `O)[\f9\FۣAULC]]uXW}R[ubM8d(vR[LN- _顭)(}[}"y~愎ƓgФqb$rG&rpDFDŽ>]܇h$()T2G~^ƨf(1yhIg(Clcƭݑ"i*2i:BiJ锊rސ!&݊fb:(n)7i\DJߏ *h쩕&'VpPޢ,T&A^ym%j1@5h++%j|nT_,*QhV<Mnu߬reEjjB|i}W`SkϡֈiNdL;`mpR XJ / T*&jϚDJEfjlř`=@]] N%^rGbd@aO+j1*U+Rv^}\[lKcDIY| LW@UWM!VhawPU@@Ғ Q.cpɨ"T*<"Ebb=Ņl@&6a٘rhE"-dZ*N`|f-/4 2m1.mB6mh4FG0H5r5~-c)l9~FJ aK4I; =z<)? u8AA..P"nbu$r@eVdꏢ6bbWda HHQ #o 2n.dk,%1SfIo7V%y.[{X%ZFZR IN\ r^>_0pĚR vk&2Ǣ%&vndfJ%Fm%j.]l&݊fވuf|/Sj쮸jj+lk٦}?}kq0&չlT^Xfc`'{=1h'w>MFо|K ðġq]'~'+]2%{r12H1耲1N)ҫ鋾_BZ1i]Qs0hr[*s2a)r2&Q1O-)ㅲ.vA|3\fQ9s::s;;ó:+*rs==s>>s??t@ @tAA#tB+B3tC;@CKDStE[EctFkFstG{GtH4$tIItJJtKKtLLtMMtNNtOOuP PuQQ#uR+Rt@;PKNTGōPK9A$OEBPS/img/spa_tasks_param_change.gif#GIF87axڴĔdΌl̖nldlnĴlld2dd2ܤ\$Vltvd2䌶dv欌2d2d2ĴԴnld\ddĬvԚnlld䶌22d2lΜ$$ʔ쬚vdĴndndԬ̤Ҝ,$$$LLD<<4vԚd̖dnnޤTTĶάά܌vdlndT~|zt<><ڬf4fʤdf4fڴ4ʴdԺ4ڴʤĪ4ڬڬ|ʤdʬĺ4dflrL<>dfDLV,μd܌t||\Ҽ|ՖMMsrɸՕm빸ȓ+G8jz+͵_kݗ:kv{wqЫT+n]U}r´gjW^[G Y^]uo)9W\=vpir ($RssXMcl؍v4Suu4rU;T]E8F蕷89cZlMg:ب$KId0`WÚ]BY87HWcv$]éMXXf|_ųҌ/dU lqH`wu)b+cVj[F[1ƣh5eHlU;fkȾKNch-&y`^rH٦z(ZV=RbImaEUb[[I-daRrg_loک&uҪJv*iRZi s df +2u */\Zzx|M.DmNy=sS#hŨ2Ǚ~ k]uf)Eu۠LZ\=lccV)҄n9ݪWͽjއ-|ـkwU5}6H8䬍c|?.`vLq;ڄ;o|pd:G/P˔#VjwoG%/o HL:Ё&H Zp7( GHµ(L W=0 gH8̡w/ @"HL&:PH*ZX̢.z` H2eS2D4pH:x̣%Q}} IBL"?$'IJZdFMz (GIRRB*$V򕰌,g))̥.w^R 0Ib63AGh"4)jZ\$2_ԑ̀b7iEpL:ɸ)&Cvd/uFQ̧>O#SHbA-"CN  jD2Ԋ%@x~Z5?bLB c4HH!ĕEt)eZҌ8F a41P8 ը21ӟ>G}PTuE*VJUJ5HDԜh-N VpC*ոhb[JWNU#_Jժ}k]״:ZX˷be [ļ2\[ҦtfR6M,g;]gډZ5^j[ުviW\VЅh{Vŭv]?1R[O jְK<(^㊖5yXt-/}ˋDvޮn X,u&/U'&5lD v쀕h[=,XYࢉ%0Q`F,{KWv<6CL"gtI, ZԢJ6L'X^' qxb9e*9hN36DUbrl)\D79r`MBЈ)RD;ѐ'MD/Ϙ4(DGMRԨOVհcjM֔4w^1̃MbNf;ЎMj[ζn{Mo2̃m@Hv„]Hzޤù]Cu7 }?8C #?}; O| 8'RY/w=.|09^S\;Gb|>z t2O_`e8W}EgћëK\:?D qd!>L!CA X B}?oӝq/^9d''B}<Aa?%z={>ﯷ|ү~`>#*{2 ϼ.KT)<ˇ"xUyg} {D{ا]qy|}sz (87WgrW}ܷ4w'zy 4~}w~|·{} g|#x?yʗ~}# s1G>'>gH{Lhx@(s$s.BTxs@3X7xxw'@sxz{>(7yXCz~w>؅8qJx׀)sw dCGw~/\Xc{è(ǀ>[X>yP>ฏX?{Џx 脘׊ys }iyh{yzȎ d'28x{jX8煇3y{(|8YB ۸8?y~ 7)(|P9ybHp@r)bGtאy鋾|w{xxÒ#q~X2I st'Mx)FIYowh |-Dgp7ǓXə'}ypsRv(#|'pwDHǜDQ'KGgЩ%)'eg 99y9iwry󹞰p)G)W_ 4َCW(>uHw+xTo}H698C@K+zx-*}&@{ɗxQ ٤7$zG@(S*?X?g">]ƨ$.hrGc3#a> ?Eʠ>w ,(g$pC֧{\Z{%nJ|sCj @xXyP0x2I畦` "h3ڊ:g7ᷤg8y ꅣ>>J}j髱::1J*VЁu_i?z1 Wx9zjzɬ Ъ_|JZ֪nدZ)KW蘐 Ъhwת>t:X~Gyy{g7ȩ9ڳ2ˆ}k{Py2IZ~:yj[Hj3%96? ~B{}؄{x3FJhz˭ʭkHBǃR { \{n˲H5X@۷׶k+ێ.{~`  gؑHq<ى| p뉏ڡةyЃ~9W *﫣:$ɻټVzZzɴ{ ڗg{x~嫐J׾|ۊ|rԋ ){^Ɇw < l$̻G0| ܺq8ȶGhȤ숋} Ek'qX;7*m4hLƠCuC\gi|ILyj1}L Ikj+KK +^,W̌pY)mťxɕxꦯ\~n\, Ĺ~jG<ާ;C떕gқŖ;Z*q,v*|gwܼ=Ɓ@##t\ǹ< ,ykɺ{[7Z9j,(ܫ# w{)̌ЬDžn9;>qÀlWGWYĘ2hb VҦ{뉛ȕxyA[l(|kLP|YyW  =ҾGB|]yZ։XpK :o-?8Ԟ׮0iY]c}4y xV؀]—ng=L}\m=˓8ώ얊- ]}} @kui̼Әw [=Z۱᷌2kډy Ƚy}JHZ}|j\7IЖmrO*s){rY,MрFM-{mڼ- ڦڠ(9uSYZ䈠 ׶*Óޟ "N!/JW폵,.@0Nd^f~hjlnpr>t^onz|~>^~.>~N薞锾z>.~ꌮk\L|8$uD}d뚄럤[7t$Dhdgnqn$Dbdo툤d[~"kHVHpt_$XD`d{S " >E`UDKD FdH$ /(DP@D>L>"l\"0RTdV4DQ'OJE@D 7ZXLXoDToeoD_?]b?GN?Z4O6yk#plm OHDE~/L_oe/0&pDG$RD ` _ J!LL0DqzdDXd"nEͯMD _I"@OF@0A?.D*vo+E_D1dF |8b .$@bć%,`1#H-p4l0 .ai  +< P@gDSPp1"Du :AhԢ4 i1VvWa20bdVئ<Wg"p(Pv-O8*@A>y7l͕3 `|繥MD 8i֭Kd ק%m#C=wJҦ.(hʼn 9b8]AV 4mq3K&Hp"B:K h,b"V`a1hH ̍?0n 7~L3fJ0TҌ"*J9쐋(;tR*: 8k 5R`mɶZҫ'J)4;(l,İ403̟0"28s0. `d<<)L 3O:tRKȘe NZ:,mLb@R\+*e-M0PUj 6p 2„J!ؚH_0" Z8  Y8`=rC86 YrïZ61 ʂ$Hw3* 9ѩ &RT)֚R%68,ӪعB@MX4u9\kհF VBbmyՂL>EHc&,m$)ZA:BޒC/( R?[΋Pl{ eO3M0xb 2bz0A_)/+: P!ܰ3=ǜYxm:WC$"Q"zsw,{J|R.,Ԣ`v0),%O+[8 -cĞ0V{j:>@5b,Lxxko j ON*dE̴a4F$ʈ~0tW,.JmqW>SI#Sn5DRMB$mT*ׄ OxB0P8AZy`i ZȀP9g3XH *%cV~L Q`"Ah.BkH@ 2 QogjuxdKNw[09`Rǖ(KR(ɤCQl58ɟ+WFcy@KaLW*k9Nh &(# HRMJdt&A9kP05N0LS$ / n4Xإvj'< QP>S K@ $ C H$#ޚh+dS,LPhYuH9>6o`#$&Q>#eAU )(Sck3@WO ~04\a2\/ ,D6R w&af! H;­:9#%>EdFrK,}NI@eoѥ>u+SVǺz5o};Dg׵Sm@4yIڴ}{>ww{jG=wTYyxӝ!ģO]2̫󝏭']ߠG;[y^gw=cϞkU|s#߳%(|o|S_l| -T!0BA1$=&4C;S{%17:@̛ DD4,C9?F4|k= SLD-DC<: R4SDTTUdVtWXYZ[\]^_`a$b4c4Zedftghijklmnopq$r4sDtTudvtǾ)xyz{|}~Ȁȁ$Ȃ4ȃDȄTȅdȆtȇȈǀ;PK##PK9AOEBPS/img/dbr_capture_view.gif\sGIF87auڴʤdf4ڬ4fʴĪdڴf4ڴtrtrtԜԜԺt֜әsttttt윚ʤtrddtrdlΌlnldǔdlӔlnnndl캜r䶌̔nnndt̶ddf4fԮƬt4tfļ4f|~|̴dΜ̜Μd24<>dfDLV,лg܌t|\)cjY-Jt[A{r+pal <´ivQwSJ`εpV^e@v£|dEuxjՕHѢ;c/f%<ӕfPipkLoAmxeV4Z u<\+ƺ}3tFg=F{ӘXk-"@8Ȍ7U6vts0XkEa8WU\ vd2izxSS#]z|׃].0M.ִVq@ -i{R~Fi8e\?Wx¿1ǤZ0YYo($/ޢ-pi_˻RYa0yzFZQ_B8vmn+baʆXfЇ|A_ا(q@i&}I*"8P88.zqT3UHHv`[z90䎄]o2ddg7YOg:ɤj$=$zL)Pьr-A˄ldEmAY-#K HFIebt1R 9?tdzͮ?9["Ge]nd8ڴb3V^Й^>.WP&3Ko\85II=&,rH`CCcTDlQGؘD5EHKV(~4 hg3*`<  sKeӆӀd7`kĵ%.?0qI=nP5gZɳUz<(]3idtiZ.Af :H_#e$[U>m#,=wX}QeM~ESdviK/Xa+y)8J ( 7|I#GTӑޏ~2AY9؛\2P(NqH\0gL㣰9y1w87Lt,"HY&;POZ@*[Xβ.{`L2hN6pL:xγ\,9ʀMЈN C3ѐ UXҘδ7Ns%GMReWVհe!ԸεwMXB_ Y$ԼN=hXbЎvAqcߚvQfÞp۠sNİpׄ斔v,ij l4r<]Je䳐e`%xuA-inE*Xlm[)nጉ0ge]O$ 3rԅji 3O\v+ skjmܻl\耑ܗP8!k;V'^Akc`9gBqsAN< dXN7=1P5գms)eFNUtq90T܈St>7Xz7yիD֧d/rAv~:s~~䎻ql~]煙 cQ.@~ԘE*~oT03?gn*bV&`:4IoP4i(4ou z`q.ۗ7c,g!rSn1!q0m1#Bt7s˷r:f^ݱ{rM"(ERx0L:FC;`-tTr:]@ gCw:U"7Pug'^haj g^ǀhlfb!C@33"qn*h"u8QC9善@v7x/ 30GuF;=}巃En|X^F%a`bSHpXW(([yYpׅy n"r"7"vq-bg"ח[AKwts̱}3,R}Dg>]~7:p}yq. j(cȏS׏ fXɖr)m$*b$(qD׌ v;B:DAZHhXi֤FJRꙨfSZʀf4Pl b:l^Jdlk Dž8&q٦vzuUj[Wxhz:ڨG*zWKYzJc(GIV:cjFjHڪj]izE@EjJ8k]HF:ڬgṬZjyڭ*J JzX\q1Z*:*OگzZzVZk۪] `ڰjW+dQW&K$0RJ^*+ktڱ?6$@@))&6qa-zjꝩ:lS{u='DK2DI{TQP;uxNJnKYzhz:<=+۴"0` h+j+f{ *fh;" H+вг!+(ۺ@(r멯hȧ8|˨~c`ku!+B "йeLw &۹#вJҫKi{hHqڶ*{V;c+ \0&,dѴ|);ܹh#,ʊ F94;k4{ۿ?,1;9ܼ|) 7 \. —Ė[=ѲUZ۩c8&4쿶 h]۵ܴٛ@J=} ,2QK/Z菞*_,+kZ5|Q(Ki!?\y|-{ ,k#K|˘ yp;,̝bp[6cI'Tƭ[[ (Rܸ \Hky ;|Ԭ Y҆ wBjGfϖ<Ջ)Zl K  mj*,%ݦ'4M3]87<;@]?D-C]HGL PKT]U}:Xbjz`z;C\}?ڰz<p+a|tݣn}d\lU~]x= 9]$/${E4UQ5H-טhzz{m'BLcpZu\ %ΙIPMZ'UDP ;s|*ʍdlSD]pu:{ؘw t<=5ٗqpnRݐ1.UH"8lDd:+-4td2]U]m[i--1};4tpu 1$o>8 o ํ᪙+ 0;"I:~]~`B>ml`q]2LdEnM1M^僥Vְ|^`b>d^f~hjlep.Xt>is^xhw|^h{hbNb +ρ+дL%` ˎNA< <ĝ:Lꧮ臱 nȢ,ػnBPq͛;Uܳ®!kP, 9f.d:(>N!Ǚ{K;>="++з^ -? ;[ F</`έK?$ʋ& 4߬@" #'.O>hA IA21dD~{&1N[>-+Mˢ\>|Q.(/j>.O=0!*۵;> P 1/8?[ǣNQ팩=} q㈊û^ۂ% j`13HYsHӨcǟ_~@0@ @ Rȸ\n6hj%вȭ*M N,F8Bo4 19b 0 2t)B܎Gv@H"b!l"ܲ7ڃKS캥,,5hBjM)!I?4КPCunmE"J!k822h+QXM9ハ:oLc-I8\eEq+14`͉ˍrF*4/TGI ձv;0%$`mӰi׍|5dߞ7Cv SZe+M_BZ\=&L|ʣ*0U&d9[c*ye+88 UqW`HA_c8RQx2o9?U H ]CLZ$W; K][P=J/!K&ֶY(gTQRVqՃՔG<c0k@Z(1 Or@&,']`>kL኏. 3UIp_5K5l$K(Lt?*TnkܜZC ʔK.AI0aLc i*ThX E3Hk p  фŰ gБJ"aͪL#~kM蘭X;1Z{;  |Ȣ! U ;ڳ@[jS+t , Bϟɗx l1;!O"m RNs >)q@&xKn, 8TMqM\ٚoѽS %EƚKmYtG}U5jW3R$:񾫅(T#Zl,S\S)S;_}Z)CQ5U]aX]@إ*ؘC%I,E^Uu=a4w )F4M UbuDԢޝ`#Q{[8\q1Jɳ_н^A fZ D+zI($ E3uX e`1_?j` 9OD_4nvau*DJIR֠!aMM"!!LߌZ <b0n7Abz"3^,3L2ËY_;%{Y2`|NlC5nԺhfzֶ{~X&L枣@W&Vsmιd}׭I>פٍ׳qtNvin]im[B~G|Vќhiତ|R<~YkAڽ>CxA?XY uXm0O>Ə"#fHh% Ž!u@)2hkQBM 1mϞ3rmQTNՌ.?PDԦMn6FLfo6$v=o`$V}!7\_Ʒe$%uԩ3__y Wnph$coQ,?:qk/E>힑I: #` HW]&F-;D4i$Sّƶ*CrEaYklsӌtаQG6ˢ`6Lf+Y8Y݁Jj`<s[KK"o}W NL{tu{g\Y:XJдLVJ\dN?a\;L^?ƤPцA ꛎw[Y#iѸTb1$+IܟϕV vu*7~DJkfA՚89%$Q=vTJ=fsw-&/2I[m' MfQl!V>$itjȄI_}ލS9OXF7ʯJTS,%k7g815x0/o u5<݋7wy=kJ`h=AV+.x>ڬCCX5yR*BFfAwF/R9-X,;;{!{ZZ房sF~'_Z$C5A _ pPF/|'t۾7}WgׇZLا׷}އ}?}CmqJF|nO'{>l9[ȶ.~`Zqkzk ه WA ? r1*LBE+$l!,k1É2~LlֈJr\ʰ&/$z@u߼gӮmC'cEs#.7 +L^9DP=ոs~"?XQ~\8E'vqǧsNiy\U }]txh@peery!! ^u5ހQeH`kUUZPZ#$H,b pB{deNsXbfH"萑e9߉U`yPBN^B7f \"PDy'@:^VaJ^Wdi3cq5‰A@0yJ:iICRz^ ܒM*dfrN2DK_*~vhuԑ6YU!7g ;,EiխU};RT45kDyzm[B!Li*M].(҄&9/-F5rnb:{0 S omUTgC-NjS[50rv W;E޶; ?<](!<;FsML |29GIĤ%4=9 K4PsqP!T0AKⷠ2\G ֦ˠ-oK P&=\'?jFI%+ v*2 fCf]} #jap6ȼȍ+`uE,[yr˰$HK8ӖC\M yR!mM"Aeɐ;.*"QKФ)iPr\ "IGlG<&EnGN#4'LQJ02Ze֤8F2A.+#3XͫѸ]ʆ| RmƂGi80!5iSBJ1hbj܈:Ĝ""13gޤ5eŲ( T2RB,dK PE: Ð $}hLԢ8UE+9.d9h QSӚ,hT@vRMgQWx M5J!5-iQS!SJNEk!00diͮz4X8Z*ȶ"ɉTEtV !7̐#5`!Xjlz;u[jewY^Ir Vl:gBx#Q0,ag>PJLES2./% !#(-ŀۣ `mrrnPYq NⲢFo CH%ns,*SkD~@"'Ab5 (+7"߃mw:,؅ d}v7DSեpl_B&t2uMM+թNHYMz 7p4rU4]0(VA}V'ܨw?!.[F׹4~ AePJj5:%%.?l?rEx4!ZUa>/s0z!qV&gs@Ҽ\4sYԚth, +مKhI_ΕK6U@^.⶞i(  $b#Fz JhI Ή..5UP?вp#5K77 dm6d:N'n Wlj 3{A+,hV6P:̡^GNgV~$c~ʑnicw'~",Kni]p4m^RWM1zr'>o=l=cJ3j=j-tWSazXmNR!Qa6!n!E"]!] v!!R֡!>!f "!N""&".!.#>"$N#F"%V%O ^&n"'O&v"((z$)"*E)"++*,"-FD,"."+ޢ./r"/0##1#21$#.3F44V5&"4^6ncd#7~#8>99#::#;;#<ƣ<#=֣=#>>#??#@@$AA$B&B*d|FDFDN$EB*X*TFn$GvG~$HH$II$JJ$KK$LƤL$M֤MޤI6$IEVOF$PP%QQ%R&R.%S6%KH$F:%UVU^%VfVn%WvWBHHOz%YY%ZZ%[$XXRO~&dFdNf[%H%FF @gjDhCEtZmkExkRj2m\zd @]@^rdcBdrr.g`sRtN'uVu^'IZG`j"mA&f&iy6Dnkfl{FngHf_%q2C30`1~r'a"D2b'FN(vzwZy~AfA\&EDixfhnD|zh~d-.$2oaB4H0L-,&B( %bƒ:6.Ђ)i (bV)vD(z'Xph{fz&h2l`BvfEghhfhħgAFL}&fg'ާx*jyv~ve *eިި`*` fF).fb%Bª j&)&.t)GiDgviR+&k x&Dnfk}Ƨij+&|ipLg+Q}Ft*G]&+qh.@Cka (Bp6"Fb*b,n,vj>$JFtAjzA\fhAz6*fjlkflvhy«}Rjj~kjF2hVl/0i18q*ժa~2,F$jaJibZr~q~۾-mLF@+Df%lAEAE&w"*&.Dh(Zn"n&y~gf^ohVzjCր0*f 뱎*+ƺ&Gl0'0/F${)n~oҦhRp}ik*o&+fV.,^~)&.?)qbBF)bZizi7&/17q2E8CtfzRCT*Кg(vB**93?' 3@t=ڢ=A7,B-Ϥ,DAG+,L,aAK4G,ĂE$(FwI;+P$LJ@KKGtDHtMFQPB*8DP{'xJJ4DtE4S$S?L$MK5Lk'PoPwu)4uMRRKJuN˴Y+uLu[KN;FY^Z4^#5Zu_W\5OS*|V{5cN+Xdu`aKvZ4\5gOvN5hgvauekviifORS$+hb7lugeGunc6iuU6h6`odo{6pgq_#wqqc6EvClW6r6~e[mvY wkowvuSmf/s\mgDvl[}*@X7Rnqsxspxr#8q6Z8t?*ts}W8 Q5`6txi swq6j{i?j?8G gWd*HwBPxm, ,x7xx7o5a[ߵ`o`x7y8kz+wkw8D8۸_ )Z5PH),B}o9(dxNJM9H~(tyx'wHd(l$йh:'/:7?:GO:O&tCgo:&l:::::'4:=Ӹz.R7m.Gh#뺲 uk&zsDtK${Ik{IXwuhfvGizgQ0m>;<޶, o_kk1¦i6j{lꩰ[qkj;ã{BKp;Nxj;{DPK (mȯkb;kbk|Bbg ;y|\<7>wD|=ˊg&'=gWlܣ>C7K\>>{g|Nnj|>OlDg>oࢿ6*=S<}=mV[s<@3&̋&` [`0a.8X ƇF.4feK/aƔ9fM7qԹgO?:hQG&] R^|A^DዑrEp2֭JlԩMEGWIG X(6`$˵ׇ' sre˗1gּsgϟA;e(H$փ1~ļfrt]ټO&֫:!n,awʕb߇g\,5־{w?^h?=}{Ǘ?P[e PO#Pl!) 1P j 3@ QI,QLQYlaQiqQy E/#LR%l'#R)JR-/1,35l7S9;=?YA -+=TEmDTI)eJ1TM+OA Uԙ<SQʹTYmU@W}UYi]3ZqUW*o_Ű`-X )9=gCmdZhUiVk W\UU6ЄWu;pm)7{} . Nn_z%-5֗bAcvswr=WzIneL-ݔ@9ut%襙/YfmOiƚ筛i/.'뛗o^mD;džcܺ=vg['\ŏF|A۶Zpwru\Aٻρ6AZdA␙yw{_$D 0kY^1p15eywj-N`KC! MPW/d5:W(;LlXC%(2CEmQ]F0Qe$͘1JIfA'zgܩ46NэAC#&#V !GEŊ@!KxH24dcID*@Q y8kf)?ȄB  ~4X}CTYAP/)˃4rY+Uѐ|T'M::Nf&Sٓ: BS(/N<~!@CrfZ "Pa$/Pf8H`tfhP,T',$zCN @#C4B3h7am?&BiS4ԕ}LԌp A&Du*r?FFU:ӧlVCV3hv&j"qbUu=5'Bh=kP/ZVrs`$D8A+RMu ZJ0e(hMHs553g?K=#!ˆYcIۻFKկ}m'Rj4nq{\&uns2^+!ڣ5kSߊM#] u*@꽭LkV}/̀+=Ȑ(KGuAbD_٣6Dèh+w&o lrqc=m,v&ܹCP%3VLbv&#$Q=JnʘMQ\k<(&doRlCzwz.VyPAanz cpԳ@N8)@γ}wl;ԙl@YP?]sPʹȌnj i%Iudk!WzZd펆[d2nBb[u$ %5$ZVӐ9\9{'sF2K-l$i{FW(&rR'S.Ї|`w/+<ԋv=<_ʫ޶l}{>MP!gJ$vQHvBB.л85NUw1/)ٿW> }bۛjskzg: eFk SH CM#2 [}[}6IK@xk𞄹-fz^Sׄo[ DmHY݇w{jLO8\6 ?J#xP ?x_>niߧj*rO9ïkBv~줬'~!~|GU Ͱ~|~'x(v荏?Q# nm\J)O'H`Nﶸ10oB <+n c˺݆o+k/Feim0K{  įm8C<IsІ OѮ!D҂P3N,Q(1d!.!K2"Urru1 aY!Sr&*'&kGzXI`)%ߐ%!B2'N2+c"`Qo.)n,fOuB%s..Q1N//_/^R,G&P5X1bFM' [23235SF<2ξL4["(*s0 S9og93:njp3l hkX+mݼu<)-(2'4S0 ., p#&[J%$MM4F?թL A*Ufva`"&\@ ppYyYYYWՌLAEKP 9rB6(Y^%jSVMSk]3:ɾkef\1_t>=U`^3i'PF_&-c"ҕ%JE c!] c 4A@v^1.]ceMŃV`cNܔIm"td/a6<9gߕڀgx2MVj>mV>7Ui;`~reYLE.!ePil5?&RO!bU+mٵS VN;^pe10%l@Vn-c9-٠R'T_jP nsNǒuqpI2X*"im]em3_DMu/י`7jmb%5ڒ̵v2QxevfuCu-e0!;{Aw%b8 UzDKJ Vb\[sK76L XN w7o7o*!b%WVlw7}$ [ 4h͗]z1q*eMyL*WbM#8S ^c5H +4#1 t@W_[CHCbXmǷ" bOweTc3wo!,fN( GwUWoȵ+j]w؄_vtvvp6oG#]Q@%yS(~[xBy/;7/Y3q')ay& su3Y`-hicهe9vzׅO  h@ 9y%?$/Yaw]GٛCyu)x5UwJ9yYIC1噕!:%z)K)1:Ң5=9Ez+MUZuJ?Qe _zqz<\Z9}zZbpZnzvzً3Erv yH9ҪJÖ[r߈ƹaA#lz߅Tz}ɚ{5zum dZZ:z5yD}qDFC-QFZڳ/7诳Ѻ̦OƬ_{-״syd3bڵoQg{۸OP{+hжCaa[k4嘭隧1[;Q׻Z;4Ty!ObÍZ|jJ:k%1|)<9w6A~>a{po{KR=x%='ҡ-=5ۊ== XI@Q=S}K]RNC=ei3qu}%}=z؉=g:ٕW١}ڃڭ}ѳ}4ֹ=ȱsŽýܕc} c7Hc#ܽ.9B%]"ԣ#ԣ'}/`2 " `,* ,21Ȁ5+#`+0 1 c5` 8&8V"U#2 .+#80b"BM7}!>"#B28>=*#!B1`#rR%>58@$C%$^78`Ib/C+3 /" +: 7C#l7n95>AB "^B*c9"^~%^(B:*6ݞX#\+t: )b2+O-684H#-:V?߽?ڽǟez?Fp_?3B <0… :|1ĉ iPx"ƍ5r2ȈJ<2ʕ,[| 3̙4kڼ3Ν<{'͑D=tǤ2ԩDZ5֭\z kJd˚E,ôj+} عtڽ7ΰv-`بŌ;~ &ߺ+[6zX;h2 yYF2E Ъ1F <;'ӕ<9ECCpIg-AodvܓzgZ|A?X}#ۇl|e'u 6DxaԂ ^{(}~b>'V&Hh<g ,YlZvYl@`u@k ރd$9ZY)Pz+&ԘkxK.yƨfg^o"މgzDW(sa(fA: A^UHih4F)1jfb%n@gd2Z&)AVXA:I{Kl&(DjX(lж( A^f(jJx Q9n^m[n%ۛ@–znvYEpt!ղ'C.v*&+@3hZlMZ(kzn)dl2-'rj nۦzA 08'ɡ ? u91VCs[iOaԱv]r^Kd\Ӯx{ e\'hFe#Z0ER/x,QՒuC㫨}2Ӫ]v#-ciW"~fy蝷y;]>뢺˘D/ϼԐk5y"nv,?9P~;2Je2stN* !Epb6z7r4qqJKҗ1-A詃x`SzZD4iKe:Ƣ-)STUA)Qj FBn4nc A,Jc@O{q8JUb`WQ4\ kW1"vxիb{<_YFfuaWsw}G,ݗ$jN _ ؞VEGAy-g>ɶoVZ/ZI^\`ѽl ~Ҫ"vu [f7xK^tBB=! 'Pq/ ? U2[{*Q[ṕ݄UeJ-$< iM ~R)Wbd1R0zUFPn U3cܱzxd|>sN4b(2|ӍZŝ.f@)l >\[WKjZ4fK?g Y3֧ ^!NJ.,h7MKqW)kZTeh9GJZn= z&G` U+4Pnlدfٙ˫^SvF;tg]rb:}m.zAFa.&?兺&ZW7Fp,\4kp:ny]Ұ!SEKfi"ct>V2>;ُs]ilܝNˍ'4gsxٌu(VYvݳ0+7]SYӨT&fCXzeSը"ug׺{{`z#W]O1 FSķPpс)}so'w~ k?=P‚=;zv7αzؓ>}KOpeYϋy߻OHs$gML[NKǯ.i ۢ/3_AM8˟7~/7e/wD7 ;d%€wDhe8Hx1U|~uT/h~'3(-"'4{ɢZmAZ3l"&,I<\U)!'10%у1洅'c83&m؁A0j 1m1uHDӁMH`BLJf[1%`W(dXSgh(!X8`!ՅnUMq?CVEx\'pY(1WpZhxh苚plψ6Cx}gy6#MŅ$fb@E lc%]R 2Z )geq?\ZR\A¨!kh/@\ȏ%͸YY@щ.ULirH11o*FV/*i3o?D+cb9jŦKa pbQSx&10֌ʸ Pɐ)qS("@IKɑ+QAR'Y.e $'7Ri)U\!(kx;{ikH:^>tg1I+qFbN D9#ؘ9959l!H:)-֍:C:<2?7iS(ij .#jBٔR9LI Lj[xV8QInX*RBU@qoBo7y6|bNGDE!  6`9fpʩx) ʙYEK >ca.A-g;s6aM3!b91ߢasR+U>>y$G%iGz)Q%1yש!Yw` 1(&-c7- @QM$-4g&szj=!8š8z[8`(J鈌*jʙ%Taʁcz>$p 1Ԫꀦғa~* I '\xAHztZ~8(E EҪǬ Qʭ?J|Z+4Vr説꺮"ԮRJګZtڪHnUH?z Ud)صz;Jk c!8<# _ kFZG{TR:eXaf0QW4$r$lD2;Z6۳QK" %;N+nP|&u(lfR0JM_O s%$[C%1~Z*959Dz. U/d8VԸ4t+hKdCKqGXM&C]sIuky:{;MNg#ylC&qwm@t^U]aĹr67_qH[& 2@s9dm%mSKciL꛾GFj۹*p#c 5Y֋*[Y>14>[_~imWDudgKhEv'gicٿ+coyBy,‡pd, Ô۾>,Tn'){vv[‡$'L)̺>w@ʣԴs>LmgClk |{\OJRL =}eS^LTEHlLi^k,JHx+][TÚ<@|L<]PH|YQɹ4ɔ,d_zn ,UzlʘʩlJʖ1J8PlP ̒$ 1&GgLK̝֬\QvlA (٬܆ ΀!W|Fl )t&Eoϑ1D}jАSCf1яqю_CjMxSV9*faӗL"J7ޡ!؉!/͈&HzӏQ>@JB4;!Z\9}ZX՗]1LpQn. |~]=n^s^42>~~}UL{.C@nUyNQ~gϤ|wQ>뼞춴!!j?.:vkko\Z~خ,炵ӢMε_O&TLP'!j~ .1.B+?e%|~XF&Xg(26oVhL↶yur] AnFX/oe1"(?~ZhRDQ@o׶QdQqhPBit]vg.'>o'= ګ΂P˴WJ lh{ޖrG v7ŀ~e"[fnGqȄkoF5@޹_y/0*CSB6g}4$5/Go5|>o O߻*ȏU ؟.\O8@P@ .dC8z5>`D(G!!Ii`K1[2HfI(iqA * QI.eSQNZUYnר*Yiծe[q`@XX0axN$8-clj 2cÃ$Zd!6k8GʦRm.l#(I؞/whsѥO^b/w(@P~@ֽob}2`>fӛG0(ïd9($h-7 cpC;m;CqDK4+FoE[tEb,< #~!j ˆ,D(C"uH$ArD&tI(*EcJ,d1=.ɏ'z H {TM87\RJ:N<2D-? 224MCB4QFh<#tRJD@3tSNrTO uTR?TTSUKUXcGihQ[sEU{W_[NVb5-]UeuVB^vZjgVc[pv\r-ZUw]-%wͽ3^yުЭ]~m]͓^ 6^}wa x$8b+5xsb ydKEK̠<F(#<ʬo?g.<^ᄑV(Ot?oYZwH[k:pAgzC(˩kR>LB! *8đPL &9 \l+Xen!L,q$|:@3l^so{t P%Ft B m,gtԦ1vsxQ"Uʱ$)jufi qudf23"ɟΙ#(QGjoZpGX60,Z5P (urMS(ҒUnJJLBѬoؼzU;>piJU"W:mk;Vy*lW{YE*S6YBliM{Zn*%hYZV5Smm{[Vmo}[W%nq{\&Wens\FWӥnu{]f;PK9ռas\sPK9AOEBPS/img/ratug003.gifJGIF89aFn퀀@@@000 ???῿ppp```ﵵPPP999ښyyy;;;<<<>>>vvv___rrr///XXX}}}oooȻɢǸ̹OOOggg ċ,,,ź½JJJ+++***uuu:::sss777111222444nnn|||qqqxxxiiiddd555---333666mmm)))888...(((NNNttthhh&&&ZZZ[[[bbbFFFlllkkkKKKeee]]]\\\QQQMMMfffLLL{{{DDDBBB===RRRCCC wwwUUUHHHccc~~~jjj^^^WWW'''GGGYYY$$$zzzAAAIII!,Fn H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗( 82aɳϟ@ U@#hJ0.G'htѣ N$@XqKٳhX€` &Jn2uJ]"V 0b\f ;+g&'ӊMiс ly&``uptW~긁!ͼ\oز-9n(ŞM.OO+(P&gT{`\[5vo0u67Q"'VđU`!h(Wz vhX p@~T`)םV7n mqVKƨ!T@Tv8Pm`)JyF e Vטhc{#|l [iNs5@`ƅB $`Tq"v_cVj饘N `_c38 l%WV8_uT4}59MUZ@T6fۜ6@ Tcsm&Q^%T!P]bduo Qy(,p( @S%a'0} g  zY`X"un NPJ 1W! ²@-DmH'L7i<7C. \w}ҎD.^zlkjL!L0lw_PM]rT^}@w7⪵]\G Pq1MQFQ!仟c\p^5䬷n4%g@עSծ˜5WvBÎwh^weaQ'C[vߎnRއoc!d %o?[!n@`FMpvn.3T s0!o܍$0 gH8̡wCe19Թzu)m=LY%\I 〄*Z q"0YǸV1gDp%p T ¹2y@- `L"8-Pa X 'IbE'Y "7D q)IJ%6SȂ;V1 JIKZJp.wF%; f G6)䒗ԥ a:3OVjRep,AE +nuA8J$&0vړSO' h"0N\}S)ІrfJQ1 h6PT+&53jO@ ^HWڼPQPRڴgL8^ uʴMM0 hdOI=A)Q,R@HFN* \ /hŔU) du]W؈A`@DΚ־i;)R.\81  dݫ_'%@+*pU@b8fD" p,dǁR%,f `YC )Fa iFVxŃ G-0 8%uTB|BZpr]n A\AWԍ@fA()Y-X 3(A ^PM¸+u۬B P tB>8J:( }C1c׀D7(xa Sƽj5a niv_xqg܁  V (.P| H%7y{,*C6X><2f˸e>s7yusd%39€p U@:XabtMHX3f5p3g=~Y=@!lLo@@[Sk0 f.6e٥3j ׆~zrFnu45mN'@OޅPD C8CNirnjto؞VvM>4^w|@ЇNHOҗ3HMN[XϺ7^˔O o9sОDpNtg9J`e$;ˉr{S-h)ϼ7_w#L@(xD~whoL(K(s9C4f$LUh-f4WZD`Z14E`dCS$k__px73vxu WqN7Dkxr*Q (p [PMq׉xu8nr7}G{ q.F`a4xxLj}F]Z@&kV V̘HKȂxExPe cq!HXƀ(xxИ6+zXX~=r0"e׏&䦋Ȏֈt(Hm7DxrG)Ǒ)rhȅ璒:v,n.90)gvHPՓB>9AC9Eو!Hm}@ O`b9dYfi~gٖnq?kSGhCHhouk9Df:8V~t4YKY~4OF<&R?X yZ8ɔ pO]t)ن(9WI%ioLvӑ鉌IFٛH$ٕV/ !9D $'לcG#ɕ}Z 8|!i T2i[ɗۈW\P'-ihhW7<0`@ɠ95J ?atɡFَ"ٟY~%.IY5Z~j;=B:Y)iԦ)@ 19X6yZz>(hAzgZiWz mʤoO bJZvJI55@n[&bOcJ:909PN`J"҉ P0'2'`ZJ!yIXp8"m\V*Fka.Р ʛDz:00p+)UbTFCJފ]gX`@_X1hZz6zhYs4``q-t+`upZUzZam@ g0K&g'j4!@Tjʩn -yp3&+宀a iڰi GЬ@%.6{` G j ~p W +P)4a@ @u ~  {{ ^p>0b0̈APලEDP9Opw Kл d `2ZB_:Tp?u -;wg 0` Z:[ 0M@+0^LPP <?`, sQ+3@buFg,d30i2P2<[Õr?|HAR4LaI? %#1)R:yP7ƃ\l)^ _<0DC'ln|d|SKDt)^ 0< ˎK>j`n-:C|sSh">B;.˃. mثJ u -G K./;1׌ޝ-驐"ʁ+ n!( Ȯl!/͞Ƀ~Ǭ 7w!a hR͂ " |GQF1?=b;s^/V쨞a ?O!I  Qafa& 991{! Q3?=&A_pOF_cB#v!`qO ۝?b̄ځ-ч!Ta0AU|@5 /cRꩮV ?txarR &TqS )rλ/#31V1; bm"`; }%p}1wq1!#2,=nP6QS3Pf=$`b:c0@ B h("9`B00b6$`B4$'" '` }m8\Ɇ@РoҤZUYGWa Viծe[qΥ[w-Wy :%&\a1%ıbBs%9#&x1QE' A T @p Wny Ă7b{j֮=^ݺdxwŏ'^z#f߾4(0O?W&m)"0 98"gNbP!\#:)ʨFld"gm&Z,*q0<"rqIfqI&tɸKܳqD% ү1hB&:1FXvzi l` E ÎN2(`PQ@k NE:XшFB!PBQuժ=uVZkN)J^G7 B#L&v[vDз=BNBg5dp`2[u\n=jvzֻu_JU!EǤ*\EAKVyxb5]3Qac;cU= c*+~$_I]VVe36T]@ɘVzi.r^y4nr0…0 lkYNLA-qN'%t|l!Ӄ:j+iEaP\|əmB6o h<7&xhSW}b\Z.vAzu몜Ń~ vGU*t$z e/+l?y8@ӇrCb0XP9t8^PQG+#[ PXa_>,osb^&0#h" ÊLP+=g Co7,!9*hO t':Ȉ(ĐTa= j@A[bE.`rTQ?"A8@s[As?vBX*(Dl!H +QllX>iRz\e\@2Z(\6#"D/Q C%Nv NmdQ.D Lt+]) \JxA 9T@Lz;m@!P&U}%)I04A|f3*lC`QTuuLmZ̩ $A4W[*ԑUyj:J3]cV9H"PFy *-{Yˎ!/OUg:ƀXsԢci][ZuO*VA Z J,'&Vd^j:bZ%XB2Su E$ZDSيWObns Tw^ L:9^ez^U{ x.O}T` Wӫu>oNr0̈́`3UlT2` 0B<`p@aԕLj1^/YM:Ā@ Y3 "p`4j򾄰`s~ Wpg쵿}v?ůzߞ?}N/+F"\Hw?wYДXY :̖݉@X# 9 #d4h:Ê@X$@r4PcH!ШԘAl'LB'4@a3lA 3f 4P  Ѐ@4B hCABC9` C1:8 740` R "UJ8 xae$ec@;@ 5M DbA{;6^diad-*(M.;N;!eH^?IR@[k3^XbAN6dD )Nhee{L95e2CKBLefLԭ&&B)h:n1̭ `>mte"9zga\>dâL/U FVܲprUhgg|!fUI"8@>i$&$-ZLƞXIT 2vUi;iR:hYi V"$%PxjjjP.@* F#J5&(#iݚ`J:j#jSU*Ђjk*@k]ա虹&$Ђ$vvq0z$ dr멃kQ, >mkȂ8Pa똉Aj$P",!U^om+h .q,pԎn,@pіI*۞j-'&r(V._\Ncn&<"Poj!umAj-j-^n-h"φ:p)Vj%ح8pM2np2nV2Yf"^qnT5`TZr/voFV%O'&Kv g//: 2r>Oƶ.Gm3gǭ$/ׂyE59W:G; >Ӟi Z,Bo6i.S3c0 sVttQt]q% (u'OOҽY\#x+ȭrKMJ[u<bv3 \nav^gFBe Yng20wbr3((T>ooVy^U6)(rUwhɴ׸vin(x W69|MR,$9jU)o j9Yxx*6/qo$xphiwl ܊+ pizzz0wJ^(q紦?cO{ owvoryx{{L l"Hqnjb聹?㚧OV'ϖ{݊'@h|vY0z$|ʧl$hYpG/(,(!h_$5[p7`!Y)gx~~~@v- `OtO{qhA D3NH0qq!?[X}7q gAY!DrO@h"ƌ7r#Ȑ"G,i$J9eʐƁ@aRRR'РB-j'* ca̚X bǒJLqAJj Xj0PJ rM0.l0bt]L0M$`굧*Hv\H18m;OU!!@"Z2o-V"*uj&48sK YX\5ҧSw ɗYK` S)emY3Y.Z-r10FG襗Y!bxQSFiTBDA !!8uytM 8q JF9fD 6Z8@iQـ'蕍:hT@~v v(Iiޗ_Lf&qʙRٙX,A3ALR)kzE&Y~Jh /e {v1 Tܘ㎜D04Bin`ۻkK~|'aY2 B|'@*Ё=(@Ě2Lg%C:iƹjk-@RNK!0Ɋ7<*!<%pLsӝ>iB|(%Kz9ԛM`М{@I0LIRqlT0:Ճe rXa! x+^׽~bД8toT6۩MKoX+XΎ)0A)`hE?x%H ơ B,xE* 8*d H?^EM$؜`=vrT~$)XJ7x ZT-A$pCa: I{[8pJűE\ !(,M}0 A~.;[[C{Ȯ:Y85VrB %tRƪ#4Fc259405AC ]R5#:Β. 6ʡ/5ˍ t[F\8`!A @'C,`A b@^$ BB("h8dAhpPK$LI;200XERLdKF)9O-@q=\c&F@C.%$@,$rCL& 'Gm7%P^?^ 9@0A8Z7$B$_.fN WKޟRSF0 @"T8L|W6$$DRdA'Be(.0x$0n>'-B:p^]A!BT] ,A8HAM!9#qV[ݚ :ON>83ţVd:QIE@fN%`0,C/d8WR $$VV$@%,3"48lJeg!6F<4(G2ԕ V]*@(CEQ.nM@x Jy) @@@"'ÔKyM#Pdju@p@.FD0pXzjB@xЉ&C\]`&]uL Qc5 JE$<@geK d)(U| hm 飮)G!F4i+y!TT h>8+JYH4V&:ܨ-!븾TT +&ޢ)AlQ B@$y8N$] jlFT5ܫ ")8p@C)nCb]i,+2F,6_ʬ>Jb>^-D Ќ@-Z&@]YZf-R-ʛvkmm#mt@2"h0 Ѐ,l8 %raZ&`pκD@x9봦.*&N&Z-*>F-R,Ab^ .b+A@Aȟ*.9jnږ(Ԫv!Yܮm~ՕLX]F8nHdor/byZ˦*)Wh,rX8L@ޞ0 /cDDQ.D ǰ ClAtI5`E`2Af2 A^7A=1lW `$qqw2sc29X9rO)Q" R KA4 tH"#D!]8`@ H17!,W3@A$s dv4!h@l\< ܔ~7_E"֫>3??3@@3j r 4C7C?tC7 K2tA.!aD pHt>CՍJ8 DǴL4Mt?Sr7J@@8R( \@8_DܚHx@bڰ`Jg"Fo;os(Fat>DKG5-4Kqs$'0BdQBtj^#$N ǔ8`cW/nB^I AtOMqNXW8AcGc4vJq .|&#>'|8%Dp$@ ą l3xaB 6tay4#$k2C F:jTCQB 4`xgN;yhPC5z)O VL*TtKV Q8HqٓH *Qv`GD@a e35 pg|L^'-1iED\D@aGVQr@!R@=U tB#Ah;Yerm^UaIrl P)4qa V8ċ'TrgQV_찁$vK2}F`DQ0AAM\QpS>.uɴF.SD[mMk-Ոkb$wgg!K3rT2t1>]oSRi⍧o`$WZW%^?@BP+Em`q4W36Wߟ k^ku%t-!xBУ4b>QH? ^xPL{&gd#OhI(q iX jZ~X&Gji>(F51("BtcIC׀%>ʁXT0m)JOڕA$9Pw8)V59:]MFlܒGQ'K"HokC*/쒩 4mS ԀT@@^8 1D"Pa)CpJ4,c!#8A%uw3>YbUHPš&K6*zjMRDR\jTmkuuBH{[[ՀƎzn-繍j:,i#bdTWlwBv1NMuAI,v=1l@4DvLo,+);\: ;)'MKQsKIUjnbB ;AdDt ]/nT|AY80zpUȍJV,ZF'R-LcE' `M` cwiC7Ģ=ӑfB~ɜF%DHHI%'WdAl:OTʝJ62bzJh,K~1I^ yh'RE*Q&91/ifyl)Җzj5s4SU#`g=KkpB6S` J2FR*-Kk)vX aC65 I=,3nvÚgVAڲ ϲYF osJ>XsVr $:cFL,/hȯesQ"I9#7ELғS2' ;PKsr˷Ѿa)@ĽI rlq: ˱]1"ڼ[%2}atAWގ;SĮMGY{Oa'6S{ɑ*|TzYN\dd_'XeXau%_|W XS\؂i]__4|sXFh3 8 B!tTv0RSY7@ U&}HRG6.ܒGP%PQE]ʓ$lA/42]r%rw"O|PNz9R ٠f_$m)` H`~_\rD錧O4h#89S>HVN~zl:&k:iJ,ַ-F%Si* f-4`qF\ȭ :kJZ Wmr*^wX'ǔMVȨƬg@lܗɍ—71r]6\0 u0rJgz"M;Y)@WbQ)ڕ;M-",%rj=ثxoii6 kBmv864vDi)-Q# ~innXǦ|L*V%X͋WaLIS08gɪ'Q^lsI5p}'8gxļ# UNUP@@N)Z]HRxNh~\gfDS҆䗂@ ~mL<+Aw>B*2&Cq=b B)UBXb`4:"W"$UYa!ѝޤ<Pi[ZfCi[|H2/"i!8ii\ W&zP!Ibf%aǸ6$J, A>T9Ld9đ=~f.LF.W49bryhHTQHQMS8ឬdj5C̫ȇ/P!MVPGR!aH0a|0Ģ|t>4H *͚ Ux$I,OAq#Y ӣU#HR f tO 3'A*5Pz aiR2E<VRHVza1<Ѕ]Y,@DZ4'29zmF.C Kl^m :lgKͭnw6goSB !;a\AbsKZsz 5+Myɫ/6+W~3IZ)׬  A+OܗV_kaEpoŠ$ j6rxlk]qx&,!BienX;`tJV5aΡ\6liE\Ơ|do<HX;\8`a /ɏa;X4kf , L}^Рʨ08|Pi* 9 V$Ru B5824!%ECՑ?&Q k/jdt'XL*pLE`Ƴhl>d,*iyFIeHgxM|GTғSU k}QPܔ> C07:t%<X=&`ki[G\S1pH<-5՗ iF *olZɶBr>ybp+|0vA1YX337 m=9+QJ>u#٦?[6jįw5YbOݢZpx,z>9w΃o_x(\'`C(Xr\:m{>#cEj0v^i4`L4` 5{yV' @*n/'ݩ$@joxJjZspxN;eeeW P4O| ݆3+Hp ` nܭ?pH,@"q=lptWPuV@R~8m*FBWxsr6yG}A YyYXpW3BO) 3'59#ylI\0Hi=0as=b( C0ifz0tir~S񈝊Srb-+&$ L6%S!יZN9 PSp]s0iɟ+C4 &ZhG;'3 .GwҘljWYlס6vz JwګGj~ivB*xtаK4;{QzVB)(Qښ&7Lc;3!в K^8 uPJ]:9*HPڃxA +PTf|kIQ!:R`kS 0' L)`@?֚4KZJx4X)T!k"9Z0hZ _Ъ"Y_Y_z a^;ڀPu [ {ʻƛ+{_xW y5la^ Yͷ⫼@BR훽ĐYhzX4hF{0l;Je+X8y8* U)AA˜Ng<$y$Z4y* ¥IhfrR5"79ܒ +9yà rٞ\ٴ-Yӟ%g0;~0BCGgH$$iDU wwt7z9}ڷ=*ӚTO0-׹6ɾ <[,b5CwwL{u;ȊXȃ_꧈ꬷ (r$r7=7̖;}s 9| *d{̱Ϭ} ^&8Z@㺤?Z#uI ь .l?W<6`wIPǰCO[j$>J6{LB5@{>1-Mj 5 ;ҨP7qc,^ WVcjgSoSvll/:1}-Ę*M6oC6fbK`%"J7MOlRq[t| ZҊG`C 9(Mdd2?T~Ҧ{  y7^&! #t) I˄ ]>^AٻT`]Nm^UXT[Fa-H*ӻBٺ]^Gڭi9=L]%H-ݥܿEX *ݝ$rcݸ0*Iݚݰ\- MZl<ص)K %[ +xģ >HQU+#h s{~ L^舞 8^M閞額+dVY\hޞD -]y<  'Jg8I_ z }l M]~"̐ l-M 7"VCV 2V&(hR~Gn T,:$\^dI;?@^CE?rI/9mƄ(LNfS$HoL_oCwu-Vl`qYwy ɌjެÄa'-\0|۟94`,.KFA,cȭ,躸&~OxO\#ȼq?Lд?&* uO*O!oq5tmPVkE t YQ0_k8ROO1 8HXhx)9IYiy9J)0@@hJ +;NK[k[z z ,N^n~/?O_oO;PK HPK9AOEBPS/img/dbr.gifGIF87aڴĔdlkΌllԴndlnĴ䶌lnnd̖dldĴάllndڬf4fʤdfڳ4ʴdԺ4ڳĪʤdĻɦtf4ffԮ44ftƬ44䜎4ÜĬt4ƬԬ2tܞdd2v2dv꼌2֜d2td2tdvvt쾜vtdvtv2tvԬԬ2ּ֜2ĞvtܞttdvĴΌ̖ndΌĔd2dldttrrԜttttr캜t֜tԼּ֜ttrtԚԜ뜚tttrԚrttԼrtԚt̖nln״d̪¬tּܴĴ¬tfĜּtlrL<>dfDLV,μgt||\ҹwyR3s{:|gC얲Kݱ'A/=GϿ]ιإ'n%^-ƞyK[s^oŗZ`'^0(47JJ(h]w֖d$U\\v`FucJ9*W^ NɗUR[VcnRءp^Egi衈&(Kc%Ux^nզdGP*וg!;Jwd*[qZ_#*무רtJjWf&laUP)gEgK)ZW _Vk奥]܎+[(xLl#Y罖2;sa{ԍfz8p_MeifkXN0Zp`N$lJez&`񧜟rg+h*7+1c;?Zs5f&L[R^MWm]>}h;%2`-pZuNgl+p-tmx|߀.n'7G.^vۘgK]砇.zLn騯]zꬷ:ɫ./;NZdBXSs|JT|O<MSS Lɫ> |4cU|G-˟|_2,DZ0C`o% LtvDN O"O},K>%@%"\OڥIF>==%`MP<!毁3b8o%NT H@"j"ċ"%MĄ\fD&.S$Qr@GRdu\NGT{)$f{3=r <҉HPn2t JMfhjJZְy #'njH)7̔3% L@ / ?Ux p¯>u5M\:LUXV-Ú®( v\\aO8 ;Î 7A"HN@yM)vLP]UMgj3:fVyɓ[ f(e9s]-Lzj]ܚb˞L.o%홯[Yrx,qQ,ӖN)+=VZДeoO?)rO"F&AJ_ XXd[:cAӞ0;p$BbZ9'#b~xjF'+*6e7ۧn1zηo}(ʽ :~X1-SUZaL(c(!6X1Mm%4E'4wrbo&|eB~;Α'/|ZonY:KWg[\o7 ^h!+ ka0~W џ>+ Z<:Цn:Q;>?w!_zԠVkS]|NIA[eivLFyv vԶ?Z4l*Eq VSqv\l{BqUFbF8,7+2%0vxyUyTզx-U,y9VsT!rmφ7Do'pe i^ZOx~NL%W ss%L7g;7IS~ff[  pY7trцo<5peW瓆esre87VYŅdg\R w VVje NaO~{Hu6x}(Lߣ¤^Qqu؁&Pmё"@vbċlF_P %uR8)SB5G7m.{Tn,Qn$mƃF%ZAhbf$eLDZ|K8PthGe*Y[,9 grM$;w iPeLȓBy'~Cr' 2; Y< EqДfvNJQ+9P&_"E鑖0#ц0hHWvt+&D*m~"+w-DP(UG*$DHfBTBcvAcI$Z$i0SoBxoo  `3:#vD"a1рbCPy9)Ǚo :]a2v!#6 ‰9i깞o0,QXc0 (;뀚ٞ oy;>1ɚĹo ":7o H$:4@(ڢ謹)oViڙCXfjkZ1QSDB, vvQ1䠚JP@vFDZK4zVCL4>Ee ʧ*} ;:xbj: ␄K7KdNNRPjE9O$K.WքMqAJܔrqdO}PJ Yǔ;Q %}ɚqNZ\QPB4 p T)RQqUOcYMz]JJ,AQ>+QΚjtbytZR⪯J 'J"koހ ߀Xer3]W%YwU[RׄL>K]$Wӕ^^ d[tQ:^LSԨH ^M: z%IN_y_5!nr-p=v}׮Sx| :eCEjMSdh{ŤJJة}:7 ]W؜@D\Qԉ٘=Sszُ<#ه9i?=Gtۥ}̈?ڣjI#fTJc ΝqB7y^ǭ-idyJRk/]JWѭ` i UN.h ;Q@i;,P*R*mƽ9Pw\g+73~3;۴Djp\ujE۴L(>It5aenhBC>ص|^n,Nma|⬴U9Pq e{eJ;kM ,Wɋ,]۷qf,V{.f{vVֹ }~6\w,lQĈ RĘQF=~RH%MD/^L4[62ɝ7'SBCETRM4)JPfl!@ 4¬+rZB4Vh%:׃L%c @s'yYp]>U׆Vz+2wL2͝K+[! GW.ƒjU٭-kpꇵ޺ڳN[z] WQ촣qػ6L՝_|58?Db̡R:+ӆP /3k@2$ B E¶*<кO;%$ENY4el鈛 8\1ñ(kѦm6Vna6ggqR/44F$rW6azщ2XMD=yGŦPx /3jb5ݕtcV1LމQ̒2wø<1dw5L7oեO~M-G{ Ou?TMVĄba_aʢ`3֊LsRZi5jKOBȫl3+B+; Mh@ª h>ń!Y5VAMp'CH`LeϊWb`-%qP4A@j^JFzƏ1oc}Ŏ,-)no2^mgf ck&"dDRd$QBG)x%%L$9M>rDe*UJҕe,e9K+e.uK^Ėf09LbH b6әτ&-2-ϏB V2MnvӛޚHMDg:I-9gi oȓh*xsiY`nA dvN6ԡʜ#hM4ӏ`#) H8B]v5ƨbFDчԥ/%&T WRlPz8Κf:< kBLT*.WEb[vEQZbQ7PwVTխpi5jmS{+Z)Nl~cZ,dV}mK޺X6gD܋xW\vagPX0daұml߳E*0mW@"4J^OoI$[6׹7s;]n3nvn׻#^׼yջ^)o|;׾oG_׿)Fp`7p%k ~| `·FthF[\s7gIW "n2 hRԧFMH_™vu+ ko0A2 Lv=lb#zi%Lke7pC8bf @`ezԄ?lo{@@=pS\uo~Hf54[0`x׮8q\/C3ޝeT; ǹkCO׺we>s]8!lp´&A L`/x8_,ZH0@3pmӣ>u\fԧ"L6@վv9yw730A Lh)  ;-u==B{(&t2nr0ӆVF iA)vE?zғ9{S'C?M@ VMmTGޣn+\OK?}W˧}ֳ֯gAM] G:c\x->G1{k;g]6PdzD20#8쾺#?;? L܃œ>^ӿO?sS1݋?,zS10l6@ ;C@4#DTAAYk>@٣= \$.9[„'\7;,.8902$20+B?@A,3 CKKDBE|ÈHIC0GlDF@L<>OEP =+EM S$0O Vt/WCT>>W\DX0U,DZ\=_dE]$b>^l= D`@[Cci=dXF[F3_tF&_$__`-ԜUZRf<^C6A]ިƅ5_-aDYߝX Gu$VoYբ\S~!P5LWXU`E V$_-˕_T-V ~a-&\DOE7pUE+T]U2_476TcZD^5at^m[ ^ -]+_6;`%`٤P>\ - IFQR׵ZTU6t5ߕxQP\dXN0Z^NXњV4L6GNMeRN;Xe]W`eZe[ pS\5j\M>C>0;Enә[)Cy.4N|Dٱa˾DvgE<lCV{2VM}܌޲0<1.t0<[asL4Yd6s.Mq;Mn5{=95WhΠ/Oi Ultn3[[/@55>ǮǛfxFk)jW7}ULFhC;ikiS\8@7ƞJكlD[Ȼ6q&ޱk$IƔ=&kf6Ⱥڣ3?֦8-::4vގӯBۓOIftmTɲFa61ԞOLع`fo,TH$ $0ι.?B.?4ӄ&B7lږFpSLƻ=`i#DžG@q VmϦndppdԣp̴< q)xwthvWw/oywtvVrI~7x\wn?axZ,wT[i#̖1{x#Qzy'}_4/F1-畱U\xVDZWtM1E˄x5UA27zy/iK7P`fNz<ߝWLzˠsTOozũZQURdERÇQRe@ ɯvb7ō5ڬڲ&wƷHMCk\U%/{ASUM*P?XA}&%U].t ? qj*յfmRf'dw9K9=+Ywd]Mr: +ZiTR~Y &ի^"e\7{tiOjג$  $ʲ6 X_5ؘ#2\D(_d3QvBBRw%n+\*XuݭVڐd'rE!AJj~'Za ǰ9}&_+VޛˋGpɐ׺ j`jZavSNRT Y]~7gEXyf%J ϐs,A@M[VNGC_=0-`V4 +i6\hgAma9$hnX>WF1ƬKŽ6űu9c7I6Md8;/M`AF-<%a0/B['ӯ_\xFMٿ> n.[ [0?M ~{\kdFVpHt:.EJ;3 Y[馮("`陞WLNj1BiF\ 4K-1˞ 4d3 gÏuTh~#5%q62XIܠGLmTDi1pl1GSNA:Ӛ $d@Q , E @SCELH?ϯO}VG˾Ź[\шiHd]GZR>Z_^[EOxJԚd9v1׫LW*!u\I=u$5ʵ "Z"*I("ahDYVW'zbau-aP̶ʔ3 ˰\y!aX 0ux"Ҵ,yN^Q،)R`)j*DO`i( B;5TT" rC-;|c( HE6@dCtvR&F(PBb&$DF@dGV -d 5KDvGbj-ZdXcvy}J$~(d@dyq'aY#TM#Kr$K$zdOJF`b<U0owxPeW %(VReUze%e)M!eRQdCVl⛓HeYoX%%^Q(v_&^YeaTSepQIc[ 'cX0!XA@qK&W s gfDA1S{&ngB PmE P2==(XFMD!nX(əJ1${ܙ(l(艄 #.(+22*uᅆ"WfٝpYVuCh\hh˅$~6mv(v-%ӼL]^1bf"- >>f}Ƨaؚi$›Щnګi}0DX vVj!b]ڧg*:$dv'j~'ZT]oZwBg}Q'|vxo&j++U!"3 I꿡+M Q+~mkZERi ޔ(=X,͡mGZ(Zifeb ^|h l!]~]}I]M9zβ!zqĵ6eV© m 51kf+-!ڑ!--'z)]R%"Xl b" 4Ő  -T+Ra9/-\)]=ю_l@d*> /R.Z݇n""-c<_ rO2Ē$b[ >3]e~S^v'ҝn1ry؁p&jptxF Ph"KI$>* )ʱyjvBscoCt?J"EG?rKYy^~uYe^A'FiƬZ0U'v$锎1OSWCVv5^5 -aV# i,i`by-i̬_mbǵf͵?ZmG çh_6 ^'=r __&T6nSg1m 96Z3Evmjbkj1@$Ҷ,Ҡ⡄ZNi:ɯ;ss &B*[L")e׺vyVFqօ-_Ú&Ƅ1ٱ2ŢEF R_(QyR>tFq6ǿ^q}\ҪȻE#f\0@ I0 qfl̜a7L9~BUk_oO8Q8yٱ!úQvwm:9.+"%hа.nY/h|.1#:173gԣ2hS[9>j13𤋮K0 ưSVt֘[T7k;'1?';r#G;,3[g;Kfb5hcTjM7w %)E37.zzb#b`{!e֤qFyDžA<Ës'{?c+Di;cE3&*J!Hc {aw`Oħ:v^g&r-gr6P#XV'wbԗJtGs@9Efk s^ v8hvlwswJa^1=hYTWMuTw_,ffpxik?ZO~WULl#=oMkٕ%ŗ# qra7@ P D0  FCĆ!4 32"$(PbI&LPcȍ  YsdO%O4PODLȌAUdZPB]T`RD_vH3ˡ.>q ̛4C9M 67"PAa-Y f.;UdpA@g+d|3 m'<C!Jp4$,Dv$B1LS3B@/hB"tJm&fp$:-ժs3l39f}45M :UA j"|P#C+cGwD:@yu'>?L{z$Ip eAidfФFh,WN]!G2UPcPjTVM+S!7h`l^Tx ĺ{1*~j2 QPHUjP֥9jG@+wW&=Di/ϖfuvΑjP:BabBĂȰ]f2V$@u \[L T"Īb\35"1 7Sh|'lm VqA|u @OV`nt?'YMU1KuK7N?A-LiZ7y0Bعw)Ձcue aliw+qÙz&^Hn&~uG>^]Wmxuqd)ƴHMrIзa\~Yjob+y @|ѽru*?ibXU}ly{~V4 DWMy]3WCc;q:`Pw{\W):Wxy(I:1Tmw*~2W~97{6 3fVO_.;uOA'IM'|<%6 .}WC}قsd6ݏ}w0o}gտ;Η 9 ( 0p H4*05п$P>hk@o2: T0$j7:>Фi"T.}Wp840ގ;+DoH,YtpF3JPV@iS nn{ 'o¯@˳D8,JtP4K8B⪅ 𚣷"Q6%(kLkЪF ] XŬ RP*8 7|$ EMh.o , k+". Yi Ӯ>n !BzL"͊qjnj4 ̽A,M%hB.q; kG|*8/M"x fX/ʶ*B0eZP ev0 Y,#hQrk"D"ZT N-<."dTT2$n&Fe..F$b(qk/BE"i F"DB2/P ELxZe[(dCXbjD$K`ʒ( -[PuE/IұR*"-P JFr޲В@آj.&WҦߞ%U2*$2MѮv#ڦ -8(#>i07EPtK1 nZjQ2L6u*k(fiԍʦ-:+&(mFN^F8³iBp=xPW?'REB츦,bjꢳIn~tjOpFj:}:iIB:A3|6O^5Dlr1>b2ITD"ԢOuOf6@ B JFC93B%**32֐pJ JC(KJ[L=IɔԴLѴdMBr09O P QuQQQ!5R%uR)R-R15S5uS9S5O 5TEUl2LTQ5UOU\TU]Ua5V#CViVmVq5WsUu5UqT5XlxWXuWuYYTuYUXZǨT5ZYu[[uVeȵ\͕\WT)/"A]N]Y5\5__V2.VX93&q=1U3~J^'^5`V=cEvd `MP6eM 695&C .v%N'V[TcOcmU " hcdA6%iaU 2hVZ5PVkOue[V\ f}G-1>HB QP*v&K+tN<6lK)1VxJpvo7 ;,k hShk x14!jgjV:jc1hِOh8؎8v9x|88XiI9 tCYj/89!Ccٕٔ]u[ka`a}Ru = 6߲PD%+1m.=2-_;o"0Xr\D0fMlu57s19#U^yWyUYve^UiJf(#v a*vO5J3q>YO)_5V{[+XgT臞MO%$]\ cIѴg 7*Mhޜj0둕12bs뻞 iY1]Ͼ%ZM텾>jlyb;Ufml ufKs ΫK! XG??3ŵQ_>G7$MxW!;!VnAKJ;Ppjs@ DA lpBCC xF(HD  Hǐ#KL8pEnf|1H)*ܙɄ0 REJ$J VZu 6ڵlۺ} 7ܷHh7@ݼ|˷.OIS- 1%0cVj<&< CN y#ALhZFvjzqT AexYrɕ0iAٍeeeCƈ!`@b`DW `hXV1EEV{F> dcӻ (KOշChmȓnk0eYֹ:y1Zmr.o&yMjvKd*l$'fZAp5v9 vکvA$Q4@S7fbNw-um/Mi$oiҔvۀEKt-AZ%1XnZFIU5 *Y4d9&s~8]~ Y=JD 9ꣿw;c8<„|\VU|4&T_}X1\s{,rq`ʉ'AF4۵ٚqe zu_׌N݀u? l23-F|1(vք Ocڒ AP 2>u{jdlzLbGDu#Z!`XHm"__{;5-+ ^w_$Q^uI(^ew'He7j7'?e{(#H%ugH&Xh1(38|(~\G&=A(UgC0KȄM(gEhmG7ShW7YQZl^(cHwi98,ez[WsHL_x|r恿 X(2xFzld(7X6zA&7(%H4g!ot1y17F p E,Xh(|8B8h|Fw t2*) W)oJ",0'<)R(6*oX(In4*+Iwy<Il[>5_B%ň{iwxkŀAyo涇e\39y'Ҩ( FazHvyh(M '-_zi=铃6rXoE+חo6)˘cZ|~1TP9PUI@%}.ّ_a)X x{t(wkpIR ƃcɗ}aei?y(}yI藇z^Յ1Ȓ鑉)ygȋ/xu{y;I9yiI~q(V㘚챚VK>HIhXKCFiUY}:GI!Bɝ }Xyf&'ٝ9)]Cnpڑ|Ɂs"БџQrǔ5)AUrԈ}7IRX(r+tt *(Yu2AU5WZH(6|B>F:N%pA<9Q:5鐆`ףw@z@@ɐhI*{頑)oTA&TzlG4iII~gSJtnJJI :rSз-+?}AFSITT#\7U-YU-(A} ʅ V(G]Հ%p7o59]e ?rYJ\剶_ժ1*A89ʭWlʄڭJS7ijJj0 *P@ g)~&Ȯ$9 IjYmy{{*)y Kuȷ36nʟ )5H)៛g6_*wDz4V*٧~U+=WNy((5tx!嗵v^y | \]RHldrf=]?gACMIln4K}ӹ{,9^3Y=[e4cf hA`}b-k8:q@0;lnMpvҋ#Ʈj|To,? G[^Cy9@k׊~ du|4Gtp I¨͕HYr2Sܧ㡨|ڨe+va}cwzL˸ 2SIܒy~4m̋AXzMx!@zս p @x{ڥ,-lqX̊S JmIMߒ t穩.ξ^K7U3|~2WНj~q\֌m_ _uG]. ^B (yUrl㩍l$8v|WYhm r5~]N㺜-gqsN[~_N~hYf^3nn^耮]ѩٴ>̑^#]n5a̯CA5J#m7ɑ]ߌc}.魞;*&Z s.EǶʬ tn>ڹ#6[id,踄ປ̝U=yNa@EÐ] ܾ>ު=~oG!يo9K/ǘ8ێY+*}~Xc,5 6m>)M]ݹˣ_ Ԓ).dСC%NXE5nG!E$YI@˔)ji*@$fA@3+ P8 gѡ * `fSMփO*YN&[qΥ[] W< 3F>&!Cg‡;\\*S͹!XiR+W*P'\kرeϦ]^}mWTHA3 0T(NŇd3ɄZ%=fwdzٰ^i*ɝ7k'}nw7Lү4Y X8A.02 S« 1S0 R1\)ąVB ;OU X -SKlsxt]z3Õ6L-Z Sr `;6`-,x:K[sxf 9}J)=UJ͍kVz7otͪn_M{I k̰9KNc6+NϢqAdTUn &#;?I1B8+MzpA |q+|6-Jp)sʜ777$wߗ~~lP$`w &Pl^@~+(XA f0|t%*rAP#?b0|1ta x="; 9CT 4Ll.lBvSa_0 !GD4ψ;G \S 61;^a Á? a5e8(:q%d2t$C9T&I!Ne I RyxDx#%' 9@C.1#E{8%Y9G`%&M$`{l%%(GjNf7)MT<'6Jx*t1L-SblyPDI{(cb(ERʓ\C7Y(NmaFyRm,OQ>\HPMg%ES*`,H7ڀZfT-ˡt$*+婴,X^ UQedszV;dhiJ1j֕|=WՎY+IEU+Xe>hlvj=֜b8 h=a[[Wv'hEW(֭,iTKLⓅţc0p65ke˱VO#\(O Ѥd(GvJۡוav3n/}WE!=n}ו\qӛ( KN`]+(ܲѾ N~VbX%L~؟kD%(B_V{K='^5LH_?\ o*b܃{{b [/2ƞAs|dx{?v,důr;J\Hr\d(0cqLJԘ @f0$~gzxb/G YNL-YѱM9 K[Sw,i RYFhT7Mc GP^>,4PK̴DmfRX^^ٗjdBlXfqdJ6ޏ,j²!0mRńJ)y[Km:Mx۟6[[s^}dGK&T%mTt:U~+%u*U>Jщ#G6#Ep-@`ZA89)0Xx?ud{C\[FmzJ;|+)ܚԕ('^R}z(A:./ˌpj'a=5ձ7%s][SIH'So,wiUߞI]17D~EeT{Ѯ2<, zh+dqzZBLOjn^@FlJ_{:R2gH;{[}xOFܖs$B|F%+6$Z? > +l{%=:Ϛ9j)-2 |9_9 ;%܀;q[ Hs Txc)r"A被"z@)| 76j+?Jo㣕 3Ê.K PCr 8p˷2)5d3k,,0<8.B2ľBD܏Ms@µ&˾DDXq2r==H L:J Eװ(DM4[D*DQlE 2EUE(WEѩBOLdE\ ƷEkD_T^D4a\F c$ok3[dFl:- [ Cr/Tbˤʼ=KJJ(rܥ3}R/0D8 +Y(K E D;#G&4-k%-qIcA <-$;-V DA΄$R"2? 8TJ͆0B̊jۼ4NlI2tξ$\C|l|, $ OgOO$P{1}DlT0w %cDPt^KO3;PnMPKh$MdQeFUuBw}L 9H`.LJ8=9% -':RM$l'|'ɗ:J::|+,2;*ͨLSث-%Z%-}kʬPSlSd%ڋK9*TK}*[=c%>*eT rG][B Tɜ'Y=*OcMT+UQV}0YLAC-B.4@lMxlVq M +ArAdbEH0:%î2îZD= z3(3}ܳZUޛ ]ۥ^[8xܾ}ޭ%-h^]핊e߬5=0H_4m2PD-]mݚ]%ۮ]Ĩ]߭B]43 [ڵ]٭Z%^E f% ]5إ\`Ze5-\ -`$8}Apb:h6 %Z.]^5c*^_٥mc}b0ڽ7_V]$Fܚ,nbc/4(^328d8[FA0ZM؍\1f&^_RMSn>>:Avݞ &P6<`d-Ѓ=\>hm^2m~Qm؞smھ\mmJm8n.RmNn3Annn.ann'nnmn(n08="@| (0 8 JnpPoX"oov o ֈ.Oo& 'po|p( ψWwO _ "!&@+o!_v*`?!o Oo/&7&i)!/ p)r#*? ?/q=qb hg))h5Go+@oo''q s3s)(p @@rsDpr!.ro"Ht9G(0vs&V/]FGMo A76oOoFWv[obpNPgqwv_7PspOuu V HvW! adoZ?vEw{i_vWO/:o ?v%8o7wJnMOO[o,?>)vv[/v^牂ewo,0?rhx=v/PnBfx/_;g9Ox-u'?jxNzv{/w7sz wep6oR_{WﳷzVzhqߡ r%g!jtxv$|G_v| qgZ?t!pmy4ߡ$||31v.}Oߏvs柈~W~|Y~~~ّ~ߍ ~a"_}/_Y ` "LP@B(q"Ŋ/b̨q#ǎ? )r$ɒ&OL _T(0&͚2m✉s'Ϟ:{r(ѢF"Mt)ӦNtϩVTJ0֮9|*v,ٲfϢM6jH1 \-Lނj,x0Dق{S׽P0!ċw$2IlBf5KWix5֮_Fc|k T d.⽊7ȿ!~zsꗱC.}qoq@8C'-g&b=ϛaz| gc=(Zyg]8ȧBARXui7nmHc} ~%V }g [zw"Kg03UK2I݅eU uSw7"y f^㏦]fe 9]i*WhBM♧{FQVY6]"^Cg|,Ir^Ƣ/vW'i::bqz Aa hh($+M&pI뜉S2۬f *ׇޕ*{b Gx+p ipl:[* -FNkP'Yj:d'Y Y}+@v1Mv{ʰ#æEc)'/3eE(,ԨCesE83LJ@Swd4EH4&ӛ cS\Oab^EH\/2ăE \P(4<Όg|+21D ?,b9DPu"H%@߼)M*h+@d\+/A_‹0TtTh\Њ9^*+ MeCK]fa?y8UIԕDd/zKJI#V"|͹Ӣ) Л$L$!3ᓁz7' &01 Z3T(=Kd6Ϙ2ի5MHN֌\x FgG 2k0{+_ Ey58qP+cW-(sѕaW9-3i{m,goX͕;Jd%]-k[+;¶mkk6-Vvw .qm;"7q\2$ҽlZ7ծp]bt;M/r ^·qk街կr]/yk7Q| `8>0ߖc @6>X'p[la&& B\X+Ne_v.2.  "0p !; <f8@`YKVYH6H b wYY 8rdC1 6+8;x g>9<OrNu0G8\j #.qYS79!.vc=W 8m5eG3y ൧l{ϵUvmg8[Іz];%5s4rk[۸~7)cxdLqPar,8u[;n8˙ov<0׉8O[9]s 0j[^=*|;_£*2Nqeyȣd} {V5/W>|J6m[_9ew>mxo2g~o a^5eQ@M\ai `9UK,@Ķ_i e  ` ՠ v nR` 2aR`2]:Njraa`aaaD[aaaab b!!"b"*"2b#:#b@;PK1 XlbPK9AOEBPS/img/spa_tasks_exadata.gif#GIF87awڴĔdΌld̖lldάlnԴnĔndԴnddlnndl欌2d2d2d2ܤ\$VltԚdv2dd2vdvd2d欬ĔldĶd\d2䶌άvԴlΜ$$ʔ2ll̤Ҝ,$$$nLLD<<4vdޤTTnlnnlvT~|zt<><Ժ4fʤdf4ڬf4fڴĪʴ4ڴd|4ڬdʤdfڬʬfʤĺddlrL<>dfDLV,μd܌t||\Ҽڐb IBL"F:G$#0JZ̤&7Nz (GIRL*WV򕰌,gIZe( IJR0IbȜ)f:Ќ4yL]Z̦6nz4%/yhJgKbĩLE cxRF]*RWԣ)VSզ ` XJ҈2°%m:U lk\aÓhU+[ZSU4\J׹t~a݊ u+Y'KZ6D%0XV5hG_“ի_ц6}k]m-&M{gfEΊ%mb1yNZMaA[խ*d^w xKr|.`=ʕms9ޥF.m^VjWK`ZM`Nl&OuG9MNŒzKvݕ30? XtV1]xƜ0KbxE򄑛1YHi| ·.< ;֩X }m,\I1Sx3CgIY›E-ZFϞ|XR҆veN{*V!lKSӰONָεw^֧H(MbNY;d;)SζnwMrN7v~Mz샾~NO;'N[ϸ7 7PPEy8U~O`)> 8Gsĝ?9е(EG:)<5yӁtHV}F֯xBvݑ_z.v|"/;ɮH]nFjǻ{t{o9s]ob቎/~/{ķHǼ ?0d! Qs1oG_PP"z8E0Bg= L!QE >O !B4 HD烾>OEwGyHP߈~'|"@@ۧ}xC~x hC8v'H xwZyW{` WX{P|*z|'~<}FԁKk7CC;X'xJ6؃-8QSHFFxcXwZ~Ad'8{}lHzІC煷%|{sg`yRjC׈$ty8sh{{u|IuggEez}i$hx{M(~wB@ȇ7}HwDxvNj'5N؋V0h~z|wX(Fw渀8?Ćx|8D6(s茅W}ϧx~W<Ȑ8aT؀؇vzx'ިC~hHDHDD3YEL{PȄؐBĒ}X> `iTM~gEٙCCJ`HX *ܳ?Čj̳{/Y<ǢѼBDy=g}F#E%>@Q.I^`b>d^f~hjlnpr>t^v~xz|~e~舞芾>.~閞闾>^~ꪎ詾VfM&gnO>eVM>O>RT&Kchz>춎PQRKծ`پMN^QNKMPPK\j^YJ~K딕Tt `J  `$ PI`? Idd`O~J,..,PJ+?Y9O` DpNo0DI`\IXFNh-/I0LgU0n>JPIo?t#]??/Җj/mOV{oh`VHK'pEPI%`9Z)Ip?6toI@0?I_*OIOYoDI?O T>|!а l G+I0r<$K'S`aÀ-:`BHADutaß1UJV]FmJXU(a eɖPOrgT297 ]X_=upa^ƼU@wx4V\ _mv݈7VؑV&wA+vh:$Фml{3/^uqKǃlAV#clp #hb"IBh'"C)'T)'’; i&B@0A 첯܃ wFRH9!z㺢,-;>*<l,Zr;'+ )y'2M193Z`b;HC ,f!Z 9T Q;T.$)IHJ!UA4PXnN>c!W *Q=JUC"pĊ슃(G IC "HX`I 9jAjqeHDr՛ЌdDZK}7~<.BVv'!IR@$ipJK!H,,$"7ma0@2lA &@-[ H<9[cZ06k+N8.ޠu0dk"-xmD2B 8/ɶEEik?Q$snu"INBM.B EX Sl} A]0ڌ7MSLy$FBlԥW?oj-k;h8T4XȂ{ZK {QTժ\` ڿJjWFEF)\@&pmDt !$_RqB1 F,r4YF1]b-ź03 h˟%ڠX>) _x40a Qvr:\;ZҸΪ=qTMaGuZVT'TQH"eoɵ]53C- hTckdna7Pad mUb,b,0@Bbv, 0ˎX? l:Y~;?Ge@S,͜(5@ `ו,:1$ rOYeR(P$Z2Zc["qt-?50}ȝ$" ,vs^1ȡ2}i c?~yյgm)=n/K \wd3 2 j8[rt(Y JŁ|T=9 8 N+[r9 M/QzՋa" hW U%ED)ծ.c>-!BK`PCփE2[wЎjկ a/Вxqc/7M}]fj.x Z߽+x+<io _G#rv:(V|5yw}E_McG}TS/be|}eү^*Ofܿ߸}ꬺ2GJ¿z'U_0\J>_˪2,uϟ}߈)۷?gOCi{ @@;?u+$[Vys@h@ d941 ;><@˃59AL(#H ! A,~2#T>&,A'\jjA)lB.B>%B/ (\B2<(1LDB43#$DBNkL4{EdD>lD{D?d-39+8M=U;DCCP ŒIYDDC;tBVLOL<[>WF#D^adBcLXa$Fdt*\TFdF[mFOFh,ksDtTudvtwxyz{|}~Ȁȁ$Ȃ4ȃDȄTȅG6iȈȉȊȋȌȍȎȏɐɑ$ɒ4ɓDɔTɕdɖtɗɘIܡɛɜɝɞɟʠʡ$ʢ4ʣDʤTʥdʦtʧʨʩʪlʀ;PKKb##PK9A"OEBPS/img/dbr_process_schedule.gifADGIF87aڴRԚrrtԜԜttt֜ttttttԚtּtrrtܼtrr꼼t|trt4frt֜f4ftf4fƬtԮ4t4f\$VltlԼdLblΜ$$ʔ쬺ĤҜ,$$$LLD<<4ԺtĬޤTTܤtrrtTzT~tԼ䜎tԮԮ4tf4ĜtftfƬt2d캜t424dtԼ֜켚rtlrL<>dfDLV,μd䌒t|||\ҼZnXzr$XPU^*zi^^}xTT_cHZZ(DG#`y% P_ob7jv!hڡ6`FX V WZ*t);St&fקJfXutlZ&-Y{^֭"C8kwJ&Y ٧N^cɚ`)u+[︀VҔtwfCuZۺEzg eAݏM nޤfKy絘'7ʚ˾Z{ѥ]{!Mde&*j11G+2,twfKe6 lXZ[̒Z$uK*z3Lߖ6ʱkVr1mXo ߍn1%W}wᷭ*FuTݍЖn,@/^|-eɤq7de?nq'=<H6(vL>[~o t6۱mc7CR,s]kH}5(H '!=aq2(0hJຆ.g*"L*R4 c9wuGc5l%CEV ̢x,lL\S Y.0`R6BxFk %FY+Y# 8٩rX:#/L.s| +>elH4&7ތJ$ω;IhfN|Vq%ьAQ6*L9uI6fw1/lSd6KIJj^PtO_.e% "ɜL:Nΐ3(DSZdn[֗d mlܪW =sYbL0V.k0! վfk˚/Egm2D67NH!ǝdYG]nx` &VRhFxx( [ Π|؇krzinnĈ"!h8hvyyw G% @xa8WV[ zU ` 4Quuٛۋ\&qn D $U ڞP[y8q;;X;+\U{[]˸Ue+pEܹq9;ͺ?(q"̝* )fyw&9Z4Y2[jKL ̛dEuew˟' [K7:5_d=p-:E~2)t9~̢t7ŝEį;ƴ *{!Z깝Ⱥ ǚVYZ/+ɵ /5 ˃ezĐܛl~*=#<۬VF~I <Lį y(ˤ|Jj©6q<Ф }TjK B=*,' 6ͳ&*ʹ`+u I.]Au1輞. =-f{?*\-L&r54kT-: ,jZZhyҴ®pMI3[tF6}ږgd0 z#ӎ0 pVWdz7ے֘}1=ygy [G똁۸Gā+ 7 ЛJ| W-Y| oܚG<<+Fz5 ܹ;\ȫd\Ž Hp΍Dܹu0< pnL)ĶP7!^vy-9&|J}]4q z oܐm5Ǣ֭&Pۭ%/c]hVSdm<myykȘ7U^~ўӾ~ЎҮ֞~^^? E_@_7 2$O,#_(&',+0;8EZN`,q8@!Ka&>JN0Sa)@5OGE+6*%I^/fEqcie@dOw3mu/PIpMI`˨\uEzʭ!Z׿Lxmg~j/R6#1[xuoik뢙Izm}s:/m_OF*ߢ\匃}Mr̄? Ży]v˖ֵt!j%k  S*~]]kç,h aBA ph!-l B4aHLz PɓIKHJaH17>%J4m,yrL hSU"3*OR]zM8!Ȝ`d'HKW\uśW^}X`…w ev "2CC{xy3(f,i #csL)e UCZM,Yͺ7imp"ޢ+MTW>MKA9\fxm㞟ݥr 0@$@D.䢪,@,B(;!jn##.ʀJ X79so䰣 Hlѻ& .sBɄ c|3P }1\,C,˯LBdhGBC|nD2QL3O=D{!->L I+32s,\ ~HuFIGH u|r8 C3SI4eP\$~4Yyo[m.T'-??Zk)Pɩr: 8rR`%p*RH{מ۷|7߇?l~?~`8@D`@6Pgq`%8A V`5Avf`E8B04a UB-a e8C7auX:Ї?b C!шGD\D&6щ7\8E*z0Ub+nы_F2ьոF6Z+mcH7юw^G>{4vE@0_Z9F2c$%9C@@4F6}"&9JR,\H$>&d#@e.{wA2B 59 GBҒ, -m!4r| LFnE e2o2ДfMVҝ/1F2ᘝ'[WƲ#YMZ X'>)rS m(#9PmhF#,R$GT S'"L|i:]X~RTG`t3`5Q/7mJrvӤ>T*LWPF2ThH{FҨgE+]XKQ2MUSyKan:R3;+2ίVfhWKVƦߴVSf=]` u#SDts+JY=Uz2Ҟ>5˒ڲ#Mʈ.ŧOeUֹ:jz4Uwkq.Mew΅.57Pu}n|qYI׾bD}җ0`fo@`7p%4Uqn`}'>SD[CDp׺g'%ڒw .upn"m 9WJ> *qSEnr{L}&['vLG61lgo {*6`NmjW%rm$Mn%.Wltgn|+ˁE-q'\ڛ%*dژr^W = A ԇ4AH pTMAo5^2n'㮞]=1K-  (mTRzo6<vhdExWIKÙ>D?]3[ ld "2pm.cJ#,6K}n\KǽWn8mzQE|bpAZor~%??U@ ciydz>!%ѭ4,F?B2=mĽr[ CF3Cњ$Ys<TF ZAʠ5'@=;x CY8:QcIIc#!V :vyB{¥@<8 "q5[n+A#@6\CWkCBrA <CKs=@@Ը B|4;+C:,4- P )9 TyA?hk6׃ nY%E{CCQ89FKD!9 `ķK>>e>jC1GX5ENcWK3`GC[?HY), F)Ȃ - EaJ3 TN{H,ƎDIm "ɒ̙TI=:I bɖIy ɚI%I ɞʴHTʥdʦtʧʨdʢğʫ-ʭ̨ʯ<#˱#$˳"D˵"d˷L"˹"˼˽˾(˺!$¤4`LTyTˤ̽LL;4J F{A7tLTIL BB5DŞ:UF DuH5HJ FL JN 4OU P%REU:TeC]VEYşS[uI\Uz]_Vjab5_EdeeV\ughXbjVmP pj%b+qrl -gtJbW_ݣ%y턾Z(Yȫ|M=z(LZW,ˊt5؃ B(uV"JbګXe]դ*-X*c]U2r*R.jYחW%Q$.b BReUjUZKeڦԧZGکUTkڭڮگ۰۱%۲5۳ZCU۵Զu?۸ӹ;ۻҼ[۾}Ͽ5\d30110Hf V01h;010Ʌʅ 3x;8 7E'=R Pe 0E]%X1\e+4(]L0h=B;05׽,ޤ= 10](C<84D:Q-:5Ā9/4$Љz3E^51?<8 ;[OЉA )߇1U;<:80͎pAC1 89:04^8GVi|_|Ȑ^]7(E``ݗ/$[QS9C ] Ea*_I506h5b0>ǓR4c3sY66U403Hu;$ΚY߱q9 &.5d`\Džd1C\TPQteYnUe\]Ĭ_&U_$bcFTe.fvQ~ȍFmBx;\;5d3pD@]gTgʤ15gtN]]SMvng]a=,>"vPg`Bgb@_:MΎp@,h1x]-VJi Oa獎^&bś(6^~b._,>Pg18:>&@^¥P3PdFvdh L~UgeRFk;~3kֱk뿖l#. 9eƮ2?6 4-!acUXl¶є#lўl.Bd Uq/Gj}9o&b__sAS !\ ]rVA8@c i26Ft$ qpww& Uz{/e5Lvdێ/x"GxRxAN *管-ے q*j+yK_x^5!xx'ZR?rz'yzf_x"@`BZ.[򁪷,zKx7yxϋ0QH_xVixyx'! ȚRPib諸Ny _'S0钋g&ο yɨ-'"$oyryKz W#{'Bz}Es/~Jz7%lxb&R|pNPRX~~%oT/g1V{Ѳ!hNQt8R' !%胔AK Vp>At|B%$gҬi&Μ:w'РB-j(ҤJ2mRa39r!;fp!Qă?x _18 J8!T!fxz!8bS "e(>"e,T08#5d2DI$@ 2EJQ$/^X>)$F"$I:AY$G&ia"S$H  dtTXTk gs:f$n)'v(Y`9 "I)g]p z Ԥ򉩦z)NZgvjޣj$lǦXj*E#K5쮽,M`!bTRk-zf^'P 0U;1[Ȟ:PmCB{'I 4 ?cA v1MU܆}q|Tf'J@ H9qH#Z0P4M73=F#}FϤM  'b@Op|Cfn"Vw"v^ᄋ1\'N8>TPPC{};c#LS2̹+5qCOah؜G a Z ^A `p{ݻag։ocƹEH@ Ч)D~]_,O+mLI7<~Q4]q"E)*J &B4a&38<\FBx@GЀhGⰒbaux _;Fe0?\N.1:IxE3@;cWct/ii=rC R0I3B@Їpg2r2cY5>KsF&#y+_|R'T @J? 9 BAKq` mCG(E̝y3xtGx!<IƷ.d;J&'[=iy9ahC$rT3 ՀJuY^]W586SH .M|#PIɵ r&vū^m(1jˎ9$j".` ee^ꓧDH~V*b>dmm_ˢڹ!neC >!q"cx֛On~+"+O*1'VBZ/ Zx7m39ozu_ꗽ^p/|&5m8lrY!ѝ I>XmYN쒘?ڵϭj2`ʊ '1~_U h0hbx>݊A12 (ٺ%2: X@T`,W /551>2^2k2ViwXN\. =Âk;ƆYXNJ4MD!4I )\0iԦRꝴQ2A] 5P~Va6ecC~6 mhڛNmk6}o>Mȍun7w˻&1}W27Բpv|S|>83^k?.7'$?9kc򔳼Yc.s|6S\:9Ѓ F9яNS:R:֩^s[:c/;X*̠DaۇҕdwI;{u$p;MF2B)|PF|}־=?L0AO@cY }px7}?"(YP^1a<6;PhKu_&T^&'}ӻ|yk%$?+4#|fKiK)ߝ_z~_L^%_Ik9U$FiFp``^M`U_ "D ݱ @^9``W<`]E f _ Vauh`ݠ5FD:Aja@fRa͠MfaD&@ LxZ zD!]V4D`!'* F] L`V_E 6 ~/썡  q!2"zcAT-!^/8ٍ9P9:L:;zK;<2c =#>>#??#@@$AA$B&B.$C6C>$DFDN$EVE^$FfC@Tru"be:Fez,xq6'l MLހW^U|'v'9,mk"mˡ,٩Mg[Dz1N @ֲg(lYx)T&ymڢ\­1m9mMkbuR̺' l f04i`&m")n2An-٭OؓJhw@,xĪ&ƒ̕xiڮ.mLjiRR~Wb)keY!vGƩx$gή9Io1oxPaY/xhyqw*/B﩮o(+/ow/ﴩﱁ/0v)v0Ap9pvHs"kXgDflN0}enYpqlĵhfnrj!okkxBE0be@-vhmnb+pNqY +*,fJ,qRKN~ z1UI,nyjx^'*,u 2ՠ)㦲Pp\$+FiSmj0dvxGm^rܪm63?2r#Sgg,.,8-r߂ .EFF.߸2_.jf%dsz˲P @ĉ#nvΕJnH7vz_s`wh4rJ4黈H8U[Zyp;R;פ{I$|G<ˣ/;6G<'WYNdfDLV,μd܌t|||\ҼEyzHZbHt!^7o=G\CѼi<ϤKϒ6{]{>;3to6QvL*!Mxښ䝿JO9>/*NX`o}ԞeSr}K`羕l&N+aU%-}[C&fCb B9qP%\.$ayM͊(/ QDg&h<+ ߺ%yik2+'"Fãu=qZC Mk2!e% ZX(&T)-zbև7I_U(!&/AЇ_ 判ƙ9j|l"c:L1c bfQx:$yE=!UJ#^{T5JI Aڽp}ӉXhSIzn{zO;A,T8-nQʗ")}98nz##>ݦ4dM,ȈH"t4)dPJ DMqhϞSxItHMRԝ 5'YTJժZu(MSoիz` +R"hMZֶp\J׺xͫ^׾ `KM]U:dZTz gCKҚ-jWֺ7 A%[lU$G 0mm]"\@ Hq\$@r\Dbսnnd8 xK8y^r5/KTBw-).qi^=ؿp{+.0n <1{ GL6pWmE|7=,F9%7~{K$BIЯJiGTYt",Q[AŽL GZ沗S]fJf>0Zc:%wu&2A_{ƃޔ3a$ѼY#7M0BΔ>3# '/_q!r`W.Wc浾!ձ;ѳGlp2&%ѻM /2m`;5 BnxfuYjUD=J}'8Lj'^q@L.OpïF8QO3L%@>u8gQ c|<~{vɁ脽oR]yޓmHVdh.P^OxC\s߼/?;S֑p(\'z_usi_}%M9dkG>!1D\NI% H \+޴Fq-eǻ'XFNoQ W'zRc>4D!!zqM'K`r)g{d{{8b|dt\_uj1 6d&#s'8'TsWP]kVfٶs΅~fcQ>d78q{uR'F(q'u'@z!h8uM&3tK'bXGtXAHvoL8qCW׆G8Rz\(b(aI6yv ( @ZYtaKxbc9b^lspxɠ ȕ2 41uiP\EWEzq?W ٘9i `(Ti6Kf's٥k^0hvsF db'68]6d\E}:(9)9'ec\ixǝӅ%nibО9y 8*Yc!`L& R91[iצ?j0Wme~8WsfjWk7faV`ᗂc}-& FW'~pxɣ)ԉp֝x٤3AAj+6GV@6 6rP Wi)r@ vG"wx)c="zfmn~ J4enwk,`UeX&s]eawfj`qqfix:g*]ZZvG >zIoJ x> :FꤨP [m:in*!\ ijPFi*j2qS[+gour͵.Aj*]jך\ۚҵynak }·w\ +nӵ}[[hۯ++jPƪnޖ{d+,}Պ fCݣ걨 fx};Qݠb\Ҥ$]Mӊ,@MJ:5:6ʄr,ֹeyyb8'|~wՊ\)fw }|]kkŒ)Zj ȭ J~9~( }w ˝ .8Ξ oڶ%( v ]8Mvਗ਼D1{g& ^ >N~n"!>&.%~*>Pq,+*!)A`8:;>=^?~A<^>n@BD~NOQP^RnT~Z\>^_>ace`bdfhrsutvx~6+>M*~^pl>u(~g阾u6Z'^h;>Cټ>QHqN@!acM?~Pq./~`n/WT5q~.n6gvJԷ=n4q+ܩ|5?^opk`^xfڳ&LAd5e:u@˲ej7`=y7`1 􉗛gΝa^;͵EHF6 Pl\K( `]6ÂWeE\ftϯK ;p ߬[B֜Q^@V%vB(a7f@ilV?sRϺ_ڥ Z2s6Ϭ[i6Odakaͽe= E _?`\xK`Hl|P*;z !)PA"J$ @.lHE\@'L)p@ [ D"] #H2b4-4F4T0ʃ -Jsi@ դHt)F"Mk/&5Z,MFNrʈHg)ӨѠ rؑ' 4Ft ԪW#kU+X:ZlG))1])y ztP{}\pōG_gjd{2zqv Jzߨ1ҫ,'KBrأz&W>l* (7o;!p;/7@zmX 304h1 {.BBC=@=kPr:C:m$C#o8ftE$ihj<f "M±0;H3-!+JBq/7K|>#>O?4ߘ/\J7/ ҟ\Emt34",)EOTRRE:22*CtY=]^bѫ ms‹FsĢvĿRJg-ѥ´f-d,M31KT3 1HB;Ө\q`?[M,xEMJFb7Hw-$^_2TUeUPG&d> ]ma-G?ӎECتfu1燫DZ$fB^MVVÈ31]2) 6X e0@tmRQwaCQtYWYF0*zP[(M1ʥ]߇ɐŖ+ە_qn\Oo=_$p'}&|?ZhMvMFٹkSO6"0hN"@C]ș\[:E < jܜi9eK]Cľ),앾NUƫ /=ח[? $"|#XIW /yh#\fG}0RgE@F 'AR22x;"ш]r$FQC y/S5ž4_3j^iXhñeʖ[%rN+ZA%k, G.ү~Sd4mc(JTW^_ ]dȞ1.O0P;e''">P%T(bɷ1^lٌ<)1PQ#0SWAA#")8Mjef6$Mmvӛ߼rMr1g9չNv'xӞ9quO~Lg?:Pr5P3 _C%DTh QvԣiHE:Rd%EiJURԥ$=Ke:SԦ7qbSԧ?jPSըGEjRj.թOjTѦNժWjVznի_kXUլgEkOɚVխoZ:Wծߔ]WOyk`;ؾ! !G{gcXQ-'fYrd%,OQV0bZc5KY:Zf*NkŹ-V{FP\n*%pGZ&].tS+ eȄ%nֶq, VIT6&hok}׹Sxm߄%HТ R[]W1 `KtM" arVV#*r17%NkbJd8 /GĸU {Q:ޱzGe n| '! rc7(co3<))UhbI|de>̛"cL2:Lf$ ZUsU'b@X$Z,r !>B!PwOD}4ey])_ӳN kA;./a{1".#Mȧ(>Iz5Ӯvcmߺ6;2KApwnt}knX &wmxXݜMCAq߻֦1 nk6Aq&RpZֿŵ'#?w8-MBbڦwc[]ڷ0F};s3od aAËFDFjg"4\,I\FS[IF*xD DVļǁ:,W[-2<[l3IyĬ=K$ ʽH+ 3=T ɎzJF.@J " " Xɪ 9<|l K|HaKN3d\HD/k+ߛK"0:2c+/L/̌LL*̕L*tӴѤҔڴ۴޴.M4DrdtNXlNߴ4DdϴRܪϧ К%M5Uиu) Сj eP S@TPUXUHT8+ EQ:VhQUhV8+Q:VQTpSxRW@mQ%ͩQ!R})RTXuRj-)(E*S+%+R%R4})07-S)R-eӰZ:e)VX0*MR85SVSAE)=S@VP@5G}M>QKRESIBTFRFSO*OEՎzRSWUHբ:UF%UQ=MUR_m(, RQ}Ucu=֥ e=TXWV1]Tp֤jk5V)RQm=l{QVQQmuTtr-*rxuoUu}y*yWv ipWׂ-'hօjEXՇu)benMVT؜:،զ[5ъ^؛ؑŦYQUЈeCӔS}ٙ*ٚ5UmTUYZ"BT-9ڗڤW@ZmZS3Zڭ%9U%[R\}S"#ڳ=Pێu*S0R$۹ )@iQQ: ܒQ5QUŕO=* -lLDj)&ҵ>/]%JBBSE:CĄ'ݝD̔ ؊lݽ¬ص9;lbMۭ]ܓ`,0OMիM3-#M1K3>ː^{z -R/!z0:J}%_ű/Ұ*3&#EEGlk"{D-[5ʣ\;}mb˸ackpcG(7g{=S *Z76n7+%5PLJ)2m#E̓ %,ŔB :D;/KHv9K¶Լ[DM 56>?ukeXSe닿@@ hĹ {Cd[Vq=$h?ՃEC>ؽs>Ah6aOT8B6@p˾R< N@GB^ôdgB&O6 L惦dAdЋM>d @΂C4eBvEy6ǹď3>nHYDLȄ_ɄYisHth^g`F^icLGFaUBx|dd~D>2 EJhd- Hϑd4 K|kπk˪ݗ|>k<9=J`K4"3qlKTʽ|k~$޴%LDkߧzL[WY|_em~UmCM6gm⮮6(V(v>('Pno&qP;9fo :;lƃ;H1ު'p!YhzzpGp OppjP<8qwp#"&WjJqqP&"qqqo!&#q#*p&p%(*+_L;ȃ<ދsa 2 5q47 +p6_@yqwp7(9_$6:g>(='wo<;0Gqςp*oGH(@/tOwruLGGpFwu'R?)p W+(S?QOo'ZtJ_Houu0[7 _Ou&ovvN?v$X0/ue?pLgXvM/u\oTOh+>h__\]e7wI?JiTufot@wZPGo*8 ǂJgxmvP{o x8 vr_/xKxfxXzx1UqL[ wxwRyw*w/xOnwy)puw~qz8vhwgzy&r/9`?z~37WPLw)uKw?{&G|e|wͯ7ǂyhsoͧZpԯ:؟}'}t&8=||هϿ}z}ӇqrЇw}|Vs(o~/v7{~?g~ˏ'o8)p(@Z+W$%K(b <2Ea(R>I' D2%$IndaA(0JSVLra1jHӢOj)c$0 -("TZ@@'*(W%T2VKs<($F9b)؈_ Ĉ0%kӵ;xlݽsVyҤ*J=J#i*OYEKӦ*k{[o6sAeC<]|mѧ;7['fTcg.}t}V_Uak^"v˿g^Z˿bW"PIep_L]mF|" zMZkU$5G[hOEX?) {!(cmgJu(bg'*vSx#x#ji(b5VsHvexH%tDk'X qDROjYiRZ)o‘Yu\ fWYn(JsIHbnԁ!&b}Y>:U~zgn%`QaJ8C6Czš!JfV[뭹^陆uN ,rbgGn<K^zi64(u .)dK=IdVeOpK;)/.Bnޑk,LS<5݋r̔&S%s !OGXC _g0&'#Yn2DbGXof(PP}t=gt}HDH@$iboXC?{,Z"BG/^{R(G-oOzP@J⨏!]7$ L8uHG9(d +mɴsZT3Gf$ldikOp\^|"3MurRFGtrS`q%pDr\A6;D`T"@&*\*щRh//Јj(HC*Rft&hI&hJOЁ]6)N )P:јB=*RTA)uZ*TUJd L:TF5%42Py'%LjֵG`*TU+I*֯ʵ~+`+=,E2},d#+ɚT,f3reV#J:ϲ}fCtQj}Ҟ-p+ܿGm{Z6;Mp+R7]Kz8F8:ji#=H%=U!MxL!:D{{Kibxo$ .Rg @3Rpb-Pti]rY,#i F;) ^kº(aoH Ib,2"4KmnlQ$-gq.,) djM@Z1'H'@.jMAIj<\ T3Y+srz%6A'RZ9,S2%\M(U+%'UFruh ծ~ud L,~QjX2\\QHUkڲeQzik1&A־6*kna\Hb-m_ߋx }J@ZӴ[Vr7o~kP0Ao$duۅl!eM"% 7sVr/ڤ/?g9an|͙.N|okIJoz 9s>QԶ/΃.<ﭟ]3NMj[VV:֩s^zBVӮ'l;a˽vkջ/?<T+|ES03c~;ѓ~/=Sӫ/:_//<=[m޽/|?g%O&$x6[nQ#/8m#P@S;;~߹}?J1 _6Hx U` r A$ 6QIx[-A]Dv`M`JE E`ggo<. SN Fߙ"A3e&a`WJ"VA!i JXњINaUr>`paFa2 *aia9C!'^6D j!2|Eb"&"!6R!"2b'ܡ_vER.YHbJIb5!*"c&\$aB#2NA̡/cܹ$)`b"M9*rP!.XzY\|Q,8#@$A'$B&P B6dBDDN$EVE^$FfFn$GvG~$HH$II$JJ$KK$LƤL$M$cCN^COv"D֤P%QQ"R.%SbQ6%TFP>TV%G$EYVneRreFRWXr$XY%ZF%VNZWY%\eT]eQ^dP%`Ne]e`Ka&&J"bd[JTcFJ2VRd^fGZ&fnEj&gc>g6f @Ȁ@@ I HQ@k fGjLz&f@ԀDiDfp6nfkv oD'kgD'kȀqJ r>gIn rhdl6tgICga&mk `| pRgzfmΦG~'zE vvg~q&qR'~~FQ(w@xw&Jg 'd@(h%%F$ @ 'qg"ƨkufaDʨh&Jd~' i Dhu^h':g(>)t^&iDrڧ^i>iv @}@fwi`Br(nh iN))i {6ԠhiDz).pި|&v 饮yzhon~.'q}@ i( 8驪 **E*t2j^*En.+y@i'r' ʨvfr (m(~+jk+ jXfB[.gЦ'j nj*zigŒ陞ung Xv)'FF*lw~˦VDh&hhRR^(ӺXlB!l]2p6l|f mةƤoFB&g*m llJF*i̚-eݢDDbxt y2*k*nN. ),Fߚ,rn~nƭW-@-ZJ+)Rl馊.*V'&R:/uVmNo6̆*(v-.rzmp6^t҂x/ZbZnӎ'%pfoڪ2+.ªvgn&ZnmhŒlpf>oz(^ׯ ',ZnvBxް(n0vp"(6V. Yީz,kkg(*ʭN.ub1E./hn0ko1x pR(ή''mquqǬZ fkq 4m0#;r 76e)2\2**r&*Kf+#e-ϲX2.oe+k"[+,.. 0Gf1]dj0d*s`&sMR455g,7I63883Tvb:3;;3<dz<3=׳=3>s<>?3?@4AA4<4B/4C7CB?DO4; 9+FDSFo4GsFwt>4H4ItE4J4IJ;[4DL4D< @Xu<^#P_S5]'M+6ctc;\CcsXX6e5Bc@6b?d[6igv;Ghv;5^k6W:P@c0@uc vX@cT w:wcp:n7lvl_Xq4tvS6k5wwVww{mu_;`o_kv`ud@o;rsu~wxe|k]7ozwwta3wExK^d{xl5Wvkk{7ut@}g7Kx6ykh 5r7/xx:39xtk7R4yR=9Kw8{/9yG9gsyǹwgywOM4?6u`׶]߹zhyW@`@^KuC:o,Ǹ@vUzh4+v7t?m@_7uGowcDt 7#J[;c;PWRTK;uC{Z׺Q{V@;34ǻZQr;L̻5{U뻿;,ow+{J3GOGIF87aڴ䜚2dĔdd̔ԴnnlΌddllnndl䶌lnd̖ldnlnĔΌllĴάĴlnԜttttrr֜trtt캜ttԚԼԼּ̖trttrl4fԴԔdnd̶dʤdf4fڴڬfʴdĪ4ڲԺʤ44ڬʤdʬĺt뼚֜rtԚttԺtԚ֜꼜ttrrtr|Ԯ4ffԮ44tlrL<>dfDftf4fLV,Ƭ44μdٌt|tft|\ҹ!XV%VXev!z܆K[U ʇtق8!6h`bf]t)RerX&L6IT%撍/a a&m$ّ򞄕z a"YVi|eAUbiV%U)f&~] fIdImrJZ|Yjނy*무 _XfTߠiSd"~]+,@ZE?RWknyP-^Txi{5R4+l>wrnobMUsF,5Wi{Y9 X$E#Vdu(ڭɬ]V<DW苅KIyب'޺2swn_cdmJ\_kfcѻIc^kU ¦[la+g7 Wn_w~\枇.褫ꬷ.n/o'G/}goO}\$觯/o/!R"?I: 3Dބ-la U"!(p|L!x!0 gH8OU8u":Ap4ayD68Cw<;lKO G=DjY;6p"_r 1Xy Eх8Q,$2 )IРN( :fy#OG@r3 aHx% cqF$8N/ 6` . 3._bd,:ҁGpxS\CVJ2<)s2r" XRg")rÖ*eIlB3IInPjR֌FLԢA+IDEHUӌ;۫xR7bD'M)SGJډTaIX*ST%FWr aF,)|5TG"d2c'"9ygYc NĘTIv@^3K :,HJ4M֮)&%!!M,^yIҢu `y9X dAI.e`9YcJ 2hB v@,K@j6-5NZ0b:7'ϝr0/([ S-Uw u)zEԫr+ zj "f1XnM3՗2ɏ(okYVЭ1 AIpn _eW&fWY*6m @{1c@l.n@" BEcM>ӗ@P\X>fiPIƀC2KBRB0*8疂oM7,ĨJ3 >zsBemvzƾK |E,%ݰ)PLz"8%^LaBM*ʢmqk@YkLf)KBD0?9ö ,'$9kb-jXߒɮCP{tMN FY4] EnRZF#9#[+YoxVF( / a^E( JB\pFԹތ!T %`6~Z1F( wUztM}GGT2"J4ei (< msӷՌzpM`d2$vvVڈLhotvd!$V6bG @lNO^"eIF)oX-$Om a?z.~,0f?{r0⢠fr>Ǚ=i,s%7ouşs:_z ` kjK/!К};o_ءDCivvi%jC0 3z<0nZĀAFpxgQGnXI'b5dyyvn(zyuy+8Dco(I0ƂK<[{G{A{8֧4 qsN\4GTwj& ʧN45\jP ː +v)t1A$Xu%CT]1w&JS-v]exiH_8kcW2 aVtOö`0t 0DR+z1@wA (6gxMh[ lxo'y)8D:1FpGEby7pd=զnp7Q{PVaX$u5+ P7  !5a%w\wQhg*'Q}c8)`Fi^Š}8~j.ՐE]"o؆F~bj@RW3Cv2a K*F @9 1p?O FK?遗Qvxxd9 :xQ{d %7M2eQxbՃu[KZT]e LILd*x9+bcAt܊bCf;ƌJ%U mOM$3Kp!Z9Xz|O+y_7!acq*/14܂d?:19YՋ{|ѺUKsnXȎQD-^ĘQF=~RH%MDRJ$D>lX E1cNdXFlK"SRXe͞EVZmݾ2s sh: $l/wj1Ԇ|&prYfΝ=Ztg"kRZj֭]s4[n޽}.6HG\rm7]tխK|~]vݽwx͟G/zݿϭ|o)~?$40Adp7uWл 9P p,:L'0"@mJ,G +a1)XTG2DpRljTE"K C`%(4!%"' s2K^Tˊ,K J; &!%dL1ǣn#P(L 6PGiaPxm-CaN[,E/ԿRUT‰S6jR S[QuX!HMD[0SXATT TgU5H1TSVj-X 9uJ L{1* rtZg;eAR%7(6ew;'HyJ(6'l#Ѩr5)OnOf 唊`FUy9&9E(l5Q*86f!ۊhY:=Ƭ?Uʚc)f9' h}β{ WBNTqXKsg ڪج8s,i =0D?R*mZSuƇwzڍ̝Mmϧj]g.(7w{V'FSѯ=7 *Y&z4§G|>UVTs#XltQ'=$tIlr8_l-sb1Y,&~ط7 HBfXK_$a|џc0~S 891Glwc,(Wui1" N 1E2TPFUQ,DF&"Լb8(`LE$+Ia`ߙK+$Wؤ2ht|;5.oz$3>JUTX7xfkWs*uOhE٤Ja)܊bbP2~L5( & ';y0ZmIy-*E /^jΌSk*D#W l'/C$ETjW2 Xkͩ)ВǜDRL)4}0JȪ^^^unW]V#׺CfV+]%VZu +vևkeKfblh9=і@01mjA":ն:uml 2X69mnu[npA[׸= q\6W$unt;]Dnv]vnx;^׼Eozջ^׽o|;_׾.x_ꗿx6p`7p%^OXpv1aغ 0E0K,cUpCyd7Or+dA U{\d'YVB0 e/x0]rw|Ywslca6C}9/Lf3o\@%,5U3lgzϧFuU`IoiQӍ5C%4\ zvǬhJ v3M9̮یfffP/ ώ-qYaMU7 $Ì<^.mmld q8mv wy+{iXx l[^oí^4o n࿝y$q=~_z,4,|e{o]O]/> 6 ]G:{izw,S=%ګ3$=d;@ۛ ?S{ ?:> s9,>cf3/?+7k?"2:$@cú+=3.M;.t뫃DA*;Z7𫿍4Ac;/A:7ճ>]{A23侇BӮCk;,9;?=+QkBT2@X,خ=\4ڪ)ESڛ ًC=N O΍-t>OY|X:UQ%ePX\E]SxQؽdOd>a\Fd4XO5l`u'-Md "jW`P]=Yj6#5tۺb ~"mv0-ngo`m.w%g.Vfk;k&h5翽SeWL-oR~&_`W \~Zoe fs`23Vc&TThXtMQeXN W x PO՗ \m.T&WTPfU^_DjP&tۃ&adkǍ^EϺ]pNjH٨שZh'~ *e^_ k5>ꉵZ.Nb.MNO]nTfgKTe\m4Vabm4_GiDjmTt-aMXiܳ4.F}efMM&M~͞NmKMpM~N_fwpXl TpČJ Oc w7p&-4nMo̜q H<>pp _qg'(qFn)-.w!Oo^p/G4Wsp3_:osB}ͭJ?@="3 ŤCC E F_,tDpݨt͸`M_NgOW H/LS_S Uw VgX u`uTuu`X7`'xuu%X[dtvjoa/hP?hX#pٝ 0a"vq91:fwvՀv}`; > : CԈ!Ъ5yx)3 8|_uwmw$PLb^A2f a-LIxVߕOYٖRs zQ\Ay_QWhᖄz(R?_a'x7xQxgQ"%I21 /%hw j99z]'~Wa?uBOdR  "p9>jO+x\j**Y$R*Rmr5_i'O{Po{vW""~jǢwטC{W 'yGӐ@"E#}Wh Gn^{,h „  1pQh"B=|T,CƌA~)8)(F2͗!uLSʟ@AUI4eO?%CI>$)JDjV;]-k,ڴjײm-܌qHP޼ Ek7@.,8e:xb)q;AH 7Tb y`4̬Y$2zs`ϡG3{賓g͒߸֝+ V;LJK~yy?h`d!e!+[VMk98S4 ~__G *Xp`Q 蛆%OpšP$atB\@ Gvu t7$EyE!Wzu 6%aicEyqKz%a9&lmYb9g6E ih'}KuZPwET 8h GZz)jd&T^&pI'*0+B9aF_ ;,źlP`VyPKz^Z{-*j䬳 u-骻nZ.6Af/{Q{ybK ;p)qy&YR 1{*db/2e29fgJA =4E}4I+4M;4QK=5U[}5Yk5]{5a=6eG6m6n7u}7y7}7 >8~8+܋;nwYy۔c9{9衋>:k^:᧣l3ʾw;{gs.;K/?ڿir |DԷU@g4@?X60rFAmpqC.u¯.|m{ p@m7"p A¶G "K4 Žq$(0/<#MџWALq VX@ M !~4aV:21H=# ǘId(Q+FNbP&G)Z$%*1A`Ҋ`! 52|<7ꆃ甧62qi8\dՆN\ʩp*"˹u x :+HOsQL'YPt h(CPrt /Ad @*  Z҄>|)L 6x5we&K5ŀ6dQH/O)*@G'T'ZON&wP&-!DBJXAZK (\ӽU̜)W.JiXΟ*pd`)z>Ǻm@Yzϩf ^W2֮uh^!QQvqŪT oUjְJnQKƾ7dQyq)ihNv\m j]򙯨jSfe>N1-<%[ x{TMWh7o^]Z︾K[;7ꊰp&0P&QqC<ņw'vX<`9ZEm5b V>"gճ! = RHAKjl+dӎVv62nS6÷C*S$9IЀ}ˌIy-e'_y>nshb4?- W!֣ I^賷4/ޮٶCm,o rU%*=XrbWֶN_Mm(T a`6,l4ts{e3gDL7E1QnΉf6 5B;Tv[mX~w;ժV]=\N7.ɛ4en/ߕ+#. ;8|ݛ8C.vV5{#9c.\g ?\>yK.m-;ǁ[踮unV^? 䴎fn;.ӽv;4lg~;r3r S5X' Y5*R(3WOȗol?}:O#ĆִHo.Oc&:h@Kci-BA!4ߔcS};M21ܠY@r dIr?E]G,AFpAt0~TȀUG4A ,ȋTA`@L:q\ DKG n|` 8  B da] ޤĄ1IsALLT$_l`NDjl!iaA_B 6F-GH!ġ"DA5ޤ$A=LXHPaRCJhHWtGA0xFy"Q(^e ᶸ r)"DLyCtIk2Ǎ8!EH\,D,Q & N3zJ,`Rch@#6bB .#]$ح F,NJG`O`%V$E@) F7*>@ AFjH:N@(;M9[L^4cu(cqMdGjkďK@6#B$r@pK̤LJdXRR"EF"BtdAȣG## 6G"O D|HN``Hd'ڢ5b -H%V#] 0~Z%*R5S2%YP . \$x8@`Nfq#TBU a[Hfd&&e&1 EbanܳTugüimIn&o!aXDgVfo'r j@; ˩`&u^Y,fp" "N'mz&v'y~rlPgm'|vg!v'H''^|z~be&(r'hpZeu*(R&J}槄g~R^fƱtxNz(z^靌(֨(樎(z PԍڏJא.)PjۑMN5 Q]5niyY<r)ڽMuONК=)yg򀏝aOF߀t &)ݘ|ҩƍ&])"*zW5YTjMeXQ]ַ%p]MVҍl~*U f"q7Р,.1UV* SdcO1!|!Rbm x۬+z͚ЧOeY6eFE;=@ 8R=AZHIH9և HYB)FM:a!,,ݦMb䊪R]۸VQOYHE2>uUZ#WU[ UѾXTֲ~)v)A ֖̍C,|mR?fwnZvWPny -;9:f֚lfpMs*F}~=Ub @7-=w9".֢BXrZ:k*P}mFMj*Rx@d@dٲX،}eAҲ*@ &!eW /UH%g)&AozCӊ9ARS&}USkX~p_ZRPO!0ʪr э!dpj 1p6lbs p%oYەBםTcNK1iK1qתMsʽۛVR}iB18\")  rm /%7i#' \$${^(/i&N)\qr!q 2,)N(j,22q.K.l/3lxs"#4Ü2ON-6o37w7388]Ƭ93:3;;3<dz<3=׳=3>>3??3@@4AA4B'B/A;PKQ>L>PK9A!OEBPS/img/spa_tasks_optimizer.gif$TGIF87aڴd̖lldlΌlnԴnĔdĔάĔldnlnnԴndĴnndd欬f4f4fl2d2ऺ\$Vltܪ4ffl֔ff4̎4ļĔldČ2d2dĶdv\dl䶌2d22d2dԚfl֬ԌdvlݜΜ$$ʔļfll2̤Ҝ,$$$LLD<<4̎lĬޤTTlnnl¬l4l̶dT~|zt<><Ժ4fʤdf4ڬf4fڴĪʴ4ڴd|4ڬdʤdfڬʬfʤĺddlrL<>dfDLV,μdt||\Ҽ~˝k,րHVc4s 9 2=̠7 r(yGHjŃ&L WBE  gH8̡w@ H"HL&:PH -̢Eȼ` ,hLcͨ6tJH:x̣>_(L"F:򑐌$'IJZ̤&7Nz (GIRL%%0Hb,gIZ4E%a^ 0yKUL2f:d/o0d5Jb 8Ir󜙔&!/ h4ݐd;YNx̧>O~ӕ̆6gDRfAІ:#YJbcy$:C@("E*RLԔUeG%Җ0U&Ewi ԑ' ${qG:)'sjIu'=&Ә:PT9SJJcE=dIU Đ\WIjp{}266M!!b38M \sg@gd`um.xKWDC,r#g冔=ow3*}!2r#Qgx$ [\K9hγ%c8:5PG4 Ȓ&!Sn򕳼.c_.\6yAp:>\@_b[q,GɋtL:y.r\X?GA:!GKw{GCv{ r<̣~v >.Y4󝉏bnël?+xkL$(!Lbb%n'R}=/˛꟯=%X K _{7_ϼ.?IO/)2XXbX|OB,0XNĿ}c't;Wt}3} g W|~ }a7yw}w#D(w5D 7 C~@zX%xAxGHGEt=7G?wOwH䄂r۷Ʒ x|(za;= ?CPXi7%7FDŽMhiȆOXtw| Xx78C(_de聾J{pxshHDH}7z z.UXz](}sznD8DyIXEKXT4Xxx58 WC?~z~('8EzxTr(Ȉ؊{xwhgHtB|Xvj(}x鈌m{xH8EsF1$8sgyčHyِo؏(gʗRGCz#9u%y'XuؑYx.Y24)2h g}(sQnȐ1I)9Iu+w}z70iЇzC*IOz$QđG97Ԕ}ȇ]CNltk(fٗ25뇗pz{Ky75X9zZI48WU H P$Ix}]'tQ2x)*6xcu8UX\ ɒݸ~Y9׃0| x~x)"IC9|9¹ڈٝ6ww-yisUpǗؖɇ Yp YCړYh)Oi} 9wI)94th igUؠ)6ҹ!: J+xׂi9uiHJx=H ŇYI 1ꤟ[ 9Cڥy.w\(4(~',J}'Cp*Cyb pɧꞶI1hYh9}wX-Z@ \BNJj8m{E$HMd:zB. D$zZ諜jj}Dj(G9DتrJ+BJ::x(pIŇ jCb:$ 9iz*{rqɲ7dڇH;x+zD>^)"7A;1C, Z6KSrx+˪ ' صy)k>82b+8[Ko) ?y{Դ4|i Egk=ĸCkC訓 }xZt<*z௢'; ;~ɳ)WdXz 97 j~Ȁ3ɳ̻`Czйڻ++ˋ}kDـ=b˨wyrپ(~Q;CRȡ3+ K9ˋjKCL| uK̩ȪFj*؃0´逺 Zʶ;X ʉHKv֋&i&LakD ª <ٜMvf,[55[@ 1jK+kXKLdܹ\Ć ǩm ǣ$7׺5iY9$ 8[|xG) ;k\;H \*3 >:C;C٫Ɋ-X̨z*J͢﹖Мk˸.zb,J t[z=*W|\C;ȁIV:||lyЩ[깞 0ʃwk!ۮ~ :*Ӆ-(>h 4,CˌƝhJзh\ˀwJ 8M; y|,~Jʻx)` 4uG=:gϕo<g^Unv,C=ɂzh\k`(i~皐ܱ <+)γ׏s} 0d+Ț|ȯIqlDΘѺD>HB8JT>^zCξLEy[Yம ?_ ?_ "?$ME*,.02?4_68_t9<@B??F_ECJ+N2R_S_nTQlcZ$ Emd[oHj?Nm_oONq/SB&QsPhIwn{M}[MJL_NOOyIkL?X4e0d H? `H _oHO`tOu020\O//4 0dد_O_QN?2P~s`201@@0PB >QD)^XТ $qDpaID倐@qʖ53bS(ŠC!.oBj֜u!jT&PRM; PMn<ą 2IOh 'ij-tk#NሻMA`R+4A NBB/Jdƅ*B +;F!u " C =[% ) 2F$ qʒ42͚5ؠ F"a6ȁ8?ꭥps' aj*p M lhQfn>Ԉ&wL۴T͖H,Q>L3&)0\us $ R](;*iSX:6ф%WAѪ`BЃ4lВ4vA+22 2 r޵C(C`0sa¬+7.5 訄0P٣FAA#Chd/V *#KY:Jh^:M:Ndc}h"≑p]С^)'Xthip mwN6^;T *o!a<d:԰abK2 r X{X͸^1 {M=T(Lc̼u ڸ>Igݤ |GԠ>u# P5@?*fM/_:ӅMv[wBUOJx&~: 4AAYN@"Zg5,VUY:5.7a/"gHQT OfBmG5VXHo ܈""EwQ*EӣG9!g=H+3TA+$1$vFFl)YUS fKXhtc)*,Y,! ;`4l'r3o70l9,֞ hW~T<)STR MZ oS"J|(4BKD<̋hLI ǬBLLH[̒, LJfJZLlG?CôLؔ٤ڴ$4DTdtN$4DTdt %5EUeu P ;PK⪰$$PK9A"OEBPS/img/spa_task_exadata_sim.gif`GIF87a hڴld2d2d42d42dĜlĔdΌl̖nĔԴndԴn̜ldlndfnάllĔn̶dlndlnnndʤ4ڬ4ڴ4fڴʴfĪdԺ4ʤĺʤddtԚ֜trtttrtԜttttttrԚtּtrrttrr֜Լf4fĜtfd4Ƭ4t4fԮtfftԜrԺttrtrtrtll̖dlndʬļtlrL<>dfD2LV,d2μd׌t|tft|\ҹ;)#v<̷_E6>䕔Y3麍0Ylz. 4ݸ+s.װq'v%܊iWz9mȗUf޷]ǮKPnʌ-;gn3t\mqdx7~Yx0pWa`R4EZJ&]qV\4w}}߅(Ibu%G\W.mր .H${ T M,e}ßXj)Xksqن:ߒMzhV~Stcx>Dl/RiR,)yKQ&0g>\af"i饘d5Iz{%"6^D"kmU.2FYjͅX*LJ jVjǁWW?OvHDt.b֙Mne X?[P.J(,Y;fhרK,uyh`˒f;0q 7j䚫n,cM'Z'grimqU1lAƙ]n&qns5&^1ܭv}& Mq_\G#钍ٺU4{u3q&dr+tsEfO'}s^ah6[7y<颛r&_hmrށwXq^f`kηwOw: 9a—gzLޞV[4_&l&|I2G fe,"*ZY4ѱoieBؔaPi`g4kB YB0pyAч]kB@(NQ}_nN&eˠYb6qq =,m$hЁUh>) ZX(@ h<Ćsdž.` [;pbJr3ik;|Ѭg~͉ @M gT£\F>$C-oٶ: nqeBs0 2$'"R4M 8 ZGK[ 'RFeAm9Y}L'|РmyYXt)K"~ti#ғz !lfS ^GMq> $mL%;EEuD"=#9)UDJ-n'VC:ݰn* [8b5"jD j Td\)+;Y7Q<-vQgUD-p6:X M-MF},(MtDU=+D5lij|ФD_ZDBgZJ6C|g2{WhU8B 9]Sq"x Uk}z>`u-l:\sv j1(# jdKۙU'V=ZX?!amL>`~i5ݎ!.Nm%bgkklz%?.6)!$_f(ӽyp8# #Bqrj%e6id'i1hNW5[f>uswlf5<69F38,DoNF;ѐ"J[Ҙδ7N{ӠGMRԨNWVհgMZָhIaNRe;Ў6-j[VJ+n{-P;N}cMz-Xrnv_=ҁG>;=[ޯy8S@E*x3e XW G_3o"s͉0b1h@:5NlC#TvXc}?LQ\ 7 mD XhJ[3M;8 aw0CN;p'Hy&{mˤ,KFi`!˩v. y=$&>bVWԠӤ躼noއ}w+qv*II.7ϯ{4W /Y }=c3)˒ x_5?__-ga3W3{.5ub{3{{!v`|{8vHo@ΰ w( c nrnx'}Xrv* 'r+r?HF?rrȇ<8+WW}|}t}Xփe~`?yi$$a{ 1xG'y >MfɃLe{؊*ي-Yok)т18%'AS` [p P4Էv3(ܘ+8 .H<(pECZYsbx ;X.Rl\#$8.}nI_s(yzQh)ۡ%NG/OC~|IyRwz>VWgy#&%' u(!H*q+DŽ ׌)xi|hy rWOɍZw3qAF=ksݩ"tcGqyx t"S.U2fX%"y t>)y .{*oq2Y@ w3P "(zۚIQ5$JyQ{ ɒ ̉|ڃLXTȰ -rk +Bũ*v/ Kر wZ]JM>Ѕr3֤}JA$j%CLPmbJqHb5D$YZb:UG0JbFkAS}FS(ǀ  ɠ +NYt;-+g0 6m@l pY{۸[!gkfpx ۹  Ts[$[vT ۺ;k o P ;[{[`nۻKl[[vڻܻ۽[+{껾[/'^P_TxB,ag Z"Sп01;W`pa_9| L !LVQJB;q{.!,!kW#L\3,: <,AG\OcQQVc@V!ݛ}n}nK8.TUN@^;v+X^@mύƝ?N_.-}YX@Y=P }㐝v萾M^~$M7^1~L猎CCwҧ.|p].\饾Y}Ư|jݽNлζ>NNYM,>첾QǕ.е~lǎd\T ~*^[]a M?B^^^`?#z+#0nEN0=8Ga9G.C ^>HG.o8#Q#Q0<~R.TN JOQnKO|^/Iz/<6m_ax]q>8B<>ogO呿e.+#}0yn{ >ʰU5>^پt0 ߵT]w>!ɟPjdٯ= o롏osE˖Sڀ f T 20bF P1$H7^p 1+㦊.A4)2N9w?Vۄڝx20iHoI:m"(k⍼Ů:K૮0@)܎$^ïv /ȐJ+GjGX+/X : S%pbc4Zi2XH)wR0,В˦+" -(rs˼(rʔsG<4Nr PCʠ,,˖z4?,k4XX=hR9-S4Vo Si/ &T4);V׈\Ô2ʵ|XZC-&eh"jֈ,6eT M4U5KֹWBb`6J8b'xa*8c7c8dG&#>Vb[G1fo9,jʹgh.1d~h>R鞙(暝j(jqfV۬l.lyj߆;n离n;ֻom+oi{ߕrW*# VOpS '!/i:BZ|dIѧ[j#EN0t$䙴\'0Ah!PH.2E,y?v@)1a CBAhX5Gd!_Bcb/ "GtWQHwF~1NE(eJbh&Ԣ/hCqm-qI^r: j qOlh7d2LpARbB8"=2:BP$ƕLؐ#S&!č,uh.L 4)J\V?>bZYr|) %s-{ʀRye1on!0Cd3E1 Ei;<džLoWߢ N \d9$g4O\j:g-ZSѧ:Y LZ[KIV(H&Yy(pG7L{Z,dOqj +CrUJ1EvUD\O³2lUYH]MRٚri7i.BU u)J!jUz7kʾ< Mu4X6UN=Vv OOӒ/)&$AsLYdg骦50V5ù2Kr VZ51Ub*,'Ei ruˍNlh=yc[6 uI9{[d1%]aVJDA7(]@]0ʷ3ͯs|Vih8< c*tat\泥5G,`UU(3Al`|.lޒ-4X( b씏#75k3]c:VN.pЭ^>3.v5e1;gaQcd]#q>=mՊN|l]tuXp2E)As"ReD \3g>}5? WtFݲ!vd`C HItZm4:w/Mj:𾨤?R5&N_/ MJ6,ڋ9V ~Y N+6ްZ8a_FW&rG@g%܂-wc+ǽVs !%S-jƏ--5\[df5pH~~:/XT7|IJT9UsIZоvbngҹǝqjݡ9}d{hgw%[gxW|Fyw}9yїG}Izַ|`?{[u{g}?|K G~/χ}W H1F0!}+կEL,X}ӏ0OS?02?@c??a @ÿؿK1 [@[<A$@ÿ\? l?H<1hIP|)# SQxB" s@D4? ˆ C$ A[Bl(,!T?0 D@8A9? ,?3C5I67T?BX?0 3\@?AtA=lBxBPBK”D"\DDLAAAl@J^T0Pl<<=DGX(R|RGT&3Bm xk?q,DždHDLdGFy4?G]>Fl~T@EH#\1ņtɗK>DC3T?@|Ii IGStASQ Ȟv$8dDYż$œ 'aJ4DŽLK:ǼCF>$4DTdtׄؔ٤ڴ$4NdCAN{턭O$$4TOAtT}OP5жUd5P O O }O 5ON%NEmNeLLKJeH!E!%#D#E%A%e'?')>)+u>Č-.BL@gDTYE67͑vTD K4ō 4?m3T85A:SCyAC TTAӟKtCAAPTcBC1,?m\E3hTHEdJR-BW@AքŃע d ڳO9]?PwD۷ͻ Dj$y.ɜ˘y2o3q0A!,]^XU<}\' ^;2!sݮ]5 ߌ1212CS!@ !},ߡ9߿Q91c!mI!)]M}`nں)`Ȍ^  ߛߡ_. u)X$dk+1R%a*%J2$y##u"?/J`9aDjn$Oab86'*#F:#^U% Z!K&7c+#~/k"A*a,$s$~$ kd'l!<$%(ʢ .bU~g%=æ&ZF'](xmʨT7`']vT%ң§r]U\vXQΜ&`:&$f(5 j:l& Re`f)Cz6Lz%v*wbf"fo{&refTvgebeC̒,k_V9,R59+_&/0-bʰ,0+*@ ;ζz4>i11ig$"#onc–iN\16)[C+ ! b*251KFkQ> /ּSa3SFjFUv Ψ2!Ҳ01hl6 Dk/l"(Z32j0ZS憞|#3*l0ɶvl,j sؾ9/7|Q$%8dՆ ho @{[79jhb.c6Ԋeiong33Hjkﴰr֌Yc[pH4&16r3jN4-x:( pJ41B1CΥr= 7T DQ`V_C`30"[;6n:X;7ck6uvwöV(s 4s%$_iq: %ln%Fbn i5רd%lp*asq%hJB5F"-G{r;_v+tniSR%j,n~aKc9[Bd 0+;/:Z:+:Bzq7OcuZ߸[F^L'bMo9aR0c!v+;yQfwnH㲻κ_wbȲr9I'8.@fa8F?L(cA@|"Ȓ u CEBfj%Ȱލ(Tl.lO/dy8#!}}VPÌ:y栙 +j`(ds@K.Gd T? !GvI Gsd҈ IRM}N ٮ5̅-=%S{79`rR9YkƐl7~ǡes T\~!LsKAYeC6V ՖlC$Lp`M-JFYx\yJdu;Ęl `kN[y[ZRDeU&cCbŘ^wjhJvgL8Y#C(rwHEg`ꄧx{NyRhN8䒐fاB]:@28cC+YX>Uۗ]]%fb-xւDbWZNJPeB%Ei_z-V e5`Xڪ~hm'ֺ&)cjD w[0?<nXjCM Q,OͺV"q,L%oK2s-A [0AVߩru\so :18?YѬ3HHQj-AGҷ>C=_ IYǕqAGdj||Rg,Kۘe[fY 9炱\h~)QSnv$ x'փ*Ƣ65pػl<3ڻV\x~E_ hj]NVzpA9< 5 '۹ M7@@\-\. 4wȼNw18,`@NKݫFYڕL<S>+,ಶ**x|_|;9Pܚp/{C }x4LQLSh[f*Gү:CFw#^5VTS,bKk::xVgL@:v̬޲?yW(8<`kz^b7Z = v{gSwXɋr{]y7*v>b%m?Xls6t_Vπ=8h Ww7c'>WT|]vG^"?` r^,.W1n;^p4#W^\C黣SR_b1kW:V7lnYs}h]|{p,klvm>u< nI&ߦX4?>Q Jd+|+];zM}[^4\9n׿׽a5^;{s^/ꉌf6[/^⇺a^6w1C7>]yW}EZK-W|BqEQA_.\]_ ^^f)$1XAv-=)\e^ x VWu hYۻi݂!^UIՠ!!Ѡ f^٘rae`]A^ڵʁUz@[Bme@v ǩ p^Miq#"*b 6q9o\^i!; _Y"Yab}mmaݜ  ayg!cјh^"҅^V Au`uBm=1y# xªcuU;Fbc:[= :]<5^z!hA##AJ!`CFݮ# @>f#(ed_E^$ར2F:J,]e).۳@!c$2 GJ[aWR!Rծd6c\SRUs- b^'m}%5;)=B!A^`U&Y"X\B`yayA`@6aa$M%1Hek}bGIb/@-&m!H+%d" K c>-%1P#J:& ᳩ!1_p #-V[BZDru:eݜXmqgn fFv'/>>_1"*dYO] 2UK~iL]ZeאtYˑ fdf]W阋bōdi$b "nV9e.)l!V,r_Qu9A͝x]m)\ӵi1)ѩ)|y&]7 Pe VV(֡rVej]׃~(N&jY^w\m`Nc@`VTImRWUQׄz*jTG<)W*:UY].k2>kB+ +r Rh69+&cz۸:fRf&Ϲj&Rk 櫾+Ek,E.,6>,F&VRfbvl/ yȎlr,ɞ,ʦʮ,+˪lʬk,Ύ,f,"-&m>-F*,V^-֞vVUhxAz]ApVhmے-TA؊-ȭݦma}-VmLn|l.6.Plb؎@jl:&m`VH.n2.ܢmmn.WD䪭69j,m2>/f.®A/ږ/m˖ZAV(Aݖ-fzVVגAVpnZܞ.>AB6n,kpW p/#oĊ0 wpǒ/ {_VPLA,o O.n#gA0o؊pW\p&o`&0/f^/0BSݦpkooj :,o /ؖ1ڂ"Aq ӱW.s[1 Kp##00%mS g2Ú&nb2ɺ'0Z(+2,CrrW [nS$Ӯ#b1+s0q$V,2 G31m뮲)Fpo71srWҁSSjw>6T?w83&h{i8rXodCxg.?o&Ss-_dYC!8bxM'xlk24o6B4quky3W9wl61yyc3q9sZZu{3wG@4^5 Ƕ_V9mW:,6yrwuz6%v9#b usO%ky{Mh3p nAgzbk0JJnGz۶nwz*+4~ stȁ+9;;wߺyZ'oz{M{q{,米[c5bopV6+QpT;vsOE1[D(|:: ǵ0cvq":/S;C0(ÁR*#`nʗ9x3N33/96o<9خ׃pзs[=S'dW+O-*w8oަ=e?rw͎ؗ3zȺ <9na[. W.ݧ<Aۦ673 7#>]W06zwt&o1,/Av7=}0wyzKuϻ;?94vOx?*5zgz3@L%t 05`*<8*U(r-ARd(EV `2cK(<"M2]ԹgO;ajR)^ qŅ)V9qԘNiLR02ӰZ> @R,k%Lu@3d000gr"Ȝ‚; >cO 90F ͂cIB;J"l/ ,6,ỷ z F!,B#LR%'){+uC+2ɍ0b@1LSMl%7 82G:iLZ饙7馡Zq꫱ꬹk:ZɆ2N[mm5^鮛[oᅪ YO\oq\1x8ɈHO$CH/}1Ȍ I]vEi)vAt%IM3~#aeg FbGސXw}vp xO{/> }G}F@|0]ڿ v<8Ay EXvד />D;  ;U Ezp DT ~F_ƥ*@qw}~±7o]Q?B ԐWAR }wNx<<|wv<+6/lYE8q"?˗x0resg5Gkg?'Jlg(,G-~+?WHlbҠ/;O!٤dOOEl LB g;/'-mF\$ ;3:Pmuc5 :Nٰ3:]-<<\p7߄M8#Zm۬8F=r99EL܀n 8_>eM;7Ȁ9ID9Y&AҀ:Q'ݭ<-B ;*.SD5Efo`'lG~dfFF'F}GxC?G͢FP24JTtKTxKŔrtLʹqLՔptMtoΆ4W`NXNWtOOOuP_ŻrP PuQ]EQQSQ!W$uReR-uN UR2uN1SSAuOEuTgTMTP5UkSUkUa5duVVmUpSw5WU)C`}r@Ut`|ZXUUYSEYZANy5ZZ[U%[}` uZZ}Ud[KZI\Yk]oU5uXUT5^mu]W6uFvxX`^QY-`b3O5b'\G6c`\Vc}c=6]UTN\ueu^P 2VUp@ Ve+Ogcfogg_ZUdUvPekֹWu[Vbej+NVdob]QAbV]9bUmIf#c`[i\gQEgNtkpVevo}7r'Tr'UqOiqga-elVg\Ugh3VZn5v` uI'gQvIg \t07ږlItv7knaWvORtu\we}wWؕw+vWwsWvOxmt5`+icwwUtv7~whe#}v^|16}n ׺^u@X6zVW{tw7|7W|7YcE%}IgnoV}{w~;xZyV`öDtgZOre=vk bQWv{s+xGy56buoXQ%7Q yUe˸ZXUXcy 8Un#Vnw7UX8_9y')9Yg/YQ_؉ݸ[瘋CeMՌWr9ّI؍8eؕ7?WlVxQ Iցu/X #؉%Z9ex^7w56q[YV5x_͙UY9ׁuVdy "6vѹeYIx؅ZbZ9s9S%[ӸZOz x97p陗E6{7uUC%6at5a ex{Vq߷E4z}6}ؓ\_d :~5uyzwUtvngIZfǵZOV~`Zzez괬)ڭ:Zvn-f㹪?nS;{ zậ7#س9e]ڨWs:suP9d [9^{ەsfgsn;sٸr7oA[鶟UK/YsYTq[}_Ueu9cۗ?[}Zۦ_Xu9mz…]{by;ڲ |{Y}X?lkybq=<^O/rYuu۷Q;S\{`XQ\ZifVqJ<^G:;x%j}|̕[}[5'(^Y4>k'OG }:W>~>TXZo>TuW~艾qeb>~ꩾ>멞ൾ>~>վݾ~>R?Ѿ ?^ ^)?+1-^A^?QE?Y[~agk%F& 0y' @0 `z-@C@: ,4`~- v?~ǟ?< 80a!$a  LH0 0@-bPCD $Ufᛐ6Қ)kP 2 )3>^Pp*t"M;Ifb> u{6 ^ wY!PDH"'}ݮKI%_cr >Q 'FzMnwف3W@Sά ׁA&AdyĹ*]L^=9F5 Td_nG4kL45-5܀Q`yxgU[ ozX|BK2~۷/2Jq8M*#E}zF/s Ϧ2й.TVǟKedNpAiY,RF T$Wf$M2TP\= \5j"\h_s50/{QB"@1WS_V/HK^pˀJky7/CmDP9eEwHFƇJdH4x31YpRJb{'JC] @-)IPb?Ț()㒨"8%^@QI9-b{r GZAMT{=3I(+Eˢ"0`YjT .s!g9+FH+;mx8Pq(&%c5VdCi%iZ/քEpr+GX {':i/ AM H'BNv/xuϻ_/m5aj ` x&&FA*cSF01Hb$!%" b_fb϶ŕ zK\ZVpq8~;^ `IVȀ9$/y7Xp6fՙ=w3g2Fπ =N(RwFZE4{C[z|䴧^kWJm|@ `T#Ud p@S=^L4Tkc v{k\/O#Dz"+]( u-9*s^ [x;sn}h;7oߺu9Np!rC=~u\̥u2aWxU~3Nnu}t}| ~/+~oK~򔯼wqk~?Ћ~/Oԫ~o_k˴o~& /+oK}@;PK~}``PK9A#OEBPS/img/data_masking_workflow.gif`GIF87acecJMJ{y{޽, dihlp,tmx|pH,Ȥrl:ШZجvzxL.zn|N۳~~yqb˜mأ߃g HQ*spÇэH4 /jܘ0#)?8 jP\ɒ+*SlI曗VfiO28,5ѣxL) ӧ0b܈ )Գ-0K@Vb+be֬Yp`ŁUYE)@$"`wₙž]h @**ۮd&lY7{N4aUGcF v^ {w3K܎*4zNj־:`^/(9wﵷm%X__߄EXdUkmlUi!j"xl",0w8bKuQwqWaXV tbac$``0(e䡳HX4XX 0xidɍD:lR6wEWĉ"j@|M ,AɨGaY Xy(c6`@[j%bfܭ qh]dl(v@f-\J갻yW| u+sI8p*|[%ɆJϰ W zyjXn4&N @l*kVϒK-J֮x.)ޑJlEַ-ZN/J>fU)/LB wƦ]f^-s@{hs\ɛ^qj!ȇd4шPEI˞#:M uʗhMQ' #s'yA'Cy=M4r/.ewuU79Bpvw)\UF] 07@-flݱL@sh[:^7'x!TrfAT[jht |f˄C.,좄.;J%^wk!A>~XX<<"%<џ/ a t6ֱ/_5Џz"uD"ao48.Hz @z$X`lL1xRRHPb4D4qtkI&!m<=運5㋒(1BF=kZT 71D v5cP{|A2rJBGd&Cx0sL2ջP XRInv8Th&9?RiIYJ-%@ɢ_*h:z#T-Q],|u$b֘XJcYc Y"܉99I\N9I>vN]E1ۨ ,Y`,zNd__ԖMҖmc0NeYA[1Q *=5R`^0`v\@(NU"HrDiJ:FHQ#S$aԦw\꺉 K7`ԣՓ a(JPE-Tɀj]kHO52!|87bt B*W2 +BWi1[U+}PԢ'T[X֭5e2F ʆ]'T'Ls$dP,3!i4ȻDZW޵-*t]V^,)3Y'^)C92\e 7(ݹ96LjQZ_N*!y \J F5ĭÒhú@<Ɇs# C5B bƶD y ثNG5YrX} r:Vg1m440ѐ4 e-lCe2`=km3:3)s՝QDɺ=.o NIwza44Z5]T?!qK6Zihl>N:A Qiš~lncoDcau^X0_@4~];*dxu9VfxqT]s3`Fo7)?s?7v}y' o}A {NpjT& E{" x(CgFGy ާv#8#'&17 |I*a:GIPx' Nt*W!B?7ȂDG `I(rsv,5X[ x]bVt!Xsn<8i|BWTwL_L;wM_7|pVlDvQfge& /sGvw<(a05.mhfHH !&@qFy"Qg5EWHAHjqdm[$rbuh0`aq'(d砍R&-8\U:[!To4x( Vd5VXĐ%X>Hwf6xHr{Z#@{J3z1v"G[W(%I(wcCT 5ǀ$Y&R5tpB{tTkxti>oMIOi !&~-[2Y)B]~SnZQ832$ZI%ٖ݇D4ȗv#i\ C~i { } ) CEIs풙9]#:dldTٚp")i'3*ɛ6)&4盱9霮@9!Iw٩]ʉ s๝yٕɞD5){ ')9QYG zT` YE㉡SM$:]zd$ʡâ )* ZI::<ڙmy? ]FbI(ʤ{KWi`RzAqɠ\5crCz'l n:qz&s&kz2ȧi⣂lJ!`zY/ʨ䧥: zN5ꖎCuW:V*Jvڪ!' lzګú(f[IuZJ ڐ ^$ՊڭǬ* |0梁ꮦ}:zR툍wگu[al[۰hAqk;e+j!eZRbp,{ .!Q';*`p \Rm@&BD[jrHJ9k)u0T;&LX[\^V{;A[t h6жi &󶒐ćNALʳ~[,z+[IƱ߸畸[GCKiY(BMX+IRaǹiѸe (*e8< # {C#9R\|sVh깒T(c5_ji{aGSG#`彿 B7VY܁cVNַW'^f3r$cּk ,,{&̿Ly3Z՘Dc`9x&YځHexhd=-<(,ңH:0[1 ?*qB'ĉipf@7TS:,f@BH7}GŰڿhC?Rنf<(FGOdHV6(T}q|L{ J^,ȃvp}W|E ,ɆLjȚlfjvL }w&x0-K Q7X 1lj tґuɺȅ%,<7vC n\0.N8v/~Rb .=C-_q y UՃUYܐd1q8++gmUW֌ۈp=FEk 4LVa8WW6}KmdͅS(!ㅴV: m6!rͽ6=s48IhTi.\䚛 Oˮ.H3!n \]'A1VPs38ھH=prQeM%b.J)^BX j+37!MV> nXFVy';0v9wX>:! p/1AT3ǚkn)bTeggZL#wTa 1X6 "{.hJ$C"jU9K³Au*m x?[3AQ1qV9ILHhH -~@Ԯ/vA>P=9aͪsS=gtip9Uo$+]Uޞsȋ,V*|- ,d9>ػMn;Ÿzn/LCvPC(hO2N?O>9%Z0 P'3m*)yɪe@ ext.nrQ7E"8M-tkz~][ YW[בс@ȔσC⢢ d'AK%ncj/p+qq`,C+sIi˔nö)r 0Nr$0:v Amv.F8Ou|q!>@b {xhUH+XQ,hcF̙&LQrEHsiJe(ҤJ2mT×Rj(Cf&'p)Qp$BFy#ˑWDP9'mN/UӚsʩrf1K؞ Z.Lp+,ڻֱIg"!32*/e"(Բ}H uQ oʐ"GFLEs2-d೙6.yY7Bx \3%ҠP  RcMde 4SrAr pRz u8cp/3NmɡQ>VC?alQ A2B99Ť_ Wڲ *vW:foQҚm."Sz9ٜ]5aveKYg(e(}F`倦AjƉ( Z達&)qsH61)jR}*ՂB ;QVꪱ,"Kt%;-QZ-Ϊfmp;nǒ{.Ϣnn;{⻯ol 8r#5, @P9p5b Xeꀯ~5 :2,,Gxt{g.*_S~<_)pXcr2C}C}g?>,nGT8׹/~d3T3F7)<|#5I(IpoD/xHH&:QPЄd?P aPQ !R@ x2N84%n{" xC]ъN"m1PHqF@bc%%j"쐸FXyc RF䍊 11/=V^1xܱ*"-Lo 'Uᷥhd&1Γ,cѨJl]RJxŖ=B+}Z)URb ba9ѹGl2R{qf˺D,;ML\̘o[ 欦I+dxui'YxFF ]y!"YMr@@'v; KԌPơ" +oYc4YEh5`9bR U d` M]±O $}#PJ2"Iˌ]IT&LWr B`OG$D6nseN)E&an1BQkJзUrXp2=%)+Nְ,f3rENS`+1FWj&qN/xQImCSfPֵV궡(0/O3(!,kaT;2H # Ֆ.5+B _nkjiPVLV˫]25m_!UAnu4MULp @NS_qw+PQ! \\WC}B5y:0B DZu:(nm5!\Tx@8P@n1faM(VjY6hG9z& 4/:-dl*}t%9ý ܯ=SYCܧ?ЈK"A3e̤I)Ζԣ!ijF:2'Ui38u)j)7\5LY&,U:Ʈ%{v-EF{es5{ަV-Ve{&ϭ9{Ff-{Uo{-_{Nǂ+#|K,3s8C.򑓼&?9S򕳼.eC;PKls e`PK9A#OEBPS/img/spa_task_param_change.gifEfGIF87aڴĔdΌl̖nldlnĴlld2d2d42d42ldӜԴndflĔn䶌Όnd̖dĴάlndlʤ4fڳĪ4ڳڬfԺʴd4ʤdĺlrL<>dfDLV,μdڌt||\ҹ*Kj`%cܣ땬kåYsjzūcKfz#j.Ki+Kj/&9𾰊Z9N[ؽy(_.6(y/Szʰ lUzY:Wc\iʰ^Tjˬ́vJkӷlՁ;a,ouN4r&˞^nk{rT&_M}ɿ\m!#GKvo+S֟n++cqPb+ಪdw C)[ÁB8D?3Sx wdBصb߬b% I}`#| ݏytܼW VUac|lD՜bYw܆Cd.919eX&IPqP+hP$upCs~):h%9Іs h<%Ce{.XMK,]&a2ȥ$FyeCL*!KN|Np"ˑlܶIћ]]7NN>Ҥ@eI% :Y96F١Vl0{^+T#1jbFؕ駣)L6J^l#3L#.CT+̛d20-m(A=CԖR;kNRe._Pj9/Ԉ ɠ Iy\ˬ]+JANF^VxwM+I%kK\h3Q\l/7jO ]lB,Ԭi2j?.`&[Beg?˱LնlTh:Mw?dzzsEN#:̇Ph߬8YnŃZtA%ê4x*փPeR,q1d=]ׄ{6)Tk#6Z.Wa QC #F=<&2acT `Ykv ˻y e ͇>^|\ 8 .2|cr>&2 K:~qdz#/6A.ڿΊwK2;z (@M.AllJHВ䷬BDU3iE;ѐEkұ17Mei _@R;ҖVϓUհ"Zָεw^MbNf;ЎMj[ζjY{=nNVs}wηYX3N%޷et'N[堅$ G7A(O/9$g7a8yƯ@:R iCDu21:҅ \ (% )4mTxO]49;K@ hڙN71C3IM@ؖIi˸KMN].˘:\*OJLSGzW Yi'sIe]JN> ԉդ4>L2I:!(7 qڿ+O6ב;nL }i5gg 7q7T'uzGhUgwm{G א٠vlvpp{ \om ~v@Ұ&XvpqHvv" vdg `ׄxI&$#BP{1< рpYW(D`t`0gZ1[x<bx21 ' }]bT"%yH+wsq(gn[[QF~ed3CNWHuz(Q 0%Hvx{:d]1/×v`{s犬:v\Ev8{,X ]ыNtW ZhJwh|Ia3ܡZ P0GH~J0P ~RDyWtHAׇ ؇/(S iW)(fz H25yqm?=v:ϰ{JقXvAB؂.h(H80wؘAW;Qx@}G"^(]|hiԎgٖsG" gh2$Wܧ0Q)/БAC:uY~'^1^y,Ғ0zP1xqȊgpa2u٠~'H wvj28ˉav"0ֈ8`Is҇ rtOG睗ox)DCc0e p85j"v4q5I?Pd]4/"Vgg;*9,fЉ6y!zz"Jqgs:+ʋ|*1"xhe.1{쀃800F;J^)IwOfI{G3"#)1 U^H)#h!ِYTqx%}ȈY-GV5xcPzJYȨ ZqdP hwvH9P 9JbII(HX+1wHp:)O 8#׆r:η ǚڥxyQ *Wڏi7*)ݷ]!bX)yUu zaX ȀIbPXH:nwQ>jT wvPv-h(X# 0{ !vBHF(w*t{Ywq }7sX]uّʗ JxT%J]*x"Yt"kH\cO^znsW`P+3{yVBqV>۸۸x{dWh: U`:;qX YpfJ巆Q0[{R@;^!Q țʻۼ;[{sػ۽,F;j{蛾?a۾.;{[{ۿ[Vvp]ILffh<vV:G4\fW*A8.Q(,0.l5|&l#L{0??|59\JlI\r7O,-8\^L{R{3 *L- L5Fcl_qlu^|už]y&<{0qW gvs{ȓŕ,|2QȘ|Xi|\~ @ȕ;Qʧ ǜl,ɳ\n[ 2,MlG| 5\E3ʛ0| ,ќ`,,^<*<ì{{aʝ G]ޏ-m~0;T4~Nz +ݳ:>✌/ l=<=)ܟ 1>(~<|&t}=~L{y~s ׄ׶ؤ-ě^}^.}maƫ n 7ۏ{z=\$.㾅ҞN}^^iny{`ͧۑNw-]h ]+L잌 =/̓頬™N03zq벌%9L.>EE>5=Y/S$0Mgwp0^%XJu/sa@sAhgϟG>EDhlFGVe'TNJZè$=:c’vaٳY=:pnBK>Zb/ފi|KCS&mb;|5ڄJRtpK4~\Pfgw߁͙PqhX߃[ <1#2Z43K+. K(" ⴛM κ,*8 +/Cl+f)Ūfү5Df%a3edBX$+@2sh 1P+f2FZ.=-<`|/EIëIѬIRI#¹$3C-&'P-?Pf$]@#ObͣfZQblDQG 164P:EF3Hv9bB&ddW>7名Ldoyu:zhh2Y+^㦵⩕M窷k;l&l6;mfm߆;nіn;o[_NY…RJ>ow(YT#=/"̜6B4@Uy4SE!!7rIDVme3L%4'7:`^$p6$&XV" -Vg-aќQKgze$iRz`HҒ2KD$kBK<1WKWJЛפVΖ }܉vt iB)"y~W'$e&%Lh}Od(rIvBf?ґA26q_$ft)K3(64gZ!KQ_$mK AVqCӔs%)4%>˪iXj-AFE:ĤJ]HYD54JZuZʑJEAjWWb+ EŪ}̥)$+̘A82Z[չv_-@aZ8'mC U:D[h9m^U+ڻS83i[45mIKv5.^Znׂ})$\S2!l;$7CyngOYmK{pM(8kzøa;kbޔY!+l` E@<0a6* qNZO]wB:ý屍WےnHz14bސ>q/'W=\fp-K4PR&K*ihy=]Yh TtmCҙns3l-$8}DF㳂xDٔ,Z3pg%s&Pt_LmhXkP&:Ne &VA5[hT@{ u{lxה3ȾF9u Rz+Yߘ@s}"zc?,$juLMC?S;l?$4C4| 5=P`R>T(AC5իRR9GI<< +5CN 2SՀ 8mԘgJJU`T dBsT\S^VDӉGIrASdSeT]eUiUWͦ V<GMVٟڠڡ%ڢ5ڣEڤUڥeZM٨ڪMڬE=ڮڰeW C{a۾Im;<, ))k{ۗQ]EA`.9y y #H5܃q)r< JЬӹ A \1-"iK?Κx3%\]a^: ZŰ$ 3 j!>z܂"!R)!& q9R\m4:Z#hc"Rp';£d٣# Z 29)_(~ },U)#JA!J󭋃ڒ«F6K :0 .#c,gu9h^Ff-C=Ȳ:p.]q~z6fgs.c*fJ.fê-c* nfmgf1͚h:3Kݽ٢v/*e+gG 6/(-kӢ֯../rN+e^0^8fj+*0vg[{d6+b9ѯ}A.0j02. g+-2i.kŢ.J.~[^}ڝeާޒ3h12i+ 2khN3^hr3~h*xd - ^ikޱ&rlɅ X {n1-,탻0^257S?g&x؞Yf#jE^v 1JIZ 7(fbIMfl{ZnGkiC^7˳e) wo ZpZ ou صm֝R)a읐Op#[wR{p[6ؓ=3h[ V5eYK7^b/NkS>Ҙ(:bǾ: ۱k3uN:};-lAb3]Ie_ǒK~Ӻk:a#r#amqړ;!–#D9vÖ(ʵ1V9|;I9,FX_Q:{P~,u[?\\] ]b/;`aWSdNu_'$g'KjNhmXno!q7wT=tYugw7-vG*0yz{|}~w~ww:GWgw-Xpx|4G87gw40yGy xAxIxhxz/W2Κ?*؂yxx*pgzC]6z8xy/{_{w{zy_O3h6U+{{|?{'|z_4,5'{{|w||G?|Go|o{G{yoҟzח}zɧ|R3}|ۗ{Я}~{O}1xg~o~Ox2(ޗ '|WGo|}~z1 o.,hA2lX00"ƌ7r#Ȑ"G,i$ʔ*Wl%̘2gҬiJ-[`şBZr"ΤJ2m)ԨRRjuc+Wr,Rx,ڴjײm-\Qҭk.޼z뷯*-l0Ċ3v+ Ȓ'Sl2̚7s<%#ƢG.m4ԪA]5زgӆ6ܺw‡/nxȗ3o9tʣSn:E ;Ǔ/o<ח=ӯo>= 8`xx`zf :J8!Z_jh^z]`J"Ha'"-zc3(ݸ#}6#A'D:裑x҄E@x@CI‡d}NBVzyX؃8Di`&]Hݭ9%997II'[zץxVٝSу|z:D( `飝z`t)*7甇dw'Wjz)TJޯ1.ɠgh&,]D`:))_) ߷麢{ _w8lIlPL-e)"z 94CgJSQ&¬bal21(S2+1Sx hTJjr<."=(9\3ѡ)ŶL4#­+{ǴeB92SSC2lY\+1tS5~[*!$|pܦ(KL98Oqg*ӡzRt.Clϻļf^83'!I{N~6Pꨋn诰,h.byمrɾBˡm>2=t~]r?:?ȮQ $9PL8&auމ 㠕Dm+҇Cl ߐ31:.~1h,61s̕>1,!D>r%XL~{f'CVf-sVβ 0oyd|39f,9st>d=7Y3]@ І>4Bh+z]i4 ':327D`7L˥ƲT&0n5+[8 b-Z!@#0^zֵ^0k ح_[.L![l;6Ap{x]ek"4-&x (<6m c/| PO D?u4[&9yg|5[mi9uƛI/`6kPq;f@ F`&@ d}xGFȹ-x?=S?I w}l_}v: >uיBW9d=w3<5&6ipyG@4_Uoӻ=aN;y^`@*O[<7q7Iޭ CE߰B%^YqXA<1If#DݞMr$bХ1߸ ad]b@ J#)T&bQ$PąeA|e9%Tb)Bzd ˑP>NecU޵eef5f$50Y$Li""D#(N@~Obd \~#z1Bf%d=@Q1^$O#[d21nbl&Q>l0z  f<>"%Qeb^Z[Y%Rbs29kbqep5{xcg'nfZ@-fje &W8$g z\K"_Gb)}d'ٚ刲L!Y6eCl <(Y[ _~^g Mk]-\Vz\"wM(-ܭ}ʶ,QcRi$] Yf浒)-OdY$Amܪ|m$@NۺwΣ.P,Q.-zkު-Yn~.C\-궮ɮn.eL/Uos/r kخoK(FR@qP/qXoj0/IJ`/~o>r2IL/looүA"x†DA!"@ BDA5 (WwD@ODpopG<%B@ {p"` ABEM0KDc{D Op # O !OEM p/ps171Co;0pqpQkT?WsOrE$0TkYt(;5HU_[p GK]NYwSdq=gDN_u_F HpcGK4# "q 5(lF3rI?gg0ho0/KBg_qESE4ac2G;X&72g>/p0m3F<^tW7pBsSw0r:_v!tB?pzA[d7"06ywc 47 ivKwygp{^^wuS8 $820~F6 c_H2bwagk7n/2_g8GP8SK76p?g_r]^'x}j_xFX x/۸nbsE`u#_;kuFhqoJ;FrYt w7o+*C[+cvAk-24G9Gf3[Of{q!;31h1KKyCz9K3Fzswt+3gð!84#2[op?yEPp&o9 ssp?yW7\{;7S9#6luovx.K{{7Mg3;wOq3NyU1 ?1B9C|(1|0kOp4+6oWwb+vN[xcF/C_&;֫ Cv7w[v{ϋۼk;s;?w|k緂st{Hׁ493%[;K8+]7 /t,罂_||3^3{˳ >[WOsއ]15{|u>Fj:p#7M> vGC9p<Ǵh't22 ӰqFd'c9=KY9c|;W}@!KH-۶4;grGv6@t'@CD`? ;u jXF ѳƃ0 :niaH,)gO?fzٰMJ "BK;j q̱¼ kN{ˣ @Ӕ2,Q)H@*+9/ S1Q&<^ M2ī749 B9}*O2OtP0݌*!pC!ܠ))$L9S2Q,SQMUUOWtV|'Yq5]yGY}`شlQemgVikVmo Wq-sMWumvky{W}eJX .8` NXnᇏC)1VU9A٧E.QN^UnaMeq9^y=衉.hz>Z饙n:ҤZꩩꪱZk.>[ن8[}ߞƵoH[ 2O\q_o)[1|59\ћQYo]]]va1yg^x9ȳHiB4]彬^{7h/xTi푗 z4M9eEa_{P/{E\0~eykH鏃kǽHPH=U<0}>!a WP؂yx†,Eχ .@ qh?B4lw ~Kl E0vKk\p@Ђ{,O $ # °̳"+nP|zk^Wx>UL GMf0@"Oby<`QY4Ʌ{^7Gх|NI[.2~ wWL'AX0%Ȁ2z(i@F`#-{B1~be)BVy4IKg(l=*DMLrhLb:ʢSD'O Fԥ.g1?zӐD2(APN| )DZȓ&ҟ@$BqZˁ# K ^T&maQ,IS^6ФFҍҚQAUI攬1CE(Pq\ZT[jA+@NL["U yLBx]S^U!XVɺs e٫|Nl[i(nWi\vaEkfYl[po\5q\.nݻN)uTbW wށwa1y% JQ"+^I.QiT84Kzcr_Y*0Z(ajtlɯ^"A%6sipOk):#҇ۻ̆/~$EFAlNT 1 l(%Xȭg :gĦ&hUq]“7`gɛw2@\SwܘH!cNt׈d"Js1 )%1/IRA4^~t#pQsTg@Z̚1$:t-$RczGjMtmfmU{Km Cհ^,EVuÄzjslQJjVf$ۼM W_68}CpVWR{lЭf*YwC=ACqV Whu cb@$(\:%P<OdEQy6?C惸\ NCWC<" yo 1ڸ{8FbEn?zKg3rj|sߎ]GSq"8q8bV^~D͂wwsToҧQN9n R4$W/gI2]/mJ'^Ώ#^>!<㓈]6c"¯3/O#,l!, P@/+PcD"doKmx(P10cOľ(=0ZcO$v0K΂0&Ip nrf.F|p$ o/.\p SpÏ@ M50q DP0 LjpF/P$ '$ /Q 0Pad'/0## (rNެl ɢ6g.$,adB 0oE7PxQQ qyǎ%/pbLGq˯:݌PP7 wJq0AQa mc8$No CB͊ͶQ4!u C#..0B"&#"NRR@2*n6#1B"`"$sr&7/F$R#B*ao0g,P'6&ad r(#R*1Vr'%$ "}0j(:)o+M-U+ m/[(B#@׮ -N(G%%T/1뢾z<GCC/7c;IT Cod#T=ҍ~oI RFm]]S6'()/5O*CӘOx3$ذ2R+;pS$S s:C6-9kَ3aK֊SZ2:}S>s)?1;("X> 49# 199֘o"3RJgeB[CO,f@Ctlw<4OB"ICIDAD?TFXFuM |G4HtHHH4ItII_$sGtVJ4KtKKK4LtLɴLTK@ 6"GM LtNNN4!MGtP P O 4JQ%@TRt3@*#RS#RS U Ƞ QQ-` 8K=L_R]uV4VV+5TuK LQS5Xd ؠUsu^S1uSWmUYYuY]YuKqRuY5Y5VAZ75Yu[KϠ ~UXP [YYZkYu_5^_\5`UVZ4 `]۵a 25\aRV`iX ^u^7b+d1^vctaaYvL Ud9cud?eɕ^oVc)`93f\CgTaeK^ob{VTGVd5hfg}dIvfk uevld XugVgg6_5kjevbn+fKɠ lG `ZU[hwn w\#\d%VRc[-6r Ġos `WUtI7cIK s=uB ttewRkK uy. vwxO vw(yy7zwzzz7{w{Wz Xw |7}w}ٷ}}7~w~~7}JwTmx_F QƀxCF9ke(ł1x4xͥ=XZ@87xIVKNxLx]]`8eO؆iظp8%킇u_Xe؈]xŇ'É\劏X\B%͘[،טX\@8x.x]xu@{9Y9{渎X{'eo`py8ؔXz@p`x`EC˂W_YbYł7y @ٕٓ%yI9(|y\lٗ-yYz@  gAy)Y92Y)չ8&9{9eX9Y˙鸝9`{r瘽9 :˂yYn ْz%;٢+ eŞQقؕ%ᙒ 9XY{ y)y y˥)Xuy9z{ৃڡ㙨qu`h:` G 9њ K/ ٩q`™:;:;{9'[{i:)9 gYڦXYYc皓YDzYZ[ۏ %K;qcY{{6۷=XuOgzY:z_w; 嚮;Z1Y{;[x]y{Yڸk-Y<#ܼ]%;/ܦ뻣5M;;? yCڮe5<'[;qe[o;ƫ;c;;+ɓeضɅ;'|ʩ;|[#̅y٧!ٯ:ȳ'<IL\{<9[Y[̳Ё 7<={,yYKw{\{[缶-ݟ{@[ϝ{W]ХoۤЅbkٕ\N9ǥ٭Zrۗ]&[<Xsxڳ_Z,][]ݔާݙ1ٝ߭e/\] ^ߑEx ^1D)޻#^3]ZYXܐ\TˬA_޽sYٷ#:鼄u>;?[eYZz%EE᛾\Z%s7~׭sػ~EY^x=zϾ\a[>Z}W {Z.ݓ\B߳A>C^hDdA WQf96Ӈ**,zsuFhǽMʦP'[mo֡8U >#\{ht){QqQ8oTTV 8 VjW܂ggMY 8XjTP`֓.1C>x`MX!*bx!0N> e׍j%"4K#mޖ RZbSn(yL._-VNwNȣOC8\|G6ޖvƔ&AgnȦDyJrFIgvw R!}M7VA3ИCWEZu0!aIDs!IH*KаA tҾ؛R;fY&{<ҵD [(zƝ!rk+[.()Ƀy+{V04je oJLBczF|V 0?]](h?_-؃r9sEWj|f,dqg$RZZSoT5BQ*hmfNA50=<+/uc+RhPH̤Ofzۙ v|~ ŽZC]qp|]SiVn~'N^J&)aamǝ8yNǿ_O]۟r;e#,Y;?q٦UPhb,sn"6x?Q}-he+|>z B$x8EO􉟛G4owEo+jŏ$zQA !A$7Oˡc"0]L EgؠNkdS2!MU!;{.p޸n6ei49릩y UTfoI}oG׶)&js;g+_W~nW+=Sq7h~6'X'jxqV[Zgn{}%lmyvsyhѶUfgcl"HĴhwg y77W(}]UM!`K!wfFSV T)Vop&ES~i@WbbV}6beymm^b~Vb7K^zT5-jXz_0]>zhS&dFWmm[Ve}צmEd[H777\n=HK?8"W_\PXpGu~GValDž`rsgxK`vXHx\Ee&[[cYШ|mZ#yunz7z^7i`X7=7/jږȄWs8(͕w(cU[LyWtthO5bH|]8hVZWЃR<=8$ xP.ilfU&ieY%tYȌug[k?bkd>)@U]F]k\rUyCXוFKNٕxsVεxGXkWZJLlxpN%U9zR\uhVeUTtWk^?m)mj9 /yU}{DQ\^XKiTP$)Y$@%L eQ\S;jՉt |XGHLTd%FBefPSAIВKݙ9vZYǟfР%,IK, ؔᷡ?%şzT ʠɊ #JP2Lv4ʂ8J:iģ"}ivۗC PZmפ 9:UNZ*W^vlQ\ SdJ^f:Q` A]$XS:sKqRbSGWYiRzxK:Q6LjɧEmSmR Osjc3jp6ujzR`کĪ=JϗpJ8Ȏ YQúʬ)5SdfDԚ֜LV,tμd䌒t|rԜt|\Ҽm^-r<)MYϛ7~])y`x3k̹kFܸd;1Oߝ#%YrB}geWȓ+W+.ܽӌ/o Zz*9锿}ξ7 !զݔ-;%~:U1oέ k}ju_,au=_AW\Yh` Bvyۂ~*݊{uߑH&G\}`Ve%لyж!w$f߈qH Uf YiAf[>ǛfyYn}IdRrWfe]Wwazw[‘i(w!'n䦜vN ڗoyX*(:xm̹~Zs%3]iW)[YjΕ֗*!sj+aZYgNkmvU~j覫YZʪʗ j}Jy,҂k*upRKHR\ym} yi,uyꦬ,#5_]yo<'ΉEFYdfR.'y^-1~~Xcpҡ:׿s]-ljN7{V-<#ZIia 쮽ΛWJhS}xi "hl[]:6}b=Œ !gWo/ dtG!=m'5C%z{ ifʔg¿%hB2B"銂|A<(.zRPXx$2hL>o\H:DA{h>ナIBL"F:򑐌$'IJZ̤&7Nz (GIR Vj#,gIZ4.w^L 0IL䲘L2gye:Lc3Ij"JȦ6nz&NrL:m֌~Sh`MςMB| n<'JQa h?@\T HGZB%ӬJWʔ/ hR8e- @JI^Lm"P>zOԪS(V9[TA X{,OE>?V*TG׬TrMh^Os <@{6Vg ծRfU5[ըr6,V9z6jfA+Zծ=m>I[3]k`wۗH! c6 ^kh+]nUj_]b--?m+d jFV'sc^T}c_}zw-wYy࿪7m,|a s2/kYغt78E_ꓼ nZu/rsc3.l 7HF| I|>);0)|2aJy-qb*W-q>[Uuˀg|@],q@&0+|Җҗ-[i:6*vr+_uqWMM` rTָ-U?dsO&hxHoMfgc@韁Mb~Dv6>Gxfv٭ ؤηmx/O/''Nq~Oϸw{k8GN(ON 0 @ ) m3uP -t@ ۻpc>l.H19ag:?`L!ʱft` ƋȻPS$?dE@;ԛ;{̼|+ | <lRA5=aL \4+[Ntp 7G+~&-.m0-֋=ҁzK0CV-<] \Ԍ\EVM}R= 8?,z;M"m~s}w?'bv{+-{h3=b@%7ԗ= %}؊x=,v|Ջ=mt-T^ӻ"ӳ+9M  P  -ʬԛSh۩ =sС=9;7ٙ,6m>ӱ 6}K7 ! m'>]؛гm ~~5;y7M@!/-4=H֛RQ{N;1̭ ӭ}2LMK0AAM@&-Bk `)'?qZA$3 R d p~36-ōMzsm+yl4j" 1 ,^?SA<{^1k2&N£kן븞#.r|gm^.UN-Z㇎B^@ /l (@mn{v ^lnn z牠C>=ҷ_'ͽ 2ll#ou5o>Y.x \[| pQDT֮UOF?1K^?++/У2gC5Ŋ -hڊ{@/<0"@o;7&ӛ́>nC،q)ՈO9="~mӜy~vڨ$4%-BΟ몍{0+R-!'_EMsdF *̓p6wjXCq dHF< ŌmNRT9c:b8THK D|yL=E(J7tbX|M?}6UDTTOVFfH oxmh6C7~f:"d@.]k~mȗ1?)^ۖpeA:8/m1xX뤲u5}RVؕդxXN`QW^5fpHj c5X;m5]M[^quZo<9!u\tW9u4 F"F0+fC#6djO25 ` BZUe;d(+k+Gȴbebc=miwh<)N/Ö:6/>im8jyckَ:lKĒ^,nMr9m>;pb5;(Tȣ9 7%= ͞lU!YBv i0I(,E*Ls35kZwcd LA%f=Kְ/|.Ҵmy_tmC[4ρ,)Xlw 4Q`<9^ԲB w(n" &1Io2BaubZN:ApwJrG+!Q{ “tA*pb(bOW '0 M&C N"혱F I?@1d^ I8Bܣ >4/&$Od0OrMUp@:%O6P2ԊȈYЖ,5V4'2iesj} 6ՂANӝc&<9 ыL~D&IlZo;#-H{N4 PԛEIUbFPZ"mBP8DWL' SKJL(43KF,iBӤƢZ3JͥTL˙vhJT) 1p:Nt8OJ%,h8a(W]YՕnDcE+_#8E*LJU[ aԒfTdN'W~6ut+Mٔ\wЫ;ĹqkrlΗte#ȜXDbsd 2ɏMZ,{hjeeoiVܛ'8Q{'؉xI$ hO)zI|dt i!!Wt3%LNc@YN&u  xNhV`kAqַuu@׿v=ٚFvk_/φv-liWmnw߶Ѷ=nrսnv+;ww7x>pGxp7<8D|Exi:\cs7yus?z5.qcgB_ Og 8 |Df8uw_{>vgG;3>:8R6 &X)bXB?xvCqu&$adTF{WB哰~H@?_x׺ЂS컀>? @ľ& x p*H>3>CCld*l"LsspB c'0h=(th X(`s/ C*B,- 8 d D&<@ t )|AFtDFlAHADJDLAGDL|DHGD[@B}{! ?5|@( SC6WWdlZLVE+dXZ\#3 D s %?EDIGNDJ ENLGuD;DFQ:Sl6̾^>TLD d7˱$ 0K4 !hplKLGTv˛dGODŚMt!  ̠T ?glHh,]H E7tx| >lFY<4\\Nj  ,ASǗA!MH8؀  pO <<HQYP5ucQKQ5M`+<=$<p!%R|Ĥ%U7 -)~ը;C(Zd<=UzuSnEUkᰑe͑)u yqђZ{autׇ*b8cbF >EA@ fŕ7!HbQ*& [PH[5xhC=QHݩ 8a]̗i">SwmZ3fI"qi٨嚘f)0=6)eHlUFTx AVZaio6ۉC^؏7R͙k챮t*L!\]iuҺeՐv6YX_%k]v&^DV^ica , 7Clw/1,$l(,0,4l8<DF'҆PG RLu._\w#d=%kvjp-vtmrhmv+ {7هo Rm4`5Lp0?A/S搫|3&<3:ʎ.;Z^7Ha38rH筷,Q^5Əl;{|uLA | h2g|\=3_|~[H@]mr+ {].ρ}`~r |' `yCA j{FIr)t.Ͱd,$dAl`VPxb1pl^ Ȯfo~X ?1^_x3QS#wF]tlX6/(LG,>/tO85$g='"x hr#0ѓ&!BCh"Cl@YbR'qA.t$&.wa,d-1=| fxLQ/de$,i;[bє48ʙ< ,ͨ9Fnqs'Np΃+6P'򱟙*8L d41jKofD9i`Y5 ZA̅?1PR3(>鴝q|S'SIvt߼0VGPf/ua9WxB rrEܝEjMM*6Zu]T8UJQAJΛ&5>=: 5{NKsJ&Ar4,8j~[ѪL\s(GYr4?šiZP&(_Pr_&RuÍm"p:m*pAjN1{p/PݵϚ't7мӦ>F9EDV%K Wcs[ߦl\PV-e vYlNpUX`هUᕍTd#Z%=7߮O0bw8VD:mu*,g3o5dPL*[Xβ.{^n 7#n`Nsf-pL:[6<~N3MBЈ{g%˃~#-J[Ҙheʔt?MRZ{tN Qc$gMZָu "8H )MlV;ԛ[6Cpfkj⯝ yvarܵ2!̀.\b10g;2][f&u}RZܖ&7'Nt_9Fu ]e:8=W:*Ybl']_cP9΍{Ŗl^Q~킥S. s+ucY>n $7rٱ%x#ޜx͞wꩼ|O}H-ok]=lc G';,bw0;?m)w\ZViX&K]1%IɗR,,U%Z<۹߉׳ HrQ?7NO9/'eG|vleqT&qeF6HtÇut?>t}X3}T}tN}Q+'22I'ZSWwOwp9> 52uhq7 Cqb'|.Ihe`t/tBlR(|gT8Sei etHe(lg$?@(8GOE%P2D9Ex3/U7x} -AWxg7r{F|uIpQTD(|OG||Iu`$ k؆fo(5oGWWh4m5hXh{HO>x^MDZ}r[Xz1pkՈtleBslq^'z8Su8e7$y_VQ3pwI8UZG4U i~yXX'VMY#j׊茟$vBpgǎ`XewsL7;hx|HtAǏ>g3Ԧ\wUTĵ^yA~}dՐYY_>Xƅdc֕"e9㨍`C^vja,V`tzK8{8{=(X){uWetَwmh7^'4yo|5)Xɚi8W0u8VlxYfJ8nniej9)ioٹək6깙Ѷi152gLP)7y95`5 Jɠa *ڡ `({Q -'2:6s3p=-3ed5m md" LڤNk(` p"0X[ڥ^ `j 9Rs2G3~T8pD*s.GIOz0y Ӏ*!p@@pZʨw| 9Ӧ;Cm3G?3ꢣZ0J,/:/Z*j $ &ڠxʧjn *ꨤʬWZ*BQ DN;QMe_7tW=Yx7x96wG} y7NI!3 bʥz ڥcZ z(`ٯK  Uz6Z[Z ˨ q(RU΃}eC~fHDsHu~~\Yɘ:gC72Ƥ~|r,˲}x G˨ʴJkL K+HU{\[Jzf{N  : mzw+>w_#K=TTL/K?(0O4Joط;x*r۱ `J{ Sʫ `pбj+m$K{WS#D%RժN0;AC勊{VI4Nkxg뱺k붩+{r[ e ; kWP˻z{V& ٗVkz[}g2PIظ l2T8L۬k ™+K K0v @苯 ^ 9\f%[? Sps֦% )YIE{J\kȪ[])|`{/,p$`RJǛ5z5 >A^UBT5^ŗNiYK&˸[;NN@dɈJʨܴ[¥r<O7mcz=;þÿ̯9\7̺kFF7Y~ٌڌzی¬; 5"PǬK:^Ӝ14|P4 ?#Am4=dyI]3ijw"oѴ#&-3,=jW/(Mj*M<}rf;J6@2:974N3CgP'eP;eMeP'ueZ }fv>Qf`n*3,S0=ge)'gmy|H[&|=gmPpf؂M7v}&gjǀ\YlreMט-g94{}UtWX;DYڱmM"tw'UmGDהC%g&pYGi!ɦOPlFfFVM~BJtǸb6wDs{I}ڇzB6}8uD XF}eQ½l og*9jFfR9BSLt>*LwN}9 pP>HT9 8gqј߼WؖW r75}<ޅ2BG9Q;$SUP'SLU(HLBN[؇䛓Iއ +>2Ή Ue‡fֈF=nD|>EPVs$-zMɄz,c;|xanT&َ΍sFaiv4.elo7z8W]Xv.rB|XntayE^d >AM`fXHɔ5Ry۹Lmϛp:0v9'>6 5j1BI~hMf/j"]<dV~f)p,_Y7->96 h>j9?0FD8v]yy@KN R1T_E\2 h?ǩznM?9Spi̩ l̰aQ?3fGj-3@Hu wںy; ʭʪF_@WV . ;@ ¤ k'<ridO*2u |ﶫ{Rz&(ЏǪ^+c*UMO0VZz T',@zz@P0 P8Hhظxy) @Zjz 0@qqP["!AQA+{ڋ*K+a뜻Y͹@-i9j] NHM/?O_oߏv:dР 3} 5 ĉ+Z<֭hHYh`\€ۥV6BձTClnt#7\͛9A '-rWVA[Zd˚Q4+y|@>H6|1EI lv(: 0h)LQÉ7VH͜;;HĈC.4jգ!$6ٴk`Z>45/](ݸM^rxiԳ7 VὊ0 ^|z!Ƕ ?E(/!̄qBѢK_ܗ)aB]%=RS` FsTwn>~"$GbзRGlW&G+#dq-d cZt?MCZRdv> ew!N&^eXbpPz #bⴀT gr(cigzB5>JhuBgi(&hNJV.iU頝V jujjS*Jkފkj l[N(l.l> mNKm^mnm~ n⎋l ;PKKPK9AOEBPS/img/spa.gifghGIF87aF_ڴʴnlĔldsl̖lΌdld̖dάlnn̴nddĜ⬔nl̶dΌlnnԺ4fʤdf4fڴĪʴ4ڴdɧfʤļddƬttf44f4fԮ4tfttĜļԼ眮ttԚd2t֜rvdԌ222d2tԬ2rttttttd2ܞ2tvtdvtttrvtּvܞtrrtּ2tܾtvԺt֜vvtrrԌԚtľtff4f4tԎ4ftf44tԬftft﬎Ď4trtttĜ|lrL<>dfDLV,ϼg،t|tft|\Ҵىb,i'bÐ3k̹dM\y%y8 pyfcԏqR{$– cͻ>{6fqݮ]%lOwq{O)q+g/n}1᳿yΚ`L{ǒr-c_ NG[L51%`^" bH}+ٗ_y,0vur>X#bU|isғX&kNb &>P_YVVnXHX9Hl6UaxEȒ:T"U{vi 6^=VbQT+%z8|ea6YIZe֩Jip*무wiay͡Fwi a>-;KBDkζ{֚k覫j*a{9۩,f$|rJoNVpڔr*w_-a.~ 8(/$lNQU&Y͵wG-8ie6ؤ K˰},fjh4-Zk}rv}3(w`DqV\`jL#/8iNݳ5Es۟,Qk#_!}xaWn(vLC-#=RQARe6jajks5ggU omjm#ʄ`}9:'8[vNRq.m+>ߏ٧/d#onN/ h+(ErBfIj Z_ 7zP,GH(L W0 gH8̡w@ H"H|a4&:P4 H*ZuN` 1hdW6rpH:x̣> B38$N5*򑵊:&IJZ̤&3F5a g8H2xxґ|Џ̥.w^2@!~㘡2qS&_Z>FCʃH29JS>:c}d4B^g)Ms.1I p0lmt& -(b*3чZ4h΢,at2cELbtFe*ic@iKX H'DTJ(P<1 (LPy9 DUBN]kXU04,-@*3U5AkL)Ne',y,'}M_S2ԡ8 ,,h!89MijJm\,"$Ni~1',AOB+%L (L %TZJ4 M" ٚ4OKpic#HF2ЇR$TžkʠX&FՎa 3‘S"2At51G8{K;5q{"'٧I%;Aޥ‰m0s-\w+oL+f>Aq/:֙wn32/4<YLR \".R1A4d.ӆՖsi)bjtT:b 5n\ Uz4{avdv̥ڒJ7ԣUiz;@I=Ad%F2}%g;8FMzHp&*8X-9/[uWmPV:?T]*!3`a~W h%^U*›q:l&@95U*#FA|%?8;AYȹ鄹x^:xuk &xx$v'0aӘa87؍cm3eHmyyG EEF^@5<مր_G^ Xj|6]9w99|]r)Wo巚iu}0GJP7I98;FWt15vh |1NXDTuU-(֕ CQxYB< % ewwѝ\uw[OX5B&p)&[pSxٗMHdGXy$pHQ*j6y[v{fgoI~ oW7 V굑7J_gg~)7_Cr {I_IZ-ћ9V]f0yAv60J1Ei\WgiNynoicb4c=S.b0@R#5"x<,d2%6Rh衞gW3)  4 @7j ?D9xnjaʄr0b5geVd}Ɇ4q5]!repn%*sĺpI$i*Ѻq1׭` 9Jؐ \s _XSx@p$ POnTj ڮ8|mRa@!ico,aϚgg%uȤ@^ΛΪ& Tzz% slUf4_^C`qIEA_۽SUg{n 3.U\a{i[q +<9z^LQ]^ǚ]JET\-g¨ \1\L9A4U%ZµkOEJ|0¯g.9Hj¶{/7,WcrWp%q!/ho]`+9A-z(G)|\clLw|Yx,rhfLɓnq- ʤo<ڋ4'](Yձ|zq5GUl)b'pPZ Wʿ\hl6ǹ0'eɵLe grjm| Wʹ\|{wܭ)g`K3c>[}#O7?(ސ/^ٵ4>=٭U=78_/*NZކS~y~%R%M~Ŭd[@ o/IS/lݖݢ pfX>]] KU]/:ә]{lC- ߣG}7=/ՙ9zVZOmOUU /}Ofqz}_ Ow\efO1eL) P̈́fTI 5Nh̞j<4H0H%G J1ddyd͙! ȡS&Ç&Q6p3"?G.(Juv|(KN9~86RM?ZQ hXB%oPvP"׳6%5lݻb#'XDB.ZZ9Kq,ʲR1U7"ϰMZtbs66좟Q{[5$N}Tkӫa3p~o}\֜eI6mͺUtNQdxoۖI=,' `VB)d>3PB6 ̰C?1DGCODWdE=tEg1k1oԱG71H!IE D2јNIt2(J!*#E3L1yQx柇>/?$#>(0( A$>{ha}z^㇟7Qo$#?~ w!0~IYo}A$L BP"@3arhöuȃZC0G @/D\ Y8E7G"B$^T! _؂.4Ё^Xx_h(?&p, {^ ^1{LH׿(P{ '?1 ! 0iĢ%9|NP!(݇!Q|SdGEZJˊdϋ%١!b{Z@y=3\0c2 S:$_J |TOI36K9g@JS&@BVd-h;?eg=INl/<_-[F{#/,6Р+>"G)KEV:HOClAD3:~p|;п ,t S$Ont|QFē(EO11~MB:T>f(?qsfB>&ărE+kDbI ɡ1yzA%ժPCZ 2{FU5YNl&aCfGޕJPc됷0-ZNF3KVէD_ط6m\Ql\=JlA@&Է%I.Atix+!Wjz/N.Ha),kcaYx!6/8"hez;{򆴸gSrATp6,*p:dY& GD3qgW5[M%Y'F(CXNd#ke ;]HO,g iAn n!=]^uMhvsk74u=ޕ5qF$vogQʆvmjWX.@mnww=nrFwսnvw=ozwo~=p3TGxep7Wvx%O-YS70IɃ\#֠NZI|4\W *9iZ^:JyXO֐%a]Kr3Bߖ{a^s-E~`BVv a\厨!wicgT\:Ї^h4O\ȱQ'[ֿ.}M 53>OѲ\R;w3!sa0 R 7BI̕%V(C jq3RĤ4ruC/ѣJ`=_dk~ˀ-mQG$-'YH\֓~Y/[kDbD$?>>>ۍ ??ؽ? +iڳ=dH 嫍C= 24 <Әa@@[KL ,qxAB{1ûB5: )B#2$Y  B; Bzyšm;ya39+=?A!Ⱥ2亡 E ,;1L>2>}<.ÊE@L )عPSOH L,JtED}9Ș@$aCV(Q` 4QDEXCHɗLy-+GY7<ǨØ ǮDAJyȊIxH<\DFpSaEI엝ȶ(Ix%l:Jx ⓹Pk˰ _KYīpE0HHLDk1̎Q, m5̼,ǢPMAKLl<8n$T΄ ˍ;M֋$B8\~0RɝAΰM$ѤDKALJYEr\Aϝ9y$G<& JҳϒD<)3˂hϒaJ8O@ oU`AݔPXL@ERHkW=-{FօГ߫H#ɳߤ]{=d 9!au<<ɤa!#. 9@38:P-~PU->-na\;31.1h,b@a0^;>76:N_p+\E% DfdKA s?#=yUaZU)_TFM4xEmdZ6C'jR,GEZ @Xk'D.$jNgE&4@c^ͮ8P].hfdd56VFhVNavaV|Qqȯܺ UI Jq~~QIL.qչdN/MH ;Wn~kӛﱼ`b{`kqPٺ׌nDIIH UoMl+\Cl4VAЖ8m3bmF팂mFmqxvdΑ e8BmLBKe,L Dtr\νdל׍"WEO=KnUQ*(roIp=>Ia fku!--”NkoNC7-'rsf p4hΞaM\hq.uviFfu<`TWRt }t]k2%T LP8% WQ<6u ^ωQ#s E%6goB h;"VCwv=W؃ PɡZ tՑOn[FpZ\Ki(C6l48=>h:btFaN'Mamw /_4qIGֶTy5Dm.Ԏ/]-~VNc_q.Mom۾h5]OGtm W~Z.Y]L}ٚgnxgY ^tg`~_qFY]r `z]tw)^S־y1e8Š@П*&R4'ǐq'>>RHƎ#L@.Μa>{jTIfP,j(ҤJ2mԡӨEȉUZr+ذb&k,ڴfe-ܸ`ԭXv3.l0Ċ3ncբI32fnL &cТG;YW6 8-V6Wt6^z.npoҧSn:ڷ;Ǔ/oh׳o=o>/^? 8 _TmTl 25" mQ[[tVGX .h[X*]_qeW(Fe`$a\,XsZۍB\]7)WO[79dEx|j5DM刔 )vSz8!Hqh↚lu&jQWga YWCv5~zWxDdhW J$Rvcg)IejAb(wgm HrD(iXtQ^q) ]s08f_!Hmpf{赥Vn{Nbk+i7PI\n]U,DTEXmzԮچUl8AR[łٱi8TƵ1rrH|F|/NIY+ b `yb/ڮGJ”( \Iܐ~bmBU_-5KP() 1 J==VGj)5$L5UUU/CiKUDzԷ- dRXC(t8 CdYݔ4MAꥏuCNS4k[C6p]5_^p?mTT-;)DHz`'ݠR^V2cXre2,'Y[jkGTF=0 \֌J ))h`V>-wեQ[K)ȍ([D~od0agX-^Eٔ2X49\2P#i;nHc@Pb&D.=5C$WI9"0>1r)0z!H΄ësLX(A|xa(%qm#N!I$1Q C)I^lb8*,?r:2$#idOHf|&=Mk!Y0XdK 2OӥAaؼtFIoP4HeID- bШ!s9ROؐ"DN Oz3 A޹tBj" TDOF bѡ0h:O3L0" I?*@vԢSEe-MmQF,sRt 5dC{eC8sRo)K N~d< . CMR3'nq` 1BuUhdF̩0 sʶE/@"KAR%ݡC N4=YwDF$g%ؿ2uH۞V|heeZooD86&iݘ ICnzgVrm JO.:ԩд~*S{]0'mMRٶb:,C"]>P#\U`3Rb0W멚9s4+L~VYV*C 1œCqD5+P"J_䮣K;vF1jLeM8\.!;MAξbf0E~wV=G-`4dn#?qp9rG *nwI~Ŀzo x+G}a5|| ]D#[?.7 d/o~}4\UK8/ [V%a?ԽG]Fp8N_rx, l_FE V^ f v~  J ֠ `p1yKNE5 !uqW<^d Gʂ&ϤA_y6!d!JJ<\~9mntm\Qؕ?Z!!ġHn < y&T% J`Ŭ̳8 ]dک~ hxZY{eMѪ?)i"ٝ~c)Y A9)*pjNDqP ]g_̙"(2OR*_%W彑Ǚ\B\ *Aҗ!Jnf9,Xۡ]["*~*쑢JE#BI\%ɾV~\ZVe[ARD2fMm*Mqz^UQm`0~qa]ݭN]}3EeplID!՝A@XH@I߱:Zv-)ݱ9V܍]NnAQph=IVZ=M^D҈FfʭBcP ߸`~bNbv /Wd_h />eU^b`y|/Zt H^ί//`/@0{/0/L70G r++B*܅BB.tKO 7\!.!Jc *(h9I wI%00B,L.DG -0H OEGp~ⰵ!ޅ_$E#qa6lT 0/E_-kq{#r$a0bUE̊1k#0('Yqc[(ck1,dp,\0+-8-2.rAx0/.//@`1`0/3D .#@05r#3+468a2_ѣC|M;n@ٕ d:#4V٠@Y *N>G<),hA:cB@]@.2v^&)dcD3,OIGJ`d5ڭ>VtH=$BdA,G/B7Pr1+g3Er"/2-s` 3_p6s#Tg#s0SX;9d]&!Qe\f[D eAm&YjN,*"yV ufuuUxi2lTdV&b6X:d%0ҕ`gZacc]h6c~eǕ*Yz&V`na2Ts1UD/u#3HwX?-l0C`t/`poqTCr{F*vs)r~*CE(œwSNJguˏuׯh}rP*&}^i"E|.'Br|~6J38rF8'-&g>}WI(rhw_P/c-s7ySz1s!QoD-dW#779+ 2y9O$=AWN,epJ.}Ѩ?iSh۹uQit{ij-_VYVQyzWr!:ykkkgBZb 8FGy,hysw8z/#$'#5s7zOQ7_E{{_jO%yI{BXQr0ZY8c9%Wxjk^i*\YKP;R:T= +Ĝ-+=2Y)Z:^e{͈[3;zw zzOs(2(S?z[y'-`3u5YuwZwȵjĊlY~}Ju#2"lK}bլ1\xi:Elh\ 66i/ ~WV_/3ȟǯ 4sYK8o3o9`nu~MD魐޾ip/fHkA"?R\!J^B]( ^HOk #ݴxcCŞ| ɮTo@4`L) "᳇Bd p1F3~69dI'QT%J-aT*fM7qԹgO}zPG,&LQ.)jUWɊkW_;lYgђź-I4iƵIUn]j&DƉ]_Çj:f&bǏ!C&odÅ-gFibeW9gӐVukׯaǖ=Եqֽwo߿۽xqǑ'WpϡG>zέg׾{wֱCL#'}N(m̻ٸO)v\1K)8[#KTΞ0›ȿ*3(@yrAV$Zk>#)ǔ /|$Ƒvt Qd\4 ?rlJɲR:r$dJP2JKLs>24 JR3,IϒFr*RD2CIQɆL4R-/9p61TND*T*t7tUZ5!B3YuuT]2XAI@+o- <8CYg H[@\/jϸ6[eOef3QU 44!5KDXtŐN:hD1r)Jhx#*8` d ( 8fS$hQHeN՞GW䄁 2 G_pMdqh*c(5Fj\y  bjp-ՐvTcSN&c©dm#nibC2?kw0Ylp^K5=E#?vl5/\:}vE7\X7]] u=cv/ *Q#5Nh޾ԁVu@X{k)2#wE2#/wo#ɻPE>:oz@72 Uq҈KTPud\> Lvyc _MTB_TD2`D#T&V,<_`ċ kK wX'ۈ墂! "Qbc-t~51k藃)C@\"rC l` bH1Y%)">Jj!K%@*RE;eJ32}$]YVF |$IiENN䐬D|IL\~PZe3Mljef([٦fSmS%(dfW:yCm̐ۜ-ɐӋsJcy+G uRHG -3CcxCU3 Ae!CiFҭAH/9Lvɤ, <"XHO"TadR{JT*TL僶F|W=\DZRA"$[YYKx&IkeTVpnl%!".H*N!n]]ozR[?"F6>"]u|#HF1^eɎ76ttw5G5K">>a\&v x=d4YӔv $o \"LkXJLL.h {hF[.d]"pM݉ w@D#@vϛq@Ktv[GBT4`}~X^ [7…e,xY?!=lzgx!t#bŝ{h'I]EǞx rl|!A4 k-w'bOޓMlTQe%TNZRn߷Wfi<9ۗӛRLOjrk->qe4hgtI]X"Z[K(,4su0]uصCl_likms ϰ}xg[uLhԗ#[d0*C*$=|*i[2.R %խa0%JC-y5f7«DTұKof4$FǁRԹN4S|X#xMRAn)W@$R>α7JjB<wG ]ޔa]JUdmwwϝu;~E7;crE7w!5x^1P^Ay·75zԯw}pTzϞs-kÈzŹh^hߨ(m O 6] B+cwυh%o(dge|"FߦI(?Go.>0~"ŵO7D$Nc2DL$biȆ@M/{b 8<4(2%KDgVxOTsO<Q"euJjbK/%|r.B& g!Upd 5F(JpB.J\lzEZ҅ZuBg Q4J @! A\"s" 煣Ĝ%T* G k6nM`FMl$gF-qgGWl.lxq L$ *&h+B&M/nTFfl:mt4,E x&d"inpJ1hqllv"npJo|)Qhlq⨆&QlqrI&L>ZLF@50,' |DŽpƛB"Ԛ(ѤmH,z(&Ӫ"~)'H+|l(Ҍ) A"&]*^h+҂yt+$-['-y,G,Ŭ/(GH+G*dвrhH' 00$2&ZswX+pE&E wp38 :!$ʏT@%r*EdIC if2꩜r)&0i$nÝƩ;=kk>љs Bߧ>'ˮV,  =s"s삩:wr3)" fؐ=^]eGs0Q rGq0=bM2_$*IG4apH[Nߔ*lk0O+>+3ꩤԮ"T*CPЊz2AJV"Dn /` 8 L!c-NuKN1d+Q?L?TtjRs*TM*nN˘Q`R P/jLEUYx$FnZsLeL& GYӣ08[ !S HVpVK¶r9cĔo&0 K@k ,CQt /\' E |Q^|ʽb` lASN5_4͵)!:Ը5b34RU&E?6$\VTM-^Ra_c!i˩t˻rU]M 4,gSvFGBhGƂlHX'_F> %x4k k]? еL]%- >ɵՄrc PL-nK+RzTMl}̮pͳJG (675\ +h JvdQ p7;'tȊI4r"Ʉo? a3׸mu&wB>t;Tv'wi XO&-v:{͹]}g;`Ӻ20\E=!S]~~OE\ }Z~Û魠~ܰ}þ%]#D뛼M~[_~58OO  I %|-c`9=A?EIMQ?UY]a?eimq?uy}1$̓5?`??_y?ſQm{_ٿo"??kb <Р :ĉ+Zlƍ; @$K4QcƔ,[| 3L+g"i3'F<{*3gPD'-"H'Lz4ԩTZ *OZK^=1ӵ$} 7.L/ʸC.Lj,Zm1ҭxf~ x wEKٲu9щYū kp10G9U#ZKK n6qԣFvs=;==v;\r e'*y{g-qAݱ/+XuO!T߱_^@})WP{700Xn~w~7cQX_cč8x&S وي*WPr!sQƢ)y2:آ(`I!He)XĝWYrW>2xކ7dfWP_Z&^9}1xܘ񨧘 *_~1W'wF'^^Q4nWeph h7d`n`jA&تꪳ6?gЮ!Jn+`^)~ ?fv\FBeYH)מk1il$;:{DᔯQZ~am;R:!menl-gzý]eZ+l{Sڭ&-+O8& 6;A$Ok<@;v 1VQɫ3Zs)Fs}:z&[y}qZ&0 p9_=~9R3]y}?=SPu}Ə%oS[> p]|>O'4Fy&`UاY0Gۛ1AU, )R{*@ gBH3 O(?Cp-qC*LlID$ 0QCv6yy_mP .ƈщ[%\e2,oCc- p0!i2)ZW ^J3J_Z2_śHGkjZ1DP <6e?$CHزvŻ6,;! vÌ䠓ܒDٿ+Uif0Jd6M"l,ƃ0?H\gǓ"6Á"t`ȝ,! , >%:!fǩA (Dn̄&iT̖ M{2y Ai2oJ#iB"(E"UX Meq鋒stB ZN!A1q8P)X$PO졪]*HSBNZk#o8; tښ&{蕶tִ5mW;Iaw ccU: K>`&ȯ:Z..PudX/+핱2tKN.Y0N\<(3 H*ֹq\6f]04AuYg;ײ(XOg%LfVe=ϭ-)1nF&j2op?8/_ }Dl$%0hÖĆ-oĐv`0 ͳold$`fBdK\5h*5e찐K"~`'h Ȁ (GȀh8$h'8'"+H.1(3H+x59=<@؁B2HEXB4GOQ:RUhIhX(\ OJ\MgixT]؆R8oxv؄-h HG}x0hXu?SX.8)f؇xP؇X@è8xḅfXH8z| (H8'xR"x8*P(9wvBX$0Hxp ' *P@|x` Ap@ Hȇ(h!؏[yȸ6(8D)Cm N)lHwz ~(].YȈȒ0ǘ/d`(}(8gyXt9hɛyxu)Ή縇й H( ژ Py8 P5靺9YɇH Eɉɘd(iؐh$%h ҹ}١w8 `ؠGx'Ai,z% &٣5:)Y%9T9CZI 9OH؇pإhwɗ9ؑ듡!ɍ09YH$ُ*I'y<D KJPܙYX 艹:imʜjz%ꐓًXHi\:ii/y;xڛ+ٛȬNʏ#xH*Jo;:egJi:θP)♓:IɪɨzKZziyj{hXX+3JˢQ:(-ڮ 48k*2 (3+9ɳ6۴izGQ˦zMkZVxZ#ڵٳщg{o:B7q[[kr ikkk{dK lIQK_ePKky HJ{s;k1+XJJZ!*oX{Tú89ۦˁ{\}yɢky(I=˪K{rd `jy1@ɽuk;8[pȼ:R Nۨ9 쪿ۿL˄I[V +ԉh`-,!iЭ* ÕfA+Ha Iȉ>ኪCıqDT( pj\! ʤk^ƽKH JKčDž̡` |/eg|zl),|Čܼ4ɕ<ÁLKȞŠǤǍIJ˵l˷˹˻˽˿ ,Llnjɬ ,Ll;PK9lhghPK9A!OEBPS/img/dbr_capture_history.gif*:GIF87aڴd2ΌĬ2d2d2dԚdv̖nldԴnldĔdv欌2Ĭ2dlČ2d2ldlndlnĴllnddf44dܤ\$VltԜΜ\dn䶌Όl$$ʔĬ̤Ҝ,$$$vLLD<<42ޤTTĶdvdvT~άvd|zt<><ʤdf4fڴڬ4f4Ժʴf4ڴdĪ䄺ʤ4ʤڬڬ|ĺd4ʬdflrL<>dfDLV,μd܌t||\Ҽpj*z2}&*V03mKӨS^-m߿*z>_'p\UZ{dž/9rӊdκسkFjԪ} q!za|< ~(8[Y|͖R_{GX¹\o-{&= Vx!b'e\\Zeh_{͈#9qa3Fx9tyfHs0N64Xf\Vp}x'=噏ywmWvm'8`wnux܍_̕ aIcPφ媬_yvYol8l쭴5UW5l-6]`g\ULF$`'qgkJ5beWj}vedž[yj֗Z^5v9`1T3}=#5҅&Q؍;N;2~]՟ݚ-*n%^

Ϯm6*7N4o,RHhu_s32BO6$x-Z2OR1&km"8TJkF8 c)bo`u($U>E1ple`nh"lA`߭KM5Sl^!xƕ+Ʀ2>s0 UD wVpHYPH R(F:'|$OiQ̤$#ɛPU(GYķL*WV򕰌,gIZ̥.w^ 0IbL2Ќ4/NR̦6Ucmzl$)"ArL:שNt3~HJ9ς*F.І:8JЊZ1ю31JRiڏ&Ffҕt,gA* -RBїT;N?p*IKYRG1UKfƞϪ|RHU2U=TzAiAj*WVv )~!|ⴟwOR#` Hm' Ԝ`՚4oFW =]䚁5]6S-*UR Z<=-SY,]IkB,ҥ/A{\ ^yMk׽Ue.N^ͮ q,K XrV^a9ocmL:D6Fu>v+ ʆZ  6vD5Ec02%Ewi/`n>Ц(ľmo+]ͽ)reӘΥ>s j@m2 H*=r]W!6U]]db]] 3}0K>c=̎,B;2ZknIĄ7 pvE8vТŰlC8)WH:~3cNH]ƭJ|7vkpy[1LP5>׆3M8#h4bi-Vԗ5Cg[gp6%Jwcxmי4uOxN͘2!F1-%يZ(p.!tdV穢vFpqKNm Uw-ĒUbޝt*|"ηM3|/O6crkTV+^Wב5;5jFrX0c± `8Θ)蹐-Y1OM}ŽNytFgk9Xia;c֞w/kA+ݭ`BnlrɖϿϽ-s5|}1E,x=ҝ YL/Íަ #ںR=ۗ1v-$V{<0FUd>Z}bsudf"V5+xXhV}f_- W.Q p~Wk"1!ZwPpx/T R6x `o*&RP >'VO `H؅k*WPfxhjlȆ0 X^8tM z|؇~؇NrXxH~L8Xx؉XKI'W8Xx؊8Xh 5NԋHNċ8$ŘʸH8XxPĊOXߘOል8明긎؎ը#%PQd(9YyQRĐYO1O8x/S4$I4u(9*iW抌i3)f/ّ<ٓ>@!ytEHy~5sxGtxQKٔ?O9~7]PVAb9dY4EOcY)]x5ko)~\F]s[i9)oDxZi]ٕ~yqi9blicctyciٙUȕ3ycW\&%IoYoIٛhnuU@wyO)~)Yi8)~9vix܇O9Y$ fOtx}wɝIxɜx ~i *O=کOG7:)Oz ig9W ڢ.A٠dx9y@<2ƚ75O: R:TZ2OW)Y~?ǒәi\`,霁i(nKbJdUzxĂ0J-Wّʧ~O?DH@hzOWʑ:zOSOjThZzOmثjoO:ĊOŚʺ̺ǚtx xʭ:Z *꺮{Jh9upگ;[{ ۰;[{KLh:v!ۓ#+ZzjX2KL*;T6K8<@B;/FTLJP+C;VKX䲑\=[3YkbjԶk뵐npkw{dky[ط~KkrLtz˳X{}ve ;:+[I?[Xw'RĸK{}@F[t˲L+ K J۸4@{"yTKLۼȼo{} y+н[pJ0 ܫ𛿌 +{ľ$[K\c+KdK˿[ JKLl\~P+ "<{0§+п=L \k4S,t F,Hl %,ܽA'VU6,Ǧ|(,-Pܿ;3|ǯ+dA[P_\ԛkȪC|ȧ뽰Ddǔ,X\;8[L Lӻ{<˻Tkի;{J*ćJcK\%ᖈɧ,@$nvsԷN0QԳWJT>7+|?Ʀҡ{7JYL 1D.J>y t~K^K完Rn˺x^KY.Ͽ  tDԱ.h~j^`;l lLyKy =AX) ʃ ~ ┫ś@\Kƞ{.K5KAnʢ ͕Bn.w;! n!} |o\Q.Qɜ"m<%ԫZ 5.<^_d:l~َۮJJ. ~Q?.`]azMȜg.]ʩ<OOlK58\鍌ҾC\>h-Ӫor(l_d/LՔZN)ؚ%L [v>fȁv/xz_OkE?CJEOGA^֫ɞo\e/二$2J\>ѧ!h!}]ħ CB9XHaƒMDRJvXGf=!O^iSy qrdÅ #DUТ\7u@=+5FL鼘t[ 2Vȓԃ$XgƔFn穟)zk@84M.B o&SмhK/f Mz{īp—R´2cO9K9Ӱ?u,"0 FN,MbF0CJk&ڐ6'lӤx2/J~(ȒBT PA8" VVT:#-N "psRp-^8 ʕ!. Si8*rqYEVK}*ُ% o<kIP^9!Oj ǂF\ReX8AH Z֐#`Gݐ|ΐR8ڪ3^~΢F[_:H6,{T%ُ,/V7)GKΩs'2rH_~y%QD[ͥ:G~ت?ݥ- ֊A R)NM9Rkt.qNmT`?\qBGuIHb^]Z>Yd~O<(|$0-3|E&$syJӕ-H/ ?)NoO_9}Y X l9P71PW P63%s811d! %"kkG2Jٯ~OjQʉ8G:ouY0X"eKbW*04*WU} d!AlU\s E32`ufpcgҡ@Y}Uw/ h,\ oaV;jx@k[: N0{ngUm`4,gyrF@}a1)ot@V5z #q-8V{~zoD @7x8Pusɒwnu}1{\F&r,PNXxLkګ6?y3`5NK\l/Nڲ ^)>mw &a.gx5;_A hy+nG4X{U+ݟ~%(ݝ:NO72 wk*%ִ+ 1N48S3TU+5Q* -$5P */ ܴN+OCǻ1+p7ˀS?CMQu3u1J8ע-J)/@4-  8ݳ6jC3qC_Bm 265;>5[*˪#{;1;: 8<1C{ ؼHD186ӿ<{;k֊:{A0?3cR=8;ņûQ4EU|EY4 `<:1#SEL FA%8/501؂)8#赛1ȰG*D6<01{3Bb62@۽,34kGB:={>Ļ1l8uCJl88t7ҀEGDL<1D[F+K&7{˖ s6<3?c14]GfuQ#D`?%`|:KAEQ@C |C2c5;4R{ECTTԩCD?ߌӼJ2Gк $'e)@dP(SY"[WWȉX"*.-:Z*JtwUp]ԛ_],۱=U[jK}H[fMKz#U]7\5=M+15f94Hotc6F]bѝ+b\e?H HMDʃ^D\[.\ڭ3$0K99LFDK*O5Nf3ba:cScP>r_2|uc ne!~DM5^%&G&=L6`ar.PdfDLV,μdٌt||\ҹ;-vg<̷_Z6>䕔V!Y3麍0Ylz. 4͵l Ǿ1[p _VZ-6[Wۇbө.v|{{sR.fyy;|q|z gd%ZvV\Z _j֔bmhau Gu\rRyJ@bu]G\]KF7v1B.TEW=ROeu\g \y%YZecZ8JC6dNBޕYƄfYZec٦qat؋4j> X%}E%KvY+* qצY{MnYupђo eKpVfy eI0 Y5Y]4)%sPR˞OҨ6dq? q᫮R,!ZfZlFJ`ó溤z騐ޛʢJNiY$+K.ѻîl3Th+M28lA"t%\oʦc#w3Ɨ^a ƪ`rWb"M(_ٟ׫.KX,r@U>0Rq/.ZgϠjݧ"V䣻ޞ.1Nu̬~;5n\x-`znw|qWN(Z?~"s.N NB(M+,zL~`=c1+e ,d FWh?!L-Ukגn aNP |.2YME/0,X Ŕr]&ki~(7G Bɉ_GpAs4% &Q|yaܳ'Kߵ8[WՊ0lt;e(-aȶ@Ј5"a*vQ؟L>YdH0Fs(G -k+XhNÞ*ԥ.CV[GG'Cpi9Gl+xVvYΆBoۃMm퓍{~ 3I'N:͙4bQYDRCͤ.a:SM(K³цe : *zHʼIJ^XOKGCf?T4N!5@ 肨+ F`d)Z{jh#ىNk|:U.NUy¹ԌDFLyr%R5B:ʨ*i9RL+/h=c2AEKE {nUCk*u*g|]e%S9hr}+H?؈AjʸYc.RfvQꠓSPJ]emlZnMJOhMvrt hR]0$ύFD*/AF-ĝV]zR'0 O98\1],ёY%?c՛41PhF9ei= ڛ4/tcb;)̇8Ն}M["% fj`vMawCMD2/R`qPJ"ۘO>+9!c*#˝=ltN ߚϷmآ{~!gE+t OpIYU(fKbU4`z/wz3g78sZ`'{*zl{G| w|A1-}Зw‚1}y~Ax4 5!29X~w.OS:I$u4nq Ght Br0r8Gz \1Guu+agvP  {f'{{{,!i Wgg* i7 vGu݀vHi!-&[# &b|(c:#!ç7#0@=U}eiY#TMCX9E0T(8A~r}42h w8!݈H|r+\ahz\_b(0V@vx ['`7vG{[GI [` ّzx|EM404Q|0+2ixi/*wN7 /.xG5@S~XRbXEi~ x 'X9"p X9gi+HopdcHx{)socׇߒ}@x(**1量 ؐ,AiǐӀ* )(s; \y cJ'0D/(E2E9+x@)iіe Dl[95%U9wg)rt&Ty?1̹9P[)w](sȆ`mȐvZyvx zqsH (yshǹ:Pd;D8w:gr>Rъxg$w 9핌Ƹ=|&SU؉#9eV)IH\ uǞlЎ1w|ٗ_Z`rmu),aꠘ[*{!)dɦy i *;ƇN/)âi112*[*KI)Jx㣅t!WiCzMzIm-c.f)c PPHyai0]*9^ sj0r ɑ J؏ z١ '#is( W%xZ&"'&; 1=U(P('`tXiר6I$YyTEWAܨQZigHfhzrc ڐ  v׀h y؈ ZHXS z Ml>U|T4 exP1 JG<'Pœ 1uֱy(KyKUJyRC*)cKu\@eгta{'؋ 0Ks[Jנۻ;Br\| 2<4A|"< <&| (P ~q A/ }08:J5<_!>1ElV[,]XH^!C @L AïgDT=Isk~Ғ 6 T7ÝCu }Mf P<`l=<*Jr\Ճ :MGog KìIyMYRѻ\-RÓ=ؑ' @с1z}ǚ͢äW;]=0lнxM+ګ}ʊYm0-b]ܩm }؋}aM݈ ?mLЄ̈@Âį޽dH{yy'8bՍ ߌ\ԜߑH -E-R]RM߯; / E-(> ~ħ,K,n$ E-Lϗ=߬LR,9ݍ%ѐ}6p}t4EN^>]5INm 挍J.d,qNߣ2Nƾ ^~̮4-.>.q.} ȚOl2 u0a\߸Д~6?m/ g"IB?2jG<]lU3mmm>R>|?,Y~k]eÄ skq}+aO?__-C_'T?3/vjԮ%mmO`OGغkAڎVl߾_{XZ/N=8t/_ /ɰo/R'nύ `L);NA 1 B%Rs $JfTtǏ!<1H49bĉ3Qʬiˇ%)A9jҩ2 IE}cSDFM̧U+UWV mQ^{uKUhQc]n՚oń?9btXRF:5/LW㎽8a] f$ea5C=aOnKW\' @k";ّڈ!ȠF+2a{S HyXH#jd L^}4 R R\kHfW0@ď;K%ƒM5K>Q,@$|/Ȁ4@ I%rVP],лA1'b4hBQ@:N K 02ˋ+tP,5< +{Đ:K*K@ZK31tRMS5=H7ެPD7QEutDDt:LGC4St6C2Q@uDTRGTbutKS㒷PA5H,mmXM5دv`=`3"hIZɞ;DEMuSDuږĚu(Ր؃B^p=Zq"W[t|[jU[eU^{=8c[v4IOT7d/Mxˬxt_}Yv55ݰa\^auvSi2$駧jkkk&~mzv;&P;oLo<'|l;?|n~r1r7'n?'Q2sN])_=vgvo=wwgv>x'xwgy矇>zUm7}jQ;{{nq_MC\|}˗|ztm6nF+r&vU߾Fwij?>c v;`xUO\d*Gz呇 K$&>Q,H|'rqFg|X$bqgTT(Mi zJ"tQyf}jC)L=r6'mRDD !%oAsN^F)Zͳ")LUtgCw:P-})@)R6_^DJ,FE wTy1C'Rb?s%I 9) ֭~s) hP bDL$ 6Be+"NJe#;AT6%:4h j^5Ja|RӜ,(Ei5:vMueCזʇ9oq!{ZE M*,"%^M0=aζ-,gw, .gK֮w@'eMp e>L1Ujr@tfR'd2&} pIYLKaߑU"Hl)s-)1\{;#,{5vDf_WspSKb AcWV&4GA3Jηbތtfy5AHms$^g?\:/UB77m5͔tTi8Ǎs`N|zQSP֬sgZs]hĕ]˅O驜sZ2 QR - PK,A^DFI0bEtߺ7zv 챲.5 OԀΕd63Xr8rb4~x #^7Jnof[P̖t l=lf[ 8TWZdASHhyA0X@,A \AhA[X)hS@@$ UX.$QCs. 4`A*;$8̋.DCBd3$6dC"4A [C83$CDI$0AZPFSļ%A9R4E B?P,UC:LADT[CtD! CJD_|&2|EB1YT;@%TBẼL'\#Gx,HEU4¥LI zʼwUU]M^VpŖa2<4ռ$Ueu-͝'. *э2_#[:.q_y_)_I ߸Q27P_B_b.^* rGʒu>*J֚ #<` #π `jNxA! 9 va`9bɲؓfa7\$F _bȊ-`b*Gb$F$8%$ s%;g";9@2?A8b+}v g}F*7bZh**e)$m@ P~~ӼhxtZ'nh F(c!Li樌|iuӃp۰%o54|SzU6,J++z"{j5kzhZ{ : &k6huI,2*.$Ͳ2#-ĮaCk4Öe4^R5z[kΆkknІl=>l6k6e+&3|c192 C)&*kQlӲ2f죛2 1S;Uf0.7 ni8 ! "kUbӗ'-kn^.k2o޹j@K4c&E^rwYx n.*@({]KF`7ѓqY2泻ӆ5!_0 "ИAp_߽0qȞN+63nƌU;83)7/~ *8 [mӓ7-o" zR 2@6|ۉ6IN_)u1 ;1 祈LJȗɧʷ׃/_.87Gԇ<Ѓޙw;էڷ7p}W^9|IwݠG~ʏ5!ޗ]-}|7~~;~w]9W'~wggW~:h „ 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i8\l9˖e|Y&K6cg̟.gՉgK8VD)ԨRRj*֬Z2|PHwɳP_we{sҁҭk.޼zױn Y-aՒ]va22̚7s2ABmu6n*m6ܺwcNfif>>xXaT6ҧSn33ӻÑ=9A:ӯR̘Ϻ?AqAFw * |_ mAM1!za]Zl!Z%x"]\E"18#EVx#9#=#AyEiH#I*$XqQJ9%UZy%YjX t$a9&ei&mjq9'cY'y깧}w' z(JUC8(J:)Zz)jp):*z*ꪞ*+Z+uQ:ꭿ ;,{"&lZ-6[-j-^m߂{j*mE檋i.Rڮ[.E0(.Cq9D> <)C_ Gǘ/),G@1'̬ LϼpÓ 1"k2)\< r8]) c4'+ p^w P٧)TXq˭SW̢4mPKMCh iӺw}ӌS*IK=w៊-rp\x}ܭ~zAĝ/ *:9ۉW|6ю W~xJ?7*%ktU朗wlv>h-_t::f. V=pų؇ M_gqI yg3X邆 XB`Dc,8 Rx!:aY."rzf7HAMz[ ;lG`X˦?!fBy>(Xg聮P"F jLfTa=SZb:9Mq/48gc,`H@LkS+6^<=ɱ52"5yMZlV!Pl$(`9=d";=LCV.@5i1Ɍ3;朗-_3Mb:4^;Rl$!5-ԧ'YO RtaމPM}CvY1!0#hMeKaHEPe<65qZ4V 10l hg7o<)sz*~%L)1"3,-OJ,e᭢?Fg5WRb=G?:łh$uU. uDQ&-.zߣdVQ&y8&AʦaN#P3GeB)ʳS\ fWg[XI άu 6t]\h)!f,.+DfTp ҍtЭuQ0mvSڹ--cO"Wf5+Սpxé2;])iLpfX8f.ʻdWemdq_Ґ#X xMitU`ٿd 5aL)Ć0$hځ y |R,x<ٍe0ZVf*`ĎL1V19PW%Q/yӇh׶ιO=mћ]zڞAX JWڙ~]QN/cvP=-KrnϽ}ޏ"?{S_1>Kh\^,@ %^ f^<ؕKT@y,؁ұL=F ]  ^ = DM1a!4I}@J!ʝb}ZVa`K$`f@1a !ΝW"`!")@``!2^ ]Kda$aK`bͽ6 ]!,5$bb-]¡~()u< x5Zc4T4]%]֙#6~9"Jc9&q47J5:\:F]=###@c;:^D"A^?qӽ?Ec?r]idPL8;aE22`3Z0dĺр @@AbvKƄMDR_+'HB H4c1z>%D*]SZa,R"b$pPF$ V^5a2b]!(XqNA&W*"]zHb* f&< *IfPZRifu,fedz*@em$1~1*"cgXgnJ:]kp΢&8&N%(w @8ev~@Z R.[ݹE2j^uo$a~j^` _A|z V !/a`.3B~B_g\0eD+j`\` "b(ƨLd%jK'o#g*bލ(-jƦ.@Z@\K&@(:)OV"hiYʡVitQ Vb)$zp"i"]Xi~_~v z ]sZih&hځa`(a % lh6߭=`'jG.6w)l%U\9q'ޣ7(i*5 i2g!&]#Rfiv΁kD&Ajn^q_ݡ+.ew:bݵizjK*Ah3[B%djeJah,<@H@\z R+:"jn"CJ,^"+$*VlrΪk(" _G/.^j`YJ$"`%< ):/ޮaf2`n>Volci\6);rm)6Q(b^}]J띊 V)0΢*~'uFlNSNN $rBv mov+/"!&,n R%a)^j0 &51(1_kGcݝAvc7*Xb+Bq1P!g*w_k-:'A@dq=>[g[qH"eVFdupa $fjkٱ!z*}R=rn&GfyVpB+.2nV(k$~ q,ծs'!3.˒2/[1?4u3G1+6^7o\3G _!!9qEUsr9,9/W;s67{>\?O\87J>?A7#t23sFDGDO4E/C׉)FSEF'HGGF@/FoIGEHGJ_JHWILDKGMSMKZLϴODNGPGPwN@4#!D 85T$$DAB!PU;S'#4R35Vk5p5XO5Cub$&T5AHuAX $"^E_;`_vT B(V5a5]]#aGd6I }ulB!uYY[_{v['R5B5[f_S5lA8e5"vdj RnGW_WpVw5n6oudOv^wTeCvT;7YE 4h;BS3@u_g5g#Bhd[vt7Ct7j{S7tc[G7bWRGwutTFx| F I0v׶~87~Bj$duY7w%ж Ds |jxpx7f# x0vCt| D+7qxly} d_Ž뵏b3gxa^4$Pm 8gR+q7^/g5b˸Bly5xC6eB#uyGDxuEPyby[OKZv#t"[#Ĥ %u36 B`g_ w9q^Kuzxp:߸{K8`yp`+{[98^{&L5k:x'bKz{_ yS'/Ak@xB(Huﺺ#t6_glv붿;{;Ï5<[{^{a W=="w8y'9#<"\f>Wgc~=z#軾+`W银+|?}^8S?=ܫyǸ5 =C>#i 7?~z$;~3˒Ax7[:0;[Cs;@ J(@F*Ta?RS'9@CH),@4taK/aƔ9ˎDL!E*3|qІ$Mz>H`Ӡ#F;&cˏRPes˕ jȢZU:mXhg|URڡd|*a>cÉ+z?2J)IJXRJ'E H$gͣ_ [0=/v O;-톴 PCI{w]C6W)clP܂X W@毃.2Jx[=^IYvꪠ ͸lAˏ|O-H,ƻNn(168LL1X.&C$.pH"%sNˢ@|6Zl3JԋJ$2)(ݢ\o߲ L0s-u36?T*qǷ^t5Dkj[(3 3Η6uI:UM~i(=T(;;jb$M6)@XW%ǝ{nC 9E$i]跧jHZ,lU3yTY!n[HsJ`}xc"ż WU 7 ,q?cGIG2I7865iWlr)O z2}in Av4nȳ[ g 5ۖ%-*QǷ}XQR RW~1Gsd?DB|~Ni|eGU)!)>TOt^ XΒDU-qy\de(KtK_:%1JdJMiff5mMTSR Mӕ*qQFpL&ʝ<=]uM|Rtd? 55(5P.D+hC =TV0QnGAR%5IQR-uKaSΔ5MqS=E.ZQE5QTrKuSUNU-QSUn]W_Ue5YJTmu[WUu]׬U}_XmU5aVuc!kWFe:YnA5YюehMZծ2Amkamq[斷[w[{ jq\j5usFյn.{]ns=nw^/5y[^Uo{_޾W/k{_׳ Y `K :!%gX\ i)Pq%E-^BbVD0O/ R0QhK႐xǰEL%3dP\$O 9f*V 8[aibe y>3[1 \ђ%frA7`.|p߂tQlF]d:/&t( ^/^1qqa214%Sw ݋43֤1\!'+kA*Fs efK;BLFv}V[; nl#V(.x2cjnיЦ-d$a2Ĕ1OAgeYC*-lsO 19wdY|&?fm-!Y!p+e5i.7W. cw4UZ`<9y/nĦY_DO7z]C~:׏0x\;>w.͌b oz C\ξ3}oU/OS}_+ua󋟺M w'gz퓾d[ZGra߯m+]ۛ!ֿ~|A7g+b b:lZPt/MՏ4KH|Ќʔ6gRA| H]®D-Zmup+OƧ0p0 p p q) p oP K p XEF,<,ve I^]i{0A찖L<ڰh ]| 'l$Pq:i$+{f#ED1)W P|iSx䁸E|61qї1Z)O;!YE&&n1m1uؑ(!"bQ"É惐tG("Ց r! ug !qLR %Qt.,R&92%׃$U C<)&%5&G$or! %#'qߦ["$Kfr'H:2B';'&QHd d(o(')۲!Gr- !jrȄ=&swdtwְai hmdrD_4bjoN03u08G?s0كV*#p43SD/+)G6Gb2i354oh06z0m379S8/ 74ߧ274K.*S9g!p/(383= WfCf57s2;g?RS1bHR:MS;sfw62 /^Ru^(w*h`b.E1}@m]<~%&4:P^#gfA5T,MC\d )Y$:tE8qcJc6Tp 4E-CAT49n&"G43^T~FrhN4,OLPrIurNN\Ny0iHc x4_6BZv%M).S!SfSc- 5h4Lb'J}'UEM$՞VSH=Y7UNTVU:-MߎLC8 ]S&ì[A[Qtu5cl[3&TccNC@8fJ5|f!#/+O4vE?b/:2g>Za݄]Bmqca`6b#^g-b]b_VF: eKng @b`fWU|?}4_ptfG(5du(WK3=iCg9@fbv4Zt+'gL*Dl;6۶#0vjn]V`GG=.M#w}UmY&<bltgtۖnͦ o3?'8wrO[g"$RRz: >j3((XB"ҌT(.!$w)r6-yM.)`qňe(,3P4Eo#W'bMHU7~Ũ7)%(0|>Ƈ!x.ׇÊ5s祋R.*2eÑL ۫q[N 5\M0ulOi_0ɰ J x8x]i`xٸ8x鸎8X`l׌9 9@9`-19 XAKY$)H9WSYa@ CycI 8XU9YiX ?y`@cy]9yy9yxQ9ٜyٕٜٝ@%* Y99z %zy)٠ٍ AZހ٢7ڢU39 ڥOgz]=: CjyqemZwZ[1¨;zω ZUk٦k::u᚝۠}zڪگӺMzzX @: /:9yک;홤9qK9Iۍ [a{` kYט Ƞ ^;@u{sMx kI ૕[ _ ;{ɻ;{ٻ WI {<| < xK!|GK)i1|{9_NA|ak?jP|QJY]o*e ,\ϷgՉʼn@8]}s^w>ɞ^&/?>7`};?#^^ 7<I?e=W[]u{3Jԍ^ ?=}3*Q~٧E=)3λߦ};b>CG?qҋ^^c? ß1sBKt QĠ8\ @ǎ}X\Ұā!!K<2JPVrI?æ+ R4x 5TJZ5֔-z 6ז Q(Z>цsID=(vk׼|"7޹fMUpǶ$nc%c8<cIIaB4sğtlө¾ܼ{_H@eeN>ڷҫs.8C'faˉ:7S$Fm-{_8J #gm{$lv rF݂޶WLEQEdbṠD UT#5E(aeE}(܅;}w܆6E" O#Hg^DYtԌ/L'"~IPp hby f_)zEb|Ujxɗ[Fgg|ff ZUhuvIU`"*ZVzӦzTv:jnB`juz+Eשj:lb銪lX:՚ymjda(DI QH-¥뒹%+kdVQV0d~Owe?oQ1op \~|c%Y_wHZH%%j=!=k3YoMd3.uuG 7!AEK\Efb+KzY>8lk X A ݬDGNB,>d<(C&U,OYJ.i#PEIuF&GnraaXYZcj,e,[j_f^KsF;׳γI@ zЄ.(zьn HKzҔ+=KkzӜ?LzԤ.5EmTZҨ^;Wzְo-Dz׼vt{ `ZľMc#{^9g;;>qZg{۪6qm`{;&=sӚڳ6ԭt7moM;ߊ7yP` X4^ L)G Yk AS.E?\ xS,>qS4qۼߊUs1oK~5Wx`I)#?r-w9]>g|:t+}+g=u3. t=:iTU_8+s]6WioZѺy Fyēw7?~ԏt|_я|?|.|t7Jug|z9h|߇xWxxs3|oF~V`z y~fW~ʇ{vzj/Fp7wG{ķ<8i 9t 'w͗v~[}:=(!D؄r!8sFhHX9uhyCXvZh\(ew~O~~G,vWy|uW8V6qX~ p6+W6wYrXs^|[;`v28jov0r{jsa8_q8ʣѸrЉY~pJif~qW蔍ɈuȢY*ZkBy7f7jl:ٺF$#Цtzo(  rx򨡴~ i:DٮJ7!{ځ}~:u3z'H7aY ڔ"h:rGwh,k 8 x^J~ym$+~|4v%* }yvk''nP`nJ嶵ujX'GqovB7ymirsVtXz6[6Wrq[sur 'ji7y]Ȏ>g=ڪxڷx똹!7g|uuSg HyCg}Жq[ G)zۗ[wP'&j$$е\kkvmm*IhOkRnJ)'۽[myڿ1ņڒ;ol&$ Pa`$̺ikV:w¤Vݫ񶵙&#R{YhY+#`0öù=x@k+oDlnFLŠ|L\"@Bv _<ʤdf4fڴ4fdڬĪf4ڬԺʤʴڴ44dڬĺ4dfʬ|2dd2d2tf4ffԮ44f欌2d2d2dvddt4Ƭ4vvĚ2dv2ƬĬĜtĶd4Ĝ,H*\ȰÇ#JHŋ3jȱǏ CIɌR\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴiOhIJիXjʵׯ`ÊKٳhӪ]˶۷pʝK]F˷߿ LÈ+VL˩Ei-L˘3k̹ϠC ӨSsn 띒U˞M۸s6L-~Mx+_μQzC|ؑSν̥/:󯵓_Ͼßϸ)4K߯R=(lFL1$hhUbK >X _#dfKbɈw}"Y3XR h8ț^iq˂ZEhVF{!t/c 5X3L/^*Udiz6u-K6hNmI^G" !2 M,`oY˜ٗ i:扤BxRp>c dKO0͕\ep3(FZ9cQRZF9e:ZkË$z:N:"@IG2yK]͆x"R*1"/&1hF[iÃZhHő&olZjV4*\/O8UJ nk0k_4>|BNʶAWΔUNs3L`߆.gut1 󥶃gS6Fh2Z(6}w2z| ҊtȪ~'ˬZr/)ٮy[y\ML.yQWN^M]o6fqEQ=-gC*7wփ #ߡJOJ,Z-b6G,Bsh5 ֹvcQ0j@K ZfemyK&٢nFEnC 1+z+%Ɏ}ÜP yg`Jr!tV*E &àXA jG@5쀌6 x`` %/`#{[0)>^1$ػ4MmcHY-.%xr"W`.ltJ)9Y)NFLՌLy^2H^f T(zly{J*3"P*Ǧ¼ ʙ`F'y6MvFKܡ*5PH"\f% RV+uٹ.Jl%5^9#wzIZ*ѷpYw$DqL ɏdЙ$i D'JҒ§yJWҖ0LgJӚdDMhRԤ@ wPjR0ԅ*я&HJժVLSU4` m*lhWֶvnYJW05x+bzsV`MbXfd'KZ,T2z hG{͒MjW֦մlgKvnw-pK.r:U.tKZH.vzwxK6Mzˢ|[ͯ~yb_ 8hb4)I]2a XpR*| /)VJ2bw` Ή3ckp$`85fI{b!6KvFQrK\<%L61_dpN~bX9[P%4]Ʌ "Y|dǍh3qBxVgDy^ɑ# -(nNְ7џ&0kR d@7QS"kP3ƍ>u l`)0_d 86dE2b+{Ӧ?6;v{7cfmd $N.3ĝnv2m ;eA 3@^@ws[N0(7ylZ`_?</w}ps)9vJ-hץvɥsr|ȸr nvmus7ć8[ ?:}{yOr/o~̙γc]|K榻cb`ZPϷQk8 2|[ooxk.v݁8+z/@>VV,j_89Y%~/_X ׇ?vzÆ|~o vof'zw}8aEvn}6{Gx fh|f7%{}*{M}%`~)v&}?XepP%2p{'}DHW i+V|cewzd`_8Mgeq7gz[dh8qQhĆvoLJk}8iɒY cws v&Ii>)1klVa`x7tp_{(-x$,: `pKhrS87ً&ޙc9X I*I'S؃2IWGأ;SEsN٤q 6f2٣-zmng~ |:kJi'*j}Y)[I::'&v*Cڦʤu:ֈd=ǎ@f{)A{઎$~@y'wq&"xK:тXf!) pc'(d`ٺ$ufTS鑀hvƬs y쪬meugzh Ȭ K`@jJw(; ѪԊo Jau+K pH_k(Uzw +"`0[$кqsQG+{ʙ4fk,1z_R5k5d`+蘧EF_8/a5drKO˶]eW6.Q ʷƪ^CZˡۙE幢[{E va˷4Pki䉻 ?)Ė[1BZQj5L=vbzVŨy`r$ʩx]VkȊ ;* Tz L+HkKx|ZȨʬʲ˲_<˶|U˸˼\]\Ƽ[|ʼ̭Z\͕5֜Z<" @ N 0 #bھ="8>">>L=8= $]]ֽm ޢ0 } o~٦&>彽5ݧ@㖰 ;>5߹%.ۢP@N>8mݣ@}挎qmbN/nj^mN(>Ϩo'霮=ي^٨㩭Mʾm7M⬰ ^"vꞀh3)m N"wN+mϹM^~?7MڪP,>Y^NԘ6Nl>ې >n ~ۚ.씀 /n)O6m6_Oۤ~ZNߤM"/!no}:nt܉N5fm5޺I_o/^h)n(_>3a"CNEdyjּ-.ד֕-՟֡/Ҧ?Ol]ؑ?_Ҵ̯ڐ?.p؟ڿ?_m{1QD-^ĘQF=~( J %MDRJ-]( DęSg;}TPEEzQdM>UTU^#̚=~ Xe͞EV-ΥXݾ #K|@ 44 UL6(`+Wcd1gpc #szōς&ٴǶq]I&}D5o-pi,:u7=(W& Wsc}6^#jol [|G̸{>t m0 #@zbO3Тκכ"-p.C*% Cq%j#! 1؋&*8,J18n;hc 8II+<#H#2; (dŠ,1/c.0L8Ƀ3. +R4B @1*DSM? >b ;< 2L-s=RI) BI]I*25@P(IXЁHPݰ<]--<XD,+} 7ոF5A5U[nTǺ5;emוoEr{Qq2rH-4tcL /܂^6]W+xa/.247v(.8gHd &pX0L L5~238gMC=y1˙s0;X`28iSm.632h1h9\!.+ =n;\k򰖚hڶmΚlwBN ` 88@s `7.PE#fw^m$2M74~˖K>RIgQ;x.qn>5^ʘ~5h ߐpH 4쳿'(nxG9kh9Rm{jXw}—0N=\g| [@T1"\ތV"(@SЈ%1\#J@ nk\"FFD؁;|hw /XI"^0pz#ܞ$)5xE䌐po_ˈ4,HTЅ5p[bV#aL;ji;l;c EF|=яrk"9GODcIQR>~2{9 xIғ|DNt 8*/T~FuAt@n!F$s$B?v gC#A󍓤A0{R1f~J!w0SB5~RgP":-cNų5 bP*((SKoM-;9f^&|']ZܑLcT_,7) a\)4.9=4J Vd)y>fcٻ=GН+0\Aܪ݅4lCJe p@U*EE"b!Ժ mp; Oк[HTaI,S Fv*e΋p7>yǹZ6X˚*]:8I"$T‚#_i"Emyt(,L ?2ٔLՆ8Y*4Ak= -Q?p)q[R 99υ>:{yqjё&u:I h xH-Mr]swйMulZ:׽W[e>F3#y|5Ánl;: %s}e?{_rP;P8?{gC~>ô =Q4K_hp+'EɾΡ?3꓾J>6k#q')h,(L2*#˿@s#z>փ?s?$@tkChC5+sABA<%d uAq Dx01$0 'K@zrɖBRUڒ792r3"&y,rC94RbYC[DKyD\ѩZ+yB(ZT]R݊!4C!Ej 6+6ID["OX4s3?DvZEe1E_.93oٳpA;l:Em Aq(9c"4 5,1g,ƃwJ.IGF̉Qq2S')0c(U 8AB۠Nd  HyGukDr9bҌa(IƩm9ˉQ`qD:k0lTAǂķrtɹ4dj﹞̬2}%A!J\Aт<4|(B' ʰzHʺl9ԙq$K !es#(zL"d s1̤ܼkdJP@$C*Jc2 y.l@r,*2O#=@ԓ:$Y͞9{K#\1J?Hr-D:̇HD(ʎN|3*%7BD)9j#J3t P9%Q%SNBaO|%R#3z$%V"M3Ly"{?٬J' a7cl)=HL-̖Z23POʐH(dLzª(NZTMZZ(RA*!4@9(jh|'jQ)ͥ4ЎHM- Ab".K,.q՘-*S$>Β43.DA"L`#-hGcQO=(MBGPD<UH :`o;E/VN:BuU B%$Q,PJ SC32EQ >FA\Ζe*9YP-R0-=M85ZxYj{?ڦZ@ZTڅcڪگ۰%[ ۳U۵e[/%P0mۄH۸ۺٹ6[|q,,Gۿ%UȉړUѐisb!6[ <\B(jݝA ]-%\Ju6[-\ 4 \MV]ҴV<, B*QY\45TdA?<3n2FjYiQD+?C^7\EW_8\Bbu-`IV+5!_`|_yF0FcIUVC'KE3rET[LFCUD6$ٝ^q`IvǼ lmt~IB#\II3D_oTpasǖAb+Vl Zq<#Rb &ǘIT])FJɮ9ⳓ929͂1*>?~!|\ ;Rae\rM5àb %L΋$V6doNuL Y6_ĬњKW.Ye6KNҚQ:e#RnV^^Re7Ta9_t$\%Ue[]}#L qVtq.y.\Ddb%Gᬎ,>R]<ϙs~AߌQORT^M5Nmy^PŤ(}QX>.͚]B1B)x x>~iePEϞ@K%e%ZLjmEρXҡhJR ݙD8BNg"\P%(Fd,Y6OUU%gP3It(YEL~UVg9.4E1?錭.14F-^٬,8iBrƮcuQN/;jRU$TamfUWem$Sf曨^.FWZC*V(9ו*3Y^24)fug-.XM:qoieB$ ooC3 I;XVin!>B.+AN vup} ; "?ݞ5t6ڛho£rsӵӠ.g޿^0sm._Hs݇qP9G3G; (7E[>@5s1AGD/'CWGp+6>Mlr {B= ̓$l@uuӝBt*u\VVr$M! EBk"T6$l6`B%vfNҍ?TT+N c>J=^_ABiTy6E1RSvr^DY֕laګM B|blqdiaU_YDJL~oDN,lKDaraZ,Db$a*!DeX +64 /]CW @_'_J!}Du|bxRGJg[ل{:HUJaG7$ҶbȡIBn=/^QDIG,I$BHH.7#E9G(fG㩄PikVRIDyDcAi{~$zv>^? _['|*9W7Hq`9A flS̥ LW~dJP:n^фWfrO}T _Ge#egfh-?ʫkYoK|NF.^D&L+W0dp) P@Ì7r#Ȑ"7 @#Wl%LYQ A  Lpž?>iS#3QF̹T+Zp)xhQ-'XlXE)a鲆CPz%ѩU "+Y.Zr۰i۷@UKt0ý[z]ذⓌ7H/~Am|JҨtFpbVFZҬeqFî*6CuYvV};Xco̍Fbڷg,y2%Ǔ׈ѠJ,*jvЁ֮SQHX_!hfLIzǁ=F8(j}`lzA$t=XXT؋ Q:Jebk5jh[sШY+h)ky'd1(uM]kgi%slKku!&- ^ ;]ܫ[WGfb'p@%1~HIZFW V\r y E9|!E'/"WN,lT5nEF$髿>̟E3 ?뿿HO>f<>"yCYzLAp<w#cD@1p1kb 5 b|iBU!DRk*Òe-EQ>唜[S i{%NBer1ԙbE-mn%%Ț3UILlnE$3cN}spΖK&T57S i7Nv2,[LtDŽd$fr#YCJ/G~DCJZp"PdkLiR:IbE"ZS`Ռ"2uA5bQ'K4p=QT7 YDqM-){XjH  .mpհEdkjӵ'LjC=Z\T# G,*DbzٚgrŤ~$[HJ @ a2S M/IUέ0I܀pS.]a8I?avND!9IT! B% |t!ǝ=!JMTVu^JP1 ZY HUE"(vZUŢ)ն@R[ .vU5-K[1Uёo F!cT/^c_5bc#eEcy#yF85^Z#_%#`N Z_ ~% &JxR"!P\} Dfu[}ax}WaCZQ$GWyȲE$pEEpvIėIY~sIUDFg$nqD.M}Zru$jpLR_XFLfLhؓŜlE9mW^tp"qSZ ZᥳZؔX,dXYZG%0d2H\I ]i Z(&d8 eˆ՚\zV dH`Ȉfzކ١5Ho {RYAሢuc}gy,ٟ5g#u]6yڛyzd'txYh&eҖ\Zgfxiem_ `f1ˀ=XŁK9I̼AĽ\|z|oxq ܉䛸(53ʅ^"v(h\-=: B]#4)օBȃ(Jl"_,T|qSI#ڝͼ MT=aMi]-]r]}iӔR̛i NG Iݨ|J]zn 6@NA_iy\(Inܳ2ϙ5NODG 0+*yk^U$ k֫&P++k,v٘6`j+ Ukv2b;ڐ0l)+i_@ inĮlTl8k kl>,nrʮ ml쳮!]n!$:!=Es8ċ2e!bs`mYb3b|sZaV86'[|ƻ >W2&~&&.r LĤ弭RsONP^.H~D8$:M>䞛=)$S0⮮m6nbc%]!AFenff^%o fpβ&m6p-L'fU oe>i~hn>N:U`=`h1 䅺 MJ;AN ˺˺ gcӮ/Coګ ͬvK [h*Ⱥ6lQ䌝' i&pV[0f^ 1 #dO7q#mdo1w11111DZ1ױ11oV 2!!2"'"/2#7#? $O2%W%_2&g&o2'w'2((2)w$2*S2+2&+Dz,2-ײ-2..72,r*/s(0132'2/s."4G4O35W5_36S#33w";7839928'r :2 8@3's=W2>_>r?pL@)3&(3B3B!74?ӳ'3"1["sC/r ACt-=K#3I/rJI2J4%GX@*t"t>Bt#۴"IC u!4Q;2P3$c03u"kF')tNsRtU3D_5!sVWWrXOXN2UQuVkMQ5[O$;/!CuTT<{I>'VP u`lMs p@|bDc`4aKOI4 g5<6hrfaIPkS6iktag@d[vb+6lwhk@e_6Ava6qoI@@Nnbcvo C6d;G;7iwf7nKq?q/kf+wqxvv7s/ tyawlkwtDrk{aOkOrO`VӳcourjÀWcC |vhrx@7w 8yy2z3|z?u]6^K +v6>_v8lx~s@~#}@W(9YwLvr#9 ao6h\wyUcy@w9Oy\Ƕh?y;lg6MS9S92z ,X9_zbkz r@#: $i r9L9oz's5k:@ 4Dy+:6zz;#2E2^^߸0uNsmw57d_t?~˴ByX{lw:;7z9wC8ϴ3#:t(yP@Dӽo<=6e=_!@f}+Gǽۻ<#>j#>{=q36J ߽Dw>{zKa>ӻ#?o/|@ r'Q+uF/>o}:<@4p` 4@ 2 p`D1FtbCʼn"QCQIG#C.`F(LBQES&3cP0i@1APF} ِhƦONmI0B $ԴJL;.(H2jջt%˒=hbp{ WPR j,[sf/`H7h#H!D 1psr?6nޞ1+T$dmYz"80 WxD4:.=ߑ[luC{%Ӎ-2?*402x-2Pk+*;B 1TˀZ B:q9 @/od1 wQ@+1;);0=sѰ +Īd2 n~ 9JC6KD $mf 8XM+d>0Nj"K6Tdk >P&P(Ъ 4L˼8BJhP6mWcRTt5E\nP}mV`Mr5QGA-U@vaMvS`yVeUl OU#Bk6^hnوέq%lZX֨ lۢRv[kuu Sjt]hi|ׁHc˴،$zYv70Gݍ/ˬ9` @6R#O# ΎfƝ"8@h2:0*KKfN.lκ;[nm~[G6s2D͉TH3C K>5yr%lIO9QO]O_A ﷟C4OQ&Y1M-%ِo+ȷ0z^y\!E\_~n_s#|clvM=*BҲ1:0鬥6` t!A 6pY\$x<8Ό" P/Òdr[ #(=Y&D!E4b+-*CLVƒw=\a)\dKјF5m$ɖȔB:Quce3!'H)3|YrAI%QLݸתay$f:=Bϑ eFI,iHBak _=.m,d*K1U #olIM$I()d | (L16eRgHE7GjMӨtYKJӁ`ԲDM]J#{͠Om"+HV)_=>0D5Ja{HhN-'B#rn4yFIB ECusS9g6gxS|hD *G]4%E>5ТʇNlIWVis\]WxUr̠=!ك+Le3q\ ̸10rGC9U> ƺ/^[h9]d$~E9 h Uj6h+|r7euS y0F_@$. d"%&C%EmDbƻи޶GYMϽ- Q͖]e1*\-̨g)mvJQ^jXw(!-; xQ$TCR\^Y@2H!%R4"qv-"e`40ڏڅQyKP!ddOWυ>d$)N0@H=8mJPg.eT]L5 qxԹ5fj. k,q5^dio1n+wXظxNbRQM'~wQ%z/#~|&8aL;F ~|v*d~ɗܨ!:_g6Zk!}H~q5a0opP + H&͍,0ڏb o(%kMhɚA6HJvcԈs=p%OLb\ uPlV77(KpIPm߾I:P w#Z~G瑞O"ɡpJC$e|JB.RD 01JP**'LOJ9gx$$FŴXN1Pcѱˉ4K/pKtjr@ЊnP%|#(RĪ%V+˷7ƫ|#"'DC1++&FsV pʢR(Ĉf,xN7M"Vd*(L_Mt&#*P0l֜gPl- `b@²xr) c+Y7>D+R8v ѺQrFa DLZ)̒ˤ(2 m2p2l3sL%>sxDB54˭B̂qXH_B#S,, 4/DR6l52͌0/Ez%2L90 D4 67F7- r9GÖ')[.ܼ,s#3.ޓXH/ߞ3S$-M1ynMMA& )Tz>M;qR((rTnHDcTG.Nf;n䐄$"4N!ɢ+~Nj"*FĮ7/2DӸJg xVL7bEW HXH_GP4N<=JKYPoZhJ,$Sd`Q͂SV$&QcܮRG5:(TWPpP ːm.oLА[hEIEѵ[õ]&g F^)3^#H]]u`&\Uaa _vbYc5vcb)VE dEvdIdMdQ6eUveYe]ea6fevfifmfq6guvgyg}g6hvhheVE iviii6jvjjjVvkkk6lvlɶll6mvmlmk'nnm6ovooo7pjvpvn 7qӶpqq!7r%wrq607s57i)srAwtItMtQnEWjubsuuS7re flmwvwwxVxsxvwi vWvu]uqwr`yMy7y|wwŷ|w||ӷwiϷlq7|ow~ @~~VzzWz{vVx~Wmx}}{%k뗂1xow58niXu8t=!o wgy Ȁvߠ ~أXiy8 ף |{ x 8i86x 8wy؊ʀ|՘鸍πXuո X9i#9i'9 ٗ=OْmWҷ +9IzX`} xm Cؐ6X16Sgր]qa}}8`w ҀYViy i9A r؞yzgهY߹ s vٝXآg@} 0= ڂoMyWZWw?v CڠY:Kz{ٖ`}x'z J١ Z Zv' A%Z?Z8:9רZ:ٟڰ֛QG9zz#xQ 8 XIx9wW;|S:O?giKYs[[;=C; v{?ڥy}a{E[cY 8ۺZ {9;KAy[7ۖ ;{oWٻ=ۯ{{۹9mQ;vk%; ?5a/<'(jK؃E8oϙ|KyXq}7}W_zMŗԠgǑ xwLJ<ǵ[:aW] |Y]Ɵ|E{W͋\S ˫@ykǼڥکX۹ɓi_zߛة׉]ݓ ̠=xe{ 8؇}`%֣ұµ4FD+uԥvC;m@ X `=99޷z:zZ싞zY RA!OU~_<ݗcGi!{i% f"^W ρ Y:yvٍis|nQ}=٣@ի_[ݣ ֘ EsW۔?x"@fLcJQ^iȰ pp"23R*]ڄe@/!ĎE4Rei1c"jҗ_rta) V8@Q@2)cRI0mW2e mİ "j%۵eF E>,6FŌ;~ 9 ,NA0k8FH]prnKiJ*jI{PJrnc0>%W7Ñ~3xmËG=v{˛?_><ۻ?>^!p]AX`hBYvAjL\Qo6qwa%r{QTB"FA}z2ވ|6c>dBGw$hفL(dlaEncZ!jBm~ R:Iފkk՚nfM첖t~<[aV(IOnjaWT'ޢ[isuEW<ko/bKp!zZaHv}n a"Ef^0KdQlz&r*XɄ \pI,P;ԯ׺2<A:yE +ѥ#),sՒѼRkә=5vPxMl7eZ }oiwҁٷ7eSmua=HZ8{ng^Y$]VXxxJ%{ѯxy;8i=yݙF%/ԙX^qPfRhB<AUCăaтAH/FY=D{/&O,SDseiaGyBNxR s3K{Y^O|rn5JO};MBȐKKgB Nh 赠z؋B,bC~ܱ] (JqT(EwKr%n5 brH$8#zE*2cFq:d7$:adDHnH2AtU? [ R&ctdH#?ғ)"NFn$(LyY6fn )G"Ф!&sF%W&r1kg sD| NצlhE=͋xv.b\0şeA4vkHܮP+r{yNa&̨mX>=ZЇtGbI ų|>ErD4JJ"/4 TZG~&IiPӜ"Um; ykd̟MLoU\0ֵs4wHPC{uo2(QѩnYZo!Wc##ybLzDXoHAOI(6ϫ~PBl!GeМd"i|-eL.dUx-3^~ )&KD%pffr2F`Fsi6S+'4 #b3#j0[bёgqq]̢TL<l>ﳂqo\5Fb7`m]h t6iO1~aCVi_i<VbaI]ܯ< 'h׬~_#k;+[ lp}%3c'mv2>,C '*G^8$olny{IH99"s=LoCtկuG_Sz}샢9N$WD'7Kvs{Ty]_wsnpW|yms_:c>G#^E7LuP^et@mחTHT +hvo ;~w;Y2'*Oݷ mcCBJ$0.T@IBt?7~(}/mx^ED뷁}ؓ@GH_䄌fQf;McT9iK胀Md0H9g7߁zV5E'&bS+Ճ]i&hhy?fQOuc7T;]/KX^ X0gQy!r|G;YNRT.bS:\:]LhjU fj(UOa eS Ն̥OvRCvZG5ʗiD&seRGAVz%8Y޶[6)VXVQ`U_xm^&y.Ե5Z8{U`]؏ה5[?WH@+) S$ґU1uXu'%f`Q\x8`FPaHfȑ&bs͖RzmF9aGy&_Uyuh!Jha"9E_(f%Na!xr`8h} V&7;U%d*`e\`e(d{gcMhҙ 5LU=h&gc}v\ft#j. ^.&GVae#g.'"g{)f؉ٜ9e(.id}gQbobgf=)q?y5>FmqAoFv4 ^ Em1=k xb AN5Vk\lBvnGmZ#1a-% >P<*zlVk_pmCCj%%(mIE)91Cw{e]jswT0^J17<2{tGm*q`Z|x|n2""pJ{ z[:srZ|:UJv+ij'èjbZLW$z ;~jyv7yqǥ1ک3xS8xy73:x:ڪ:zj{٬q\0jpzqCy>w8}G~$~O&F~ާ@b1T}8*~ Yڤ"[yֺ@i@xT?MweL$J)"ͤzWfBITP˃M-B7X]saT-/U脗 +%̺0m(:ʋ昆S6BQ"ǙS^=+3JbpVV.A|YHqu% ٘$44X%y)}a0zW4+( 8C[f֖@`[`_fxE`cGX^ j֘;ˊ~ ;\6ۦhh[hyhdhֲf9ieFiANe)/R=ɬ꼸Kj>dU6?[!d {o31Ķo|D#;*1GlUQvLC:gK>[K;b륔6gS:ziYg Lq;|j ”%l!~5-/ 1,3L5l79;=? A,CLElGIKMO =3CUlWW[]_ a,cLelgƌ5kno,sLulwy\q8X SDž8|lȉȋȍȏL0\5CGƐɍ!əɝɟ ʡ3OG>H5`LP`Ʉ,ʋLZˇ̒1]|8\JRVkU<]<,\Ťl0jNL Ip|B:Pm(QV~3H% N @ؓ2:l/1ǒq(O@&NQpyZn6aߕ h },Xk^s@N\G^3,[.IWm~*NTb#mq}|^>؍jQ")ü$(6m B~^*0ZnPcka^אM-l_ o>.?.%?O %I}(~(}쐁LD®ែLa^pN^O7X)op جx. Nwi?tk<'ip,-=(sm7Un-_m`x|~/h-O٨˒H36^׎$ID`GOPRaSoȟ>]Q+헁  8@*L Ç X@ċ@HbE:XDLp0 `J;isf hRHgх6y~Lp EL?ִpը >j3J.a$iǐ :̨C-_zhNJ=tے.)1JB㶈 8RءI @@ @:f^D}GԪZd:Hw \4"5 j[pX]qI`.аY B60 L |E E#? @PhP{,H`ϽJ ꣶR?=KȀhgrQC{O K8Jdp@ަ{29ϭg$sliN7I=le(r@vѣs+\x;~QeN>IO\!Em! R:ϒሁdUP eZC GF!Z3|ME 4ӶWT@5ճ:B/|z꫷z,֒Bx|AOQ*hi^:0~P=!.!7S~EfYfJ`?me{p[OF.pop,xA fqLRhP#Ԝ>ea_iNOu;?ֆ<-Kp)bhs-O׈jbkW`")8&$aE0Qc$c>ɐaw0_] l4u}9F xXu`c XFHFRd%Hz8 Ya:cIKde+]JXr$pRzPJόÎUbOKfޗYR KpgӴd4S̀5 g9mpNЀ700srfXԸqճP9}t 6<Q,(Aj *]<NSTep(Ȇt+hKuP^/%LcQ@;iO}SU?F9 RQɉX/xW(oJM)b !AeEi^S5O\@xXF ,Us-W$UjL^Alu=&vyaQS׮gKF*k&)Yj׉\[e hK2j %Z 8G&$- TM엄u& @r*~dXbV܉&eJQsR`άOJ իR-wH,sc&]į#W((@+?!K]QI NQ\`Aĺ/sv%bbK;`jM\p[9\~0C8ǭ{jvP=#FRbLtC NR&+Ync",c&n6f0m}AzQ93.7Kt=u6,Ч;f9/@"]EsL?!Pk{۴4+I'6wυ#=HM;Ġ7X:g.}DX/&]KcxZ#z!mB[r٘边ZYj@i!AH9[o9 o3Eد=s}c{"?D| C2ʺW*&ԿLiI[WRޕKM߬mrt/ʊ ( ֘ZH{B7bXA?/*U)J3@A4sK%k@ @ JR@s@|@ & Ag<̱T, 4AAAAIA B",B#!$ 04-48 zDy/DCYQrW bRDB)79,AO9QTEثJ,$,+$EY";$,h,Nj et2DzZRx*Cf-vDiJ>#$ZeJGz-+w+ǃ"zĭRb Ho̢F-t-iNFH># j/ YX`9;1ʯ 2{ XxA,43:=ðI +/+V)0J s !p9/{/J/3m2,1; *˲ 0$1JʧG^ M(bɔI6Gi<ص? ۸@HDs3d6Δ!X-1$3-{,޼MATQCPT(NDNi/39K -#MLF[I˼)P“dHksP@jPc|!=a@&qx *OX v{78vM7 R, _S81⬙הDlRS嘺]m>Ҙc,=:# >\Vxm$I+9SW%X;2yNUXB$slY}mףyXZӌٻք<,TI@q!rY0EDTYC '@ģ%!]$;\&LŠMT=Ԧ=7Kz׮"8 zڧno$[}[-a[h[[(ձ۽[ \Z[OZA@Z R=DƝ$40y`ۿMC2\GWʵ^\jOe3UDܛ%ܹΕƵ0mq\A!CĝĪ]5|ɥS]\=sbFDǂȐ L녊l5\ɎT _Т}ljD2b?*̿eb$ulG$IoCYZFd?ܬRHCTȋܪsS)Ѓ_ǨDZ!;ֻt$Դd.)Lt1FJ˻av3Ca%IA0!/1$_-NXJ+ KkIckb<ʵJ*.(J{s.|/b9abK]tIM XM@NG6ě`D4 UMP@JΛB#T+s&hD4e=S|WfUONAc1%Q }3k3uS+j{MoC=u?p9|cOYo=s<ڬf4f4ڴʴĪʤdfd4fڴĺԺʤ44ڬdڬʤ4d*,FD,ԜrtlrL<>dfDLV,fμd܌t|||\Ҽ\Ȃdc"}تT ǒdT .Źny}@]e܆{1[\896gicAی*`u - |-i_1ЉV&I Kކ!i`AhdiA[r]]wR_ }}u9Ug '[wN(Uc`蒎<"=z)h-xTnvaz|))U'}ʪ:*Xݡ[TΤ؅.F1Zkf)K 6L^è;'gbdq[i ݴHǂl|ivj{[} [oQ:o1)G,M҈t+ 6&+)'L^̾|0Ȋ%2_rJ'[ Bw\h)ܑEX^W;,﫠)޴&\wjrR:vIӚ%Js^P\t9Xv],f~Z/LJF%xGmD xI_h^<-騧T]N=Xv:;Ë_:cEoQ͆F")o6V Cozkh:;Ww^=DOwǼ⯝{21n^f3Bܥ\Mz=|Ax ]H6 n+ W0*_lU },gQ\5_xֆ}0CC^EzJt4A4q٣28ƃ JXZ^6'qf2po2l fĩ.?1h 1<.SH=q#JbNgv׶4j8I&9)M#,zqo,g$f̥.w^ŖrMmwK q3tunOYf˘vkXntLx]^L`M)u*i{P[׽ (AH׽3!+ ֙ꖷ=pq1``wX0KjߔPpiz8Px?wbM-K9[bUolZRWǥza` W>J>V0ZX8@,6$ra| l9%Nzԥ1usiAӺYok[ķ# ͩUrS?Kf1E5\ŒLXDRH&4M|.@AȘ{iLkZPfժYYM~\9c@oTWmlܔ Uk j@l ;nÌXiLC&.5&j&\],NmXs9jjߐVlf~[bu/@~ʀL)_VѶgYV:Y^ek햓жm472>!]0^!oB , 23yɍs[U-uojδ[Gk_әHeB[A{ -.ӓ_3իt|o{< U\W"QS.>bx5 ^/ Q']u&>~OQa;3|EFQcٕnOG=;GO #=|շ#6"-6 hA4Z%_Uްz}R7We jfyG/G~W|F|xfTW B PeVo*(z sHP h4 |HBGt1#:|nwx."Lx  p{ua's=d {':5UMlfHb F~fQe5'ֆ~p  uȃQfh^_8\ x؉ pvXXhwhg3QWkr'Sk[C\8w?&r!V*[h#G' 8Xx+x؍јpoъEъ  xV=k*|[CY H3Vvf!e_5wiTZ/vZ`^cx5S>Zg̕˜S3r3 ph %e_2VkR7 R%_9qpF_E5XQp4 .@cd4`A R|dr091)n_^i RkYcfg8ftc)&meg.L!ZpZ藀);aT\V')d9%dfgh.Xљ}֖9U)a|rɗ|%` % 7`[CfTnY[\{IL)h •klɜ7l`r ck`qYKٚhVIcli_`8tQAxlel_q5Ya)kIqН7T3gY za%)lG`$Nw狮%v)h'j=ftaiSh7XaY+g_8*Em_ $!ȤR:9mA`5T`JV8le eajkڦn+cr:mtzxPf|ڧka~:z3Q PQ,A+a*)Zzکʪꪨ ڪ:ʫګš*Ś: *J:Zz :yڮrʮj ZTJ گɯ0 [QQq=EmJÔ-ePjfI91pul9`9z.=1 k;A1G˳aUC˱;L/QS6|JSqU6w Wk8I[_cTRa շvX @bRY_|Jip+}9 ilwGpC`|řƴ;RWw xl[[›+1s&Uygʾ6,;v 6cK+if¥[-*oc pk6\u -AδۜU얶v*f:DRL>k鬻hg:qkڌ 5k<\ϩLzY%\)V/H=\ӌɿ</x.F0p/fm>"L͠Iu=lϝډ…\̖vY}JMx|+%=FZHc-P)=g4-]z9g;F[ݜ 7ٴu-/i=zSJԬl+׋}ٽ+U֫ՖE,qYgrĊ}Υ eR=qUׯ[@mڗAsԂۙL\ xm ҦЫ (]L4MhJ۟-ܫ!5 Rp\- ް <])6ۙ`};--c-卦  M --K q}W,k1n=9w, 7q9SGe҆WѣS[L!N-ҘKjg#|GS(Z'.=|uƻ1)^ўØ;c~]?_g-av/kgO(Z(.ub7 _<[ml_> '=> 1=(O Z+$ b7mDMAeͷJ^OQ?M߄F\LEyLQ!@^:d/Wg\o]L?DA=?+ |~:?~φk?j _Oq?_?_ȟʿ4q@؟ڿ?_/Yr dA?_!@@ DPB  N-^ĘQF=~RH%MDRJ- ʁRf‡'ęSN=}TPaEYS"EM>UTUQM :lVe͞EV-KknO_w u:}X`;Z TΝY8N< KYrߦ{9ZhҠ{0uG\̕I4yPǛywɿ&KˑPruƞ]v.Z1ca q)湶N^|mg~:Vc\d<N> >.B 'BbH:(Yp d< 퐄?Nr/ Z-9kL.<𮣭=6c Lk]cN7hQH 2K-jׄ .I4k&);4LP?=C@c?zL80@-9D .DK;sl>PڲRK/Ŕ'nDpT/@ 7:"̫%J$*،OJ^uRmP9& -2L6ZiC:ʳ3*#U7SAhGt Dc.] {W6D:]T{kdpZfxڣFOZMHbZDJCѵX "b%vvy=W·^NӰ99=&h+x'xG>ygy矇>1M)>{{?|'|G?}g}߇?~秿~?/ `8@ЀD`@6Ё`%8A VЂ`5AvЃa(0 UBЅ/a e8CІ$ =BP?b8D"шGD"}D%Ob8E*Vъ%\ ÈdQBbF1Z mdK 2k]˜*mAJ+d N0/G/Xŋ%qKs2,qnq[F 4ܳUr'|O2j7IüM _2͋~2YQ1WY֍2)\ p1vA|h/s~.-aT҉PȢD^,WL.]y ޅ67ALI`g:3@6 m2 n*9NےL#nx݆$mqgx &6zԵ{Koݸ7SnYFv{Z.n6o?&F0Dȷ `>6}oo\%r-sۤ-~G~qscəmd农Ûq2<y$+Ӡ{suj֖-wN䯓>/;ʅ v 5k)l[Nvvn?#"W>뽷!wyKr܆<*e8™)xa )^M=&2_9_GϣZ;u9xݶ}oN~ zѓǼYq쫞Wz>+^ ڠuZEiß1̻|pt58+ߔ93ɻ73|>ӹ˫˶?C5;YD<&/gdF"1JŖ11ĥ+XP;)e+~TӲqhs,C455ԁ`r?^rxđ4;b++CH+*XIK|#Ȗ[>;J9ނIҩȄ/-IRZJ|-tɜ:)ɡ\#0)$lBC-/#?.G<z*JH칸,ʔJ<"KԼKL..7JT*2Ŵ4L*LDŽK3C5 lCFJ$&"(VT'oL&ڴ " [+͉<͊!'MBH?z4T'*N"+-2(d"@b O,"ī#JCNԔ/T4ChO%%"5eu "=񜠧R7-'JN eZR'BPPP+Ё:Q|Mm'y \ #sёDQ(Dc "u' (Q MZ*jD%Q{MR+]~.R$'v%mR%0'("%+ߢb;-I̡rڭѪA:MTWd,bC52r:-ABԓԭϊ@IZ\-ӣTb.;PBZԟԩ*8[ J[#ԮbS QD-SbSeM^uXe,6!7:sYD.08V3{4D֢t-a5mW9;W?=2EA{>zYnexTW)˩pW{UpM1{}X 1n9MFo5SQ#3@>"p3o?se5m2D;je̼ÜYn2KwE¢EҠBY oո &3ZK(ڊSm7٠ rjo;+ GS;Qԃ8kZ C0<5At JLYZ6s>˾#Σ-~{3[7>\܋بEuʢ]@۾[\3M(Uۥo=C9#kٸXSγ\s9]$ólܱ}Í"eX*W}T tR~#uUJ5Aߝ\BF6bB, &1T]&]ٲɳ-!\\,-+H0]1t0 `^mNl*E|E$bE[&],z Ev$i!2m4 AT[N3Bې֕OTGFSȄ`|``|?AzLApY/6atd;vᶬI[J[lfB˹4d,BdRtR":gutg*m'^(R!]nP8D0NliĎڦ횦l˾mm~njȶmkF H&n.nn&ONnonoovvo~ppoV/Zk[6i plԶ.&qWo[lhՆ>lpGqqGq "'(?r pr0or†q n$w8O1@%g2?s=s)s,rtͮs>rGt27s7?t;tBos trDmo7xWzCyzΨ/Wx8{yzxwGWyÇwnW|vOU|o>'Gw>(}M] Guqn/lx#vu"o~o~Wl/l/ҏ_V$4( dTx0qEEnX`&!؈qʇ$g8bH-eDp%H05ƴI"O@Q3҂}.l((NO)FHZ}r*T1evHpYa% YA 4`a`0օt8WEfj˚7si=xqG6:n 3$#vLTAaS sD;douYp0͋nd}3 fy*9zoI&gzt(?# Q;N4EGQbz CǁkME̍ dJѓ>TL)/hQ nMjSCKQv.)SBt)fJФtAVаHY=Zf-> U ;x8; (pElo1*E F@ʵ0)I ;A+QJcωgf$5_DAgq Q-)KV&4v~CXNqu] -}sET[ 0~!n;2%[B%,s*CP !{BCxK{Y-uB$Od1<0@o<#Q $m9&Yd<'Dd (Pal2iqspl\$bBV d crX:n<0E]SA'L̙\ iVW&ds̝yŚq6bC&+^n,_TcrҬt4Sy{nAtUzo즧i+ĔZ5-LRjv I_ݮ^ċ|E`N SxQs—7QK- a55kbN,f.7!p^w*TyZڑ+=Uf%ZЀ.K3gka7}l_'va;ܐsGFRygSq88vY֣MeH}3 )B wE2)eC*$0IEnEHޛ9[$&BTbxKt#yQQdu~>ezU<97Wd$OguuCyWQD3 ^O5xne%zJ|]S[Sܺ5cK]B7 igݺXŅDTFvu΍UsOrK^('bnosHo7|cI]VW>i~.[X5-8O]r'fAW_[%RaZ|;<:IS%] Ɯ٠ ԜLL L@P弌eN!KMȹDؠMI( 0$MLݘY "F*1KؠٙU9 Id!H j`q&2a JY.v`^ ` M9 ɨXpT9 WPp܏J- &NMx-bmd|VimTl^Q h"w"&Ɨ qQw)֗ɥ]'΢.+2jb*{c/ZU+l =1f5\\bDBLSQգ=>#@r?d))ԬFX?:D<[CVd7bYd()T.y>BF˵*QdHd`d-$KK$L@nSAƤM$NNJN$PPLjSM%RBZ}dS.P6QĔIAege6U [Fŝ;a%VT2S USDZ£ehUYOU:eYdWQY'qq:NذL۶q k 0q,k-:#2k !KBr:5dRrdde8.i1.5q%[RB(%W2FU&)S+m#!uM2b%*/*-Vx4/311n,2/337sV&3G4Os.s'c"5o37wQjjbv2t73:+50oUWs:3=':Wn{^qrkF|s(h@3C773GѣBo8LPX4@]CI%DS>kmIF$"LN4140HlLhL,Q4O7S[OPjRgYtU4SX%8Kkl$̈GNZ5]5YJm P1 ZoX15 =]/6c4.X㏭BvcWedTR;gfC^^6h6?e-m6I)Sjv0?6k6lg m׶m6nn6oo6pp7qq7r'r/7s7s?7tGtO7uWu_7v96wwwyx7yy7zz7{{7|Ƿ|7}׷}7~~77x;PKFX??PK9AOEBPS/img/dbr_replay_empty.gif<"GIF87aڴ|lrL<>dfDԚ֜LV,tμd䌒t|rԜt|\Ҽ}z)p/bzS.۸sͻN}8Es6O†d -ƕ:Uسkν{N[TUo]-yqk~=Ш|-tZjyF(WY}`a^__kr4WXRJ_譶b1^hi%tZ\rH܌QhH&"(zz^I܅+m X!s"yiu h6q)ex|f)`eRi%Պ9r~i&Bfh7>)1Zdꪬ\)q&*zaD)uy ^}icfNhayҦ6hb\gLJ[+BW7jVکlWdk½Ҧ[;0ג-!ٲ] |uzLKp,I5J7e5qkw Syffi]:S5s : TWm5L2hmq=uBzbX3ә)x=~袺W Ӳ;n[~N|{G.9\8NOs.褗n騧ꬷ.n/@'\yG/2!OgwUs䗟B >P?N'U?zN#?_?*30H (ā7]20%|t&Am(%I Lش})LS>8̡w℆= H"%~ "C4y'Rpy-> bQ~ۢL8/p@BF-f8H:x̣E${ IBhXI(|@BI'$(>G+ 3@29H ]\!$Yʠ@a>r[! x?]le,K0zxd/h &%:)dnr~*-Iɕpd:9HipKvwlJ̉N0]L`fvi;Zw^@ }VURd\;f'js8ʾN2<ж0_pռ⎥27j^|\9R>?vx M]u63IP>?8xU;h,y[)5Pf^:Б;CfD?by)O@0K =߈Am?mVKh7Gq t@Yw_֧c C]5 ϯT?a_u AjgwBQ&`YUMEEI^&+B[2pI^w7`jRuOHW6i Kco0]ff6p>͇V(iwSt&a[`D6K&NKX%&k]B|_HZZ]F#'Dž[{+KI5:Ƅ'[/usI^C\(ǁQgR}~ח}hGK2RgG~k'&(GG'x08QU2&$ fQQ`M|/׋TgT? ŴQgsPws6ƋPLxdIŎ1o EAExuhQOaHrHfMZP p+uBhf@UIHKՑ9}8xaFqj[KwGGt=ysĉ1L~󗔤XkdT>iAa$cy:itgAy}H0xCURktɔTIug(Fߓć$i3KI!-`tƉ@iGC@2ԧGYUIH~iyGTyz>ki ~i)72 EOMGZWuYVgw py !6pHU!9k ^%ЉG  ڡ,0jH 46Ux c V9rCaLG2t4ژģ ; 0*G#$USդTJlJVGSeb:$>AjGBDZZ^)Eoed(ajɓz|ڧ~{`Ft'[F"EG\DExjB`FzYl:\@8Z# ڪ z:HT96Q LFeIH%hSQL u/C%uêQ )OMT[uKwQT*ի'e*TYJT'LrLSxdId% պM֬Q:`KPR BGr ?6 SH7P[[``Dc`LU^](u^u^,O(Xtd5^v[:^ka){UBK[X(U]\)'c\tYY\ D]1X\rZa5]L:\gTaciǴ5f[Wfio&'tzԖfcffi>B@:|ٸ>_]hqyGSA6dKJi֏iWd&\ ijR#ibʌ&㼦'grzWn<ǰ|?×p7*t(woj'hk6p%qm6+nDnDvqzpc2`{ o6+r_'p6ؿwrBr &s׋Sø9Gzv3[[{[mgzhy}-vq7w¼ -wDē oڽ6ld~Gz5gu_T īy^|ֈ'|w>{J@Lm8+'h`z]edv26>`gKVxxXhb\ =>bhi)eH(o$5MȂzT؃QxfL>n<̡rx]lusx7( )_׫gY.9g'AP +0ig鈏ʐĮhmČII̼Kؐޜ\MsмнlϱؑЈ$̈́&)(9|~XlS B5#-y2aw >ӝζڳLmԛT}XMV\H^b}`=f}Shl3pУr]v7t}z.|׀-~؄]|2؆؊m$؎2/]ٖ]CBX1)r٠<ق sa11ڬM$1)4b6. )1(}|ڝ2۠!Sq3 2B,1Ʋ(ʍ }1 rb//R3 ܧޱ m*&.,zqp"#"7 "~-db+1Pm )=26>֤m Q 11!a6".&7Y-nACPoVL3~\ƒ]<`b>d^f~hjlkΡ]rs^Iv珍z~ 蚪N}jnt=*NVxmA*n*C@JjlZc\bNp*,=؍vzB>:nFd̮?Q~~$n׃]"ːtTPڏCEI5LT Z RєjĪczR)gH)uc:P7[$KRP;Iˑ:{xjT,t6YiJTۄO"/JP*_\F41׺BZS]Ey`9`vK^|Z;aV!d%L˳aP;Nf?uWf_xu˴=VfYy^Հ1,lK~>X` w`S/a2^Uz{2\8lf_}u>˵)w1,uKֹGipvǫʬvkd{g+ع|/zk5`TԫSgZLq; ^tӔo$еSfk 'Kdm<(Ldcjh@ )8#@ :TȠD FXb. $ B#=l/jt`BI͠)Dљ \ṗ-ƌʑIU#ǭ+4I'5.ӫ˚nʔ+2Ih~}p/օ1b-U$b^wL4ie=p}apσI%Xj֭][lڵmr`|y~hƨpY͵N%Ҿ/kr䣩/x|LG^veBBW>A6wߜuVt#=xG>hWuoC)?r~r;{y'|G?}WH|߇?~秿ݷ? 8@ЀD`@6Ё`u VЂ`߷@ vЃaAЄ'D IBЅ/, a8CІa CЇ?b8D"шGDb#ЉOMY8(nUb="^QI l M0X5!^t0G:юwcG>яd rp$$mP0pW`B$Ho Nvғe(E9JRҔDe*U)J4 &4 0! $)l@MkUӘDf21! gLldB|)n29NrӜ ho{E:WcM1JR&0.2% ed<  %A!S Rټ5  E5ʚӡ$j>S|bz̙"7]fM9-|H662Q 5Md" LՁpWeUPTgWɪVխc5+Bֵu=X=Y+8Ղ@K'NK`hn ), pFz@"3%bm,ls7f6F-p:Oړ(,@]xXG{xngulݵ5}gݭ ~k(ѬXM ED-l":2NC` :qP ܮ :rڠ rwݐocK?wiNJ-oe넀.. lxv@{ :tnԄ@N*G:{w|?xG| I۟IW F P@E?zҗG}Uzַ7x-J׶}v 2~?|PǏ|77w~?-B~k}w?gG?͟~߅wB`Pԟ4@!Td@q @ $D\StA  !$"4#D$T%d&t'()*@B" |-,/01$243D4T5d6t789:;<=>= ;PKSntA"<"PK9A!OEBPS/img/spa_upgrade_102_11g.gifXGIF87a|\$VltԜt֜ttldԚttrttּtrrtlΜ$$ʔԜLbҜ,$$$LLD<<4rttԬޤTTܼttrrtT~TzƬtt䜎tԮԮ4f4伎Ԯf4Ĝttff4Ĝtf44fftf4fƬtԜt2d캜t424dtrrtrڴtԼļtƬddfdftĜ4|ʬʴƤ䤪δҴԺt|֜μ¤ƬRtlrL<>dfDLV,dt||\Ҽ w!H)"D(PL(*Z%T-z]1e<i5m|I9qu)=} A<"E:ry|$mIZ2u&Mzc(QQ<*UA|,YRu.S]c]݉BŒ/ yIȣ{ j$b&Rc?\мc9rĜ)J3pqԜ,*zdGisTg-|埧JzN&³U?dv͸ Ӟ0ZDC;"h#hI7BǼY\"QKYʤNMB |f*rz&Z7A0GAYԝTZYI@աfT O^'k^D]*`f=GJӷZ%љ`jW$oe,h$۞+OQʩnj"nMfe}xYA=[=%Z2jeXuF}Cm!jshĪMiI:m<"ގ'E[a"սnmS,s\6/~,/|.N;'`[83r0+C&,SlK0gL8αw@Ld"+mdJwM^L|@$R hFm9-r(1Y%fF5Cdp B 6$sM|9kLc2ht*tOg0zd>L wwFwzz(KD-JiHx0hҬv5C|gШ/-n3F[1Z,m 3g $5 miΨw diC6,wH`8Z6u yz$wjx`dhcݐ \m {w3<#%4 !rK"s[m/&8TDMj}'wg, pO SE槾6 N~:#) .u:yΒSR)bAU#zh; R^[kc';ćӥx 7G-Jpvy(mdXқOW^c$sG=)#3_/}Uw{OO?O*Kl~8Xx ؀;A {A "8$X&x(*,؂.02xg3@B8DXF85X` 8ԁG8TXVxXI8K؄aPARdXfxh[(w_IgxF&IiYqAl-.1ucxS1;Mupufg>!#AvLXx#Ȉ/`ȃK!vypt牚uVxxHxq4&PGVuwq7k`n%fpv~HX8x7x9脵GgwHШuGggCmHm87uf3kv(>x ِhOxLjwmghj҈s9t"Ig޹ I+@<ٟ̩)fßy )C}:Zzڡ ":$Z#s7C)+hg2:F4Z_t8E:Wԣ>ZE@Q4D FzdJjYIڤĤP:DRJwXZ\zA_a4U:cz_g1e*i ]m:/koZYs/q ujUyJJOw;٩tɷ:ԧIQhsiN,hbYZvh:'l~ww  `u^ko~טXl2:gm/ke{Rez$-Aa kk~ 1FX&pwׂnuq;+z7c;q (p:ZJ;pg:pDnxn,|d'b]s3` +Ip mmȭ'sg^}9榫h~۸sj}h0~' },ڧjyŹlp(r_7){_穨-M0l&#o'9j Y**`Ҫ~p8%a9!$&*K> 0.'O ƦJ= pLoHJW@`OM0n?d,Ίrϧu?h#Dz?y:o/cFa6:<=}fO_<-3}=AZB -қo'ӆoKQD-^ĘQF=~ȉ$BXC$^NP*ԱC7zSЖ'Mz GR.adHH(ejRߌ .!*ϪI^-*Hin4³h%rٲ-1`… FXbҍ!C%Kj_p+S}hOm=0yrQOl5Ȥ_{e2Lר/dA7렯m\]Yh;:ƞ]v 7^T$e }|m[!27 ?R6 l=,P-Os"PnDOD1F N*,*BSEn“`?`BSVͭ##׀$2-K B4D$L3KO1$k!!tGӱѢ,BIT2%&A-rD/,/ 37SO-J35W ɜa?0;m51QR@ $,γU 3o (H O6[OCEU0{ @e=cB+l*]bU4œZHɳk[_;+] &xv(նb/[糍qX!'3dWfY"[9P`aK%$&@ZۗYSH@ 1h:šXjm 6 l F;VZ~mm7 ooޓhYZ%Y^>z>=Ed^{Fh`$E<g!!߱_H9!{|`HP1cCZ1XX/R@v{NN$jP%kIIRxw+Oѓ]LeXJr@cIEbe,KK ̥39B7Pwܥ&,]XrSe}nCBqE,` bțDw%B?35JΆ~^C":T]=ut@ Q\i0P:"}BP& }҈o#L;zETⴧjPJՔL<=HPo?HӤà Ź5u+'ј>d1)U-,SXAj7?)uxF|ֱkCLkn g*Ubw}F Gv`<ŚWB!Rt, +ne`DG[z|hT5WFeev^׻peiWNT{Md!r[]ї -lI^/%{y2~ﱁ+Qy iq1hC:ק\d!Y[ʖԅjmYCԊ Fv51*_/+|+*cc?J{ɺ}quev$`"DGf~& Npa"lscM{,>VHY~8iJ!]8#v2q[ߩ!gHcGyƦ-te7,T1|]jĿ6nVNGe1yB` 5J¯ / /3ۻ^> w7~V81^xĽ*qA W7fqwUE>r'G rg&wyeڪDSs?zЅ>tG`*Klb'yvL"Ko>T'so[_4vvo{>wwǻ#؉ ;C*a!հ0x7|%?yW|/.0  /0zַ}1οN׈uu?À}?|[>}?%lUh/gGL7{bǨŏ#wU}|{8[S?<+K#?[@ix6Y? t? gH L[`,@sA`A\AA|d@A|y 'zra is ', ) @Y٘|ٿL#;3;ËdT@!t7C7A9C94 ;C;,:l8_#E>dG[<XI{|x@>`|?ABbD ɐR1dY l#F9ՠȊ n<tv U\G],ɕǐL;tC9,Ir4ɰ\@wx}ԖV)pDh \OȴP!QTJ1kȉPu@t lxdEuǖLtKls`泋{+MT+DCd| Kʾ<M\s8$4ȋtH$9tTSJ<rH>s社tlitO nlϳN%n%5EEnΛɎOOn %5Q{P:餺`D9]Rm %R"E҃;$eR&Z&Ry(RQk*M)۩P-}N.10-R11+W~q+4ۃD2!t=S,f/_kBT38R Z 5 12i7r8V TC%=*<9kT"#{8RTUՅPq"( )"ҵ5FB3= &*fګӉWeUe UZVU!+A"TbTj$V8\x'Vm7LuJ->ՔʬmWS^/SslS:+vUe6O¦}u6.r&bXGkXK&y7c6&UHzڃ{ʧ}J[DT::ւ8B4H*H3NE#RE#A՞)4pB 4۪m))3Ҫj+nJ[yE(jۺ-5+ъD3NMڽ(b,U2r9 B+L:͞?E47@ 7x-HS){V45(]B 1֐-a[b2jmMH,^٭3k\UYE2*:,K;م+ڃZmb.8(jZm@#]: - \*UʹZ/Vf"&t/ak]'#EVb.mԢm,RM؀[0C6xr9 ӧ'Ұ=~T-]9ʃT ëؕude,du־]]O5Oĺ]ꥴN])=`f[LKbb{2/n-%#2u023_5;ckS):-4S3v#Z-b*؆Z?WL"cE[G&J]2U4ƥHFP0-&'ִm4-J0Nݰ9[+\cauua6cJ&2E"y'6w"9%<1?%i؇c66hfW!jf-e3IbVxL7`7{6JYS*7 h&摥[e^Zg`Fc4N W~W~VhVIvhއih"DF}S^xʈWb}ىNJo!n/.jfWyi}zQZ&E0g\PF {%dtYT`6'jp.-Yٖu';Ym/t^񑦵W}3j#c"]ƒA#ѕ*BU4:4YPrZll5*-[RNU*j oҞ-l܆U[ۿ=eul8Runj|vӯka;p,I!Z]-}bz^r@^-EZ -= ˖8F#`}JZ( dv8P_#`=_:T -}6oq.cpJqvڮG'6oCMa#jkqZnR@U.9o)bEFPu`,(g,#cn+۫*2+,-j _QӳFCbK"_%{{GRH()h~o+F )|ogy"j:fwm·|M=SGeF|p_Z.BfۏFs$q||>)/_yejk c%ʷ}~?{ =d'B CeCQB:h0B}(x0ȁ$Q2H1!._I`ˊ*3E<2m)ԨRRj*֬Zr+ذNR&8QOR8vHZ6=v +}oQq\W,Ȓ'Sl2YɚgLw Цʈ-!+&dQ=i(PJ {7ǚ3o99wE4wN|tȚgҜ!^m n}cM>wLʥ?FFW]GkN?#)ه#F\x 6gwyԈqu8~"1ʸ3wS9h#=#AE崇AA*$M:Iِ? [yOZy%Y^]z%aUy&i&m&q9'uy'y'}' :dy(*hT2(JZz):Wz)Wq*騧*a* 䫳z+c+*] ;,V[,&{l8,*;zjALC5\ !|VgY+TVҼ,r-5d0nS+ht$5ÒZj~CKw,(rs $2&q 3%<  @wP4dA3ys +P/MBB/5PA7dI]mሃ0U˫^mϜD 5s|%yp{P5 {>CS7 x+;.J=|ߤSO/~I\l G{wmyCF@oxZ%hTT:& c3]lv7)/oeD )# _hP{4Af.K B5U03 Y%Zч9,a|.ЈQ /ة zSpVv/ s69U mo Fqpt- ?U3)H@&kG1h,#WYJN҂'״1M< sa `и61s>1`F,ޮ_ B~2,)S|ed%,1(rf?Z*ufN-s+6Ǝ;\]iBgJs¼pFsaQ:н氯?iB6vlN'{5lb8@m{TSJg5JjeӫQBWgMkTр-}[4o zx:>.mnzTS/^j0;D獕 ZVat.G[%#QܥW4cD}"G>D*" HʭrR3r _ff!.d'Ȗfyd ѽ6k1x(ySиw>s1wmNyo> ˨*.KcO^I<)MNۑKxT'y+;{ay'vƵ1S4JUKT5rgڃ1gRae\e=ϛagv~X00 f_%`8M' ;] $ե_WY} 2$-u6 C1` Z R0ɠ.\Y"R.!6>ᆍ W1(@n!v!ŠQN! X!{!!!!!! b"!"!".""#>b8"$N@)"%^bH"&nb|,'"XV,('A+"("-z m,,,@.đHGNƅD(QF3>cSD#WP#XQ5BE7fE4~4:#X7T:2E8:7VdP+B,c@"xApckAJKA\2^&w_8de3ւ@ chzn&jB(fVj>jkft6eV*mvf`gi.fnjcn~#9f7^h\, f{wf'56Jv꧆gJgCj&RiPjPP꨾S]:iW")>+ꨦi8*NJ:+~&>&,[(G2E)׎m-O*_mm}nbr,CģJn̦k8SZD"EN%mz> .6-")>RmIؒ+nejN:k犣B),6 ,ʭW&+Hj=nBSeJSq.D̎m&jOTcdƬ~hkf*/ƈ)8im\W*0b.vn*&p.R2%F/[duA".00g{iqp$6 KX"?m%T*+&EgF.F@y~Z,[,Fx S᮱tnR@q (A@sۢGfS~q?J 1_1pvm HoNHk2mCZ(^f^+X-JXV+%2;-_&./j]܆b0V2Co~J/243G35 4W36ʡr6S5GG&7a8C8we9c9;{%iCg:1Gsi.=b;C.o媄qX=#;Z,5b4ojJ(R&.4XnGG#"HsI|?s WZ(A&t2AdzhFO2+NsLnQNws.'uA/56S3TOUE>_VGUoVwW_5XT5Y'YRgZe[?5[5]\75^c^55_C3`v-6a\b7Jb/c3a?6;7dKva1vprS_.fWy]6F2v2)f?shWkM UlCDRk_blHKDBn\ض!NzBQe#hfpwIogtq#u6춃#3Fr w_no\'݄G|y?|3~d#[w7eox Dz{rOplƃ xjflxXЇb 7"ŁGz[i!(irsHy]ilwx7xR$Pkx@Zܷc[C8踰7Z<^"cjw ĂFǒ)dq ykG丕 kPǑI'{x,D~v|D~vg";wE{Fv#Xy7:9GDT9; G:zTf;;'/;I>;O{U3gm;Ӛ{+G;W\;tToɻDsAlHp <l[ۻs໭ADlo L·7L|_L(lZw K5Qʘ" X0L$BL2fP2i>4/[ UJE|q4S><LDײM$a`ClLvVwT\р ǎ Jŗ1gּsg$xkџ=Oky5\W yZRة;ʣ& Sбwa"DOL;wWovgr<Xuaȃ{1dɓV^.}{mRCË% ֡kp$od C d ;Cpj xZmʨbDۈ s섄H@qQ5O$+6T6b- I#2ſۊp 8 %Z.$+Cʋ.|${ƣ@{7Xˈ~x'RO<|^??@ޡa'u݋4"#D@?%p|0DE | ̡JC.lt }A"O{“]8(/?$!B1`sC|->E=`ĢʘǭOKcLJ6JDc 9y#GIv-Y1,'B=<$Q4.o\&IR, R|14d*3f1c&Ыd39艂մ5Mmn7Nq49љNut;Or.34=ϿS?иTEA P!T 34NEyP1TWKG51 cCp ڠe#UI5! =5L@ )M fWp[P~ԡI L 2CCO*T_VjVE яP.#:rd1bH6}ꑯ4c-YVv-3 qJ]%20EiF$KY\#0**]g8hV$B +X%yml5Rۊp!F~]5c3AbX# *Ū u$K,NtODlVnf"۝u*Ltv_竭 [A{V&UM.TpRh_:%|%BKD( K8% YҩQeXXPs"TLp"d (6qY|O-A"\.c=`RsG"Utd3eT4 T&0! M\V*>v-- GkDdȨLN+j<)8h˱9I5h0Ed=հ$5gBlQ$hMt'4KMO3&FA g99JND& )X.t[z?NRW\<,(vVSJdncd#2 uhM":}H˜?Tv^!qKܼ>/U"0V7{S$zy}QgX;_F$`GEB/lnw8]\r,2}*+vӴ0$$״~i)ddAMj4z^tQQZpj` Mx@"`מ @&4 h ۇ>9 "|eodZI6V ~ 2 y  R 9˹+D~%K6*{)` R "G@t_Ă,6X`"ESS+,qP5 @R ,`k-ʪ ʾ, C%..MΒH ?r `B[nmYx70 =#hPBqnMڪlB&QvP0T`5>$Dd,H,0.N d'"0 ,@0XJNBZLn-cˌ1b3ёvQWfG 1lѴ*  C ҡr!!Ҡ/"q` j"` @ >A/H$ǏJ%WpJKѬ"l&U&3@!.`YfK2rp x2!0 F*Q &˰)pR2ǐ?)0.%i -5i9H-g(uZaQiBF.,xN1Suq*&Q033Qg""Q 55ads66m,177yS|7(8'w81899%"h:'&a|,a;;}:3lu<;sȓpγuғ: <&>UG;5b4>3;3s< >]?fUO"QLm@gtdžʶtp#mV.(V" p!"lkvv lx |777Oz7x t˶wԈx7{Hr@26xrw"zwp'wwtmyy$z7(q@rqwol!)vWxr'wvWW;"~wkwG7s0qXlXP}'gW{Sx+{lXsjwr' re~xXW}W 'hr'b8})t~6wsw@y.Xclavw|a!Xz-x֏{Hy8o1#pq$wE’C 3osӓ1%y֕IOa95[yJmytp=6fТhrC?/b=">=RjZbcTJXʥ.djEB9&t|*$ڹ *l[y(Y<Ω djY$KC"*ՙinʰʡMF$@_H2⤁JU *5Ag#\ZR:Y->-ac!(4jAmL7"ı"Q<ŮO1cMT"< DkkŀbEӄ::"RTX[?˭zO<=z#;3)NC-R%Lz=0M5{ |-OOU.; W:"ob%ATgFr'O1܎%`%;m絳( Kz%4J#B B,I~!۷;"r&qm&:@[<@ +^r+[>ɰB5p‚ BL`6"lϔl5W]M Ȍ@,,+1;,! 0̋9X i.2$;6W[ -%MbVӤ !H" ,Mo4ʧ<b!o;C mX+@'r+)MI\%D1[:B;"1\ۂ4+! $]R Ո!t}+p U*Z%-r[6R+RɢKZʯ[#=Mu=۶aM Ő \1 $7U.bOb!j!݀Xb$F=X͌}Vh5ށO=bqr㞒NZ)b{./Zd) O:O V(`耝\ɬ&nU/nVPjW= 3MJĽ:3e7~G~Ȱ9#d>z?M@Yߙng> _Q!#Be.b1~S΂Ƌ7Ņ.P$%E뙮n3#o&N\ZHF8'M%Eo3Ǔn`#}V#ZR_":q5sFMbΛ#0&c??n9O5C+ *?3zy[Ÿ=s?ٿ?? <0… ;PKGXXPK9A%OEBPS/img/dbr_replay_init_options.gif;oGIF87alڴƼtttԜtrt֜ԚrtttttrtrttԼrԬ֬ʼœ֬ԮĜĚĬ䜮ĚĚԬԮ¬ԬĮ\$VltttԼdlΜ$$ʔҜ,$$$LLD<<4ĬޤTT֜trrT~Ƭ4ftĜf4ft4f4tf44Ƭ4ĜRtrtԚtԺtּ꼼tftļ䜮|tr֜rrtlrL<>dfDLV,tfμd䌒t|||\Ҽl> @JЭ@MBʓ2%-tAъZͨF7J1q Sђ-VҖ0Lo1]I3ͩNijS8@ jጝ.8„S:J)I;A@f 0^ UaSךS[4l=[J K׭^WSX@:vVڐ)AStɘrĈ0LHE4umij){ ̆ekJ20ֶؖ~ ^2%^K0eLWRZdc&=dYDl31h)ഷj>um$ЁW -c^D Z@ZMIU0ߙTeJ` -bZ gԀiyY:FxQ jXC&UQu\3aJz0ɔײįMKb5嫑ܗ X2=W(׽ bI0a6_*^l2SаIa67lv3^WTgDf0~ӧ@]ɍyf0ss["ʷM ?XKdӍUI6Oˤ]Iᕌfut;9ovWJgf6,Nr~"Ѯ b+[3XhF<4L{S*իkn74j jzgy˲C͓e{pݘIe0N]p!<ζ},T襴zGpz y(9Mr s]^W@2][.֛?ig*ᎳKZkƶK>Vʃ],OjW3QYN`A|g ~{ڍY eȤcsKR7TՃ݉V.]ߢej \}`z w<HKV0ٻk!ϕaC>.H9Ũvs]|A;f;w1,]ŗؾ~C)ro `3?g3ig}(ZgZqL2GWXPxW GyQAkGe2Ձtu(>A @tT Z"18<؃3 @B8DXFxA  HPJVh \؅^`b cbxhȅdHunVp8tTr6psi@5V__a[n{5VV[H|,Qe5`d&[X[刞^{8ƉV[h]uVӆR1eW6ч9q`Ge jUe WWXxax_XrNU[xXħv+ejXXHP0oHjExx{2{ōsѨ1qIajmoU PE/ @h(Uo77[~[Վ/ю{H i'dzE{-X_,I(%\|g|d@ɆW_ _En*U`wUxFi*vQXV%%i,x5\{euX|vMss  `F,1aud5Xȗ{9}9?eyi9RWQs,!em_ruǔ UVUp_v7GV$Ir.,wIc*h8Hj&X\8ǩ]Fesw`+\*ǼTB;Qvl}*|RH:mM<-|  m=}}-x"oP,a+*)0}23579468 :-61/3N殌[c֥U;6mWZFͼ)j|^dW%#[n|ۨ~nN.fTxG+`>Qe.}[nՋU1 _RΊnUTYX9[iqk߄柖r‘nWPr}dܬJ֫ps,Wi{ & E.a寉ɨٙ>8jyZ.<)1Qv5Z` ,N廞<؎e >^{{Ryb`{+,õ5<Y)ni>i~>[X —N^lKsM_N_6X^!oJ䎰_2*[*?<.5Zw7*9Z6bN^_kxoOPO佚R)Uw²]onҝnL^CgϦ:v Ï_|~2ﶨ)L@i~ne2v7l}__ĪkjiW`v*grroZI宦|>mIRinVo@C @A"8 †|@F $$*RH%MDd)-]SL5męSΙ B&D' *,m.0kС!(ZP]2TU%˨FHSֳ"!cȉ԰ۍjv#LYkǑ+3ɗNY3Q2iX@]dZlڵmƝO% [dlōGnxr͝?w'!tx]@`@a]dd)}uUqhHv}ڹ6wiJF<.o~Ú]B58]4ݾֈ>bԟ*>W՛vOx"`b-kKV5"60z h7pfhcXA n]S ;ρІ*_ (5D<ꥻt(w(ߡV+g75pK&GsX11^5nёV ٺDjeofF~P3|(@+eL&I~wC[vL]["G>җMZ]ZddE2FᐘGIFhnkou?fd|z'PYMa^-+CjhLm0YeAIgńY@^ d.sC27yͅa4<-BClHz1`UטK0U|eIoU1=- t6Qb0=m*d1 ScdڂDt]mdڙˤդp[먃 VcEn7BFKx$8Kct-u/`dDY8=i8{ ]7)Hn7޶^|7PoXp$3<"mFRqV}(F1 Wxuk=at=6+uد͊jഌ Fpo? X#HC7Jt@/ lKx;;HA?vW{[p^!<z \y773{3˯?stǝgە? ~!ʇ{c/ߊWs`4}90k@?m<#uܿ@Dtz<,U O_ۍS+ S2 R{SC+;̢@TAFIm 8~~cDI9ŷʌ@I9닗Fy8ʚʅD$ʺE6*{$oJʸ,J:oƷD-Kʛƭ` O 8-;3 |DN0A2DO7O[ù+5O+’\GOS4l$B^@5@# Nd<6KP <3 5БM*,<ۨ  U+2! ʒރ&'풾D(1RH=Y},. **%R.z25$3U5= %e7e(71uŹشNS;8HSR#],7@JӚH^{AT: !/HwRdRMTRò.3u ز(tZ@5_@L4(ES WeP<_.3d5X;8C;"nc:ʽ֦Cy*cƺ#UVi8Jn ԡ{TeeW$7^|?3oS?6 EyɀGC3?CW#PmׅQĄW&Կ8,F-hDpEΐ$DQ몋l XIZfZ]ڶ퉖Uͨ紺sLO[ QQM4($[ ?+OsuK$5*- )G%][DS-} eוׅM٥ߥm%5EeE] ^-^M^ J@U%=]("hJp _ S& MYX`t`3,`ULm``_-5X 3:.%Hu,cԾ a܃T8.`۠I Va;ߍ`F5P8`ϫH-=M/*- nO .T/ZMbQ^0~^5b*+[*Z JCE ˹> T 4(cU 2#CXkH;=s\UQU>,;d^_`a2N$dYR&B1ik dXXdG6Q^&3396ߐ+ǐ9Xݴ7S9e?RE㿨=:<{EDlNgCn~UTWv9s=۪JjEsDiqg*77ùPɧ67hjfKkɦU^^P-޲8khވ+< ǯ~k.N~~H}l%jWjmY$Zk2NZFG9KKa=F-mRmi cF^ʣظoqMͮ}/oٔͪjKG- H[!ΊWҠLZ#LBLڋg4 |Z\e8V7爦doVf;%Q4ƥ젽P\n.\C,LQUJVn].+,UPgXu\+oPս- #[QM_^bd{N2 ʝ^]K9c3taQWZmݻjUςREu6Ω[1'_v a7v(cWHew)1gviikv`mvbowdq7wf/sWwh_vtwxvyzw|~x'xZGx4MߎQwɖ{*z9(vW&ؖWv! OBJ'7v_֑" y٦$*EYHh ;*ᦶyҕM"ߛyaGe׈b ҁu?um"G>ʝ9 {$ ){˕yu&Y VG*?%w2"_w?",ʤO)B|m9}ء^B}yy!o{}{)C/6 6*^2ʝY%N8O~~3bw2gN !'O}nC|{BԳ !3(B "0@f<("Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:w腒jݢmXv: %_Ih~b髩ry9,łħH~Uw곏_0©NiHzj{ВlNK$(E+daKA/y"UVS(#HN *k0ãZipu׮@X&sV;,ŸƸ]|wJ=U^}{r!='z|k??_??tK2'l #($p+ r CX& O,,|! Ұ sCp>s(*X X%2>BI8 dB-YCP`bBc*! %Gi XX1| J\X<; TGI2r[b0rpCh j4Jdoc܉"/)h al5a3Nt aS\=4]0hFgMzbTw ĤtDf$:Al̍2 pXf0`ACԥșUPd)T)U|J7RJ[qhE+UtZr;nŨJʘ5 gÁ"r]+h5];V>V6h]1 ۽ okZR97Qk&ibe0@.,S=,zdSָVAJ\BEcATF0b~#0Q `019NhO'Sk\j","UpŚָ&;TlLC-ŋW/a0! р%ΪT4;3 i`SX(ͦknGDZ+rڷh}]HE-laYEusl6x-yJ[^f8MX &[M oy\d#0/!xHOD$1kbM$dcxX[BG0=,2c|$3Kn2(SٝS245A17#AV4# 3A$ExBXyB3}F8XEǹ Hb13$F{ӟg8R)~slS?bk/O_M?wdF~'k>%DşY}_ߺ߸_1ѣEHLB؞Q^__ٜ A`Y` 豞ɟ_ z*@ _y v ک V) [.=ܶ۶-A%-ߙ^Zi%ġ_݀]ޭɟb!b RH@[^򟰹ۿZbi+ +&)\R`_ "bb* F)8c4v_12b,^-j mY}Y9Ŭ-I#ZSc*]٢IJcY.@@AɣCF$ADVEf QFv$pGdHdl J$KKIƤNdl $N$K LM$ldNuZ<S2eOTPP^N(Wv%W8@TKTk\B(W@eXeT]ZZ[%W%`%Y%aG2 P̋N%Q&]farr هy,FNdȦ^,dfDLV,μd䌒t|||\Ҽt9VDAp4]v[kZpʝKݻxjK]6sL7qBe,װ"[hî%kS`3fV˖eS^ͺװ 6d> #frŕflyBro1i-^z&سkνINr‡+0ǻw^g9]qSmހh&ȔU`K`l=HggXҍgW vpExWrbgrgYK65- 'K(n̊d!#ii TViXe2pF}$Iclշ!1 cg>ahqiۗ';$v(CdfRz֖姠*ꨤdc] W%Zf)Ka:ެ yVin@#6}$&f]zn;>)j覫jZgh ٫uj;ڭʺћ*6uZg\1|hu-&!r>gu(Bmdg/FoֆŪf|?j &v(1Xn=h2G}F^ٛ;3s [.hZ噧=얼ޜiiE\sqpHt4S4`޺8tcְnB-dc砇.z1Ϝ|hҴs{lIo%oɚlzs8$T_9Xoްs ])ZΏnglpŎJ'GjV;E'Uc)xmh .eɐw7J&H Z(~Q,^ o:RGp: 4#-0̌?3= xҤ8;[tN6GH*^0=1.zr"O2hL#Mĸ2pg0x̣> IBL"F:򑐌$'IJZ̤&7N/(GIRNL*Ws,gW̥.b] &PzL2 b( HfbLdƤX1A(mJt4nX5ѩNfJ H:,WXr~O>a6VbKY0zBЖ @k;M;Z L IC;ZD 6ָ]Md%]-Kk:w;f{Sl&ѥQ-nh A YL}(Yч~vaOv&a9*U0/^[ηDm U7%wi #60 ۔wLSxٸfT@拱zLl C[ׂw&q~K\ i+8oPN5aSxV5Q)Yic &) POO0ӰOi a*96򊗪ަ"4n/2c]2`sv5i5pH%V[օFөy<\:9s9|jC55[T`i!=4jމd,`{Er3O\3};P`y=ZE) X`,@sgѪjTVTю*amAԸ2MkzFMaPR\h._&Y7be;FL>m+=M djs֪JYtmr8חr^9~NSvֳ\1Op3EqTN}֘0p/Qpg=̮}2^p{35e׫x ق*ffsF7 ?hj aRbĸş |OS _ӡ_:.4.dl'}&-jWv'Sw~WXPm|%jGS`5_&vxkge k v,qq1hg.,7؀($JJW] PM8uvJSD04 h&X2 tf4SK؆n~hHY 7Wf2mRxE6U{oxp 7E Ӱ 7:уSOHRZ8'# x؊8 Ր8(Ic6!RAH'-@NAWŌi4NquJW`xd` T0Xx蘎H ;XH0%Q`)EV$Ux5Q7ox9(X%XIT_s/QhZW0aP%u4Q iVtz  oMɀЍyHyQZgUMOyLuZQnMcE_Pn]Z7!6 c3^e[ѓ#M=` sHxQZvhyL֕uc5^\cuc(d@UUxo)WDNNIWC@|nwJvcd4]Q>V'՘mIBF6Q jVǩNpRUm[+@}5v)dQYZ雅֛,BM5)QA\uUƓ>hM%\وYǝu9VNms֐֔h.!R'VnM=$\yA_µo:ir煉as&s&J_^5[M+sV˨\ٟ˥8-i5 re4!(hAda`ujZvlh{`wyZ36'Ө:**ZSrک:z%/.-,!@ڪ:Zz:JjZz͚Ϻ:JZzܪjᚭ㺭z⪮ʮ暮ڮzZ[pq ۰[6;x{۱0 "[K& *ʲ. 2[J6:۳ʳ>w B[hJFJ۴ɴN R[}VJZ۵Iȵ^5*d`[h;ugle;4~ڶro:-R2%R2Z3sUĦq~V·{JX+S34w2aCBw"'s@3v A-!pD(# f!4z/!ik:yr 1+k'{) 0fQ:~+K*&R#>!51ҷ$,ѷ+9ȶ)/w#x}A0^ؾeb#A/{){ ҿ[!{[2mb!0 ,»5?B5+(4|%l`A:f$Qºӷ?,6#%If`eRTL% BQ"2ܻ }C´7k p&e8=Ű[p ktFs\xlFw|EIȂ<Ȅ\Ȇ|ȈȊȌȎxĆ}<εǔ|dɘأʢ<ʤ\ʦ|ʨʪʬʮʰ˲<˴\˶|˜;E?PbK|A|̮!Z+μL l\ͨq?qpR+ܬ!Ug MJa dƘ/ Y5U߹tm%XFМa:5s PLZX `yUܘ=:YydqѪ.\̭L3OAU2QeBƔꕡT|odim^}WF4N}NtZQMJ=WmH]X Կ\҈:YX|Ri^6'v́QFN#*/1UijU/,I>}Zm`mg  Y QvZ=Z٥=ZkmZihVg2mtq͂!} i ZyL h4ZXY覕4˕P+ݖc5` UZZ7V-VކI][`y mMݘS,ۼF*MfP.fhU cL*cFJ_][^ڨ$$^Mb-u)_VݑӤ3^n@QIB1> M&ּuEi_6]ݴ=cc6!W @n߸L6c꼠-p>ߖ}=U\Eosq >;s7q퉡Y沽mܖP3>٪LQ^fׄZ \]ؤ~FR@m.TnަP9V2J,0Gg.Hji}.oani6M.UmR!Vb_M2ȞS]VeMsi? 5l\\.HݴGM\u_ y]M,h6WdAqM?T.2 QA+NPT߳Y_Kqܱ9 \^b_g?EQڑ1j^tt_vxz|q֎:l?́2ۉJ?o%}?_ - o*/:?_ÿ߱?r~,mD?uiAKLU֙핒vݛ<_@@ Dx0(0 0a !pe ,,)d0Bx1;}TPEETRMtUTU^ŚUVC|A36tˍǢyV];X`…5Xbƍ?r±'! y&r| (~'[vTijmƝ[wWɷ+|1qfm5{u[tkWǞ]vȽm]KQ"NPƒ!WE0̹):w/@$02|S@3jɲ -&# ॵ4 $31EW; j*_Ʃf1Gwc G$ !D2I$}ȪT2J+KdʤԲ2L1wrL43TM7 +M~N;3O=O?4PA%PCE4QEQGQI'RKRM7SOuSQG%TS TUWeRSu5VYguLXk5W]w]V^6XasuXcE6YTYgVbZkZm6l7\q5v\sEVfe]w,]y祗x7_}\w_x{&``f8bwb/Ƹ3cw78dydOdWfYX[9fZ_fMy5@㬤vy4x#"蛗f_"j2烠Z邪hBZ&{{ fv6mmlb~(.0mczVx6!W#.FZFm#OoOɨ8vqOC7߹衃nwCzÖC 7GyR}1@!#@[4 U@ AV}&v%E8CJ, "QߚTmխs]aV uCfjBt `9`WrCH j~dml& ը6vXd*!Dy `YnDpl$V--T1h@ބAwE_=[XָUAKu,^K]5aDKۘPF9ZmCf[D -/_:׻6p5/y@`vBn_ X.铷 U+f2LT#B5 BB<oHfyHjڔ\ضc,Bm@a5^IKD$DyqyY"|lerX3^f EM^9c/-Yn\ }Mp&3d^Js^7)}CkӀ> ix< G멏{Nx'iqguBkXw:k\%i=ö+? 8˿k;̛/` ۹g㿫*ȅ8z"@V>-:z8;-+ҳ=L?9f?#D@DB)* ,I/H (BTF Hl|,¾tȄɔ:8yI.DLI ʏ$(pE&&l2itjʯptJ B9IJ\ŸʄTK ʳe(6Hk#>=Z[%[=?CJD?hǀ[[ۼ}Oȁ8>[v:=]ƅ0ٛ?\́BMKʋ Ȼz\rM\5]E2̨JwbjlΛC0\NȄJxD>hݩf=]跢[NJu]=՛ՁLKE> F/Ҫk1j/"6DMe__߸x,*z0. ؛J@JKE?`W#4XX3T4GB4.NaA سB+L۵5(#Ν٪ }HI`?X`tšē˹׽*΁+-/Ƌ V$(,,BS@TEMEXFh4 +غ%dCFdEfd?t4>Ո&EՀd*S~y\?8XB8]b ?p2Bӿ!lAWe.ZFH.B:1+?bB_b.C\[0clKDztFp2-jYfoo/F2&'6}?}[?@?oL &L˽Kgݚہ.߈y̌}SL`tʴIڰ۲Ьٴ}iԽ٭ii͟F ٠&꤮V^)vL0ϮM"*Tjjqj3ՂjhFxs k굆1XQ_iظ>2의k nNFɝk~ V Ǧ Ρj .ڳaly#*Wx<~#Zq^m >њAn! YnQ斣bm F6n- 2"_h 0PΟ{e^+v Μ5"FU618r:xoo8 m9f2kpyk^T8 Uh.R#*n>7 G5PѦՆq#_^_# PH>Vl3n'!o qr)/"o#$? %oT3`$rm2r3r*7k 7 4zknΟi>|Mq ؑrǶ=WjF煴lB,JssNDt@ut& JW2qV_vtI('\vm;_ɾ=.1Q'/tC0=69ܩ6cOsdo#!WvOW8@w#r1S!8?l._^v@owBtǡA/~'avVp!J_ ^[`w gT7ȃ?oYxUr9yvG!yZBW2y96wQ&xжbx >0' 3e_oqgT?&sjMI[ ލGmva{\xjNU{٘p\{ѭe7g]XN^_MXم-xPЗ}_ ?'Xb8F'}џ?b@cϏjW LaEV='[G{~_gcV&A?G\_>B7n?H@C  XP <Ň G,i$ʔ*Wl%̘2gҬi&Μ:Ӊ:rA08!D;Rj*֬ZrUɴ?~G#2="eˠTz/| J()AGySl22fç>|j.m4Ԫth7i 1":|LDؖc ,6$ЁiҧSޕڷsOñBVp ?T#?a x}LbGmPFtLYdang!!8bNx")("VP0&mV߄yۍG"EhI*= Azc^6wZՄL9jHy&i@QZydl8Dmі:Z z(SEYhpM1$S(!\]Ar`(Tj&i:ez++++ ;,KJ*,:,J;-Z{--ju?x{..+lnI;/.n뒿#Ѳ |0-*p0(A1pk̐Ǵ22%!f$r̫)<✲ʀ Z̻[ y\LӠ&rSK_75(lXVmjѺ-S1$ p?6]yZrN_ˌvG;^)qE7INa:Z8J"r.z+NT՞ c{DWJw7~1eȆ[x-^"B\vhCF-''|81th6w*_|!H$w? yq3Ip-Hsf@Fa-KsJ\8$ aƧ"%:]+ j T` 5pDWuozDWPd lqA$ Cp6ALv0/Ci\iŋs╬!`#(0dD&)203yE@xL0[~>ҍ4 hÊp:$Ya@68zl肋\ Y(d5q@r68 K SR;SbB]@De՘5"`řgW7@ͦm<xB@݊UV@d7 'm${ڽ~7U{ I2}.йc^b{'$*pUz3 kr3I7%nwǻOͼU5X>D;t;=qŦNMq5OF^*Vy!iHŚu32!O dQ Zb@5o:+nr,O'{!:ǀm!.;^n)7y6򞛮"M$No_;xT&8Lg|^<3@k xauZ"B(TH$JA!Ms2#B$Rb%:$(~V'F$Vx$xBM'k,Ң bv$DܼM1n` FLaRM&>WD22NA3>% $Q#nlB\d6B#C+bE,G ) .;Bp " "@dtRdE5ߖ 2bc,Ed%6Gl85R6EZPe1DGFGd7,rB&T#$@ŒD R`$bT$S@ dd; |\b]dC2b2FPp(jUA)]1VBdleDve7C1Ie9j%Wz%(Pd&X$(AIUF.lDHUJ@fy!%e&qxRm$U: $\v%I$fZvfOPkJk:#l&C% E%X%D"yTSHddoOq4SvQev^u0%N]-dx&wzRd8&n",z(eXC'{'%#@B$H#L~ Tv Lg.K4.N.2V.:f.v.....R..n..//&/~6/bF/V/~f/v//r/./// //*΄VՄ!C /' DYA-I0L0ϵD]؝_^Q[ܽZ Jh0Lt0K0 װpۡpYwA[pY𽡁`] Ycٰ/MY# 3uAXpk1ߝ Om1Uqr0pU\[)WBTw1 aD! 2(#A#"1"+%?r +1*k#[ Hr 1-ۊe#Z//2y0/1swQw0=/u2;3W<+x0!3BcÙrIOۊa0ع?S0wFs)ctBB4KB4L4MK3N4OO4PP5QQ5R'R/5S7S?5TGTO5UWU_5VgVo5WwW5XL4YM5Z3X5[Z5\ Y5]{[5^]5_k^5`O_6a`6bga'6c\76dcG6edW6fbg6gng6\6w[1s],iX6.!"$SK61u1sj׶vDn tv#JpLXuJȶ9v#vpτvwDyx.u{ZkKqP4<̱eڽ.3-YQt2J˶}2x?wDgOJG=#\67 ;;Y_MqG8WY.ur}0i{,6wIڏ1׹8q]Aywظ?27C@9>/S؊ 9$Gڤmyx97ikSi39vL7iv;73}[k׸-_w6}+9}C7s{z7g.w~;9y18skxlc9w{ pgr~A{3Cz woo[5{z:˶:G^u#1k{$c1Яs{G7z5'0c:w;7{;;4?Ñ64:{;mJwt?GxKH{q'Z_ܭ|S<$w]Ƴ8;1F|<͗={~ 8 sq>Lj<`~_~jim=F(jFJ;ujRsp8G7QY,!Ja_Sg/9D,|R7M~,W GKJ(UAB@ ;@AB  $\p B@ F J|8dI'QTeK/aƔ9fMԹgρ],XA &C \dР#OzѪ ]2u ͡\~ WZued%Z>K/޿;kV\CL.>F,H]l;!nF%]Q-kK 8C$2*Q|I@򢄒;OQVm9٠.zP褙viw~Z:樭t7o襞>i̳~Y|?g__=v_{9kR.@Æ?WܖL%=Ğ&@w)q J$f!m1U,ةjjTAx ʌ%_ .EB$Y`ZÜh /uDa4q$Qtb S*0ꐇ:M!2" S"K'^эt#BH_@nU<2q  Mq)aSLbZģ%X ICNQ qeSHDd'mx\R`8(5`ȼS H Hƙ%In"IJIry@7I$oS%06LCS b2LgBn"r)sg;Oc DY%\)8B#XDjUr&}bp 7 ~t$cAJb*4 Nm&Uj%Iϑ9Ӷ8JEISqrQf!fqrᒒ.ˢƄJ*K]95/P* ֎\54Z @-׮Ւ+Y9 :"TU` @WijX񍝥_׵E,$B#U-"e]yĞYQgk+Eds ɶ3/#%T Gq>{Ჱ:1r7n] w/(qbv@yۛ7,[_Wo˺6 n .:< O{-a ou Ab.v#6Q-vqV\Ϙ5mcpo_, nAnC\d#3J^ b'?ٿE2Ye_˴osa+9_&x}j6Yv25gFu\:vM fyܒ-ْ>%n \hCS !Nd%(|v -itjt! Oԑ5z)ƒ@nD"p`@jH(f|z##v8B$bTg YJ+@.k^GfnEceoFhWL՞cnZ9[JUPW-HRI>*RRDN3|d˾u|d. =IMT˄F~JTZŐl/R$^oO6Bk*yV7yImUKYxƿa[VM\8Mzig}+iuj~u>Ͽ*5Ad.o`8H˰V崺($뵀, 5P,  +0d&d hkklp8F@dӏOk+a IpdJf*nO _A mΰp",  K] FY ωS #׋ 1%opl-kq9A1E[HYk[q @ `1 d} ` q ` |ŋ1p qq cQF|`{x`t rh  q {ݱqme^#Q-$ qq 2!k!Kl(ҝi7%C0.cLF8t21V)*HB2 +h[.(5% +I$_sPrh`%#%o&I&1m*ic6md/-U- c$`/&-3 FB0 82H/$`@2 +UE%%,q &d&-/Kh-?"@J3Xx5=)m65C"@jׂˆ4mM$Ӊ`v(^(:d,4*E;Y:%s <3 ,1343p3$|@;c*c+?9..dIHr3W 3 A85(B AW\\ 2bH*F*6đR^B <`=2۱+U=A% &I58nR4߉>T|rK$;.[;O4HN37$& IrN% +Gד2$+ARIs $ `\jJ1I"OO@PLMy*NuRb<4ԔOR5N.Ρ$6U/VX;u& Zsu u$h%-I1.)>:O 0&JQ(9s]*քW7C!H^_54,"J/F 3 YUZwQ Z+[j[RI4ULn[vpE_/>L68Zhm EQeEbBGD6g%E2_Lv\Xc(#eH>JjA0#1?\" b b c6[;vOS *(?S07kcP!.f;oj@dp;f pE8"C7EcB&%9OfpHU9b|*AnQ@# v HFmQ};ve7ZivqmwyPbwbvn7ysw @{um{ٷ|@w~1wַ}w27eX|7f8%i x-w1x9d4AXY~wC?!r32SׄQ8!Œ[]S,'*\qM?e8yD%Y[J6jϼ+(3.{=H_&,3OP-g-Uby`m˸%D3!҈4eC&3LCj5m#`8 M7eqn9)@܊IK1u??hDS”bn@4f d/tBN/ AeyD3\2|S.96IKO6?4KieHSKuNԚq䗃 Rco؇8U\S=vUG0]{\YYfEV؜ :Y9֘QMȕ^ }ut^ a_O85ZsUYKU'4[KcVddcVW"+JH^{6VP7g)ptnf{g僴NGRzz&֥_n'F/+c4oqbqOvq #r oez%FK؊{&: ;;;!#{)uJ`@`7J)دA{HNPOHB !D]²GtJR[R`R>[kcX{Ӑ21oh?>Ay'[ĹnFh!HZ#iVCoo{tHQ}[[0?6Ӓ0 S#1;1w"դ0Ԋ;M-{m;tt;5Iɇ(s9 yaV6Ⳡ@];x^u95k}MXeCooTS=I(F_AF;6w#ki]UhQbjèngoʿuXL~o\?_"3^CeL6eN_VL6V)c  _ѨcZ6u"Mr[W@8Ōmn 9d/cN<9f7{ +fI :Ϊ[~ݲAٳOþ!ܼ{@  @;GNPq֟x73+.[ճW]q%L`+Xq!iA`hA)W!~dEWt$bap'Ƥs1!6v:X0Te D@l"f0"NfRNӃMg }WwY~)@uU`f^PrQ 'OQIg8igL{'}FHP:7OigP-hNJ_Vinե~ jv\jj kJkފkk lKll&;PKZZPK9A$OEBPS/img/dbr_replay_view_report.gif[GIF87a䜦|ڴlrL<>dfDLV,μd݌t||\ҹ}ka[;S{u~͗7| a g`vxMGOQ~m:x8yy("`ߤM^-J 77~0.F;x?Ab!BdaY *dI -\Rɡ =Ѓ^7$n6% c(6nv՜#<hIYYҕt,F'4)ؑFR>ܸM 5M?0s7&xk9o6j#Zk Ȭy'yC5<^5#♴5ޅ[jl򊎍ov. ޑ:&Z+| L7{aDiJp9&T:율!:3il6,58tHDQAwzcΨW;~Z'țyXs3ԓjDvfn tml}2n-twØ8<0iʮY8~7`!42J%wye*)[v`:ʩB2YL,,q0OMFVM˷y5& } 0>-5U8~?v,_4uDd"T5)OYl8mA{߮>q t+9ݥBU e\ZRVv)v؜-0P$_cRG%BAp|L\Ӣ&s?[WNjʟm= Rx()B?r$[g؂G-*jzܨȟQ$GY KZ](H ΅(g(Vn*wΈC0׉`)K}kzd#)A%ؤC莺̐Vg-k> ДvܤCS2յ,W`42 ZPr/gKg SQp/V3B˖DJ3pscHNLbb$qy }QMתg,n=ƍd>/:1A%er:n5!*lGaKe_{V%b 5CjPt]\.Kԫ}M6Q4u;' [ΰ7 s  #_H(=H%}0X;,MN|82-Ld&<JdИPKy 20A?JhN6y*`͛L:)qγ>πMhЈNF;ѐtM-J[Ҙδ7?SӠGMRП>WVիN5gMZָs^MbFf;ɲMj[Ǟ6n{MrZ4Nn0w~7N O>k38.[y87EGN('S[|. 9wsu@:.D?җl/~Q_Rw**xr%Y+N"TLOAIWBt]v_;'uRJ9NxrDY3HuJUurw_˧$:J O#9 -ъN%i--zc?M]4g|P 7~X;v9it{W{&}2ˏ)Qwbk`; Ge%^}؃ާ~ؒw5۴ rX)׊ )C8,~h|'r؁\˷XrK( T*}M]ߵSw8 XPɈSPȎ繿跴źlH|Y8Ycχ ؼx[zOuQ%KxUB9X][K૊{pKL_EO(x8˿|[⧍5;whr<8xk;`7Öǿ_ x&_ٹ0̾"G-)7\ǵ Է7ɍd_Lk.BPc\?ƧąijVt,Q|z\kai?<ǀ̖Ȍsɒ<ɔ\ɖ|ɘɚɜɔ|Ȣʤ|.ʪʬʮʰ˲<˴\˶|˸˺˼˾̿}.PEqNY̹,]S7p4@1  ^J/\ZX0<; L-1[|l1S| Ьv,CPB>`3APMR-#%-h)=N.q>Q-]H--/Qpp:}>`3!G-G=  R=@IMN}Y\mMU'8[JMlK`L=s VgxZu~fm(xц EE;L- lj]0-NK(AyM-uԣM֒0F!D`ڰ71γӵWvMڼ֣=Һظ- ;-=!}ܭٽ}9ٓML K=ֽ֧ )v|ֻm=.9]M DMq~P] BM 7YQ=  _]r _;L?V Ͼ@q=/+M#:^ס#?R'+ݥg)_(SR?,OPJcMC@Ef_?B?oڍ>?>].-ry >jr%m0xn2YnHMخ]䚯mOG_-N Eռ8=u]c/];>ǧOR~>0,*.8`5@4,hO^.m݋M/kQ &Q$Hǀ+.lD A8B)v!D¤XN]3 =Pt2`ȜJUrN;NXT$b͑Zk6!WbJmR!ۡ,ݲU;+$lm 쏐tܪTڂY ݂}-NWHX’HLMʈڴkܮc@ƽ}\xՔÍ ,SSgH;TYxHa,bx2%P&}XQL>+1+o̮^}*Y+},*+|-: Sp+,¾Hɼ심C*C2J<ᛨcĹV̧ 1L2[C͜$Q%{n4$HܲnMݐ#L3}+L5}SnB0zB9,~(ʹBKhi)dFN[nʫM0 jGJ @mHAɬ9 RSt)J! c! QU>[Ò 5~计TMgSOؚ݉3d]iK]rD\;cY2{" @,В.61G]^{^}qϧ0uĻ>j")\J*ቈhL ̓8ӊ<4ł,JXR:G^J7TÂ4M*+LVՠQ[~ꞧvj :fk齜rOkS!ב[YYc6꺽Ln#i>ȈjXnwdw_'Os5U?RP%7\K;b6£OU:Vg͑>b# J\vҊvΛJ޷D436:Sjz# pwoR_+|Soӻ=]pRN`v;ˣLpO'[ UW 3%:A,5U/a +hJoWCЇK {q8*E0c2]E*Vq87b~eы_"zXPш82 hBx9 aE3puģh=.ez8HB)DqȀdl`9 2f%5DZe(EY D% zӟh@ ~ԠfBP6ԡhD%t-S/1QPhH=*R Z^+ ҒT6ũ=-hXBP@7%MsR.թ^TU7xMɩԧb].qSN! XdVK)uZ!`͵1N;N./~O9M:ӈ'* ;JJjGE^ YEvT YG59lJ(Mx:lhrWnXD$ ؓj( CpƊR5jhx8׎l_T0صַZzv0[ wQiJvk`­qs'CcfWfj.߆ k>؂$4k[~ERy<5@wc,5yX.E㢔{Jp s,ds[Q0JRToJoU*IyUͻ Z𥊞|=tk딒f&IG/ȵL^)[aFY7<#M2';fI mE9Y6"<XI:䈺>́ B 5V2UR(1m+yu0J @g5"²ڳ{-lyB{v棒8uӛœ"UV[[F7 #]7A&s#~KUYk9D3=p:X@3 Cz:DCEDSYT.Ӳ $%jCb.GyC @\/ٽa2:k=<t;N< dN A9 U۾쵠?⡿ZEN, 0#FtX93[A rkk9A٣ =+hmq;o)g4=*(%9:yDhwyx JK4Ȋr5X:Z캏 !qCȚS0-aٟ:1:DTixBq0UBI ;Y1 I<0lZE'QJH̑Tk) +q Yh0Q!t㐟:5j,#p82hIe r- 7Q-̡z̦;L*Ƿ;;q?S0;: %-tr_ZFF M tMRTG1$JE %!y#s˰JBB$ COB"}O&'rY:dM0ZOs)#$2' 5b#xy8$~ ,"2 @jO$E F2I% Px2eQ<*%TJ%j% %mQuZMP5!%"5#ER#}A e&uR ')x*,--/Sw0%25S*3U5eSI68x9;:=2>@?B5TEeFuGHIJKLMNuPTOQ%R5SEOPMVuWXF][\]^_`a%b5cEdUep޸UfijkV^uVhlopqmg.ErevuwPPWx{WpWz]|{W7EW0؄U؅-耪8X؉WX،؍X5aVEVYPب0V%VUe^ّ}Y]uYY^Uلٖ-V٠%Wِ5ڒ ZY`]ZaM %ڡ֞WVKٜUVa[؝ֱ۴ گ}Zi]\EۺىE[lU[ֲ [Y=ֲ\ŝ[X-٫5j\ڂ\E\uZZm\%]e]U\e]-ڻ}٩-ٍ]] \[ЅZuUZܵ[]^5]U]^(\ܹe޼u_m]%֭^-[޻]ݦߪ[ ާZ5-X^M\څ_ ^ٕ` ^ϭ`u]] V^N] _%]V >Fa] 5b- _^}~`b~&^V⢭a#bna+a06ab"^-b]}b&=c:\"=a!5`%? U6 94a-_E^C^H`A[LddV\edpd;_=^FdTd@ne-c3dUMVdP=^dcnK@e >] ^-dQg>f/xcSХc_&l ؉Nރ^bVk6\vk帞k&l6jnNjfvi6N~ H-kV6-b]mW]VmkmunjmmE ؉.m >Z*ulgmKfN=`nNki~&kץmMo-`gn~menm VVܕ ؉p]pjpc5p7 opx-f2qŮdpVp_VWqwWhvq WVpH!U0r"gr5r$ %o)r_}s=-./01'273G4W5gs/769:;/8>?@t7s,?(PEgFwGHIJKLME?@NQ'R7SGuFtTwWXYZC\_SB^_a?`'cG|2dgfoewhvKik(hmvMnp7or7""sWugtgwxz#w|}|xx7s/WxpOwkoxgcx_Cy@ 7;DL L(SQ S YN@[T y7 ?WK4W[MhRy/zSXzz=o'gy'7{'Gz`{w{_=Le@R PhhW/wzGW [H{z`{fySSh|yLpzS|Spzş{Py|zzzZP|G~9PH{@}#8YxT|zg}#oz?Q(~2}~|{T`ywgzRg``'T4jBZa)U*ă2,i$ʔ*Wl%̘2gҬi&Μ:w'РBHJLWģ/<֤k%'\D Xdmhm\`*POuJ<8b3K&i$/Q. $(d \C4!h,I bAR^2 zw6 X h*i^r$>%Z}B'scXF4[;>pLji%4l'ԀަƄ{C+\ ) 80Ik fN\r4k^=Ur!.mSL4,0l$D6L"x\cv9u sff^ɑb$)ʬiߴ sG& AWa,=UM2%N D>-RE_ΎgCAhЅSxF)>I"M$fbIyp4XHqyCLV_$ ":zrj,uS^7dI1gJŔ*9Cr%%h!M{_7%beؾ4R|V՘='`Usa!424I 7X:Ԭ`gėGkPHz;Lg;aL=e 3{0.vc&b}/n69Y-oh`\4W&SIv|wK wi^%n~'@u(]bA%21MX%6JP9B(#ZO"0mЖ[br&XJ^{(Պek=~0Fʉs^6{5ڏsVۼ>65wb mH&l$UߖiR7ttӠNU -aJ=\YkbD`%ӷ5i\Rkso0!6^h+#w9f.&A}fW'verIpΦ~.}M ` }q%B恈k*?$.UnY;ra%˧d`AF5ҌEdT{+MJ:<(4f֥0IsGEN _?AJ-,U,~/s?1itfzI&4[jXO_63:gm n, ׁ x^I^H_ 1  EKeZ_^ET^ /(K ݀@ p`~~^(ڐײ`^<  t @΅V! @ tJ ``E!!֡!!!  !""E!&"#6#">$N"% V"&f&%n'~b&F"(")("*"*+R +,΢|`.."//"0/"1# @,#363>#4F4N#5Bc 81f6bH' x@58#96c 6: #<ƣ<t:#>4<AD%c3<:$3Bd@:D:cAf$>FCF2J$D:Q|dHFdI4dJI 4h$Mc}HK3IeKP3z@ԤRc @4$OdPJ%EdTPdEV3&R~,6SN%URQj%KZVN%V3"%Xe+FO^%Z%[F%_be[r%3r=%abaBe^Ye[$PFfCFch@a^'F\XIY^ZV%EB\ff(vcKDLlD.Pk$$l>o@n#^(]'s#@t"u^'vfvn'wvw~gwL'y@z'{{'|Ƨ|Χ{@y' "~'a'R'hF (F&.q(>h1:(N+J(^(*Z(nhf*(~Aj($(h"( ((((ިz(&(())i).i()>8)NiH)^X)n|kDpGnH~̇X|oD fi+)qEy)ą_T4vGV }Kn *\b-,*t|ǜ"jci\{D|H0Ù2ǣ\))ZƙDĩBW 20ĢTCnUԩRpjrF+4DBjztDlFft+6걎P^|j+DE)*ƆXhƧnGI+%Bzx*dbżvkjĽz[+DQĆ*XHE`nk+hIprkŮėFrztJþJÞwò,DexnGn-v}l^-JhLlv-*X׎&ksp-٦-$ڶmDĭ-֭--> .h-.Q!6>.FB n&!悚BfnM\JlJ|J `LʶʮGخ„ 2KnKͶnڄTQPIMi4 ک\PhELXVmLY`iM O | R]9@ O0I- • N_/ oȰ Mh x8EYM]㰯fɩ ]oqo>̈́lY (W oOTwyO ]@L̏ OpAOQqp}yg\LtX0VM$ ׋Q\p  ˄#7Rݰ5mѷ&ٛP!YqbI8([$Sy-͍rQ(KQ(w"nQv%١QzѮE] mhF #ARU+UAe '90,,1Ly63}0 ]n1`<ڳ!$5I5;TJ$S8Y 95X:aȟ>En*V\>^C,zxPK .\ 0&whlӿbC /9a~#J?z! ";_? ,N.??~ֆ1?;?@ 8`A&TaC!F8bE1f4FA9dI'QTeK/aZfM7qԹgO?{:hQG&UGMF:jUW>źkW_eUlYgѦU Yoƕ;.Kuջܻb]ּsgύ#[-siú0P5Bɽz-;lҥ[NڿiO=5X ';lۗq#G| soK\+u+W&o/wΐTwX^]M#e\m2?[ 8zB| E$(C:`BPDZщ"1F giA<+M԰CHl,Yteq&1 P!".T1 +LG\R"%׬Q찉*">s=$2dBHEIs)M.mM8":PDTPB EYG/I̺D( %P%R~M ! !P; @bWTZֈfeS%jiz|[5Ms:bZ^rwBg[mEӘ-[ u VmB4UJZ9M<} b\]y[x HuKRYc%cAt$C9·\'^U5v7v8qВYFYe6ߗiYfK+xے3s^UPbYA` @IOxd}K-5r+hS;͵FsYCzq{v;t[_˸MOA $(yuOD!&y2V!)%>u!B\H!!mНV; ֜49bBK=sCf2Yv"b,Q=<Χ 9DA,bl)ɑtO't'B)OZQ +=:ʃpQ2̩$C ?SⅥKt(MJRӋ}UBZ/ NӰ5*Kˤ`UbuR4nR UUU!I]+<=Z"Qft+MѳW+hmgX.2 c!Yu.e1L%lJYюuJhMZծ0lkamqk6&61-W!@L!REHrIB2H'\Q"ºDqa!-y]67ut{ dnnKۥh$AB+bBPq l (4! u#,P6/y bx=0y\7-kmOm"Q0׹ŴL[.WH*\C~|Gl"HoېNyDZ|,X䓴:q{} d!;WMI:k".<,x![&/e0yǁ&ߤy)2q "Κ(BA LңppWA,΄pOV7!utOa'kֲƄYhGҒn4Loӟn5VuW-]akxQ4RMXtUw..čttɭg>6ܓp5a*;mpy3Vw=O78s0,>o+4=]  g7,/n?.{NB+xSc~9gl| <7|iڃУ.>E.Cclǖ0Wa\y3<~۸.~a-nan#~'7}hЗb bf=;.I TXԫ`Ūl:C6)^~2k3Љ/Wڍ-Z;~=*b?osM7/ㇿݔY|W5畀"ٰl/#O%#(bS>»p"% #$=A(-IM"FUpW0Ya]0iskm0uppp}pk0  ?+2+1b C00 Ղ y UB m ? S p)p'̰ ` pnh d`a `x#0P0հ" 1q u @ L `p )13.bKUq[1^EMQ PQY1ysE"` ^Sq0i I0Qm /BɱϱQp+L"qU11r+!Bl H]vF! !a d #S Cr P%aR&i2&)ȥF, 0ҰNH%@%IGJDh R)r!l2&g&_+s"/"`e!.;zH!n )-CR$C XNֲ-.%B € !`@ L0` 1a,h2=!2!-r%XeSƘ 32 C103115R&QWZ̲,3#PT R1r$]eJ *a_3s 8 $aA H'QI .a;;Ij<7 "$S$zl~388R3~9 :S@;=3<7rc2>3=׳;SB)G*hJ,m`fqzajtC)E& o9 Gr 7" :u@sA ;SC  +odEP(InT=ٓ J$T K92T:Ed8)]Eb'1F'*GG:tp OI}:IJJJ#LTMK3=Q4T tM."erFr2}q猌`b< "3GqGk:Re XlH WstWu Sߠ ؅H8nu=!  utT"фU'2Y'C2k h5!5AqUWy3FJ G8 !YYuZ$gu]! [U\ɕLo']=Icq\'U{ХE&XƉ^BauWk vp  l-qawg IU\ j4VD % ZV=@ Vdjv7{2&{'Nfa6Ddwt!6 VgwWIgj|ouiBivbjGj$mdm kVlqSv$kdk!bIhTD82a5jBv`vgGPgepf_dvwvow2 KT\ՠ {]@dy`\ `y\TezMDʼn|!Dgs`; >R/:æo:]:Ua lڎBDȚ}-"ZQY"뚫B׀ $Ԝ3FEFƯ9W@."Iy"(<{)X {wH]ia6:"f` o;R s Ƞ d\ T0ณ{W{t۵j}t3'i;[%幉&#{;'9at&[wmw"fC<@'&RA89)%)|b$tFS OIT]PwG4S&[u/P5GJUW%v`s6Y A&V~ML8|IdxIS`v9& Gsh)~.bvuGdP4^a…W}6[bUK2yZ܅&wx1^y㏄ 7i/Z+._EzàeUo&2۲OS?ɩ=*nߤ%dj5֭\z +رd˚=6Ejۺ} 7\lڽ7޽ 8M>8" 3~ 9Ŏ'[9s  :ѤK>լ[ pk۾;ݼ{nVƒ̛;BEԫ[=ĉܻ{~Dn쿳{ ۿ} mޖ -`G!7 m  |xdn"`*D}VhnH5H6xHd+B8_@:(% idZև@JRh%O!S䘴 enNĈShgR6&jxoJhfqb_bx~Wegږ^cqV`TfhyY"9*m\iEHP`Ʒkw9 (.k\%N4lچE| nKn枋 m^׭E`@ދoo{pq'pØ-p+_Wo1\w rd},r&{r*E.T0LsMs:s> tBMtFtҩMtN? uR"V_EuZou^gO}vf6vn wrMwvߍwzw~ xNxx/x;PKfg [[PK9A"OEBPS/img/spa_report_sql_count.gif vGIF87add2̚dd4f4,*,4dfdTVT\Z\trt4644DBD4fd2$&$LNL̚<> A, ZIU%d=]ЇNgup۷p}sMُ՘ޫ\BeRmpKN$H9 MKVDyjD+oq3kj'Bj>\4<'0hX}=!rﱨ9 N?Tpi@e=-Oزd|ڿ=ӻ=8=m_;~`wc*m>$fIFX3Po ޅs(e b((1,0(4h8<@)Di$ #LdPF)e/ONiXRe\v^)`ilrfpƹ"ri'\oީ瞿矀gʠ&h.t.裧 zJJqZhjazj\R**Bgڨj*ێZ ,:B['Pfvކ K榋 [mz쾿:˯3m&,G+3l1' o;)_lrGʃpJɱ|̿,;S?3,E'=r)0UtS+]%uU_\ʅ`]U=k|t1Rǭmg5Q{ܶpn4 P913V tg -Ŗn,7AN kV.n :ﭻo'n ޤk_}o}_||/(@'X{Bݮˎ󵨒 yaҿ:w])(`Yz]-0. 'ARD ( 2Xllg?>a#\Ca+6@# { :1vBD&X.ZqX|], #(0:q#E `lddžy`NʣA>vF_ @(. !H*G#3d+Ym$1@)BQ`X6:R`e]F×t.K-n0XCswT2D4L2/t6im򯛑"Z=A0g 9DVDU QS$:cƻi~?oPu'ϢF3хY 7Jz̠gBA5t&<=ůvtl)WBhvu?zJQj>)'w uDKQV 4@+k@@@>Q-TOE R("RUF"):5zUUq% Q t|+. XZs\ ں3ct @niYa5L6P2cQP<@7ka6q,eW[SEqxTR\`*X&)(*OHW uyZ`t-pYwcEJ { W DosGq$ X&N']@ ̕'abּJZbR(XJ''fL8α1Q3b"A; P w.,X%ÉNrC5dŊIL_Տ-;1W-e 0Wn씜AF^9ϯҐ>> ~64O=i;RLyPIY:`O8s]c\LӇFA,Z^]qDuIyn *Ֆ< _k|A׹z]7z_~QOS<}!^ǽw{}7=KO9⟾vCyzjߜ;ǟqoE4QbC2&?S"0Xx ؀8 $CH$@($!<%#$'‚r-)P6x20>ȃZv;9Bh F G 0)(tRHE K @ȃWŦ9DYF 0s2ȒeQS"YcNBJÕE#]/Dd!fؖnpr)N4cxz|ٗ~;PK;m PK9AOEBPS/img/dbr_replay.gif]fGIF87aڴldldԴnlΌlĔldd̖nllĴndԴnĴdڬfԺ4fڴʤdf4Īd4ڴ4fʴʬ44ʤڬڬddf4fƬt4ftfԮ4Ĝ44tԼƬ2ddƬ̜f2d̜tԚ֜trrtԜtttttԜtttּtrrttrr꼼trrttrttrt֜꼜t֜Ժtr4|lrL<>dfDLV,μd܌t||\Ҽmd]f ܁& Jsiu)MXze7_DZJDMřy|e\HY 8 &=XҞgZiz s3̤]ZQpsfF# ;p&--Δӥh!XbliM3ZМ2lO;Nn(KZҘ dI%eP͝ӕ?uRSѪd5m T^dU5JR=\SbԷDqJPV4 'L.t'ZaZV i(WdC@gn] \@PK֮,$ ؾ#-5YI?qD I88[0ܨ;M7 @!3C![~j%opOvfwnL9_Fo^y@p+6%pr\^*}s͛s z28(̯]y`m/t\*0=/ ]VC/.5aVsn!\ع5氊O8( 1rK* PrBgɂ 6xY:Re&gc[?jBlmlgvrl7snيvy+Yb] ۳ըVvo8aLD 5Q`2ڞ\Y]U'V&5X/Z4!SljF7lfkxVlv{sY^'aܑ ]gcF[y{۠nҠ6m*[憉]:6oqM<-/hByͼsL4Y@w 43kg:<|7,I3m`fI X %<'aX(B| t=:E)>>u7yF0L%kX˾StXC֑Nӱ'Yi߰pO}v=@֒AWShVj3U6EX?5|4YwWa p %Rc:V#X6U$)d_jSW8IQPU' X%IzŧMtUHT:q;z|$i,m]zuyNVXt,P c%6f.cf _`_`VdץdGeh^hpuAFZe+ja0؊i|z^gV^8^96teY#f^9dvՌbUʯƮ݊vd(i֭`[ *PxOq祁j6؇Fy*G\<+juqD~vjpp;xif@KBPkj:[qj%~C~uG;iw8kp[DT+Voo\kdk:R5)Pa{ö}; o糵xyUDwQ=;b{{zצtLtnKqfJ}9}{Xu9'ykMtKORGu%D _WC}w``[{y^RWx_gwxɸ6k<8۴:{8kqUG{ZVXB?څw~[Ϋ~xx~^8`hW ˋKerW66ybHꇆjBzl}d|W;6żR]z:R' L#TR~:==}S <-]ї}2 =$/](cc!,G2=]]=-ea!x$e=C/}-Ɂ@;T>~s .3^~ ; $^(',n+0/4~l͉Y5Q"D& #';x̩c8I@xrdɂo (́tB $g*SȓL@Ρ/c87FdG+[D&9eWf*v9f"eƙ 9gwg&h-2܄ךN69ꇁjZN;l&lFNfm߆;nzn;o[x'xG>igte7yΟz/~Gj±kIEQWHiއ?~秿~?`>FL88؍j4E,R>`5AvЃaE8BЄtG0 7+S5q :-ba .8a8D"шL:`KS8jHC{r_chB^Dxkr$E+tq,;ٓJJ?2֩tANבּ"E#=Z1X 2 c%/Mb҄y`'7(!g[cp  JѲ ViqGOg@LgnxҀ#!Ń$PqBd8A]sS%rR !ekL΅}Q `4 p^arp2ebH6IVEэjtE;zQvEIA*n!%(A n[:ۙ-߼U7*a>j(ֳ3TPTT }6~L}5Ⱦ!@k5e"0ߴ-h YV'.vqE+|vhTSv#f, YkgE5yw}E?zҗ}+jxݺzg}ANT;*V~?|G~|7wEf^2sNy?~xGк~Y?$lĩ$D1dt@с @d"4TdAqA!$B#"D$t!T&tB`'$ԩ1+1PB(/%3Ծt3P2t &h7'*8C74C4Dө6C/ -1DXĈh=|#80 .A M,1B|0DK#@0 ' GD$/FE60dL,/K;<J,Â(E\LRp$B`Lel=dE/tJ/ .NѮ68D)ă8G7#x*:[\ca$E/ÂEI,zDBE+Bu$vlE/.nH.0 PTEM4s\Da4sH HsLGJLǂ^ CGV\DVCLIII4Gt*xĉ4T1EC<ʄǏ<C' IlGSI%cDQ:C<# H Lx>Q&[Q@CMWUԈK?ȄɎln^Ac+&CkCQVkS}]r4pEښA_J0-YjQEt]VD;X`5 U 3WhV06Mi%hKQϊHs1V58SSUs^ry:DNY:T$]!XK(BA0{%;VIWAW> Z^dőߵnm_]fIƑcA-(11PUc2NՐ < y _~]_+X|f &_Xea9`$-=FAheXՕCM |99^wc>~kq[Aya i`ZN^wueV]75l$f&TS5QY_*l㧶_='F FCjjfꓡ3VӹvkK뷖kˉkSqUԾ8f%\&$;%kWJ] X{|lȎUFvhAUel `%7UY mm{ؚ%ŦYb M)_bm^b \+k'F`jlW{ Ҧ m 3փ[fL֣ f;nmmxg%1nF𙥍.nKo\յ BYm聰謎b* 5#~hD[8Iq1rEbn4^VBY46cFL XrdɄppEQ%qgQ]*Y& -9w7a9C-4@ /U,wpnk\c&$o0p(Ꮰii^1_cItO`5Pw8BJ P7u9Bf`_^ &1_N2GE@iut.WYEv8vcOLgViI1/)&׈ %n)U=butWM)0hζ[kzgܝuRgR O)X tf7nN?_ayzfhNjj^cA}y&d#-+g^y;s4Wc[5Svsp92swl7x NtEolYmG2TQᢅz|w&Y"7#?oܙo/“|)Dϙ78k|z|/gU-yIh8yп>OiKJ]_hHmO]}#X?kXywF ۮm+.lVV~}߻~o+FiM*q&*osO ht5$q[!I¥ާ?CI&#"Ƈ `G  @OA$A)/N(ҤJ&)ԨRRj*Vi^㠚qH!I&v\q!/q:*ls^$(G @NX3n1dx,TG5G> R#s@ji ,T'^_Wסظ)#k?Sg#Gϡ~䛧DzRDYhgNsa1-3N*u/L;I}@othx w zF\UU`o8SbmVPZiPptSF1Sұؖ },rߋ8^yET vɘkX]IMd B]z Ma e陥!IKMdI*&ܛIz◁ :(_Yay̝Iae½M`{HJPqquн蕫dR 5U$fvHT&jB gԦ~*dO4d夼DhF\2,S4֘ e^Z$SI>*z)miUhP8E;/&HAfe[iBO(T&—MqR|*pu1yQj /0Uh!$Ѽ{f0z^3en oPrzM*U[ԴxcTg Z" jX$"-R$59#}0FQ?Ԟvzj) I3kՕ'j~]랏x\"dζ*;l9rΛ\/O0 (prHC񶢩fbaxzom/|󌓻L_'9~dq_p]z*hߖ!E.nR~@eq`㔖DB%iS,җ y!_rIiV<2Jj /{qhe"#&GR' 4G:=dϲ(pqf<:YHE~gk *1dџɪA] Kilѥ/Cf3D,6n'=žh-0LJOURw!DY6eS]r^^S),&2e+d&4hRּ&6cj&8)Ni!bNu |'<n"}0rԗӒy-; Y] we^f4OH: щ!j'F3jNzS3Lb >򒵀_X )LBż$&O()m꒩TԝGFeO .3C! KZ*^&5:WT^C3Re5e3d"PD:ZWe=> (19;**1YP47nqSƱ ;e[ad4O:eh'EƠAR_.5,6c"N$"({#kRaW.-gsbfKL=S5 E69n( C:JgdP^\;:H5w\ DؼNJ_;96>EJE/( oturDCe jfsh8"YW۲ŊM9Nr:gTZnb/NӚzC朷Qa hdblRBʐ8 L]붣oXe%b^ǯ?/k 'Z"񕯗6!)!迎CLpd-;E]qJ$q s,9xC$:DyJ(x~6'Z\]\&҇>K}nM'X^ e䉌<PCƺp)J`/+B© IlE'@X*#->HfN, Mj=\2:#mp;\Mod+IDE_zLӭH '=ǻbڠz{U}5*5GYuZm'ZAYmҀW:`/Km:(ac`]62;b<+;-3%B/mc.?O"*3C joU75*7r^q_j#ax+=P'P%R]\$w2+nq,N5/ =ӓuH{&n/^ߧ .(~9ŪsO[Eē~HGbR7ND_cA܌+R89XS=;F=0~`b,6K?Cs4֑1a64 ^_gbzfPq}zd:cӞ:TݓTل׌c]PpJ PTS\[zPEYEQD!HEieJ]X!pPЉJ\(-=Ǝϫ[ Ȓp _Up2`: Za͚Z`W\ډƠQm0 PU)YE#UF%%KaNh=!ڠIUN"&ReeybfAh ()^1E0 ) $",b<9,+"..U"/"0c.01#,Iab̆%HGЛZU!6n#fSZv_4&H Q 7\"c#Qp E]U`;B2\T_]A>:cv$8oUfԕE>QD(ׅiaN\`_E>@=H@`Zؤ? `"\B褖9+v TZYYeHdcKF Y}TK])d9xuWᔭxE%FT*ry$L%%U]. Q(['9Z 0֙ڄǀd,J$amY&T!4%V Nf*: y\ka&/ǡ[T8Ux^qW՜T&,V]T)dGl wmgs㻽`vqMݛAܨnYg܋UffKY_l2lu@p ;Gp(}VvY紛^NH裤~HP $"H|@&(dMw ѝYY[a- 6h2S ȄbQw ]IzbY($ҡeeIpHJ B%ATG8Lrihz㬁`O1`jȩˇaW"i*.aD遐鐚TKGFJ`rѰ!~Kd[iRĂ[[I$I`T) WagلHS D .+6+99+FbN^kbV+n+"v+.~"z%=?՚RbgҌV5Uf\չ,2k\xIK՘|T}R\% #ojIQP &>㿢 4*'RU#XTE+[>fAb!Bj̖\69J ]F2H~9lZ}d^m EzJ U sTXŐvdw-N*QUQFD>^׳v vUNdS*(T&jWJ-M B6k%ҜQG\K]`_z iñ]*ʜ-Wad^Qr%I'= %kvGk`=m.CLԝ愆/ߴX\Ҧ^ja^ o Zeܫ%}Ys̴eP[-\hoޥQ zp$Am+`uJ#"$|.0^\ma~"gY皒^Q 0NpNEքa0[7rSh_( \@˜d>/։hXvk (B ۩CئHI(.l\*iF_֘%s*Xe@Ar.U{ !G / (qhl2Vam  3 1*4j{*Rj/ǐ)m%A}鮳q` ݓd)1:> PV/BPZFv>;$s*@gFE#n4H-HIkTGJ*4K4LoI4Mt2tP==53GXGڡ˶4㤮_M75F}9mlBh!DΌ֚N+rd)>=M6G߳Vkvƽ2OWp1BuFdU{(ĢYjiiώGѪD\Kl\#?JYZm0EN!E5FvNiH@ S2keC$F,q3 FJc(n)7Qa<u#/?(Ay)xBV]3N uʚ(dPGK =D@HcSODG͢8vl/@#'I&TaC!F8bEq1?z !NoJZTF<4yH3WN? zdSР:V|Ԩ0- `Sȝ ,Uύv-xQM "ͩւvEAy gce.8#=370͔ ?ZYόӵɖRh"(=ػ{?8uHMb%;W0U/ J~d1!Bц6 uB, HN,'\. 1KS^hhr3ꠧڄM8;-ps3D5p}Lz# 9-g:|k pH%E[ W]vpuXGuK#o0#໤;'w}pmpXטSvoTWZkz|jLh;=\L|Mr3wa/m=I!]8C$^əfZÑUe?Y[!.1I4Ӝr9:Ht=::R$vBZj4ugىh${C~H,jMWz(bVsј@ikIgzJf+?DyŃt-e*iG ֣26=;Ҹ/U%WcVA9w0v,h73s RU 嫀S$K$1.2r+nDC hE9ã (I"ohv9BlYNMs˄uHp-YX9ӥ9S i|r8%v96q|ds=2%+MnLT-U5iWT ukaƶ1mq[l쑺oi;[5z㮯0Is7@roEp]nw]5yы[񦗽u{_Ǭ7<+R4$VTRn/}ELMĶi0d1J́f Lo>.)׿-F'J,38dr<c :4n"a5X:ccH)Dn"YN9SN7p3Xma46Ѽ"KTьj4AQe@keX$7*ig=:0̢pVih:$QV : U "[i%m=ɔ7r/P+z2nr'u7-s#(F%N͕LVP挢ѬYϝU4Kݼם}7V~7i x? ~m4!+^gLyog=zя#Qz^w#zϞWm{a|ş|w+|Ou~}z__>}'{x 0 Prp$!10)%b-05!0p=;ECpMKURp]pZ! (B b } *" b _0 +b @ "o V :x qP P 𶘰!@ b@  b "0:x0 !P 1Ґ!ƀ ` 0!   n0 + b B  o0mq}q!ݰ p!\ I pAQ= @op 1!qQ ` r q}Q!1 @ F[` s0Y2`yp)R!\ױ1=rq o0 T 1$p "w! 1 n 1Q#P !#Cҏ}0  "#qU% "& r'r''!%ɲ (q#(sr)`1!2 !m2r sr%*/00Dz-""&3.$c q! %cq Ͳ5q ksS ̀ '3S=@$2 R s3"o 1Qm2y jR,5oS6G Q:R8q89 @*+s?9l> 9? tL@ԽtAS$tB)B-B14C5tC9C=CA4DEtDIDMDQ4EUtEYE]Ea4FetFiTDQAqT4Gy4vG4~4HH4IގI4JJ4KKtJtLnKLLtMsKMMaMtNMKNNNtOAOTHOUtP PUKuQKW4}U"()*32 ,Q9"NR'R5R3S7/˰SS"N5"0  USY5.3;UQ(3qB-QSSmuRWRXB5 *C0V4W!U6T9Q"2m0UAYcX4 \uLY U1+2! 2 ,5SW `QZ:1{- 3 2+P`{^^ӑ:"[X URY R!c"QdIbT[, 5cٳrmp RMu-)WV/ZUchVffk'S'_2;` RdvYG5s&6+5VYkJyS<"]y1KfdS{ ]3oۖK6+5Ws72 MX=)Qk8'pgQ#A'v}LtVtt#"VvUI uB5OwrpwvCw}MY jtxxx7ywyyy7z9Fz4x7{)Gw{5{W|||ͷE7}Gt}}zU{|ݷy~FwCB8 E"跀{XXD-4 %1+"1x-x?EXBXKXOxX)bBGnP CGdDooXY|_8g8ySDW`EyxGK_(yYcQtu~S@P:ԋxB ؆FXBk8X88`_؅UtxyѸDYx"؍CCS$4a؍}Yy59x_ǸK#yDY dYw1;>=T+eyAxU?4{~YD8z؋KIn踔d9MyCY7g7ԘGt%;ٛm9=Y79E)T1W4PٜETMԗaymYY:Cڅ{#]BZy 1y@̸؟YBݹE/C_D9"8z,\5ِoЌo8٧繞IZڕyx9cy:Q_b4ykyBךvZZc@ [::خZ3c 9[ D-::c:%:ZFM{?4kIN~Z]zB9zk+48]oP9۳:9`[C4!xYaXْWxU /|Y۽řeQCYDZڍ{Y[ј8yZqEܰ;E 'ţ<%Oܡ/tW\\W0I\ۛ![)ɸă\;4iY z ڞ z%T/<ʗ˻[ܽ3ܓI\''*t);eg Zٟk㼠yW =8'|O{ѺY/xM]z{#[<[A<ҭZEi]wZoǛυD㸕O1XƧ\ԅK9U<ԓ[WBZZߩPݙ鼵u9܍^U}︯ޭ-}qKCUQZՕ;OY]=:k>o]+^ ~DSU^hYB]=5DØ[HO [k]/䡾Ͻ׉<~ڝ훞D!.{aڿ^oQ}~ޛ/>ؚB;D1%<)_Kg<)B? ^탞>\ٕI|sY23ߕ;_̯ݯs\waι1w΍<ݞ ~֡=[Y۟EX|_" #HP*ΈQa +Z8ƍ;j,xPà 6D1Y$h(Yf WNi.9 $HTÈ*ZL(e $WY_DcQ*e4lS9=xЛrwU6ѹnqε۱+.'[0`/цdHSoڔ_Befy+psϊ5ݼ{2phONZ\2!(VIiEr{]qp~:O+%׀rĊO.,(1?4+tNstLGMT_Z=1X_ud'}vfͶZ6\P㭷]4qx‡#Ս'AF)ʺ=^ 7{,P1c^1ꑯ5 43K>"؝{n1 ߵ: +=y_^|ބ wtO:.n>w_|&; Pa{vƮvJ ΁/o2hm# @A ZVt6O2ˡyUnz?wL 74ax?+kz eX?@,\ـ"M1c#o@Kz( ލng@jO~ dfDLV,лgt||\)v&b#Xqǒ!+Ɯ/Ȇ+Đ_]=M޸_2lX.k)5Ȗ螬:o_;6[>P|۵]NW˽sg˘uKn88NLcУL?tE_LYbnBXh2Uo'!=m6u҆#vؒ`a/2h8#Nl-gr-ֆsz$v-EOuT)]F𤋩5N/斓$xVlyt'U_I9[q&6wԉhrr掔Vj饘R֜ m"nC^1VB"gdcz٢9XjKǁ5"\W*U8 b{Wʕn1poiUnbВvZ˭2@kbfs'R6F,WҦ }1٪B~I@$fDh%Zױa (uZǍ9\0L,'uslqD&^V_ͩLD$Iu Mخn-(j5j1VA.-hޥh7.wBO2n?unMb-afڿvVXТeN怩 پeLPeK ^#=AiL0͍|1ܻF;pӋi'"O*] ؂p觯Rm6nmp䁭xBi~^D 2\{hw O2u#@.-pPKb:wJWXg&٠򐇳%`ً ?'EnO!v`=Y-[fXBdlg)d9Iϝ0RB>GAٌ͕5*?AU]_TCma,(o}䤄"1iT. zA/4rHMa2ȷ]gc 5 M̉y;60grUΰ7aI n(чS0[@8αw@L"HN&;PL*[Xβe$Ŷ1L2CefNf2p+xγ>1y3MB*>X F;ѐ!-DЇδ7iG 3|b`WjN! %-0ո5YbfԞTM0`{ؿK0OEg3di\8IU[F%4. X]Pa%htAB-Y/>\i]L!v,7[5`[+?̀EZV$RK#J7c ɶd\ؑ3 X8SAÐ&;F;7w ri+ީƷЇkD1ѕ,&O'VIpo']1KnBHmǵeZ[&=w\v&V=r&0@~SKm{3Ll7 ?'\SA|>~<|M)4,PgIRl oPO"q".tur1/&!&u~q]S(|@ⁱwǡv+3 @KqWr9ۇ.es~w~B~EieLXp3y`.Q҃rq"yqE.zKC_GmQ#q6!E.2}|v{R/BP5`}0ugB<r1|s&~8xAx~i~Mu)1pVu]lņCT(<p(vWWHo|43|[~]2|,0Hr"|7(lw4QhhGH6Wf؎Ku^xtS8%^\p{؃^y7,lY#{7NJ;z[(K\'4rQ5nP5xv$8b@sx駒hc@4xQpuH'L-'=9p(xvRȊG_"w(Bu48?qqgq^ (DB2r,xD#w}.r =_~wxHViX.UR9%yڗ2BqVH)dž5TGH]!PS3 mqx(B!Pz;tqb}Gx}QɈ+o%):W&]3yَ(8tXp &(i)iW֜޹8%u1a3Qu fWٞS yksmr&ٟ::UpiAW j S:ZzZTh ڠ b$Z&*y*,z)ڢ0igVyơ2:ʠ枕;Bz&`j9JjFjL:Tk&oY^6s8G|h>ץ`j gz7xhtZb}nJxIH#j(F)+h}*`h-hȎz`蘎D'9, i19Dw)iA-)ڪz3O Y*1)zz)ɞ Zj@:ںʭ@6z蚮gڮOڣ:z㺭EJkH ZaPVa7KsUqJy6ƥ a:RK`l.p=!{4;`!Zř![gZzfI$13Eq6;r`Ѧ=ks ~ǵٗhrJjְ*mKL˴T+VK GPTJp8/ 5𐱃[{ +{+lx娧p*x"K}jڊFk˴k/sL_R˶R˸k:7۰{ { [U>/9@{ʽehʺv-[K+ kR &+:;5;-q 5}+Kk3HFؒܩ&P;aJ N;+ |7k:+<2*[[=|.*('b- +%,%>{-pl8<om :ĘȽ  sL~M|Ob @\Q,kű k65 .,lkpěRU+à,pp.׉]KzZahʘrE˽ : 5Ƀ!-0\ڑ۸+7+˚+yFrhȩL|Êk칍Vj iΚo;La  *}"-!=&%}*m).-2]<6=1}:M5>9BͪA=FE}JFNPqVM'lU}b-F]=%Mc9j`֙ P42$pӁ׆21У.ll]؄\. h=!aׂ!?Dق3c'g؞-gh3 6\wm(n/ %t*]ۅ א5uQ]W9X*GxBiνfؑ u}#M;ƍ?|Il]eƺo=ݽ-K8]dݎ=mQ9- /GQrm}|T3mqn7 mYߍG]J&b y.b4/~&˥Є>^bIB.'eF~HJLNPR>T^XfC,Z^b^Ff懆9"8;Qc̾N(| w;' 6臢U~"Bj<\@ ȋ/!tnv MRk:p{޼Kn9/!l0c>D~²~v^6,[78":4!:qL!*+<ī  7q,<̲ͻE@eܰ C˚nȕ{*jK5>u.G"PAڼk_/ _?_Yb?/l0/ɂHpmU#~#rqp`:,ļ–̿ko~5|}'ܷ4\ʀ>=iS<,.[+iq?-ċ<KՎ츏ʌ//ӜƯ#]o#__(d=ﲣ [`uy>;?U+{7`΅ʫF`?nU(#(U."(0H(4&\1F:^ȑY8ʗ5męSN=}t% k`%LI 0QT*P ^jцI.iZ0["G<(1\#tHZօ~8ad{o8qr;?s\ R1aS[6ϤmmH+$H+M%(1ً|;Ret@%!u&mR񚤸0~Mvaf#OR7Z><o5"숑F ; s1DGSn*ۭŢN:>p8/$%#㊼DOH&#į%DAb AL,İ0*IӦ3ϞK.Mj8 ;b7.k-DjMr$m8E3+Ҥ64)|QM-8O>,7jO /Tt5pհQ[*taed3ZiĜP2Rk5}(G!mmRK)."IN5ALI'7>"WY_&` ^hW%6}Y~y.;; )1TBԕQ9YTr5k]9oJ\ȸblLJz4]!?CBa:dPlNyen/-[([:t w4"5ĕU[难z~jG󳭻 w l?a{C]Vo*bYQND1M}։{ɋA 2 f[EY8AtS[q) \§٢2Ej6ZB|G65Lo L ZCG>ۑz e[̪'Igo%28NϣmI7.Gűľ"Y@ܑ۰f Dx#L;R?2FV' ,LZhI$}nq&Be iHMz8s̕Q+tKHS -J9>Ii ~Z /]:a5XED ',1*JTU"kv9*]UY$JmKv={=hyX\|CX7Ʉp&F H9T$sR.2H>|[jտ5:Wh_gw<~:>oYwi9#abӞ4'@tsWT}R߽y^7%OnkSk=vc#;#૊Bi(iº#C; "7)<6@& // b1KyȰ4C= t9Ӌ.;8P< лٶ64ax u ٫Arf$#)+> 7sP8C25J%VCKz-/tT+C, ׹h['D k˴1KJ6[ $,.<@D+6x(u˴ ,P_*Νs]pX?MdOO,7΃OH:Pu0>d"[n֋pnR ;xPПP MgfñfshM`ݦ846@N„䷤ĺ -ƲKQtPoΒ+6*QYTeuTeSΉد .қ]8y1= mF9"PZk&ѐ9]ݲFifrg ]g1[T 1ҳ6y!Wxre*V5X=$Y&dq5^6&bmcEִFh^y ?m EaǹY\.lJs |}Y~ Wň쁅hL:Uxd14{ѭMU]mgWn]mmim¼ٞ 'M{QMi@4%+E^n~0Ʃvp}prڗ>jhd[%]PXHc~kir [霾Zq+}C<}hNl1!Vp͝Z-\!:\2&g=Qe-p;+BvHc%l G]qOE7c qT꽏JMV=:WtZ2%ygAJ6$q MYZ2 P`y6/rvkhLo7@ EҚ|ږ3$19 .bK ;9:0)*YdN y2`*xS|4%ʧ"t#fEO(uBtKZx>$e/JKC3/*)^m"Er SZx#~E exfG)rhOK"eїTNMQaP c g٣Hdp8\RÞUJDSĪ%˝skZO`'-͹A{Z+(rGNKykLOup%^BWؔ_mv5ejc׃7vo*ΕYJRh(H:҈.hSG7l" f?͇;M+eĭĢ20;ԉelt+=].mfDPm. ˢ3o5:m%1k6Ԛ״:'61*ᙄMh8 aSbE4)-4h8z]0%{䋞=ʂZ o25DYd60&kN{"n<#}o]3qG܁=}?^"i|;[/D)>ASsX>/X}??/U/>??D F.`% > F VMf&n~^ Ơ ֠   !!&." DN!VaA甁n!v~!!!!!ơ!֡!:aI!r "!!""&"."#6#>"$F!fa$^"&f&n"'v'~"("NHT" "**"++",!))L a 14 bCa.C0F L1/!.b22 .>c4b&576~#88,D-f0l@8@`@F#P];?FEX?V=BA-0C31N2f:8A:*R 6x#z$.rdAH!Ib2(H@7x7aK8$Nd(#j;N0c1@=c$D$H6<:zT DB:H,3`d5J/FD~6d*zdYn[zGڀ4dtq91z&sZr.:l&w'1g}ҤKejc5@Kb%(nC& &V!aza^=](&fc;c8,ee8%z&<d@UfgF&ie7TDA7j&\ PChC֪jfhGlEH;B@=>;£Q#b*e^e?֣b%>R%?jf?#ij6+BVUv(G RjNy:g#*Jm)%*^.c8I~$4k@@g,nViJ*"l&*V#421JWN#l( Ckʤ %4(L^,(-*GE@>JbZ##d:>..i,fI6$zo'0DRgp]+^!_LFaM&F,/Ec5mhC4b:'^yj.j* p0km2*FA놰2%HV;jkZ&o"_!O.l#opLz)*j ,2, qFqThej/b/BeB-b#Aq#-FAf~FԯgҦN(&Xzs>솮6'*I~W&wrtNC'\*gwn:Wr=p34 3@, k.s3?W#uKjnc̪2(FGa^GӲIND#Sg#3ղ(tsAURe,R.rmr9#ƥ/:5B/J_5V-cK5O솵X5YY5ZZu[5\ǵ\eg]5(nEtu|u`65z6T+2,[5^7c?^[_ _?e_6fgvFvEdTfh6i"gS6!`ik6lJ?G`G1!nn6oo6pp7qi r'ur7sKm?tOw17u_7vOug7wwlwx xy7z7{z7|D|׷}{G+7788'/xGO8W_8go8w88OD~G+ފ;8Dxl8 ӷ0-,B, 9,Bซ#8o!KDS0+k9-By+79OLy+–sy8yɘ[-0@"?A l-d9yɝۯ;Mꡢ::yŊNV J t\y&:PEX}0y{V{/4.E(F2t#1Fo܂(Qe~0;s݃hW?p^|խwQUP:*z ^g/y`_ɼQ-!42_Vq/A,XrHpA3:޻V2|6Nfau'8󝱊MaL8D6u\+ 81}dKnY_aw`&_xYoewmv˗á ~p;o״<-u,x@g&ˋKb8X7”rsl_!tj'cz^p=]CsŇFm=ӭ55oU/u_OǡΎnvk>¶3sll !l󵱝mxn-sI4d7zn/-f-|p箷n$O-ELǻ ͝gt3۵wjW{>':x?.X[-w9]oV Onk+hݪ P<~#8Ap~o7!oґN[7^-keiwTͱ)GYլej~p»N :L ׼oϓ]_?EzZ^ϳpr4=?os|y߁^=nՄV_nV?F/p !,XZMU(oyLqp4L rl(d.uP|/ &ks묖в:0 Ps 0spP I   7+  А ;ppӨHHш5K qB>ʐB"FQq"?' HQ m1)G+.SEҢoFOH%@ 4UUuUYU]UaHtViVmVq5L5CAME0@N F2X7P, aXOP"0t +ٶ!c.R2 &?Z]${rH3Vu___s5`v` VQa?*0U5b%vb)b b16c vWaqs"cab+dQ6eUvJ5e]e`E/ufddWg}g)fvhacg u6|xhiVUvjvc6kEjiik6ljɶlgh3 kvm@k6niͶnLeV`f1ku2{vn7q-nqUmukQ GikpmpsAW_wt6oirQS- koӪp)sCvm7KI7wr !>P^R`4LYcY,o$, &&oL [-Ȩyo2[CH2$m] v%e4L2hv~TwwhM7!޲")s )Nnf.R#rNwp²u/+mQO-8ʊ,Ӓ׮2&/[w8I)s>3"kxRh#~y4ey*BSsCBj421t@o!N3ӊ%2%& JN3Y42w!o [85pfwksl?Ƈxe5bDMO=4;Nu?*+:P5ϐ3Ko><.=S丳gcXpxmy`رrG}/36[TC'4poNyyO8,ג8 V4FOOYO5^i[eXv3ٹ~oq5;PmYR9 xUBW6SْɮO ORtOrڤ-qD렋9R#\yIZ~9kY`3WJ5xUx3yU:wY?5"X%:h𑹷wl╨QUJbنAƜYU:Mَmݺ"ٍsn8x#TYͺ{6Lsٰ?};#~=O6%[WVV9=i';t 1YxYgEe;4{lqV_[9|;{;{;L{cj[ln;{Uw;9Ɋ Q.;6m4'!˻9[pƼT%{۹[sEc]I;ܛ{#ru|f \\,\1>a]]č/}>)}1͏Qig874/K!>}:?I;%41_"JJ*J>? >QRT'Kܱ.?e?!6J:_JBJrGK?v *g] I5൜o_eDUIA]_)޻:J}yW8B01ĉ+Z1ƍ;z2ȑ$KP•,[| 3̔3kڼ!Ν<] ϠDm-4ѤLY6\ ԩT.J`BZz5ժؕX5xlڂ\[6|h2ܹtڽ7Fl6/ >8ŌB `Ynelf)^U̖_Ջ:լ[lʲk.}6nۻyΧd#WeIsϜ=H6zXcOխCܻ{^5l.>'}l\d+ov~/s9oiCDwCD!Dr1 GAn!Hj I!xmWy"1Sŗte.Vgy5eQhE0&TQ:,)aa9fdbh$HJrIgvމgzg~ hfV\|u=J=g: Vt X6ęeD! zV*krdl.ˬ,CB{q¾tmb E6@Ǖ}L&ܱ$a.r`DjW 1/fx@QPJT` baDqPqo%_yq&ܛ<\/D0*kENStJ/-(NG Ryj ƱQڀNe mV9|1;(7 瀰;h7fى/ۖ+|*i;ݞka LF3 {n2wzĵbݱpKppދdA?"7|EAF&h="݁cۋjܠcjwHs_D現c?=Mu#& \Qq1T/#{u q+,E=3]fD(9\Uͅ(R)5Ȯ*q0`)A Lk[:JqT\5}}4"2kkd!iH[ zdbDŔTqd2 DMj eSX8"gqXE0DJP,˦&-閡Ûঃmft&ƍj<?g73A2sFtU-`Frm[hI`2Q9ϩ+B к* x';2MM,Uh6DL*\_ YF! n2RBȖذ9R`2HbP>$(DT]Tue9щӜ.͔Cjhbh9ŒĂSLEUE+|МSnuSO[h"yldصBˮ~ &DΊvVe >oR5lvݓWEU+elQ?XE@׉[y qܑvQjZ bKHY:cV8waM5'%t*]lgJj+Ԣf*HI'Z+5f woix4{lu?Fڮuc vc+5RR^ENpΚV.rN[( g0ख)|_Na5Pʾ5޸#& ~,Y8־F9AgnEOJd|R=f6%we]r,/I$Ia2)O>9'0`?)Q KkTW3ZcYPȡa٫HP*|H_Tdu~tl`LZŴct4F7h"Η|ucNޡv$6|nBFgKűՙ)6@0}D.Mˍi!u} mg!M*7ݭ/ sjF ͔./2_=ˠ|~]+ǟwUנrK&ԋr1o;qݺV1!;a UV22[!g8jB^jDq˙;c_>uD!r޵O[Κ];.hɳ};_1j7tŒT||<#9 1v -VkiOn޼*<.g7qɯ'&/;˃ Bo1OMtC$PcKMg?d\G4ٷ}H(_Nt ȁ!(#H%h'$Xwj#l#cR,$u`*"S.4/)R!Z3059hj9=2SFH"t^bm7(Q;4jm%Bx~cHAzVB"A+&aԅs(;THq_rfaշc}8otyȈ{hf.&WuÒ8v@x=Hx(ȉ`؊h(zX8#7hX(֋LjkI'Ihj WnAnbzȋ5}fcN8騎8FN娏ȏ8k#vYI|H#_d,G26Wm4l1x=563 4/5q:0p i~R7CC9 86fIKWo.XiIs^=ܓ?t{{c?\8{倥#vPG=c| <~F.|HMS>4?yuktm){jCtWI|tJ}x$cϷC{ewC P*tYC DI)C@@L6kw7}UXCxRy"0Tyǝ;ԠeJ)89z婚RiM3\r7  hP1KHi.tÞԙ>$iw vh r|j$i]_ ?dI9 xO~gtwqpzAȔM.) 8Mg4uCY<@pa.g ""$&:(zy$#LDH $i?Bo ul}s6`FDȴfbw+`[ .l lclFmzm8mr+ rkKųk[jhKrmqWqwodjG;WwKKcz֐}{'(&fyuךB|̓Muq[54;ˏ{y*yz)P B7DkmC~ kkч|ǪI{It|i [a{ ~6e{{uZK C7T?ꤴ.+RT8R83',)=Î:,k?lGzADR0uP6mmRIG<#8")SA11)kKB=@ja66ýK-Lq"Yh='q3.רqsy$rM 2 h$ͺcKL ޒYj)Mӭ {7vuYx;pucysKH0Pp*Ka׀>?Z+.ؕ;>nYlPt [ t90N}C4yWyC xFCa~ YB67F16 tY>ņFD~o*W۴w7HCʼ 8nL hL}: g?l /f7:tںݦF$Xyv| >Zd9v1ؚ*^.G J۩1Rz RnD12LzȺQjk;/9xˮ$vw^NqjN Vmi^ ;UooJGPJ$o+2PDqG 1P+))O*>i^ 5HL N*;,Da`_ PHlE !omvt\s@`7 g?MU?W2Z?@O]Pp"?oߏl;`O6?A &?+DE J@ ?<_$ B._ ߿ZK2EDx`:@t0@ń$G\D2E=0Ie+_.2hT@OA%ZB "U 8bӎּWaŎ%[iծ "$Zq۾ wn]lۗ],a{Fq^ K l('Cuxꍄ (вםL33Q한O†Ȕp']$Փ+YFhQͻWGW eƟSS~Ho D8Sf޽QbkF[r龩{pR,-kЄS+B %>UD\!N8 Laj#6@ EO\McKC7LuUML*9Ҝ :j֣5Tf*˒=vY;eXK͵դR(ggī-9# Z-B]ݧW^";c~ uM4ar !54z!dD(.8ح|\P>a!`~8 M`LOQ]w))tϽ?FHNtD3y\Rk?iM9UUgU_Um{%c{*鶋-oSNpon\~[#q;oOHUE7cG%} WoPݽL7|]8YWˆWoi8;&ܑ&zeaۅ' +|-ggݑa~o}CjWShJ) i4lu6h$,xɍW <)\JBp%-T !9P,UȆUԣC$&(p/Ac5ODYZ쇮 IC쫋/L-Y"xƷq_kI#aHv52-c#Lr,>qMIKjяp,i+JHJš(XەUTeˁT I% FJt˥d "hUcz<#8Tb5)Ē4eBiD1YS:d<2A:䖃g +хbAY4kgi0LBCg3=`2b%#") : d~@J*h@҃RM2gM)J$vͦ;iO}SsThcw*(\6E\O j&TU{)jXSjҬjv Qjs ZH³Ck&=>Hh]SϪ3@œ@UbM9ԒelckSNxΛ^8Y˺}d|ڹ> "~ϳ ^EݵCI궷T!/= [o|pG׳.]ƍcΙFJpv]Lcx'VtkIoI׻._nI/poQu6{i*S |_&0|3wnova lEu{bX+fbXƆ m(X;q}XXC&r`j\d$x?frd()Ire|d+g9.9re0yZ&s|s96QV06jkH+ΠQ?3.i ݔCcW[)a{،=R)pJKpcFs=iPoy}bi9SưzFukΰ4gMeښ2cyW9(NX6چn,ClhGjFbl+eSp1\"q+8&{x've{(݇c6a1?3 DCa1!Me"#Y!AQf~e| )C\Cr=&1}R,d̒9XKp81NVqyDά~@~cJCXcyI ml[|'?r9UuRK t`j,-X 8~;錜LpdKb\Eqt#^"5{&^Gw^{[dm69sƷNyrxIk?rC"u||c.H/*$~{dwe5^v[B洨xfأ<19.¸?! x"> |Q"CK1 ' 3@k]TqӹWj !rH[4By9ShB{Bf9lL$ĩ#>,ll2B{˗yɒ7!.͊9.\<<왗Z>߲RAAY@8|ACt1 "GDZ/8/r 63CΩB%#¹ \&`%ġdQqd\F:# !pBb,6a*p t:h4ܴ5#,J#u£ !!$'ya.BER>RGRGtDџ208BG8jGЫJڤ+BNʣ zEαElBpL] 2?#B8%^ 5!e]ɜ54II]n^E 6iл6]˵rG,(G){}" |R@ Rrۚ("r IrTjAȓJj(D:HK5'L- Im"B9[%a Ş&fR&RMi@tʟBZ"x3,:aZ<h:ٌJDd*Ɣ#D %.8|~엇a.lм0EzQ.t:Q5 3TW+R%]Rs̋B0iA@<-6ԧ(,[/Z*?O0(0tA8Rń "e/.A=TDM"gSH HHMTLTMuE=K$sJ C0QKTU]UV N%;Ǽ1Q=U[lU]U^WU` SM^-Vc=VpUa]Vf5bEVhVi fVkgVmVn ZT"1Os3nmWwop:΂q9|@}WWZEk:}2vX}XUʠY09R/A 3 9ڿLS%YzaA QYXY3[B-Y;ӁU!kXMZ]Ӌ9-bOa?)DaKSDaGŬUWFQ?qZR9İ۽ë=8.σۣץ \T%#z:jBzeH|N,A\zmHѴj#Hrǵ\x{dlDۺE]U\ڭ]/֑N( 0ęl\*"}Q6=OM<^ˬӂ#ʰ$+i\_]|ݡj'RQMG|ߵE^L_}ZtuezNS-_`kZ2.=Q,=B -B u'߻ E2a ([,P@O@Y-P`".f3 [0,X ӷS%+bM][:Y 2b@*M R)Yb-5ZЃӹ谉";!6bAd*XCfE IX_BdI6Cd ԝ-#%@dPehQVK.eE YMtZOdQeYR6e[ٓڛe^Ʃe\faOec>;fe^fe`if5 ` @fm``ffo.b6 hfrkmNon g8ùfPg{_g}g~gghh.h>hNh^hnh~hgq> ȀЉsghhiFq&ikf6玞fȀfÙitgi_&2菸f`jiiFvjgr.jjje&sj袆jg.iXhVꊾ6j1j 밶Pj&j5lɦ拮r&l5lAlhl7 illɞlNm؎imW~پN6n7hlkΜkvim6flnhmsN땞*nnvj6І^no] oilNnhoFoFٞ鴶nogo Dpphpoi&p/qV& ?qqVMqqjqqqq r!r"/r#?qDq%or'e&r)Hr@r,r-r.7/q0s2O2Hs5_s6os7sS-8s9s:s;s *th2&"E RG2}u)ԤTJZӨY~jYZV=)٭]݊m 7)R)6k%߾~,x0†#Nx1ƎC 3xQ%I(;D+]8XG/WS~mJ޼i]\=CʹS5֣c.}:kn۲Xҽܱܻ>yh$`4k`LXNEX"-6K2N&_@d f-n͑!'0S! !8\&wo'\R0i4S1ddmLpt M18|#,ym2(A:N%3 'eĝ]e湢g)D"JP;">;UГMB[RX01 ()QI%$(`$/8\IM3O)]*SiR$4 թaC럵tK6J$G2vuͣĪY'Jr+  ⵜT5L%yī4^SO 67T `]v*jbjRϮ+g;YX;}-i1Y! {A~NIT2qIl8]G=h{?D_ CMȧo;ُ>'8qZ?0Y&ӟ?I?Rߟ 6= VV ] v} Ҟ  `޽aq5KF?}V%d`TaP7I!ZMdaDn `5*a`DҘa->!a @b ^. D!b !!9!&a AP@(l! ()a)b,"9#~ >`b%VE0ڤRmUUH ؅Cb3&M0#I22ZcҠ]%=Ҥ*#aTO2%ՌpϔZxbR* Qjp[< FOZn8\G >A4p-*U%nW .LK#N$ZQ-$DCrQՋPTUVKqJGWz `Z TfƉ̚H%ӝ]cK%\Ƥ\:N[ʢZeeUuN JQv%fNZQ5DIfYƉJHBo~_bHri\Oo%cr-L^vwz>ffp&լ \zA]e>n&UΠ{2y᷼cb}gefZe(J|QFa"&"w^"*↊x_y٥RC0U^?⌟$V>EOۙ !E aukZؘcmK&if h H̄N),^iz b$bMat f2ia1FBҎ) ~h.ќЋ8!vZћ.Ο e1X1_jEY*&u*ߦا*BꃕF*ժM~Wkװx뱲M*+/5=+Zش:`ӵ"\jH+.pjGokֺkRVkjkŽkl,5D6a H~"cQʏ@<]^,j,]tlE~,e la lF(L(.!5!Rl 2_-]ɞl,&H8)Tj"Y:%[ |l\؎mٖ -ٚ۲6z+Biڝ`")@ dC$V|l07Dف⣱ݢ5Z6ed7^n"$4&,c Q;]&m^ʂ5ʀ6DA U ĒBiHG~VdDZ$HZFvU~gD.Jљ~n._/e=-8[jfff*,Y2'M jo`H%Yqbei|مTYY^Zo/jڮoݲTY\hR!H -*p4?f&R~5}f\gHhqөٺ-욯mB1/ƛ 'g gIsonb\tBmZ&18z6 ϱbsBAtUH.-Or&r"׮qW\K*,gދ_U2(q }hr*}zoU:ϙ^p*-vr s#;r.0qtݺ.*Z3'MmΨא(2!dLq㡽&.4C,ڦ-=Q̳3>s1CK taܰ;;=k tJ+$.E,lz괪D3AߕBmtc,(`H IC\Ek^J4MOu4OMߴTMe4QQK%5]-5S{S?uKE\M5UU_Be\m5WIoWXX7X%y5ZZ3[uumRu][50uJ_`v' 6Jaw] Wb;bTc;A6uHd^,.ilj~B J~E!Ƃ)Mv~6Ăx9oj+ Yl|M(Z%ihMhhu[nPo+HE@o44!)w7s(c-N7%'M{ogvkw q2m7&[l +c;Q.2xp0n 7V.#6m$k&[f)䈻f~+Xhw y$$ S21A/^Fa#'(32CJvj}8L8~j%?9vf =g ofm:cΌeOw0rle qGsؤyOWpժVǥS=붕/+×w1Ρ8t1@n8hy('+یqPb:x{fxy뒔7GTμ /9339q t³3u֌ {xvw*|o7zٺ$'7n~K\Fj } c3r"g狨?-ov{SuuS(~w8POJ+xW l棐C+w|>>Ӗ}m~_?Yϫ~۾ ~j;+?#&.7kKbl=k*j>ӕ,s7lJ?blj?  4xaB u0p)Vx D5:|p H4yeJ+YtfL3iִygN;yLC5zT  \xhTC741k֩Ij+Q P|5+5бe:zn\szxD?"$@y .Xࠓ)W|sf͛9$]/Ru! ҫ` 1VZ۪(e0[m.]4iJN|hR^~Q?u!w_Gg^uw],KɲΞn~7D /bA@{% c,BVē-\oٲ3nZT>_qģ3μٸ.Db;:qG^4-50=GSD$7m.4̄02S6|8D C5;`!!roKQ͵C :>eұBc"z8u-dn)25U V<9\2Wp^M_M@l9]flm\[H|hPx8$.8FnDriPvw8Uu;MSz:w(BՋ4yQ wD+_KέP∧65)xbEzEhA9,-5p/;S6_-G~[=x{~zf9ՈjTȟZKW Vҥxhr,UK pXLl1_0t@*w)XApg *AL-Ҷ)L5AP?Ir0 9 #B!&TXĹ%C:Trh;ʍ8D+wb(D#~a< 3sE3i E6ЋbSHF̼yF?(t hT"FR%$),CZ&a;IV$(I)KVT*!RF򕱔eNIV+gYQKc/LgA4JeԦ6j~,Ms= :yqg,ɓv]<yI> Z3B)PB_P^T͉D9ѺPHQx) HI)R&JiZӢt.N(S*)(uSͧ5 R;:JQ%YRiTBԩT, agV'ծĔXٺNBҬh뛾*o%d\W 5&xl2)L,L\굟>^l ~6duIgI&aAڠ%m&U{VXuns[mAn;\3閷ɥoW\Ѹ.Ɛ\D'{v8yWսxUHrKnqK %1oJ~D)%{a_z;wX/|狒Em*PWb)|h V2ܤ?8>nI< ߞH+?GkDi4մj8cs&XEaN"ncR w>EPT#v9prUS|.ϰFd&&O%7|fU4*?-fdY͸ds $`8VHHNo$&fwj. ƄFPDrьi}֭ëZWU&sA PkiڪfCa]kFI\²Zpq pW!Ê^{|r3^3mj[/P bs+5(zW-6royӖv/9lkR75{w\G -.r99ϪrD:.(c^B:z\xsR Й&MzǗtKQWҧnHka'ukWi- kwj;Q +ȵh{Nǻz>ǿ /#_/C~+c;σ~Kӣ_[oþ}k_p\]=1gqa p4b%\~`W9Y 6T$|$@g_qGIq>u9}1, §KאspE"5`cφ#e+sOr,F NHU$ZS]P/ܤF:hxDrh(;%hM#RfneӤKv{+O+H@ ~2 0 P  CoPZ:GŸ`8P5j8B6Tjc^bD{f&x,G~ 44g5*#?ԧI <<7 %טɯ4OW,Dmph "c(lvBvxvbPr0ek-C> U$pd]BL;'c(jKgPg5 lg+m "mv6˓b0ic'т6s.Cd0ee624l7) 0gb,f4cr=FbVdȲoYQA=5pV70%Mǣ:*S.0T3=qftj_VTqU*&u=$HEunL:]vtCr5rer/sR86y.}#1\˪BxG1oٱwqJ4Q1DD3-M!D{3/Vľciu|aU)ESc+}!}?$P8%+aUv8:p M'*vEn*EF~2ж7@s7VtG}7\.[o_+Z-ݦAIgӆ0s^640qFy22yuV#x-) F1 n඀&:yy YEV~f77VBo8ńsݞgd8?'I7C-(;`ds9SPXғyg5g"hi'"Jy 5qSvci-'\@иotV Af%AhB g9tDVyt(;TM;Bq$2IȀ"V2 Xh18,c53B%ooMWHxH"JvKG?՞E1QxpMW:VL٘L7Jߨ핤_J`8d:̺:dڣ::d隯 *K:]Z{"˰۱#[l'۲/; 7sT;C*[K۴eO[WH_UȵckwR۶s[iw۷[qѵ}5{&[ۺ=N[2# p%`'$& ۽_¼ QV'!-sb:%{^{% Ub[Ie#qb@@`ɻ$;ٛZQaO쏽c*|+MHb``ܽͻ4`)˙{ɗb`K <6&r|)>@Iߛ|E@>ݻ#3><<%|)N|1  Wϛ W=[N\]{ WD@ K"3@ҟ$/[UϿps۽W<Ư `Mb;ۭ}wIm"$>> /}ӑ]M_|= (_ʏ`ۻ5O~zб%:>5~;ѻqk~|\<)!^M'@qW{'1^QH[:Oŗګγ;kߗ"~\[Ӊ`{+_+_;IB։3ui}Elʕ>oT]%VI"A}c|'s_ۧM[}{\a^_& AGʰ`G#/ɻ H*\ȰÇ#JHŋ3jȱǏ -r(S\ɲ˗0cʜI͛8sɳϟ@ JgɣH*]ʴS#JJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx;PK]SPK9A#OEBPS/img/dbr_elapsed_time_comp.giftGIF87a\ڴtttrԜԚ֜rttrtttttԺt֜trtּttrtԚtrtrrd4|~||tLb,\Ūɨ00MJEa e8Y`_#J,ob+3RdG, 5\ɲ1.Ŝ9Ȓ!Gу#)i J"LMqd">qHTիX P  \%[K6[,}DXࡉcVT\WhGf$?$Wcm&s܊=u('g`ZeNh\}y pcbzm fzʩ ށ~Ek]*Y[zJ+dL( =JQ݄sy ܭL$wѰdq) Y`+m엾VаQY+Bs@$L0;IJnq K²-G쉣jp,t**kIG-+=KrXNեlܱ&m.(+XdSFꩊe `@y&&<~br{Gmb\ğ~nkC oeInԄy(m7٬J,\ "d.́%! >\F *~t+*7"%f_3|S~ԨO_?蠺zE,c~G69u#tE 1lA'>e`8& ‚Pd( ܠ58 t@ c "2Ƞ&4g4Dq"x*` H2h̎6q(k|HLJıx̣q=EIBr<"D2|##IJJq̤&Mz$(GIJ숲L%VNV2&|,g)X򖸜-s^ 0ah&2LaЌ)y@%״6l؊4yHpCE9vFĝĦ$it󞍤g= xSh@hbcAq~!u(7)P6.t MFOzd4GHA:vV4G7R,4+H1S4'EK@ PJԢHMRԦ:PTJժZONSz` XJֲb]EMQU_tp\J׺DjGV `kV3+a:x+bۡXZͬfjXUݬhGKU iWֺd١m-j#Rmll-x6MrW"ˍtKᢴEEvYq\zyA0&E/:rW |+]do)wvK{uE` 'Laڗ]s`rXH+L[>FW"#6g o1fpw@p[\{c#GXP_m"be8XL2+Slk/l6_ԛLxγ>πMBZͼ`sVU,@.JlikNљ9Ku!d5! 1/ڛNGhy4<oG%.O|J.8wW=y?dox7-plj ᗓG cz:nswA񁗛,ֹvr)(қt㦹{ޙo<;O9}Dnf 1ns݀wޙ\r߂Y%y]iO&v= eZ|lo0أfʓK:tzcD||ᧇY:Ju?*pکԘ:ATzvta: |lU|xr֫ivDuמvAXsTyr+'ZȪ{ZlJ(ʺzD$Oz:ZmꭩUF׭5®5*]ڮNjʯʮ V ~ +Z`;i! Q#KP(,0;4{$8`&|M? " pP<; >[2Be9xI KK2M{GO~wrZxda{.dUk:FY ^_GDwr+l_~Kbv˷m';E5vۙ{;0){}Lָ+x{ɔRDž镐+K^[^+빸p¸{g6 {KJ0J{˼kۼK-@|{;u;Kkiҋ(*E[{H[kW˿ ;7[</  \zڛ‰Kt;r)u!w1@.ACP! f&70^;Bah/8d*lĭP@2 2S9İij #[9b _<^<\La\ c '#[$!. V| m+d Pij.s\°4p8`ȏ3"!{"n 5( bɡ/ (7;;`< b P;2pRd4&ɏ> ʴ6ldq+ L'p$0#*&V&Lr('s%,ur'' І,(r1Y #vRB`ivl'jldȻB%}hЮPDJ;5l;\q7$!`$O3?b30$"-)+ԍ<5̭էZ=4!0AdEl07(ڄ T-7 -]]ُ|FM96ƍ=ؘȭܽt#%,Vb!>9,e]݃ݵۜޠތ,`fh#FlS֎2QMCKc2<#$c%ʌCm݋=vʾ+ۋɌ̭n⹃qq'2b="31̲ K# Mz40H^HJ Ep7ONHQ~OZN\`^mUxl-|A@69|r0q0mݿ`jnÛnnKtr SÉ^ Nߙ3}t#!1ArlC|nM.@b.ipP܈,ɽ.1b\Ҹ¬O0?\cƞCv˿!pm!Ō&( mڬ l,Cl'c">.<$;Փ3C#~9 @l.o&!~* -L \ mY h p3d4o&+Mź+lO%E豠,GM?0B ܋ԳOtb1ځ //[] i'HL=?Hj+T҂RO(i޷4&xۃ,>#(=h/ٖMٸ=3="/L P/Ӱ^&e6;߫_В?-ՙO"mǏɯBH={/߂5=[ظ>$i4N4ԭO8=Ք-~_8b"pQPhx0P𠀩@AYyYA(*jJ9٪ :Y`! 1 \l|ܼ(|J {=JIX {(km˝0 @>?^hH @< O0$hᴉҳMz2 xUڹ2)+乓'# +`U3ΝI 4h6k@ШҥL:} 5c>Zm  6رd˚-TTg (6ܹtMk7޽| ' >8Ō;~ 9ɔ+[9͜;{ :@;PKA>PK9A$OEBPS/img/dbr_user_call_progress.gif?!GIF87a[tttrԜԚ֜rttrtttttԺt֜trtּttrtԚtrtrrdf4d4|~|2̚4d4ff444d2ddd42d4dd4d4dΜd4df244644LNLlnld\Z\Μd42dTVT2DBD<><4d̚$&$44424dfdd|ttLb,[H*\ȰÇ#JHŋ3jȱǏ CLɓ(S\ɲ˗0cʜI͛8sɳϟ@ JhJFôӧPJJիXjUү`ÊKlNfI˶mҵnʝKnRvm7I$">\`oǐ#K&wrKǖ3TҤϐv=5^ͺQƞ=_ɞ+Ϯ9M'pgzx!Jw{wӂ98_JaI4`'I$5⢀V4T,`U蒏#@΄%I!j8G#1"tc5vdH)!@pB 1H! YAyKCg!i"t@i6y~PRPh =)墋D9i (| lQ#:"lF&AJ:#Xd]PiJ' ؗkVJj+9,&Xl d *l%UZhI`;׬7nop$w ,z|>ʬŠ*R 'Rl_tW,#Lb.62/Yj\FI0_*b@gMҲ#ޢwJڱ?;kq%7iMs|R"l`6!#tԍ9u 1K t ,cR(.xIswc7qEGr {8.[.eZk`=ݰ~ :h $[ަT"pⰦe()P@m|)q-#^M;ZXz:ۉr,r =){;rϝh6PE,y5_ Yh?q-pT) SBFu0 !0v}_fJx¶p-|] (ʈ%l [5~ YG",ԃE+9j( ?[#@:~鋭{=ᏀDLbЇ-^#kȯ0T"WӕJZ̤&5Nh (GPL%]LVw!,gIZ̥.wi\l/IbvrL2e:k&4IM|I&nz88ǹp9ve<O̧>eǟ%>Oxd; @B vBJQr>T(F#z jKyӢFM*J*ԦԩP}SJ 5A@gNT +4 *P_QRԚŭE+Q: ŮA+Pڭ+FP֙AJ®5}Ir0( mkf$:XhGKҚMjWֺv@@Eo < j@t@ kKŁlkuqMJ}0+Yv&>~0M/ic{Ĺ< `WD(B5[ X  |{WCw'> K` `\\WIhY;A>@Iy❴xg ɂCyZ7օz߲`Mn@-Nfbs&-0x]Vw0Cv>x!I8L^6RYR"u l_c?`@ Y;uaNlF9,L* GNitz?1IL`dߍEpnu#3%Yf5nVJo&vrK~ɱeCh0p9r~w7Z,`oFȆԦ6sn$w7Zfh]H[){7>`i{ƆυXA8o@VzmKxL5F20b%`2ІxG'X>vj'hm@8}H`}o8w|a[ׁ5gK@Ke}%W^XY'hA`ge8xiG|'׃;Puf(%\6w/4ItPl`uG6g7KyuDuKxK.aG%w2،0x%at6'ks$(*тY *Q8]H@٨)θrȍ,yhB@'38tT蓳TshZC^9̄Y.JeoV#ysewIwçŷU_'oC!Ɠ5pJyZgtO0YyɚxFKnPe7(9Iq}LIWYEQx$~Dg{wZ9t[YY`MX>PaSPpI98PZ'h/)i*[@%[PXEt<8E8|QgS]ƞI95V+,P jY'X@e7@Z Eu҄5*cg >T]hࢷכ*!'^|`z"ʛ_?R~U1؀,u.0x*}~T>zڨYŦnZpzaXXzz-1KV=j@aբgJ9!AsْyY$Jn:%Qʡ,sv Yz_))ZʥaN `eVjjV0`aOM>>p];~ʭ3on=0&֭g|./hvwNMny?n>-hq2;݅NPh;9Ή(Ø^>>~_^ڝ 뺾thnaQ#1^~ȞʾQ^J~/ܞ&;NˁuԯKfvvUtlN~oN ]cW={evܩ^`Ms<\`Mx ix L.q "T*+\ϣ ED0/C6/SO-v2F5O r7_Vd|LMHj1k9ovUl*q_Nf?󃏷d@~o_qx_q?v/>-@j_#՞/?.\|os#YiOX>QD-^ĘQ#E 7~RH%MDRJ-]RL5męSN$cTPEEgRM>U*ѥS^ŚUVU~QB#,F ܭpޕyVnIv5]_{vJb V `ZU"1f̆nrϚޛV1c9WʒIO-`ڑsƭPpݜMMZwyvȋ9ۢ˾Uޝ{{3~&t탿=^.dn.2zɿ/2s@3P=F#O<OB m7$;tA,䏶"Đ; P>KEgF2-kP8V#Pjm"`Yn[f%w }Y @kWZ_!Ht6Zeߏ@ ~I@ n b&Xb3x qU (E!{ux[~xiywgadaMbnziOUH4^X :`#z{ XL@f~ J`aa&ڀQ&*P!Z_o5rťv`y`sAsipd@iwop=@k47ڽyV]V߃W`YGk@e t\ďؼ]f!f#A.VW-텬nޕڽ+c l1 «a#SĦ, }`31h FOWӋ䔥A@ha0x-y0^>\ŸFސrbό#.щJaH5${mQ %| R< nO^ۦ0 _2VTu%0 2m@41X ?D".A{$puf_ͮwd'/B]=S_aIqd)8҉XbLe-_8Xώk%V l#d6/[Vik(FlFk֌\4rᐌl%qlN !?F{L^0>WVKE31#֥ld?8PG63}=d}E5F1ZcEkgɨ2_6Tf0Y#&2v;^1UɇFt\'H M.mFxHހ&$lrqփH-jPӮ}_]ԜU&:@/[j=X!hwI.\׌* ;.q;kTaVS|1^q$*TԜ.|qclϟ5V_Ubkp냪Dz ?E3U]P#M8n#F7nM>:OKWhô^bpYeZMِ*a+CC"*eRDLZn"N&q"3s]² @яgĴ8dbEc7 i3a{VY,NL^tH(I9O \UvJ:DhfXrۣ+]JihW#Z[lJw|r`P2Q#>5Q탙'Ț<#'c^ކPMj!>qk63B ݌2_p9N,iOJtZ&}nPT y=4ۻ>3Z!=Z#.Bb! >ͦUfcfeg{2s'|͓Y`g PKY3BCsK<)_yz[G}u{~?|G~|7χ~;PKq#D!?!PK9A%OEBPS/img/dbr_replay_cust_options.gifP_GIF87aԜt\$Vltrtrtt֜ԚtԜԴdttr캜tttrt꼴֜t꼜Ԝl쬺䜚t䜚tּܼTzfԮ44f4ftfԮ4ԼƬttf4ff4tԼt<tftԜfļĜdfƬ4ԼԼ|ԚtԼrtԚtrμʴƴƬҼԜttrڴlrL<>dfDLV,d䌒t|l|\Ҽw5E:Vam*4`嶢J mq\V\RucMas-駒T5#s" Y$;7di)YnV;UY{1gO?zݘRj^U WjaU] ݵjnޑ{D֖^g(fYǚq2(#Q%(zm_=6gM~W%+bfvH`U,K(xܸX{lJJ+&VݹْFV* 70RĎg%]"`9-1wW98V%irf^Kb %s͊\'jI913ov Mֈ\>,TWwLd kݕ\Ht<Ǵ(G},+&ؓ՝,]һvս֎Zs"J޴Ϡ29՜wjji+uMw aKqeWiorUwl|Ƣj TλU!oU>:ܘ?'j}.Flnލ[*3s!HsF}O"miTkpUs?59@+G0Qڷ&ioG5(VzD2IUrT^FmNx _2AuP0 )HR9t|SI!1W\V؅^L18?QR E9 J_vp 0Jp Z˚p{K >CfIc\J:GO?Ra)asו&ɣ$8A.ߒ)E.uPtLHZڒ&oIt[i 0ɔ\8Kd2ЌMgĚҼ6n2*8IrL:v~ @JЂS&BІ0D'JQ_AͨF7*r Hё(MRH5 *LgF`RdAJ괨C]I4O*UZ)ȅVծz` VqUc Zi4;@]S[ԟt,K*N@ Kk^ WT Du׿*~ U'[B4Cͬf7zp'lbYКD%ԊvV5)i꺁V P@ 6.b[4}ۙt}=@ nZM b' :)Yqϛ^2tw̨|_ղLd;Ȁ "PW(nU cP{%w+H%}pJbڸ'HwLЂ&9k \>[c` z+sJػxR]{, &5S[ )&3xDU %{:%ȑ9 33R>{lQLYC7zϚ|&D)P1 ܗU@0r|bZ%6Hu*fvuLA :қufQ 𺳎6hYD~G@BlY䋽qJYhy,'`4n ;ݝ1r!8;s9)7rU/l_{ۚxx%Nhs6nKNfўvMo2ۼsY[;qQ- 0r\t*؀S3`,6%(K[j2N[X9x൞qs"=nqa\%d|vxW+(h\Y*ZIYyzH7[ZU1:eۨ؉ 3-Q{]`f3I{V{2|3)%|ZٻKᥩXyyj{[˞D.UӽK{,曾;F[sۿ0u 6Qʋe\ž뒃+Zv,Uu…ɫ^QU#vʣ̞S8qʳjВJ͸ȱ뺻h̏ fҵ0 ̩ɼ馜:b+0\R7q7]ͫ,Yͦ+5Pz Lf LFc{ư;X%l0lw,jLGo<|uu$u 4)Sg ]Bն,U5Mc_[?\Ѩ9kb{D}ϔuvԇʩN-oaF g7 jE|ԡ0r={vEstZB!&t׆ݜ}؊-ʉ؎ؒ==ٖ}ٚ=ٞ٢=ڦ=,+*)۩ڴڵڷ۹=۶۸ۺ ܼ=ƝȽܻܲ -M=]}-M=]}-Mm"x]ϥ>~ N v k>_~nUR">R!>&Q%~*^Q).P-2M1>6MPV:<>@B>D^F~HJLNPR>]Upd@Y8\^`b>d^f~h~ZVZnpr>t^v~皰Bx>^Yzc|~U~~>铞;V蔾~d`Nq!?kqK 0 >^8U1$RaY ^_ n{TJ@D롑우횰 ZY@ ڞ/ER.-6q OaBHt>2 Oڰ$$h>^Հ . Ӏ9o 0؞Yn :@O;@@.80nNe2B#xj1zo9{qi?+oE|~CZj?'g21 zxk$.D5O Aې`﫯YI6np6 Iopڿf.E|V6o}qR3oOW.B4%˓4Y¤m#%% JҤ=~ &%M֭Jl$͵5lѤMӔ͜*qf3(ϒ)WVFϡ8*4'O/c܉ӪLR5SXe͞EVZmݾW\uśW/ސ @7WߐTH#E!nlƃ-/QJ+>p1ȏ9z%vS5@e vx;†';9bǖO8rДH;R*VݜK@no&>~kM˗=G?wW|ǟ_~uw+ϳ (*͊~{pA083 :Dk0Hm"¨Æ-97(p8Բ@Ԓ '&+cjuz,ϫ!*i'*R+K/3L1ǜ+У,Tbks4CA9:" 2k1Έ3rD+ 1D O6RA;k0Mr,Ǽ!:Jzb2I\ 2'qVI*6%S<46Xa%Xc204-M#@$}ԉ@2&Dn@4ڎ4PN6]}`Dm1ﶉ'UmV(B)KM&a]FX<)[;{:XG&dOV+Y"Y_9fmgcF7~.-P:h&hT^vffz͍<1w>+:k;lhF;i߆;ELzFkaygy矇>z駧z>{Ww?|'|G?}+@߇?~秿~~`8@mD`@6Ёd!8A VЂ`'A vЃaE?Є'Da UBq/a e87auCِ?b84GDbB#.щObD)VъWĢX  nƏ0f FRn\_4 ̺F/걏mH @ꖦAF@ّI.e $H(LR#%P~2nԤ)ʗ#bW=l)JaӒ$n B&.]2 ymQ4hSv39`TfiMl-9SAҜd9u Owk3 _(Cc6@ath-Q:/_`鑑J4MS "<ऋt5gZӓzm)ߩ>Ah+ GNHD)ҩ@4FI~DȪWPLAiTJQHzTU_jէDW^dh*jXM0I|,]j U2*Z:G6$-mN:ء9+YI+MvU&KVR]7jO*3E+k9Z6L_>rߌk#S m%#GCr{z-W$U)./^W*~2ULpt3 `%+D` a}@zU rE0{;@x"ft ibXai_-~@׫TB|k_K޸&,/;U:!F/15+L+^akC1LedpcAXXl.c#J>3rG,aD{RhI#ٰ๼;OFz0Z/t-yu]^+Xi)Gd$=>Z!oyK_/cKcŵЬ3l۶~o}h?: ŵcVԩӖuAᄆo*¿}Kg^EEww⿎h*{H^+\\#!nt7^iˍg.*"-JF#.bicBUhAgbߺGmE^n}Yqq/;NF:%{EZK@͵Lqq{Px{]fqߕ^iv x۵Np~ض})x]ag]6nIWq-իаo ]8,=.gIAPs%vVUs;sk(Ҿ탷߫5T;|@S@KK; E A@@k@tLJ?;;A?6,?B]K@ÿ>$t!4:X +p 0Ajl".>2țe 746 5CMCCC2CC?A*ɓ<Bʣ4ʱrJɑTHɂZ1D Jz,<+0?|T)Ŀ4S+K,˷TKVC#Iˤ |J|JEJ|̃ JJ$,ˉ,3J ISJtKڻ,J!Ӽ9'6"|:1'"+LWM$̟ 'fMڃ:Mc$dD|NT )*4DO\dtZp|π47\ N͂%d΁POD˘Ѽ,*P|q}rsމ  =ЦP)QMJ([VU9Q{F4^$F5ie5#W>u3*oBV#Z) `Tw8J1{S1{mg 5L[Ag323 ?H"XbdIz͛KM7;03)GkuNyu׻\4VCR4kVD=iW$mvwEq}rY N*Vk=$[5>3V6tM5VUcչ#"5v *S۟úC-&\ɹM2m7($\8l)$Bso,ˤKz7}wc[/qJ¥BD8KbZ!D88gks\t#Ls]ɘs4 ۴\]u]O܃HW+E@9[=۫A=<+@u=7*_U$S_1\8m=ӳ^kS/=}`eٌ©>[煤$A_ B3V8_8j;z\3jb,?<>\&A*B.NL ڕ%P^a:/V;B>;W-4Zaz{D2O1EdޯcW=T*cdGYdF6V[F_G5ƶX@Z0G^BVlFƐHQ~t:F8VKQ 9@Cޥ@fm.4{fG=EyFV4fIgovFDeVnŜ6gCh c6ghGw4@{.ށ3Z֖F\o~ZЍIŌHФNmՇJ3/EJ”L\˜_DޡT#^&|LnJ"jjsN ɔ̛կfIʥJƼLv,$$UXLHϸiR4ày3%jjBKwɗIlj ȸծN坦I6 Q:ػuIJmę4$E(\eI mPm :nzn VԦơfQe"6Ff. n%zQVo"Q).PV.'Wf%%B%K"r4U0E\կJ)*RE7-܊-Z0u12ͬ^;u5m3o-. ROTJTU?=RSg&-r u۰]YtZ]WK+ڌ׎Wc1{XW׊s3GCN30GhXIKǀ٦GM͕]\jѽF^JMfe]D[x[[IM>N_`i3u6~97gC۸SuHure3a ^bd`V^Eb _fYM>eOvaMNRaw_w:V-c)dt8-뾋Ad~ǥ?8%be(P|cUv@:d8.eM9B檽duNfdgkG\jnL@%>hy3bŁǝ0s%W wjwqR]on5Ƞdȭ\yɴIUEU6D_bdFuU%q!fh9e^_޹a{Z%%uWi_bV}ߒ&dJƉ%UgZ1JT*!ma@z&RK*T>BRj):,TfX%GW}b i|&aaRH!:)SY@(蹱6t`kv (ua ,BX+ݩ@"+.9|k ,qBLϕ슸.C|%%3$/R~g.&-=S]AmaНE\ގfP.7H!tk20k5u,"/^fuS6c uw5YwXƇ„SZ}uoW-TvG ց<9wwvey#>84ꩫS`ї%U~;B-/Wky1';0md"J~v_.]?sSlq ;1Oq DN2>n[9/}u<  X\a dx`ƭ,[Ұmdť tuĐ_(U8 RHB靐'xU =oU*t=%NI'V(/bMȖ⎊ Ks\q a I&gpyø,ψC"l[%~+#L2= Ât7)pr3u9_`QPqadFQgi nTŒ|"J%-eFp LQF1IZn`2ӴIO@&31͔P3f~R]<':ӹASu;C΀yN$'>Osz'S?S,#(B~*GbxtF(FyЌr(HCJύ&=)JSҠn.})Lc*St6)Nsӟt>)P*TtF=*RӢ*N}*T'ԨRV*릊խr^V*ֱ# YӪֵrl}ҵv+^׽~+\62h&2},d#+RDa:r.EeC+ђ]3:;@ PҶ'His݊6-Pݚ 0 2$hT+jB -r{ V4WhM0rЃ8p: c{ E/|;ߙ h VVD1Ӱ%y_ ` ~alF^ȇqwQ^q1c txqd;quu<36PR[`؅-\0PWCd[rf8Y38Cuxώ0s@|s MPiX ^x)  @RA1M}jZ*PbW* UT5{س.Ij"<@*hu_=!hhMzv g۽jX񕷫U7^7U=v['}e+&x k( >'zt |"Gtc虆(-n XB"`<}f o!C__ A6/ģv V o٥nzNk?@dztNI'5vS,Knk{]u'SVm;v]Yߺ!v_wKQ.g%#!5.{[79蕳\y] X""@:O\wp[׻7|N{CFBȸP޾P~.5 ̏Īֻ)XE]њ%`_&=`5,ceܟ͞ 6,TX! **$D|Zt}%WY[) m*\[B !XD^ ,:-DN\`. am`JMa!^P" z!*| q흠#\y`9"cB+ ^G4 \B@ F:f5^ma*R b5 bb.#-*Ƣn/,c*5!fa*)B"^#c  c<:)`"L}_ BpY@me @% T]!dB($baD]CCV]-ؗ"GC~e Mܭ=GVaB.dHaIb^_aD"^M^I:$F܍d晤udJNf$PRL2d"XV&(K t0@4rI%#%)HYe^]IQ_F[ \e*Z`e \1e]>&AOgb^@`]1JE%d\6`ڝcB淹l.%Ox"%pca(eZjGkŖ s6 ` u&T'KmuaFEgsQy'zz'{{'|{V%pgw"g:quy6$PB%((&.(%}BN(T^(fhKxG聇~(((((ƨ(֨(樎((vh(&VBK‘iEN)62 ",B"|i"@$“QHi) $B4B:)iL1a))"iS쩟.*iҩک" *Sie>eGqx*FjjjCgK*#Hj XRi`a\fEש kY JW !gJ\%!ްڶ+]F[ kW!EdXE&"-BeFj&N++]!/e,볂+H̘}aa$bRDl\PJܛJ\& /,1NƬB*#j*iQiV_] \dBX4i-! $>ff _~Z>fOBF-6yZ-*,^mޤNl܂$mGtj[|-܆mfm2ZNd~Պd2n.Tz&DԖ,e dd-aJu-꾭vnE.V$be.n@/l,B-n-*:@nT4nGmB_f䮕ݮoY@ o|oE4nDB/f!o|pXΟE6%unK"LbHZ @ #p1oO,k_&ّ" "ű߯%&yq+fl&.o ` WpZ70ʖ-=[Vn ΞpE11 mnvoRH/3/abr{-{N#o1jcYoػdOe$0қ!/"c"[`|5=Q&!G/&DOcf" 1+a/1W!bfƲ=@%Y)Ep 3rl^%]IB!~1ٚpNnT֍2j.32-Wn07A"j=s| 1`/f/>aWr2͛©Mp_1ޥ'o@*SEkyAotkBrHK5E_Fכy20BB3HmJ߫VD7eMOtƦC?*`A#54/2oz mlVq!.:Xwq3fek2 MA XeHaB@7& 3j)#li@C)EHi\"O2VzڇmXZ/ MGtad;'s.F8B/J~Z"2J%$1rr7fmZ6+vd$/B%7rdb_Z'8q`!U.rp[c5\417Sv737``Ha㪤j@'*Am75qgN2Sn@`3RY $l~50>و ,l\oy[_j5cxsgqtYg5_[2-wsM8S*Rov/93qNwxWo5캲zFoc<}߷sE11Qw jcO:-]bKmfHK"O\Wan$nW5޺']Mks:с:z$SqJ[񮏪V7.W&zKخ{FN5mf Ie/s]=^TJ?RoeqGKzs/d/gSf !#k_~}{E:l;\d0!l)j/~i:Z1LC+!cֱL Dx+{E 05 YƃB@S˷@tEu7,<^ wOd*^ab5ltZHs].W!v@F&f~}¥2c3f_[S}ѳӫq1!k9lߡ}3!ś_:V>V_6zNsT~~!"8S:n&T!?r90d  !??!!0D`jSj+v?`VC1R(jƿ_DϾοB?H?@`A&,GaC!F8bE1fԸcGA9dI'QTD dXp+q~y3ɝړhQG&UҖ_)rf̠AM (@ V5ٮ׷pȓkލwëYJAhWZ !ɕrlpÄz='Z L[Nݔukׯaǖ=ӈQj1PVTث,>AgָrY@< ٷ7gWp=ߛ̒{ ,@LPlA m 1K (j+üJT96 ^4hł^!,T 3C"ΆЮ~K D@H<̈́32-/ SL |HBtH,(Dh8ds̓fD1,D ljq, > H(A6$ L1ν<]d4LUUYm52kiB݀ 0x KQy5jCbv5n.[*R4$*qQz\"" N !A5/!adW0{_Η}_`6`/ v!a KXݵ0C{a 3=;a3#67K|b[3+v2[b23-k|c2;q({c!g2C6r$|d%2Kvrd)1S|e-{1[re1/1c63|f50kv f90ss\0@h8 x vtr#!Ap4AD\7jXfhRPҘ B@ eX,\'Ro=q\FFb (YUcҗ `Q{vQ=$_t*/{xASvC;ڨNkg 8@qA]kWc+v>CwsgDZ ;PJ h!5uA^d8UX1ILs7b "$I{@,Uv=3};ա^7IU /zHh}'$/^|k9@\헊@ 7R4̲+M̷ob>T֝on;2+sleM 7sc[ ٢q.>R>s?G>? ??t@@ >4AsAt; ` Ȁ b9 ` D `4tCή @DED$ `F#l#rAv#z4~)"ԁ XHJ5BJJFeI HK ECF 4MMIt  @lG BJo"MN4"#P Q uP'"GQG'u)v I+! uSO+"RN=5L0HiJ T "Etb! TOT jO @ РOTQO@O%BTuI4 TY-PP'uQ#SUGuLN5F"u]ϵ U6H5\ B u_"bLFGVq5@v5zF ` @a4UuPW2PQIO) r 8vTV]56Igb TOM͵aQ Zc4G[ @eYabdGUcd}R tWWE@O'ZfTKvFbY5j3 fb5l}H6ijіbgii4 d]m^vKvhVfϖk TmV]iyvlUNς dvf+hkhAveVli viwtM}hTQ'Wdopw rkY]u1vuqrK \s Vi9wd{ @ Al__ۀ c``_ wyX˶O\C6bN!F'5b Wxus| vk @u6 7Uյ~iUV8}I#6|6I`qcԀFǗ 5wj'xׄ%~\u~u €6~}dA؁?ik28N|]8!Khj WXffuxW؄w8PaI6e؃XytXuN 5 Kl ƴ VC ʠzvgCtk|eN1h5st׎CX=9G7G\8 2[8vmԖ+ S[ .Xb?Fل_YuYkUYXeٔyGiyE9ns9O_fԖW5jItם3ҹWyPGq9|qYGwozy!Ya9 DE`GZUiԕMcW8{ey7OokI7iol/U:ocd-8M@y{WzHڪ{TW9ڜ3ZzI9Fzwj5ًz[]15f z^ڭ?"`EtEI7! 0cø{y%YK= d{1b {u+x/˕a}UHz48[7={ھW58ۺ{Y%= ᛺E{:;\W <ǻ$B+TLV@n-z{kZFC6Πy7}v4Zk1ۂ{?\O | \ {FCƫ\Q|<ʝ4 Ԡp嚆 ʓ|̿سGw͕|<5ڙ98|́yy̷ڛއŽy >wo<}a 5x=mYH=񝜇:a+@ރ{y]i=ٷA6DǬ"^G}M|"5 C;B *셝գ~R%Z:ùE">qs 5 I3_3!!0%-_.1?r9,=2E? IsQ?O]`?mi?1Uu3s4S???)s_fm5_ mTQ2&0Mҿm@$meE$T "@… :|1"C$(H =t"&4Тʕ,Ql Ɇ3c YM:wL3@> ɞ4ȴSQ>2NRr}+CW˶h?@X%HByN;/ۗ.ὂn|5qSgJŜ!xG 2Xp@ `0(Qe+dMF Xvh6D)Bvگ3h0~wxD8@bvvA~sصG?w(q{̙x'P2xRti8T}% uW`z!*7mt-4s.Vv8^{w`kb}bbIi%vSF C @$h(%Qҕ X g!C[1 BDge)Yg*CTPШ)]D +H`ϑ+:&ꤕ@*劭ZV*M-P6 rmF .^9r*pb|R{½Z澾;/SB+gROk 00rvehv|pY.ܳՉrn2BsF벃Lh 9"@jd]a`l[jkK4w-wQ:7z6zz}Lm_7w9n@a,:琇7]-罹K }2g&xiJZђ{: yof뽃~|M8Vz:{6O._V {`;?%"$wփq7e40%=xtƒ5 ǀ˙$3Awlc7tt  0er`{7:( M/|% 3@Nq&IR$pJ>P6܍πغy\ODOpT0Wq9^<8'N 8:gfC L@ 24J;XdGBo1sF\F #fsk 0L$CtIm5!eJتQv3""J;뇜$fK nx/oK5$BYLva>#&S9:3ۛP b:"'I.ĥ7Xg":=vt%ILp{@ br|&ഩEf)[6 ̗ @+AݴRT 飜<2eւUJ%tW[MǬ pOיRy} wØ`qQN՜TVHVl^LP5|*ezVVav * ՖZp:YT钣VC}괎ǭ*^tSEUb-)ZcT;#)su*nkrlA,uqu+PF)E55$Ȋ$P -X"pC)u.b"ɍD|Z2bW]>WF|ySt').;EjhU:ysѼ׍g 3W0/u%Ȉn~qX`kswE,rC^0nһ; M?a#[٤pL,^"-n[@ @'~Zd 0y̜LKL4&]sefܢ9t3g|^sL@΂.EeψnDMHKzҔ/LkzӜ? PzԤ.OTzլn_ X0 ;PKPU_P_PK9AOEBPS/img/dbr_replay_review.gifLGIF87aPڴttt֜trtԜttԜtttԚrtrtrttrtrr֜trtrttԜt꼜ּԼԚtԺtrƄ\lڴ\|ڤb\LĞL\|l\ڔ|\LƴԶllL|Lbڴ\bl|bƄڤ\l\bL|\bLlbLڔƤblڔ\ƔlƄ\bbL|lĞl|ڤL|blĶl||L|l4fTDrT~dfDLV,tfμd䌒t||\ҹ]դbzkHtpSE,#NBR'"!=_v$v⒘̤&7Nz퐅M*R8wHyV2\'IZ.x.[ue*`T,2x.)|fY,=0mt&8N |s 8Xg wDSrx $8Ygħ+Ip f2kp0A& Iҫ,jJyՙ+1Krtݔ@8HR̕s] SUCLRvbY1`$+!Bdf1ސf}Q*ye0:RNnmel';ֈ:Ŭ4@a T-6s[@uf3' sRt&+SPC.u t^w%iKMj Hb o\+Y׿8dR`%:)hI[d,Ʌ]RzV`7&mrQm'̘mc xѤiNyLD+ ׎ 6l(SU7 N!TrS0PKbG ֤5L!4p~5p-y*|lC+)P~CI0<=㹓sT.JM#Cע>tH r}dҖڰ,MQl+2lM\_y-IoJA#Y jvn4,f׿k7ǀ2#KT2}{Akf3WYśF|jQ{ڞF@PH3h(= b`16Y@tA^^`UlbәSz˦?U6dc2lYo6gU[ ŻMǸ4Z _ Ry)/ml9YpH1WdNr#.ؔܚ|;IQ-<06@AގhugvxLkC&MwtLzaF'{~/?ei{z'Q79E\y\:F[pwc+Aderz}܄~W8Xf NrE]W4~GG@ ?%b'__`9IP 2ז`@_ I}6$A$PahzF )V81a8Ƅ_G4ew~83` Pp 84ztlh1hv3.dU zSTp`dkGHh/ J@ 4Ae\Ht>X!KQ}hX `{XJp @Ȩ8zYJ{hXK8Xx( 6h=Xx渎b؏$t 9YyIѐYi ّ?1v"ّ 9&yX(,X*ْ0v2Y6F4y:1x?ACEG@BɔDF H)JٔVWY9[YXZ \)^f9gYhjٖT] d)iIlinz9{Y}y|9~IiYyY9ɓY4=4ә9=y)7ٚڱY9yQٛM1vbTyșʹٜ9D$.AؙٝED e!9YyTT)AD}`pA `D eQ I ڡ Dɟ``? jD`F j!<ڣ>@ʜYD`+ @ ZD1:bT7VzXZ?4C}p*+}>x Tj zeJ eQ x ~Cn0qڧ=D/Clʥ:Z FIF*Kڢ ڠ*ʠ.zʨ zf zjx ګꫢhDp,A+q/ꦓ@j} .*P3j ꭅJT:1ꬿڮZDxŚ+x=:j zjC:6Z:گ z۝JDz,J*k jg7j ʦj۳>@EwD ǚi:+{/۬ zjK SK;A{hj[PqDEj*ѩI&۴Q::c/zW]{^ ++zZC>ؼ]C˜c=ܞ}n<<̭ >0&=sM M>C>C?ND>D*-|ߋl|=O=Pjb Y@B4Ά r msx-ynۍ *n.D(D=n棼SѼT~ǒ.=?x@- n3,ν{"~=Dbǘ۳<юnؚ-H0O^1j|<0 ӷ$艾L/.B4].n>B5匍s| nHm>mAޯ..@}dy<|/C~a M|^>PFnD>SG|ρ?_>.]kgk]7eN_>JŽp|NZNZlͳۿN/E3UТ|טщ}=ŔLa`dO  D_Mk?lՙ`]=dN-A~E.wOlj/1`ޣ?D;|?}:D@b߳=!@@ DPB >QD-^ĘahRH%MDRJ-]SL=ęSN=}TP;~,TRM>UJH^ŚUV]rUXe͞E6lZmݾWŵ#wnެ{=`[vb3:x)!/ƛ2 ;L0`[e~YgYٱt ;bƵ;s(L4<9;o^ .:4rq:7RwWݺ|n02g7@˯̿3) 1 򋈎aA*p"<*p9nD 4D9T4NƎ - -  #II$yP,Fb ")sRGH&Ra4KlsGLN!  ' .ʹPLQN0njp 88WC'L+1,O/sy͡/X'Lwt|mїzќ_?k@K%K T Ӭ]S F!$; ؾU2 ‚/D]C1[PD@j D4CY^ 9ZPwO\b t0FkVqb#x RSDjؽu.?Va2h!d'@QpL$z`#@א&bUX-D6KP, 8µ e I"˒,\Y#X?1$%-31ediSYo{)%cXGYpb]('NϜWx.fD.iOu}b soxݞ~P%Ng慢xdEvswɩPPtqGoE.pa SP) QuyĔf5Iΰ1DZ…Ĉ mt{KodfRuhҝ7^G@r:6|9^Qk*;6gܪ[o4V5nXVؼux P/WF:cQ)ZldƯ̚аm!ײYtFX>q22 YBv 5)Za,:ۆOujI ZkTUSyUӟ$b/tY1YoXnsJb]dIT@O;0Y/#|` Rz_ўm[wweU璗'<#~8\:.-e' tr#bSjkbsZغ,saU8_ t`ST'MaЅ>.i#Z*EԆMJ/:JܫG6O L>S[,+p(ǡݹ">ҹaoK, >ͩ>S,bɛ3=@ZS!3 :).yJ*`)䳨 "*rLR鞈b;)ydɠ z%yCZ+ )19dB)z*dA{bBC :CBEhJ\$c>_+TC$]ʲ%jXX4B2Eb1ZB,"b)̪(%)&W s2yRD%-p%X ҖA*n![6KjG"tǥJE#0c4dT"| TB>b(|*e{=qp9ͭLgJ@ǂ,ֻ4Ƣ?JMAb NRMKM +ºO.;A:/RE̋&s 3[%+\3S[02(AROgT#(2D+PO/j]F<;O P'C1lH0a93Q5Q.02v9e$~qa5N#]UXUxSHVCV[8ӄV#m ]8ck3ak.9q:* ;@5T W`u*DkԣqtעX7G#^Sv8ؼXԜ umKȋYa Q5liY:QXҰ#˳ P2fziY.5YM2QpѶۼ{2+0dмZ Żs^7AYmYJi2&I;pѿ%KYz5TD"\ Q` c./{=Yhi[A6j,d$-@]$H2@SA ? ]Sݻa -1.ǟ =t˅̼=\^9u>վ^t #\C,0V !V #@U Չ-=CH—j)2#$Dj<7 ({L|$ eRD44…>DH)I,WzUdCKM<( .KnBE\J٤D|LBܬ[{Wq\B 98`Y2&=F H)דWJE1#c Qt)pdqi٥,A&Eʯ:&nid*uTJ;f@JoT V-uR\er4bEx4{#f%P&9f_W,##RAme"BZ~UW~<#Eފ5>X>HKI M {*EvEdģʏ$gVJ6v"'$fzx4*BW##KgxrI&Ko恶+lZ~ʡ·*N*) ʶa@ 6*!fn'4 iF>\*ΈϊAZ,Ӎ.$N3N>-Ʉ]’N9zaL9iRi%̃ӥ -T!”>Ɣi&+n:taQ=S!' q0dcޡ㼣ءpixOMO/͌Ҟ-ePkcuP.m\z]O\/ZiZ;LұǴ En) /45J#c%8$-%1[m^.OlQ52ˏ/c(}LɘhopZVeV ƛT 6 ]CEXP]!n = glj qpTD gAeT Td-VvW!M?1"z1ƒ.N%W&?q=5Woi%x68kNX3E`8?׋hsT9_s:jwxU2)=4&H ׫BC=psn-OW03UZ53?6;WNK@Xڭ2F74 Yu-ؔ7| `WESUweO [opSGs6aShuX}++-Xc܇_w+8uDN9]"noƛ#)U% ܕ+%x'm3@8Zr1%9m$KQ Hy2Mқ]g#]ydo;&ʓѲFo}0Xx1^,[f[#ǮSYJvxM%rkKx(xBg/XJd^N^> =Kk?d(ꭝ#]N1Eε1_?^x{M TLޒO,uY`{?)EAk=<$"<@ 4bMx.~9wtK9!o7ܱR~r̓`ԋVzg~46aIk&™ `[5|JA;aH"P%LуA A~a 1rpaƊdF%3 HG1fyQJ?b,aΉ6K2$3N L…QQ# E&I3 ay%&~}ӡȱdײm-k׮Mkgzq #;{UkWc2I2PB1kc.Ȕ}$ҞAD ig,CZlgܧQ{6݉{ tF#3׋3'0GF{c9OLIJԸ*z% 6u$ewoMk=w xydr FܵW!d\tDy%}])\tbN(M8D5vLIFԍUEM>&sݹvJ$uUB[֨~ EeO&weuLubimGVi'Xסdvi$fYF%^F9'h4&aj7#ىjifrzS]'n9vVjIyw in:"*XWoId:cIDzWGvЬE;le!v䪦YH;z%GdY JVEzBDt8jIpYpwy [_ʻ'ekq lzCh/ZG/4%iX#K6|V̮CRI&+meJg:>,C2:pN\o1ui5oE; ~aM&u+uNXN2\Ej-چс.]ox ΄'RxA@nq1r8Bl笯6p{o`WޜI]CHNV5ZʷJyTVwfXd*9ӧ >hC> &w: qt<ݩ's&m 3 r/s C(j, SBp+Ta_(Ұ Rl<\!lI 1$2N|)rۢ"E,r>-qf<#Ө5nc(9ұv#h8걏~# )A:<$"E2)IR#eKr$(IO8q%90Q B)YҲ$(Ųcٚ<<&2ɹ+*ɔd:ʼ&6M42X9|Έ6խE 5 &:өu7q'>E,()&4Fυ2W@0t3WNqš(Hm n2&=)J9R 4.})L' 46)N8Ӝ> N*ԡA-*R9uN}*TԨRV}Tխru X*ֱf=+ZӪֵn}+\*׹ҵv+^׽~+`+֮,,b2},d#+Ra/r,hC+ђ--jSղ}-l!{Ҷ-nsu-p+q2ν-r+Rֽn_rnr 񒷼=/gŋ}/fҷ}zeVa pZ@U ~:bU 0jox pb?X.A S39cg: `XJq "Gy.T]l-XLkf1c,l0XH Xf"\ &ye>"G@jα:1|;Zq.B+a#ƳKMj)^5)mOͲSNc\6r78龦 y;sI-`[QW,\} (k^3y̛;e_Ю}n9zX8#};};8_lg׹m|zZ',Ƴ'+lrA~ߔ;7FـX`\لQ"E 8HYY_eެ9% [anX z~[ڄ] ֠E`_[eP񚂙eZ=IU}a׽\X!fZ-_]* fXq!aYe @ [ ݝ)")ނ=baYAay"&]#X) ɜ@~ZVeZ"'>@@0Xe1[=Zխ1 }6v+:N\2c06*;]܀>~bq ;0>XA2j>?X3+Nb_5dYd >՘ YX7[.$[| l$K)^")\$XBO}\Xۼ3.b-XU#MRaEeD6 HHZȁ\ x%jhK >29baE"]$] !ݍݥe(eD"f\UR!JVfZeD﹀>vz^@qq!IUAfYm'U"Y'q&e'p 񠮹 f"f."=\+ZO 2eLr'ߡ h~fΘ f|ڝvZ_}J$zoZUf!7nu ڥ2^b鑜-l$1k@ڝZ}↖XUB؋X(9Xh͵6ۙ]Q>ޱEٞ%YޘH"NX^` ڄ2iX`0bE.ڊ6(ltF -旛"ʕc)znۜB_x᩟MSR.*W6*F֣N^*^Vf*v|}*j*a****jު$++֗&+6y-՞z(,F+v+fYMc YYqi':뷂k)J "^+~YY&iV %xXax\V,)Fvk%vÅ}s$*Y8blmlv,~*x_b\kl%bBڦ1f$>&[ ..m֮ޮng..\//b&.*oz*`!.%޽RilmյYi)۵^&Y]+^6.,(Urj+˵F8 )hޞ[!̮gX`0D ?а _VYzpZ0bnto Ppiz[릑-+3iYqEn1_*lXlYއhyФm#B2Z=)Yf1Y҂-̲-ؓ+ ,+2k*m.7'Ŧ/rX1 U![q&2r^.eB'Y6,Oipi򞕲ťˎ3no(+>+\?@mt6*1" s3 k4l+&%G}"֭dՂz_qtZ3Ivr2ƪAX>ƺ&4 t@6>[uNҡRGeN:F$J$vARVVVdNLsqKQcLγMYuul/r?-_o06>? T'TV`~F+(U4m:eC&C)jsa̎2堀FB4vj/l?X6 >v65oi^j 8 XNqb;sci~y_١ug٭feXpo?*vY3qP{1>23n \_L^Y _w7Pp22 ]7[7wX=*l&i]df!VwWdorb@,y^uMv0oh.rOFnq1~WNRhy[7KxV+O9>7>1gYA9Jg9 kjjjGꊱb9ÕJwdyaY/+#&k[Q޺/ck(X莸9&iw3DgRo˶Y-䖰 p ؀0 /UO[{_25;7)12a1Rsñ8޶Ż}Y3CG{,7hm2֛$S2"6/~Oۋw;{/[ K,Zgl:]/]u2uN||Z{97uuc4lOr6[Π7 8hsl\z dz N{O_س(@AM{C#7꼕 YX0^4&.GN.("#ILߙaI6gM==:tً=^8أPM[ᇻ-ۇ;ƵM]2Y6_+?`?3Ɨ3Q,V"F[w^N,_ !f&(~&g6ƃi7ZkGv(vv1@(! h@` 2``a<8PA^Q#ǐ=TeK/aƔ9fM7qԹJz:hQD0 *0U,HT`#Ӄ/hؐAeR7rxnR5f ؘ2]* ɯS%]ɖ@$^a,gLQd9giJƣj*ɇ2` ]_սwo߿>xq6^{υI'84O 2T2y\oWt׽ :|9 +O,{[+"#." 1MZ028L%5sOCK+QLQYlE޺)iqQAZ4qFx,#LR%$&r![Bk))R-l. S1,3} 5l73/;SO? TAaP1K@BAOj>F*5SQuTL.qC+Ya2:l"2B/:E4TJh!XVZ'՜IW2idW ;b;jٖH{{Z%ʬF a|mNE%X*."CQ-褃K n ]I%^O1g=U,Yd]/Hi h[ǚ7+Yͫ߷mlAr[*͚,Ԑ"*+P?,kxQﯕUj/;1w9m7˛9 =ÅXi |H<[ݮ74!(uΑv]Ķ9p#8&۫F^&r68>zxk؊H?uQtj" +y[И;9Э&ą._ 8 !1 v1e;)I7,PcqFН%cNus1l/r`(&G5L&l0!J=ݦB-Ʌ[,Ӷ^F/Gb1mtMF)Y'Ó8摏}GAm d!HEb鐋t#!Fb>Y x,u&J۔eˆ`~9yIUigS$`I%u,-IRJND *YV-oe|yp[!hiޮoѬLqi3Ҥe-CY8Rb{f7 @]?EeTddh=R 8!ڤrŒ|=]ЁN#C)2AxR fp ic<{DSR\G5tI}YEYr7\1ۤ̕,\W!I7mfQc$U|ҋkU J?6UpN U"(5ϨT[$L9|3]IGhu+ҩl1&%leWq"ę-h5j^*=Q0&0S)mk#6>ɫS.@!]ʭ? ם @p;G<_4y<4 >x͢`1l&'Mi3b*b+vgbϘҒqq@X=2JRVLK.7}KzwzϞ-I}q/}b7|/w}Oշ}o~7џ}>0ϟ0p 0p!;PKxLLPK9A OEBPS/img/dbr_capture_params.gifDkGIF87a4ƬԮ4f4ttf4fԮ4ftfttԜftĜttf4t4t|ԜtԚ֜t\$Vrttlttrrttrtdt캜tt֜l쬺䜚ԤܼtrּrTzԚltΜ$$ʔҜ,$$$LLD<<4ޤTTT~ڴԮĜԜƬ4ĜĜĜƬԜļԼĜtrt꼜fĜtfԜlrL<>dfDLV,μd䌒t||\Ҽ`NWVMܵי|nn^ʘ3k̹*ZU0;-E* pe{x1Wo V&_KU ȓ+/]}4ḏ_[p!ӫ_ϾPG_y|J :}\_A?vW1PcRn ՝lW'VX\!}lh` ՟]u+ע~"] N~`ۄ6jiH&TRV|}|~_Ճ ~՚!eJ~pUUt晕EZoeJRWn8P@w^~ 'z}~i۠&D*馜vT(fRnnו%2},i`@pug^TX!= aU +K|v#\-2`媮jFb}kn[ls]Uj8g+Kp e(ڙbq.v\!^pxh2@0r[y#K(B1`K9miBJ™6y !"%¶-e $1 Wq~8?JP'Kns-&7)tt~trԢ+6)p(GOҍ088ͩNwX6iOJԚ"-Ruӕ03uGI*T ?5e]* aLV ĕ$}[zuA_mЎs5l:Xd% pQYZ-DD JNZ UE- xEL, pr]~f.6%ݦcknt),AfwM2[&-IՋR4 )EI w J wj KRV']WrU/c 9NQT8w޵XO&UXpQ Nmv]ef7O:c ԘkA M+\ȵU8<*[-א ub/6-q4 h:ѝdAM%)@nf 0{BX4^E?oNlu5G/ܔ``UY!jR XZϯqs*iժ_j.a7jh&yvu-iK7uKчezh&vAF "D)itaQ~~U R>f-mMMp<2w=k/7e(drzu ؉}ܜu־8cSo8T20~yH q eV$3k|l5g:\*Gg9i>4xռƸlzJ>>`hh.HfFw @e.s?\?e|} f~1y{]xXΖ^ {o r $YkϘjw?c <{Sdp7&>هo`ǪzѡuP Y̾՝=qj%- i1!+f blwrg{Gz/1jSg~W `aVdk*&kh HfƁq[lȖCr@v0@Ї/f4(xs y!8gJHO \F^ M=vCB%γ:rGk#-yVSK؆d g @peqSwG'hHTyStx^nX {rT @hTd(bh$e0XxH 6X;qa!TEhd3qRKR'NKgW\4(O vuT`}EexK}pT8Xx( 8؎8{XhȋgE00 *Q`$Ռ.VtUX[oX{H[5u)OTEVHU~8`\_\ّ&_fQSWei1phDXyE_[Ĕ̄[vhՄV`DU[^@/oV,0 eQce_å: $d\U\:WxLG hfhZ[<_chЅVVVS5n6tϕ\VyoMB ] ,9K'`5pًcsvf%ts&Ov_҅[R&O@tS\u)jDj?w50ڥD3dZMQ`1eUfrh8iwrs|uڧZz#$ZE1Ktک:ꧨ,+*)ڪ: *J:Zz :ګjڬ*Zz:JjZz횮ﺮ:JZzگʯ [J ۰{ʰe [/J۱Dɱ"[KH&燲*Dz.2[E60:۳z)>ȳB[DF1LH۴PJOTGS[XGW\FHqAXw]{FBw%5!zJe g2<9#Qh #)#pC`xuzT,4++I1+*4?44z G0V!"B?,gsB# 3-b/r6Szq ,s1lvcR&"-B!:[J"u+8VQ)C!_a "o7r/;rb%B1ؒb2^&K;C۽ r /ᶯ*Y)u붍D=쿾{cs)~1<{0#pK0I',r`#Ō@$K1*,*vE `+=,ƫ'4687k}+0űElG\K\zER<Ő 7q ;-`e<4">y1*8T\o"q,rs=/,,z᫺Yɩĩʈ<@KqqA1+V“Apk@[\:2̈́qʦ9dáK\}<ͫ!&l1ȇ˼a|b8k?+~s|v!z}3%͸4ͯKЅ,$]G\BA%;$,,ϊia"}QAha(Jg.=ӗ2QJ8:<>@B=D]B͆4VkJlN!V}XZ\^`b=d]f}hj RmTM.(бqD2t-MPGz]צK-؜Jr|{،0ݑMmzMdE\sBP Ncbebu1qXڽ+Y$۲\_g`ܕM6%f/17L`LMmZ9RGU4U9eiKL NrNpjZ|Ex5n=ޘF\h7X_9 4rJ-V쵙ڈUiDZjE*@mc"c&F[)1 )^[9í޹Z FZ֕]y9 6W嬥EfT>b2AsQUV7 oW+)xNVZPY11uZY^' .Nރ>R_] ]cA0AN[on)%ꊙǨQp,K6!.z^{BNU7~h/ƾ^bum9'D1mEnM.]>Q~涾M~vR6er,8cm}MIic+1ب2Nؽޠ>9z.Ke8v6멞hv^Ю_Cd%!M P}Mv93&T9hQ@&tW4JIiF_PVIvOaEj5M:ʹy/jxƾ_e?a9!4on憠MO6o;vz.D*o3ݗ _l?o,NU^~D{Mi>X+zn,NOxsGiy읩mt_T.٥\XjUuE ~|@@*<𡊆.\"F9$:܈#D FTP"I#|d^isf͉ m\yB%?ETRP4UTU^ŚUV]~zئ)(E;iZmݾZuśW^bb5W Fhaō?9_HWVYfKwZ裔IvZjYiٚ]Ɲmݽ}1 ōG\r͝?]tխ_\vw^x7^zE^|׏_~?$@ @dAt0B 'P=+t*; 7C?$CG y#.SdELpE2'fQEg99ǛԠre#D2I%dI'2J)#qB*q&Lj!ZV)!Xބ3N9N;3O=:˱ԡ- Uo63WYERYso3SM7SO'D RCG= 0lFIKuJ⦛Oo5W]%T ,u:WTLWc]8ON)(zjحp ݏe ^ϐ^pȆ2WJ6a3MTVfg=k[<5xӎ96O?~ӕkܭ.ף GR*b"|2&&§aqh݄hI)s2cƔQ&jmXllz촽Zlc9φn{8TjXNZ2X*>w:<1\v(v` #%ow u(rx]I݁ >yՃaoᇹg`zεEl~nWzlƞ'8oYaJX@-'8 r‚ow[A~_?#0Rl@̮v cAю +#<Ӊ o3՜Ŕe`yv—p^=p@Dҧ>00I/`.nOؿ(bfAT(.K;̥ߥS WBM(a6 odK8&zrdqNcb uE` E^EtъR],hN* E䗵!ߧU.ҀFQb>BwI$)p2XeFDLhF3G5%B[|S{8Rs>^RnzRN0;9J\f˚N&jOl(@iRСumJh_1*:Z&h9Z+'GK "*7܌/S.Zh:Hػ&]+zQ\ܠezAE;ʲgTGk qe.x-6"z ebp{\J%unz36u7fŠ]FQ ~Te)ˉ:Ȧzl"|be#J~Q5 RH$)PA`'FqUb/qe露;*ɖȵ@ny o`\"n5k[^ʹ4@;qZ!j $  T8AmT&_jZA8. 0wn#?WzIm>urio]AQx~v<LOyikz :u^r\" tXz.\I18͎H+O\a{ҋNs=o'(M@6u]K$[ϽFG:3^= <{ &wB}]Z?B@ah?w w;4>]?C7K?h6H0:> T ۿꣾ ? f+ADAJ#@] :(H ܾ t=#dD[?T3X39s.\ \{S_A9J[4m\Ӵ30|[C1tC@K |AL0 L+T{4C6dC>5L@hAGx59d2l9zPGcp9|G???M>? KlITzk4d6$8G,t@HEX||BFB|„ x+~?s@` Fx,@ !HdChǓEC@b|B;DԵcdȅ|4t(IFp9FJ8,CcTs6hcð ˲Tmŋ6M4KKD\Ļǫ6E K˳ ,ח͊s}S59TMm9SFVm؏JSMSY3,dEhYDS4[98]+³w mU5Mhs?ٷ ]`Ֆ];DDU UBtTX+X}Wg 49UZ?ÄLMyM\5[m]WUUL6KeUm We=]MXYZcʲM @0 dn5ܣ-ե-= ;\ӟ :mޯ ]%۝eLݱ^޽8m]UZe_+Z=LL^VZXؽMΠ#[VFG5ڰ]=TMMX@S]K^`\NE9fgE\Vឍ6UZ%߾=L <59U3Үe5]a%bN^F`)6K++-3-/31&263F4V5f6v789:;<=>?@A&B6dCJ+EfP/fG0GIv'IKFKMMOSE UOQ %Ђ:,`\>Ђ.-Ȃ,.]Vf8O_a*@Pe8 "ef3s婘%=;6Pxd.xNo8O-=9hHw鈍"9{hz g:f;<7H$ h#(AzYy v@a9:x$hB*Т3ji,6h7x8ppgfi֥UB d*>>f)uiPk>鴖k&lj'ɺ/fe@6P%8f&!*a/FOXV[~#j.؈!!-1J~ %eSFk6涐vO ~ fF@㷹lm0qL8>_ͨGPoz(~oQDN_o@Y ϊWCKko F8<<ˊ=;+= p;w9̯qL'>%?K="7p :*V+aӛ ̻S;wKq&$AY@L{O\,l\[3lJts;Ax$SGFOtA L4IxFAtGOIB| @wsg#BHiTEI^>T7<׋Q4ç;Y]7DT|bO_e_Kl^X[CCEv`\-vhv]dJnuE0tVGI/t;T;4ED 4Gl8|DF+F GhIdYwۓsvwxm=DGILėB0Ix_y&YW|KlT˲4r[-KXH|lٜD׿ی49lxM[vN[Ly4]ޤMTK$ʼT{p/wlg O ' Gŏ gǷ LJɏ ɧ Ϳ |}'҇G}WG|.SNeקk%.[480h.Wy~,O~aj ':gf8n /~iA+ȣRa@| @enqEŊ010s X!ă"G,i$ʔ*Wl%̘2gҬi&Μ:w'РBIZK-YLңG5HbxP$a Į0\27p$dU] ,ڳ]/.l0E)SPA5U Z[uA +kEt?t|ΚӮm6ܺw1X6}$I3.ۑc\!]tuEK_"k ̾¹׳o=ʨ!Jj`jvZtYg]Zr D7!Zx!6O!arJ,CI9gZGQ Y)[naP\X׀(A 9$Eְ=C $z84D`yG`YPH]~)m&qR@C 4ߜ}' J[z(*h`2(J:iRz)ji{r):*Oz* `P(@+| X/ͺ*Ԫ_@FCҫ,J@ PҶ:=ˬL&Ad;}a$"E뀳͞O[ҿ5~0(;Ի+j 0pA~ $!l{Hol# %@+`2˶R7;AXTAXl˔l?4ԬYr&<I۬J+ /Ȫ1h+/!r2͚H2]&@ʾʴ`kD7<9#=,TFj-({I^`Z0|ذ%s3.kxI;Z0O_;Vav⪁t@A{] k"@ٺ`E B4sVHV\aS>z@ a9x" _+6gBp(l,^JLj5J|AF}/ffFotH_Ƣe.-FP@{x_29/G}$etljGPleg R<2Ci1:[As45I2gBMkwZ䊦3 T JpsRf:yq t45L[Y<5a |94첗(Q1lUF?Z ISҕb ,})Lc(ʴ6hӝѩO*ԡD=*RZ*(N}*` թRR*Vԫj^)W*ֱ~4d=+ZhִZ[*WQU$2S4׽Qu j/pA XR_9Uh8,HRJ ͦd!3$$j\Yβ@ F;XY&Զd-pmW|!đ ,3䀹Zd& Fr]L QhLE$6 BiH.; x|rcD+Tf$.` p4FΑo}]QHXP/Vs(}^EK=s*07X|(?"lr OG:Źo!ec 8tH$c"29OzS,flyf>35jn3,7˹vfI9S$M\= E oi;[Mr2$tl{%gZġ\>Ǎ19gv¹7míl`ޒ4a/Z.6}k*Q"lۂ۞w;`J']kxO$V9ǐsՎ~s]6A~,-Nsxҳ0r|~{xW#~atg6{xOPzF$( Ƒz b18b}f-7KWDn<\iҔ[Nw=\!˥MCWUIŲ2t .rϦg=H$=,Jjysx?W{AЖ+?1{dD+s~+ZE)OU;[9Ԛ%ߞLYN{ P?ָpJa%[zE 4ōP֛M@T}b6S3eA Ev zWP`Ъ  n_ Y `} V b L !J!.H)!>E9!NI!^ naSY!~x!!!᧘!aKi!!K!!ޡ!!4ah J  "#D!"S`D v !μJؙ"'%($P%B]& 8QȔ `M.B LM#@P#ѣ £/`-@.Ԣ/.ib,a -E@3! [1"-  +"LDҌɤ?nͱ<4)M#<ʎ!?n 8U@DA A6*>Nd5Ec@"n%* ,֛,"'פ$9d'zaQ$+T$FQ2*bT 8%Q dL%У-3aYJ7"[6dNN49%Pv He4HLCݥ.z%8B$AY5eQ".[aN%DҌ% D"`Z W2 DZ\&N12@XFieVjJc&S `\ZLX~fUR$8f}Cjnf.TV?Hl~flNaJ|dQ%vRvjew 7ccd["Gpf#lqr#f Q:gyRe.-Lzz'%2$(bNST:O"8>a¥*2 VF(\ҧEM&~LgD;L&ZƘG(h({$i,jT,)6>)FN)V^)fn)v~))))i))o)m)ib))a)bX'jlY!چ ԁp ֣^b4hAVeID}pxQi5hPoaFV Ȭ Elu<Vx*Bbȳ.j*M8FR܁T$Hy18GXGu]WvCF@WeFQA@tQęh+yuIGFEC"RF²kGPkpU ԁRqHŸn^A|u܅kwH xAEW0YHxėf pZr¬ylX"ŲpRār׸rFmilXE~-2mĎ&k*HD. m^G1lעNGu؃,aĀd-jL-YLԇrM 澗^V.nU@+mjY]kktv0:-΄~Y0H`{noȔ[nюͶEj.nHyIW -.VAMy:;,n@ݞI63v<<jh,le3.D[sX,Rq݀vX-͢l>V0'4ukɶlZ(mFDL4CQ*5Qy{njQS7.uNWUV3I 6D~`JS@*uD^pFm`5#*(a#boW3 c 뮐]6h4`+fmZcH:q$QZ23jryvvf0o([X7銭cxnnsmDp.h#n\wTA3wڊs~o# wb-A$wB~7k{-H+wow_ȌiVo oZl|ϷYSc/jtx׷&z8k-AƏ!dkѦxD oθ2GFoOx|D*0>_v ) ku5lV pj smKO0y@EW7 3\NG{A[{14(OhN[Pa,cu :ODw"q$Pű#%*! ;;'/;7?;GO;W_;go;w;ӡ;ON;焺!MƻL;DŽ!K “/J4><ħă!WI\fƗsH<c!ʧ_a˓SaOakCaW?{=='/ї{ʏ?}Ǜ//ۊhJ`=IhMH WKDLpT}FQNHP=N:URu=ҥL ثݛ}gu"1w}Dt _v˿LBNƈD:[H2&ӭ>MuNhp ˀSܛÕK>[#>2vMŜ!=x?M,Q(m|)?@@x!@C!F8bE1fԸcGA9dI'QT$ P`7t0 96q2Jp`=s'բ @îH gSYzML6\ ۥW۾)Pכai=;ƋQi+/Ʃ60'" Gx#LR%q"3m0)%ɏR-K&R1,3LӢl7S9;S=? TA -CMTEmG ;PKDDPK9A#OEBPS/img/dbr_process_dbversion.gif+GIF87aڴtttttrԜԚR֜rtrtttt꼼ttttrt$$rtּԚtԺtr֜ttrrdf2d4f2dd̼4ff4ftԮ44ƬttfĜ4Ԝrrt,df,֜trd*DDtlrL<>dfDLV,tfμd䌒t|||\ҼI s~DIJƳ{KD'(zt=O6u`éΔOSH4fNIΑhL@Aɣ1˟7*zrKTG-;15Q_RF:SI[y쒌!:TSvMZko]\J׺A+j׾5 ^Ww6Mb2d'ےಘͬf7z hGKҚMjWֺlgKͭnqX D{+eq:&tЃtKZͮtzwCsKzDxA|뛒n'{!@@`'8l8&rXW_;8b,6#̠ HKlc _%Sd!6;/Ab _W P)0ɣ:AE3:d@ zfr\  !Him Y)0d= {LnV>/`Fr Mm Jb%^+s߾@^JTҙ&җ fbY>3oq>u CyY/pXn5eH[%@x?War}w7.A T9X,Ĥ:Q @ZώM[dg$vN GddMV&ˤȵ^A핌x(;wh;Ml~4NJqnD xey0ӛ^:f+ tw}w'DHy :摀Χn|UxrGnK}zv~Eh~y'ixadyp8bvhvu(@R{6nPmP7+1"rxxͧ$a|xbxM8R]t׈"Xhh)qts4Ufif񅋺HX{ cuixPqofu48XAu`xyܘwxo؏ɏp M1 X*ppّ^S9$ 6*,ْ0dp5u@bngr8IbuVa@ɇV2G١ZwyHEFgUmvxj ddlוLyMprQg;g8kcЃ+hyxhّ*&l9auxa1XawV3ll9'vvhS)gهyOFء38Gaca%hւsk{Xrq| ٗyau~~~pwv-v,I Y䥜ׁiaqvzaw1II9g9Džpv g'`F~6F< Y5HJJ \Z@FךY:)a1hm7r8z#g^6ʃ5\!:5v lq)d1[1rhkgCfYz~Fb \F:fzShlz(jڦprZvZQwzj(t~Mѧ::z)ɠPAkvQI6bkk=*Py0ᓇIgj)8IgII&kdv} wڪFI{Xx5Qqc618al*GqvFtc_ya'Іcq9qgaك:Zed[Zf㺣ZFʫ3avPYlȊKP4@l*}H ǭ7y ,k7{W~6*{iJ*kY 0,a+ +X3:m ~ҋ!l b&0RKۤK~ l{][dFv7HgqĶv|y7[ lF\2h76rz(k {k\~  YlܽQSLd(zʝ;/q[:Ժvz 8ʕ{5rCȐwL0N{ak`ŬGKpI܆׸\;dž5q)<ln[ Wڗ*`M& @w +Cw|rĚL|5L&%#}L)}. !M/=L8M(1[6>?=]0AuH-vjڪ{P-}jxEv[J^FcR J}[YOИ Gjp~»٬]~a-f׹c k9p؍9qz ۰a}מ}g jt͚jyR۞P,ZG֬ b_۾.dlX{͆]M$碯 ~0Hv0J&*Zw+u0ip  m]Cv{cwc'ۘ~k ڶ ~ 5phn߼G&k{@v&Y,g.zOvz(=fp/p>9u܉m̍4uT^CWޤ4޸)~;~)dnac@epjuE[lkSxBYW~Wd͢_|:I^nLv#Ad% :o Ѩ}ڛz\S+qL*揎X۶Qv&t9QMN>WN*xώ>}4A*Ծe>A-~Ml>%~tei?/ ?_/&?'_(*$/)O,o.:?;_=?O@oB_JKLRO>V_UZY^YQb/a?fF]joWenL(1!ź[5irZϵE9SoOƵҮ5vcx|aꭞkJփ͛1B*=6Kı }&[ʢxŵz}֡/~Haaл @֐ۂv mzdίy W߻fƾ\њb&v{kp'8<:3O@0ACph @ DHq 1 (fx (-HIpŗ+C(N*F Sb,4H8\(ë ejsh,:lYmݾW\uśW^}XL`kʦՂ|p" ?48󂱐g2vѡ3 }^&BJـmݛ:5EsIx[^}`XХNvݽ^x8UqMΡoGg1SšG4h-"諏(*R ү"D$ 4j鴻*BQFvG2H!C ϹFSɍl8ʔJs*jN%GPa䔤r #N ,5Y n>z!%PCE4ѾT3+8Ē*Mj骑J , T@L{"*7tnT:LJ^m`;/VB۸Ύ%[OF9ewve_9fgfZ9gwg.g&hFefi:jj:kֺk;l lF;Vm߆;j㦻nynoo'3u"'Fq%C-7l|/6kN(NNr|T)zW?J/ TgM9^,0'a玗ylsP`o ںf }xX{{MCB,e/}/}?}GO~1w}w?~G̟~lw/57ZLt4j!T$d@A  @c ,$AD@d@\@@??!L?!$#?#D%>%d'>')+, ((`#@"0C24 ߻!8C (P"'ص3,C5Įi7C9. ).@îC?> I B,D .,-@&;%D&P SE)$3*F SEIP EZ`t{++CC"C&pT,D2dE= >TD9C1,DjxnBhC`r< , E\E] EDCV$;<EtEmC}4y,CSEF1C zDsdHЙL!B|Gj2B04] mFC1tiVF#0Ȇtɡ>dC E9,I|dI"@C$xkljJXɐ@qTIlɗʭyȻęȟ HGHTT,+ȄǑ슱 VEplklD/I,JnDCpƔĜ !Hƫ D_SE8t4gE8\ƝŢTċ7tM ?:|LcGM‘M=$4DTdt$|DTtLtHmԁ8 sdϺePP 1 @ 3 Ƞ+cK>֛QY- ("B1'Pm0Ү(ڸ1]Q.RQ i2#u=E>8#KR;'ȸR!aSx{P(E).ԓS,/S4-1C">J56RH]J9SSMuH;9Q=۵]ҹEB-T 8*M1%T-*Z4*+CS$W#K"W! b!9]Z)"72ո{'L_5 CK"/ZW1)W2Q{ҥy:g90a17*;Mʺ0-;8$HZj;OةH3V׺k<~ ؎%Pzr֑5GYZB\@9u 1&j/R6R`n[8ʬYڭȈ2! .uk(ڏ*Sf#񁨤rh(}ZӲ&,*帣z Z6-%)ے[wb˨4]ܖB8"ͷ婿M0]E ܬOpB]]R 7Pڠ@?+R#6i4:ʷZR,U.DžYҫ]r&,?ô1*/f3YCCk5 ,U^b+3=Z4+, B:-ഐ(.*Ҭ_#-* f* 0*aȸa]\E]:( ۍ$S2FŰ+)[ Ƀ)-}2G&Xa3ȯ 0^2ۯ0km_1b#253VS6#bb00  1CVcpjC#2!֘ X 5/`f H7P;ߏ.>0 6Z5x:AK) ;6ZV5[F0\Y>Pk'34_ã(fcf9nb7Ry,K;^۴.O5`5D54yH `KR I^{sx X ݆S0Q6a7n^m'rwF螊9}7y;-]ۖMn5.hfބҷv7\s遻=8pC \86i:MijdBem/^j@=᷈gK L 9UƋ8I2skٸ%<! WumtU%ǦW&JEo٠RoE1oĴ?g d p p pOo7qW(tqL!'"7#G$W*%g&w'()*+,-./01?;PK31"++PK9AOEBPS/img/ratug001.gifGIF89asssřfkkkX[[[bbb'&'<<Ɔs_^^ VVVהb}Op iii)r?*fdp|{c^XmQQQɯێ۰w{q888...D@LX=휜껻̇}fffEEEa;;4NNNJIJ???666Գ||{zvxxxžܶtg宮|^nTuuuᦤ٨pnxYXY戈ї/0(OLU좣bDۇGGG󋋋!, H*\ȰÇ#JHŋ3.طOCƏ CIɓ(S\ɲ˗0'^ j_̛8sɳϟ@ }8УH*]ʴӧ<ڄJիXjݚQ*ׯ`ÊKHfӪ]˶۠`ݻxEH޿ LÈ+^̸ǐ#KL˘3$sgX9x Nxe ϰKË۸Xl<<ަ-p+O%1ϋmɔEI*#_4.~o^Ld@mwK Fe:*/(J>@}0l3 բ  @ [iN#'y*~D}e`/4P@"&H] Nm7/1y0pnrƝiLI(@q$*N(/H"m"a)(J,  C'c]*D?Ʌ@6%R f Ty%YJ$W S饙n zpwrҤϡ"9k_P̭q٦\,@μ@:DXju$ ־\n+P}2mm*1@iܦ@(o9 &.7–Kdpa,|kxEvʲnK,4 /#&} j ʐ ?O(>:ZDC e rd3d'P%1Dsh= ́sd9V9 /B8+@{߭+vvw~IM6 3uOt<6nj?+8w[Y{/^mo*i "P ;n d@n=AĂr IBL"`c$i̤RΨNz&(GiPMRV#r\^IZ>ĆQ.w^ 0IbSp qfN|%IMDؼ5yHI,L$!42A'@!?LqrуV`49:;$<QE(D'ĝ \PQ@zH )n g!pVP$8ꔧ>GVm TJe?el:BJ8C4ph;P% 9/@a ndL`*Y:̡:E Q\Fvlf"27Kӊ96^eZq[˥-o97o{G4r00'cNshͼ8oMCʜs?$ Aƍ;PԧyXϺַ{Xi`hO쫨Jlxg{(kDOO|%u,`h^hH%ȼ7{}qDW~LQdϽwZ}á;ЏOs6K[Xo:og3f8HI ( @>- ؁ "( P%_(ڠ I284X6x8o&, 98DX8< Ђ/hP7H$` 41j+x0x4@43dXfxh˒ = jXvxd%* `(xX8`>H;[ @ ɐ؉ + PԀ؊( }':؋8(CY `# (؍GP+ 0x @'t$ ohh%(#x3@JHטHYh&9HhiP"9] %y]** .0i 29PVyY#'i&ɒD0y04 ~i ?YAEHyJ)hɎy;_UNjٖnm Nk@t}x}P}ٗPlM& hl sYzɗ闁)P 9p kɘYw 8Y8ɛQY9pYGʙbМ)b )JPR pY9 Y)yȹYQi%雤0YɞԩR)I;) k0ZP KڡK })}`RSp I,:!#ʗ(z*:-(q% 5P3:5p"(p @ ;y KPfzh { jfhr*S-z+氖e:op z*J Aڐ%A pjmJhZJ`a a|_^9 5P`Ъ ( zjʫP*8{Tz@Ί`jR7)kzjԊz`Xj;s;[{ yʝ%;[sܪ&XB*;#:B  P6[ :<۳><{ĺ/ꝋ3{7N<ܪj J{>^ P*%Z.. "C 0t[v{x[ ;gаE puk U W[&@{y[ )[+Kё z $XW; :C+#G<%B p !0;Wk 0īS˻ b;& JˠF@[{* D{ @";L˸\k@p*`/knpf+%A{ꋺ%;TKp:<>Ôi{(@> | 9RԞ#~ &P 6~7>udn| 80s2X]@-JPߋm, m z[Ԁͷ@ AmzK p-Kh;a0xl C8>^ 1٭Bǚn> ry ϧ<KC^~pʳ*LĀמ w-Q@L{[^D.r=^VCF/_ύ 0NL>e;ҫD0M5/w""/\J 5_J+-̻@b?  [6nyCtqQSNU>W>t?f)([O/Oq,nc.Ү 5ͱ AM`( 鉯ю1d / s<oqɻxR~!K6 PM&a@?mp9Ș( m$X AJnbD 05nnj*Jd `[ Q>t6pAur7g"Ioc&9G=W.a,uFTMvp@ 4ݬ7)A,B 3 Mp)FHDlS0% 7qF z!гH=س=#T(FЄJͯjP6rJ*,D#@EK\sL24L2;"*)vR]sO2{q" !/sQ4/|/ `JL3tSNR+xeRK%RUuUV[uUL&q;1xXTSU`]rqG|$t xT Ud]rLFv:[pí,\ta]vu]xUS tts԰뤓t_ݥm6eKZ~E#7/yE\CydN*RVye[vP3DZ'V`yg8 NvPChUH%i/Y",>zkk{ը_`km)ZPT!e I;n#=.θ֩W|q9')5(3|s;/A.DNc -sc=?gqjpr˃}xE&I$y@q裗ك>(H `|G1o_WB%Ȉ:=DA^'>o|S>9!~\`C 60@ TL#7?@!54BP1ܨMQRIF4jA., dF7Qb!G?*Gdby bRfQf3Li:Ҏ$*U%SZT6ŨPCTn$QF5\#H wUfuy* zUzc%+ d Q  @Yհ5nWճC@ ]Wfp*l$U&JXȊ7Jk,S21k  / g y`AdZlgmϖ52r% >" }2aKֶ-2K yb{B`@w+ I"HEyHDB4xI쥁*]7 ȯyYBV@2`A*]U(/z^7’}##o$"0#@ML^ H*^׽쵰wQXǣP(LeRv|d# |aB(A6lp  8@( 8G&H?H5|g;Ǣh*s>P  hCŀ?e/!!(p8kZ 3f`5.|Z#x)fZqMF@7 !D  b(¡q7h@@4]&7{Hfwr ěbS+hl$H za#n@C8pl(x+>0 xa[!PVa#$@ _7 ͑ /(n7 !x-ЀSp*ˀ``#E, @Z?p4pBE \PedBd&{ ̊_XWBT݋gR1}D^$!)#t?/e=׀ p$Cq{'G &ɟ"RIX~[!G""(aseC'$ H+\{)'G.euYd?F $0~7Y[b ~H#@@t Dh<LH ?\V(%a_` N_ h:=lH nXwVΒ }X4 a^_h`m `\HP[boP7`!0Lt'~b(b)b*b(bX{8hg.ce,jn:beІ 7P`c8`Fgnb vVtrfPUs`M[.VXM~iL HH\ @`p> `g_njMbb78x$>Hpcn;sVp@[e0Welk0ONȆV l~6ɞlʞl~lllЀ\0jȀ7$n x~el;ڶmݦl0|m!ɽ 3IP8mml_n VP$xVPNozooo_ooUE @V~Sh XoEbHl<]6 p pOT a= `}@bVoϊ@ r!r"GVD(r%_<h /XX (`5gr0@ hs3Wre xVp>h~e8s=2s3ǁPBP9ЇȀPNbȄZV:qK0AeXsX$kIٰ)!}{(680lH Wp(NL ^GݍhZtlhM)[hC v<8^/ȆȆ( q4xb Ppwx~ `@q (8fQXXy lLgT|`̓S(\H+!7T_SX$Fj9pw@e8 "0yUHa!"xA\=Pq`U )'N؇`hEx(wNz _(t_szה `<gs0L@ ذXj 'YxQH X(hHtqv{ȟՇ d6f i|ǔǍhIv~|spkІt}>SP0 s`cqPѷ"U~l pĿ 2l!Ĉ'Rh"ƌ7r#Ȑ"/F81Rb BVj9($k:-B9 `ե%iXb0ӐJhşA2,rAAp*^ƜY5 J9%UZQt4( 4ذ@>h\2`~ up ")hpf=啍:(eYW.pg9fG䠀A;' 'W^Zxn$1Dz+ Ҥyꧾ ~ ,+:lZTQ;%73CzтеNT骻. CDɻUQ  <0|0 +'0K<1;/kx1!<2%|2)2-2 15L3=3A =4Et4Ds4M;4BgA 3߼5]h@x+n66i-k>n=7[7t7iz>87]]b+;^8 9{'qv>:r^:ꩫn髻:쑶;,Ʒ;9,XLre}<'Q\BBhO*T&} C 4\J4pWoT /P!W[DCl I3^P`;Bb/CmPh(Dt N ЊB/_ I(/ قHDP<DB$SB$p+%Br1v& Cϼ/v4 yx! YDA"v*!/B| DR(I}#(D\$A$Xa Ā xA8!/JBR1HV(?t4K.pA-'U"A<@pYzcBRB]&,S({ BHSB 94o\3-$+1[7YyXd"<%.V"G$zύr;^@:xB샍oU@"U)*(:TDTBT15aXP;ԥb%))AS0Epʍq"PV19DHZ) Yb2~S)B=? F,nhGcr !=BXAHhܺ,ѷֲ#E_XۡbA(FIwFD ۹\#(nb49׮#BT(! 4װI C+ 4X?|ThNBj 5n~3,9ӹ)=~so\6e3{A-iSĆG!Ep2bzCh`F7G pAS!33} 7.@ Zy/5 ~wyzEva3gQKf9 `H "( @tGn(f3 ($ x•o!1@M @`E\0@ U MB(\ $A+D@JJ)ӺdB -C \6 )!A = Q=,t>uia"X_|\ ABh>'̡#B4 JB"'M!A8 I,Xя6&CĶ)D2'-? @0" 0?]hS;(9t5=-|+\? ܔDGL丼~-'qi;By{Zm <ԧ}'~C+@~}6C-,ZɁgN6́ l?$Cą dT.h@7B0H&D8J (@W$ƅ6A\hn?A'\Ƹ>)&6I"%)Qf>h)hi^)iBt$&@n|"Xl@2$hC⩟`HC->*fB&@*:;ٔ CJV*>9 (@I=Dj>ƪ.0 t,d++<&-Hh N(J>P+k*" D(x@ ī+-HB*+@!;B(́NB>`Ӂ@V%C$Ȏ,ɖɞ,ʦʮ+,͞$*\Md- 4\C$B •N-. B H^x\+dՆ(h%* +-ƭ-֭ݲb(oVK,D)-έ)0y , d>.F 1Cת6m C7$~.:ntKh-p- (@.Jn @ \[ J.C}t5.o~Z$d$5B>/fn8m AB/Rp5Ѐj/n%@D1Cd&w]%/mwu  π5B?1G1W1gs1x11+,-0 ?  w-3r1`&ٮ$C(0D8C Ā3@4@!>0@$} {zL 1 oY h60 C8r/h1^)|(0*,W/0 K!K"+E:=;.%H.0 &%B5d1 9 `C D >P5CA(2-@8sQ7 s4 i2@r3 *p+#777_./ח@s"7;0 CbCb3v686dK6eO2ffrgRIt@Ci/iv3|Br}.;Nm6BYZ[pӵ]^)RIs1du'b;tv?vdOve,d-whw`'@;w·|?0}}.~۸~kN6ϵp+8qu#wI/6guoxc{8wex8gxRzB{#{Uv>5DrW8:fr wn8o5'ut_3u;71JpWusvxwwfhp3kxs"H2tn xo79;rwS;,z4cw_w[vxw{vwwzL==1op;xp 88ySn6@@dR"׸3|{n0.܄F<1\<; 9z뺘0{;;:wv;';c:;𧷃DX$1",CÇU81TH}@8C? ŗV2A5C8$A=(~G79xq:z̯CzO:kyCx{>1x0LSp473,C 8,4 нٹ ޏ{{+GwKW3>o{y39|T3;@ ܁  h B(:|p,9_(PI?@@"r * + ,2 -r .袡6V/ǣS1 20ӌ3@4PS5`6hx˞&0 $D w06|Fd,5)SMi' ā2/a%$?VRovIsi%DGs |R}ҰڪZ⚫ګ/To4&6F+Vkf˶J;sKs8#]uuxpqtm_ߝpG? 1E`yfԅ5&8\CWEDZQuE]]+Qs4v)d\VHgIjImt*wW! ~ꨥeޤ; #찟vkz#Z춥EX2Fn:VCYOU\[䕶_i6溿yƒ!5R$e'ou[JſRl8U_)EkiQ?j~Нx֝ f_UWGZSĕ]_lyH?oGelHhVIkJn2}rQfY\Fى.<ɘ@sHـ7k ` m |`S)ccUFַ,p[Yn0"3Ug˜9p ~ &Q QL5DQE+^4C+5XF,+9(Hh*c1F;֒ q^V(2QdÞǽ,ѡnv>l}474ʖh *8\`؇b][xTЍ@ XJX |H6M$(P@VF@ G ~@e6$ x&P" A7oC׫n=,$r=k?y눠C>?%U< (p0@2 ry) |bNp mDI7H(((`,9AˎdI9Pz^v n{x!~>gw9osR  P%05"|ttrIH\@"T8)n 0@hrld"@dsBN-5Mu?ZȽM50\$Vi8.eXW+CUB,hZ #}=tgc?pA4v,Eې bA Nq82dM !DsWA^ mRefNt궵!{-<_ȫFZWcd VON ]5\x!uY )wR%U6/gߣVtPB.LU9C_{m/Ob=k'mpC@Q!84ep[R0  qb2e #P,qHǨDiC( PȊ9ȪST0>洍oVjVNs>/2v3 h).ܐ"R p<_\ H\W@5zZ1d䋞`H0$nrqC9n[` ̛K[r,Yw'5^N;iՆA8b}H㈆ R+7 Itmr;*up-\DYֶB10L80G;!9Ϯ#(ԍ~tC]h H9~kmR%AB%}V͗\[<1Ngӹ#{!|{vS}Ji`;rw?q^wRx˰Vkftza 3ڵϤE'K R!ryi=wJ8ˮ7qZ6QK[#{O!ɢS>>X>3?ǁ?@@]3p|f=S>3B3@3@ 4A.CaKDOE#pEzG9YRFOEUEP ;5? `nH uTEa=ӳT:f6CK-'Ach7Up8 LTLǔL4LMk&LN.G?pMTOɴzIQvP PQUQPyJVa&R+R.`o8zS?TCUTGUMvHUSS_CU_5UP\nWs(WQ ~X~5zBp!Wr NWY)XYXUYWU[quSa]G5Fw)'ޕ^{UU^eua@w,dA ` `G-`ڻ##aц"A3\7\4`gK::UEUK8AU'c\Ɠ“gs?nz5&-CKMA7!"aBK~BСR A:y]L^I~R!4>bчcȅȕ,~+h fR.`2`^r-SV ܁b Na6`h_E`A"̇g̗X#&̃gƂr@+T D:vW0@La(`"ns_w{a^@.. xhV X AH|_)B!0,x @__!l"1lH/… :|1"C#1ƍ\{!1ȑ ggʕ,Ъ$kwNΝ<{ 4Z7ۍ0<y! D˭\jra C =6Ed_P9'TPµ5p`8Ō/qM#*±͍Q !k 8lcլ[s}ݼ{ /p?3@Lq(pï[IC|LrҮ4O ԋ?#0/ɰ@ 1A M3Δ೥:+A$.+ ,L^ vb/(9@n &`J4p=J8PyBJeA6#ͨ(06cÊ>z랏O$-AΜz$? | :nf!Jpʿ 4Ch/X/6 I@>` sv P4\p>'}Iix {/ã!TGF|4 ?V100Ð9 !(h P$n~A|8.Ȁ k #?a`"< |()XT}@xC!1L4H@A1` 4)(|@Q ^6"!D* @R1.`Ct%1p`-p10 tܣPX<6ٕ᠁$BQ Bn$ V0`T; d*sT8DԬ2# Ӛl&:a|: ((Ksdb;23sƲ>$Q`2R$dcED- ~HthQьR4 Q~`!-D51/&H1R6V |J 8|B_w!Q`Vp:A'H` ,%] $1Y@s8G$.pĿЀle F+ \b (9v4*ƠtD-Cʭ6P928%JV2; *γɼP 3?C'Nt=FA+Otm04D&f5kjw=SSft?A#`RGt\z׼ `ld!5SMfXJ5q S"鶷 p{.7bt{f@=Cѩ4/xhc |)NQ+| V8/9kwMgs|A!U,+?b7I@Fmi{-doя+}LoӟKlQկ?]b6'5V gBd }lo}t$"}| T0;`+hK~򔯼/y[?SuztVӫH6 V.W[&ԺU{}/C_=ϟ ȭ?UG 'gGx C'{h/7W8$7@x'{#}_* ǂؗA3) r=;f77G2`(b0cYo . p sk  \x~M";` `(w'pwx P.0 \$ 0 XH~$@ ԐG腙f 0h' ȋj膧p uTp 05 A٨ۨ a`0 P  >@~= `° (hGԱ񉑠 o0   Cp y s .JH 0 #I%I @ܐ p 00!C׀  EYט($KɔKٍI.o0 S%@}8>P| |`@$0B`o q9+ IP S4]Y}8~ 9@Z|<БIr" 2. -p yS`@0ɚy - ~|}>0 0؀# $)3`p0c'_+/ @ )9  P%W!j99Y3 P :py+0 ϨBɟ* yI|I/}ۙ+9J%9i` '0/%jrI /\|P':P` yM8 mb!`$M$YT&P_ʦCIy0S @٦{j ƕpPZo2Х|zp ΐ!d|ܠ/$U /ڦ [ א@p_ p zJ_0 y P/d {$5TZ}Iڦ`6@W / ʧc\X}ڦ L*/ j^*`Cz{JTI՗/{ `ʯ- h / ڱih]/` 44{% |'[92/ /Kz21`͊ȉ?/$K8&|'?`W;2/fP/ kp9L \@ { |'? {) Mm,a$/p  %9$r 0P~ sa(K 2`;yYp [* y!*8{BI h8D/5u 0p{ p`K{" PP H+ @ @0՛k@ y, Vk I<`黾L{2 pZ,R+ > MRp8{20 9$ +I 4E$, < ̒@)p' װ$+ ky 4y6C DZ8L:lM!ܛ< 1j: Ԑ ?@ 7$D x?Ps0Ԁ-  f <`@  r =`P|Iz{ֺS}{6%0jIƫܤv i=@0y D@{ ̀-P^K@I Apc4iהH9`}: ܳ Ս{oI R0۴mMƨ,0 #b]%`4FS˰ +` p =(` @ح~vu(ރV孍罔> _ vܭv(d`=`4~׮ d޷=m 0Bu ۊ=Yɀ/f 2n5|<~{ji|zn)) .w F2adCO}.rNn n&p ʀL=Њ>5 37ݐCPg0mA髮3q.î s^ ӭl^^nlKhnjlqNnȞ^톎6zBQ D2.ǎnо5|D ./ P νu^Ǟ7ή =~ݍmP &0?2_P7 9@ﳞݵ^K=I mp._˞YNclOS6BqOs_8yOcR<#| Ob##0~4v;( mŀVO֎!O|ΏO@ DP?/ $,Bތ$'D,"GnB, 冕&\T6&5v+5E -Ԇ Q xqb8==D`TMF=ڵb#HxMT%L4ĩOB;NӨS!$tխ__5/Ɲ[m*)7a/>Xdʖ1 ~ZӇ$"ȵ2ڨBRZ v駠2r *: dE^#"kx ,C 齡⃌>ˌ^dr: B %&@|AMB* Únp8 )HdYJ9礓j;ik +=3JȚo*~PNI}&,+[. ( C>ȋbrC&(T@3@V 7GoB) reУ#) Xq/ Dlr/6Q4rlR( hPԬfD Q@/9Pi?}Ic|领$p!AL,Xey $/Qs` @(f$D l D$ э«XP+ifpYDİ 꺁 €vP;!m"7_ 8ַY>ZDz#j$Q(  *4TIo atV͡S + .U. %pH  K5`D!H5Bdؠ׼GƖfyR~0 j7 p5ñWVc/8E+ v FB<8>(nqHn=b.h8H hZp|pJS…DzImHD˂hȇ\(&؇qaZ.ȆPq`_`BPp((V IYmɴ|>L \ /a̮b <@2r,悂$(brMP Ka(PELhȴhF!XھVxtzHN؅`BN+I0L"R.7MlY KO(B8{O' XGpMtT\8φ䃨h ڣ茄@2XaXP ( @s8{9xp42pyH\]؅XKX=X 'Ѱ>)b9ca9r9*kT9%TNQJ? R P[( "cC@kx[X3 9A" c1TEĻq-½irȵټ]3;(]%7ۆMm\\5JEȄL%W='6.`T1ޜ8uH0 b#_Ω$&[6'nvlx8E.f/~ 㵥 23co9_a`&c'nᶉj؀d ,=^-n_/Bj@DƖV5avddZP]]qO~c%e WI[eVE8%FaHF](cgx <@A-N{:_bV>fJs"8w6mQB|A Zdap, Vkme tx<y Xִ(<>`d. X\ _УQT$fd^mo +`YxZ 7yVE6pPࡖ"t [B([%T*K䆔?쁖c&V@"=$8 *|7fe@  ^-r&sL(0ep=kdZ*m1\w|!3؀^ۀ%*}Hp}bF{>I~.Q |OM89NI@pmnk6nTL(}XCg]Nd絁Y` l?uvs&UhGЀ(`Mt"u\XQ`V8s V! uq˅ pqx@xWs0\D6p`a Ѐl<6ʇwpֶb8פT8Y#]ps=xVP`X]p. H$~`؇(h-c8}pyh;@=cvXA }ew@hk 0 j  xaЇM#7 OF4Ԯ_G%cQX#@ޑ@TЀH ,w| Lή};wܸy}۰ĭ[&q{Qa?H<СfBR<$|6if@p"c("0sbGǁ| a;cDDCY1ǑK2$B6S@Tb~Oj٥_:e%c)eb٦2Crz&{'R.+"J)I10RJ墕ZS9)y)(j:ꐞj"j_SkѤkPP"2۬B{B'@[bp$*T碛ۮ[H [@Ւ\t 3ܰCe3csܱB*#+F03\7㜳;ܳDC]G GLASS]Wcpiݵ_ v DDh/SҪs]w㝷{ۭN| N)W{ɸEIgx΁x.dM`9IzɹL0,z{fi戲@Jrޞ>fnd>m_f1"SfZ<aMX>5(. 5ⴟ8Ԁ>&%g`H'=PIo2B6V ( !(`I*l"@[AĠI0BkMBЀ'  y+i,e$/_:5`Q2IY1X1!xCfk!80_QBE!p R%4B AnȎ  BPHȆbCh@C:@%$ASB84 X DbR@6J"@!Bj cXEIb׈5q$aF"0Hd8088Pc:`@IsPd_L598#Mj$4B@.d!a YF18.bP  5~Q\5dr@Q>.;NǑ dc>BPvL@0dt5%g .8,Qs *1`GUSd`{@vHx90rS>X c¸1 xhdQ )0z#^Hq>PV¨5,00 ܶ?=i1 {EB^j")((g/]\7ȓ o0+RFpv18y"Q);;0C.QC "jQQap?p v;B%PR3`̃0vMQ᧠w!7dCP(,B,D? |ck6zTufC~J>0go L WLMN%B|OCh"آ6=q`sgc)<[B04 e!@ pdhg`Hl(` tHB@@X adh0`00oH `uTHwޏ5 2F].7TB:X+l"Ӂ2y0U>h] ۨ}DA*D@-2Q08`!+Ps B L΃P!䆑*'@c U G `u}X}2T`' pTH@kpA XF6;E \v Q:͑!A*|rk# 0Ļ9FFP}yx3w! FE&4p"!{}fCE<=AȌ nc>yPPꃍGH YBڀb?{h`EL'@$MRWDi4\4 @7(@'t(A]4 @A,h*ZD@TFCS$B$aj(( ELHR1x@$(@+@wX\D>!} ,\8 ] L! |0@-a6BB}+CT! `\$(@FŁad0F @7t>Z@)aBvPRHtC(@ɡ^ (@W*;ia``CiIa/BĐEl.؀ 6ҢbAw,Xȣ T]Bɗ)0$D/rG!|0J h#^ >pEDbvP(P.@C)$,C>!.X3@ ^+l@ J7")Da+A l9 *O!6l ( @$ )@HI >D%EJTW_)D?Do}1$4J#5vE+Pv=84Bo\8%9[GeHd+iHE6pB7x5W!B!/ aCB$b\,C*0f4^PUL0@*\+\[v9C* A*H2@@i0sa7l LC@B7h݂tC+ .fC*D*g+tSv(8QD@B+0kz)@3De!gU XH$ vȃ$PDZjh7h[= ‰h+l8L7,L^@(Kp ##jB*T#Z"X\C(AC(hitC 6hJ"1DBdGB#^5@ĩ֥SAt(*Cf) DvLYn2 "X:`y(<(CY@+%l$A(d3)A3h1H9>*>jvA6D @6]g@s:k+$`(D@(1Đ) d/,¸&D*ħ@5^  +A/,+Zv D0@+@R^vZw|Dt!%)P@A#"@ђ$vԄDl~BPDB-^Si"I0Q L'DChbcA@C+ @;/fѮGiBD%$ -8] 8C C > X("ldED4D&  t?B+B 8*܃ 08DBdD>B*S>?*Zlo^L$$}.D4P7WV+D0@ C`?h ,9|="lP3H)D9Aƅ `s0 =h CDD/0Hp+8D`s}9J;*@!@9Y\C .  @4 /KY%8+>(.%@0k@C9k#A+Bq 2!}p)H(27Ȁ )<4&@C11$Ae`.ú=\(2)2  D (A -.e2X/@f (r2@ A4BA@52.WF6.|;@"DŽ^gq9D2TD8D@0@q'H;8 kqC9+w?CtCDBE;@1@vdr4Q @ oBtD@-P98f9@@9lt(,5@2.)'At4d\C,.PC,2@{l1T1l4z@@TU'.A,@*A@415Y@2T-j%85<HuTU/89D ?D/5 ubT5hl lkC+Š)|Cf$< R;./C`d896 owB5srr687x|u/ugV>Ds x 7+847 ~CC@5/[d$1)DstCf K.@)s1cKÆ3@/xƒ'AOxFs+$@>̀<)1F ؀rc@CxLp7As4KW.D>t<䄏 &D-DTo6V5H6_ABhZuctyAxvegvK6dA Ah9iukFgXf xkܵT55áB4;P&Dvc9fP@ׇC-']0?`CC p+;?@C@ : î0?d+,xWBm)C8d$KS2z?0+!AF PЀgKx-A&9bA +;'Ao1'$Odx? \(W|&B?|1C*X8A@4 tǂSAw+8J>=C(9D6$ 0Ċ@*cgGB/}04 q8)(A@]+pB2x.L$38=Ի}D8$ABS@¥4H@zg0 G4 "[HA͂VŻ{g@@4@~+?d( Yj)%DC6?I|E?MOE(sGlƢU,4x>T2<)B6$@Y%TaC!&tG#GYt @G(P+n -Xȍ+q  !O9Ԍ!bO?PcFh|ӏT ^*\R+% pHhYgѦG'K"ܽķ3,7o6ہPRD[#BTE)%oaL64"An yY!|x!"l0 lQ,nX<q8Ň|A"ꋎ&rnkpGVJ!!OfX@`B!A Zյu (LH .` lih `&q ! "ō@_X$aʄ ` U 56PX#4eTiC؋ LxyCY@ }rC$` GXE[ Vt#bZI*QZt^ e㢹%(5_ )!eq(EaPSRt(0Y l0@2"Hȱ-?P 1Փ!!">Z %CQ ?$P$ dC0,HF+.F[p `j!4^ ( ^ḱ:H`pkPck  -Fj1PbyX) zr!H%XŚX.C8?q|HC-r?錝]a C`9n6=E=*kłЀ4h D#ŷDtB;8* Bn[\ k=sS\ːba`-XHٻlع/)BȂA2rb mF$*I Cؘ^ES* bnE ,  +C`0\zW!^,8ʼnOC3eM;fPN2^8)J6L%!,n6hMgNf69 6Mrnn>|wC?1#!P54n5\b.GcV R!xX.ď~ ;2ˆ N"@V5/g%YF>^&Ϙ.8@ꉂ+ @+t|B T߸οkq \-_*=Mxcmfb^|'s9VEj3nOH3Ԭ vVHYˎy(0} X(@7X$~wTIktR 4w5+v^gBd}ȟ*78q[Ѐ0l•ƶ/;n,Dd~y2c l4$u?s/z9&`-`Cw/$ fTR[c*G0Nx@yYၑ:>S ThYˬ̡̆YP@ɔ!V!^  kʎ5Hp_O٘ ^+KN˲— ,\/f8h^(ϮF2 8$J5&+ bܲn:aLk!0jjM4!t&͌@\Rlz$~ VfaH .HJnz2f^ꮮfA,.E種 . = ,Ġ/)5AAA}` &:Xj!vr`#brAX@"4^q q#! --iQBaHbFརQ؈ͪXofLj N×YpPߔq "Ē@2"7R)IV-fp8 ơ@lZ#6C:/>OB R8 n  D"yp72)@`!m-Fa%Cfh P-kL `l έWa 9q֠ AP2-9b 0*%hR2ߘQ-$@^`*p&jp.R#!) XAt',,k,iSҲ#2ab|ƶ*2[2;;G'4gXlPN8>߀S.C:@Jl0B! O / G3E;`$ΩA6 >"@}a"VN1R/8# X@$($XP`Q6 43 ;A2GA^ *?O":9FFGoGôGO8:74:F=T422\4!NnY`7 ;~ 0K ;_@@` aԻ`=nS I=< ^ȁ,[qu%3ISc9J gVj5|*0Y,(~D5E< oFu!l`1Ge"V% TAU*t-9E%* ];@`u[,nLk <tGc`hYd9 ~a&bcRcy;4dU4I-9Ze<-aXV= Sc `AhVG*W2gQt]=UhCBXmV aT 4#>e_\hv:R (4ZBa8sgLAd%k,eLS6fM!mRZb:grJ61YV2uA4|a Xk+#>5q37A7Ah8fO!T!J[!ċsqN4qK}fPa (TZUwXSXw񁬜n3nN8' Xh!K؋c@b):u})J EA.Wu89$!(FC}i`Y* r.V{}؋xfa=eLAӉizf!2C;x<|"f" RChe@&@ KrF$XKNC.:&hoe!T0G: `R$Kc7hvCy:qۗZR 8fJA9"| "+fڋ`. <>ZwFa:c+lq$ xoɤ-V =2W)R2GRnNU_ `K;1d!!K;\D: J`! 0[2`;K!ۺ{ZG 9`Gʛw,K; R)[Z<,|}<<Ji5|9t E|I\eK.H]aoeT*,1[ǍN6@92 S4$Z+!i<@P ɼU $^'@I ਄a&V$ !f N_oq ݔ|)$̎,a?qCB,=oA z; $_ ~!aBfwEM=(Q:"0JtJS4(@"ft,>{Bbu5"Jp!@#!  ^ġO Hqhg6p\C_JDn˱U_H=@*:*_ XRЊU%"H2B<V 8tϜ"7`HR\ɲ˗0cʜI͛8sɳϟ9``<$G+քA /I]?X Rʶ۷pʝ*p$Cŭ~R\ )!!DRe62`'%4̹ϠC%E>)Eܠpò\B#4/Hp?c /ds!( 1,3Kei#D8L$ 1h Шʒ2As̺//X}5Db08J 0*X571Տ,.-c*'7+E5y#?^ڧ|N~ʪJ*ޒy#ԮKw6J+M4(Q'27G= 5  /SGp;6KΏ ,-c*[Z%ϐ@c hH7Zrͭ#lI2r|h(ZŽ ?:.nF:.u!4\ {Bυ9kÏ($%M=ԾYȆ%;" mC,B{5:XPcn͈/{"r2rQ9Aےv@0%^ dKP2G?-MKhOvZ oE?9G1B91(g{6[b>@ HGJҒ(MJQ I@@(VJӚ81ԧ=iP*TP$xT6iTw:mTRi:(#@XJkhZ׺s@ȃֺu0$K@s㯀 `K.ⰈMbK:ld@Z>ڣVhGKҚaBjWՆᵰlg;[&ֶ Cn .[wr:Ѝr?ֈB *P#l5`|L" G%{aOLLXβ|t]Lf\AfF6YKxA1V"XJIAbD)Y@,vW@ T 5[b$E6Lx#b"MP D4Eg $.!|^{J \Nf;Ў@j[n{{=rܽsMnO_dbvI> 뗼!aL;Np ;<"B%n!#NLOWG.f0cF9 yhJJ  Z qC(TQKWr4M)I^E': f1?"~CW U3CLxWSyL,qݠ3 )4]yS rEPfmhjmlM)u6~79p.u | P_ @(|p'BNF #v:Ib=٣|c q_GϞ ` 1ܐs s~N/-i^|˨:碽},eLrۘګ~fNPNp Ӟ@"q" ,o./Ɵd 2n ~ &"J0Š %^ɟLZp0n]n$``B $h/glnB0M{ onчݚ G{~~l(u` ihlak/. m`Otu_ F@_n/v6 w E`8p __/R % ROX[_/F(`$XAQd&%NElѣ E Y$(dr 0̤Yst9Az+I.SQNZjTRR+1ϒa,,9KB6-+ i9BAmܲ [esT+,} 5x ^T2 [O$," ʾX/$5,^e2녟#uɓ*BCwCi]KX.x)pB[fw<{`R'_"ATkϧ }ϯ 4@w PlA#lгmP lRe4!2+12xc1}^@"ï#<B2ǒPJiH\)iɞ'(}"(ZJB-ˬȊ'H,@$!vdđmDk`Jp ʺKJ`J/5B# ZG''6, 0E^By!KH… S"``^`xqOxK6gVg㠕=t4!^^#fK$X! BE =XܱDLv(F] ̳)@e gIpod3d@T@[vYYB&tf#"Z.R6q(~+ K'm5.JF09\Ṗθ(-tETPg P1 L$,%.f .V+H$^`|oW\#/Dt6`ERSH K#'p8f8Yss-zsDZ@ZЃ&tphD':p,&S.8XA/@3Qy.`eYj$ձ5k}k\Z׻z_c vmld'[fv gG56]mjg[vMm'^98}|r-2-AB: 99 %aO8bY 00]%zT"8(Zu=x>6G|3aշiIrYsF¹jڦ`xk KLY*O,Tln-צBM'S٥TN !kY6-k7(p 1 ]{{w^^0фȮf!T,ȱXYf%,f \A-,QE+қ/|_ R>}k^y}m?_'7 }g_oE‹H0 %o ^(B6f HM^@p O/hlЇs'D@pr8̛%^VH \XHhppfpX \9+  hZa Ȇ<'ImP|8hfXU& C͛%X?\ۺFQT0QȃHNxC8C77CNpx 83>y@ DADB,DC%F.Nh}pZ723#<: σx[>xxZʭ\˵\tx(0\mSph\ =ӅU [˝]ڭ]P}݉%-o} %ݻE]5yվ-< pUq"0M^] dXe($ 륋p^EH$H _?!>UK]Z$M]}ֈ` JP*`NZ \(M`m`}` J N5EaUeaumr:a^6] b V h .Za.b>̅'(V]T !`LZY9c:]\zJ/c?hqB423V5tcecJ;GW4_:r N Xdxhd+nʌddJ<="@ cPeR6 >dUcV-3?.fV_\eʌd_eKfeVjfjlfHnf_5fr.gce&efxfh^ifkfmnfHA3#yXgvJH~8g9;g{|gn~d8āndSe8^xvkmoƁ VMsiMbiwfhyvhF^i\j6.j Thfih&FNf&꣆̤qnXxKxgg_jjΡkʆ=\[L霞&x]}jζY^l|džlɞ줞7Ym֖"xm"@ٖ"猑mۍzg&6Vfm؎ٶFbUfVl^vnڶ>iU0ȀFԖ&o؞BogmشFv~n􎪩  wpw0pH`?&aƅ6nxpmn p p ppw r=jHpk! qpa#$^q7Gj(r r+ q.7~bEX O*s:rkXtkGHtHJKl0sOsl.d#P6G7 G sgtGtItJLdHbpLs@vU+DqFoYI\tDX#_Y?ub/vU'tVs rXoYhǀ[i߅aV3. qGC/eqtvhoi`*$8x'bxQ^wwOS|7VWZ\/xG_xHY2>yrWtYGg`rWxb`xx*h=vWgGz[WzLgwzzT8{G}_~o{}}to?WGL$ )0,ϝ[f⊌5p쨁?^hPĿ*Wl%̘2gҬiP칒 (RbJy0iC X BR+ĉ/bԸ£G~3ʄ\* #(QI6}4jC^Ū5!W^#Avٳh?\eTxq QIc_Tvpan8d ugҒ‡/Mk.:vïKwnضg螁Ǘf^/%Q`ӯoeΝ_{ sV]VX]gVva]w'y橧%%&@J0 luu-d NX!zeg&A?@E PC,JTe4zg#y8^x -q%`),d=֌R~΄Vx%D y0|  /#a:~)y@Ιibe5R9ޜtީg}hz< O|+y@ҙ Qz gh':b*B 2&x+g*%?&)t )=p ojMB:)@fZ(g,0 CbɳP0 (P̼Sj[lꩀ|<3 ; ;J/ I2DWCrz2/, +Ykݞ*#ǁK*z޺2p _o|'/:.B&@iwnO{׸8J lG@bu^[!^̰N5ĥUw"!KhB fR0NO`9C}>Ģʹh9"@ X䡏yx )A<$"H@*#$#9X񏋼$&3IA!]XJ8Jn<(AeH% %*c)KD!u$$.iC%0)a%aerH&PшA1)iR~\JgV&ŌP8өaO[&}ߤρ'BЅ$H&K8ЉR2yXgfAБ8)JSҕ.})LcՑc#N>iKڒ\F=J7@N}*O!jөRT͇ r^*X*VxJ@'+ZӪֵk[*׹ҵvu\׽~}N&=l2}L^A,f3r,hC+ђ=-jSղiN]+3BPt-k(]UqF}.t.Jֽpr+=/zӫ}/|+ҷ7Tv+) 0,W**, | ( ǓC,&>1S.~1c,Ӹ61s>1,!F>2%3N~2,)SV2-s^2,1f>3Ӭ5n~3,9y;PK"PK9AOEBPS/img/spa_exadata_sim.gif63GIF87a|\$VltԜt֜ttldԚtttttּtrrlΜ$$ʔԜrLbҜ,$$$LLD<<4rtޤTTtrܼtԜrttT~TzƬtt䜎tԮԮ4f4伎Ԯf4Ĝttff4Ĝtf44fftf4fƬtԜtt2d캜t424dtrrrڴtԼļ윚ttdtƬdfdf4Լrr֜tndԺt4t,H*\ȰÇ#JHŋ3jȱǏIɓ(S\ɲ˗0cʜI͛8sɳϟ,JѣH*]ʴSBC*H"pӇA1T*R*7͢M5ڧpʝKӨSR%{skהs*ٷi5x0b#KL.>lxec8nΕS^ͺu˨)4xv="TecdaFMwYmh]چEY@rR\6\u;>aHzW9>ap&Wyg]yUFUh |v&]hR5R vofE7*.g)fbo%UZ֕XnEv\Jl' i.`!|'7z~ ֍r#UBeN:Ҧٍy)Y۩y*V+v*VkmeI6)n vA+ ibJТ$h[rVIy_8x[on7^NRe %r; xÊ)䑌٩2Wuڂ3Wruq6sq@Y$4|ݜ3n52f:/w5B}-d-Rfgp rmݖe;|߀.n'7G.WnN7ޜw9Q.褿v騧:Iw촧-{.UOȳg|7/G/SOoEU}o~I䟯/o߯a0u<E:o | ZPmǖ ze U%< J-| ;ڰ=5W0K!1.E<%:(M|)Zq'UmGYh,ARvL"F(6@ % +)I8-j\cHǗ$,nȓ<||āFfEdΨ=9*O#$1) ZyI`&i%v%/ RT,e$FpVe},d)]c2z hGKҚֳͬSZ+R|-l(*5"ns+ևKMr:ЍtKZE3'ۮݜ7UykPs/{g"_w/L{/(:# |`W-yp #X%F ? DV ?ߘx%'.X'#IbLC O*IN쁁@$2 \ QFV2cxApd`&I:q f2-x|4`=spl hx$3Ԁ &,Hc M`NYst#2F,h8Vr h1I2LUin0\SDFvkh>يG[ڻ3 piyKQf;"Ȱ -1onv7ijcԃɹUlD0e*1Áa@0cmc<&OMߖ2#s祛v-m!@ͼ7rYϥ®ЇNHOҵq |: ( Vֳs~^.v;;_n?%DxϻOO\"#ϼ7{GOқOWC'|'0yT=GwOO;_c߉Ӟp]{kon䏿O۟ Op8X|t'{r?6e&bFke,-w$X&x0uHj`G&n va?"!`#B8DX.}toFjǃ8Xo:Nih\؅^hHJHpH8f=!$hS8qeirbM ~F>c6`ȁ#_8X7wշ~f(loaqxg݆nhNFyZhX|ah'y؈Hh'QrNV&l批؋v`20XcqX(؊%!y 7}VffmXhƋ"0)iM&d8(Xgۨgm#niP8jJ&HiTH6oi8iVjɘ&!98{#aY6nb/pf6q?CfX(X8mH@GI Z,0s@&@1Y3pwȎ$#7[(fy׊EY" Uxo8?xwm"oYwpn'wבƖ.'7^);qyhɗ闆ƍc@kə<` ٚ9Yyٛɛ08qG<9řYسi=C[YuCѹ9C3?y+d9S9J9YtL<>7YD9XJ=7 U *Q  ZLdkQuYƜ:fe&q@+zFcCa"Y%'FmVƁ We6d$  p^eo(ue2^WrbHmhtF)IO6nȉIhK6MiX"Q (,UOQ~k V ɐlHq\F¢ghc֨&X ߆%[cNaSFzmfbXjhrk:  'd29p̸d}T䩁e7:E (DJۺDߪ:zD*ڮD7Z:::@ZD9ŧ8q()e֥fpl+)(ƁeFo)YhF`#:[m\`j s) kay6CX/{'`,6ֲZ``3Ne6>;8 띏=gcEkHJ7@A 6!@ zddд2b/Pq;e?vQq1@;;FViX=[W[g:gxF-pm{˺,Х+jAFq{8gk9&d&9a{RfqgY(jAKq*Y( J hȒ7_+q^cA{xLVlG*kKK70VfŦql&6m{{ˇ8*`k_K6`v@pvm՛aTg6 #*'bKe&}!1[-X6 k[v" 1pdnizf: 6g\̓ƮK&ܕ ,97S|%cFf;{Kq3ho;*WjJXVLVȓ7 ixlp8n ^nq+*8}\.`ql{@m ?Pye6в "kL4=M }7@'-9Up7ECۿ^qfOMphU? "vDiWXi;Z,+Eq#l F`-64cd`۵)aBeS;T(p mi&f:Y ^\^z,,0.bؐF;`=siC*&N>FkkDN ,\l0O' 12d|敯lNeKp8Ȼ:WMS&L:eU֔ 9 '@^ ri% ^⩾N_WJ1 `Q.N \I1 pBʎ >PpȞu~Վ~<.CvC>-S^0@ ~7 PdP@ ?6  @ R1.oT%Qq+-/_13-(5o9Wy1);>  T$F&7CY[58QF`o)W/Uc/H1hdQ3_ v | oQ2)[tog/_49A-Qbo4-]E|z/  8"R/0-+TQJ//4TTSrO/%odGW|P ioΟ/b{ <2AsopT54_7Oȏ?no5@@(PB >QDG,^\,8#"ydD$e" yR:ڣ%Eq䩓dQ3tIABm:$P5lf6Zk8f*&M7{&CmЬm:pޮh]vrN S6zk\k5 r ][6\i $A+;=OXmf" [9詝JZ 2wxXotޏ7{?Q~n}t9?vY>{2ʸ;HVCH6 7ÉfE[d%JM/Xdȸi'2/¹n-J GlN -,Inı= p?/ D9$GcϷvR@%#ɬ>54PhţCąCE\ts!@z4R̲4HÏ,Kxc%sH9-UfM,V"]KaL@=2.DiED`X Zk>hM]:QhЀଌ0,V̥s* uZk\BJKu+*:Ue7Ъ3R=&O݋YV jވ׺Ľ`ZgTmGP~Q&2)sԔRwE GZH&&W+KZ\6bzk2FJ"LNGlv7?N.۩X$~ZH%[Q5 -ܜF%,Մbr/xAwxG>ىWy矇>ؘzx{|{'|a|gۇ?~~?;8@)D`.ЁT`!8A O`wA vЃE8Be'DBBv+ta ex:І7\ qCJ=bgB!шājT"ƨ)dnQ\ݘ9mT"vMbF%> %iacF@H$p\F$QX%!Vb4)KF Ri"#CXM4 c(c.9F\YD%C/GXB.%hҸ"Xٙh7qI-LyaىKv/L('7b)!m$fX̩N8BӞ T%lhq<\ Qw*NĦ8M:> D9 5h?y#(:PS* &p$FYhH3ZO |Nɞ)485=8K=7TU)S1:MvU!@I˖H֒h".yBԗd]LU Š3W*򪂨%"I e5RB’7 ` VB sVӽ3kgE.EJ;ӦֵZke¶mnu[ַnp;\׸Enr\6׹υntֺu˽n׻w׼yջ׽k{廼׾؋}k׿! ^pȌ!lDl  ȁ<E,p|t !|{9D<8#A x@ Vc`^,И <^ VA;%-!%8)^xqX'Dǰ᱃adw1p_e Yb3W͙ a 0 r5/Z A>IO|8N5>G : X ldן~H9]SAlj[ ̎;4,vcoV1ռe˛9pa@ c\X87Y[8{7cPro[[[$?sϹ z@=,E<aNu_} :3.a0pӳc# GK20r16,0Y[7}" 򝕾d^;E2gAOd:Ip!z>#.so:] 5;Ӛmf>ꙭ3$YzݣZ^:շ!nQk5;9+ 2뻾<8‹L@pi>zT(ʻ5330mxS=3+@{s?1c?=8 2:+>㓾K@36@e;C,@ |3LdKDF62 3BO1qk6SC`C+3:WJY4/)0[ħ4]h*cl\DeXdgeiEjʑk\lcnoWqDr4CtTudG+swxz{}|~Ȁ<2aT"HrF8HQZ(%HTHvRī2!¨m",I=!Y**DHlЬ`)(T:ǹ4%ű)V"ʕ JfB̴̺Kx"7QI\ɗj|(ܡMDN"ܫښdt:NNOq|DSRO\ 8"I} M6P-H -؂0 %7XPPDPR6X5 3Ђ( L%!-X0QU P-pQJEQ-U%-DŊ4KCU@`l*e7F<1m"mPMR&]RR,/0);9m;ӊӉ3@$Ce6uR R`?RP{с{ԉ8J-^t-@Q#8Q&5P78-9l"K=4KNkÂQ2[VEXCJ4D#R:ۀP*U=l^3\MB>4V#>R|P#W-XRq5S}?937; U3<9;8;8]u2xv2^W8rdw;s#ג0x WÆMUqs]Sutu}#Zk=b7KYs=}17ٕm;uE|=}:h:#:V|}=]E;‡0C5R hQTGU9=b-+BtmET5Z}[5UֈS[݋[7A҂0`\5WZXԇڠ=9t;w#@=L 4[:UͱY$]|]sŲ]m\DžP %ʭW|UXտ D^%H-s^A=Ez>A»K ߅ ]=]\G[Ec\VtZ=ڰ5DU}b%mUB_;PX8n][}]{;l:e;5ou_L Veaa m ΞT^AAHߕxaa8mTb1D)`A?AHT`*NG 4 8P %TacpTc@A&B6d?VdldkdGHd JKdMNdPvQ&e2SFTVebVrpX֫검X%h]ز2X*&( 6Y-eng@e@Slfx`.'8Ȁ f@Ag3uޣvfXf&+x$ H ?44WuVMUH#ñd]V ^T!^hgv'$H א78{cA]Xf%iY[~#@$P H\KY`MZk2[E?u>Y-a }\DSV`1i-FjVng g][}:"P,Af@P^.BdQl b5._>=d==`;܉. c.fY[.gknWnYo"FoQv&O.fk.gg,qp6 p}Hh0bqw)`p>lqU_!3%q&q 8*ϟ?~.7DVhg1-Gl&q]("sڎp>s s)7>njmmR!3nW &Lot>PQ'O6STWRfVGWUYwZXu9^_`Obc%BLgvh@vZ%ividl7f7bc!"jNPwlw?wktuw5qH#>5`2{>pwBԫW㷞 7^wx7ٳu=|jYsog߾U(bP3{זwX 轟 &7w'Mمxz);ln`p'nh峲G`zbwϞ+>DߺϿlV`yg{93EO%9{9 s iԇ2xbzA {s)KMO)Ձbo)+|p(u Хz&z~A2(ڿc  j=_Yhw!gDŽد"C/сRA"A7r#Ȑ"G,i$J=!Rʘ2gҬi&Û:w8"8H@haĠ8B)Ԩ1rc*֬/rkίbG,âY8$j`Эk.޼z/ Ċ1a#SVH:v0f l4ԪW&85زgӮmۺw/n8r“~j9KEFNUAڇ`G{;֙o?vqD>><w R#{ı`0G"{sYxSaȕw9s ]tGIwsՙ_UWVȉ_G{8GБs(M:IOc(ݏqE=W=^,jޠJ2I0ͽ \Gcx<8 m3CĬj>6;QvU[}jTc5]Ka=I`}6i6moqˍ34v7]}{6EMWT.buImEH9n@3INkιM_t9䌿-8ٵkZ (P>?<#LF|xˋd/|L [t~J}!~~g4,IW)^L8-Ё f"A2Ё`\f6L2˸@$`/F-!af0BUЂHG2e#;B=?84Q";B &K6"3U8elt"fDc8P"nxF11ox!0ei,cM]^DE, P[*@F8&/R\@hP CaB(E1,s= P,^d3acBjz@ (db)NgT,?"SڴD <{#O(qPƍn3IH) t#U ~"Y(W\*/1Q[W ] dD@Bz_FN4%8 oz^5QM.E)B\YDR#Vzuz\eMUW`۶6"n *.G L&X O@2 @`#2p#03 ,eDPl!>B5{Ē MF, +ZT$0lP3@*}b 6%#qE, orh3($)HA""QШ_{L4 ,eY8@ t_nI@T 5~-a:r)n(kTNb,c\ky$$A AHA,݋ҡ>A Y%@1 KxO'}qd6H +zV8' kIh`/3 -LsfYBBA >%K6GD#P,/Iv-h7vwg"/ X@1V3X'"K}؞OlP]F 4vo-XzЃP"zN1/72pӓd} |?疟;~Jֈ?ǐ䷿)oֿ ?*ɾ??  &. 6> *`@;PKף,66PK9AOEBPS/img/dbr_process.gifS$GIF87aڴf4f2dd4fdfԮ4f4tfƬƬt4f2d̜ԜtԚ֜trrtԜtttttԜtttּtrrttrr꼼trrttrtԜt֜trt꼼r֜Ժt4tԼ4Ƭ|lrL<>dfDLV,μd䌒t||\ҼZ4ݲlW=ۯ4>mԝeeW^Ёr|VWYa`UAwZ[fí^{zgW @)$N&#|7~afb֒^Z`vaYWvZnay$^l ["&YriAj֭xܞ5]pF8䢌6w9"Ye0b G_aqJ^)b' ".5"]j5蓰j j`!fh镳ڤ͙W_>jfU[ HY"4baƙ`G@hfUZ-֦kEt)n2('H+أw;jjumĻTqz(Kԥzb \/FR ^ދ'I|t;A釀9*_|flمsm0> ׎>4)1C3S aMju!)&:7C*ZX oBEu1` .^<_F̕px̣> IBL"F:򑐌$'IJZ̤&77 (QLeOJVc{,gIZ̥,qK] 0Ibr%|2(WЌ4IjZ~ lLlz 8IrJS*I&3挧5WŞ>9NzD @ms T}M zІ:L?8ЊZ2&A j3(57 ђv'CJRʳhzњ*{5azPA2i5SӒꓨ,4ao4TMpb;HRUҁ$U.f'&z'LxyxN4Uzp hhG?Ҙf'-fE{ڢmGMRԨ`TհgMZzwP Mbof;ЎdEn{;ǽp订vwoy֪7n-|2?Ε3ʿZE'mBn6FXSɘ׎ݬ}C_<`?X+!SxAAN0VX8_>]8Oo++MnD`>o؄+ ~RJ.0sȇm(xt؈x.,,X{xȉ[xy)QpV ȇh6A)Q,ኙ8ƈ9H XmX/ qHLhrX؋Xh9WK؄/8yh؊tx@Є-`h ٸi: ?hrɍ9¸/p,!  i0<І Q9y؊W 00 y=ɍ% ?MَIh7Q*HٸUx,*YKmiYH(MXdLghbK}iI0ُؗpJ2!)q9A@uyft C` T|)i(5LhLn$8ᗮXwz-h:t9P6'TSyigYjY׹E(2هI؈hi)Љ؟HX9S9ࠇ9^

The Detailed Comparison section of the View Workload Replay page is shown.

This section contains a chart with the following columns: (null), Capture, Replay, Percentage of Capture.

Row 1 has the following values: Duration (hh:mm:ss), 00:05:53, 00:02:06, 35.69

Row 2 has the following values: Database Time (hh:mm:ss), 00:00:01, 00:00:02, 200.00

Row 3 has the following values: Average Active Sessions, 0.00, 0.02, n/a

Row 4 has the following values: User Calls, 189, 189, 100.00

End of description.

PK3PK9A)OEBPS/img_text/dbr_comp_period_report.htmy Description of the illustration dbr_comp_period_report.gif

The Compare Period Report section of the View Workload Replay page is shown.

In the First Workload Capture or Replay picklist, CAPTURE-x112-2010050905122 (May 9, 2010 5:13:20 AM) is selected.

In the Second Workload Capture or Replay picklist, REPLAY-x112-20100510053350 (May 10, 2010 5:37:42 AM) is selected.

The Run Replay Compare Period Report, Run AWR Compare Period Report, and Run SQL Performance Analyzer Report buttons are shown.

End of description.

PK9MPK9A"OEBPS/img_text/spa_create_task.htmT Description of the illustration spa_create_task.gif

The Create SQL Performance Analyzer Task page is shown.

The sentence below the heading reads "The SQL Performance Analyzer Task is a container for the execution of trial experiments designed to test the effects of changes in execution environment on the SQL performance of an STS."

The Name field is empty. The Owner is IMMCHAN. The Description field is empty.

The SQL Tuning Set section is shown. The sentence below the heading reads: "The SQL Tuning Set is the basis for SQL Performance Analyzer Task experiments. The STS should represent a coherent set of SQL for the changes being investigated (e.g. full workload for an upgrade test)." The Name field is empty.

The Cancel and Create buttons appear in the lower right corner.

End of description.

PK'PK9A'OEBPS/img_text/dbr_capture_plan_env.htmz Description of the illustration dbr_capture_plan_env.gif

The Capture Workload: Plan Environment page is shown.

On the right of the page, the following text appears: Step 1 of 5. The Cancel button is to the left of the text and the Next button is to the right of the text.

The following text appears:

Database x090422

Logged In As IMMCHAN

The following prerequisites should be met to avoid potential problems before proceeding to capture the workload.

A table follows with the following columns: Prerequisite, Acknowledge.

Row 1 has the following values: Make sure there is enough disk space to hold the captured workload. Consider doing a short duration workload capture and using it for estimating disk space requirement of a full workload capture., (deselected).

Row 2 has the following values: Make sure you can restore the replay database to match the capture database at the start of the workload capture. A successful workload replay depends on application transactions accessing application data identical to that on a capture system. Common ways to restore application data state include point-in-time recovery, flashback, and import/export., (deselected).

End of description.

PKGzPK9A*OEBPS/img_text/dbr_replay_cust_options.htmF Description of the illustration dbr_replay_cust_options.gif

The Replay Workload: Customize Options page is shown.

On the right of the page, the following text appears: Step 2 of 5. The Cancel and Back buttons are to the left of the text and the Next button is to the right of the text.

The following text appears:

Database X090422

Capture Name CAPTURE-x090422-20090501115751

Logged In As IMMCHAN

There are two tabs on this page: Connection Mappings (selected) and Replay Parameters.

The Connection Mappings tab contains the following text:

Replay Clients must establish connections to the replay database. Specify connection details to the replay database using either a single connect descriptor or net service name. Optionally, you can map every captured connect descriptor to a separate connect descriptor or net service name for the replay database.

The following options are listed:

  • Use a single connect descriptor for all client connections (selected). The Test Connection button is to the right of the option. In the field below the option, the following text is inputted:

    (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=dadvmn0672.us.oracle.com)(PORT=25170)))(CONNECT_DATA-(SID-x090422)))

  • Use a single TNS net service name for all client connections.

  • Use a separate connect descriptor or net service name for each client connect descriptor captured in the workload.

End of description.

PK PK9A%OEBPS/img_text/dbr_capture_review.htmR Description of the illustration dbr_capture_review.gif

The Capture Workload: Review page is shown.

On the right of the page, the following text appears: Step 5 of 5. The Cancel and Back buttons are to the left of the text and the Submit button is to the right of the text.

The following text appears:

Database x112

Logged In As IMMCHAN

Review the following settings for capturing the workload.

Job Name CAPTURE-X112-20100806163450

Capture Name CAPTURE-X112-20100806163450

Directory Object CAPTURE1

Start Time Immediately

Capture Duration Not Specified

Capture SQL Tuning Set Yes

Under Database Restart, the following text appears:

Restart Database No

The Workload Filters: Excluded Sessions section contains a table with the following columns: Filter Name, Type, Session Attribute, Value.

Row 1 has the following values: Oracle Management Service (DEFAULT), Excluded, Program, OMS.

Row 2 has the following values: Oracle Management Agent (DEFAULT), Excluded, Program, emagent%.

End of description.

PKNPK9A(OEBPS/img_text/dbr_process_dbversion.htm Description of the illustration dbr_process_dbversion.gif

The Preprocess Captured Workload: Database Version page is shown.

On the right of the page, the following text appears: Step 1 of 3. The Cancel button is to the left of the text and the Next button is to the right of the text.

The following text appears:

Database X112

Version 11.2.0.2.0

Capture Name CAPTURE x112-20100726181024

Logged In As IMMCHAN

The current database version is 11.2.0.2.0.

Continue only if you intend to replay the captured workload on a database of the same version.

Under Advanced, the following text is selected:

Run the Workload Analyzer to find potential replay problems in the captured workload (Recommended).

End of description.

PKJ$7PK9AOEBPS/img_text/spa_report.htmm Description of the illustration spa_report.gif

The SQL Performance Analyzer Task Report: IMMCHAN.SPA_GUIDED_WORKFLOW page is shown.

In the summary at the top of the page, the SQL Tuning Set Name is STS_CURSOR_CACHE. The STS Owner is IMMCHAN. The Total SQL Statements field shows 1,584. The SQL Statements With Errors field shows 128. The SQL Statements Unsupported shows 411. The SQL Trial 1 field shows SQL_TRIAL_1280193369674. The SQL Trial 2 field shows SQL_TRIAL_1280193481612. The Comparison Metric field is Elapsed Time. The SQL Statements With Timeout field is 0.

Below the summary is the Global Statistics section, which includes two bar charts.

The chart on the left is labeled Projected Workload Elapsed Time. It has a y-axis labeled Elapsed Time (sec). The y-axis values range from 0 to 10. The x-axis values are SQL Trial 1 (blue) and SQL Trial 2 (orange). The y-axis value of SQL Trial 1 (blue) is 7.298. The y-axis value of SQL Trial 2 (orange) is 7.416. The Improvement Impact is 2%. The Regression Impact is -4%. The Overall Impact is -2%.

The chart on the right is labeled SQL Statement Count. The y-axis is labeled SQL Count and ranges from 0 to 2,000. The x-axis is labeled Change in Elapsed Time. The x-axis has the following values: Improved, Regressed, and Unchanged. The bar for Improved has a y-axis value of 0. The bar for Regressed has a y-axis value of 0. The bar for Unchanged is green and has a y-axis value of 1,308, which represents Same Plan. There are no bars colored orange, which represents New Plan.

To the right of the SQL Statement Count chart is the Recommendations section. The text reads "SQL Tune Report". A link to IMMCHAN.TUNE_COMPARE_1280193562885 is shown.

Below the Global Statistics section is the Top 10 SQL Statements Based on Impact on Workload section. The table contains the following columns: null, SQL ID, Net Impact on Workload (%), Elapsed Time (sec) SQL Trial 1, Elapsed Time (sec) SQL Trial 2, Net Impact on SQL (%), New Plan.

End of description.

PK r m PK9AOEBPS/img_text/ratug003.htm  Description of the illustration ratug003.gif

This diagram illustrates the workflow for using SQL Performance Analyzer in a database upgrade from Oracle9i to Oracle Database 10g Release 2. In the top left corner is a database labeled "Oracle9i Database - Production". An arrow labeled "1" points from this database to multiple documents labeled "SQL Trace (subset of sessions)". A second arrow labeled "2" points from this database to a single document labeled "Mapping Table". Two arrows labeled "3" point from both sets of documents to a second database in the lower left corner labeled "Oracle Database 11.2".

From the second database labeled "Oracle Database 11.2", a line labeled "4" connects to the text "Build STS". A second unlabeled line connects to the text "No Data Necessary". An arrow labeled "5" points to a third database in the lower right corner labeled "Oracle Database 10.2.0.2 or higher - Test". This arrow is further labeled with the text "SQL" and "Remote Test-execute (db link)".

From the third database labeled "Oracle Database 10.2.0.2 or higher - Test", another arrow labeled "5" points back to the second database labeled "Oracle Database 11.2". This arrow is further labeled with the text "Plan and Stats". A line labeled "6" connects to the text "Compare Perf, View Report" from this database.

End of description.

PK(œ PK9A'OEBPS/img_text/spa_task_exadata_sim.htmE Description of the illustration spa_task_exadata_sim.gif

The SQL Performance Analyzer Task: IMMCHAN.SPA_EXADATA_SIM page is shown. The Page Refreshed field shows Jun 3, 2009 5:06:40 AM PDT. The Refresh button is shown.

The SQL Tuning Set section is collapsed.

The SQL Trials section includes the following text: "A SQL Trial captures the execution performance of the SQL Tuning Set under specific environmental conditions."

The table includes the following columns: SQL Trial Name, Description, Created, SQL Executed, and Status.

Row 1 has the following values: INITIAL_SQL_TRIAL, Exadata Storage Server simulation disabled, 6/3/09 4:49 AM, Yes, COMPLETED.

Row 2 has the following values: SECOND_SQL_TRIAL, Exadata Storage Server simulation enabled, 6/3/09 4:50 AM, Yes, COMPLETED.

The SQL Trial Comparisons section is shown. The text is: "Compare SQL Trials to assess change impact of environmental differences on SQL Tuning Set execution costs." The Run SQL Trial Comparison button is shown.

The table has the following columns: Trial 1 Name, Trial 2 Name, Compare Metric, Created, Status, Comparison Report, and SQL Tune Report.

Row 1 has the following values: INITIAL_SQL_TRIAL, SECOND_SQL_TRIAL, I/O Interconnect Bytes, 6/3/09 4:50 AM, COMPLETED, (sunglasses icon), and null.

End of description.

PK57[%PK9A*OEBPS/img_text/spa_report_elapsed_time.htmd Description of the illustration spa_report_elapsed_time.gif

The Projected Workload Elapsed Time section of the SQL Performance Analyzer Task Report page is shown. This section includes a bar chart.

It has a y-axis labeled Elapsed Time (sec). The y-axis values ranged from 0 to 20. The x-axis values are SQL Trial 1 (blue) and SQL Trial 2 (orange). The y-axis value of SQL Trial 1 is 14.244. The y-axis value of SQL Trial 2 (orange) is 11.877. The Improvement Impact is 20%. The Regression Impact is -2%. The Overall Impact is 17%.

End of description.

PKaPK9A"OEBPS/img_text/spa_exadata_sim.htmz Description of the illustration spa_exadata_sim.gif

The Exadata Simulation page is shown.

The Task Information section is shown. The Task Name field is empty. The SQL Tuning Set field is empty. The Description field is empty. The Creation Method field is set to Execute SQLs. The Per-SQL Time Limit list is set to 5 minutes.

The Trial Comparison section is below the Task Information section and includes the Comparison Metric field, which is set to I/O Interconnect Bytes.

The Schedule section is below the Trial Comparison section and includes the Time Zone list, which is set to America/Los_Angeles. The available options are Immediately (selected) and Later. The Date field is set to June 3, 2009. The Time lists are set to 7:02:15 AM.

End of description.

PK% =zPK9A$OEBPS/img_text/dbr_replay_review.htmK Description of the illustration dbr_replay_review.gif

The Replay Workload: Review page is shown.

On the right of the page, the following text appears: Step 5 of 5. The Cancel and Back buttons are to the left of the text and the Submit button is to the right of the text.

The following text appears:

Logged In As IMMCHAN

Workload CAPTUREx112-20100806164334 will be replayed on database 'x112'.

Database x112

Capture Name CAPTURE-x112-20100806164334

Replay Name REPLAY-x112-20100806173137

Directory Object CAPTURE2

Capture SQL Tuning Set Yes

Connected Replay Clients 1

End of description.

PK#OPK9A*OEBPS/img_text/dbr_replay_init_options.htm Description of the illustration dbr_replay_init_options.gif

The Replay Workload: Choose Initial Options page is shown.

On the right of the page, the following text appears: Step 1 of 5. The Cancel button is to the left of the text and the Next button is to the right of the text.

The following text appears:

Database X112

Capture Name CAPTURE-x112-20100509051233

Logged In As IMMCHAN

The Replay Name field contains the following text: REPLAY-x112-20100510050326

Under SQL Performance Analyzer, the following text appears:

SQL Performance Analyzer allows you to test and to analyze the effects of changes on the execution performance of SQL contained in a SQL Tuning Set.

The option Capture SQL statements into a SQL Tuning Set during workload replay is selected.

Under Identify Source, the following text appears: Choose the initial replay options.

The following options are listed:

  • Use the default replay options (selected)

  • Use replay options from a previous replay

End of description.

PKSPK9A#OEBPS/img_text/spa_create_trial.htm Description of the illustration spa_create_trial.gif

The Create SQL Trial page is shown.

The Cancel and Submit buttons are on the right of the page.

The SQL Performance Analyzer Task is IMMCHAN.SPA_GUIDED_WORKFLOW. The SQL Tuning Set field is IMMCHAN.STS_CURSOR_CACHE. The SQL Trial Name is SQL_TRIAL_1241213421833. The SQL Trial Description field is empty. The Creation Method list shows Execute SQLs Locally. The Per-SQL Time Limit list shows 5 minutes.

The Schedule section is shown. The Time Zone list shows Pacific/Pago_Pago. The possible options are Immediately (selected) and Later. The Date is May 1, 2009. The Time is 2:21:00 PM.

End of description.

PK PK9A%OEBPS/img_text/dbr_capture_params.htm` Description of the illustration dbr_capture_params.gif

The Capture Workload: Parameters page is shown.

On the right of the page, the following text appears: Step 3 of 5. The Cancel and Back buttons are to the left of the text and the Next button is to the right of the text.

The following text appears:

Database x090422

Logged In As IMMCHAN

Under Workload Capture Parameters, in the Capture Name field, the following text appears: CAPTURE-x090422-20090501114705. In the Directory Object list, CAPTURE1 is selected. The Create Directory Object button is to the right of the list.

Under Database Shutdown Parameters, the following options are listed:

  • Immediate (selected)

  • Transactional

  • Abort

Under Database Startup Parameters, the following options are listed:

  • Startup using current spfile (selected)

  • Specify parameter file (pfile) on database host.

End of description.

PK]s PK9A)OEBPS/img_text/dbr_replay_view_active.htm y Description of the illustration dbr_replay_view_active.gif

The View Workload Replay page is shown.

On the right of the page, the following text appears: Page Refreshed Aug 6, 2010 5:50:10 PM PDT. The Refresh and OK buttons are to the right of the text.

The following text appears: Status In Progress. The Stop Replay button is to the right of the text.

Under Summary, the following text appears:

Replay Name REPLAY-x112-20100806174324

Directory Object CAPTURE2

Database Name X112

DBID 2506747715

Replay Error Code n/a

Replay Error Message None

Capture Name CAPTURE-x112-20100806164334

Duration (hh:mm:ss) 00:06:04

Prepare Time Aug 6, 2010 5:43:45 PM PDT

Start Time Aug 6, 2010 5:44:06 PM PDT

End Time n/a

SQL Tuning Set Name REPLAY_x112_20100806_r_3134978

There are 4 tabs on this page: Workload Profile (selected), Connection Mappings, Replay Parameter, Report.

Under the Workload Profile tab, in the Chart Type list, Elapsed Time Comparison is selected. The View Workload Replay Report button is to the right.

Under the list is a chart. The chart has a y-axis with the values Capture and Replay. The chart has a x-axis labeled Elapsed Time (Minutes). The x-axis values range from 0 to 12. A legend containing the labels Replay Elapsed (green), Capture Elapsed (blue), and Not Yet Replayed (gray) is to the right of the chart.

Below the chart, the following text appears:

Network Time (hh:mm:ss) 00:00:01

Think Time (hh:mm:ss) 00:00:00

Clients 1

Clients Finished 0

The Divergence section contains a table with the following columns: (null), Number of Calls, Percentage of Total Calls

Row 1 has the following values: Error Divergence, (null), (null)

Row 2 has the following values: Session Failures Seen During Replay, 0, 0.00

Row 3 has the following values: Errors No Longer Seen During Replay, 0, 0.00

Row 4 has the following values: Errors Mutated During Replay, 0, 0.00

Row 5 has the following values: New Errors Seen During Replay, 0, 0.00

Row 6 has the following values: Data Divergence, (null), (null)

Row 7 has the following values: DMLs with Different Number of Rows Modified, 0, 0.00

Row 8 has the following values: SELECTs with Different Number of Rows Fetched, 0, 0.00

End of description.

PK  PK9A#OEBPS/img_text/dbr_replay_empty.htm  Description of the illustration dbr_replay_empty.gif

The Replay Workload page is shown.

The Cancel and Set Up Replay (inactive) buttons are to the right.

The following text appears:

The captured workload must have been preprocessed and copied to the replay system. A directory object for the directory with the copied workload must exist in the replay system.

Under Directory, the following text appears:

Select a directory object that contains the last replayed workload or a preprocessed workload.

The Directory Object list is below the text. The Create Directory Object button is to the right of the list.

End of description.

PK o]m PK9A%OEBPS/img_text/spa_upgrade_9i_101.htmr Description of the illustration spa_upgrade_9i_101.gif

The Upgrade from 9i or 10.1 page is shown.

The Task Information section is shown. The Task Name field is empty. The SQL Tuning Set field is empty. The Description field is empty.

The Pre-upgrade Trial section is below the Task Information section. The Creation Method field is set to Build From SQL Tuning Set.

The Post-upgrade Trial section is below the Pre-upgrade Trial section. The Creation Method list is set to Execute SQLs. The Per-SQL Time Limit list is set to 5 minutes. The Database Link field is blank.

The Trial Comparison section is below the Post-upgrade Trial section and includes the Comparison Metric list, which is set to Elapsed Time.

The Schedule section is below the Trial Comparison section and includes the Time Zone list, which is set to America/Los_Angeles. The available options are Immediately (selected) and Later. The Date field is set to Jun 3, 2009. The Time lists are set to 6:43:00 AM.

End of description.

PK<wrPK9AOEBPS/img_text/spa.htmh Description of the illustration spa.gif

The SQL Performance Analyzer page is shown.

At the top of the page, the following text appears: Page Refreshed May 10, 2010 5:58:35 AM PDT. The Refresh button is to the right of the text. The View Data list is to the right of the Refresh button. "Real Time: 15 Second Refresh" is selected.

The following text appears: "SQL Performance Analyzer allows you to test and to analyze the effects of changes on the execution performance of SQL contained in a SQL Tuning Set."

The "SQL Performance Analyzer Workflows" section follows. The first sentence is: "Create and execute SQL Performance Analyzer Task experiments of different types using the following links."

6 links with associated descriptions follow:

  • The Upgrade from 9i or 10.1 link has the following description: "Test and analyze the effects of database upgrade from 9i or 10.1 on SQL Tuning Set performance."

  • The Upgrade from 10.2 or 11g link has the following description: "Test and analyze the effects of database upgrade from 10.2 or 11g on SQL Tuning Set performance."

  • The Parameter Change link has the following description: "Test and compare an initialization parameter change on SQL Tuning Set performance."

  • The Optimizer Statistics link has the following description: "Test and analyze the effects of optimizer statistics changes on SQL Tuning Set performance.

  • The Exadata Simulation link has the following description: "Simulate the effects of a Exadata Storage Server installation on SQL Tuning Set performance."

  • The Guided Workflow link has the following description: "Create a SQL Performance Analyzer Task and execute custom experiments using manually created SQL trials."

The SQL Performance Analyzer Tasks table follows. The table has the following columns: Select, Name, Owner, Last Modified, Current Step Name, Type, Status, SQLs Processed, and Steps Completed.

End of description.

PKHm h PK9A#OEBPS/img_text/dbr_capture_view.htm ! Description of the illustration dbr_capture_view.gif

The View Workload Capture page is shown.

On the right of the page, the following text appears: Page Refreshed Aug 6, 2010 5:00:24 PM PDT. The Refresh and OK buttons are to the right of the text.

The following text appears: Status In Progress. The Stop Capture button is to the right of the text.

Under Summary, the following text appears:

Name CAPTURE-x112-20100806164334

Directory Object CAPTURE2

Database Name X112

Capture Database Version 11.2.0.0.2

DBID 2506747715

Capture Error Code None

Capture Error Message None

Capture Data Size (MB) 0.04

Duration (hh:mm:ss) 00:10:30

Start Time Aug 6, 2010 4:49:54 PM PDT

End Time n/a

Start SCN 2119526

End SCN n/a

SQL Tuning Set Name CAPTURE_x112_2010080_c_3113294

There are two tabs on this page: Workload Profile (selected) and Workload Filters.

The Workload Profile tab contains two sections: Average Active Sessions and Comparison. The View Workload Capture Report button is to the right.

The Average Active Sessions section contains a chart. The chart has a y-axis labeled Active Sessions. The y-axis values range from 0 to 2.0. The chart has a x-axis labeled Aug 6, 2010. The x-axis values range from 4:49 to 5:40. A legend containing the labels Others (aqua) and Capture (blue) is to the right of the chart.

The Comparison contains a table with the following columns: (null), Total, Capture, Percentage of Total.

Row 1 has the following values: Database Time (hh:mm:ss), 00:03:16, 00:00:00, n/a

Row 2 has the following values: Average Active Sessions, 0.31, 0.00, n/a

Row 3 has the following values: User Calls, 9,088, 85, 0.94

Row 4 has the following values: Transactions, 9,770, 0, n/a

Row 5 has the following values: Session Logins, 52, 11, 21.15

Row 6 has the following values: Application Errors, n/a, 0, n/a

End of description.

PKЪ PK9AOEBPS/img_text/ratug001.htm{ Description of the illustration ratug001.gif

This diagram illustrates how Database Replay fits into a typical system architecture. The left side of the diagram shows the production system with the following components (from top to bottom): clients, middle tier, Oracle Database, and storage. The right side of the diagram shows the test system with the following components (from top to bottom): replay clients, Oracle Database, and storage. The bottom of the diagram shows a horizontal arrow pointing from the production system to the test system. The following steps are shown in the arrow (from left to right):

  • Workload capture

  • Workload preprocessing

  • Workload replay

  • Analysis and reporting

End of description.

PKEsPK9A"OEBPS/img_text/spa_report_info.htmq Description of the illustration spa_report_info.gif

The general information section of the SQL Performance Analyzer Task Report page is shown.

The SQL Tuning Set Name is STS_CURSOR_CACHE. The STS Owner is IMMCHAN. The Total SQL Statements field shows 1,134. The SQL Statements With Errors field shows 331. The SQL Statements Unsupported shows 15. The SQL Trial 1 shows SQL_TRIAL_1241213421833. The SQL Trial 2 shows SQL_TRIAL_1241213881923. The Comparison Metric is Elapsed Time. The SQL Statements With Timeout is 0.

End of description.

PK;ܓPK9A$OEBPS/img_text/dbr_replay_client.htmV Description of the illustration dbr_replay_client.gif

The Replay Workload: Wait for Client Connection page is shown.

On the right of the page, the following text appears: Step 4 of 5. The Cancel and Back buttons are to the left of the text and the Next button is to the right of the text.

The following text appears:

Database x090422

Capture Name CAPTURE-x090422-20090501115751

Logged In As IMMCHAN

The database is waiting for connections from the Replay Clients. Start the Replay Clients now. After all the Replay Clients have connected, proceed to the next step to continue the replay setup.

A clock icon appears with the following text: The database is waiting for connections from Replay Clients.

Under Client Connections, a table is shown with the following columns: SID, Host, OS Process ID, OS User Name, Program.

End of description.

PK9[VPK9AOEBPS/img_text/ratug002.htm, Description of the illustration ratug002.gif

The SQL Performance Analyzer workflow is shown. The diagram is divided vertically with a dotted line into two halves. The left side is labeled Production and the right side is labeled Test. Production shows three client machines at the top, three middle tier machines, and an Oracle database. Beneath the database are three disks representing storage. The right side of the diagram shows an Oracle database with three disks representing storage. An arrow points from the database on the Production side to the storage on the Test side. Underneath the diagram is a colored band pointing to the right. Underneath the Production side is an arrow labeled "Capture SQL." Five arrows on the right side are labeled as follows: "Execute SQL", "Make Change", "Execute SQL", "Compare Perf", and "Fix Regressed SQL".

End of description

PKK-PK9A#OEBPS/img_text/spa_param_change.htm Description of the illustration spa_param_change.gif

The Parameter Change page is shown.

The Task Information section is shown. The Task Name field is empty. The SQL Tuning Set field is empty. The Description field is empty. The Creation Method field is set to Execute SQLs. The Per-SQL Time Limit list is set to 5 minutes.

The Parameter Change section is below the Task Information section. The Parameter Name field is empty. The Base Value field is empty. The Changed Value field is empty.

The Trial Comparison section is below the Parameter Change section and includes the Comparison Metric list, which is set to Elapsed Time.

The Schedule section is below the Trial Comparison section and includes the Time Zone list, which is set to America/Los_Angeles. The available options are Immediately (selected) and Later. The Date field is set to Jun 3, 2009. The Time lists are set to 6:59:40 AM.

End of description.

PK!PK9A$OEBPS/img_text/dbr_replay_params.htm Description of the illustration dbr_replay_params.gif

The Replay Parameters tab on the Replay Workload: Customize Options page is shown.

The following text appears:

Some replay parameter can be modified to change the behavior of the replay. Refer to the Oracle Real Application Testing User's Guide for more information.

A table appears below the text with the following columns: Name, Description, Value.

Row 1 has the following values: synchronization, This parameter determines what type of synchronization will be used during workload replay..., SCN.

Row 2 has the following values: connect_time_scale, This parameter scales the elapsed time from when the workload capture started to when the session connects with the specified values and is interpreted as a % value..., 100%.

Row 3 has the following values: think_time_scale, This parameter scales the elapsed time between two successive user calls from the same session and is interpreted as a % value..., 100%.

Row 4 has the following values: think_time_auto_correct, This parameter reduces the think time if workload replay goes slower than workload capture..., TRUE.

End of description.

PK9PK9A(OEBPS/img_text/spa_task_param_change.htm, Description of the illustration spa_task_param_change.gif

The SQL Performance Analyzer Task: IMMCHAN.SPA_PARAM_CHANGE page is shown. The Page Refreshed field shows May 1, 2009 2:14:03 PM PDT. The Refresh button is shown.

The SQL Tuning Set section is collapsed.

The SQL Trials section includes the following text: "A SQL Trial captures the execution performance of the SQL Tuning Set under specific environmental conditions." The Create SQL Trial button is shown.

The table includes the following columns: SQL Trial Name, Description, Created, SQL Executed, and Status.

Row 1 has the following values: INITIAL_SQL_TRIAL, parameter sort_area_size set to 1048576, 5/1/09 2:08 PM, Yes, COMPLETED.

Row 2 has the following values: SECOND_SQL_TRIAL, parameter sort_area_size set to 2097152, 5/1/09 2:08 PM, Yes, COMPLETED.

The SQL Trial Comparisons section is shown. The text is: "Compare SQL Trials to assess change impact of environmental differences on SQL Tuning Set execution costs." The Run SQL Trial Comparison button is shown.

The table has the following columns: Trial 1 Name, Trial 2 Name, Compare Metric, Created, Status, Comparison Report, and SQL Tune Report.

Row 1 has the following values: INITIAL_SQL_TRIAL, SECOND_SQL_TRIAL, Elapsed Time, 5/1/09 2:08 PM, COMPLETED, (sunglasses icon), and null.

End of description.

PK$zPK9A'OEBPS/img_text/dbr_capture_schedule.htm Description of the illustration dbr_capture_schedule.gif

The Capture Workload: Schedule page is shown.

On the right of the page, the following text appears: Step 4 of 5. The Cancel and Back buttons are to the left of the text and the Next button is to the right of the text.

The following text appears:

Database x090422

Logged In As IMMCHAN

Under Job Parameters, in the Job Name field, the following text appears: CAPTURE-X090422-20090501114705. The Description field is empty.

Under Job Schedule, the following text appears:

Choose a start time and a capture duration so that the workload you are interested in replaying at a later time can be captured.

Under Start, the following options are listed:

  • Immediately (selected)

  • Later

Under Capture Duration, the following options are listed:

  • Not Specified (selected)

  • Duration

Under Host Credentials, in the Username field, the following text appears: immchan. The Password and Confirm Password fields show an encrypted value.

Under Database Credentials, in the Username field, the following text appears: immchan. The Password and Confirm Password fields show an encrypted value. In the Connect As list, SYSDBA is selected.

End of description.

PKX PK9AOEBPS/img_text/rule_param_4.htmD Description of the illustration rule_param_4.gif

This is a screenshot of the Space Estimates Tab. The graphic shows columns of Name, Table Rule, Source Size, and Estimated Subset Size. Example data appears in each column.

PKTTIDPK9AOEBPS/img_text/dbr.htm9 Description of the illustration dbr.gif

The Database Replay page is shown.

On the right of the page, the following text appears: Page Refreshed May 1, 2009 11:05:14 AM PDT. The Refresh button is to the right of the text.

The following text appears: "Database Replay allows workloads to be captured from production systems and re-executed with high fidelity on test copies of production databases. This enables detailed analysis of how the proposed changes may affect production systems; for instance, patching or upgrading database software."

A table follows with the following columns: Task, Task Name, Description, and Go to Task.

Row 1 has the following values: 1, Capture Workload, Capture a workload from the production environment. This can be scheduled to accommodate a database restart if desired, (forward icon).

Row 2 has the following values: 2, Preprocess Workload, Preprocessing prepares a captured workload for replay. You must do this once for every captured workload. Preprocessing is best performed in the test database. The captured workload must be accessible from the test database, (forward icon).

Row 3 has the following values: 3, Replay Workload, Replay the preprocessed workload on a test copy of the production database, (forward icon).

Below the table is a link labeled "View Workload Capture History". Below the link is the Active Capture and Replay table. The table has the following columns: Select, Name, Type, Directory Object, and Start Time. Row 1 has the following values: (null), No items found, (null), (null), (null).

End of description.

PKѾPK9A(OEBPS/img_text/spa_run_trial_compare.html Description of the illustration spa_run_trial_compare.gif

The Run SQL Trial Comparison page is shown.

The Cancel and Submit buttons are on the right of the page.

The Task Name is IMMCHAN.SPA_GUIDED_WORKFLOW. The SQL Tuning Set is IMMCHAN.STS_CURSOR_CACHE.

The Trial 1 Name is SQL_TRIAL_1241213421833. The Description field is empty. The SQL Executed field is Yes.

The Trial 2 Name list shows SQL_TRIAL_1241213881923. The Description field is empty. The SQL Executed field is Yes.

The Comparison Metric list shows Elapsed Time.

The Schedule section follows. The Time Zone list shows Pacific/Pago_Pago. Possible options are Immediately (selected) and Later. The Date is May 1, 2009. The Time is 2:21:00 PM.

End of description.

PKn qlPK9A'OEBPS/img_text/spa_report_sql_count.htm Description of the illustration spa_report_sql_count.gif

The SQL Statement Count section of the SQL Performance Analyzer Task Report page is shown.

A bar chart is shown. The y-axis is labeled SQL Count and ranges from 0 to 1,200. The x-axis is labeled Change in Elapsed Time. The x-axis has the following values: Improved, Regressed, and Unchanged. The bar for Improved has a y-axis value of 0. The bar for Regressed has a y-axis value of 0. The bar for Unchanged is green and has a y-axis value of 782, which represents Plan Unchanged. There are no bars colored orange, which represents Plans Changed.

End of description.

PKPK9A&OEBPS/img_text/spa_tasks_optimizer.htmw Description of the illustration spa_tasks_optimizer.gif

The SQL Performance Analyzer Tasks section is shown.

The Delete button is shown. To the right of the Delete button is the View Latest Report Button.

The table has the following columns: Select, Name, Owner, Last Modified, Current Step Name, Type, Status, SQLs Processed, and Steps Completed.

Row 1 has the following values: (selected), SPA_OPTIMIZER_STATS, IMMCHAN, July 26, 2010 5:38:54 PM, EXEC_3, Compare, Completed, 1584 of 1584, 4 of 4.

End of description.

PK\XPK9A(OEBPS/img_text/dbr_elapsed_time_comp.htm Description of the illustration dbr_elapsed_time_comp.gif

The Elapsed Time Comparison chart in the View Workload Replay page is shown.

In the Chart Type list, Elapsed Time Comparison is selected.

The chart has a y-axis with the values Capture and Replay. The chart has a x-axis labeled Elapsed Time (Minutes). The x-axis values range from 0 to 6. A legend containing the labels Replay Elapsed (green), Capture Elapsed (blue), and Not Yet Replayed (gray) is to the right of the chart. The x-axis value of Capture (blue) is just under 6. The x-axis value of Replay (green) is just over 2.

Below the chart, the following text appears:

Network Time (hh:mm:ss) 00:00:01

Think Time (hh:mm:ss) 00:00:58

Clients 1

Clients Finished 1

End of description.

PKwPK9A%OEBPS/img_text/dbr_replay_history.htm# Description of the illustration dbr_replay_history.gif

The Replay History section of the Replay Workload page is shown.

The View and Export AWR Data buttons are shown.

This section contains a table with the following columns: Select, Name, Status, Duration (hh:mm:ss), Start Time, End Time, AWR Data Exported

Row 1 has the following values: (selected), REPLAY-x112-20090604035557, Completed, 00:02:06, Jun 4, 2009 3:56:32 AM PDT, Jun 4, 2009 3:58:38 AM PDT, (check mark icon)

Row 2 has the following values: (de-selected), REPLAY-x112-20090604033037, Completed, 00:02:07, Jun 4, 2009 3:35:47 AM PDT, Jun 4, 2009 3:37:54 AM PDT, (check mark icon)

End of description.

PKQ(#PK9A%OEBPS/img_text/spa_task_optimizer.htm- Description of the illustration spa_task_optimizer.gif

The SQL Performance Analyzer Task: IMMCHAN.SPA_OPTIMIZER_STATS page is shown. The Page Refreshed field shows Jul 26, 2010 5:43:29 PM PDT. The Refresh button is shown.

The SQL Tuning Set section is collapsed.

The SQL Trials section includes the following text: "A SQL Trial captures the execution performance of the SQL Tuning Set under specific environmental conditions."

The table includes the following columns: SQL Trial Name, Description, Created, SQL Executed, and Status.

Row 1 has the following values: INITIAL_SQL_TRIAL, parameter optimizer_use_pending_statistics set to FALSE, 7/26/10 5:37 PM, Yes, COMPLETED.

Row 2 has the following values: SECOND_SQL_TRIAL, parameter optimizer_use_pending_statistics set to TRUE, 7/26/10 5:38 PM, Yes, COMPLETED.

The SQL Trial Comparisons section is shown. The text is: "Compare SQL Trials to assess change impact of environmental differences on SQL Tuning Set execution costs." The Run SQL Trial Comparison button is shown.

The table has the following columns: Trial 1 Name, Trial 2 Name, Compare Metric, Created, Status, Comparison Report, and SQL Tune Report.

Row 1 has the following values: INITIAL_SQL_TRIAL, SECOND_SQL_TRIAL, Optimizer Cost, 7/26/10 5:38 PM, COMPLETED, (sunglasses icon), and null.

End of description.

PK(rU PK9AOEBPS/img_text/create_adm.htm Description of the illustration create_adm.gif

This is a screenshot of the test data management architecture flowchart that appears when you select Enterprise ==> Quality Management ==> Data Discovery and Modeling. The left side of the graphic shows the components associated with the production environment, and the right side of the graphic shows the components associated with the test environment. The middle section of the graphic shows how the Application Data Model, Data Subsetting Definition, and Data Masking Definition relate to the two environments, and present a decision tree to assist you in deciding the order of tasks.

PK?PK9A&OEBPS/img_text/spa_upgrade_102_11g.html Description of the illustration spa_upgrade_102_11g.gif

The Upgrade from 10.2 or 11g page is shown.

The Task Information section is shown. The Task Name field is empty. The SQL Tuning Set field is empty. The Description field is empty.

The Pre-upgrade Trial section is below the Task Information section. The Creation Method list is set to Execute SQLs. The Per-SQL Time Limit list is set to 5 minutes. The Database Link field is blank.

The Post-upgrade Trial section is below the Pre-upgrade Trial section. Use the same system as in the pre-upgrade trial is checked. The Database Link field is blank.

The Trial Comparison section is below the Post-upgrade Trial section and includes the Comparison Metric list, which is set to Elapsed Time.

The Schedule section is below the Trial Comparison section and includes the Time Zone list, which is set to America/Los_Angeles. The available options are Immediately (selected) and Later. The Date field is set to Jun 3, 2009. The Time lists are set to 6:43:00 AM.

End of description.

PKkPK9A$OEBPS/img_text/spa_tasks_exadata.htm~ Description of the illustration spa_tasks_exadata.gif

The SQL Performance Analyzer Tasks section is shown.

The Delete button is shown. To the right of the Delete button is the View Latest Report Button.

The table has the following columns: Select, Name, Owner, Last Modified, Current Step Name, Type, Status, SQLs Processed, and Steps Completed.

Row 1 has the following values: (selected), SPA_EXADATA_SIM, IMMCHAN, Jun 3, 2009 4:50:48 AM, EXEC_12, Compare, Completed, 1543 of 1543, 4 of 4.

End of description.

PK{{sPK9A'OEBPS/img_text/dbr_process_schedule.htmZ Description of the illustration dbr_process_schedule.gif

The Preprocess Captured Workload: Schedule page is shown.

On the right of the page, the following text appears: Step 2 of 3. The Cancel and Back buttons are to the left of the text and the Next button is to the right of the text.

The following text appears:

Database x112

Version 11.2.0.2.0

Capture Name CAPTURE x112-20100726181024

Logged In As IMMCHAN

Specify the following information to schedule the preprocessing job.

Under Job Parameters, in the Job Name field, the following text appears: PREPROCESS-X112-20100726183202. The Description field is empty.

Under Start, the following options are listed:

  • Immediately (selected)

  • Later

Under Host Credentials, in the Username field, the following text appears: immchan. The Password and Confirm Password fields show an encrypted value.

End of description.

PK;0PK9A(OEBPS/img_text/data_masking_workflow.htm Description of the illustration data_masking_workflow.gif

The Data Masking workflow is shown. The diagram is a flowchart with two workflows. In the top workflow, Security & Application Admin points to Identify Sensitive Information, then Identify Data Formats, then branches to Format Library (branch ends) and Masking Definition. The Masking Definition branch points to Database Admin, then Clone Prod to Staging, then Generate Masking Script, then Execute Script, then Clone Staging to Test.

In the bottom workflow, the PROD database points to the Staging database (Mask is shown being applied to the Staging database), then the Test database.

End of description.

PK04ۉPK9AOEBPS/img_text/dbr_process.htm) Description of the illustration dbr_process.gif

The Preprocess Captured Workload page is shown.

The Cancel and Preprocess Workload buttons are to the right.

Under Directory, the following text appears:

Select a directory object that contains a captured workload.

In the Directory Object list, CAPTURE1 is selected. The Create Directory Object button is to the right of the list.

Under Capture Summary, the following text appears:

Name CAPTURE-x112-20100726181024

Status Completed

Directory Object CAPTURE1

Database Name X112

Capture Database Version 11.2.0.2.0

DBID 2506747715

Capture Error Code None

Capture Error Message None

Capture Data Size (MB) 0.04

Duration (hh:mm:ss) 00:08:09

Start Time Jul 26, 2010 6:12:45 PM PDT

End Time Jul 26, 2010 6:20:54 PM PDT

Start SCN 652040

End SCN 682254

Preprocessed Database Version 11.2.0.2.0

SQL Tuning Set Name CAPTURE_x112_20100726_c_161852

End of description.

PK}.)PK9A&OEBPS/img_text/dbr_capture_options.htm u Description of the illustration dbr_capture_options.gif

The Capture Workload: Options page is shown.

On the right of the page, the following text appears: Step 2 of 5. The Cancel and Back buttons are to the left of the text and the Next button is to the right of the text.

The following text appears:

Database x112

Logged In As IMMCHAN

Under Database Restart Options, the following text appears:

A database restart prior to a workload capture is recommended to ensure a complete and accurate capture. Not restarting could capture in-flight transactions, which may adversely affect the replay of subsequent captured transactions.

The following options are listed:

  • Do not restart the database prior to the capture. (selected)

  • Restart the database prior to the capture.

Under SQL Performance Analyzer, the following text appears:

SQL Performance Analyzer allows you to test and to analyze the effects of changes on the execution performance of SQL contained in a SQL Tuning Set.

The option Capture SQL statements into a SQL Tuning Set during workload capture is selected.

Under Workload Filters, the following text appears:

Workload filters can customize the workload to be captured. By default, most external client requests made to the database are captured. Refer to the Oracle Real Application Testing User's Guide for more information.

In the Filter Mode list, Exclusion is selected.

Under Excluded Sessions, the following text appears: All sessions will be captured except for those listed below.

A table follows with the following columns: Filter Name, Type, Session Attribute, Value, Remove.

Row 1 has the following values: Oracle Management Service (DEFAULT), Excluded, Program, OMS, (remove icon).

Row 2 has the following values: Oracle Management Agent (DEFAULT), Excluded, Program, emagent%, (remove icon).

End of description.

PK5' PK9A%OEBPS/img_text/dbr_process_review.htm Description of the illustration dbr_process_review.gif

The Preprocess Captured Workload: Review page is shown.

On the right of the page, the following text appears: Step 3 of 3. The Cancel and Back buttons are to the left of the text and the Submit button is to the right of the text.

The following text appears:

Workload CAPTURE-x112-20100726181024 will be preprocessed on database 'x112'.

Job Name PREPROCESS-X112-20100726183202

Database x112

Preprocessed Database Version 11.2.0.2.0

Directory Object CAPTURE1

Capture Name CAPTURE-X112-20100726181024

Captured Data Size (MB) 0.04

Start Time Immediately

Run Workload Analyzer Yes

End of description.

PKL2PK9A)OEBPS/img_text/spa_tasks_param_change.htmw Description of the illustration spa_tasks_param_change.gif

The SQL Performance Analyzer Tasks section is shown.

The Delete button is shown. To the right of the Delete button is the View Latest Report Button.

The table has the following columns: Select, Name, Owner, Last Modified, Current Step Name, Type, Status, SQLs Processed, and Steps Completed.

Row 1 has the following values: (selected), SPA_PARAM_CHANGE, IMMCHAN, May 1, 2009 2:08:47 PM, EXEC_258, Compare, Completed, 1134 of 1134, 4 of 4.

End of description.

PK2PK9A$OEBPS/img_text/dbr_process_empty.htm" Description of the illustration dbr_process_empty.gif

The Preprocess Captured Workload page is shown.

The Cancel and Preprocess Workload (inactive) buttons are to the right.

Under Directory, the following text appears:

Select a directory object that contains a captured workload.

The Directory Object list is below the text. The Create Directory Object button is to the right of the list.

End of description.

PK8'"PK9A)OEBPS/img_text/dbr_user_call_progress.htmz Description of the illustration dbr_user_call_progress.gif

The User Call Progress chart in the View Workload Replay page is shown.

In the Chart Type list, User Call Progress is selected.

The chart has a y-axis labeled User Calls. The y-axis values range from 0 to 200. The chart has a x-axis labeled Elapsed Time (Minutes). The x-axis values range from 0.0 to 6.0. A legend containing the labels Replay (green) and Capture (blue) is to the right of the chart. The x-axis value of the Replay (green) line increases from 0.0 to just over 2.0, and its y-axis value increases from 0 to just under 200. The x-axis value of the Capture (blue) line increases from 1.5 to just under 6.0, and its y-axis value increases from 0 to just under 200.

Below the chart, the following text appears:

Network Time (hh:mm:ss) 00:00:01

Think Time (hh:mm:ss) 00:00:58

Clients 1

Clients Finished 1

End of description.

PK(يPK9A&OEBPS/img_text/dbr_capture_history.htm  Description of the illustration dbr_capture_history.gif

The View Workload Capture History page is shown.

On the right of the page, the following text appears: Page Refreshed May 1, 2009 12:20:21 PM PDT. The Refresh button is to the right of the text.

The following buttons are to the top of a table: View, Delete, Export AWR Data.

The table contains the following columns: Select, Capture Name, Status, Directory Object, Start SCN, Duration (hh:mm:ss), Start Time, AWR Data Exported.

Row 1 has the following values: (selected), CAPTURE-X090422-20090501115751, Completed, CAPTURE1, 1427095, 00:15:33, May 1, 2009 11:59:18 AM PDT, (check mark).

End of description.

PK % PK9AOEBPS/img_text/dbr_replay.htmK Description of the illustration dbr_replay.gif

The Replay Workload page is shown.

The Cancel and Set Up Replay buttons are to the right.

The following text appears:

The captured workload must have been preprocessed and copied to the replay system. A directory object for the directory with the copied workload must exist in the replay system.

Under Directory, the following text appears:

Select a directory object that contains the last replayed workload or a preprocessed workload.

In the Directory Object list, CAPTURE1 is selected. The Create Directory Object button is to the right of the list.

Under Capture Summary, the following text appears:

Name CAPTURE-x112-20100509051233

Status Completed

Directory Object CAPTURE1

Database Name X112

Capture Database Version 11.2.0.2.0

DBID 2499870771

Capture Error Code None

Capture Error Message None

Capture Data Size (MB) 0.02

Duration (hh:mm:ss) 00:02:07

Start Time May 9, 2010 5:13:20 AM PDT

End Time May 1, 2009 5:15:27 AM PDT

Start SCN 607434

End SCN 607778

Preprocessed Database Version 11.2.0.2.0

SQL Tuning Set Name CAPTURE_x112_20100509_c_119590

The Replay History section contains a table with the following columns: Select, Name, Status, Duration (hh:mm:ss), Start Time, End Time, AWR Data Exported.

End of description.

PK MPK9A&OEBPS/img_text/spa_optimizer_stats.htmt Description of the illustration spa_optimizer_stats.gif

The Optimizer Statistics page is shown.

The Task Information section is shown. The Task Name field is empty. The SQL Tuning Set field is empty. The Description field is empty. The Creation Method field is set to Execute SQLs. The Per-SQL Time Limit list is set to 5 minutes.

The Trial Comparison section is below the Task Information section and includes the Comparison Metric field, which is set to Elapsed Time.

The Schedule section is below the Trial Comparison section and includes the Time Zone list, which is set to Pacific/Pago_Pago. The available options are Immediately (selected) and Later. The Date field is set to May 10, 2010. The Time lists are set to 7:49:55 AM.

End of description.

PK!'ytPK9A&OEBPS/img_text/spa_guided_workflow.htm/ Description of the illustration spa_guided_workflow.gif

The Guided Workflow page is shown.

Page Refreshed show May 1, 2009 2:22:50 PM PDT. The Refresh button is shown. The View Data list shows Real Time: 15 Second Refresh. The text reads: "The following guided workflow contains the sequence of steps necessary to execute a successful two-trial SQL Performance Analyzer test. Note: Be sure that the Trial environment matches the tests you want to conduct."

The table has the following columns: Step, Description, Executed, Status, and Execute.

Row 1 has the following values: 1, Create SQL Performance Analyzer Task based on SQL Tuning Set, null, (small square icon), (arrow icon).

Row 2 has the following values: 2, Create SQL Trial in Initial Environment, null, (small square icon), (grayed out arrow).

Row 3 has the following values: 3, Create SQL Trial in Changed Environment, null, (small square icon), (grayed out arrow).

Row 4 has the following values: 4, Compare Step 2 and Step 3, null, (small square icon), (grayed out arrow).

Row 5 has the following values: 5, View Trial Comparison Report, null, (small square icon), (grayed out arrow).

End of description.

PKCj14/PK9A)OEBPS/img_text/dbr_replay_view_report.htm. Description of the illustration dbr_replay_view_report.gif

The Report tab on the View Workload Replay page is shown.

Under Workload Replay Report, the Run Report button is shown.

Under Compare Period Report, in the First Workload Capture or Replay list, CAPTURE-X112-20100726181024 (Jul 26, 2010 6:12:45 PM) is selected. In the Second Workload Capture or Replay list, REPLAY-x112-20100726185136 (Jul 26, 2010 7:04:29 PM) is selected. The Run Replay Compare Period Report, Run AWR Compare Period Report, and Run SQL Performance Analyzer Report buttons are below the lists.

Under AWR Report, in the Workload Capture or Replay list, REPLAY-x112-20100726185136 (Jul 26, 2010 7:04:29 PM) is selected. The Run Report button is below the list.

Under ASH Report, in the Workload Capture or Replay list, REPLAY-x112-20100726185136 (Jul 26, 2010 7:04:29 PM) is selected. In the Start Date field, the following text is inputted: Jul 26, 2010. In the End Date field, the following text is inputted: Jul 26, 2010. In the Start Time field, 7:04 PM is selected. In the End Time field, 7:09 PM is selected. In the Filter list, SID is selected. The Run Report button is below the list.

End of description.

PK*W3.PK9AOEBPS/spa_pre_change.htm:9 Creating a Pre-Change SQL Trial

4 Creating a Pre-Change SQL Trial

After creating a SQL Performance Analyzer task and selecting a SQL tuning set as the input source, you need to establish the initial environment on the test system. Establishing the database environment on the test system involves manually making any necessary environmental changes that affect SQL optimization and performance. These changes may include changing initialization parameters, gathering or setting optimizer statistics, and creating indexes. It is recommended that you build a test system that is as similar to the production system as possible. The dedicated workflows in Enterprise Manager simplifies this process by creating both SQL trials automatically and performing the change restricted to the testing session. For information about setting up the database environment, see "Setting Up the Test System".


Note:

You can optionally run SQL trials on a remote system by providing access to a public database link. When conducting remote SQL trials, the database version of the remote database where the SQL statements are executed must be less than or equal to the database version of the database to which it connects. Starting with Oracle Database release 11.2.0.2, the remote database can be a read-only database, such as an Oracle Active Data Guard instance.

Once the environment on the test system is properly configured, you can build the pre-change version of performance data before performing the system change. You can build SQL trials using SQL Performance Analyzer by using one of the following methods:

  • Executing the SQL statements in the workload

  • Generating execution plans for the SQL statements in the workload

  • Loading performance data and execution plans from a SQL tuning set (APIs only)

For more information, see "Measuring the Pre-Change SQL Performance"

This chapter described how to create the pre-change SQL trial and contains the following topics:


Note:

The primary interface for creating a pre-change SQL trial is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can create a pre-change SQL trial using the DBMS_SQLPA PL/SQL package.


Tip:

Before creating a pre-change SQL trial, you need to create a SQL Performance Analyzer task, as described in Chapter 3, "Creating an Analysis Task".

4.1 Creating a Pre-Change SQL Trial Using Enterprise Manager

This section describes how to collect the pre-change SQL performance data using Oracle Enterprise Manager.

To create a pre-change SQL trial using Enterprise Manager:

  1. On the Guided Workflow page, click the Execute icon for the Create SQL Trial in Initial Environment step.

    The Create SQL Trial page appears. A summary of the selected SQL tuning set containing the SQL workload is displayed.

    Description of spa_create_trial.gif follows
    Description of the illustration spa_create_trial.gif

  2. In the SQL Trial Name field, enter the name of the SQL trial.

  3. In the SQL Trial Description field, enter a description of the SQL trial.

  4. In the Creation Method list, determine how the SQL trial is created and what contents are generated by performing one of the following actions:

    • Select Execute SQLs Locally.

      The SQL trial generates both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements locally on the test system.

    • Select Execute SQLs Remotely.

      The SQL trial generates both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements remotely on another test system over a public database link.

    • Select Generate Plans Locally.

      The SQL trial invokes the optimizer to create execution plans locally on the test system, after taking bind values and optimizer configuration into account, without actually running the SQL statements.

    • Select Generate Plans Remotely.

      The SQL trial invokes the optimizer to create execution plans remotely on another test system, after taking bind values and optimizer configuration into account, over a public database link without actually running the SQL statements.

    • Select Build From SQL Tuning Set.

      The SQL trial copies the execution plans and statistics from the SQL tuning set directly into the trial.

    For more information about the different methods, see "Measuring the Pre-Change SQL Performance".

  5. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  6. Ensure that the database environment on the test system matches the production environment as closely as possible, and select Trial environment established.

  7. In the Schedule section:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  8. Click Submit.

    The Guided Workflow page appears when the execution begins.

    The status icon of this step changes to a clock while the execution is in progress. To refresh the status icon, click Refresh. Depending on the options selected and the size of the SQL workload, the execution may take a long time to complete. After the execution is completed, the Status icon will change to a check mark and the Execute icon for the next step is enabled.

  9. Once the pre-change performance data is built, you can make the system change and build the post-change performance data by re-executing the SQL statements in the SQL tuning set on the post-change test system, as described in Chapter 5, "Creating a Post-Change SQL Trial".

4.2 Creating a Pre-Change SQL Trial Using APIs

This section describes how to build the pre-change performance data by using the DBMS_SQLPA.EXECUTE_ANALYSIS_TASK procedure.

Call the EXECUTE_ANALYSIS_TASK procedure using the following parameters:

  • Set the task_name parameter to the name of the SQL Performance Analyzer task that you want to execute.

  • Set the execution_type parameter in one of the following ways:

    • Set to EXPLAIN PLAN to generate execution plans for all SQL statements in the SQL tuning set without executing them.

    • Set to TEST EXECUTE (recommended) to execute all statements in the SQL tuning set and generate their execution plans and statistics. When TEST EXECUTE is specified, the procedure generates execution plans and execution statistics. The execution statistics enable SQL Performance Analyzer to identify SQL statements that have improved or regressed. Collecting execution statistics in addition to generating execution plans provides greater accuracy in the performance analysis, but takes longer.

    • Set to CONVERT SQLSET to refer to a SQL tuning set for the execution statistics and plans for the SQL trial. Values for the execution parameters SQLSET_NAME and SQLSET_OWNER should also be specified.

  • Specify a name to identify the execution using the execution_name parameter. If not specified, then SQL Performance Analyzer automatically generates a name for the task execution.

  • Specify execution parameters using the execution_params parameters. The execution_params parameters are specified as (name, value) pairs for the specified execution. For example, you can set the following execution parameters:

    • The time_limit parameter specifies the global time limit to process all SQL statements in a SQL tuning set before timing out.

    • The local_time_limit parameter specifies the time limit to process each SQL statement in a SQL tuning set before timing out.

    • To perform a remote test execute, set the DATABASE_LINK task parameter to the global name of a public database link connecting to a user with the EXECUTE privilege for the DBMS_SQLPA package and the ADVISOR privilege on the test system.

    • To fully execute DML statements—including acquiring row locks and modifying row—set the EXECUTE_FULLDML parameter to TRUE. SQL Performance Analyzer will issue a rollback after executing the DML statements to prevent persistent changes from being made. The default value for this parameter is FALSE, which executes only the query portion of the DML statement without modifying the data.

    • To restore the relevant captured init.ora settings during a test execute, set the APPLY_CAPTURED_COMPILENV parameter to TRUE. This is not the default behavior because typically you are running SQL trials to test changes when changing the environment. However, this method may be used in cases when the init.ora settings are not being changed (such as creating an index). This method is not supported for remote SQL trials.

The following example illustrates a function call made before a system change:

EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', - 
       execution_name => 'my_exec_BEFORE_change');

Once the pre-change performance data is built, you can make the system change and build the post-change performance data by re-executing the SQL statements in the SQL tuning set on the post-change test system, as described in Chapter 5, "Creating a Post-Change SQL Trial".


See Also:


PKW$::PK9AOEBPS/dbr_capture.htm Capturing a Database Workload

9 Capturing a Database Workload

This chapter describes how to capture a database workload on the production system. The first step in using Database Replay is to capture the production workload. For more information about how capturing a database workload fits within the Database Replay architecture, see "Workload Capture".

This chapter contains the following sections:

9.1 Prerequisites for Capturing a Database Workload

Before starting a workload capture, you should have a strategy in place to restore the database on the test system. Before a workload can be replayed, the logical state of the application data on the replay system should be similar to that of the capture system when replay begins. To accomplish this, consider using one of the following methods:

  • Recovery Manager (RMAN) DUPLICATE command

  • Snapshot standby

  • Data Pump Import and Export

This will allow you to restore the database on the replay system to the application state as of the workload capture start time.


See Also:


9.2 Workload Capture Options

Proper planning before workload capture is required to ensure that the capture will be accurate and useful when replayed in another environment.

Before capturing a database workload, carefully consider the following options:

9.2.1 Restarting the Database

While this step is not required, Oracle recommends that the database be restarted before capturing the workload to ensure that ongoing and dependent transactions are allowed to be completed or rolled back before the capture begins. If the database is not restarted before the capture begins, transactions that are in progress or have yet to be committed will not be fully captured in the workload. Ongoing transactions will thus not be replayed properly, because only the part of the transaction whose calls were captured will be replayed. This may result in undesired replay divergence when the workload is replayed. Any subsequent transactions with dependencies on the incomplete transactions may also generate errors during replay. On a busy system, it is normal to see some replay divergence, but the replay can still be used to perform meaningful analysis of a system change if the diverged calls do not make up a significant portion of the replay in terms of DB time and other such key attributes.

Before restarting the database, determine an appropriate time to shut down the production database before the workload capture when it is the least disruptive. For example, you may want to capture a workload that begins at 8:00 a.m. However, to avoid service interruption during normal business hours, you may not want to restart the database during this time. In this case, you should consider starting the workload capture at an earlier time, so that the database can be restarted at a time that is less disruptive.

Once the database is restarted, it is important to start the workload capture before any user sessions reconnect and start issuing any workload. Otherwise, transactions performed by these user sessions will not be replayed properly in subsequent database replays, because only the part of the transaction whose calls were executed after the workload capture is started will be replayed. To avoid this problem, consider restarting the database in RESTRICTED mode using STARTUP RESTRICT, which will only allow the SYS user to login and start the workload capture. By default, once the workload capture begins, any database instance that are in RESTRICTED mode will automatically switch to UNRESTRICTED mode, and normal operations can continue while the workload is being captured.

Only one workload capture can be performed at any given time. If you have a Oracle Real Application Clusters (Oracle RAC) configuration, workload capture is performed for the entire database. To enable a clean state before starting to capture the workload, all the instances need to be restarted.

To restart all instances in a Oracle RAC configuration before workload capture:

  1. Shut down all the instances.

  2. Restart one of the instances.

  3. Start workload capture.

  4. Restart the rest of the instances.


See Also:


9.2.2 Using Filters with Workload Capture

By default, all user sessions are recorded during workload capture. You can use workload filters to specify which user sessions to include in or exclude from the workload during workload capture. There are two types of workload filters: inclusion filters and exclusion filters. You can use either inclusion filters or exclusion filters in a workload capture, but not both.

Inclusion filters enable you to specify user sessions that will be captured in the workload. This is useful if you want to capture only a subset of the database workload.

Exclusion filters enable you to specify user sessions that will not be captured in the workload. This is useful if you want to filter out session types that do not need to captured in the workload, such as those that monitor the infrastructure—like Oracle Enterprise Manager (EM) or Statspack—or other such processes that are already running on the test system. For example, if the system where the workload will be replayed is running EM, replaying captured EM sessions on the system will result in duplication of workload. In this case, you may want to use exclusion filters to filter out EM sessions.

9.2.3 Setting Up the Capture Directory

Determine the location and set up a directory where the captured workload will be stored. Before starting the workload capture, ensure that the directory is empty and has ample disk space to store the workload. If the directory runs out of disk space during a workload capture, the capture will stop. To estimate the amount of disk space that is required, you can run a test capture on your workload for a short duration (such as a few minutes) to extrapolate how much space you will need for a full capture. To avoid potential performance issues, you should also ensure that the target replay directory is mounted on a separate file system.

For Oracle RAC, consider using a shared file system. Alternatively, you can set up one capture directory path that resolves to separate physical directories on each instance, but you will need to consolidate the files created in each of these directories into a single directory. The entire content of the local capture directories on each instance (not only the capture files) must be copied to the shared directory before it can be used for preprocessing or data masking. For example, assume that you are:

  • Running a Oracle RAC environment in Linux with two database instances named host1 and host2

  • Using a capture directory object named CAPDIR that resolves to /$ORACLE_HOME/rdbms/capture on both instances

  • Using a shared directory that resides in /nfs/rac_capture

You will need to login into each host and run the following command:

cp -r /$ORACLE_HOME/rdbms/capture/* /nfs/rac_capture

After this is done for both instances, the /nfs/rac_capture shared directory is ready to preprocessed or masked.

9.3 Workload Capture Restrictions

The following types of client requests are not captured in a workload:

  • Direct path load of data from external files using utilities such as SQL*Loader

  • Non-PL/SQL based Advanced Queuing (AQ)

  • Flashback queries

  • Oracle Call Interface (OCI) based object navigations

  • Non SQL-based object access

  • Distributed transactions (any distributed transactions that are captured will be replayed as local transactions)

9.4 Enabling and Disabling the Workload Capture Feature

Oracle Database 10g Release 2 supports using Database Replay to capture a database workload that can be used to test database upgrades to Oracle Database 11g and subsequent releases. To use this feature, it must be enabled on the capture system running Oracle Database 10g Release 2 before a workload can be captured. By default, the workload capture feature is not enabled in Oracle Database 10g Release 2 (10.2). You can enable or disable this feature by specifying the PRE_11G_ENABLE_CAPTURE initialization parameter.


Note:

It is only necessary to enable the workload capture feature if you are capturing a database workload on a system running Oracle Database 10g Release 2.

If you are capturing a database workload on a system running Oracle Database 11g Release 1 or a later release, it is not necessary to enable the workload capture feature because it is enabled by default. Furthermore, the PRE_11G_ENABLE_CAPTURE initialization parameter is only valid with Oracle Database 10g Release 2 (10.2) and cannot be used with subsequent releases.


To enable the workload capture feature on a system running Oracle Database 10g Release 2, run the wrrenbl.sql script at the SQL prompt:

@$ORACLE_HOME/rdbms/admin/wrrenbl.sql

The wrrenbl.sql script calls the ALTER SYSTEM SQL statement to set the PRE_11G_ENABLE_CAPTURE initialization parameter to TRUE. If a server parameter file (spfile) is being used, the PRE_11G_ENABLE_CAPTURE initialization parameter will be modified for the currently running instance and recorded in the spfile, so that the new setting will persist when the database is restarted. If a spfile is not being used, the PRE_11G_ENABLE_CAPTURE initialization parameter will only be modified for the currently running instance, and the new setting will not persist when the database is restarted. To make the setting persistent without using a spfile, you will need to manually specify the parameter in the initialization parameter file (init.ora).

To disable workload capture, run the wrrdsbl.sql script at the SQL prompt:

@$ORACLE_HOME/rdbms/admin/wrrdsbl.sql

The wrrdsbl.sql script calls the ALTER SYSTEM SQL statement to set the PRE_11G_ENABLE_CAPTURE initialization parameter to FALSE. If a server parameter file (spfile) is being used, the PRE_11G_ENABLE_CAPTURE initialization parameter will be modified for the currently running instance and also recorded in the spfile, so that the new setting will persist when the database is restarted. If a spfile is not being used, the PRE_11G_ENABLE_CAPTURE initialization parameter will only be modified for the currently running instance, and the new setting will not persist when the database is restarted. To make the setting persistent without using a spfile, you will need to manually specify the parameter in the initialization parameter file (init.ora).


Note:

The PRE_11G_ENABLE_CAPTURE initialization parameter can only be used with Oracle Database 10g Release 2 (10.2). This parameter is not valid in subsequent releases. After upgrading the database, you will need to remove the parameter from the server parameter file (spfile) or the initialization parameter file (init.ora); otherwise, the database will fail to start up.


See Also:


9.5 Capturing a Database Workload Using Enterprise Manager

This section describes how to capture a database workload using Enterprise Manager. The primary tool for capturing database workloads is Oracle Enterprise Manager.

If for some reason Oracle Enterprise Manager is unavailable, you can capture database workloads using APIs, as described in "Capturing a Database Workload Using APIs".

To capture a database workload using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

    Description of dbr.gif follows
    Description of the illustration dbr.gif

  2. In the Go to Task column, click the icon that corresponds to the Capture Workload task.

    The Capture Workload: Plan Environment page appears.

    Description of dbr_capture_plan_env.gif follows
    Description of the illustration dbr_capture_plan_env.gif

  3. Verify that all prerequisites are met before proceeding.

    For information about the prerequisites, see "Prerequisites for Capturing a Database Workload".

    For each verified prerequisite, check the box in the Acknowledge column. Once all prerequisites are verified, click Next.

    The Capture Workload: Options page appears.

    Description of dbr_capture_options.gif follows
    Description of the illustration dbr_capture_options.gif

  4. Select the workload capture options:

    • Under Database Restart Options, select whether the database will be restarted before workload capture.

      It is recommended that the database be restarted before capturing a workload to enable a clean state for workload capture. Otherwise, potential problems may arise when replaying the workload. For more information, see "Restarting the Database".

    • Under SQL Performance Analyzer, select whether to capture SQL statements into a SQL tuning set during workload capture.

      While Database Replay provide analysis of how a change affects your entire system, you can use a SQL tuning set in conjunction with SQL Performance Analyzer to gain a more SQL-centric analysis of how the change affects SQL statements and execution plans.

      By capturing a SQL tuning set during workload capture and another SQL tuning set during workload replay, you can use SQL Performance Analyzer to compare these SQL tuning sets to each other, without having to re-execute the SQL statements. This enables you to obtain a SQL Performance Analyzer report and compare the SQL performance, before and after change, while running Database Replay.

      For information about comparing SQL tuning sets using SQL Performance Analyzer reports, see "Generating SQL Performance Analyzer Reports Using APIs".


      Note:

      Capturing SQL statements into a SQL tuning set is the default and recommended workload capture option.

    • Under Workload Filters, select whether to use exclusion filters by selecting Exclusion in the Filter Mode list, or inclusion filters by selecting Inclusion in the Filter Mode list.

      To add filters, click Add Another Row and enter the filter name, session attribute, and value in the corresponding fields. For more information, see "Using Filters with Workload Capture".

    After selecting the desired workload capture options, click Next.

    The Capture Workload: Parameters page appears.

    Description of dbr_capture_params.gif follows
    Description of the illustration dbr_capture_params.gif

  5. Define the parameters for the workload capture:

    • Under Workload Capture Parameters, in the Capture Name field, enter a name for the workload capture. In the Directory Object list, select the directory where the captured workload will be stored. You must select a directory that does not already contain a workload capture. For more information, see "Setting Up the Capture Directory".

      To create a directory object, click Create Directory Object. The Create Directory Object page appears. In the Name field, enter a name for the directory object. In the Path field, enter the path to the directory object. To test if the directory exists in the file system, click Test File System. If the directory does not exist, it will need to be created first.

    • Under Database Shutdown Parameters, select the type of database shutdown method to perform. This option only appears if the database will be restarted before workload capture. The types of available database shutdown methods include:

      • Immediate

        An immediate shutdown will roll back all active transactions and disconnect all connected users before shutting down the database.

      • Transactional

        A transactional shutdown will first complete all active transactions and then disconnect the connected user before shutting down the database.

      • Abort

        An abort shutdown will shut down the database instantaneously by aborting all active transactions.

      • Force the database to shutdown

        A force shutdown will shut down the database if any cluster-managed database services are operational. This option only appears if you are running Oracle RAC.

    • Under Database Startup Parameters, select if the database will restart using the current default server parameter file (spfile) or a specific parameter file (pfile). To select a pfile, enter the fully qualified name for the pfile. This option only appears if the database will be restarted before workload capture.

    After defining the parameters for the workload capture, click Next.

    The Capture Workload: Schedule page appears.

    Description of dbr_capture_schedule.gif follows
    Description of the illustration dbr_capture_schedule.gif

  6. Under Job Parameters, define the parameters for the job:

    • In the Job Name field, enter a name for the job name or accept the system generated name.

    • In the Description field, enter an optional description of the job.

  7. Under Job Schedule, specify a start time and duration for the workload capture:

    • Under Start, select whether the job will run immediately by selecting Immediately, or at a later time by selecting Later and specifying the desired time using the Date and Time fields.

    • Under Capture Duration, specify how long the job will run by selecting Duration and specifying the desired duration using the Hours and Minutes fields. To not specify a capture duration, select Not Specified. If a capture duration is unspecified, the job must be stopped manually.

  8. Under Job Credentials, enter the host and database login credentials:

    • Under Host Credentials, enter the username and password for the host system.

    • Under Database Credentials, enter the username and password for the database that will used for the workload capture. The user needs the DBA privilege in order to restart the database. This section only appears if the database will be restarted before workload capture.

    Click Next.

    The Capture Workload: Review page appears.

    Description of dbr_capture_review.gif follows
    Description of the illustration dbr_capture_review.gif

  9. Review the job settings for the workload capture that have been defined.

    To run the job, click Submit. To make changes, click Back. To cancel the workload capture without saving changes, click Cancel.

  10. Depending on the job settings that have been defined:

    • If the job is scheduled to start immediately and the database will be restarted, the Confirmation: Restart Database page appears.

      To restart the database, click Yes.

      The Information: Restart Database page appears while the database is being restarted. Once the database is restarted, the workload capture begins automatically. Click Refresh.

      The View Workload Capture page appears.

    • If the job is scheduled to start immediately but the database will not be restarted, the workload capture begins automatically and the View Workload Capture page appears.

    • If the job is scheduled to start at a later time, the Database Replay page appears with a confirmation that the job has been successfully created.

    Once workload capture begins, you can monitor the capture process using the View Workload Capture page, as described in "Monitoring Workload Capture Using Enterprise Manager".


Tip:

After capturing a workload on the production system, you need to preprocess the captured workload, as described in Chapter 10, "Preprocessing a Database Workload".

9.6 Monitoring Workload Capture Using Enterprise Manager

This section describes how to monitor workload capture using Enterprise Manager. The primary tool for monitoring workload capture is Oracle Enterprise Manager. Using Enterprise Manager, you can:

  • Monitor or stop an active workload capture

  • View or delete a completed workload capture

If for some reason Oracle Enterprise Manager is unavailable, you can monitor workload capture using views, as described in "Monitoring Workload Capture Using Views".

This section contains the following topics:

9.6.1 Monitoring an Active Workload Capture

This section describes how to monitor an active workload capture using Enterprise Manager.

To monitor an active workload capture:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. Under Active Capture and Replay, select the workload capture you want to monitor and click View.

    The View Workload Capture page appears.

    Description of dbr_capture_view.gif follows
    Description of the illustration dbr_capture_view.gif

  3. Under Summary, information about the workload capture is displayed.

  4. To view the workload profile, click the Workload Profile tab.

    Under Average Active Sessions, the Active Sessions chart provides a graphic display of the captured session activity compared to the uncaptured session activity (such as background activities or filtered sessions).

    Under Comparison, various statistics for the workload capture are displayed, including database time, average active sessions, user calls, transactions, session logins, and application errors. The statistics for the total session activity are displayed in the Total column, and the statistics for the captured session activity are displayed in the Capture column. The Percentage of Total column displays the percentage of total session activity that are being captured in the workload.

    To view the workload capture report, click View Workload Capture Report.

  5. To view workload filters used by the workload capture, click the Workload Filters tab.

    Details about the workload filters used by the workload capture are displayed, including the workload filter name, type, session attribute, and value.

  6. To return to the Database Replay page, click OK.

9.6.2 Stopping an Active Workload Capture

This section describes how to stop an active workload capture using Enterprise Manager.

To stop an active workload capture:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. Under Active Capture and Replay, select the workload capture you want to stop and click Stop.

    The Confirmation page appears.

  3. To confirm that you want to stop the workload capture, click Yes.

    Once the workload capture is stopped, the Export AWR Data page appears.

  4. To export the Automatic Workload Repository (AWR) data, click Yes.

    The Export AWR Data page appears; click Yes.

    Exporting AWR data enables detailed analysis of the workload. This data is also required if you plan to run the Replay Compare Period report or the AWR Compare Period report on a pair of workload captures or replays.

    If you choose not to export AWR data, click No. You can still export AWR data from a completed workload capture at a later time from the View Workload Capture History page.

    The View Workload Capture page appears.


See Also:


9.6.3 Managing a Completed Workload Capture

This section describes how to manage a completed workload capture using Enterprise Manager.

To manage a completed workload capture:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. Click View Workload Capture History.

    The View Workload Capture History page appears.

    Description of dbr_capture_history.gif follows
    Description of the illustration dbr_capture_history.gif

  3. To delete a workload capture, select the workload capture and click Delete.

    This will not remove the capture files from the capture directory.

  4. To export AWR data for a workload capture, select the workload capture and click Export AWR Data.

    The Export AWR Data page appears; click Yes.

    Exporting AWR data enables detailed analysis of the workload. This data is also required if you plan to run the Replay Compare Period report or the AWR Compare Period report on a pair of workload captures or replays.

  5. To view details about a workload capture, select the workload capture and click View.

    The View Workload Capture page appears.

  6. Under Summary, information about the workload capture is displayed.

  7. To view the workload profile, click the Workload Profile tab.

    Under Average Active Sessions, the Active Sessions chart provides a graphic display of the captured session activity compared to the uncaptured session activity (such as background activities or filtered sessions). This chart will be shown only when there is Active Session History (ASH) data available for the capture period.

    Under Comparison, various statistics for the workload capture are displayed, including database time, average active sessions, user calls, transactions, connects, and application errors. The statistics for the total session activity are displayed in the Total column, and the statistics for the captured session activity are displayed in the Capture column. The Percentage of Total column displays the percentage of total session activity that are being captured in the workload.

    To view the workload capture report, click View Workload Capture Report.

  8. To view workload filters used by the workload capture, click the Workload Filters tab.

    Details about the workload filters used by the workload capture are displayed, including the workload filter name, type, session attribute, and value.

  9. To return to the Database Replay page, click OK.


See Also:


9.7 Capturing a Database Workload Using APIs

This section describes how to capture a database workload using APIs. You can also use Oracle Enterprise Manager to capture database workloads, as described in "Capturing a Database Workload Using Enterprise Manager".

Capturing a database workload using the DBMS_WORKLOAD_CAPTURE package involves:


See Also:


9.7.1 Defining Workload Capture Filters

This section describes how to add and remove workload capture filters. For information about using workload filters with workload capture, see "Using Filters with Workload Capture".

To add filters to a workload capture, use the ADD_FILTER procedure:

BEGIN
  DBMS_WORKLOAD_CAPTURE.ADD_FILTER (
                           fname => 'user_ichan',
                           fattribute => 'USER',
                           fvalue => 'ICHAN');
END;
/

In this example, the ADD_FILTER procedure adds a filter named user_ichan, which can be used to filter out all sessions belonging to the user name ICHAN.

The ADD_FILTER procedure in this example uses the following parameters:

  • The fname required parameter specifies the name of the filter that will be added.

  • The fattribute required parameter specifies the attribute on which the filter will be applied. Valid values include PROGRAM, MODULE, ACTION, SERVICE, INSTANCE_NUMBER, and USER.

  • The fvalue required parameter specifies the value for the corresponding attribute on which the filter will be applied. It is possible to use wildcards such as % with some of the attributes, such as modules and actions.

To remove filters from a workload capture, use the DELETE_FILTER procedure:

BEGIN
  DBMS_WORKLOAD_CAPTURE.DELETE_FILTER (fname => 'user_ichan');
END;
/

In this example, the DELETE_FILTER procedure removes the filter named user_ichan from the workload capture.

The DELETE_FILTER procedure in this example uses the fname required parameter, which specifies the name of the filter to be removed. The DELETE_FILTER procedure will not remove filters that belong to completed captures; it only applies to filters of captures that have yet to start.

9.7.2 Starting a Workload Capture

Before starting a workload capture, you must first complete the prerequisites for capturing a database workload, as described in "Prerequisites for Capturing a Database Workload". You should also review the workload capture options, as described in "Workload Capture Options".

It is important to have a well-defined starting point for the workload so that the replay system can be restored to that point before initiating a replay of the captured workload. To have a well-defined starting point for the workload capture, it is preferable not to have any active user sessions when starting a workload capture. If active sessions perform ongoing transactions, those transactions will not be replayed properly in subsequent database replays, since only that part of the transaction whose calls were executed after the workload capture is started will be replayed. To avoid this problem, consider restarting the database in restricted mode using STARTUP RESTRICT before starting the workload capture. Once the workload capture begins, the database will automatically switch to unrestricted mode and normal operations can continue while the workload is being captured. For more information about restarting the database before capturing a workload, see "Restarting the Database".

To start the workload capture, use the START_CAPTURE procedure:

BEGIN
  DBMS_WORKLOAD_CAPTURE.START_CAPTURE (name => 'dec10_peak', 
                           dir => 'dec10',
                           duration => 600,
                           capture_sts => TRUE,
                           sts_cap_interval => 300);
END;
/

In this example, a workload named dec10_peak will be captured for 600 seconds and stored in the operating system defined by the database directory object named dec10. A SQL tuning set will also be captured in parallel with the workload capture.

The START_CAPTURE procedure in this example uses the following parameters:

  • The name required parameter specifies the name of the workload that will be captured.

  • The dir required parameter specifies a directory object pointing to the directory where the captured workload will be stored.

  • The duration parameter specifies the number of seconds before the workload capture will end. If a value is not specified, the workload capture will continue until the FINISH_CAPTURE procedure is called.

  • The capture_sts parameter specifies whether to capture a SQL tuning set in parallel with the workload capture. If this parameter is set to TRUE, you can capture a SQL tuning set during workload capture, then capture another SQL tuning set during workload replay, and use SQL Performance Analyzer to compare the SQL tuning sets without having to re-execute the SQL statements. This enables you to obtain a SQL Performance Analyzer report and compare the SQL performance—before and after the change—while running Database Replay. You can also export the resulting SQL tuning set with its AWR data using the EXPORT_AWR procedure, as described in "Exporting AWR Data for Workload Capture".

    This feature is not supported for Oracle RAC. Workload capture filters that are defined using DBMS_WORKLOAD_CAPTURE do not apply to the SQL tuning set capture. The default value for this parameter is FALSE.

  • The sts_cap_interval parameter specifies the duration of the SQL tuning set capture from the cursor cache in seconds. The default value is 300. Setting the value of this parameter below the default value may cause additional overhead with some workloads and is not recommended.

9.7.3 Stopping a Workload Capture

To stop the workload capture, use the FINISH_CAPTURE procedure:

BEGIN
  DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE (); 
END;
/

In this example, the FINISH_CAPTURE procedure finalizes the workload capture and returns the database to a normal state.


Tip:

After capturing a workload on the production system, you need to preprocess the captured workload, as described in Chapter 10, "Preprocessing a Database Workload".

9.7.4 Exporting AWR Data for Workload Capture

Exporting AWR data enables detailed analysis of the workload. This data is also required if you plan to run the Replay Compare Period report or the AWR Compare Period report on a pair of workload captures or replays.

To export AWR data, use the EXPORT_AWR procedure:

BEGIN
  DBMS_WORKLOAD_CAPTURE.EXPORT_AWR (capture_id => 2);
END;
/

In this example, the AWR snapshots that correspond to the workload capture with a capture ID of 2 are exported, along with any SQL tuning set that may have been captured during workload capture.

The EXPORT_AWR procedure uses the capture_id required parameter, which specifies the ID of the capture whose AWR snapshots will be exported. This procedure will work only if the corresponding workload capture was performed in the current database and the AWR snapshots that correspond to the original capture time period are still available.

9.8 Monitoring Workload Capture Using Views

This section summarizes the views that you can display to monitor workload capture. You can also use Oracle Enterprise Manager to monitor workload capture, as described in "Monitoring Workload Capture Using Enterprise Manager".

To access these views, you need DBA privileges:

  • The DBA_WORKLOAD_CAPTURES view lists all the workload captures that have been captured in the current database.

  • The DBA_WORKLOAD_FILTERS view lists all workload filters used for workload captures defined in the current database.


See Also:


PK"@#PK9A OEBPS/tdm_data_disc_modeling.htmVz Data Discovery and Modeling

13 Data Discovery and Modeling

Secure Test Data Management uses Enterprise Manager's Data Discovery and Modeling (DDM) capability to enable operations, such as sensitive data discovery, data subsetting, and data masking. DDM enables scanning and tagging of sensitive data and modeling of data relationships incorporated within an Application Data Model (ADM).

The Application Data Model stores the list of applications, tables, and relationships between table columns that are either declared in the data dictionary, imported from application metadata, or user-specified. The Application Data Model maintains sensitive data types and their associated columns, and is used by Secure Test Data Management features, such as data subsetting and data masking, to securely produce test data. Creating an Application Data Model is a prerequisite for data subsetting and data masking operations.

Figure 13–1 shows the Application Data Model's relationship to other DDM components as well as the production and test environments.

Figure 13-1 Data Discovery and Modeling Architecture

Description of Figure 13-1 follows
Description of "Figure 13-1 Data Discovery and Modeling Architecture"

You can perform several tasks related to Application Data Modeling, including the following tasks discussed in this chapter:

  • Creating an Application Data Model

  • Managing Sensitive Column Types

  • Associating a Database to an Application Data Model

  • Importing and Exporting an Application Data Model

  • Verifying or Upgrading a Source Database


Note:

The procedures in this chapter are applicable to Oracle Enterprise Manager 12.1 Cloud Control only.


See Also:


13.1 Creating an Application Data Model

The following procedure enables you to:

  • Initiate creation of an Application Data Model (ADM)

  • View and edit application tables

  • View referential relationships

  • Manually add a referential relationship

  • Discover sensitive columns

  • Set the type for sensitive columns

Before proceeding, ensure that you have the following privileges:

  • EM_ALL_OPERATOR for Enterprise Manager Cloud Control users

  • SELECT_CATALOG_ROLE for database users

  • Select Any Dictionary privilege for database users


Note:

Before you can create an ADM, run the Deploy Test Data Management packages job on the source database. The job installs the PL/SQL metadata collection packages.

To create an Application Data Model: 

  1. From the Data Discovery and Modeling page, view the diagram that shows how you can create a database for a test environment.

    As the diagram shows, the first step is to create an ADM.

  2. Create an ADM:

    1. Click Create.

      A pop-up window requesting general properties information appears.

    2. Provide the required Name and Source Database.

      The Source Database is the source from which the metadata is to be extracted.

    3. Select an Application Suite:

      If you select Custom Application Suite:

      • By default, metadata collection is enabled for the ADM creation process.

      • If you uncheck "Create One Application For Each Schema," you create a shell ADM and will need to edit the ADM later to add applications and tables. Also, no metadata collection job is submitted, unlike the default choice.

      If you select Oracle Application Suite:

      • Oracle E-Business — You submit a job to create the ADM.

      • Oracle Fusion Applications — You submit a job to create the ADM.

      Note the following points about metadata collections:

      • The metadata collection for the selected application suite populates the ADM with the applications and tables in the suite.

      • The ADM can collect metadata for one or more schemas. An ADM application is actually a schema. Each schema you select becomes an ADM application, and the ADM becomes populated with the tables in the schema.

    4. Click Continue.

      Assuming that you selected Custom Application Suite, a Schemas pop-up appears in which you select schemas to include from the Available list.

    5. Click Continue, provide the schedule parameters, then click Submit to submit the metadata collection job.

      The ADM you created appears in the Application Data Models page. The Most Recent Job Status table column indicates that the metadata collection job is running. The model is locked, and you cannot edit it during this period until the status indicates that the job is complete.

  3. View and edit application tables:

    1. Select the model you created, then select Edit.

      The Applications and Tables subpage appears, displaying the applications found during metadata collection.

      To see the tables for an application, click the expand ( > ) icon.

    2. To edit an application, select the application, open the Actions menu, then select Add Table to Application.

      The Add Table to Application pop-up window appears.

    3. Click the Table search icon.

      The Search and Select pop-up appears, showing all of the tables from the selected schema that are not assigned to an application.

    4. Select an unassigned table, then click OK.

      The table name now appears in the Add Table to Application pop-up.

    5. After selecting a Table Type, click OK.

      The table now appears in the Applications and Tables view.

  4. View referential relationships:

    1. Click the Referential Relationships tab.

      There are three types of referential relationships:

      • Dictionary-defined

        Upon opening this tab, this view shows the referential relationships that the metadata collection extracted, resulting from primary key and foreign key relationships. You can remove relationships from the ADM if desired.

      • Imported from template

        Oracle supplies application templates for Oracle Fusion Applications and Oracle E-Business Suite. To use them, you must have originally created the ADM from an Oracle-supplied template by using the Import action on the ADM home page.

      • User-defined

        See the step below about manually adding a referential relationship for more information.

    2. Open an application view by selecting it, then using the > icon to reveal parent and dependent key relationships.

  5. Manually add a referential relationship:

    1. From the Referential Relationships tab, open the Actions menu, then select Add Referential Relationship.

      The Add Referential Relationship pop-up window appears.

    2. Select the requisite Parent Key and Dependent Key information.

    3. In the Columns Name list, select a dependent key column to associate with a parent key column.

    4. Click OK to add the referential relationship to the ADM.

      The new dependent column now appears in the referential relationships list.

  6. Discover sensitive columns automatically or add them manually:

    To automatically discover sensitive columns:

    1. From the Sensitive Columns tab, open the Actions menu, then select Create Sensitive Column Discovery Job.

      The Parameters pop-up appears.

    2. Select one or more applications and one or more sensitive column types.

      Each type you select is processed for each application to search for columns that match the type.

    3. Click Continue.

      The schedule pop-up window appears.

    4. Provide the required information, schedule the job, then click Submit when you have finished.

      The Sensitive Columns subpage reappears.

    5. Click Save and Return to return to the Application Data Models home page.

    6. When the Most Recent Job Status column indicates that the job is Successful, select the ADM, then click Edit.

    7. Select the Sensitive Columns tab, then click Discovery Results to view the job results.

    8. To set the sensitive status of any column, select the row for the column you want to define, open the Set Status menu, then select either Sensitive or Not Sensitive.

    9. Click OK to save and return to the Sensitive Columns tab.

      The sensitive columns you defined in the previous step now appear in the list.

    10. Click Save and Return to return to the Application Data Models page.

    To manually add sensitive columns:

    1. From the Application Data Models page, select an ADM, then click Edit.

    2. Select the Sensitive Columns tab, then click Add.

      The Add Sensitive Column pop-up appears.

    3. Provide the required information and an optional Sensitive Column Type, then click OK.

      The sensitive column now appears in the table for the Sensitive Columns tab.

  7. Change the type for sensitive columns:

    1. Click the Sensitive Columns tab.

      This view shows the sensitive columns that have already been identified.

    2. Select the sensitive column for which you want to change the type.

    3. Open the Actions menu, then select Set Sensitive Column Type.

      The Set Sensitive Column Type pop-up window appears.

    4. Select the new type and click OK.

13.2 Managing Sensitive Column Types

After you have successfully created an ADM, the next task is to create either a new sensitive column type or one based on an existing type.

To create a sensitive column type: 

  1. From the Actions menu of the Application Data Models page, select Sensitive Column Types.

    The Sensitive Column Types page appears.

  2. Click Create.

    The Create Sensitive Column Type pop-up appears.

  3. Specify a required name and regular expressions for the Column Name, Column Comment, and Column Data search patterns.

    • The Or Search Type means that any of the patterns can match for a candidate sensitive column.

    • The And Search Type means that all of the patterns must match for a candidate sensitive column.

    If you do not provide expressions for any of these parameters, the system does not search for the entity.

  4. Click OK.

    The sensitive column appears in the table in the Sensitive Column Types page.

To create a sensitive column type based on an existing type: 

  1. From the Actions menu of the Application Data Models page, select Sensitive Column Types.

    The Sensitive Column Types page appears.

  2. Select either a sensitive column type you have already defined, or select one from the out-of-box types that the product provides.

  3. Click Create Like.

    The Create Sensitive Column Type pop-up appears.

  4. Specify a required name and alter the existing expressions for the Column Name, Column Comment, and Column Data search patterns to suit your needs.

  5. Click OK.

    The sensitive column appears in the table in the Sensitive Column Types page.

13.3 Associating a Database to an Application Data Model

After you have created an Application Data Model (ADM), you can select additional databases to be associated databases of an ADM, as explained in the following procedure.

To associate a database to an ADM: 

  1. From the Application Data Models page, select an ADM, select Actions, then Associated Databases.

    This dialog lists all of the databases associated with this ADM and the schemas assigned to each application per database. You can add more databases that give you a choice of data sources when subsetting and databases to mask during masking.

  2. Click Add, then select a database from the pop-up.

    The selected database now appears in the Database section of the Associated Databases dialog.

  3. To change a schema, select the associated database on the left, select the application on the right for which the schema is to be changed, then click Select Schema.

  4. Select the missing schema from the list in the pop-up, then click Add.

13.4 Importing and Exporting an Application Data Model

You can share Application Data Models (ADM) with other Enterprise Manager environments that use a different repository.

To import an ADM XML file from your desktop: 

  1. From the Data Discovery and Modeling page, select Actions, then Import.

  2. In the pop-up that appears, specify a name for the ADM, the source database you want to assign to the ADM, and location on your desktop from which you want to import the ADM.

  3. Click OK.

    The ADM now appears on the Application Data Models page.

To export an ADM as an XML file to your desktop: 

  1. From the Data Discovery and Modeling page, select the ADM you want to export.

  2. Select Actions, then Export.

  3. In the pop-up that appears, specify a name and location on your desktop where you want to export the ADM.

  4. Click OK.

    The system converts the ADM into an XML file that now appears at the specified location on your desktop.

13.5 Verifying or Upgrading a Source Database

After you have created an Application Data Model (ADM), the Source Database Status column can indicate Valid, Invalid, or Needs Upgrade.

  • Invalid status — Verify the source database to update the referential relationships in the application data model with those found in the data dictionary, and to also determine if each item in the application data model has a corresponding object in the database.

  • Needs Upgrade status — You have imported a pre-12g masking definition, so you now need to upgrade the ADM.

To verify a source database: 

  1. Select the ADM to be verified, indicated with an Invalid status.

  2. From the Actions menu, select Verify.

  3. Select the source database with the Invalid status, then click Create Verification Job.

  4. Specify job parameters in the Create Verification Job pop-up, then click Submit.

  5. After the job completes successfully, click the source database and note the object problems listed.

  6. Fix the object problems, rerun the Verification Job, then check that the Source Database Status is now Valid.

To upgrade an ADM: 

  1. Select the ADM to be upgraded, indicated with a Needs Upgrade status.

  2. From the Actions menu, select Upgrade.

  3. Specify job parameters in the Create Upgrade Job pop-up, then click Submit.

  4. After the job completes successfully, check that the Source Database Status column now indicates Valid. If the column indicates Invalid, see the previous procedure.

PKگVVPK9AOEBPS/spa_intro.htmrd Introduction to SQL Performance Analyzer

2 Introduction to SQL Performance Analyzer

You can run SQL Performance Analyzer on a production system or a test system that closely resembles the production system. Testing a system change on a production system will impact the system's throughput because SQL Performance Analyzer must execute the SQL statements that you are testing. Any global changes made on the system to test the performance effect may also affect other users of the system. If the system change does not impact many sessions or SQL statements, then running SQL Performance Analyzer on the production system may be acceptable. However, for systemwide changes—such as a database upgrade—using a production system is not recommended. Instead, consider running SQL Performance Analyzer on a separate test system so that you can test the effects of the system change without affecting the production system. Using a test system also ensures that other workloads running on the production system will not affect the analysis performed by SQL Performance Analyzer. Running SQL Performance Analyzer on a test system is the recommended approach and the methodology described here. If you choose to run the SQL Performance Analyzer on the production system, then substitute the production system for the test system where applicable.

Analyzing the SQL performance effect of system changes using SQL Performance Analyzer involves the following steps, as illustrated in Figure 2-1:

Figure 2-1 SQL Performance Analyzer Workflow

Description of Figure 2-1 follows
Description of "Figure 2-1 SQL Performance Analyzer Workflow"

  1. Capture the SQL workload that you intend to analyze and store it in a SQL tuning set, as described in "Capturing the SQL Workload".

  2. If you plan to use a test system separate from your production system, then perform the following steps:

    1. Set up the test system to match the production environment as closely as possible.

    2. Transport the SQL tuning set to the test system.

    For more information, see "Setting Up the Test System".

  3. On the test system, create a SQL Performance Analyzer task, as described in "Creating a SQL Performance Analyzer Task".

  4. Build the pre-change SQL trial by test executing or generating execution plans for the SQL statements stored in the SQL tuning set, as described in "Measuring the Pre-Change SQL Performance"

  5. Perform the system change, as described in "Making a System Change"

  6. Build the post-change SQL trial by re-executing the SQL statements in the SQL tuning set on the post-change test system, as described in "Measuring the Post-Change SQL Performance"

  7. Compare and analyze the pre-change and post-change versions of performance data, and generate a report to identify the SQL statements that have improved, remained unchanged, or regressed after the system change, as described in "Comparing Performance Measurements"

  8. Tune any regressed SQL statements that are identified, as described in "Fixing Regressed SQL Statements".

  9. Ensure that the performance of the tuned SQL statements is acceptable by repeating steps 6 through 8 until your performance goals are met.

    For each comparison, you can use any previous SQL trial as the pre-change SQL trial and the current SQL trial as the post-change SQL trial. For example, you may want to compare the first SQL trial to the current SQL trial to assess the total change, or you can compare the most recent SQL trial to the current SQL trial to assess just the most recent change.


Note:

Oracle Enterprise Manager provides automated workflows for steps 3 through 9 to simplify this process.

2.1 Capturing the SQL Workload

Before running SQL Performance Analyzer, capture a set of SQL statements on the production system that represents the SQL workload which you intend to analyze.

The captured SQL statements should include the following information:

  • SQL text

  • Execution environment

    • SQL binds, which are bind values needed to execute a SQL statement and generate accurate execution statistics

    • Parsing schema under which a SQL statement can be compiled

    • Compilation environment, including initialization parameters under which a SQL statement is executed

  • Number of times a SQL statement was executed

Capturing a SQL workload has a negligible performance impact on your production system and should not affect throughput. A SQL workload that contains more SQL statements will better represent the state of the application or database. This will enable SQL Performance Analyzer to more accurately forecast the potential impact of system changes on the SQL workload. Therefore, you should capture as many SQL statements as possible. Ideally, you should capture all SQL statements that are either called by the application or are running on the database.

You can store captured SQL statements in a SQL tuning set and use it as an input source for SQL Performance Analyzer. A SQL tuning set is a database object that includes one or more SQL statements, along with their execution statistics and execution context. SQL statements can be loaded into a SQL tuning set from different sources, including the cursor cache, Automatic Workload Repository (AWR), and existing SQL tuning sets. Capturing a SQL workload using a SQL tuning set enables you to:

  • Store the SQL text and any necessary auxiliary information in a single, persistent database object

  • Populate, update, delete, and select captured SQL statements in the SQL tuning set

  • Load and merge content from various data sources, such as the Automatic Workload Repository (AWR) or the cursor cache

  • Export the SQL tuning set from the system where the SQL workload is captured and import it into another system

  • Reuse the SQL workload as an input source for other advisors, such as the SQL Tuning Advisor and the SQL Access Advisor


See Also:


2.2 Setting Up the Test System

After you have captured the SQL workload into a SQL tuning set on the production system, you can conduct SQL Performance Analyzer analysis on the same database where the workload was captured or on a different database. Because the analysis is resource-intensive, it is recommended that you capture the workload on a production database and transport it to a separate test database where the analysis can be performed. To do so, export the SQL tuning set from the production system and import it into a separate system where the system change will be tested.

There are many ways to create a test database. For example, you can use the DUPLICATE command of Recovery Manager (RMAN), Oracle Data Pump, or transportable tablespaces. Oracle recommends using RMAN because it can create the test database from pre-existing backups or from the active production datafiles. The production and test databases can reside on the same host or on different hosts.

You should configure the test database environment to match the database environment of the production system as closely as possible. In this way, SQL Performance Analyzer can more accurately forecast the effect of the system change on SQL performance.

After the test system is properly configured, export the SQL tuning set from the production system to a staging table, then import it from the staging table into the test system.


See Also:


2.3 Creating a SQL Performance Analyzer Task

After the SQL workload is captured and transported to the test system, and the initial database environment is properly configured, you can run SQL Performance Analyzer to analyze the effects of a system change on SQL performance.

To run SQL Performance Analyzer, you must first create a SQL Performance Analyzer task. A task is a container that encapsulates all of the data about a complete SQL Performance Analyzer analysis. A SQL Performance Analyzer analysis comprises of at least two SQL trials and a comparison. A SQL trial encapsulates the execution performance of a SQL tuning set under specific environmental conditions. When creating a SQL Performance Analyzer task, you will need to select a SQL tuning set as its input source. When building SQL trials using the test execute or explain plan methods, the SQL tuning set will be used as the source for SQL statements. The SQL Performance Analyzer analysis will show the impact of the environmental differences between the two trials.


See Also:


2.4 Measuring the Pre-Change SQL Performance

Create a pre-change SQL trial before making the system change. You can use the following methods to generate the performance data needed for a SQL trial with SQL Performance Analyzer:

  • Test execute

    This method test executes SQL statements through SQL Performance Analyzer. This can be done on the database running SPA Performance Analyzer or on a remote database.

  • Explain plan

    This method generates execution plans only for SQL statements through SQL Performance Analyzer. This can be done on the database running SPA Performance Analyzer or on a remote database. Unlike the EXPLAIN PLAN statement, SQL trials using the explain plan method take bind values into account and generate the actual execution plan.

  • Convert SQL tuning set

    This method converts the execution statistics and plans stored in a SQL tuning set. This is only supported for APIs.

The test execute method runs each of the SQL statements contained in the workload to completion. During execution, SQL Performance Analyzer generates execution plans and computes execution statistics for each SQL statement in the workload. Each SQL statement in the SQL tuning set is executed separately from other SQL statements, without preserving their initial order of execution or concurrency. This is done at least twice for each SQL statement, for as many times as possible until the execution times out (up to a maximum of 10 times). The first execution is used to warm the buffer cache. All subsequent executions are then used to calculate the run-time execution statistics for the SQL statement based on their averages. The actual number of times that the SQL statement is executed depends on how long it takes to execute the SQL statement. Long-running SQL statement will only be executed a second time, and the execution statistics from this execution will be used. Other (faster-running) SQL statements are executed multiple times, and their execution statistics are averaged over these executions (statistics from the first execution are not used in the calculation). By averaging statistics over multiple executions, SQL Performance Analyzer can calculate more accurate execution statistics for each SQL statement. To avoid a potential impact to the database, DDLs are not supported. By default, only the query portion of DMLs is executed. Using APIs, you can execute the full DML by using the EXECUTE_FULLDML task parameter. Parallel DMLs are not supported and the query portion is not executed unless the parallel hints are removed.

Depending on its size, executing a SQL workload can be time and resource intensive. With the explain plan method, you can choose to generate execution plans only, without collecting execution statistics. This technique shortens the time to run the trial and lessens the effect on system resources, but a comprehensive performance analysis is not possible because only the execution plans will be available during the analysis. However, unlike generating a plan with the EXPLAIN PLAN command, SQL Performance Analyzer provides bind values to the optimizer when generating execution plans, which provides a more reliable prediction of what the plan will be when the SQL statement is executed.

In both cases, you can execute the SQL workload remotely on a separate database using a database link. SQL Performance Analyzer will establish a connection to the remote database using the database link, execute the SQL statements on that database, collect the execution plans and run-time statistics for each SQL statement, and store the results in a SQL trial on the local database that can be used for later analysis. This method is useful in cases where you want to:

  • Test a database upgrade

  • Execute the SQL workload on a system running another version of Oracle Database

  • Store the results from the SQL Performance Analyzer analysis on a separate test system

  • Perform testing on multiple systems with different hardware configurations

  • Use the newest features in SQL Performance Analyzer even if you are using an older version of Oracle Database on your production system

Once the SQL workload is executed, the resulting execution plans and run-time statistics are stored in a SQL trial.

You can also build a SQL trial using the execution statistics and plan stored in a SQL tuning set. While this method is only supported for APIs, it may be useful in cases where you have another method to run your workload (such as Database Replay or another application testing tool), and you do not need SQL Performance Analyzer to drive the workload on the test system. In such cases, if you capture a SQL tuning set during your test runs, you can build SQL trials from these SQL tuning sets using SQL Performance Analyzer to view a more comprehensive analysis report. Unlike a standard SQL Performance Analyzer report—which has only one execution plan in each trial and one set of execution statistics generated by executing the SQL statement with one set of binds—you can generate a report that compares SQL trials built from SQL tuning sets that show all execution plans from both trials with potentially many different sets of binds across multiple executions.


See Also:


2.5 Making a System Change

Make the change whose effect on SQL performance you intend to measure. SQL Performance Analyzer can analyze the effect of many types of system changes. For example, you can test a database upgrade, new index creation, initialization parameter changes, or optimizer statistics refresh. If you are running SQL Performance Analyzer on the production system, then consider making a change using a private session to avoid affecting the rest of the system.

2.6 Measuring the Post-Change SQL Performance

After performing the system change, create a post-change SQL trial. It is highly recommended that you create the post-change SQL trial using the same method as the pre-change SQL trial. Once built, the post-change SQL trial represents a new set of performance data that can be used to compare to the pre-change version. The results are stored in a new, or post-change, SQL trial.


See Also:


2.7 Comparing Performance Measurements

SQL Performance Analyzer compares the performance of SQL statements before and after the change and produces a report identifying any changes in execution plans or performance of the SQL statements.

SQL Performance Analyzer measures the impact of system changes both on the overall execution time of the SQL workload and on the response time of every individual SQL statement in the workload. By default, SQL Performance Analyzer uses elapsed time as a metric for comparison. Alternatively, you can choose the metric for comparison from a variety of available SQL run-time statistics, including:

  • CPU time

  • User I/O time

  • Buffer gets

  • Physical I/O

  • Optimizer cost

  • I/O interconnect bytes

  • Any combination of these metrics in the form of an expression

If you chose to generate explain plans only in the SQL trials, then SQL Performance Analyzer will use the optimizer cost stored in the SQL execution plans.

Once the comparison is complete, the resulting data is generated into a SQL Performance Analyzer report that compares the pre-change and post-change SQL performance. The SQL Performance Analyzer report can be viewed as an HTML, text, or active report. Active reports provides in-depth reporting using an interactive user interface that enables you to perform detailed analysis even when disconnected from the database or Oracle Enterprise Manager.


See Also:


2.8 Fixing Regressed SQL Statements

If the performance analysis performed by SQL Performance Analyzer reveals regressed SQL statements, then you can make changes to remedy the problem. For example, you can fix regressed SQL by running SQL Tuning Advisor or using SQL plan baselines. You can then repeat the process of executing the SQL statements and comparing its performance to the first execution. Repeat these steps until you are satisfied with the outcome of the analysis.


See Also:


PKzwdrdPK9A OEBPS/toc.ncx( Oracle® Database Real Application Testing User's Guide, 11g Release 2 (11.2) Cover Table of Contents Oracle Database Real Application Testing User's Guide, 11g Release 2 (11.2) Preface Introduction to Oracle Real Application Testing SQL Performance Analyzer Introduction to SQL Performance Analyzer Creating an Analysis Task Creating a Pre-Change SQL Trial Creating a Post-Change SQL Trial Comparing SQL Trials Testing a Database Upgrade Database Replay Introduction to Database Replay Capturing a Database Workload Preprocessing a Database Workload Replaying a Database Workload Analyzing Replayed Workload Test Data Management Data Discovery and Modeling Data Subsetting Masking Sensitive Data Index Copyright PKg-(PK9AOEBPS/tdm_subsetting.htm] Data Subsetting

14 Data Subsetting

This chapter provides procedures for the following tasks:


Note:

Data subsetting is only supported in Oracle Database versions 10.1 or higher.


Note:

The procedures in this chapter are applicable to Oracle Enterprise Manager 12.1 Cloud Control only.

14.1 Creating a Data Subset Definition

The following procedure enables you to create a subset database, after which you can perform other tasks, such as editing the properties of the subset definition or exporting a subset definition.

Before proceeding, ensure that you have the following privileges:

  • EM_ALL_OPERATOR for Enterprise Manager Cloud Control users

  • SELECT_CATALOG_ROLE for database users

  • Select Any Dictionary privilege for database users

To create a data subset definition: 

  1. From the Enterprise menu, select Quality Management, then Data Subset Definitions.

  2. Open the Actions menu in the Data Subset Definitions page, then select Create, or just click the Create icon.

  3. Define the data subset definition properties:

    1. Provide the requisite information in the General pop-up that appears, then click Continue.

      You can select any source database associated with the Application Data Model.

    2. Provide a job name, credentials, and specify a schedule in the Schedule Application Detail Collection pop-up that appears, then click Submit.

      If you want to use new credentials, choose the New Credentials option. Otherwise, choose the Preferred Credentials or Named Credentials option.

    The space estimate collection job runs, and then displays the Data Subset Definitions page. Your definition appears in the table, and the Most Recent Job Status column should indicate Scheduled, Running, or Succeeded, depending on the schedule option selected and time required to complete the job.

  4. Select the definition within the table, open the Actions menu, then select Edit.

    The Database Login page appears.

  5. Select either Named Credentials or New Credentials if you have not already set preferred credentials, then click Login.

  6. In the Applications subpage of the Edit page, move entire application suites or specified applications that you want to use from the Available list to the Selected list.

    The names of application suites, applications, or application modules are maintained in the Application Data Model.

  7. Click the Table Rules tab.

    You can add rules here to define the data to include in the subset.

  8. Select Actions, then Create to display the Table Rule pop-up, or just click the Create icon.

    1. Select the application for which you want to provide a rule.

      Associate the rule with all tables, a specific table, or a category of tables.

    2. In the Rows to Include section, select the option that best suits your needs for a representative sample of production data. If you do not want to include all rows, you can include some rows by specifying a percentage portion of the rows. For finer granularity, you could specify a Where clause, such as where region_id=6.

      For more information on specifying Where clauses, see step e.

    3. In the Include Related Rows section, do one of the following:

      • Select Ancestor and Descendant Tables

        This rule impacts the parent and child columns, and ensures that referential integrity is maintained, and that child columns are also selected as part of the subset.

      • Select Ancestor Tables Only

        This rule only impacts the parent columns, and ensures that referential integrity is maintained.

      If you disable the Include Related Rows check box, referential integrity may not be maintained. However, you can subsequently provide additional rules to restore referential integrity. You can disable this check box w8hether or not you specify a Where clause.

    4. If you want to specify a Where clause, go to the next step. Otherwise, skip to step 9.

    5. Provide a rule parameter, if desired, for the clause.

      For instance, if you specify a particular value for an employee ID as employee_id=:emp_id, you could enter query values for the default of 100:

      • Select the Rows Where button and enter employee_id=:emp_id.

      • Click OK to save the rule and return to the Table Rules tab.

        If this is a new rule, a warning appears stating that "Rule parameters corresponding to the bind variables 'emp_id' should be created before generating subset."

      • Select the table rule, click the Rule Parameters tab, then click Create.

        The Rule Parameter Properties pop-up appears.

      • Enter emp_id for the Name and 100 for the Value.


        Note:

        The colon ( : ) preceding emp_id is only present in the Where clause, and not required when creating a new rule parameter.

      • Click OK to save the properties, which now appear in the Rule Parameters tab.

      • Skip to step 10.

  9. Click OK to save the rule and return to the Table Rules tab.

    The new rule is displayed in the list. The related tables are displayed in the table below. Related rows from the tables are included in the subset to provide referential integrity in the subset database.

  10. In the Default Table Rows section of the Table Rules tab, choose whether you want to include or exclude the tables not affected by the defined rules in the subset.

    When you select the Include All Rows option, all of the rows for the table are selected as part of the subset.

    This is a global rule and applies to the entire subset. You can only select the Include All Rows option when all of the rules have a scope of None. A scope of None is established when you uncheck the Include Related Rows option in the Table Rule pop-up.

  11. Click the Space Estimates tab.

    • Note the value in the Estimated Subset Size GB column. The space estimates depend on optimizer statistics, and the actual distribution of data can only be calculated if histogram statistics are present.

    • Whenever you add new rules, recheck the space estimates for updated values.

    • Data in the Space Estimates subpage is sorted with the largest applications appearing at the top.

    If you provide a Where clause and subsequent rule parameter properties, the Space Estimates subpage is updated with the value contained in the Rule Parameters tab.

    Figure 14-1 Space Estimates Tab

    Description of Figure 14-1 follows
    Description of "Figure 14-1 Space Estimates Tab"

  12. Optional: click the Pre/Post Subset Scripts tab.

    • You can specify a pre-subset script to run on the subset database before you select subset data.

    • You can specify a post-subset script to run on the subset database after you assemble the subset data.

    • Either script type runs on the source database.

  13. Click Return.

    The definition is complete and displayed in the Data Subset Definitions table.

  14. Prepare and submit a job to generate a subset:

    1. Select the definition within the table, open the Actions menu, then select Generate Subset.

      The Generate Subset Methods and Parameters pop-up appears.

    2. Decide if you want to create a subset by writing subset data to export files, or by deleting data from a cloned database.


      Tip:

      If you have a very large database of 4 terabytes, for instance, and you want to export a small percentage of the rows, such as 10%, it is more advantageous to use the export method. Using the in-place delete method would require 3.6 terabytes of data, which would not perform as quickly as the export method.

      The in-place delete method is recommended when the amount of data being deleted is a small percentage of the overall data size.


      • Writing Subset Data to Export Files

        The Export File Directory list consists of directory objects for which you have access.

        The Maximum Number of Threads field specifies the maximum number of threads of active execution operating on behalf of the export job, thereby enabling you to consider trade-offs between resource consumption and elapsed time

      • Deleting Data from a Cloned Database

        This choice creates an in-place subset by removing/deleting unwanted data from a cloned copy of the production database, rather than a production database. Only data satisfying the rules are retained. Do not use this option on a production database.

      If you have defined any parameters from the Rule Parameters tab, they appear in the table at the bottom. You can change a parameter value by clicking on the associated field in the Value column.

    3. Click Continue to access the Parameters pop-up.

      The contents of the pop-up depends on whether you chose Writing Subset Data to Export Files or Deleting Data From a Cloned Database in the previous step.

      For Writing Subset Data to Export Files, provide the requisite information, then click Continue to schedule the job.

      • The Export File Directory list consists of directory objects for which you have access.

      • The Maximum Number of Threads field specifies the maximum number of threads of active execution operating on behalf of the export job, thereby enabling you to consider trade-offs between resource consumption and elapsed time.

      • Enable the Generate Import Script check box to generate a SQL script that imports the exported dump to the intended database. The import script resides in the same directory as the export dump. This operation occurs when the generate subset is complete.

        For more information, see "Importing Exported Dumps".

      For Deleting Data From a Target Database, provide the requisite information, then click Continue to schedule the job.

      • The Execution Scripts Directory list consists of directory objects for which you have access.

      • To proceed, you must enable the check box indicating that the selected target is not a production database.

    4. Click Continue to schedule the job from the Generate Subset Schedule pop-up, then click Submit.

      The Data Subset Definitions page reappears, and the Most Recent Job Status column shows that the subset job is running, and subsequently that it has succeeded.

After performing this procedure, you can now create a subset database with the generated export files at any time.

14.2 Importing Exported Dumps

As indicated in the procedure above, you can generate a SQL script that imports the exported dumps to the intended database.

For example, if you want to subset a database named DB2, you would create a subset model either on DB1 or DB2, then specify DB2 in the generate subset flow. After doing this, the dump files and subset_import.sql script would be available in the specified directory on DB2. To create a subset, you would then log into DB2 and execute the subset_import.sql script, which would internally use the dump files and create the subset database.

The following procedure explains how to import exported dumps based on the scenario described above.

To import exported dumps: 

  1. Log in to the target database.

  2. From the Data Subset Definitions page, select an Application Data Model.

  3. Select Generate Subset from the Actions menu.

    The Generate Subset: Subset Mode page appears.

  4. Select the Writing Subset Data to Export Files option, provide the required Target Database name and Database Credentials, then click Continue.

    The Generate Subset: Parameters page appears.

  5. Provide the required input at the top of the page, select the Generate Import Script option, then click Continue.

    The Generate Subset: Schedule page appears.

  6. Provide the required scheduling information, then click Submit.

    The dump files and subset_import.sql script are now available in the directory you specified.

  7. Locate and run the script subset_import.sql, which is present in your Export File Directory.

  8. Respond to the prompts as shown in Example 14-1.

Example 14-1 Sample Schema Prompts and Responses

Choose the state of the schemas from below:
1 - None of the schemas exist.
2 - A part or all of the schemas exist.
3 - The schemas exist with complete metadata but no data.
Enter choice (1/2/3): 2
Enter directory object name: DATA_PUMP_DIR
old 7: user_choice number := &user_choice;
new 7: user_choice number := 2;
old 15: dump_dir varchar2(200) := '&dump_dir_object';
new 15: dump_dir varchar2(200) := 'DATA_PUMP_DIR';

14.3 Importing and Exporting Subset Templates

A subset template is an XML file that contains the details of the subset, consisting of the application, subset rules, rule parameters, and pre-scripts or post-scripts. When you create a subset definition and specify that you want to write subset data to export files, the export files become a template that you can subsequently import for reuse. You would import the template to perform subset operations on a different database.

Typically, the workflow is that you would first import a previously exported ADM template, which is another XML file, while creating an ADM. You would then import the related subset template while creating a data subset definition. You could alternatively select an existing ADM (skipping the import ADM flow) while importing the subset template.


Tip:

Oracle also provides a set of ADM and subset templates that you can download. The ADM and subset templates provide the comprehensive subset definitions for packaged applications, such as Oracle E-Business Suite and Oracle Fusion Applications.

To import a subset template: 

  1. From the Data Subset Definitions page, select Import from the Actions menu.

    The Import Data Subset Definition pop-up appears.

  2. Provide the required Name, Application Data Model associated with the source database, the Source Database itself, and the local XML file.

  3. Click Continue.

  4. Provide the required Job Name, Credentials, and Schedule, then click Submit.

After the job runs successfully, the subset template appears in the list of subsets in the table on the Data Subset Definitions page.

To export a subset template: 

  1. From the Data Subset Definitions page, select the subset you want to export, then select Export from the Actions menu.

  2. Click Save in the File Download pop-up, then provide a file name, if other than the default, and the directory where you want to store the subset.

  3. Click Save.

14.4 Creating a Subset Version of a Target Database

After a subset is defined, analyzed, and validated, you can execute the subset operation to create a subset version of the source data.

The procedure assumes the following prerequisites:

  • A subset definition already exists that contains the rules needed to subset the database.

  • You have the requisite privileges to extract the data from the source and create the subset version in a target database. Depending on the subset technique, different levels of file or database privileges may be created. The required privileges include:

    • EM_ALL_OPERATOR for Enterprise Manager Cloud Control users

    • SELECT_CATALOG_ROLE for database users

    • Select Any Dictionary privilege for database users

    • DBA privileges on a database for target database users

To create a subset version of a target database: 

  1. Create a subset operation by selecting a subset definition and associating it with a source database.

    Enterprise Manager validates the subset definition against the source database and flags schema differences. Note that this association may be different from the original association that an application developer may have created.

  2. Edit the definition to remap the defined schema to a test schema.

    You are prompted to connect to a database, whereupon the database is associated with the subset definition. This also enables you to remap the vendor-provided schema names to actual schema names in the database.

  3. Select one of the various subset creation techniques:

    • Data Pump dump file followed by a Data Pump import

    • In-place delete, in which rows in the specified database not matching the rule conditions are deleted

    • In-transit subset creation or refresh

    Enterprise Manager generates the appropriate response file (that is, SQL script, Data Pump script, or OS script), checks the target system for appropriate privileges to be able proceed with the operation, and estimates the size of the target.

  4. After reviewing the analysis, submit the subset process.

    Enterprise Manager executes the subset process and summarizes the results of the execution.

PK&&^]PK9AOEBPS/tdm_data_masking.htm Masking Sensitive Data

15 Masking Sensitive Data

This chapter provides conceptual information about the components that comprise Oracle Data Masking, and procedural information about performing the task sequence, such as creating masking formats and masking definitions. Topics discussed include:


Note:

The procedures in this chapter are applicable to Oracle Enterprise Manager 12.1 Cloud Control only.

15.1 Overview of Oracle Data Masking

Enterprises run the risk of breaching sensitive information when copying production data into non-production environments for the purposes of application development, testing, or data analysis. Oracle Data Masking helps reduce this risk by irreversibly replacing the original sensitive data with fictitious data so that production data can be shared safely with non-production users. Accessible through Oracle Enterprise Manager, Oracle Data Masking provides end-to-end secure automation for provisioning test databases from production in compliance with regulations.

15.1.1 Data Masking Concepts

Data masking (also known as data scrambling and data anonymization) is the process of replacing sensitive information copied from production databases to test non-production databases with realistic, but scrubbed, data based on masking rules. Data masking is ideal for virtually any situation when confidential or regulated data needs to be shared with non-production users. These users may include internal users such as application developers, or external business partners such as offshore testing companies, suppliers and customers. These non-production users need to access some of the original data, but do not need to see every column of every table, especially when the information is protected by government regulations.

Data masking enables organizations to generate realistic and fully functional data with similar characteristics as the original data to replace sensitive or confidential information. This contrasts with encryption or Virtual Private Database, which simply hides data, and the original data can be retrieved with the appropriate access or key. With data masking, the original sensitive data cannot be retrieved or accessed.

Names, addresses, phone numbers, and credit card details are examples of data that require protection of the information content from inappropriate visibility. Live production database environments contain valuable and confidential data—access to this information is tightly controlled. However, each production system usually has replicated development copies, and the controls on such test environments are less stringent. This greatly increases the risks that the data might be used inappropriately. Data masking can modify sensitive database records so that they remain usable, but do not contain confidential or personally identifiable information. Yet, the masked test data resembles the original in appearance to ensure the integrity of the application.

15.1.2 Security and Regulatory Compliance

Masked data is a sensible precaution from a business security standpoint, because masked test information can help prevent accidental data escapes. In many cases, masked data is a legal obligation. The Enterprise Manager Data Masking Pack can help organizations fulfill legal obligations and comply with global regulatory requirements, such as Sarbanes-Oxley, the California Database Security Breach Notification Act (CA Senate Bill 1386), and the European Union Data Protection Directive.

The legal requirements vary from country to country, but most countries now have regulations of some form to protect the confidentiality and integrity of personal consumer information. For example, in the United States, The Right to Financial Privacy Act of 1978 creates statutory Fourth Amendment protection for financial records, and a host of individual state laws require this. Similarly, the U.S. Health Insurance Portability and Accountability Act (HIPAA) created protection of personal medical information.

15.1.3 Roles of Data Masking Users

The following types of users participate in the data masking process for a typical enterprise:

  • Application database administrator or application developer

    This user is knowledgeable about the application and database objects. This user may add additional custom database objects or extensions to packaged applications, such as the Oracle E-Business suite.

  • Information security administrator

    This user defines information security policies, enforces security best practices, and also recommends the data to be hidden and protected.

15.1.4 Related Oracle Security Offerings

Besides data masking, Oracle offers the following security products:

  • Virtual Private Database or Oracle Label Security — Hides rows and data depending on user access grants.

  • Transparent Data Encryption — Hides information stored on disk using encryption. Clients see unencrypted information.

  • DBMS_CRYPTO — Provides server packages that enable you to encrypt user data.

  • Database Vault — Provides greater access controls on data.

15.1.5 Agent Compatibility for Data Masking

Data Masking supports Oracle Database 9i and newer releases. If you have a version prior to 11.1, you can use it by implementing the following work-around.

Replace the following file...

AGENT_HOME/sysman/admin/scripts/db/reorg/reorganize.pl

... with this file:

OMS_HOME/sysman/admin/scripts/db/reorg/reorganize.pl

15.1.6 Supported Data Types

The list of supported data types varies by release.

  • Grid Control 10g Release 5 (10.2.0.5), Database 11g Release 2 (11.2), and Cloud Control 12c Release 1 (10.2.0.1)

    • Numeric Types

      The following Numeric Types can use Array List, Delete, Fixed Number, Null Value, Post Processing Function, Preserve Original Data, Random Decimal Numbers, Random Numbers, Shuffle, SQL Expression, Substitute, Table Column, Truncate, Encrypt, and User Defined Function formats:

      • NUMBER

      • FLOAT

      • RAW

      • BINARY_FLOAT

      • BINARY_DOUBLE

    • String Types

      The following String Types can use Array List, Delete, Fixed Number, Fixed String, Null Value, Post Processing Function, Preserve Original Data, Random Decimal Numbers, Random Digits, Random Numbers, Random Strings, Shuffle, SQL Expression, Substitute, Substring, Table Column, Truncate, Encrypt, and User Defined Function formats:

      • CHAR

      • NCHAR

      • VARCHAR2

      • NVARCHAR2

    • Date Types

      The following Date Types can use Array List, Delete, Null Value, Post Processing Function, Preserve Original Data, Random Dates, Shuffle, SQL Expression, Substitute, Table Column, Truncate, Encrypt, and User Defined Function formats:

      • DATE

      • TIMESTAMP

  • Grid Control 11g Release 1 (11.1) and Cloud Control 12c Release 1 (10.2.0.1)

    • Large Object (LOB) Data Types

      The following Data Types can use Fixed Number, Fixed String, and Null Value formats:

      • BLOB

      • CLOB

      • NCLOB

15.2 Format Libraries and Masking Definitions

To mask data, the Data Masking Pack provides two main features:

  • Masking format library

    The format library contains a collection of ready-to-use masking formats. The library consists of format routines that you can use for masking. A masking format can either be one that you create, or one from the list of Oracle-supplied default masking formats.

    As a matter of best practice, organizations should create masking formats for all commonly regulated information so that the formats can be applied to the sensitive data regardless of which database the sensitive data resides in. This ensures that all sensitive data is consistently masked across the entire organization.

  • Masking definitions

    A masking definition defines a data masking operation to be implemented on one or more tables in a database. Masking definitions associate table columns with formats to use for masking the data. They also maintain the relationship between columns that are not formally declared in the database using related columns.

    You can create a new masking definition or use an existing definition for a masking operation. To create a masking definition, you specify the column of the table for which the data should be masked and the format of masked data. If the columns being masked are involved in unique, primary key, or foreign key constraints, data masking generates the values so that the constraints are not violated. Masking ensures uniqueness per character using decimal arithmetic. For example, a 5-character string generates a maximum of only 99999 unique values. Similarly, a 1-character string generates a maximum of only 9 unique values.

    You would typically export masking definitions to files and import them on other systems. This is important when the test and production sites reside on different Oracle Management Systems or on entirely different sites.


See Also:

  • "Creating a Data Masking Definition" in the Enterprise Manager online help as well as the help for each Data Masking page


15.3 Recommended Data Masking Workflow

Figure 15-1 shows that the production database is cloned to a staging region and then masked there. During the masking process, the staging and test areas are tightly controlled like a production site.

Figure 15-1 Data Masking Workflow

Data Masking workflow
Description of "Figure 15-1 Data Masking Workflow"

Data masking is an iterative and evolving process handled by the security administrator and implemented by the database administrator. When you first configure data masking, try out the masking definition on a test system, then add a greater number of columns to the masking definition and test it to make sure it functions correctly and does not break any application constraints. During this process, you should exercise care when removing all imbedded references to the real data while maintaining referential integrity.

After data masking is configured to your satisfaction, you can use the existing definition to repeatedly mask after cloning. The masking definition, however, would need to evolve as new schema changes require new data and columns to be masked.

After the masking process is complete, you can distribute the database for wide availability. If you need to ship the database to another third-party site, you are required to use the Data Pump Export utility, and then ship the dump file to the remote site. However, if you are retaining the masked data in-house, see "Data Masking Task Sequence".

15.4 Data Masking Task Sequence

The task sequence in this section demonstrates the data masking workflow and refers you to additional information about some of the tasks in the sequence. Before reviewing this sequence, note that there are two options for completing this process:

  • Exporting/importing to another database

    You can clone the production database to a staging area, mask it, then export/ import it to another database before delivering it to in-house testers or external customers. This is the most secure approach.

  • Making the staging area the new test region

    You can clone the production database to a mask staging area, then make the staging area the new test region. In this case, you should not grant testers SYSDBA access or access to the database files. Doing so would compromise security. The masked database contains the original data in unused blocks and in the free list. You can only purge this information by exporting/importing the data to another database.

The following basic steps guide you through the data masking process, with references to other sections for supporting information.

  1. Review the application database and identify the sources of sensitive information.

  2. Define mask formats for the sensitive data. The mask formats may be simple or complex depending on the information security needs of the organization.

    For more information, see "Creating New Masking Formats" and "Using Oracle-supplied Predefined Masking Formats".

  3. Create a masking definition to associate table columns to these mask formats. Data masking determines the database foreign key relationships and adds foreign key columns to the mask.

    For more information, see "Masking with an Application Data Model and Workloads" .

  4. Save the masking definition and generate the masking script.

  5. Verify if the masked data meets the information security requirements. Otherwise, refine the masking definition, restore the altered tables, and reapply the masking definition until the optimal set of masking definitions has been identified.

  6. Clone the production database to a staging area, selecting the masking definition to be used after cloning. Note that you can clone using Enterprise Manager, which enables you to add masking to the Enterprise Manager clone workflow. However, if you clone outside of Enterprise Manager, you must initiate masking from Enterprise Manager after cloning is complete. The cloned database should be controlled with the same privileges as the production system, because it still contains sensitive production data.

    After cloning, be sure to change the passwords as well as update or disable any database links, streams, or references to external data sources. Back up the cloned database, or minimally the tables that contain masked data. This can help you restore the original data if the masking definition needs to be refined further.

    For more information, see "Cloning the Production Database" .

  7. After masking, test all of your applications, reports, and business processes to ensure they are functional. If everything is working, you can export the masking definition to keep it as a back-up.

  8. After masking the staging site, make sure to drop any tables named MGMT_DM_TT before cloning to a test region. These temporary tables contain a mapping between the original sensitive column value and the mask values, and are therefore sensitive in nature.

    During masking, Enterprise Manager automatically drops these temporary tables for you with the default "Drop temporary tables created during masking" option. However, you can preserve these temporary tables by deselecting this option. In this case, you are responsible for deleting the temporary tables before cloning to the test region.

  9. After masking is complete, ensure that all tables loaded for use by the substitute column format or table column format are going to be dropped. These tables contain the mask values that table column or substitute formats will use. It is recommended that you purge this information for security reasons.

    For more information, see "Deterministic Masking Using the Substitute Format" .

  10. Clone the database to a test region, or use it as the new test region. When cloning the database to an external or unsecured site, you should use Export or Import. Only supply the data in the database, rather than the database files themselves.

  11. As part of cloning production for testing, provide the masking definition to the application database administrator to use in masking the database.

15.5 Defining Masking Formats

A masking definition requires one or more masking formats for any columns included in the masking definition. When adding columns to a masking definition, you can either create masking formats manually or import them from the format library. It is often more efficient to work with masking formats from the format library.

15.5.1 Creating New Masking Formats

This section describes how to create new masking formats using Enterprise Manager.

To create a masking format in the format library: 

  1. From the Enterprise menu, select Quality Management, then Data Masking Formats. Alternatively, if you are in the Database home page, select Data Masking Format Library from the Schema menu.

    The Format Library appears with predefined formats that Oracle Enterprise Manager provides.

  2. Click Create.

    The Create Format page appears, where you can define a masking format.


    Tip:

    For information on page user controls, see the online help for the Format page.

  3. Provide a required name for the new format, select a format entry type from the Add list, then click Go.

    A page appears that enables you to provide input for the format entry you have selected. For instance, if you select Array List, the subsequent page enables you to enter a list of values, such as New York, New Jersey, and New Hampshire.

  4. Continue adding additional format entries as needed.

  5. When done, provide an optional user-defined or post-processing function (see "Providing User-defined and Post-processing Functions"), then click OK to save the masking format.

    The Format Library page reappears with your newly created format displayed in the Format Library table. You can use this format later to mask a column of the same sensitive type.


    Tip:

    For information on page user controls, see the online help for the Format Library and Create Format pages.

15.5.1.1 Providing User-defined and Post-processing Functions

If desired, you can provide user-defined and post-processing functions on the Create Format page. A user-defined choice is available in the Add list, and a post-processing function field is available at the bottom of the page.

  • User-defined functions

    To provide a user-defined function, select User Defined Function from the Add list, then click Go to access the input fields.

    A user-defined function passes in the original value as input, and returns a mask value. The data type and uniqueness of the output values must be compatible with the original output values. Otherwise, a failure occurs when the job runs. Combinable, a user-defined function is a PL/SQL function that can be invoked in a SELECT statement. Its signature is returned as:

    Function udf_func (rowid varchar2, column_name varchar2, original_value varchar2) returns varchar2;
    
    • rowid is the min (rowid) of the rows that contain the value original_value 3rd argument.

    • column_name is the name of the column being masked.

    • original_value is the value being masked.

    That is, it accepts the original value as an input string, and returns the mask value.

    Both input and output values are varchar2. For instance, a user-defined function to mask a number could receive 100 as input, the string representation of the number 100, and return 99, the string representation of the number 99. Values are cast appropriately when inserting to the table. If the value is not castable, masking fails.

  • Post-processing functions

    To provide a post-processing function, enter it in the Post Processing Function field.

    A post-processing function has the same signature as a user-defined function, but passes in the mask value the masking engine generates, and returns the mask value that should be used for masking, as shown in the following example:

    Function post_proc_udf_func (rowid varchar2, column_name varchar2, mask_value varchar2) returns varchar2;
    
    • rowid is the min (rowid) of the rows that contain the value mask_value.

    • column_name is the name of the column being masked.

    • mask_value is the value being masked.

15.5.1.2 Using Masking Format Templates

After you have created at least one format, you can use the format definition as a template in the Create Format page, where you can implement most of the format using a different name and changing the entries as needed, rather than needing to create a new format from scratch.

To create a new format similar to an existing format, select a format on the Format Library page and click Create Like. The masking format you select can either be one you have previously defined yourself, or one from the list of out-of-box masking formats. You can use these generic masking format definitions for different applications.

For instructional details about the various Oracle-supplied predefined masking format definitions and how to modify them to suit your needs, see "Using Oracle-supplied Predefined Masking Formats".

15.5.2 Using Oracle-supplied Predefined Masking Formats

Enterprise Manager provides several out-of-box predefined formats. All predefined formats and built-in formats are random. The following sections discuss the various Oracle-supplied format definitions and how to modify them to suit your needs:


Tip:

For information on installing the DM_FMTLIB package so that you can use the predefined masking formats, see "Installing the DM_FMTLIB Package".

15.5.2.1 Patterns of Format Definitions

All of the format definitions adhere to these typical patterns:

  • Generate a random number or random digits.

  • Perform post-processing on the above-generated value to ensure that the final result is a valid, realistic value.

For example, a valid credit card number must pass Luhn's check. That is, the last digit of any credit card number is a checksum digit, which is always computed. Also, the first few digits indicate the card type (MasterCard, Amex, Visa, and so forth). Consequently, the format definition of a credit card would be as follows:

  • Generate random and unique 10-digit numbers.

  • Using a post-processing function, transform the values above to a proper credit card number by adding well known card type prefixes and computing the last digit.

This format is capable of generating 10 billion unique credit card numbers.

15.5.2.2 Category Definitions

The following sections discuss different categories of these definitions:

By default, these mask formats are also available in different format styles, such as a hyphen ( - ) format. If needed, you can modify the format style.

15.5.2.2.1 Credit Card Numbers

Out of the box, the format library provides many different formats for credit cards. The credit card numbers generated by these formats pass the standard credit card validation tests by the applications, thereby making them appear like valid credit card numbers.

Some of the credit card formats you can use include:

  • MasterCard numbers

  • Visa card numbers

  • American Express card numbers

  • Discover Card numbers

  • Any credit card number (credit card numbers belong to all types of cards)

You may want to use different styles for storing credit card numbers, such as:

  • Pure numbers

  • 'Space' for every four digits

  • 'Hyphen' ( - ) for every four digits, and so forth

To implement the masked values in a certain format style, you can set the DM_CC_FORMAT variable of the DM_FMTLIB package. To install the package, see "Installing the DM_FMTLIB Package" .

15.5.2.2.2 United States Social Security Numbers

Out of the box, you can generate valid U.S. Social Security (SSN) numbers. These SSNs pass the normal application tests of a valid SSN.

You can affect the format style by setting the DM_SSN_FORMAT variable of the DM_FMTLIB package. For example, if you set this variable to '-', the typical social security number would appear as '123-45-6789'.

15.5.2.2.3 ISBN Numbers

Using the format library, you can generate either 10-digit or 13-digit ISBN numbers. These numbers adhere to standard ISBN number validation tests. All of these ISBN numbers are random in nature. Similar to other format definitions, you can affect the "style" of the ISBN format by setting values to DM_ISBN_FORMAT.

15.5.2.2.4 UPC Numbers

Using the format library, you can generate valid UPC numbers. They adhere to standard tests for valid UPC numbers. You can affect the formatting style by setting the DM_UPC_FORMAT value of the DM_FMTLIB package.

15.5.2.2.5 Canadian Social Insurance Numbers

Using the format library, you can generate valid Canadian Social Insurance Numbers (SINs). These numbers adhere to standard tests of Canadian SINs. You can affect the formatting style by setting the DM_CN_SIN_FORMAT value of the DM_FMTLIB package.

15.5.2.2.6 North American Phone Numbers

Out of the box, the format library provides various possible U.S. and Canadian phone numbers. These are valid, realistic looking numbers that can pass standard phone number validation tests employed by applications. You can generate the following types of numbers:

  • Any North American phone numbers

  • Any Canadian phone number

  • Any U.S.A. phone number

15.5.2.3 Installing the DM_FMTLIB Package

The predefined masking formats use functions defined in the DM_FMTLIB package. This package is automatically installed in the DBSNMP schema of your Enterprise Manager repository database. To use the predefined masking formats on a target database (other than the repository database), you must manually install the DM_FMTLIB package on that database.

To install the DM_FMTLIB package: 

  1. Locate the following scripts in your Enterprise Manager installation:

    $ORACLE_HOME/sysman/admin/emdrep/sql/db/latest/masking/dm_fmtlib_pkgdef.sql
    $ORACLE_HOME/sysman/admin/emdrep/sql/db/latest/masking/dm_fmtlib_pkgbody.plb
    
  2. Copy these scripts to a directory in your target database installation and execute them using SQL*Plus, connected as a user that can create packages in the DBSNMP schema.

After the DM_FMTLIB package is installed, you can use the predefined masking formats in your masking definition.

15.5.3 Providing a Masking Format to Define a Column

When you create a masking definition ("Masking with an Application Data Model and Workloads"), you will be either importing a format or selecting one from the available types in the Define Column Mask page. Format entry options are as follows:

  • Array List

    The data type of each value in the list must be compatible with that of the masked column. Uniqueness must be guaranteed if needed. For example, for a unique key column that already has 10 distinct values, the array list should also contain at least 10 distinct values.

  • Delete

    Deletes the specified rows as identified by the condition clauses. If a column includes a delete format for one of its conditions, a foreign key constraint or a dependent column cannot refer to the table.

  • Encrypt

    Encrypts column data by specifying a regular expression. The column values in all the rows must match the regular expression. This format can be used to mask data consistently across databases. That is, for a given value it always generates the same masked value.

    For example, the regular expression [(][1-9][0-9]{2}[)][_][0-9]{3}[-][0-9]{4} generates U.S. phone numbers such as (123) 456-7890.

    This format supports a subset of the regular expression language. It supports encrypting strings of fixed widths. However, it does not support * or + syntax of regular expressions.

    If a value does not match the format specified, the encrypted value may no longer produce one-to-one mappings. All non-confirming values are mapped to a single encrypted value, thereby producing a many-to-one mapping.

  • Fixed Number

    The type of column applicable to this entry is a NUMBER column or a STRING column. For example, if you mask a column that has a social security number, one of the entries can be Fixed Number 900. This format is combinable.

  • Fixed String

    The type of column applicable to this entry is a STRING column. For example, if you mask a column that has a License Plate Number, one of the entries can be Fixed String CA. This format is combinable.

  • Null Value

    Masks the column using a value of NULL. The column must be nullable.

  • Post-Processing Function

    This is a special function that you can apply to the mask value that the masking engine generates. This function takes the mask value as input and returns the actual mask value to be used for masking.

    The post-processing function is called after the mask value is generated. You can use it, for instance, to add commas or dollar signs to a value. For example, if a mask value is a number such as 12000, the post processing function can modify this to $12,000. Another use is for adding checksums or special encodings for the mask value that is produced.

    In the following statement:

    Function post_proc_udf_func (rowid varchar2, column_name varchar2, mask_value varchar2) returns varchar2;
    
    • rowid is the min (rowid) of the rows that contains the value mask_value 3rd argument.

    • column_name is the name of the column being masked.

    • mask_value is the value being masked.

  • Preserve Original Data

    Retains the original values for rows that match the specified condition clause. This is used in cases where some rows that match a condition do not need to be masked.

  • Random Dates

    The uniqueness of the Date column is not maintained after masking. This format is combinable.

  • Random Digits

    This format generates unique values within the specified range. For example, for a random digit with a length of [5,5], an integer between [0, 99999] is randomly generated, left padded with '0's to satisfy the length and uniqueness requirement. This is a complementary type of random number, which will not be padded. When using random digits, the random digit pads to the appropriate length in a string. It does not pad when used for a number column. This format is combinable.

    Data masking ensures that the generated values are unique, but if you do not specify enough digits, you could run out of unique values in that range.

  • Random Numbers

    If used as part of a mixed random string, these have limited usage for generating unique values. This format generates unique values within the specified range. For example, a starting value of 100 and ending value of 200 generates an integer number ranging from 100 to 200, both inclusive. Note that Oracle Enterprise Manager release 10.2.0.4.0 does not support float numbers. This format is combinable.

  • Random Strings

    This format generates unique values within the specified range. For example, a starting length of 2 and ending length of 6 generates a random string of 2 - 6 characters in length. This format is combinable.

  • Shuffle

    This format randomly shuffles the original column data. It maintains data distribution except when a column is conditionally masked and its values are not unique.

    For more information, see "Using the Shuffle Format".

  • Substitute

    This format uses a hash-based substitution for the original value and always yields the same mask value for any given input value. Specify the substitution masking table and column. This format has the following properties:

    • The masked data is not reversible. That is, this format is not vulnerable to external security breaches because the original value is replaced, so it is not possible to retrieve the original value from the mask value.

    • Masking multiple times with a hash substitute across different databases yields the same mask value. This characteristic is valid across multiple databases or multiple runs assuming that the same substitution values are used in the two runs. That is, the actual rows and values in the substitution table do not change. For example, suppose the two values Joe and Tom were masked to Henry and Peter. When you repeat the same mask on another database using the same substitution table, if there were Bob and Tom, they might be replaced with Louise and Peter. Notice that even though the two runs have different data, Tom is always replaced with Peter.

    • This format does not generate uniqueness.

  • Substring

    Substring is similar to the database substr function. The start position can be either a positive or a negative integer. For example, if the original string is abcd, a substring with a start position of 2 and length of 3 generates a masked string of bcd. A substring with start position of -2 and length of 3 generates a masked string of cd. This format is combinable.

  • Table Column

    A table column enables you to select values from the chosen column as the replacement value or part thereof. The data type and uniqueness must be compatible. Otherwise, a failure occurs when the job runs. This format is combinable.

  • Truncate

    Truncates all rows in a table. If one of the columns in a table is marked as truncated, the entire table is truncated, so no other mask formats can be specified for any of the other columns. If a table is being truncated, it cannot be referred to by a foreign key constraint or a dependent column.

  • User Defined Function

    The data type and uniqueness of the output values must be compatible with the original output values. Otherwise, a failure occurs when the job runs.

    In the following statement:

    Function udf_func (rowid varchar2, column_name varchar2, original_value varchar2) returns varchar2;
    
    • rowid is the min (rowid) of the rows that contain the value original_value 3rd argument.

    • column_name is the name of the column being masked.

    • original_value is the value being masked.

15.5.4 Deterministic Masking Using the Substitute Format

You may occasionally need to consistently mask multiple, distinct databases. For instance, if you run HR, payroll, and benefits that have an employee ID concept on three separate databases, the concept may be consistent for all of these databases, in that an employee's ID can be selected to retrieve the employee's HR, payroll, or benefits information. Based on this premise, if you were to mask the employee's ID because it actually contains his/her social security number, you would have to mask this consistently across all three databases.

Deterministic masking provides a solution for this problem. You can use the Substitute format to mask employee ID column(s) in all three databases. The Substitute format uses a table of values from which to substitute the original value with a mask value. As long as this table of values does not change, the mask is deterministic or consistent across the three databases.


Tip:

For more information on the Substitute format, see the online help for the Define Column Mask page.

15.6 Masking with an Application Data Model and Workloads

Before creating a masking definition, note the following prerequisites and advisory information:

  • Ensure that you have the following minimum privileges for data masking:

    • EM_ALL_OPERATOR for Enterprise Manager Cloud Control users

    • SELECT_CATALOG_ROLE for database users

    • Select Any Dictionary privilege for database users

    • Execute privileges for the DBMS_CRYPTO package

  • Ensure the format you select does not violate check constraints and does not break any applications that use the data.

  • For triggers and PL/SQL packages, data masking recompiles the object.

  • Exercise caution when masking partitioned tables, especially if you are masking the partition key. In this circumstance, the row may move to another partition.

  • Data Masking does not support clustered tables, masking information in object tables, XML tables, and virtual columns. Relational tables are supported for masking.

  • If objects are layered on top of a table such as views, materialized views, and PL/SQL packages, they are recompiled to be valid.

If you plan to mask a test system intended for evaluating performance, the following practices are recommended:

  • Try to preserve the production statistics and SQL profiles after masking by adding a pre-masking script to export the SQL profiles and statistics to a temporary table, then restoring after masking completes.

  • Run a SQL Performance Analyzer evaluation to understand the masking impact on performance. Any performance changes other than what appears in the evaluation report are usually related to application-specific changes on the masked database.

To create a masking definition: 

  1. From the Enterprise menu, select Quality Management, then Data Masking Definitions.

    The Data Masking Definitions page appears, where you can create and schedule new masking definitions and manage existing masking definitions.


    Tip:

    For information on page user controls, see the online help for the Data Masking Definitions page.

  2. Click Create to go to the Create Masking Definition page.

    A masking definition includes information regarding table columns and the format for each column. You can choose which columns to mask, leaving the remaining columns intact.


    Tip:

    For information on page user controls, see the online help for the Create Masking Definition page.

  3. Provide a required Name, Application Data Model, and Reference Database.

    When you click the search icon and select an Application Data Model (ADM) name from the list, the system automatically populates the Reference Database field.

    • Optional: Check Ensure Workload Masking Compatibility if you want to mask Capture files and SQL Tuning Sets.

      When you enable this check box, the masking definition is evaluated to determine if the SQL Expression format or conditional masking is being used. If either is in use when you click OK, the option becomes unchecked and an error message appears asking you to remove these items before selecting this option.


      Note:

      Before proceeding to the next step, one or more sensitive columns must already be defined in the Application Data Model. See "Managing Sensitive Column Types" for more information.

  4. Click Add to go to the Add Columns page, where you can choose which sensitive columns in the ADM you want to mask.


    Tip:

    For information on page user controls, see the online help for the Add Columns page.

  5. Enter search criteria, then click Search.

    The sensitive columns you defined in the ADM appear in the table below.

  6. Either select one or more columns for later formatting on the Create Masking Definition page, or formatting now if the data types of the columns you have selected are identical.


    Tip:

    For information on data types, see "Supported Data Types".

  7. Optional: if you want to mask selected columns as a group, enable Mask selected columns as a group. The columns that you want to mask as a group must all be from the same table.

    Enable this check box if you want to mask more than one column together, rather than separately. When you select two or more columns and then later define the format on the Define Group Mask page, the columns appear together, and any choices you make for format type or masking table apply collectively to all of the columns.

    After you define the group and return to this page, the Column Group column in the table shows an identical number for each entry row in the table for all members of the group. For example, if you have defined your first group containing four columns, each of the four entries in this page will show a number 1 in the Column Group column. If you define another group, the entries in the page will show the number 2, and so forth. This helps you to distinguish which columns belong to which column groups.

  8. Either click Add to add the column to the masking definition, return to the Create Masking Definition page and define the format of the column later, or click Define Format and Add to define the format for the column now.

    The Define Format and Add feature can save you significant time. When you select multiple columns to add that have the same data type, you do not need to define the format for each column as you would when you click Add. For instance, if you search for Social Security numbers (SSN) and the search yields 100 SSN columns, you could select them all, then click Define Format and Add to import the SSN format for all of them.

  9. Do one of the following:

    • If you clicked Add in the previous step:

      You will eventually need to define the format of the column in the Create Masking Definition page before you can continue. When you are ready to do so, click the icon in the page Format column for the column you want to format. Depending on whether you decided to mask selected columns as a group on the Add Columns page, either the Define Column mask or Define Group mask appears. Read further in this step for instructions for both cases.

    • If you clicked Define Format and Add in the previous step and did not check Mask selected columns as a group:

      The Define Column Mask page appears, where you can define the format for the column before adding the column to the Create Masking Definition page, as explained below:

      • Provide a format entry for the required Default condition by either selecting a format entry from the list and clicking Add, or clicking Import Format, selecting a predefined format on the Import Format page, then clicking Import.

        The Import Format page displays the formats that are marked with the same sensitive type as the masked column.

        For information about Oracle-supplied predefined masking format definitions, see "Using Oracle-supplied Predefined Masking Formats".

        For descriptions of the choices available in the Format Entry list, see "Providing a Masking Format to Define a Column".

      • Add another condition by clicking Add Condition to add a new condition row, then provide one or more format entries as described in the previous step.

      • When you have finished formatting the column, click OK to return to the Create Masking Definition page.

    • If you clicked Define Format and Add in the previous step and checked Mask selected columns as a group:

      The Define Group Mask page appears, where you can add format entries for group columns that appear in the Create Masking Definition page, as explained below:

      • Select one of the available format types. For complete information on the format types, see the online help for the Defining the Group Masking Format topic.

        For descriptions of the choices available in the Format Entry list, see "Providing a Masking Format to Define a Column".

      • Optionally add a column to the group.

      • When you have finished formatting the group, click OK to return to the Create Masking Definition page.

        Your configuration appears in the Columns table. The sensitive columns you selected earlier now appear on this page. The selected columns are the primary key, and the foreign key columns are listed below. These columns are masked as well.

  10. Expand Show Advanced Options and decide whether the selected default data masking options are satisfactory.

    For more information, see "Selecting Data Masking Advanced Options".

  11. Click OK to save your definition and return to the Data Masking Definitions page.

    At this point, super administrators can see each other's masking definitions.

  12. Select the definition and click Generate Script to view the script for the list of database commands used to mask the columns you selected earlier.

    This process checks whether sufficient disk space is available for the operation, and also determines the impact on other destination objects, such as users, after masking. After the process completes, the Script Generation Results page appears, enabling you to do the following:

    • Save the entire PL/SQL script to your desktop, if desired.

    • Clone and mask the database using the Clone Database wizard (this requires a Provisioning pack license).

    • Schedule the data masking job without cloning.

    • View errors and warnings, if any, in the impact report.


    Tip:

    For information on page user controls, see the online help for the Script Generation Results page.


    Note:

    If any tables included in the masking definition have columns of data type LONG, a warning message may appear. For more information, see "Using Data Masking with LONG Columns".

  13. Do one of the following:

    • If you are working with a production database, click Clone and Mask to clone and mask the database you are currently working with to ensure that you do not mask your production database.

      The Clone and Mask feature requires a Provisioning and Patch Automation pack license.

      For more information, see "Cloning the Production Database".

    • If you are already working with a test database and want to directly mask the data in this database, click Schedule Job.

      • Provide the requisite information and desired options. You can specify the database at execution time to any database. The system assumes that the database you select is a clone of the source database. By default, the source database from the ADM is selected.

      • Click Submit.

        The Data Masking Definitions page appears. The job has been submitted to Enterprise Manager and the masking process appears. The Status column on this page indicates the current stage of the process.


      Tip:

      For information on page user controls, see the online help for Scheduling a Data Masking Job.

15.6.1 Adding Dependent Columns

Dependent columns are defined by adding them to the Application Data Model. The following prerequisites apply for the column to be defined as dependent:

  • A valid dependent column should not already be included for masking.

  • The column should not be a foreign key column or referenced by a foreign key column.

  • The column data should conform to the data in the parent column.

If the column does not meet these criteria, an "Invalid Dependent Columns" message appears when you attempt to add the dependent column.

15.6.2 Masking Dependent Columns for Packaged Applications

The following procedure explains how to mask data across columns for packaged applications in which the relationships are not defined in the data dictionary.

To mask dependent columns for packaged applications: 

  1. Go to Data Discovery and Modeling and create a new Application Data Model (ADM) using metadata collection for your packaged application suite.

    When metadata collection is complete, edit the newly created ADM.

  2. Manually add a referential relationship:

    1. From the Referential Relationships tab, open the Actions menu, then select Add Referential Relationship.

      The Add Referential Relationship pop-up window appears.

    2. Select the requisite Parent Key and Dependent Key information.

    3. In the Columns Na&sٌme list, select a dependent key column to associate with a parent key column.

    4. Click OK to add the referential relationship to the ADM.

      The new dependent column now appears in the referential relationships list.

  3. Perform sensitive column discovery.

    When sensitive column discovery is complete, review the columns found by the discovery job and mark them sensitive or not sensitive as needed.

    When marked as sensitive, any discovery sensitive column also marks its parent and the other child columns of the parent as sensitive. Consequently, it is advisable to first create the ADM with all relationships. ADM by default, or after running drivers, may not contain denormalized relationships. You need to manually add these.

    For more information about sensitive column discovery, see step 6.

  4. Go to Data Masking and create a new masking definition.

  5. Select the newly created ADM and click Add, then Search to view this ADM's sensitive columns.

  6. Select columns based on your search results, then import formats for the selected columns.

    Enterprise Manager displays formats that conform to the privacy attributes.

  7. Select the format and generate the script.

  8. Execute the masking script.

    Enterprise Manager executes the generated script on the target database and masks all of your specified columns.

15.6.3 Selecting Data Masking Advanced Options

The following options on the Masking Definitions page are all checked by default, so you need to uncheck the options that you do not want to enable:

15.6.3.1 Data Masking Options

The data masking options include:

  • Disable redo log generation during masking

    Masking disables redo logging and flashback logging to purge any original unmasked data from logs. However, in certain circumstances when you only want to test masking, roll back changes, and retry with more mask columns, it is easier to uncheck this box and use a flashback database to retrieve the old unmasked data after it has been masked. You can use Enterprise Manager to flashback a database.


    Note:

    Disabling this option compromises security. You must ensure this option is enabled in the final mask performed on the copy of the production database.

  • Refresh statistics after masking

    If you have already enabled statistics collection and would like to use special options when collecting statistics, such as histograms or different sampling percentages, it is beneficial to turn off this option to disable default statistics collection and run your own statistics collection jobs.

  • Drop temporary tables created during masking

    Masking creates temporary tables that map the original sensitive data values to mask values. In some cases, you may want to preserve this information to track how masking changed your data. Note that doing so compromises security. These tables must be dropped before the database is available for unprivileged users.

  • Decrypt encrypted columns

    This option decrypts columns that were previously masked using Encrypt format. To decrypt a previously encrypted column, the seed value must be the same as the value used to encrypt.

    Decrypt only recovers the original value if the original format used for the encryption matches the original value. If the originally encrypted value did not conform to the specified regular expression, when decrypted, the encrypted value cannot reproduce the original value.

  • Use parallel execution when possible

    Oracle Database can make parallel various SQL operations that can significantly improve their performance. Data Masking uses this feature when you select this option. You can enable Oracle Database to automatically determine the degree of parallelism, or you can specify a value. For more information about using parallel execution and the degree of parallelism, see Oracle Database Data Warehousing Guide.

15.6.3.2 Random Number Generation

The random number generation options include:

  • Favor Speed

    The DBMS_RANDOM package is used for random number generation.

  • Favor Security

    The DBMS_CRYPTO package is used for random number generation. Additionally, if you use the Substitute format, a seed value is required when you schedule the masking job or database clone job.

15.6.3.3 Pre- and Post-mask Scripts

When masking a test system to evaluate performance, it is beneficial to preserve the object statistics after masking. You can accomplish this by adding a pre-masking script to export the statistics to a temporary table, then restoring them with a post-masking script after masking concludes.

Use the Pre Mask Script text box to specify any user-specified SQL script that must run before masking starts.

Use the Post Mask Script text box to specify any user-specified SQL script that must run after masking completes. Since masking modifies data, you can also perform tasks, such as rebalancing books or calling roll-up or aggregation modules, to ensure that related or aggregate information is consistent.

The following examples show pre- and post-masking scripts for preserving statistics.

Example 15-1 Pre-masking Script for Preserving Statistics

variable sts_task  VARCHAR2(64);

/*Step :1 Create the staging table for statistics*/

exec dbms_stats.create_stat_table(ownname=>'SCOTT',stattab=>'STATS');
 
/* Step 2: Export the table statistics into the staging table. Cascade results in
all index and column statistics associated with the specified table being exported
as well. */
 
exec
dbms_stats.export_table_stats(ownname=>'SCOTT',tabname=>'EMP',
partname=>NULL,stattab=>'STATS',statid=>NULL,cascade=>TRUE,statown=>'SCOTT');
exec
dbms_stats.export_table_stats(ownname=>'SCOTT',tabname=>'DEPT',
partname=>NULL,stattab=>'STATS',statid=>NULL,cascade=>TRUE,statown=>'SCOTT');

/* Step 3: Create analysis task */
3. exec :sts_task := DBMS_SQLPA.create_analysis_task(sqlset_name=>
'scott_test_sts',task_name=>'SPA_TASK', sqlset_owner=>'SCOTT');
 
/*Step 4: Execute the analysis task before masking */
exec DBMS_SQLPA.execute_analysis_task(task_name => 'SPA_TASK', 
execution_type=> 'explain plan', execution_name  => 'pre-mask_SPA_TASK'); 

Example 15-2 Post-masking Script for Preserving Statistics

*Step 1: Import the statistics from the staging table to the dictionary tables*/
 
exec
dbms_stats.import_table_stats(ownname=>'SCOTT',tabname=>'EMP',
partname=>NULL,stattab=>'STATS',statid=>NULL,cascade=>TRUE,statown=>'SCOTT');
exec
dbms_stats.import_table_stats(ownname=>'SCOTT',tabname=>'DEPT',
partname=>NULL,stattab=>'STATS',statid=>NULL,cascade=>TRUE,statown=>'SCOTT');
 
/* Step 2: Drop the staging table */
 
exec dbms_stats.drop_stat_table(ownname=>'SCOTT',stattab=>'STATS');

/*Step 3: Execute the analysis task before masking */
exec DBMS_SQLPA.execute_analysis_task(task_name=>'SPA_TASK', 
execution_type=>'explain plan', execution_name=>'post-mask_SPA_TASK');
 
/*Step 4: Execute the comparison task */
exec DBMS_SQLPA.execute_analysis_task(task_name =>'SPA_TASK', 
execution_type=>'compare', execution_name=>'compare-mask_SPA_TASK'); 

Tip:

See "Masking a Test System to Evaluate Performance" for a procedure that explains how to specify the location of these scripts when scheduling a data masking job.

15.6.4 Cloning the Production Database

When you clone and mask the database, a copy of the masking script is saved in the Enterprise Manager repository and then retrieved and executed after the clone process completes. Therefore, it is important to regenerate the script after any schema changes or modifications to the production database.


Note:

Ensure that you have a Provisioning and Patch Automation pack license before proceeding. The Clone Database feature requires this license.

To clone and optionally mask the masking definition's target database: 

  1. From the Data Masking Definitions page, select the masking definition you want to clone, select Clone Database from the Actions list, then click Go.

    The Clone Database: Source Type page appears.

    The Clone Database wizard appears, where you can create a test system to run the mask. You can also access this wizard by clicking the Clone and Mask button from the Script Generation Results page.

  2. Specify the type of source database backup to be used for the cloning operation, then click Continue.

  3. Proceed through the wizard steps as you ordinarily would to clone a database. For assistance, refer to the online help for each step.

  4. In the Database Configuration step of the wizard, add a masking definition, then select the Run SQL Performance Analyzer option as well as other options as desired or necessary.

  5. Schedule and then run the clone job.


Note:

A limitation in the Mask Data step during a Clone Database operation in Enterprise Manager version 12c causes the clone job to not automatically copy over the capture directory contents that need to be masked onto the destination file system.

See the following procedure for a workaround.


To work around the Mask Data step limitation: 

  • Add a post-clone script and copy the workload contents to the destination directory. (Refer to the Database Configuration step discussed in "Using Cloning and Masking for Evaluation".)

    Before copying, ensure that the destination directory matches the correct mapping of the destination directory object. If the source database has a directory object of CAPTURE_DIR with a path of /net/sourcehost/scratch/aime/capture_dir/, the cloned database will have the same directory object, but with a path of /net/desthost/scratch/aime/capture_dir/, as shown in the following command you can add to the post-clone script:

    host cp -r 
    /net/sourcehost/path/to/capture_dir /net/desthost/path/to/capture_dir
    
    • The Clone user interface contains a field to add this information to the Clone operation.

    • Note that cloning the database also clones the directory objects. However, you can configure the location of the directory object on the destination host during cloning.

Alternatively, If the disks are not remotely mounted, you can perform the copy procedure with the RCP command, or by initiating a ZIP host command, then using FTP.

15.6.5 Importing a Data Masking Template

You can import and re-use a previously exported data masking definition template, including templates for Fusion Applications, saved as an XML file to the current Enterprise Manager repository.

Note the following advisory information:

  • The XML file format must be compliant with the masking definition XML format.

  • Verify that the name of the masking definition to be imported does not already exist in the repository.

  • Verify that the target name identifies a valid Enterprise Manager target.

To import a data masking template: 

  1. From the Data Masking Definitions page, click Import.

    The Import Masking Definition page appears.

  2. Specify the ADM associated with the template. The Reference Database is automatically provided.

  3. Browse for the XML file, or specify the name of the XML file, then click Continue.

The Data Masking Definitions Page reappears and displays the imported definition in the table list for subsequent viewing and masking.

15.7 Masking a Test System to Evaluate Performance

After you have created a data masking definition, you may want to use it to analyze the performance impact from masking on a test system. The procedures in the following sections explain the process for this task for masking only, or cloning and masking.

15.7.1 Using Only Masking for Evaluation

To use only masking to evaluate performance: 

  1. From the Data Masking Definitions page, select the masking definition to be analyzed, then click Schedule Job.

    The Schedule Data Masking Job page appears.

  2. At the top of the page, provide the requisite information.

    The script file location pertains to the masking script, which also contains the pre- and post-masking scripts you created in "Pre- and Post-mask Scripts".

  3. In the Encryption Seed section, provide a text string that you want to use for encryption.

    This section only appears for masking definitions that use the Substitute or Encrypt formats. The seed is an encryption key used by the encryption/hash-based substitution APIs, and makes masking more deterministic instead of being random.

  4. In the Workloads section:

    1. Select the Mask SQL Tuning Sets option, if desired.

      If you use a SQL Tuning Set that has sensitive data to evaluate performance, it is beneficial to mask it for security, consistency of data with the database, and to generate correct evaluation results.

    2. Select the Capture Files option, if desired, then select a capture directory.

      When you select this option, the contents of the directory is masked. The capture file masking is executed consistently with the database.

  5. In the Detect SQL Plan Changes Due to Masking section, leave the Run SQL Performance Analyzer option unchecked.

    You do not need to enable this option because the pre- and post-masking scripts you created, referenced in step 2, already execute the analyzer.

  6. Provide credentials and scheduling information, then click Submit.

    The Data Masking Definitions page reappears, and a message appears stating that the Data Masking job has been submitted successfully.

    During masking of any database, the AWR bind variable data is purged to protect sensitive bind variables from leaking to a test system.

  7. When the job completes successfully, click the link in the SQL Performance Analyzer Task column to view the executed analysis tasks and Trial Comparison Report, which shows any changes in plans, timing, and so forth.

15.7.2 Using Cloning and Masking for Evaluation

Using both cloning and masking to evaluate performance is very similar to the procedure described in the previous section, except that you specify the options from the Clone Database wizard, rather than from the Schedule Data Masking Job page.

To use both cloning and masking to evaluate performance: 

  1. Follow the steps described in "Cloning the Production Database".

  2. At step 4, the format of the Database Configuration step appears different from the Schedule Data Masking Job page discussed in "Using Only Masking for Evaluation", but select options as you would for the Schedule Data Masking Job page.

  3. Continue with the wizard steps to complete and submit the cloning and masking job.

15.8 Upgrade Considerations

Consider the following points regarding upgrades:

  • Importing a legacy (11.1 Grid Control) mask definition into 12.1 Cloud Control creates a shell ADM that becomes populated with the sensitive columns and their dependent column information from the legacy mask definition. The Application Data Model (ADM), and hence data masking, then remains in an unverified state, because it is missing the dictionary relationships.

    For dictionary-defined relationships, you need to click on the ADM and perform a validation to bring in the referential relationships, whereupon it becomes valid. You can then continue masking with this ADM.


    Tip:

    For information on dependent columns, see "Adding Dependent Columns".

  • You can combine multiple upgraded ADMs by exporting an ADM and performing an Import Content into another ADM.

  • An upgraded ADM uses the same semantics as for importing a legacy mask definition (discussed above), in that you would need to perform a validation.

  • An 11.1 Grid Control E-Business Suite (EBS) masking definition based on an EBS masking template shipped from Oracle is treated as a custom application after the upgrade. You can always use the approach discussed in the second bulleted item above to move into a newly created EBS ADM with all of the metadata in place. However, this is not required.

15.9 Using the Shuffle Format

A shuffle format is available that does not preserve data distribution when the column values are not unique and also when it is conditionally masked. For example, consider the Original Table (Table 15-1) that shows two columns: EmpName and Salary. The Salary column has three distinct values: 10, 90, and 20.

Table 15-1 Original Table (Non-preservation)

EmpNameSalary

A

10

B

90

C

10

D

10

E

90

F

20


If you mask the Salary column with this format, each of the original values is replaced with one of the values from this set. Assume that the shuffle format replaces 10 with 20, 90 with 10, and 20 with 90 (Table 15-2).

Table 15-2 Mapping Table (Non-preservation)

EmpNameSalary

10

20

90

10

20

90


The result is a shuffled Salary column as shown in the Masked Table (Table 15-3), but the data distribution is changed. While the value 10 occurs three times in the Salary column of the Original Table, it occurs only twice in the Masked Table.

Table 15-3 Masked Table (Non-preservation)

EmpNameSalary

A

20

B

10

C

20

D

20

E

10

F

90


If the salary values had been unique, the format would have maintained data distribution.

15.10 Using Data Masking with LONG Columns

When data masking script generation completes, an impact report appears. If the masking definition has tables with columns of data type LONG, the following warning message is displayed in the impact report:

The table <table_name> has a LONG column. Data Masking uses "in-place" UPDATE to
mask tables with LONG columns. This will generate undo information and the
original data will be available in the undo tablespaces during the undo retention
period. You should purge undo information after masking the data. Any orphan rows
in this table will not be masked.
PK=gv5s&sPK9AOEBPS/spa_task.htm Creating an Analysis Task

3 Creating an Analysis Task

Once you have captured a SQL workload that you want to analyze into a SQL tuning set, you can run SQL Performance Analyzer to analyze the effects of a system change on SQL performance. To run SQL Performance Analyzer, you must first create a SQL Performance Analyzer task. A task is a container that encapsulates all of the data about a complete SQL Performance Analyzer analysis. A SQL Performance Analyzer analysis comprises of at least two SQL trials and a comparison. A SQL trial captures the execution performance of a SQL tuning set under specific environmental conditions and can be generated automatically using SQL Performance Analyzer by one of the following methods:

  • Test executing SQL statements

  • Generating execution plans for SQL statements

  • Referring to execution statistics and plans captured in a SQL tuning set

When creating a SQL Performance Analyzer task, you will need to select a SQL tuning set as its input source. The SQL tuning set will be used as the source for test executing or generating execution plans for SQL trials. Thus, performance differences between trials are caused by environmental differences. For more information, see "Creating a SQL Performance Analyzer Task".

This chapter described how to create a SQL Performance Analyzer task and contains the following topics:


Note:

The primary interface for running SQL Performance Analyzer is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can run SQL Performance Analyzer using the DBMS_SQLPA PL/SQL package.


Tip:

Before running SQL Performance Analyzer, capture the SQL workload to be used in the performance analysis into a SQL tuning set on the production system, then transport it to the test system where the performance analysis will be performed, as described in "Capturing the SQL Workload".

3.1 Creating an Analysis Task Using Enterprise Manager

There are several workflows available in Oracle Enterprise Manager for creating a SQL Performance Analyzer task.

To create an analysis task using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click SQL Performance Analyzer.

    The SQL Performance Analyzer page appears.

    Description of spa.gif follows
    Description of the illustration spa.gif

  2. Under SQL Performance Analyzer Workflows, select the workflow for creating the desired type of analysis task:

3.1.1 Using the Parameter Change Workflow

The parameter change workflow enables you to test the performance effect on a SQL workload when you change the value of a single environment initialization parameter. For example, you can compare SQL performance by setting the OPTIMIZER_FEATURES_ENABLE initialization parameter set to 10.2.0.4 and 11.2.0.1.

After you select a SQL tuning set and a comparison metric, SQL Performance Analyzer creates a task and performs a trial with the initialization parameter set to the original value. SQL Performance Analyzer then performs a second trial with the parameter set to the changed value by issuing an ALTER SESSION statement. The impact of the change is thus contained locally to the testing session. Any regression or change in performance is reported in a system-generated SQL Performance Analyzer report.


Note:

To create an analysis task for other types of system changes, use the guided workflow instead, as described in "Using the Guided Workflow".

To use the SQL Performance Analyzer parameter change workflow:

  1. On the SQL Performance Analyzer page, under SQL Performance Analyzer Workflows, click Parameter Change.

    The Parameter Change page appears.

    Description of spa_param_change.gif follows
    Description of the illustration spa_param_change.gif

  2. In the Task Name field, enter the name of the task.

  3. In the SQL Tuning Set field, enter the name of the SQL tuning set that contains the SQL workload to be analyzed.

    Alternatively, click the search icon to search for a SQL tuning set using the Search and Select: SQL Tuning Set window.

    The selected SQL tuning set now appears in the SQL Tuning Set field.

  4. In the Description field, optionally enter a description of the task.

  5. In the Creation Method list, determine how the SQL trial is created and what contents are generated by performing one of the following actions:

    • Select Execute SQLs.

      The SQL trial generates both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements.

    • Select Generate Plans.

      The SQL trial invokes the optimizer to create execution plans only without actually running the SQL statements.

  6. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged time period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  7. In the Parameter Change section, complete the following steps:

    1. In the Parameter Name field, enter the name of the initialization parameter whose value you want to modify, or click the Search icon to select an initialization parameter using the Search and Select: Initialization Parameters window.

    2. In the Base Value field, enter the current value of the initialization parameter.

    3. In the Changed Value field, enter the new value of the initialization parameter.

  8. In the Comparison Metric list, select the comparison metric to use for the analysis:

    • If you selected Generate Plans in Step 5, then select Optimizer Cost.

    • If you selected Execute SQLs in Step 5, then select one of the following options:

      • Elapsed Time

      • CPU Time

      • User I/O Time

      • Buffer Gets

      • Physical I/O

      • Optimizer Cost

      • I/O Interconnect Bytes

    To perform the comparison analysis by using more than one comparison metric, perform separate comparison analyses by repeating this procedure using different metrics.

  9. In the Schedule section:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  10. Click Submit.

    The SQL Performance Analyzer page appears.

    In the SQL Performance Analyzer Tasks section, the status of this task is displayed. To refresh the status icon, click Refresh. After the task completes, the Status field changes to Completed.

    Description of spa_tasks_param_change.gif follows
    Description of the illustration spa_tasks_param_change.gif

  11. In the SQL Performance Analyzer Tasks section, select the task and click the link in the Name column.

    The SQL Performance Analyzer Task page appears.

    Description of spa_task_param_change.gif follows
    Description of the illustration spa_task_param_change.gif

    This page contains the following sections:

    • SQL Tuning Set

      This section summarizes information about the SQL tuning set, including its name, owner, description, and the number of SQL statements it contains.

    • SQL Trials

      This section includes a table that lists the SQL trials used in the SQL Performance Analyzer task.

    • SQL Trial Comparisons

      This section contains a table that lists the results of the SQL trial comparisons

  12. Click the icon in the Comparison Report column.

    The SQL Performance Analyzer Task Result page appears.

  13. Review the results of the performance analysis, as described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

  14. In cases when regression are identified, click the icon in the SQL Tune Report column to view a SQL tuning report.

3.1.2 Using the Optimizer Statistics Workflow

The optimizer statistics workflow enables you to analyze the effects of optimizer statistics changes on the performance of a SQL workload.

SQL Performance Analyzer tests the effect of new optimizer statistics by enabling pending optimizer statistics in the testing session. The first SQL trial measures the baseline SQL tuning set performance; the second SQL trial uses the pending optimizer statistics. You can then run a comparison report for the two SQL trials.

To use the optimizer statistics workflow:

  1. On the SQL Performance Analyzer page, under SQL Performance Analyzer Workflows, click Optimizer Statistics.

    The Optimizer Statistics page appears.

    Description of spa_optimizer_stats.gif follows
    Description of the illustration spa_optimizer_stats.gif

  2. In the Task Name field, enter the name of the task.

  3. In the SQL Tuning Set field, enter the name of the SQL tuning set that contains the SQL workload to be analyzed.

    Alternatively, click the search icon to search for a SQL tuning set using the Search and Select: SQL Tuning Set window.

    The selected SQL tuning set now appears in the SQL Tuning Set field.

  4. In the Description field, optionally enter a description of the task.

  5. In the Creation Method list, determine how the SQL trial is created and what contents are generated by performing one of the following actions:

    • Select Execute SQLs.

      The SQL trial generates both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements.

    • Select Generate Plans.

      The SQL trial invokes the optimizer to create execution plans only without actually running the SQL statements.

  6. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged time period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  7. In the Comparison Metric list, select the comparison metric to use for the comparison analysis:

    • Elapsed Time

    • CPU Time

    • User I/O Time

    • Buffer Gets

    • Physical I/O

    • Optimizer Cost

    • I/O Interconnect Bytes

    Optimizer Cost is the only comparison metric available if you chose to generate execution plans only in the SQL trials.

    To perform the comparison analysis by using more than one comparison metric, perform separate comparison analyses by repeating this procedure with different metrics.

  8. Ensure that pending optimizer statistics are collected, and select Pending optimizer statistics collected.

  9. In the Schedule section:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  10. Click Submit.

    The SQL Performance Analyzer page appears.

    In the SQL Performance Analyzer Tasks section, the status of this task is displayed. To refresh the status icon, click Refresh. After the task completes, the Status field changes to Completed.

    Description of spa_tasks_optimizer.gif follows
    Description of the illustration spa_tasks_optimizer.gif

  11. In the SQL Performance Analyzer Tasks section, select the task and click the link in the Name column.

    The SQL Performance Analyzer Task page appears.

    Description of spa_task_optimizer.gif follows
    Description of the illustration spa_task_optimizer.gif

    This page contains the following sections:

    • SQL Tuning Set

      This section summarizes information about the SQL tuning set, including its name, owner, description, and the number of SQL statements it contains.

    • SQL Trials

      This section includes a table that lists the SQL trials used in the SQL Performance Analyzer task.

    • SQL Trial Comparisons

      This section contains a table that lists the results of the SQL trial comparisons

  12. Click the icon in the Comparison Report column.

    The SQL Performance Analyzer Task Result page appears.

  13. Review the results of the performance analysis, as described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

    Any regressions found in performance can be fixed using SQL plan baselines and the SQL Tuning Advisor. If the pending optimizer statistics produce satisfactory performance, you can publish for use.

3.1.3 Using the Exadata Simulation Workflow

The Exadata simulation workflow enables you to simulate the effects of an Exadata Storage Server installation on the performance of a SQL workload.

Oracle Exadata provides extremely large I/O bandwidth coupled with a capability to offload SQL processing from the database to storage. This allows Oracle Database to significantly reduce the volume of data sent through the I/O interconnect, while at the same time offloading CPU resources to the Exadata storage cells.

SQL Performance Analyzer can analyze the effectiveness of Exadata SQL offload processing by simulating an Exadata Storage Server installation and measuring the reduction in I/O interconnect usage for the SQL workload.

Running the Exadata simulation does not require any hardware or configuration changes to your system. After you select a SQL tuning set, SQL Performance Analyzer creates a task and performs an initial trial with the Exadata Storage Server simulation disabled. SQL Performance Analyzer then performs a second trial with the Exadata Storage Server simulation enabled. SQL Performance Analyzer then compares the two trials using the I/O Interconnect Bytes comparison metric and generates a SQL Performance Analyzer report, which estimates the amount of data that would not need to be sent from the Exadata storage cells to the database if Oracle Exadata is being used. In both SQL trials, the SQL statements are executed to completion and I/O interconnect bytes measurements are taken as the actual and simulated Exadata values for the first and second trials, respectively. The measured change in I/O interconnect bytes provides a good estimate of how much filtering can be performed in the Exadata storage cells and, in turn, the amount of CPU that normally would be used to process this data, but now can be offloaded from the database.


Note:

Using the Exadata simulation will not result in any plan changes. Execution plans do not change in an Exadata Storage Server installation because the simulation focuses on measuring the improvement in I/O interconnect usage. Moreover, I/O interconnect bytes will not increase, except when data compression is used (see next note), because Oracle Exadata will only decrease the amount of data sent to the database.


Note:

Because I/O interconnect bytes is the only metric used to measure the performance change impact of using an Exadata Storage Server installation, it will not work properly if Oracle Exadata is used with data compression. Since Exadata storage cells also decompress data, the I/O interconnect bytes with Oracle Exadata (or the second SQL trial) of a SQL statement may be greater than the I/O interconnect bytes without Oracle Exadata (or the first SQL trial) where the data is compressed. This comparison will be misleading because the SQL statement will be reported as a regression; when in fact, it is not.


Note:

The Exadata simulation workflow is used to simulate an Exadata Storage Server installation on non-Exadata hardware. To test changes on Exadata hardware, use the standard SQL Performance Analyzer workflows.


Note:

The Exadata simulation is supported for DSS and data warehouse workloads only.

To use the SQL Performance Analyzer Exadata simulation workflow:

  1. On the SQL Performance Analyzer page, under SQL Performance Analyzer Workflows, click Exadata Simulation.

    The Exadata Simulation page appears.

    Description of spa_exadata_sim.gif follows
    Description of the illustration spa_exadata_sim.gif

  2. In the Task Name field, enter the name of the task.

  3. In the SQL Tuning Set field, enter the name of the SQL tuning set that contains the SQL workload to be analyzed.

    Alternatively, click the search icon to search for a SQL tuning set using the Search and Select: SQL Tuning Set window.

    The selected SQL tuning set now appears in the SQL Tuning Set field.

  4. In the Description field, optionally enter a description of the task.

  5. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged time period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  6. In the Schedule section:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  7. Click Submit.

    The SQL Performance Analyzer page appears.

    In the SQL Performance Analyzer Tasks section, the status of this task is displayed. To refresh the status icon, click Refresh. After the task completes, the Status field changes to Completed.

    Description of spa_tasks_exadata.gif follows
    Description of the illustration spa_tasks_exadata.gif

  8. In the SQL Performance Analyzer Tasks section, select the task and click the link in the Name column.

    The SQL Performance Analyzer Task page appears.

    Description of spa_task_exadata_sim.gif follows
    Description of the illustration spa_task_exadata_sim.gif

    This page contains the following sections:

    • SQL Tuning Set

      This section summarizes information about the SQL tuning set, including its name, owner, description, and the number of SQL statements it contains.

    • SQL Trials

      This section includes a table that lists the SQL trials used in the SQL Performance Analyzer task.

    • SQL Trial Comparisons

      This section contains a table that lists the results of the SQL trial comparisons

  9. Click the icon in the Comparison Report column.

    The SQL Performance Analyzer Task Result page appears.

  10. Review the results of the performance analysis, as described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

    Any SQL performance improvement with the Exadata simulation between the first and second trials is captured in the report. In general, you can expect a greater impact if the SQL workload contains queries that scan a large number of rows or a small subset of table columns. Conversely, a SQL workload that queries indexed tables or tables with fewer rows will result in a lesser impact from the Exadata simulation.

3.1.4 Using the Guided Workflow

The guided workflow enables you to test the performance effect of any types of system changes on a SQL workload, as listed in "SQL Performance Analyzer".


Note:

To create an analysis task to test database initialization parameter changes, use the simplified parameter change workflow instead, as described in "Using the Parameter Change Workflow".

To use the SQL Performance Analyzer task guided workflow:

  1. On the SQL Performance Analyzer page, under SQL Performance Analyzer Workflows, click Guided Workflow.

    The Guided Workflow page appears.

    The guided workflow enables you to test the performance effect on a SQL workload when you perform any type of system changes, as described in "SQL Performance Analyzer".

    This page lists the required steps in the SQL Performance Analyzer task in sequential order. Each step must be completed in the order displayed before the next step can begin.

    Description of spa_guided_workflow.gif follows
    Description of the illustration spa_guided_workflow.gif

  2. On the Guided Workflow page, click the Execute icon for the Step 1: Create SQL Performance Analyzer Task based on SQL Tuning Set.

    The Create SQL Performance Analyzer Task page appears.

    Description of spa_create_task.gif follows
    Description of the illustration spa_create_task.gif

  3. In the Name field, enter the name of the task.

  4. In the Description field, optionally enter a description of the task.

  5. Under SQL Tuning Set, in the Name field, enter the name the SQL tuning set that contains the SQL workload to be analyzed.

    Alternatively, click the search icon to select a SQL tuning set from the Search and Select: SQL Tuning Set window.

  6. Click Create.

    The Guided Workflow page appears.

    The Status icon of this step has changed to a check mark and the Execute icon for the next step is now enabled.

  7. Once the analysis task is created, you can build the pre-change performance data by executing the SQL statements stored in the SQL tuning set, as described in Chapter 4, "Creating a Pre-Change SQL Trial".

3.2 Creating an Analysis Task Using APIs

This section describes how to create a SQL Performance Analyzer task by using the DBMS_SQLPA.CREATE_ANALYSIS_TASK function. A task is a database container for SQL Performance Analyzer execution inputs and results.


Tip:

Before proceeding, capture the SQL workload to be used in the performance analysis into a SQL tuning set on the production system, then transport it to the test system where the performance analysis will be performed, as described in "Capturing the SQL Workload".

Call the CREATE_ANALYSIS_TASK function to prepare the analysis of a SQL tuning set using the following parameters:

  • Set task_name to specify an optional name for the SQL Performance Analyzer task.

  • Set sqlset_name to the name of the SQL tuning set.

  • Set sqlset_owner to the owner of the SQL tuning set. The default is the current schema owner.

  • Set basic_filter to the SQL predicate used to filter the SQL from the SQL tuning set.

  • Set order_by to specify the order in which the SQL statements will be executed.

    You can use this parameter to ensure that the more important SQL statements will be processed and not skipped if the time limit is reached.

  • Set top_sql to consider only the top number of SQL statements after filtering and ranking.

The following example illustrates a function call:

VARIABLE t_name VARCHAR2(100);
EXEC :t_name := DBMS_SQLPA.CREATE_ANALYSIS_TASK(sqlset_name => 'my_sts', -
       task_name => 'my_spa_task');

Once the analysis task is created, you can build the pre-change performance data by executing the SQL statements stored in the SQL tuning set, as described in Chapter 4, "Creating a Pre-Change SQL Trial".


See Also:


3.2.1 Running the Exadata Simulation Using APIs

This section describes how to run the Oracle Exadata simulation using APIs. For information about how SQL Performance Analyzer simulates the effects of an Exadata Storage Server installation on the performance of a SQL workload, see "Using the Exadata Simulation Workflow".

To enable Exadata simulation for an analysis task, call the SET_ANALYSIS_TASK_PARAMETER procedure before creating the post-change SQL trial, as shown in the following example:

EXEC DBMS_SQLPA.SET_ANALYSIS_TASK_PARAMETER(task_name => 'my_spa_task', -
       parameter => 'CELL_SIMULATION_ENABLED', - 
       value => 'TRUE');

This will enable Exadata simulation when you create the post-change SQL trial, which can then be compared to the pre-change SQL trial that was created with Exadata simulation disabled.

Alternatively, you can run the Exadata simulation using the tcellsim.sql script:

  1. At the SQL prompt, enter:

    @$ORACLE_HOME/rdbms/admin/tcellsim.sql
    
  2. Enter the name and owner of the SQL tuning set to use:

    Enter value for sts_name: MY_STS
    Enter value for sts_owner: IMMCHAN
    

    The script then runs the following four steps automatically:

    • Creates a SQL Performance Analyzer task

    • Test executes SQL statements with Exadata simulation disabled

    • Test executes SQL statements with Exadata simulation enabled

    • Compares performance and generates analysis report

PKиPK9AOEBPS/spa_post_change.htmC1 Creating a Post-Change SQL Trial

5 Creating a Post-Change SQL Trial

After computing the pre-change SQL performance data, you can perform the system change on the test system. Before making the system change, ensure that you have executed the SQL workload in the initial environment to generate the pre-change performance data. For example, if you are testing how changing a database initialization parameter will affect SQL performance, execute the SQL workload once before changing the database initialization parameter to a new value. Depending on the type of change you are making, it may be necessary to reconfigure the environment on the test system to match the new environment for which you want to perform SQL performance analysis. For more information, see "Making a System Change".


Note:

You can optionally run SQL trials on a remote system by providing access to a public database link. When conducting remote SQL trials, the database version of the remote database where the SQL statements are executed must be less than or equal to the database version of the database to which it connects. Starting with Oracle Database release 11.2.0.2, the remote database can be a read-only database, such as an Oracle Active Data Guard instance.

"SQL Performance Analyzer" lists examples of possible system changes that can be analyzed using SQL Performance Analyzer. For example, you may want to determine how a database initialization parameter change or database upgrade will affect SQL performance. You may also decide to change the system based on recommendations from an advisor such as Automatic Database Diagnostic Monitor (ADDM), SQL Tuning Advisor, or SQL Access Advisor.

After you have made the system change, you can build the post-change version of performance data by executing the SQL workload again. SQL Performance Analyzer will store the results from executing the SQL statements in a post-change SQL trial. For more information, see "Measuring the Post-Change SQL Performance".

This section described how to create the post-change SQL trial and contains the following topics:


Note:

The primary interface for creating a post-change SQL trial is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can create a post-change SQL trial using the DBMS_SQLPA PL/SQL package.


Tip:

Before making the system change creating a post-change SQL trial, you need to create a pre-change SQL trial, as described in Chapter 4, "Creating a Pre-Change SQL Trial".

5.1 Creating a Post-Change SQL Trial Using Oracle Enterprise Manager

This section describes how to collect the post-change SQL performance data using Oracle Enterprise Manager.

To create a post-change SQL trial using Enterprise Manager:

  1. On the Guided Workflow page, click the Execute icon for the Create SQL Trial in Changed Environment step.

    The Create SQL Trial page appears.

  2. In the SQL Trial Name field, enter the name of the SQL trial.

  3. In the SQL Trial Description field, enter a description of the SQL trial.

  4. In the Creation Method list, determine how the SQL trial is created and what contents are generated by performing one of the following actions:

    • Select Execute SQLs Locally.

      The SQL trial generates both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements locally on the test system.

    • Select Execute SQLs Remotely.

      The SQL trial generates both execution plans and statistics for each SQL statement in the SQL tuning set by actually running the SQL statements remotely on another test system over a public database link.

    • Select Generate Plans Locally.

      The SQL trial invokes the optimizer to create execution plans locally on the test system without actually running the SQL statements.

    • Select Generate Plans Remotely.

      The SQL trial invokes the optimizer to create execution plans remotely on another test system over a public database link without actually running the SQL statements.

    For each of these creation methods, the application schema and data should already exist on the local or remote test system.

  5. In the Per-SQL Time Limit list, determine the time limit for SQL execution during the trial by performing one of the following actions:

    • Select 5 minutes.

      The execution will run each SQL statement in the SQL tuning set up to 5 minutes and gather performance data.

    • Select Unlimited.

      The execution will run each SQL statement in the SQL tuning set to completion and gather performance data. Collecting execution statistics provides greater accuracy in the performance analysis but takes a longer time. Using this setting is not recommended because the task may be stalled by one SQL statement for a prolonged time period.

    • Select Customize and enter the specified number of seconds, minutes, or hours.

  6. Ensure that the system change you are testing has been performed on the test system, and select Trial environment established.

  7. In the Schedule section:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  8. Click Submit.

    The Guided Workflow page appears when the execution begins.

    The status icon of this step changes to a clock while the execution is in progress. To refresh the status icon, click Refresh. Depending on the options selected and the size of the SQL workload, the execution may take a long time to complete. After the execution is completed, the Status icon will change to a check mark and the Execute icon for the next step is enabled.

  9. Once the post-change performance data is built, you can compare the pre-change SQL trial to the post-change SQL trial by running a comparison analysis, as described in Chapter 6, "Comparing SQL Trials".

5.2 Creating a Post-Change SQL Trial Using APIs

This section describes how to collect the post-change SQL performance data using the DBMS_SQLPA.EXECUTE_ANALYSIS_TASK procedure.


Note:

If you are running the SQL statements remotely on another test system over a database link, the remote user calling this procedure needs to have the EXECUTE privilege for the DBMS_SQLPA package.

Call the EXECUTE_ANALYSIS_TASK procedure using the parameters described in "Creating a Pre-Change SQL Trial Using APIs". Be sure to specify a different value for the execution_name parameter. It is also highly recommended that you create the post-change SQL trial using the same method as the pre-change SQL trial by using the same value for the execution_type parameter.


Note:

If you want to run an Oracle Exadata simulation, you should first set the CELL_SIMULATION_ENABLED task parameter to TRUE. For more information, see "Running the Exadata Simulation Using APIs".

The following example illustrates a function call made after a system change:

EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', -
       execution_type => 'TEST EXECUTE', - 
       execution_name => 'my_exec_AFTER_change');

Once the post-change performance data is built, you can compare the pre-change SQL trial to the post-change SQL trial by running a comparison analysis, as described in Chapter 6, "Comparing SQL Trials".


See Also:


PK|H1C1PK9AOEBPS/content.opf\ Oracle® Database Real Application Testing User's Guide, 11g Release 2 (11.2) en-US E16540-06 Oracle Corporation Oracle Corporation Oracle® Database Real Application Testing User's Guide, 11g Release 2 (11.2) 2011-12-07T19:52:31Z Provides information about how to assure the integrity of database changes using Oracle Real Application Testing. PKw\\PK9AOEBPS/dcommon/prodbig.gif GIF87a!!!)))111BBBZZZsss{{ZRRcZZ!!1!91)JB9B9)kkcJJB991ssc絽Zcc!!{祽BZc!9B!c{!)c{9{Z{{cZB1)sJk{{Z{kBsZJ91)Z{!{BcsRsBc{9ZZk甽kBkR!BZ9c)JJc{!))BZks{BcR{JsBk9k)Zck!!BZ1k!ZcRBZcZJkBk1Z9c!R!c9kZRZRBZ9{99!R1{99R{1!1)c1J)1B!BJRkk{ƽ絵ތkk絵RRs{{{{JJsssBBkkk!!9ss{{ZZssccJJZZRRccRRZZ))cBBJJ99JJ!!c11991199Z11!c!!))Z!!!1BRck{)!cJBkZRZ,HP)XRÇEZ֬4jJ0 @ "8pYҴESY3CƊ@*U:lY0_0#  5tX1E: C_xޘeKTV%ȣ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%{sj~2= 7 ~MڅKrHb|P3 r=Ҁ +Ş/$iu7=q2dԂxn⸷9$l]H #WI񯄴;\[ݚD8C3p&0U9^AnK vI+!I8>5(zqj03Y.X ,@85ߛ8>pq8=} \xmm常8` $Q@$v7zwp]ɝA GX;y_]覮O&4 SPtY.X),@84U=7Vuv K4,$g{@<+uqtiGw3; I@ORմn5MBp%8'ƫ%u6uBJrHRN2@ϸ J(9i[[m姙?ɜs|?~z, hɅaC12c;3g? h|Jdg5@C5|F_$|<7¾d]Iɔ$0GUp&];_u"iZ{27v:+4:[zޛ}:v%`$)' gPYsZyn#i1A@R,ɍ)ey>y⻿zMZN HR8XN 2 O\H9&|^E4(E(F@Pi~sQ`~xq zƧyצ-Q\|yBI=_] z[ln[np38%MBTxl,"#n$%n$o_*q$~xoULInTty d1 i0Fy OŞ5ƺ-k)-U,7y/|CO -I1$r@eTfo <!~$kz\w,qq| Ff8#$2ǃ`ğR"6+(YFv4Ԏ0'{Xi wB,b>#xmGKtQn,o\2[aP<@$/EXQ1h_mዘ!VWc|9,F {Q|o{oiKx NB 0AӠ MK[^$y?g1w7|o? 7QiyepȖe"7JKݎv`6cn.>'m]f/_[A('8l+.8An _KUQ}Q(ɐXob_ 8Ғ7и#y=zPkRM'ž$EZr2D[>cGVٺ`Ix;ʥ؆wrk(h'cR{0Ӯg_q;q,w8WO#uw?±k( i u?:E+%qUz}pmͱ-C|]>l `km[Y8|?2[lis` YqTI hkiqY@_ڣeca |ω:Wp_/;褂:JgPvm#8r=#׈nwar#s«j܋,5m" {Vi6@HNLztP~~!ӞWղvLH#r' 0Fx5ῇ~%}H,hL b:9/]c)G 8jhz\ kw9$28 -.S62:uŠӿ?K>/#{ٳng9~gn{M.}Ȁ f+Ws[=:WaEs?#HI2lqߔFqtsK5;hld?FpA"Q@=CD29Gbq^hѴGT,R_:o58b@ۦ:4;IgӨ1J.ѺD!'AQ{ׄ|+xo4}.IWNY+|QEG<[oqsA*92<Gn%;yfE(ڻ(5[z} ;XV%-2B3}\'oikkQ2 ζ(1 h%լ,I^)!Ut!@zQ@=]MGD 8D`a^h|9oh]Ds AZ@ <'ZP|x56;āK20pA#88߅ "@>C#HY+L;H}vP~itˋ{>Xē'U7m:t-d漙r'.I(((((((((((((((((((((Kừh5;wey-a/T؃(9'+yc Ph &j_7w}y UKk^ U̓ZK)Nea34W͞~<3E:5A+Mٗ A=ZmGF{y"<H0A'=GNе?i++v6gp+B<?럔~\j5&6isFݟ5c}^?8f;Nܽadm 07]JmºnVS\FT!`8ooZ[~-PGkJrHT' gWIyg5nSiee@Gÿ^xn]y!]$QޫG/,[??`n<vr9j<7iכ 0lOEiEK@Es;y_]覯oǞ:Ȗu"Òe$/+ͷ> 4k|7ew~n ^Uƌ$ Tr{(|?ghrHp,o0b0̩H߸={q_U%9`l[K][s?{]v㖽gKji^To*F(}EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPbԼy,ﷷ{˗i0|U;U'{y{z_GKVUHTPF3أ"['sP ï 'V{ed,\QU68c]J_KEQbH*Vˍ*{k*6ue#*# h!k{ u6I#C+A8z:zݭi]ځw'q f_eg4!Z,bX ^1DI@/g]I<2Q1 Q03sגzq^xsH𶖺ncr,ǩfbK$'/Nkj+Enld`?sjU|*/+Ȓ@#_i)|]V12'ĩV k=FA:[?ς/#iu[9{rQ=8 k#x_B2H uXc )58<|agPξPP#Q9'65]*\4N;;,OчG F ,o;8,.໵;&A"6  88 ¸(c\/tB(nܣ|2:{bg_q,w(#*7FNNI>פi~4oecjfTX cZ > /k_Lh^,Di=,3\LJ1~z-"٦4R:$fĕQi##sξ YRY,QFU?tn}ILOmn=|OpE 1ೖٱ!-TtO4ıZ,T Wp^EHX(oܓfŸᘰqֽZm5E=/żTmvI MgCC=ad3F=UN`h~|?>`n߻sgp,YųHh20oeʏ1sִ?|7U|3h_/ns;7{v;C=%a1=YXrhCaQn+$](<77λYOw$.VgR۝P@̇=\O]˽I㵺ٽ`muqATv yZ襮:l:6c۴v*p=\qyVO{s~ V=m/Kh%kkV`Up6aoZOFzuyMʑI-B$@;Ƈm,Z檺 吸^7ʆ2Ly# s>;G_xT}Jh.vyUA3r ʁĜ@7ޏ-Zu[y%Xm{wʠ*Yn]srp9TTL-Λαj;DR3RAd {߆> ;i=^˼qPxjgo"-`\|grrM?g_qwΈ).# vN>WiZUevv(I9$I$@?&K/:Jo9 vG<+_~> xellb.`tf$O+MOw \-µ`;0緥I'%Uj !пJ$Vatk.X/m䷑ 0WR3j7gZhvO%;sǵy( *mI o|ⶊItSxg ;cerHw'k:{=shX]BnFI#1u5chxNP#:)EK3^#pxh厹:zݭi]ځw'q 5~&4Ƒ K6@%IUub]A_g @wy`(20sX+icĞ(Ѵ4+x;b 0%Ys.I=X((((((((((((((((7gA,4"T 7#yB1czEx[F׵.S|7]|ʜH^\: a^yaO)O2$pk((5.K^! k6};}kb((?u^/<]SP0'槙X8v鎵QEQEq?쀰R |+r  qX:Q^/g?u!iZ r1 sfxcO׾+xW\M]jɩvfݪz|7r=(+M_>5X]?i?Ǿ3jqvQEW뺶.-B4ymf;m8'^H=+(((_|_Vi?hڒIy*p|0TvrQ\oQÍ'Vծ>}?KSvٝG 8j_C_K[ֱHp(SO#GP+th|Cjznۮk r4-Ieqxt>(XYvrYAwk&7Z4& B;V/A02 O> |W8&jZavIq&-f#*02XrAU3\w |Tԥon eO g'3@ōZkoD- I4|Tk߆~#xZnxD: 8mRO6EayN,[b%;AtOIY[yv,K83< $_ K@E'յ+lxV2/KH191'֩\<o77 iȄoی1$0{lt[N}'W o3c8-,1ۑf<2m_֤^?0vVU9 1:Wx+KMeMb=ZxmnUp*;<\ xU/""B(ヌt[ˬ0\lL%@āCX]5h#ӝlB /W>կ.^ynRD^XG^OQ@_i QIe.%U Ywsjx_4?[XVU9 } sך[ zzYC vr+8(R6@>z< K{) q9 ,ǜn I=%~+7cxB=;{AbC`R!y%vl~-񮹯*KǑ NATy(>/Wlw#9ێCB?<=i>wHݻw@8ɭ (>qdz²xdddx,9(cc]ad B+<m[HLkif!k:V[(bwm)"N:`sײQ@__iN:c%w.?ԓ]lj1CHmYxxtt=ddA Q@7={NCkKl4v0["bqʠy!FNNkwhcq}wu%̒B3s$񎢊wV8;sQ> Y3c׬QEOkz/,Veo쑣Hܟn0;WQ@/cGĚevv[KX!4\NOIk5k9K9-;e 8 :Ex+^mT_@cyT6 1#>O |8&;MNZÿ}MFs+ ^Er , +O,5໿uQ$6nIex|jFmYk}M  m?_`}v/^{r~#G :} Vx.00XjQ^?5vJ״. @rq$tdu(uTY x#Y 0^Wx"NX$hx +HS.dXB8Cy\֥6]#TX{(n$X 1$d6!J#O<5`_QEv_~+"F}2V\;$G'S@ /ZxsʺʴV0SYXಂ$zxQo+x677Wk4Na$CF,"$ [7zEص&9 BH9]ps\x5_tkB#p3\Oc?%<0pbx #'6=((((((((((((((((((coՅ~e̛֠܍%a'nj<{[iin.%ݎrv#МpFx^, \wL)3Ԏ򿂾+<%<>fL)򓸣)Rc9$yV// ˡ_O׀|nL`X _Q]炵+_62'X.m˫[L* *oHׁthfyWnr{U8^@ {z_Go:|Uw{Rf=Xǵgj;ZF"wXX.sM͎ < jڷCPt4hʢ&NѺG8@c/t>,T cRyxf] 2}?ȴCnrd8\`4jV?uK=( #,6n C6ʸ-kvszb?#s=\|_|A|SOMۻږ [1%|Pǎ=>|hPxM7akVRĂsznltWq_xnTռEwjO-cD.U2v9 ryߋ'x]Ѵ/Ihz+B'yK Ն ۴p5#^_5-N ] pt 'G_&!vVS p$<KV<#R fb9+`&I zGtsFjvh,Oч 90Ep|6V[v) n*vNǗ$׿ ->%V F9hBu'c8C1izO,ncW5Yݺ9R@˞j|:s]W>.9u5 mhI%qq"2!XaJ6Y[nv7=%ڠ)ʃo$rogַj!bGb0@X*ULj[ ?VެKm3* rH=>5jzuͅ狴9-nxfO, @wMK_7{ġ+ ;W~.j5>fn U"*:רi:l:6c۴v*p=\K6[ª;$Hد^-Ş>7o~Ɇdހ$dž5OZ>5V:FܡCw U>^???^k}vÖx ]wxv+z.thb?+|^~좗n$s4C$cǰWeơx^( ~ӵUAd-æHq28?:7kiVZCl<ƥL-շ@C²訫+7ׄt,4?hvJfd.@'ʽI-Rh51yB8>8Huw҈' *E-y~/^#uohw3"ٳv 9Xx5 |\Ѯ4Kh͢<1m`B@Lhrz+񶕬k~Ӵ jsy~MϜlĊ ,2ZX{Ln>}Q\M" ۏ'$ɠ_'KYiiC}@X'hvris}ŗy$rZ1qpH~\4߄?6o=fBG 62:+{z_G`kP?bFn+rˎ/qfsy'kk3'j(%',n5G[DzYMV@W򊜨?PQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEOMtݭ>r+!@>®QEQEQEQEQEW䳿LoxĈ  !($ qUE81RQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@PKus 6t1tPK9AOEBPS/dcommon/contbig.gif`GIF87a!!!111999BBBJJJRRRccckkksss{{{skk{{ZRRRJJƽ{sZRJRJB91)kcZB9)sskZRJ1޽ƽ{{ssskkkcƵZZRccZRRJJJB{BB9991ssckkZccR))!RRB!!JJ1))99!11ƌ)1R)k֔)s1RZJR{BJs9R1J!11J1J9k{csZk!1J!)cBR9J1B)91B!cRs{!)s!){1B!k!s!{ksksckckZc9B)1!)!)BJ9B1919έƌ!!)JJcZZ{!!!1RR{JJsBBkJJ{!!9BB{1!!J9)!!Z!!c1!!kR!!s9Z!BckJs)19!!c!!ZRZ,H rrxB(Kh" DժuICiи@S z$G3TTʖ&7!f b`D 0!A  k,>SO[!\ *_t  Exr%*_}!#U #4 & ֩3|b]L ]t b+Da&R_2lEٱZ`aC)/яmvUkS r(-iPE Vv_{z GLt\2s!F A#葡JY r|AA,hB}q|B`du }00(䡆<pb,G+oB C0p/x$…– ]7 @2HFc ) @AD \0 LHG',(A` `@SC)_" PH`}Y+_|1.K8pAKMA @?3҄$[JPA)+NH I ,@8G0/@R T,`pF8Ѓ)$^$ DDTDlA@ s;PKPK9AOEBPS/dcommon/darbbook.cssPKPK9A!OEBPS/dcommon/O_signature_clr.JPG"(JFIF``C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (?O '~MQ$Vz;OlJi8L%\]UFjޙ%ԯS;rA]5ފ<׈]j7Ouyq$z'TQuw7Ŀ KX߁M2=S'TQt?.5w'97;~pq=" ~k?`'9q6 E|yayM^Om'fkC&<5x' ?A?Zx'jß={=SßM gVC.5+Hd֪xc^)Җufz{Cީ|D Vkznq|+Xa+{50rx{|OG.OϞ~f/ xxX[2H )c+#jpUOZYX\=SG ߨC|K@;_߆'e?LT?]:?>w ڔ`D^So~xo[Ӡ3i7B:Q8 Vc-ďoi:FM292~y_*_闱YN\Fr=xZ3鳎OwW_QEzW~c]REeaSM}}Hӏ4&.E]u=gMѠ+mF`rNn$w9gMa꺢nTuhf2Xv>އ a(Û6߭?<=>z'TQuw7Ŀ KX߁M2=S'TQt?.5Kko\.8S$TOX߀Gw?Zx汴X)C7~.i6(Щ=+4{mGӭ¸-]&'t_kV*I<1)4thtIsqpQJ+> \m^[aJ5)ny:4o&QEnyAEPEEss 72,PDۢ׃K W{Wjr+wگ iM/;pd?~&?@;7E4gv8 $l'z'TQuw7Ŀ Gֱ=ɿ&G?. iR(5W*$|?w᫼gkmIbHe/_t>tg%y.l}N5[]+Mk0ĠeHdPrsst'UiC,y8`V%9ZIia|ܪvi מYG,o}+kk{YbyIeb*sAtի82zWoEK5z*o-eo;n(P u-I)4Š(HQEQEQEQEhz(X/Đ?}Bk˩ ݏrk0]4>8XzV? }6$}d^F>nU K ?Bտk_9׾x~w'ߞ  uDŽtL ؈5c-E/"|_Oo.IH쐍=i*Iw5(ںw?t5s.)+tQ2dUt5Vĺ.jZ"@IRrZƅY4ߡ_;}ų(KyQf1Aǵt?sZg+?F5_oQR&Dg߿]6FuRD u>ڿxl7?IT8'shj^=.=J1rj1Wl$얲cPx;E,p$֟ˏkw qg"45(ǛkV/=+ũ)bYl~K#˝J_כ5&\F'I#8/|wʾ_Xj Q:os^T1.M_|TO.;?_  jF?g N 8nA2F%i =qW,G=5OU u8]Rq?wr'˻S+۾.ܼ 87Q^elo/T*?L|ۚ<%<,/v_OKs B5f/29n0=zqQq(ª=VX@*J(э(f5qJN_EVǞQEOuoѕOuoa5}gO?:߂8Wא|cڽ~]N&O( (<]>͠@VQ=^~U ̴m&\խ5i:}|}r~9՝f}_>'vVֲ$~^f30^in{\_.O F8to}?${φ|#x^#^n~w=~k~?'KRtO.㌡h![3Zu*ٷճ(ԟ]z_/W1(ԟ]v~g|Yq<ז0 ; b8֮s,w9\?uEyStKaª@\,)) (!EPEPEPEPEPzѧts{v>C/"N6`d*J2gGӧWqBq_1ZuΓ\X]r?=Ey88Mp&pKtO-"wR2 K^-Z< \c>V0^@O7x2WFjs<׻kZ(<Т(OFw/6$1[:ޯԯ#q~4|,LVPem=@=YLUxӃV}AUbcUB.Ds5*kٸAeG>PJxt͝ b88?*$~@ׯD VkraiJs}Q.20x&mXξ,Z]“A-J#`+-E/"<]\a'tZGy.(|lދ~gMK OZdxDŽU9T6ϯ^<Ϡt5CZ]].t۫S=s`ڳ%8iVK:nqe+#<.T6U>zWoy3^I {F?J~=G}k)K$$;$de8*G Uӟ4Ocºw}|]4=ݣ\x$ʠms?q^ipw\"ȿPs^Z Q_0GڼU.t}ROM[G#]8wٞ ӫ87}Cgw vHȩBM55vof =A_٭`Ygx[6 P,5}>蚊(0(+?>+?> k|TuXq6_ +szk :u_ Z߶Ak_U}Jc2u/1[_»ݸG41-bሬ۴}}Eȹפ_c?5gi @cL\L<68hF_Ih>X4K7UТ sMj =J7CKo>Օ5s:߀t ~ηaٿ?|gdL8+gG%o?x`دOqȱwc¨&TW_V_aI=dpG!wu۞սZ1yL50$(l3(:~'ַo A}a3N*[0ǭ HKQV}G@֜$ 9of$ArNqUOgË05#m?D)^_h//5_/<?4}Jį+GkpG4"$ r| >S4Ђ"S 1%R:ȝ 8;PKPz PK9AOEBPS/dcommon/feedback.gif7GIF89a'%(hp|fdx?AN5:dfeDGHɾTdQc`g*6DC\?ؘ||{;=E6JUՄfeA= >@,4`H.|`a (Q 9:&[|ځ,4p Y&BDb,!2@, $wPA'ܠǃ@CO~/d.`I @8ArHx9H75j L 3B/` P#qD*s 3A:3,H70P,R@ p!(F oԥ D;"0 ,6QBRɄHhI@@VDLCk8@NBBL2&pClA?DAk%$`I2 #Q+l7 "=&dL&PRSLIP)PɼirqМ'N8[_}w;PK-PK9AOEBPS/dcommon/booklist.gifGIF89a1޵֥΄kZ{Jk1Rs!BZ)B),@I9Z͓Ca % Dz8Ȁ0FZЌ0P !x8!eL8aWȠFD(~@p+rMS|ӛR$ v "Z:]ZJJEc{*=AP  BiA ']j4$*   & 9q sMiO?jQ = , YFg4.778c&$c%9;PKː5PK9AOEBPS/dcommon/cpyr.htm1 Oracle Legal Notices

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2012, Oracle and/or its affiliates. All rights reserved.

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.

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, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

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.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information on 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. 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.

Alpha and Beta Draft Documentation Notice

If this document is in prerelease status:

This documentation is in prerelease 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.

Oracle Logo

PKN61PK9AOEBPS/dcommon/masterix.gif.GIF89a1ޜΌscJk1Rs!Bc1J),@IS@0"1 Ѿb$b08PbL,acr B@(fDn Jx11+\%1 p { display: none; } /* Class Selectors */ .ProductTitle { font-family: sans-serif; } .BookTitle { font-family: sans-serif; } .VersionNumber { font-family: sans-serif; } .PrintDate { font-family: sans-serif; font-size: small; } .PartNumber { font-family: sans-serif; font-size: small; } PKeӺ1,PK9AOEBPS/dcommon/larrow.gif#GIF87a絵ƌֵƽ{{ss֜ƔZZ{{{{ZZssZZccJJJJRRBBJJJJ991111))!!{,@pH,Ȥrl:ШtpHc`  өb[.64ꑈ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-OJPK9AOEBPS/dcommon/index.gifGIF89a1޵ΥΥ{sc{BZs,@IM" AD B0 3.R~[D"0, ]ШpRNC  /& H&[%7TM/`vS+-+ q D go@" 4o'Uxcxcc&k/ qp zUm(UHDDJBGMԃ;PK(PK9AOEBPS/dcommon/bookbig.gif +GIF89a$!!!)))111999BBBJJJRRRZZZccckkksss{{{skkB991)))!!B11))1!JB9B9!!cZ9ƭƽssk{ZZRccZRRJJJBBB9c!!ν)1)k{s絽ƌkssֽZccJRRBJJ{9BB)11)99!!))11!!k!JZ!)RcJccBcs)1c)JZ!BR!)BZ)99J!Rk9!c11B)Z{)9Bkc1kB9BZ!Z{9Rs)Jkksk9kB1s1Jk9Rƥc{k9s)Z{1k91)s1Rk)Jc1J!))BZ!1k{csc{)19B!)Bcsc{ksc{kZs!RkJkJkքc{9Zks{ck9R)Bks9R9R1J!)Z1B!)c)9)99BR19kksBBJcc{ccBBZ))9kk!!199c11ZBB{9!!R!!Z!!c))!!kR!!s!!BcksRZ1c9B)R91c1)Z!R9B9k1)RcZ{)!1B9JB9B)!)J9B!& Imported from GIF image: bookbig.gif,$!!!)))111999BBBJJJRRRZZZccckkksss{{{skkB991)))!!B11))1!JB9B9!!cZ9ƭƽssk{ZZRccZRRJJJBBB9c!!ν)1)k{s絽ƌkssֽZccJRRBJJ{9BB)11)99!!))11!!k!JZ!)RcJccBcs)1c)JZ!BR!)BZ)99J!Rk9!c11B)Z{)9Bkc1kB9BZ!Z{9Rs)Jkksk9kB1s1Jk9Rƥc{k9s)Z{1k91)s1Rk)Jc1J!))BZ!1k{csc{)19B!)Bcsc{ksc{kZs!RkJkJkքc{9Zks{ck9R)Bks9R9R1J!)Z1B!)c)9)99BR19kksBBJcc{ccBBZ))9kk!!199c11ZBB{9!!R!!Z!!c))!!kR!!s!!BcksRZ1c9B)R91c1)Z!R9B9k1)RcZ{)!1B9JB9B)!)J9BH`\Ȑ:pظа"A6DBH,V@Dڹ'G"v Æ ܥ;n;!;>xAܽ[G.\rQC wr}BŊQ A9ᾑ#5Y0VȒj0l-GqF>ZpM rb ;=.ސW-WѻWo ha!}~ْ ; t 53 :\ 4PcD,0 4*_l0K3-`l.j!c Aa|2L4/1C`@@md;(H*80L0L(h*҇҆o#N84pC (xO@ A)J6rVlF r  fry†$r_pl5xhA+@A=F rGU a 1х4s&H Bdzt x#H%Rr (Ѐ7P`#Rщ'x" #0`@~i `HA'Tk?3!$`-A@1l"P LhʖRG&8A`0DcBH sq@AXB4@&yQhPAppxCQ(rBW00@DP1E?@lP1%T` 0 WB~nQ@;PKGC PK9AOEBPS/dcommon/rarrow.gif/GIF87a絵ƌֵƽ{{ss֜ƔZZ{{{{ZZssZZccJJJJRRBBJJJJ991111))!!{,@pH,Ȥrl:ШLlԸ NCqWEd)#34vwwpN|0yhX!'+-[F 'n5 H $/14w3% C .90" qF 7&E "D mnB|,c96) I @0BW{ᢦdN p!5"D`0 T 0-]ʜ$;PKJV^PK9AOEBPS/dcommon/mix.gifkGIF89aZZZBBBJJJkkk999sss!!!111cccֽ{{{RRR)))猌ƭ{s{sks!,@@pH,B$ 8 t:<8 *'ntPP DQ@rIBJLNPTVEMOQUWfj^!  hhG H  kCúk_a Ǥ^ h`B BeH mm  #F` I lpǎ,p B J\Y!T\(dǏ!Gdˆ R53ټ R;iʲ)G=@-xn.4Y BuU(*BL0PX v`[D! | >!/;xP` (Jj"M6 ;PK枰pkPK9AOEBPS/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 PK9AOEBPS/dcommon/toc.gifGIF89a1ΥΥ{c{Z{JkJk1Rk,@IK% 0| eJB,K-1i']Bt9dz0&pZ1o'q(؟dQ=3S SZC8db f&3v2@VPsuk2Gsiw`"IzE%< C !.hC IQ 3o?39T ҍ;PKv I PK9AOEBPS/dcommon/topnav.gifGIF89a1ֽ筽ޭƔkZZk{Bc{,@ ) l)-'KR$&84 SI) XF P8te NRtHPp;Q%Q@'#rR4P fSQ o0MX[) v + `i9gda/&L9i*1$#"%+ ( E' n7Ȇ(,҅(L@(Q$\x 8=6 'נ9tJ&"[Epljt p#ѣHb :f F`A =l|;&9lDP2ncH R `qtp!dȐYH›+?$4mBA9 i@@ ]@ꃤFxAD*^Ŵ#,(ε  $H}F.xf,BD Z;PK1FAPK9AOEBPS/dcommon/bp_layout.css# @charset "utf-8"; /* bp_layout.css Copyright 2007, Oracle and/or its affiliates. All rights reserved. */ body { margin: 0ex; padding: 0ex; } h1 { display: none; } #FOOTER { border-top: #0d4988 solid 10px; background-color: inherit; color: #e4edf3; clear: both; } #FOOTER p { font-size: 80%; margin-top: 0em; margin-left: 1em; } #FOOTER a { background-color: inherit; color: gray; } #LEFTCOLUMN { float: left; width: 50%; } #RIGHTCOLUMN { float: right; width: 50%; clear: right; /* IE hack */ } #LEFTCOLUMN div.portlet { margin-left: 2ex; margin-right: 1ex; } #RIGHTCOLUMN div.portlet { margin-left: 1ex; margin-right: 2ex; } div.portlet { margin: 2ex 1ex; padding-left: 0.5em; padding-right: 0.5em; border: 1px #bcc solid; background-color: #f6f6ff; color: black; } div.portlet h2 { margin-top: 0.5ex; margin-bottom: 0ex; font-size: 110%; } div.portlet p { margin-top: 0ex; } div.portlet ul { list-style-type: none; padding-left: 0em; margin-left: 0em; /* IE Hack */ } div.portlet li { text-align: right; } div.portlet li cite { font-style: normal; float: left; } div.portlet li a { margin: 0px 0.2ex; padding: 0px 0.2ex; font-size: 95%; } #NAME { margin: 0em; padding: 0em; position: relative; top: 0.6ex; left: 10px; width: 80%; } #PRODUCT { font-size: 180%; } #LIBRARY { color: #0b3d73; background: inherit; font-size: 180%; font-family: serif; } #RELEASE { position: absolute; top: 28px; font-size: 80%; font-weight: bold; } #TOOLS { list-style-type: none; position: absolute; top: 1ex; right: 2em; margin: 0em; padding: 0em; background: inherit; color: black; } #TOOLS a { background: inherit; color: black; } #NAV { float: left; width: 96%; margin: 3ex 0em 0ex 0em; padding: 2ex 0em 0ex 4%; /* Avoiding horizontal scroll bars. */ list-style-type: none; background: transparent url(../gifs/nav_bg.gif) repeat-x bottom; } #NAV li { float: left; margin: 0ex 0.1em 0ex 0em; padding: 0ex 0em 0ex 0em; } #NAV li a { display: block; margin: 0em; padding: 3px 0.7em; border-top: 1px solid gray; border-right: 1px solid gray; border-bottom: none; border-left: 1px solid gray; background-color: #a6b3c8; color: #333; } #SUBNAV { float: right; width: 96%; margin: 0ex 0em 0ex 0em; padding: 0.1ex 4% 0.2ex 0em; /* Avoiding horizontal scroll bars. */ list-style-type: none; background-color: #0d4988; color: #e4edf3; } #SUBNAV li { float: right; } #SUBNAV li a { display: block; margin: 0em; padding: 0ex 0.5em; background-color: inherit; color: #e4edf3; } #SIMPLESEARCH { position: absolute; top: 5ex; right: 1em; } #CONTENT { clear: both; } #NAV a:hover, #PORTAL_1 #OVERVIEW a, #PORTAL_2 #OVERVIEW a, #PORTAL_3 #OVERVIEW a, #PORTAL_4 #ADMINISTRATION a, #PORTAL_5 #DEVELOPMENT a, #PORTAL_6 #DEVELOPMENT a, #PORTAL_7 #DEVELOPMENT a, #PORTAL_11 #INSTALLATION a, #PORTAL_15 #ADMINISTRATION a, #PORTAL_16 #ADMINISTRATION a { background-color: #0d4988; color: #e4edf3; padding-bottom: 4px; border-color: gray; } #SUBNAV a:hover, #PORTAL_2 #SEARCH a, #PORTAL_3 #BOOKS a, #PORTAL_6 #WAREHOUSING a, #PORTAL_7 #UNSTRUCTURED a, #PORTAL_15 #INTEGRATION a, #PORTAL_16 #GRID a { position: relative; top: 2px; background-color: white; color: #0a4e89; } PK3( # PK9AOEBPS/dcommon/bookicon.gif:GIF87a!!!)))111999BBBJJJRRRZZZccckkksss{{{ޭ{{ZRRcZZRJJJBB)!!skRB9{sν{skskcZRJ1)!֭ƽ{ZZRccZJJBBB999111)JJ9BB1ZZB!!ﭵBJJ9BB!!))Jk{)1!)BRZJ{BsR!RRJsJ!J{s!JsBkks{RsB{J{c1RBs1ZB{9BJ9JZ!1BJRRs!9R!!9Z9!1)J19JJRk19R1Z)!1B9R1RB!)J!J1R)J119!9J91!9BkksBBJ119BBR!))9!!!JB1JJ!)19BJRZckތ1)1J9B,H*\hp >"p`ƒFF "a"E|ժOC&xCRz OBtX>XE*O>tdqAJ +,WxP!CYpQ HQzDHP)T njJM2ꔀJ2T0d#+I:<жk 'ꤱF AB @@nh Wz' H|-7f\A#yNR5 /PM09u UjćT|q~Yq@&0YZAPa`EzI /$AD Al!AAal 2H@$ PVAB&c*ؠ p @% p-`@b`uBa l&`3Ap8槖X~ vX$Eh`.JhAepA\"Bl, :Hk;PKx[?:PK9AOEBPS/dcommon/conticon.gif^GIF87a!!!)))111999BBBJJJRRRZZZccckkksss{{{ZRR޽{{ssskkkcccZ991ccRZZBBJJZck)19ZcsBJZ19J!k{k)Z1RZs1!B)!J91{k{)J!B!B911)k{cs!1s!9)s!9!B!k)k1c!)Z!R{9BJcckZZcBBJ99B119{{!!)BBRBBZ!))999R99Z!!999c1!9!)19B1)!B9R,  oua\h2SYPa aowwxYi 9SwyyxxyYSd $'^qYȵYvh ч,/?g{н.J5fe{ڶyY#%/}‚e,Z|pAܠ `KYx,ĉ&@iX9|`p ]lR1khٜ'E 6ÅB0J;t X b RP(*MÄ!2cLhPC <0Ⴁ  $4!B 6lHC%<1e H 4p" L`P!/,m*1F`#D0D^!AO@..(``_؅QWK>_*OY0J@pw'tVh;PKp*c^PK9AOEBPS/dcommon/blafdoc.cssL@charset "utf-8"; /* Copyright 2002, 2011, Oracle and/or its affiliates. All rights reserved. Author: Robert Crews Version: 2011.10.7 */ 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%; } h2 { font-size: 152%; font-weight: bold; } h3 { font-size: 139%; font-weight: bold; } h4 { font-size: 126%; font-weight: bold; } h5 { font-size: 113%; font-weight: bold; display: inline; } h6 { font-size: 100%; font-weight: bold; font-style: italic; display: inline; } 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; } 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: #e00; background: inherit; } .betadraftsubtitle { text-align: center; font-weight: bold; color: #e00; 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; } } PKʍPK9AOEBPS/dcommon/rightnav.gif&GIF89a1ֽ筽ޭƔkZZk{Bc{,@ ) l)- $CҠҀ ! D1 #:aS( c4B0 AC8 ְ9!%MLj Z * ctypJBa H t>#Sb(clhUԂ̗4DztSԙ9ZQҀEPEPEPEPEPEPEPM=iԍP Gii c*yF 1׆@\&o!QY00_rlgV;)DGhCq7~..p&1c:u֫{fI>fJL$}BBP?JRWc<^j+χ5b[hֿ- 5_j?POkeQ^hֿ1L^ H ?Qi?z?+_xɔŪ\썽O]χ>)xxV/s)e6MI7*ߊޛv֗2J,;~E4yi3[nI`Ѱe9@zXF*W +]7QJ$$=&`a۾?]N T䏟'X)Ɣkf:j |>NBWzYx0t!* _KkoTZ?K Gc+UyڹgNuh^iSo5{\ܹ3Yos}.>if FqR5\/TӮ#]HS0DKu{($"2xִ{SBJ8=}Y=.|Tsц2UЫ%.InaegKo z ݎ3ֹxxwM&2S%';+I',kW&-"_¿_ Vq^ܫ6pfT2RV A^6RKetto^[{w\jPZ@ޢN4/XN#\42j\(z'j =~-I#:q[Eh|X:sp* bifp$TspZ-}NM*B-bb&*xUr#*$M|QWY ~p~- fTED6O.#$m+t$˙H"Gk=t9r娮Y? CzE[/*-{c*[w~o_?%ƔxZ:/5𨴟q}/]22p qD\H"K]ZMKR&\C3zĽ[PJm]AS)Ia^km M@dК)fT[ijW*hnu Ͳiw/bkExG£@f?Zu.s0(<`0ֹoxOaDx\zT-^ѧʧ_1+CP/p[w 9~U^[U<[tĽwPv[yzD1W='u$Oeak[^ |Gk2xv#2?¹TkSݕ| rݞ[Vi _Kz*{\c(Ck_܏|?u jVڔ6f t?3nmZ6f%QAjJf9Rq _j7Z-y.pG$Xb]0')[_k;$̭?&"0FOew7 z-cIX岛;$u=\an$ zmrILu uٞ% _1xcUW%dtÀx885Y^gn;}ӭ)場QEQ@Q@Q@Q@Q@Q@!4xPm3w*]b`F_931˜[ן+(> E ly;<;MF-qst+}DH @YKlLmؤciN<|]IU)Lw(8t9FS(=>og<\Z~u_+X1ylsj'eՃ*U3`C!N9Q_WܱhKc93^ua>H ƕGk=8~e#_?{ǀe-[2ٔ7;=&K挑5zsLdx(e8#{1wS+ΝVkXq9>&yஏh$zq^0~/j@:/«Vnce$$uoPp}MC{$-akH@ɫ1O !8R9s5ԦYmϧ'OUṡ5T,!Ԛ+s#1Veo=[)g>#< s)ƽُA^䠮ωFUj(ǩ|N3Jڷ睁ϱuږZYGOTsI<&drav?A^_f׻B$,O__ԿC`it{6>G׈C~&$y؎v1q9Sc1fH[ѽ>,gG'0'@Vw,BO [#>ﱺg5ΒFVD%Yr:O5 Tu+O멃]ی38Ze}R&ѝ_xzc1DXgس;<,_,{ƽY'AS#oF.M#~cBuEx7G+Y)(5q+GCV;qF+CLQ)qEC&6z𿊘z}?&w=+)??&\g{;V??׻xGœdٿ׼-Nc')3K]N)iLTӿCdb7Q^a N sd>Fz[0S^s'Zi 77D}kWus ab~~H(>.fif9,~|Jk;YN3H8Y(t6Q݉k͇_÷Z+2߄&[ +Tr^藺97~c܎=[f1RrBǓ^kEMhxYVm<[џ6| kqbѱ| YA{G8p?\UM7Z66 g1U1igU69 u5Pƪ:VVZC=[@ҹ¨$kSmɳО\vFz~i3^a Osŧυ9Q}_3 όO{/wgoet39 vO2ea;Ύ7$U#?k+Ek&dpzbӱ+TaB0gN{[N7Gי}U7&@?>Fz~E!a@s ?'67XxO*!?qi]֏TQN@tI+\^s8l0)2k!!iW8F$(yOּT.k,/#1:}8uT˾+5=O/`IW G֯b.-<= HOm;~so~hW5+kS8s.zwE| ?4ӿw/K N 9?j(#0UT` Wzw}:_*9m>󑓀F?ELzv=8q:=WgJ`nDr Zе<ֹ](Q@Q@Q@Q@Q@Q@Q@Q@ 'IdC0EYJVcMty_~u+Sw-aO n<[YJgL#6i g5ЖDZ14cʝ!!\/M}/_AYR__>oC? _?7_G#RERW쏞KB}JxGSkǕA pƱơP m]hwB7U$Zq M95"3q1ioATߚ{g.t uu2k=;h#YB= fgS :TdLԃ!44mFK{Hrd^7oz|BVr<{)6AXգV»|>*/hS܏z͆OM=Εq (s|s׊LKQI :9NJ)P+!ʣoAF>+=@I}"x/}۠1aנc¹4emC:>p_xWKX` >R3_S½èųp3޺u3N e یbmͺ<_ mnݮ1Op?Gm)Qb%N585'%Ahs\6yw!"&Ɨ._wk)}GP;Z!#\"< *oƾ\)}N>"լ/~]Lg}pBG X?<zZ#x69S=6) jzx=y9O&>+e!!? ?s~k5Gʏ)?*ce7Ox~k5􇔾Q/e7/Ԑ#3OgNC0] ;_FiRl>Q.g>!%k#ú:Kn'&}?U@\pџPtp)v<{_i}Oվֲ3XIYIx~b<D?(=_JXH=bbi=Oh?_ C_O)}oW쏜? %Ƶ;-RYFi`wۭ{ϖZMtQ$"c_+ԃx1*0b;ԕ݋ESQEQEQEQEQEQEQEQEQEQZ(1F)h1K@XLRE&9P (bf{RӨ&)PEPEPbԴPGKZ(iإbn(:A%S0(-&)P+ ڎԴP11F)h&:LRmQ@Q@Š(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((PKje88PK9AOEBPS/dcommon/help.gif!GIF89a1εֵ֜֜{kZsBc{,@ )sƠTQ$8(4ʔ%ŌCK$A HP`$h8ŒSd+ɡ\ H@%' 6M HO3SJM /:Zi[7 \( R9r ERI%  N=aq   qƦs *q-n/Sqj D XZ;PKއ{&!PK9A OEBPS/toc.htmXz Table of Contents

Contents

Title and Copyright Information

Preface

1 Introduction to Oracle Real Application Testing

Part I SQL Performance Analyzer

2 Introduction to SQL Performance Analyzer

3 Creating an Analysis Task

4 Creating a Pre-Change SQL Trial

5 Creating a Post-Change SQL Trial

6 Comparing SQL Trials

7 Testing a Database Upgrade

Part II Database Replay

8 Introduction to Database Replay

9 Capturing a Database Workload

10 Preprocessing a Database Workload

11 Replaying a Database Workload

12 Analyzing Replayed Workload

Part III Test Data Management

13 Data Discovery and Modeling

14 Data Subsetting

15 Masking Sensitive Data

Index

PKj _XXPK9AOEBPS/part2.htmT Database Replay

Part II

Database Replay

Database Replay enables you to replay a full production workload on a test system to assess the overall impact of system changes. This part contains information about how to capture, preprocess, and replay a database workload using Database Replay, as well as how to analyze the results of a replayed workload.

Part II contains the following chapters:

PKQYTPK9AOEBPS/dbr_analyze.htm0}ς Analyzing Replayed Workload

12 Analyzing Replayed Workload

There are three types of reports for Database Replay: workload capture, workload replay, and compare period.

This chapter describes how to generate and analyze these reports and contains the following sections:


Note:

After the replay analysis is complete, you can restore the database to its original state at the time of workload capture and repeat workload replay to test other changes to the system once the workload directory object is backed up to another physical location.

12.1 Using Workload Capture Reports

Workload capture reports contain captured workload statistics, information about the top session activities that were captured, and any workload filters used during the capture process.

The following sections describe how to generate and utilize workload capture reports:

12.1.1 Generating Workload Capture Reports Using Enterprise Manager

This section describes how to generate a workload capture report using Oracle Enterprise Manager.

The primary tool for generating workload capture reports is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can generate workload capture reports using APIs, as described in "Generating Workload Capture Reports Using APIs".

To generate a workload capture report using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. Click View Workload Capture History.

    The View Workload Capture History page appears.

  3. Select the workload capture for which you want to run a workload capture report and click View.

    The View Workload Capture page appears.

  4. To view the workload capture report, click View Workload Capture Report.

    The Report window opens while the report is being generated.

  5. Once the report is generated, you can save the report by clicking Save to File.

    For information about how to interpret the workload capture report, see "Reviewing Workload Capture Reports".

12.1.2 Generating Workload Capture Reports Using APIs

This section describes how to generate a workload capture report using the DBMS_WORKLOAD_CAPTURE package. You can also use Oracle Enterprise Manager to generate a workload capture report, as described in "Generating Workload Capture Reports Using Enterprise Manager".

To generate a report on the latest workload capture, use the DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO procedure and the DBMS_WORKLOAD_CAPTURE.REPORT function:

DECLARE
  cap_id         NUMBER;
  cap_rpt        CLOB;
BEGIN
  cap_id  := DBMS_WORKLOAD_CAPTURE.GET_CAPTURE_INFO(dir => 'dec06');
  cap_rpt := DBMS_WORKLOAD_CAPTURE.REPORT(capture_id => cap_id,
                           format => DBMS_WORKLOAD_CAPTURE.TYPE_TEXT);
END;
/

In this example, the GET_CAPTURE_INFO procedure retrieves all information regarding the workload capture in the dec06 directory and returns the appropriate cap_id for the workload capture. The REPORT function generates a text report using the cap_id that was returned by the GET_CAPTURE_INFO procedure.

The GET_CAPTURE_INFO procedure uses the dir required parameter, which specifies the name of the workload capture directory object.

The REPORT function uses the following parameters:

  • The capture_id required parameter relates to the directory that contains the workload capture for which the report will be generated. The directory should be a valid directory in the host system containing the workload capture. The value of this parameter should match the cap_id returned by the GET_CAPTURE_INFO procedure.

  • The format required parameter specifies the report format. Valid values include DBMS_WORKLOAD_CAPTURE.TYPE_TEXT and DBMS_WORKLOAD_REPLAY.TYPE_HTML.

For information about how to interpret the workload capture report, see "Reviewing Workload Capture Reports".


See Also:


12.1.3 Reviewing Workload Capture Reports

The workload capture report contains various types of information that can be used to assess the validity of the workload capture. Using the information provided in this report, you can determine if the captured workload:

  • Represents the actual workload you want to replay

  • Does not contain any workload you want to exclude

  • Can be replayed

The information contained in the workload capture report are divided into the following categories:

  • Details about the workload capture (such as the name of the workload capture, defined filters, date, time, and SCN of capture)

  • Overall statistics about the workload capture (such as the total DB time captured, and the number of logins and transactions captured) and the corresponding percentages with respect to total system activity

  • Profile of the captured workload

  • Profile of the workload that was not captured due to version limitations

  • Profile of the uncaptured workload that were excluded using defined filters

  • Profile of the uncaptured workload that consists of background process or scheduled jobs

12.2 Using Workload Replay Reports

Workload replay reports contain information that can be used to measure performance differences between the capture system and the replay system.

The following sections describe how to generate and review workload replay reports:

12.2.1 Generating Workload Replay Reports Using Enterprise Manager

This section describes how to generate a workload replay report using Oracle Enterprise Manager.

The primary tool for generating workload replay reports is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can generate workload replay reports using APIs, as described in "Generating Workload Replay Reports Using APIs"

To generate a workload replay report using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. In the Go to Task column, click the icon that corresponds to the Replay Workload task.

    The Replay Workload page appears.

  3. In the Directory Object list, select a directory that contains the preprocessed workload that was used for the replay for which you want to generate a workload replay report.

    After a directory is selected, the Replay Workload page will be refreshed to display the Capture Summary and the Replay History sections.

  4. Under Replay History, select the replay for which you want to generate a workload replay report and click View.

    Description of dbr_replay_history.gif follows
    Description of the illustration dbr_replay_history.gif

    The View Workload Replay page appears.

  5. Click View Workload Replay Report.

    For information about how to interpret the workload replay report, see "Reviewing Workload Replay Reports".

12.2.2 Generating Workload Replay Reports Using APIs

This section describes how to generate a workload replay report using the DBMS_WORKLOAD_REPLAY package. You can also use Oracle Enterprise Manager to generate a workload replay report, as described in "Generating Workload Replay Reports Using Enterprise Manager".

To generate a report on the latest workload replay for a workload capture, use the DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO procedure and the DBMS_WORKLOAD_REPLAY.REPORT function:

DECLARE
  cap_id         NUMBER;
  rep_id         NUMBER;
  rep_rpt        CLOB;
BEGIN
  cap_id := DBMS_WORKLOAD_REPLAY.GET_REPLAY_INFO(dir => 'dec06');
  /* Get the latest replay for that capture */
  SELECT max(id)
  INTO   rep_id
  FROM   dba_workload_replays
  WHERE  capture_id = cap_id;
 
  rep_rpt := DBMS_WORKLOAD_REPLAY.REPORT(replay_id => rep_id,
                           format => DBMS_WORKLOAD_REPLAY.TYPE_TEXT);
END;
/

In this example, the GET_REPLAY_INFO procedure retrieves all information regarding the workload capture in the dec06 directory and the history of all the workload replay attempts from this directory. The procedure first imports a row into DBA_WORKLOAD_CAPTURES, which contains information about the workload capture. It then imports a row for every replay attempt retrieved from the replay directory into the DBA_WORKLOAD_REPLAYS view. The SELECT statement returns the appropriate rep_id for the latest replay of the workload. The REPORT function generates a text report using the rep_id that was returned by the SELECT statement.

The GET_CAPTURE_INFO procedure uses the dir required parameter, which specifies the name of the workload replay directory object.

The REPORT function uses the following parameters:

  • The replay_id required parameter relates to the directory that contains the workload replay for which the report will be generated. The directory should be a valid directory in the host system containing the workload replay. The value of this parameter should match the rep_id returned by the GET_CAPTURE_INFO procedure.

  • The format parameter required parameter specifies the report format. Valid values include DBMS_WORKLOAD_REPLAY.TYPE_TEXT, DBMS_WORKLOAD_REPLAY.TYPE_HTML, and DBMS_WORKLOAD_REPLAY.TYPE_XML.

For information about how to interpret the workload replay report, see "Reviewing Workload Replay Reports".


See Also:


12.2.3 Reviewing Workload Replay Reports

After the workload is replayed on a test system, there may be some divergence in what is replayed compared to what was captured. There are numerous factors that can cause replay divergence, which can be analyzed using the workload replay report. The information contained in the workload replay report consists of performance and replay divergence.

Performance divergence may result when new algorithms are introduced in the replay system that affect the overall performance of the database. For example, if the workload is replayed on a newer version of Oracle Database, a new algorithm may cause specific requests to run faster, and the divergence will appear as a faster execution. In this case, this is a desirable divergence.

Data divergence occurs when the results of DML or SQL queries do not match results that were originally captured in the workload. For example, a SQL statement may return fewer rows during replay than those returned during capture.

Error divergence occurs when a replayed database call:

  • Encounters a new error that was not captured

  • Does not encounter an error that was captured

  • Encounters a different error from what was captured

The information contained in the workload replay report are divided into the following categories:

  • Details about the workload replay and the workload capture, such as job name, status, database information, duration and time of each process, and the directory object and path

  • Replay options selected for the workload replay and the number of replay clients that were started

  • Overall statistics about the workload replay and the workload capture (such as the total DB time captured and replayed, and the number of logins and transactions captured and replay) and the corresponding percentages with respect to total system activity

  • Profile of the replayed workload

  • Replay divergence

  • Error divergence

  • DML and SQL query data divergence

12.3 Using Compare Period Reports

Compare period reports enable you to compare one workload replay to its capture or to another replay of the same capture.

The following sections describe how to generate and review the various types of compare period reports:

12.3.1 Generating Compare Period Reports Using Enterprise Manager

This section describes how to generate compare period reports using Oracle Enterprise Manager.

The primary tool for generating compare period reports is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can generate compare period reports using APIs, as described in "Generating Compare Period Reports Using APIs".

To generate compare period reports using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. In the Go to Task column, click the icon that corresponds to the Replay Workload task.

    The Replay Workload page appears.

  3. In the Directory Object list, select the directory that contains the replayed workload for which you want to generate a compare period report.

    After the directory is selected, the Replay Workload page will be refreshed to display the Capture Summary and the Replay History sections.

  4. The Replay History section displays previous replays of the workload capture. Select the replay for which you want to generate a compare period report and click View.

    The View Workload Replay page appears.

  5. Click the Report tab.

  6. Under Compare Period Report, select the first and second workload captures or replays you want to compare.

    Description of dbr_comp_period_report.gif follows
    Description of the illustration dbr_comp_period_report.gif

  7. To generate a:

    • Replay Compare Period report, click Run Replay Compare Period Report.

      Use the replay compare period report to perform a high-level comparison of one workload replay to its capture or to another replay of the same capture. Only workload replays that contain at least 5 minutes of database time can be compared using this report.

      For information about how to interpret the replay compare period report, see "Reviewing Replay Compare Period Reports".

    • AWR Compare Period report, click Run AWR Compare Period Report.

      Use the AWR compare period report to compare the AWR data from one workload replay to its capture or to another replay of the same capture.

      For information about how to interpret AWR compare period reports, see Oracle Database 2 Day + Performance Tuning Guide.

    • SQL Performance Analyzer report, click Run SQL Performance Analyzer Report.

      If this is the first time you are generating a SQL Performance Analyzer report for the selected workload capture and workload replay, then click Yes to submit a new scheduler job.

      The SQL Performance Analyzer report can be used to compare a SQL tuning set from a workload capture to another SQL tuning set from a workload replay, or two SQL tuning sets from two workload replays. Comparing SQL tuning sets with Database Replay provides more information than SQL Performance Analyzer test-execute because it considers and shows all execution plans for each SQL statement, while SQL Performance Analyzer test-execute generates only one execution plan per SQL statement for each SQL trial.

      For information about how to interpret the SQL Performance Analyzer report, see "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

    The Report window opens while the report is being generated. Once the report is generated, you can save the report by clicking Save to File.

12.3.2 Generating Compare Period Reports Using APIs

This section describes how to generate compare period reports using the DBMS_WORKLOAD_REPLAY package. You can also use Oracle Enterprise Manager to generate compare period reports, as described in "Generating Compare Period Reports Using Enterprise Manager".

This section contains the following topics:

12.3.2.1 Generating Replay Compare Period Reports Using APIs

This section describes how to generate a replay compare period report using the DBMS_WORKLOAD_REPLAY package.

Use the replay compare period report to perform a high-level comparison of one workload replay to its capture or to another replay of the same capture. Only workload replays that contain at least 5 minutes of database time can be compared using this report.

To generate a replay compare period report, use the DBMS_WORKLOAD_REPLAY.COMPARE_PERIOD_REPORT procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.COMPARE_PERIOD_REPORT (
                           replay_id1 => 12,
                           replay_id2 => 17,
                           format => 'DBMS_WORKLOAD_CAPTURE.TYPE_HTML',
                           result => :report_bind);
END;
/

In this example, the COMPARE_PERIOD_REPORT procedure generates a replay compare period report in HTML format that compares a workload replay with a replay ID of 12 with another replay with an ID of 17.

The COMPARE_PERIOD_REPORT procedure in this example uses the following parameters:

  • The replay_id1 parameter specifies the numerical identifier of the workload replay after change for which the reported will be generated. This parameter is required.

  • The replay_id2 parameter specifies the numerical identifier of the workload replay before change for which the reported will be generated. If unspecified, the comparison will be performed with the workload capture.

  • The format parameter specifies the report format. Valid values include DBMS_WORKLOAD_CAPTURE.TYPE_HTML for HTML and DBMS_WORKLOAD_CAPTURE.TYPE_XML for XML. This parameter is required.

  • The result parameter specifies the output of the report.

For information about how to interpret the replay compare period report, see "Reviewing Replay Compare Period Reports".


See Also:


12.3.2.2 Generating SQL Performance Analyzer Reports Using APIs

This section describes how to generate a SQL Performance Analyzer report using the DBMS_WORKLOAD_REPLAY package.

The SQL Performance Analyzer report can be used to compare a SQL tuning set from a workload capture to another SQL tuning set from a workload replay, or two SQL tuning sets from two workload replays. Comparing SQL tuning sets with Database Replay provides more information than SQL Performance Analyzer test-execute because it considers and shows all execution plans for each SQL statement, while SQL Performance Analyzer test-execute generates only one execution plan per SQL statement for each SQL trial.

To generate a replay compare period report, use the DBMS_WORKLOAD_REPLAY.COMPARE_SQLSET_REPORT procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.COMPARE_SQLSET_REPORT (
                           replay_id1 => 12,
                           format => 'DBMS_WORKLOAD_CAPTURE.TYPE_HTML',
                           result => :report_bind);
END;
/

In this example, the COMPARE_SQLSET_REPORT procedure generates a SQL Performance Analyzer report in HTML format that compares a SQL tuning set captured during the workload replay with a replay ID of 12 to a SQL tuning set captured during workload capture.

The COMPARE_SQLSET_REPORT procedure in this example uses the following parameters:

  • The replay_id1 parameter specifies the numerical identifier of the workload replay after change for which the reported will be generated. This parameter is required.

  • The replay_id2 parameter specifies the numerical identifier of the workload replay after change for which the reported will be generated. If unspecified, the comparison will be performed with the workload capture.

  • The format parameter specifies the report format. Valid values include DBMS_WORKLOAD_CAPTURE.TYPE_HTML for HTML, DBMS_WORKLOAD_CAPTURE.TYPE_XML for XML, and DBMS_WORKLOAD_CAPTURE.TYPE_TEXT for text. This parameter is required.

  • The result parameter specifies the output of the report.

For information about how to interpret the SQL Performance Analyzer report, see "Reviewing the SQL Performance Analyzer Report Using APIs".


See Also:


12.3.3 Reviewing Replay Compare Period Reports

You can use replay compare period reports to perform a high-level comparison of one workload replay to its capture or to another replay of the same capture. The replay compare period report contains a summary of the most important changes between the two runs. By reviewing this report, you can determine if any replay divergence occurred and whether there were any significant performance changes. You can then use this information to determine the appropriate action to take, such as reviewing Automatic Database Diagnostic Monitor (ADDM) reports to diagnose a new concurrency issue, or running SQL Tuning Advisor to fix a new SQL performance problem.

The replay compare period report uses the following structure:

  • General Information

    This section contains metadata about the two runs being compared in the report. Any init.ora parameter changes between the two runs are also shown here.

  • Replay Divergence

    This section contains the divergence analysis of the second run relative to the first.

  • Main Performance Statistics

    This section contains a high-level performance statistic comparison across the two runs (such as change in database time).

  • Top SQL by Change in DB Time

    This section compares the performance change of top SQL statements (ordered by total changed in database time) from one run to the next.

  • Hardware Usage Comparison

    This section compares the hardware resource usage across the two runs.

  • ADDM Comparison

    This section contains an ADDM report comparison across the two runs.

PK35}0}PK9AOEBPS/dbr_intro.htm/P Introduction to Database Replay

8 Introduction to Database Replay

You can use Database Replay to capture a workload on the production system and replay it on a test system with the exact timing, concurrency, and transaction characteristics of the original workload. This enables you to test the effects of a system change without affecting the production system.

Database Replay supports workload capture on a system running Oracle Database 10g Release 2 and newer releases. In order to capture a workload on a system running Oracle Database 10g Release 2, the database version can be 10.2.0.4 or higher. Workload replay is only supported on systems running Oracle Database 11g Release 1 and newer releases.


Note:

To use the workload capture feature on a system running Oracle9i Database or an earlier version of Oracle Database 10g Release 2, contact Oracle Support for more information.

Analyzing the effect of system changes using Database Replay involves the following steps, as illustrated in Figure 8-1:

Figure 8-1 Database Replay Workflow

Description of Figure 8-1 follows
Description of "Figure 8-1 Database Replay Workflow"

  1. On the production system, capture the workload into capture files, as described in "Workload Capture".

  2. Copy the capture files to the test system and preprocess them, as described in "Workload Preprocessing".

  3. On the test system, replay the preprocessed files, as described in "Workload Replay".

  4. Using the reports generated by Database Replay, perform detailed analysis of both the workload capture and workload replay, as described in "Analysis and Reporting".

8.1 Workload Capture

The first step in using Database Replay is to capture the production workload. Capturing a workload involves recording all requests made by external clients to Oracle Database.

When workload capture is enabled, all external client requests directed to Oracle Database are tracked and stored in binary files—called capture files—on the file system. You can specify the location where the capture files will be stored. Once workload capture begins, all external database calls are written to the capture files. The capture files contain all relevant information about the client request, such as SQL text, bind values, and transaction information. Background activities and database scheduler jobs are not captured. These capture files are platform independent and can be transported to another system.


See Also:


8.2 Workload Preprocessing

Once the workload has been captured, the information in the capture files need to be preprocessed. Preprocessing creates all necessary metadata needed for replaying the workload. This must be done once for every captured workload before they can be replayed. After the captured workload is preprocessed, it can be replayed repeatedly on a replay system running the same version of Oracle Database. Typically, the capture files should be copied to another system for preprocessing. As workload preprocessing can be time consuming and resource intensive, it is recommended that this step be performed on the test system where the workload will be replayed.


See Also:


8.3 Workload Replay

After a captured workload has been preprocessed, it can be replayed on a test system. During the workload replay phase, Oracle Database performs the actions recorded during the workload capture phase on the test system by re-creating all captured external client requests with the same timing, concurrency, and transaction dependencies of the production system.

Database Replay uses a client program called the replay client to re-create all external client requests recorded during workload capture. Depending on the captured workload, you may need one or more replay clients to properly replay the workload. A calibration tool is provided to help determine the number of replay clients needed for a particular workload. Because the entire workload is replayed—including DML and SQL queries—the data in the replay system should be as logically similar to the data in the capture system as possible. This will minimize replay divergence and enable a more reliable analysis of the replay.


See Also:


8.4 Analysis and Reporting

Once the workload is replayed, in-depth reporting is provided for you to perform detailed analysis of both workload capture and replay.

The workload capture report and workload replay report provide basic information about the workload capture and replay, such as errors encountered during replay and data divergence in rows returned by DML or SQL queries. A comparison of several statistics—such as database time, average active sessions, and user calls—between the workload capture and the workload replay is also provided.

The replay compare period report can be used to perform a high-level comparison of one workload replay to its capture or to another replay of the same capture. A divergence summary with an analysis of whether any data divergence occurred and if there were any significant performance changes is also provided. Furthermore, Automatic Database Diagnostic Monitor (ADDM) findings are incorporated into these reports.

For advanced analysis, Automatic Workload Repository (AWR) reports are available to enable detailed comparison of performance statistics between the workload capture and the workload replay. The information available in these reports is very detailed, and some differences between the workload capture and replay can be expected.

The SQL Performance Analyzer report can be used to compare a SQL tuning set from a workload capture to another SQL tuning set from a workload replay, or two SQL tuning sets from two workload replays. Comparing SQL tuning sets with Database Replay provides more information than SQL Performance Analyzer test-execute because it considers and shows all execution plans for each SQL statement, while SQL Performance Analyzer test-execute generates only one execution plan per SQL statement for each SQL trial. Moreover, the SQL statements are executed in a more authentic environment because Database Replay captures all bind values and reproduces dynamic session state such as PL/SQL package state more accurately. It is recommended that you run SQL Performance Analyzer test-execute first as a sanity test to ensure SQL statements have not regressed and the test system is set up properly before using Database Replay to perform load and currency testing.

Besides using replay divergence information to analyze replay characteristics of a given system change, you should also use an application-level validation procedure to assess the system change. Consider developing a script to assess the overall success of the replay. For example, if 10,000 orders are processed during workload capture, you should validate that a similar number of orders are also processed during replay.

After the replay analysis is complete, you can restore the database to its original state at the time of workload capture and repeat workload replay to test other changes to the system.


See Also:


PKon//PK9AOEBPS/dbr_replay.htm Replaying a Database Workload

11 Replaying a Database Workload

After a captured workload is preprocessed, it can be replayed repeatedly on a replay system that is running the same version of Oracle Database.

This chapter describes how to replay a database workload on the test system and contains the following sections:


Tip:

Before you can replay a database workload, you must first:

11.1 Setting Up the Test System

Typically, the replay system where the preprocessed workload will be replayed should be a test system that is separate from the production system. Before a test system can be used for replay, it must be prepared properly, as described in the following sections:

11.1.1 Restoring the Database

Before a workload can be replayed, the application data state should be logically equivalent to that of the capture system at the start time of workload capture. This minimizes replay divergence during replay. The method for restoring the database depends on the backup method that was used before capturing the workload. For example, if RMAN was used to back up the capture system, you can use RMAN DUPLICATE capabilities to create the test database. For more information, see "Prerequisites for Capturing a Database Workload".

After the database is created with the appropriate application data on the test system, perform the system change you want to test, such as a database or operating system upgrade. The primary purpose of Database Replay is to test the effect of system changes on a captured workload. Therefore, the system changes you make should define the test you are conducting with the captured workload.

11.1.2 Resetting the System Time

It is recommended that the system time on the replay system host be changed to a value that approximately matches the capture start time just before replay is started. Otherwise, an invalid data set may result when replaying time-sensitive workloads. For example, a captured workload that contains SQL statements using the SYSDATE and SYSTIMESTAMP functions may cause replay divergence when replayed on a system that has a different system time. Resetting the system time will also minimize job scheduling inconsistencies between capture and replay.


Note:

When resetting the system time, ensure that future Automatic Workload Repository (AWR) snapshots can still be created automatically as expected after the system time is reset.

11.2 Steps for Replaying a Database Workload

Proper planning of the workload replay ensures that the replay will be accurate. Replaying a database workload requires the following steps:

11.2.1 Setting Up the Replay Directory

The captured workload must have been preprocessed and copied to the replay system. A directory object for the directory to which the preprocessed workload is copied must exist in the replay system.

11.2.2 Resolving References to External Systems

A captured workload may contain references to external systems, such as database links or external tables. Typically, you should reconfigure these external interactions to avoid impacting other production systems during replay. External references that need to be resolved before replaying a workload include:

  • Database links

    It is typically not desirable for the replay system to interact with other databases. Therefore, you should reconfigure all database links to point to an appropriate database that contains the data needed for replay.

  • External tables

    All external files specified using directory objects referenced by external tables need to be available to the database during replay. The content of these files should be the same as during capture, and the filenames and directory objects used to define the external tables should also be valid.

  • Directory objects

    You should reconfigure any references to directories on the production system by appropriately redefining the directory objects present in the replay system after restoring the database.

  • URLs

    URLs/URIs that are stored in the database need to be configured so that Web services accessed during the workload capture will point to the proper URLs during replay. If the workload refers to URLs that are stored in the production system, you should isolate the test system network during replay.

  • E-mails

    To avoid resending E-mail notifications during replay, any E-mail server accessible to the replay system should be configured to ignore requests for outgoing E-mails.


Tip:

To avoid impacting other production systems during replay, Oracle strongly recommends running the replay within an isolated private network that does not have access to the production environment hosts.

11.2.3 Remapping Connections

During workload capture, connection strings used to connect to the production system are captured. In order for the replay to succeed, you need to remap these connection strings to the replay system. The replay clients can then connect to the replay system using the remapped connections.

For Oracle Real Application Clusters (Oracle RAC) databases, you can map all connection strings to a load balancing connection string. This is especially useful if the number of nodes on the replay system is different from the capture system. Alternatively, if you want to direct workload to specific instances, you can use services or explicitly specify the instance identifier in the remapped connection strings.

11.2.4 Specifying Replay Options

After the database is restored and connections are remapped, you can set the following replay options as appropriate:

11.2.4.1 Preserving COMMIT Order

The synchronization parameter controls whether the COMMIT order in the captured workload will be preserved during replay.

If this parameter is set to SCN, the COMMIT order in the captured workload will be preserved during replay and all replay actions will be executed only after all dependent COMMIT actions have completed.

If this parameter is set to OBJECT_ID, all replay actions will be executed only after all relevant COMMIT actions have completed. Relevant COMMIT actions must meet the following criteria:

  • Issued before the given action in the workload capture

  • Modified at least one of the database objects for which the given action is referencing, either implicitly or explicitly

Setting this parameter to OBJECT_ID allows for more concurrency during workload replays for COMMIT actions that do not reference the same database objects during workload capture.

You can disable this option by setting the parameter to OFF, but the replay will likely yield significant replay divergence. However, this may be desirable if the workload consists primarily of independent transactions, and divergence during unsynchronized replay is acceptable.

11.2.4.2 Controlling Session Connection Rate

The connect_time_scale parameter enables you to scale the elapsed time between the time when the workload capture began and each session connects. You can use this option to manipulate the session connect time during replay with a given percentage value. The default value is 100, which will attempt to connect all sessions as captured. Setting this parameter to 0 will attempt to connect all sessions immediately.

11.2.4.3 Controlling Request Rate Within a Session

User think time is the elapsed time while the replayed user waits between issuing calls within a single session. To control replay speed, use the think_time_scale parameter to scale user think time during replay.

If user calls are being executed slower during replay than during capture, you can make the database replay attempt to catch up by setting the think_time_auto_correct parameter to TRUE. This will make the replay client shorten the think time between calls, so that the overall elapsed time of the replay will more closely match the captured elapsed time.

If user calls are being executed faster during replay than during capture, setting the think_time_auto_correct parameter to TRUE will not change the think time. The replay client will not increase the think time between calls to match the captured elapsed time.

11.2.5 Using Filters with Workload Replay

By default, all captured database calls are replayed during workload replay. You can use workload filters to specify which database calls to include in or exclude from the workload during workload replay.

Workload replay filters are first defined and then added to a replay filter set so they can be used in a workload replay. There are two types of workload filters: inclusion filters and exclusion filters. Inclusion filters enable you to specify database calls that will be replayed. Exclusion filters enable you to specify database calls that will not be replayed. You can use either inclusion filters or exclusion filters in a workload replay, but not both. The workload filter is determined as an inclusion or exclusion filter when the replay filter set is created.

11.2.6 Setting Up Replay Clients

The replay client is a multithreaded program (an executable named wrc located in the $ORACLE_HOME/bin directory) where each thread submits a workload from a captured session. Before replay begins, the database will wait for replay clients to connect. At this point, you need to set up and start the replay clients, which will connect to the replay system and send requests based on what has been captured in the workload.

Before starting replay clients, ensure that the:

  • Replay client software is installed on the hosts where it will run

  • Replay clients have access to the replay directory

  • Replay directory contains the preprocessed workload capture

  • Replay user has the correct user ID, password, and privileges (the replay user needs the DBA role and cannot be the SYS user)

  • Replay clients are not started on a system that is running the database

  • Replay clients read the capture directory on a file system that is different from the one on which the database files reside

    To do this, copy the capture directory to the system where the replay client will run. After the replay is completed, you can delete the capture directory.

After these prerequisites are met, you can proceed to set up and start the replay clients using the wrc executable. The wrc executable uses the following syntax:

wrc [user/password[@server]] MODE=[value] [keyword=[value]]

The parameters user, password and server specify the username, password and connection string used to connect to the replay database. The parameter mode specifies the mode in which to run the wrc executable. Possible values include replay (the default), calibrate, and list_hosts. The parameter keyword specifies the options to use for the execution and is dependent on the mode selected. To display the possible keywords and their corresponding values, run the wrc executable without any arguments.

The following sections describe the modes that you can select when running the wrc executable:

11.2.6.1 Calibrating Replay Clients

Since one replay client can initiate multiple sessions with the database, it is not necessary to start a replay client for each session that was captured. The number of replay clients that need to be started depends on the number of workload streams, the number of hosts, and the number of replay clients for each host.

To estimate the number of replay clients and hosts that are required to replay a particular workload, run the wrc executable in calibrate mode.

In calibrate mode, the wrc executable accepts the following keywords:

  • replaydir specifies the directory that contains the preprocessed workload capture you want to replay. If unspecified, it defaults to the current directory.

  • process_per_cpu specifies the maximum number of client processes that can run per CPU. The default value is 4.

  • threads_per_process specifies the maximum number of threads that can run within a client process. The default value is 50.

The following example shows how to run the wrc executable in calibrate mode:

%> wrc mode=calibrate replaydir=./replay

In this example, the wrc executable is executed to estimate the number of replay clients and hosts that are required to replay the workload capture stored in a subdirectory named replay under the current directory. In the following sample output, the recommendation is to use at least 21 replay clients divided among 6 CPUs:

Workload Replay Client: Release 11.2.0.0.2 - Production on Fri May 1
13:06:33 2009
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
Report for Workload in: /oracle/replay/
-----------------------
 
Recommendation:
Consider using at least 21 clients divided among 6 CPU(s).
 
Workload Characteristics:
- max concurrency: 1004 sessions
- total number of sessions: 1013
 
Assumptions:
- 1 client process per 50 concurrent sessions
- 4 client process per CPU
- think time scale = 100
- connect time scale = 100
- synchronization = TRUE

11.2.6.2 Starting Replay Clients

After determining the number of replay clients that are needed to replay the workload, you need to start the replay clients by running the wrc executable in replay mode on the hosts where they are installed. Once started, each replay client will initiate one or more sessions with the database to drive the workload replay.

In replay mode, the wrc executable accepts the following keywords:

  • userid and password specify the user ID and password of a replay user for the replay client. If unspecified, these values default to the system user.

  • server specifies the connection string that is used to connect to the replay system. If unspecified, the value defaults to an empty string.

  • replaydir specifies the directory that contains the preprocessed workload capture you want to replay. If unspecified, it defaults to the current directory.

  • workdir specifies the directory where the client logs will be written. This parameter is only used with the debug parameter for debugging purposes.

  • debug specifies whether debug data will be created. Possible values include:

    • on

      Debug data will be written to files in the working directory

    • off

      No debug data will be written (the default value)


    Note:

    Before running the wrc executable in debug mode, contact Oracle Support for more information.

  • connection_override specifies whether to override the connection mappings stored in the DBA_WORKLOAD_CONNECTION_MAP view. If set to TRUE, connection remappings stored in the DBA_WORKLOAD_CONNECTION_MAP view will be ignored and the connection string specified using the server parameter will be used. If set to FALSE, all replay threads will connect using the connection remappings stored in the DBA_WORKLOAD_CONNECTION_MAP view. This is the default setting.

The following example shows how to run the wrc executable in replay mode:

%> wrc system/password@test mode=replay replaydir=./replay

In this example, the wrc executable starts the replay client to replay the workload capture stored in a subdirectory named replay under the current directory.

After all replay clients have connected, the database will automatically distribute workload capture streams among all available replay clients and workload replay can begin. You can monitor the status of the replay clients using the V$WORKLOAD_REPLAY_THREAD view. After the replay finishes, all replay clients will disconnect automatically.

11.2.6.3 Displaying Host Information

You can display the hosts that participated in a workload capture and workload replay by running the wrc executable in list_hosts mode.

In list_hosts mode, the wrc executable accepts the keyword replaydir, which specifies the directory that contains the preprocessed workload capture you want to replay. If unspecified, it defaults to the current directory.

The following example shows how to run the wrc executable in list_hosts mode:

%> wrc mode=list_hosts replaydir=./replay

In this example, the wrc executable is executed to list all hosts that participated in capturing or replaying the workload capture stored in a subdirectory named replay under the current directory. In the following sample output, the hosts that participated in the workload capture and three subsequent replays are shown:

Workload Replay Client: Release 11.2.0.0.2 - Production on Fri May 1 13:44:48 2009
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
Hosts found:
Capture:
        prod1
        prod2
Replay 1:
        test1
Replay 2:
        test1
        test2
Replay 3:
        testwin

11.3 Replaying a Database Workload Using Enterprise Manager

This section describes how to replay a database workload using Enterprise Manager.

The primary tool for replaying database workloads is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can also replay database workloads using APIs, as described in "Replaying a Database Workload Using APIs".

To replay a database workload using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. In the Go to Task column, click the icon that corresponds to the Replay Workload task.

    The Replay Workload page appears.

    Description of dbr_replay_empty.gif follows
    Description of the illustration dbr_replay_empty.gif

  3. In the Directory Object list, select a directory that contains the preprocessed workload that you want to replay.

    After a directory is selected, the Replay Workload page will be refreshed to display the Capture Summary and the Replay History sections. For more information, see "Setting Up the Replay Directory".

    Description of dbr_replay.gif follows
    Description of the illustration dbr_replay.gif

    The Capture Summary section displays information about the preprocessed workload capture in the selected directory.

  4. To view additional details about the workload capture, expand Capture Details.

    The Capture Details section displays the workload profile and workload filters used during the workload capture.

    If a Workload Analyzer report was created for the workload, click View Workload Analyzer Report to view it.

  5. Click Set Up Replay.

    The Replay Workload: Prerequisites page appears.

  6. Verify that all prerequisites are met before proceeding.

    For more information about the prerequisites, see "Steps for Replaying a Database Workload". If you are replaying the workload on a test system, ensure that the test system is properly prepared for replay. For more information, see "Setting Up the Test System".

    Once all prerequisites are completed, click Continue.

    The Replay Workload: References to External Systems page appears.

  7. Verify potential references to all external systems and modify any invalid references.

    Use the links available on the Replay Workload: References to External Systems page to verify the database links, directory objects, and Oracle Streams that may be referenced during the workload capture process. There may be other references to external systems that are not included in these categories. For more information, see "Resolving References to External Systems".

    Once all references to external systems have been verified and modified as necessary, click Continue.

    The Replay Workload: Choose Initial Options page appears.

    Description of dbr_replay_init_options.gif follows
    Description of the illustration dbr_replay_init_options.gif

  8. In the Replay Name field, you may enter a name for the replay, or simply use the name generated by the system.

  9. Under SQL Performance Analyzer, select whether to capture SQL statements into a SQL tuning set during workload replay.

    While Database Replay provide analysis of how a change affects your entire system, you can use a SQL tuning set in conjunction with SQL Performance Analyzer to gain a more SQL-centric analysis of how the change affects SQL statements and execution plans.

    By capturing a SQL tuning set during workload replay, you can use SQL Performance Analyzer to compare this SQL tuning set to another SQL tuning set captured during workload capture, without having to re-execute the SQL statements. This enables you to obtain a SQL Performance Analyzer report and compare the SQL performance, before and after change, while running Database Replay.


    Note:

    Capturing SQL statements into a SQL tuning set is the default and recommended workload replay option.

  10. Under Identify Source, select whether to use default replay options or replay options from a previous replay (if one is available). If multiple replays exist, select the replay you want to use from the Replay Name list.

    Click Next.

    The Replay Workload: Customize Options page appears.

    Description of dbr_replay_cust_options.gif follows
    Description of the illustration dbr_replay_cust_options.gif

  11. Remap captured connection strings to connection strings that point to the replay system.

    Click the Connection Mappings tab. There are several methods you can use to remap captured connection strings. You can choose to:

    • Use a single connect descriptor for all client connections by selecting this option and entering the connect descriptor you want to use. The connect descriptor should point to the replay system.

      To test the connection, click Test Connection. If the connect descriptor is valid, an Information message is displayed to inform you that the connection was successful.

    • Use a single TNS net service name for all client connections by selecting this option and entering the net service name you want to use. All replay clients must be able to resolve the net service name, which can be done using a local tnsnames.ora file.

    • Use a separate connect descriptor or net service name for each client connect descriptor captured in the workload by selecting this option and, for each capture system value, entering a corresponding replay system value that will be used by the replay client.

    For more information, see "Remapping Connections".

  12. Specify the replay options using the replay parameters.

    To modify the replay behavior, click the Replay Parameters tab and enter the desired values for each replay parameter. Using the default values is recommended. For information about setting the replay parameters, see "Specifying Replay Options".

    Description of dbr_replay_params.gif follows
    Description of the illustration dbr_replay_params.gif

    After setting the replay parameters, click Next.

    The Replay Workload: Prepare Replay Clients page appears.

  13. Ensure that replay clients are prepared for replay.

    Before proceeding, the replay clients need to be prepared. For more information, see "Setting Up Replay Clients".

    After all replay clients are ready to start, click Next.

    The Replay Workload: Wait for Client Connections page appears.

    Description of dbr_replay_client.gif follows
    Description of the illustration dbr_replay_client.gif

  14. Start the replay clients.

    For information about starting replay clients, see "Setting Up Replay Clients".

    As replay clients are started, the replay client connections will be displayed under Client Connections. When all replay clients have connected, click Next.

    The Replay Workload: Review page appears.

    Description of dbr_replay_review.gif follows
    Description of the illustration dbr_replay_review.gif

  15. Review the options and parameters that have been defined for the workload replay.

    Before starting replay, reset the system clock to a value that is as close to the capture start time as possible. This minimizes any replay divergence that may result from replaying a time-sensitive workload. For more information, see "Resetting the System Time".

    To begin replay, click Submit. If no replay clients are connected, this button will be disabled. To make changes, click Back. To cancel replay without saving changes, click Cancel.

    Once the replay is started, the View Workload Replay page appears. For information about monitoring an active workload replay, see "Monitoring an Active Workload Replay".

11.4 Monitoring Workload Replay Using Enterprise Manager

This section describes how to monitor workload replay using Enterprise Manager. The primary tool for monitoring workload replay is Oracle Enterprise Manager. Using Enterprise Manager, you can:

  • Monitor or stop an active workload replay

  • View a completed workload replay

If for some reason Oracle Enterprise Manager is unavailable, you can monitor workload replay using APIs and views, as described in "Monitoring Workload Replay Using APIs".

This section contains the following topics:

11.4.1 Monitoring an Active Workload Replay

This section describes how to monitor an active workload replay using Enterprise Manager.

To monitor an active workload replay:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. Under Active Capture and Replay, select the workload replay you want to monitor and click View.

    The View Workload Replay page appears.

    Description of dbr_replay_view_active.gif follows
    Description of the illustration dbr_replay_view_active.gif

  3. Once the workload replay is completed, you can assess various types of information about the replay using this page, as described in "Viewing a Completed Workload Replay".

    To stop the workload replay manually, click Stop Replay. To return to the Database Replay page, click OK.

11.4.2 Viewing a Completed Workload Replay

This section describes how to view a completed workload replay using Enterprise Manager.

To view a completed workload replay:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. In the Go to Task column, click the icon that corresponds to the Replay Workload task.

    The Replay Workload page appears.

  3. In the Directory Object list, select the directory that contains the replayed workload that you want to view.

    After the directory is selected, the Replay Workload page will be refreshed to display the Capture Summary and the Replay History sections.

  4. The Replay History section displays previous replays of the workload capture. To view details about a replay, select the replay and click View.

    The View Workload Replay page appears.

  5. Under Summary, information about the workload replay is displayed.

  6. To view the workload profile, click the Workload Profile tab.

    There are two types of charts that are available under the Workload Profile tab:

    • Elapsed Time Comparison

      To view this chart, in the Chart Type field, select Elapsed Time Comparison.

      Description of dbr_elapsed_time_comp.gif follows
      Description of the illustration dbr_elapsed_time_comp.gif

      The Elapsed Time Comparison chart shows how much time it has taken to replay the same workload compared to the elapsed time during the workload capture. If the Replay bar is shorter than the Capture bar, the replay system is processing the workload faster than the capture system.

    • User Call Progress

      To view this chart, in the Chart Type field, select User Call Progress.

      Description of dbr_user_call_progress.gif follows
      Description of the illustration dbr_user_call_progress.gif

      The User Call Progress chart shows how much time it has taken to replay the same workload compared to the elapsed time during the workload capture in terms of user calls. If the Replay line is above or to the left of the Capture line, the replay system is processing the workload faster than the capture system.

      If the workload capture was performed on an older version of Oracle Database, then the Capture line may not appear in the User Call Progress chart because the user call data may be unavailable. In this case, import the user call data by clicking the Import User Call Data button, which will appear next to the Chart Type list.

    Under Divergence, any error and data discrepancies between the replay system and the capture system are displayed as diverged database calls during replay. The percentage of total calls that diverged can be used as a measure of the replay quality. To view details about the diverged calls, click the link that corresponds to the type of diverged call in the Number of Calls column to bring up the Diverged Calls During Replay page. The Diverged Calls During Replay page shows the most relevant set of replayed calls that diverged from the workload captured by grouping them based on common attribute values and specified filter conditions. To view details about a particular diverged call—such as the call attributes, SQL text, and bind variables—click the corresponding link in the SQL ID column to bring up the Replay Diverged Statement page.

    To view a detailed comparison of the workload during capture and replay, expand Detailed Comparison.

    Description of dbr_replay_view_detail.gif follows
    Description of the illustration dbr_replay_view_detail.gif

    The Detailed Comparison section displays the following information:

    • Duration

      The duration that was captured in a workload is compared to the amount of time it took to replay the workload. In the Capture column, the duration of the time period that was captured is shown. In the Replay column, the amount of time it took to replay the workload is shown. The Percentage of Capture column shows the percentage of the captured duration that it took to replay the workload. If the value is under 100 percent, the replay system processed the workload faster than the capture system. If the value is over 100 percent, the replay system processed the workload slower than the capture system.

    • Database time

      The database time that is consumed in the time period that was captured is compared to the amount of database time that is consumed when replaying the workload.

    • Average active sessions

      The number of average active sessions captured in the workload is compared to the number of average active session that are replayed.

    • User calls

      The number of user calls captured in the workload is compared to the number of user calls that are replayed.

    To view the workload replay report, click View Workload Replay Report. For information about using the Workload Replay report, see "Reviewing Workload Replay Reports".

  7. To view the connection strings used in the capture and the replay systems, click the Connection Mappings tab.

  8. To view replay parameters used by the workload replay, click the Replay Parameters tab.

  9. To run a report, click the Report tab.

    Description of dbr_replay_view_report.gif follows
    Description of the illustration dbr_replay_view_report.gif

    There are several types of reports you can run for a completed workload replay:

    • Workload Replay

      The Workload Replay report contains information that can be used to measure data and performance divergence between the capture system and the replay system. To run this report, under Workload Replay Report, click Run Report. For information about using the Workload Replay report, see "Reviewing Workload Replay Reports".

    • Replay Compare Period

      The Replay Compare Period report can be used to compare one workload replay to its capture or to another replay of the same capture. Before running this report, AWR data for the captured or replayed workload must have been previously exported. To run this report, under Compare Period Report, select the first and second workload captures or replays you want to compare and click Run Replay Compare Period Report. For information about using the Replay Compare Period report, see "Reviewing Replay Compare Period Reports".

    • AWR Compare Period

      The AWR Compare Period report can be used to compare the AWR data in one workload capture or replay with another. Before running this report, AWR data for the captured or replayed workload must have been previously exported. To run this report, under Compare Period Report, select the first and second workload captures or replays you want to compare and click Run AWR Compare Period Report. If AWR data is not previously exported from the captured or replayed workload, you will be prompted to import the AWR data before continuing. For more information about the AWR Compare Period report, see Oracle Database 2 Day + Performance Tuning Guide.

    • SQL Performance Analyzer Report

      The SQL Performance Analyzer report can be used to compare the SQL tuning sets in one workload capture or replay with another. To run this report, under Compare Period Report, select the first and second workload captures or replays containing the SQL tuning sets you want to compare and click Run SQL Performance Analyzer Report. For more information about the SQL Performance Analyzer report, see "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

    • AWR

      The AWR report shows the AWR data contained in a workload that was captured or replayed. Before running this report, AWR data must have been previously exported from the captured or replayed workload. To run this report, under AWR Report, select the workload capture or replay for which you want to generate an AWR report and click Run Report. If AWR data is not previously exported from the captured or replayed workload, you will be prompted to import the AWR data before continuing. For more information about the AWR report, see Oracle Database Performance Tuning Guide.

    • ASH

      The ASH report contains active session history (ASH) information for a specified duration of a workload that was captured or replayed. Before running this report, AWR data must have been previously exported from the captured or replayed workload. To run this report, under ASH Report, select the workload capture or replay for which you want to generate an ASH report. Specify the duration using the Start Date, Start Time, End Date, and End Time fields. You can also apply filters using the Filter field. Once the duration and filters are specified, click Run Report. If AWR data is not previously exported from the captured or replayed workload, you will be prompted to import the AWR data before continuing. For more information about the ASH report, see Oracle Database 2 Day + Performance Tuning Guide.

    The Report window opens while the report is being generated. Once the report is generated, you can save the report by clicking Save to File.

  10. To return to the Database Replay page, click OK.

11.5 Replaying a Database Workload Using APIs

This section describes how to replay a database workload using the DBMS_WORKLOAD_REPLAY package. You can also use Oracle Enterprise Manager to replay a database workload, as described in "Replaying a Database Workload Using Enterprise Manager".

Replaying a database workload using the DBMS_WORKLOAD_REPLAY package is a multi-step process that involves:


See Also:


11.5.1 Initializing Replay Data

After the workload capture is preprocessed and the test system is properly prepared, the replay data can be initialized. Initializing replay data loads the necessary metadata into tables required by workload replay. For example, captured connection strings are loaded into a table where they can be remapped for replay.

To initialize replay data, use the INITIALIZE_REPLAY procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.INITIALIZE_REPLAY (replay_name => 'dec06_102',
                           replay_dir => 'dec06');
END;
/

In this example, the INITIALIZE_REPLAY procedure loads preprocessed workload data from the dec06 directory into the database.

The INITIALIZE_REPLAY procedure in this example uses the following parameters:

  • The replay_name required parameter specifies a replay name that can be used with other APIs to retrieve settings and filters of previous replays.

  • The replay_dir required parameter specifies the directory that contains the workload capture that will be replayed.


See Also:


11.5.2 Connection Remapping

After the replay data is initialized, connection strings used in the workload capture need to be remapped so that user sessions can connect to the appropriate databases and perform external interactions as captured during replay. To view connection mappings, use the DBA_WORKLOAD_CONNECTION_MAP view. For information about connection remapping, see "Remapping Connections".

To remap connections, use the REMAP_CONNECTION procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION (connection_id => 101,
                           replay_connection => 'dlsun244:3434/bjava21');
END;
/

In this example, the connection that corresponds to the connection ID 101 will use the new connection string defined by the replay_connection parameter.

The REMAP_CONNECTION procedure in this example uses the following parameters:

  • The connection_id required parameter is generated when initializing replay data and corresponds to a connection from the workload capture.

  • The replay_connection optional parameter specifies the new connection string that will be used during workload replay.

11.5.3 Setting Workload Replay Options

After the replay data is initialized and the connections are appropriately remapped, you need to prepare the database for workload replay. For information about workload replay preparation, see "Steps for Replaying a Database Workload".

To prepare workload replay on the replay system, use the PREPARE_REPLAY procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (synchronization => TRUE,
                           capture_sts => TRUE,
                           sts_cap_interval => 300);
END;
/

In this example, the PREPARE_REPLAY procedure prepares a replay that has been previously initialized. The COMMIT order in the workload capture will be preserved. A SQL tuning set will also be captured in parallel with the workload replay.

The PREPARE_REPLAY procedure uses the following parameters:

  • The synchronization required parameter determines if synchronization will be used during workload replay.

    If this parameter is set to SCN, the COMMIT order in the captured workload will be preserved during replay and all replay actions will be executed only after all dependent COMMIT actions have completed. The default value is SCN.

    If this parameter is set to OBJECT_ID, all replay actions will be executed only after all relevant COMMIT actions have completed. Relevant COMMIT actions must meet the following criteria:

    • Issued before the given action in the workload capture

    • Modified at least one of the database objects for which the given action is referencing, either implicitly or explicitly

    Setting this parameter to OBJECT_ID allows for more concurrency during workload replays for COMMIT actions that do not reference the same database objects during workload capture.

    You can disable this option by setting the parameter to OFF, but the replay will likely yield significant replay divergence. However, this may be desirable if the workload consists primarily of independent transactions, and divergence during unsynchronized replay is acceptable.

  • The connect_time_scale parameter scales the elapsed time from when the workload capture started to when the session connects with the specified value and is interpreted as a % value. Use this parameter to increase or decrease the number of concurrent users during replay. The default value is 100.

  • The think_time_scale parameter scales the elapsed time between two successive user calls from the same session and is interpreted as a % value. Setting this parameter to 0 will send user calls to the database as fast as possible during replay. The default value is 100.

  • The think_time_auto_correct parameter corrects the think time (based on the think_time_scale parameter) between calls when user calls take longer to complete during replay than during capture. This parameter can be set to either TRUE or FALSE. Setting this parameter to TRUE reduces the think time if the workload replay is taking longer than the workload capture. The default value is TRUE.

  • The scale_up_multiplier parameter defines the number of times the workload is scaled up during replay. Each captured session will be replayed concurrently for as many times as specified by this parameter. However, only one session in each set of identical replay sessions will execute both queries and updates. The rest of the sessions will only execute queries.

  • The capture_sts parameter specifies whether to capture a SQL tuning set in parallel with the workload replay. If this parameter is set to TRUE, you can capture a SQL tuning set during workload replay and use SQL Performance Analyzer to compare it to another SQL tuning set without having to re-execute the SQL statements. This enables you to obtain a SQL Performance Analyzer report and compare the SQL performance—before and after the change—while running Database Replay. You can also export the resulting SQL tuning set with its AWR data using the EXPORT_AWR procedure, as described in "Exporting AWR Data for Workload Replay".

    This feature is not supported for Oracle RAC. Workload replay filters that are defined using DBMS_WORKLOAD_REPLAY do not apply to the SQL tuning set capture. The default value for this parameter is FALSE.

  • The sts_cap_interval parameter specifies the duration of the SQL tuning set capture from the cursor cache in seconds. The default value is 300. Setting the value of this parameter below the default value may cause additional overhead with some workloads and is not recommended.

For more information about setting these parameters, see "Specifying Replay Options".

11.5.4 Defining Workload Replay Filters and Replay Filter Sets

This section describes how to add and remove workload replay filters, and how to create and use replay filter sets. For information about using workload filters and replay filter sets with workload replay, see "Using Filters with Workload Replay".

This section contains the following topics:

11.5.4.1 Adding Workload Replay Filters

To add a new filter to be used in a replay filter set, use the ADD_FILTER procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.ADD_FILTER (
                           fname => 'user_ichan',
                           fattribute => 'USER',
                           fvalue => 'ICHAN');
END;
/

In this example, the ADD_FILTER procedure adds a filter named user_ichan, which can be used to filter out all sessions belonging to the user name ICHAN.

The ADD_FILTER procedure in this example uses the following parameters:

  • The fname required parameter specifies the name of the filter that will be added.

  • The fattribute required parameter specifies the attribute on which the filter will be applied. Valid values include PROGRAM, MODULE, ACTION, SERVICE, USER, and CONNECTION_STRING. You must specify a valid captured connection string that will be used during replay as the CONNECTION_STRING attribute.

  • The fvalue required parameter specifies the value for the corresponding attribute on which the filter will be applied. It is possible to use wildcards such as % with some of the attributes, such as modules and actions.

Once all workload replay filters are added, you can create a replay filter set that can be used when replaying the workload.

11.5.4.2 Deleting Workload Replay Filters

To delete workload replay filters, use the DELETE_FILTER procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.DELETE_FILTER (fname => 'user_ichan');
END;
/

In this example, the DELETE_FILTER procedure removes the filter named user_ichan.

The DELETE_FILTER procedure in this example uses the fname required parameter, which specifies the name of the filter to be removed.

11.5.4.3 Creating a Replay Filter Set

After the workload replay filters are added, you can create a set of replay filters to use with workload replay. When creating a replay filter set, all workload replay filters that were added since the previous replay filter set was created will be used.

To create a replay filter set, use the CREATE_FILTER_SET procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.CREATE_FILTER_SET (
                           replay_dir => 'apr09',
                           filter_set => 'replayfilters',
                           default_action => 'INCLUDE');
END;
/

In this example, the CREATE_FILTER_SET procedure creates a replay filter set named replayfilters, which will replay all captured calls for the replay stored in the apr09 directory, except for the part of the workload defined by the replay filters.

The CREATE_FILTER_SET procedure in this example uses the following parameters:

  • The replay_dir parameter specifies the directory where the replay to be filtered is stored

  • The filter_set parameter specifies the name of the filter set to create

  • The default_action parameter determines if every captured database call should be replayed and whether the workload replay filters should be considered as inclusion or exclusion filters.

    If this parameter is set to INCLUDE, all captured database calls will be replayed, except for the part of the workload defined by the replay filters. In this case, all replay filters will be treated as exclusion filters, since they will define the part of the workload that will not be replayed. This is the default behavior.

    If this parameter is set to EXCLUDE, none of the captured database calls will be replayed, except for the part of the workload defined by the replay filters. In this case, all replay filters will b6e treated as inclusion filters, since they will define the part of the workload that will be replayed.

11.5.4.4 Using a Replay Filter Set

Once the replay filter set is created and the replay is initialized, you can use the replay filter set to filter the replay in the replay_dir directory.

To use a replay filter set, use the USE_FILTER_SET procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.USE_FILTER_SET (filter_set => 'replayfilters');
END;
/

In this example, the USE_FILTER_SET procedure uses the filter set named replayfilters.

The USE_FILTER_SET procedure in this example uses the filter_set required parameter, which specifies the name of the filter set to be used in the replay.

11.5.5 Setting the Replay Timeout Action

This section describes how to set a timeout action for the workload replay. You can set a replay timeout action to abort user calls that are significantly slower during replay or cause a replay to hang. For example, you may want to set a replay timeout action to abort runaway queries caused by sub-optimal execution plans following a database upgrade.

When a replay timeout action is enabled, a user call will exit with an ORA-15569 error if it is delayed beyond the conditions specified by the replay timeout action. The aborted call and its error are reported as error divergence.

To set a replay timeout, use the SET_REPLAY_TIMEOUT procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.SET_REPLAY_TIMEOUT (
                           enabled => TRUE,
                           min_delay => 20,
                           max_delay => 60,
                           delay_factor => 10);
END;
/

In this example, the SET_REPLAY_TIMEOUT procedure defines a replay timeout action that will abort a user call if the delay during replay is more than 60 minutes, or if the delay during replay is over 20 minutes and the elapsed time is 10 times greater than the capture elapsed time.

The SET_REPLAY_TIMEOUT procedure in this example uses the following parameters:

  • The enabled parameter specifies if the replay timeout action is enabled or disabled. The default value is TRUE.

  • The min_delay parameter defines the lower bound value of call delay in minutes. The replay timeout action is only activated when the delay is over this value. The default value is 10.

  • The max_delay parameter defines the upper bound value of call delay in minutes. The replay timeout action is activated and issues an error when the delay is over this value. The default value is 120.

  • The delay_factor parameter defines a factor for the call delays that are between the values of min_delay and max_delay. The replay timeout action issues an error when the current replay elapsed time is higher than the multiplication of the capture elapsed time and this value. The default value is 8.

To retrieve the replay timeout action setting, use the GET_REPLAY_TIMEOUT procedure:

DECLARE
  enabled        BOOLEAN;
  min_delay      NUMBER;
  max_delay      NUMBER;
  delay_factor   NUMBER;
BEGIN
  DBMS_WORKLOAD_REPLAY.GET_REPLAY_TIMEOUT(enabled, min_delay, max_delay,
                           delay_factor);
END;
/

The GET_REPLAY_TIMEOUT procedure in this example returns the following parameters:

  • The enabled parameter returns whether the replay timeout action is enabled or disabled.

  • The min_delay parameter returns the lower bound value of call delay in minutes.

  • The max_delay parameter returns the upper bound value of call delay in minutes.

  • The delay_factor parameter returns the delay factor.

11.5.6 Starting a Workload Replay

Before starting a workload replay, you must first:


Note:

Once a workload replay is started, new replay clients will not be able to connect to the database. Only replay clients that were started before the START_REPLAY procedure is executed will be used to replay the captured workload.

To start a workload replay, use the START_REPLAY procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.START_REPLAY ();
END;
/

11.5.7 Pausing a Workload Replay

To pause a workload replay that is in progress, use the PAUSE_REPLAY procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.PAUSE_REPLAY ();
END;
/

Pausing a workload replay will halt all subsequent user calls issued by the replay clients until the workload replay is either resumed or cancelled. User calls that are already in progress will be allowed to complete. This option enables you to temporarily stop the replay to perform a change and observe its impact for the remainder of the replay.

11.5.8 Resuming a Workload Replay

To resume a workload replay that is paused, use the RESUME_REPLAY procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.RESUME_REPLAY ();
END;
/

11.5.9 Cancelling a Workload Replay

To cancel a workload replay, use the CANCEL_REPLAY procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.CANCEL_REPLAY ();
END;
/

11.5.10 Exporting AWR Data for Workload Replay

Exporting AWR data enables detailed analysis of the workload. This data is also required if you plan to run the AWR Compare Period report on a pair of workload captures or replays.

To export AWR data, use the EXPORT_AWR procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.EXPORT_AWR (replay_id => 1);
END;
/

In this example, the AWR snapshots that correspond to the workload replay with a replay ID of 1 are exported, along with any SQL tuning set that may have been captured during workload replay. The EXPORT_AWR procedure uses the replay_id required parameter, which specifies the ID of the replay whose AWR snapshots will be exported. This procedure will work only if the corresponding workload replay was performed in the current database and the AWR snapshots that correspond to the original replay time period are still available.

11.6 Monitoring Workload Replay Using APIs

This section describes how to monitor workload replay using APIs and views. You can also use Oracle Enterprise Manager to monitor workload replay, as described in "Monitoring Workload Replay Using Enterprise Manager".

This section contains the following topics:

11.6.1 Retrieving Information About Diverged Calls

During replay, any error and data discrepancies between the replay system and the capture system are recorded as diverged calls.

To retrieve information about a diverged call—including its SQL identifier, SQL text, and bind values—call the GET_DIVERGING_STATEMENT function using the following parameters:

  • Set the replay_id parameter to the ID of the replay in which the call diverged

  • Set the stream_id parameter to the stream ID of the diverged call

  • Set the call_counter parameter to the call counter of the diverged call

To view these information about a diverged call, use the DBA_WORKLOAD_REPLAY_DIVERGENCE view. The following example illustrates a function call:

DECLARE
  r                   CLOB;
  ls_stream_id        NUMBER;
  ls_call_counter     NUMBER;
  ls_sql_cd           VARCHAR2(20);
  ls_sql_err          VARCHAR2(512);
  CURSOR c IS
  SELECT stream_id
  FROM DBA_WORKLOAD_REPLAY_DIVERGENCE
  WHERE replay_id = 72;
BEGIN
  OPEN c;
  LOOP
  FETCH c INTO ls_stream_id, ls_call_counter;
  EXIT when c%notfound;
  DBMS_OUTPUT.PUT_LINE (ls_stream_id||''||ls_call_counter);
  r:=DBMS_WORKLOAD_REPLAY.GET_DIVERGENT_STATEMENT(replay_id => 72,
  stream_id => ls_stream_id, call_counter => ls_call_counter);
  DBMS_OUTPUT.PUT_LINE (r);
  END LOOP;
END;
/

See Also:


11.6.2 Monitoring Workload Replay Using Views

This section summarizes the views that you can display to monitor workload replay. You need DBA privileges to access these views.

  • The DBA_WORKLOAD_CAPTURES view lists all the workload captures that have been captured in the current database.

  • The DBA_WORKLOAD_FILTERS view lists all workload filters for workload captures defined in the current database.

  • The DBA_WORKLOAD_REPLAYS view lists all the workload replays that have been replayed in the current database.

  • The DBA_WORKLOAD_REPLAY_DIVERGENCE view enables you to view information about diverged calls, such as the replay identifier, stream identifier, and call counter.

  • The DBA_WORKLOAD_REPLAY_FILTER_SET view lists all workload filters for workload replays defined in the current database.

  • The DBA_WORKLOAD_CONNECTION_MAP view lists the connection mapping information for workload replay.

  • The V$WORKLOAD_REPLAY_THREAD view lists information about all sessions from the replay clients.


See Also:


PK2/r66PK9AOEBPS/spa_analyze.htm Comparing SQL Trials

6 Comparing SQL Trials

After the post-change SQL performance data is built, you can compare the performance data collected in the pre-change SQL trial to the post-change SQL trial by running a comparison analysis using SQL Performance Analyzer. After the comparison analysis is completed, you can generate a report to identify the SQL statements that have improved, remained unchanged, or regressed due to the system change. The SQL Performance Analyzer report calculates two chief impact measurements for the change in performance of each SQL statement:

  • Impact on workload

    This represents the percentage of impact that this change to the SQL statement has on the cumulative execution time of the workload, after accounting for execution frequency. For example, a change that causes a SQL statement's cumulative execution time to improve from 101 seconds to 1 second—where the rest of the workload had a total execution time of 99 seconds before the change—would have a 50% (2x) value for this measurement.

  • Impact on SQL

    This represents the percentage of impact that this change to the SQL statement has on the SQL statement's response time. For example, a change that causes a SQL statement's response time to improve from 10 seconds to 1 second will have a 90% (10x) value for this measurement.

For more information, see "Comparing Performance Measurements".

This chapter describes how to compare and analyze the performance data from the pre-change and post-change SQL trials and contains the following topics:


Note:

The primary interface for comparing SQL trials is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can compare SQL trials using the DBMS_SQLPA PL/SQL package.


Tip:

Before comparing SQL trials, you need to create a post-change SQL trial, as described in Chapter 5, "Creating a Post-Change SQL Trial".

6.1 Comparing SQL Trials Using Oracle Enterprise Manager

Comparing SQL trials using Oracle Enterprise Manager involves the following steps:

6.1.1 Analyzing SQL Performance Using Oracle Enterprise Manager

This section describes how to analyze SQL performance before and after the system change using Oracle Enterprise Manager.

To analyze SQL performance using Enterprise Manager:

  1. On the Guided Workflow page, click the Execute icon for Compare Step 2 and Step 3.

    The Run SQL Trial Comparison page appears.

    Description of spa_run_trial_compare.gif follows
    Description of the illustration spa_run_trial_compare.gif

    In this example, the SQL_TRIAL_1241213421833 and SQL_TRIAL_1241213881923 trials are selected for comparison.

  2. To compare trials other than those listed by default, select the desired trials in the Trial 1 Name and Trial 2 Name lists.

    Note that you cannot compare a statistical trial with a trial that tests the explain plan only.

  3. In the Comparison Metric list, select the comparison metric to use for the comparison analysis:

    • Elapsed Time

    • CPU Time

    • User I/O Time

    • Buffer Gets

    • Physical I/O

    • Optimizer Cost

    • I/O Interconnect Bytes

    Optimizer Cost is the only comparison metric available if you generated execution plans only in the SQL trials.

    To perform the comparison analysis by using more than one comparison metric, perform separate comparison analyses by repeating this procedure with different metrics.

  4. In the Schedule section:

    1. In the Time Zone list, select your time zone code.

    2. Select Immediately to start the task now, or Later to schedule the task to start at a time specified using the Date and Time fields.

  5. Click Submit.

    The Guided Workflow page appears when the comparison analysis begins.

    The status icon of this step changes to an arrow icon while the comparison analysis is in progress. To refresh the status icon, click Refresh. Depending on the amount of performance data collected from the pre-change and post-change executions, the comparison analysis may take a long time to complete. After the comparison analysis is completed, the Status icon changes to a check mark and the Execute icon for the next step is enabled.

  6. Once SQL Performance Analyzer has analyzed the pre-change and post-change performance data, generate a SQL Performance Analyzer report that you can use for further analysis.

    On the Guided Workflow page, click the Execute icon for View Trial Comparison Report.

    The SQL Performance Analyzer Task Report page appears. Review the report, as described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

6.1.2 Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager

When a SQL Performance Analyzer task is completed, the resulting data is generated into a SQL Performance Analyzer report that compares the pre-change and post-change SQL performance.

Figure 6-1 shows a sample SQL Performance Analyzer report. This sample report uses the elapsed time comparison metric to compare the pre-change and post-change executions of a SQL workload.

Figure 6-1 SQL Performance Analyzer Report

Description of Figure 6-1 follows
Description of "Figure 6-1 SQL Performance Analyzer Report"


Tip:

Before you can view the SQL Performance Analyzer report, compare the pre-change version of performance data with the post-change version, as described in "Comparing SQL Trials Using Oracle Enterprise Manager"

To generate and review the SQL Performance Analyzer report:

  1. On the Software and Support page, under Real Application Testing, click SQL Performance Analyzer.

    The SQL Performance Analyzer page appears. A list of existing SQL Performance Analyzer tasks are displayed.

  2. Under SQL Performance Analyzer Tasks, select the task for which you want to view a SQL Performance Analyzer report and click View Latest Report.

    The SQL Performance Analyzer Task Report page appears.

  3. Review the general information about the performance analysis, as described in "Reviewing the SQL Performance Analyzer Report: General Information".

  4. Review general statistics, as described in "Reviewing the SQL Performance Analyzer Report: Global Statistics".

  5. Optionally, review the detailed statistics, as described in "Reviewing the SQL Performance Analyzer Report: Global Statistics Details".

  6. To generate an active report, click Save to generate and save the report, or Mail to generate and mail the report as an HTML attachment.

    Active reports include information about the top SQL statements from each category (such as improved, regressed, and changed plans) with pre-change and post-change statistics, explain plans, and task summary.

    For more information, see "About SQL Performance Analyzer Active Reports".

6.1.2.1 Reviewing the SQL Performance Analyzer Report: General Information

The General Information section contains basic information and metadata about the workload comparison performed by SQL Performance Analyzer.

To review general information:

  1. On the SQL Performance Analyzer Task Report page, review the summary at the top of the page.

    Description of spa_report_info.gif follows
    Description of the illustration spa_report_info.gif

    This summary includes the following information:

    • The name and owner of the SQL tuning set

    • The total number of SQL statements in the tuning set and the number of SQL statements that had errors, are unsupported, or timed out

    • The names of the SQL trials and the comparison metric used

  2. Optionally, click the link next to SQL Tuning Set Name.

    The SQL Tuning Set page appears.

    This page contains information—such as SQL ID and SQL text—about every SQL statement in the SQL tuning set.

  3. Click the link next to SQL Statements With Errors if errors were found.

    The Errors table reports all errors that occurred while executing a given SQL workload. An error may be reported at the SQL tuning set level if it is common to all SQL executions in the SQL tuning set, or at the execution level if it is specific to a SQL statement or execution plan.

  4. Review the global statistics, as described in "Reviewing the SQL Performance Analyzer Report: Global Statistics".

6.1.2.2 Reviewing the SQL Performance Analyzer Report: Global Statistics

The Global Statistics section reports statistics that describe the overall performance of the entire SQL workload. This section is a very important part of the SQL Performance Analyzer analysis, because it reports on the impact of the system change on the overall performance of the SQL workload. Use the information in this section to understand the tendency of the workload performance, and determine how it will be affected by the system change.

To review global statistics:

  1. Review the chart in the Projected Workload Elapsed Time subsection.


    Note:

    The name of the subsection may vary based on the comparison metric that is selected.

    The chart shows the two trials on the x-axis and the elapsed time (in seconds) on the y-axis.

    Description of spa_report_elapsed_time.gif follows
    Description of the illustration spa_report_elapsed_time.gif

    The first bar (on the left) in the chart represents the cumulative elapsed time for all SQL statements before the system change, weighed by the execution frequency of each SQL statement. The second bar (on the right) represents the cumulative elapsed time for all SQL statements after the system change, weighed by the execution frequency of each SQL statement. The overall impact is the difference between the improvement impact and the regression impact and is given as a percentage.

    You can click the link for any impact statistic to obtain more details, as described in "Reviewing the SQL Performance Analyzer Report: Global Statistics Details".


    Note:

    The overall impact percentage may sometimes be off by 1% compared to the sum of the improvement impact and the regression impact. This discrepancy may be caused by rounding or if the SQL and workload time limits are set at 1%, which is the recommended value. This enables the analysis to focus on SQL statements with higher impact by filtering out those that have a minimal impact.

  2. Review the chart in the SQL Statement Count subsection.

    The x-axis of the chart shows the number of SQL statements whose performance improved, regressed, or remain unchanged after the system change. The y-axis shows the number of SQL statements. The chart also indicates whether the explain plans changed for the SQL statements.

    Description of spa_report_sql_count.gif follows
    Description of the illustration spa_report_sql_count.gif

    This chart enables you to quickly weigh the relative performance of the SQL statements. You can click any bar in the chart to obtain more details about the SQL statements, as described in "Reviewing the SQL Performance Analyzer Report: Global Statistics Details". Only up to the top 100 SQL statements will be displayed, even if the actual number of SQL statements exceeds 100.

6.1.2.3 Reviewing the SQL Performance Analyzer Report: Global Statistics Details

You can use the SQL Performance Analyzer Report to obtain detailed statistics for the SQL workload comparison. The details chart enables you to drill down into the performance of SQL statements that appears in the report. Use the information in this section to investigate why the performance of a particular SQL statement regressed.


Note:

The report displays only up to the top 100 SQL statements, even if the actual number of SQL statements exceeds 100.

To review global statistics details:

  1. In the Projected Workload Elapsed Time subsection, click the impact percentage of the SQL statements for which you want to view details. To view SQL statements whose performance:

    • Improved, click the percentage for Improvement Impact

    • Regressed, click the percentage for Regression Impact

    • Improved or regressed, click the percentage for Overall Impact

    A table including the detailed statistics appears. Depending on the type of SQL statements chosen, the following columns are included:

    • SQL ID

      This column indicates the ID of the SQL statement.

    • Net Impact on Workload (%)

      This column indicates the impact of the system change relative to the performance of the SQL workload.

    • Elapsed Time

      This column indicates the total time (in seconds) of the SQL statement execution.

    • Net Impact on SQL (%)

      This column indicates the local impact of the change on the performance of a particular SQL statement.

    • New Plan

      This column indicates whether the SQL execution plan changed.

  2. To view details about a particular SQL statement, click the SQL ID link for the SQL statement that you are interested in.

    The SQL Details page appears.

    You can use this page to access the SQL text and obtain low-level details about the SQL statement, such as its execution statistics and execution plan.

6.1.2.4 About SQL Performance Analyzer Active Reports

SQL Performance Analyzer active reports are HTML files that display all reporting data using a Web-hosted interactive user interface. Similar to the SQL Performance Analyzer reports available in Oracle Enterprise Manager, active reports include information about the top SQL statements from each category (such as improved, regressed, and changed plans) with pre-change and post-change statistics, explain plans, and task summary.

SQL Performance Analyzer active reports are more useful than traditional HTML or text reports because they offer a similar user interface as Oracle Enterprise Manager, yet they can be viewed even when the database is unavailable, or even after a database is dropped. Hence active reports offer the advantages of traditional reporting and dynamic Oracle Enterprise Manager analysis, but eliminates the disadvantages of both. Moreover, active reports contain more information about the comparison analysis and provide more user interactive options. It is strongly recommended that you use active reports instead of HTML or text reports.

The active report user interface components are very similar to those displayed in Oracle Enterprise Manager. For descriptions of the user interface components, see the related sections described in "Reviewing the SQL Performance Analyzer Report Using Oracle Enterprise Manager".

6.1.3 Tuning Regressed SQL Statements Using Oracle Enterprise Manager

After reviewing the SQL Performance Analyzer report, you should tune any regressed SQL statements that are identified after comparing the SQL performance. If there are large numbers of SQL statements that appear to have regressed, you should try to identify the root cause and make system-level changes to rectify the problem. In cases when only a few SQL statements have regressed, consider using one of the following tuning methods to implement a point solution for them:

After tuning the regressed SQL statements, you should test these changes using SQL Performance Analyzer. Run a new SQL trial on the test system, followed by a second comparison (between this new SQL trial and the first SQL trial) to validate your results. Once SQL Performance Analyzer shows that performance has stabilized, the testing is complete. Implement the fixes from this step to your production system.

Starting with Oracle Database 11g Release 1, SQL Tuning Advisor performs an alternative plan analysis when tuning a SQL statement. SQL Tuning Advisor searches the current system for previous execution plans, including the plans from the first SQL trial. If the execution plans from the first SQL trial differ from those of the second SQL trial, SQL Tuning Advisor will recommend the plans from the first SQL trial. If these execution plans produce better performance, you can create plan baselines using the plans from the first SQL trial.


Note:

SQL Performance Analyzer does not provide the option to create SQL plan baselines or run SQL Tuning Advisor directly after after completing a remote SQL trial. In such cases, you need to use APIs to manually transport the SQL tuning set and complete the appropriate procedure on the remote database.


See Also:


6.1.3.1 Creating SQL Plan Baselines

Creating SQL plan baselines enables the optimizer to avoid performance regressions by using execution plans with known performance characteristics. If a performance regression occurs due to plan changes, a SQL plan baseline can be created and used to prevent the optimizer from picking a new, regressed execution plan.

To create SQL plan baselines:

  1. On the SQL Performance Analyzer Task Result page, under Recommendations, click Create SQL Plan Baselines.

    The Create SQL Plan Baselines page appears. The Regressed SQL Statements section lists the regressed SQL statements that will be associated with the new SQL plan baselines.

  2. Under Job Parameters, specify the parameters for the job:

    1. In the Job Name field, enter a name for the job.

    2. In the Description field, optionally enter a description for the job.

  3. Under Schedule, select:

    • Immediately to start the job now.

    • Later to schedule the job to start at a time specified using the Time Zone, Date, and Time fields.

  4. Click OK.

    The SQL Performance Analyzer Task Result page appears. A message is displayed to inform you that the job has been submitted successfully.


See Also:


6.1.3.2 Running SQL Tuning Advisor

The SQL Tuning Advisor performs an in-depth analysis of regressed SQL statements and attempts to fix the root cause of the problem.

To run SQL Tuning Advisor:

  1. On the SQL Performance Analyzer Task Result page, under Recommendations, click Run SQL Tuning Advisor.

    The Schedule SQL Tuning Task page appears.

  2. In the Tuning Task Name field, enter a name for the SQL tuning task.

  3. In the Tuning Task Description field, optionally enter a name for the SQL tuning task.

  4. Under Schedule, select:

    • Immediately to start the job now.

    • Later to schedule the job to start at a time specified using the Time Zone, Date, and Time fields.

  5. Click OK.

    The SQL Performance Analyzer Task Result page appears. A link to the SQL tuning report appears under Recommendations.

  6. To view the SQL tuning report, click the SQL Tune Report link.

    The SQL Tuning Results page appears.


See Also:


6.2 Comparing SQL Trials Using APIs

Comparing SQL trials using APIs involves the following steps:

6.2.1 Analyzing SQL Performance Using APIs

After the post-change SQL performance data is built, you can compare the pre-change version of performance data to the post-change version. Run a comparison analysis using the DBMS_SQLPA.EXECUTE_ANALYSIS_TASK procedure or function.

To compare the pre-change and post-change SQL performance data:

  1. Call the EXECUTE_ANALYSIS_TASK procedure or function using the following parameters:

    • Set the task_name parameter to the name of the SQL Performance Analyzer task.

    • Set the execution_type parameter to COMPARE PERFORMANCE. This setting will analyze and compare two versions of SQL performance data.

    • Specify a name to identify the execution using the execution_name parameter. If not specified, it will be generated by SQL Performance Analyzer and returned by the function.

    • Specify two versions of SQL performance data using the execution_params parameters. The execution_params parameters are specified as (name, value) pairs for the specified execution. Set the execution parameters that are related to comparing and analyzing SQL performance data as follows:

      • Set the execution_name1 parameter to the name of the first execution (before the system change was made). This value should correspond to the value of the execution_name parameter specified in "Creating a Pre-Change SQL Trial Using APIs".

      • Set the execution_name2 parameter to the name of the second execution (after the system change was made). This value should correspond to the value of the execution_name parameter specified in "Creating a Post-Change SQL Trial Using APIs" when you executed the SQL workload after the system change. If the caller does not specify the executions, then by default SQL Performance Analyzer will always compare the last two task executions.

      • Set the comparison_metric parameter to specify an expression of execution statistics to use in the performance impact analysis. Possible values include the following metrics or any combination of them: elapsed_time (default), cpu_time, buffer_gets, disk_reads, direct_writes, optimizer_cost, and io_interconnect_bytes.

      For other possible parameters that you can set for comparison, see the description of the DBMS_SQLPA package in Oracle Database PL/SQL Packages and Types Reference.

    The following example illustrates a function call:

    EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => 'my_spa_task', - 
           execution_type => 'COMPARE PERFORMANCE', -
           execution_name => 'my_exec_compare', -
           execution_params => dbms_advisor.arglist(-
                                 'comparison_metric', 'buffer_gets'));
    
  2. Call the REPORT_ANALYSIS_TASK function using the following parameters:

    • Set the task_name parameter to the name of the SQL Performance Analyzer task.

    • Set the execution_name parameter to the name of the execution to use. This value should match the execution_name parameter of the execution for which you want to generate a report.

      To generate a report to display the results of:

      • Execution plans generated for the SQL workload, set this value to match the execution_name parameter of the desired EXPLAIN PLAN execution.

      • Execution plans and execution statistics generated for the SQL workload, set this parameter to match the value of the execution_name parameter used in the desired TEST EXECUTE execution.

      • A comparison analysis, set this value to match the execution_name parameter of the desired ANALYZE PERFORMANCE execution.

      If unspecified, SQL Performance Analyzer generates a report for the last execution.

    • Set the type parameter to specify the type of report to generate. Possible values include TEXT (default), HTML, XML, and ACTIVE.

      Active reports provides in-depth reporting using an interactive user interface that enables you to perform detailed analysis even when disconnected from the database or Oracle Enterprise Manager. It is recommended that you use active reports instead of HTML or text reports when possible.

      For information about active reports, see "About SQL Performance Analyzer Active Reports".

    • Set the level parameter to specify the format of the recommendations. Possible values include TYPICAL (default), ALL, BASIC, CHANGED, CHANGED_PLANS, ERRORS, IMPROVED, REGRESSED, TIMEOUT, UNCHANGED, UNCHANGED_PLANS, and UNSUPPORTED.

    • Set the section parameter to specify a particular section to generate in the report. Possible values include SUMMARY (default) and ALL.

    • Set the top_sql parameter to specify the number of SQL statements in a SQL tuning set to generate in the report. By default, the report shows the top 100 SQL statements impacted by the system change.

    To generate an active report, run the following script:

    set trimspool on
    set trim on
    set pages 0
    set linesize 1000
    set long 1000000
    set longchunksize 1000000
    spool spa_active.html
    SELECT DBMS_SQLPA.REPORT_ANALYSIS_TASK(task_name => 'my_spa_task',
              type => 'active', section => 'all') FROM dual;
    spool off
    

    The following example illustrates a portion of a SQL script that you could use to create and display a comparison summary report in text format:

    VAR rep   CLOB;
    EXEC :rep := DBMS_SQLPA.REPORT_ANALYSIS_TASK('my_spa_task', -
                    'text', 'typical', 'summary');
    SET LONG 100000 LONGCHUNKSIZE 100000 LINESIZE 130
    PRINT :rep
    
  3. Review the SQL Performance Analyzer report, as described in "Reviewing the SQL Performance Analyzer Report Using APIs".


See Also:


6.2.2 Reviewing the SQL Performance Analyzer Report Using APIs

The SQL Performance Analyzer report is divided into the following sections:

This section uses a sample report to illustrate how to review the SQL Performance Analyzer report. The sample report uses buffer_gets as the comparison metric to compare the pre-change and post-change executions of a SQL workload.

6.2.2.1 General Information

The General Information section contains basic information and metadata about the SQL Performance Analyzer task, the SQL tuning set used, and the pre-change and post-change executions. Example 6-1 shows the General Information section of a sample report.

Example 6-1 General Information

---------------------------------------------------------------------------------------------
General Information
---------------------------------------------------------------------------------------------

 Task Information:                              Workload Information:
 ---------------------------------------------  ---------------------------------------------
  Task Name    : my_spa_task                     SQL Tuning Set Name        : my_sts
  Task Owner   : APPS                            SQL Tuning Set Owner       : APPS
  Description  :                                 Total SQL Statement Count  : 101

Execution Information:
---------------------------------------------------------------------------------------------
  Execution Name  : my_exec_compare        Started             : 05/21/2007 11:30:09
  Execution Type  : ANALYZE PERFORMANCE    Last Updated        : 05/21/2007 11:30:10
  Description     :                        Global Time Limit   : UNLIMITED
  Scope           : COMPREHENSIVE          Per-SQL Time Limit  : UNUSED
  Status          : COMPLETED              Number of Errors    : 0

Analysis Information:
---------------------------------------------------------------------------------------------
 Comparison Metric: BUFFER_GETS
 ------------------
 Workload Impact Threshold: 1%
 --------------------------
 SQL Impact Threshold: 1%
 ----------------------
 Before Change Execution:                       After Change Execution:
 ---------------------------------------------  ---------------------------------------------
  Execution Name      : my_exec_BEFORE_change    Execution Name      : my_exec_AFTER_change
  Execution Type      : TEST EXECUTE             Execution Type      : TEST EXECUTE
  Description         :                          Description         :
  Scope               : COMPREHENSIVE            Scope               : COMPREHENSIVE
  Status              : COMPLETED                Status              : COMPLETED
  Started             : 05/21/2007 11:22:06      Started             : 05/21/2007 11:25:56
  Last Updated        : 05/21/2007 11:24:01      Last Updated        : 05/21/2007 11:28:30
  Global Time Limit   : 1800                     Global Time Limit   : 1800
  Per-SQL Time Limit  : UNUSED                   Per-SQL Time Limit  : UNUSED
  Number of Errors    : 0                        Number of Errors    : 0

---------------------------------------------------------------------------------------------

In Example 6-1, the Task Information section indicates that the task name is my_spa_task. The Workload Information section indicates that the task compares executions of the my_sts SQL tuning set, which contains 101 SQL statements. As shown in the Execution Information section, the comparison execution is named my_exec_compare.

The Analysis Information sections shows that SQL Performance Analyzer compares two executions of the my_sts SQL tuning set, my_exec_BEFORE_change and my_exec_AFTER_change, using buffer_gets as a comparison metric.

6.2.2.2 Result Summary

The Result Summary section summarizes the results of the SQL Performance Analyzer task. The Result Summary section is divided into the following subsections:

6.2.2.2.1 Overall Performance Statistics

The Overall Performance Statistics subsection displays statistics about the overall performance of the entire SQL workload. This section is a very important part of the SQL Performance Analyzer analysis because it shows the impact of the system change on the overall performance of the SQL workload. Use the information in this section to understand the change of the workload performance, and determine whether the workload performance will improve or degrade after making the system change.

Example 6-2 shows the Overall Performance Statistics subsection of a sample report.

Example 6-2 Overall Performance Statistics

Report Summary
---------------------------------------------------------------------------------------------
 
Projected Workload Change Impact:
-------------------------------------------
 Overall Impact      :   47.94%
 Improvement Impact  :   58.02%
 Regression Impact   :  -10.08%
 
SQL Statement Count
-------------------------------------------
 SQL Category  SQL Count  Plan Change Count
 Overall       101        6
 Improved      2          2
 Regressed     1          1
 Unchanged     98         3
.
.
.
---------------------------------------------------------------------------------------------

This example indicates that the overall performance of the SQL workload improved by 47.94%, even though regressions had a negative impact of -10.08%. This means that if all of the regressions are fixed in this example, the overall change impact will be 58.02%. After the system change, 2 of the 101 SQL statements ran faster, while 1 ran slower. Performance of 98 statements remained unchanged.

6.2.2.2.2 Performance Statistics of SQL Statements

The Performance Statistics subsection highlights the SQL statements that are the most impacted by the system change. The pre-change and post-change performance data for each SQL statement in the workload are compared based on the following criteria:

  • Execution frequency, or importance, of each SQL statement

  • Impact of the system change on each SQL statement relative to the entire SQL workload

  • Impact of the system change on each SQL statement

  • Whether the structure of the execution plan for each SQL statement has changed

Example 6-3 shows the Performance Statistics of SQL Statements subsection of a sample report. The report has been altered slightly to fit on the page.

Example 6-3 Performance Statistics of SQL Statements

SQL Statements Sorted by their Absolute Value of Change Impact on the Workload
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
|           |               | Impact on | Execution |  Metric  |  Metric  | Impact | Plan   |
| object_id | sql_id        | Workload  | Frequency |  Before  |  After   | on SQL | Change |
---------------------------------------------------------------------------------------------
|    205    | 73s2sgy2svfrw |   29.01%  |   100000  |  1681683 |  220590  | 86.88% |   y    |
|    206    | gq2a407mv2hsy |   29.01%  |   949141  |  1681683 |  220590  | 86.88% |   y    |
|    204    | 2wtgxbjz6u2by |  -10.08%  |   478254  |  1653012 |  2160529 | -30.7% |   y    |
---------------------------------------------------------------------------------------------

The SQL statements are sorted in descending order by the absolute value of the net impact on the SQL workload, that is, the sort order does not depend on whether the impact was positive or negative.

6.2.2.2.3 Errors

The Errors subsection reports all errors that occurred during an execution. An error may be reported at the SQL tuning set level if it is common to all executions in the SQL tuning set, or at the execution level if it is specific to a SQL statement or execution plan.

Example 6-4 shows an example of the Errors subsection of a SQL Performance Analyzer report.

Example 6-4 Errors

----------------------------------------------------------------------------------
                             SQL STATEMENTS WITH ERRORS
----------------------------------------------------------------------------------
SQL ID        Error
------------- --------------------------------------------------------------------
47bjmcdtw6htn ORA-00942: table or view does not exist
br61bjp4tnf7y ORA-00920: invalid relational operator
----------------------------------------------------------------------------------

6.2.2.3 Result Details

The Result Details section represents a drill-down into the performance of SQL statements that appears in the Result Summary section of the report. Use the information in this section to investigate why the performance of a particular SQL statement regressed.

This section will contain an entry of every SQL statement processed in the SQL performance impact analysis. Each entry is organized into the following subsections:

6.2.2.3.1 SQL Details

This section of the report summarizes the SQL statement, listing its information and execution details.

Example 6-5 shows the SQL Details subsection of a sample report.

Example 6-5 SQL Details

SQL Details:
-----------------------------
 Object ID            : 204
 Schema Name          : APPS
 SQL ID               : 2wtgxbjz6u2by
 Execution Frequency  : 1
 SQL Text             : SELECT /* my_query_14_scott */ /*+ ORDERED INDEX(t1)
                        USE_HASH(t1) */ 'B' || t2.pg_featurevalue_05_id
                        pg_featurevalue_05_id, 'r' || t4.elementrange_id
                        pg_featurevalue_15_id, 'G' || t5.elementgroup_id
                        pg_featurevalue_01_id, 'r' || t6.elementrange_id . . .
.
.
.
---------------------------------------------------------------------------------------------

In Example 6-5, the report summarizes the regressed SQL statement whose ID is 2wtgxbjz6u2by and corresponding object ID is 204.

6.2.2.3.2 Execution Statistics

The Execution Statistics subsection compares execution statistics of the SQL statement from the pre-change and post-change executions and then summarizes the findings.

Example 6-6 shows the Execution Statistics subsection of a sample report.

Example 6-6 Execution Statistics

Execution Statistics:
-----------------------------
---------------------------------------------------------------------------------------
|              | Impact on | Value   | Value   | Impact     | % Workload | % Workload |
| Stat Name    | Workload  | Before  | After   | on SQL     | Before     | After      |
---------------------------------------------------------------------------------------
| elapsed_time |    -95.54%|  36.484 | 143.161 |   -292.39% |     32.68% |     94.73% |
| parse_time   |    -12.37%|    .004 |    .062 |     -1450% |       .85% |     11.79% |
| exec_elapsed |    -95.89%|   36.48 | 143.099 |   -292.27% |     32.81% |     95.02% |
| exec_cpu     |    -19.73%|  36.467 |  58.345 |    -59.99% |     32.89% |     88.58% |
| buffer_gets  |    -10.08%| 1653012 | 2160529 |     -30.7% |     32.82% |     82.48% |
| cost         |     12.17%|   11224 |    2771 |     75.31% |     16.16% |      4.66% |
| reads        |  -1825.72%|    4091 |  455280 | -11028.82% |     16.55% |     96.66% |
| writes       |     -1500%|       0 |      15 |     -1500% |         0% |       100% |
| rows         |           |     135 |     135 |            |            |            |
---------------------------------------------------------------------------------------

Notes:
-----------------------------
Before Change:
1. The statement was first executed to warm the buffer cache.
2. Statistics shown were averaged over next 9 executions.

After Change:
1. The statement was first executed to warm the buffer cache.
2. Statistics shown were averaged over next 9 executions.

Findings (2):
-----------------------------
1. The performance of this SQL has regressed.
2. The structure of the SQL execution plan has changed.
---------------------------------------------------------------------------------------------
6.2.2.3.3 Execution Plans

The Execution Plans subsection displays the pre-change and post-change execution plans for the SQL statement. In cases when the performance regressed, this section also contains findings on root causes and symptoms.

Example 6-7 shows the Execution Plans subsection of a sample report.

Example 6-7 Execution Plans

Execution Plan Before Change:
-----------------------------
 Plan Id          : 1
 Plan Hash Value  : 3412943215
 
----------------------------------------------------------------------------------------------------------
| Id   | Operation                           | Name                | Rows   | Bytes   | Cost  | Time     |
----------------------------------------------------------------------------------------------------------
|    0 | SELECT STATEMENT                    |                     |      1 |     126 | 11224 | 00:02:15 |
|    1 |   HASH GROUP BY                     |                     |      1 |     126 | 11224 | 00:02:15 |
|    2 |    NESTED LOOPS                     |                     |      1 |     126 | 11223 | 00:02:15 |
|  * 3 |     HASH JOIN                       |                     |      1 |     111 | 11175 | 00:02:15 |
|  * 4 |      TABLE ACCESS FULL              | LU_ELEMENTGROUP_REL |      1 |      11 |   162 | 00:00:02 |
|  * 5 |      HASH JOIN                      |                     |    487 |   48700 | 11012 | 00:02:13 |
|    6 |       MERGE JOIN                    |                     |     14 |     924 |  1068 | 00:00:13 |
|    7 |        SORT JOIN                    |                     |   5391 |  274941 |  1033 | 00:00:13 |
|  * 8 |         HASH JOIN                   |                     |   5391 |  274941 |   904 | 00:00:11 |
|  * 9 |          TABLE ACCESS FULL          | LU_ELEMENTGROUP_REL |    123 |    1353 |   175 | 00:00:03 |
| * 10 |          HASH JOIN                  |                     |   5352 |  214080 |   729 | 00:00:09 |
| * 11 |           TABLE ACCESS FULL         | LU_ITEM_293         |   5355 |  128520 |    56 | 00:00:01 |
| * 12 |           TABLE ACCESS FULL         | ADM_PG_FEATUREVALUE |   1629 |   26064 |   649 | 00:00:08 |
| * 13 |        FILTER                       |                     |        |         |       |          |
| * 14 |         SORT JOIN                   |                     |      1 |      15 |    36 | 00:00:01 |
| * 15 |          TABLE ACCESS FULL          | LU_ELEMENTRANGE_REL |      1 |      15 |    35 | 00:00:01 |
|   16 |       INLIST ITERATOR               |                     |        |         |       |          |
| * 17 |        TABLE ACCESS BY INDEX ROWID  | FACT_PD_OUT_ITM_293 | 191837 | 6522458 |  9927 | 00:02:00 |
|   18 |         BITMAP CONVERSION TO ROWIDS |                     |        |         |       |          |
| * 19 |          BITMAP INDEX SINGLE VALUE  | FACT_274_PER_IDX    |        |         |       |          |
| * 20 |     TABLE ACCESS FULL               | LU_ELEMENTRANGE_REL |      1 |      15 |    49 | 00:00:01 |
----------------------------------------------------------------------------------------------------------
.
.
.

Execution Plan After Change:
-----------------------------
 Plan Id          : 102
 Plan Hash Value  : 1923145679
 
------------------------------------------------------------------------------------------------------
| Id   | Operation                           | Name                | Rows | Bytes  | Cost | Time     |
------------------------------------------------------------------------------------------------------
|    0 | SELECT STATEMENT                    |                     |    1 |    126 | 2771 | 00:00:34 |
|    1 |   HASH GROUP BY                     |                     |    1 |    126 | 2771 | 00:00:34 |
|    2 |    NESTED LOOPS                     |                     |    1 |    126 | 2770 | 00:00:34 |
|  * 3 |     HASH JOIN                       |                     |    1 |    111 | 2722 | 00:00:33 |
|  * 4 |      HASH JOIN                      |                     |    1 |    100 | 2547 | 00:00:31 |
|  * 5 |       TABLE ACCESS FULL             | LU_ELEMENTGROUP_REL |    1 |     11 |  162 | 00:00:02 |
|    6 |       NESTED LOOPS                  |                     |      |        |      |          |
|    7 |        NESTED LOOPS                 |                     |  484 |  43076 | 2384 | 00:00:29 |
|  * 8 |         HASH JOIN                   |                     |   14 |    770 |  741 | 00:00:09 |
|    9 |          NESTED LOOPS               |                     |    4 |    124 |  683 | 00:00:09 |
| * 10 |           TABLE ACCESS FULL         | LU_ELEMENTRANGE_REL |    1 |     15 |   35 | 00:00:01 |
| * 11 |           TABLE ACCESS FULL         | ADM_PG_FEATUREVALUE |    4 |     64 |  649 | 00:00:08 |
| * 12 |          TABLE ACCESS FULL          | LU_ITEM_293         | 5355 | 128520 |   56 | 00:00:01 |
|   13 |         BITMAP CONVERSION TO ROWIDS |                     |      |        |      |          |
| * 14 |          BITMAP INDEX SINGLE VALUE  | FACT_274_ITEM_IDX   |      |        |      |          |
| * 15 |        TABLE ACCESS BY INDEX ROWID  | FACT_PD_OUT_ITM_293 |   36 |   1224 | 2384 | 00:00:29 |
| * 16 |      TABLE ACCESS FULL              | LU_ELEMENTGROUP_REL |  123 |   1353 |  175 | 00:00:03 |
| * 17 |     TABLE ACCESS FULL               | LU_ELEMENTRANGE_REL |    1 |     15 |   49 | 00:00:01 |
------------------------------------------------------------------------------------------------------

6.2.3 Comparing SQL Tuning Sets Using APIs

You can compare two SQL tuning sets using SQL Performance Analyzer APIs. For example, while using Database Replay, you may have captured a SQL tuning set on the production system during workload capture, and another SQL tuning set on a test system during workload replay. You can then use SQL Performance Analyzer to compare these SQL tuning sets, without having to re-execute the SQL statements. This is useful in cases where you already have another utility to run your workload before and after making the system change, such as a custom script.

When comparing SQL tuning sets, SQL Performance Analyzer uses the runtime statistics captured in the SQL tuning sets to perform its comparison analysis, and reports on any new or missing SQL statements that are found in one SQL tuning set, but not in the other. Any changes in execution plans between the two SQL tuning sets are also reported. For each SQL statement in both SQL tuning sets, improvement and regression findings are reported for each SQL statement—calculated based on the average statistic value per execution—and for the entire workload—calculated based on the cumulative statistic value.

To compare SQL tuning sets using the DBMS_SQLPA package:

  1. Create a SQL Performance Analyzer task:

    VAR aname varchar2(30);
    EXEC :aname := 'compare_s2s';
    EXEC :aname := DBMS_SQLPA.CREATE_ANALYSIS_TASK(task_name => :aname);
    

    It is not necessary to associate a SQL tuning set to the task during creation.

  2. Create the first SQL trial and convert the first SQL tuning set:

    EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => :aname, -
              execution_type => 'convert sqlset', -
              execution_name => 'first trial', -
              execution_params => DBMS_ADVISOR.ARGLIST(
                                   'sqlset_name', 'my_first_sts', -
                                   'sqlset_owner', 'APPS'));
    

    Specify the name and owner of the SQL tuning set using the SQLSET_NAME and SQLSET_OWNER task parameters. The content of the SQL tuning set will not be duplicated by the SQL Performance Analyzer task. Instead, a reference to the SQL tuning set is recorded in association to the new SQL trial, which in this example is "first trial".

  3. Create a second SQL trial and associate it to the second SQL tuning second to which you want to compare:

    EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => :aname, -
              execution_type => 'convert sqlset', -
              execution_name => 'second trial', -
              execution_params => DBMS_ADVISOR.ARGLIST(
                                   'sqlset_name', 'my_second_sts', -
                                   'sqlset_owner', 'APPS'));
    
  4. Compare the performance data from the two SQL trials (or SQL tuning sets) by running a comparison analysis:

    EXEC DBMS_SQLPA.EXECUTE_ANALYSIS_TASK(task_name => :aname, -
              execution_type => 'compare', -
              execution_name => 'comparison', -
              execution_params => DBMS_ADVISOR.ARGLIST(
                                   'workload_impact_threshold', 0, -
                                   'sql_impact_threshold', 0));
    

    In this example, the workload and per-SQL impact threshold are set to 0% for comparison (the default value is 1%).

  5. After the comparison analysis is complete, generate a SQL Performance Analyzer report using the DBMS_SQLPA.REPORT_ANALYSIS_TASK function.

    For information about generating a SQL Performance Analyzer report using APIs, see "Analyzing SQL Performance Using APIs".

Once the report is generated, review it to identify any differences between the contents of the two SQL tuning sets. Example 6-8 shows the Analysis Information and Report Summary sections of a sample report generated by comparing two SQL tuning sets:

Example 6-8 Analysis Information and Report Summary

Analysis Information:
------------------------------------------------------------------------------------------------
 Before Change Execution:                          After Change Execution:
 ---------------------------------------------     ---------------------------------------------
  Execution Name      : first trial                 Execution Name      : second trial
  Execution Type      : CONVERT SQLSET              Execution Type      : CONVERT SQLSET
  Status              : COMPLETED                   Status              : COMPLETED
  Started             : …
  Last Updated        : …
 
 Before Change Workload:                           After Change Workload:
 ---------------------------------------------     ---------------------------------------------
  SQL Tuning Set Name        : my_first_sts         SQL Tuning Set Name        : my_second_sts
  SQL Tuning Set Owner       : APPS                 SQL Tuning Set Owner       : APPS
  Total SQL Statement Count  : 5                    Total SQL Statement Count  : 6
 
------------------------------------------------------------------------------------------------
Report Summary
------------------------------------------------------------------------------------------------
 
Projected Workload Change Impact:
-------------------------------------------
 Overall Impact      :  72.32%
 Improvement Impact  :  47.72%
 Regression Impact   :   -.02%
 Missing-SQL Impact  :   33.1%
 New-SQL Impact      :  -8.48%
 
SQL Statement Count
-------------------------------------------
 SQL Category   SQL Count  Plan Change Count
 Overall                7                  1
 Common                ov 4                  1
  Improved              3                  1
  Regressed             1                  0
 Different              3                  0
  Missing SQL           1                  0
  New SQL               2                  0

As shown in Example 6-8, this report contains two additional categories that are not found in standard SQL Performance Analyzer reports; both categories are grouped under the heading Different:

  • Missing SQL

    This category represents all SQL statements that are present in the first SQL tuning set, but are not found in the second SQL tuning set. In this example, only one SQL statement is missing. As shown in Example 6-9, this SQL statement has:

    • A sql_id value of gv7xb8tyd1v91

    • A performance impact on the workload of 33.1% based on the change

    • No performance impact on the SQL statement based on the change because its "Total Metric After" change value is missing

  • New SQL

    This category represents all SQL statements that are present in the second SQL tuning set, but are not found in the first SQL tuning set. In this example, only two SQL statements are new in the second SQL tuning set. As shown in Example 6-9, these SQL statements have:

    • sql_id values of 4c8nrqxhtb2sf and 9utadgu5udmh4

    • A total performance impact on the workload of -8.48%

    • Missing "Total Metric Before" change values

Example 6-9 shows a table in the sample report that lists the missing and new SQL statements, as well as other top SQL statements as determined by their impact on the workload:

Example 6-9 Top 7 SQL Sorted by Absolute Value of Change Impact on the Workload

Top 7 SQL Sorted by Absolute Value of Change Impact on the Workload
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
|           |               | Impact on | Total Metric | Total Metric | Impact  | Plan   |
| object_id | sql_id        | Workload  |    Before    |    After     | on SQL  | Change |
------------------------------------------------------------------------------------------
|         4 | 7gj3w9ya4d9sj |    41.04% |       812791 |        36974 |     95% | y      |
|         7 | gv7xb8tyd1v91 |     33.1% |       625582 |              |         | n      |
|         2 | 4c8nrqxhtb2sf |    -8.35% |              |       157782 |         | n      |
|         1 | 22u3tvrt0yr6g |     4.58% |       302190 |       215681 |  28.63% | n      |
|         6 | fgdd0fd56qmt0 |      2.1% |       146128 |       106369 |  27.21% | n      |
|         5 | 9utadgu5udmh4 |     -.13% |              |         2452 |         | n      |
|         3 | 4dtv43awxnmv3 |     -.02% |         3520 |         3890 | -47.35% | n      |
------------------------------------------------------------------------------------------

Once you have identified a SQL statement of interest, you can generate a report for the SQL statement to perform more detailed investigation. For example, you may want to investigate the SQL statement with the sql_id value of 7gj3w9ya4d9sj and object_id value of 4 because it has the highest impact on the workload:

SELECT DBMS_SQLPA.REPORT_ANALYSIS_TASK(task_name => :aname, object_id => 4) rep
FROM dual;

Example 6-10 shows a sample report generated for this SQL statement:

Example 6-10 Sample Report for SQL Statement

SQL Details:
-----------------------------
 Object ID  : 4
 SQL ID     : 7gj3w9ya4d9sj
 SQL Text   : /* my_csts_query1 */ select * FROM emp where empno=2
 
SQL Execution Statistics (average):
---------------------------------------
---------------------------------------------------------
|              | Impact on | Value   | Value   | Impact |
| Stat Name    | Workload  | Before  | After   | on SQL |
---------------------------------------------------------
| elapsed_time |    41.04% | .036945 | .001849 |    95% |
| cpu_time     |    13.74% | .004772 |  .00185 | 61.24% |
| buffer_gets  |     9.59% |       8 |       2 | 69.01% |
| cost         |    11.76% |       1 |       1 |    10% |
| reads        |     4.08% |       0 |       0 | 63.33% |
| writes       |        0% |       0 |       0 |     0% |
| rows         |           |       0 |       0 |        |
| executions   |           |      22 |      20 |        |
| plan_count   |           |       3 |       2 |        |
---------------------------------------------------------
Findings (2):
-----------------------------
 1. The performance of this SQL has improved.
 2. The structure of the SQL execution plan has changed.
 
Plan Execution Statistics (average):
---------------------------------------
----------------------------------------------------------------------------------
| Statistic Name  | Plans Before Change              | Plans After Change        |
----------------------------------------------------------------------------------
| plan hash value | 440231712  571903972  3634526668 | 571903972  3634526668     |
| --------------- | ---------  ---------  ---------- | ---------  ----------     |
|  schema name    | APPS1      APPS2      APPS2      | APPS2      APPS2          |
|  executions     | 7          5          10         | 10         10             |
|  cost           | 2          1          2          | 1          2              |
|  elapsed_time   | .108429    .000937    .00491     | .000503    .003195        |
|  cpu_time       | .00957     .0012      .0032      | .0005      .0032          |
|  buffer_gets    | 18         0          5          | 0          5              |
|  reads          | 0          0          0          | 0          0              |
|  writes         | 0          0          0          | 0          0              |
|  rows           | 0          0          0          | 0          0              |
----------------------------------------------------------------------------------
Execution Plans Before Change:
-----------------------------
Plan Hash Value  : 440231712
---------------------------------------------------------------------------
| Id | Operation              | Name     | Rows | Bytes | Cost | Time     |
---------------------------------------------------------------------------
|  0 | SELECT STATEMENT       |          |      |       |    2 |          |
|  1 |   PX COORDINATOR       |          |      |       |      |          |
|  2 |    PX SEND QC (RANDOM) | :TQ10000 |    1 |    87 |    2 | 00:00:01 |
|  3 |     PX BLOCK ITERATOR  |          |    1 |    87 |    2 | 00:00:01 |
|  4 |      TABLE ACCESS FULL | EMP      |    1 |    87 |    2 | 00:00:01 |
---------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement
Plan Hash Value  : 571903972
----------------------------------------------------------------------------------
| Id | Operation                     | Name       | Rows | Bytes | Cost | Time   |
----------------------------------------------------------------------------------
|  0 | SELECT STATEMENT              |            |      |       |    1 |        |
|  1 |   TABLE ACCESS BY INDEX ROWID | EMP        |    1 |    87 |    1 |00:00:01|
|  2 |    INDEX UNIQUE SCAN          | MY_EMP_IDX |    1 |       |    0 |        |
----------------------------------------------------------------------------------
Plan Hash Value  : 3634526668
--------------------------------------------------------------------
| Id | Operation           | Name | Rows | Bytes | Cost | Time     |
--------------------------------------------------------------------
|  0 | SELECT STATEMENT    |      |      |       |    2 |          |
|  1 |   TABLE ACCESS FULL | EMP  |    1 |    87 |    2 | 00:00:01 |
--------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement
 
Executions Plan After Change:
-----------------------------
Plan Hash Value  : 571903972
----------------------------------------------------------------------------------
| Id | Operation                     | Name       | Rows | Bytes | Cost | Time   |
----------------------------------------------------------------------------------
|  0 | SELECT STATEMENT              |            |      |       |    1 |        |
|  1 |   TABLE ACCESS BY INDEX ROWID | EMP        |    1 |    87 |    1 |00:00:01|
|  2 |    INDEX UNIQUE SCAN          | MY_EMP_IDX |    1 |       |    0 |        |
----------------------------------------------------------------------------------
Plan Hash Value  : 3634526668
--------------------------------------------------------------------
| Id | Operation           | Name | Rows | Bytes | Cost | Time     |
--------------------------------------------------------------------
|  0 | SELECT STATEMENT    |      |      |       |    2 |          |
|  1 |   TABLE ACCESS FULL | EMP  |    1 |    87 |    2 | 00:00:01 |
--------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement
----------------------------------------------------------------------------------

The SQL Execution Statistics section shows the average runtime statistics (per execution) of the SQL statement. The data in this table reveals that this SQL statement is present in both SQL tuning sets, but that it has only three execution plans in the first SQL tuning set and two execution plans in the second SQL tuning set. Furthermore, the SQL statement was executed 22 times in the first SQL tuning set, but only 20 times in the second SQL tuning set.

The Plan Execution Statistics section shows runtime statistics per execution plan (or plan hash value). The Plans Before Change column lists plans and their associated execution statistics for the first SQL tuning set; the Plans After Change columns lists these values for the second SQL tuning set. Execution plans structures for both SQL tuning sets are shown at the end of the report.

You can use these sections in the report to identify changes in execution plans between two SQL tuning sets. This is important because changes in execution plans may be a result of test changes that can have a direct impact to performance. When comparing two SQL tuning sets, SQL Performance Analyzer reports execution plan changes when a SQL statement has:

  • One plan in both SQL tuning sets, but the plan structure is different

  • More than one plan, and the number of plans in both SQL tuning sets are:

    • The same, but at least one plan in the second SQL tuning set is different from all plans in the first SQL tuning set

    • Different

After evaluating the SQL statement and plan changes, determine if further action is required. If the SQL statement has regressed, perform one of the following actions:

6.2.4 Tuning Regressed SQL Statements Using APIs

After reviewing the SQL Performance Analyzer report, you should tune any regressed SQL statements that are identified after comparing the SQL performance. If there are large numbers of SQL statements that appear to have regressed, you should try to identify the root cause and make system-level changes to rectify the problem. In cases when only a few SQL statements have regressed, consider using the SQL Tuning Advisor to implement a point solution for them, or creating SQL plan baselines to instruct the optimizer to select the original execution plan in the future.

To tune regressed SQL statements reported by SQL Performance Analyzer using APIs, create a SQL tuning task for the SQL Performance Analyzer execution by using the CREATE_TUNING_TASK function in the DBMS_SQLTUNE package:

BEGIN
  DBMS_SQLTUNE.CREATE_TUNING_TASK(
    spa_task_name => 'my_spa_task',
    spa_task_owner => 'immchan',
    spa_compare_exec => 'my_exec_compare');
  DBMS_SQLTUNE.EXECUTE_TUNING_TASK(spa_task_name => 'my_spa_task');
END;
/

This example creates and executes a SQL tuning task to tune the SQL statements that regressed in the compare performance execution named my_exec_compare of the SQL Performance Analyzer task named my_spa_task. In this case, it is important to use this version of the CREATE_TUNING_TASK function call. Otherwise, SQL statements may be tuned in the environment from the production system where they were captured, which will not reflect the system change.


Note:

If you chose to execute the SQL workload remotely on a separate database, you should not use this version of the CREATE_TUNING_TASK function call to tune regressed SQL statements. Instead, you should tune any regressions identified by the SQL trials on the remote database, because the application schema is not on the database running SQL Performance Analyzer. Therefore, you need to run SQL Tuning Advisor on the database where the schema resides and where the change was made. For more information, see "Tuning Regressed SQL Statements From a Remote SQL Trial Using APIs".

Table 6-1 lists the SQL Performance Analyzer parameters that can be used with the DBMS_SQLTUNE.CREATE_TUNING_TASK function.

Table 6-1 CREATE_TUNING_TASK Function SQL Performance Analyzer Parameters

ParameterDescription

SPA_TASK_NAME

Name of the SQL Performance Analyzer task.

SPA_TASK_OWNER

Owner of the specified SQL Performance Analyzer task. If unspecified, this parameter will default to the current user.

SPA_COMPARE_EXEC

Execution name of the compare performance trial for the specified SQL Performance Analyzer task. If unspecified, this parameter defaults to the most recent execution of the COMPARE PERFORMANCE type for the given SQL Performance Analyzer task.


After tuning the regressed SQL statements, you should test these changes using SQL Performance Analyzer. Run a new SQL trial on the test system, followed by a second comparison (between this new SQL trial and the first SQL trial) to validate your results. Once SQL Performance Analyzer shows that performance has stabilized, implement the fixes from this step to your production system.

Starting with Oracle Database 11g Release 2, SQL Tuning Advisor performs an alternative plan analysis when tuning a SQL statement. SQL Tuning Advisor reviews the execution history of the SQL statement, including any historical plans stored in the Automatic Workload Repository. If SQL Tuning Advisor finds alternate plans, it allows you to choose a specific plan and create a plan baseline to ensure that the desired execution plan is used for that SQL statement.


See Also:


6.2.5 Tuning Regressed SQL Statements From a Remote SQL Trial Using APIs

If you chose to execute the SQL workload remotely on a separate database, then you should tune any regressions identified by the SQL trials on the remote database, instead of the system where the SQL Performance Analyzer task resides.

To tune regressed SQL statements from a remote SQL trial:

  1. On the system running SQL Performance Analyzer, create a subset of the regressed SQL statements as a SQL tuning set:

    DECLARE
      sqlset_cur  DBMS_SQLTUNE.SQLSET_CURSOR;
    BEGIN
      DBMS_SQLTUNE.CREATE_SQLSET('SUB_STS1', 'test purpose');
     
      OPEN sqlset_cur FOR
        SELECT value(p)
        FROM table(
          DBMS_SQLTUNE.SELECT_SQLPA_TASK(
            task_name  => 'SPA_TASK1',
            execution_name => 'COMP',
            level_filter => 'REGRESSED')) p;
       
      DBMS_SQLTUNE.LOAD_SQLSET('SUB_STS1', sqlset_cur);
     
      CLOSE sqlset_cur;
    END;
    /
    

    Other than 'REGRESSED', you can use other filters to select SQL statements for the SQL tuning set, such as 'CHANGED', 'ERRORS', or 'CHANGED_PLANS'. For more information, see Oracle Database PL/SQL Packages and Types Reference.

  2. Create a staging table to where the SQL tuning set will be exported:

    BEGIN
      DBMS_SQLTUNE.CREATE_STGTAB_SQLSET(
        table_name  => 'STG_TAB1',
        schema_name => 'JOHNDOE',
        tablespace_name => 'TBS_1',
        db_version => DBMS_SQLTUNE.STS_STGTAB_11_1_VERSION);
    END;
    /
    

    Use the db_version parameter to specify the appropriate database version to where the SQL tuning set will be exported and tuned. In this example, the staging table will be created with a format so that it can be exported to a system running Oracle Database 11g Release 1, where it will later be tuned using SQL Tuning Advisor. For other database versions, see Oracle Database PL/SQL Packages and Types Reference for that release.

  3. Export the SQL tuning set into the staging table:

    BEGIN
      DBMS_SQLTUNE.PACK_STGTAB_SQLSET(
        sqlset_name => 'SUB_STS1', 
        sqlset_owner => 'JOHNDOE', 
        staging_table_name => 'STG_TAB1', 
        staging_schema_owner => 'JOHNDOE', 
        db_version => DBMS_SQLTUNE.STS_STGTAB_11_1_VERSION);
    END;
    /
    
  4. Move the staging table to the remote database (where the SQL workload was executed) using the mechanism of choice (such as Oracle Data Pump or database link).

  5. On the remote database, import the SQL tuning set from the staging table:

    BEGIN
      DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET(
        sqlset_name => 'SUB_STS1', 
        staging_table_name => 'STG_TAB1', 
        replace => TRUE);
    END;
    /
    
  6. Tune the regressed SQL statements in the SQL tuning set by running SQL Tuning Advisor:

    BEGIN
      sts_name  := 'SUB_STS1';
      sts_owner := 'JOHNDOE';
      tune_task_name := 'TUNE_TASK1';
      tname := DBMS_SQLTUNE.CREATE_TUNING_TASK(sqlset_name  => sts_name, 
                                               sqlset_owner => sts_owner, 
                                               task_name    => tune_task_name);
      EXEC DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER(:tname, 
                                                  'APPLY_CAPTURED_COMPILENV', 
                                                  'FALSE');
      exec_name := DBMS_SQLTUNE.EXECUTE_TUNING_TASK(tname);
    END;
    /
    

    Note:

    The APPLY_CAPTURED_COMPILENV parameter used in this example is only supported by Oracle Database 11g Release 1 and newer releases. If you are testing a database upgrade from an earlier version of Oracle Database, SQL Tuning Advisor will use the environment variables stored in the SQL tuning set instead.

After tuning the regressed SQL statements, you should test these changes using SQL Performance Analyzer. Run a new SQL trial on the test system, followed by a second comparison (between this new SQL trial and the first SQL trial) to validate your results. Once SQL Performance Analyzer shows that performance has stabilized, implement the fixes from this step to your production system.


See Also:


6.2.6 Creating SQL Plan Baselines Using APIs

Creating SQL plan baselines for regressed SQL statements with plan changes is another option to running the SQL Tuning Advisor. Doing so instructs the optimizer to use the original execution plans for these SQL statements in the future.

To create SQL plan baselines for the original plans, first create a subset of a SQL tuning set of only the regressed SQL statements. Next, create SQL plan baselines for this subset of SQL statements by loading their plans using the LOAD_PLANS_FROM_SQLSET function of the DBMS_SPM package, as shown in the following example:

DECLARE
  my_plans PLS_INTEGER;
BEGIN
  my_plans := DBMS_SPM.LOAD_PLANS_FROM_SQLSET(
    sqlset_name => 'regressed_sql');
END;
/

See Also:


6.2.7 Using SQL Performance Analyzer Views

You can query the following views to monitor SQL Performance Analyzer and view its analysis results:


Note:

The information available in these views are also contained in the SQL Performance Analyzer report. It is recommended that you use the SQL Performance Analyzer report to view analysis results instead. Consider using these views only for performing more advanced analysis of the results.

  • The DBA_ADVISOR_TASKS and USER_ADVISOR_TASKS views display descriptive information about the SQL Performance Analyzer task that was created.

  • The DBA_ADVISOR_EXECUTIONS and USER_ADVISOR_EXECUTIONS views display information about task executions. SQL Performance Analyzer creates at least three executions to analyze the SQL performance impact caused by a database change on a SQL workload. The first execution collects a pre-change version of the performance data. The second execution collects a post-change version of the performance data. The third execution performs the comparison analysis.

  • The DBA_ADVISOR_FINDINGS and USER_ADVISOR_FINDINGS views display the SQL Performance Analyzer findings. SQL Performance Analyzer generates the following types of findings:

    • Problems, such as performance regression

    • Symptoms, such as when the structure of an execution plan has changed

    • Errors, such as nonexistence of an object or view

    • Informative messages, such as when the structure of an execution plan in the pre-change version is different than the one stored in the SQL tuning set

  • The DBA_ADVISOR_SQLPLANS and USER_ADVISOR_SQLPLANS views display a list of all execution plans.

  • The DBA_ADVISOR_SQLSTATS and USER_ADVISOR_SQLSTATS views display a list of all SQL compilations and execution statistics.

  • The V$ADVISOR_PROGRESS view displays the operation progress of SQL Performance Analyzer. Use this view to monitor how many SQL statements have completed or are awaiting execution in a SQL trial. The SOFAR column indicates the number of SQL statements processed so far, and the TOTAL WORK column shows the total number of SQL statements to be processed by the task execution.

You must have the SELECT_CATALOG_ROLE role to access the DBA views.


See Also:

  • Oracle Database Reference for information about the DBA_ADVISOR_TASKS, DBA_ADVISOR_EXECUTIONS, and DBA_ADVISOR_SQLPLANS views


PKw8Zj~vovPK9AOEBPS/dbr_preprocess.htm: Preprocessing a Database Workload

10 Preprocessing a Database Workload

After a workload is captured and setup of the test system is complete, the captured data must be preprocessed. Preprocessing a captured workload creates all necessary metadata for replaying the workload. This must be done once for every captured workload before they can be replayed. After the captured workload is preprocessed, it can be replayed repeatedly on a replay system.

To preprocess a captured workload, you will first need to move all captured data files from the directory where they are stored on the capture system to a directory on the instance where the preprocessing will be performed. Preprocessing is resource intensive and should be performed on a system that is:

  • Separate from the production system

  • Running the same version of Oracle Database as the replay system

For Oracle Real Application Clusters (Oracle RAC), select one database instance of the replay system for the preprocessing. This instance must have access to the captured data files that require preprocessing, which can be stored on a local or shared file system. If the capture directory path on the capture system resolves to separate physical directories in each instance, you will need to move all the capture files created in each of these directories into a single directory on which preprocessing will be performed.

Typically, you will preprocess the captured workload on the replay system. If you plan to preprocess the captured workload on a system that is separate from the replay system, you will also need to move all preprocessed data files from the directory where they are stored on the preprocessing system to a directory on the replay system after preprocessing is complete.

This chapter contains the following sections:


Tip:

Before you can preprocess a captured workload, you need to capture the workload on the production system, as described in Chapter 9, "Capturing a Database Workload".

10.1 Preprocessing a Database Workload Using Enterprise Manager

This section describes how to preprocess a captured workload using Enterprise Manager.

The primary tool for preprocessing workload captures is Oracle Enterprise Manager. If for some reason Oracle Enterprise Manager is unavailable, you can preprocess workload captures using the APIs, as described in "Preprocessing a Database Workload Using APIs".

To preprocess a captured workload using Enterprise Manager:

  1. On the Software and Support page, under Real Application Testing, click Database Replay.

    The Database Replay page appears.

  2. In the Go to Task column, click the icon that corresponds to the Preprocess Captured Workload task.

    The Preprocess Captured Workload page appears.

    Description of dbr_process_empty.gif follows
    Description of the illustration dbr_process_empty.gif

  3. In the Directory Object list, select a directory that contains the captured workload that you want to preprocess.

    After a directory is selected, the Preprocess Captured Workload page will be refreshed to display the Capture Summary section, which contains information about the captured workload in the selected directory.

    Description of dbr_process.gif follows
    Description of the illustration dbr_process.gif

    To view additional details about the captured workload, expand Capture Details. The expanded Capture Details section displays the workload profile and details for the captured workload.

  4. Click Preprocess Workload.

    The Preprocess Captured Workload: Database Version page appears.

    Description of dbr_process_dbversion.gif follows
    Description of the illustration dbr_process_dbversion.gif

  5. Ensure that the current database version displayed matches the database version on the intended replay system. Preprocessing must be performed on a system that is running the same version of Oracle Database as the replay system.

    Under Advanced, select whether to run the Workload Analyzer. Workload Analyzer analyzes a workload capture directory and identifies parts of a captured workload that may not replay accurately due to insufficient data, errors that occurred during workload capture, or usage features that are not supported by Database Replay. The results of the workload analysis are saved to an HTML report named wcr_cap_analysis.html located in the capture directory that is being analyzed. If an error can be prevented, the workload analysis report displays available preventive actions that can be implemented before replay. If an error cannot be corrected, the workload analysis report provides a description of the error so it can be accounted for during replay. This option is enabled by default if the Workload Analyzer has not been run previously. It is strongly recommended that you run Workload Analyzer as part of the workload preprocessing.

    Click Next.

    The Preprocess Captured Workload: Schedule page appears.

    Description of dbr_process_schedule.gif follows
    Description of the illustration dbr_process_schedule.gif

  6. Define the parameters for the preprocessing job.

    • Under Job Parameters, enter a name and a description for the job.

    • Under Start, select whether the job will run immediately by selecting Immediately, or at a later time by selecting Later and specifying the desired time using the Date and Time fields.

    • Under Host Credentials, enter the user name and password information for the database host that will used for the preprocessing.

    After defining the job parameters, click Next.

    The Preprocess Captured Workload: Review page appears.

    Description of dbr_process_review.gif follows
    Description of the illustration dbr_process_review.gif

  7. Review the selected options for the preprocessing job.

    To preprocess the captured workload, click Submit. To make changes, click Back. To cancel preprocessing without saving changes, click Cancel.


Tip:

After preprocessing a captured workload, you can replay it on the test system, as described in Chapter 11, "Replaying a Database Workload".

10.2 Preprocessing a Database Workload Using APIs

This section describes how to preprocess a captured workload using the DBMS_WORKLOAD_REPLAY package. You can also use Oracle Enterprise Manager to preprocess a captured workload, as described in "Preprocessing a Database Workload Using Enterprise Manager".

To preprocess a captured workload, use the PROCESS_CAPTURE procedure:

BEGIN
  DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE (capture_dir => 'dec06');
END;
/

In this example, the captured workload stored in the dec06 directory will be preprocessed.

The PROCESS_CAPTURE procedure in this example uses the capture_dir required parameter, which specifies the directory that contains the captured workload to be preprocessed.


Tip:

After preprocessing a captured workload, you can replay it on the test system, as described in Chapter 11, "Replaying a Database Workload".


See Also:


10.2.1 Running the Workload Analyzer Command-Line Interface

The Workload Analyzer is a Java program that analyzes a workload capture directory and identifies parts of a captured workload that may not replay accurately due to insufficient data, errors that occurred during workload capture, or usage features that are not supported by Database Replay. The results of the workload analysis are saved to an HTML report named wcr_cap_analysis.html located in the capture directory that is being analyzed. If an error can be prevented, the workload analysis report displays available preventive actions that can be implemented before replay. If an error cannot be corrected, the workload analysis report provides a description of the error so it can be accounted for during replay. Running Workload Analyzer is the default option and is strongly recommended.


Note:

If you are preprocessing a workload capture using Oracle Enterprise Manager, then you do not need to run Workload Analyzer in the command-line interface. Oracle Enterprise Manager enables you to run Workload Analyzer as part of the workload preprocessing.

Workload Analyzer is composed of two JAR files, dbranalyzer.jar and dbrparser.jar, located in the $ORACLE_HOME/rdbms/jlib/ directory of a system running Oracle Database Enterprise Edition Release 11.2.0.2 or higher. Workload Analyzer requires Java 1.5 or higher and the ojdbc5.jar file located in the $ORACLE_HOME/jdbc/lib/ directory. To run Workload Analyzer in the command-line interface, run the following java command on a single line:

java -classpath
$ORACLE_HOME/jdbc/lib/ojdbc5.jar:$ORACLE_HOME/rdbms/jlib/dbrparser.jar:
$ORACLE_HOME/rdbms/jlib/dbranalyzer.jar:
oracle.dbreplay.workload.checker.CaptureChecker
<capture_directory> <connection_string>

For the capture_directory parameter, input the operating system path of the capture directory. This directory should also contain the exported AWR data for the workload capture. For the connection_string parameter, input the connection string of an Oracle database that is release 11.1 or higher.

The Workload Analyzer program will then prompt you to input the username and password of a database user with EXECUTE privileges for the DBMS_WORKLOAD_CAPTURE package and the SELECT_CATALOG role on the target database.

An example of this command may be:

java -classpath
$ORACLE_HOME/jdbc/lib/ojdbc5.jar:$ORACLE_HOME/rdbms/jlib/dbrparser.jar:
$ORACLE_HOME/rdbms/jlib/dbranalyzer.jar:
oracle.dbreplay.workload.checker.CaptureChecker /scratch/capture
jdbc:oracle:thin:@myhost.mycompany.com:1521:orcl
PK w::PK 9Aoa,mimetypePK9A*b_Z:iTunesMetadata.plistPK9AYuMETA-INF/container.xmlPK9A[pTOOEBPS/cover.htmPK9AE"yOEBPS/spa_upgrade.htmPK9A">9]OEBPS/part3.htmPK9ASgfaOEBPS/title.htmPK9AY҉%%{OEBPS/rat_intro.htmPK9A EOEBPS/part1.htmPK9Aֈ?$OEBPS/preface.htmPK9AӖf8&:OEBPS/index.htmPK9AGYK72$OEBPS/img/dbr_comp_period_report.gifPK9A+4POEBPS/img/spa_create_trial.gifPK9A|h888![uOEBPS/img/spa_optimizer_stats.gifPK9A)yNN OEBPS/img/spa_upgrade_9i_101.gifPK9ANTGōOEBPS/img/spa_report.gifPK9A##$ѐOEBPS/img/spa_tasks_param_change.gifPK9A9ռas\sBOEBPS/img/dbr_capture_view.gifPK9AL>!̿OEBPS/img/spa_guided_workflow.gifPK9A⪰$$!lOEBPS/img/spa_tasks_optimizer.gifPK9A~}``"k#OEBPS/img/spa_task_exadata_sim.gifPK9Als e`#OEBPS/img/data_masking_workflow.gifPK9A"&JfEf#YOEBPS/img/spa_task_param_change.gifPK9Aa9f&& OEBPS/img/dbr_process_empty.gifPK9AK$$2OEBPS/img/dbr_replay_view_detail.gifPK9A9lhghLOEBPS/img/spa.gifPK9AS**!9OEBPS/img/dbr_capture_history.gifPK9AB?܌ii ROEBPS/img/spa_task_optimizer.gifPK9AB} ,JOEBPS/img/dbr_replay_params.gifPK9AFX??"OEBPS/img/dbr_capture_plan_env.gifPK9ASntA"<" OEBPS/img/dbr_replay_empty.gifPK9AGXX!./ OEBPS/img/spa_upgrade_102_11g.gifPK9AP<;;% OEBPS/img/dbr_replay_init_options.gifPK9AZZ"m OEBPS/img/dbr_capture_schedule.gifPK9Afg [[$ OEBPS/img/dbr_replay_view_report.gifPK9A;m "5y OEBPS/img/spa_report_sql_count.gifPK9A\I]] OEBPS/img/dbr_replay.gifPK9A]S$ OEBPS/img/dbr_replay_view_active.gifPK9AA># OEBPS/img/dbr_elapsed_time_comp.gifPK9Aq#D!?!$ OEBPS/img/dbr_user_call_progress.gifPK9APU_P_% OEBPS/img/dbr_replay_cust_options.gifPK9AxLL, OEBPS/img/dbr_replay_review.gifPK9ADD y OEBPS/img/dbr_capture_params.gifPK9A31"++# OEBPS/img/dbr_process_dbversion.gifPK9A"s OEBPS/img/ratug001.gifPK9Aף,66 OEBPS/img/spa_exadata_sim.gifPK9AA|SS OEBPS/img/dbr_process.gifPK9AeQ QSOEBPS/img/create_adm.gifPK9A\={=rOEBPS/img/spa_create_task.gifPK9A{+-&- =OEBPS/img/dbr_replay_history.gifPK9AU?_DB?B OEBPS/img/dbr_capture_review.gifPK9Ac!%HROEBPS/img/spa_report_elapsed_time.gifPK9AAYii#iOEBPS/img/spa_run_trial_compare.gifPK9Aly,t, OEBPS/img/dbr_process_review.gifPK9ANUpp!OEBPS/img/dbr_capture_options.gifPK9AQ[6V6qOEBPS/img/rule_param_4.gifPK9A}MOEBPS/img/ratug002.gifPK9A FA@<@aIOEBPS/img/spa_param_change.gifPK9A3)OEBPS/img_text/dbr_replay_view_detail.htmPK9A9M)OEBPS/img_text/dbr_comp_period_report.htmPK9A'"OEBPS/img_text/spa_create_task.htmPK9AGz'OEBPS/img_text/dbr_capture_plan_env.htmPK9A *OEBPS/img_text/dbr_replay_cust_options.htmPK9AN%ԥOEBPS/img_text/dbr_capture_review.htmPK9AJ$7(٬OEBPS/img_text/dbr_process_dbversion.htmPK9A r m 4OEBPS/img_text/spa_report.htmPK9A(œ OEBPS/img_text/ratug003.htmPK9A57[%'LOEBPS/img_text/spa_task_exadata_sim.htmPK9Aa*`OEBPS/img_text/spa_report_elapsed_time.htmPK9A% =z"XOEBPS/img_text/spa_exadata_sim.htmPK9A#O$'OEBPS/img_text/dbr_replay_review.htmPK9AS*2OEBPS/img_text/dbr_replay_init_options.htmPK9A #OEBPS/img_text/spa_create_trial.htmPK9A]s % OEBPS/img_text/dbr_capture_params.htmPK9A  )OEBPS/img_text/dbr_replay_view_active.htmPK9A o]m #OEBPS/img_text/dbr_replay_empty.htmPK9A<wr%DOEBPS/img_text/spa_upgrade_9i_101.htmPK9AHm h OEBPS/img_text/spa.htmPK9AЪ # OEBPS/img_text/dbr_capture_view.htmPK9AEsOEBPS/img_text/ratug001.htmPK9A;ܓ"OEBPS/img_text/spa_report_info.htmPK9A9[V$OEBPS/img_text/dbr_replay_client.htmPK9AK-U#OEBPS/img_text/ratug002.htmPK9A!#v(OEBPS/img_text/spa_param_change.htmPK9A9$-OEBPS/img_text/dbr_replay_params.htmPK9A$z(X4OEBPS/img_text/spa_task_param_change.htmPK9AX ';OEBPS/img_text/dbr_capture_schedule.htmPK9ATTIDBOEBPS/img_text/rule_param_4.htmPK9AѾcEOEBPS/img_text/dbr.htmPK9An ql(rMOEBPS/img_text/spa_run_trial_compare.htmPK9A'9ROEBPS/img_text/spa_report_sql_count.htmPK9A\X&vVOEBPS/img_text/spa_tasks_optimizer.htmPK9Aw(WZOEBPS/img_text/dbr_elapsed_time_comp.htmPK9AQ(#%_OEBPS/img_text/dbr_replay_history.htmPK9A(rU %dOEBPS/img_text/spa_task_optimizer.htmPK9A?FkOEBPS/img_text/create_adm.htmPK9Ak&~oOEBPS/img_text/spa_upgrade_102_11g.htmPK9A{{s$juOEBPS/img_text/spa_tasks_exadata.htmPK9A;0'ByOEBPS/img_text/dbr_process_schedule.htmPK9A04ۉ(AOEBPS/img_text/data_masking_workflow.htmPK9A}.)OEBPS/img_text/dbr_process.htmPK9A5' &(OEBPS/img_text/dbr_capture_options.htmPK9AL2% OEBPS/img_text/dbr_process_review.htmPK9A2)xOEBPS/img_text/spa_tasks_param_change.htmPK9A8'"$\OEBPS/img_text/dbr_process_empty.htmPK9A(ي)աOEBPS/img_text/dbr_user_call_progress.htmPK9A % &OEBPS/img_text/dbr_capture_history.htmPK9A M/OEBPS/img_text/dbr_replay.htmPK9A!'yt&3OEBPS/img_text/spa_optimizer_stats.htmPK9ACj14/&OEBPS/img_text/spa_guided_workflow.htmPK9A*W3.)OEBPS/img_text/dbr_replay_view_report.htmPK9AW$::OEBPS/spa_pre_change.htmPK9A"@##OEBPS/dbr_capture.htmPK9AگVV COEBPS/tdm_data_disc_modeling.htmPK9AzwdrdOEBPS/spa_intro.htmPK9Ag-( ӃOEBPS/toc.ncxPK9A&&^];OEBPS/tdm_subsetting.htmPK9A=gv5s&sOEBPS/tdm_data_masking.htmPK9AиgOEBPS/spa_task.htmPK9A|H1C18OEBPS/spa_post_change.htmPK9Aw\\.OEBPS/content.opfPK9A_ OEBPS/dcommon/prodbig.gifPK9AY@ FOEBPS/dcommon/doclib.gifPK9Aus 6t1tOEBPS/dcommon/oracle-logo.jpgPK9AOEBPS/dcommon/contbig.gifPK9AOEBPS/dcommon/darbbook.cssPK9AMά""!TOEBPS/dcommon/O_signature_clr.JPGPK9APz 1OEBPS/dcommon/feedbck2.gifPK9A-2OEBPS/dcommon/feedback.gifPK9Aː59OEBPS/dcommon/booklist.gifPK9AN61O;OEBPS/dcommon/cpyr.htmPK9A!:3.MOEBPS/dcommon/masterix.gifPK9AeӺ1,DOOEBPS/dcommon/doccd.cssPK9A7 QOEBPS/dcommon/larrow.gifPK9A#SOEBPS/dcommon/indxicon.gifPK9AS'"LVOEBPS/dcommon/leftnav.gifPK9Ahu,WOEBPS/dcommon/uarrow.gifPK9Al-OJZOEBPS/dcommon/oracle.gifPK9A(jcOEBPS/dcommon/index.gifPK9AGC dOEBPS/dcommon/bookbig.gifPK9AJV^nOEBPS/dcommon/rarrow.gifPK9A枰pkpOEBPS/dcommon/mix.gifPK9Ao"nR M sOEBPS/dcommon/doccd_epub.jsPK9Av I 9~OEBPS/dcommon/toc.gifPK9A r~$OEBPS/dcommon/topnav.gifPK9A1FAOEBPS/dcommon/prodicon.gifPK9A3( # ~OEBPS/dcommon/bp_layout.cssPK9Ax[?:OEBPS/dcommon/bookicon.gifPK9Ap*c^vOEBPS/dcommon/conticon.gifPK9Aʍ!OEBPS/dcommon/blafdoc.cssPK9A+& OEBPS/dcommon/rightnav.gifPK9Aje88OEBPS/dcommon/oracle-small.JPGPK9Aއ{&!OEBPS/dcommon/help.gifPK9Aj _XX >OEBPS/toc.htmPK9AQYTGOEBPS/part2.htmPK9A35}0}OOEBPS/dbr_analyze.htmPK9Aon//OEBPS/dbr_intro.htmPK9A2/r66OEBPS/dbr_replay.htmPK9Aw8Zj~vov84OEBPS/spa_analyze.htmPK9A w::OEBPS/dbr_preprocess.htmPK01

6ųB[qDFjJ۴YĴNOR[DV܃Z۵`F f@ pn5G ` s[oCp%& P LW `GqhۡAKa7U9< @-bƠ63^Cm|`2Oø8{p)%v|X񿈜n,G\ &Ǟƛ xİLYlŠ̿[OWn,3WC6\ȋ˶i"ĥC<DŽÝq< )l,K7g';|ca4;ϰ/ ,|hq`0@C!* {!мдg]0 }A Δ|}kr,$M]>1 -o3+B]8*}BݻIh\LmӉ}]/ILπq+Aаs -M9 8<ՍLpad-!ϔֲ,7:=u=ݿ$=D\A\Gi#u=bБ{a|-!pв< 8`` `)j=˔۳ Ñ۽`Νӽi ܷ-ށ1/ܣ[Ҁ݃}ݱܾ=򽼿"dAސ߇]ˍ;}}l}N᙭'ݸ#|B- ~.-9Ѿ&* `=^2 wRкp]@=P zBhB_P d< <͗ $[>%jɓWg- CWl\rCl(y'֙g;Z.\ڡ=UN3.!`j_^be>|QⓎ^}p hn`c!<%7o )aE>E+|, 7B}w+`PMaߥ-]> -~>~^ܯm6~ [M;\/`oo8~B  !O Q.(5N*;/4 u^ nBOmn5o*P %+-߻|9T}.`׷u@[r|QM?,@sMќOƊ m#}#&۫?ԚFC/V㱟}qsDIЦΛ/ę#ϑY>3З?hqR1g2ihK[Fӫ˃?C8vЫYlҝ$HU&M$ޝ!YN9M&D,bЪ{!'5).ҹ@51XBČ:Pg^N;x-~aRޭuplvwN aR=&ҭ_Ǟ]vܙw^x͟G^ٿ/~p?$@D0ATDh_R O#020:;1DGC=̠NTd16Fo1GwGG!$H#D2!TI'2J)LI*cL*ƴK̬LLM6\Q$)8J#HbgE,#8]DX.xW8t-JlBN\_ƈg}Ř(ڄ 9ڥ𱐋[^yPL Z P[&3km, Fn;eRmX۾`ܵO܏$ 0if̑_mݞ#ίp3+]u~Y=zq#`vvVn1s}Bn7\Q][%NϽq/eu=}{w :pv]P/m 5i lpjAd' G48V#!`BZ1s=c@\H(2TF60#sO yh|35-zҋ /(7Y%hE8)*8 !zZZ wO\"E6X(-ʱ dsYЀ̊QY8ρ! ֛ #8+S8H,N%MsEƑ y +#skac|H3.%FI2rd6_DcK-5ʤ+P$VFNE3M5O1i'Iӓ31 u"o6 v|b I7I.҂NHGcpb2j iʘz q.cEM̍BS.*Q*Z 4O?9d8Ao[E:np#KB=፭r5uW>]9݊J4.t,dç"O0)A՛6+a?).{T:vy-^ƕB௦\F\ulȻˎV%Hu[$B18lW[2wen{VCH.YZ 6< Xfիj.YVҕ@69 a3mWL<or|u& HaB/FӜ>5oARΉ{p&nX10%6q w]JGV9,$GHG&rd*K rdQ٪\#-o9N+"=hBЇhF7OR%=iJWDt5iNӝuE=ԧFuOiUկ3a=kZךtk^׿v=lbFvaN5lM.Rlmlw'(pL`B k@wdp:{D=ozwo~wSs)Z R4%9q+qwyE>r'GyCA <]nK ;ǎ*,rGGz= V\H̝Q4<◠Du:@>v=}}@' y?>c@M `<(;B_w9W:׷s";ԫ_}q{F7##x'hcp3H;&@۾ͣ<;c3LF8k9MA۸{= B!#,4"T="B'DB%Կ$$$dڛ+NT%`<;{;5TC[3t/><,@#9dø5w= >2ADL 2FK:OlM8#?,UdCBSEX|EV\E!=-EWEZŐ6> LAD ;ďxF LCe$A  KFúcFj4iFp>Fs >J8@kCC35AOQ$먄K*VŃEL^4[|)B]H_HabcHA hF@uF;f\ lT -`QOJ@DM%QHJsTHLITKϘ\;P=,:>(R5/EF4U=.9xI̓94Ց>0M]m?p@V9#q;Ghթ8x?98:um{|}~؀؁%؂W7pWbuu:4H5؉EtK6֘6p؏ِّ%ْ5ٓEٔUٕ7P؅IY~bIcٟٝٞ-!١5ڣqEڥeVSڦڨڪGګڭ4(Z۰3۲5[>#۳U۵%e۷[ڸۺ5ۼ*۽ۿ%EUu\aǕ4͎]5-U]M]Xׅ]0n3c]Kk]X(i*8 pB u^܁^=]:4ˎ*ȉ%߮^@镦P_Dij) 0/9 0Ht]=}ߙ3^|_V݌<_`=j _U` 8Pݘ`E`0ɤ. 093%R@2X-©X"rj .ޙxJckQ*-0 &c4Pbɡa/-a/vv3 +a4b7_<_5d d3V ;e^ M!NAFC~dMV*&09a`Hn ]^0PF%Hc^hs\鹈s+D >`۪mJ]e IZJE.0dgeF=^ %d}F013vVe6"\>If_~^zheffgu e^_qQ _ .g_FgJIiE>O^HK'ꥆ\ E. eh)>j^&yc^jFkg3kv뷆븖빦뺶&6FVfvdžl^봦Rllm&mjVsDVS>-3k9mٞmPQ>sSCDDhs)TQ<<@ Sxm> (WDjm9Dt+8?@;vL?n> Ovn`HN| |(㻼Hnpvs| ZN5@+@C65q8O2A,ruqT#;>@tdSB̎q8Gwq>o<@rtB!ta@:>;ür<;lCDlAtClێ 45m>&HNAeGrs \Tcb>'hmS+dr2_rtlq[Cq Lq4Wq tjgt O9R_,C,폴PF@/wFS7׿{s]HZ>'xfgg'T>dI-̽v_CHQ$~u${|'cz AwdIHcFxS컿lD*wx\{#r5Qx*64AZy?DzD7vqysy GW6\sCga@ŻFK7 x_r/{\O|sSu! GHd?bs+5ٸ5k/I;N}'~O<&?w m.z2;pKqr4Q}9Iz* ~̃\r4p!q|!E *| !> 1 5`#Ȑ"G,i$ʔ*W%̘2g\€:\x3@ 6q 0A%a` L>Ǐ>BES::b(N pOpqbHnvmZ@x+5F'~1`5!EJ,~2(Tuב( ̀A6Y"Mه"NUc#e6v TS|iwSTfCzbF6$i岴WZ }bVp,ro$=)JBAЅ2HRΡ'@Yc6bQIm!WJ#eҨRlSf}s^N%uW]-+ZRNkS+ ׹ҵv\׽ɫ_+~e#?D1a#+L5-0m$ZٲbL;/wm mdB&^h5z^dm?uPŅ^0kGhu+j?,؈y4mrcOH*"YؚhKH9{q78umc(-jis!hF3fZ)[pŦJ*)'hiw%ͬkB5^~ sQT0ujHxR0H 6JE {aX,c' 7C`IVhY"̺zƧqGɖ35J9:&0|pcӰAJgAw^yflx :$ nk_2$?KIQfx5 Lax{YX R:YȦ!faf]34nMdwSy/›F:N/!asM^ȣJc8#KGgX-<UO)0N|[$UH\v3sX8׌|^Hph|_]M8^D"R\^+q̀ VоU^z TGQ)`đF YtEQ`Z`tY<%V&Ya!yt} G}=M  *adNB!! o !"I""."#"6" @ 0%Rb $f<⚬BIW^le=WrGը"ґ,BL""."&p"nďT-)nЌN\A\+Ǘa}.bGt ;sk-c yoEo#=jRɑG1ry?FWuQG 0Iب#mCضyD1bXZÐ+]?#C\B,@@Hb8Na~n|1ˀ$`R6״}s4 u`% !L Y,N` -F1W W& Updx5WP^E27r#dEc4L:c G YƸ %x)&Af0xeq0YHYTYHd _TD!h[U(2=PŞX9oHc\%z6kXh\IB"`:Z @-HOEڤW:~Zx&ͩP%52#F%Z ȚEКgff=MHBi&tBSE"!W 5Cf@.5 k苧`8Vȹ.".hV#,*všfN~ BRTHLO{g ݬ '%r.\̡\ "%& ŎA)*cIX2Qrj 41{p,)opj-0xc0H!me!A%ak2XGr!!<_0A/-3m3ہJQ-P 3:vinϧʗ-G/y^Rp tlG5b 8ɢ_+[;=?믿]=+4&Z"Qư1V_4'2[pP5FR\+hBm`3F#1] /hnPop76q7rӄq'7s77e97tG7%Kqf`q {bwwotwK]P6\vqww{S@ 6n# $.P`8^ V'=Jzp̊/{V_KBn HwQ Aq pd\*aOzgeS}WxMGZ9V2 q]1WP1hx5iuD'Q1Zk; -/˰vp}ye$x^4MAr%,25"3jbeNMU5Q gubuOs}`t21wRծZ;{Rtp4PqF09Yst/?/jlf:T T1UfE6]|1o(cU3B'*6Ď*rUg%-)a :2B ai<:ri;weܳ}tRHõi)Ma >Ҳ?:̒o*rYsBÎz1HʖGH/7SG໻E{4XoQw4{WX!F;_5?"o*Ҵ 99Lz1'ak3wm>v0ݏS;JKN525X;PXU@ɚvZ?! rM*h͌uvܼ aQD:/"/Y_K%H] ]۵^J`/f=혪 KRN[oވdxeGvg`u4l!Sq|dcSDSi+UkGkՓnm?>ۡ3?ru?nKÿӿ?,,.@ &TE^#@. A`0 |! 9F N\8fM7qԹgO?:hQG&UT(AOFE>~xj#ƭ[b2aHCZ8KqK*h. x+5ł| /аUn4䞋@̆ZD7'VuMa&Wa{zh*У`4&iW7욘aNsb-hmXlusڵmih߾? '| ;v;/! gJ2 -Hër8:!4qhͻN$(s5/GIDo!:N0L$lh!ˆȹ.*@QP9|3!ĄDuSb [AN:P˰,RK%N-P`B<8I"He);AtAs*tC+L_HSDS'BUyL I֗L][_U2JKpM+yj(=/sE$tS,,s4!T7y*b\t1q+q{3b!3b 1ai|a"L{ׅz]м!]^:6ӣuʶ/ܬKU+d|=Yel*Fu)f>J^3ӯm[tqh҂X^\|J&c7( l4j/B+|Q^Ħ[ƚ4֘Z"&ekv?*]qm3 Ҹt!4u2BB/[Meajz[mW7uJUT$a3F ;تul#".=hݠŘ1n!ۦGdiRnZ`2:CoK$K2"1vd~0rR`au`y▵`m6oKl`4x]͂ Up-42V3=uocձM4'$\WA?Z $/L8ԔTRzHe+?H6t!ȅx+"v.({/k#$6u1cWF沴Hڣ^F/n #cwqb $G8\3TR>,']Pcu Uީp)АP1Pb_V A~yZbHS9po4t0D4i6Ȕb9љNRPt;rNxΓbg=O}.D?UMgAP.8Q<+MQ*BpɩMӽ5ˋp: OgX,T %5&)TLr՘RrjNH~)j(c%4K@S1q")51US(ŘMq`D]M5̑OU fwBDEJr6'\?Ў&עp?Ps̺ZD,I57˃'YLCRHKaO&CKJ$UD"nOL4Eu2QكeJP`tumnZv'#|(F)ehY)rZj>k~P-7';QRvEH|XܪǙcXհXLe,pk"5BHdp1C"ƹlY_A5QKˆ!MJR·osr+Sd1UTE 8H}֫*Sr&f7B$SӜQؓm9c&nU# {ՈWS,jR{ixZKX;9;%_kUD7ygu81ue  Ky_2fr||yU͸9^@;wL,_8k_T\ dV܌J?M 9̢Kֱ/51>o GZeApS:_15ywT/Zشgkwk+RMZ̺6PrVh*:wo]Q^v Uo}vਫǒ-kuv8sMM_)lZgu#74+MnCN@}w䈇!GBxUq5|Mdxsy΅"͐&N|l\.oz ͮ|+.ω NA6w̏Zvb 4MfY Ȕ?$['ǜW;cp`0h -;/9[G40ӗ"y'_VKSnxLȈE0LnvH ^惢Tjh,$τh>ގ y8,l~ tU𯎪rZ0M`=v,cpr8GWhO|'nlNfH-+&j#gG0n”jHg.iO?EΑh*Яbov/ 94n SpgJ0њ2>:Bk>F3KfB8/bpDn" p} ] gnzxif͞A&̋JcTi /p Yݫ ]P:(V M QfZJb!(-$<*đDbhqμn⢃ϱ -P"V}ZQ'"1 P  caf!&!!>Z(xɘ$#u"[!#2$Er$[ $I$Q2%$U%]%߉%#yj*2"s 'aC* &2({ ' ҳ\`$^ 5j*R6d)'(R'GZ@Q*''2-2)() KK#Hʫ.$b CX%PPJDKc0+q-)2-&D ws ҃* BEa`Əx0ʰl,`*~F2*1(./l Obvf,D3.2=!$s(υ(j39H)O D=rm6MD%+&kjA?/Bi4%'t(r\Ei$V4B+*XjoG%_[Ժ4F;ٴljKGFq ).# 6p%@  PhTV014k: YK U T*RP5B2 R4RbRi"SA=55TIToTM5UU$rU]U[UauVidVq5WVuW}xWuX(XXue5YYU5ZuuZZZu[)[5\}[ŵ\!\u]]]c\u^U^^^u_U__s_v`aU` `S`vaAUaaa!vbiTb)bb1vcRc9ccAvd_RdIdQdQveC`@z`fd`fu '"@~6hYhQ&]d@ 'Vgg6)pjifqjmbhhhv) vJJia& #m}kgk!VnnloiUdin6`tVnq(`fyiNrynSmv&7!0 6Hh1g!wfk6vS7wlu6t6m!Rgi"ussx=h-ws;7s-jeZwfC q9wqvt6^2x-vxwgu7}Wwf}jL!<} uj7uknO~Wx3xqxt|C x|V!7hW}-XDw}u~&7 `ukmWg7!^8kqm'Wtxw3X@<}u6qEX|'*Rgg8n‰xoz{8vјwwf@`!vvmez7WjVjycxx{։Voy&R8Xls!XjBzVjejMkt+`y=9zuGjczה3lo8%قXCxkaXkv$f'r[ox@Z]eu 8v `8hkoy8@@ xb?IaœGeṞG9`:z :z!:%z)-1:5z9='y %LQ:UzY]a:ezimq:uzy}:z;PKA|SSPK9AOEBPS/img/create_adm.gif QGIF87aEkkskssssΜsΔs֜kkΔ֜ΜssΥkkksk9sZBRBc֔kֵcs{k)kJ9kB)ssR1Rs!Z91RskZBk9֜99k!kBBs){Z1֭ZZcZRތ!9kZkZs֜)!Δ)1ֵ9ƥ{ZƄ)kZZZ11c{kBRsk{ƽ{{ssscckRRc99c919))BkkkޥZZcRRs!!BB֜֌sRsccތskccs{k{ssss֜ssskscsskk9sZsc9sZkJޔƭsB֌Z{ckc֌RsRƜcs޵ޜs{֔{sJkkRRskssΌcB΄ZB1)RJBBBBB1)))))cZZ{{!ZsZJkscޜRRRkJRsZ{Js!Rssssssss,EH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8s^ ϟ@ JѣH*]ʴӧPJJիXjʵׯ`Ê=JpٳhӪ]˶۷pʝKnٺx˷߿ Lv ÈYLǐ#_LĘ3k̙ΠC_SӨSk5MR?;iU~MGؽ+_1S.|xqc>O>ҫ_Ͼ}v˟OR Χ]]~h`gV߃8Vh\ ^S Vwuؽwl⊶eCuX@1@)2cu"(ubQ?0F)Z.N)h#@QIԘV&XU"ۖ#vӓ>=9$g9Вe $@g0"f @) $$ @@-y>6* gbk'a gʔ^D!WCp*D۸"2PˀF$2֬XQs 帰}1}WEG$=" K֙ V1WHF捎 ,oK5'j[N8aC$Hr6|\g ^Ҏ'SlLfe53Rc+eLIJoWWGM撓I LXxr"1Hc$4)gs-WfުiDzgܩϳsTa=~TCAg%i.*a YHX2HRT98NmNZRh xC2 ڎXJֲuTM+}* N f nxCؐ3A p(j}J¢U [1$@R1AZWX, -KRe|TX J lPY'@ @fᷞ=kKA^ 5p-] ZȁL]H[HCW!V-rޠ(/$dl (wSYTQgeW|7w@s@HOҗlvʧ&&7w%(H6 XsG;hOv\T;]+3Opyw+횇]-({ۮO$8񐏼'OWB` AI6Faf`0і=+OO0濥\y@-MR |=c:(+HOμo($ Bp-S}v- ,*&p]9 qv=4lAaX "8$'(yebPi'6zb?b49@E8qh7,bpJ6Cd]2x?b0@nCHq@0)@pIjM%jbol,t(Յ_wcH5"HkJцXaw-+6)d`g)uR(z`]0p 3@whEWf( BC"x15W7OGq9;0#(H&0)PY1 rE`8t'x\+&&p(*,(p戈&i8giƏH6֏ِ&(ڠy3z7ɣ<$ :DQZJɤbʡPRT*VEGz`95Y!zh繦lP ɥ>N!:htՉ ʧ 9yʨj8" ) JF!ʕک:)Jit٦!LIZ iOZ|ZʫiNAڥpZ_zڬ*ԺjoڟO )ᩫjؚB!Hڮ*Jiz*ۭz[[ {ʯ@2Zkzj  k"K$ j{䪲k뱅13;&{9Ӫ֚L1D[iV[IL۪D@/KPR+8@<۴-9Lzf{T++M Oٵ=Bb dZv[, K@)K L]˸ *Wv۳?[ƹy;[-Ь+CoA QpT;+K{- [;jJͦy;hGpa۾jOO0} {Znb!H#*Z#k K{*(i+K0"<$\6׾jO0fkW-.3b'#* %\$|+-K*ڋKeA\z<!lFKM'6 | = K1u| - =`#4-˭-_F:=Z @%=+ _s >a M. '߮NR. T $`tVZ Y. 5 IER彽=')-U2ѭJf]h]/&>m#j࣎=!0`aDC!E\$}۳ ^۷ GA" Ůs|۲0![z^}>H蕼PG?0}$>z&p>Ah:$JO}ߏ"D@dc";@Q.۳Y=5Mڢ@?þj.۴nh%_GǙ稁Nap ޟu@M M"$^E|`A hZ " fS G# E?! H^~OzX0q扯'L/Pu^^!cO:=> qkV/ ű%}0AX㜽 s" ^;1 Ph )0p qHHooo_&`x+p@Q7z%H`!>DGpPV%'V`"5r$[bcᠲE9 -~4@AE|L C5^gޑ]~%OR V  !D@۸m0\Z`=x(@C5@dʕ-_YfΝ;Zh:uLFZq  .lCkG$[n޽yC\p25Ts͝?7wNtC\˄cg׋9_|*O0 Y-:RtSUtVDUfLXCA A`0A r!9 /0C 7C?1DAA%XaJ ^EgEz-($d.njDq)HI2bIIIz HII)d'r'qH#u҈%Cr 8[: N @;@xamB E8;a +Z9,62QG3SOՌ4UCKLS6 j͢p-W]w=8_-8 Y*sAAevYDQGtS!:yvoekOK樏x.90]VZ B ) `&`F8aΡaX`'b/%`"EjFk$FEb_WfegQV|69b2@mg=B`~F80԰0yZH%2TlUUe;5}enu67檮:֐@#eiiֲwdEȝ\qkONv>v?wN䥷{nmw.=vgvo896b ~8qƪxL1edy矇>z駧zۨz{ة | qŃΎ, AmV4:lP.[6JmA:me$x7U0XoTwYRG# AU>Nc \Ϻ u?T%5 \PZG!GDbD&6IHE*VъW"5#.BP7aypʂF6eDA2欃tVDH%22˟f` +Z`XL2uN,[ x@_vfܕU)`e4GS⡃bL*$&<$@x.p9}pLK ]hzI,0GnD{EnvR9NrӜDg:չs#"FZьsDM~p<] KYW%+, j6mJPky˱8m[vS l(URK=5VۭhY1֦|D{X x}jvcoe&U)e+kYJuH(Hnu[ַnp;\7+b iO S1F3pִ~̼!IOdJ, $GH2H}sbhʤ}s eɗ6.sFs|淔n)1('U'p Jӝ̧C]M1Kxue^=ln2LD#Zb# -G)FfzuOeZwO4fp/ỴlT;ݾj!]ǫ~CU+9z޺޵ik[8X93g"dhI Nk!*R3<p=ߞ睙z{HcJ~wQFY ׁ԰p7kk[g<>|y"@$)/IY|[B̙hWK:yַ.7\:_#JUN''mt4>t>u\OF:-xwdp>>w]"v;z'QT4iQCzӣ^[ 2{??j?KUھ? 5ۿR%#:?@h%#:5 ;kj0; TB @e#=;%BAAD?" s[AUC8-B. *4>DÕ1B IB*$DZiB{Z6( BGB,8AC.71d. ,2\$k (lC^D8X$YZ[Z>35 $DI4Ƣ8DIĐ[DF c7JX\kWP8`P V m4 ?*wxyw?PE??|_#!q%L{29ftF,Hc bGwNJH{Gu1n=E$r5I5TH਺dɖ\I^|8_Hqa,Ƈ+ɝBɟJ$ʡG1)dʦ4H1$:0E4 <ǤYY1I]yJȩʈ3Sl#tH?*.9DǺYKl˘I# Y1WT,?ʯJk̕,K?K,n~ɚ H|H$.8K]E}\2dULh<v:8eOL&یkV& PNhBVfBma^T P(ɤ-P @PfN8SUQU/v B$Zf3]F3 }b(cb.&;PV`bfgi&pfecL0i.Tc Wi&gFdtFh=I HKy^XLlM6N}PQ ePh'VEh*)X"׉%Mb _F.6fnPiuIQifVyiefRԘ5]L{а(F^gKԤojNelb#hHE+V ;_QΘ=Z :2ktf:kpi.nl@5hbEiVf휦ܸNT&jgOje@l5l0e>(m{$"R\nmp"Jk]etlko=oWjsNoou+Y1+0rm}nxFGw]qr[膖j5'Zګ.rV< QEhBhEPڥE4Wr9?k8kIVA'tCGtEe;7r̥sPDgE8DXH]<$O8 vj0G@dWvdfqmK9o2WuYuuEu]uS2R\Sgq>gaKQEpuY1n_\G^OFGmrO s? (Y2x﹂iWvqjy0{u}W4Ư oP0sHDȧ>wm\G'Y47u5?OYx7L,WyG`xxH0Mxx/] _?xBw]yLjG+tgry5z,wy/qqO{,qQ!]EPo}BBu7h{{8g4|/|^чzuՏY=r&r ``@D`Z E`\A G ׇ}گ}w+Gw5Ȃ48`@(h „ 2l!Ĉ`"ƌ3(X-JԧƏ|~Pl=c:w'Н-j9J2m)RRS*֬Zrj+ذbNJGDjL hPAYd!)Ӫvy+ТE#>Lh55f׸r4ܺwmpM7i)ʗ~;ibƎELGA/@T' Syay6"8ۉ ! "C||©$,⒧*LdBXp+^iEf(0,  LP&lA*YP*g9Ty hPmP]uP_Α(gZبAԦ}K'xy~'퉠"SP2Uh[RY)ҖAJP(/K멠,B4/$Lj |d 6j AO\Q{R[жP 3D2A"4> ȶ -C,KUg%/w]+&ܞȣod‘׵p]vWŃ2zQ\\ рZ> /&,1)i)sA,&#r (/ 4Hjx?d+%Ja+[6V90Z/B-xUx- ((!E@wv-T3%4.B@v7GF2H19Ad&mӴIH\\H푑\%74N͟2фTt"6E0aAO<1Id&*EKXgXŽݭ쎵<,m)C+VtWURJb"Z>wЍ~ey>=I / %edֽu`+@K2@0xX" v1q9X։hi`-1LFG8!@)N7;Z>6ZôjLv o4) 4B ., =>uVjWp׿!W0O]H¦6=ۢ/}48uA0bY  P0;D22^>]m\6 A_CD ym8z! !sH P Ȁ ! ҍ! ! !"aEIk!Ua .n!#B!ʈᡑ#\`biDĢ,. ".RY"H]!!!""'!#6If$rab&0Wc#2(R )*_pJ*!.YDHD]-ҡ n:`$n/4"Kȟ0&.6"2V3:G؟\&4 i6fG'_Dtk8#9W>F >A+c < CP_e >FDfVd&D P$A5"dB$-5C>x !D ,1DS 0s%"v{$wܙcIJdkKUd M(T܏ȡ<$̀=<%cFRrZ%[NLe\XPSQeOP`eF^WGVeekHF#ZJ"L@H4B!A!\M%K*ZdBu2pglun/67b8$a0tT9$O(Otfo` ,dRfe@iJdNgo@p Jq&r6sN(Q)h A*Dh =)$$,PlJHme_:D2>DfovIk%)'s!0W!L^`%UHti0 uUi'BxV)+0C1xmF7Μy'a!A,|MjV} *M(D <@ 97U9$E8@iIi!PbzIf 1P-+h-(QB< /@&1#:ZĒ*S!isUNMv+Rii/ԩ_7:B"gWS'fL+U9*DLj$f@~|m Jj5eSֱ&0[(k8"r%)XB]kxȟƮz,t).P˜bB id&mivi(Ir`N_$½针OQ~٢'b^ $1, @j*MlX,!hjN +j ڨ@[+,k垖/jV W^*],4RdmtQyvٹ+̔B,覧Ba`6 m楙JLk,qZ*VWB -b- ԀD,S;[xdlr bD5-ͯaR.ڂҨ)x- .BQAa*dnV”nMNű|\T Q&pݑZ 'HB :oK:IU-\]/Xq/N 8-2l > Z`-1z029n)c$ @0*dɂnͮ.n.N[ Jm'(&c6o?_l @b ^rgʯ!sk'r1mALkC p^b[ m <+&$kW!3?)G L@ J 6@m4#*r/n+04#Ӳ#.ZY.ONF*"`\*r,KpgD3%3/s"L% @ @ xBcڳ83,?xXmi2gDs;C@2tk$EPaK44\tN+""032bJ" 4Lquq2Br*  TAM '3@K@AO?P5`Ǔ D tWX'BY55[u|t0 c',I+a_eO<T B!vbu[\4R;s6oﶕ6p3 7q_6r'7gwN6iv 66k_kBl6mSvBH?K+@d@D:RLbG5gzU4~\;;E_{.{x{3;]߁y G;:당{Wo |I#^!'\+;+z:KoD (|{O|S<7,{8<˳x͛7ɇ<{WyD<;|3W`IS:<F%CG{fx"N.*@@<`~8l}t+ <7}wW}~?}s{[>G=߿ߏ~էnxp}þ|(, gK7r_ٝ < <٫=Kԟ>OO?g~^:AK~gxEۻ/Gꕽ[}=[T#ȋ@Ä 9z (AC!F|bE1fcGA9$:'QTeJ;uĔ9fM7mѹ3*@QC&G@SOJ:jU 2fZd׏3Ldّ-Ѧ]m[2wn]`sH](f`64sTZQ"=uo =ŸO,7q']R~V9$ >Mu*Lf(n& }DJXb=T?7! iJD jS` M b=a,0Zux7FPێ(E v#G! YC@|w@%v=Rh%PIi\PyJQ#Z٘4 3  o`0Qe6S̋2YAVFs5b`f75YN(`:G!;NxBn < ؠN <Ay3 | >jDkFw(] :Zȁ, t iHP4 뼨&MEg32EmʘLPA&ȀH3 Y\SdTߡ5*1V4?PED@ a* C[:՝ƕs׶*ծF3PZT[Bت/( w]ˡFRyͩ "L.&fL@VP!%l+O5]mPZY֦NѠBZV dQɍ% ,-ԶtV048-PbҎ tݡTWy.V[t\ߴ}_]`nT]8SE9A _ ofAbEQb%1]bxЍ/{P=d!E6r(X(]k(P Gt |]f1#Y,c6ќf599c(ag=}3hAЅ60&,y0mM*L҄rW!7ӝ4jQԢQjUv.]jY:/n1$ҙֽmG݌qsrPR @! R ,hZ,mBW[ $ҵC@#voy'{/Zi heOشց[@mX[ w|[gBw8=~v7]rot4BPs{Jqs=93p Hl`]reo?UձuG=Sv=]ye\Lmwwϝu~o(A@G*+;rw/w!yO|~v. w|@~ye ?8_>_RzZ[> j@~_[7 8fG^Efvdi& )dch`;+o JB? C g) 0ofnp o ɰCLP T`XP;:pc =  ps ىPgtJ ZiFv1vBީze(5' qd}fHs u b J`ez:`{р`7 73-m Jybfǧ|PHPtq^hb6Pp i((@q1{,ґ/zQzFq!/ԫoV0rH)iomLrsg"ѱ$)"s "91$yH&%t(# r(ld "1 +qp()0:R$R(y%G%[2F. G|'mRܒ+r.7(_o H)r)h'1/>/2苖1Ո}2,.")q"(/=3 zS4.Yf!Ւ4i q*+Ǔ2uS-2'kuDI0|t8s24dpf'3:;Ci77[}(>CSbQ3@ ?<8$ϰ@AhH+Y@m!tCA99ȁ&ݑy2CY4vhhh6iviii6jvjjj6kvkkk6lvlɶllVi;PKeQ QPK9AOEBPS/img/spa_create_task.gif{=GIF87a;ڴlrL<>dfDLV,μd䌒t||\Ҽ Svq5lg㹳{ ţKN:Z64;NU=7x]M]&~kWQ|(+A~)XCGJGb `KէyqunI`u9X 2~w)Qd4ca@3$w3!K)o?]f̒y%f3h1ƒ~+ARjtlNU.5cEquyRU7_yU쁸^f9"i ;y4(d=酝)I){ Fڠ5Yg.g`>bjDe9gWkfjʪ(2lm&qduʒ}Zcb 袊D/]jf*m[U^dJ]tzmֶT NػځkKD+U d73-'Xez +*ȉ롳y"X^ IVE tD7Whp%t4e_ f:^fmy!Y'֎af|B@ aXf3;s@;هVn~aEtjq8Ȕ%2\,UdCUb5eag|7NZ{Y:hx۟BMev֦2lKc3GJ6Rk꧔M$i&0"<1ZS$ 0dyRM&Ao#jnA$b%4߁G%~8̡{ft;wKa^UI\ Ta`D$ͬ<:戓"Ưix% \pa98(98Q_K< dײ|z RU\%Yȹ =-D$ya悾"FЭ24Ƶ9Wl# ţ /D_ gȯ6Ib.:1ӂe:< 24h̦6iR[Qp)r v~ @JЂMBІ:&:'JъZTF7ю) HGJҶ(MJW*0LBș8IPC #SPuT6)uV]lfwi:Zp%ȔkO{[% 8 PJٔ B2yT F pℹ=nV.7y-u{Yuw+^zu1avj\ؔ@ 4mdS6PhE Bxb@rC* _uo߷j%Kpe A\T~;FPUR7< xM :52#dVY3,b* e1}d+W+A򖳬_2GxQ~K`5g(5 a,ZʎR;AF@ #lVsZ؃U;CXg[pxt;3} {W:*6\cJT{-jO /cχVؗv8yt`cYxWstEUq肀Zsfb臑Ox8hl|V[{]k5ȀWx'cDpvYNJVAZ@hW wT{艌(ɅN7i({G(Ih^vl_y Ȁ:x{{wr qx Pur8ZV,vkT9n^NghK'~_ @y;Zn i{@(  ֋(]uؓh/A#9_ؒW9Lj([5%[nǂx)axVCUy 'na]oWT(dZ8x|Te6Hp9^RqaP`{)`6*7-WnŘɧ}niur Ufx~I{rVf]HaZYf8t9qw7镃&OGyc` uy9ɝFuTvVY*隤̩ҙtzf̉fHWC7S9j-}_Yu(o6j *pɀ Znd(Wu)jHu֦4j]Fl>գʇi֛+AJ{\luI:j&0XPjA6XIڡ7W} Er):6jk=֧Okv:舦:7xzeigdg~^1RDa4|9N:SJ:Q*`T0(R+*^Ң\+ zz6՚ڭJ ::*R]5ZM\hYJ_I^YV9aWw 65eZډ4A[\*[Rձ {gflqkIgM iEքThWefle&ilKƲ"g\Fkf;uUFc`*)&hNklOz*CpS"[{bG(W^ɝ:WzƩxy_+[x'oU'ukl3u| {[8Yx!xCG6(hm9v'+o&Ƿ{ p}{^5gmf[H7G7Ҙ3)(9y&6ip1u;jutXEٻk] zIUvׁ?x%钮#(`H[y\{%(8bPXYxi:ʅ Zjو7ˣ|VVȽPL~(YyZ &ڑ[煜X3IKX+:2lι9҄? HɗP&Q׍~& {ٙS,O̅i(guyMkY\U3|uHrGM\ٍhc\$o Z*\j_:E+ډ)W̼Bʣ,0*Sa(@m(ڡR*c[ɦ,=eǁý\zڛf<|Q֜ M<|T ;\&|g۰&]k, =]} 61a1p(*,.02=4]6}8Ӕ T^V~XZU^^ b^MfFjn|r^fKv z~ ^J膞92+^$E閞 $':eIk AdކcjA T`բBvdE(~v}Ll8Au)'G.kjj6fR>(rЗGVk[hSۄ{lejR l֏P 9vNZmeep ;g]vV Fk>P쇡 @>nHul8ݤ鼺;^OPF[ nb5_qeS* V$_8AXypVe&  OV81Wy FF0P  Ї4,!8_ >}we`_-jhdޅ( PƞSKήLp ned,:W)xahj-zN ?ƟHoN1O?_Lϰڔ_A&U ?_L@ DPB >QD-^ĘQF=~ H%MDRJ)SL5męSN=}TPEEteHF_6UTU^ŚUVDvXe͞EVZ:=)\uśWԷvX`… S[aƍ?nb%_ƜYf8)YhҥM 7i֭]4uձmƝ[wlk\pƽ&\rfE\tսvݽ|DQHz)d%z~_@Ȩ0@S/, )"B2@*Qp<*AϓM Y%=@ ) C LO@_1Go’"h=Z>P WPdP0=j4A 1Z1K- >$05F';0A7۴J.3.OSI AS:7 1dQRK1" Eft4@DsB<@>bUW_5VYgV[o5W]whFqG]Vpa$!eS8|RSK6ۨ“<5%4rI Bf đ@DHTWRm祷ޟbB-"`'} -./Ƙ҄}Z!+c,zSle\ fdʇfB/3VkcBdI.iFhn>Z`޹%j嚬^뛼& 쓲fj>Sڙ &釣 뷍Hl{&_;'c:^=8la{R6|( 匐]ֻ"wK`A[2Ed f/!,-Hq.tۜk0LZnI7mAk\"8$_,1NX:s<.qre%$2d wn(9@LcLN~~+D Wny =&AM)[a#!;Jtml&D-9R<@w7- ybOvχ\@'CQK+j߀'NsS{&ٺ ęr *[v#r.m}ݩ]jѕdub56ze]Yǚ ܽrg 5ߪ:Zt}+\z6hHؒ`N+@ᰔmfZZVFX]W6WFЯ]\,,sjdr* Vxۮp 2(#/4Mn6ek̰He5j[vnKڳݴH*}+Ukyw^2\-BQB38eOڷwfpb(bó;?JXE&Mc 7$R1i.P7bEuzAY85/R4wޔ섿7"¤[돇ђ͟f#W"ur~ +l$^;yaek75\IϹh5?7+Ӗ>a?>[Q˱ֈFMyF1kkqXb-%R>dvx4o?;j1N=eg.n6Å!hW㯟5JLsv?@mA?uonV|Ob6Md۳.Lhfx"|G7Qua;:GCrV%&x$@\ۿӃ1-T{%8Jyln ;&K )3PiUVJ3 |uq~!hT_ML΁4.ݴk0}a]vN3{!~_ x7"}gwv40m[%v VGxqH>Egl=UmYV5t?U z/R%FIg,mkkU2aFeFhl,_1ϫGO?LͿd迿|$D@%Kd@ L$4T@t<D R<+ 5R1= LiTB5Qb$/@B˛>K '$%3Z.|\1! \#񞬲"  _074#0a8!?d>*55!60`SJAMdWZM;Ud5VhiTiw Som U%є`UOQ )cM*ё`YwRFWL/iuvYb-I# X%x"HEUT=VN(XGWWrWu W@Y1ChSW#@GI$XXX(ZؙeT7AXAZ*لڗue%A=SQX#؉EX)M VMDٯTt۩ېvM%[-u Z\WTY)aQ@ۤXPa u9Q!۔m -]8̄R\HXM ]1\aUa3mQg9PTA}\Nusє啔tAT؇}j͂ AQMEO5YpΟم@=2iӭ_}ϵE3d[qu_SRׁ]6}_^Q^USA`}_-^_L _\Ϭ֒@0WU_5@9M+}UiR[=M^]o5q&> [egUHH%-ё Yd´T.vHMa$:.+b=ҍ jcc5C=&d,[F?v f!aJN`54dmI L.e&./UWSaBdZwzݒ>&eԵ9U_&=UY5LX2\]\/+9n6`9)FɅ9di_$fdΐE`.S]`ߌEp^&MxZfAյ0f\ _1agmMHx~dUee"gnh}^IA\]a1OHSMESDhMֹek&M# (,(V (hVi%l5>ꃝ˥Νnih5bj2؜^b~RV4A=}kaNM6Xx.MXݴF젮W.jdqХUaCjꞖ)6>ۙiVWci{Nj=V!mfծmojF] q]d*~`^I)D&SqqvI$_jQ`nhoVNkunVexq^^VguY5@ wctpiknfW]k.(]kkno~5o;t]n7_K nqIw\VpoW(Uw˚k0Qrܵ)s < v`PIcP,/]%͓3-g1p sQ<.e~)&AiU# '@H!C ʲĈG9hbC @*1ʆR:TȐœ)gĔG`I5)c r"=ZXtcG$ME igZfN[),VQ#Ne*K[. 0-J\/.l0Ċ3fܢ0kTFxu\d_(Le Dق۶trbތ$J:JrڟlhaU<{r˩=ߞϝxV9'DYMS.<ҘWF)cC?z~4WY/d 8 x >LfIPlP{y5UD@K=@+IA\|Dw !JAU|xY-ft(D9ʸTAk#C?rbhMP(Q"RVe|!bu)!"J" tEP]PXAav: _Jbyٛ>d%#.!3dZFh j)z)d "&BǵF&Ya pӥ1фk% @"]P&tQ>"+emN,eJ$+կ:k%nE`:T,6+8'KjZ )V6&ʦ7+i;)\#u,F m@rAz2)bh'˜̛֬Xn3όͼɩ,3E}.(H3IX uCzJV;`uq}6iDMnpJ Bq5wmwǜ߅~8l#8;8K>yP~9k9{޲埋>:饛~:*:뭻:~;n; yOp<+<;%>髿>>???OI>|8 2| #( R 3 61)P |<9.|! chA.])FXK (!F E9!wV"E&0@EI(vS$]5`1;=n`B'ЎtEG?2 " 3BKMr_&iQ^2tӤ'SJUr/[؂(I)Kas\%.sVd 1xB LAYSt-uej(%0Y :3emrSDI(~م'PӚ19n*tf&:p 8'>щMm$&[3:)Ё"0'8IхQ3}\:U"-,@%(F3@^f"'C*E4A3ANxA=rIF@G8UJ.ѝԙ<:ҡ&UJ# ai4Y:-%:)V ^->vұ"U.Y|r E=U*We~ӣ_ߌCb1ڼb2},d#+R,f3rxlj U=zgղ%jks0l=.r[Š Zxb>$-r%.hޅC^`v!_~yƒ fGXfyƷs}^w&d=Xq +9BJ~n0V!`p7 h:/_LWH(0@D^c̸T@U\,\!%XBǚP581B5q݋ f@`D(B'bG \a F@ 1pL\'Vi_0OD  }Cf}, y"Kh2 ^,k^s&2z&eh @$35<!oo N=D_zF@I7&v=2/d.e 3QRsc[ܞvliZ9ki&w0~]LIxBo )n2)lv] k|6P\ 4`ol|;ϸqSR:]rq;8C}3(͸Fsm; ^L~/!=`susw2Es|8 z^ =i7I E镢?g"p;PS^PWZ8L0#8M&! N~{u?d ]@YYAQ^CqΕXbIiH\ Z 9U W4A@Ԁ "mZ)^%,㬗w)aѡYmAa_VA`}uVAẍ́ bš!:v؊9ŠEE%:MXؘU`$`,<lU 'rahUt8"_dYEa!}ک*f!9A#^#iVY7b5c"R^WLb'B"^<^"-{Xb@ʠ- `"#}AB@&(.B/N <+X_E:6ڙ d@}ecƤ_Y  ѤKz#}$Q[DXTRq}RfPQF@<ф>"BbC ʱG?e%X L`AlZ[Y"^ !u _FrĀeIB[a2ADIꚬe f}e&1cXrc)`i1`jf rڽ@ ^d~5A R$t"]'՘@"Z&mu\ X\tv$?u׌پa!ztzjd2(h((6>(FN(V^(f:n~h5u(((( PG()((((ŨJ(.)"6)F**&.*6>*FN*V^*fn*v~**j򩟦j*ª*ҪF⪮+@+&.+akFNL^kѴ (v~+@+kJX++˨뷮 ⫿ګ+ &&*,Ć+ lŒ HDl@FƊr,loUŮ, jl@ ¬zlʲϞ@ǒlBt"(ц`Ђ,&*Ղ~|@Lr+Zm6ق `-zֲ٪-ڲׂnN̶mۚmz+EέnF.-FR-ѦݖmR.2-ݖ^ݢf.-֮"n@.>.+m&/\-r+d`0ok"oP@h־b-BF瞮ֆ/@@Ĭ&L`/so6@"CpO2 Z.0`t0 gp ǰ 0 װ p 0 𻪬 /17?1GqG_1/w1o1111DZ1ױ111 q@;PK\={=PK9A OEBPS/img/dbr_replay_history.gif&-GIF87aڴd2ܞԬ2d2֜dvv꼌2t2ttttt2tdԌvԚtrttּtrd2trԜ2Ԭvܾtrtvdvtttrrtf44d\$Vltt͙μd캜l쌾tּԤܬrtԌvtT|Լrd2Όdv欌2d2dlldd2ddČԌv̖lnldάlnd2dnĔĬv2ԶdvԴndvvddvddlnndl䶌$$쌶lҜ,$$$LLD<<4ά̶dޤTTԬnlČvdĴn|zt<><ʤdf4fԺ4fڴĪdʴ4ڴ|ʤdlrL<>dfDLV,μdt||\ҹxWtJ̶X4/_ yK.6f{~ӫߛ[h{xtrV4e7=EZmgs]G0QބVhTX}e%qcFZr5o2Ok*5( dk%gJ!>o>[@)D~Ua[5[̘Rt;X 0!g_JObiVih&Pu1$udNw-2ovQɘd~|裐Fjf{xZ,X"\wqrcox*:j뭶Q(|`v*x]ojggYŷ_} &R?jfuߗeŜj%yjֵ`wbVZCApڔ\X 'K.fMaWlq 0NlU,hfL(rTP 0,4l8<@-DmH'L7PG-uXguMVo`dmhlp-wUc|߀.n'7G.Wngwu=5̔n騧~.^/޲y;<|Wognx9wϻ//:9?H7t |$ȸs#o|`Ax̣H(T"ۘEVQo)HАV#$F!񐘼$'iD (OǾ1pB"$-I):$'IZҍdFLҗyS(Ibz,)Fo\qJM҈%I3ܛ'IrKޘHfR+F-(K6̦@9yMBNCۡ>7r(߹Ijtk|#' мYt(MJмc?7oc /,W93H=F~szJԦ.c7:Go#S]6Xի:` +:m@Ts̪Up\GVk\47Uz\Kꎬcb:4Zͬf7YNְ h'1@HjWֺ`(j_Kͭno\iK <.:ЍtKZͮvz xKMzכ[mC.\tϾįa\mrM Ϳ̶30\6 :Kqd Ѹs1˦ds,7DF%3yiN~̀<5!KQF[֋iF0z+f1el&q<^|Yŝ g,c|dBmL !0w.1tYL6*Kʆ06jei:D{5m6j;ۀvnc`x^nCf&!lwOF/=fq,Yß9Fr>{Ғ~gs?!/Snq}eγn_F{]m|N;m[nn1t +=m9vյ}uv]6tk=_"2[ naTz ꜞzK>GqV}+~&g][m,᣼3+wp^Ů`,#G30؊D6g(3x3(4Vm?j0p֋4َkjlȏ5+3 g-iCJ6S9c ǰkj 6}#Dž=hn>ǃ8uwg&n7 )3뇕ӧndigekrMhhT}/exw'. 31^:n춀#n 9zoٖɑ:493> ~yWifixPifwGu$WiyVws~Utx1|]nWcfvǃtkg kչku{W Iw3))3a9r)uٜ 繙yhLV9zƗ8it Y{qvqDI`v͘'r|'_: ?~ق A~s9Zշg) 3qIǘgIx2Jxj3ɞum>9{FHڇBFmk2tY4T&f)fGtפE|jIݗxZlZGS@â:'E:zz} 槠}פuDz32K `2ɑ0Ȓʨ5Xgs;u{ir 4hzsy˷/Q 蛽٩z(3j&ʕUI6-x_ ɩ(3ܚDn V@xΊṪ4l 4Ji꫰:rƙ.箵*33pju FFHv_Ʉ ƭI𗃲q&xdc Iji-+v; s%'Bx]kI/S: {J'+ک8 4ibf ff&8xզi&9$dÊidHct)k iZ9暨$֨t)/$XfQ+IHkuv7Q+Ipvh:jA`Gm{iېKgp(xFCZ`&Q3R1ڳzpji wԛk[}(73nucs#Hs绢4s`I<5+jilh۵7W&*VJ l "<$\&|(*,.02<4\6|8:(ܿGs Bdz; D_z#ǣDse*y4\||$aE eMǕȾPtLTlNBL9lX;DPLL@LZc.0<fpʫgʱʧ7hp7kizS7Ȝ˴<d0@9ќBor0c 8q@QۼLy@7h zp},,,c@7hz7emZ{|́<|۬ |C7\8l@7VA AV8xz#L|c7|˰\z,8l}Lϼ˽}˳|zepӻph`lQ-8n0ܮ<R=TMVه }\e`}77lރh މ@؉Wm͗ b ]͊ 8mM>[m^•ml8IS`V@PIm8˸ y۾ ;-"`5{L jBN @ D8 ؜ݔs-M= Ns.}P>|- >=m7i-myp\qbdn?m؜7t.vx7 u >cB0%~M&9ʱ<BFm ӽԳ|#6.7F-Ж 9z݃P>9e7}MٓMj0ytϛ=0퀳> Y>t "-~߾|ާn͑qpn7w|.v}}#G~?K@ 0 TPE@Yͬ8N9/ɮ7}`ݝ~JJ-ա٧8}׬[/ w=e ^=, 7>ws@С ާbnikk>potPvQ7X??#N @ HP0AɌ˹.^Ԫh9ۼn˭7S.! W=qOv~OـO}__n&#gNC-T8FBPE+ӱȑnܱ;WdL3%tY&N:mΤSPEEZT@r TT @!H)isF"DpƀK̵۞cV[eެ ;n[7f&X0IhYOH4x4 Ȇġs0N e68(9t9;gYu#]fE0D{o柂A}ESzL.KwGG93cN%E>'gU5$Ц QH)$"K"P2 1D$pKĊpE78L/ b#o$Hr481"ư#s q{9|;&R,$7 s γɹ @|sȃds$NBHɒk$ΏK1p4>):5&C͈O=COȲO5L5P5Vx&@$@ʈ,.|`Åe RPސ"4PƊ6D Q,] Y"5Ǫ-IH#۫CIzЕͤ*+rDv+ H\32W4c/ر$=̏%ȸ!'f-ج#ҹU(eѳʓ 8c+J93Yd-_W0Z)ZmE !h"J !k߆{$; Sy:`Ɏ~ɸkγ+<#T;<45O5( ŕ'zԾ\$HlX"("7vgvo=wfE|/s?yu~|M&T::B:-y?S;!'|X/)H? Y? օ#]E4b["V< e8CUΉLP(!0b #&S"HF6N=bE9#>0VH` I4dC2-,ZiHpM2-hXVY-)r$0I.Iq;X쩁 |%A9ib\%ҁ-H9>`4b[l\5sD3- %ʦdn9(Ts%LQS nFA&#bIK? 0bbLtFkE+J-p-hD^4*"DJcrs1 羜5 1S"3^ž@C|/r Fz*:UEID^4BWGUr1.5bRᩮF>>鹞4OeXOUjE1uHP=,i8+} >eҤ] 1̾al"V%gywԸH9(9RB"! BM%tV{Sv0KlIEUhTYpcK-LhQ-C# K/,#΀]r7-:ic%^ {R["[»"U=O^ HDuQ}(b"U˲Ս G#l` DnH';K q:a-3G3iÄJ)F&d$_3QrgqntD=J GNK7,Q}{1/ҀG<+(1^o9ojhFv<"b1Rs3E#?agِ-(e7z;eZ/kCqDQm z.QYqE.sˑ7!GHO,P 2U-X:-%=eI=O@fَ};]avs=miLv{]LG[ww-nz>wtwm^wۨoxoKx/߫7ǵ$p7x%>qWx5qwyE>r'GyUr'd>s7Rps?zЅ>G?ёt7Nzԥ>SWǺұu6>vB7No:}^_{q{w>G| <|#?߽1woxWRe! }Lzf8= hXf|́{`|t?8X  7@J`\@d~/̥5W@V}k!?>þ>#3??{ ?9[= ȡ{ Ƚ9ԊxؽC?=p=3٫A%<@S?B.-P?0C? ÛC4CxC5ԁ ÛBӿ/$CD 0 152\D VTpEp$ܹ1A^SS@0Ml·KMDE(CS?|FK@>l?n9p9p hBA t0G?i9tGPj\kF{>poq,*n,>? N ?lԁ OF<t>`KNFOA3E\tdJϯĀHЇLt<%Hl&("$PId;ƽ5T?CDR}B> zNt01RKDu?@S5e S7]9S9P̛!<Ѳ cQWT޼=\QMQ^Z=>#Tӿw>Pb=V?\T # @N2G$ VER CC:L GP+e4WqվL>u?Ӆ[ A`F+Gֽ׽ZS݃VxOn]?c~ ۙ^m?I 4vDC>?#`5¸aF;i{ie.>#$!|UV\{UER|j}\UN«ɭ&DE-2}?uɂXa.WnKKö>VvN5k߭[YݤU^DF~AeB\[=lήΆhX5LZsnٔAcnVE݃nl 6<~BזdLlKwxG4R5C_MnļQ.I+nE}ko߄\wFgoAIr^s"=K4]q9pO7(g)O*Ǽ;T #O0FjCB7xp5pў;='-k'rk2r5ӽW$|߆Aݜ?WiLsArL Rnn\. #nFˍ<2Wi`^JOצӞuRUm Xv>;CYլwMѮlel~`wRctwOo'ݪv8^^:@wɓhol=3yDy&$[”OٖYA/y!U!nYWkuVqnb|⌟TfOzoN4z[Kzhv/iV{zYzzM{&v>{v _﷏z/mOG#7GWgwLJȗ|k5'7GWgwׇؗ٧ڷ;PK{+-&-PK9A OEBPS/img/dbr_capture_review.gif?BGIF87aXڴԚtttr֜rԜtrttttttttּrtԜtrr꼼ttrrtt̖dllnΌnĔlԴnlldldlldά̖dԴndlnn⬴dlnndl|zt<><Ժ4fʤdf4ڬf4fڴ4ڴd4ʴĪʤʬڬڬddԮ4Ƭtf4f4ft4tftԜ4t4ĜԜƬԼr켚t֜trtԚtԺt֜rlrL<>dfDLV,tfμd܌t||\ҼoS6mw>sư1ͻ+8%j9Eū"kxcc^WyO7T+x7澜5[uـ$ +U}}X_b~ 1Jy!TGօs{q)i$'4heP}KeZ>GWW[{@ ln h hj }w i&&f'[?vW]}!6 _JhxO9"2K X^|]XX].g`c9, Zw||o:$bcsiZWv 2Jm Jy cJIVe}{0Qi &ZfEV\ RX\dvr"bƕ^teb:؅tc  ,pe}Bgo) f%Kvִ|] )1nKǚĩ 9rqG%|W@'u[J2 qlik*.3 `P2` ~C, " ' M'"z^KxˆcfЀ.3`)`j 7xh7N^Ğpto͸kiZ2ih-~:j'\Z]p2bf͞j#P$.  {7qfm-#f&e_n^,7j0̮Jr}o?gI}ijuEZ]n#1Aښ^uT$" hCK[=42=8[ñ$p%x]YbsɟN8 sB@ byv HLB%:P"W"*ZX̢.z` H2hL6pH:x̣D) $P(B$$"H$'IJZ#1NfrF(G)I(LeT򕰌,gIZ@ +m^.}Ib+9*̢tƌ&1\H'_j LTTeV%]p8-iu/zc XDϵCX^eRah EX@%5ALϫ*eP+I0US"e*2IU2(gW2av%-\gU-1b9;>5 ,hV ,$ >>e1m9EiŪm:rVM'zш:fOKrvg^3UJӹ.9&s{<5(SUx &T!h3Ђqmd2H3ѭc7+T`H&<ޓ]I卓5U0YƆLqM[w%38޴,L1DO3kQU[)ﮃZt ˍ3V%FEjz ;N6Ԥ nk5W];:x\ eȤqqZ%֞wN|WR7ò?i-f h|?{j~ 4-HQkj5ÄYf [׺0RWNg bdxn_BP*Qݽ}!S<.|W>c{b|N.'>_d/|q}_Kg(-ihlhM3ג~~HuM 4q+em{=wX }T 0qK @Hr9AWq!HL#Xȁ4Ep8:<؃>0 6DX:(ENERvTQZPkt RUEb=D2WU$Љ0̨Y8`TVF;@Z7B:SDzHALڤGNRP:VzcX\JUڥ`j_dڤP,+*)rtuڦwy{:vx z*|J~:Zz :ڧjڨ*Zz:JjZz:JZzXګYZ`:ƚ͉ڬuɬZH֚r)U56/1O2 SVe%ŭN6ڇ ZQI{*(ʟ PTu ;=ٱAѰ*{ONNWNUQeƲe_2Zd y9H٩Y  %x) j `EO2Y"0#y:fx_S۲!_KxV zTdzvN5KֵmY X'ʹ0[xF p z*ٓY踳IN窑u$iu vi>hkN9 _oK%i˴+``kл{tO'K`ޚ(+)Ye `R컻˔_ ;yYo ef U+;N\tL+]կQֿ 8tk_l¦ U{~&++ZѾj ['˾ʾ5EL@ uZ@| i[j>[L? `L4 V+WR\ ^V.SYyk>ZxYz\>-ݸev)L01Dm<`e_UoUeIWZ#߹Y; ՝EP&^+:-0:mZd1UؐL}2M׹m ze(,[nN%舎8aRe>: &й;_M۹,) ˢ_Q.kXL;i?RU :9e`͐U>ޖ@knў.e@Ht-lPg̠l’e޴nY;9f㺞zea>i6f Ok}f tL}n 6N_Njル8M~UG~:k^O,CDn`Mξ,>ә +~.޳Qd]-myeJgnM[F фUcYș%4_ٻ&!|͌ .Of0zx OpupePx"^^f#Dw .Jܾ oZ?JWY .ۮip|o}ƅI󤏟_kz-?V:/ge9znZaB " PB >QD-^ĘQF=:H%MDRJ-]SL5mN=}TPERM>UTBVŚUV]~;jXe͞EVڱkݾW\śW^}Aj6L1D8 4,44` 3C #Lh 𷏾F(9*{X#HL3P'p+p'萾 B##ͲP?f;,n>Z~| @ Vld2" 3:,9; hK*0 T1qcS 11;9r8H.΁n%]Ȇ,H2SaTcP1BE h31P"QY?#0" px!W.ص׌5YD eEm(Vj=Ii WA=k26֬t4 ѼHtw. 3W{aBl3@(oVT s<`<΄WMHA7TdT6,3X&*N5\TjuDq`v”yQfL5iv'Zx!5 ΐ`VQ9Q9X<;6'fo26/#7 D^L<#P ȥ䜱M?;8ǼQMnfEW7taF˓?Fc* nXVZyuEWVtr]Vtce3snz_'2r56UL{Ue89r} Hw!CNKc#&5[^n>F90ܨ'?iτ 5J i^9XAu$$_ šӜRDANbr; og nE3A*E'Ey1B@4}%2=KHU8RT@ <@QNJN Cܰ1˛l>}\V8zIdb6v34'oϛ4Ӳ0XO+D*h%-gS)jI ̯XDLτ&ͩ8f^Mnvӛߔ69Nr4g:չNȡgd]9ս`l[Çkua-T w.,)V`Њws`[RE ѵխ ;f ?ͱ.F,6pݭCΣ:ifxtw ty헧,?"ԤPD?N v\]Sia_]YGâ<{[,=l{eW_Jr23 ;Es}J%}cO"tE+ˆzCpHZ2#5Ɋ41DH 8*ÙBL{o\ @u2@$':cp \ѿ 3L,(c+:q7PAe@Fc"s[0AAj;`lk7PuAaAD!6AK%=.*@(4!&k7Cz "̢Ӫ8갃 +J +A0{0;zX_ړU! _9Hd84Q<vѰKzE)Ē,"ǒ,A0M> ~9]ԛ0iBS ۹MDQCnĥk!E˪ߒ;qk! = ƣ!t 3LFeB0!j /q;${< v;1b.ĻYG+xe&yƻ!f[ES2<~\%sEIHӻ9>bC#̦cȎ1Dz!ڡpDk,uĵi>^|_H"-IL@FyD<>G4$ $K h@nlɵDK CZ?D$Ɓb?ptKZTά'|$x2MvBP4ϔִ$5ެ4D4  ^}bzHԽ.6@!N"N@|׬"#Ag#.C9r댱섋*BĈp+ )$ t:,AvQ;.| 64U5ß.S#@L { 6QKT%4PxMfVɷGjD =UT9;Ix'|cJQMClޓ-H:GǢےKƬtt^KRBP`̹ǐFG[D9=4ܷw/ʳZ+4UM&1 s'+%ILqz:G>}éI.Ж*/ASD}r7mԧٻ.JF'a/A>;QTTιdK< y3 %SA*8;Pr?4klsQN=bfU5 ,Oӊ*Ux5y z/}?~|٨O5U؆&u؈&؊=g،2؎BMؐ%YْEYp9ٔeYYٖx٘Y@=,Y5{ٝՃEZٜ-,?;Zm,8ڍڌڤ }ZA<͂m Zȃ,ٌ`[ ۾݈-[8D ZY8\-\݄%͂5\ĕ;Y]]\YE-] KڻU4\>8ۧܢ5N8]D]ڝ%^0^]mϥ[٣M^]>[E[[8_8u]E -_ƅ^H% ڭ`U`߅ݹZmu\НeڠM޲ܝ}_ mZ^-` ^n`YaAa=aFಭb aau^~a\ۣ,ܞ=`~Z/ݹEc c(^ㅘ)~Z#n]C?ٺ-ڠⲕ;&n]d ANd@c=FZ>^=]BvHRȕ\%eSb<^p%u]ESN姭Ƶ\Oݙb(cF;"dffXf@'jklmnopq&r6sFtVufvvwxyz{:hx~ 聖}&f F.&PJX B%8B5wF}U |A-BSqp1G[.cb2iBY37${}CCjú̍< jHz#DCD88?@e<8uUJa=Z]bd/a"atcݞ-t+wGxb0t/7õL;.Ff䦽%tŽao|sNnzGe7Iw`]Z7G=_nyOb_'xZ/7I6x=xS.ޢ5aG^Oz"u%~c dGbzeaEv'΃[烣̓?'Ap^^.ߩ%]L/'ᢝ`gDv'j$~`0^/?Naϝun8E@uU-m.}[e}0|Yxs7}Uvwև['~۷Y\E([}c?7e|;Y8Ȑ ˆ F\O e3 t $h`Á"4(C+bD33 ,}H~vh/n8ʗ3o.VWJWÙ9ix.E$r|!88ZЏR\{ibG9$9cAԘA%ZBGd?)(B!Tg!nDum:7"%x")t+"18#5x#/#=#A 9$5X$I*$M:sGB9%UZy%Y(%Vx%a9&ey&i&m&q9'uy'y'}'Zz(*h2(J:)9Zj)z):*z***Z)++kŕ*{,*,:,J;-Z{-j-z[:n~{. U{//_o<0k[0^J;0K ٰ[}*9~cǛؿ;~*d@u+3hB/m ,@8xHqȼAt"D@Qp~ӂ <>asin̂z K HjBۇC}FqЉt#!X*.X AAR;J"Qcg!JjR(Yp[$jhVҊJIJt3 @ {a*ܠ"\[.saƒz4wBN^3Ӭ5n~3,g5jV3=~3"*І>4E3ю~4#-ISҖ43Ms҈4C-QzФ>5iuW^~5c-YӺjk\ڵ]Ug>6e -mdG{dmsޞv=p"KJ~7-c{ƪ,|Y&nU2 pЂg,Xt`jp[/hpc</Gns Aopjxf,3jρ[it/8\7\.P:,A *W pk}X8_]`Aמ,J7.vLv9^-#1W,DKz>qXi_ۍg*8ޏz}8BU(FA\Nڿ_y z̅/TO|ȏ]Bzq{;3pث-߭u`_38y\j9Ar?!-Zbʩ^_ ]A@U=`!$f_ @ƭ@!_) v Z) D`]_- Z_a`. 4@ L Q!`   ^&ơ)^- aa5!ٹ b"f $]]Q*`v]_ 0a:6^)\a r\)!]ͅօ!a!@e#EQ t1%%b66V"6/  b!'`!q" 6"1==zmi_3c %="6B 9*$Cb@zݣE.zB梲ܣ* c88EFC&@&DΤq/$:$=b3 $O>dJ^;C#Cc(/4*e!]]eLΣ5V\\"= ?dX0_IRѡQJzKV>[Y\NQN!%\) ZZ$"Yffb"%Uv" x%X*_&ZᅫġZZVŽ>>a+&kl++U0F.lNA9TPv~5V ɖ`[ڈ.ƶƬGBI,,Xl-О,,Tm.-.*6rD -PlDZ0Oh@b@T(F֖m,\qm=Bmȕ-^*ڲ܂B|mVY@~ݭZmUT@nTHY,.^&nrPmrZ-Ҭ>V@@bEjp m, 팬nH6.f..m**Z/PخX,F/rppnd,>Ԏ B z-.@~- oRo.m/pSH.6boׂVhopEhpbp/Z0q/Zn3oTqXFpo&p\ҭܢ0m7 8pZ .1/0~-x.0'qn/C1rzBHL/B0.C1 _W.m" pXB1 ۭZ< @%vc12-6.)c2&G12S&-pfqp׆@Ǯ.1ڎp4m205q5s-2{3!'38o6/7-9WS/"+>2,_sB9/=O@)q/s1<8-hsꖅ$+*5K6O/_3HW,J-Et &O4;_J7.)#@2u9GDtDI'o=5R.˴SDS3TC5Zu=s UGTg3W WsE0w5F?q/AìZXo5R t_ssfYgDPWk`,5VO1d7(ue2ppE\ƳqF+'Fp|ZL3#3T߲k~6gOn/p[pSUK.uEnqWtDq]gRϯvv/I'D=&.6xwNvo6}wf7r|hsGE/.]#4 4QW05@opP2K:Www8~.Oj57r\oN42FC\gwڮ':u8$pb3rw~NppSf;x[/+y._m. Zo3M3C3o@I?8ڒ<4˴ t;6~O/2_x_: C.\xB`u't"xg349ꮴ>1&wwtҹ|47[8CVzC3ziGj-J7P@B;gN3=w7O>wtîC<{D$5mTsj'z+DW:6>zBdm(b1#61,2+nzc0*+&';q/Y:) <Ƌ{[ģ1Ϸ:+6Z .I/GK{i[ On?n笁,j{V2ͿwEѳү|X7?>GO>W_>go>w>臾>闾>ꧾ~@;PKU?_DB?BPK9A%OEBPS/img/spa_report_elapsed_time.gifGIF87a%Ԝtd244ttԚr֜tܞdv꼌2dtttrtr캜Ԝ2t22vttvttrd2d2ttԼּvԚ2֜ԌԌ2t2d4̜f442444644fd$&$d24̚LNLlnlfLJLDBDdfd<>KWۼm-ki묣gFQDM>T[E˹Kϋs^ҡ:z@Zq_xUVr",Bl4_ɡ\PFtwyYb^ކtїAXJNJйJN)բpSq`}}u^q5&WQB.oLFSxQ%Yl]$WƗMD&nUuYe6WQ} "!trcn}ݒlo u@1ƩcjFm6'nJgfxƊMb?OHX\i[NZ"ѢMw %^:Y~窋Fut+#ѪѤjªv+gVrXtYkV}AIW+d5fnUqoG('qGPd/"q)V&wB4l8<@-DmH2L74K?-TuXg{l`tudfh۲ tk&wx=zwL]-ONwx㐿x䔛=y}y期mx[yKyy8:LztHH-FXaDIT;GnGF>PgwއO槏gOYHG jBGP, Pz)^ xc`7A mB(F xc60 kh W:m2Cnv(;!RPw[0dhш&b΂KCPŘX\BA/~pO.ь,"x;"qI P!` oS10a]N@AmA)NOr$`!`ŦA A4„LOnr,ք2| \0`#MG &0)bL+A PZH&)]%6nz 8IqZAhC b$@;@z̧>~V8g)s%IyDPjҎarz i9+jQGb=JWpbJ[JӚRfhӞԜ)xӢ8NУ:զI5 Lq SҨ Ū(ղ4LZֶp\J׹^pBЅ21`=U Mb:d!{"O$_(ezua'KҚe'*`cg?Km%uͭnwܪvy+Jg[[v%MrkW\D-nmZsA2#nqͭv?(t$xK^Uv/"XC2_u&Myڐ n6%8'Qį e#1Zx6ɆWm)EXcߪ}%"R7vjK&›` E#op IlX'{PN)#QL/Y/HbQ}mU79nS6_ۗA hD/ q 5YnrA:dtQ#P: UO=5|<-YkO{ij ذ0`7eC:}K#mo;/6aMjخ {ٽ?̛2ek}wA sF);2|.9qN#O=vwyCޑ,8%r.x!>s&7yżڸ4X~ AMʁwI/i~ݜ ,A3ښg:HHl@ysUƐ  ۹n[yzAd,^ngWI`U#xXsx>zm^#Oֿ>o1-$x zzɹ;F'ۜ|.#Bx Xw]}>s$޼}t [>7tu}V3xdGjF|7~ x~ҦAQ`LN7wV(EKqg|?`W!FT[@_~؂lx$|$v9};ȃpFH@We߇j(؁jHf kq^xr)vwkY؃[hlfrl؆nprHQ{TN3隢IG1P9ef6`9"ћ5M?kBهY:1Yƶ43YVc9W#G)q'5/)2~؈lY2Y` *pY.qD  x a9ء ":h*Dx*P6,ڢ)a4J610!509*;=!$P#p'Kڤ5Z`sHQ[#GNAa;*@ P%nsX^{5`JEڣ3 J:2@ :P ; : ک: 4 !Rj<Ф'[j5Pѧ|^3 zZYJ=;zڪ يzfZʭz m::t&0zJZ5 bdJ\!&!T$k!,1[ "[!:j`*qS*"0Uz*POZnZ.0bJڲ!Z/ [KA:{ʵk;]벚zEj8 8Kzzʪ&(PpJa~-jk ˳%⊮p{C˹qhڹ5K0˳z[,+wڤ[aӱ/&Kw  C;ɻ:˳"k@ {{~8[p5msKh* *Z; Pᾞ  pa̫JZ̊QjqN [|K6%\2Yq`+Q2<4\07,L|;2C99B8pG,E'8`J£*"ѶCT̪IzTjLZ Mc9Ddz4Y=jʦu*ob_zD,{CJۣ~ ambJ몡ʪr*zjHkךe\W6dj-ˮ\a;z,:@Jjڮ DK ;tJ_c*rk3벑zܹKs ۳K̺JMˤOSHΨKlӇj:]*ӯ.8.KǛ|0ݼ<k]}ňH{ɞۄc pm#S;p팩}')]"?âO@0"2$_%3*,.0;PKc!PK9A#OEBPS/img/spa_run_trial_compare.gifi.GIF87a|\$VltrttrԜtlԼd֜ԜԚ캜t̘$$LbttĤҜ,$$$rttrLLD<<4tܼtޤTTtrttפtT|f4Ƭ4ff4f4tԮt4tfļĜtfĜftԮ4ft4ttf|~|LNLּ̗ԚڴԮƬƬĔd̖Όnddllִnl䶌ldlnĴlĴάr֜ΌlndΌndlĔĔndd̖dtԼt꼴lnԚtĔdn֜trtrt̶d4꼜¬Ժtּ̪tܜ¬ּ4Լ윎¬lrL<>dfDLV,лgtq|\dzݳsk"ڈ*F,Ek(һ_LBҔUwJ`q e.꯲bڨr $m^WDmJuwzvL2>jJr'`ۨ*y'o#j:ihƤAGmݫ(F,8v)])͋u/fkxZjڙBGlي騧gyU]]JLal](^~9Vk{_w/YaAjޗoV׋//)˯! HL:'H Z̠7z GHBү(L W(0 8aNj6!H"OFLX7$2Pb(*Z~訇.z` qE1hp6Q~؇#H:x̣v${ G?oL"{򑐜#?QFF򒃜!ٸNzh&G7؃&$*hM~򕰔*HUxG7f2[d0 2LzЁ<Ӗ#:!fFSfiLN*|Q<Lg <':鈁QHLy:3dg>vf8JP '>O;޳w9drЄ'?NFt,HGz83J/lq119YҖz7IӞEt;WZSեLzRzԦ(RSZ^BzS`cNӭ6_M)ZJDZ pkSLvuAuR]E թrMbxrF='a!KC2i/)نR,eҚ6'X4mwC&]-k]K0aG]et&-)}J*AG:*\B렉rA>7EvMKz xK^6)z^󢷸ۍi Arͯ~'L`W%!3F#L f~b 7{ E(NW)6KFC8αwQ٥q"HNra!J%6PqʉoMQKƆ37R͍],Yv|;lc^72n jB}shZ=?#z~ZI9}nr]Wݼ2CQt,\P%,Ü46?!r)rչ.M7 ` $WL( H0^P<>)@"wwz Ty`T?`JB/{'|Q_$~ '0K/7}JJ| A P謹}E,#M?OyGg4K;s89g61Gngmcil&'wĶoHGtT6զw$j]WGtFgHph8o  FjXGvwwpaqx6,qO>8zg}y|&}{@SzM}'${2{zzX7zwwEzGyW|7}qkz׆mk8y|'@yyG$wkM؇~R~(fs/7n[ls4e}&Usцoarpo?ǀhfkkAkfȋr*sxU& s8y>H ŧzzS`qK|8Wz)'ᨄy wPz+ SHYzᰆhz%vy{g|yէ)ztV% ؗv ~8gX gR聶8W>הcGGha v`*Xst^Ij~3qY)ji}~m)GG7`1*1z8 x(|)xŰ7z{Tx-P O}'W'9Sox78W{Y Ɉ/z* .9!{4i8{МyA闙 @hHYvtvv߆6AkUvgpk!y4L0h ss$guk zGvl>-xeIpw[1d@q)q#@7) xɝK宅PpII#{@{'yw8Vڄ Ij{U|(&YyW(&@7gyG}(|Y8`؈W{7uZw(HgٖkGo+&v8nkblsqۖʠFnJmp6mj* nlVp joBɂ螱xpnl 碑$_э&wצ% -1@ 7xAZЦjB`ˠ`}Ry\}Gy̐ꪅ~ʝQ+mHe {wp ٙ ~g}j}Ɉ˧';ZQ[:d4c>8H8*Iz٪:?tɦ򺚢gwX)p}uq,iB(b { G0) U- ~gx}PЮ76y}Lu{eK-9wؗ7+b;>I|8|0*y+xɜ #檎.ĩy9WRT[yx|w")UX~.!mSY {X]K ܫ׷G*[*x P<غ+ۣK'W y{n똊}׷(yXz' l}y '7I |⇝ ryP{ٛg~Z1,0+bD\F|Ha{dD0KPRZL,W׏?WS`zTMdb|huDeC^pm|Co,xǂFuG vD N&P>n9Zp^|.Nxm > >]Pq%k=z^~iəCwܠ9&Qf+)G}Yz,/9o; ۧM,/Z V̼aV WU}]/ o>GT/u{-ʪ舘eooۭNZ,@tĐVÊ/~\H"ǁKr(Gt2$Ʌt$ABԙTiACTTUN͐B ˆWǖ p6-Ygݒ]aqȪbT%Vݫ(BL,Ӡ  N t:|f3%J)hRQPmrՕOlapiZ&A96nKVqwv];^~p{Ş]v -- WOK;nBhMmXMRzP z/%#Bދo #$@CAJD*B$$MLq&-z%LbyX`1td\u:\2/E5dg`i[L*L )\L3ϩ</3.UMắvN0pʅ9M@*D1A.mP,C8`1IQ5jESޖ*[UEi4S͸H3-WH[SlP/ǜdi^JC?=tG'=EJG=u/?Tuוm3szM/Bw>&JN:@g6Z-8+`sÝTF3,761{~,Ki*vr T}٘-ĪvWtPck96p*+"&; VPv5%mЃEG;f+h)!BЅ/a e8C@P7!Qv9DB}4tԄD&p79bIъ/E.vы_"JigDcոceoc87wcG>jd 9HٱDd">$d$ɭL2f!INvғt$c9H݃Vӱ[\J=]K!jf09Pnq_<%b d%Q.+e6S)ɤ6)rg8řb#*ՅQ"*'*b-dO9?ڻVJ T'!.)iZC =e .dAJHRUy6+Q> N\ }Vʉq, _Qe$JL:fDjRb4*4 Up TJUN҈U!Z, KHYC2>@B=hWʠrs=j[V*=krDbM e&GYԺ&,JbC9RUZޱ 4S&2*$B .+p_\ 6QldE'QH%.'| #!з]:b"q]:$aj[;_7|Qtʌ0vy)qg^ ?8 |u/.rל$yU9QqĹЕtKrGziWW︘.t_{>vgG{վv:>w[IϗA)OxFT ppH>?unYvP#ţ XBdx$;?5{/˝XW}Y1" o뾵5I_#E',PϧEy#>&Sw]soV,f30p 0[:K>d[>波ڃ@ɛ >ejR( , -S ʪM3+r$N?RZ\AA3,a:d&r= 3*8g08[R-6 ޲-$.1c"@l3siCBRBcBcy X!QD`qK@K(DIx ،p¡9AR6ٍPEŪp*+@(T s(1+1/銱)5D1ّ7g|hiߚ0"(  DDĻA!D'(Gl +p` ylDxpv vt YրtQ <HY <H搊ɻEz3eT$0343P 5%;HCYCmrtk"7@8(}4HEʝq\% @y Ht,) HĀ PK~~DZ=\l|D@̯xK I$D̕=e52ZK5@ MK+65X9$Y5ټFM|M.ʔᵖ 1@s<7aĺ˯$bGNPΰG̶l G!Ȅ J, h N 3J ɺ \OЊ 9DMI(̔TI,Ť¾xx}S͍aP{4n3Q|-"3Q{p[QP6x{y+$4Sο h t98Qx˸tTR$˺(#Ț;1"hSt =p2 @P E(,Tk?ԥbR1IG3TD%ȓ`K=8!R¼RaMEGU DCRHF0"U55O 0H 黽;E^! dUTԂ HUTU婓T:aLP3QQUS/UpsT]B=lLU]U\K xUU^s` E*>-eE؄Ef%B=L%!R% ֣HGtZIP$RuGT,X8u/]يIW~W XTأE9b2yVOZ}Zk=#1PUY] Ѐ ɔڭTP ۏD߱EI۱5Wȃō(Lȕ\.ZZ؜(ĜM\X\hǽ%šʭ˭ 8Έ"*/8W]\aPߵ;;2p\X-$:-(˻pq"X%E]-M/_3Z__`s5@ V`d+v`L?}QR*+=zΈ%+=&{-!3br=9 =*VcFc0,db_h_Tl~*=rrĚʘGAE@C;?@P)?޷#G{;'3>@W2C(*>aHJEG<96> .$$,lل˲$,"!I,Q.A>@+ y1e@C+zAu gAw^gtf0/hn+tb]#<M!<[[f@C4KoIۭ=|c/20t*6D ֘S馄>784C>/юkØ)3XY  J8A[ pah hlNj./|ASs GT0i4kƌ')JY+c uFFfbF뉀FjramNeaC0>ENTRB`Fոx UN굦h3 w(;&. (~1ɔ9m& 9;həHJ3fj:3H^_S<rWLX }mjYnBcwlʵASF d .͘M5_tD טx~3 dWM f'Bq")M4BoI32HMٸX )|5j&qC|P=XxYd;3,1 Qu2e\C8vC(۷.~ .PF0QbQt,6pQ1X~6o3}cƎ֋M,zoq>}ctfM1bݱ mxHK)unt}4I&ҧ6$=tEQUgV'=duV' 6veÛuqrghm#>oB*vq:os"ar׸Wbw"sGy/bX5!1uw;xvGБwzgx̑856dUϹdNZy 392eT+gSe噂>éV~J8/yQFi*FpdLY;2{Ga,i3A̸mUftw?"îg{*U6pnggd ggBˊǬ%~*fWֿ9_oں+@^006cnێ~"g~mohަi2~6C}-@Cov'+zxVfɦbH15했k1.lin1'G"I(ɑ#JBРA&dQ(P"&LH$ rEMN̸qbŋ.#9ABy!$tlXԠOKRlP Rj*֬Zr+ذbǒ-k,ڴjײ5kȩӒzT PRܔꖧDp1y4qNM4,9$߇ 2 53XӪef`k9/[tΓ ):<^05J:v8t;ǓV:p 7:HA;X|#ğ1p(Ȳ&Q^-Ałj%FIq]w#sq|׊%0X{8Wb&{"){/tQM5&DU#TBTuwU#Z^vefU X'7'uy'Y'-IƉ }Y @%RP &&~.7&gME%i@jiEbf'r*jcj9Gn:f zj!<ȢM -TmP:Dݔe"l\iջlśռP|'wzz;0|0 +0 ;|{ZKZ' 1YոY9oQfovy( fnk2-{ 3b 0I+ݯ;4QK=5cP$%հ,'U0o7 QA%obi!쥙s=7sUZK;85]5[~9QgC5 pb׼sTvU-/e`f+3wf~A @ O<ё+w0RhT!^Юb&T.) ]b8?.ns :`77 @Xf.0qSxVK#ҳƝ^S _YU\ 45Qa1Duz~qi-KY$&xl#q\IRK7'B;&=p`a녻c BB a_^23!qqubG+QvBN~2d-|A&elN$$@(eS"5˩2pkA!2m c"D,PaΆ$ IQU:>]Jd(Sϔ2dLZ biitJU(1tr+6kYc57S,S ׼ Ԫ;j@֎^VP9G`)1bY;.4[̘p>7mp/YPZL-ok6wo7\BWj|'$8G8 RSL83%[6.`9SΕ~>Kz::Էs1=Bo+'JS,yþ[rM*zXfn;ECu7K#RnS eg>UP@|;CjP  -BOpӣj oxYօO#En1Y\3hdv>aV 9ǻ:(6 Wso\KW-ZM V_z嫡zhiZwVsrjRz,Fm?yAN }`"%wJT}`U$. 6> FN V^ f`>VֈNtuGne1Kj!q]ص| ~KmnFG~V|Ȗ҉ p 6E &`aٚa`^s @%:V񗘵ֈxU\XsWvȏj|pфF!nЗ}~6o-IE!ډ9jFOfaRq^u~T<8@*@\ApL}RAeXFo<" F)s֊qlW,>ˌ ""6oIf$cjpsTl-pc&b!ùb'bG`T<"<)"ኄd8cࢉ죚Jߙ Z!ӈęS݇SYE$S6&I5IU HCrG.I$Zݖh℩:\#=֣(">z!']ĩa|JbJ̚lˮeyެPE YZaB9W. GXzޤ,D$G1嫹%iԯP@^%YOJOZ<<#db)NfR6ԕfQxRb#b2fZ8&QΣdNT+n&[s`}WˠpML YPLhl\@VoVTg|I|w:BLwf8@XdΣjRhBe٧ס#yW EEDg꧑'v@!z*L Li,$O T+'MT(ՑpnUvrLĒ<ހ"A***%Fz@pϟ2Ҏg1\ N\)U0(tiiK~ MA@ɚiUP(u*ɠѠd@( 0k*n@> 鐮|^ڤ+m~ Pw@ jϮjUnJ)l `IZŻJ(3YX &D(>l^@&v"kT}bif+X4,T z,oZ@ͮϽmU̧lIH(>J(kp^g\'\mjQc""lL,Pc֭sWȬ)‹b-R^U'1Ь+vvǻM |T.2j涩."z\LkTr(:ڶm:܂R -krG׶ko~.> oZPf~ʤ̠*lv. m ؂.uˉF%o֣.5V6ӭ~5a,^.Gvn @ϸjTH\)E"xHpQn nDHp㠉pnB(ygψ°Z&np@G@/bqV]V \ahHU*%[:,&V(1;1@[&q "bܢ!`H2WǭUtH4S[(y>L,q6#-LIvQDbI`1Dl2,cB"qXnD'G(_U1  cE ;n|c,?scղ-@d6b*/C$jsa äEA3C^DvWt$ 8O媉%W?ZZz% 4C!VjcX3[Z¥ڟ}\oa f`R\E  [ ?<뻷qGs7 C\2zZտ+0@ @A&TaC!F8bE1fԸcG 99dI'QTeK/aƔ9fM7qyPCG&UiS!wF:jUWfZ@L=cK$j4aر0t\p R`ᮆNg)w S^PA%^3 爽Sx[bh܌Ĭ%KL /pD/z1@\36PAg8M*b3L$1Ѩ0ӝyMw`$$tA @s \N09 u`h7ͬ{b W8)$͂c-α'4\LRXsѧ4l8"cR8f,9;(cHZ(C=SPC[;O9Z%S0S!rMȓ@e6[cL^y|rs /-u b))Phɉ뵗әbywԗ;? з!# 8B7]-3!){}/-ly)˼YK:"ҝמYpm DcK@+}@%(ڢY_Ḅ[nl l]V{8:a+:zMi8ZعZS_%RolRr*:^ǒ6:*zzCƀM_zsy`['l Rj$1`{7kт2=9"2z:E,ۈ?'qL[ WJTe*lFst.0.=1Z{^ihMW܄A ifOV|~{ѻApJv(b) IFg.&L42/ #{;uS#t(suhNOlwv׸ +"/=!5@!,^">Ua>WF : a/@o ~$y+}9Q{>%`e~꩞?h!l^qD~/H^@ S埾9^/^~^0!>;淾 Ҿ l~ @y^]>>~))!^ }^  N^^C+]#.!c K@K>993"b 4=@@ q~ ?Ϳ" @ >@?%C" <0… :|1ĉ+Z1ƍ;z2ȑ$P2ʕ,[| 3̙4kڼ9$Ν<{ 4СDi4ҥL:} 5jQ Y5֭\z 6رd˚=6ڵlۺe+5ܹ=ҽ7޽|Uh >cČ;~ 9Œ+[9f7{ :蹝G>:jW~ ;l ;ݼ{ <ċ=;r׵ X~977+zU2,Q ew1U{rXJ3&|yjbzeOz*vuk}a6!-Hsv;d~}Ν"[/0˜J LYkǟ2 u&@6hA uPJiKgD@ ^@ݶNJx˜]$@g 0U7?1G^ڢM}:9 ;1ξy7;n.L?N4_ j0SX N9 p[qT7?KڇB۽o{SS`$)N]*r YCPO'ïXEeX#8S>dV A(&M$#t0d @|9"-vˈIq)i%2 H0Eرvy$> G8 Pҗ1RҒ& -ct+KĔ/rd*sl3}ShRwҬ5;ljs<&7 NWR3,'ͼit6\;)vs<|"? tR (AP4 m(OЈJR㜨E/y*` hti  ahH Ә>B~+`KW>QDe7Ѐt,`#BdޠXԬ͛ N"`ŐuCVߪŠn7APЀu rv;A-g\: aEe(W4`:%B hȮ|VVGHF/McXzm4/(`pmѝ`< WLCRҪ3!.K-x f@Zx+69,-X +`AY *w~[K.1Հx _/tX{Uй@|4R,I P@piA&88*&_0T $/G(H4%KyəLϦ@)!˲W/yaY3i^+79qoW;U޳˙? M/gl >AK7 LOTԞbZӤ&HiPԻOu4v#XX"R ê&ALֲ걡Tmb#&7Ah'۪v.mzNn6bfpm5-/B!ηUIo ư߭`"8NZ0E+OΔO@4~ iLOYGB/zanJoz^RzFyngZ:Qb/>ɞg}loscv=fvGlڃ;,랐=bo@xG/['Ћ~yx^Dzӟ2G~CB$W*ޓi=cDN{p2eej ޗ/?ɟ|3q>0 0]"jf5z}hX~|C~B08[[[V3RB$Gz X ({RD)vF8W'!d=3G`%~z}@(A A"XcBn&G:"+BӁgHW$hGIMF,h7= `f) 4@t<HC|bum#9!5'`r('1?s_5"A1'S*l&seJ6W6p$%$Gz(w8s"6"s[[W@e 燡'{xvAj3]yR]CʨEֈp 4py x1q!wyARbtb@z!(-sEHlE5T&jI ;~2Xe:'2q---d9AU-7*0gKfkjky$T8nNp%&b{(!Zb0xT 22-7b"m2m;/ 82n2[]չk |WU_VcUVgu{2U+?3 66p#76T+;,˳<a˼æmn)7IIW9uWyW}l4+&B6&kA> ;%4;lie9:;qsG '#JL![=&vVZd%r: B" YY5ZWA- 6ӆīr8Ï8mG|#[xȻnn'L83E/U\e&#I"ɔ,lna:0 EK";BߑU<<;ekǮlBoo`^x$\1Єصo^o(=L脢,=p̺rT>TG"H:dfDLV,tfμd䌒t||\Ҽ}]vه_s5][o-gV]נx_Vg` `fh _ju~Pr]JkE!Px4ŇM+]*F*]%gX$}e\f5߉#6օDh8"([dAWҹZHt]g5_X隘 ^g!Fx]nؚY֘~J\ffhv!fxޘwgh{aZnRxXb.>學O6mJE#WbvEaǒ}Y+iQ.4t-[,]U_e"&O5&j[`Vټ5-˛oJ;4[Ȇ^yjګiVsVB\)AKJڃ&R1m +hʥ<恸^tMA^'ꧏ1]GJ2G425fЛ<HglheKR,|pɋ orJndҟkyUy۠G:= o?q LxhR޸AS#`Vy+fq`mv`m` z,r8a.Bt>-+~-WX 8JhC+R{!贕IR\oYZ"E@ uPhrr:P*DԣIB=CPubm[Χf(i 4'-/!`#y-. wX98|Up|c Bd` S UBD6XtȽ},5:/_ِ}{T3QMV6MdZ6Di'n (gR5BPh4g@І:&JъZͨF7юz HGJҒ(MJWҖ0LgJӚ](DwӞ=:PJԢ^%FMR#58PTJժ:'MVzU.e` +TWԥֶp\Z@ &j^V`Ky`VhMb6CjX>֯[e7+WɦE@ђ6%(`kP̶hKZ x-R2 7pSZMZDPM{]b6KnwY{6%J+v`;ymlg @4n{r)Z׸8pJ`ЕerDn@\PTݕ~9N^A%~kA:bXh^0-_vtXd&yM6Y28A}Zy`@c md23ts[K̾dI-@io.B=2櫜h5ؼLeh1IWZ  2jG+Z-9p7X |<.@|m\ַ^I<`կufqp"P׶v,9Ҷ6o<t<2뎙ݼ;mnm涷w<vɵok7ZP@`6\qCK\ӱz;.k#a򇫼JfKn!2b;o B3\m[=#N:tE<"[*(%$wƖm+y:uQ+Fnߋ-ōn\m2kp3Knɰ{v-s qٮ6ѕo9Rq sfɗo2oRwWs8{JbH'{sWQC>$d{Q;h{.=vzqz/hs7}AAxir op<(rGj'jBw%s _N=_5sw` G1_Y[lh t,z-H{hEcu0zVg|~mdO%odS|l.goņtw^Fxpgqyyw`Gcp'd.фeeƊe17`fjU`EIzrVf h<_(vf&|{w2o$-xGvp|1(Wƅ`6qikjCXxExZjDŽ&gd~}ye~S`[`ap|)q\ {&Fnth2a߸{G*"b7g&1q ꈈoE6P)JKff]DN SYsUBDCAu_ Rt'[0hL[ɕuYINAr@:LZMzOQNZPjRTz\]^<ZfPdzjlp:JntZ 4vz1x~\ҧ:ZOy~Gq~! j:5's&HHdu\ wjŪf`\(GǕe +*VVP^v-qJz j_셭^wZ[ͺ~ ]ͥ[K櫒j5,qZ_ǯeůۨWꭹJ e [L 5q:)*x 0d &j 6G2wUw7qŴ:+r@(9RkJPˬ>4˪6qC۵#gH &P!) ׃i*8b;˵Fyױ쵳Dg+y`:`D@&();qwXĚA'G\63d~8jj7,Qj:˩ƫx[x{j[FiZkhȫKK_"+} +kqTzk^zvku[xErQK wqg?He۳-Ѩ%+{&̺w&p!y* !@w?F%q@wH`åp lR6Ļ#[TpgLq |A_#ZBi#̿INjR'`ċb;sTųj^| \GȺ5j. ʶ71x>xa\j{ܲU xHF\}|{~ĺ3̵<,v,r\Է$~G.l}⌶,Q~۶> ո:;j[f(5w@Xi쌶-Kv2`Dz%Z#WKZ"M<κjG |\~ wKih+[sl^!PxG{FJg ;^j*ϓk͵B~mZ\}&r4+7MlZLU'ˋͺˏؾ6[k=HjX̡ٛ͊+ږؚwh MJݿ@Ȧ <qO[_je e(j>6(̕*\׽´,Jr!ܡl*,}E_<Š7ʷ_׫[N|w-e|q١ϣɌ,lMHH[Lr p= ]j3JP; Թ *d7=ۭF µ0plGM$ALF>6>'sZ1 I^JemChjʾM弊?k*ǽc޾s(P~+\F[_rh^,Sϩ+yny~ܑ^>F4^)^7馞݌ ^{J붞tk ^Jƞ잞r̶]}}_Z!ܻ5[KHs:[v+ eqka>iʅ7ܷp~&׊jK~e\Fge!Kf iR(vhy72Z`y84Е\+颇+"pQ/-(6ъ,͉CTH 8(<5=3.K C$B@ W .ڕtdesb5VPm5OnW,ӬJ5@j4 %I먾4E u}먿q*ZU:u;2%0֑dX4hdeWV#9T[7fvfo9gwgg&hF:隂Vi:ji:kP;l&0;mfv;n离~]X˻pUkƪ攬=Mq7W.qΥf!IU0^uחٵ`LvJLwN8W5@U_]Jٟ>أ7] Uw@ ^Jm*c3߇z-<Ƴ,jj tǬ7Y_'?vʵ R'aꗢǀPE:g+I睳O+iah5 Ֆ%SЇ+eƸ*R;$EE=*$⑥08 n[{{SG%r13ML+̋wT[G>1lzc 9HDd"ofHE6ґ#!9IJVnhd&5Ie(+ɞ|_$WNZi|cn9\V攢&PH@Tt=HݠRD9P@󠲄dn?:f0ɓaYD3 sYr(؃/:2P "哉D8rP :A5z JetGa eEe3. q @+Fi\jIhF2Jsn5Y>H B&~ǁ&$vJIZ*#bo*O}QA 5QguHw"fO,|RvVNS**N55"NYT7ݔVCQkp;M(F2ڞUjR,oOF,~#P-JfG$+jbk/.ָiLUh_g-HuRZ4 Tz $"⽠SDTuIA]P{VM͖ V6ϝTY6+ᖆGiI2dh.܂%'Uhql;vRNYl1>xf]V͊O[ yU +oD$z+-\)nx?XUbi5Jᔙlxڼp346JNк MH$*^K&aD4k5 La7ϐK)M#\13$P0jqpbT=Q5XjZz&>ڬmW׿v!1lb;n6v=3d/TƮZ8r!Omu=+j7ۉJVˡdhQ[TQ,6t]*pd1I03;i%)dfnA[,F, ƃv@7L* $QfU'>G1((җ%,X wI]T5HsRiqPȯ/ LiU.D lU.Sxl[/kn5N1q@:f3r5EB`OǪ8hto\|x"^jBbn9c${c}/w;m58.z-yӏ]'Dh& }B:Ϩbi+Q&D!S`ȣ]^Xdk }sw2J|!*>YX"^Fn{}yoFQOU҉} J#5ђS:3Iێ(ٴ ))? ܉n;3(\:}!7[@~ > ቼ³ œ9y!D3*9C' %)L?)+T9+-t6-/,6/b}=P6 q=<5Q$%\.< %;+ !Z:?Ub0B|5 m:C " [2y828 nVb,aA34lzkkR ~YtE8G 1"S8BeDZƣ) {㋺ӗ!Ȫ'oG'2Ir=KAڌr kQ<9,%F1 &ʩRQIII;z9I<#bV0s豟Ñ*gr벴2ց$B xc:m  PI𸯪 *C PɈX%. [;$}tB0N˭k-f ûL=db՘Cj청4 T,3* 1; \@[)KI\ɒfIZЄAZˢK}ITk%r.JH" 9M@3)-szQɦ!¯[*—ԬN39I!5-ڲ '0ۀ \O (㔭̛,"I/3JQDIu>1SyMTD2̊)|*=s'[O#ۉM4 1LȒpm+z2ZE7cHeasϛE"Q4Hc@R*w91ZOA 7T<1E 0o u# (΅C?Qs :KSѺbA+TzTbIQ`LTP%PR$R5T$TUVM$V͵8CCLPzq8,0R E\_rsU>բ ]Dg֝jF0 'oR"}A%dբed3Bij͔ T9/tWc@GtUbWDž3qZ(BSr)& *H̐>/29Zl΃ )Kȩ+bzݞT>;;J(QM Y!ܑ.]H! cyֳƃ8xZv|iTMm٤ [,=ѹ9[*ܧ(QL# 0WLۡkYt[Z,QKD\0m\ O?ӡƃ+¿ݤ? ϝUG8#5-ڮeL!Q[p ӲK]II'&XH!~Y̌YZ--F;ARεޙXUK2=JItCp?"Ce[E 5E_]W{ `Nߧaܡ؀q aMa)`V">v!N!\E :}Qል )&bak}Y& s(ֻ *N#ޢ)^ /n oab3>4>Fe uDŽjCtj3)T7>Ep3z3DVdF, 0͆yt `Ta;<"9ͺ-. E)z׻Qdx@YED8XYϬd5P>b+]u{`jqN挳fy>K~*hAg^]h?gfz8^N)XTDtf tbioa^@@7 l-Ρޙi"1ks˴.vkAOoYkfϹlA&=lp1%Kd:t6VGA. .l9t ؀HN~0mӦX@&vvi.}g]ucX"φlnm~ <pà:8ѴA67t/5k5ܚ؝P o"eB$&v[6"{K#b<ڮڤu刢6Ejvq﵁om#gٳ[Ja%c-8?):𶈿fV-o<DAM 2 o\Ⱥ>* 0 fZVÿpެ ֛mgFtpAI|0sխ"g沈0"|f*٦ݨ>`lr@y/3 逊I߽2E] 5\3 I\7&ikw "ϡ/Et| @ĝ.`ޕ]ݗ]^ POf=tH dT"tAZFbi'jm''ho7mqRr7w/sWEJuwpwxizO{@/ '7GWgw}7DWgw'7;PKly,t,PK9A!OEBPS/img/dbr_capture_options.gifp GIF87a"ڴlrL<>dfDLV,μd䌒t||\ҹ<Ժ4fʤdf4ڬfڴ4ڴdĪʴʤddtrtr֜tfƬt44fԮļ4tf4f캜Ժtt4tԜR$$ܼtfļļ\$VlԼdlܤT|Μ$$ʔҜ,$LLD<<4ޤTTƬ֜rtfļƬftԜfļ4Ĝ4,"H*\ȰÇ#JHŋ3jȱǏ CIɓ(S˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJ*PVjʵׯ`ÊKٳhbM˶۷pʝKݻp׾\[8j#X. #;i=sIGs_: ӨS^ͺuW-%+kPÙJ̛ytq8Mܣ/wMسk qiߐ}BGc\[FKD;ϿKl6l-beXHmxL|-,ǰBEG[ZX[_e IBL"F:򑐌$'1̤&cMz %Z:)R*WV򕰌*yJY .w˗ fSL2f* 1IjsХ5Lh 8Xp< rRNttg:pfB H~b"j+1?B` B XLpPrwE)і;,PԤ&.)8a8I*nӟ@e&F瞠i:3]3WZ'N-KcV4+#Kҁ(iNJ8Xj2z&v]&VLsu-u2y*Bj/1L~*'!BZmց!@Z62mK ]M.0a=[eP:j `*QL&ѝ.w]&uDh*U4ֽ+XU56Vtfn/2+گu4LHtou^+@N8iK{ڱD5`{;b`&~?wY%/w^#I_|x&ĤF M6cY6O} ?^23q\`)u=i۠ 7ǨQMV&>hWgʅͲy- '~S_}cw}qȀM^뜯l5Diuςݔ}^i:hk:@ s 6Hqz3:Ag*ls rD 6웽X&co^{#nrNnҽw{\D/oL!ڨ6{?;^7 L&3S 1j4=%+PԀQe}8raW{TWVML Q^E؁qqM @  (#)7U%x6xm1:<؃>@;HBxH؃/(I@Hߴ8XVhM\؅^`aX@>hh\ASE+)zفPid v&k3%@0Puxyz5AP\;Yi\ z(lW% ɔ{yؗe!Ff ]ɘ w`bY8ϨψY` gg9ixbq'Z)I!9 &PGG[jf&4tRdٌ2A8pPDq(XL0\`y[29wc񜸖O(xZ :牛ejn&P zb :qDɜqi\bjJ.bjR4Zrqt1i>gqqPmDڢ@JjBNӤP:T)RZXQrZڥ^\b:dzhJflڦnrz0a/.-ীzڧڨꨈ *:Zک꩜J :Z*Jj:Zz*:ZʊJ˺s::ZؚIqڭ:5zj躮ߪ:r*zijbY;P*{Ij5 ;{){i ;c${Uh(|),N0;'4{u@Aa,M4_A8{ueR=6!3LAN%)<[NH۵7:<܂F#̓6;7R"Y%S_^[oI-:4 P <뷍A$ P.sc?=_%0¹{һ:-l 'yB0^1g,R~A+8a;8; -/;Kޛ ۿJQ8[-$)6AĢ'>2׺;\,.37 k3b, i=Ai ѻPk3{#³#7||3lk­0˜Q€*1Y*8/3,͋2 TTJnS8+@ Ų |;&B#YgPN$R+<$,l?L{&Ļ˹CA2+B $sA-<|<ʾYm *~ʤKɕB23M\"&̎5i 24nj8LlRԜYaQbM\M<\|HM9m5] 2 ]. FXhy3M AFat.PB]G:w;8Q˩52Q6>0CmV@#MK R==/]CApXӿeLqEp@-sїh\]}d-աSMֿԊtMԁ}rRb W]O]떘2.2!ΎvNN$..~nh>4[ISJ)o:`/hB9f`rƛ`f"ϊ(fو1_^Mu1u8`TG9cun5=U ma6&u(`PGoVϊb?]2%gD^9oX?>iOTOr?gGOn٣a^%af|&Ϟi_K?p\g ^eOeϕ.!nk?_ohtߩӤRэ96kvkOookΎge?}.&.f yfΓ .^MfG%L(2#B .LqF+Ȑ~hƎv@Q cÌB*H0"EA^. `4X\9̜ Q!OL^i#Ї9zuQ}iDQZ:yU-ٱk,> g[87侔Iz|BtَI[29ɢt+DqӮK"^Kfދ8n޽}λbp߈m4C%7lw3Ey_؟/]7xz)?5_ۿAC8M9=Mo9:3? J5BSN\2 P@Rh? \.r < ͛E8*Dt/=yd:%"}QAp; SJRE|̰J>ˏ/m#|pB[n$.O=m8> §dQjEcJMT!Hka?;,:l$EL!|t<UeUQJ\=ZU%D,!X}tT ^RN+^i#La[ҴL rB_UT-Raw;nqZa=M5ve^#fT}y~%^Jx S[zAŘTlZ]3Vcqf#5Xڑ/^[@1EOϩ7fH0 lĈ] +mR{l&fJLNjOKUleI6&2 7!/{䊌鱠ֶm.;2cSpn&+`mM%IWvXl^m64d=o^sx;4}sn߾s 3k[F?s; 4N1'Ôި6A j`5XlЃ`A8BЄ'QB/ aG5qސ?̓8D"84bx%%PTh)YD5qj:b#E-]cCD1e` *!jј',юwcG>яdHBҐDd"HF6%td$%9IJVҒ$!! F7JM7"C?@4J>)3IC re$7iC2Ж|/'(L[X덫_.ll!4OJe6]$f7+LQ3T IMInf(ܧ|INW\DUIט9'K |"Bw[G- ͵M. A.tfkECbQҳʥLUg⮨WL,*ǧmEq&)44mK0)9XЉᨹi*h6gMV%oiM'WӰ-c?IoEjRTc),V{l*WR)EYqd@E"ه`gQZNug2} kaȒV5moC1!#W;CB .fʹY [х-@cˮֲ*y5j;#bBcVq/"χQ ! j XFa{ ^$Áin#wY- u2ײ;19<,f bo|f0o)x&pՌCFN /H @Q[ n ;3nB~K8Й,_1m1ֿ01CRv*q)qIT U:5]ImeW1nc\׋xKJ%G:\hrhF3YȌkvMf)-K Yxp\'} YV0 H϶포p*_OordVza\&gĤ8<uzHˮ߅fiTv `KyŒX򚉝Jڕ^m*Zym=L8y+cEd;{? X:Id1r^Q/H3 f՝^sl}:Fk*[2Os/jmw^'6T?=zMw w\JEn`I٢="~_7@UOz>Gpߎ`fCqm/ |6^KGDG>eRyF|տ)(~tf4~?^6%Z)#*@=T;<<+'!@; & ܿ"b@r@  $DT"dD9 Bt!4#D$T"T&t'(*+,)-.b/1$C' 2D4T<5t7l8:5;=[>@DDC6lІl6FtG6mqhlmHN:m(qhgppȆM Nr,OEA C6R4ET\em`DRz@~U"æeZj0Ćo( wPg`flP:gd<'Cf%jhkRGk1 l Ehyxu0fhmُjK(:H+(0B*Aȟȩ"k)Z{;=i*e(rɷHj9)l:{' CmhStwg8fhfY# V ,5,rwRb9|[ݢ9"ؙ"˶e阶$˟K$Gl@EuXg`th Hkqy213̮+ s /L dL#M132豿k DgXg0s@t\ GZ3$ a56ݙ5݃(l뷄 *5XKK5!6a1 a WTΓ ϋsܤO EmeGorѸtNT 1;Q"7%2!*s;8 E 82$ lLo`EbԸL9;:#>F)ѫ3.4JC;~+iܑSƣӑ?Sjɼ-,CLEtBxl@tNeCMANR?BQ-!U5V6TuX(Y[Z]O_-`%b}a5dUVCeugfi\jlknCTDTar5W?o qL|sxM,PQ$i^Tw 8Gz]"gXyEX{S`$WĈUXYP`rcUUʤłMؐ%zl^MG &yY~!gY猎gU`G~fi#6iV餆!g\0}i8nidh{gkkx}~{>6j{FzbȅXxjYG귖>i[i{6VvjjjggY0{hg&Fm`nmiݰ؞mۮhFhf ~k.Vlިm۶&hg&hY(x}~kfnoi~knjf&>Ao& }~8ލ l66niFi.XqFFfm mm8oq 6\_jfp+$>qWqqVF.qhq2n\FV6g&nH7̎jNos$1F~f~ 3Na`PF?nhvj 6?_mfq1VЮ0eg7W.nhuptYt nNvyq] ^u:`v?Vhpj? v:p]sz/s5G'owVk|kn2vx t%kt_?Wgw'7GWgw'yW {'{mbiꪈHX5%ޡnG*9,x4'W2%T4{/dp*|߈.JBIY{{t2!w=ߎʿ r*\|+*+{YKXGaßs=9&(}Xul"!x ~"r&gҗ {ܷ'g~`iE7Mg)g,()x A!""dj;}m!/~܇.}~@6` „  $!D F''.aRa " )2h$D%:ThA`.(2K=dȉe02eAԨ2ÔSKE Ьa*!2خ2:2Am2TJФӢN:ujXkݑ "8ʗ]\W3ك|ze+PGD8ai2p@.ݺ)[6:PXέ7L)kD?.ˡ+[k_eɈ|]ni@uQxu݀jX|յ?BTRm&U-]vmzEgtP{Ӄ Wj{5xՑ5jz yЄ?SORH|1vblp->hT0DBQ'PN4$&Ta QC[@x %Od_HPZIo_:w&BVS.ih|ۙwb@7وnKɸ2m bL2gINN#ͬ5KNq!h|eMGr2~'wϗ$a6+j-h$9tv =VOq]BIK쁓%(Ix#7%\.KȡQlHC&s 9; JҜ-yB8nnW)MWpjK{ħ1|s\4cE˥9T1J(D/&(;.L^U۬E&s?_MxnTY#]WP3+WʛWU^; *d._Ǟzڗ[3k^͓X[{KTt}PPp%]S]UNi{Ϩٌ܎% e$\R_QyT1nsMт,_O"TM`)\4D:ďpH!.MLe@< # EOBB-b'<S T)ȇAXYRڃs$l . YXb .|0dVMኒ\^Π!1O#( o>.r&H^8=$r[/](h5:rB( .ǁ4Cɓ(~5c}Kʺ5skF׾5-ad]'{q3-inf\g{ކqW$>7p V7}픺[97j|Û ]38#.SV3s8C.dr&?9S򕳼Ǹc.Ӽ69a>9Ѓ>l F?:ғ}N:ԣ.;T:ֳO\:.d?;Ӯl;. t;}~; ?<_nW'/S^!K#р3e$?=S/_kR}orw'UY_Ї YBh^3p_3^1&-؎HH^=[ ޙTq`J "&D2x3h>C34OęjQ^8C0dlZl2,R,-m>Ơ6+Bm¬6.L2mr#lzLz,Ȇ6l-m1*.^."Bþ"ʢn+0˾B&lݾʮAnϺN.p߶"-/l^o0̆l[wlV0:./0,O ﰦ.ƪlsl .V/7,(no# /0ْ/AB-wkETV̚现jq:0̚.°*0p S1No #Bqf.2 ގ0Vq,㾱ǖ$װ'[h~(p()o)*km*+l ,2-ײ-2..2//20031132'2/3373?34G4O35W5_36g36+wr7s89ւ:ǠmlIca &D`1*ͩ> 'ڤ 9=O}cv\]?t.4$]ۉ*AtݽȟG4 E_дBj@˚[3KGG *PVM&LפE0jCOtD[O5EoJS4%u M4|tw)[ :  T__J\Q_X#L4I S4IlѴ5uXOD[[ZZNJ ^_ޫ 2!Uj]`i ĖI}lx䅍dCaE(sh6tR ph%@c!ae6hS6!֓!n'dFUp,Y,Tfo;wHa}Xam~;YvD7YF0Zag u6IPl/!6pMe+&|6iw}zp8Sw,l?c6Ew~G"rxlֻ(44l׍. Dɉ5K4*&RbVݜKy @3M+ # ֫ _#D&6KcIp]=L08OL6w{c `8HrEG9FhJ] 6J9'2,<zb đ zr]<:SszoK]K_FEL:"YFbĀ3BHdVF$!>@e>@}@ģDp$J&fOd9)J*oҧ 5[HIgδ=\dCFBCt7>tIjh$ϻ$d ;|D{\Je 5h3"݀huVsKZe|[ Ĕ&k%R&\Qw[͹;5 NvXY&=NSƉuGj6MQ6[P:QyygȽu7ZbY'!=(JQ{d`~ا`ܻ=wь}[=x 1ȏץU=S{%;=|C=dt/-lڰoE=~A!{Z8qDkњ޳\ 62n0K.*`ι3l,R .$;k/ K1ND0 AԎW1{أ;0HE*E7֪Red{Jr)dз8/4&$1 T^`4:V F#2)ʂ#|Kj/KkThlԩDR05 +[TYG>GcQ.0]O]TRCmXH&J)ZUM4O]E$1%vъ,5X+@qV$PhIcM\vi ]U pqUuzGՈ6- ޽.vLW=u5~nVwETGMx*_g[mK6vnI4QAUddžmAMZ.hil&F:Ɉzs!.*,WcѤ*<5ViZZvlUJcrvnxϛ7}o}epwpc w!GνlAr%QrmO\w+Uss;ۃp/$ HЁ^ jgtC:ΰ5:ա}]k jhձ\\^ͦnKկ~-?w{"]vHh:h /cg`_pH8G^uQo=r~Z]VxFftw,\XAS|SoPX Pq h cc"T=O %^c7W|.bX` f^T 5͒^@/ o~LpYGH Ran$ B>ϲ_B»˩V!`@ p^`mptV.)7J@$ :IRQ:F:YVa:۰hmq:uzy}:z:zzԵY:z:zZu`ɺ:zٺ:z麮::Ya{ ;{{U%-1;:5[X͕A{IME;)Y]53a[[eq;uo۲W{;;{۲i{{mۯU渝U%X;;*7-Z)!I{;]{<5ѕ绾;4ZܾG<%\!\{1<õ+aě5|I|YE\\/U|ųg[սXe@\%[⻛5>E˕sQ[aU[q}~YMZ~YyE~u>5靛꥞᱾X)Kɜ< ~답Л[ՅU˭X^~X<HAZe>=\^][Ga~@Y-i?#/3?Zk]z|?Y_Yȝz~%?q߿io>}<߱.o=}?R|1ӣGD4I%D*Z1ƍ-RPaL JH#K.\)r"Ǚ4kڼ3Ν<{ 4PERp)Px 5ԩTRe@$ɋ/!2lU؃0V$È.G=dI]7޽|Y­]8zÂ1MKEhfWs%usݷ&a7^ٴk۾{oQ($$VhkRK;ԪDv>$ FVB msBJYd[~HqT^EmXkZrX{2vJo!ato j߽Y[hڋ*okG Tҵbbo&G ;,&}"IA.{nQ]jz2Yf(f4JDjaΑrRpm# [0xM3E .qvtgCOqcbstXrk34S n)r/ݩV|ON9U_w=@I^ENz!avW8䕂nz:FI__b!n;Y!})otY5|K}M"Wy_O=_S?t4 p,*p lJpG jp?p$DEYEh _p4 op< qDᕊ$␅Jl(JqT QX.H 0qd,ψ4qll8qt<#.1|@ r,!H72dęHJr%KQ$'? Prk$2 WXr-o\r/ ` s,1ˬl3mgJsԬ5ljS~LX0Ufy%9ωtsl;͵nҜTIO{s?I)|Q,A o!d#OJtEu&QFa$ A:x N!]G_ ӘTc*6RL Ԡ :5 Oz5 L $UU=AN.m|;մu'T/Nj:RPl_ 91\+*Jtmc"XM.vI`S{UK Ђ6aW :VPdb )>AlPLBn"[bu Lh `.\4o <-u+ݧ` NrNWu ܘV^f7wxꖸEzzW]mk];Nw擷٥)%^ؠ enz`4Pk`v3lkOWS!Ra84@ <`,1 S$ ݂ߖzW; OAq GEh`Գ]fKb *Û}L9sT?xBwg\u6uLh6 4qx 9PPA!næO1UrXxf(w1r|y65 gfm*a6':|ۃ)s+E+fnݔ[A My3ݦ1&/LmP{wekTSvwml n ,! 1w1x[ i;ؖI j|E>^Pmi;nV, $9dMOavm~{LΘPWadNj}ג3s1<n yG]`ܲ> w7aؽ~~@7P)ʃ@j@{~ak8E{w^g)qQyIl@C80n&_;.OR/`ΓZR^6]Fwӯ Gdj7ޥjI߷מA׽OWϯ\gzxvVo%Ap~\8| jaq'|vΧctFy%i%iFj|}q#E02{epeeG}g`zw~QQX0d[|>kʷ/_ڕyg' 8g}]qVFQGu`Z݇fP'GN\hho3pn|7,fmpHw"M]NPѥy奅Xҡw1vp%Y(zrp]\h$_E4]vEqqptP+j8-$F@|in ;8&b (؉P@s"%0P-zieEPVuDOցc~뇌hGۦcxr~^r~FRQ~ ){`X{HgeEzckől F~ s|В_djy,0* 6EVrhFgmy#X(RHpFh}F`G[`O'QOac)uQu6~g{ge(\|GvHn!){1|X[pyjǗG}W]Eądkn0wr oIy{J\ց0b989F0 1E3>t9Y^=yimԗ}mo qIДR'Veш[~ȕXEa}yԎ[dE` G]fpxz5vv5r춞ĩyvz>f\˶bY=xzZ^yl{i\z_ԋq:)-xx.j"E'jAo.gHIYӑHpWMʧ<ͷx~Yo餀e d9uUZJuU9 XSzz^'xHjh+XHrzipi?\JN;ڣ;COJȝ餥@vZS?tqȊHM18)83:|:O R.𜅊tevZuhVKza{ftjJAJN9P<`DZ%*`vԬ/.ʮ'R.:ڕ`HFګ;~XHJVjHV X+H [M +K KIdM !+لGgfIJ-/[I^0G2K79bdİ[A+C{=;IFKcI˴M봘dTECUkWY{RB_Z^{Qbdd gWf P?h~5okBUJE\?^;+K K+MR +kLKN4V;¶RwAROە˃:}([P JS۹c{YQ %R$eR(RK*tS9ŷ} ػKuYTKTQ5U{KtѺ(P5V =5+trV%WtQW% k`Q]{SX5_k_Pf Q<{ZZhv. [}#z[&`iԀjs=*ڕp؈4 ŕ^zQ|Y|_s:sQvp dg\wlUU*ӏ`8}$u{qɞaWv%})v7Լ֛tgpxmQ}xKcg[՘rqm2y2 ziqrɺeE{w{/{MGR|}|ɷ|JFmx}?Ղ_460.ƌfx8}| )x+mt_o hYH'F(G= Ha='wX,cXz rm&9qmΒ)Mq~ݼv-2Vk쵝g`\恖wvԾC<89m6\LY8ͩ݌]ONؐ.N1>[YSeXXLn)yl)zݤO.&g[ϲi#b=j7%voW_7-bw-}Y)R>ObYh,cN0].9XٻZܖ}G]Ih~)/*O>~R=Bo_ϖLmϬݗVa}bGǸ׵] ۮr ڜC o-}.׾~^>k&LG*bYmݞv({i6:lIavi=7osf K-HOlIޤ[/q1j _)|~JBz 19nO3.P!^3MKV]O/R`j H͖cDn˶*>y?e.a$3U0Jn,==L)N̓e̪?U:Q/nVSʮ 0p"`C%NXE5nG!EPEXdٲeHܨ!M9uOMhъCo"eSQu0̦6WlWaŎ%[Yiծe[qMXUֹy_&\p]*].^ Sӓv%O\2ȕ3_gСEghԩUYkEcϦ];5lW! o'^qɕ/gsѥO^uٵowŏon)yկg{ϧ_>p@ 4@T0@tA#pB +A-CCqDK4DSTDEcqFkF2$O@!<'p`6LH8dDG<@+RL3A}FeR SSMS?VYTi]RWcuuEaS`vXb촳WXo]UVsuQgUZkCVZuԃw\r5wcyEŕ[xMlWh_hQ \x`Kwu۽wexڇ΅߬Vb~܂;c1=X'4PMMbGSV9X}!w yg{XλЙw-uޖ⚓i/ ~joq%5h^[c&b7j#@kI"o1 &pW<ʠ|r!x`q3kiN|tI\6W}u3}vkvs}w{v h}x~wy裗~z꫷z/xLE~|7EmS}w}\~P$` x@&P d`@FP`-xA fЂ;PKNUppPK9AOEBPS/img/rule_param_4.gifV6GIF87aQ111s{19Bck{甜省sBB9Jssss9sBsJJB9{{{)k){ZJRRsB1scJ{Z1RΜc{RJk9ZZBsc!{s9k!!skZRkBs9ZZ!cs֔9!sεBZJ{kƜkƜcsZ{ksc֭sޥccJs{BJZ9c!)1Bc,QH*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ2JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ],pʝKݻx˷߿ }+È+^̸ǐ#%,˘3k̹X)GU$iA^ͺװc˾*4۩N;k奔g NȓU?سk>yiw/9۶}sOc{^6{~[߂ 6]xzʇaVsa$h(Q]Hz^Hކ) ̓*48D@ӟ+EBWY* ŦgNyJvT=]"PYZԗ:)*JC<chQ*"I &ԑ򲤌pNϺnTP=%Ugʤi=)IYT|浗_URYqpeej_;ge,/:4jMkdKUu,e:JVUJ E2־D] -D<=-h3Rl,aK\N%m\SKW x^D׼@oz{W}oy—uo{L_WEp+ | \_[oLaVtU[+Va[֦x(M A1{L`/dA}wWG'LWOn?eZ.se~2Jr53lśg9 poc2~k H85nDs xwqO2Ͽ2~PF8Al4y}~!Xx(TBTAtx5.0.X"v2xзA|@XB88x"@agL}|<5VxXZ\؅^`b8dXfxhjk"DyrlXvxx؅R8A8Xx؈8Xh:O؉8Xx6~8,WX]኶W؋ċdDAh((Ϙ8(Hظ*8M8툎hȎWQKQEYH!ZAJ툐L؏p"ؐh9IXy[8*i/0蘎;y>ȓŘ=9:I& ?)VBP <ٕH DiSIEcbٔijyldɔLaYCٔwx)Rٗ]yQ9oxYFy?9ըI|9AyY N闁57ɖGyy3 ɚ[GahYXIY鑴 8ƙ֩I)q ع39ٝ 9晛)Iyiԙi)ٜ@ٚ _ TINIPijٖO *yZ[ɡi)0ڢ(3j1٣ny쉟.JڡRrDZ񩞽9쉓ۉyZʣ !:bʜ)sڥ虠9lz=ɢxʤF:ɧe8YiJi9t a џyɦB+ʤwJT꜒yڠ:Ik:: ڪ驕TڡjzZJAJ1تW @^ٝUia飜yIg鮂Y)zz92ڮ5hRI:J뺤ڞqpE:JBN%;')*{e,۲A4{6c8-<&@;#D{cH LP;"T{#X;c\EA`{wah.vᶠAp{!DaxǡCp{\\B1* k5s8\P}!0[, 0E[S}Aw xta` z1@1"IYq!B!{b-Rr0 Xuv%¼̻aYa"0֋˽fAkmUPXn opjR!{KkKA"ЫBQ<2l<+{9UAf +UP{h0i0Q0 #M,"l^U!¤\)LB$)I@Ȋ||6B:]NcJqѾ|KPILߛ:<00@Llţ+DH-B@@M]̂+ 1 3@W}6)3paa=c #0؄]pj֖$P&'*+~OAԬH!m̌-|=BHkQ Pƽٸ Эݶ]ݵsܒ2ы=]}=]}>^~ P~ ">$P(*,.~0>4^6~6.8<>@).AB~H:LNKR>TQ^XZ@Nxb>W>f~+^hljpr^4`>xo|{^lN#n>uNF莾x㗎蓞ᕾ~~鞎a~i^㻎n~n~~®^w^퐮n.ˎڎ͎Ԏ.^;N.NO> nN~N_O.#.Ѿl02oO8>7N5=/.G>5ToA\&%o(y<brfV߃`~?_/?_o_O?_o_?/oo{?ԿOooo/_@,(`ƒ"\h„ (bE=~RH%9JRJ-]SL5mKTPEqbōC6TU^V]~Xe͞E"ʛmݾ7Ν+{RtVީb1~*FyFLobƍ'\XdʕYftyZ@ 4hѡ>}uiЭ][lڵmƝ[ Y.ݐ׬\n͝?]woխ_Ǟ]{s۽^x1sF^=Lv+T }ߏO~}0@$@D= ӏ{A"p/0C 7@ >1DG$DOD1EWdE_1FgFo1Gwq~RT` ϾI'kI \2?$3L1Ǭ D3M5dM7߄3N9!S*2 壯41J P%QGURI5$tRK RMtSOOͬT +JvKkr>je2[sL(UIvm]x9w^Jŷ-hzXƔ06x@a&h)b/8c7c?9dGXOF9eWfe96egx !cu^gFfmbffU^iA~狙8kt;l&lF;mfm%p;n离nl; 7\n\n <7s?_pZ눡=uWs_=v]=ri}np)7=y?>}xo~tUBz'x'r˗<ܡ}u\Iwo+gنsqmo{`Aw>6Ё{`8?B0bk^mѩ~&ƕ΀B eІ AOz wC=Dg`^5hMWbE.vы_c8F20cոF6эoG:"h=N`vdAyH5ѐ"9Crd%HIN5tҔD%JVҕu\+)K^ X,HBDtd.uHZfyG_Lf+LQff6(Lmvӛ79NqN\9 Hu<)Nzg=O6j?P )'h-ԡQC%N.[0ћl5GgRZ=BiJURԥ/iLe:SԦ7iNu4N@P:TըGEjRT6թOjT:UVժWjVUvի_kX:VլgEY}j'yio]:W8ɕo]ےWڄ}_+= 5lF XƺeUc!B,c3;ٚ g?+jڻV+,ڤ*\6,pS[mlk2 /se%ҭpKٷĺ-K=7%C˒oz򢗻n| ^=@<,ͥ v$];v?agEus) 1 gؼ]h?<[p+ζ5U*QP,-m[Y$>/۫ 9L^q%7X=-CL'ø3oY{9A.]$9mrsezqJ`]*HVpg?DЇ2 M69ˢtt,ஙo420t,9Po=* >s;]hA̷3(!n2s|Ptnoj^7`_˷2%Z/6vKb{x@vg]k^O{UlyjBv!5I~ӨhF8p+|xoX,Q@`zwн>}oD8rzN:=u\z6]mM=7b앆+ޱR>>קSێ{~~w+7r֮Mx'ZNxf1ay:q^$z]?=]I]^MԴ}u{~?|^O=?W7m>C [/Ѳ7E@׿雾Nsӯ'/:@0K˻L{3[@%[s#030+9,L@9&An928cA/s69?ɳȱ< dArAA BBC4f%㵽BR45+4( C2B"y;SBô3Rk)49Kg;3#3!6|L2$2A5 <| W1&l·9o<)É$:@89#C9L\Ã,&Dx(L>ľNdSy9_5cC |W45D`dXtD[K9΂EYS1.\as“DbLEd- RmTil EkC\6LMD,sD4CEӱ*Rk6@p|(Bv=Naa bU="%.; :b@N?~a=ME:0FTI\e\u&aQLn_U]m%IP]^ՅfF]7^a[ Rf4og`qrvt^YqNgwnbudrs&gvyg̕g_:9nN5FVfvhbg+ޞFŪ蛰萶XɚT~ACF‹izmiti<׀8iig@,Weы-NBW,WkhL~?jo I 76|'q}FQiqypyqxqVGQ$mr؉)t=%g)rrr~>%]]jVs4deme0nUfdNڕ]Εgf \fj.s!\^O֠6a'sH>e6fdVNPGaܬ}"P.bmtHbI#f"O`KLR&u_!sc_Se>avuVcGW\>!cr]DNg]`atkbaסXeFY_& \SAb)v-=f?b<_!x"jvHW e=EwYdXK~'Wdb?xEU\Cgxwx}tRGe\c xx-jeTt561>|uVv\ts/ysS7f@f%!iI{h6z߉_xȨz91ۻO{w!hI7)gw~{|yz'm w4plL}pi gKoǿח}}5ٷn}W/AkDaCHS/Fj]֩84o֮HD\F\l8A~n3-,h „ dHa%6XQ7r#fh$ʔ"'L%̘PPL"X'K-(’H2m)LPbЫNRkKL ʒlQb*Yt+۸ {U+nӚ6 kϑ@rbH*nFƐ=,`:<,R慕/c59ZQO0qXֲXuA/kг)|6Z˘\|hϣ-zO%}{GiA+b/H>?tr3߯x\iԟe\[7P_f~ |!!}XVaGj!z]hyؠxHcN TiSbIT|<:\L"6吹FJtIYTQrV^%Xc@9gsRXN4z'm5F"职(F(i&hphzJߨ ީ}| *:+z+++ ;,{,*,:,J;-ZKLiZz-;.{.骻.;/K/0\00 K<1.\1k 1^#'S0)<3\8s7̯?. }tA#J3O+uTz&.ޖJl =Y1a7nwX]v 2w߄[|w+ygTpKz頗nzJNˮ.{R3{޸~6ܻӿ?Hu5 /|՛}w6{xS߾</WҜ-L?.qmC=Lnn3^; m}k_gOr<@3Ǖ|]}υ _'%΃;XwMNy$$kJl#'o!dm- QTCb=鄸![u3"avFYp, u6D"ua!ji* ,戽P\ $I1o3cd60Еb$dTҕ%ɘkI5&fщʧG%u| l)91sь MҌ `sJL0aRLm6=å)S>@eJO)i =CџMgUQAJjT%F93֌4h4u.})Lc*әҴ6)NsS%)*TQC,5A?jq HHPS Wzx1X Tǫb=[3ָ̕-u]]ŒW5nKs%0aR*W3FJkzQ7" Lclu ȺHmb ׻(>͊Bd*l;M SYĶ:ӃڃV.]ә%vٺr6&Znu{$z꺋PUr氰ilt $[ʹnc;p-kOT2ʾ½x^nGR|倅" u`A;h]U/L !/["w+9%a+vdaRW"T#b85Iϑ+l$O*Ǝ1kKyv=a[NAn,d5 a`'#l,!c:n =oS9c1K终N-֞":*.* hPMN~ɥaf:%+ZQiӋͪ鮨t~5c-YӺֶ5smH8N5-a.6e3r9-iS̆msBŶ-qӭuݜ-yӻ.}η./8 8#.q8|83nJ8CIG&?9S.9YӼՖs<9ЃZ F?z3-ӣ.JT:ֳk^B!f Ϯ=ln;ܯӽG}~{"?<3<#/S<3siFqop$$$/1-;333 HHHc\r???󳳴;Y?Ű867_ۍttt'&'gpasƯ*))ooo}}}=9G}suoĿ{zp}}xRRRwwwUCCCGGGggg777XXXkkk63=`A[[[\\\___!,i H*\ȰÇ#JHŋ%cVƏ CIɓ(S\ɲ˗0'РS̛8sɳϟ@ }8УH*]ʴӧ<ڄJիXjݚQ*ׯ`ÊKHfӪ]˶۠|bݻx˷߿ LÈ+^̸ǐ#KLehּbO7l,rcG9[l^ɞMb7O4v{}g;ħO-x;ϗ[D}e!9J >fC N`ŁSO"%?l0@+O! |'P{-P!zpǡJ巟?4} S&~8X HW?HIɶ}9#Ѝ9(Pq3(xvxR3 նbZʌ4J}B_yg'B{oBw@]i#n"yi܂?Vz3 T]I_A6$[\\n lh€x:#o!6$rj^[@b- V*m{:u-H?-@V jd;a׹ohD7 ߥpHwjl` +$Hdx3»B[f3C!+E (}d;۵+H'@Ҝ.X\ӳA.&mvA\{Sg'V/Aq*s{ߩDܢjBݛ姷w xܔKNwA}JPŚޕΡin;iꬷ..{ưni֎{/ٮt o'7G/Wog?w=R/,O\_/Bo߯ HL븧J~ ( ʎ| )g QMUTfObHf CBDx f1t+'Bs U4hX9x7p|y!p}7|*e')̈@!X1@ X ‚C+!n 9؂|>2TʜJE8f49$hdGRB7!`!S$i8ZR ӐШ O3e>άC:P eb$IOvb㘞2Lr1,lNq:)%4d锃b'dtg97@gn)|n~-JbfRԖBЁ>BC(. EƝT 6S)'>#K^}(&5|55cg |BBOi(@dRkR5Kj!x5Iͫl׾~ l*M,iN摎d'KZͬf7Κ a+ҦMXPڞD9lgK]J^I׶9amks)pЍtKZuJ4zս'JEnE'Kͯ~K]% /MB oȺ*@7ar`&pG d  _81"^kx80I/~̍k(|l#$=-9ȍQ2=@.`Ǭ H D y@"@I2d$ wx#>W<ϹEr/0|W.Ewb~(.S6Ǹuq&/x'\)C΂%@hO._a܉ɐcf'P]O r%?]ϼ7{h{?]OW/ qMx p$?ɐS`y O3?@z^wϻ߱7tqW{w{i~ruwỳhg7!Q} E}~W{G wr^C"Ѓ"q0zƦut=H2Cy&*ǁQ%`{ "p QGwA A'|H˰L"g((a,Lp( u y <@Bx ؉h{rthzx \O( 艬؊h{S8%Zȅh{؉ c5舂( px ،茿E(W #x 8zgY؂_( XH dȀ8(ȍoihf(x pكp8h{(`iX@y ɎؑH؄i:ix@> 'L ђr1X1)H`x9+>}B) DɍިNzT8} AW)i x^7:1qmx אICxxh{MoX8t,& 0(Aa[p")x ї(  h /)0)YٖIprٸ(i A'h 1qk"j (yI$ɡ~W0* TI" Q:ڈ&a>@4*Fړٙs #JgiJ+J.Wsz J9;g8/Qy8-KJHI\jٟyQiZۙIy]_jxXZjڡuJZʑZnɒ.yjCFIȤ*NP)R&I ᥂ *JsΊ 0ך~ފ| ๘ZZz  pڤ ˮ樚j @(:mQh*˙!)x[ HX/&5khJʦIKOVU*1!C[Z }д- Y1kg{}im ezꭟ =:J_FHˇGH#Szyک~k {9뭕;[Ẏu;mzL|`EΗˠ l F+;[Dvg۽ `˩ܺ{ 0QK}e)1[{ۿ˫ܪ {˾kY / gi׷`1d`}z{ʧƇ.}}~P'~&n *_1dSPPF|HJL%tPPeav@erZgtPJ_M,deeV<4LF`Mlb\ST fY@J&nnm6m6kkkou ȃ|j oȊmڶko, ptɥFfFmfmvoۖoo@`?Z1d,`Ɛghfpjƻi Ȭ}&iͬfmVh,v,F [v,fڼ͕gŃB+d  _p Н`ύϽ_ʪ<Ч mϝ` [_|l%m)=_LP٦0F-2I6ح3ړ]ٗٛ]v-ڤmڨڦP#+A&}$R@ܓְ۽Mvm P,#]%d (D P H ^ \) !_ UP ް 3  ޴00Fl ' À D.C!  p Ap ?0L plD` 4D>=Hp^PB`700 L @p+ B!40 ^)!4h * #H >`Đ P C4! l\]0N Un R\>} ^|!~k^⠀ .\?!X3^7;CA>E^-KOިP0)}s??T U\q\Z_`U @_ ;[B=yB[ܮ /$mmu17.i-[/!5B?D_FHJA  RR?T_EPU V\A/'>/K fhjlnpo]PqxzX{?fH=eOn?Q?}_Ov?o>dzo?]~/޿?T>OۯB̿!?.iK5$XA jClWE?Ոq E$iǎ2 JU4YӠP`>\rOA%ZQI.eSQ\3ԝWaŎ]( aN<Ѫܑ[~hܤ˝]$ qa Tȑ%O\e̙3gy.&]iԩUvwkGS~=#jܹuvFi|nWjG ѥO^-X8QI/|b KI3_xΜOSK|@LKg)CTnB +B +dPQCSKG<` 66cSd C1D_HbS܀3\ѨF$; !E8ۀZHEba K0\i HKA4nĈBXqV1#4Lp>6ݼ(O\ZSfEKs(3bOZ8`(t41SUuUV-K%CyBCTΰtV`p]W:`͗PIB`1$TS[[p ׹(5W,u,(Ubm1Rşrϵ+u8]!,^[OBg]EU\#X|b3ؔ3,c3bQ*yeg8cx rSPyg_yg;JrxbVz$!~@d0NƐ!6a{l0%@K pC2V{o3KNn$:s@OpHA&|s+:,Ŕ0A(xħeNаPZF/N|x⋯sawPHPB V23sPzH,.aA柏^*~B^{ދnM@B@omI7a.`9 фbd  W aCH`\2 PB ZP HFeFR @OJ0*tP!6z/Pcܜ ) #y ""VDb8b>X0h 8B BRd+"2n FdiKdd%[eF8 KP$'H@ 8 h)k/ 'Izѓ\1A$-8,yLdv >tx= G5DЂVء` @uvdLύ4p(Lf?ieF<,Z aNct'!C(<[P .Qb'f C?P}+eif*K`3i?D<'qdb:(-TRFu*/+.aV&鄲ZիJR%kYBվ}uoj]fVU(hWUZ 9U-ذ!e,v$TDVle-{YfVe 1tV%miGv6V\ZVmmm{[Vmo}[ܦ%p[ܢHKens3t\eѥnui]R=.dL%oQ]Wy^Ʒݮ[&_o_X |` f?`Gxvr%|aR)j*d7bX;93q= Èg66x;>WclVG-"Pe\N =&E*>\Ttz1<3~}(SC^܂h"AJŢh8?gc l\d a>y>fkGSCa-y0&uS$򓷓ℹN^Xi9Wҙ6{Ձ¥& O} xCC/C& DI= +"CQ6-Y.IEbDD,Fd#Ae!2Rş#r;]EP^ F]\&F^,P(c FNY]DFeFkƞ{Q,Z4j"Gr,Gs ,2x] U- u P/ QԮB](^~xQ ݛO"PK%ѳIP$kRR) xQ=< > hSJP4%N5tlNLO:URsR]>S W5HS| ?SW^NXU8\EFJpH{}|UbTdMV2PfTT6TO PQ<TRneo q-cVhWZYXMȅ\[]`2W[ WcWK]V%hg+h i=7-89VSM:mUՊVWXr=Mْؐ=ٔ]ٖ}YUٙ|%֜E֝؞Y Z`Z/!R:5R/IZ֬=unmըשګY%YEYeYYYY~E[e&Y%X mSMX`Y#m$}XZڔmۋ\XJXZ[uܲc erY.k.[ 1QjZUݿXu]ZZۚݳ]b^^Y! 1޻EަRp޲UZpeZ %ۛ5K&̂иEXjeQu%B'[^]`-=`v4K 6#` .`*Ha`#y ܺ `"H\Z _ߧ^]_1m "{56HhK(l Rm8O@ "%Hk lXzm.Fj%knlȆaJfK cc-]ݍuKc,$v%`"PCCb͝M.KyP6 t bO(F vPhuy(e;u.U`Vn]Wa5]%`}\e]O(~<_5pb_O 8Pfev A.KȂh`8M˧d .bhu>Ig^YFa}^a$Lt$YRKLKgK< L̍NݽiiX.a6g7ebJ|IM&GHʐVͧlѼGHHSwj=W&5gZNaFal%l|J&cePN㛖gM`\)XGʢtDʨըt^)()7Dcei82$H܎adKYqˤͦ`˽m9l\"]j+pPY" Xfϖnp^)ȀTek iƎ`dRw~鉽_/ yAh%Ψ`pWvnn dp;. 6hr'r6(bC.K(rѠ,rލ.^@op8TЀnXYqʂ紵%@؀0l( mލCK aN7%* KdFŹx5oPt $Ѕ j`܏E,@+ .h2  C L=-e HGA ?43Ùi|L1i!|~j4x|qAI!%`{cU(UaI(aY/cX)#="lf r`N)@;pa~",Aaꅆ @-Pza@A8PP}h(y Ubv*b(8tRg/HvNPj^XWׯEMd<.{~R # :τV5D3͍z!YOΜ.liU%BQX>uhG^+m3 kx֒mR0ל4$l{t3׷V/^ uNgC.6t+]w<(G2Ic-M3˽n<zǙ4;:՞ l"a| pi%.Jbd,A6ތ/:1)LPn@ ,N^s|,ǑA s2Kxs+}7'^/!i~~>/H%9ۥJ;:G͵kZТyg wݿtovg~'Bٻ)Xaq.فw=.o[ ؒ.z11r-/(4A=pj]2ݓG{غnMji;ǫ!0 B`~N_+<3wYmg'fT\o_]BA+$,D_v%_{,"F p &1\d;,. ]`vZ% H=M F ˖@ϭY]@@<4 R`M_~18tALQ {XFl @.|ρ\Q Q®a a b A(an$|5h .xu\Q;a'i@Xt_$^b>"-@*h'; OM|ԃ0O0,,B.+NW,,V-va7V)P-0>T'T"գ=C;|C: Z5nB-$6 `88V99AzP-L@_0T; Gz%X=$̗?Zc+BDaD$ &${,j5oMN2NObO^eSBS LZ.ґe)"eU}ebOnt[.A_ bѠ]^NWna`_Fn\THJ HJ 倥 Q{LjFHI6l&m֦mf  H*HA(b$ `(~P(-8J&`hbpY(`j'y(VNg}ިI'&֧0(֌&)N<)F֒iOd)EH*<'iDdd@)N))2כjNqi)HJRD^jOpJ(_?D*jDBp_y_*ƪ*֪*檭z7誯*b_mg D)?<*DwA?i2*Hn+v+򪷆k.tj.jS Nj+D A\dfjL$6+k_Ql4j=Jm'أ "Ŗ=*T# 䩼F2,9ۤ}lL lFDJԼ,Jr=YwBat=?$),>r >uZ-NFڣ~J2mٞV+>J .q=*NcfBV-㪭j_c%fI>cI+['8<*|B 'PnS .Li~2f F* ` `)@Qb*Dj/ P*6tB`7 nYD_?@̄ Ȭ+̄+/' C7 pF87PNø0 j(dIH 0pJZkcC% p@MB?w) D7Bt|D0 wRp g14ڰ'6C`1ʭ2F")k(|=+vO@7FUo @XWeW;wpA<2p{F-'tB(t:V7M-ym];Ƴx{wIKd',n)TA Xysnw 8$w{,[vL(( 6)8c)FwBDw[@g%Ald tg68m#,-B\:,A .L0t&9k,.6?<_B%l{|S@, p<,A?XI699 tn摬a{FUBz@ D7O zFtvzS-<Ƃ2zϳ7'yNBcB,8A X xO-TDz x'n NqE- CtA؃<%מ&|fBDpm<*4B 5:\[x$Ĩ) CM{7D7q+AdpBL@D<Ԭa[|L-`27@2@mnCx@5|@(D.Jv=}@!92NB4xS T'B}yg' @ԽM+0A X(vnwhkC@(~ 'Lzs d}:v=BLP+Lm=}=go?N2lDĀXC08 ( @'ķ 48Ѐ7o9f$?P90 ykzOI4yK(VƀSX$3*1 gB^PoLiRK6u?SjJJ$dxj2U,5?tضun\sֵk5!N= `}I&Ф )/D 5 YD,=0f tdʖlvSh*!Y<qd,yrY:zMʹ˹Mnxɏ7oaf$ x`]l؀v`8[ꯥ\ d$0ۯ?,P ;&0#>b+?u" x\YB9`0xEe/=}=; ') 1%WЇ{AHZX  HP#.9CIs08}`}d ]Ne$yKPLJX5T`GYL'~oJCQ$%rt `(t@ U4 )$6Pn~3lʉH]`?u9 $c)4W*MoS$:FINIrh~)b ^˜)Uoe}iH3jHy"K!"1P=u?kC`2PXDZQ.S)PJT"uP VK@U#I^< GdլFJI檢}dhGKʹ WJՕ$N9l%|Fg  o NЂ'J$v|{]${ PVЅ!f78CQQ ^U`|*Ty@O_΍M,z|N' 'lڱ ׬͞ΰ  8acJG,+@ٱ$N-ѡN@eazǐ6a"+,$O s` RwPh3&;R-ג-- .jpOM۸M P %&`r`@bN|2ҽj1>1+? `fX@m ^Qضج1=q+{+8mG,?6a+OAVR`:S::s8ڬ:Aor)BNخ  A'?X@ bZjtbӹޑKM}7 Flf!&.LN =2 CL P>28,[9`EpFoGsTG7&#vTG.BH,># .O#"817MT ` Tt6T N먒D^IyT/ 6y 3 PnFKG;\4 btQkH+RmG5G/4.p",I ԐtD} !j.TazfrخpvsPPa` 4XKy  ,8>R C$G$ODVARsQiDcRQWF.RAFgR9^w4S7^7S߂.m4Cb;LADsD? Kc `otijZ)[&TEMM+WUyBh0O֭ލ0sY*KQdbSG `UҎhy%&_"n>>V6 !b@ P@i?Fn Rs;%jjAHGpO ̴r JS e5repu)!: AR$\>ɕx+! ];X@V!SJuv1TKao5WVQutW`uv^wT^,p lqA'B@*FhVo6gbg)~ chK'Ұqa dPVՖmQ' WI)AAK׉n!P fU׈iS(Ip} D*Ix7{ €LbyAx![%Otrw{98 s7`M'f˜Js a#vxYx^S !irEN RS%94kqՁuSP-o31 h !dv}g[8@B2?6 `'ԂmY-WeQy뤒Ӭ ΃ =`9<^9AgKSPK/٤D=dx{y2PV3>Ur րU9zj4ٌXL!df?M(b d$P^% 8uAAuHciD7v5؅u-!sؙǀ C t+~XM/4ƀY1X-z j dSXhG*$h?n<nƆ||Za#|Xj{%T``{y8f/RT!,@W+Zc؍Y>jWxGZczElhhbR@B j`a|Ȍ*| z?@;9V)h`;6ZbT`AT=@ELuzϿ[?@#&B;bʽ[[m @R ;;$ eJ^ a ! V{Λ c@ Ñ,{YBueƠ"UAa\*ZF:50j*X`_EeAY~~o>s;}'8^_㙧bi5pCIL*zd$z"e:em7{~gN"ž/{#^*d BT ߿O ܰO +Z1ƍ;z2ȑ$K<\T)^jF٫WUNJ+V^UX6m5k]Truk\1aҥXd 0`+U*;Q ʹtCLw h߆BP8CJ4L[41SK>:u`,]@&M8u 4PF*eTVjWb5V-[B1P={ȼ{{=ASJLVT*) 8@1"`k-L5QpS9OA UQI-SQMUUYmWaUYiՖ?B q._/HcGB?+Hi=X & Rf9PcRNI&ۂ >xQۅi8\Ɓ=gt)hrns)hFPTџ&Bgh%)H!Lțe(TWq-7s%F"uHĹh1 뢇mpŊk5Z1X,T_fmK &kztp1ʙC 1̲m5@c*n++>xp._S%0 G Q4*Kd0W!&dhnoqծZ" ?\4 4gt!2'1tզEtJ/ʹ!?WB ?tJ pԢ?]ӐRH+k/gsljm4tzw߫t`PUQM u?|#qO;1)ڍߢNz~?e9z5d](WyNpAS\7N|+nًڋ/"6UMnjCUە/~?Q;,JOLH@G`Bd|s; Ug?q BBPjAD&py TH0RMnBtAP0<2:X SJ֘&g!G棡?#;4 ‹KC8ic]F ZOh;7#T:MwT; CÞX}hDXPZLFcx% "o[ ) o9ůc7ؙdG@/>WW zQ 7`'wZ$`~k) a')X[Aq"]c'up0)wx 0U9a  7s P   @^9@0\ D,/^`0c050^t51 ` @ @? 0UC` dWHI>0M T P BuIA ea" -(zH Zq a Vi Fa ~Cx PǥHڑ6gȊ/r؊( hXk؋(vÈtQ6֌Hv6Xg٨ȍb(fHm%Ȏ(Hhȏ8@i ɐ c ci)( :4"ّH!C%'7+10ɒ}#sRr3P5791@Y#ȓW{#3BE9EG7K.R"M=yCⲕbWI?r!g`$@ J +p4 3!p+ \ B0qB(`< 3` pp '3103@p pp @30k1 "p 5W p " |7'Hn ` "@{ ! % !'V '!pmI"p*-0Л" 0+i Y` !عk0s(P% rr9Y(l0'pp"Y('$ k+0":Rr: 0 (*Jv&.Zɣ5P3(I#;󳣦+"Azs GjJʤ/2O4w!7 'B a5J%OE#a*s \z S  0 Tnjp 1u:ow<41A%yʝ` P@r߀ kLZ"!v 0GPP.3 : ~" 5P3E* 1woP K3$t' L9p4p?Bpcp&C^/"* bk P]2ڸBu$@ H , , _+ +`!Ѩ q1CP S .2܊ɀq뺰 +8V+`  qSp BKzJZP¶#ak 2CA`'kP* |kC{ ɀ{5˱>@*<^N*y3mÙ sw&4@h; - ސA \0XplrLhB#9 6G4ǎl֠aa +ǖCC@f cK J|4`@ @`˸x, @ q 2,tk<|9LHlʋq ހY׼X0py |PpX -+h |w ذ1P Ή1P$PYLUPu 'O|  AD}HJ=9aa @ぢ BF a=L! y(![Ѫ' M+ ޑ M|178.X Vh, tMp ŀH0ڡٛP !VXh? pڟH  ࡶqۮ "ĢkMܨڬ =ɐ}& R&a}v(MJ+! = q ,AQH``|׌ d! l?!EO0ID$l !.X'N "" Oq WP "P"' Qq((##扁m^#q恒10sA+$R@uNҐ}'!w1 1"0 Pnq @ @ 7QP  0V_Q> "3^ ^p n~Wh0^ p 01RAzOg1[ .!p>-OW(mr:ja$,-,' Yr)>~>q/'Ow MGW ++ Vx p")p Don;JAEς YLp1 %ycp!P p1kt] #-O%ak)z>1e#Qq !Ez>-4 ja%2$ {HF P\BݛbS zO?_Oy QPBX,XP[…-^Ę[R ,Y EH 9^"PL$aRiTP>H9O!BPџ­bAEnׂZ響YQYB(ܯar`![YA, |_ msV1B7Qtt穖m6+9 86lRǂEł.]Zh@BKE8J pRyZ.tpU+BWvMXC178RpQFx.NQF`JjŹ$,:E *F>1*tdk!Xl*DO$j2R\ qFdk6Taa";]'N%,jbz4Ԫn` u0:e ol{IMTyϡN`> R<" #Y#҇:0 =% 5>T ,Nh4>[Ͽ t1V#4 JЌʮtҬԂXO9\} YhA=@Z1`dβ 1 RܞHxlA5TfShTh y1807Ey@Cw>hUOLYFvhXL H% f8f,fne5L6bK֋F킬ۯku dzu%)`+YN[;0W2g[ | !|TVj/c+ Xނ؋-qQ3r PE1`'n_}.nۭ*h? mBHSf{-3Oq/e1U( BKb2Npb3@ j0/ RuAhOAlo,!+.5M9 S>V$0aH~aB@/`X ? -I(g9$#W Rp>XC葂0 J (#9E8%@n݊N0A"F.KiOJ MIyW$iJgRS(oMH>HD !xR`R? dAYImNH$eS I4#Q毓H.2J$0w- jJ4\<0)8(r HZVY8 jRCB   #@-UrVpN, 0 YKS֨p@p-z52ʸ!G %6ÀBpɣSըwQjC ,?ʪ!ȅ2 &0)Sh` CHو"MtO.D2DOE^I)-枀yYFLn2)1*hlSf kM7Oڳ6!k@ P~سN  (`hou8ԉ7~" O9)f/M`'kwum}*dmKɌeB^h`0ݱ`yP>Pi -)Ct,Eh@{Opb[\jru%,YT8A TT]Bq!YZӞ5.v%<騗`A?Mp|T.30knsN9,H&Ш4G*ob񂿌Q+zNA@VIL ]å f^(0miSoKm9B92Iu̎D6N 0(@)KJPZްF@?ZPۧ`-x܅^BTW(`)`[=ki-؊2C;6p%RK0:0 +U !0!;Է`:{+, H"۵cc?{py? )z [0YE -!JEbXH@EZAqًȘ UؖSY<@1j$֠ ږTHC,ŢƊ 0о1E [3j 6bJ,4dMo7/:5?R'C:AܷBdX@ŢH & дXWDk̋W)V-YΨSl^E$yrpF iXq}J/9xF 䖽,Xx1|45L%@H PD 64+DLȏ -hGV.. 7D{ɢ@J;Gi8cILʻIH8 8 ih@U@$I! ]IQq98 Y4A;I6/K4KK˵ }S\a%C'D)CeCԀ0@SqO,cK6w4,~7PRX0a:%M%!1XRe%CJ SkxaX?zK`UjSm![x~BPU8V0U&^mGΰ;HA4A:4X> ATTxdv78P'd(KT;V =4)Iհ4+A؆*Du؅3`.632 v0 "<NX|u2}2~U5lõ08?j0WCMvuT}>ЭI{BZ% רv肼BOn7Tܪ!YvtǠAy׭$2@~ٿ X5yRZUŭTx= <4Ȃ*L);-YL卪f) fj8X)YJJq!v=gT.`ܸfhzgffṑDRuFXa _vx"Λy^z._b}#:V\bCBh`h*[梂琦b,qkZ`@[\ ݾs{iY:NiZi_\@BJh -J:!%pM"ٻn)j8i^FjuJE~i*( [!ZE Lz4A໤LN%-fඦcNYzSk_ěΠ Ns'y)&ս'nq +׉ ňn؊˒~unO9oQnbnk.o*FVJ4Bo}1ABV/ި'Ҷ7oޭViF; 7qe #hfjpݲpbp_ڎV;:kHq]k%>qny<*Ն!o' !7on"w'#dr(,#N+_l'g-'s"rנgr.7s shsn #?>?@<=sDWt1C?EtA"Kt Lt8@GOtu~og\TWUgVwWo&tۀ+X[u\^Wp_v^a7v\>ewu~yhijklޙukmqvn p'uvS j?~`zvVo~8{wi Ep7!YD~n̊0)bnȈo!دxll:+Ax'IW6f/poϛnt6,~@0/O#=k/ruXy#)8w{)WyzЀRUXxh|wƥI?3/{G%x"'qzhbn_ŗo0y"͏{zo!?| zo;}?O@.ȿ#wsW} )Wzh2)h~'6"Lp!iXpŌ.5̨Q oJƒ& Jqr%˖._sˇ̩s'O14hR? E4O +-*DtD`Ʃ%gHXup?W/aCHVҹv</ORt+x0͟AYW0n< R8Hh'59߉ ;Xn:^z"it|"޾V}9LY`Žm7 oJ[J]{ȣM4-n n]5[i'h?JH%VZoUA&Pbf}&aofPk#ۃՊ{/ҘLXAhf t#uEv]]ՊؓWD{8?uBFއAZA  eG%]&`+]MDfnԧo$ω~hwy ")  ?<X\jÂJUWg5'ګKb4~2۬B-p a{R{=cnk fo +B-ۯVMv!Ih6 Z= }V E^E0^s4#*8xB"$FDA *\@2TA&&\:!uȂ$Gas[HD'.oM4QX#=<]җ &ILcT&Ɓ6˰`2ؐ?u&U6sMq ,8'N'SzoD'=vϝgz>D3(OpT%nP &e gXC JuX)2xix) Z5qj:D+R F%0?!S4p:|$?D`H 0 :HAMS*թjjVUtz;)y5'!9"PtkA#y mFE*Lh)Rh-mLp"?BRJ.I[ZӢu}윋cUjRm?fl)fkl% kju]nW5'W v⑬eEҪսog|KWoB-P!j}`bc@:C֡TU>"h&ztb0b؝A qB.[\RJ-ye.Y<D֦uݪ^Ye2x<^J~L=O5@횇-) k.0Q-̹{%% ])4V?$gYj :   НKAGn\fZH4o9Œ^)ΰj1zHG[ڝ5x}OAf٭V$i73/Ce,lP)\0rfoH antoXݛcwbx[6dg$40stp8E,$E榫Y;|{#JWYk+Wۮg3qg3kOY|LC 8ڠ¤8/<2! 2Љ^L~cRpChple<ֱ\PI]1m[)hB6]_^}2y'nV[soƹ|w{ܮ+W_ׄ Z\;4\Ac%5Kki7+,EJpFqQN rPnW 3I 8GCdݑ=ډOAuAc~\oEʉ b\}ЃY@lA| ۹i΢͎a?paau 7-Qڥ:1_ۙaҖ͗A x"2b#B#Rb%!DXb'Z"$^t'"#K+a/ͽ_0aeL'P1"c2*2&23Bc4&,#~`ٍv  S [-R!ڕl)H<#=j@=c?2#tс??? 6?CA:$=ڂ?*?xCb$4&C-a lGM!Zqb08d$2'd=F\$!  !9Z`: !~CLR@@FLB?D+dLހ?P @Xd!8.eF+#@GbH/d0N!354--? VR=p[*,d6a9ycxOEY S` `@#,PfA@bEl:d\f#n*HA !HA&A*]?&ͽ_y)l^V]_0рqB! ?1"? pz{Ci7 OvcP9EQm?1e=bBsC_1')c: dY?p(=vDR Jp$yBlGH$Ya_JޣNH|=%?2P3Q5$đ& :hݭf_읊B#YFcWBXfa dک2$[ޙ? A2c H^e6{ \vv_"4Cy2ڃ?(1U6?f-Tt]j#ggjqiPObc;6\-j2 f*2%zRo1BpW6+2e-شs"J&j kK,̺+ĸk\Lʫ̎KJ-tI@:)%*n&@䑂ǐL(0ɴL֌XL M6M2M@ XVdMtM^㱞CAٔ'Tb' h&eRV?0kvKF;3Ͼ~> C>ds;C?>yV?$F?@8  p%ĕa*!>6q(d O4D $rA :bŋ3v_?:hQG&UP,fLs&M1䨳c_3$;,gҥ l[i]w;t&L$𗡪7r ֫ddEU? 6*@aÇ-jʕqرe%#I[lm UIϠT Ǩ%~ 6hѻy3v 9jSI4:ӁOfiS{Ǘ?c򤥣Z8K$THPAh %NZ A 0Y;m$TG yzo6)X ,ĶT  t1AiB$9ştGJ<1H!THy+M"i8mJE!$d b9G1ztE. M Po-5T1-tPKAMaO?FT"H%S0oSWa}UCr "]7+R}2ԗNA uR"n9A? tA{4a-Vn=5)rbMARmSo ^UG]k[\0[`-T4+̏Wk}x5aŞXA([w3Քy58YT9sHpyxE@Ve裛æ`=[{ao瞹nao.ۄŸLה9Xd_zkyn|7):IbΆZm]FHR;Com/pĵV|q,$1ej\g=iY.Tw;`x&I>(lj^{+ILX[}^?ytoy7!|w_߃>}e0$' so_<4 xc .aa 9 ga((q~‚4p㋠ >X BOJhx*t!LQ'8*l]F#pp.D4Ⱥ[`a(RYc/)p`L$`E)Rъvc0z3҉T$GFrHd${lҍM =P^Qx$ø/)+FDQ%GR Mgt&^>a:t-I9IulSp`NxMcfs7c!N,Zd%/Mv򓡬d9E,CX( a63Xf҅6TI@1יw)s*64cChAf }tPP MoӝAjQZӍ򗻐խvuQ\kY?q-k׭|(=S>c>le.vdG+6}mmov[ }[/&}jo[§msǛF0W^ʼp)(g!k۹E?(o*\_BQ~xUsh%s=ˣ Ewmt }d8Εs\zAuqWԦzBqx|`7{~vDWۉv//Ne(u]Cx/w!yO~-3p{1yc}t]U/o?߯S<:b{ ZpB)V z0Gؖf( SB0\ cHCͰ8 sC찇@aFC(AbJ,*LH&Q☔F<4Pkŗ$g4ȥ0"o4b4q(Qyrl|d8q*jl#B>Ѥ#DQ/$AWIEOcqq Ʋ'("e"#P*2Yb1)JIJB#0IK˽r-=i)⒊y D36arI _1T%N=z󊱹VˈN)4'Cτv t>͈PbQqt7f@ή<4P9ɘ5ͨ6% K| Aiɓ$XZq S1trſ0AI")'0I" ;/JK(L *@I쁁@$3 >ϸ!:  b 5 %d*^q2~|,-F3 jԷmz 'R/LǮE)tm>?h.91GBVZ4vIU6<=2_p$A0 ^OgYêsA&-K?>ԬNPTOMt_aH,~C"QV3NˮE`Gv6-lcSZ.vbGZ Vt\dwʨHf{ 0=-d%ûMZ Qg5^zO,8a ̃]F?t2{:'ۯVֳs]}^0A]hHpNxϻ}'@&<t ;񐏼'O[ϼ7{~I ?~-a7VֻgOϽw}mB{7 nF0bE_#1QXvx7&Q|w|7oi&q؅Km_lgƈ[hV8ֈLx{zXGx!xg(f5J8hFnƊ"5&h'hpHXH'x0x&*lkXm(`~c288XƸ}Ȍ%m/(iBi;Fxlh֨p3h6i&mr%xIXz#q~؃!u6m'Ȉ1Vo[h3 Ikn|$a ْ.9} ,0FȀe0&Ppi%*6cFk/YV{z(2I4 z`8Tyhg[)hfW:mgx 4ɗ\ zwy~Yg`3ْkry90 ٙ9Yyٚ0і!b'4Yycy=I/-p*j{_ aE0_CP۝F.mxyfJ,1Upt܍E۸ICxO+3qޭ]\Kk;ۍ?n: ن x:d˽NdK)/OqJ $~(Q뛾 f[淔8AhVI>Rkf}%If5vJZ Z z>eJ܏kFJbj@,&TF矪i +qŇ{[_k^5c.Dzz g浍^Mlpꪟ&ˍȿ|2<_82_,((ylިl,&` ̴@=ެ#1r\y;^m$<ܑ>&NY]۽}">掹=jQ9+N{oBI(J N߶]7!?#8]GJ Ւޞ+oՉ[N1f}hMjkWAPP\4^Gb?4d_P e'_, rPP wrgo  @@ 2R1*ZB+O} ,1(E>LR>1o?x2V  TM%2D:+G8!w o=A$SvQ]qp"y&a/D(/ο@@  0 "4D%V8;h\X$\1)TSL4 0ϬZ;u1(Q 1J4@?"D)B-?M68琟G.t8*Nk֔WԪ%U?$n5~N}iB^5Ra%;6kህe7nޥ} e^;Yn͇HnzlʳiJD=݆ $\{%IM˚ōGhN?h`9AJMXÚ[wQ.<_{:>^:}};o+>30@s#(z  3AF!@m! j^LOĴ)3.92Hn'?)(@* Nr sd062RʏR$B,A$(, L+Ts<3%9tŒ&2GY+6QR@/84>Z2TQGňYZpɉ%;X!h;lL[!28nMAɦ~59 $k;]X-#J@AԖ*Zau8fӨ5N>3"фSz$_Ger:5^.딢keWWwQ իxj4?tن x)&}[KSjEzYA-b^;T{?5E"FD(މi?jAr]<9&-"' s|>8%9SM\ <0<ĩuX.OmlPl㏉6BPK<ān0Rz_P&tf*ZjAV}V^iT$27D[}LΔ}#wz^r;6a~J6zdo[4 YqE>i8@"Gˆ @6Ё %8(`A vЃ`E8BЄ UBЅJ e8Cְ1auC>=b8PGDb-щO"E*Vъ"E.0]c&ьgDcF6эY8G0Ƒw#G>Q{c IC@Ґ4a!HFbPd$ HIVҒ%5IQeq<JRGe4e*UQҕ|$03H+uHTD4]  be2xlZd?.A29^)KJEr* $~)&މl3Ǵݰy /&+(%36)ГTI6UJ%Oc!5dD(0Q`T.. BeĆV)/>m!`t%%{%%T;ѩfyˀԙΔIIUhC5pK-SP^3/j]if]e&D3K4yE*^Օ.rD&\7fkwm&_W2 ,2!pfMfSJT դ3 kmYj2Ěd}[3OZ^uAAg͗е n(nܱ6tJWO WoE\D}y,R]Z UqXbLYb>aSxV %dW}AwcToMA'FqUb/qe3r0LxbLs@f.8.DCьebfH{"u^`iLk/D&:i.aT*8XK9so=J-i?c` $^7pL]'  oHtj-Q;@Heo@; v7/mHg:@o (]\- @cLG7ģ0xr$W rݜ洧Y w Ps?zށfk'ue{( ~No{ "ֻ^q=dыKgpc#1xI'8.@09-yȳ=1#Ż\;Q6?S݆&t& *8Ѓ>n}nsc~+l/>[>Ұ}_{"HNy{J,C_?ާ_Km W:y#6;C;` =+?;s;7C74#ۿ5A4D34ܳ+4>c{=<>7eAddY3A TV[8AA&jB)D4+QBCyk$1Py!Qs"6l '@:\7%B4CDDTEdF< 0IAK KML IO$OQM$S4STTOdVWKYZ:\]F`a$b\DC^e ErFf4hd!jƁC?l/> Gf,\G 꽖X9㰼#G B8\GnJ:ī {z̈|E$ Qd;H;lE CǛǞ9kxG8#,lȌ>c>dsS@8G@@;$S?ȀTsJͻX# [4?!ks9[+8|6|d˖@JQHz< ԷL7J6@ +iK}t 7@$ky̜̺Pl"; "-8EM¯};w,yHH =ݺ{g|Ȳ| %5,-JR᷇|J+G$-K2?WPB8:[IPG"SKS4S@S P$I:{+;s@?Iɠ\Lͣ5;Bԝe7rmؕ4bzl݁ޭ],1^]UIuT/bba-,Uݕ"'P}"mY,ub'&TGŊsݾ \((^^®uJ구E*`X+ºY*cJߪ8ư U`,jh*V-L 0f ~" arj&キR ^ .2 =_b#F,z(%`,8/Rݭ뽭&6~.>cݑb>a.cәccc!0!p`9b*&ʋcF&G-0Ƣp ֢*I_ ^eE.I,^dSb=*! c>dΔef rh~"$klmnop i%2sNtVf&v^wgyzg|}vΪhdBv&5!#Cz65 /(h6h؁g<$6p6`N.0.0 Ph<.h(N P/hShAhZ>.V6ЗO3V棟&A6mٚHR H50*kn=TK9@ִf!/8i#0i6k>ݎnR Z/M(#38۹Md͖sʎ%Hޓ?9%T2.0m#hl..SuԹɆ?3j{;8Ƴ9 UԁUmT;8ٞ^kFk68 C8Ӹum>o֖S f;E݃%l|<3IKUգUx$o?2`i#׸Knc[TS@LH䋂Ӻ6LqHNgS(e4cVgK!TI;r2r)pgx54=΋VpJ$tU~p6Y2הUkWkLtqv]mq#(r*h ,/:4@^mr=}]n܌ t #t:oLʅ XM> s6d BH,.rps[U!@RqtJUW^;Խ>grAr^ .vuG{qHtSr5upwf8XWuVCp:V"tW)gwwwEgЗ$LKrtnMH1Ǐ!{r+ذbǒ-kvOO ϟJ%ٶŠ8Tu#!.l0ĊL{S S~JT¾#N#DAfl4ԪW#v|sՑ/,Bd纟KY #SͰ.ʗ3oܵҧSn0ڷszǓ/ok׳o>=LRӯo>? 8 x * :H`7!Zj!r!8"$X")މ+"Ե#5،7#uA 9$Ey$I*$M:$F8L9'da%>h]]!^xQmG)&&~YuĆmg]څ (Pz*(J]1@:(EixzZE*ꦝ%+#m5y@O.$#t DSTl7Z栩*c,A6I1@F ·:.N$AjZbSv<.% ²f E?0M^ jk* ma 'D¬¢ %rΒ k6A'|E\Q3@Es?4' kƢ-RCdqFŪrTȸ뮀Pf";nߏP'n4bkNሳ<...{nn'e摋ð,;;.·TrO`g,ɸ-=Gd.$ <ҷ@=%o: >ߧ mүt>/צ\ dzƒDyy0JdNr1Q|ܓ^ : aF}v3@HUD-'`̍$q]>dN;y`̺&0u{Orʑ,XUT &)@ H@+HIY$Teq!ҊuG@pr$0c8ysV(3^jmXC8t'e;:Y%y 0 4oTHSCAJŅ6&JNr PHJXC QR!sY+}?eX})@ `@dSzHY@Pmr0Sȩҁ4 y5:Q:+ZӪֵIc}QY*׹$t+^dӼ>+` x%aV* ec#kAJۢe3(jbgC<ђ{--j)X<٦ Є -pEDX a T|@ܳ_OHݖ\4֥]"W< " [D~tޘ+8.# 8zBLB d ~F4I8k<~ 0-WV3\2>I&$ OBd ~AG5gXǿ B:arPd&U%!--}#a+1c~n|d붷>! A$ȯ 5<hoqm]k^sv#pw"Qx#glk\! < 4P \yDc^0 op}](̆-bA`FȀ4[qյv6 ڝdU֮]T]mk_[۳-wLla7yD,yww{Ѝ}Fb F?8Y .qD|kXXZ؎okrha K譪?r/}h0]榼+xa.9Wo }3Kg-B7s2:֯ }3i~:U<5:9oIdr XFI43/n3m;}'J`87!sezfc\QԧN5 %f9\W|CNۖ^vq+kf:Czh\+ /q3_%o>Ÿ}K{i+/I)a ZST[H&2__"?ݟ__&KA'0@2HV>-d: ̰d~hWLĐlO R``M dNNAa v K!TȠ'!` 2I ΜJ8Nt[B ҡaaEם R ZӼ! j' (v`#>[:09%B*"J!)ZNN`Q&SJTbPӍH'2r!#NHac5!Y ab."""b WKlUpŸId Py45`P=H2zI "%h =Mcym%i!ĝ"u `II\`KhnK*azFW$AgdդMf3# u>dg$K`Jju^8&Bdg$- (a}%XX_J`Y%Z%UjUD.2^8m"}L[%^6Rrāx7DafJLFqgHxDcJqbKfrA|EbDh@ ~dN!$4&l"`jfMp&kAA[E_ pBTUXq,U fb&AfI$fbAn%dipAvnajgHg0x%oxrfxA$8CJkf!اz"agmΦu[4&JgiFG|g tqfH(|„oFhB& ov.(gE`$|wĊjyhpDNkb^j#P懂|Ȉ"HF mިh$8)J蔞gnD^>fDg*)glF kf T(րflI\2HT(蟊Ĕiڦr.jKjzD`h\ B)!HaR'}FB4_$"B 檎FR_誫H{Rԉgh+L쁖 k|IıEO\ff:kIXeZ~kfVkd+6"Xμīߵa+L̉E> lIUIM,&2l ʩʡ4M쟰ARSքʒ J ,dJXlMljMb n.봜\KҪJ d-ԶDv^%ɞ ފD  ~-OάܢZӲ~mnJǍۉmӵK ,eߝKUQm'ـ IdKޭ7c8nnBo^Vɝ~JG'RKMdLpLƬH#ya!b /N^<*LoIw͝D$5Ҋ%@ F̀QL؅XDL }Z o ԍ0? ;$IhWRϑѹ|ATi# J.]iz p֨0 Description of the illustration dbr_replay_view_detail.gif