PK [.Aoa,mimetypeapplication/epub+zipPK[.AiTunesMetadata.plistR artistName Oracle Corporation book-info cover-image-hash 817233584 cover-image-path OEBPS/dcommon/oracle-logo.jpg package-file-hash 612462790 publisher-unique-id E12072-01 unique-id 289132381 genre Oracle Documentation itemName Oracle® Database Gateway for IMS User's Guide, 11g Release 2 (11.2) releaseDate 2009-07-29T19:12:38Z year 2009 PKGőWRPK[.AMETA-INF/container.xml PKYuPK[.AOEBPS/c_array_handling.htm\v Normalizing Non-Relational Data

2 Normalizing Non-Relational Data

This section describes the support methods that Oracle Connect for IMS, VSAM, and Adabas Gateways applies to normalize non-relational data. It includes the following topics:

Overview of Normalizing Non-Relational Data

Oracle Connect for IMS, VSAM, and Adabas Gateways exposes a purely relational front end through the HOA API. However, it connects to non-relational data sources, which include non-relational data models. As such, Oracle Connect for IMS, VSAM, and Adabas Gateways provides a logical mapping that exposes the non-relational constructs in a relational manner. The most prevalent problem in this domain is the issue of arrays, which is described in this section.

About Arrays

An array is a group of similar elements of the same size. Arrays contain a series of data elements that are of the same data type, which can be simple or complex (group). A specific element is defined and accessed by its position in the array, which is provided by an index.

Arrays are a convenient way to store a fixed amount of data that is accessed in an unpredictable fashion. They are not efficient, however, when you need to insert or delete individual elements of the array.

Representing Metadata

Before looking at the different methods of handling arrays, you should understand how metadata is represented in Oracle Studio for IMS, VSAM, and Adabas Gateways.

Figure 2-1 shows an example record with arrays and nested arrays.

Figure 2-1 Arrays and Nested Arrays

Example of OCCUR and DEPENDING ON clauses in COBOL
Description of "Figure 2-1 Arrays and Nested Arrays"

When you import this metadata into Oracle Studio for IMS, VSAM, and Adabas Gateways, the import process creates a data dictionary definition that is equivalent to the original structure, usually mapping the fields one to one. The import process also writes all primary and foreign key definitions to the ALL_CONSTRAINTS table.

Oracle Studio for IMS, VSAM, and Adabas Gateways represents the flattened view of the metadata on the table editor's Columns tab, as shown in Figure 2-2.

Figure 2-2 Representation of Metadata on the Columns tab in Oracle Studio for IMS, VSAM, and Adabas Gateways

Same metadata represented on the Columns tab in Studio
Description of "Figure 2-2 Representation of Metadata on the Columns tab in Oracle Studio for IMS, VSAM, and Adabas Gateways"

Table 2-1 describes the different columns shown in Figure 2-2.

The (+) to the left of a column indicates a group field. This type of field usually has a Dimension value. This value is not mandatory, but it optimizes the access to an array. You can click (+) to display the group members. In Figure 2-2, all groups are expanded.

Table 2-1 Metadata Column Tab Definition

ColumnDescription

Column name

The name of the column.

Data type

The data type of the column. Selecting this field displays a drop-down box listing the possible data types.

Size

The size of the column for data types of a non-fixed size.

Scale

The information entered in this field depends on the data type:

For decimal data types, this is the number of digits to the right of the decimal place. This number must not be greater than the number of digits. The default value is 0.

For scaled data types, this is the total number of digits. The number must be negative.

Dimension

The maximum number of entries of an array. An array has a dimension other than zero. This value is not mandatory, but it optimizes the access to an array.

Offset

Not relevant for arrays.

Fixed offset

Not relevant for arrays.

Primary Key Column

The column is part of the table's primary key.


The tree in the Metadata view displays a normalized view of the tables, as shown in Figure 2-3, where STUDENT_BOOK, STUDENT_COURSE, and STUDENT_COURSE_ASSIGNMENTS are virtual views and STUDENT_ST is a single table, also called sequential view.

Figure 2-3 Normalized View of the Tables in the Metadata View

Normalized view of the tables
Description of "Figure 2-3 Normalized View of the Tables in the Metadata View"

The following SQL query on the Oracle data dictionary produces the result shown in Example 2-1. In this query, data source is the name of the data source from which the metadata was created. The result shows the metadata of the original table after virtual arrays were created.

SQL> select TABLE_NAME,COLUMN_NAME,DATA_TYPE from ALL_TAB_COLUMNS@dg4[data_source] where table_name like 'STUDENT%';

Example 2-1 SQL Query Result

TABLE_NAME                       COLUMN_NAME                  DATA_TYPE
------------------------------  ---------------------------  ---------------------
STUDENT                          ID                           NUMBER
STUDENT                          FIRST_NAME                   CHAR
STUDENT                          LAST_NAME                    CHAR
STUDENT                          DATE_OF_BIRTH                CHAR
STUDENT                          NUMOF_COURSES                NUMBER
STUDENT                          NUMOF_BOOKS                  NUMBER
STUDENT_BOOK                     BOOK_ROWNUM                  NUMBER
STUDENT_BOOK                     ISBN                         CHAR
STUDENT_BOOK                     RETURN_DATE                  CHAR
STUDENT_COURSE                   COURSE_ROWNUM                NUMBER
STUDENT_COURSE                   COURSE_ID                    NUMBER
STUDENT_COURSE                   COURSE_TITLE                 CHAR
STUDENT_COURSE                   INSTRUCTOR_ID                NUMBER
STUDENT_COURSE                   NUMOF_ASSIGNMENTS            NUMBER
STUDENT_COURSE_ASSIGNMENTS       COURSE_ROWNUM                NUMBER
STUDENT_COURSE_ASSIGNMENTS       ASSIGNMENTS_ROWNUM           NUMBER
STUDENT_COURSE_ASSIGNMENTS       ASSIGNMENT_TYPE              CHAR
STUDENT_COURSE_ASSIGNMENTS       ASSIGNMENT_TITLE             CHAR
STUDENT_COURSE_ASSIGNMENTS       DUE_DATE                     CHAR
STUDENT_COURSE_ASSIGNMENTS       GRADE                        NUMBER
STUDENT_ST                       __LEVEL                      VARCHAR2
STUDENT_ST                       __SEQUENCE                   NUMBER
STUDENT_ST                       COURSE_ROWNUM                NUMBER
STUDENT_ST                       ASSIGNMENTS_ROWNUM           NUMBER
STUDENT_ST                       BOOK_ROWNUM                  NUMBER
STUDENT_ST                       ID                           NUMBER
STUDENT_ST                       FIRST_NAME                   CHAR
STUDENT_ST                       LAST_NAME                    CHAR
STUDENT_ST                       DATE_OF_BIRTH                CHAR
STUDENT_ST                       NUMOF_COURSES                NUMBER
STUDENT_ST                       NUMOF_BOOKS                  NUMBER
STUDENT_ST                       COURSE_ID                    NUMBER
STUDENT_ST                       COURSE_TITLE                 CHAR
STUDENT_ST                       INSTRUCTOR_ID                NUMBER
STUDENT_ST                       NUMOF_ASSIGNMENTS            NUMBER
STUDENT_ST                       ASSIGNMENT_TYPE              CHAR
STUDENT_ST                       ASSIGNMENT_TITLE             CHAR
STUDENT_ST                       DUE_DATE                     CHAR
STUDENT_ST                       GRADE                        NUMBER
STUDENT_ST                       ISBN                         CHAR
STUDENT_ST                       RETURN_DATE                  CHAR
41 rows selected.

Methods of Handling Arrays

Oracle Studio for IMS, VSAM, and Adabas Gateways lets you handle arrays by using the following methods:


Note:

Objects from virtual views and sequential flattening are described by Oracle Gateways as tables.

See Chapter 4, "Setting the Array Handling Policy" for information on how to define array handling settings.

Virtual Views

Exposing arrays as virtual views is a commonly used technique to handle arrays. It generates a virtual view for every array in the parent record that contains all the array members. Virtual views contain primary key fields from the parent to connect the parent and the virtual view. Optionally, they can also contain all fields from the parent table.

During the import process or when you set the virtual array policy on the table level, Oracle Studio for IMS, VSAM, and Adabas Gateways generates virtual views and names them by appending the array name to the parent name. When an array includes another array, the name of the resulting virtual table consists of the parent name, the array name, and the name of the nested array, as follows:

parentName_arrayName_nestedArrayName

For example, a parent table called STUDENT with an array called COURSE and a nested array called ASSIGNMENTS is represented by the virtual view STUDENT_COURSE_ASSIGNMENTS (see Figure 2-5).

The number of nested-array levels is not limited.

Virtual views include the following:

  • The array member columns from the original structure.

  • The fields from the parent's first unique key, or all parent fields, depending on the selection you make during the import process or when setting the virtual array policy on the table level.

    If all parent fields are included in the virtual view, the parent's indexes are available in the view definition and can be used for efficient optimization strategies.


    Note:

    Inherited keys lose their uniqueness in the virtual view.

  • If the view does not include all parent fields, the primary key fields (if the primary key is not the parent's first unique key).

  • If selected, a column called <array_name>_ROWNUM, which identifies the row in the array.

The unique key and <array_name>_ROWNUM columns are generated automatically. Together, they uniquely identify each row in the virtual view and form a unique key.

Figure 2-4 shows the STUDENT_BOOKS virtual view with the two array member columns (ISBN and RETURN_DATE) and the column that identifies the row in the array (BOOK_ROWNUM).

Figure 2-4 Virtual View STUDENT_BOOKS

Virtual view of the STUDENT_BOOK table
Description of "Figure 2-4 Virtual View STUDENT_BOOKS"

Oracle Studio for IMS, VSAM, and Adabas Gateways also maintains primary and foreign key definitions that connect between the parent table and the array tables. This allows graphical tools to easily match parent and array.

When working with virtual views, consider the following limitations:

  • Virtual views are read-only.

  • Virtual views do not support arrays within variants that have a selector field.

Including all parent fields in the virtual view greatly reduces the need for performing join operations because this in itself is an implicit join. In general, the query processor can devise efficient access strategies because Oracle Connect for IMS, VSAM, and Adabas Gateways copies all relevant indexes from the parent to the virtual view.

Oracle Studio for IMS, VSAM, and Adabas Gateways indicates virtual views by using a different colored icon in the Metadata view, as shown in Figure 2-5.

Figure 2-5 Display of Virtual Views in Oracle Studio for IMS, VSAM, and Adabas Gateways

Icon used in Oracle Studio to indicate a virtual table
Description of "Figure 2-5 Display of Virtual Views in Oracle Studio for IMS, VSAM, and Adabas Gateways"

Sequential Flattening (Bulk Load of Array Data)

Performing a bulk load of complex data from a non-relational system to a relational database requires a carefully thought-out algorithm that keeps I/O operations at a minimum.

In a bulk load scenario, a method such as Virtual Views requires a full scan of the physical file for every single array. An efficient method of performing this task presents a kind of row-wise normalization, called sequential flattening. This method reads all data in the physical file in a single scan.

Sequential flattening replaces arrays in a non-relational system by a sequence of rows. It maps all the record fields of the non-relational file to a single table that contains both parent and child records. In this way, sequential flattening enables the reception of a stream of data by using a single SELECT statement.

The sequentially flattened view of a complex table is referred to as a single table or sequential view. You can choose to create a sequential view in Oracle Studio for IMS, VSAM, and Adabas Gateways by selecting the Generate sequential view check box during the Metadata Model Selection step of the Metadata Import procedure. The single table is read-only.

The flattened table is called <table>_ST, where <table> is the name of the parent table and ST indicates a single table. For example, if a parent table is called STUDENT, the single table, or sequential view, is called STUDENT_ST.

The structure of the single table is identical to the original table's structure, except that Oracle Connect for IMS, VSAM, and Adabas Gateways removes all array dimensions and adds some control fields. When reading a record, Oracle Connect for IMS, VSAM, and Adabas Gateways performs a tree traversal of the parent and its array hierarchy. Each record in the resulting recordset deals with a specific array member; other arrays are nulled out.

The sequentially flattened single table includes the following columns:

  • The parent fields, that is the non-repeating fields.

  • The array fields for all arrays within the parent.

  • For each array, an optional column called <array_name>_ROWNUM, which identifies the row in the array. This column is generated automatically for the array.

The sequentially flattened single table includes a record (row) for each array record.

See Figure 2-1 for an illustration of arrays and nested arrays.

Figure 2-6 shows the metadata that sequential flattening produces for a data source with three arrays (COURSE, ASSIGNMENTS, and BOOK) in the SQL View window. The window presents read-only information about each of the columns in the table.

Figure 2-6 SQL View of the Single Table's Metadata

SQL view of the single table’s metadata
Description of "Figure 2-6 SQL View of the Single Table's Metadata"

The following table describes the information presented in this window.

Table 2-2 SQL View Window

Information TypeDescription

Name

The name of the column.

Data Type

The data type supported by that column. For example, string or integer.

Size

Indicates the maximum size allowable for the data in the column. The size is in standard units for the data type. For example, a string with size 40 can have no more than forty characters.

Scale

Indicates the number of digits allowed after the decimal point for a numeric value.

Precision

Indicates the total number of digits allowed for a numeric value in the column. If the value has a scale of one or more, then the total number of digits allowed before the decimal point is the precision value minus the scale value. For example, a value with precision 4 and scale 2 can be no larger than 99.99.

Nullable

Indicates whether the column can have a null value. If True, the column is nullable.


Figure 2-7 shows the actual single table after running a SELECT clause. It contains a column for each row in the preceding SQL view.

Figure 2-7 STUDENT_ST with All Parent and Child Records

A table’s data after sequential flattening
Description of "Figure 2-7 STUDENT_ST with All Parent and Child Records"

An SQL describe of this single table produces the following result:

Name                                             Null?              Type
----------------------------------------- ------------------ ------------------
__LEVEL                                       NOT NULL        VARCHAR2(64)
__SEQUENCE                                    NOT NULL        NUMBER(11)
COURSE_ROWNUM                                                 NUMBER(10)
ASSIGNMENTS_ROWNUM                                            NUMBER(10)
BOOK_ROWNUM                                                   NUMBER(10)
ID                                            NOT NULL        NUMBER(8)
FIRST_NAME                                    NOT NULL        CHAR(32)
LAST_NAME                                     NOT NULL        CHAR(32)
DATE_OF_BIRTH                                 NOT NULL        CHAR(8)
NUMOF_COURSES                                 NOT NULL        NUMBER(10)
NUMOF_BOOKS                                   NOT NULL        NUMBER(10)
COURSE_ID                                                     NUMBER(8)
COURSE_TITLE                                                  CHAR(48)
INSTRUCTOR_ID                                                 NUMBER(8)
NUMOF_ASSIGNMENTS                                             NUMBER(10)
ASSIGNMENT_TYPE                                               CHAR(12)
ASSIGNMENT_TITLE                                              CHAR(48)
DUE_DATE                                                      CHAR(8)
GRADE                                                         NUMBER(2,1)
ISBN                                                          CHAR(10)
RETURN_DATE                                                   CHAR(8)

This table shows all the columns of the single table.

PK‹av\vPK[.AOEBPS/ims_sql_syntax.htmKO Supported SQL Syntax and Functions

B Supported SQL Syntax and Functions

This appendix contains the following sections:


See Also:

Oracle Database SQL Reference for detailed descriptions of keywords, parameters, and options and the Adabas documentation for details of executing SQL statements in a transaction.

Supported SQL Statements

With a few exceptions, the gateway provides full support for Oracle DELETE, INSERT, SELECT, and UPDATE statements.

The gateway does not support Oracle data definition language (DDL) statements. No form of the Oracle ALTER, CREATE, DROP, GRANT, or TRUNCATE statements can be used. Instead, for ALTER, CREATE, DROP, and GRANT statements, use the pass-through feature of the gateway if you need to use DDL statements against the Adabas database.


Note:

TRUNCATE cannot be used in a pass-through statement.

DELETE

The DELETE statement is fully supported. However, only Oracle functions supported by Adabas can be used.


See Also:

"Functions Supported by Adabas" for a list of supported functions.

INSERT

The INSERT statement is fully supported. However, only Oracle functions supported by Adabas can be used.


See Also:

"Functions Supported by Adabas" for a list of supported functions.

SELECT

The SELECT statement is fully supported, with these exceptions:

  • CONNECT BY condition

  • NOWAIT

  • START WITH condition

  • WHERE CURRENT OF

UPDATE

The UPDATE statement is fully supported. However, only Oracle functions supported by Adabas can be used. Also, you cannot have SQL statements in the subquery that refer to the same table name in the outer query. Subqueries are not supported in the SET clause.


See Also:

"Functions Supported by Adabas" for a list of supported functions.

Oracle Functions

All functions are evaluated by the Adabas database after the gateway has converted them to Adabas SQL.

Functions Not Supported by Adabas

Oracle SQL functions with no equivalent function in Adabas are not supported in DELETE, INSERT, or UPDATE statements, but are evaluated by the Oracle database server if the statement is a SELECT statement. That is, the Oracle database server performs post-processing of SELECT statements sent to the gateway.

If an unsupported function is used in a DELETE, INSERT, or UPDATE, statement, the following Oracle error occurs:

ORA-02070: database db_link_name does not support function in this context

See Also:

Oracle Database Error Messages for more information on error messages.

Functions Supported by Adabas

The gateway translates the following Oracle database server functions in SQL statements to their equivalent Adabas functions:

Arithmetic Operators

The following table specifies the arithmetic operators.

OracleAdabas
+
+
--
*
*
/
/

Comparison Operators

The following table specifies the comparison operators.

OracleAdabas
=
=
>>
<
<
>=>=
<=
<=
<>, !=, ^=<>, !=
IS NOT NULLIS NOT NULL
IS NULLIS NULL

Group Functions

The following table specifies the group functions.

OracleAdabas
AVGAVG
COUNTCOUNT
MAXMAX
MINMIN
SUMSUM

String Functions

The following table specifies the string functions.

OracleAdabas
||
+ (expression1 + expression2)
ASCIIASCII
CHRCHAR
INSTRCHARINDEX
LENGTHCHAR_LENGTH
LOWERLOWER
SUBSTR (second argument cannot be a negative number)SUBSTRING
UPPERUPPER

Other Functions

The following table specifies other functions.

OracleAdabas
ABSABS
CEILCEILING
COSCOS
EXPEXP
FLOORFLOOR
LNLOG
LOGLOG10
MOD%
NVLIS NULL
POWERPOWER
ROUNDROUND
SINSIN
SQRTSQRT
TANTAN

PKbPOKOPK[.AOEBPS/cover.htmO Cover

Oracle Corporation

PK[pTOPK[.AOEBPS/title.htmw Oracle Database Gateway for IMS User's Guide, 11g Release 2 (11.2)

Oracle® Database Gateway for IMS

User's Guide

11g Release 2 (11.2)

E12072-01

July 2009


Oracle Database Gateway for IMS User's Guide, 11g Release 2 (11.2)

E12072-01

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

Primary Author:  Jeanne Wiegelmann

Contributing Author:  Maitreyee Chaliha, Sami Zeitoun, Oussama Mkaabal

Contributor:  Vira Goorah, Peter Wong

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 software or related documentation 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 USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software 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 which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

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

PKFPK[.AOEBPS/preface.htm Preface

Preface

This manual describes the Oracle Database Gateway for Adabas, which enables Oracle client applications to access Adabas data through Structured Query Language (SQL). The gateway, with the Oracle Database, creates the appearance that all data resides on a local Oracle Database, even though the data can be widely distributed.

Audience

This manual is intended for Oracle database administrators who perform the following tasks:

Documentation Accessibility

Our goal is to make Oracle products, services, and supporting documentation accessible to all users, including users that are disabled. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Accessibility standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For more information, visit the Oracle Accessibility Program Web site at http://www.oracle.com/accessibility/.

Accessibility of Code Examples in Documentation

Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites.

Deaf/Hard of Hearing Access to Oracle Support Services

To reach Oracle Support Services, use a telecommunications relay service (TRS) to call Oracle Support at 1.800.223.1711. An Oracle Support Services engineer will handle technical issues and provide customer support according to the Oracle service request process. Information about TRS is available at http://www.fcc.gov/cgb/consumerfacts/trs.html, and a list of phone numbers is available at http://www.fcc.gov/cgb/dro/trsphonebk.html.

Related Documents

For more information, see the following documents in the Oracle Database Gateway 11g Release 2 (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@LPK[.AOEBPS/index.htm0) Index

Index

A  C  D  E  F  G  H  I  M  N  O  P  R  S  T  U 

A

accessing IMS data, 3.1
ADD
atomic data types, A.1
decimal data types, A.3
non-atomic data types, A.2
scaled data types, A.4
advanced data dictionary
See ADD
ALTER statement, B.1
arithmetic operators, B.2.2.1
array handling
modifying default, 4.2
normalized tables, 2.4.1
overview, 2.1
sequential flattening, 2.4.2
setting default, 4.1
setting policy, 4
table settings, 4.3

C

case rules, 3.2.1.2
column names, 3.6.1.6
column names, restrictions, 3.6.1.6
commands, passing to database, 3.6.1.5
comparison operators, B.2.2.2
CREATE statement, B.1

D

data definition language, B.1
data dictionary
tables, C.1
views, C.1.2
data types
ADD atomic, A.1
ADD decimal, A.3
ADD non-atomic, A.2
ADD scaled, A.4
data, accessing, 3.1
data, non-relational, 2.1
databases, passing commands, 3.6.1.5
DDL
See data definition language
decimal data, packed, A.3
default, array handling, 4.1
DELETE statement, B.1.1, B.2.1
DROP statement, B.1

E

errors
ORA-00972, 3.6.1.6, 3.6.1.6
ORA-02070, 3.6.1.3, 3.6.1.3, B.2.1
ORA-28506, C.1.2

F

functions, B.2.2.3, B.2.2.4, B.2.2.4
functions, unsupported, 3.6.1.1

G

gateways
data dictionary tables, C.1
functions, B
restrictions, 3.6
SQL restrictions, 3.6.1
SQL syntax, 3.2, B.1
GRANT statement, B.1
group functions, B.2.2.3

H

handling arrays
normalized tables, 2.4.1
overview, 2.1
sequential flattening, 2.4.2

I

import, array handling behavior, 4.2
IMS data, accessing, 3.1
INSERT statement, B.1.2, B.2.1

M

metadata
array handling behavior, 4.2
representing, 2.3

N

names, tables and columns, 3.6.1.6
naming rules, objects, 3.2.1.1
non-relational data, normalizing, 2.1
normalizing non-relation data, 2.1

O

objects, naming rules, 3.2.1.1
ORA-000972 error, 3.6.1.6
ORA-00972 error, 3.6.1.6
ORA-02070 error, 3.6.1.3, 3.6.1.3, B.2.1
ORA-28506 error, C.1.2

P

packed decimal data, ADD, A.3
passing commands to database, 3.6.1.5
policy, array handling, 4

R

representing metadata, 2.3
restrictions, 3.6.1.6
gateways, 3.6
SQL, 3.6.1

S

savepoint support, 3.6.1.3
SELECT statement, B.1.3, C.1.1
sequential flattening, 2.4.2
sequential view, 2.4.2
single table, 2.4.2
SQL functions, unsupported, 3.6.1.1
SQL syntax, gateways, 3.2, B.1
statements
ALTER, B.1
CREATE, B.1
DELETE, B.1.1
DROP, B.1
GRANT, B.1
INSERT, B.1.2
SELECT, B.1.3, C.1.1
TRUNCATE, B.1
UPDATE, B.1.4
stored procedures, 3.6.1.8
string functions, B.2.2.4, B.2.2.4

T

table names, 3.6.1.6
table names, restrictions, 3.6.1.6
transaction
capability, 3.6.1.3
integrity, 3.6.1.4
TRUNCATE statement, B.1

U

unsupported SQL functions, 3.6.1.1
UPDATE statement, B.1.4, B.2.1
PK00PK[.AOEBPS/img/metadata_model.gifFGIF89anqod!,n@H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳgJ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳh(`ϷpʝKݻxٖ[ fHxpℏ >|{3k̹ϠF,Ѧ!:װc˞M6l.[G, Nȓ+_μУKNسkνËOӫ_Ͼ uß/Y>h (@ `Za 6acQ(ae TJ!e!zaA#b&R8bjy 4h#2޸^:@c| a{06dL68-ЂaXb%j&^n9dg٦sI tigGrޙYz}Y4蠕oJVff~(k>♖a 觠zEj{TjjkgRYa!ioJ+jyrh"챛*Iުܚ k=e 䖫RE竵ƊP% /QΆ$oF v 7'mWlg| ,$l(,Sz/s,43z ۺ3QUJ^[Hty7-qoTW\w`-dmhAKۦ5Y%j qKPOoA77_p>wY{I.yD^ӂ]mkr-c^+봒鴽='~' o'OgXx{~KݥZ!ujohz̏FۨoB׈ HL@5›=p̠1£  KR]J(*gHÍPQԦE-2ISU/|P\UFLboĂЂ .X.zq%7tő 2epca(:ыZ>! IOJL"tȉB D4I/Qr<%-H 5Ĥ(!Y/-#(1IɘdH#QIZj ̥.o^rloܥ01KsLt+Xij[>5QNӔ1MP 7f7`PL'e>grIyn),fi.T@ЌtІ6`5;hB'J#vog'QM2=fІRMnFMiY@ O:-?]LpiqS=EuXRT4@:è܊56hX^ѬEԳZ&XԶΆ [J׺xͫ׾PJs>ˌjgeXTY,zHUIVhӨH [WŴMPԩnvmnEXvUc7[Qvc izȪ& ,ۍ*WVEB6G^+ZdImOwopnD:W>+9RSZW#'uY\B/O; n|+S'Y؝⛰&)A Fvx0Yv8αw@L"HN&;PL*[X˪_z`L2h c6pКL GHyπfuB'$g0s"By y6SͭSc k( 8c欸B%z5m5PD7klN l`GדnMj[ζn{;:m쵸zqNvA4mЧʛ,8$%H+)~-;!Re&Mw 0If\?x:Jt$wGsHA`WO157^;2'9w~%S61[ַ{l:.N۴]9CgR9 1jLaWvALa]y7%_W_zeQp&-icv ک~UR^~25b_^8ͩEyY7'k6Z%6i8 8t={l_}r_U>9Ï*򋟛oiz0C*vBoWE V%_5sa~7LcZ*BKhHx~`:!rnaQyG^vS^ВV]|'O4$'xJ/OԣsdUb'xEx;xUZ^O#?HX'[ԅz^G PQƴcWAxGR_)&tW,t%3Dý0᤾W#[#8y߂r9i雕VB; zA87/NO*BSLYrX\Zhga,ƫc㉆3f*h<ګ'eƶ+|7ȐFɶgD2.y<\[r7Odu() $S8+]s9ZqƦ 3czˆEƾ!d6\{\BT\N6UO#M+M\mS2}Adw>N529])h(<}rɆ\u(xhrX]X30}9_ RVB3%HYfه5Ȗ/_ ldy"ܕ,,|؈ɘwͺ4F-4]<;ؚٟxl1{=2sʹg!H(a5eǕc}7@7s-ͬUQKy8ʰE$Ι &ɂ!%؞2=M<ϒU/mݤQͶ9=;rɤHV³=j}bИ Lnn^{0# ">$^&~ *,.0n.^3]6Q:P?N"=NcH~G-X#w EwKNM.+1 ]b.z}MBDLЎT&LV{XQՇ7H\m^}huS~ai#ƞ|]jyyVr8]HtXӓ^jXX}}]tд|Ӝ;4. әAͫ0Uރ c^K^tȾH*>^~؞ھޥ^[Y6>exSIvc>~:ޔZ3'BʔZM_>ʚ˛S6U;hC^=ϧe\{oA;q#.a*?:K/ĽIRycʼnIg߂߀(OMXAjNU]}=\,߄lqHĘq!=~X"H%MH"J-]T9L5R$P6}ٓJEETRM>UTL+VŚUV]^VX^EVڳkݾ;5@Π@3]}X`… FXqB.v9.t/JޥbyG(;uoɽ|.΍?Jo2&ן C4_ㆾ* MR_l }-SK7>E  @o|D%!P< k' >:Sb^W';m;\FBZu]CaF 9I'sl$KLF䑂$%Ey,Ce*5Ne,J&ҖD-;K^3K09LbӘDf2Lf6әτf4LW#ҚMnjmg8/MqӜ!9չh' ;PKKFPK[.A"OEBPS/img/array_representation.gif3>GIF89asp,s  $$$$$$((((((,,,,000444488<<<@@@@DDDDDHHHHLLHLPLLLPPPPPUPUUUUUUUYYYYYY]Y]a]]]]]a]aeaaaaaeeeeeeieimiiiimqmmmmmqmquqqquuuuuyuu}uy}yyyy}}}}}}ºƾ8ʏ.(\ȰÇ#JHUjȱǏ CIɓ(S\fX⤦͛8sɳϟ7mب`ǘH*]ʴӧ,0p%իXjʵׯ`n ԳhӪ]V% UʝKn-~˷߿%bvg̸L\ W94̹,؂ي,VMKY-ŋ/W^:6V`}.NxZ!.0[XnF,bAU:Hg[LHrA|ه OIe &[mjFC[U_ |Vh@S\UY2(U!` G\(0Ã9`Wu"'gaHQ5"fA@T6I Bx"%Yxda8qApɖK`#y aZ@(ȩM]eh\h9 xJhX0説~G^jH^DzL1)sEXEx@X!Ђ,V+fUZmn+.~k.Ꭻeݞn>hN`4`믌bw~v>J 0jiRKqmIlYl{$2`%|osq&W֟qyEAMj"?w H@;t^4ўؠf$R1twBb< ilB:@u7ZZ`ԅa^yp[ɁlFi:Wk, I`AJ%f`@\l-~AQW @[: zY/>Z@a؇a}qAFF[B. ئ lƀD  /6D na )X HoR%bN..T`VLepZ4&HU~SxҖKeŒ$Mp0UӘ\ -I \ᙬ:H2DMj\6CuS[@@85N \1v~;g'+JzVɞaJ&@. '$TI$1RBhpDSYQOc(GP4PgsbP+Q0@i RO ]hNgG?Ѩ&SRJ XB70Nuh'qJU Y5&yFt{c%YJki*M,Ǧ)U*] yի>5*Ǯ%ں:BM.Xٛ6%+J}5lJYuJh2 mlUnm|2s.hdw~T.| 0B:(]v%b-t7HF,uE/Rpp>_Pw%Bx@ ,_P@p]S'L [Xw`{X$>C70HA3,F "Y呑dr>'O;y$e-ʈ6%N,{ˠ7BZGgIBPFW;MV(!հfAXyMlPLսA]iLz ]H$H-]?$/I|[Όؿ0D_e~e|%e0]$VX $ep[~%}hw%'s}mtg Xw%s]V#q&^㥁]a^h^$xee'( xe_-ŀ1h~)6`` ׃-!&a3քNhaցFH84VXFXa\E^(KoTOXfxG5f_aH;HdDIkmGv_7duȃQv[Qe}w[&\e8d\qf(([AxQgxֈ8ZA}XQhFUH'WHZ~8#i![qjWjjjq#k|`l4qq%l#6/mFئm#nWn%2cn1 ϦwXwoux1=C)pNp pVpߖ%W(G658Q!#brr*'.c$3]u_vv^!'؇O"$7$L6O%,2uU Wё ;9Gc'Xn)Гrv$sw70,TY/obz]pF){b4Gryp~–Py6هq9uzv2C{n9wll|uؘG}vyo)} t}'mՈ ~Y~ȋXrIs,yY9*q̩5 X{ȉɝ*ɁHɉ"Ȝ&X+/xY_z؂9H)>(`C`ٟ`v r:j@Zs>*/Ơ iXꆉ(BV%$ȇ٢HIȈ(I?z' Ȝa0!I %NjXJɋRJyFZxx!Ÿ3#1jHY~:t۱h%W7|(:_"`1ݧxe' ""WA )m5nJ|zogR "-R='{5qen|츃 Z"E(y~sR#b$v4~z$i*h^ѫ^Ǔ?q7BY,ζ3|"t~lwo9Cz1e;Ǔ[tj4Jc .yN`vavڰ*zB* xzy5+򯊹{HB~)oNӐ TsѲ}1kz瓻Y+ǒj=4"yslaZǴi[jj;slX7iaɷa_8\hW[v뜅ȸ%Ah ,[+k(&AC]IF&^C%8 Fi&*ZJ +c*Ӽk=3:{#CSU;Z O B 1CB p 0? P۴H+3TMPu[-K+ ?-!A+1h<+(a<,b:+v:$r!9b4ò,V0|<}MV{ޓB"()@x=m2/%rrF&jC{5Yl,"VY8a&1F&GI(Y4RL"rt\B0l$=x\)3l u4&f*cYRHHBo9yDg)$2H@1X{+P#paqS6>bn,9qLɽG¹U"lφyѳWͽacˎ\"R"-r񛩦-Мi,G1$XϑTSChDЄ۷S0Z%G\E?-h !Vl5?|+\#>g}WyUІlYےq҇X.]s) $63V~Ӓ ]:ME" +$ZSV19,.8fOn:W/{R.a fc}M*.k-AuXץ79Wr'»]q>;BZzϱF]S>rSM\S"0>6$6#V&  ٚ S+Ě `PpC](ฯh܇=!+`h&Aέ-t`6`@n~@aTM=n#P^ !G6Vn!^!!>|Qr(*>,k246.V0GpߺK1;<N`%@2 ބơI^7-I+JZ^\~H`$>Tq柛݂.!)%|O >(% >@(;`knS!^yh B:8+$"n4[0ǎRE¾p<~P+H)\"%wsg $s]fQqR)1KҰu1^@%*_N#Or4߱AW:P#a'vY+Ds$$'X\0kw$26h'_xjDO<_9neKaEbq@b&^/r2[U1z+Wi%n oer.2EPlqb Q+c+<1it+WGŊ}@?E{2RTqZ6_Z}Z1;$A,|:=|{j'دW0 #'߯]Ur)!nR>%`u=?#1 Da>QD-^ĘQ#D#"~RH%MDIp #)]L)BI6ęSNV&TP.W,̤b*UԍP*pQUV,~4+PEVQu*%`}Zc u J׻Jdʕ-_ƜYfΝ=W~ťMT|Zic\[lڵmƝ[wl-}FPÍG]չ#]xɓ _TnݿMɧzd0@@"Ġ/A2#B H"ALI X9@4i |0`Es;Kj! 1q#J 2Jx!IԮɐX` )Lk+)ds*$< s:3C#Hl3O@@8s:= %.PE T#v`9G "R4T@!S@bSv!'+tOС!/rV) 5WzUX V v #YXdՈTSNU(ULV lt_u!)uXMp!su 0ZՁ_ mVՋz!Xlnv#'u(v906vu_-``U݌\Cf97"u8&Vb1nus#bxfaV؉}ce`dZr75 7"uȂ^Ljz_~Ԯ9@s5ΜDg:չNv2? 7GL_6S+N|3<?9D<%hBb T͊>PuhF5hR$zd  @ l`'ԥ/iLe:SԦ7ũlL !%H SRAX5B\Bj] - NWXD+ pM6 5 ,L R0JA]%Vm, V0߁/>)||VD wn}k;H/! ̰, G !&֐&- 0HFr&~!_e ]I-s3g4-L lq`vwsUaʲx=D.L/kN"3&D[@pL,tڹ".b6!kz̳rgc4+3!͹ ճ4,bzOlGz">eCZzwdJ/yKd@#K*ɓN^(O ~|t` Ysho0Kd 6q/_fRw?~ݿ4V=б~Wg???y7ckr0|dr@ | ,+ QT ;@ t  . '`s @S`AP@$@AA!JD$Dpwk;*< + ›0=; X8ca 0$b6vۈ/X#L0$, 1( ,7 f jVx\r+p C2C ( .2$۹zh76"dlcBxB`D0@,~iLGCi1U;24sf'p bk, FWiyHē6sw!w0)6hq{TD`O zy`AB٘ˁ+Qu9d3#D">`D}˛^ra}y/4p392d5s0G3.vkƍGAʈ𱫱j)cd0~"pzAH{YH@ QԟZ۶tFyԁƭaʑATKH-c"@vCC2aÞ r`ZXL)A+ÈJR͐`Mp|T zÀM۩:ܬ*# }QL=2I4܈C.X`f6v9*tiZ 1!6<2RRI"O{0wS9ɉVYV[5Y1iF4U+; OJ ܈7yVi҉iIˉ/xKc%"TN5Vyڼ&;S`؈0 .ɵ%55M&%ϽZ[2ݓ&T] Ay]̊,x%% G^8]R^謾kފ' /^X,^ NQ?Bۃ8ߏЀZ!-__ _1^qÞ#C;<`Y` Ds$$4 ,``_8B੉I,8KdLM4NiF4E8aPsɆvJ0NaXa28TyኰNE&Fi1c6e\Ԭ1tF5xbb2*+nF@ G)Edt6u|9Fw46b#:]cn+EdR Sȗd8,EE5xIqnXnuL  9<̰ɗ"+\H[Kc6A K_(x[H XeS,JN{ɥ4pK暤Ggv>Lc2@ 8 =ހ1e`!OA˸qKxPalIL6v4ir ~hh2hdLqLLL<Ơ1μ^ٕ aO*9djfii8ix_jj$iҝ!9]Nd-6kųs6<l{Æ Zl(C>5`>lW~_6 0Xڭ/˵lFNŮll ]^Mm5G m-Z.m0s󓐬:w%h~l옛lFVxk묅*БI5HT>2nȫ1B u Iup}HaHX1QR?@#8:N4q30}YtjqNuH`30df1NKirx*9N=$` zǎa BwRnÛoaJrs71t1-vY&}w8MwQw?$Ɓ'~?Vgc{{犐K;iΩ5kz|AwQ RJ_Q?߲wWy`y8fIfؘ^ x/yzᶁb Y~fQ 6 rukP&kL2f~vѝ^)G{z]轿㖘tqIz)3}U6i-ڝ!Cnf_c@㲿Au\}wFx9F bUK͟{wῗ+ga~e' JR~bZ't:FR>n*[_BϱH;H_/ԶG,h „ 2l!Ĉ':@ES.#Ȑ"G,i$ʔ*;P)aҬi&N1`ʠB-J 19o)ԨR!)ąѬZru!d˦`ǒ-k Tmv$JBK.޼2~EoC3^ʷ XS|r˅'*s5L0b40H&T}ز)fĄ!@SeH`fMxc7@PҧSn:ڷo@EkƑϫJd!s}PIhA9+"тkJyDzj:lT*:핝NdI!EyaG莻.!Y1HRxźZAoa-Ĭd+.l:X ;p&d8GV8PDG@\p:<|pK:p`R8Q +̰daxaa9ͧ|j*mCG%R$Fam4%{tі-홰N2S?3{]l0EH }S:ڛg=9[XwkE8 :`wG+/٢-F@; (y[E93`BA߭Z=^M+$5 pA7G;t[aA0[Yi. =cǽJj⫚`w  8`;8P. v b =6v1 +eАCB*h! EBw++@ F 2(UrE`U| v,ɇ( m[$ jRT@Gǽq!cd=d!,MƠ%(KPfHGD B%d LMЂ )BD1{z&P8T @ `R\{&4)iR֜.@)䧏![,,ɉNst OsL={#!ZVi~q.$ApF3эr(HC*ґ~46YgBm Bԥ9'.PS3_9Oӂ]"i\ w&5*|B4U}J_j2_Xph՜eͯZVP x[Q&st@WޤjkMP5Ha $YTd%Bl!*5{Ou1 1z +3l!oJ<9-jf3 )kurۼ Os y8A0 ;[OҊ!EKv-|בnt͡^$$TζKf7 ks `> x 5iVl6Î9Tyk^6pBP"M$L߭oe3\K5vRqadYZ9.rT+W& N(BΕ.9 V/f.r߲\KohІ E;׆mI$҂lh7mzZ0=2RʤS1Y`Y<5[| z,>!+҅z6gll@ i %R=%T6.`p,Y *mvB 67.?8ps`8j:}04a83s8C&6?yoV,y]\/$4or@A="9Ѓ.t+a %eN'xY8ԣ.'pJvjA@¶KMD|5BPJʻ#[A XjvfD L? h/H. &~je,VveA(˧s@= Ƚ)]ߖs@PNc[Ѕ045=Ӱk$8iG2L%}}Z`ę&y;`Q *{ +:'Tp lA23;@\Kmj<_фm OG&dn%bb:T ,Yvg~WT&E\MhqĢi6jքڡ$lBDmNfBfFpdlA'E$N]8B@DtzX'B`gDvxw@NКRn!s'N`x~ {x>|z}'|@v#(Bcz6~^I苡Kވ_o$h2hBB=hh\̉ h}r(B26B_X h#m耾Dx茢֮_emx-Oz ' MN|_ih}Bd)J"L yy̗Dy@fD怚 vD L*Db6!" 8z<~ nVʥZgD'vtsK$ZVfhDLR핰[+N5%Uĭڄ`Ze+lkMAPQ. Qi@rNk^@'$IObjD&&t% NN,^kA+~nlRuǺȆ>,NHŦʊ<lNI0 tI`t0R"ʋ3ҐGدOh Phpt (p/O ;oxlQo߄Yyq>XyaGp// X J@q@T1w!y dl1$sB~ pg_G8TIq˛#DP }*eLrU'O|jٖ2D.7rBtxv,,@-G7n9l/+DA0K'Nr2Gp@ 3gD<c3>PK[.AOEBPS/img/ims030.gifOGGIF89aVTW \cchlq v#z+(~+)003WI3evgrV? 6` @ 8h? @Aj}(#2(bF%Qࢋ^/RO7;蠎?"F b 6b'%7a.@?Zre&raaiAhiQIg[vrVO{g''E"Zy2 壐FzRi8kj馧gɢƨ)~jJ郌ꨤkA6h)ejg_r:&:f̖ D%Y`tzZϵ~kޖ;n{nRZZdFX,A&'!$Q{!螛.{`nk ?o^*l6{j*|4|2L?s5 B5[LqPG k +&,:*)LQI].`v`6nm!tǽk+|ԀN%*^ʧ}|uÍݛon6e-騗5zU )?.m+n/3:hh;C|oGo獵nY/>䕴珯/˟=_ xܟ|U8'H Z̠z!UI>@(L W$4gHC.W#w°/5  ?HL&:P!ZVJ8.z` H2hLטF pH:x̣> d$BL"F:$$HJZ20ct$/Nzr$t?IR"4&OVR +gINr̥.kx] %0IL Lǎf:R4IjZ̦6<v 8YD=K:v~'/MBІ:A9 r*lͨF7юz4HA:Ғv4&MPҖɥ7yA*YDwӞ@ PPHMjDuԦըNjO*ժ:V)AbКNt 8N ؔ5g-MZAְȴ4MVmL^;Wu3[W!u ,-[j,[%֭2)$Ƕ5,e=څL#KhO a\+rZuY{[ p3r܃҂ȴ^&vi]5لWe।n6-zɋ[l]悺 y7Je3 La]l߮yoK6vpޮ"0 w""=`/xI" xM~&^͹YMvB0p\cg ïg΀O??\(7hXR *Հ Uwdt4EW~6  "Q$Xu(Q*Ղ~k.x8Q0<(#>B DSϗT"WNGO(NQ(UWR77^xYȃac_؃(хg؆#膚R.(+H(h "0(! 4,Nx!x("bCx8$hU؈؊芊HhQ88(QȈ8M،OȌ*~SHW}88XX0ฏ" Yh %YT{5؄Ecؑh؍ #Ղ IX),)R(ZLz%(#9ȑDɒ%I8>4@9h2^8SR9^; ?ii! Ћ.YRh9! xIO_Wy㔌+A)M}i! 9Pm/٘X(SyohWH:6dQɓXx8g) i99Pp؈ (y9RQ[ I9(iUpig9r՛♟ p(ʞ!s1XQ栟 @Y0 8I htb ꛯjz` 46  7w֕٠E䰢 Zkp z ɡH(3ErF Z@Q@ K@DGLZ%HUꡐ(ᔣUqZ*d\Jy^D@Ip6`;@KʦO pH)vjZxj=ʁl~Q* 40 z (n誚RuguZ?ک A@jPʉZZW ʧ^Q*I($Hb ब Nj_ꮧ)uxڇz" 5@ZkQEȗ k Է+f! ESS0zȊڨj)eڡkXӱ&:>ʩ_)Dɲt ^ Z*ɍ®S[m:괹ڥz( M )R0 9 5^/ @e4WE@{دٲL)sI{[+ U0pm LZszrtۮxj[˺uK:jy`)Q D`:;@;aRۙu 'ʚ~yqvqx{O_)U;R Pjg PP BkR|p{"xZP(سn ; ޻HX Y лۭ<ۺ[)5|NOޝ~!Z|F/lۻ=RK E|x& +~qdo&,%U٠ WSM8ko,HāH͊@ݼpeSoZy)~ȉ ӑ N M _LsxW> =ʢLۉiʱѾǏcd~}d ݏ CKzGt+}$˴W䫰M'xݧ.{7/vwr=]B4}ռ^w}!H} k~8nkL5.ξ_ɰԓ{Xܧ-܇wwNv>bd:}m V}t[]Hkn5N\cؓ l Z*nCoq L0/Qe{ڟʳM^4,ˍGA\ ãK[';gH= yG«UϋJ94_{jHZ`{ ,k^K?{N_X+q/ߜ8 x2i+s-NO3,:\1-x ?^A^/ޯT?N_. DPB "BA(OF=n1$H9%I+4SL575ZqtN|iC9Riɕ*A´i3WIQ^59V3V}Ulԯ)=6QCmݾ]qb .f ^3MWߓNKO'=Z 4Qt0TcYѥ=~ tg҂Flڵʥhq!ս}S5VVEflQz9#F ѩ.]m⦫[!G?VΞDcj~RowJ`0Aiƨ&2n2 덿p+ ;Cl^ND1EWdE_%ͮ.Gw6S~$E5pBTEHє2J)J+"!tKƸh L3b ,&APLID3,в\hK.R!K<:MP8=x f ԳJ7tLS!?t(ЄP2EU?zHqp2l2L5MU\4OAkƹVc3A⬈bDŗ81=jCvbW`F%4ScTD>K˝]w^[DLb CR ,N*,3xҪAK&:0..Rx{U0}QP ԫ2 9,m^c"ke9m3hh=:,b @_~o[Ԗn,>ج++p R@Ώ r 2l]ƹo's ߫o "u g5GxuA!BHz:=g8idV#G#'> ʋjÆy9sJRA^E| }.Q+3+'w[_&s:Yh& =h eX"#5^Z2EF*nx c8*`yӇt}nyn—eL(_s@# &e^)8|:dE&N[$$W$ ( =Q0((2תMH|2 feS[6qXc`LhRS Yl.ڥ7'%qќb|3+9(LSO07%߶O}5gE5Q5)Hz $TALGURt6ۜ E+j\ Ӓ,٨G%R\<&'Mm5.R" RS"sT& ЮgY̳͊E4\VY V髮zSaMXݸ 풦U9XyI[:@lbX6ֱ,bV[?z0\tB]Zң^X$fIA#$5hoga4'.m}9[ⷀK0 a~-L[X `qw4hb0~O,s#4A,b) krV(İ wo6r 6>F97=kl29&m=jIOR_|rץY,G=dYYZ\2la}=#C9^M]3Ԫ-ԧ^])z76sh>mpjȠ2v7iƢ\UדZ\#ͺB~.om3{fdXmەa%JG ц(KMFh_l f)! l6gUy o BJU!J]B+ަp7M16G6X^yEA WhBAa(yЅ>s'8F7υ!T]YlUV׎IVW.l(/ WVq*(St. zĎw.kaĆw Ӆ/$^w#*fLlg>"g]/iw1y\U}sK$zVǼ‹\#oS^7)$ OLS߲O5vnuy>^>y黼>> FAyY1cܻ꫟գ?>E㸄?c2it$_ǛƙL3m(S(oH]FDž_E݋X\5[a6v mQP;x\`t[^݃eM(N,5~ŀvarDaVa6܃XJVv:nZ5m>cD050HFce(f5m.WN 80oaECSY(udS(]eF]l Zރi^P&aWg j5eztd~Vve 6Q L؃KȨ-Xij݄p).aZ0۝eLvmn=a,a-i@ކ<5aWXF.[a](>5oF04Hau.DCކvb =cfj܃bH3hjfqԜ0Hc.rԝ8+i%jHdЅS]VOjl뮾4h{Veh镬G-Hh(.Q`j6fNP]>m5(p<\m W>iVm%G1R۴$˚dD:oH̆+En^Ha6~a`VfW0݆@M۠Hmg^3 n'.->ofo>fg_(^VX ooza~?[ooնfh]=Ю鞘(P'v5ppWgzaOݠW.rјD >⸄V0HVz5GBop Pd臨5WJ87^FܞoWU0beDHvpFa[c9z4aX)g3 pWp&\IWhq Eec:t6ws8/,Bh@o t wtakpPc8zl5=os؞MUF<FQa%U9 G[.SjFpuII6f9*?n:Tv_xvErez g?/`w(Gp.rCGj~aoxqgxGOm;ǍggYGGʈSNyoxxep\r_y^cW_yx{ pD^grl=ņ'n`UL~yG/z7yFPpLz/?Q{*{^f7ZIzowymʰSyyn\5/d/c͇:G,O}zx{.p| o`{GyWWw=uFL<|>y~ne~Ɵҧ|bY|gz/^t=bN1dp/m|b4@5"қXB)%!DzQcd -b$p&=WjL'РB_J25RPR 5լP&Qk. tt kѴjײm-ܠE̹a͇v]ܳQ[GvS/̾!J(dzޥKS&N*wdv衋  %FN8q\*dEHbָe:WBYc^"Ѣj Ƙ|N͗VIZޤX'VY%h)=֘cE>O,9vd٬ XGZoZo+PBFDujcFkrT>-V[N kl0[jF֬K,6a>E1]Ŕy.\|B{mVkZrdž*Śmؚ22%97߀mWΜl`*&3,K85+%-QBY54[3m5;D]45b ucbRPp'\62A ^=pxOQy8W6߿?ϦlNvטDJA9ܞu%:o:voӣglZ.߶F{̵=5mݣ3+'+f[>xwwWJ^}3Pal9pq7n-;!|- G4nTh5u{^8<?AX5R!:lS&!}CAaG67QR!0iٮf"5?IkxijL(4B 82f8TF7fq$?Q7n}F6{ =QkĎT_Q " ;NÂ5g>McWop2(ȡҨ(RMD 9,Ñ[tO9=6R""M2bS"E+mrNb?jƻSDg6rFSb!9RF>vS(; &#"%3;kHT6iT@ݡH;NzCG-h?) Q WigR55";`FlÉfQj3ve5x׷̫;(6f4_ UDc@x+A] i>4aWVm5cekWvU&YQB(UbYm"ta ΂w[gVnm̪Rz1 FxB`&HC׹}cb -6g@*:թTT%WV8G4t泯D P/A_R[xÐa"H)*Q-6 a7wk0CyH`2#z|A!568L]#)[@x[Yo{g5[" >vXI}j0ýs5w yk&%d/7:DaqUe@x8T96[Ejv}9ʱEPmH OЙwvW< d9pP׌p jkv.+ִeW_cѰ)t2 \ϖEZ E3|݅YgZ4(4YQl +L53U< fjS<~5}=d I}%/HZW3ML-zw%=E/݇Y (dk}W0Wl O q`LjV xcYαK0a`3HpEg(^m,qx X)mtv3-w VP6+ Fp(I> cƲ3b~/ o1Y6Q F+F&X@;yIkeH硋һN 7IA 6,ADF^8F>%a1IHaqxn!^I4aamQ 4@Y&A0!L"%V%^"&f&n$JP`<` )E}+~%h + _bͼb,. D& DBbBC!-mD|,\(0v /",$bm_!1M"f4:N@lB+b,&:0*8dA?>00 * *(#L#*Za%BXM$Aj]<"F"xL$M֤M$NN GW)eQDC*B,] %NbDT:_bRm`DT2pHeVVFKNAnx%Z„UBVAMFy%UF@e]>jdDQeUf%Uڄ\%ReIRfeR&^ښEX%V2K:SBh܉b %j`De&f]kF&h F_pmx%Ym0GCX~ufm>Ic`tLM@&HX:^0k&#,gak&uxy%lIeVfw$) hd(2(PewMLm'vNFFev4gQ*FMHNsmFN,(J@B8ąe'#$( T.hEK]z~hr]d(|(Aب焺fn8|$~}&b`@\]FJ{RGEh|CqeWF`0ZfXiHdB抴HFp0FԅX(tXn#j8gfFC̿fjvY↢E\&L")F(iVnjwȗH Dɡ8I<  ~|Iɂ0I H 쇏 * k)Љ܉`>d+ɐ+h >*}+*S5r m ǖ dPZ+|ˮD . l~ ɌfLlnlXĚu ZKf,ϽkR':)(͸8 d,o mm mL۸,-ԞІD T,B˾-؀ =,Ԭ͖v,)KFϰl\P4OɄmOhxz n(.\2rP j%tprQAbr޺G-.NFmI.^/jjlNv4/Zb/joro}Ng./[x/jPoP/͂obb2o/Gޯ][gp^0 EWWSUS0}pO300p0[  0 P#O pwcpO[WNS #'.pV1ǀƈƐQ/7wqƸqq/ _q1(r12i%_2&g&o2'w'2((2))2**2++2,Dz,KrQC\.#/20 -11[B-rtAD5S68?0?@3683998g:3;;3<dz<:=39ӳ>>?3?@?t>t<7@64C?4DGDO4EWEK7G4Ws\s6os77$/BJHxA?l?t4NN4O44PP5QQuO'R/5S3Q?P7TO5U4T_5PWVouOcWLE5YY;tMtJ4K4L4!oIK4NK5CC]5W'Wa6b`+ub7a/6a;d_5dwd ȴ H-gwg6h `۵J^4_G_55JuKl_wF_n6oo6ppokvh7r'wklvmvvoOv?sx7y/tywy7{7VrǷ|{?\w[wv?t7_7ucuc7~o7w{7x_we'/87xe @W_8W6|7wDԷsj#uK79#8 x88O۸8/{8+w}^ 8vKs#?Ā_94G8gk69?4igvv ( ׯu~w9Ouoyo9/89cyw97Ë9ׯt~8LSyu:d z'O#+?:{?dy0479t;'/;7?;GO HA_go;w;t/zz69{zG-KO6 ;;@7?=#ċ|mc|Ws9o<:#ٟ=ڧگ=۷ۿ=ǽ; D[s;֯#ȳs3x5s/>7~}#4<;>W㫽俳o}3>߷DB=sk}s}ΖEB0>P/=[>B DO? /X)lA l?w?????ǿ,?(3C_?@`A&TaCAAPGD:xeԸcGA9dI'QTeK/aƔ9fMԹˆsU_QG&UiSOF:jUWfպkW_ۓlY%Rxm[oƕ;n]wջoߟj b(e?uFb 8&nHReb`eZriАx&/yreb1$}#l,Rh$}2&Y[6Y&I) , Zz["A=0%iVo艋 kj1o ʩ0B|ҙ,*F]{hоΊ+l+/uVId뢘l ^l- G{/v-*՚:骰& /;,F<m y %ʳ,膌 /WJ=  ^ MY͑؎J-`_׊̊Qs8ӫl{dodfy5(pC=LWXxX7>S 5n^7.9}{'xO#"JS.%|7i`bq-9:O V b^7G&z' +rKC_nVrj!XI s יTȃݡ`,aj/˧PԻ`%ox$sÐ=bs/(m=_(ZP0 Bs9h {bǪ(/mZbF!6~#̣12BMڨǎoMa"sG\jbq1.-ɹ#I<1NHVMGz1Vr&3V[e*7A`?*{0^}l`,lY0Y&q z7LDsuRiLwp~*U>y2I=b`Yː}1gr飍6)sA9u(:@PrĪjd}; M Cٙ!O5A$L)Ka +-?E &ptI%TB:SFx̩N UqJRY4T6u&u$:5]*H4PIP)vJֲhMZֶp\J׺xͫ^;B!D&AD)E6ݫbXp:m4]b*8mf7YԲ3lf2Κv Gر$5,SQz |((R,ESP+t͡ԢXʯ "Q}II ։&'%;$4)º(eHk=h;L{K2_f~?X0KjXelCU9f1m >F 7N7EwHiuR_׋M1HG3D 6S/ei$DvZ"WO̒ea8R4 qUT9dW^S*yF5)x251"B ]ETs{S&YVTUB T~.kB퇲a Vb#i#iu(CQ|ڪۗ]Q{}`֩Q:PupL#JERjr;+2[h@(\!iշ-c FpuaB&W40VJqZQ&DgU>pUSLۄ Sj":{_hf_r,klzUڽY|u.w )6or\$SV6- XJqez2ή\lg4d^fJs%+4̂bD~Iq"gܡFJ6ʘ<# ;2>2F>xӗ|$L Sc82>ZcQ}1Sy+jLFiHսG#RBG3\T:nw'ރn?H[}+\NuYqޕ ;+eϙSNv3~0W-or{ȴvQ<C8<\#jc;}ҧ@ !€|GB(4!$&w|LqtC"|4Ci@Grrh9]̶o=Bq'y6CE5X l>VQQ]TUU.uQMBNUCX'U6xAcq@dup`*8Qj EmHqCr!_J# `wTyGC^N@xbERuGbUFwx2xpdf Hxk!HwEx*uxFrD h?fWw {Ot7MIDJN=gk5&FOLo'L43WiNJ/JATJHYݗA>hJ xK=WC'N(⸇]>_R;Tdg"F\#uU(emV#!UaBR*mY(W,ItL+iS铬惇1)x$0u)XTYV)WxZ\S4ٕ`b9dYfyhY`@s!PYr./bؔ|9l1!'"bbJx'+٘3c0aٙ9B%&C"D1/<)k cXpf^B6)X]Bh&,mF+p3(r'W2 rVy7A(4y?q*#E%IL7>Ci]Wlfjq6b$iRYY^^b5ɐr)K@oHg6?F3{Qԝ`D99̶, *QN9s$SB&nBn*gnM1zq.:efu=he'^CE69T5!u ԚwyBe>vz`778R ;UIXlA23q*|ķ%xme8@emW9ECBd2+3Ӵ1HDAE#Cī7;6 {l?*{Ӂ(q"le@m_xu8L *K^^.~  "^&~(*$0>42^8:<-7B^5NFJL? )R>T^V~XN\^`b>[>f~hjlner>t^v~xz|~n0OP~舞芾~>^~~难.>~ꨞꪾ벞=]>@Z!N. 1 .q1݄> 0~.ٞ>޾~.[>o /?o 0 oa0N`A0 P~ҽ1>.oH157/9;o=P.>/%% 0 pspU0 эn> ;.M_o8B( p  OO{sfXZo \D_`rr [_o ! y@m0e0 70P#M/-O_!;?O޲Oo/_oϏ핏_-?ÏO/(A DH`L)<@Z(`7hQ"CE(D)<$H&G6|رbĝ}|ɒ˝=Jq&A9'ˏ-3RPMaJCVU5+Т=:ՠL&Gb!Ar 2J%qbƍ?Ydʕ-_|M[zhMGz5NjQ=*H:gk5lФi:-Jy]xiUΔ8g歧'|6v)_zByO ;+?>uc8D#O3zˮ #$м C `HBi+F@L1n1GwC 5Qh/ cGp;%l uB$}&goKc2M2lB-Ir0)1̳=|NDԐPν4MIG$4.?;33-pBsTJSADLVU)1Đw]F-fFx$Xc%UO$*"qMU7dH;#= jPvMD{)>uetGݥV 鄳՘6m6.=rOuɸҔO ר 8#Rn,e/lv6j{e\%1]2ֶbwVr]U +VcF:1Pg!\,aGйք׳K8H 8Ae;pݳDudPj,GNE7aKO'Qz4UranW>/pϑ ZV./G9D3YTtik"u:#f h&xd'QݴW 5ֽ;Z3lr[m%m~n4O2W^r`*<<ĊQC۾Ռk_1T'Y~2/s b6@NrtxtC̐njg=t]wJ 3A _lh$"A*h&PQL&_ 5E$fJ1b -|=}o<A^/y !iE>(?n^##QǺwYAP:A`f01a*URm,˞2Ee8.^REz Z=eҒ2,iYEVA*W6YcV.hAܤ|',Q 1[S`&,3k*S6Z;Jl,re>9Τg.C ^b.]T6 nXC*UV2Х/%Le:Sʼn7ũrӜ"?*L}ҡը,Qϥ6uIujT UV[QՠO ,(6` j@Smo5^Kꬹtu.ىW.|M*أկwaJ؟*k*bXB2d hV]0)TR|Xb-!\e4ͤmnu[6mp;\6EnruWυq;]V}.v炓=v;^򒤼Emś^ w{KQ2.Elg p<``7pYL8p5awA;}3_A%.3=ճ[#7|zu'%>Ot'P޽^{<ćkC>[?2|[@.? C?70?V14@$9 Lכ>CD>{?K @޳s: T> @@ ,#$Bca#z+=kB(S1d,2sC'<3>ʽų=7k(APB5|6A&̿BP?N@@|D?GQl#FKܾHlGylM}TK;qtƬˠج–=A@rRS=ŻNEDdl,9J|3:\мUSuc$R-E S/S ޫEP RC<\TIHa IUJUE%T?b4F]XF7/{O(}͂P UҹD-NitRLڜ3Eӯ:žd7}T}:vWV-PPlBY"%QQ5HZ?\ԓʼѴQIXXYƒKOOiTSU])٤St\p]q]ԡ˒4ڣEJڥeڦuڧE4X؆lLM_YdMP[tڱ=3rJ]=Řڜ[`9DC,uHl[S$tU8V5W} XDYMԾmFP|X ߳rЁ QO\HuMW}[lR&]kϣiNxe=Ieܹ\T-rD}mVRT-V@TU¼UԬڮUӬ޽K']%m6Qn]rH|HT^],!$@}5YYZ`ʭ^-=U %V ֡4MVTV >CoUPdR fG-Qnnaam9uܻ!`?`Ql5΄%M8V%BQR_TW+D8mݤC!'4b2`G^2S T(VK*>]Pm^hޤyԙblc(G-@;BE[s (Ũ aGXRMvOePMMX [R6eTF?] ]b6noЀYppQe uwxgz|gyM YR({fM{$敚cEM~d `hF9WghWWϝ_'fa^7%mCڵވU٩uY[JXwR4H>^ PF@MfZJxvv^f%Y2 hk[(똮$ۓ]6HuQkph~ZflfpGΆp.f&:vvgȆu>Nq$oYZperLF#Mu޻åHrfSmhg\_m2.OD$H%X5OsiFGTnV2WTa^c[gl c.o9VqouqD0&N]a>E\FDvafs-mV[9OąSyc Rirt5MR'^Ȓ=Wg> VWHs?mvWtDBvv#?pɍκL^^[+1WO{2{2`.8fd|svk7tZccy.re彎evVydNf \qF'Y~M& ZnAsHgGpYgD M B @2d؃`O  # 4vl%L1AѤ̘:w'PzhIhФ>*mЧRRժZ2N`ǂK,YhTV۷`GBJ*V\+LYy +VȒgp`O+(Y'Wرƥ>O 09aHkt߼qɗ$ʥc^uT yq(x׃^Cز[hx%_/EW`U!Tr)TR5,@RoFaLD ax+Ur#d,}юH=d[|%Zy%Yj vLQB՛wil™Z@b~Y!KyB֛l 'L"$,!sQ,}h{}h mCgIPiWQbYF,ߚyWdeX영֜髰' iF m()kɲ9{nm :! sJX1KvG^A%HF qPQF "! I- 19ӮO"Z.:1 iTlfgm϶n9r!<~ |oRIƿEgjx.xɋ^—'|=8HDZy|lwB e;wגaT>MaR-\)P*ԡF=*( 9yf.wifFl&;(pҡo1+o8gNҩIXV'̠ XZN6e&<*zur= ]=v$5Z>ZUgU)ea`ZXE VRT4zf>`Nfى!RJSрH&R$En[7}n4P,zݭBoV/ݍ ֍{pWK"v5{7cUR5. H@Emk1 E,m$A')戽A`% %2Irw"YMq+ewhbvRw5̘)ڙuo7HDC7\ɴSf6θJ=q̅A)F5v"C cV]>'[bk)fY(8q+/?6k((ElpPi_=9L "vk]Z৒(@Cm_6$aXOQSa;J 5{U؜\yrƼ;kQMW(Xǖ o]HC""YDx[^%%!3jQGT=u@ ~,k5w}^n؛m2]w]W+3WRK o%F2D0<$VyFԱU:a̢9UCH@d̸uqgo~M+Ţ i)gXE] Ai[e2/¤&HĨkt?:a>9/`k8g}wVg/i 苣1rT!q0 }NK{ lҴ'\=۔6mkL Im#uVt]1it=4}!mJt]*cyV(z{vC^C6G?̉}ʉIpEMYWYVUWeBMXu[р&4TVH X,$Ayg- Pt `E ET Nhe`DOvT|5߾=R]!fn!v~N}!!(\DaTt@(4!l FXU!w!`AT]E^E_E`bNn&Z_ aR!b&"^_`F ^>%2Ɂ`a rnst"i9!;"#"E`+.nG,v )uXA]r]^LaӁ#"Ѕ]"##FSQ32 e%"U,c;ɘ4=19]P֕9ɘ"b#"$*#.6U#=*6/Y¹91Q|5[ yKHFi"9DE FƚFGv$|H:$|蕤auN8ҲeN-ȍcHdD0Vd1roQpڄX s}XFQR^^XM?Z-oԐT4\y"DJN\!AQMMe$X@$: #EaI|tXMLIHntcq&(c'*deљMc%T&5[ejef]>:$x&O#1t%ChOJuZgb, e&'٦H⦟ &SS*a[r~gSnr.'Cs tJt%uG IVP9*N*V^*ԀMJ_\MilJhQ)"b⛚^"br:!+*_*Wj-hlNgjNzjR`Fi)1*jJ"e%V(lڟQ"b@@B-߿ʗ:漞O6gXFN+ei $&e-䵅@N,r6fUg>~&6>,"NlfJ.)f,Iv(^R#|RͤcQ{C,ªXlhA,(,Qten-v~ՙq9mJgkdƪ*FO^-3Ÿn {B4JBnj|BpPE&e6e"gK^&*^s(k;^>Y{nRآbM'+LJnbܾ-FX-d,Ɛh fdzܢn+B$VkoSzbIJ:RƉnBP8hNvv¬.E6.~6kf¶Ծk)z˩љ~CfO\pk ÔT 0 װ 08hnU0 :pCb_?,0D X 4gT/+DC ?piՒ ,%PB$P !AB@11nR-qB8cMno⒬-Q Un?8N#EO,4ŝ1vty~4>#u"]?O㽧H*&LNnM^K.?,t \4<6A綫µǯCgR{'mpzs}z"4[na[ 4D db&5frnbu`JJv_4tB/n9΂ pAD 6=ڕQ/!Wʬv;s#uN `d ,u"{#0)`CK`XC6`  FV088(؁O w${+8߸8️89y‘/9379?G9O9_/o9[ycyy99yǹ9Ϲ999﹔ x@\PN[zw(DO:W_:go:w:::::Ǻ:׺:纪Tg`Ǡp ;f; +)$/;7?;GO;W_;go;w;; P?:pHq̂&$8AL;绾;;<<'<7?7~>G+>۽_>o~W=7,\@*>ꧾ>뷾>Ǿ>׾>>>}{=w=;3ӱ71q_B_?go?k |????>oM?ǿ?K{~c?@8`&TaC E8bE- 2$eUA9dI'QTeK/aƔ9fM7m*tREڣgN3[fiSKMr:jUWfպkW_nu<$%"DA1oϔucI1ջ`_U4԰ϡG>]زl1:$h.Wp[bIQ}{3~}׿| P ,KPk?R6P BPC쐿 A Q ITKOXiaQiqQy R!,YN ol)ꨬJ+EDa+LF(JLS>lDB5\'P=;OST@XEmG!TI)K1TM9OA UQEՒ˵c81 dYiȚe B .8VL-fAGأemg;kVmlWq-s͕Vu]opt\vͷwW߁`m]ѕn!X)1X9AYE֕W~c+Ub]֙iײh5 V +%E#壑NZ饙駡Zꩩ꫱l.:^n͎[Ӯλ.6^)O\o!\)1\9Y EYBxAR9 pAԅ&辁O/i;S67H^z~ꃿ8E/O_o__g=;; us `@b%K+h갵D3x7Cx ]AB" QB-t aC~5 qC氄=eDn C%.?t?(D)U EN-"?1e4јF5p G0PЂL1YR7a  wAIN%1iɞm'AJQ2C0)QJU+aKRΒl-qX/AKa4&,NF2@,MiNմ5Mmn7Nq49yY1lEPʔϚeO ,PA ? ^P J@ QN0QnGARv %5IQRTuKa:Rԡ,Mo S44GqTE}Oч`SUNUUUn]WVe5Y:~3-AZz9+&H } E f*XZpc!YNe1YngAZ5iQZզukEm_[Bvm\q7Xvus]NյnYgW%a[0WP孒u¼u{_Η Bq]~e%}kQ( O@(F1 O!Ab%6Qb-vacϘ5qc8 d!E6򑑜d%/Mve)OU(Gx( |OY!ؾc1řќf5mvg9ϙug=}hAЅ6hE/эv!f1ˌ g1iMoӝAjQt(^UխvakYϚֵqk]׽la6\Qc/vmiOնmm:{nq6ѝnu;۩^oyϛ]v+0php/ w!qa#v1qo:r%7 qס-wasx2qs4ρt\B7!MOz MOJձYRunZFz׋^v\x]o~s{uygew\q_)ywħomxKKIkINsApȟ7_xOZ>oz{T3EǼ'~ ʷS'շ'yͫ,zWe'w?\}O ?s/O*PO:0/O *_/ pQPZ &'7PO{//yL:z01p0 // uP~9p [ѯ*lİ )mĐPfB0c- cG$JPp+k nM c ))QB=.2 QJBqF1eQVmq1uqyQvpKoS1q!QQq٨1+wmɱQ*qٱ0qא1]Pr  2!yQ!!q/ ;PKK=OPPPK[.A!OEBPS/img/select_virtual_view.gifGIF89aqod!,@H*\ȰÇ#JHC ȱǏ CIdIM\%˗0ctK̉sO>@Pw"tiϦH YPiҨV)NMZAO^u*ԱQn۷pʝKݻx_| Lnl(̸1pǕhˍ!G\`1eϜ~\T͙l븵k_-cՉ'ݚќMiᡍ'/~ujyK{zֳ=ed_W gO.*t׷g/<z.^s9q!%Hm߄QXnG} _`t1iݧ^ݱ֡W㌽7~#[,έx`sbK(PBXU9`7yd&yb蘆( )owHg1ܕfvTjWzeRh * )H&})hVy(vyJ$gy*Cةe6/ȃռ>U aSbWy 斯ĵHyj_d&YIz/:y\'--.CWG?n a*Ž.%^8<PWӡS04Xt3ƹ˟iCRv, oԠh6Uo({5xE"5$ǼFBDFF:򑐌$'IJZ̤&7Nz򓌔Z"GS<ոFTi9sJ̄vђ,Y%YJT(VCTY̖c P̂a-9ZRό?JЂT@_ِ+d(7'ЀS Xowh힨(ņZ4bgRD%aKL+xC Spg[uAeMk[R?n))6;2rETAfW?/ʑ#ZwVfLkJU~-\]4rS.b qI[UFQs(Z_%\X8N֬.|-hk[\ X2uWkLWt8*jk=԰o%-[ܝmij^vnx5JT-wV=WEnw<ZBg%&B~CPo篅>6mKcbġ3,z*=wh4҃[FZKߕQ;kς!gNJ|` Z@wƾlNJ7HjU& CdU}&o* #A#Nx? ou%~:^5 vrczㄩM-EDekN, ef7O6XV`k#kse|iP]y}sOA7yťrva~"Ak]C*jn_}d,"j:{f}Rt}hi`n[&lvm7}Ud~CVmw8xH4Fli,릁$ƀC(;(|8qtl}RJDbGրH2f lW8T:%DSlւ/x"5L8'mvx(Q66n.BbV|h]}$o%A}MZҧlW]ѵY~aΖR c Sf8l8fdchH`p փtX{xHu7kR\ZW؈ XXeAfuˆ_xZW.h,}HFB;1Ȅ5v:&(i{1fX8w.|xuEnSʘChG]2HES[ӸZ0hUxAj膼aX8~pH·eDƎՊ!xUx4Yq؁42g2AJ>8VxW^'i:}X#d},9~׉WQ5&1VTglGz9Yk1brymYo?菃v"& ȗ87)wi3akh-錏I))]I+Xgi\lQ8Nh0Yvth}hYl-Y{ۓ[^6?F8k}Yb8V|XRdi}i'<֚9妞Hj؜y[7K8?kUo9h88j5:hR荿~᠜FՙAhRIXFJJ ZqI`j{&Yl)٢$%)F5)i)iqYjHM]٧ɡ V~e@e6qcyYQT}yɦ!7Cjّ}Ez{JjSdY^E*:%YȨmxW]ꃧro cI~h7旤azɹ8%LIʣc69䪕A ʮҘn(UZJ/̊zI蒪y ;PK(TPK[.AOEBPS/img/ims050.gif{GIF89a7y1jŀ𠠤!,7y1jŀ𠠤@H*\ȰÇ#JHŋ3jȱǏ C4(pɓ(S\ɲ˗0c,)͛8sɳM> JѣHMʴӧPJ=4tV\^ kؗdvulYc]Yiݻ7j $ĉJ ]lS̷gU G9Ƈ۪ ܷ*fW3jԇ/o}cؐefrYo^4gM#Vμ4˥ww^9:g᧧xێ??߽b5]vHf_xo`tPITf`z9 w$f(Vv)( rHB!NȜ` o ^;7&^hBuaXY>aLf7H}GdUp:y(vi\$FV¹6腲 bkٛԁ)KƩ^sn)G~*#uJꩄꪬRdj*J뭸檫믟 뙰&E!F;VkK.D mK@@[.A;n.GrFTD^bBː1S+q;qWlQ9,y"WU00İ s۲5{o5,sD/qylM#m> s8,t;LA }[{tm.KGc\iMm|+A(WI+R:dv3daLZʕڲVw 嶨3D97X/,fw!e]O&a>cbpfw/$`7z>IE^aNo3chςFbǦKg|EZͨFЍzTHґT%=Jҕ|-}Lә4Z5NSrn,2/5$cc4Eqitjֆt"IRFq^7WÎO S~Yp OBKZ$$sAINu jPˏՄ I _k]'G0T V~m,93Zwo\Cm ?'-kwZa sgaWֶ9bj!JA~[- Zm8LkjUn"}TYXw>8O➵Eo?v /knTW,vyM9^νo9'GՁо#l@Xv1u"]Ϭ9 shu]+͊3~]<ٞ!S&&/{־uX|*dt]u߻|. Ԛr%q~bdCf0[w-ߩڌu,\dayjZ(GWx@wY~z3Wb78bf, ܁VӦܧNիi-s(Mz.Q6DĎUj5̣m&-<|Nv#-w$7~$ NO;'N[ϸ7{ 8CN(OW,9gN8Ϲws@ЇN}>?o;Pœ.9x7^oW/xֱ^ :#ukmx>7 vgxv}.xM?<O]_| Rwso'X<%9Sw?듇?쳷u?{>}{O~W~xwo}~ħ>误7?} {c_wu|7~g{~{wG}'{ux'~wZW}7vwW286xǁw|Gw8@t:~wv*H.7J؄NPȄP8TXW,5Yȅ`AXaX3fՂnl(zSFQoqXUA&bsaw(RyXa\HnEn@lUL8΄eak*f@ujxN$eaabeMUiJ@VŊ䊃5hhZdTMXP(fm 5QYUeňMHFWӘo+.d((*v(鸎8PvJ!ӉȏUSJ9i揱D[Ki^dkȐ&RiiH8fixvY&1-TWfk;2vceu 6e%^f7ƒ7IRBi$K9yidN AJPZDD5VNJmŕ]IdIey>1hIj]ٖn ;PKbYWX{PK[.AOEBPS/img/normalized_view.gifGIF89a"1/.mY=GC@Rdhjji|zy;%% X^a`qzo1jW|~cj¥l%&'$+CP%Q\]^_`~rρӉӊ֋ԌԎ؈זޖؘؙٚڜܢݤާ!,"@H*\ȰÇ#JHŋqG_n)$J0]f̖11ɳϟ<5JѣH"h3fǎ K$y`KMir N)zUٳh 6۷pmi֧NrJ 4fLHxuՙXFuMa Lfcĉ/6͐4ӨS'5]ס]x2__&_ΗnǦ)c ]vݽ $+ p-8GS-ٲp' t7&r]Gb 7مVTނ>T R&D$h(,hbr}8kNݗ^㎇(? Y%F$O6dE_FhaYԇaBCIf @&0b/qupqi_zi瞪VsaYgf f1af|~zFji\ j&X5z)ꩬVrꑧVYdu+ )gjO!%ҎzY=!튭]+.{૪k;TZ譈VorK, t +ro6y6[g:m/I羽 Viז1sg47E r"+\ovẹ5usFK'=ۆKt։NW4EPr2V_9~VBXHm ݉+JюcM.-Wo^,W0a>eNi̺{+ǃ}8 [>hn4W?vQ_)n^띸C9{+xT?:ku˖Jw<1(=xk*/.€YpJ`ޗ btkT+f ӴFYhs EA^$*or;'o9Pԏ1D+& ` c(ޠ*C1f"q~/Er,@E3Ṁֹ#2-a 6A` E6"$ ƃ H b(Qr! vKLD"yK2l+A3:sM1K^ܓ-% G-rS#١mޱq<#95N(Yu/hmk {OP([jRi" @Hj) $ eB#BE(P;r%B]DҒ(bG[Sǁ) 0Lϲ68RT @S /LC(%3 "YTxPAw!IUjLC8Ayғ[Q-خVԐ=i9s\ ⬃u{pTWQ\yp+ ̺S X.YmL+,iEyZjicT[ޖx)k8'Gj-a$U{kԯ6Bm5WS$nV _}7X6ѕ[k3^c7KS%qA*V3jVwcUb.{ל*{ڰ~ Eũ}oS[ٮ0p&|K^F(o$<מTn,A%AW\2>|q^ dD88A%{Hu;Z6N-[Z[-NRa'ʩN>,F1|hqc/s;"3Ly洵YrG fK˓ l,CsxVw6~ֱ( *C]ZپuATu#;fsk45N# az:"]|,70vׅ;?!ךwĒ@t-Ljk49o qY_kgx xܠHƔeL\c9srl`ȹΉɚ*6)e)ýWS/uB@/б#Ho'ShzdԟN 3K>TlsfGH* d@ny;Ƿ2#{}rRRyw2GK)k{MRם-1 REzKo/51KhK}o[~3BDARn}>UO^ IWnq=+n' ȿӼgWu:~mQǧphl Gy}(Ё=R"8$$iXTQI%G"%H"Q)"Q2x08Q-Ywf+8R/H$BH$4(BB)$.8J2:ugy=QTX$nO&& Ѕ^]fXyCk-8tv#T<d| AmKUEdžPuV&8rc&b|H~hix|&p#9csY8y[HUEGr$F؃&|x6mx~&LH,Njw7r(kzs؊}Fa8h3%-AVwusc%?5\j|>،Έ'y胣LHvX4ȋaHfEnb`x8;'pCpXXehr8`LOW x֑fWbv0'uX)(hjtUaBy̦k訐D a5K>D0y9}~ؓhR#DyGˆ8Kpt~ B2h}6 )Ƙ9Us–a)dYHhYjy}sW1또וlkTǕ;&cI)iq斕:ިvv2wqىH9vѷHER6P)"yxqf 491tR ʩ|щ[Y ; )mȟV a0?i yh bޅ{(Qp=vȆ2ڎH" ,I[oXSIa#[UW7ҺE#9%{2#^J9 DrױT* FzC>zaN<3kSJoq'{#p\("`{ƇT``{4p,øÜrAs1Dx2v4;aV\!!<_\p*,PܴJk{ Q7ü۪cl>pX\L,Dq|%F/Ȏl6sqїNGKϚQɌȗ+x)[2ʫܸdYq k˾< |R% Ȭ݈D )|ɼ \熢m  tp%k(;<\LGVQہ!](i8r=R-1R-Ȅ]MQi UDKR"M% =N%1$J$M"+-͂ 0 :Q QG(MS[F=WT#x\M: Z*+~?,dJ1ʕgvͲjk,ւ=lճք xjpnݷ-$:ŋ-;];5(ÛM;`B`}خb؋ذ͓!bL䵠]txYTƎ \ͺ($ۊH](j˾-);ټMڛmX{4ʱgcްprlg!^ϭ-ɩA0̱p)͵,z=Hn*ئ۠@]vITíY37.-n>ڠS,iPpwQ]_@nMA>ַ]k l@^b> 2Hڽʽsٚ}F;3Z୨n7QD-^ĘQF#RȐ&**4!Y\yL5męSΚ 3$ ˜eC4c:}T%OU^z'PE"%(eLIV٬mݾk$I`ѪW^}X`… Fgƍ3Xdo ZhDl={.k3AL.(缕]KwddwmvXLQcѯtfxƭSlKz&LtsxI}z {pi {6?/@$@D0LxhS0B uo9 \#ˍֶk Oh? \>m->L;Q.*"FnDG'? + ZCo^2>%D-4!DQE0t͹dM7߄3N9bAМ3O}dJpLԳP̬5PI+BE2#qRO-3^$OWQHMVgV[o:,W_ H:к_?fl\e,ATZi6Tm}uuqE7]uםޅ75٥$/Ⱥ|մo0@A}Enb6B `]SÁW>!=rؐ TSVd~fw ;PK3ŗPK[.AOEBPS/img/vtables_studio.gifrGIF89aT^`aoqzWZ\ X _ behkmps v"y%%%|(~*-01/.1j258:=GC@MMMRdhWchhhjjijmY=qod|zy|||~lΕ:%&'+$CP\]^_`Q~ρrӉӊԌԎ֋ז؈ؘؙٚڜܢݤޖާ%𠠤!,T^`aoqzWZ\ X _ behkmps v"y%%%|(~*-01/.1j258:=GC@MMMRdhWchhhjjijmY=qod|zy|||~lΕ:%&'+$CP\]^_`Q~ρrӉӊԌԎ֋ז؈ؘؙٚڜܢݤޖާ%𠠤% H*\ȰÇ#J48ŋ3jȱǏ CIɓ(S\q˗0cʜc)8sɳϟ@ JѣH*]ʴ.iJJUoNaդ`ÊKٳhӪ ۷pKlݻx̺5_7GLÈ+^̸0ۿ#ÝBb3kySr$BMӨS^zװIR9e۸v Nȓ'ͻ ̻_ོӫ_Ϟk/&O`>U_J7`) 6F(F7sI F!tMA$z5 , 4h8H;hauhЇg~!hL.IM,Ti% 0f)\`i$beIT?陑ݧaFxdQ$eEh ¡@@J褒Nj飗Pi 9@Ipzhn)dADVTyj"U"­.孼 ԫ$ lZ  IJZ͂Jgf['z|J9KۧeS /(+ +@  0#Lp {j GWתʪmFl# *,04s͒:>AF?1S\sKvl%c$[\2,[/g-ovAr-@u 7q-݀Pm~O9'_fk\Sʕg~79K2z鬟:뫫.ڮ{'&SWy*-'?v֛+O6_4DvADo\OCGϽo/_f~o՞oRΌKL%0ЁI`!8AЂ@@tp> '~(ɓf#^H8̡w$,sN"-MnDхPH*ZX̢!F #DVŲMhL6pH4$<f ; IBL"F~ԎHI7&7Nz (GIRғs&YVJeIfIZ̥.w^L*_JWR)Df:Ќ4IjZL6MlIrL:v)*RjҮpmS\Uڵfw5J˪W!Ye+Rz/kKaէ|}沕UVT*vKre,6J=m(ːn^ bg+Zvhjs{'R5!l[z5x2wI]kKXUej]zҚ|t.xI[龖2x_*'ũ|3:ouʫZ% |L`/LK aWQ0pZ] ʀ2SҔ!/SB ' kβ+qL[=X%.bߪ.Az< DƮ*6wl#s9"J B.KW"2dbN* K*Sɥe9oFΆv++fLw{F?[eAKZm;-tM#$a@a!g^gT{.~u-jFl1vz]^yUnw,kĺ5M"FI<>'m8.6-nFnHmdpt&^"@zGb<͐u$Wpo|Q߯T"p{כxNcJ{K^A"<hX ]O(/UlJE9[iM+KNH=̡ j`M=Uħb\a˜1mxoqB Az(#W~f1M\k)_6ݳdy9":]/zv~@;j^.Qtgv'{Nɚ'ZemF_{5o滗Y\?kkrC }sk=C!`#1}!?v>oUo/yӽg-~>κA=b=լ}=ѷ+jh7ygDgŧ~Ws#n'}Rg}GvO|pl}Hi}FsTw ~Wqx|C~!nwf}p~@imx!:*48w{T_/qPÄ\vTTVdN(UڲE`x'bc]c @g$ixcdn"qh"sbk(?q9P'Hcч)V'b|QHobwnX@(Zpv5Cl( ado+P zQыc]Lug& ~xWyX& 1X}uF[)zHy`xH={8 `Hg*09YؐzHa {ؑx:iLi(V6ZƔUQb&%TV_Py9j͆Rk58_Ia_Xn9j@fTƖCT5 QkFjfׁH|y_qos) Uwyye\_8'z('i'hf뵘NҘdgևEIㅙg陛e'e'uYfiWxƉGyiIe阵ٖx4Qm>`Y~ڙٝ#ŝRZ칞ٞ9Fy:П:ڟZpIB  @=Zz:ㅟJ&z:psơ3#1Z/I:P7p8*>ʣ=ww3C0Mʤ3* J9VJVZYpƢ^ؠ pڥXjZWʦfLN%:pp;j9^jEzH؈kzD z꧜n3LgJn*[ra&8Q| 1CjB Y`eb*Ydʆ Aa(ڭJUE Bޚ:\&}u0%\W$ٯ6:ؘ%zf * ;VZ Fpw"8^AQ0d%[i^.[rw1G >@Tgڅ{.[cǙW(YPѲ|IhYrۂL^Q"a;X}٧xشw[Q"{$k\K^$jU@;bkcjާ\l{i{[qzY 'H%^TP.1۷TpttQ`aQt^Q[A@`d'[T@Y Z[pNi׹+ۺk0!~ke[Vy}/Wv]׽ v*P fT@t˵Y') +ຓTT[{v dN@Kp' ] Lۿ̫;;N4z[BA[y7~yj(i&uʨaGǵƦر{VVeQ@Q`<ܕAk0,Alr$&|ibHv` j4A`T{.0 }TP.ͻLwlS}o:}| ֱtΫrֆ -pjt}w Yr=g{s!+  ET؆mnO?MMl"XcYLLXnyiX;ҫk)ƫ\‡vZ|$mZ82 ӂС]/};#8wx^%W­tM]ȭ-ͯ %gMڙw^ݜv˽RG m4R~mT!\fi&< Qє;і˹ ;QaLRUı{ζ{Ra6~8:Ɍ"_3^iV ~Q¿, bKArEV.ZQȀV,5m=^@\}jx7VI.[,l>_5IU0Bi>K@Å9,; =X<Ĕj|'@mޮM=hjw۶ْ[ȀTFUPg]uinG+:}L% 6KU hlHʭ Zī㚛ʱ]^x˻MxrڒL"cNWT]UM. L+ } #,hm}]#5}._E(%![ϲX**[;W<KPEFMAOIi glör}oAAdŘp߫ ~vɹ#lyy}hlKJ;>_ C.@$ DxP!A *,hă)ZxbƄ+.RSƜ"RJ-]SL Ε}FEP@AFD1ǎ94)ǥJ{~*qjRfut*σ$M$VZmiVğ!pinި z!] ,h~'&ި`2dj1᭔ۚ=9F\ҥM 7'jlڵm-zm޽yݟŃCKq@m]zZ wK>]v ^M͟G{Ν{ivuw.7$P-%2A@ moB g:?Ј/ C$Q Zз (1bʵ FԱGNo/!mBh)B22'}G(urXE<0l+2J+G ^ $)IK7)J$I)P@eQ"3LE8L+!oMlD\F[R@?RKGXKURZ-U"<ƿӳaN.5WfK%uZr٪ֽS%7?p=[tE\v]ysw^i}xC!/ dVu& acx^hGFd].x"~`g6hJ2[5dyV%챜{gK7䡇.Z18MrѥnaUA4hM62maz tzꙫN'/Ln[2F\*J!i秠i}*RRI^LJ묳jk檪 yz*6j$R"VjKm0^Ղۭ(8JCj/o Ll ' +zkw|.i$| A0*r,r0׬2$,n{,D$Z< uQ+]uVO-Yw5[occvE6GΗ}!. 7܍ bym߄ݝތߍڐG1T^g9w砇.褗nK.n/no'7/zW dw/֧/o?zHL:'Hi̠7z GHf)(L W0! C8̡w@ H"HL&:PHE*X̢.z` HF'^L׈pFqx̣븤\{@d!FMwt$'9/HR%3Ni (ʃL*WVxfIZ[!+H) ҃ 0IbL2f:Ќ4Ij"tH0hnz 8INZR!nv<14z3Og=ש~ҟ%?jOlʒ9gBҙ$ D'JъZE7Q: hFCJR(}ISRnf!Lh. =9#MNxSt6?͌AP t 5OO43OLT73U EBH7efĚƬ2fjI  i*PZ~ou+C@W֯]aB뗭DO=,b2١U5Hfٌ4Y>+ٺ岥 mHD ef3X0VՈlήڱthwKV!5,H{ܳU_ܼDHt{&䶳qkR.wkܺװ=nznvҦm/}C_0wv5r7-pG^7pcjͬ}1;b_8.B{] - W7Ĕm{_q-\]]ocGj<(#ʥG(a9m2k%SLiҶꕳ_3֫4r}$πżp9[g^c.HHY >o9FҔ.ytelQAi&mȬiZkBѤuW˷V2fSzǰ~H-߿HoO| 5{D͐y#ދ5c3^a s\ܱ{}b[]vy9iR䨞-k;ל]t#m.u ]ߘoiÛN4Mlu 1MY~+~왟džWkQ wzAv'kWlV9E@oScE_$OqE"޹ |Ʋr{"KG{jf)~XWz(>M/~-9?Wcwm \kϿ5e  Ȁ PXtO|g)h4rԁ2b,O؂0(O28T6N8 2ul<83DHKFxؒJ"L؄9~XL(P (YȅPJG(,~qcZEDȆC96(hjDEć-,( h "YY@XXB$FȈ!su؄((HHN8h؊x臱dKh8ȋx88N8ֈz !rȎXf[ixrTXȍy֘ȌXN،Y+؁-Ry֏X踐ɍ ]h Y8K(oHI &hTW(䏟((ٍ+((*i*yT9yAVCE)Gy$锓(WiX7)j 4Z>ٓ<]X֏89~ȕK4?iOxؗo~ rBP ɏey.yg-YZ(+IȖZ َٛu+Gy(7IYɝ5hUs1Ǚڹu)OfYIvFFVb癟Hɞ y {vw z rt*ڠ¹n gJu6)hS%'8ʢ)j3y&+DW&]GZyزk'\O9ym%ٜȊgʦԡxPRTh]əLM){(IIɓ-zu/jv6jȧIW9zڝkȊkڐNXꝜ٣w٨ڧ(@ZIS~8ɘwvX3yʣ*0up@7j\x#y_Iz`tʫ:V ڪJګ_h ZT$ڮ˒:KIڰ NH<*^ًڂ:"Z$J l): +2{ZyY*d+z:{KjJQ{݉jdz# k纥2o%ٴo˶覤e]*Y&)GXhȝzHZxTXԯ$vɀ۶KjHVOZ몚뇝՟KA O9Z+JG˻j +}e|kˤXՑձڭ[;ۼǵ Tk 9﫚*8Hy>S{k3'* : +㋵iJ}#9Yn٦9ؒ|{<4{L5ܵڳD˫۔9:f(&îJ(:[l;P$KzvåJˊ:NJJllJ}r\K{J¬)i Ќk5xemSzL&B-9JͿ X|Q:]|Z-ሻ\-}/`KnP|K) ǿ<=#=ȄL;K wݗhZkY']U<2qLًLÊS- ۩HdY݄|N]̀r>p[R_^cq.Ыvi>pYxBߡnNf~g翽b^=m.N嫳~Ş(QmGgqxͮNnAlc_tX]~.. &zpqn.ONdm:m^^=ﰺ/BOo 2oRQ?{[b<>qVX#oEnMTo>n?lTϯKtO&?{\tjoM?o_-L_}6{"DS_ks]o+ho0r??ʟu~Q@_/U~p}߀L@ DPW >`C-*F=QH%Mq$ =6`E5m bNwgPE*hқOvTTRl2fɔL~1lҥcs5kmZkb85jUu9^-ҥխ$X`… FXbƍ?^TnHW+ o=^8EfiԒ @쓖IڦYfT<-k<.x]?-KV#oOh䋛^OFXlgoOI+= , A3 nB*h 3O3GAL| HLHE ,IB-N7Q&NDTH4ű ɠ`$I 9 PtGEH/R02bɑڴΧ?K=:=, Ҍ5ޜ1G}RN.=$NRAR4HM،r0EGm&KN L MȰk5VYgUZ'.:7^W/_=kXC tң.%h\{Gߡ^6EHN$o4 M 8*Tju΁{g:k* <>}![4IuNUResu] ] &"$S Za9*VъWbD`pJ4Ug< qAE-1>NcU*31ch5:CdkuLwD<΄]|Ӎx\L"ϓEpZn $hp$[d8CNn8TI|HYR]<^-J0t?ǛͲ 1J\q{,|)9Hfy j%>siq$tmf;Tc3}4%pp36ԡ-%i9P4vԣK D) "ym%'FOJti,zFS5=QӗԧcCixWӛթOjTԥDŔQMTtd:S^4sW%gU-;%VUҌbukӳ"qukXW5}m$M{U’UsS Xu}aOYUpBf>t/-LfִlҚZ k7*mnؓvnp3WJŦT\ ׈$j);].<޳Bn";Lt0C*AXE0p,Ornr*![ЇFthF7zJ{ G^ExP(@ Nh!`|"#.1kZַu+k^׿v=`?Fvld϶5]lfW͆vs=mnfn[` nnvw=xӠ5MjUU1 S%bGypC0[x5qw\yE>r'7yq|(yUmל1ǹg>m9GGzҕt7L8 p?nū6Ԝ5%J;zC0 Fb@>wK9{}wv;kKOG|`x}`u Av][U Oh%ޠѧ=lw{%/^=>J_ܧE?|G~w~נ/DO7T<=_ K1I@BGտ~??$T?3Ht4?; ?@ ,@ @3<]$4DTAd> 냜N؄=5A5L;+?4BI$TB&#%?d@'@(@)dB+lB,@-? ؅243D4T5d6\`5;>`2K8#BAl`8ExDpGHIEKLMNDNPL6J$RODELBQ7SERLYDWXS]lD_`a$b4c,`Ì @BTC= ^#B.HD :C@f4sDtLC`vtwxyGyD{|}|TsǁtUL~DȄ,ǀdHu$ȇ|G~lȊHr:腎ȏɐɑ$ɒ`eCm-Ђ`j2/#&J*8/1PeueQnQB!%# U%"u!E(Q&R }+5R)m``00  P PQe-5=:`3)%!Hp,=-DUEeTFGHIJK-MNOFQUTL5LTUP%VmSUI]YUWR\ET$_`a%b5c-`S;S=S?TAE J0(4V4(2o&@S U@4Ђ6`vuwxu4z{|}W}Ղ؀؁%؀׃Ewׂׅu؇5؄Xye؊W؂؍UXu%@֑%ْ%`ln*q-WjRY.ٟ5ٚYXPXZZhrHڮگ۰۱%۲5۳E۴U۵e۶u۷۸۹[ [BZeZZZZKb)AUeuDžȕɥʵ-ܧ& 8S)2Ueֵrؕ٥- n]1%EU^ju)E]*%ECCzu}-^J2FVfv `*ZtQ`_ Faa)vNF;PK **PK[.A)OEBPS/img/metadata_studio_columns_tab.gif+6GIF89aP1jqod𠠤,P!H*\ȰÇ#Jl`ŋ+b8P#Ǐ= R$ɓM\˗5>I͛8sɳϟ@ ʳAEH5 AәLJuթUj uW]iShӪ]˶۷pʝKݻxF˷ݽ~Lxˆ N̸Ɛ>L[,k̹ɞ#<:ᣦIN-z5kg_.ٸs-/oͿnw'76x•CykM-v=mwpkS<3o\GmztG}wg q)x`x27j`e"]& ^^"Hbj#򅟋-x)%%SmIH}uygr%"x1J'%| *9G:)؍D Y%m\"9%ZE"dLR)es_cz bw%lVin h_#9'jt{J#((XBh~xgWn**+ &V[Bjfr:'xg릐j )#Nv,:ͪڢriR-~;PjeG[me)ohK +;-ງk&ڦir>S)÷ _-0;.k[܂m"춻0&+٭x3*o"'dͰ:3ztJ^cK0lJ4b5;{mƬ[k_;lFG$IϻԚ۶mc-p«,b,kM5_Ӭ`LS\@y[(Y/l 2%鑦!+Ǫk{y^J:+PG*YĈٴ扊 rƝ_yoe tV痞ιҏvtc @؜i?ͯ(Ԁ Z̠7z GH~"&L M-| 1P5EŠ0HL&:PH*ZX̢.z` H2hL6pt9 vcC6'# 8BND L"F:򑐌 IJd&ICv2$(8J<%*WJx+8KX|׀c=r|#.ILN!DI2ݸL[61M`NӔ̦,gěBI%!$9t%:t~d$;M`e A g;iNv3AIt eDI2KBr4@4́VLh>Q*Q$mDWΎ'HQebt)Pӝ,eJOΥf42D` ҨSFPQT(T*Tc%RSjҧ6#MU ҡu*WAJUԬ+IT5h=jbԸpkB JժYW~ v$ZjXŖ,j!{XRZ5KUvd=-3G{Qf3Mmk*ؒR"7Uq{Zyu̩BSQ] v*Vr@r[G򚗮2hCQQדh@;ļAQ|BӪ-^RDJN;%0i' J {d nu/1L첷FoWx&x1=J8ť1kq\^:7=|krDqBx챕YrYֶ 5W+O`[֙AiW 2_}fJ(Һ:+,2t-\/|*ukӮNyРVtVLdl'i63OTyNq&ЂFV_ۖq`H;;mZg4GܭzجޫS]wtMliT,۪FUٿ.Num;kfk=| uɌmf^&tDsӣQϑS)Op/>Ӵjь/꩏o+/Mmwp;ZܷӞqAG~nELZ^nϧkrzL|Zfq'Z_}sfuX4X~p}VqrpǂXHlGoXaxy7{S|dg[o7q-xe1(xեzGyrTcqgvxx{x`w]63t|xhlPgY] Qq͘zpVVw|WhAmwŌFW})XḎƍn6xjh(IJŎxUVy9XiaHY~[%_&莍\ )xGא爏oFq~&iѨ.9 95~XF%' }gƒ-jŸ9=z3Wؓ3w@I\Y9WԊՑ~&iMɑLvj4 f`)or74yW})Mq)VnihRybXtg)uuȇ99wȈYwɗluka ǵii)َ(&Օ9j׊EaY ؆iy&xO&I^9~Ulyu0I\~! iv=F{&j59|ilZ5(8I~iy9}(ә*t)z٨ftHz Q)IeyTYG:ZUɛ: ٫.)ꗙ(r ̺ڞ:x9iidȒ4Z:pZ鬽hdU!iCI٩(AJk*r)ILz}٤;g$[ p*(AYyfZJeJ*Uzvz*wA[,{}gg3 {n*+;$C j+y|z;O Y ˥D(ʧ穮Tlֶluʷ?)IhS:˹Zږ%WպZ۱*!ZIz*[ msiۻ[kV[k;[ nkA̻Jz;뺪Y 国)۫׭CKqAi*ۡ9◰[jߺjjۣihUop+LAdְoz4ş}\YX++M{3ꂆ*Y @:œ+=|I |[=zUZ@l:D . ėzP۴jXŧwX,|Ă y*yI4穦R\ ȩ}CLJ([U'5Ȝ |QƑ۶\iˢ|A蛾l۪ Jʚʮ< ꋙj\|nj˚뫛̿ ˺+;͇ ,ܬp L(j0bΒ<;;ιlLUhúSl$EnPme]{<ǃlykXKj{働^N{xjSVP&>mNgZL\,<< <ŨsqjTΟ]K m۲\ 5/rZSr=^H> œ쭾--}Ў ̲리p ξNvn_z4K ez ~gԭo?vX-~/{:LI {ҟYMߍ8=HIu^ڈ&]f ްr\C{5|Ρ[hN)VdlM+华t Gb7V>\h]mJ)z[ SepNmn'l7POR@Y- b6?4ܞܡToAOEzꬍ3υ}ܧ^뭏?WoQǞʿ?N~݆ޞ ^p۞؏8m_=~iIϔdGx-@  a >QD->dxQƆ&ҡǃ EH@-]RpKĘN7uSЉ*jdSRԙcIPBj(O5n-*؃Fhv,ZjŲ4&\>~cWZ JziTM.l͂|Pdjq۷jإf̢Oi(ꦡU_Zśa].g^Lɺ\yL2; zMs_7+NM}/sńt>8bu޼w߇ N++c>J̯+( Q4;X+AQ(-; 3q@P G㍻:Q&k$t@(Q+ENK,)0ϣǜd<Τq✮LKsK4N|Z(P?QTPFDQՏAH Ҕ Ҏ0NS=-SG'IPcQAմ\erOfV[o5W]wW_6Xa%XcE6YeeYg6ZiZk5[mUB-K[U5\9ENn[tمPL]tE{_RM_*9=zMצV\t܇߫RAz.ͼԲ6(yF =tG*tNVqˊMcۘB&QS,PnES iG[+wnYg4޴1 nz7Hu՜z{mTv6Emcǃ7Wmŕ3)̛%ɥ­tpm6<9-ɋBvoֽt";tr?UTv~Ci#o#8#N wLO"Qb~|y?֝=3w_O^'>5y;`Qn~ [i$&}'φSl\;Af6_&Bq  >ϑf+ Yh"Py i$x*NY/ܚٿ|f/y ))^+ ɏ'^CЎr/]E8ƖTGGe^fJam&Ju )3jIOtMK^n#\{=֕AGO1pz8׻1f"뫘MҰ%;YVֲlf5Y %bEКi9׾b 5dkI#ʩ΋nWTVMok$2RV0v,tQ綋ݨ(ic&W%ot2)My%E,ŏZ#ϑy 9yl~WSKed}QM_Bq8`g׭r ntwHnpM]VB lsl-l+7b-ۺR)*͌/{UzX( &M k1gػgj[$1y %=&fy,e3Ϙ[r_klyU~y9غ4!867~}#%2vʴ]vTq`g ▊5۞ŶѬH]rMtFvlf7upo;Nfmvݮ )nn֞)q [r#6X[jVVMV67ºwHWe5.JvppT[`AI~qYk>~l^|8mW~+W_t^(ZQA*7z)a||r7srB?q#;4]t72?G7czVoj%5?Mf|k`7XҾO=a.Enu6pl?]2y{r?5o@v5 -O;?a-{ \ LLz*=cNAO#$&KQӚL ,AG2 &5>'Lc 4o@z2*+/#,-<{402kiC-oz*ƒ,("d9D=B6>T7㯤"?1BDąQĨaD3ܺ ԼhB =LT:SCN~DIJ+30LBHĿT(4¾ 6lEsCd*jLMJCVA$?F3A\A)lq\o2tB FCK,u#{|}~\pdwDł EL9$G3Go$qHeT*|Hn L> d9G7|A;ɏOґ#<䓆ɶ:MF&ERs46L/sGI1tB$9W IFI[Ƥa':TIN.RƆ) `Ma=f&nZ a**YX/لb"_V3>1bE`=^c.n%9=fc &b-c5bc-d;'.[N>dFH&&]E?[Ld Qu_T[UdE_Z5WnۡZ^P~^F[Nee`neaeX&c^QavZ^e_Pfmnfgk=WIdx JAg$IzEW Pu6zw6g]xg|&h%CK6%AÍ4U\T?EkniEBmQxyW8[+A SMi֋CLjUy0<>&3REi>SŗR.yAMҢ=>VηvR۔,VJ3Ʈ~`jNkSj.?V&=46)h!jbjxj* <\i(k kVk\4kL>\VъNlYЅ{^ĂQ}h~gumvMm>E~OH%%iz,&nچqr~mۗhSuh^sK~\$YCFgiĆǠܩɖJfp)[jlmD˞pi p7ekiڨ 3t]=mx&=kȞqԮ[MLTqVPc$kg%iˑ'3A)>E0or^A0&qP;PKfKy-++PK[.AOEBPS/img/ims040.gifRSGIF89aUnU \cdms#v))1\-jk[*lAƨ+Bˆ lD ,QI.CDC3Omv}e*g+挬/j3j[ +4SK-u+-xHxpYs^a\0mv*6}Zp3 E.~n;钺xҍ?;=P˽- ŏߛR`ď=|}ߓ?䛿/]jci}hv(z7t3jm 77 X#+_>> Z~|Wcpf go3$w3! *r:ȱ!&:!Weĭ!8%р.z` H2QBSE]8Y<H:i\kƎ7%ـ IBL"F:}٣$GQ7|&7NzҐ(MLJ>V򕪌,gIZ%iz.w^ 0IbLf0f:Ќ4IjZdFnzS7Ir.ܦ9v R;Iz>ϿS @*M(E І:a(D'JрJh;/j[z HGJҒJWҕJ fJӚ8ͩNwӞ@ PJԢHMR{ :ψTJժZX3RT.^kXJֲc +Z*V#s+\*Ur+Y:֨:!P WUXYHMb:U*T!Knlc%* UA+Z 9ᵯB*qjD7 NvMMpI[64LS) UP⹔hD#A]ASq+&*n@ ~ƼAm ¹ѕnuAn`𦉽Tz\o{!N?_0=Iùy<!VBVV4uoۄ /D~ɰA6l`2PMYBLXDvyܐ$ۈLvrH 9Dy|ہKBpL"e:)oө%{ 2g@sq|;9-nn,-?XH,愐An 60RQ̜= g@q9U SyӟryhԚ6bk_ո&CJAH1F#B6}ݹ٫k'@Rl eƕE3C;ӝ)6MӅtl+w5e^f62k|ځX.wE\N49P{ӻnF|l[OfRl7FG%͑gMX/7;#Bv'wxNjOk!D(Q퐏wJvd \jd9\ִ1nt6/"ײַ]He'}3!M[-t` [n`nvQ! r†;wؗ>v;nn7.ɧw~ ݅sd;{9=Cn!WVq󽕽nrvx;ud^:w_$}:]ZGshxs|PxZ}7&}+Gsumu7n ckGz/oPVeX2'llbs2{g{;'tvbVeyoWx9Hn=b,'l@eey b%xjjf<߶[烗N Y_w]_aaG^FH Xm 8fgXԅA1a{tfT[H 8[ֆFj1Vx]'9pAd VYWKf&Ia!,X'q% Ѐ8,88 ]u6K8XxؘBWbWXHVp明H؎w8W8xZa%[ GH(r({ Y\`f]]xmhqgّlUyV e5$9V&y,*y!NGZfOٌؒ:ْ,Gғ>!@2DRG!/IS|:ŌgIyhGDɕA; q&ctVlm),bqɓo#sَd ӆRiuku')$I!i䘗y~iV!y!+!-b'!#o ! ">y'ɘYVə9i I HRYỈ! y$fY_|9!IVɝș ܹiuY隡IٚiW,YiщIy agі7YxV)yٟmIy9J92¡!yyuY9c#ꡛڡ ***"JW)9(z&J":1 7*)9!N)@:JLZA PRJ-cV3jy]z_*2VIڢs*,N %jVV:iw:XTi ڟ9 jVGꢹڎʩ ٫帔) *YilɦHڙĊ٣ j| 1Zq4j(z#SO WQʖ3nȬ !y[W{VizQ ;Z#(ۮZ9t8 S\ؠ#۰)vֲGͳwx$+\>%z4;XZI{Mٶ{ŲzTkugk۵oL;Iɳb+?6~E{t;VK) P wk6iʫʚjd% IGn멕;kj&번 ѱwO6"KڼH*ʪePT*ZFەKiw}a꛲ )KRPPu zZԊ^+)lkĻdKY[z۪Jfu[Ѱ P kk, \{{w8۾٭̭jb\ @¸J³޻r05L}~>l+ G # ozrzeO[7\;cܣjK-k֠ oXu/<+z|W ^`lb֊ɮh| LڦslRڽy\KWpIՌp _"3M|g9 k-,0sMm^am-֥0тRl9Ϥ{BLؑ=z|~…wӝ]5Y[}$  P>P0 *Mvڰ}ݝ]-:Zᅨ&͗U:D* IpӀ]TxMٕ=e:❘ WLζˑMk Rɭ鼚RPԐb>Lْۼğ<!nWݹS'|M ='λLÌRN} _4JjFe+joJz p pTp> ap*ڜ|¼s52zʛ ,rĵ*Lƹ,E~ u۪{>YLߨ~| 8 ] ÀӰ^.=?n;/xswb} lU龠擀ܾ w뢎^ W^gv'}0 LR+~ά+V]6킌uqvx`$\P[nRo%oc>i/OCe0;a#CŠ! ]|`Ǔ{3[x1g l>fZ,EqM ҿc2('LZB+' ){Tq$0yL.d\$لRNN˶YKO@P ?$U5yJ `Yg6ZiY0R2MJ=ZEXO=or9ga`(Cp}uBT8]_B]=тe4"a8b'G{KۋE*Oi%PRM7Y>Y?d\U}QP\݆-2 G%EiK7ĴnCD-[OFTB$>g2ުY,YOb VNMA)c袏N: zZ\o{V%vwz7^rt'.A=ߝFsjp#UhD46\󈟼)sd,aX48_A2K;%*tq|,g e2 .(^J9b!IB,$%f2T :[R#/lKQ i'nxvS]Uk/|d8=ڭ n7ickgi$^Fr9"m^՛^Q斐+\>*4`pF@*j5]ʺ^(ZѠD/yWVpmTqʣbL_7kK&V߄:7fוBa\vi5=/]+ 侞Æ=ʨvSEP]ړ8RVrԂYb>UMXCHQck^6m]9L_K#.w zzZVxr4N^o&'(ի g dcW OG6ǗIfarzYˀcx2Kpcb= J)bmEʵ: j[I8BP`T"F\ϼףf)VmzKp !ІEHx>+Ӟ4-o;kZ;O$q8-ci# 7=MÏg-Lqj /a½ tr9S_y]c9Y\s18փdirZ_{أP 9hL0 zЍ(NXwݜ'zu< Ȳ~x2\cSĎBqF:oNJ^˝l+;`]1ŭ(%y3 nϟK2`6Z-&1*H4NzZ &{ݽd}Sk`<]`" S`^ŗc0Q_=Q{W? {j9i Ҿ5U V8(T)#=4*#8@KÂKr=||ە۸>+ !;"@=aA $Dn @.ˮĿ.A> @4T5+ 3ҳ'CUzBʲ1dr/:*( js:. <>BAI@rx AK=ɳ[7̼?DHD+^FԭDRoG 7?:ӑW4ˆpYLE*hh[1q 47b$:Xde\`kFsTq;>.mD:+vE2 )Ǵ(Q6ǂ4ȃ\"x:FHϸ-+lJV WsA\ HQHFdG ,HJ|ȋ8*:ƗF\:*) ˈ0`I8tɗTvqxI/Ƙ*yDCٺ 5 J+J[PlɫIԢJoɫ07yZd°dǕ069YKLIE 2!cO k{CDz2C\bV6wy HKEE4ĔҰPKtD0=C ˝s@!D,7) C3͘h˩TLd KIR;8%{<*?:O~}-HkN:DM?5k! J6B,ۿZZd;1RO-ZA]II25PQ$|Dp<~!d ]=P!)| mßB}KƯ +Gۋh= іS,0PO:XtRK|K)mA|,s@2ezghrX 0Ӧt 5s=#E5mH(Ɏ}5?[P`Bod** BuO=}KӦ'}Ss ڡR;9`meuJrV%8&w8g A8A,LVtSKqVmS*dEDf-ƃVeVvm{u<+.e^A@Cunk=E ]ɍTz &W{uuY9b,-_ T-2>V (Spm[*&`'-v^d/SQ5n2޿ ~  PedC,S;1@aA`[UCc$)\1bU1d2>#UhbKMZ]WM@D$5e~ȤP-܊>G- ^>幝Ot_46f]vMVc._e`ͳha06^տ9c>Nfea\g.FW{n{>[mIaf@ڪn LF<b$jlоk%džډ^䪙n^kv@츖nfSad46NT`ɞ(nMhMu^i6l~fFYBtGڜpA4Zee6nl f&Bb9$>QmfbpMB^ip;c_ɣV Z5ViSqkB<<qq]NTnQqo*o! (plGnkUr?/'cYB'],Ap_TKla?8=pO,v_O9Cbɹ(sPh+DiVVou\MPW)LK[r>Ms:< @XfwYq1̬ub;k1'>B^.Osn.h=ظ1r-ȵ핖:rP|gv U&.ʜ2՘ dwaKnDvwGxwݖQA9dlsrJ@8'R ~ Y? UPJyJh7Ax+n Ln'g7@Oz!_zӳqerziZ+c ._9&ޛ{/@R۾b{YwZGT {o;w}Ü|jrA"^0&nL mXN5&V„ 5[?'Rh†7rQcB=,B!)4Y?2f `朜dРB-j(ҤJn HpQ!D[:ȬZ-[ծ[֫zvE+gF;XmZf$l#Zx0Мys -Zxd3Т6}uԪ.۲~:뭐 kȌk+E}4p_gܸy̡|l[+[.Y3矣Ǔ/?4TGZWUeN}wjk4CvU1o=ucdsp'Hz=g%.igmZE.9Ho)6\tJ^{\E/בI'aD6}esx"zf"] zF]hb1gdHF#:\W&LOIFIc 栋MFF:a bC%%z䞎 29gki}[f$4э^䠭j2bO*;{N Vx+JrbΏA BVѸ[.CJHGY<,~&mƦ1Ȧ\ܙ|Ek 4X (H<,˻[ʻRI»!<2%|2)2-21/X3 m!)43A =4E}19U[]9̜C0m0BАV=vBD@s6i6mS+quqQB 4˞~8+8;8KXqg.ذXL9衋>:,䨾:뭻::|]%m7w?b %So/O,>?|#3{x7G߆9À3#( F} ( "}sx4#( cN.d! !B~6xqGr`6xIf|s!()FqÝ%Xa "(F f<hD$ޮQb6Dg;bMp&4c#  ]N^pNBA2,##iؑ7Q8qcs Jh=~t$*S9A" 򩲖t$%ٙyL9x}(u$)ݸS޲μHW(3MѰ&8)q '%})9\JX0bB*2AMf g6s2cIn0Ѕ6|(D#ZΘOyR Lsxd(J8bę,}16 C%ӝj8QvULenl')TTN(Ar9)X&&iJTu?5+S9FX v+^׽+`++Z`;A`B5l(b-n-k%fikR[PS$U3!\-`{+\av l0,d!'%pK>W- &[$YJkkڢ.Ly;_d[d[.|ҷ}o|;,|.vݷ/o "  ='joyb(%QYlw"]ӑĈ鴀 .x,639֭Bnoԅ1FbX5ɇű18G&瀺kqIB,]T#6HzV,Blm戻Ҭfam1=#-ISҖ43MsӞ47tNO8 4Pծ~5c 7 s=CЃ>ba>vKA D/|iS־6kSvpn9l>7Ƕm{~7JQYܩbp}Т.pB |񉯻]16<8C;Ôcog/.9Ӽ٫ΐ{>Is!06NП.Дw"Ľ;>s}Q:؇"WIKgzӮvy}}`/(tvf7jXvN3y"3<#/S<3sG#d̠Hb@!FSֿ>ߵ= R|?}?o/1d/p7n9LC[a6Z3.Й+\)3<n v¤ \hÝǞJ 6 ȵ-۫ `Π]i Bz!&.pqFN!VḴʀA@v~!!G! !ɝ !!֡ \9!  `\"."#6?˝`Bp#V%^"5 Hla"b"((!h x |("+bA"qHb"-֢-&"-/b`M/]9t0&2.a.+L"90#5V5^\߫'^7~#5b/C9"8#;ڢ\-$b;#>.\$AA^L#A>?c:vA6Cڡ\$@0C^$FaDDaF~C:8H*D勦'JBLIfv7CuC~M?(X6c)9hHd6r%zHÁ&NzS(΄)^hgBhveکeN(JhShYT)Q 7 ghq2C0H 6x Ͱ)4d]HBNpC99C9pCRbplÅN*͜ 9xC^eCe%x.g]$"F.vd- m^zB̺&5(o&~DޫH#⚬FÚ,NF&n=)ާjj/4\':hC7ś.IJiR.tイ /Z):6嚬$0#bhr!/^20:ob( 愆CΪNnǛ_pB$|PDr0#o$K.o9B+A1:->Gk0Kop:opGzr-SfrBCoUDbr9¾5DQwVE/1!#nL1XsgsV 0#6A3C7@Dn"6L]vn1\)sH)5#^3#|[Z5M515:8C/г7ul]b OOBPQv$#547u1 41z>0T54N<^ߌd)\5?#.bOd\d1K31X IN4BڴOfE'$3"$`10lB6< K0w?/m.'C¯Cv%rv7?597+K^s0$} q~1ҥxS7ux^(?^:7hB7H7WhW$g/Jcr6 ?w6kC.֥Yl97&54#~#+14]Z6$/s1#pŽCq-)DBZw1r,78$Pr" G yPxWz y.AtK2DТ5e7O'Dy+{5A 1(5yM[/ HFq+t/5$5LZLZa++C㘗Y2e5`s:v+5D[7:7/-#32*y,7#/ oL %3+mA__s3sp="t󺺋1ˊϻӻOZ{{:_:pGv;ǻẺ3H$Ey>"B3#3bo;#z{,S{Wo/wdWW35v{3{cMR25X;+yV}OdЏqZ|;g|w[=G#dnŃ8E,+=K=<%L/q\?|#CLk{=3>7<*Sc~ JGRrAGM}[>س8k~1;;>s+OH⏰~<>b*}S}}So9={+eCxq)/b}M&[\˼G|NyN>勝;*]2>V\}Őގ~/-䬫!-+. z6s/c 9A\>DP=AutY F`qm1u* K?hanN'BB#J*Fv|R@*Λv*2RĒeĂeh7}ߑu.C\ϲbcɤIRƬQI)R *EԦw~Qr*QaRr|uMaqTwCp3F5lgTxBgdGG4I65ͥ!GbCӓ1cXY۬z*gZ߁R} J׉a O%Et`4-SEhRt!rvZ[\l*lhayz HonI9hrdG q!w)`z6*td(o5A0Jӽ$WoiGir}m9b[T_֋nqh|#.G vYh =!l)i"Lj>SpbY`; p #`,JCD,'X3q'c-ф,KGv +0 Ӷr{]rRocŘ;uWSW kX qqc<3=aet[{&?^aArDҕPẢ.%r: Yr1Dj8"S\$V[Nd5-t &U6 $>6#۪5vԧ=Sb̑^/l(FcvÄ+I~8zt;^< O'kgIh;5[XY_f_{rx!|wzh)58[)dC a"$bD /HI`=W =GԘD.sҮEn(=t F Oۜ}Wh'FTu3 @O!E!ˮ/\$z\o'p zmb5F6\&p6 FOo6 d!fYBނ-% OҨ dp '$ uNhBP6P%l+  d&8c'p 0,p_Fb0P޲p$02I"ЍPd= \t.q $@AYp"%Lq0[%h$ ̆g P%B0#0B71^bC8nBY o.Y eQ gFLYN' QBt¢B1[.%bbGU. Q q##4Cp!%_Rߢ-P #m%`Q1`c !#/!" 1 32$Yc!krRJR6Q#\y#S'l% S#7n  #0q)!/r c*qD/r&0+"%(W1)-i*א*$#q"s,vj|r031Ē&C%#.D4ڂ"/L1l"&36"16ģ+p01-D!//0RA12:81+RBS5c%+$;dJA98j6-$:;I:@=C> $C+PBe:c;RAE?DPsCf6tD@,hADDN XAtH3fzYIIF4(JXCIJ4)d_4HeJM4N0.btN4OtOg@O5PuP tQP5QuQQQ!5R%uR)R-R1|5S5uS9S=SA5TEuTITMTQ5UUuUYU]Ua5VeuViVmVq5WuuWyW}W5XuXXX5YuYYY5ZuZZZ5[u[[[5\u\ɵ\\\;PKWSRSPK[.A$OEBPS/img/sql_view_vtable_oracle.gif+^GIF89ai}&"#*-)))015.8:<89C@BDBKHKLHJRTSSZYYZZd`bhjr  , 1 51 8=CCBHLPTRjz##+11=fcffcnvjhiqod|||{Ԁ班ꎳǐԔΞٚ+ $149ԭ!'+. 1D(K0߿*8>E!I')18 >CEI#M*S41<BL&P*T18?C HLL J)PQ!S&R1Z)^2[9ZBb:bBfGhCiLnRpUtZBJJRR!Z!Z)c1sRsZ{Z|bjr{3񠠤!,i|H*\ȰÇ#JHŋ3jȱǏ CI$S\ɲ˗0cʜIfH(mɳϟ@ :'ѣH*]ʴӕFJJիXEFʵׯ`*ٳhӪHv۷pʵvݻxmX` LÈ+^̸ǐ#KL˘3k̹>%ȌӨS^ͺװc˞M۸sͻ No=XУKNسk=Ë;ͣ?~ßOE\|or(}7o!Qr AN)JU!KYaB r }8G&bH+ԢW/vc~ȟ'4cV;n#xՋ@y!9Ԍ!ndB9jTK)e$yeC[JteYOW&\j=PY%EQ&]'i~GY76 c:棞"zvj*y~Ia:k:kNĖ*O6)r:B_럃*+.Vdn*kfɞ+i[, &KNъ8+_ޛn*į6* iqZ:LՊk:lo1;ԤFvz'#m.#{2MJEE tK3NJRsFAtrB*v3LkG>5-t4w]"z,4c&2&*Sv:,ۑ|>^ys/#=$Ȗ.7CmcT7-{򞒐V_N7Ń Z=u2Ap CH0; ׼^E9!q?! (D '[aȊ&|b(E(FVuY c(FQT,#ʐ"4tt,:hDŽMg|̣s;Jɐx#! 2l\9qsdd$MB]HR"i묒|e!5DҒB|".=?򊭄;)L^ĠE91f!꼒f-QIYz7/Lα&8u<6IwJoHX~zSd$ MHΓ7(NiS;t|ډS>-?yQ|2s,Hʁ:ԗ Acj -EzNLiQm*Ҧ]fC-S.#GUzTf3KӨP;4bOIЫT`;=:T׬*GTS&[ŪU.իjEӮ[],wJ`e*/q+5Xh´פCך5,Xn":BKX֎줪k[Iŝ frѷ-K4u`:7- F򲶬Ů2si]vWLY{]P4[ҌdoWJu}-eXU 6~LKtdշg ZZؼIy^x4$Sֻ0`mcf<&5tP ;^kBvuUV7xa%SȞg,wZ5SFbyN~]/jd1?UK0fO:ۈ~7,Og@DF3-dTSJF: TlWd沠A@S[d5;xvOytcoMkG-R[W3qj<_Гf\B-~I=OcK6..g/2f7#,SXvO}q2ӓ6}s2i]eehģ_swŸ~_?x{|HoܖUnDV^T7)m~5ǹs8O GR9zMt郫`X41n.x~*Loc\9:>;70m\iA-Z=s4is+;۞r'Jah(y]z+M4ww2 SG9ӎH~Wucsoh؁Um?W+ji7׽wJОܺ~~o>bzFGo~7~sm'}y|jraU}o Fϗw؇daP42I}f^v8 O0IE9J96I"L_X5YA(v_V9sXɆD`c8}^wKoyZȑY(θXI4|hVlpUcda%Uȗ.q*WM70VJu~WvݸM"9is ^՗Ϧihؐ*$xf~{{Tc9Kr]bvbv7Ofikd'k)vnIrx~ YFщ3rdw}Peo*ؘ'nY ^nj¸b۶zٚ{H~ww 頀h$}Ikiɞ)z:{9l .(vsZiF2]ْ\䃠Xq/*FgȚBZ7iiV?yX1أ;'Q9p< 'SfJgqi0ʦnڦD YfTtb` vy@-i8ڝ})/_Vxw% bj(I:N| 雇Zav2V`zTpRe|WTmy7{ɜk a Y~Ϛ)̈NFډ 9J$ǡyLi1(Wp)YpQFz_WR)ºʬɠƛ{՚wy(ذ9ʟAo4+Xx٢j1I ${9*衤ɤ;FL{^JKt_Y'+Z` J x:oZ\_E۶IKyAC+ШZYhwrZjM6Xv) xeؤʨJխ]Efz e9t+{j튰{Nڛ eGg4w8+{غoɂKivVolu_G凮(z sI{+* xhZY1(ዼʿ& n𻘸 hx k'뉐I~ʰKs2,(ut7}0J wːX0kgcXIZsʷ%lZ+Քq6[iU۹\`SuɻuV2P}سi"=Njx xmjI{MZL˺]|V d^% M ^Β\arNk-j~v~ؑЏ =X8QmIޅ@FDnݕ>VNT-æ.Bnn֔݅>Σ>mn6In5M-w-4m&Xݩ⺽L[ -JMͮ.MK܉}-^g~ϱ'mP>'Qk:˸Fԝ~'f}βI<{..:4C螾F>qgVcA_QEU~I_]q_acgiOn^~靬+hFʶp Y<_GOZ\Ӹ~@<뷪ݹjHXW}d}ZڦNO8ˎnɩ_j<߂?xڿqB1NLN펱Ĩ(o/>OܱȬ1?oPo¾͍!@0! .É !RhF3~RH$dHQeŋKɏWʄI#F2ujȲPD Y1iQM}yTU 귃|U!Xc']H6dؤjtקFi=[WޑP* "[X1)&Xr}mŜV]'i`V6Zjӭg̵nұ} Y>^Q5x'U]ul_zI5Ea Ec7YvJT_V_8W=N6`'nO/ KYoL-\mvg o`E!CB]Tdjq]Ũ4(MNPMMw[8QSeۃ;n离n;o%O .|m'rU-WqkǼB> =$vJVem^,g̑mY+utyҚ60 zۡ1w| ]}Sew1wii`kA;_湪OdMw#X҇?~x?md֔"?w[rd/\އ)NSQ> PHl? VU71 #Sֵb ^ Qk SOhS`Ա0$̾>F-ȱg2E-—8V LKDLcI/fǒ33]MxI2bh>(2P z-YTڡl(?F[vaDHP+*}>%%MCYfni}3h¶K:M/OfLń@ߤ9MjVӚf6)1/u5dfyʅd,Cq63.9NujD.yxs!gv)=,kdq鎡]ZN 5;^ĩl PԨG18D3uG%P ggRDoT^5胘Ȩ1,sd^r9hJ2*$cSG.rrUŇ@QRt!R WgvS}EO_BkؒǗʔf"YMզUky&S! 0[?rPl*F,P;KǮ"[վ:-.QX[4meD>lmK;չuo4rqZgIѝkK$ZAԨ%ygY*hOy%Ml>oO˷^Mh_Qƶg8y::np5acدUѳ֧A:LK,a|# cx_Ɯt|*DnB.Ոl*'t]{S؍T\bM,p_eUpũSi>b̤YBR=m.%:'*毆y`zg㪹ON>8Fc0fmxe$liևVắe.)9;J4]k.z+/5CYMMlD#-Y2]@o(]+lq%4o4ܫrs_;Zy)TMJV ^C W7vїCK9,3z)nY|Q.sT4:6> mcM!|禠Z29m\fpԥ>uWVpw{ql}]z-uQ]0'e3Fח}RV' :xr1}4u#&w,t9,vm$;x*oo5c_U[LzɍOuأKѣuROyבuemO>z,[mwޮ2ay}2fzY62]oÿ|b5j?hs?L8>SwSzR;;7Ӓ.c?XK@ɓ#:9k(?c%CҢ;=Z#ƀ2k:\s;C$c>!++B\R›#B]+,./0 - (4Y@‘13t14;+; ,$B:?k{C5!tBj@pDA =92CBNC2)D80Rl5à! <*?4E"8=*ܿ+wEL4DA>KW >%d|a_C#Ffy!T(&cBCyg4?;dA^F<|,&{UԎV je@{t?cJDi\; tøo>c"$G~t"t|]|tG @事BsK?<݋ċݤ'$+n#{ -R;O9}SƉb2:RBHNHOM`y$ˣ@#:=ٓW=E@Q,մJ8R7Zt}0TT/-U =}R3SA6@RK/@7QS3B]F-=<%lSd]ҡ%ڢ5Z -ҞRMNRU[YcRmZ*uC}јJU*MçY -M}Y%۶Z0CK ۝u۱}[Y[O<[X-"%\TZZeCŬuR5Mɍƭ\ۼZ|eH-&=dQY\ӝ H\ uE=]ʝ]еK۝Eݥ-ԥ ]וʣuհ5Z %cL]']},m-E5_Ȟ_r2^%f_u__% Q\ =_\_rX}\8M`fEUacaM5aa`%▝ab`%YR`,- ]n.gj"&nN .oED5#.ޥb!Fcub#7kwyx{g!|~}6ưAfhS膆Ʀ芶輡hg捎ފ>fU 3fgaf;噖vi>e:iꤖe0 VFe0 d  b6.F~^f(h kfl(kXl0|l>ĶlѾ.&מ:Nm&vm lmයƦFjFi2vn1$kj.nknc@&6ᄊ0֦_k'7gf Of f e e_e'dGbg'ڐ* !'"7#G$W%g&w'()*+,-./s ~273G4W5g6w77s 9:;s8ss?A'B7CGDWEgFwGHAKLMNOPQ'R7SGTWUgVwWXYZuU;PKp\++PK[.A OEBPS/img/gateway_processing.gif2UͪGIF89axp,x  $$$$$,(((,,,,,400000<44444844<888<<<@@@DDDHHHLLLPPPUUUYYY]]]aaaeeeiiimmmqqqiiuuummmmyyyqqqquu}}}uuyyyy}}}}…‰‘ 00΍ΙLL΅ޕ⪪ޝee殮aaƥmm΅޶ځ²ޕΕґΝºʪ¾¶ƺ⺺ʺE H*\0Ҋ#JHŋ51ȱǏ CIɓ(S\ɲ˗0cd8sɳϟ:IѣH*]ʴӧPE,TիXjʵUGFKٳhӪ]vTpGضx˷߿/Lk]b+^̸ǐU .Lađ3k̹稓+{ӨS^:׆}Ȗ}۸s6oi'M=<УK@kDMSOxXϾ˟^k_R(h2G UVhfZ}ሬa(|"zB#~6ٙ&0ȑH&L6PrƔTc"HFR`rcqi&dD2R&lp)tx橧B㙛y栄_&W'$fF*餚ܩz#cRHĨjꩨj'>J魸Nj)xjy&첤 +Y4:If;箘"j4^ǎĹ覫n6#DVʫl5[/zZh 7>jWqDPZVD(ʞpI&\B$@#4"B!Gyh!XLH 1PD&gl,"gZ.r3|s;sC}tK7tSWaQ)E׌K.].,363>-4F#4NC-WXM$E6nz!08m6h1o|ܝ ݣmzߩκ o}H1rrW;7Es>vw|.R?q3d"#pᅴ;/IY%su HMuC$&/!iFh$6.L$8&`3[%( d"q@O@9_XdN Q;=O3Y$H2q}d^ pcHG:>uc"@> `0ƊQ#-r񀆔nFJZ]&x*;@$ED\K#LxɩpaLX̕ZL#ЊO2"%,T-Sr8įmRjZشf&yI_z2>&4t|2LW>s/Y[6-d8)LxBc_:әKƳ:5=O쓟 =LhI;hQ(MJW(ೢ(FKZLT8ͩNwӞ@ P;яAL(MS9PDajsPծzuEU\HE IdmHZVr1U*#ixͫ^5QTFa-+]A65&) t6slrH *<ꈀlGFҚDVֺlg (5F9z;Lt6rHEs+MraAnOgm\%63UڎFh7p.t׫#R7]&Qͯ~~[pG _> kȽ!moD<ΰ7vwpAֆ(FÂb AXm*Ƙw[b dmJ 0xJGu[5>V qL*cX ~e6y`f %yYMnLp3xmSȳ)Bz.mf͛m:ѐ c:#2^6N{ , s M|-Cpꁬ jεQ hd61Bpg Vbmp?ک\,Ʈv oliҺkMnbYVl wSvј4=Mj  W{3p[mw;߮~;?0S9-f&"~~04ߞ ΒMxv.Auv+!@:1~\ȁ nCP>DAG#1  Km cQYsߕyiE:WFǾ1zANg*1ce`ځv]YU+a_5!k5(ͣ;e05޾Џ Nz8ìG3 {bZĴHWnc=oc(~}~~ _O)ǿpO+Ҳe%0~wiWUaDgwaW@7aV !sTo HDXD8>c @wԃwwD w>GOJ򷂔X.~76$QNtI5\`}';!8KQhPL脣XG|R1/d!pPdERk'Ma8.s,(MȆo0H6Fv ` \i^dA'qxyr9g%sQyy@Պ v^i-85f)p1? HNaPT6@[ybȉYfg֜br?,9p Xpܶiי=0虞ɞ =hu>Gd),9,QxBv2P$J 炠ipYy)wsl a9>savX Sj,jjٓ ٚ+'0Jީlٖx!6Ǜ 'K_slP}2P$s}S)Ӣ^.dȓ!2jlʦ~ca ƸNm9 zg [PxyY{١R' 'DsLJl+90sqDw(oq=уocezgzڪؗqyzʧ|uY`^NPzfJ`|`_U'>kЊ2t9w}q ? g3rڟ0-z{:r*0eiH@Ɗu ڊѺk9/ȓȖlݺ7:#WrzSԗ";}” <1 $"ǯF:s |}Rh XnB;tF y;4l$:*2&!90$KO7v@jl۶n۶؊5WWsgsАHtWwʴ*T[)qv_Q]k`5\Xm+#(mGvz˜|۷׺G'Kd_H( gBJ~k_yVO[ щږ:͋nϻ{k}{Sk1J`k۱ ]k)S} J4PS@Z, Kdf2~kM{s\ <zУ *k l0L(2&ık9l?LA<jnDFeg[K<(M̺Pl*Ń6MzKcWŐ lIkwƁ\|NK=\x[, 8ٙFGykugP;AS,v ɞǏ#<yz&y2Bf~`B)ÈR8ǘ|x' yV#y"/?YxG1 1@ڬ\й\  Č|q:lJУtJgg8?>'   0=а8Ӱ8÷!y μX9D)lk$Z̙ +`Yg"+ k.ޘZЗЦb:P> '`\ќ2z~\VW\E] p&,©̼@ٜ͕ڻ΃ !̖j9D_lީp=y dx_#١=ܨ5^oOgMZzG۞hoݧ?ټ\W2\K,)@ۣ< L-ټ!H>^^] ɍ%J2h̢ ёȝ՝Ԗ}=..N' NXm"l&VG!/"@t8D }Z[#Gl7AjzۯہXiʤZ_KsY|^QcN9Ύ#ݔdq{dZe}2(=r惞ҭ!H8?NH_Fp UZzV>]9b ۉ} p`_zjDt~0R-^i;n#aN~!e~G.yA#槨 $۸ ߮|\вvJ%૩ P4_68o=<>??G#,cL#z- > wSsl@:r1Fr$ɑ{?ݓOvoqt' c?YhhjͼXMQ-h녘bN oL}ǟȣځ-ً^WMe/}/f;0lΗᶆ̎p<0D+mE m^a!o!yё=O(r^@oR: Z_;Wm{!JTCdT0 >E%5,^ĘQƍ~RH%MDRJ-]S~lęSN=}ң;@ꣃMW|UTU^Z2?V؉~BVH$UICdebF9vX`… Sb=ȑ(>^Ý=֮_hv$I 뢶w޾|(ZpWP@r͝?]t*#eRƽ?@$4i<2Q2J遚rƶrʮ ч$LUdE$הƶ ##\Sݘl'$P/CG0/ SL 4TtEF)\I

J89AF:"&B +& cn/NjL}G&[Mڀ Mye^oޖ__A8b'8,/89鏯go5ŭM*F=P%mfx6S4,n ;oo>/e2&{ܬ JփvNlzӮpO>6?=tGtOGVgu1[0o/ZJ{w)"qG޻s yI믷w$~ǟBh7N˅I )ȇG'b'4 C @>Lh$Z)FUvgޱD P–%ųW2Bd0C֐0auC(@.B"f`K*Tw(!NXъR\Nvqc8F2  ƫ1rI\+BTkB6%S ,XNH E'8 "Ӊ 0֭@n !\~DeLܘJH> Q,#H9Aҗ)YN6yLO b1DXOd! {7BySSҝ)&h,#A$'IG|.wT Yc"sD35jzeؼḾPNPgRiP&'z7C@6y IUl/2y6yC1 lR+۳>D'MVTVC"HhjS&D ` (^ͧjY3A p "< |PO3M+$=Fp4h7ŧ]^JΞ<Қ>ӕNK u]{W^~8D;6`C!VpM/f7w#)kKV^ DN,K <)5֘I^{LaO6z#9׼:bԝD$φn̒C<.Nԃk* +_'Fm&[b{8=y|+D bF8eĚHrI|mO;򘅓b$r&WJZaedϏ48S pH$iK=Grȧ^# " %mRjYD66/'5 яM-곡&\ƣe'uB䒤 '9~lT73 I`ģs%Dnq6"tBd~ A=X_Z<]d#- h#kugۼdhW>KFV>2( OE?HEU#S!T>b٠(3Y#EE]C?@a#`!aF+*F8L3@`FZ|F,6&F?m"l!mt /9鸕¸аrD>ċFyO74HƴqQYCLGOFQyHT"H"ƕ ۹elZHt㋁ II4ģbj @GQHčĈ!dJ bŠYrZ s H6x>rʰdF̰ޑÔtƖ̟A$˦ɹ\F|tQK [6˿=pˤF(K,DIj3FHIBF%)tyR÷J-6 k\vLA AClM͜ɴ,͑ H`dp,$Nl̴zAH3M/ ΂L9Idτt=|M i܁HNȁ8ԗӔi|9 Oϩ<],@tЩ)P8P=YPP -Xc=dLM̊  Q.OLўbڌћ1ݖN" Žţi@қ4C!'-$ -(/ybґҵm+S3Aȹ a@86+ %/@dM<=7%; 9iEAkcTC!Ԙ1lDԔ Ԕ5xMeTxxTx M mwP(2q\[\I;SUva%V[Y"Ӽ#}Nd΄VT"33+iiTrHnenW"e! r׺d+ڴN>Q|ש!{`}Lw"Q(΀%|EX4cS;O{|9R 2 ʋ5XTiXUY9؏mYBٙř|R4햚ّ 30EZ:D[BQڧݖVRڑD#ZC:WMٰ52|̰u(Rٸtۼ=h5\QąZu\Bٹ"@\(A'ͥYݲM- 5e]pؕ]]]=%^0U^` MHȅlH-^е/ިx<]5_S, u_߫_ m&_M0m+v`F^ ~Y=R&6FՃ:zVaQ6aF -fBN N,!f&Na ^wa',(h)*F(2b(bǢQU+U89:;C*_ aA&B&d=c6(nJ006H CJHHd 67bQ&R.VEBOTzc4WXUTUNHH%Y^.VLEQPcF[3eBPNien!PF8]o6e`Nݐ9(G;ѓfpvgSF3f(_ c~|x z {mքnN}6h[gx!TQvh\=/y(ū+hf<ho|NqY/؁+Niز/hbgii&%~ށKNLVj&N >j0#i1kjfjpjOqij(3FFi&nMgjvgl#d\Uk嶾ƈl mjlڮmyl(m>lXmǾ6np "(Ɲݎnj5 nn..^m|n3o#6ƝNَodꞈo.V_ f  pn4r\5 UqVp0YqeFpq  |.qGqK\D 7GrXV`r/(7Lk&a4rrX?*r27s45pϊrGj0Oqls7H@s9s'_?tRABo: ;sIVo>'rf2OQ^tFH7D_?!=2HRsOKWLtFNOQucA^__`/uH 6Y'F/0L6vbEUoe7l?v nwuf gvJF,j>HL0Q{wM+@!Fw| 'w~k`6xvwAww`_xx7u yv`7_G!k_J( ք'oOWzzo`_z7`y|DtqPo+疯{Gh_s脫eh?dKgwrBGmULWur({ 2K}Lpw|}9W}<}' OL +B'/Sᇗ o|O7'o~} QHtY~9~a/| W)o/|~}~]~yLxis=D,h „ 2l!IaҤ7r#Ȑ"Gb$*Wl@2vb$q 'РO(+5l)ԨRR)EBr藔H¬j̫/zmV(Xc]Efr-`ut#S3nڬ'S0ݍ1smo/cfY1^|IzIvm6nQ s?7re_+^ŷsCevg\^{dzpzfX&G`a%j#I`Wɦ!%Hao `v}k"EYpEX~x#Q#uY'y92#HV]H_$p$PIa]ziDkF'jֱSD^9ZI!y V?n&lQ9ґGY(DYaicuډ}N I4^h#(FnHfvS`dK7ҝzzJWZ7h7kF*( ! ,'w+i*RRQ-)OlIkMma= o|Fx!{H!~PnaƻpmӪ[pnޛ-ߝ mQmS,le29P:&,Sj1|r3f9 T 2q-gM`g"<^&*4su6tF5/]֖W;e(ߑ[N15cX6+r^UiӺXmKBO+tF  aǦβ矷:B;G:R|A#5&+Dތ+{+ U) >BK3>be9բT0TwR>Qtn[w}R缃o~uw mA P<&T|H+ M QF=t${O)!A6 0pR;fD P  )d:3N(ܡA'R cא~)F!g_v 1j.l\҆e;zP0S <>mdd1CEBX _UdHI!ZR$ HBfI0M"%1E]) m$H'TY9-,CYːX z6-v4 0LΘYE)yҳR$e-0,HkD щRs7(b'q+`VX>pLeYOeC* \MSZOe]`V`6D͸٩U|E85Vį-nJ؄M+sD! JT~8.r\?XgH%F3@PrNppk쒷]ͫ^nwK].RDE!&v/DDp*zN-F$ &'Nħ'[+џ7?Vqt/Nɿw_ΔM|潩6fH;qcثAg1Cv o @a r*`_/qs0 mfS(L:׻J'^4Qʹ ^:%nYG/E ^.d"_I 4p$F"qFl+Ѐ̀)18 QĒ1P}!֍"4!Ą_JIɋٹs[ՙz0֟RK)5eFF: |!TaDe @Q91;*@@4@ 7||Ky1?A LJQƈ\Ж{objh,_ ޙ@ 0:D>@{8`pTW1tz`d9 Q9yS9 +FLYv D}깩}[xX G,$PSa.zΧy =`,V`̧'^fG~ḩ $$C vP9 ! & ~UE:EAi(uQ ܱ3eݝ\9&h|`7U@F ܠ< GOXe-#`י S;[Ԍԟy_ VLrI ɠAE 0<@<'xaCT]t#@u-r_yǁ[6DjW AaX#C+P Pq#A)~E9I=`eqY''#fRyS aa-6(ߥaS|'pX`UE^!"R/ʍeQ3*[hTb3M~A5bQ`|Ą cL*%!lQ.V#;Eb%cT[eB%h)D1·Q-5aLLѡ(JE$<HP"CB +^$V8  D%0H##SF֮>1֕M :@B#AѮLO]̠C ^K6=SlARq$//bd[dlCĤ$i2#*O3vE4U~@5DB"OF_ +b p.*=2ĞeSdLUCD.V9fQYvIY39DEvT\S|J$[8 P঺9Ab@'p; g$nf] gB4g0ifEM?na&e%CD0Bu#TB RE`R_4iA$!S~>p>'M2'a*jjg?ݤ&.NiC'^$D I$E({R@;'ej*R/ELcj.hȩAfW䟵x+D&)P&'Xmvh@yZ$a@ꕢ)JPi٭"]kgC`)Y֤gjABGcAAhNb e*&֩|B*<JE:΄:~*뙢K9,Y"(2deZ4VОYFWbll"pr(lA0 `,Hά쬵lϸbJ+B4dS O]'P_b&&D.~BEyr&@z&%zNڍJ˒>F+zś^ĺ*{:䚠ra-AD ,g/Y@ _B.p*& id ^f$2+ٙSBY*(Z֮ܢܱfcx:E h.D.$">*/UTOAhSv`!B$ZBg.L.ppL z,՜"DLjٍv2.&'@DBL0TZbD\Cx0`.$92f. ΌBD}'/(NOS^B.3Ds-!U°2Kq[j1SՔ/A072O &q1A lVdh s첟8ń#H1I@tBxlo!ב6>D"?${A$X82$'^sP;;Y`TrZ MOD%0+ɝfr/ĢYߌbgLﮒ&STL$Yy3@01>;H#UzFtSFbpo K GgBP2z4%3mpapS4UZHt-Dꫳ}j3.-{:'~ utW2İ&@1Q(T?4H`R4BqS (%V5L28T+Ԝ9ZC+ .oE/ Do|"DtUt஑3kK VaruyLXv`6CPrAH@u/Z,Ķed/Nj'M CȦAV.(l񢅼 PLH^Kvj8eF5S6@HBPQck Rvwm()@E/y@IL覆 p4h`7ž(킶 7usG @I H se[{'/nH{sc8xhhFV9(AyL'1Qjw~bR~uexֹB9Teu8lxA<|B9Cm9ZT OP3yHqGK#NNrg#sĐw 'g%BT1VBDWJ+DG}T2BX@9ěK AAVU*9BAb+AUը7Hxڧ9߫znQCeU^m;a4WztU"̙IUV+Dt2 mQyW[dJ#ķ Vs5P'nUA:@ d@\l@ T@T@ $]<ѡK9rk  jչ1!'=@"t@Dg@d@mc} ` \t=؛Bi{uFI;[L|5xmj<'<||= ,ۆd:4D}W~gLJȗd@׃  GhDԴ[d0{ӃW3W/iGp;wSc=@\}oTA7@ CbP L?$@ DI[sJA"KĞ,@T/ 0 (5Q*xCcJ2d(8&PeKWČidM#%gO?E崰hQG)E:rRD:urtjUWZQ_T84R H :VN$.K1M@M% Q@bbeu < +9$N;*+BcQJ*t5g7-fbӧQ=VeD g[ڿ;nݻzizxscvH(#RJn{E 40#wtKtaޥU/}*ſ~j+K*Ѓ:N{6˩/Ψ& oJ0@)&2LHK(m' *7 ݚP. ]PO!:옜4h3FrDA"sʕirROp?;>0BMTE " J@Ī:QFu AJ"JJ۩U[j30`G PPy5QGmTqO}MQQIT*ԚLSH"I G, kۚvF pmJP ZVdiw ߨxZ\/=)4M <mFFpN0"ZkCZC(3qD-d啌=fD "#Ŷ0R{x{ˉp Gљ, H@.&4C"&xHb#<@ɐ" x7 튄"l4-O4*QbhrTUhHfcCϓ<]1{bHR`6L@w`ɏΜH<36Ȭ3C'Jtr?d㒾B[~~(xPZ$Co-$ +-f\T ?uї'gɀ848Ep!DN҅qgsd} IA}e$wq>;ؼ&5ɑTgQhPST񆭒AEG2UBWK;ִ&,d4Мg$VGT'Z Sh#HXnR)$/Tܦ̊A)dNz66dKd]”#mKWt%K>˹JdD E,ChOD#P NTBdz5nL,ԲLs*i}\}QIᰟu]Wu'~Ճ(Gǎ$(9 MQ&Q[2Qxq9k LǑ}RSUuoz}103md[^'+]V0J0ٓlߵυct"gI0^Ek9{uC aRȖtneq 䯩ȀD`XXk$&ׂ6=]ORb~/&0>ֺvRK+2D깯|,~;[q-4,1<(m4zVRW3Lqupkr^5+k4 < ,^ ɪRW*jbKn-g+/LHh-u{uf[6pY?xk6V%)'#ӊ"L=1{9)xR3]֤d q7NđB*CnfFOort籑8' O@I=`\,Ft'@Dë{oswVuYVPy;QPtSno%؀S lOM#c{oؔw~H{FBx/œs^k(Leiڂ)"/s#3Vm ݹ_C>퉊}m~0E,} El *"NI.m>*.S@jV?h>bnbAQo rFKJm~2#h1Kk`?,@&B, DO9)1"Nlj;"h * )r =(bSm:DI+nCN>#Р>4bp ""pGX/dqP [c 0gomM F C0-ɎO0@, =N@i'L-q4R+1D,&j XpT8l U 3q- 0#>xBl ?؀xR@yZXj#aN, Pqˑ]Q"DdߣC4ѓ @*`k,%d#}Hl"*~BoMr#" qqC6$񭴏?$@>B'4a x . @0`!n0 0nx6B)Pq*S# -+s }+/BRr !,S,<8 1@ @(r5 51 sgB/c?E/,Vb6O&p`4@qH Utx'q4!>M#1 `XXuXufxU&W;Ԫ$/GsQ}g IKu/DJUV`[iLc2/șJljHDGWuNp`YY0LCX`5__2픴&`:+*8ZP_U&_=6!k"6*z’B;_+L-d_ua?T`` `=`6&dNwP#uHc+u%`v[ ]g6jYxOe;YfyQBfgsXw.VcuF82P+IGI%]6o[fg$ÅD if"}<kNkUkq`mXUl`[6Nk%7_LR$di!wF6usJGa/P<\k" i!W Ej:-rs5sywhcQ3vtJrwcU7{i6lN=\V'w)œ BmbwW;!Yqxx/l}k۷o>dIWOPzgS{U7AjpGi ݨ }E" WxVll87lry{8{t Kd&*]~arSs~3vW 6bv]xUp-D^H#@Vp!{1_26qu9d]OUt- eWǐgu@s=]fEƛu ܩcѵ3y\mIIf^VgN5)A(xg|m*iHXZtU6_Uih9^dCD$ (YhҘ, ,;hvi{BR:OA]ne xF۪6Xږ]y/&U_=IpV[W"bhi_tyWٯ.-b 1E"kfѝKqNJWYPxR"8gڳsqb+J7APZ;\7K|Iz4YIk沯,p{ ؝Fk<j1!Zcq` Xj_qآ항?29+UZ|j~kdNY+]_6W=ypA.1V;nuwoJ P*"5=0d;կ5% xBi0sU bx&HQ')PG 3p0UancGRtEl0h٘!ruj.":^uh=tm DlW%eaYf6lEv\,|㱺n}mpɔV ➵C{;zI`FG,.s䫟Gm KVwnbO g KC$gsm-P3eWN\^CZw։vW$&Uĺc}U ΓL|!my 6⨳}L1̉JUHJc6g0#)Pl>1eѕ M|/=9yuN<똝3c6MT\s]Ցy\O L)uCnyjMsTj3o\3{|_*Gؿq4l8+;FiHB=ۯ{5^<}!~Mn7 w]i#=~_͛rs1|&1-~Rs%[oi+Ə s]b?I\X؝ 'QՄr USdxr4MhKƧSV\8pɭ䝇f@7D+jܸԧN$"ַOd/NhOnp N۽jީ$%G{ܼͰ= o*@>}5QGe)GL_w5 qmPn[&qr4ʤܣf Omֶ TRi![d%@rq)dDke6?A*2T~=vg1A{x5AtQwQtO"F7,R@r0}aQIQDK9C".f$8RQRҁxI@]15e3W;[<?u"C$uA56>06Ei&H.2;XCIؔJ.m,a9T2ey rP"DQ<ZRp(J.R}fSw#DCT(Y"8Q|9y7= THZƏLX~n)y.Wm;h$$h|cW{er1Tv|ICW(mSF0F% BD&wȖb[8攜pIjVC(O=d]e8?:ڃ o_-)[Itg\Bzt6tiiU"O`)Ye f֡9$&dʚZZ[CII|M%'v3eFLHRyXIzYAd⒥tjLOL42M"HJedu;g*iF5Gnz6Z:$şDfƨ"*4df|pFjʫ CeeJ"pY&nܹzsVͨiif|?ܘtV͇meu#gWvl VX9,F9if aݘYf;­Vv j*q\*3&ݚH:TD'twcq-.Q̑;1P*ȉ!xť6u^u@5XėoנpE|vy7*bbgh:u"rr[`+Ikʤ";Ji@+p~2=<>a3S{k/TS!ۺzǺ%亲;[{]ۻ۹>;[{{ƛۼ{;{]Qڻϻ=K[TAV$PA+[?q+u89>8s]z<؇ܥx-Ћ O݌ =Cl-Қ=x~&=(]quC.nhNNlr]v H]m8.-Kl w>>UH|-܈Nc7=Z۳]}*&^uu~׭nY씮1~vPy^bn~]J5X2m.ih>Nزk.Gq(m~> o >WMk |*>ƴ.*),_쀍mo텞^L1\Y[8:52OG~?<Bw@~LN͎Y `\ >7qo{4q }~͌pN.ilz߉^x4ldأʎN=j^|?[h5ێo l__]N;{A@  "t!ÈXqF5rLHG#E>DRJ-]B|3!ɓ eZlN3KhRP?DTRMcuU%T=k|ѫXr I^͆Vm׵P" jUFqORĊv^}6pٞzz} Ή-e,v`N'u+a][,˕M[J՘i4#" lعZ8hA_wM:9r9s>x9d[Ǟul6|jx,8kݷO={#n#@40A|A0. %0 OP9:0ľ@9>1EIE C|@{mĎC.{s1AǺ.:r1' U p.`|ư;.qD4{1-:*жrr22)fdOSO0D<4MͲt.4<.IR&, Kst>%JToujUZ$x,taD1q5"mN'BY>5YmP{}WOE#˰4eKsݨu4S5-ת޴2LAWU׶jˀLxN}պHe7^uďɑQd7^)eؚ}P/"_=ɼٛ$ogr^c^AFZ0ioZڲ/jvꢱkٽ/c{jCv^ymeζo4Y+5NTIg.Pn6ںЁ\`vWM{\O6!Or(={C Ϻף^ccg &F+?ס6 gvtXw|Сtc%x?yOu;wK5Hc?p_x!\.{|w0b_5=Dtӣ䶗Qq_RX*!@G%l H0̃<ߵ78gu}@hOڛ0q_ f4LH"i_lPE0⪋v+cF6猛ic(G:~:7}l n%GQXq`7b;$=Mvrrw$p7*ѡH"QyԬ!2"+u"1ymʊ["OJ$nʼn{_JZbniJDCdc%G?F*m%;jqndbgWPHON$LlɨQT*9W֕"cV2f uzd&*uOqmn~d75")%4,\Qɯ5鶨őAn7Gö?2Fs]Wف_>~K̟P{3v:ݖrCǹTg5vbu!4+1|H cyU6P0<ٺ9̫>"!B&k4ڴK0ۙ0 9TҾuϊ7§ri=A8; i&A' @fkӍl{c7΋-&<9 "/J@ϨB0 )9w{9>+4[ɡ7gR@1?7ڣ$4:9 (-Ç[=*?D@"#9;D SKA4<6l> CC2D ҽnq9|q4dNl26{/Z҈C[ES|(?tBY4VPX-&$< S-%/D̦_/Ⱥh@/3?QaF sDChĖAU#c/towR"G"Fd­-J#xy&P3|W|1~$7)B S"%{H31ɭSrI1?,Ħ=E;KBs>#b<+2J`Dy=tC0<.;<<Ġ\ĄE˱DKI˵ܲ)9QD-{KsV$I${c=,E&K4K[{JdCz9=T:nŤḲjþTMě\ȟ<< *F@ d5SQG TJ)1<:̡LS$̜JL{$U9":O-C XU,#>$| bEdUeefm'SglDȼDEUPFQE2mMԷФS%TClJ<4σ|I9w#)F*O^G8O.K gPALʑr<VE!XȋuӀTQ%ҿų$6 ؓ%YrϕcҧEj9;Ÿ3_TMaڦ МxJDјqN;rI7~۱mº[ۿšֽ帛-\}ZVK`WLo.=Q\~]\Xs}aJYg\&$ ] ]tXF%nتzگ]DFW΋OMM]ޑ=B;MED\u|IR79T]^_60%+֍U ];YS'^΋YjMk-<5=_5Llոn<-)Yb_ ]ɑD.tXaSae1ܒN>l_\Q2}_"^')6ƨbb,~DuI"L1Fc?@A&dZBΗ[2Ei\b\1QI\G Y(: WQ]SjI)D]GɉW[>e#ee^zOU[ཋ5#]n;Ffra8f^PK5A]݉.nf=#;SN23-Ets֦ 5!}?-q Czghgq#M5<.;6FN] cYLV&L)`&ay&ekskE[iVil>(^;BRZRߞckTlbꬕiQsYO45\3>6cMSjk"@y6(.a]| au}[ Tɦʶ?lcF=GZ\D$)2 Յةnد&N~:ͻkkkENT=ןN Wm*^6) <@E_ Fqʰ]ؐK}5Ύ \e..Ycz7kq]R`9ߺq19$Oewr8+of Pm"9j_h,^M-S,24.>A=m%fP gAY)/.+nJ+SDS O2ws/q%aw;eP.!xsfl_RS/Rwe}(=~mVLkx<RAF^4']# J twbybT^x/yhǦA*?y;潥rw/֞zTh̶x"ObnXpG'3/&P㫯ۨz|{-m!{|+s?|$1!^ȗɧʷ||)G…sEk*LX5a'_W\Oi'%u_*jSF&/ g}m\Gw+`jS5IwMyUR7D!jW2f뗲B6m7}}}n-2(hp@ .l!Ĉ'Rh"Ɔ ndƎ ɑ W%̘2gҬi&Μ:9l1$Ȉ";eP=2S)Z$:t)֓<[^P*԰bǒ-kKC~$Umַ@ʖ\j#\wOtX2p\wkȒ'SlϽ1slcϢG.m4ԪW5زgӮm6ܺw7‡/n8ʗ3o9ҧSn:ڷs;Ǔ/o<׳o=;PKqs11PK[.AOEBPS/img/table_editor.gif8GIF89aqodTWZ\ _ behkmps v"y%|(~*-0258:=W!,@?衃*\ȰÇ#JHŋ3jȱǏ z(Â'Xɲ0I͛8sX=mvIѣH*]ʴӧPJJիJhϖ<@J.˪]Rm,ɶ-ݲvתݺW޿jbLÈ+^lǐ#KL˘3k̹ϠCMӨSgv$ =ulׯi] NǬC*_μУKNyhkm[ wݹ=vxܽ^|h˟OϿ(!tu 6g (WhQaqb$hRMXunX}(25b4hS8@Y,ZXTn=鞔IyvlB9)d9 l)-^8ߒSXv|$!9'MjY薈zl鞡qyFy[Ny^>秠"'jB*|t.j+XZeei*찪k6Xl6,b>+6mfKv뭱~+}©`2.ߺkr {6z^^XLyZRaWb 0nY[i,!Xq_k\q$f ƵLoHB~Lr@-DmH' `:7}P< g'X?,q=_kuKRo 6bgL;-7IX\|߀.nx"ͭ8-&R딺*z*C0M}8U7nRhyJ:갓-DnRk0{jޣ^ڽ$yG/Q9„5K٩;5;o>4zN^{+o?{ r_=m@+J>B\ Hi/>;x!<,sRBq0 cHCiͰ8L sCa@ DeVUDarChm5XKD(6q04\fOҏ! (H:x̣G=(A $ҁҐ"H򑐌$'IJZ򒒌 ;xE>w;R@JRV->(*YBl*KZr+wـ&PHf2O(|f9dVӚf6)Ml^SьWbpSD]# t @JЂMBІ6t^"JQPIs*;"VюgT'BT1cTSb/}1W*6(s\8pJL"HNd8lM3e 5Y>U&L+V9J_e.I`W edizўid"Xnŏ9d{XWDv`ݖRٶjs[KA1juHt2H}ǶH2. ϧ[B3ݞcvޓ\sE]WˢQH5MbNЎMj[ζ!cmMrNn|IA@zη~~76Yx,IAp'@'N[ϸwxy(GJ8-@SԼ6gIus\>oIiяrtԥC{][{ع>vbۦ;Nԏ ׽0ϻ=v|?x{ xݗ<ޣ|~k|4?̗8}Ozӫ>I2/{^< B^O;} b[Ͼ{/}uOOs8Xx7 ؀ѱl8Xx1QX0s/$b"ՁsQR4R"@n e&1$i0>2i@zV7(=+BxRDXuF d2k?TFDTMB:83a9ƣ)=V&^ xhjA_^c8^$i5UDWS(hVW fuu^D+#{cLJQ3>Upue=v Q؈ȉZ%![aef ZMdg fW%eSbPa`Hg!H)fAň'x?+=ȏ叫(Ì38i/HRehe@(jL^fՍ\T6@.VXZ+j,QX}S'^=Nӓ>3@2D9.8Yx_ x蔄u+;hgWb*ӐlShWb/xV[㕍in?!ao9@if-j9)^H[e^#avj8>X>Ȕ?ى%c-\9i A}XQ@iQr?EFVŘhqxe9% ɛ##86`cٜe%Қ6ɓY,깞^u8IyYٟI 8ye > ڠ.:HY-kj&\lX&z(*$. kh4 Jf9e&6UnqDQa; -E#I"AʁxDJf Fy&iZcE`JL:jQhT,b _bU?I=kƗ&a5"g槫j,EzO:.9ؑwJutXqI5<X(GҤ6FjZjt**.-f4Z(IaD(]hzW>_} zg~˚yfGak꒭dFh@*kB3&=&kڮJ5:Zz;PKhͩ5PK[.A"OEBPS/img/gateway_process_flow.gifabGIF89ayp,y  $$$$$,(((((,,,,00000800<44444844<888<<<@@@DDDHHHHH]LLLLL]PPPUUUYYY]]]aaaeeeiiimmmqqquuummyyyqq}}}uuyy}}…‰‘((44΍ΕʙƅʁaaʡƥmmƝ²Εґډ¶ºʪ¾¶¾ƾƺʺ; H*\Ȱ#JHŋjȱǏ CIɓ(S\ɲ˗0cq͛8sɳ'Id JѣH*]ʴә8 IJիXjӯ`ÊKٳhC۷Y\𚶮ݻxZcnÈ+^̸qѿ#KJ0]ǘ3k̹3ZȓCílٳӨS^ZIfM۸Ӻͻٹ Nxݽnok0Qسkν.3N|? ˟O;o0"h&Ȃwafv!~Ihs2Ȋ,0(4Qr!pr"g~(Dv㒹q"PF)唃؈w"=2YE)G"9hI"02ɛp)tixƞ|!v&c`ie"䠌v&#D*餔Vj饘fi%`$Fb1Ij!ꪬꫪf舋j+c ȦkZu&e6쳩*&k^n,EVgUr]ˢjĺ+xٹ t￙~+%QY!G.*z wqCDuM0r(X &dr%H"#4" !G}aqcxQDDI$Ag5S;dktA'G_s3|s;sC}tK7tSW}u[S{1܌UeGDjW3dۍ3̠l3:3Bm4J34RSmM4ŝN&B"JTyugv72%7o7yη.8^.(apDWQ񛃯T6/?߬:_]rOA8|Էҗm,[tt!c<1etAQD"42#I:I%9ʓg̥.qI>ᐣ$LYs_l$*LUa1Q2BX5`71y!3 t3P2hFse0`Q~5)(s T'3$i&JъZԢt?aPBtPr&FJҒ(MJWҖVBپeD˩NwS~sGm%HHMRY5$HZZX/ uRJֲMe* Ub2iJ׺5] W W 1Gg `]T9TPi_9Ҳ9M Xlf%D Ors9 eA\mu+-QFIp pK\ߚ(mϣZ֚oV:ll܅ ͮvPkV<}!|Kӵyk; iHM~͓A`122ض 6H˼{^wL%Ͱs<t/_eO˱w4ؿ #ɼ66a&?Xƈm(܉EXr|!{Z2L,hNC_i=Ø@:Lp0ҐC7jN4Lc7eG'M#`R7 1A)698&%g0[G9FgM몭өr6:iq@۠4c/ҳ1ZԷAtO͒TCxRn5[vn{Wu57^;;]U7liՔ5f+‘k?~蛹 _-VWDwng.Z4xN?b|1Uo Վ5m%v)f^;yÁ}ƸmqP{<8SR`NrrW]j>no~湰6hO;1p$=KGI-thNY+͍`]=lm!̽"um.w;7o?&y+q꾰 iMzKroghȚ\b^U5YEܾ6s;, ]r`)/:km$|(&kI˫@ X:1Q<pڻ[Cl(E.7Ʒ>į+5 P,ũWJ'gȟ9̟a:ڿ)O)=9Ȅܓa0dԼM ]b`xԲi|ɖ\o ^Hp!2XIx ِf}Jmf (Aœ XΪ"sxQh}uU}  S1=km0.z}m|]\-ĘֲfNGڬ@R&cU{w\a>c^w>hC[Ȟj^|tMtgALQN~kZ~Ξժn4ݽ9ݝ.bڝ?6oq')\i ểj'l m

.kR&r\jgp.4߶-5{ur+~wgɖ[^("CrWa 1 OoRupuZwj!dykr2b? !c81_ښ ܌JzLN_@$֔dndR X10}|` Onsd|*-ߞ(cNko_MүPoj?ChpŽ/f`e`!Vp !&'hjr_O׏bBCG;wp@ؑpbuPNU^ŚUV(VXe͞E; *Y pplj u/PU^}reˣc A$2:Ia.}iԇTZhL@Zj֭] ;4ҽ}אܐEgb2qCty':Bne9O ^D@=#$0^|gv*bb&/@AFaA a`L&,08Gp;dE9ʬK 1DZ.vE!$R$TD%,:* H%I4; "$3˚,udG1 ˤNLА=O?Lp"@0`'4ȑ?}t0r0W3SMO?5TQG%TSO8M_54 5W\hA!HbX5Y\8RK4Vi ۖoe-qs @7 u`.#5}(VkNj巪YkUYyC YeKggP_l/d{w@t]&bzxŘwzݸ6#M߉gm]x`(JR8\a"9i:_ȀAj~[okk9fW&{zW>Xm,G :mRg.;>ѣ p'p+qz^ֳΕ,,häJ<`,H@=uFd =vD=wGCx2'\*EA⦼s!x{#GUOD]]vk׽|{^xgH䓗cPXc+^n}"8@Pp/yFu"i@ZtY>*Є'Da UBuy:8 V8_DQI"ZV=$s0,щM\(EpVDఘEa q^ B 1bA&#DO4"D+`9"яɞXt1܁OkCҠ;ȡA{XCIhɁaGnOzגa+x1#JrCb"jEG l_ +ȂTaOrru~֭a6bmn3i1$w!J S*$„V\)71zLFtcYcꈖ0]mtU#FL ̴ Z;#]6~3 JuĉRkbTw݁zG;vpi6$C(PpV6E pF Wp5awPeٜ,CmCXu9 | M3S Zquc>CL$\ǵ OUX9PF.38y2Swʪ]]BDQiZ4A3s Չl#0D缎 +r OZW)=ڽЖ LOך_1z2B1h"0I:F%r!gtCΉ=۝6n-[J~3BgʡtݦuJ ie* Y-eZ"_ebos~)a8vW"ii1r(HXnΣ\bO- Ju'>DJp1,|Fsto`3ECl\m1L5b~ʜ3שN+KG3SB K~t(nhX2^1ڠNdD b;^S#048:^o@ꕰpt:S7<>7*BjAye|{iKw&¡P9&O"Bu ҅(9`ROyK-ÿMTCI4Y۶T2IaD,B;A5F? \?|r@4|0|i)@ 24ˡH=,ʴBX()T9M z5,BAX5aK@89$+&,H#xLy<0km4F3ȖS@ATLGI8-cȕC`JR`&FXRLI(XYAЀHZ_8u?#@?`I80Q{2|F.sLV(x(F(י9`nuW`9 k'{ӊD 8wXeM;`gM:as=~a&0VyM{4'LxX X؁;ЅEWMXxWw590X-SDyTC:IIX}Xe-GVE1٣=PwEDe83zP٠HV DّUZUصݔ{W  *OmKLB۰MD[Ur[I?hWw]x;M$ۈIZ݃[([Oeiԥ;`Y\uN7C*SN1XXT#VG E19 s9;NX^5\]P}}Wň:# ;w^uZ5_=;HߏQcҝ]\aںUneF85ڋp%*ۀm`ҰFȁU5r];9_vWEaYY$ bE$Q-v8]&.d-1aC)E8DH=cG<A3&ێ;Ĭ@'#d5pa>^%v.xbeM V+4(dI:p$SJsW5f-Z Mhx}m2eUTF(y)K݈Pݵ NpP*x @p-Gm&LfڭQJeo bFg"JuuU´g|rfQe~yh .~V膆2v!a8ȟ.h菾}" fnFi&ȕhviniițV\i9鞮`j਄\`_f ꠶&\j^j&Hj fv뷆^kd?k<(M$kFDkChd:IVŞdD 6s}]ʶl~뽾m($^kC`.@flA$ۑl;(.kaL"nB&r~5nCla2DvCu on*2J.I0,@gIkJ']o oApfo 'p&HAA/wp=(pmO>rqu+J&O" Nq'r!qrθMg.Gr)o[4s\$0)ka.C[:/gŘ&ԽL3'GP\a7!9RH;)7s@&7t~E3O4IJ8/QZrNPOgP!) T_ WEYov[\uKkorN2vh2utpgG&iuqvrmngt qOrIevϕ~xw4z_&'<uuyqr ;9xUgUw*ȁuL9gr/qEZ r*8y .ҕ6yyIv7q󔉣Gz\)xXzou{r׌y"Wόw$zpn*zwwo|/ǁ{1YMo_| 7,bopHw1 g{ϟPw||FIG}dJ|}l7}fZg̏VLp'spVgx/i}T~o /YQ{oX-}''HڗhN,h „ 2l!Ĉ't4hJ7r#Ȑ"G9;U%̗8Ф "Μ:&dhRɠB 9b2u &MF;dhP"(PGl)&PT-ܸrZ4,޼xOTm̙Po-lOE(R0BjUCve9,Jf%T ԪW^X؞A[X6pGw9{Z˽ fκkņnRK5Q/;J Md<׳o=len1> 8 vդxG!@ 7J\wv4q!.%xwv_~r&rw"5!#k`rqU10ظ{1bHeև0Zye\$\VBJ+bXO]YxQŎ) '@fP7HI![f*hN&_r$qd2z棒zFG%R)q(#'|JtZR)*d @I7,Q'YzZXOPRjw\P(+YEYR΀h˪(†G,k.U»oGR]Ey .yBn/ĊkY|1k1[L-c[~1)o0i吝f] 9Rqk82E3ܰ4WRqQKM4U`zLdS{.S d2Gs\L&{Q qǠ$6kjw uޅ]դe D\blj3l {N U‰@wC޹b7㭷4ˎ2ɎDϾ{ǒWce׬v D +O wn:Dø[_kqvoQ=PN6`fFįI%]|r p{0 &7)ʖS5$ j  ℇ lrU+p'r`l uIj{KlK]Ϳ>P(a+y>Jh&w|?8_ Mxp {ׯ=oϴܻh=BTtB,$H`N0_=_! _i\p,GA$AȈpՕ  _J MCt!NT>aY'߹n!x^!ĝD%NNhJf@&pA@| !  >^!"߲5DsN`"Mub}[L uG]"*$+啡aDh ]DL`B+*Y"њA$BЬy 0/vɴ%J!vBMܨ@|77S"K% +L# `oX+fbb)'A]|w"&:9fIAb,_[A 5Cycg#2"]Y,O  8ު]$A78V6v!$ d|8@1d8 @|QayTU^%VZ@X]W&`Y ^^e[H$T@>Y%^ZM#_ZЍB 21aCyYĩAU2PT%@N!$$oA @,Rf8r8~@8@k@ ADLV7@fg΅D%]A4} x٣&D |!B( D|w^0 Bԕ tD\ݵݧy)O J A h^F%dP^ $!A@ T\:&$X[„.@bԍB c' feDT^N!Nz$B(O()ԐB _1zL`"CBz cz EA4gՄ~N". RE^5[@BĦoi\ 6Ć@io 8@zLAeC#6uF_v…~D;MitzxjΡDz{v~8$h <}^myNBTT5!DrTAf@H|#!@jhHjhxDj#ULR@ƈFM*X䧩FNԪgzytIWA|N P DUka +RM&^Ɔ-8D~T , dhD,'a1@(A(jtuY=JN$|i]~|jAt VgB*,) D%'AĪ\CИ*eN)NE , |kw0,@, \@~&@D@1>VN Db@kPEW a#Bpi1iB8QDl@,B†RT\mKKB$lޚ #X!\\0n'jA)DF$jq"NUA i&ߞ n%bvN҂ $Bb*MȏfyNn) tDoh*D42Bph @jdX2!D݄ZFѾ뤺Diwb D/=(C@T@;) 0Ҭ'T@ .j/;Dd@#\iB|@RBDbYb^!`ªT'xpWlCM~B:*)0[ sn'Tžu D1D@zf,@BL PTBC0n"$EoA@-ZNLBƮ$IjeopjY- -"!#']f@L“~e p*\b ĕ>0&DܚdgET*SVݣ Y4&Nl,(457.H#i"1Co(a3;3^Ur9է}o2TD@ˁ'FGCEZ"Xa6\7\q]+70286PsN0rCLsg@{3& @trToWɁ͡@kB(*#Et7Nasgoq^CDmŷd9 wz9B;bJL_*X?q?Sɞ'7$s/,x5}v 2Q8Iw5U ܄8 2kk[ݖ>|5MU \F׎*Jg&@6KĐZ9|sG76v)z{[hB"eB4y koti6Ӷ,'^$$`EYu^zoLlD N0캌so3gSN8]{BhUyDy:C_FaZ Y.f@41%":Dsv!sk,@BW!N`/z sh1ikޥy CQlu77U^`@CSAM%K.C4w'\JD6&SwG8@EN1D wWoh;MpiyKmxKWvABfA;ay~0GUc6CWS +Tj @ a.A>NH}7c[o\ozSnK)4HȐrCƚ.@XJC88ю$(0>? %t[p+< ="P̓ ?,g%@<\!| 4#l38 =@2.͓p`t *X`KYBD2R p`hHLIs('2#*t**ͲQ5UD nXM͵$:μ~rHئ`DE@J.c0H ѓ K2(!2PI |d$ȕ(T2@2ȠPN J 28ǂu\d/ɇ2: 06*dRQ-O2ܧyvnU6" `AR\92ڠsL 9!}Ō.R @]H U JCFfJJ5KvXeOhya2؀Zژr6`.H\7T@T"a@܂vX#1  cغ8eicݵd*9sb5P{|{ XB$hlGЇۜH7ah11گ rGA*V*#xrN& ʯMf| ;&#wQ*Iry=pkdv@ ,Al2€$‡' ӇMEz}i"I* M:-;y I2?sǃazFaAz1` =ce[.u9J5 0@-łt.AnĎX*Cل߻ F)#CHD"Ζ%c=/t0֭% Q^A(f5qʚ_j^޸fǠSh'¸u/mSPUI{;[sڞ 5`5^Neu K(؋XClMtMO=Z i!owP,K761s !HqwԠ I8A Jp@E# MU {BaJWM2gkp 59 @ %!z =wg IDوbЍ1?"fe#!${HThQŀ 1ֵ͚n bPXl g&FfPu T i׀ Xlp+y1w ;5T&:m( ,;2E+w6~M'mQfw5ȁg>H@60@xJl& J~<&g9\ޞ j#@gEqkWCT SBգMuW;3N-ȵphAR1%!TrM $H?}8@46(Xiv"́PsiMlws'ReL…KnN6su'dfIF MeH~ xrWU~o| 5c `@.U`}5H1`D7Uv$C"Ip`'o@`b  N  FEn,*+#VCX>&#"I5d"$+(wM޼ǎ:0ŊD,$nF@j^B*MH" j 0 4HtYį :p* 𮦉$9¨_-?D+-)'6)ru% `bBii)b`0TOiBbN1Jv@ pP #b'ؐ;PPl4 dD $х d ߐJ]O KgdsC)e'=B,!0AЉ/` *%3 NKk{M6."- K,ҤJ*vH%BPD"Q ;,;⒰PIX:A_G6ѝ<%y#!f!r`k[ )nv!4ROLIX@rMD@#r+QqX%B&x)^"&$}%;Q" b (+jjp)%))'q* IxXxDz>o" [  s@2`"r+ (M"$-/W(e! &"ݤ%SI' bkv(:o"^0A'9`R% GJs"NS+R)@3Ii^cƃ6(0-a'CxI7e"~[n+nP3ͳʲèIS- qrf$"q"ƬbPƇ.JγS==/*X1D1߈17(?!1R^ I^L@7,A,:!rBIej > q (B(GDE6%օxe>77+m *Hhҍ+E#_ :T:T׮S"3+V5fL" Nj>4YBKK$IzXTL\<@1z Qn`@~$=MR`VrAun"' . /G&PiQ 45%uKDZS >b^LTaT*4a@FB4  zj6k |1d{S{XybsSi0\>`qB󅡫Cab`m^ucdWqyI<5"fP\ zJ{"yC:Yy  " yLSh)N{7(:@|!bs([b8ńջ9c rHGr<8#BXI f.6[n=7A!ZEx N2Z+Y>[#:4ט0#)hX鹾~wl{z5 u "L2nHZIQSg ::?fu<aWMڙ{qh$`;e{i{ 6)"_CO!XF}%XG] HN@ORyN3)X2|4`_y<'ࡽWyȵ--£"{%wLy{#!({ *b@+PJrꙺaW* b2 V"eE[^&lg8xZD5D<{|ɽz yיEpssT+cUP&`Wb"ees[X=ĥ"T@C BƑ".'z"]QeGk6WH[yYI 9Gə -  }"a9 ~M}URbM(2DݢW#. 7;6b?9xǴ},u JURoE]78o> >ӡ\" ^Vniċs` F] ^G-~5E~FR!~bT Ż!5&؏!zExݵy?ygkfM>[r7R tHʃ,4kڼ9GE@+{СDM$13R>2ԩTZ:qML8pz " %1A4-w8-0CF.TPHVhH;}`81ekT'j !.T̨F'& #NÈX1" 9PN 0@dr1w`Dd˪[̤S'E"0 9wo:)ۻukW7RMt[qUWAF| DU$$Baxi@XBa@cIFNQy @g 9Švph" P+Dv1$A, ŀAGRBQUu!ҤD 9&wT zGgv|_`D;Ġ&UQU ]4qba=FvP{ k!#A-ڇ1M'M#N(w FAR  ApQCfpk )EW,AdBʪCEv0<-B a0@#DЖSujN;a;$#һ@eg_'W)џdi 22 hp-J10&ԠD!}¨ʁ *V" @#JU !dmK5N0mRg,A<ˑ1 ۑ G)&{P$JP_) z xh!r,Vc=5VG ,$AIHmؽ%C _7B1@Sr\Y"d71M_ =K4ˁx'Tb ITs@󹮉N iYC"PDA-;HRֵTŮel'@hN" 6#M;FmD$R< W5.RߗV)l&{R439kIpΩ?ZgN'zoG?D#BZ(;HɤS1VԭāUl2y%vǏ5ٷau#HTR"4pwbdB)0k!n owA5fM|wgiۇ:W߂.BTN3wH7+Bob#1L%3[yHqX?G3LQn-j?*wRЄ"#]+r]y]rjӂ8:=*ҿnO;:E"#r`ʷ>!W$g\j> vA ێxFWIDuK~򔯼嫫;qQNR;ńtmO/%xBuu HU={=0q'c{ s}a"J aD)w$!u1^Ӄ H[X)*I!ǽ m F%"T' Y'ڷ}S~ 7~h8~U$qWZ;q1730A$t5ާ -ww+.؂3sx 0/5*);@dgAJ=a/ v;PK'xqfbabPK[.AOEBPS/img/datasource_editor.gif#^GIF89a<qodTWZ\ _ behkmps1j v"y%|(~*-0258:=%!,<@?聃*\ȰÇ#JHŋ3jȱǏ CIɓ(S\@L6 `@ JѣH BDLիXjʵׯ`ÊKٳhӪ]˶۷pʝKwnxfڴӫ%Pa ,bpS K^LȒVfw2cϘ!owqѣ]ͺװc˞M۸] Nȓ+_μУKNسkνË[Cӫ_Ͼ˟/wy90u(h& 6F(Vhfv" W}(2K3ࠗnmꬷ3闗l@֨6 9%{/| ;'WogwX!s7βɷ3_T@𕧵]3_@ཏ+Z1\^6z =ȳ msѻ_W0 g((]| "/@.F i&:PhCo_S̢.z*ar0hLF)Ps+eee3b850}} D:|""FŊd<[dCi=Бd 71lYAElWVZ)oZ2>V,x^Ґ<'5^kBZI#10Ht_ֈG_5nzS=#ݐrsu!`BsDK.G&=d* ><3ssH)NBz7()I2j25|&4-JH%JҒ '`Җ=#5Lgz8ilӞtgvP0%+*Ln4ӻdLIUU V[T&dZD?nOA ֶp\J׺x[U־Ҕ*h`P<'`E6vcK2mlS*Yv6br~M-&/qlgKͭnwֶjɔȥUWŒ:ЍtKZͮtQ˭-ul*]KR y ĥ4|K7LɼU*9H*p!}LN&Zor'LV-[7{ GL(NW0W aIWt%g"PK+LQk!Ĭ5";u ~+'[.+OM|}/eɡsǵd^%<"@۬y3MҨS$7iTnwKKjyӨ^W)w|t3@?șho KKג[M. ;p֓c^7مu]j +mzMrNwFvZ˯\KxEzGj={xNOZ#U Q1sҔƵ Z/2Hi?eI?(O X/Zwm=8Ϲγrc 3NR\N5KG$;PɫH[.Mӥ{Q:^fO{jTؤ xC՟gv5v}'jes~q^1gNy\V|7BXwח7u⺦z˲;hgϞ0;1z\Oo?=o:3S3ܵ>XMK~cOu?_Ϭo2efwfTCDVǴWz XUOӀ%UNוgP&x(*,؂.00x6XSUPXB8DXFxHJLxuPzs 94>YZ(cHa8`hbdhjlm(niD`Qe1tP>Qz>a('舌XHHȉwrX|jM~(N0Xxhxҋ¸ƈʸ،8XxX4xXAՍ71XH1,vRRS6v"`5`Ob `9YyztAk}Cb@5`A^%U%[%FB%L%Xb(*,ْI`Ɛu@ݧqVkvw*r@dGC9OBF$D BO).yXZd#tҎXfyh(6Unobri6v1IVxX8~-aIH|e| ylig5q rK}aisTbi?/Sٚ9Yyٛ9Yٜٙœp9Yy؉pȉ.XŷMfJfkIwM0{ 9ydf)Z3xӝz vk6/7;gwxs'F8Ck{s,i٢.0'WjZBf:*3zw@:tSQ|5ihK|X}77$v أ^^Z\ba:fPDGm@z7%5yqx2Ktr=eZ 8Kڨdv᠒ZQsA᧚Zx{@?60:Zҹ86i)rK}:⩓dJtzJ{Sdz4Z(=7*3kOE"27Zz}y ٖkv??~sBt{O/qzm6rЊau]d;-⮁ C/۱B@>׭#ڬʰc,۲.0AO*+{8#vʘKgkGiDq>ž>h)NP(<>YYzxzqڴQb;Fi6Kjl;p#rk'; x\|k~*J p *'wf2q:J$Mn¶K()ຸNҷD8KHTF ~[*{g}{J sbK\gukm;ڼk{^oujL[W}h*˧cgPʽ0 ˠ:y2I:ʿgEWRJ;+Zڵ;~G:MgWKzethGU:yTEkGTLR2ܜA\sxZ}l&+jD+:S^~]Sq>^~n?e0$^&~(*,.014^6~8м<>@B>D^Fq 5JNLP΍R>X3cZ\^`b>d^f~dL\npr~';l>|~^ jj^fM[{n%&OR>^ޕyuEh IKVKSٔ$\RK┭%Hҏ뺾!'I;Vȫ¨g1% NYG)EBRi^^v`UK}Rňxć"in!)Q9(_4M 5&_O!!"eϝ "?$_&(*,_ov0?2?165埒@B?D/\ p˝IM7;.)Doz*Ynꮟ_w|o|O^BN+yuu_S.QD-^ĘQF=~RH%M BDC 8phRL3męSN=}TЃ*YR@<UTU^ŚUV]~VXe͞EVZmݾwJ-_dW^}X`&-Xbƍ?Yx'_ƜYfΝ=hҥMFrhխ][슬iƝ[nށm`0L{G\'7. x=vݽy—_ZN==Ӄ>>zݯ/7/@$@D0AdA0B 'B /0C 7C?A(C28 ꫯQ=CEoQF~2H!BD[Ȅ8kIKId/'_\1&u!$L3?R#J$΄3N9̬̈́k*E:O?O!< OCE4 5hPU4RI'&H?pT H_ Ϋ4TQG%5O#cQD`UjT!ThJf-5W]w LSXV_1?,/flK,tjy6[m- _ ]XcՓIϵEf=Wiۃu^{5D$OvZ%cqG* F^SM$_~.b7|LG&d>F5IMfeBbS_f{yߊogGʙ͕hvbg&Sv3[av\#VŶleZeαvX;oҖxmn-|FEg1w^XX%{eeW0 uļqG_ToWf*lWg=Ǚn=v }Pg= kv^95=x㏿mfy矇>z駧z>{{?|'|G?}g_}?8~~-`j@34`jnZQEBw7id\Y Z |,&UKRN I- h e0$n{'-)qNLb8D"шGDbD&Oyj).TfCvcO,D:/x`4cH4эoė%48юiȲŏ 4Ǭ Bd"HF6ґd$%9IJVҒd&5INvғe(E9JR[H۽ We9KZҖe.uٶl6$e2Lf6ә4"*}y 0FAcD֠9NrӜD.ʩȄ97޹D9WCJܠdŁ3EhBPJo"DrjJ68PL}FUo EiJUR@ Ѻ=ijFYdSZ!' VKT6թ{YlRŅvի_kCʘ&nGխok\:Wծw)մҪ:c`7&msM/.Cr>壔+n]VɰӍ>uXPz3ޮUnLLS6.rSQqWx|>3ofNkN7-7k|gCsWmH5Kv A?@&}!wI\XC_kn֛.C(wutsQQ{ۻmNq|ӝ7g݅Cm>m[`G}wY"{ßf_E?:O214T@9@6"@J* +; 3֋Ab @g@=ci)N ;Ps+î A7JA{A0c8Bu0/>S%\NjB044<&55tCaC{9 4;=>CB/<DXA4ē(CTDHEtĎhGDIĉKDI&PQ$R4SLü@&M4B=`!!WEX@mECqc[\E^ԦA뺉`F܃oFpū mdj\qgg;}kSk%V bm|FoGe<߳9T[!FB+&`!~|NJGGqF#$HY8 {T"sI1IPI"Y\ ɛɜɝɞɟʠʡ$ʢ4ʣDʤTʥdʦtʧʨʩʪʫʬʭITʯ˰˱$˲4K ;PKRͦ##PK[.AOEBPS/ims_data_dictionary.htm Data Dictionary

C Data Dictionary

The Oracle Database Gateway for Adabas translates a query that refers to an Oracle database server data dictionary table into a query that retrieves the data from an Adabas data dictionary. You perform queries on data dictionary tables over the database link in the same way you query data dictionary tables in the Oracle database server. The gateway data dictionary is similar to the Oracle database server data dictionary in appearance and use.

This appendix contains the following sections:

Data Dictionary Support

Data dictionary information is stored in the gateway's advanced data dictionary (ADD). The views and tables that the gateway supports provide information on the following:

  • The tables existing in the data source

  • The columns for each table

  • The primary key for each table

  • The foreign keys for each table

  • Which primary key each foreign key references

  • The existing users and indexes

The following paragraphs describe the Oracle Database Gateway for Adabas data dictionary support.

Accessing the Gateway Data Dictionary

Accessing an ADD record definition is identical to accessing a data dictionary table or view definition on an Oracle database. You issue a SQL SELECT statement specifying a database link. The Oracle database server data dictionary view and column names are used to access the gateway data dictionary. Synonyms of supported views are also acceptable. For example, the following statement queries the data dictionary table ALL_TABLES:

SQL> SELECT * FROM ALL_TABLES@IMS;

When a data dictionary access query is issued, the gateway performs the following operations:

  1. Maps the requested table, view, or synonym to one or more ADD names.

  2. Processes the query within the gateway.

  3. May convert the retrieved data to give it the appearance of the Oracle database server data dictionary table.

  4. Passes the data dictionary information to the Oracle database server.

Supported Views and Tables

The gateway supports the following views and tables:

  • Supported Views and Tables

  • ALL_CATALOG

  • ALL_CONS_COLUMNS

  • ALL_IND_COLUMNS

  • ALL_OBJECTS

  • ALL_TAB_COMMENTS

  • ALL_USERS

  • DBA_CATALOG

  • DBA_OBJECTS

  • DICTIONARY

  • USER_CATALOG

  • USER_CONS_COLUMNS

  • USER_IND_COLUMNS

  • USER_TAB_COMMENTS

  • USER_OBJECTS

  • USER_USERS

  • ALL_COL_COMMENTS

  • ALL_CONSTRAINTS

  • ALL_INDEXES

  • ALL_TAB_COLUMNS

  • ALL_TABLES

  • ALL_VIEWS

  • DBA_TAB_COLUMNS

  • DICT_COLUMNS

  • DUAL

  • USER_COL_COMMENTS

  • USER_CONSTRAINTS

  • USER_INDEXES

  • USER_TAB_COLUMNS

  • USER_TABLES

  • USER_VIEWS

No other Oracle database server data dictionary tables or views are supported. If you use a view not on the list, you receive the Oracle database server error code for no more rows available.

To select data dictionary views using SELECT FROM DBA_*, first connect as Oracle user SYSTEM or SYS. Otherwise, you receive the following error message:

ORA-28506: Parse error in data dictionary translation for %s stored in %s

Queries through the gateway of any data dictionary table or view beginning with ALL_ can returns rows from Adabas even when access privileges for those Adabas objects have not been granted. When querying an Oracle database with the Oracle data dictionary, rows are returned only for those objects you are permitted to access.


See Also:

Oracle Database Error Messages for more information on error messages.

Default Column Values

There is a minor difference between the gateway data dictionary and a typical Oracle database server data dictionary. The Oracle database server columns that are missing in an Adabas data dictionary table are filled with zeros, spaces, null values, or default values, depending on the column type.

Adabas Data Dictionary Descriptions

The gateway data dictionary tables and views provide the following information:

  • Name, datatype, and width of each column.

  • The contents of columns with fixed values.

In the descriptions that follow, the values in the Null? column may differ from the Oracle database server data dictionary tables and views. Any default value is shown to the right of an item.


Note:

In all data dictionary tables, the OWNER column has the value IMS.

Table C-1 describes the ALL_CATALOG table.

Table C-1 ALL_CATALOG

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

-

VARCHAR2(11)

"TABLE"


Table C-2 describes the ALL_COL_COMMENTS table.

Table C-2 ALL_COL_COMMENTS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

NOT NULL

VARCHAR2(30)

-

COMMENTS

NOT NULL

CHAR(1)

-


Table C-3 describes the ALL_CONS_COLUMNS table.

Table C-3 ALL_CONS_COLUMNS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

-

CONSTRAINT_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

-

VARCHAR2(4000)

-

POSITION

-

FLOAT(49)

-


Table C-4 describes the ALL_CONSTRAINTS table.

Table C-4 ALL_CONSTRAINTS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR(3)

IMS

CONSTRAINT_NAME

NOT NULL

VARCHAR2(30)

-

CONSTRAINT_TYPE

-

VARCHAR2(1)

"R" or "P"

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

SEARCH_CONDITION

NOT NULL

CHAR(1)

-

R_OWNER

-

VARCHAR(3)

-

R_CONSTRAINT_NAME

-

VARCHAR2(30)

-

DELETE_RULE

NOT NULL

VARCHAR(7)

-

STATUS

NOT NULL

CHAR(1)

-

DEFERRABLE

NOT NULL

CHAR(1)

-

DEFERRED

NOT NULL

CHAR(1)

-

VALIDATED

NOT NULL

CHAR(1)

-

GENERATED

NOT NULL

CHAR(1)

-

BAD

NOT NULL

CHAR(1)

-

RELY

NOT NULL

CHAR(1)

-

LAST_CHANGE

-

DATE

NULL


Table C-5 describes the ALL_IND_COLUMNS table.

Table C-5 ALL_IND_COLUMNS

NameNull?TypeValue

INDEX_OWNER

NOT NULL

VARCHAR2(30)

-

INDEX_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_OWNER

NOT NULL

VARCHAR2(30)

-

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

-

VARCHAR2(4000)

-

COLUMN_POSITION

NOT NULL

FLOAT(49)

-

COLUMN_LENGTH

NOT NULL

FLOAT(49)

-

DESCEND

-

VARCHAR2(4)

NULL


Table C-6 describes the ALL_INDEXES table.

Table C-6 ALL_INDEXES

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

INDEX_NAME

NOT NULL

VARCHAR2(30)

-

INDEX_TYPE

NOT NULL

CHAR(1)

-

TABLE_OWNER

NOT NULL

VARCHAR2(30)

-

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

NOT NULL

CHAR(5)

"TABLE"

UNIQUENESS

-

VARCHAR2(9)

"UNIQUE" or "NONUNIQUE"

COMPRESSION

NOT NULL

CHAR(1)

-

PREFIX_LENGTH

NOT NULL

NUMBER(10)

0

TABLESPACE_NAME

NOT NULL

CHAR(1)

-

INI_TRANS

NOT NULL

NUMBER(10)

0

MAX_TRANS

NOT NULL

NUMBER(10)

0

INITIAL_EXTENT

NOT NULL

NUMBER(10)

0

NEXT_EXTENT

NOT NULL

NUMBER(10)

0

MIN_EXTENTS

NOT NULL

NUMBER(10)

0

MAX_EXTENTS

NOT NULL

NUMBER(10)

0

PCT_INCREASE

NOT NULL

NUMBER(10)

0

PCT_THRESHOLD

NOT NULL

NUMBER(10)

0

INCLUDE_COLUMN

NOT NULL

NUMBER(10)

0

FREELISTS

NOT NULL

NUMBER(10)

0

FREELIST_GROUPS

NOT NULL

NUMBER(10)

0

PCT_FREE

NOT NULL

NUMBER(10)

0

LOGGING

NOT NULL

CHAR(1)

-

BLEVEL

NOT NULL

NUMBER(10)

0

LEAF_BLOCKS

NOT NULL

NUMBER(10)

0

DISTINCT_KEYS

-

FLOAT(49)

-

AVG_LEAF_BLOCKS_PER_KEY

NOT NULL

NUMBER(10)

0

AVG_DATA_BLOCKS_PER_KEY

NOT NULL

NUMBER(10)

0

CLUSTERING_FACTOR

NOT NULL

NUMBER(10)

0

STATUS

NOT NULL

CHAR(1)

NULL

NUM_ROWS

NOT NULL

NUMBER(10)

0

SAMPLE_SIZE

NOT NULL

NUMBER(10)

0

LAST_ANALYZED

-

DATE

NULL

DEGREE

NOT NULL

CHAR(1)

NULL

INSTANCES

NOT NULL

CHAR(1)

NULL

PARTITIONED

NOT NULL

CHAR(1)

NULL

TEMPORARY

NOT NULL

CHAR(1)

-

GENERATED

NOT NULL

CHAR(1)

-

SECONDARY

NOT NULL

CHAR(1)

-

BUFFER_POOL

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

DURATION

NOT NULL

CHAR(1)

-

PCT_DIRECT_ACCESS

NOT NULL

NUMBER(10)

0

ITYP_OWNER

NOT NULL

CHAR(1)

-

ITYP_NAME

NOT NULL

CHAR(1)

-

PARAMETERS

NOT NULL

CHAR(1)

-

GLOBAL_STATS

NOT NULL

CHAR(1)

-

DOMIDX_STATUS

NOT NULL

CHAR(1)

-

DOMIDX_OPSTATUS

NOT NULL

CHAR(1)

-

FUNCIDX_STATUS

NOT NULL

CHAR(1)

-


Table C-7 describes the ALL_OBJECTS table.

Table C-7 ALL_OBJECTS

NameNull?TypeValue

OWNER

-

VARCHAR2(30)

IMS

OBJECT_NAME

-

VARCHAR2(30)

-

SUBOBJECT_NAME

-

VARCHAR2(1)

NULL

OBJECT_ID

-

NUMBER

0

DATA_OBJECT_ID

-

NUMBER

0

OBJECT_TYPE

-

VARCHAR2(18)

"TABLE" or "INDEX"

CREATED

-

DATE

NULL

LAST_DDL_TIME

-

DATE

NULL

TIMESTAMP

-

VARCHAR2(1)

NULL

STATUS

-

VARCHAR2(1)

NULL

TEMPORARY

-

VARCHAR2(1)

NULL

GENERATED

-

VARCHAR2(1)

NULL

SECONDARY

-

VARCHAR2(1)

NULL


Table C-8 describes the ALL_TAB_COLUMNS table.

Table C-8 ALL_TAB_COLUMNS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

NOT NULL

VARCHAR2(30)

-

DATA_TYPE

-

VARCHAR2(106)

-

DATA_TYPE_MOD

NOT NULL

CHAR(1)

-

DATA_TYPE_OWNER

NOT NULL

CHAR(1)

-

DATA_LENGTH

NOT NULL

FLOAT(49)

-

DATA_PRECISION

-

FLOAT(49)

-

DATA_SCALE

-

FLOAT(49)

-

NULLABLE

-

VARCHAR2(1)

"Y" or "N"

COLUMN_ID

NOT NULL

FLOAT(49)

-

DEFAULT_LENGTH

NOT NULL

NUMBER(10)

0

DATA_DEFAULT

NOT NULL

CHAR(1)

-

NUM_DISTINCT

NOT NULL

NUMBER(10)

0

LOW_VALUE

NOT NULL

NUMBER(10)

-

HIGH_VALUE

NOT NULL

NUMBER(10)

-

DENSITY

NOT NULL

NUMBER(10)

0

NUM_NULLS

NOT NULL

NUMBER(10)

0

NUM_BUCKETS

NOT NULL

NUMBER(10)

0

LAST_ANALYZED

-

DATE

NULL

SAMPLE_SIZE

NOT NULL

NUMBER(10)

0

CHARACTER_SET_NAME

NOT NULL

CHAR(1)

-

CHAR_COL_DEC_LENGTH

NOT NULL

NUMBER(10)

0

GLOBAL_STATS

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

AVG_COL_LEN

NOT NULL

NUMBER(10)

0


Table C-9 describes the ALL_TAB_COMMENTS table.

Table C-9 ALL_TAB_COMMENTS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

-

VARCHAR2(11)

"TABLE"

COMMENTS

NOT NULL

CHAR(1)

-


Table C-10 describes the ALL_TABLES table.

Table C-10 ALL_TABLES

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLESPACE_NAME

NOT NULL

CHAR(1)

-

CLUSTER_NAME

NOT NULL

CHAR(1)

-

IOT_NAME

NOT NULL

CHAR(1)

-

PCT_FREE

NOT NULL

NUMBER(10)

0

PCT_USED

NOT NULL

NUMBER(10)

0

INI_TRANS

NOT NULL

NUMBER(10)

0

MAX_TRANS

NOT NULL

NUMBER(10)

0

INITIAL_EXTENT

NOT NULL

NUMBER(10)

0

NEXT_EXTENT

NOT NULL

NUMBER(10)

0

MIN_EXTENTS

NOT NULL

NUMBER(10)

0

MAX_EXTENTS

NOT NULL

NUMBER(10)

0

PCT_INCREASE

NOT NULL

NUMBER(10)

0

FREELISTS

NOT NULL

NUMBER(10)

0

FREELIST_GROUPS

NOT NULL

NUMBER(10)

0

LOGGING

NOT NULL

CHAR(1)

-

BACKED_UP

NOT NULL

CHAR(1)

-

NUM_ROWS

-

FLOAT(49)

-

BLOCKS

-

FLOAT(49)

-

EMPTY_BLOCKS

NOT NULL

NUMBER(10)

0

AVG_SPACE

NOT NULL

NUMBER(10)

0

CHAIN_CNT

NOT NULL

NUMBER(10)

0

AVG_ROW_LEN

NOT NULL

NUMBER(10)

0

AVG_SPACE_FREELIST_BLOCKS

NOT NULL

NUMBER(10)

0

NUM_FREELIST_BLOCKS

NOT NULL

NUMBER(10)

0

DEGREE

NOT NULL

CHAR(1)

-

INSTANCES

NOT NULL

CHAR(1)

-

CACHE

NOT NULL

CHAR(1)

-

TABLE_LOCK

NOT NULL

CHAR(1)

-

SAMPLE_SIZE

NOT NULL

NUMBER (10)

0

LAST_ANALYZED

-

DATE

NULL

PARTITIONED

NOT NULL

CHAR(1)

-

IOT_TYPE

NOT NULL

CHAR(1)

-

TEMPORARY

NOT NULL

CHAR(1)

-

SECONDARY

NOT NULL

CHAR(1)

-

NESTED

NOT NULL

CHAR(1)

-

BUFFER_POOL

NOT NULL

CHAR(1)

-

ROW_MOVEMENT

NOT NULL

CHAR(1)

-

GLOBAL_STATS

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

DURATION

NOT NULL

CHAR(1)

-

SKIP_CORRUPT

NOT NULL

CHAR(1)

-

MONITORING

NOT NULL

CHAR(1)

-


Table C-11 describes the ALL_USERS table.

Table C-11 ALL_USERS

NameNull?TypeValue

USERNAME

NOT NULL

VARCHAR2(30)

-

USER_ID

-

NUMBER

0

CREATED

-

DATE

NULL


Table C-12 describes the ALL_VIEWS table.

Table C-12 ALL_VIEWS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

VIEW_NAME

NOT NULL

VARCHAR2(30)

-

TEXT_LENGTH

NOT NULL

NUMBER(10)

0

TEXT

NOT NULL

CHAR(1)

-

TYPE_TEXT_LENGTH

NOT NULL

NUMBER(10)

0

TYPE_TEXT

NOT NULL

CHAR(1)

-

OID_TEXT_LENGTH

NOT NULL

NUMBER(10)

0

OID_TEXT

NOT NULL

CHAR(1)

-

VIEW_TYPE_OWNER

NOT NULL

CHAR(1)

-

VIEW_TYPE

NOT NULL

CHAR(1)

-


Table C-13 describes the DBA_CATALOG table.

Table C-13 DBA_CATALOG

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

-

VARCHAR2(11)

"TABLE"


Table C-14 describes the DBA_OBJECTS table.

Table C-14 DBA_OBJECTS

NameNull?TypeValue

OWNER

-

VARCHAR2(30)

IMS

OBJECT_NAME

-

VARCHAR2(128)

-

SUBOBJECT_NAME

-

VARCHAR2(1)

NULL

OBJECT_ID

-

NUMBER

0

DATA_OBJECT_ID

-

NUMBER

0

OBJECT_TYPE

-

VARCHAR2(18)

"TABLE" or "INDEX"

CREATED

-

DATE

NULL

LAST_DDL_TIME

-

DATE

NULL

TIMESTAMP

-

VARCHAR2(1)

NULL

STATUS

-

VARCHAR2(1)

NULL

TEMPORARY

-

VARCHAR2(1)

NULL

GENERATED

-

VARCHAR2(1)

NULL

SECONDARY

-

VARCHAR2(1)

NULL


Table C-15 describes the DBA_TAB_COLUMNS table.

Table C-15 DBA_TAB_COLUMNS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

NOT NULL

VARCHAR2(30)

-

DATA_TYPE

-

VARCHAR2(106)

-

DATA_TYPE_MOD

NOT NULL

CHAR(1)

-

DATA_TYPE_OWNER

NOT NULL

CHAR(1)

-

DATA_LENGTH

NOT NULL

FLOAT(49)

-

DATA_PRECISION

-

FLOAT(49)

-

DATA_SCALE

-

FLOAT(49)

-

NULLABLE

-

VARCHAR2(1)

"Y" or "N"

COLUMN_ID

NOT NULL

FLOAT(49)

-

DEFAULT_LENGTH

NOT NULL

NUMBER(10)

0

DATA_DEFAULT

NOT NULL

CHAR(1)

-

NUM_DISTINCT

NOT NULL

NUMBER(10)

0

LOW_VALUE

NOT NULL

NUMBER(10)

-

HIGH_VALUE

NOT NULL

NUMBER(10)

-

DENSITY

NOT NULL

NUMBER(10)

0

NUM_NULLS

NOT NULL

NUMBER(10)

0

NUM_BUCKETS

NOT NULL

NUMBER(10)

0

LAST_ANALYZED

-

DATE

NULL

SAMPLE_SIZE

NOT NULL

NUMBER(10)

0

CHARACTER_SET_NAME

NOT NULL

CHAR(1)

-

CHAR_COL_DEC_LENGTH

NOT NULL

NUMBER(10)

0

GLOBAL_STATS

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

AVG_COL_LEN

NOT NULL

NUMBER(10)

0


Table C-16 describes the DICT_COLUMNS table.

Table C-16 DICT_COLUMNS

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

NOT NULL

VARCHAR2(30)

-

COMMENTS

NOT NULL

CHAR(1)

-


Table C-17 describes the DICTIONARY table.

Table C-17 DICTIONARY

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COMMENTS

NOT NULL

CHAR(1)

-


Table C-18 describes the DUAL table.

Table C-18 DUAL

NameNull?TypeValue

DUMMY

NOT NULL

VARCHAR2(1)

-


Table C-19 describes the USER_CATALOG table.

Table C-19 USER_CATALOG

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

-

VARCHAR2(11)

"TABLE"


Table C-20 describes the USER_COL_COMMENTS table.

Table C-20 USER_COL_COMMENTS

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

NOT NULL

VARCHAR2(30)

-

COMMENTS

NOT NULL

CHAR(1)

-


Table C-21 describes the USER_CONS_COLUMNS table.

Table C-21 USER_CONS_COLUMNS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

CONSTRAINT_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

-

VARCHAR2(4000)

-

POSITION

-

FLOAT(49)

-


Table C-22 describes the USER_CONSTRAINTS table.

Table C-22 USER_CONSTRAINTS

NameNull?TypeValue

OWNER

NOT NULL

VARCHAR2(30)

IMS

CONSTRAINT_NAME

NOT NULL

VARCHAR2(30)

-

CONSTRAINT_TYPE

-

VARCHAR2(1)

"R" or "P"

TABLE_NAME

-

VARCHAR2(30)

-

SEARCH_CONDITION

NOT NULL

CHAR(1)

-

R_OWNER

NOT NULL

VARCHAR2(1)

-

R_CONSTRAINT_NAME

-

VARCHAR2(30)

-

DELETE_RULE

-

VARCHAR2(9)

NULL

STATUS

NOT NULL

CHAR(1)

-

DEFERRABLE

NOT NULL

CHAR(1)

-

DEFERRED

NOT NULL

CHAR(1)

-

VALIDATED

NOT NULL

CHAR(1)

-

GENERATED

NOT NULL

CHAR(1)

-

BAD

NOT NULL

CHAR(1)

-

RELY

NOT NULL

CHAR(1)

-

LAST_CHANGE

-

DATE

NULL


Table C-23 describes the USER_IND_COLUMNS table.

Table C-23 USER_IND_COLUMNS

NameNull?TypeValue

INDEX_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

-

VARCHAR2(4000)

-

COLUMN_POSITION

NOT NULL

FLOAT(49)

-

COLUMN_LENGTH

NOT NULL

FLOAT(49)

-

DESCEND

-

VARCHAR2(4)

"DESC" or "ASC"


Table C-24 describes the USER_INDEXES table.

Table C-24 USER_INDEXES

NameNull?TypeValue

INDEX_NAME

NOT NULL

VARCHAR2(30)

-

INDEX_TYPE

NOT NULL

CHAR(1)

-

TABLE_OWNER

NOT NULL

VARCHAR2(30)

-

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

NOT NULL

CHAR(5)

"TABLE"

UNIQUENESS

-

VARCHAR2(9)

"UNIQUE" or "NONUNIQUE"

COMPRESSION

NOT NULL

CHAR(1)

-

PREFIX_LENGTH

NOT NULL

NUMBER(10)

0

TABLESPACE_NAME

NOT NULL

CHAR(1)

-

INI_TRANS

NOT NULL

NUMBER(10)

0

MAX_TRANS

NOT NULL

NUMBER(10)

0

INITIAL_EXTENT

NOT NULL

NUMBER(10)

0

NEXT_EXTENT

NOT NULL

NUMBER(10)

0

MIN_EXTENTS

NOT NULL

NUMBER(10)

0

MAX_EXTENTS

NOT NULL

NUMBER(10)

0

PCT_INCREASE

NOT NULL

NUMBER(10)

0

PCT_THRESHOLD

NOT NULL

NUMBER(10)

0

INCLUDE_COLUMN

NOT NULL

NUMBER(10)

0

FREELISTS

NOT NULL

NUMBER(10)

0

FREELIST_GROUPS

NOT NULL

NUMBER(10)

0

PCT_FREE

NOT NULL

NUMBER(10)

0

LOGGING

NOT NULL

CHAR(1)

-

BLEVEL

NOT NULL

NUMBER(10)

0

LEAF_BLOCKS

NOT NULL

NUMBER(10)

0

DISTINCT_KEYS

-

FLOAT(49)

-

AVG_LEAF_BLOCKS_PER_KEY

NOT NULL

NUMBER(10)

0

AVG_DATA_BLOCKS_PER_KEY

NOT NULL

NUMBER(10)

0

CLUSTERING_FACTOR

NOT NULL

NUMBER(10)

0

STATUS

NOT NULL

CHAR(1)

-

NUM_ROWS

NOT NULL

NUMBER(10)

0

SAMPLE_SIZE

NOT NULL

NUMBER(10)

0

LAST_ANALYZED

-

DATE

NULL

DEGREE

NOT NULL

CHAR(1)

-

INSTANCES

NOT NULL

CHAR(1)

-

PARTITIONED

NOT NULL

CHAR(1)

-

TEMPORARY

NOT NULL

CHAR(1)

-

GENERATED

NOT NULL

CHAR(1)

-

SECONDARY

NOT NULL

CHAR(1)

-

BUFFER_POOL

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

DURATION

NOT NULL

CHAR(1)

-

PCT_DIRECT_ACCESS

NOT NULL

NUMBER(10)

0

ITYP_OWNER

NOT NULL

CHAR(1)

-

ITYP_NAME

NOT NULL

CHAR(1)

-

PARAMETERS

NOT NULL

CHAR(1)

-

GLOBAL_STATS

NOT NULL

CHAR(1)

-

DOMIDX_STATUS

NOT NULL

CHAR(1)

-

DOMIDX_OPSTATUS

NOT NULL

CHAR(1)

-

FUNCIDX_STATUS

NOT NULL

CHAR(1)

-


Table C-25 describes the USER_OBJECTS table.

Table C-25 USER_OBJECTS

NameNull?TypeValue

OBJECT_NAME

-

VARCHAR2(128)

-

SUBOBJECT_NAME

-

VARCHAR2(1)

NULL

OBJECT_ID

-

NUMBER

0

DATA_OBJECT_ID

-

NUMBER

0

OBJECT_TYPE

-

VARCHAR2(18)

"TABLE" or "INDEX"

CREATED

-

DATE

NULL

LAST_DDL_TIME

-

DATE

NULL

TIMESTAMP

-

VARCHAR2(1)

NULL

STATUS

-

VARCHAR2(1)

NULL

TEMPORARY

-

VARCHAR2(1)

NULL

GENERATED

-

VARCHAR2(1)

NULL

SECONDARY

-

VARCHAR2(1)

NULL


Table C-26 describes the USER_TAB_COLUMNS table.

Table C-26 USER_TAB_COLUMNS

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

COLUMN_NAME

NOT NULL

VARCHAR2(30)

-

DATA_TYPE

-

VARCHAR2(106)

-

DATA_TYPE_MOD

NOT NULL

CHAR(1)

-

DATA_TYPE_OWNER

NOT NULL

CHAR(1)

-

DATA_LENGTH

NOT NULL

FLOAT(49)

-

DATA_PRECISION

-

FLOAT(49)

-

DATA_SCALE

-

FLOAT(49)

-

NULLABLE

-

VARCHAR2(1)

"Y" or "N"

COLUMN_ID

NOT NULL

FLOAT(49)

-

DEFAULT_LENGTH

NOT NULL

NUMBER(10)

0

DATA_DEFAULT

NOT NULL

CHAR(1)

-

NUM_DISTINCT

NOT NULL

NUMBER(10)

0

LOW_VALUE

NOT NULL

NUMBER(10)

0

HIGH_VALUE

NOT NULL

NUMBER(10)

0

DENSITY

NOT NULL

NUMBER(10)

0

NUM_NULLS

NOT NULL

NUMBER(10)

0

NUM_BUCKETS

NOT NULL

NUMBER(10)

0

LAST_ANALYZED

-

DATE

NULL

SAMPLE_SIZE

NOT NULL

NUMBER(10)

0

CHARACTER_SET_NAME

NOT NULL

CHAR(1)

-

CHAR_COL_DECL_LENGTH

NOT NULL

NUMBER(10)

0

GLOBAL_STATS

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

AVG_COL_LEN

NOT NULL

NUMBER(10)

0


Table C-27 describes the USER_TAB_COMMENTS table.

Table C-27 USER_TAB_COMMENTS

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLE_TYPE

-

VARCHAR2(11)

"TABLE"

COMMENTS

NOT NULL

CHAR(1)

-


Table C-28 describes the USER_TABLES table.

Table C-28 USER_TABLES

NameNull?TypeValue

TABLE_NAME

NOT NULL

VARCHAR2(30)

-

TABLESPACE_NAME

NOT NULL

CHAR(1)

-

CLUSTER_NAME

NOT NULL

CHAR(1)

-

IOT_NAME

NOT NULL

CHAR(1)

-

PCT_FREE

NOT NULL

NUMBER(10)

0

PCT_USED

NOT NULL

NUMBER(10)

0

INI_TRANS

NOT NULL

NUMBER(10)

0

MAX_TRANS

NOT NULL

NUMBER(10)

0

INITIAL_EXTENT

NOT NULL

NUMBER(10)

0

NEXT_EXTENT

NOT NULL

NUMBER(10)

0

MIN_EXTENTS

NOT NULL

NUMBER(10)

0

MAX_EXTENTS

NOT NULL

NUMBER(10)

0

PCT_INCREASE

NOT NULL

NUMBER(10)

0

FREELISTS

NOT NULL

NUMBER(10)

0

FREELIST_GROUPS

NOT NULL

NUMBER(10)

0

LOGGING

NOT NULL

CHAR(1)

-

BACKED_UP

NOT NULL

CHAR(1)

-

NUM_ROWS

-

FLOAT(49)

-

BLOCKS

-

FLOAT(49)

-

EMPTY_BLOCKS

NOT NULL

NUMBER(10)

0

AVG_SPACE

NOT NULL

NUMBER(10)

0

CHAIN_CNT

NOT NULL

NUMBER(10)

0

AVG_ROW_LEN

NOT NULL

NUMBER(10)

0

AVG_SPACE_FREELIST_BLOCKS

NOT NULL

NUMBER(10)

0

NUM_FREELIST_BLOCKS

NOT NULL

NUMBER(10)

0

DEGREE

NOT NULL

CHAR(1)

-

INSTANCES

NOT NULL

CHAR(1)

-

CACHE

NOT NULL

CHAR(1)

-

TABLE_LOCK

NOT NULL

CHAR(1)

-

SAMPLE_SIZE

NOT NULL

NUMBER(10)

0

LAST_ANALYZED

-

DATE

NULL

PARTITIONED

NOT NULL

CHAR(1)

-

IOT_TYPE

NOT NULL

CHAR(1)

-

TEMPORARY

NOT NULL

CHAR(1)

-

SECONDARY

NOT NULL

CHAR(1)

-

NESTED

NOT NULL

CHAR(1)

-

BUFFER_POOL

NOT NULL

CHAR(1)

-

ROW_MOVEMENT

NOT NULL

CHAR(1)

-

GLOBAL_STATS

NOT NULL

CHAR(1)

-

USER_STATS

NOT NULL

CHAR(1)

-

DURATION

NOT NULL

CHAR(1)

-

SKIP_CORRUPT

NOT NULL

CHAR(1)

-

MONITORING

NOT NULL

CHAR(1)

-


Table C-29 describes the USER_USERS table.

Table C-29 USER_USERS

NameNull?TypeValue

USERNAME

NOT NULL

VARCHAR2(30)

-

USER_ID

-

NUMBER

0

ACCOUNT_STATUS

-

VARCHAR2(4)

"OPEN"

LOCK_DATE

-

DATE

NULL

EXPIRY_DATE

-

DATE

NULL

DEFAULT_TABLESPACE

-

VARCHAR2(1)

NULL

TEMPORARY_TABLESPACE

-

VARCHAR2(1)

NULL

CREATED

-

DATE

NULL

INITIAL_RSRC_CONSUMER_GROUP

-

VARCHAR2(1)

NULL

EXTERNAL_NAME

-

VARCHAR2(1)

NULL


Table C-30 describes the USER_VIEWS table.

Table C-30 USER_VIEWS

NameNull?TypeValue

VIEW_NAME

NOT NULL

VARCHAR2(30)

-

TEXT_LENGTH

NOT NULL

NUMBER(10)

0

TEXT

NOT NULL

CHAR(1)

-

TYPE_TEXT_LENGTH

NOT NULL

NUMBER(10)

0

TYPE_TEXT

NOT NULL

CHAR(1)

-

OID_TEXT_LENGTH

NOT NULL

NUMBER(10)

0

OID_TEXT

NOT NULL

CHAR(1)

-

VIEW_TYPE_OWNER

NOT NULL

CHAR(1)

-

VIEW_TYPE

NOT NULL

CHAR(1)

-


PKؑizcWcPK[.AOEBPS/ims_feat_restrict.htmui Gateway Features and Restrictions

3 Gateway Features and Restrictions

After the gateway is installed and configured, you can use the gateway to access IMS data, perform distributed queries, and copy data.

This chapter contains the following sections:

Accessing IMS/DB Data

Oracle Connect supports SQL data access to IMS/DB data in the following three IMS/DB environments:

  • IMS-DLI: Batch access. The Oracle Connect server issues direct DLI commands to retrieve data as a standalone batch program. This means that the database is accessed from the Oracle Connect-started task without going through any of the IMS control regions. This access method is suited to nightly processing, such as bulk loading when the IMS control region is down. It is usually not suited for general multi-user data access.

  • IMS-DBCTL: This data source is suited to users employing CICS as their primary application platform for accessing IMS data. All Oracle Connect servers communicate with an Oracle Connect-supplied CICS program. This program accepts requests for scheduling PSBs and retrieving data through DBCTL services.

  • IMS-DBDC: This data source is suited to users employing IMS/TM as their primary application platform for accessing IMS/DB data. All Oracle Connect servers communicate with an Oracle Connect-supplied IMS/TM transaction. This MPP transaction accepts requests from Oracle Connect servers and performs the DLI requests on their behalf.

SQL Support

Oracle Database Gateway for IMS supports SQL-based data access, allowing developers and applications to use this common and standard syntax for retrieving and updating IMS data, and for using SELECT, INSERT, UPDATE, and DELETE statements.

While SQL is supported by relational database management systems, it is not available for legacy, non-relational data such as IMS data. This means that Oracle Database Gateway for IMS goes beyond the functionality provided by other Oracle gateways that connect to relational databases, as those merely deal with the translation and delegation of SQL to the target database. Oracle Database Gateway for IMS takes care of the translation of the SQL statements into system and file specific access primitives, and their execution in an optimized manner, effectively serving as the SQL processor for the non-relational system.

In terms of SQL support, the gateway supports a wide range of SQL capabilities, from basic SQL statements to statements that include advanced features, such as joining of data from multiple IMS sources, use of subselects, and support of data manipulation functions. In addition, the gateway optimizes query performance by supporting such advanced capabilities in where clauses, processing most of them before returning the data to Oracle.

Because IMS is a non-relational system, its data model is not normalized. The gateway provides a complete normalization process that imports existing legacy metadata and produces a relational format that can be used by Oracle users. A key consideration in the normalization process takes care of the hierarchical data structures that are common in IMS, such as arrays.

Going through the import process, the gateway translates the hierarchical structures and embedded arrays into a relational model that maps the hierarchy to several tables. In addition, the process automatically generates the necessary foreign constraints that can later be retrieved using regular Oracle Data Dictionary queries.

In respect to the data dictionary, the gateway provides all the necessary information although the actual data dictionary is not located in the Oracle database. The gateway supports standard data dictionary queries, making the interaction with the non-Oracle data completely transparent to the user, and taking care of translating the non-Oracle model into the Oracle standard data dictionary format including joins across non-Oracle data dictionary tables.

While the typical use case only supports the retrieval of information using SELECT statements, the gateway also supports data manipulation using INSERT, UPDATE, and DELETE statements. Furthermore, it supports advanced options such as distributed transactions.

To summarize, Oracle Database Gateway for IMS offers robust SQL support and relational access to non-relational, proprietary, legacy IMS data. The following topics provide more information about specific SQL features and their support by the gateway.

This section includes the following topics:


See Also:

Supported SQL Syntax and Functions for details; SQL Restrictions for restrictions.

Naming Rules

Naming rule issues include the following:

Rules for Naming Objects

The concept of owner does not exist for objects from IMS/DB data sources. The userid of the dblink is not used to qualify the object. The owner field in the data dictionary tables (see Appendix C, "Data Dictionary" for details) is hardcoded as IMS. You must not use an explicit owner qualifier to reference IMS/DB tables. Using an explicit owner name results in a message like the following:

ORA-00942: table or view does not exist


See Also:

Oracle Database Reference and Adabas documentation for more information on naming objects and Oracle Database Error Messages for more information on error messages.

Case Sensitivity

Object names are not case sensitive. Both Oracle Studio for IMS, VSAM, and Adabas Gateways and the gateway automatically use upper case for data source metadata.

SQL Execution

Query issues include the following:

Empty Strings

Oracle processes an empty string in a SQL statement as a null value. IMS processes an empty string an empty string.

Comparing to an empty string

The gateway passes literal empty string to IMS without any conversion. If you intended an empty string to represent a null value, IMS does not process the statement that way; it uses the empty string.

You can avoid this problem by using NULL or IS NULL in the SQL statement instead of the empty string syntax, as in the following example:

SELECT * from "emp"@IMS where "ename" IS NULL;

Selecting an empty string

For VARCHAR columns, the gateway returns an empty string to the Oracle database server as NULL value.

For CHAR columns, the gateway returns the full size of the column with each character as empty space (' ').

Empty Bind Variables

For VARCHAR bind variables, the gateway passes empty bind variables to IMS as a NULL value.

Handling Non-Relational Data

Non-relational data sources require metadata, which is kept separately from the data itself. This metadata is stored as a data source definition in a data source repository, on the machine where the data source is defined. It lets you access the data from a non-relational database with SQL commands.

The metadata is imported and maintained using Oracle Studio for IMS, VSAM, and Adabas Gateways. If COBOL copybooks describing the data source records are available, you can import the metadata by using the metadata import procedure in the Design perspective, on the Metadata tab. If the metadata is provided in a number of COBOL copybooks that use different filter settings, you first import the metadata from copybooks with the same settings and later the metadata from other copybooks.

When the non-relational data contains arrays, these arrays can be exposed as follows:

Once the metadata is imported, the data from the non-relational data source can be normalized to maintain transparency.

  • As virtual views. This method generates a virtual view for every array in the parent record that contains all the array members.

  • As a single table. This method maps all the record fields of the non-relational file to a single table that contains both parent and child records.

Hierarchical Modelling

The IMS/DB data sources map the hierarchical model of IMS/DB to the relational model in the following manner:

  • Every segment is mapped to a table.

  • The fields in a table consist of the IMS segment buffer and the IMS keyfeedback area.

  • The index for an IMS 'table' consists of the keyfeedback, i.e. the entire path leading to the specific segment.

The Hospital Database Example includes a simple hierarchy HOSPITAL > WARD > PATIENT. The following figures show the relational model of this three-level hierarchy in Oracle Connect.

Figure 3-1 HOSPITAL in Relational Model

HOSPITAL in Relational Model
Description of "Figure 3-1 HOSPITAL in Relational Model"

Figure 3-2 WARD in Relational Model

This image shows the WARD in the relational model
Description of "Figure 3-2 WARD in Relational Model"

Figure 3-3 PATIENT in Relational Model

PATIENT in relational model
Description of "Figure 3-3 PATIENT in Relational Model"

Constructing DLI Commands from SQL Requests

When accessing any segment, the data source driver first needs to select a PCB to be used for this purpose. The choice of PCB is made according to the metadata. The metadata import includes the PSB as one of the import sources. As a result, each table definition in the Oracle Connect data dictionary includes a list of PCB numbers that can be used for every table.

For example, in the following figure, PCB0 will be used to access the HOSPITAL database. Note that you can have several PCBs for each table if your PSB includes several PCBs for the same database.

In addition, the IMS data source employs a small but effective 'vocabulary' of IMS commands and SSA variations to satisfy incoming requests.

Restrictions

The following sections describe the restrictions and include suggestions for dealing with them if possible:

SQL Restrictions

Restrictions related to SQL are described in the following sections:

Unsupported SQL Functions

When an unsupported SQL function is used in an UPDATE, DELETE, or INSERT statement, an error occurs.

See Supported SQL Syntax and Functions for a list of the supported functions.

SQL Syntax

Table 3-1 lists the restrictions that apply to SQL syntax.

Table 3-1 SQL Syntax Restrictions

SyntaxRestriction

CONNECT BY clause

The gateway does not support the CONNECT BY clause in a SELECT statement.

ROWID

The Oracle ROWID implementation is not supported.


Transaction Capability

The gateway does not support savepoints. If a distributed update transaction is under way involving the gateway and a user attempts to create a savepoint, the following error occurs:

ORA-02070: database dblink does not support savepoint in this context

By default, the IMS-DBCTL data source supports global transactions. If the IMS-DBCTL data source is configured differently in Oracle Studio for IMS, VSAM, and Adabas Gateways, see the Oracle Database Heterogeneous Connectivity User's Guide for configuration information.


See Also:

Oracle Database Error Messages for more information on error messages.

Transactional Integrity

If the IMS data source is defined as auto-commit (the IMS-DLI and IMS-DBDC data sources support only auto-commit), the gateway cannot guarantee transactional integrity. In this case, each UPDATE, INSERT, and DELETE statement is immediately committed on the IMS side and cannot be rolled back.


Note:

You can choose to run the gateway for the IMS-DLI data source in read-only mode by setting the HS_FDS_TRANSACTION_MODE parameter to READ_ONLY. Carefully weigh the advantages and disadvantages of executing updates on the IMS data source using the gateway.

Pass-Through Feature

IMS commands cannot be issued using the pass-through feature.

Table and Column Names

The gateway metadata defined for IMS allows record and field names to be over 30 characters in length, but the Oracle database server limits both table and column names to 30 characters. Because of this difference, if you access an IMS field with a name defined in the gateway metadata that is over 30 characters long, the name is truncated to 30 characters and the following Oracle error message is returned:

ORA-00972: Identifier is too long

To avoid this incompatibility, define all names in the gateway metadata less than or equal to 30 characters.


See Also:

Oracle Database Error Messages for more information on error messages.

Database Links

The gateway is not multithreaded and cannot support shared database links. Each gateway session spawns a separate gateway process and connections cannot be shared.

Stored Procedures

Stored procedures are not supported.

IMS/DB Restrictions

When accessing IMS/DB data, the following restrictions apply:

General IMS/DB Restrictions

The following restrictions apply to all IMS/DB data sources:

  • Supported are only databases that have a unique key for every element in a hierarchy, except for end-segments. The support of end-segments without a unique key is limited to read only, with no array (OCCURS clause) support.

  • DDL is not supported.

  • UPDATE operations on arrays (OCCURS clauses) are not supported. See Normalizing Non-Relational Data for details on handling arrays.

  • Logical databases are supported.

  • Logical children are not supported.

  • Secondary indexes are not supported.

  • Segments whose key is partitioned to several fields in the COBOL layout are supported by exposing both the COBOL-level fields and an additional field that overlays these fields and spans the entire key. The following restrictions apply:

    • Only queries that refer to the overlaid field in the WHERE clause develop an efficient execution strategic.

    • For such a key, only alphanumeric field types are supported.

  • CREATE TABLE operations are not supported.

  • IMS/TM transactions turn lowercase letters in IMS/DB data into uppercase letters.

Restrictions Specific to IMS-DLI

The following restrictions apply to the IMS-DLI data source (batch access) only:

  • The IMS-DLI data source must be set up in a separate workspace for every PSB accessed because the PSB is explicitly coded in the started task JCL.

  • Transactional operations, such as COMMIT and ROLLBACK, are not supported. All DML operations are therefore non-transactional.

  • UPDATE operations are supported, but it is not recommended to run them over several servers in parallel.

Restrictions Specific to IMS-DBCTL

The following restrictions apply to the IMS-DBCTL data source only:

Segments within a non-unique index are not supported on any level.

Restrictions Specific to IMS-DBDC

The following restrictions apply to the IMS-DBDC data source only:

  • Transaction processing is not supported.

  • Every data source definition can work with a single PSB only. Multiple data source can be created for multiple PSBs.

  • Segments within a non-unique index are not supported at any level.

PKY;ziuiPK[.A"OEBPS/img_text/normalized_view.htm4 Description of the illustration normalized_view.gif

This image shows a normalized view of the tables

PKPPK[.A$OEBPS/img_text/datasource_editor.htm Description of the illustration datasource_editor.gif

This image shows where to configure the default behavior for handling arrays

PKϏPK[.AOEBPS/img_text/ims040.htm= Description of the illustration ims040.gif

The image shows PATIENT in the relational model.

PKw(PPK[.A!OEBPS/img_text/metadata_model.htm2 Description of the illustration metadata_model.gif

The image shows the Metadata Model Selection screen

PKPK[.A+OEBPS/img_text/single_table_data_oracle.htm$ Description of the illustration single_table_data_oracle.gif

This table shows table data after sequential flattening

PKܕuPK[.A!OEBPS/img_text/vtables_studio.htm3 Description of the illustration vtables_studio.gif

This image shows a display of virtural table views

PKIOi]PK[.AOEBPS/img_text/ims030.htm@ Description of the illustration ims030.gif

The image shows WARD in the relational model.

PK&PK[.A'OEBPS/img_text/array_representation.htm Description of the illustration array_representation.gif

This image shows an example of OCCUR and DEPENDING ON clauses in COBOL

PKJ&PK[.AOEBPS/img_text/ims050.htmA Description of the illustration ims050.gif

The image shows PCB Selection in XML format.

PK>PIPK[.A.OEBPS/img_text/metadata_studio_columns_tab.htm- Description of the illustration metadata_studio_columns_tab.gif

This image shows the columns tab in Oracle Studio for IMS, VSAM, and Adabas Gateways, which displays a representation of the metadata.

PK2pd2-PK[.AOEBPS/img_text/cobol_sample.htm> Description of the illustration cobol_sample.gif

This image shows a COBOL metadata example

PKFPK[.A&OEBPS/img_text/select_virtual_view.htmA Description of the illustration select_virtual_view.gif

This image shows a virtual view

PKhZPPK[.A%OEBPS/img_text/gateway_processing.htm: Description of the illustration gateway_processing.gif

This image shows the Gateway processing

PKPK[.A'OEBPS/img_text/gateway_process_flow.htm/ Description of the illustration gateway_process_flow.gif

This figure illustrates the gateway process flow

PK&2WPK[.AOEBPS/img_text/ims020.htm< Description of the illustration ims020.gif

The image shows HOSPITAL in the relational model.

PKUPK[.A)OEBPS/img_text/sql_view_vtable_oracle.htm* Description of the illustration sql_view_vtable_oracle.gif

This image shows the SQL view of a table's metadata

PKbͿPK[.AOEBPS/img_text/table_editor.htm Description of the illustration table_editor.gif

This image shows how to modify the array handling policy on the table level

PK\PK[.AOEBPS/ims_datatype_conver.htmv Data Type Conversion

A Data Type Conversion

This appendix contains the following section:

Conversion of Atomic Data Types

The gateway converts atomic data types in the advanced data dictionary (ADD) to Oracle data types as described in Table A-1.

Table A-1 Atomic Data Types

ADD Data TypeOracle Data TypeDetails

apt_date

DATE

Date packed into a 4-character string.

Format: DMYY

Example: 23-Jul-1998 is represented by four bytes: 19, 98, 7, and 23.

apt_time

DATE

ADD date-time format.

bit

NUMBER(3)

Single bit within a byte.

Size: 1 byte.

Format: datatype="bit"

onBit="n"

Where n specifies which bit (within a byte) the field uses.

If more than one bit is defined, then the additional bits may be defined sequentially within the same byte (or bytes, if the number of bits requires this much space).

bits

NUMBER(3)

A signed number of bits within a byte.

Size: 1 bit to 1 byte

Format: <field name="name" datatype="bits" onBit="n" size="m"/>

Where n specifies which bit (within a byte) to start from and m is the number of bits. If n is not specified then n defaults to 1 for the first occurrence of the field and is contiguous thereafter.

The maximum number of bits you can map is 32.

cstring

VARCHAR2

A null-terminated string of alphanumeric characters; maximum length must be specified. An extra byte is required for the null flag.

cv_datetime

DATE

CorVision date-time format.

date

DATE

ODBC date format.

date6

DATE

Date in a string having the form YYMMDD

date8

DATE

Date in a string having the form YYYYMMDD

dfloat

FLOAT(49)

Double floating-point number (D_FLOAT)

Size: 8 bytes

Range: 0.29E-38 to 1.7E38

Precision: 16 digits.

filler

RAW

Allocation for future use, string type; length must be specified.

fixed_cstring

FLOAT(49)

A fixed null-terminated string of numeric characters; length must be specified. An extra byte is required for the null flag.

int1

NUMBER(3)

Signed byte integer.

Size: 1 byte

Range: -128 to +127

int2

NUMBER(5)

Signed word integer.

Size: 1 byte

Range: -32768 to +32767

int3

NUMBER(10)

Signed integer

Size: 3 bytes

int4

NUMBER(10)

Signed long integer.

Size: 4 bytes

Range: -2147483648 to +2147483647

int6

NUMBER(10)

Signed integer

Size: 6 bytes

int_date

DATE

Date in a four-byte integer having the form YYMMDD or YYYYMMDD.

Example, 23-Jul-1998 has the form: 980723 or 19980723.

jdate

DATE

Julian date

Size: 2 bytes

Bits 0-6: (non-century) year

Bits 7-15: day of the year

logical

NUMBER(10)

Signed long integer

Values: 1 for true, 0 for false

mvs_date

DATE

z/OS date format.

mvs_datetime

DATE

z/OS date-time format.

mvs_time

DATE

z/OS time format.

padded_str_date

DATE

Padded date format, not null-terminated.

padded_str_datetime

DATE

Padded date format, not null-terminated.

padded_str_time

DATE

Padded date format, not null-terminated.

phdate

DATE

Size: 2 bytes

Bits 0-6: (non-century) year

Bits 7-10: number of month

Bits 11-15: day of month

single

FLOAT(23)

Single floating-point number (F_FLOAT).

Size: 4 bytes

Range: 0.29E-38 to 1.7E38

Precision: 6 digits

str_date

CHAR(10)

Atomic date string

Size: 10 characters

Format: YYYY-MM-DD

str_datetime

CHAR(19)

Atomic date-time string.

Size: 19 characters

Format: YYYY-MM-DD HH:MM:SS

str_time

CHAR(8)

Atomic date string

Size: 8 characters

Format: HH:MM:SS

string

CHAR

String of alphanumeric characters; length must be specified.

time

DATE

ODBC time format.

timestamp

DATE

ODBC date-time format.

ubits

NUMBE(3)

An unsigned number of bits within a byte.

Size: 1 bit to 1 byte

Format: <field name="name" datetype="bits" onBit="n" size="m"/>

Where n specifies which bit (within a byte) to start from and m is the number of bits. If n is not specified, then n defaults to1 for the first occurrence of the field and its contiguous thereafter.

The maximum number of bits you can map is 31.

uint1

NUMBER(3)

Unsigned byte integer.

Size: 1 byte

Range: 0 to +254

uint2

NUMBER(10)

Unsugned word integer.

Size: 2 bytes

Range: 0 to+65534

uint4

NUMBER(11)

Signed long integer

Size: 4 bytes

Range: 0 to +4,294,967,294

uint6

NUMBER

Unsugned integer.

Size: 6 bytes

unicode

VARCHAR2

A null-terminated alphanumeric unicode string. Maximum length must be specified.

varstring

VARCHAR2

16-bit count, followed by a string.

varstring4

VARCHAR2

32-bit count, followed by a string.


Conversion of Non-Atomic Data Types

The gateway converts atomic data types to Oracle data types as described in Table A-1.

Table A-2 Non-atomic Data Types

ADD Data TypeOracle Data TypeDetails

binary

RAW

Unknown data type, string type; length must be specified.

nls_string

CHAR

A string based on language and driven by table.


Conversion of Decimal Data Types

The gateway converts decimal data types to Oracle data types as described in Table A-3.

Table A-3 Decimal Data Types

ADD Data TypeOracle Data TypeDetails

decimal

NUMBER

Packed decimal

Maximum number of digits: 31

Maximum fractions: 11

Length = int (number of digits/2) + 1 bytes

numeric_cstring

NUMBER

A null-terminated string of numeric characters; maximum length must be specified. An extra byte is required for the null flag.

numstr_bdn

NUMBER

Signed numeric string. Sign is the first character of the string.

Maximum number of digits: 31

Maximum fractions: 11

Note: the number of fractions includes the decimal point.

numstr_nlo

NUMBER

Signed numeric string. A left overpunched sign is implemented.

Maximum number of digits: 31

Maximum fractions: 11

numstr_nl

NUMBER

Signed numeric string. Sign is the first character of the string.

Maximum number of digits: 31

Maximum fractions: 11

numstr_nr

NUMBER

Signed numeric string. Sign is the last character of the string.

Maximum number of digits: 31

Maximum fractions: 11

numstr_s

NUMBER

Signed numeric string. A right overpunched sign is implemented.

Maximum number of digits: 31

Maximum fractions: 11

The number must be right-justified (for example, " 1234N" is -12345). The number can be left-padded by either spaces or zeros. If a scale is provided, it is a fixed positional scale. No decimal point is provided in the data (for example, a value of "1234E" with scale 2 is interpreted as "123.45").

numstr_u

NUMBER

Unsigned numeric string.

Maximum number of digits: 31

Maximum fractions: 11

numstr_zoned

NUMBER

Signed numeric string

Maximum number of digits: 31

Maximum fractions: 11


Conversion of Scaled Data Types

The gateway converts scaled data types to Oracle data types as described in Table A-4.

Table A-4 Scaled Data Types

ADD Data TypeOracle Data TypeDetails

scaled_int1

NUMBER

Signed byte integer.

Size: 1 byte

Range: -128 to +127

Maximum: 3

scaled_int2

NUMBER

Singlwe word integer.

Size: 2 byts

Range: -32768 to +32767

Maximum: 5

scaled_int3

NUMBER

Signed integer.

Size: 3 bytes

scaled_int4

NUMBER

Signed long integer.

Size: 4 bytes

Range: -2147483648 to +2147483647

Maximum: 10

scaled_int6

NUMBER

Signed integer

Size: 6 bytes

scaled_int8

NUMBER

Signed quadword.

Size: 4 bytes

Range: -2147483648 to +2147483647

Maximum: 10

scaled_uint1

NUMBER

Unsigned byte integer.

Size: 1 byte

Range: 0 to +254

Maximum: 3

scaled_uint2

NUMBER

Unsigned word integer.

Size: 2 bytes

Range: 0 to +65534

Maximum: 5

scaled_uint4

NUMBER(5)

Unsigned long integer

Size: 4 bytes

Range: 0 to +4,294,967,294

Maximum: 10


PK #)PK[.AOEBPS/c_array_procedures.htm)? Setting the Array Handling Policy

4 Setting the Array Handling Policy

This chapter contains the following sections:

Setting the Default Behavior for Array Handling

You can define the default behavior for array handling at the data source level when configuring the data source properties.

See Oracle Database Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for Microsoft Windows or Oracle Database Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for AIX 5L Based Systems (64-Bit), HP-UX Itanium, Solaris Operating System (SPARC 64-Bit), Linux x86, and Linux x86-64 for details on configuring data source properties.

Perform the following steps in Oracle Studio for IMS, VSAM, and Adabas Gateways to set the default array handling behavior:

  1. In the Design Perspective Configuration Viewexpand the Machine folder and then expand the machine with the data source where you want to set the array handling behavior.

  2. Expand the binding with the data source you are working with.

  3. Expand the Data Sources folder and then right-click the data source and select Edit Data Source.

    The Configuration Properties screen opens.

  4. On the Advanced tab, in the Virtual View Policy section, configure how arrays will be handled by selecting the relevant check boxes. The following options are available:

    • Generate sequential view: Select this option if you want to map a non-relation file to a single table.

    • Generate virtual views: Select this option if you want to have an individual table created for every array in the non-relational file.

    • Include row number column: Select this option if you want to include a column that specifies the row number in the virtual or sequential view.

    • Inherit all parent columns: Select this option if you want the virtual views to include all the columns of the parent record.

    Figure 4-1 Setting the Default Behavior for Handling Arrays

    Default behavior for handling arrays
    Description of "Figure 4-1 Setting the Default Behavior for Handling Arrays"

  5. Save your settings.

Modifying the Default Behavior During Metadata Import

During the metadata import procedure, the Metadata Model Selection step lets you modify the array handling policy for the tables to be imported. You can define specfic setings per table or keep the default values, which are inherited from the settings that you defined on the data source level (see Setting the Default Behavior for Array Handling). After importing a table you can change its array handling settings on the Modeling tab of the table editor (see Modifying the Array Handling Policy for a Specific Table).

See Oracle Database Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for AIX 5L Based Systems (64-Bit), HP-UX Itanium, Solaris Operating System (SPARC 64-Bit), Linux x86, and Linux x86-64 or Oracle Database Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for Microsoft Windows for details on the import procedure per data source.

Perform the following steps to select the metadata model.

  1. In the Import Wizard, click Next until you reach the Metadata Model Selection step.

  2. Select from the following:

    • Default values for all tables: Select this option if you want to apply the same values to all tables to be imported.


      Note:

      Selecting this check box discards all table-specific settings.

      • Generate sequential view: Select this option if you want to map a non-relational file to a single table.

      • Generate virtual views: Select this option if you want to have an individual table created for every array in the non-relational file.

      • Virtual views include row number: Select this optoin if you want to include a column that specifies the row number in the virtual or sequential view.

      • Virtual views inherit all parent columns: Select this option if you want the virtual to include all the columns of the parent record.

    • Specific virtual array view settings per table: Select this option if you want to apply different values to the tables to be imported. then select the relevant check boxes.

    Figure 4-2 Selecting the Metadata Model

    The image shows the Metadata Model Selection screen
    Description of "Figure 4-2 Selecting the Metadata Model"

Modifying the Array Handling Policy for a Specific Table

You can also change the array handling policy on the table level. Perform the following steps to modify the policy for a specific table:

  1. In the Design Perspective Configuration Viewexpand the Machine folder and then expand the machine with the data source where you want to set the array handling behavior.

  2. Expand the binding with the data source you are working with.

  3. Expand the data sources folder, then right-click the data source and select Edit metadata.

    The Metadata view opens on the node of the respective data source.

  4. Expand the data source node, and then expand the Tables node.

  5. Double-click the table whose array handling settings you want to modify.

    The table editor opens.

  6. On the Modeling tab, configure how arrays will be handled by selecting the relevant check boxes. The following options are available:

    • Generate sequential view: Select this option if you want to map a non-relation file to a single table.

    • Generate virtual views: Select this option if you want to have an individual table created for every array in the non-relational file.

    • Include row number column: Select this option if you want to include a column that specifies the row number in the virtual or sequential view.

    • Inherit all parent columns: Select this option if you want the virtual views to include all the columns of the parent record.

    Figure 4-3 Modifying the Array Handling Policy on the Table Level

    Modifying array handling on table level
    Description of "Figure 4-3 Modifying the Array Handling Policy on the Table Level"

  7. Save your settings.

    Oracle Studio for IMS, VSAM, and Adabas Gateways creates new virtual views.

PK6}))PK[.A OEBPS/toc.ncx q Oracle® Database Gateway for IMS User's Guide, 11g Release 2 (11.2) Cover Table of Contents Oracle Database Gateway for IMS User's Guide, 11g Release 2 (11.2) Preface Getting Started with Oracle Database Gateways Normalizing Non-Relational Data Gateway Features and Restrictions Setting the Array Handling Policy Data Type Conversion Supported SQL Syntax and Functions Data Dictionary Globalization Support Examples Index Copyright PK PK[.AOEBPS/c_gettingstarted.htmS+ Getting Started with Oracle Database Gateways

1 Getting Started with Oracle Database Gateways

This chapter contains the following sections:

Overview

Heterogeneous data access is a problem that affects a lot of companies. A lot of companies run several different database systems. Each of these systems stores data and has a set of applications that run against it. Consolidation of this data in one database system is often hard—in large part because many of the applications that run against one database may not have an equivalent that runs against another. Until such time as migration to one consolidated database system is made feasible, it is necessary for the various heterogeneous database systems to interoperate.

Oracle Database Gateways provide the ability to transparently access data located in a non-Oracle system from an Oracle environment. This transparency eliminates the need for application developers to customize their applications to access data from different non-Oracle systems, thus decreasing development efforts and increasing the mobility of the application. Applications can be developed using a consistent Oracle interface for both Oracle and Adabas.

Gateway technology is composed of two parts: a component that has the generic technology to connect to a non-Oracle system, which is common to all the non-Oracle systems, called Heterogeneous Services, and a component that is specific to the non-Oracle system that the gateway connects to. Heterogeneous Services, in conjunction with the Database Gateway agent and Oracle Connect for IMS, VSAM, and Adabas Gateways, enables transparent access to non-Oracle systems from an Oracle environment.

Oracle Heterogeneous Services

Heterogeneous Services provides the generic technology for connecting to non-Oracle systems. As an integrated component of the database, Heterogeneous Services can exploit features of the database, such as the powerful SQL parsing and distributed optimization capabilities.

Heterogeneous Services extend the Oracle SQL engine to recognize the SQL and procedural capabilities of the remote non-Oracle system and the mappings required to obtain necessary data dictionary information. Heterogeneous Services provides two types of translations: the ability to translate Oracle SQL into the proper dialect of the non-Oracle system and the ability to handle data dictionary translations so that the metadata of the non-Oracle system is displayed in the local format. For situations where no translations are available, native SQL can be issued to the non-Oracle system using the pass-through feature of Heterogeneous Services.

Heterogeneous Services also maintains the transaction coordination between Oracle and the remote non-Oracle system, such as providing the global transaction protocol to ensure distributed transaction integrity, even for non-Oracle systems that do not natively support global transactions.


See Also:

Oracle Database Heterogeneous Connectivity User's Guide for more information about Heterogeneous Services.

Oracle Database Gateways

Oracle Database Gateway for Adabas allows Oracle client applications to access Adabas data through Structured Query Language (SQL). The gateway, with the Oracle database server, creates the appearance that all data resides on a local Oracle database server, even though data might be widely distributed. If data is moved from this data source to an Oracle database, no changes in the client application's design or function are needed because the gateway handles all differences in data types or SQL functions between the applications and the database.

Using Oracle SQL, Oracle client applications can access the Adabas data source as if the data was stored in an Oracle table. A single SQL statement can access data residing in Oracle and Adabas data sources, performing heterogeneous joins and subselects. This means that you can develop one set of portable applications to use against Oracle and these non-relational data sources. You can continue to develop new information systems without losing your investment in existing data and applications.

Transactions updating Oracle and this non-relational data source are automatically protected by the Oracle global transactions feature. Use of synonyms is another Oracle feature. By setting up synonyms in the Oracle database server that point to database links to Adabas files, the physical location of the data is transparent to the client application. This allows future migration of data from Adabas to Oracle to be transparent to the client applications.

The gateway requires the Oracle database server, Oracle Connect for IMS, VSAM, and Adabas Gateways, and Oracle Studio for IMS, VSAM, and Adabas Gateways. All other Oracle products are optional. However, using other Oracle products with the gateway can greatly extend the gateway's capabilities.

The gateway can be installed on a computer where the Oracle database is installed, or on a second, standalone machine. Each configuration has its advantages and disadvantages. The issues to consider when you determine where to install the gateway are network traffic, availability of the operating system platform, hardware resources, and storage.

Oracle Connect for IMS, VSAM, and Adabas Gateways must be installed on the z/OS system where the Adabas data source is installed. To be able to configure and manage Oracle Connect for IMS, VSAM, and Adabas Gateways, you need to install Oracle Studio for IMS, VSAM, and Adabas Gateways on a computer running Windows or Linux.

Gateway Architecture

The gateway is invoked by the listener. The gateway is not multi-threaded and cannot support shared database links. Each gateway session spawns a separate gateway process, and connections cannot be shared.

The gateway is located on a Windows or UNIX computer. The non-relational data source resides on a computer running IBM z/OS. The Oracle database server can reside on the same machine as the gateway or on another machine.

The gateway interacts with the Oracle database server to interface between client applications and the Adabas data source, as shown in Figure 1-1.


Note:

The non-Oracle system in Figure 1-1 and Figure 1-2 represents the Adabas data source.

Figure 1-1 Gateway Processing

This figure illustrates the gateway processing.
Description of "Figure 1-1 Gateway Processing"

  • Client applications, such as Developer, connect to the Oracle database server by using Oracle Net.

  • The Oracle database server, which includes Heterogeneous Services and the database itself, resides on a single system. This Oracle database server also stores definitions of database links for the non-Oracle system.

  • The gateway to Adabas resides on a second system.

  • The Adabas data source, together with Oracle Connect for IMS, VSAM, and Adabas Gateways, resides on a third system, which is an IBM z/OS platform.

  • Oracle Studio for IMS, VSAM, and Adabas Gateways, which is used to configure Oracle Connect for IMS, VSAM, and Adabas Gateways, resides on a fourth system, which can be running a Windows or Linux operating system.

  • The Oracle database server on the first system uses Oracle Net to connect directly to the Adabas gateway on the second system. The gateway itself uses the Oracle Connect for IMS, VSAM, and Adabas Gateways protocol to connect to Oracle Connect for IMS, VSAM, and Adabas Gateways, which then connects to the non-Oracle system using the same protocol.

The Oracle database server and the gateway work together to present the appearance of a single Oracle database to the client. All data accessed by the client appears to reside in a single Oracle database. The client application sends a request to the Oracle database server, and the Oracle database server sends the request to the gateway.

For the first transaction in a session, the gateway logs into the Adabas data source using a username and password that is valid in the respective data source. The gateway converts the SQL statement to a native Adabas statement, and the Adabas data source performs the request. The gateway converts the retrieved data to a format compatible with the Oracle database server and returns the results to the Oracle database server, which returns the results to the client application.

Gateway Process Flow

Figure 1-2 shows a typical gateway process flow. The steps explain the sequence of the events that occurs when a client application queries the Adabas data source through the gateway.

Figure 1-2 Gateway Process Flow

This figure illustrates the gateway process flow
Description of "Figure 1-2 Gateway Process Flow"

  1. The client application sends a query over Oracle Net to the Oracle database server.

  2. The Oracle database server sends the query over to the gateway, again using Oracle Net.

  3. The gateway passes the query on to Oracle Connect for IMS, VSAM, and Adabas Gateways.

  4. For the first transaction in a session, Oracle Connect for IMS, VSAM, and Adabas Gateways logs into the Adabas data source using a user name and password that is valid in the respective data source.

  5. Oracle Connect for IMS, VSAM, and Adabas Gateways converts the Oracle SQL statement into a data access operation understood by the data source.

  6. Oracle Connect for IMS, VSAM, and Adabas Gateways retrieves the data.

  7. Oracle Connect for IMS, VSAM, and Adabas Gateways converts the retrieved data into a format compatible with the Oracle database server.

  8. Oracle Connect for IMS, VSAM, and Adabas Gateways passes the data to the gateway using the Oracle Connect for IMS, VSAM, and Adabas Gateways protocol.

  9. The gateway returns the query results to the Oracle database server, again using Oracle Net.

  10. The Oracle database server passes the query results to the client application by using Oracle Net. The database link remains open until the gateway session is finished or the database link is explicitly closed.

Setup Flow

To be able to access Adabas data, you need to perform the tasks described in the following list, in the specified order. Each step in the list directs you to the relevant manual or chapter.

  1. Install Oracle Connect for IMS, VSAM, and Adabas Gateways


    See:

    Oracle Connect for IMS, VSAM, and Adabas Gateways Installation and Configuration Guide for IBM z/OS for information on installing Oracle Connect for IMS, VSAM, and Adabas Gateways

  2. Install Oracle Studio for IMS, VSAM, and Adabas Gateways

  3. Configure Oracle Connect for IMS, VSAM, and Adabas Gateways

  4. Set up the connection to Oracle Connect for IMS, VSAM, and Adabas Gateways

  5. Set up the Adabas data source

  6. Set up the data source metadata

  7. Install Oracle Database Gateway for Adabas

  8. Configure Oracle Database Gateway for Adabas

PKUzSSPK[.AOEBPS/c_nls.htm` Globalization Support

D Globalization Support

The main aspect of the Globalization Support in Oracle Connect for IMS, VSAM, and Adabas Gateways is the recognition of the different characters associated with a language and the way they are encoded in various operating systems and data sources. For each supported language, a special definition file called a character set file is supplied where all the language related information is stored. For complex languages such as Chinese, Japanese, and Korean, a special library is also provided where specific conversion rules are implemented.

As a distributed product that accesses heterogeneous data sources on varied platforms, Oracle Connect for IMS, VSAM, and Adabas Gateways offers seamless conversion of text between the different character encodings used on the different platforms. Examples of such automatic conversion include:

  • Conversion between ASCII based encoding on open systems and EBCDIC based encoding on IBM mainframes and AS/400 machines

  • Conversions to and from Unicode for databases that store data in Unicode

  • Conversions between different encodings of the same language used on different platforms

  • Conversions of legacy data stored using old character encodings (such as 7-bit encoding) into the current platform encoding standard

Getting this kind of seamless Globalization Support requires the proper setting of the character set definitions according to the kind of encoding in use in the various data sources and platforms.

This section discusses the different encoding schemes in use, the character set definitions required and other Globalization Support related aspects, and contains information on the following topics:

Character Set Terminology

The following terminology is used to describe character sets.

Single-Byte Character Sets

In a single-byte character set, each character is represented by a single-byte value, that is, a number between 1 and 255, inclusive. Single-byte character sets are typical of Western languages. For example, in the ISO-8859-1 (Latin) character set, the character 'A' is represented by the single byte value of 65, whereas in the US-EBCDIC character set (or in the IBM-037 character set), the same character is represented by the single-byte value of 193.

Multibyte Character Sets

In a multibyte character set, some or all of the characters are represented by more than one byte value. Multibyte character sets are typical in complex languages such as Chinese, Japanese and Korean.

Unicode Character Sets

Unicode is a universal numbering of all known characters, with each character identified by a unique number - its codepoint. Unicode has several encoding schemes, of which Oracle Application Development Framework Controller API Reference supports UTF-8 and, to a lesser extent, UCS-2.

Since the product uses 8-bit characters, the only Unicode encoding that qualifies as a 'character set' is the UTF-8 encoding. The product supports UCS-2 in its data sources (through special Unicode data types).

Customized Character Sets

The Globalization Support of Oracle Connect can be customized to add new languages and character sets not currently supported as well as to introduce special conversion cases. The customization involves editing special character set source files and building .cp files from them using the NAV_UTIL program.

Globalization Support Settings

The minimal globalization Support configuration amounts to adding the HS_LANGUAGE parameter to the HS initialization parameter file and telling the product what national language is in use.

For information on how to add the parameter to the HS initialization parameter file, see Oracle Database Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for Microsoft Windows or Oracle Database Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for AIX 5L Based Systems (64-Bit), HP-UX Itanium, Solaris Operating System (SPARC 64-Bit), Linux x86, and Linux x86-64.

To set the language in Studio

  1. In the Oracle Studio for IMS, VSAM, and Adabas Gateways Design perspective, open the machine for which you want to set the language.

  2. Expand the Bindings and right-click the NAV binding.

  3. Select Edit Binding.

  4. Open the Misc category and fill in the language parameter with the desired language code from Globalization Support Language Codes.

  5. Save the change. New servers will use the language selected.

When a language is selected, a default character set is automatically used based on the language and the platform. Table D-1 summarizes the languages, their codes, and their character sets.

Table D-1 Globalization Support Language Codes

EBCDIC CP NameDescriptionBase ASCII CPMultibyte

AR8EBCDIC420

Arabic bilingual

AR8ISO8859P6


AR8EBCDICX

Arabic + Latin

AR8ISO8859P6


BLT8EBCDIC1112

Baltic multilingual

BLT8ISO8859P13


CL8EBCDIC1025

Cyrillic multilingual

CL8ISO8859P5


CL8EBCDIC1158

Cyrillic Ukraine + Euro

CLMSWIN1251


D8EBCDIC1141

Austria - Germany + Euro

WE8ISO8859P15


D8EBCDIC273

Germany - Austria

WE8ISO8859P1


DK8EBCDIC1142

Denmark - Norway + Euro

WE8ISO8859P15


DK8EBCDIC277

Denmark - Norway

NE8ISO8859P10


EE8EBCDIC870

Latin 2 multilingual

EE8ISO8859P2


EL8EBCDIC423

Greece

EL8ISO8859P7


EL8EBCDIC875

Greece

EL8ISO8859P7


EL8EBCDIC875R

Greece

EL8ISO8859P7


F8EBCDIC1147

France + Euro

WE8ISO8859P15


F8EBCDIC297

France

WE8ISO8859P1


I8EBCDIC1144

Italy + Euro

WE8ISO8859P15


I8EBCDIC280

Italy

WE8ISO8859P1


IW8EBCDIC1086

Hebrew

IW8ISO8859P8


IW8EBCDIC424

Hebrew

IW8ISO8859P8


JA16DBCS

Japan

JA16SJIS

Yes

JA16EBCDIC930

Japan

JA16SJIS

Yes

KO16DBCS

Korea

KO16KSC5601

Yes

S8EBCDIC1143

Finland - Sweden + Euro

WE8ISO8859P15


S8EBCDIC278

Finland - Sweden

WE8ISO8859P1


TH8TISEBCDIC

Thai IS 620-2533 EBCDIC 8-bit

TH8TISASCII


TR8EBCDIC1026

Turkey

WE8ISO8859P9


WE8EBCDIC1047

Latin 1

WE8ISO8859P1


WE8EBCDIC1140

USA, Canada + Euro

WE8ISO8859P15


WE8EBCDIC1145

Spanish + Euro

WE8ISO8859P15


WE8EBCDIC1146

UK + Euro

WE8ISO8859P15


WE8EBCDIC1148

International ECECP + Euro

WE8ISO8859P15


WE8EBCDIC1148

Western Europe + Euro

WE8ISO8859P15


WE8EBCDIC284

Spanish

WE8ISO8859P1


WE8EBCDIC285

UK

WE8ISO8859P1


WE8EBCDIC37

USA + Canada

WE8ISO8859P1


WE8EBCDIC37

Canadian French

WE8ISO8859P1


WE8EBCDIC500

Western Europe

WE8ISO8859P1


WE8EBCDIC871

Iceland

NE8ISO8859P10


WE8EBCDIC924

Latin 9

WE8ISO8859P9


ZHS16DBCS

Simplified Chinese

ZHS16CGB231280

Yes

ZHT16DBCS

Traditional Chinese

ZHT16BIG5

Yes


PK ``PK[.AOEBPS/content.opf,~ Oracle® Database Gateway for IMS User's Guide, 11g Release 2 (11.2) en-US E12072-01 Oracle Corporation Oracle Corporation Oracle® Database Gateway for IMS User's Guide, 11g Release 2 (11.2) 2009-07-29T19:12:38Z Describes the Oracle Database Gateway for ODBC, which enables Oracle client applications to access non-Oracle systems data through Structured Query Language (SQL). PKʆ,,PK[.AOEBPS/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[[mh=kO}7ߗgEe^%tk56v@DrF@b2ϱ7zwp]ɝA G@(/zhzhZG$e8?.v:fxoSUԙ Iƒ (b+xV+{O+8fv'$(ryᵷX$/$0UE$xsQvqX]wk&vMDlppAXt[?BywwNՋ=2K--cFI TpO ռW4x䍃+sǟƞĺ43$K ܢgiսis=칎pTH>r*VZ8fWh[$a9S#PʎyᵷX$/$0UE$xsRWntoYi.FZث"nrsWr8 7ĺp^N]IX.@ IH\?<1LnoldXPk.d}D򿵵[;>_-q# *gvgdH$F TwZݾhQlX Q@(KjK[b GEchNrr01EjPEPEPEPEPEPEPEPEPEPEPEP_§FװWf_|68`SgI*m$עw?P7fIF 3(%E##lxjmGeow%1GswB9W sT|绒K6z!eAۆe% Ӝg>%6kWТ;dV*9vXNxyW-%׷o2>h>_Ny5E|?R}C:O(Etqw73CK} ?ϷyQOg-<~wm˝wǺԓtI" *fLnIN.F33lZwl%BrpH ``zA7'-٧iFR/)D7x[KÍoK5;͍6qj ʹzN8 oSռ'ݻfrsg,GL/ Njad&Yq%H9/q'%_CzSm+%'ze֟2Kw2s[!`_OQ3P ~,ŧh5HynNYIm `uS}Cxim5jM'I%fX*3|odnA@pGP#[z;eK^(#/ HB31t($.ljn<$m=\)@27'p<ēIYcŐFG^AO#sj:^5pcz੒ݷʁ$x *ڏ'B;o \ p$u .xAb0Ms:{{HุXUr`:bj_'-lF3>ُ'8ϙ~ M^麏.#K+Ds)GRX&s8<>;y ۭ Z|VKm^TW{H6y#8= yGT^iW cO+Nnn@w5CT0`ιx XEiB"vQwT8h4~ A9aX&FxqYu Ɣp'զ t9ҀZi>-'-oM2/K)h"012<6gh7w8:ՔKM+ݾU.70 `^@?#_t{cshĐܧsُ`;{:;9-婁?~@6*z?$Ơq#Ӣ]GRK n#lX]݀N8gIj:_Yle~ݾEBy$ ]ǂ|O ,u^g<3n>s=;7_V=6{)uG$ 2yF~peiMh\T Tr:99=gWxZX̗֙w2Mq#yÃrĸ$Y>_ U=ƓJzVUH!Jn_pF| W!?l=$ٳ~3w8k/Fz] wg F.G] q,&&kvJvo8Ͻz մnTϷr<3x$r+o6R:C!ˑrރs(@^x:Ŧkm (|w@ wQK~ 1%ƥ,,&V æf!&9th ~ښIaN9qc/>hSxo'XÚapZ%<%MR]ތo)Y"! .U(϶?s}h?to1ۣHW=/E- obKͱ,3 (>x N=I9YA\ #W^n#TUQ}NJJɐgo5cwEf,u93r077p6yo%8um7\ݯ:>˦8P"ڣ7:<$]_=KJ8`r)>j)$,M{dP' ZF6A\A1PKC&xRo |>-ۈ#g `A 9n u۟|+%A˪˹.}lUULfnn ⷂ|;gF{U/H|Þ¾%OQ<;z+ȐęC,;"i9q\g<5lz"ΦL1̯,OxF}/Ӯ>}=[ͼ#<[p`r9_⎿g#z|9yv..!ĉC#0pV( *mt2\ŧq}g*RoޭI U88 (((((((((((( ~Ig;Wsнr:nn^ic9vK` aW(89 |>war#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}\+ï^k$#PXDžm{Q;?>Kγ5|yE랕Eׄ|Ux/5 Y'~- lWQEc{º,ͮAe}򀗓Y$8Qx[F׵.S|7]|ʜH^[PEPEPEPEPEPEPEPEPEPEPEPEPSյ-?_ h.213"̾l 1>ַ>/i u .6M7\8a$~5_§FAInQr|I>xs_.SiL4K͜K[<4<`tUb a 3)9zWx6SH5 F2P̤WŸ<i!@(QHp>1\]OĒ|EӵvPxw$o"1dy"O3Kx'1 ) @pN#rr3/t>,T j|Efs]+9u5bhI%q#2X |![( Lꭎ@c0$g}z4^$#էW m¨M!c5ϊjV߻ч.P2*_~x-<'M ƺs^h~oO I!f##*H8': 򿏺xK.gmN4i-fh)*A@8w?±h+>ږ[/P8ѤbTWWO4 `Ʃ|?5M7 g6ܐFk<7/KusǷw^ Je?(dHPrw`>_[kwd_-.~ˍA3g^9^v-zΡ"i4q+q] &TcQ^O G?5V >#4J|ՕdT+1V h.OCZVօpjʫ(EpÿNwumKF-Ɨ]ڜhZ1_*STq+oǞ:Ȗu"Òe$/+ͷn/~.—2Љe}hc (_.hSEM̀}f灷$ >1G\׈5A^x+)'t?I+x%Yk#ik7@2>^? ;]u(uzn, S@e_W?J o@&n|#n7/¼yV?-zGCoO :"2G nb89|NN{ϨKK g|U=бz+; v~rY*bXN|"7+&j3M ndcho7ׁ$IZ$4Jd;U*a@(cwQE)|K;7I-RA WaIsOk>5 SKV Dp qN=zx$P** BV^\ki9Ul}^InQt kzY&]2F,%$y$s[I熿k(|?ghrHp,o0b0̩H߸={q_U%9`l[K][s?{]v㖽gKji^To*F(}EPEPEPEPEPEPEPEPEPEPEPEP_§FAInQnxZo5 T9[[,.]#a򤑘B: ×zku{8:@xov$-|-$Xqw*89$l{RP#x#JWfqR02zzx+M:6uʍש=OO? 5~ӫ[ηh9Cnz0O<6\K0DF dOkb|c?!b=sܳ m8#:~ξ )^Y4R\F?t}H<9x[K]7E9}KcԳ1%AOPyWj٧v +=79 szG<[oqsA*92<G >,$P W`tm9^_|M|?Lw6ca ꩒0Z-%V2ĒHWV\(` <# .c ]$r1Ij:-_W1#a&2U]N1\<'N\1 VM ߕG*E |"InVRCOzm<7igbL0 1NpMSßx{i$p8a׆'4~,伿5[KXi$1d?IOs=Ιu5I#y?*V^>"᥸ B90x\rxDѬ=s=gd)V'u\!M*H?ïͼngk8X]JA8%cj[K_Ǟ$FIh[ǧa/oJ>crIEPEPEPEPEPEPEPEPEPEPEPEPEy_F|'cS}^Kvi!GRۢT'r=~O㝟O$ϲyjJwOzW:;_M`$}0r ْWo'((Bյ)hroæ#h1m*?3rs^@Q@Q@Q@Q@Q@Wo:4 M3EpPFwŠZ-uQͻvF%aF8;I&|Gwk+K"%>yE܄}ξEyO>.my_H8@V?zEW[ϦrVkg7#DI]]iL@8 zPQ@vKo%|?oG6HxAK?x^(Mԥ1@ѦÄm5,7nU< +?\_Xt'x#FGVSFz //h6\;#fX ubvn'D((((zw]ɍ<V(?%XYqZAikvCb4\Np2I?X ( ( ( ( ( ( ( ( ( ( ( (<_u/Wyv3'j,'_|u êO{"Ai w^Haf|69Sd92m#Wq3nX?ta2m-cXP ErtQ7/o;.t>S 3 }GA5kj}GYI' A3Vw5d}KDrmA RpZ0ܺ60ȭ!aX0Wkjro$ 䒠0uڧ <]z (dG~Q,T to?a~m_rڢo#)?\~V$H<|Y`Zç {WrxzG#"@>j)b@Ó@_K9&EɾCo7Jj:Gs|0v:V6F1~qGˆ'/YH'7ƈX.;?gIp׺h9*k3A*9VWR0A|G@<i6z#wqUdv0NzIEZ_3~|ۉ2{l$Ŗ~ ]jIcopBCv<J3b/0٤dv+y{_θ<{a4\%T=g!;.~_XO>9x AQ=ڗ?`I~?x\n}>4'9 L{Q@?8`G^o+cf3Nރ EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPW j?eûOoxnw QEq|2uEܗwm䏏c]ͤjyr [~(_ԛqKX]~llX\KTVJζ[ _9;r3^Esr2Ԥ,yc]98;6G9x?RŇ6\tSio/<)"/,X~(/? _[fKBtU`7ʠq $b~~0bm'5ضTK( H$zqԯk_DȘ6# ,[{鷮x,,m:?.$NPNjW'׉Q&<Ʊh4U8Nr+(A+:7HyrLէծ߾|.3c u=+b+IKӄiO !ȗrȥAl2.Q@߀WaN4^c$slj5v]&m,lqTrA=Z(߁Zn_ĝJrĥHYMvceqw%%̙3*\䓒FzM\<^5;9,'jvc|3$ VĚ&K 'UX;$X4#x @یP?o c cW+۶E^i؞4; Vnݻ ]qdօzoh qvB%Dr Y@8 Vuo?^Eg͟;^ZDҾW$Iyqg[L ʛVS X+(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((PKdbEn@nPK[.AOEBPS/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;PKPK[.AOEBPS/dcommon/darbbook.cssPKPK[.A!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 PK[.AOEBPS/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-PK[.AOEBPS/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ː5PK[.AOEBPS/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

PKN61PK[.AOEBPS/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,PK[.AOEBPS/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-OJPK[.AOEBPS/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(PK[.AOEBPS/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 PK[.AOEBPS/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^PK[.AOEBPS/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枰pkPK[.AOEBPS/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 PK[.AOEBPS/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 PK[.AOEBPS/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;PK1FAPK[.AOEBPS/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( # PK[.AOEBPS/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[?:PK[.AOEBPS/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^PK[.AOEBPS/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ʍPK[.AOEBPS/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@Š(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((PKje88PK[.AOEBPS/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އ{&!PK[.AOEBPS/c_examples.htm Examples

E Examples

This section contains the following topics:

COBOL Copybook Example

Figure E-1 shows a COBOL copybook that illustrates arrays and nested arrays.

Figure E-1 Metadata Example in COBOL

Example of OCCUR and DEPENDING ON clauses in COBOL
Description of "Figure E-1 Metadata Example in COBOL"

Hospital Database ExampleFoot 1 

The following are the full source files for the Hospital database example that is used in Hierarchical Modelling and Constructing DLI Commands from SQL Requests.

Example E-1 Hospital Cobol Copybook

01  HOSPITAL.
  03  HOSPNAME        PIC X(20).                
  03  HOSP-ADDRESS      PIC X(30).            
  03  HOSP-PHONE        PIC X(10).            
  03  ADMIN         PIC X(20).            
                                                
01  WARD.                                         
  03  WARDNO          PIC XX.               
  03  TOT-ROOMS       PIC XXX.              
  03  TOT-BEDS        PIC XXX.              
  03  BEDAVAIL        PIC XXX.              
  03  WARDTYPE        PIC X(20).            
                                                
01  PATIENT.                                      
  03  PATNAME         PIC X(20).            
  03  PATADDRESS        PIC X(30).            
  03  PAT-PHONE       PIC X(10).            
  03  BEDIDENT        PIC X(4).             
  03  DATEADMT        PIC X(6).             
  03  PREV-STAY-FLAG      PIC X.                
  03  PREV-HOSP       PIC X(20).            
  03  PREV-DATE       PIC X(4).             
  03  PREV-REASON       PIC X(30).            
                                                
01  SYMPTOM.                                      
  03  DIAGNOSE        PIC X(20).            
  03  SYMPDATE        PIC X(6).             
  03  PREV-TREAT-FLAG     PIC X.
  03  TREAT-DESC        PIC X(20).
  03  SYMP-DOCTOR       PIC X(20).
  03  SYMP-DOCT-PHONE     PIC X(10).
  
01  TREATMNT.
  03  TRTYPE          PIC X(20).
  03  TRDATE          PIC X(6).
  03  MEDICATION-TYPE     PIC X(20).
  03  DIET-COMMENT      PIC X(30).
  03  SURGERY-FLAG      PIC X.
  03  SURGERY-DATE      PIC X(6).
  03  SURGERY-COMMENT     PIC X(30).
 
01  DOCTOR.
  03  DOCTNAME        PIC X(20).
  03  DOCT-ADDRESS      PIC X(30).
  03  DOCT-PHONE        PIC X(10).
  03  SPECIALT        PIC X(20).
  
01  FACILITY.
  03  FACTYPE         PIC X(20).
  03  TOT-FACIL       PIC XXX.
  03  FACAVAIL        PIC XXX.

Example E-2 Hospital DBD

  PRINT NOGEN
     DBD NAME=HOSPDBD,ACCESS=HDAM,RMNAME=(DFSHDC40,40,100)
     DATASET DD1=PRIME,DEVICE=3390
 
     SEGM NAME=HOSPITAL,PARENT=0,BYTES=80
       FIELD NAME=(HOSPNAME,SEQ,U),BYTES=20,START=1,TYPE=C
       FIELD NAME=ADMIN,BYTES=20,START=61,TYPE=C
 
     SEGM NAME=WARD,PARENT=HOSPITAL,BYTES=31
       FIELD NAME=(WARDNO,SEQ,U),BYTES=2,START=1,TYPE=C
       FIELD NAME=BEDAVAIL,BYTES=3,START=9,TYPE=C
       FIELD NAME=WARDTYPE,BYTES=20,START=12,TYPE=C
 
     SEGM NAME=PATIENT,PARENT=WARD,BYTES=125
       FIELD NAME=(BEDIDENT,SEQ,U),BYTES=4,START=61,TYPE=C
       FIELD NAME=PATNAME,BYTES=20,START=1,TYPE=C
       FIELD NAME=DATEADMT,BYTES=6,START=65,TYPE=C
 
     SEGM NAME=SYMPTOM,PARENT=PATIENT,BYTES=77
       FIELD NAME=(SYMPDATE,SEQ),BYTES=6,START=21,TYPE=C
       FIELD NAME=DIAGNOSE,BYTES=20,START=1,TYPE=C
 
     SEGM NAME=TREATMNT,PARENT=PATIENT,BYTES=113
       FIELD NAME=(TRDATE,SEQ),BYTES=6,START=21,TYPE=C
       FIELD NAME=TRTYPE,BYTES=20,START=1,TYPE=C
 
     SEGM NAME=DOCTOR,PARENT=PATIENT,BYTES=80
       FIELD NAME=DOCTNAME,BYTES=20,START=1,TYPE=C
       FIELD NAME=SPECIALT,BYTES=20,START=61,TYPE=C
 
     SEGM NAME=FACILITY,PARENT=HOSPITAL,BYTES=26
       FIELD NAME=FACTYPE,BYTES=20,START=1,TYPE=C
       FIELD NAME=FACAVAIL,BYTES=3,START=24,TYPE=C
 
     DBDGEN
     FINISH
     END

Example E-3 Hospital PSB

  PRINT NOGEN
  PCB TYPE=DB,DBDNAME=HOSPDBD,PROCOPT=AP,KEYLEN=32
*
  SENSEG NAME=HOSPITAL,PARENT=0
  SENSEG NAME=WARD,PARENT=HOSPITAL
  SENSEG NAME=PATIENT,PARENT=WARD
  SENSEG NAME=SYMPTOM,PARENT=PATIENT
  SENSEG NAME=TREATMNT,PARENT=PATIENT
  SENSEG NAME=DOCTOR,PARENT=PATIENT
  SENSEG NAME=FACILITY,PARENT=HOSPITAL
*
  PSBGEN LANG=COBOL,PSBNAME=HOSPPSB
  END


Footnote Legend

Footnote 1: Kapp, Dan and Leben, Joe: IMS Programming Techniques. Van Nostrand Reinhold Company Inc., New York, 1986.
PKvYPK[.A OEBPS/toc.htm!R Table of Contents

Contents

Title and Copyright Information

Preface

1 Getting Started with Oracle Database Gateways

2 Normalizing Non-Relational Data

3 Gateway Features and Restrictions

4 Setting the Array Handling Policy

A Data Type Conversion

B Supported SQL Syntax and Functions

C Data Dictionary

D Globalization Support

E Examples

Index

PKfƲ!!PK [.Aoa,mimetypePK[.AGőWR:iTunesMetadata.plistPK[.AYuMETA-INF/container.xmlPK[.A‹av\vOEBPS/c_array_handling.htmPK[.AbPOKO|OEBPS/ims_sql_syntax.htmPK[.A[pTO=OEBPS/cover.htmPK[.AFOEBPS/title.htmPK[.A@LOEBPS/preface.htmPK[.A00[OEBPS/index.htmPK[.AKFs2OEBPS/img/metadata_model.gifPK[.AI8>3>"POEBPS/img/array_representation.gifPK[.ARTTGOGOEBPS/img/ims030.gifPK[.AK=OPP&&OEBPS/img/single_table_data_oracle.gifPK[.A(T! 'OEBPS/img/select_virtual_view.gifPK[.AbYWX{H8OEBPS/img/ims050.gifPK[.A3ŗ JOEBPS/img/normalized_view.gifPK[.Awr\eOEBPS/img/vtables_studio.gifPK[.A **OEBPS/img/ims020.gifPK[.AfKy-++);OEBPS/img/metadata_studio_columns_tab.gifPK[.AWSRS`OEBPS/img/ims040.gifPK[.Ap\++$/OEBPS/img/sql_view_vtable_oracle.gifPK[.Ad7U2U [OEBPS/img/gateway_processing.gifPK[.Aqs11vOEBPS/img/cobol_sample.gifPK[.Ahͩ5bOEBPS/img/table_editor.gifPK[.A'xqfbab"vOEBPS/img/gateway_process_flow.gifPK[.ARͦ##,WOEBPS/img/datasource_editor.gifPK[.AؑizcWc{OEBPS/ims_data_dictionary.htmPK[.AY;ziuiOEBPS/ims_feat_restrict.htmPK[.AP"HOEBPS/img_text/normalized_view.htmPK[.AϏ$JOEBPS/img_text/datasource_editor.htmPK[.Aw(PMOEBPS/img_text/ims040.htmPK[.A!OOEBPS/img_text/metadata_model.htmPK[.Aܕu+6QOEBPS/img_text/single_table_data_oracle.htmPK[.AIOi]!oSOEBPS/img_text/vtables_studio.htmPK[.A&UOEBPS/img_text/ims030.htmPK[.AJ&'WOEBPS/img_text/array_representation.htmPK[.A>PIYOEBPS/img_text/ims050.htmPK[.A2pd2-.[OEBPS/img_text/metadata_studio_columns_tab.htmPK[.AFr^OEBPS/img_text/cobol_sample.htmPK[.AhZP&`OEBPS/img_text/select_virtual_view.htmPK[.A%bOEBPS/img_text/gateway_processing.htmPK[.A&2W'dOEBPS/img_text/gateway_process_flow.htmPK[.AUfOEBPS/img_text/ims020.htmPK[.AbͿ)hOEBPS/img_text/sql_view_vtable_oracle.htmPK[.A\#kOEBPS/img_text/table_editor.htmPK[.A #)XmOEBPS/ims_datatype_conver.htmPK[.A6}))6OEBPS/c_array_procedures.htmPK[.A E OEBPS/toc.ncxPK[.AUzSS# OEBPS/c_gettingstarted.htmPK[.A ``4w OEBPS/c_nls.htmPK[.Aʆ,,{ OEBPS/content.opfPK[.A_ @ OEBPS/dcommon/prodbig.gifPK[.AY@  OEBPS/dcommon/doclib.gifPK[.AdbEn@n OEBPS/dcommon/oracle-logo.jpgPK[.Azz OEBPS/dcommon/contbig.gifPK[.Ae OEBPS/dcommon/darbbook.cssPK[.AMά""! OEBPS/dcommon/O_signature_clr.JPGPK[.APz ݣ OEBPS/dcommon/feedbck2.gifPK[.A-5 OEBPS/dcommon/feedback.gifPK[.Aː5J OEBPS/dcommon/booklist.gifPK[.AN61 OEBPS/dcommon/cpyr.htmPK[.A!:3.' OEBPS/dcommon/masterix.gifPK[.AeӺ1, OEBPS/dcommon/doccd.cssPK[.A7  OEBPS/dcommon/larrow.gifPK[.A#? OEBPS/dcommon/indxicon.gifPK[.AS'" OEBPS/dcommon/leftnav.gifPK[.Ahu, OEBPS/dcommon/uarrow.gifPK[.Al-OJ3 OEBPS/dcommon/oracle.gifPK[.A( OEBPS/dcommon/index.gifPK[.AGC  OEBPS/dcommon/bookbig.gifPK[.AJV^. OEBPS/dcommon/rarrow.gifPK[.A枰pkI OEBPS/dcommon/mix.gifPK[.Ao"nR M  OEBPS/dcommon/doccd_epub.jsPK[.Av I  OEBPS/dcommon/toc.gifPK[.A r~$ OEBPS/dcommon/topnav.gifPK[.A1FAN OEBPS/dcommon/prodicon.gifPK[.A3( #  OEBPS/dcommon/bp_layout.cssPK[.Ax[?:M OEBPS/dcommon/bookicon.gifPK[.Ap*c^ OEBPS/dcommon/conticon.gifPK[.Aʍ OEBPS/dcommon/blafdoc.cssPK[.A+&~$ OEBPS/dcommon/rightnav.gifPK[.Aje88% OEBPS/dcommon/oracle-small.JPGPK[.Aއ{&!2_ OEBPS/dcommon/help.gifPK[.AvY` OEBPS/c_examples.htmPK[.AfƲ!! { OEBPS/toc.htmPKUU