[hibernate-commits] Hibernate SVN: r18045 - in annotations/branches/v3_4_0_GA_CP/src: main and 20 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Tue Nov 24 15:21:07 EST 2009
Author: stliu
Date: 2009-11-24 15:21:05 -0500 (Tue, 24 Nov 2009)
New Revision: 18045
Added:
annotations/branches/v3_4_0_GA_CP/src/main/
annotations/branches/v3_4_0_GA_CP/src/main/assembly/
annotations/branches/v3_4_0_GA_CP/src/main/assembly/dist.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/images/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/images/hibernate_logo_a.png
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/master.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/additionalmodules.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/entity.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/setup.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/xml-overriding.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/fopdf.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.css
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html_chunk.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/images/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/images/hibernate_logo_a.png
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/master.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/entity.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/lucene.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/setup.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/validator.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/xml-overriding.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/fopdf.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.css
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html_chunk.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.ttf
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.ttc
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/userconfig.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/images/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/images/hibernate_logo_a.png
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/master.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/entity.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/lucene.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/setup.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/validator.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/xml-overriding.xml
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/fopdf.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.css
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.xsl
annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html_chunk.xsl
annotations/branches/v3_4_0_GA_CP/src/main/java/
annotations/branches/v3_4_0_GA_CP/src/main/javadoc/
annotations/branches/v3_4_0_GA_CP/src/main/javadoc/jdstyle.css
annotations/branches/v3_4_0_GA_CP/src/main/javadoc/package.html
annotations/branches/v3_4_0_GA_CP/src/main/resources/
annotations/branches/v3_4_0_GA_CP/src/main/resources/org/
annotations/branches/v3_4_0_GA_CP/src/main/resources/org/hibernate/
annotations/branches/v3_4_0_GA_CP/src/main/resources/org/hibernate/ejb/
annotations/branches/v3_4_0_GA_CP/src/main/resources/org/hibernate/ejb/orm_1_0.xsd
Log:
JBPAPP-3150 change the build tool of Hibernate Annotations(eap 5 cp branch)
Added: annotations/branches/v3_4_0_GA_CP/src/main/assembly/dist.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/assembly/dist.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/assembly/dist.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<assembly>
+ <id>dist</id>
+ <formats>
+ <!-- <format>tar.gz</format>
+ <format>tar.bz2</format> -->
+ <format>zip</format>
+ </formats>
+
+ <dependencySets>
+ <dependencySet>
+ <useProjectArtifact>false</useProjectArtifact>
+ <outputDirectory>lib</outputDirectory>
+ <scope>runtime</scope>
+ </dependencySet>
+ </dependencySets>
+
+ <fileSets>
+ <fileSet>
+ <directory>target</directory>
+ <outputDirectory>.</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>target/site/apidocs</directory>
+ <outputDirectory>docs/api</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>target/docbook/publish/en</directory>
+ <outputDirectory>docs/manual/en</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>.</directory>
+ <outputDirectory></outputDirectory>
+ <useDefaultExcludes>true</useDefaultExcludes>
+ <excludes>
+ <exclude>**/target/**</exclude>
+ </excludes>
+ </fileSet>
+ </fileSets>
+</assembly>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/images/hibernate_logo_a.png
===================================================================
(Binary files differ)
Property changes on: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/images/hibernate_logo_a.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/master.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/master.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/master.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+"../support/docbook-dtd/docbookx.dtd" [
+<!ENTITY setup SYSTEM "modules/setup.xml">
+<!ENTITY entity SYSTEM "modules/entity.xml">
+<!ENTITY xml-overriding SYSTEM "modules/xml-overriding.xml">
+<!ENTITY additionalmodules SYSTEM "modules/additionalmodules.xml">
+]>
+<book lang="en">
+ <bookinfo>
+ <title>Hibernate Annotations</title>
+
+ <subtitle>Reference Guide</subtitle>
+
+ <releaseinfo>3.4.0.GA</releaseinfo>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/hibernate_logo_a.png" format="png" />
+ </imageobject>
+ </mediaobject>
+ </bookinfo>
+
+ <toc></toc>
+
+ <preface id="preface" revision="1">
+ <title>Preface</title>
+
+ <para>Hibernate, like all other object/relational mapping tools, requires
+ metadata that governs the transformation of data from one representation
+ to the other. In Hibernate 2.x mapping metadata is most of the time
+ declared in XML text files. Alternatively XDoclet can be used utilizing
+ Javadoc source code annotations together with a compile time preprocessor.
+ </para>
+
+ <para>The same kind of annotation support is now available in the standard
+ JDK, although more powerful and with better tools support. IntelliJ IDEA
+ and Eclipse for example, support auto-completion and syntax highlighting
+ of JDK 5.0 annotations which are compiled into the bytecode and read at
+ runtime using reflection. No external XML files are needed.</para>
+
+ <para>The EJB3 specification recognizes the interest and the success of
+ the transparent object/relational mapping paradigm. It standardizes the
+ basic APIs and the metadata needed for any object/relational persistence
+ mechanism. <emphasis>Hibernate EntityManager</emphasis> implements the
+ programming interfaces and lifecycle rules as defined by the EJB3
+ persistence specification and together with <emphasis>Hibernate
+ Annotations</emphasis> offers a complete (and standalone) EJB3 persistence
+ solution on top of the mature Hibernate core. You may use a combination of
+ all three together, annotations without EJB3 programming interfaces and
+ lifecycle, or even pure native Hibernate, depending on the business and
+ technical needs of your project. At all times you cann fall back to
+ Hibernate native APIs, or if required, even to native JDBC and SQL.</para>
+
+ <para>This release of <emphasis>Hibernate Annotations</emphasis> is based
+ on the final release of the EJB 3.0 / JPA specification (aka <ulink
+ url="http://jcp.org/en/jsr/detail?id=220">JSR-220</ulink>) and
+ supports all its features (including the optional ones). Hibernate
+ specific features and extensions are also available through
+ unstandardized, Hibernate specific annotations. While the Hibernate
+ feature coverage is high, some can not yet be expressed via annotations.
+ The eventual goal is to cover all of them. See the JIRA road map section
+ for more informations.</para>
+
+ <para>If you are moving from previous Hibernate Annotations versions,
+ please have a look at <ulink url="http://www.hibernate.org/398.html">Java
+ Persistence migration guide</ulink>.</para>
+ </preface>
+
+ &setup;
+
+ &entity;
+
+ &xml-overriding;
+
+ &additionalmodules;
+</book>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/additionalmodules.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/additionalmodules.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/additionalmodules.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="additionalmodules">
+ <title>Additional modules</title>
+
+ <para>Hibernate Annotations mainly focus on persistence metadata. The
+ project also have a nice integration with two Hibernate modules.</para>
+
+ <section>
+ <title>Hibernate Validator</title>
+
+ <section>
+ <title>Description</title>
+
+ <para>Annotations are a very convenient and elegant way to specify
+ invariant constraints for a domain model. You can, for example, express
+ that a property should never be null, that the account balance should be
+ strictly positive, etc. These domain model constraints are declared in
+ the bean itself by annotating its properties. A validator can then read
+ them and check for constraint violations. The validation mechanism can
+ be executed in different layers in your application without having to
+ duplicate any of these rules (presentation layer, data access layer).
+ Following the DRY principle, Hibernate Validator has been designed for
+ that purpose.</para>
+
+ <para>Hibernate Validator works at two levels. First, it is able to
+ check in-memory instances of a class for constraint violations. Second,
+ it can apply the constraints to the Hibernate metamodel and incorporate
+ them into the generated database schema.</para>
+
+ <para>Each constraint annotation is associated to a validator
+ implementation responsible for checking the constraint on the entity
+ instance. A validator can also (optionally) apply the constraint to the
+ Hibernate metamodel, allowing Hibernate to generate DDL that expresses
+ the constraint. With the appropriate event listener, you can execute the
+ checking operation on inserts and updates done by Hibernate. Hibernate
+ Validator is not limited to use with Hibernate. You can easily use it
+ anywhere in your application.</para>
+
+ <para>When checking instances at runtime, Hibernate Validator returns
+ information about constraint violations in an array of
+ <classname>InvalidValue</classname> s. Among other information, the
+ <classname>InvalidValue</classname> contains an error description
+ message that can embed the parameter values bundle with the annotation
+ (eg. length limit), and message strings that may be externalized to a
+ <classname>ResourceBundle</classname> .</para>
+ </section>
+
+ <section>
+ <title>Integration with Hibernate Annotations</title>
+
+ <para>If Hibernate Validator
+ (<filename>hibernate-validator.jar</filename>) is available in the
+ classpath, Hibernate Annotations will integrate in two ways:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Constraints will be applied to the Data Definition Language.
+ In other words, the database schema will reflect the constraints
+ (provided that you use the hbm2ddl tool).</para>
+ </listitem>
+
+ <listitem>
+ <para>Before an entity change is applied to the database (insert or
+ update), the entity is validated. Validation errors, if any, will be
+ carried over through an
+ <classname>InvalidStateException</classname>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>For entities free of validation rules, the runtime performance
+ cost is null.</para>
+
+ <para>To disable constraint propagation to DDL, set up
+ <literal>hibernate.validator.apply_to_ddl</literal> to false in the
+ configuration file. Such a need is very uncommon and not
+ recommended.</para>
+
+ <para>To disable pre-entity change validation, set up
+ <literal>hibernate.validator.autoregister_listeners</literal> to false
+ in the configuration file. Such a need is very uncommon and not
+ recommended.</para>
+
+ <para>Check the Hibernate Validator reference documentation for more
+ information.</para>
+ </section>
+ </section>
+
+ <section>
+ <title>Hibernate Search</title>
+
+ <section>
+ <title>Description</title>
+
+ <para>Full text search engines like <productname>Apache
+ Lucene</productname> are a very powerful technology to bring free
+ text/efficient queries to applications. If suffers several mismatches
+ when dealing with a object domain model (keeping the index up to date,
+ mismatch between the index structure and the domain model, querying
+ mismatch...) Hibernate Search indexes your domain model thanks to a few
+ annotations, takes care of the database / index synchronization and
+ brings you back regular managed objects from free text queries.
+ Hibernate Search is using <ulink url="http://lucene.apache.org">Apache
+ Lucene</ulink> under the cover.</para>
+ </section>
+
+ <section>
+ <title>Integration with Hibernate Annotations</title>
+
+ <para>Hibernate Search integrates with Hibernate Annotations
+ transparently provided that hibernate-search.jar is present in the
+ classpath. If you do not wish to automatically register Hibernate Search
+ event listeners, you can set
+ <literal>hibernate.search.autoregister_listeners</literal> to false.
+ Such a need is very uncommon and not recommended.</para>
+
+ <para>Check the Hibernate Search reference documentation for more
+ information.</para>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/entity.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/entity.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/entity.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,3814 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="entity">
+ <title>Entity Beans</title>
+
+ <sect1 id="entity-overview" revision="2">
+ <title>Intro</title>
+
+ <para>This section covers EJB 3.0 (aka Java Persistence) entity
+ annotations and Hibernate-specific extensions.</para>
+ </sect1>
+
+ <sect1 id="entity-mapping" revision="2">
+ <title>Mapping with EJB3/JPA Annotations</title>
+
+ <para>EJB3 entities are plain POJOs. Actually they represent the exact
+ same concept as the Hibernate persistent entities. Their mappings are
+ defined through JDK 5.0 annotations (an XML descriptor syntax for
+ overriding is defined in the EJB3 specification). Annotations can be split
+ in two categories, the logical mapping annotations (allowing you to
+ describe the object model, the class associations, etc.) and the physical
+ mapping annotations (describing the physical schema, tables, columns,
+ indexes, etc). We will mix annotations from both categories in the
+ following code examples.</para>
+
+ <para>EJB3 annotations are in the <literal>javax.persistence.*</literal>
+ package. Most JDK 5 compliant IDE (like Eclipse, IntelliJ IDEA and
+ Netbeans) can autocomplete annotation interfaces and attributes for you
+ (even without a specific "EJB3" module, since EJB3 annotations are plain
+ JDK 5 annotations).</para>
+
+ <para>For more and runnable concrete examples read the JBoss EJB 3.0
+ tutorial or review the Hibernate Annotations test suite. Most of the unit
+ tests have been designed to represent a concrete example and be a
+ inspiration source.</para>
+
+ <sect2 id="entity-mapping-entity">
+ <title>Declaring an entity bean</title>
+
+ <para>Every bound persistent POJO class is an entity bean and is
+ declared using the <literal>@Entity</literal> annotation (at the class
+ level):</para>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+ Long id;
+
+ @Id
+ public Long getId() { return id; }
+
+ public void setId(Long id) { this.id = id; }
+}
+ </programlisting>
+
+ <para><literal>@Entity</literal> declares the class as an entity bean
+ (i.e. a persistent POJO class), <literal>@Id</literal> declares the
+ identifier property of this entity bean. The other mapping declarations
+ are implicit. This configuration by exception concept is central to the
+ new EJB3 specification and a major improvement. The class Flight is
+ mapped to the Flight table, using the column id as its primary key
+ column.</para>
+
+ <para>Depending on whether you annotate fields or methods, the access
+ type used by Hibernate will be <literal>field</literal> or
+ <literal>property</literal>. The EJB3 spec requires that you declare
+ annotations on the element type that will be accessed, i.e. the getter
+ method if you use <literal>property</literal> access, the field if you
+ use <literal>field</literal> access. Mixing EJB3 annotations in both
+ fields and methods should be avoided. Hibernate will guess the access
+ type from the position of <literal>@Id</literal> or
+ <literal>@EmbeddedId</literal>.</para>
+
+ <sect3>
+ <title>Defining the table</title>
+
+ <para><literal>@Table</literal> is set at the class level; it allows
+ you to define the table, catalog, and schema names for your entity
+ bean mapping. If no <literal>@Table</literal> is defined the default
+ values are used: the unqualified class name of the entity.</para>
+
+ <programlisting>
+ at Entity
+ at Table(name="tbl_sky")
+public class Sky implements Serializable {
+...
+ </programlisting>
+
+ <para>The <literal>@Table</literal> element also contains a
+ <literal>schema</literal> and a <literal>catalog</literal> attributes,
+ if they need to be defined. You can also define unique constraints to
+ the table using the <literal>@UniqueConstraint</literal> annotation in
+ conjunction with <literal>@Table</literal> (for a unique constraint
+ bound to a single column, refer to <literal>@Column</literal>).</para>
+
+ <programlisting>@Table(name="tbl_sky",
+ <emphasis role="bold">uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}</emphasis>
+)</programlisting>
+
+ <para>A unique constraint is applied to the tuple month, day. Note
+ that the <literal>columnNames</literal> array refers to the logical
+ column names.</para>
+
+ <remark>The logical column name is defined by the Hibernate
+ NamingStrategy implementation. The default EJB3 naming strategy use
+ the physical column name as the logical column name. Note that this
+ may be different than the property name (if the column name is
+ explicit). Unless you override the NamingStrategy, you shouldn't worry
+ about that.</remark>
+ </sect3>
+
+ <sect3 id="entity-mapping-entity-version" revision="1">
+ <title>Versioning for optimistic locking</title>
+
+ <para>You can add optimistic locking capability to an entity bean
+ using the <literal>@Version</literal> annotation:</para>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+...
+ @Version
+ @Column(name="OPTLOCK")
+ public Integer getVersion() { ... }
+} </programlisting>
+
+ <para>The version property will be mapped to the
+ <literal>OPTLOCK</literal> column, and the entity manager will use it
+ to detect conflicting updates (preventing lost updates you might
+ otherwise see with the last-commit-wins strategy).</para>
+
+ <para>The version column may be a numeric (the recommended solution)
+ or a timestamp as per the EJB3 spec. Hibernate support any kind of
+ type provided that you define and implement the appropriate
+ <classname>UserVersionType</classname>.</para>
+
+ <para>The application must not alter the version number set up by
+ Hibernate in any way. To artificially increase the version number,
+ check in Hibernate Entity Manager's reference documentation
+ <literal>LockMode.WRITE</literal></para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-mapping-property" revision="1">
+ <title>Mapping simple properties</title>
+
+ <sect3>
+ <title>Declaring basic property mappings</title>
+
+ <para>Every non static non transient property (field or method) of an
+ entity bean is considered persistent, unless you annotate it as
+ <literal>@Transient</literal>. Not having an annotation for your
+ property is equivalent to the appropriate <literal>@Basic</literal>
+ annotation. The <literal>@Basic</literal> annotation allows you to
+ declare the fetching strategy for a property:</para>
+
+ <programlisting>public transient int counter; //transient property
+
+private String firstname; //persistent property
+
+ at Transient
+String getLengthInMeter() { ... } //transient property
+
+String getName() {... } // persistent property
+
+ at Basic
+int getLength() { ... } // persistent property
+
+ at Basic(fetch = FetchType.LAZY)
+String getDetailedComment() { ... } // persistent property
+
+ at Temporal(TemporalType.TIME)
+java.util.Date getDepartureTime() { ... } // persistent property
+
+ at Enumerated(EnumType.STRING)
+Starred getNote() { ... } //enum persisted as String in database</programlisting>
+
+ <para><literal>counter</literal>, a transient field, and
+ <literal>lengthInMeter</literal>, a method annotated as
+ <literal>@Transient</literal>, and will be ignored by the entity
+ manager. <literal>name</literal>, <literal>length</literal>, and
+ <literal>firstname</literal> properties are mapped persistent and
+ eagerly fetched (the default for simple properties). The
+ <literal>detailedComment</literal> property value will be lazily
+ fetched from the database once a lazy property of the entity is
+ accessed for the first time. Usually you don't need to lazy simple
+ properties (not to be confused with lazy association fetching).</para>
+
+ <note>
+ <para>To enable property level lazy fetching, your classes have to
+ be instrumented: bytecode is added to the original one to enable
+ such feature, please refer to the Hibernate reference documentation.
+ If your classes are not instrumented, property level lazy loading is
+ silently ignored.</para>
+ </note>
+
+ <para>The recommended alternative is to use the projection capability
+ of EJB-QL or Criteria queries.</para>
+
+ <para>EJB3 support property mapping of all basic types supported by
+ Hibernate (all basic Java types , their respective wrappers and
+ serializable classes). Hibernate Annotations support out of the box
+ Enum type mapping either into a ordinal column (saving the enum
+ ordinal) or a string based column (saving the enum string
+ representation): the persistence representation, defaulted to ordinal,
+ can be overriden through the <literal>@Enumerated</literal> annotation
+ as shown in the <literal>note</literal> property example.</para>
+
+ <para>In core Java APIs, the temporal precision is not defined. When
+ dealing with temporal data you might want to describe the expected
+ precision in database. Temporal data can have <literal>DATE</literal>,
+ <literal>TIME</literal>, or <literal>TIMESTAMP</literal> precision (ie
+ the actual date, only the time, or both). Use the
+ <literal>@Temporal</literal> annotation to fine tune that.</para>
+
+ <para><literal>@Lob</literal> indicates that the property should be
+ persisted in a Blob or a Clob depending on the property type:
+ <classname>java.sql.Clob</classname>,
+ <classname>Character[]</classname>, <classname>char[]</classname> and
+ java.lang.<classname>String</classname> will be persisted in a Clob.
+ <classname>java.sql.Blob</classname>, <classname>Byte[]</classname>,
+ <classname>byte[] </classname>and serializable type will be persisted
+ in a Blob.</para>
+
+ <programlisting>
+ at Lob
+public String getFullText() {
+ return fullText;
+}
+
+ at Lob
+public byte[] getFullCode() {
+ return fullCode;
+}
+ </programlisting>
+
+ <para>If the property type implements
+ <classname>java.io.Serializable</classname> and is not a basic type,
+ and if the property is not annotated with <literal>@Lob</literal>,
+ then the Hibernate <literal>serializable</literal> type is
+ used.</para>
+ </sect3>
+
+ <sect3 id="entity-mapping-property-column" revision="1">
+ <title>Declaring column attributes</title>
+
+ <para>The column(s) used for a property mapping can be defined using
+ the <literal>@Column</literal> annotation. Use it to override default
+ values (see the EJB3 specification for more information on the
+ defaults). You can use this annotation at the property level for
+ properties that are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>not annotated at all</para>
+ </listitem>
+
+ <listitem>
+ <para>annotated with <literal>@Basic</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotated with <literal>@Version</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotated with <literal>@Lob</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotated with <literal>@Temporal</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotated with
+ <literal>@org.hibernate.annotations.CollectionOfElements</literal>
+ (for Hibernate only)</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+...
+ at Column(updatable = false, name = "flight_name", nullable = false, length=50)
+public String getName() { ... }
+ </programlisting>
+
+ <para>The <literal>name</literal> property is mapped to the
+ <literal>flight_name</literal> column, which is not nullable, has a
+ length of 50 and is not updatable (making the property
+ immutable).</para>
+
+ <para>This annotation can be applied to regular properties as well as
+ <literal>@Id</literal> or <literal>@Version</literal>
+ properties.</para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="2 55" id="hm1" />
+
+ <area coords="3 55" id="hm2" />
+
+ <area coords="4 55" id="hm3" />
+
+ <area coords="5 55" id="hm4" />
+
+ <area coords="6 55" id="hm5" />
+
+ <area coords="7 55" id="hm6" />
+
+ <area coords="8 55" id="hm7" />
+
+ <area coords="9 55" id="hm8" />
+
+ <area coords="10 55" id="hm9" />
+
+ <area coords="11 55" id="hm10" />
+ </areaspec>
+
+ <programlisting>@Column(
+ name="columnName";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ int length() default 255;
+ int precision() default 0; // decimal precision
+ int scale() default 0; // decimal scale</programlisting>
+
+ <calloutlist>
+ <callout arearefs="hm1">
+ <para><literal>name</literal> (optional): the column name
+ (default to the property name)</para>
+ </callout>
+
+ <callout arearefs="hm2">
+ <para><literal>unique</literal> (optional): set a unique
+ constraint on this column or not (default false)</para>
+ </callout>
+
+ <callout arearefs="hm3">
+ <para><literal>nullable</literal> (optional): set the column as
+ nullable (default true).</para>
+ </callout>
+
+ <callout arearefs="hm4">
+ <para><literal>insertable</literal> (optional): whether or not
+ the column will be part of the insert statement (default
+ true)</para>
+ </callout>
+
+ <callout arearefs="hm5">
+ <para><literal>updatable</literal> (optional): whether or not
+ the column will be part of the update statement (default
+ true)</para>
+ </callout>
+
+ <callout arearefs="hm6">
+ <para><literal>columnDefinition</literal> (optional): override
+ the sql DDL fragment for this particular column (non
+ portable)</para>
+ </callout>
+
+ <callout arearefs="hm7">
+ <para><literal>table</literal> (optional): define the targeted
+ table (default primary table)</para>
+ </callout>
+
+ <callout arearefs="hm8">
+ <para><literal><literal>length</literal></literal> (optional):
+ column length (default 255)</para>
+ </callout>
+
+ <callout arearefs="hm8">
+ <para><literal><literal>precision</literal></literal>
+ (optional): column decimal precision (default 0)</para>
+ </callout>
+
+ <callout arearefs="hm10">
+ <para><literal><literal>scale</literal></literal> (optional):
+ column decimal scale if useful (default 0)</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+ </sect3>
+
+ <sect3>
+ <title>Embedded objects (aka components)</title>
+
+ <para>It is possible to declare an embedded component inside an entity
+ and even override its column mapping. Component classes have to be
+ annotated at the class level with the <literal>@Embeddable</literal>
+ annotation. It is possible to override the column mapping of an
+ embedded object for a particular entity using the
+ <literal>@Embedded</literal> and <literal>@AttributeOverride</literal>
+ annotation in the associated property:</para>
+
+ <programlisting>
+ at Entity
+public class Person implements Serializable {
+
+ // Persistent component using defaults
+ Address homeAddress;
+
+ @Embedded
+ @AttributeOverrides( {
+ @AttributeOverride(name="iso2", column = @Column(name="bornIso2") ),
+ @AttributeOverride(name="name", column = @Column(name="bornCountryName") )
+ } )
+ Country bornIn;
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class Address implements Serializable {
+ String city;
+ Country nationality; //no overriding here
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class Country implements Serializable {
+ private String iso2;
+ @Column(name="countryName") private String name;
+
+ public String getIso2() { return iso2; }
+ public void setIso2(String iso2) { this.iso2 = iso2; }
+
+
+ public String getName() { return name; }
+ public void setName(String name) { this.name = name; }
+ ...
+}
+ </programlisting>
+
+ <para>A embeddable object inherit the access type of its owning entity
+ (note that you can override that using the Hibernate specific
+ <literal>@AccessType</literal> annotations (see <xref
+ linkend="entity-hibspec" />).</para>
+
+ <para>The <literal>Person</literal> entity bean has two component
+ properties, <literal>homeAddress</literal> and
+ <literal>bornIn</literal>. <literal>homeAddress</literal> property has
+ not been annotated, but Hibernate will guess that it is a persistent
+ component by looking for the <literal>@Embeddable</literal> annotation
+ in the Address class. We also override the mapping of a column name
+ (to <literal>bornCountryName</literal>) with the
+ <literal>@Embedded</literal> and <literal>@AttributeOverride
+ </literal>annotations for each mapped attribute of
+ <literal>Country</literal>. As you can see, <literal>Country
+ </literal>is also a nested component of <literal>Address</literal>,
+ again using auto-detection by Hibernate and EJB3 defaults. Overriding
+ columns of embedded objects of embedded objects is currently not
+ supported in the EJB3 spec, however, Hibernate Annotations supports it
+ through dotted expressions.</para>
+
+ <para><programlisting> @Embedded
+ @AttributeOverrides( {
+ @AttributeOverride(name="city", column = @Column(name="fld_city") ),
+ @AttributeOverride(name="<emphasis role="bold">nationality.iso2</emphasis>", column = @Column(name="nat_Iso2") ),
+ @AttributeOverride(name="<emphasis role="bold">nationality.name</emphasis>", column = @Column(name="nat_CountryName") )
+ //nationality columns in homeAddress are overridden
+ } )
+ Address homeAddress;</programlisting>Hibernate Annotations supports one
+ more feature that is not explicitly supported by the EJB3
+ specification. You can annotate a embedded object with the
+ <literal>@MappedSuperclass</literal> annotation to make the superclass
+ properties persistent (see <literal>@MappedSuperclass</literal> for
+ more informations).</para>
+
+ <para>While not supported by the EJB3 specification, Hibernate
+ Annotations allows you to use association annotations in an embeddable
+ object (ie <literal>@*ToOne</literal> nor
+ <literal>@*ToMany</literal>). To override the association columns you
+ can use <literal>@AssociationOverride</literal>.</para>
+
+ <para>If you want to have the same embeddable object type twice in the
+ same entity, the column name defaulting will not work: at least one of
+ the columns will have to be explicit. Hibernate goes beyond the EJB3
+ spec and allows you to enhance the defaulting mechanism through the
+ <classname>NamingStrategy</classname>.
+ <classname>DefaultComponentSafeNamingStrategy</classname> is a small
+ improvement over the default EJB3NamingStrategy that allows embedded
+ objects to be defaulted even if used twice in the same entity.</para>
+ </sect3>
+
+ <sect3>
+ <title>Non-annotated property defaults</title>
+
+ <para>If a property is not annotated, the following rules
+ apply:</para>
+
+ <itemizedlist>
+ <listitem>
+ If the property is of a single type, it is mapped as @Basic
+ </listitem>
+
+ <listitem>
+ Otherwise, if the type of the property is annotated as @Embeddable, it is mapped as @Embedded
+ </listitem>
+
+ <listitem>
+ Otherwise, if the type of the property is Serializable, it is mapped as @Basic in a column holding the object in its serialized version
+ </listitem>
+
+ <listitem>
+ Otherwise, if the type of the property is java.sql.Clob or java.sql.Blob, it is mapped as @Lob with the appropriate LobType
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-mapping-identifier" label=""
+ xreflabel="Mapping identifier properties">
+ <title>Mapping identifier properties</title>
+
+ <para>The <literal>@Id</literal> annotation lets you define which
+ property is the identifier of your entity bean. This property can be set
+ by the application itself or be generated by Hibernate (preferred). You
+ can define the identifier generation strategy thanks to the
+ <literal>@GeneratedValue</literal> annotation:</para>
+
+ <itemizedlist>
+ <listitem>
+ AUTO - either identity column, sequence or table depending on the underlying DB
+ </listitem>
+
+ <listitem>
+ TABLE - table holding the id
+ </listitem>
+
+ <listitem>
+ IDENTITY - identity column
+ </listitem>
+
+ <listitem>
+ SEQUENCE - sequence
+ </listitem>
+ </itemizedlist>
+
+ <para>Hibernate provides more id generators than the basic EJB3 ones.
+ Check <xref linkend="entity-hibspec" /> for more informations.</para>
+
+ <para>The following example shows a sequence generator using the
+ SEQ_STORE configuration (see below)</para>
+
+ <programlisting>
+ at Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+public Integer getId() { ... }
+ </programlisting>
+
+ <para>The next example uses the identity generator:</para>
+
+ <programlisting>
+ at Id @GeneratedValue(strategy=GenerationType.IDENTITY)
+public Long getId() { ... }
+ </programlisting>
+
+ <para>The <literal>AUTO</literal> generator is the preferred type for
+ portable applications (across several DB vendors). The identifier
+ generation configuration can be shared for several
+ <literal>@Id</literal> mappings with the generator attribute. There are
+ several configurations available through
+ <literal>@SequenceGenerator</literal> and
+ <literal>@TableGenerator</literal>. The scope of a generator can be the
+ application or the class. Class-defined generators are not visible
+ outside the class and can override application level generators.
+ Application level generators are defined at XML level (see <xref
+ linkend="xml-overriding" />):</para>
+
+ <programlisting><table-generator name="EMP_GEN"
+ table="GENERATOR_TABLE"
+ pk-column-name="key"
+ value-column-name="hi"
+ pk-column-value="EMP"
+ allocation-size="20"/>
+
+//and the annotation equivalent
+
+ at javax.persistence.TableGenerator(
+ name="EMP_GEN",
+ table="GENERATOR_TABLE",
+ pkColumnName = "key",
+ valueColumnName = "hi"
+ pkColumnValue="EMP",
+ allocationSize=20
+)
+
+<sequence-generator name="SEQ_GEN"
+ sequence-name="my_sequence"
+ allocation-size="20"/>
+
+//and the annotation equivalent
+
+ at javax.persistence.SequenceGenerator(
+ name="SEQ_GEN",
+ sequenceName="my_sequence",
+ allocationSize=20
+)
+ </programlisting>
+
+ <para>If JPA XML (like <filename>META-INF/orm.xml</filename>) is used to
+ define thegenerators, <literal>EMP_GEN</literal> and
+ <literal>SEQ_GEN</literal> are application level generators.
+ <literal>EMP_GEN</literal> defines a table based id generator using the
+ hilo algorithm with a <literal>max_lo</literal> of 20. The hi value is
+ kept in a <literal>table</literal> "<literal>GENERATOR_TABLE</literal>".
+ The information is kept in a row where <literal>pkColumnName</literal>
+ "key" is equals to <literal>pkColumnValue</literal>
+ "<literal>EMP</literal>" and column <literal>valueColumnName</literal>
+ "<literal>hi</literal>" contains the the next high value used.</para>
+
+ <para><literal>SEQ_GEN</literal> defines a sequence generator using a
+ sequence named <literal>my_sequence</literal>. The allocation size used
+ for this sequence based hilo algorithm is 20. Note that this version of
+ Hibernate Annotations does not handle <literal>initialValue</literal> in
+ the sequence generator. The default allocation size is 50, so if you
+ want to use a sequence and pickup the value each time, you must set the
+ allocation size to 1.</para>
+
+ <note>
+ <para>Package level definition is no longer supported by the EJB 3.0
+ specification. However, you can use the
+ <literal>@GenericGenerator</literal> at the package level (see <xref
+ linkend="entity-hibspec-identifier" />).</para>
+ </note>
+
+ <para>The next example shows the definition of a sequence generator in a
+ class scope:</para>
+
+ <programlisting>
+ at Entity
+ at javax.persistence.SequenceGenerator(
+ name="SEQ_STORE",
+ sequenceName="my_sequence"
+)
+public class Store implements Serializable {
+ private Long id;
+
+ @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+ public Long getId() { return id; }
+}
+ </programlisting>
+
+ <para>This class will use a sequence named my_sequence and the SEQ_STORE
+ generator is not visible in other classes. Note that you can check the
+ Hibernate Annotations tests in the
+ <package>org.hibernate.test.annotations.id</package> package for more
+ examples.</para>
+
+ <para>You can define a composite primary key through several
+ syntaxes:</para>
+
+ <itemizedlist>
+ <listitem>
+ annotate the component property as @Id and make the component class @Embeddable
+ </listitem>
+
+ <listitem>
+ annotate the component property as @EmbeddedId
+ </listitem>
+
+ <listitem>
+ annotate the class as @IdClass and annotate each property of the entity involved in the primary key with @Id
+ </listitem>
+ </itemizedlist>
+
+ <para>While quite common to the EJB2 developer,
+ <literal>@IdClass</literal> is likely new for Hibernate users. The
+ composite primary key class corresponds to multiple fields or properties
+ of the entity class, and the names of primary key fields or properties
+ in the primary key class and those of the entity class must match and
+ their types must be the same. Let's look at an example:</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@IdClass(FootballerPk.class)</emphasis>
+public class Footballer {
+ //part of the id key
+ <emphasis role="bold">@Id</emphasis> public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ //part of the id key
+ <emphasis role="bold">@Id</emphasis> public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ public String getClub() {
+ return club;
+ }
+
+ public void setClub(String club) {
+ this.club = club;
+ }
+
+ //appropriate equals() and hashCode() implementation
+}
+
+ at Embeddable
+public class FootballerPk implements Serializable {
+ //same name and type as in Footballer
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ //same name and type as in Footballer
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ //appropriate equals() and hashCode() implementation
+}
+</programlisting>
+
+ <para>As you may have seen, <literal>@IdClass</literal> points to the
+ corresponding primary key class.</para>
+
+ <para>While not supported by the EJB3 specification, Hibernate allows
+ you to define associations inside a composite identifier. Simply use the
+ regular annotations for that</para>
+
+ <programlisting>@Entity
+ at AssociationOverride( name="id.channel", joinColumns = @JoinColumn(name="chan_id") )
+public class TvMagazin {
+ @EmbeddedId public TvMagazinPk id;
+ @Temporal(TemporalType.TIME) Date time;
+}
+
+ at Embeddable
+public class TvMagazinPk implements Serializable {
+ @ManyToOne
+ public Channel channel;
+ public String name;
+ @ManyToOne
+ public Presenter presenter;
+}
+</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Mapping inheritance</title>
+
+ <para>EJB3 supports the three types of inheritance:</para>
+
+ <itemizedlist>
+ <listitem>
+ Table per Class Strategy: the <union-class> element in Hibernate
+ </listitem>
+
+ <listitem>
+ Single Table per Class Hierarchy Strategy: the <subclass> element in Hibernate
+ </listitem>
+
+ <listitem>
+ Joined Subclass Strategy: the <joined-subclass> element in Hibernate
+ </listitem>
+ </itemizedlist>
+
+ <para>The chosen strategy is declared at the class level of the top
+ level entity in the hierarchy using the <literal>@Inheritance</literal>
+ annotation.</para>
+
+ <note>
+ <para>Annotating interfaces is currently not supported.</para>
+ </note>
+
+ <sect3>
+ <title>Table per class</title>
+
+ <para>This strategy has many drawbacks (esp. with polymorphic queries
+ and associations) explained in the EJB3 spec, the Hibernate reference
+ documentation, Hibernate in Action, and many other places. Hibernate
+ work around most of them implementing this strategy using <literal>SQL
+ UNION</literal> queries. It is commonly used for the top level of an
+ inheritance hierarchy:</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public class Flight implements Serializable {
+ </programlisting>
+
+ <para>This strategy support one to many associations provided that
+ they are bidirectional. This strategy does not support the
+ <literal>IDENTITY</literal> generator strategy: the id has to be
+ shared across several tables. Consequently, when using this strategy,
+ you should not use <literal>AUTO </literal>nor
+ <literal>IDENTITY</literal>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Single table per class hierarchy</title>
+
+ <para>All properties of all super- and subclasses are mapped into the
+ same table, instances are distinguished by a special discriminator
+ column:</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy=InheritanceType.SINGLE_TABLE)
+ at DiscriminatorColumn(
+ name="planetype",
+ discriminatorType=DiscriminatorType.STRING
+)
+ at DiscriminatorValue("Plane")
+public class Plane { ... }
+
+ at Entity
+ at DiscriminatorValue("A320")
+public class A320 extends Plane { ... }
+ </programlisting>
+
+ <para><classname>Plane</classname> is the superclass, it defines the
+ inheritance strategy <literal>InheritanceType.SINGLE_TABLE</literal>.
+ It also defines the discriminator column through the
+ <literal>@DiscriminatorColumn</literal> annotation, a discriminator
+ column can also define the discriminator type. Finally, the
+ <literal>@DiscriminatorValue</literal> annotation defines the value
+ used to differentiate a class in the hierarchy. All of these
+ attributes have sensible default values. The default name of the
+ discriminator column is <literal>DTYPE</literal>. The default
+ discriminator value is the entity name (as defined in
+ <literal>@Entity.name</literal>) for DiscriminatorType.STRING.
+ <classname>A320</classname> is a subclass; you only have to define
+ discriminator value if you don't want to use the default value. The
+ strategy and the discriminator type are implicit.</para>
+
+ <para><literal>@Inheritance</literal> and
+ <literal>@DiscriminatorColumn</literal> should only be defined at the
+ top of the entity hierarchy.</para>
+ </sect3>
+
+ <sect3>
+ <title>Joined subclasses</title>
+
+ <para>The<literal> @PrimaryKeyJoinColumn</literal> and
+ <literal>@PrimaryKeyJoinColumns</literal> annotations define the
+ primary key(s) of the joined subclass table:</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy=InheritanceType.JOINED)
+public class Boat implements Serializable { ... }
+
+ at Entity
+public class Ferry extends Boat { ... }
+
+ at Entity
+ at PrimaryKeyJoinColumn(name="BOAT_ID")
+public class AmericaCupClass extends Boat { ... }
+ </programlisting>
+
+ <para>All of the above entities use the <literal>JOINED</literal>
+ strategy, the <literal>Ferry</literal> table is joined with the
+ <literal>Boat</literal> table using the same primary key names. The
+ <literal>AmericaCupClass</literal> table is joined with
+ <literal>Boat</literal> using the join condition <code>Boat.id =
+ AmericaCupClass.BOAT_ID</code>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Inherit properties from superclasses</title>
+
+ <para>This is sometimes useful to share common properties through a
+ technical or a business superclass without including it as a regular
+ mapped entity (ie no specific table for this entity). For that purpose
+ you can map them as <literal>@MappedSuperclass</literal>.</para>
+
+ <programlisting>@MappedSuperclass
+public class BaseEntity {
+ @Basic
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date getLastUpdate() { ... }
+ public String getLastUpdater() { ... }
+ ...
+}
+
+ at Entity class Order extends BaseEntity {
+ @Id public Integer getId() { ... }
+ ...
+}</programlisting>
+
+ <para>In database, this hierarchy will be represented as an
+ <literal>Order</literal> table having the <literal>id</literal>,
+ <literal>lastUpdate</literal> and <literal>lastUpdater</literal>
+ columns. The embedded superclass property mappings are copied into
+ their entity subclasses. Remember that the embeddable superclass is
+ not the root of the hierarchy though.</para>
+
+ <note>
+ <para>Properties from superclasses not mapped as
+ <literal>@MappedSuperclass</literal> are ignored.</para>
+ </note>
+
+ <note>
+ <para>The access type (field or methods), is inherited from the root
+ entity, unless you use the Hibernate annotation
+ <literal>@AccessType</literal></para>
+ </note>
+
+ <note>
+ <para>The same notion can be applied to
+ <literal>@Embeddable</literal> objects to persist properties from
+ their superclasses. You also need to use
+ <literal>@MappedSuperclass</literal> to do that (this should not be
+ considered as a standard EJB3 feature though)</para>
+ </note>
+
+ <note>
+ <para>It is allowed to mark a class as
+ <literal>@MappedSuperclass</literal> in the middle of the mapped
+ inheritance hierarchy.</para>
+ </note>
+
+ <note>
+ <para>Any class in the hierarchy non annotated with
+ <literal>@MappedSuperclass</literal> nor <literal>@Entity</literal>
+ will be ignored.</para>
+ </note>
+
+ <para>You can override columns defined in entity superclasses at the
+ root entity level using the <literal>@AttributeOverride</literal>
+ annotation.</para>
+
+ <programlisting>@MappedSuperclass
+public class FlyingObject implements Serializable {
+
+ public int getAltitude() {
+ return altitude;
+ }
+
+ @Transient
+ public int getMetricAltitude() {
+ return metricAltitude;
+ }
+
+ @ManyToOne
+ public PropulsionType getPropulsion() {
+ return metricAltitude;
+ }
+ ...
+}
+
+ at Entity
+ at AttributeOverride( name="altitude", column = @Column(name="fld_altitude") )
+ at AssociationOverride( name="propulsion", joinColumns = @JoinColumn(name="fld_propulsion_fk") )
+public class Plane extends FlyingObject {
+ ...
+}</programlisting>
+
+ <para>The <literal>altitude</literal> property will be persisted in an
+ <literal>fld_altitude</literal> column of table
+ <literal>Plane</literal> and the propulsion association will be
+ materialized in a <literal>fld_propulsion_fk</literal> foreign key
+ column.</para>
+
+ <para>You can define <literal>@AttributeOverride</literal>(s) and
+ <literal>@AssociationOverride</literal>(s) on
+ <literal>@Entity</literal> classes,
+ <literal>@MappedSuperclass</literal> classes and properties pointing
+ to an <literal>@Embeddable</literal> object.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-mapping-association">
+ <title>Mapping entity bean associations/relationships</title>
+
+ <sect3>
+ <title>One-to-one</title>
+
+ <para>You can associate entity beans through a one-to-one relationship
+ using <literal>@OneToOne</literal>. There are three cases for
+ one-to-one associations: either the associated entities share the same
+ primary keys values, a foreign key is held by one of the entities
+ (note that this FK column in the database should be constrained unique
+ to simulate one-to-one multiplicity), or a association table is used
+ to store the link between the 2 entities (a unique constraint has to
+ be defined on each fk to ensure the one to one multiplicity)</para>
+
+ <para>First, we map a real one-to-one association using shared primary
+ keys:</para>
+
+ <programlisting>
+ at Entity
+public class Body {
+ @Id
+ public Long getId() { return id; }
+
+ @OneToOne(cascade = CascadeType.ALL)
+ @PrimaryKeyJoinColumn
+ public Heart getHeart() {
+ return heart;
+ }
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Heart {
+ @Id
+ public Long getId() { ...}
+}
+ </programlisting>
+
+ <para>The one to one is marked as true by using the
+ <literal>@PrimaryKeyJoinColumn</literal> annotation.</para>
+
+ <para>In the following example, the associated entities are linked
+ through a foreign key column:</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToOne(cascade = CascadeType.ALL)
+ <emphasis role="bold">@JoinColumn(name="passport_fk")</emphasis>
+ public Passport getPassport() {
+ ...
+ }
+
+ at Entity
+public class Passport implements Serializable {
+ @OneToOne(<emphasis role="bold">mappedBy = "passport"</emphasis>)
+ public Customer getOwner() {
+ ...
+}
+ </programlisting>
+
+ <para>A <classname>Customer</classname> is linked to a
+ <classname>Passport</classname>, with a foreign key column named
+ <literal>passport_fk</literal> in the <literal>Customer</literal>
+ table. The join column is declared with the
+ <literal>@JoinColumn</literal> annotation which looks like the
+ <literal>@Column</literal> annotation. It has one more parameters
+ named <literal>referencedColumnName</literal>. This parameter declares
+ the column in the targeted entity that will be used to the join. Note
+ that when using
+ <literal><literal>referencedColumnName</literal></literal> to a non
+ primary key column, the associated class has to be
+ <classname>Serializable</classname>. Also note that the
+ <literal><literal>referencedColumnName</literal></literal> to a non
+ primary key column has to be mapped to a property having a single
+ column (other cases might not work).</para>
+
+ <para>The association may be bidirectional. In a bidirectional
+ relationship, one of the sides (and only one) has to be the owner: the
+ owner is responsible for the association column(s) update. To declare
+ a side as <emphasis>not</emphasis> responsible for the relationship,
+ the attribute <literal>mappedBy</literal> is used.
+ <literal>mappedBy</literal> refers to the property name of the
+ association on the owner side. In our case, this is
+ <literal>passport</literal>. As you can see, you don't have to (must
+ not) declare the join column since it has already been declared on the
+ owners side.</para>
+
+ <para>If no <literal>@JoinColumn</literal> is declared on the owner
+ side, the defaults apply. A join column(s) will be created in the
+ owner table and its name will be the concatenation of the name of the
+ relationship in the owner side, <keycap>_</keycap> (underscore), and
+ the name of the primary key column(s) in the owned side. In this
+ example <literal>passport_id</literal> because the property name is
+ <literal>passport</literal> and the column id of <literal>Passport
+ </literal>is <literal>id</literal>.</para>
+
+ <para>The third possibility (using an association table) is very
+ exotic.</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToOne(cascade = CascadeType.ALL)
+ <emphasis role="bold">@JoinTable(name = "CustomerPassports",
+ joinColumns = @JoinColumn(name="customer_fk"),
+ inverseJoinColumns = @JoinColumn(name="passport_fk")</emphasis>
+ )
+ public Passport getPassport() {
+ ...
+ }
+
+ at Entity
+public class Passport implements Serializable {
+ @OneToOne(<emphasis role="bold">mappedBy = "passport"</emphasis>)
+ public Customer getOwner() {
+ ...
+}
+ </programlisting>
+
+ <para>A <classname>Customer</classname> is linked to a
+ <classname>Passport</classname> through a association table named
+ <literal>CustomerPassports</literal> ; this association table has a
+ foreign key column named <literal>passport_fk</literal> pointing to
+ the <literal>Passport</literal> table (materialized by the
+ <literal>inverseJoinColumn</literal>, and a foreign key column named
+ <literal>customer_fk</literal> pointing to the
+ <literal>Customer</literal> table materialized by the
+ <literal>joinColumns</literal> attribute.</para>
+
+ <para>You must declare the join table name and the join columns
+ explicitly in such a mapping.</para>
+ </sect3>
+
+ <sect3>
+ <title>Many-to-one</title>
+
+ <para>Many-to-one associations are declared at the property level with
+ the annotation <literal>@ManyToOne</literal>:</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ <emphasis role="bold">@ManyToOne</emphasis>( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+ @JoinColumn(name="COMP_ID")
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+ </programlisting>
+
+ <para>The <literal>@JoinColumn</literal> attribute is optional, the
+ default value(s) is like in one to one, the concatenation of the name
+ of the relationship in the owner side, <keycap>_</keycap>
+ (underscore), and the name of the primary key column in the owned
+ side. In this example <literal>company_id</literal> because the
+ property name is <literal>company</literal> and the column id of
+ Company is <literal>id</literal>.</para>
+
+ <para><literal>@ManyToOne</literal> has a parameter named
+ <literal>targetEntity</literal> which describes the target entity
+ name. You usually don't need this parameter since the default value
+ (the type of the property that stores the association) is good in
+ almost all cases. However this is useful when you want to use
+ interfaces as the return type instead of the regular entity.</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, <emphasis
+ role="bold">targetEntity=CompanyImpl.class</emphasis> )
+ @JoinColumn(name="COMP_ID")
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+
+public interface Company {
+ ...
+ </programlisting>
+
+ <para>You can alse map a many to one association through an
+ association table. This association table described by the
+ <literal>@JoinTable</literal> annotation will contains a foreign key
+ referencing back the entity table (through
+ <literal>@JoinTable.joinColumns</literal>) and a a foreign key
+ referencing the target entity table (through
+ <literal>@JoinTable.inverseJoinColumns</literal>).</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+ <emphasis role="bold">@JoinTable(name="Flight_Company",
+ joinColumns = @JoinColumn(name="FLIGHT_ID"),
+ inverseJoinColumns = @JoinColumn(name="COMP_ID")
+ )</emphasis>
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+ </programlisting>
+ </sect3>
+
+ <sect3 id="entity-mapping-association-collections" revision="1">
+ <title>Collections</title>
+
+ <sect4 id="entity-mapping-association-collections-overview"
+ revision="1">
+ <title>Overview</title>
+
+ <para>You can map <classname>Collection</classname>,
+ <literal>List</literal> (ie ordered lists, not indexed lists),
+ <literal>Map</literal> and <classname>Set</classname>. The EJB3
+ specification describes how to map an ordered list (ie a list
+ ordered at load time) using
+ <literal>@javax.persistence.OrderBy</literal> annotation: this
+ annotation takes into parameter a list of comma separated (target
+ entity) properties to order the collection by (eg <code>firstname
+ asc, age desc</code>), if the string is empty, the collection will
+ be ordered by id. For true indexed collections, please refer to the
+ <xref linkend="entity-hibspec" />. EJB3 allows you to map Maps using
+ as a key one of the target entity property using
+ <literal>@MapKey(name="myProperty")</literal> (myProperty is a
+ property name in the target entity). When using
+ <literal>@MapKey</literal> (without property name), the target
+ entity primary key is used. The map key uses the same column as the
+ property pointed out: there is no additional column defined to hold
+ the map key, and it does make sense since the map key actually
+ represent a target property. Be aware that once loaded, the key is
+ no longer kept in sync with the property, in other words, if you
+ change the property value, the key will not change automatically in
+ your Java model (for true map support please refers to <xref
+ linkend="entity-hibspec" />). Many people confuse
+ <literal><map></literal> capabilities and
+ <literal>@MapKey</literal> ones. These are two different features.
+ <literal>@MapKey</literal> still has some limitations, please check
+ the forum or the JIRA tracking system for more informations.</para>
+
+ <para>Hibernate has several notions of collections.</para>
+
+ <para></para>
+
+ <table>
+ <title>Collections semantics</title>
+
+ <tgroup cols="3">
+ <colspec colname="c1" />
+
+ <colspec colname="c2" />
+
+ <colspec colname="c3" colnum="2" />
+
+ <thead>
+ <row>
+ <entry>Semantic</entry>
+
+ <entry>java representation</entry>
+
+ <entry>annotations</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Bag semantic</entry>
+
+ <entry>java.util.List, java.util.Collection</entry>
+
+ <entry>@org.hibernate.annotations.CollectionOfElements or
+ @OneToMany or @ManyToMany</entry>
+ </row>
+
+ <row>
+ <entry>Bag semantic with primary key (withtout the
+ limitations of Bag semantic)</entry>
+
+ <entry>java.util.List, java.util.Collection</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements or
+ @OneToMany or @ManyToMany) and @CollectionId</entry>
+ </row>
+
+ <row>
+ <entry>List semantic</entry>
+
+ <entry>java.util.List</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements or
+ @OneToMany or @ManyToMany) and
+ @org.hibernate.annotations.IndexColumn</entry>
+ </row>
+
+ <row>
+ <entry>Set semantic</entry>
+
+ <entry>java.util.Set</entry>
+
+ <entry>@org.hibernate.annotations.CollectionOfElements or
+ @OneToMany or @ManyToMany</entry>
+ </row>
+
+ <row>
+ <entry>Map semantic</entry>
+
+ <entry>java.util.Map</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements or
+ @OneToMany or @ManyToMany) and (nothing or
+ @org.hibernate.annotations.MapKey/MapKeyManyToMany for true
+ map support, OR @javax.persistence.MapKey</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <remark>So specifically, java.util.List collections without
+ @org.hibernate.annotations.IndexColumn are going to be considered as
+ bags.</remark>
+
+ <para>Collection of primitive, core type or embedded objects is not
+ supported by the EJB3 specification. Hibernate Annotations allows
+ them however (see <xref linkend="entity-hibspec" />).</para>
+
+ <programlisting>@Entity public class City {
+ @OneToMany(mappedBy="city")
+ <emphasis role="bold">@OrderBy("streetName")</emphasis>
+ public List<Street> getStreets() {
+ return streets;
+ }
+...
+}
+
+ at Entity public class Street {
+ <emphasis role="bold">public String getStreetName()</emphasis> {
+ return streetName;
+ }
+
+ @ManyToOne
+ public City getCity() {
+ return city;
+ }
+ ...
+}
+
+
+ at Entity
+public class Software {
+ @OneToMany(mappedBy="software")
+ <emphasis role="bold">@MapKey(name="codeName")</emphasis>
+ public Map<String, Version> getVersions() {
+ return versions;
+ }
+...
+}
+
+ at Entity
+ at Table(name="tbl_version")
+public class Version {
+ <emphasis role="bold">public String getCodeName()</emphasis> {...}
+
+ @ManyToOne
+ public Software getSoftware() { ... }
+...
+}</programlisting>
+
+ <para>So <literal>City</literal> has a collection of
+ <literal>Street</literal>s that are ordered by
+ <literal>streetName</literal> (of <literal>Street</literal>) when
+ the collection is loaded. <literal>Software</literal> has a map of
+ <literal>Version</literal>s which key is the
+ <literal>Version</literal> <literal>codeName</literal>.</para>
+
+ <para>Unless the collection is a generic, you will have to define
+ <literal>targetEntity</literal>. This is a annotation attribute that
+ take the target entity class as a value.</para>
+ </sect4>
+
+ <sect4 id="entity-mapping-association-collection-onetomany"
+ revision="2">
+ <title>One-to-many</title>
+
+ <para>One-to-many associations are declared at the property level
+ with the annotation <literal>@OneToMany</literal>. One to many
+ associations may be bidirectional.</para>
+
+ <sect5>
+ <title>Bidirectional</title>
+
+ <para>Since many to one are (almost) always the owner side of a
+ bidirectional relationship in the EJB3 spec, the one to many
+ association is annotated by <literal>@OneToMany( mappedBy=...
+ )</literal></para>
+
+ <programlisting>@Entity
+public class Troop {
+ @OneToMany(mappedBy="troop")
+ public Set<Soldier> getSoldiers() {
+ ...
+}
+
+ at Entity
+public class Soldier {
+ @ManyToOne
+ @JoinColumn(name="troop_fk")
+ public Troop getTroop() {
+ ...
+} </programlisting>
+
+ <para><classname>Troop</classname> has a bidirectional one to many
+ relationship with <literal>Soldier</literal> through the
+ <literal>troop</literal> property. You don't have to (must not)
+ define any physical mapping in the <literal>mappedBy</literal>
+ side.</para>
+
+ <para>To map a bidirectional one to many, with the one-to-many
+ side as the owning side, you have to remove the
+ <literal>mappedBy</literal> element and set the many to one
+ <literal>@JoinColumn</literal> as insertable and updatable to
+ false. This solution is obviously not optimized and will produce
+ some additional UPDATE statements.</para>
+
+ <programlisting>@Entity
+public class Troop {
+ @OneToMany
+ @JoinColumn(name="troop_fk") //we need to duplicate the physical information
+ public Set<Soldier> getSoldiers() {
+ ...
+}
+
+ at Entity
+public class Soldier {
+ @ManyToOne
+ @JoinColumn(name="troop_fk", insertable=false, updatable=false)
+ public Troop getTroop() {
+ ...
+}</programlisting>
+ </sect5>
+
+ <sect5>
+ <title>Unidirectional</title>
+
+ <para>A unidirectional one to many using a foreign key column in
+ the owned entity is not that common and not really recommended. We
+ strongly advise you to use a join table for this kind of
+ association (as explained in the next section). This kind of
+ association is described through a
+ <literal>@JoinColumn</literal></para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ public Set<Ticket> getTickets() {
+ ...
+}
+
+ at Entity
+public class Ticket implements Serializable {
+ ... //no bidir
+}
+ </programlisting>
+
+ <para><literal>Customer</literal> describes a unidirectional
+ relationship with <literal>Ticket</literal> using the join column
+ <literal>CUST_ID</literal>.</para>
+ </sect5>
+
+ <sect5>
+ <title>Unidirectional with join table</title>
+
+ <para>A unidirectional one to many with join table is much
+ preferred. This association is described through an
+ <literal>@JoinTable</literal>.</para>
+
+ <programlisting>
+ at Entity
+public class Trainer {
+ @OneToMany
+ @JoinTable(
+ name="TrainedMonkeys",
+ joinColumns = @JoinColumn( name="trainer_id"),
+ inverseJoinColumns = @JoinColumn( name="monkey_id")
+ )
+ public Set<Monkey> getTrainedMonkeys() {
+ ...
+}
+
+ at Entity
+public class Monkey {
+ ... //no bidir
+}
+ </programlisting>
+
+ <para><literal>Trainer</literal> describes a unidirectional
+ relationship with <classname>Monkey</classname> using the join
+ table <classname>TrainedMonkeys</classname>, with a foreign key
+ <literal>trainer_id</literal> to <literal>Trainer</literal>
+ (<literal>joinColumns</literal>) and a foreign key
+ <literal>monkey_id</literal> to <literal>Monkey</literal>
+ (<literal>inversejoinColumns</literal>).</para>
+ </sect5>
+
+ <sect5 id="entity-mapping-association-collection-manytomany-default"
+ revision="1">
+ <title>Defaults</title>
+
+ <para>Without describing any physical mapping, a unidirectional
+ one to many with join table is used. The table name is the
+ concatenation of the owner table name, <keycap>_</keycap>, and the
+ other side table name. The foreign key name(s) referencing the
+ owner table is the concatenation of the owner table,
+ <keycap>_</keycap>, and the owner primary key column(s) name. The
+ foreign key name(s) referencing the other side is the
+ concatenation of the owner property name, <keycap>_</keycap>, and
+ the other side primary key column(s) name. A unique constraint is
+ added to the foreign key referencing the other side table to
+ reflect the one to many.</para>
+
+ <programlisting>
+ at Entity
+public class Trainer {
+ @OneToMany
+ public Set<Tiger> getTrainedTigers() {
+ ...
+}
+
+ at Entity
+public class Tiger {
+ ... //no bidir
+}
+ </programlisting>
+
+ <para><classname>Trainer</classname> describes a unidirectional
+ relationship with <classname>Tiger</classname> using the join
+ table <literal>Trainer_Tiger</literal>, with a foreign key
+ <literal>trainer_id</literal> to <literal>Trainer</literal> (table
+ name, <keycap>_</keycap>, trainer id) and a foreign key
+ <literal>trainedTigers_id</literal> to <literal>Monkey</literal>
+ (property name, <keycap>_</keycap>, Tiger primary column).</para>
+ </sect5>
+ </sect4>
+
+ <sect4 id="eentity-mapping-association-collection-manytomany"
+ revision="">
+ <title>Many-to-many</title>
+
+ <sect5>
+ <title>Definition</title>
+
+ <para>A many-to-many association is defined logically using the
+ <literal>@ManyToMany</literal> annotation. You also have to
+ describe the association table and the join conditions using the
+ <literal>@JoinTable</literal> annotation. If the association is
+ bidirectional, one side has to be the owner and one side has to be
+ the inverse end (ie. it will be ignored when updating the
+ relationship values in the association table):</para>
+
+ <programlisting>
+ at Entity
+public class Employer implements Serializable {
+ @ManyToMany(
+ targetEntity=org.hibernate.test.metadata.manytomany.Employee.class,
+ cascade={CascadeType.PERSIST, CascadeType.MERGE}
+ )
+ @JoinTable(
+ name="EMPLOYER_EMPLOYEE",
+ joinColumns=@JoinColumn(name="EMPER_ID"),
+ inverseJoinColumns=@JoinColumn(name="EMPEE_ID")
+ )
+ public Collection getEmployees() {
+ return employees;
+ }
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Employee implements Serializable {
+ @ManyToMany(
+ cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+ mappedBy = "employees",
+ targetEntity = Employer.class
+ )
+ public Collection getEmployers() {
+ return employers;
+ }
+}
+ </programlisting>
+
+ <para>We've already shown the many declarations and the detailed
+ attributes for associations. We'll go deeper in the
+ <literal>@JoinTable</literal> description, it defines a
+ <literal>name</literal>, an array of join columns (an array in
+ annotation is defined using { A, B, C }), and an array of inverse
+ join columns. The latter ones are the columns of the association
+ table which refer to the <classname>Employee</classname> primary
+ key (the "other side").</para>
+
+ <para>As seen previously, the other side don't have to (must not)
+ describe the physical mapping: a simple
+ <literal>mappedBy</literal> argument containing the owner side
+ property name bind the two.</para>
+ </sect5>
+
+ <sect5>
+ <title>Default values</title>
+
+ <para>As any other annotations, most values are guessed in a many
+ to many relationship. Without describing any physical mapping in a
+ unidirectional many to many the following rules applied. The table
+ name is the concatenation of the owner table name,
+ <keycap>_</keycap> and the other side table name. The foreign key
+ name(s) referencing the owner table is the concatenation of the
+ owner table name, <keycap>_</keycap> and the owner primary key
+ column(s). The foreign key name(s) referencing the other side is
+ the concatenation of the owner property name, <keycap>_</keycap>,
+ and the other side primary key column(s). These are the same rules
+ used for a unidirectional one to many relationship.</para>
+
+ <programlisting>
+ at Entity
+public class Store {
+ @ManyToMany(cascade = CascadeType.PERSIST)
+ public Set<City> getImplantedIn() {
+ ...
+ }
+}
+
+ at Entity
+public class City {
+ ... //no bidirectional relationship
+}
+ </programlisting>
+
+ <para>A <literal>Store_City</literal> is used as the join table.
+ The <literal>Store_id</literal> column is a foreign key to the
+ <literal>Store</literal> table. The
+ <literal>implantedIn_id</literal> column is a foreign key to the
+ <literal>City</literal> table.</para>
+
+ <para>Without describing any physical mapping in a bidirectional
+ many to many the following rules applied. The table name is the
+ concatenation of the owner table name, <keycap>_</keycap> and the
+ other side table name. The foreign key name(s) referencing the
+ owner table is the concatenation of the other side property name,
+ <keycap>_</keycap>, and the owner primary key column(s). The
+ foreign key name(s) referencing the other side is the
+ concatenation of the owner property name, <keycap>_</keycap>, and
+ the other side primary key column(s). These are the same rules
+ used for a unidirectional one to many relationship.</para>
+
+ <programlisting>
+ at Entity
+public class Store {
+ @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
+ public Set<Customer> getCustomers() {
+ ...
+ }
+}
+
+ at Entity
+public class Customer {
+ @ManyToMany(mappedBy="customers")
+ public Set<Store> getStores() {
+ ...
+ }
+}
+ </programlisting>
+
+ <para>A <literal>Store_Customer</literal> is used as the join
+ table. The <literal>stores_id</literal> column is a foreign key to
+ the <literal>Store</literal> table. The
+ <literal>customers_id</literal> column is a foreign key to the
+ <literal>Customer</literal> table.</para>
+ </sect5>
+ </sect4>
+ </sect3>
+
+ <sect3 id="entity-mapping-association-cascade">
+ <title>Transitive persistence with cascading</title>
+
+ <para>You probably have noticed the <literal>cascade</literal>
+ attribute taking an array of <classname>CascadeType</classname> as a
+ value. The cascade concept in EJB3 is very is similar to the
+ transitive persistence and cascading of operations in Hibernate, but
+ with slightly different semantics and cascading types:</para>
+
+ <itemizedlist>
+ <listitem>
+ CascadeType.PERSIST: cascades the persist (create) operation to associated entities persist() is called or if the entity is managed
+ </listitem>
+
+ <listitem>
+ CascadeType.MERGE: cascades the merge operation to associated entities if merge() is called or if the entity is managed
+ </listitem>
+
+ <listitem>
+ CascadeType.REMOVE: cascades the remove operation to associated entities if delete() is called
+ </listitem>
+
+ <listitem>
+ CascadeType.REFRESH: cascades the refresh operation to associated entities if refresh() is called
+ </listitem>
+
+ <listitem>
+ CascadeType.ALL: all of the above
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>CascadeType.ALL also covers Hibernate specific operations like
+ save-update, lock etc... Check <xref
+ linkend="entity-hibspec-cascade" /> for more information</para>
+ </note>
+
+ <para>Please refer to the chapter 6.3 of the EJB3 specification for
+ more information on cascading and create/merge semantics.</para>
+ </sect3>
+
+ <sect3 id="entity-mapping-association-fetching" revision="1">
+ <title>Association fetching</title>
+
+ <para>You have the ability to either eagerly or lazily fetch
+ associated entities. The <literal>fetch</literal> parameter can be set
+ to <literal>FetchType.LAZY</literal> or
+ <literal>FetchType.EAGER</literal>. <literal>EAGER</literal> will try
+ to use an outer join select to retrieve the associated object, while
+ <literal>LAZY</literal> will only trigger a select when the associated
+ object is accessed for the first time. <literal>@OneToMany</literal>
+ and <literal>@ManyToMany</literal> associations are defaulted to
+ <literal>LAZY</literal> and <literal>@OneToOne</literal> and
+ <literal>@ManyToOne</literal> are defaulted to
+ <literal>EAGER</literal>. For more information about static fetching,
+ check <xref linkend="entity-hibspec-singleassoc-fetching" />.</para>
+
+ <para>The recommanded approach is to use <literal>LAZY</literal> onn
+ all static fetching definitions and override this choice dynamically
+ through JPA-QL. JPA-QL has a <literal>fetch</literal> keyword that
+ allows you to override laziness when doing a particular query. This is
+ very useful to improve performance and is decided on a use case to use
+ case basis.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Mapping composite primary and foreign keys</title>
+
+ <para>Composite primary keys use a embedded class as the primary key
+ representation, so you'd use the <literal>@Id</literal> and
+ <literal>@Embeddable</literal> annotations. Alternatively, you can use
+ the <literal>@EmbeddedId</literal> annotation. Note that the dependent
+ class has to be serializable and implements
+ <methodname>equals()</methodname>/<methodname>hashCode()</methodname>.
+ You can also use <literal>@IdClass</literal> as described in <xref
+ linkend="entity-mapping-identifier" />.</para>
+
+ <programlisting>
+ at Entity
+public class RegionalArticle implements Serializable {
+
+ @Id
+ public RegionalArticlePk getPk() { ... }
+}
+
+ at Embeddable
+public class RegionalArticlePk implements Serializable { ... }
+ </programlisting>
+
+ <para>or alternatively</para>
+
+ <programlisting>
+ at Entity
+public class RegionalArticle implements Serializable {
+
+ @EmbeddedId
+ public RegionalArticlePk getPk() { ... }
+}
+
+public class RegionalArticlePk implements Serializable { ... }
+ </programlisting>
+
+ <para><literal>@Embeddable</literal> inherit the access type of its
+ owning entity unless the Hibernate specific annotation
+ <literal>@AccessType</literal> is used. Composite foreign keys (if not
+ using the default sensitive values) are defined on associations using
+ the <literal>@JoinColumns</literal> element, which is basically an array
+ of <literal>@JoinColumn</literal>. It is considered a good practice to
+ express <literal>referencedColumnNames</literal> explicitly. Otherwise,
+ Hibernate will suppose that you use the same order of columns as in the
+ primary key declaration.</para>
+
+ <programlisting>
+ at Entity
+public class Parent implements Serializable {
+ @Id
+ public ParentPk id;
+ public int age;
+
+ @OneToMany(cascade=CascadeType.ALL)
+ @JoinColumns ({
+ @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+ @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+ @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+ })
+ public Set<Child> children; //unidirectional
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Child implements Serializable {
+ @Id @GeneratedValue
+ public Integer id;
+
+ @ManyToOne
+ @JoinColumns ({
+ @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+ @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+ @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+ })
+ public Parent parent; //unidirectional
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class ParentPk implements Serializable {
+ String firstName;
+ String lastName;
+ ...
+}
+ </programlisting>
+
+ <para>Note the explicit usage of the
+ <literal>referencedColumnName</literal>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Mapping secondary tables</title>
+
+ <para>You can map a single entity bean to several tables using the
+ <literal>@SecondaryTable</literal> or
+ <literal>@SecondaryTables</literal> class level annotations. To express
+ that a column is in a particular table, use the <literal>table</literal>
+ parameter of <literal>@Column</literal> or
+ <literal>@JoinColumn</literal>.</para>
+
+ <programlisting>
+ at Entity
+ at Table(name="MainCat")
+<emphasis role="bold">@SecondaryTables({
+ @SecondaryTable(name="Cat1", pkJoinColumns={
+ @PrimaryKeyJoinColumn(name="cat_id", referencedColumnName="id")
+ ),
+ @SecondaryTable(name="Cat2", uniqueConstraints={@UniqueConstraint(columnNames={"storyPart2"})})
+})</emphasis>
+public class Cat implements Serializable {
+
+ private Integer id;
+ private String name;
+ private String storyPart1;
+ private String storyPart2;
+
+ @Id @GeneratedValue
+ public Integer getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ <emphasis role="bold">@Column(table="Cat1")</emphasis>
+ public String getStoryPart1() {
+ return storyPart1;
+ }
+
+ <emphasis role="bold">@Column(table="Cat2")</emphasis>
+ public String getStoryPart2() {
+ return storyPart2;
+ }
+</programlisting>
+
+ <para>In this example, <literal>name</literal> will be in
+ <literal>MainCat</literal>. <literal>storyPart1</literal> will be in
+ <literal>Cat1</literal> and <literal>storyPart2</literal> will be in
+ <literal>Cat2</literal>. <literal>Cat1</literal> will be joined to
+ <literal>MainCat</literal> using the <literal>cat_id</literal> as a
+ foreign key, and <literal>Cat2</literal> using <literal>id</literal> (ie
+ the same column name, the <literal>MainCat</literal> id column has).
+ Plus a unique constraint on <literal>storyPart2</literal> has been
+ set.</para>
+
+ <para>Check out the JBoss EJB 3 tutorial or the Hibernate Annotations
+ unit test suite for more examples.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="entity-mapping-query">
+ <title>Mapping Queries</title>
+
+ <sect2 id="entity-mapping-query-hql" label="Mapping JPAQL/HQL queries"
+ revision="1">
+ <title>Mapping JPAQL/HQL queries</title>
+
+ <para>You can map EJBQL/HQL queries using annotations.
+ <literal>@NamedQuery</literal> and <literal>@NamedQueries</literal> can
+ be defined at the class level or in a JPA XML file. However their
+ definitions are global to the session factory/entity manager factory
+ scope. A named query is defined by its name and the actual query
+ string.</para>
+
+ <programlisting><entity-mappings>
+ <named-query name="plane.getAll">
+ <query>select p from Plane p</query>
+ </named-query>
+ ...
+</entity-mappings>
+...
+
+ at Entity
+ at NamedQuery(name="night.moreRecentThan", query="select n from Night n where n.date >= :date")
+public class Night {
+ ...
+}
+
+public class MyDao {
+ doStuff() {
+ Query q = s.getNamedQuery("night.moreRecentThan");
+ q.setDate( "date", aMonthAgo );
+ List results = q.list();
+ ...
+ }
+ ...
+}
+ </programlisting>
+
+ <para>You can also provide some hints to a query through an array of
+ <literal>QueryHint</literal> through a <literal>hints</literal>
+ attribute.</para>
+
+ <para>The availabe Hibernate hints are</para>
+
+ <para></para>
+
+ <table>
+ <title>Query hints</title>
+
+ <tgroup cols="2">
+ <thead>
+ <colspec colname="c1" />
+
+ <colspec colname="c2" colnum="2" />
+
+ <row>
+ <entry>hint</entry>
+
+ <entry colname="c2">description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>org.hibernate.cacheable</entry>
+
+ <entry>Whether the query should interact with the second level
+ cache (defualt to false)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.cacheRegion</entry>
+
+ <entry>Cache region name (default used otherwise)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.timeout</entry>
+
+ <entry>Query timeout</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.fetchSize</entry>
+
+ <entry>resultset fetch size</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.flushMode</entry>
+
+ <entry>Flush mode used for this query</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.cacheMode</entry>
+
+ <entry>Cache mode used for this query</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.readOnly</entry>
+
+ <entry>Entities loaded by this query should be in read only mode
+ or not (default to false)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.comment</entry>
+
+ <entry>Query comment added to the generated SQL</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="entity-mapping-query-native" revision="2">
+ <title>Mapping native queries</title>
+
+ <para>You can also map a native query (ie a plain SQL query). To achieve
+ that, you need to describe the SQL resultset structure using
+ <literal>@SqlResultSetMapping</literal> (or
+ <literal>@SqlResultSetMappings</literal> if you plan to define several
+ resulset mappings). Like <literal>@NamedQuery</literal>, a
+ <literal>@SqlResultSetMapping</literal> can be defined at class level or
+ in a JPA XML file. However its scope is global to the
+ application.</para>
+
+ <para>As we will see, a <literal>resultSetMapping</literal> parameter is
+ defined in <literal>@NamedNativeQuery</literal>, it represents the name
+ of a defined <literal>@SqlResultSetMapping</literal>. The resultset
+ mapping declares the entities retrieved by this native query. Each field
+ of the entity is bound to an SQL alias (or column name). All fields of
+ the entity including the ones of subclasses and the foreign key columns
+ of related entities have to be present in the SQL query. Field
+ definitions are optional provided that they map to the same column name
+ as the one declared on the class property.</para>
+
+ <para><programlisting>@NamedNativeQuery(name="night&area", query="select night.id nid, night.night_duration, "
+ + " night.night_date, area.id aid, night.area_id, area.name "
+ + "from Night night, Area area where night.area_id = area.id", <emphasis
+ role="bold">resultSetMapping="joinMapping"</emphasis>)
+ at SqlResultSetMapping(name="joinMapping", entities={
+ @EntityResult(entityClass=org.hibernate.test.annotations.query.Night.class, fields = {
+ @FieldResult(name="id", column="nid"),
+ @FieldResult(name="duration", column="night_duration"),
+ @FieldResult(name="date", column="night_date"),
+ @FieldResult(name="area", column="area_id"),
+ discriminatorColumn="disc"
+ }),
+ @EntityResult(entityClass=org.hibernate.test.annotations.query.Area.class, fields = {
+ @FieldResult(name="id", column="aid"),
+ @FieldResult(name="name", column="name")
+ })
+ }
+)</programlisting></para>
+
+ <para>In the above example, the <literal>night&area</literal> named
+ query use the <literal>joinMapping</literal> result set mapping. This
+ mapping returns 2 entities, <literal>Night</literal> and
+ <literal>Area</literal>, each property is declared and associated to a
+ column name, actually the column name retrieved by the query. Let's now
+ see an implicit declaration of the property / column.</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@SqlResultSetMapping(name="implicit", entities=@EntityResult(entityClass=org.hibernate.test.annotations.query.SpaceShip.class))
+ at NamedNativeQuery(name="implicitSample", query="select * from SpaceShip", resultSetMapping="implicit")</emphasis>
+public class SpaceShip {
+ private String name;
+ private String model;
+ private double speed;
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Column(name="model_txt")
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+}</programlisting>
+
+ <para>In this example, we only describe the entity member of the result
+ set mapping. The property / column mappings is done using the entity
+ mapping values. In this case the <literal>model</literal> property is
+ bound to the <literal>model_txt </literal>column. If the association to
+ a related entity involve a composite primary key, a
+ <literal>@FieldResult</literal> element should be used for each foreign
+ key column. The <literal>@FieldResult</literal> name is composed of the
+ property name for the relationship, followed by a dot ("."), followed by
+ the name or the field or property of the primary key.</para>
+
+ <programlisting>@Entity
+ at SqlResultSetMapping(name="compositekey",
+ entities=@EntityResult(entityClass=org.hibernate.test.annotations.query.SpaceShip.class,
+ fields = {
+ @FieldResult(name="name", column = "name"),
+ @FieldResult(name="model", column = "model"),
+ @FieldResult(name="speed", column = "speed"),
+<emphasis role="bold"> @FieldResult(name="captain.firstname", column = "firstn"),
+ @FieldResult(name="captain.lastname", column = "lastn"),</emphasis>
+ @FieldResult(name="dimensions.length", column = "length"),
+ @FieldResult(name="dimensions.width", column = "width")
+ }),
+ columns = { @ColumnResult(name = "surface"),
+ @ColumnResult(name = "volume") } )
+
+ at NamedNativeQuery(name="compositekey",
+ query="select name, model, speed, lname as lastn, fname as firstn, length, width, length * width as surface from SpaceShip",
+ resultSetMapping="compositekey")
+} )
+public class SpaceShip {
+ private String name;
+ private String model;
+ private double speed;
+ private Captain captain;
+ private Dimensions dimensions;
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @ManyToOne(fetch= FetchType.LAZY)
+ @JoinColumns( {
+ @JoinColumn(name="fname", referencedColumnName = "firstname"),
+ @JoinColumn(name="lname", referencedColumnName = "lastname")
+ } )
+ public Captain getCaptain() {
+ return captain;
+ }
+
+ public void setCaptain(Captain captain) {
+ this.captain = captain;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+
+ public Dimensions getDimensions() {
+ return dimensions;
+ }
+
+ public void setDimensions(Dimensions dimensions) {
+ this.dimensions = dimensions;
+ }
+}
+
+ at Entity
+ at IdClass(Identity.class)
+public class Captain implements Serializable {
+ private String firstname;
+ private String lastname;
+
+ @Id
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ @Id
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+}
+</programlisting>
+
+ <note>
+ <para>If you look at the dimension property, you'll see that Hibernate
+ supports the dotted notation for embedded objects (you can even have
+ nested embedded objects). EJB3 implementations do not have to support
+ this feature, we do :-)</para>
+ </note>
+
+ <para>If you retrieve a single entity and if you use the default
+ mapping, you can use the <literal>resultClass</literal> attribute
+ instead of <literal>resultSetMapping</literal>:</para>
+
+ <programlisting><emphasis role="bold">@NamedNativeQuery(name="implicitSample", query="select * from SpaceShip",
+ resultClass=SpaceShip.class)</emphasis>
+public class SpaceShip {</programlisting>
+
+ <para>In some of your native queries, you'll have to return scalar
+ values, for example when building report queries. You can map them in
+ the <literal>@SqlResultsetMapping</literal> through
+ <literal>@ColumnResult</literal>. You actually can even mix, entities
+ and scalar returns in the same native query (this is probably not that
+ common though).</para>
+
+ <programlisting><emphasis role="bold">@SqlResultSetMapping(name="scalar", columns=@ColumnResult(name="dimension"))
+ at NamedNativeQuery(name="scalar", query="select length*width as dimension from SpaceShip", resultSetMapping="scalar")</emphasis></programlisting>
+
+ <para>An other query hint specific to native queries has been
+ introduced: <literal>org.hibernate.callable</literal> which can be true
+ or false depending on whether the query is a stored procedure or
+ not.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="entity-hibspec" xreflabel="Hibernate Annotation Extensions">
+ <title>Hibernate Annotation Extensions</title>
+
+ <para>Hibernate 3.1 offers a variety of additional annotations that you
+ can mix/match with your EJB 3 entities. They have been designed as a
+ natural extension of EJB3 annotations.</para>
+
+ <para>To empower the EJB3 capabilities, hibernate provides specific
+ annotations that match hibernate features. The
+ <classname>org.hibernate.annotations</classname> package contains all
+ these annotations extensions.</para>
+
+ <sect2 id="entity-hibspec-entity" revision="4">
+ <title>Entity</title>
+
+ <para>You can fine tune some of the actions done by Hibernate on
+ entities beyond what the EJB3 spec offers.</para>
+
+ <para><classname>@org.hibernate.annotations.Entity</classname> adds
+ additional metadata that may be needed beyond what is defined in the
+ standard <literal>@Entity</literal> <itemizedlist>
+ <listitem>
+ mutable: whether this entity is mutable or not
+ </listitem>
+
+ <listitem>
+ dynamicInsert: allow dynamic SQL for inserts
+ </listitem>
+
+ <listitem>
+ dynamicUpdate: allow dynamic SQL for updates
+ </listitem>
+
+ <listitem>
+ selectBeforeUpdate: Specifies that Hibernate should never perform an SQL UPDATE unless it is certain that an object is actually modified.
+ </listitem>
+
+ <listitem>
+ polymorphism: whether the entity polymorphism is of PolymorphismType.IMPLICIT (default) or PolymorphismType.EXPLICIT
+ </listitem>
+
+ <listitem>
+ optimisticLock: optimistic locking strategy (OptimisticLockType.VERSION, OptimisticLockType.NONE, OptimisticLockType.DIRTY or OptimisticLockType.ALL)
+ </listitem>
+ </itemizedlist></para>
+
+ <para><note>
+ <para>@javax.persistence.Entity is still mandatory,
+ @org.hibernate.annotations.Entity is not a replacement.</para>
+ </note></para>
+
+ <para>Here are some additional Hibernate annotation extensions</para>
+
+ <para><literal>@org.hibernate.annotations.BatchSize</literal> allows you
+ to define the batch size when fetching instances of this entity ( eg.
+ <literal>@BatchSize(size=4)</literal> ). When loading a given entity,
+ Hibernate will then load all the uninitialized entities of the same type
+ in the persistence context up to the batch size.</para>
+
+ <para><literal>@org.hibernate.annotations.Proxy</literal> defines the
+ laziness attributes of the entity. lazy (default to true) define whether
+ the class is lazy or not. proxyClassName is the interface used to
+ generate the proxy (default is the class itself).</para>
+
+ <para><literal>@org.hibernate.annotations.Where</literal> defines an
+ optional SQL WHERE clause used when instances of this class is
+ retrieved.</para>
+
+ <para><literal>@org.hibernate.annotations.Check</literal> defines an
+ optional check constraints defined in the DDL statetement.</para>
+
+ <para><literal>@OnDelete(action=OnDeleteAction.CASCADE)</literal> on
+ joined subclasses: use a SQL cascade delete on deletion instead of the
+ regular Hibernate mechanism.</para>
+
+ <para><literal>@Table(appliesTo="tableName", indexes = {
+ @Index(name="index1", columnNames={"column1", "column2"} ) } )</literal>
+ creates the defined indexes on the columns of table
+ <literal>tableName</literal>. This can be applied on the primary table
+ or any secondary table. The <literal>@Tables</literal> annotation allows
+ your to apply indexes on different tables. This annotation is expected
+ where <literal>@javax.persistence.Table</literal> or
+ <literal>@javax.persistence.SecondaryTable</literal>(s) occurs.</para>
+
+ <note>
+ <para><literal>@org.hibernate.annotations.Table</literal> is a
+ complement, not a replacement to
+ <literal>@javax.persistence.Table</literal>. Especially, if you want
+ to change the default name of a table, you must use
+ <literal>@javax.persistence.Table</literal>, not
+ <literal>@org.hibernate.annotations.Table</literal>.</para>
+ </note>
+
+ <para><literal>@org.hibernate.annotations.Table</literal> can also be
+ used to define the following elements of secondary tables:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>fetch</literal>: If set to JOIN, the default,
+ Hibernate will use an inner join to retrieve a secondary table
+ defined by a class or its superclasses and an outer join for a
+ secondary table defined by a subclass. If set to select then
+ Hibernate will use a sequential select for a secondary table defined
+ on a subclass, which will be issued only if a row turns out to
+ represent an instance of the subclass. Inner joins will still be
+ used to retrieve a secondary defined by the class and its
+ superclasses.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>inverse</literal>: If true, Hibernate will not try to
+ insert or update the properties defined by this join. Default to
+ false.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>optional</literal>: If enabled (the default),
+ Hibernate will insert a row only if the properties defined by this
+ join are non-null and will always use an outer join to retrieve the
+ properties.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>foreignKey</literal>: defines the Foreign Key name of
+ a secondary table pointing back to the primary table.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><literal>@Immutable</literal> marks an entity or collection as
+ immutable. An immutable entity may not be updated by the application.
+ This allows Hibernate to make some minor performance optimizations.
+ Updates to an immutable entity will be ignored, but no exception is
+ thrown. <literal>@Immutable</literal> must be used on root entities
+ only. <literal>@Immutable</literal> placed on a collection makes the
+ collection immutable, meaning additions and deletions to and from the
+ collection are not allowed. A <literal>HibernateException</literal> is
+ thrown in this case.</para>
+
+ <para><literal>@Persister</literal> lets you define your own custom
+ persistence strategy. You may, for example, specify your own subclass of
+ <classname>org.hibernate.persister.EntityPersister</classname> or you
+ might even provide a completely new implementation of the interface
+ <literal>org.hibernate.persister.ClassPersister</literal> that
+ implements persistence via, for example, stored procedure calls,
+ serialization to flat files or LDAP.</para>
+
+ <para><programlisting>@Entity
+ at BatchSize(size=5)
+ at org.hibernate.annotations.Entity(
+ selectBeforeUpdate = true,
+ dynamicInsert = true, dynamicUpdate = true,
+ optimisticLock = OptimisticLockType.ALL,
+ polymorphism = PolymorphismType.EXPLICIT)
+ at Where(clause="1=1")
+ at org.hibernate.annotations.Table(name="Forest", indexes = { @Index(name="idx", columnNames = { "name", "length" } ) } )
+ at Persister(impl=MyEntityPersister.class)
+public class Forest { ... }</programlisting><programlisting>@Entity
+ at Inheritance(
+ strategy=InheritanceType.JOINED
+)
+public class Vegetable { ... }
+
+ at Entity
+ at OnDelete(action=OnDeleteAction.CASCADE)
+public class Carrot extends Vegetable { ... }</programlisting></para>
+ </sect2>
+
+ <sect2 id="entity-hibspec-identifier" label="Identifier" revision="2">
+ <title>Identifier</title>
+
+ <para>Hibernate Annotations goes beyond the Java Persistence
+ specification when defining identifiers.</para>
+
+ <sect3>
+ <title>Generators</title>
+
+ <para><literal><literal>@org.hibernate.annotations.GenericGenerator</literal>
+ and <literal>@org.hibernate.annotations.GenericGenerators</literal>
+ allows you to define an Hibernate specific id
+ generator.</literal></para>
+
+ <para><programlisting>@Id @GeneratedValue(generator="system-uuid")
+ at GenericGenerator(name="system-uuid", strategy = "uuid")
+public String getId() {
+
+ at Id @GeneratedValue(generator="hibseq")
+ at GenericGenerator(name="hibseq", strategy = "seqhilo",
+ parameters = {
+ @Parameter(name="max_lo", value = "5"),
+ @Parameter(name="sequence", value="heybabyhey")
+ }
+)
+public Integer getId() {</programlisting></para>
+
+ <para><literal>strategy</literal> is the short name of an Hibernate3
+ generator strategy or the fully qualified class name of an
+ <classname>IdentifierGenerator</classname> implementation. You can add
+ some parameters through the <literal>parameters</literal>
+ attribute.</para>
+
+ <para>Contrary to their standard counterpart,
+ <literal>@GenericGenerator</literal> and
+ <literal>@GenericGenerators</literal> can be used in package level
+ annotations, making them application level generators (just like if
+ they were in a JPA XML file).</para>
+
+ <programlisting>@GenericGenerators(
+ {
+ @GenericGenerator(
+ name="hibseq",
+ strategy = "seqhilo",
+ parameters = {
+ @Parameter(name="max_lo", value = "5"),
+ @Parameter(name="sequence", value="heybabyhey")
+ }
+ ),
+ @GenericGenerator(...)
+ }
+)
+package org.hibernate.test.model</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>@NaturalId</title>
+
+ <para>While not used as identifier property, some (group of)
+ properties represent natural identifier of an entity. This is
+ especially true when the schema uses the recommended approach of using
+ surrogate primary key even if a natural business key exists. Hibernate
+ allows to map such natural properties and reuse them in a
+ <classname>Criteria</classname> query. The natural identifier is
+ composed of all the properties marked
+ <classname>@NaturalId</classname>.</para>
+
+ <programlisting>@Entity
+public class Citizen {
+ @Id
+ @GeneratedValue
+ private Integer id;
+ private String firstname;
+ private String lastname;
+
+ @NaturalId
+ @ManyToOne
+ private State state;
+
+ @NaturalId
+ private String ssn;
+ ...
+}
+
+
+
+//and later on query
+List results = s.createCriteria( Citizen.class )
+ .add( Restrictions.naturalId().set( "ssn", "1234" ).set( "state", ste ) )
+ .list();</programlisting>
+
+ <para>Note that the group of properties representing the natural
+ identifier have to be unique (Hibernate will generate a unique
+ constraint if the database schema is generated).</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-hibspec-property" revision="2">
+ <title>Property</title>
+
+ <sect3>
+ <title>Access type</title>
+
+ <para>The access type is guessed from the position of
+ <literal>@Id</literal> or <literal>@EmbeddedId</literal> in the entity
+ hierarchy. Sub-entities, embedded objects and mapped superclass
+ inherit the access type from the root entity.</para>
+
+ <para>In Hibernate, you can override the access type to:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>use a custom access type strategy</para>
+ </listitem>
+
+ <listitem>
+ <para>fine tune the access type at the class level or at the
+ property level</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>An @AccessType annotation has been introduced to support this
+ behavior. You can define the access type on</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>an entity</para>
+ </listitem>
+
+ <listitem>
+ <para>a superclass</para>
+ </listitem>
+
+ <listitem>
+ <para>an embeddable object</para>
+ </listitem>
+
+ <listitem>
+ <para>a property</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The access type is overriden for the annotated element, if
+ overriden on a class, all the properties of the given class inherit
+ the access type. For root entities, the access type is considered to
+ be the default one for the whole hierarchy (overridable at class or
+ property level).</para>
+
+ <para>If the access type is marked as "property", the getters are
+ scanned for annotations, if the access type is marked as "field", the
+ fields are scanned for annotations. Otherwise the elements marked with
+ @Id or @embeddedId are scanned.</para>
+
+ <para>You can override an access type for a property, but the element
+ to annotate will not be influenced: for example an entity having
+ access type <literal>field</literal>, can annotate a field with
+ <literal>@AccessType("property")</literal>, the access type will then
+ be property for this attribute, the the annotations still have to be
+ carried on the field.</para>
+
+ <para>If a superclass or an embeddable object is not annotated, the
+ root entity access type is used (even if an access type has been
+ define on an intermediate superclass or embeddable object). The
+ russian doll principle does not apply.</para>
+
+ <programlisting>@Entity
+public class Person implements Serializable {
+ @Id @GeneratedValue //access type field
+ Integer id;
+
+ @Embedded
+ @AttributeOverrides({
+ @AttributeOverride(name = "iso2", column = @Column(name = "bornIso2")),
+ @AttributeOverride(name = "name", column = @Column(name = "bornCountryName"))
+ })
+ Country bornIn;
+}
+
+ at Embeddable
+<emphasis role="bold">@AccessType("property")</emphasis> //override access type for all properties in Country
+public class Country implements Serializable {
+ private String iso2;
+ private String name;
+
+ public String getIso2() {
+ return iso2;
+ }
+
+ public void setIso2(String iso2) {
+ this.iso2 = iso2;
+ }
+
+ @Column(name = "countryName")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
+</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Formula</title>
+
+ <para>Sometimes, you want the Database to do some computation for you
+ rather than in the JVM, you might also create some kind of virtual
+ column. You can use a SQL fragment (aka formula) instead of mapping a
+ property into a column. This kind of property is read only (its value
+ is calculated by your formula fragment).</para>
+
+ <programlisting>@Formula("obj_length * obj_height * obj_width")
+public long getObjectVolume()</programlisting>
+
+ <para>The SQL fragment can be as complex as you want and even include
+ subselects.</para>
+ </sect3>
+
+ <sect3>
+ <title>Type</title>
+
+ <para><literal>@org.hibernate.annotations.Type</literal> overrides the
+ default hibernate type used: this is generally not necessary since the
+ type is correctly inferred by Hibernate. Please refer to the Hibernate
+ reference guide for more informations on the Hibernate types.</para>
+
+ <para><literal>@org.hibernate.annotations.TypeDef</literal> and
+ <literal>@org.hibernate.annotations.TypeDefs</literal> allows you to
+ declare type definitions. These annotations are placed at the class or
+ package level. Note that these definitions will be global for the
+ session factory (even at the class level) and that type definition has
+ to be defined before any usage.</para>
+
+ <programlisting>@TypeDefs(
+ {
+ @TypeDef(
+ name="caster",
+ typeClass = CasterStringType.class,
+ parameters = {
+ @Parameter(name="cast", value="lower")
+ }
+ )
+ }
+)
+package org.hibernate.test.annotations.entity;
+
+...
+public class Forest {
+ @Type(type="caster")
+ public String getSmallText() {
+ ...
+}
+ </programlisting>
+
+ <para>When using composite user type, you will have to express column
+ definitions. The <literal>@Columns</literal> has been introduced for
+ that purpose.</para>
+
+ <programlisting>@Type(type="org.hibernate.test.annotations.entity.MonetaryAmountUserType")
+ at Columns(columns = {
+ @Column(name="r_amount"),
+ @Column(name="r_currency")
+})
+public MonetaryAmount getAmount() {
+ return amount;
+}
+
+
+public class MonetaryAmount implements Serializable {
+ private BigDecimal amount;
+ private Currency currency;
+ ...
+}</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Index</title>
+
+ <para>You can define an index on a particular column using the
+ <literal>@Index</literal> annotation on a one column property, the
+ columnNames attribute will then be ignored</para>
+
+ <programlisting>@Column(secondaryTable="Cat1")
+ at Index(name="story1index")
+public String getStoryPart1() {
+ return storyPart1;
+}</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>@Parent</title>
+
+ <para>When inside an embeddable object, you can define one of the
+ properties as a pointer back to the owner element.</para>
+
+ <programlisting>@Entity
+public class Person {
+ @Embeddable public Address address;
+ ...
+}
+
+ at Embeddable
+public class Address {
+ @Parent public Person owner;
+ ...
+}
+
+
+person == person.address.owner</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Generated properties</title>
+
+ <para>Some properties are generated at insert or update time by your
+ database. Hibernate can deal with such properties and triggers a
+ subsequent select to read these properties.</para>
+
+ <programlisting>@Entity
+public class Antenna {
+ @Id public Integer id;
+ @Generated(GenerationTime.ALWAYS) @Column(insertable = false, updatable = false)
+ public String longitude;
+
+ @Generated(GenerationTime.INSERT) @Column(insertable = false)
+ public String latitude;
+}</programlisting>
+
+ <para>Annotate your property as <literal>@Generated</literal> You have
+ to make sure your insertability or updatability does not conflict with
+ the generation strategy you have chosen. When GenerationTime.INSERT is
+ chosen, the property must not contains insertable columns, when
+ GenerationTime.ALWAYS is chosen, the property must not contains
+ insertable nor updatable columns.</para>
+
+ <para><literal>@Version</literal> properties cannot be
+ <literal>@Generated(INSERT)</literal> by design, it has to be either
+ <literal>NEVER</literal> or <literal>ALWAYS</literal>.</para>
+ </sect3>
+
+ <sect3>
+ <title>@Target</title>
+
+ <para>Sometimes, the type guessed by reflection is not the one you
+ want Hibernate to use. This is especially true on components when an
+ interface is used. You can use <literal>@Target</literal> to by pass
+ the reflection guessing mechanism (very much like the
+ <literal>targetEntity</literal> attribute available on
+ associations.</para>
+
+ <programlisting> @Embedded
+ <emphasis role="bold">@Target(OwnerImpl.class)</emphasis>
+ public Owner getOwner() {
+ return owner;
+ }</programlisting>
+
+ <para></para>
+ </sect3>
+
+ <sect3>
+ <title>Optimistic lock</title>
+
+ <para>It is sometimes useful to avoid increasing the version number
+ even if a given property is dirty (particularly collections). You can
+ do that by annotating the property (or collection) with
+ <literal>@OptimisticLock(excluded=true)</literal>.</para>
+
+ <para>More formally, specifies that updates to this property do not
+ require acquisition of the optimistic lock.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-hibspec-inheritance" revision="3">
+ <title>Inheritance</title>
+
+ <para>SINGLE_TABLE is a very powerful strategy but sometimes, and
+ especially for legacy systems, you cannot add an additional
+ discriminator column. For that purpose Hibernate has introduced the
+ notion of discriminator formula:
+ <literal>@DiscriminatorFormula</literal> is a replacement of
+ <literal>@DiscriminatorColumn</literal> and use a SQL fragment as a
+ formula for discriminator resolution (no need to have a dedicated
+ column).</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@DiscriminatorFormula("case when forest_type is null then 0 else forest_type end")</emphasis>
+public class Forest { ... }</programlisting>
+
+ <para>By default, when querying the top entities, Hibernate does not put
+ a restriction clause on the discriminator column. This can be
+ inconvenient if this column contains values not mapped in your hierarchy
+ (through <literal>@DiscriminatorValue</literal>). To work around that
+ you can use <literal>@ForceDiscriminator</literal> (at the class level,
+ next to <literal>@DiscriminatorColumn</literal>). Hibernate will then
+ list the available values when loading the entities.</para>
+
+ <para>You can define the foreign key name generated by Hibernate for
+ subclass tables in the JOINED inheritance strategy.</para>
+
+ <programlisting>@Entity
+ at Inheritance(strategy = InheritanceType.JOINED)
+public abstract class File { ... }
+
+ at Entity
+ at ForeignKey(name = "FK_DOCU_FILE")
+public class Document extends File {</programlisting>
+
+ <para>The foreign key from the <literal>Document</literal> table to the
+ <literal>File</literal> table will be named
+ <literal>FK_DOCU_FILE</literal>.</para>
+ </sect2>
+
+ <sect2 id="entity-hibspec-singleassoc">
+ <title>Single Association related annotations</title>
+
+ <para>By default, when Hibernate cannot resolve the association because
+ the expected associated element is not in database (wrong id on the
+ association column), an exception is raised by Hibernate. This might be
+ inconvenient for lecacy and badly maintained schemas. You can ask
+ Hibernate to ignore such elements instead of raising an exception using
+ the <literal>@NotFound</literal> annotation. This annotation can be used
+ on a <literal>@OneToOne</literal> (with FK),
+ <literal>@ManyToOne</literal>, <literal>@OneToMany</literal> or
+ <literal>@ManyToMany</literal> association.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ @NotFound(action=NotFoundAction.IGNORE)
+ public Parent getParent() { ... }
+ ...
+}</programlisting>
+
+ <para>Sometimes you want to delegate to your database the deletion of
+ cascade when a given entity is deleted.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ public Parent getParent() { ... }
+ ...
+}</programlisting>
+
+ <para>In this case Hibernate generates a cascade delete constraint at
+ the database level.</para>
+
+ <para>Foreign key constraints, while generated by Hibernate, have a
+ fairly unreadable name. You can override the constraint name by use
+ <literal>@ForeignKey</literal>.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ <emphasis role="bold">@ForeignKey(name="FK_PARENT")</emphasis>
+ public Parent getParent() { ... }
+ ...
+}
+
+alter table Child add constraint FK_PARENT foreign key (parent_id) references Parent</programlisting>
+
+ <sect3 id="entity-hibspec-singleassoc-fetching">
+ <title>Lazy options and fetching modes</title>
+
+ <para>EJB3 comes with the <literal>fetch</literal> option to define
+ lazy loading and fetching modes, however Hibernate has a much more
+ option set in this area. To fine tune the lazy loading and fetching
+ strategies, some additional annotations have been introduced:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>@LazyToOne</literal>: defines the lazyness option
+ on <literal>@ManyToOne</literal> and <literal>@OneToOne</literal>
+ associations. <literal>LazyToOneOption</literal> can be
+ <literal>PROXY</literal> (ie use a proxy based lazy loading),
+ <literal>NO_PROXY</literal> (use a bytecode enhancement based lazy
+ loading - note that build time bytecode processing is necessary)
+ and <literal>FALSE</literal> (association not lazy)</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@LazyCollection</literal>: defines the lazyness
+ option on <literal>@ManyTo</literal>Many and
+ <literal>@OneToMany</literal> associations. LazyCollectionOption
+ can be <literal>TRUE</literal> (the collection is lazy and will be
+ loaded when its state is accessed), <literal>EXTRA</literal> (the
+ collection is lazy and all operations will try to avoid the
+ collection loading, this is especially useful for huge collections
+ when loading all the elements is not necessary) and FALSE
+ (association not lazy)</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@Fetch</literal>: defines the fetching strategy
+ used to load the association. <literal>FetchMode</literal> can be
+ <literal>SELECT</literal> (a select is triggered when the
+ association needs to be loaded), <literal>SUBSELECT</literal>
+ (only available for collections, use a subselect strategy - please
+ refers to the Hibernate Reference Documentation for more
+ information) or <literal>JOIN</literal> (use a SQL JOIN to load
+ the association while loading the owner entity).
+ <literal>JOIN</literal> overrides any lazy attribute (an
+ association loaded through a <literal>JOIN</literal> strategy
+ cannot be lazy).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The Hibernate annotations overrides the EJB3 fetching
+ options.</para>
+
+ <table>
+ <title>Lazy and fetch options equivalent</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Annotations</entry>
+
+ <entry>Lazy</entry>
+
+ <entry>Fetch</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>@[One|Many]ToOne](fetch=FetchType.LAZY)</entry>
+
+ <entry>@LazyToOne(PROXY)</entry>
+
+ <entry>@Fetch(SELECT)</entry>
+ </row>
+
+ <row>
+ <entry>@[One|Many]ToOne](fetch=FetchType.EAGER)</entry>
+
+ <entry>@LazyToOne(FALSE)</entry>
+
+ <entry>@Fetch(JOIN)</entry>
+ </row>
+
+ <row>
+ <entry>@ManyTo[One|Many](fetch=FetchType.LAZY)</entry>
+
+ <entry>@LazyCollection(TRUE)</entry>
+
+ <entry>@Fetch(SELECT)</entry>
+ </row>
+
+ <row>
+ <entry>@ManyTo[One|Many](fetch=FetchType.EAGER)</entry>
+
+ <entry>@LazyCollection(FALSE)</entry>
+
+ <entry>@Fetch(JOIN)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect3>
+
+ <sect3 id="entity-hibspec-singleassoc-any">
+ <title>@Any</title>
+
+ <para>The <classname>@Any</classname> annotation defines a polymorphic
+ association to classes from multiple tables. This type of mapping
+ always requires more than one column. The first column holds the type
+ of the associated entity. The remaining columns hold the identifier.
+ It is impossible to specify a foreign key constraint for this kind of
+ association, so this is most certainly not meant as the usual way of
+ mapping (polymorphic) associations. You should use this only in very
+ special cases (eg. audit logs, user session data, etc).</para>
+
+ <para>The @Any annotation describes the column holding the metadata
+ information. To link the value of the metadata information and an
+ actual entity type, The <classname>@AnyDef</classname> and
+ <classname>@AnyDefs</classname> annotations are used.</para>
+
+ <programlisting> @Any( metaColumn = @Column( name = "property_type" ), fetch=FetchType.EAGER )
+ @AnyMetaDef(
+ idType = "integer",
+ metaType = "string",
+ metaValues = {
+ @MetaValue( value = "S", targetEntity = StringProperty.class ),
+ @MetaValue( value = "I", targetEntity = IntegerProperty.class )
+ } )
+ @JoinColumn( name = "property_id" )
+ public Property getMainProperty() {
+ return mainProperty;
+ }</programlisting>
+
+ <para><methodname>idType</methodname> represents the target entities
+ identifier property type and <methodname>metaType</methodname> the
+ metadata type (usually String).</para>
+
+ <para>Note that <classname>@AnyDef</classname> can be mutualized and
+ reused. It is recommended to place it as a package metadata in this
+ case.</para>
+
+ <programlisting>//on a package
+ at AnyMetaDef( name="property"
+ idType = "integer",
+ metaType = "string",
+ metaValues = {
+ @MetaValue( value = "S", targetEntity = StringProperty.class ),
+ @MetaValue( value = "I", targetEntity = IntegerProperty.class )
+ } )
+package org.hibernate.test.annotations.any;
+
+
+//in a class
+ @Any( metaDef="property", metaColumn = @Column( name = "property_type" ), fetch=FetchType.EAGER )
+ @JoinColumn( name = "property_id" )
+ public Property getMainProperty() {
+ return mainProperty;
+ }</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-hibspec-collection" revision="2">
+ <title>Collection related annotations</title>
+
+ <sect3 id="entity-hibspec-collection-enhance" revision="3">
+ <title>Enhance collection settings</title>
+
+ <para>It is possible to set <itemizedlist>
+ <listitem>
+ the batch size for collections using @BatchSize
+ </listitem>
+
+ <listitem>
+ the where clause, using @Where (applied on the target entity) or @WhereJoinTable (applied on the association table)
+ </listitem>
+
+ <listitem>
+ the check clause, using @Check
+ </listitem>
+
+ <listitem>
+ the SQL order by clause, using @OrderBy
+ </listitem>
+
+ <listitem>
+ the delete cascade strategy through @OnDelete(action=OnDeleteAction.CASCADE)
+ </listitem>
+
+ <listitem>
+ the collection immutability using @Immutable: if set specifies that the elements of the collection never change (a minor performance optimization in some cases)
+ </listitem>
+
+ <listitem>
+ <para>a custom collection persister (ie the persistence strategy
+ used) using <literal>@Persister</literal>: the class must
+ implement
+ <classname>org.hibernate.persister.collectionCollectionPersister</classname></para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>You can also declare a sort comparator. Use the
+ <literal>@Sort</literal> annotation. Expressing the comparator type
+ you want between unsorted, natural or custom comparator. If you want
+ to use your own comparator implementation, you'll also have to express
+ the implementation class using the <literal>comparator</literal>
+ attribute. Note that you need to use either a
+ <classname>SortedSet</classname> or a <classname>SortedMap</classname>
+ interface.</para>
+
+ <programlisting> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ @Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
+ @Where(clause="1=1")
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ public SortedSet<Ticket> getTickets() {
+ return tickets;
+ }</programlisting>
+
+ <para>Please refer to the previous descriptions of these annotations
+ for more informations.</para>
+
+ <para>Foreign key constraints, while generated by Hibernate, have a
+ fairly unreadable name. You can override the constraint name by use
+ <literal>@ForeignKey</literal>. Note that this annotation has to be
+ placed on the owning side of the relationship,
+ <literal>inverseName</literal> referencing to the other side
+ constraint.</para>
+
+ <programlisting>@Entity
+public class Woman {
+ ...
+ @ManyToMany(cascade = {CascadeType.ALL})
+ <emphasis role="bold">@ForeignKey(name = "TO_WOMAN_FK", inverseName = "TO_MAN_FK")</emphasis>
+ public Set<Man> getMens() {
+ return mens;
+ }
+}
+
+alter table Man_Woman add constraint TO_WOMAN_FK foreign key (woman_id) references Woman
+alter table Man_Woman add constraint TO_MAN_FK foreign key (man_id) references Man</programlisting>
+ </sect3>
+
+ <sect3 id="entity-hibspec-collection-extratype" revision="1">
+ <title>Extra collection types</title>
+
+ <sect4>
+ <title>List</title>
+
+ <para>Beyond EJB3, Hibernate Annotations supports true
+ <classname>List</classname> and <classname>Array</classname>. Map
+ your collection the same way as usual and add the
+ @<literal>IndexColumn</literal>. This annotation allows you to
+ describe the column that will hold the index. You can also declare
+ the index value in DB that represent the first element (aka as base
+ index). The usual value is <literal>0</literal> or
+ <literal>1</literal>.</para>
+
+ <programlisting>@OneToMany(cascade = CascadeType.ALL)
+ at IndexColumn(name = "drawer_position", base=1)
+public List<Drawer> getDrawers() {
+ return drawers;
+}</programlisting>
+
+ <note>
+ <para>If you forgot to set <literal>@IndexColumn</literal>, the
+ bag semantic is applied. If you want the bag semantic without the
+ limitations of it, consider using
+ <literal>@CollectionId</literal>.</para>
+ </note>
+ </sect4>
+
+ <sect4 id="entity-hibspec-collection-extratype-map" revision="1">
+ <title>Map</title>
+
+ <para>Hibernate Annotations also supports true Map mappings, if
+ <literal>@javax.persistence.MapKey</literal> is not set, hibernate
+ will map the key element or embeddable object in its/their own
+ columns. To override the default columns, you can use
+ <literal>@org.hibernate.annotations.MapKey</literal> if your key is
+ a basic type (defaulted to <literal>mapkey</literal>) or an
+ embeddable object, or you can use
+ <literal>@org.hibernate.annotations.MapKeyManyToMany</literal> if
+ your key is an entity.</para>
+
+ <para>Both <literal>@org.hibernate.annotations.MapKey</literal> and
+ <literal>@org.hibernate.annotations.MapKeyManyToMany</literal>
+ allows you to override the target element to be used. This is
+ especially useful if your collection does not use generics (or if
+ you use interfaces).</para>
+
+ <programlisting> @CollectionOfElements(targetElement = SizeImpl.class)
+ @MapKeyManyToMany(<emphasis role="bold">targetEntity = LuggageImpl.class</emphasis>)
+ private Map<Luggage, Size> sizePerLuggage = new HashMap<Luggage, Size>();</programlisting>
+
+ <para></para>
+ </sect4>
+
+ <sect4 id="entity-hibspec-collection-extratype-indexbidir"
+ revision="2">
+ <title>Bidirectional association with indexed collections</title>
+
+ <para>A bidirectional association where one end is an indexed
+ collection (ie. represented as a <literal>@IndexColumn</literal>,
+ <literal>@org.hibernate.annotations.MapKey</literal> or
+ <classname>@org.hibernate.annotations.MapKeyManyToMany</classname>)
+ requires special consideration. If a property on the associated
+ class explicitly maps the indexed value, the use of
+ <methodname>mappedBy</methodname> is permitted:</para>
+
+ <programlisting>@Entity
+public class Parent {
+ @OneToMany(mappedBy="parent")
+ @org.hibernate.annotations.IndexColumn(name="order")
+ private List<Child> children;
+ ...
+}
+
+ at Entity
+public class Child {
+ ...
+ //the index column is mapped as a property in the associated entity
+ @Column(name="order")
+ private int order;
+
+ @ManyToOne
+ @JoinColumn(name="parent_id", nullable=false)
+ private Parent parent;
+ ...
+}</programlisting>
+
+ <para>But, if there is no such property on the child class, we can't
+ think of the association as truly bidirectional (there is
+ information available at one end of the association that is not
+ available at the other end: the index). In this case, we can't map
+ the collection as <literal>mappedBy</literal>. Instead, we could use
+ the following mapping:</para>
+
+ <programlisting>@Entity
+public class Parent {
+ @OneToMany
+ @org.hibernate.annotations.IndexColumn(name="order")
+ @JoinColumn(name="parent_id", nullable=false)
+ private List<Child> children;
+ ...
+}
+
+ at Entity
+public class Child {
+ ...
+ @ManyToOne
+ @JoinColumn(name="parent_id", insertable=false, updatable=false, nullable=false)
+ private Parent parent;
+ ...
+}</programlisting>
+
+ <para>Note that in this mapping, the collection-valued end of the
+ association is responsible for updating the foreign key.</para>
+ </sect4>
+
+ <sect4>
+ <title>Bag with primary key</title>
+
+ <para>Another interesting feature is the ability to define a
+ surrogate primary key to a bag collection. This remove pretty much
+ all of the drawbacks of bags: update and removal are efficient, more
+ than one <literal>EAGER</literal> bag per query or per entity. This
+ primary key will be contained in a additional column of your
+ collection table but will not be visible to the Java application.
+ @CollectionId is used to mark a collection as id bag, it also allow
+ to override the primary key column(s), the primary key type and the
+ generator strategy. The strategy can be <literal>identity</literal>,
+ or any defined generator name of your application.</para>
+
+ <programlisting>@Entity
+ at TableGenerator(name="ids_generator", table="IDS")
+public class Passport {
+ ...
+
+ @ManyToMany(cascade = CascadeType.ALL)
+ @JoinTable(name="PASSPORT_VISASTAMP")
+ <emphasis role="bold">@CollectionId(
+ columns = @Column(name="COLLECTION_ID"),
+ type=@Type(type="long"),
+ generator = "ids_generator"
+ )</emphasis>
+ private Collection<Stamp> visaStamp = new ArrayList();
+ ...
+}</programlisting>
+ </sect4>
+
+ <sect4>
+ <title>Collection of element or composite elements</title>
+
+ <para>Hibernate Annotations also supports collections of core types
+ (Integer, String, Enums, ...), collections of embeddable objects and
+ even arrays of primitive types. This is known as collection of
+ elements.</para>
+
+ <para>A collection of elements has to be annotated as
+ <literal>@CollectionOfElements</literal> (as a replacement of
+ <literal>@OneToMany</literal>) To define the collection table, the
+ <literal>@JoinTable</literal> annotation is used on the association
+ property, <literal>joinColumns</literal> defines the join columns
+ between the entity primary table and the collection table
+ (inverseJoincolumn is useless and should be left empty). For
+ collection of core types or array of primitive types, you can
+ override the element column definition using a
+ <literal>@Column</literal> on the association property. You can also
+ override the columns of a collection of embeddable object using
+ <literal>@AttributeOverride</literal>. To reach the collection
+ element, you need to append "element" to the attribute override name
+ (eg "element" for core types, or "element.serial" for the serial
+ property of an embeddable element). To reach the index/key of a
+ collection, append "key" instead.</para>
+
+ <programlisting>@Entity
+public class Boy {
+ private Integer id;
+ private Set<String> nickNames = new HashSet<String>();
+ private int[] favoriteNumbers;
+ private Set<Toy> favoriteToys = new HashSet<Toy>();
+ private Set<Character> characters = new HashSet<Character>();
+
+ @Id @GeneratedValue
+ public Integer getId() {
+ return id;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ public Set<String></emphasis> getNickNames() {
+ return nickNames;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ @JoinTable(
+ table=@Table(name="BoyFavoriteNumbers"),
+ joinColumns = @JoinColumn(name="BoyId")
+ )
+ @Column(name="favoriteNumber", nullable=false)</emphasis>
+ @IndexColumn(name="nbr_index")
+ public int[] getFavoriteNumbers() {
+ return favoriteNumbers;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ @AttributeOverride( name="element.serial", column=@Column(name="serial_nbr") )</emphasis>
+ public Set<Toy> getFavoriteToys() {
+ return favoriteToys;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ public Set<Character></emphasis> getCharacters() {
+ return characters;
+ }
+ ...
+}
+
+public enum Character {
+ GENTLE,
+ NORMAL,
+ AGGRESSIVE,
+ ATTENTIVE,
+ VIOLENT,
+ CRAFTY
+}
+
+ at Embeddable
+public class Toy {
+ public String name;
+ public String serial;
+ public Boy owner;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSerial() {
+ return serial;
+ }
+
+ public void setSerial(String serial) {
+ this.serial = serial;
+ }
+
+ <emphasis role="bold">@Parent</emphasis>
+ public Boy getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Boy owner) {
+ this.owner = owner;
+ }
+
+ public boolean equals(Object o) {
+ if ( this == o ) return true;
+ if ( o == null || getClass() != o.getClass() ) return false;
+
+ final Toy toy = (Toy) o;
+
+ if ( !name.equals( toy.name ) ) return false;
+ if ( !serial.equals( toy.serial ) ) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = name.hashCode();
+ result = 29 * result + serial.hashCode();
+ return result;
+ }
+}</programlisting>
+
+ <para>On a collection of embeddable objects, the embeddable object
+ can have a property annotated with <literal>@Parent</literal>. This
+ property will then point back to the entity containing the
+ collection.</para>
+
+ <note>
+ <para>Previous versions of Hibernate Annotations used the
+ <literal>@OneToMany</literal> to mark a collection of elements.
+ Due to semantic inconsistencies, we've introduced the annotation
+ <literal>@CollectionOfElements</literal>. Marking collections of
+ elements the old way still work but is considered deprecated and
+ is going to be unsupported in future releases</para>
+ </note>
+ </sect4>
+
+ <sect4>
+ <title>@ManyToAny</title>
+
+ <para><classname>@ManyToAny</classname> allows polymorphic
+ associations to classes from multiple tables. This type of mapping
+ always requires more than one column. The first column holds the
+ type of the associated entity. The remaining columns hold the
+ identifier. It is impossible to specify a foreign key constraint for
+ this kind of association, so this is most certainly not meant as the
+ usual way of mapping (polymorphic) associations. You should use this
+ only in very special cases (eg. audit logs, user session data,
+ etc).</para>
+
+ <programlisting> @ManyToAny(
+ metaColumn = @Column( name = "property_type" ) )
+ @AnyMetaDef(
+ idType = "integer",
+ metaType = "string",
+ metaValues = {
+ @MetaValue( value = "S", targetEntity = StringProperty.class ),
+ @MetaValue( value = "I", targetEntity = IntegerProperty.class ) } )
+ @Cascade( { org.hibernate.annotations.CascadeType.ALL } )
+ @JoinTable( name = "obj_properties", joinColumns = @JoinColumn( name = "obj_id" ),
+ inverseJoinColumns = @JoinColumn( name = "property_id" ) )
+ public List<Property> getGeneralProperties() {</programlisting>
+
+ <para>Like <classname>@Any</classname>,
+ <classname>@ManyToAny</classname> can use named
+ <classname>@AnyDef</classname>s, see <xref
+ linkend="entity-hibspec-singleassoc-any" /> for more info.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-hibspec-cascade" xreflabel="Cascade">
+ <title>Cascade</title>
+
+ <para>Hibernate offers more operations than the Java Persistence
+ specification. You can use the <literal>@Cascade</literal> annotation to
+ cascade the following operations:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>PERSIST</para>
+ </listitem>
+
+ <listitem>
+ <para>MERGE</para>
+ </listitem>
+
+ <listitem>
+ <para>REMOVE</para>
+ </listitem>
+
+ <listitem>
+ <para>REFRESH</para>
+ </listitem>
+
+ <listitem>
+ <para>DELETE</para>
+ </listitem>
+
+ <listitem>
+ <para>SAVE_UPDATE</para>
+ </listitem>
+
+ <listitem>
+ <para>REPLICATE</para>
+ </listitem>
+
+ <listitem>
+ <para>DELETE_ORPHAN</para>
+ </listitem>
+
+ <listitem>
+ <para>LOCK</para>
+ </listitem>
+
+ <listitem>
+ <para>EVICT</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>This is especially useful for <literal>SAVE_UPDATE</literal>
+ (which is the operation cascaded at flush time if you use plain
+ Hibernate Annotations - Hibernate EntityManager cascade
+ <literal>PERSIST</literal> at flush time as per the specification).
+ DELETE_ORPHAN applies only to <literal>@OneToMany</literal>
+ associations, and indicates that the
+ <methodname>delete()/remove()</methodname> operation should be applied
+ to any child object that is removed from the association. In other
+ words, if a child is dereferenced by a persistent parent and if
+ <literal>DELETE_ORPHAN</literal> is used, the "orphaned" child is
+ deleted.</para>
+
+ <programlisting>@OneToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE} <emphasis
+ role="bold">)
+ at Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE,
+ org.hibernate.annotations.CascadeType.DELETE_ORPHAN})</emphasis>
+public Collection<Employer> getEmployers()</programlisting>
+
+ <para>It is recommended to use @Cascade to compliment @*To*(cascade=...)
+ as shown in the previous example.</para>
+ </sect2>
+
+ <sect2>
+ <title>Cache</title>
+
+ <para>In order to optimize your database accesses, you can activate the
+ so called second level cache of Hibernate. This cache is configurable on
+ a per entity and per collection basis.</para>
+
+ <para><literal>@org.hibernate.annotations.Cache</literal> defines the
+ caching strategy and region of a given second level cache. This
+ annotation can be applied on the root entity (not the sub entities), and
+ on the collections.</para>
+
+ <programlisting>@Entity
+ at Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class Forest { ... }</programlisting>
+
+ <programlisting> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+ public SortedSet<Ticket> getTickets() {
+ return tickets;
+ }</programlisting>
+
+ <para></para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="2 55" id="hm1" />
+
+ <area coords="3 55" id="hm2" />
+
+ <area coords="4 55" id="hm3" />
+ </areaspec>
+
+ <programlisting>@Cache(
+ CacheConcurrencyStrategy usage();
+ String region() default "";
+ String include() default "all";
+)</programlisting>
+
+ <calloutlist>
+ <callout arearefs="hm1">
+ <para>usage: the given cache concurrency strategy (NONE,
+ READ_ONLY, NONSTRICT_READ_WRITE, READ_WRITE, TRANSACTIONAL)</para>
+ </callout>
+
+ <callout arearefs="hm2">
+ <para>region (optional): the cache region (default to the fqcn of
+ the class or the fq role name of the collection)</para>
+ </callout>
+
+ <callout arearefs="hm3">
+ <para><literal>include</literal> (optional): all to include all
+ properties, non-lazy to only include non lazy properties (default
+ all).</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+ </sect2>
+
+ <sect2 id="entity-hibspec-filters">
+ <title>Filters</title>
+
+ <para>Hibernate has the ability to apply arbitrary filters on top of
+ your data. Those filters are applied at runtime on a given session.
+ First, you need to define them.</para>
+
+ <para><literal>@org.hibernate.annotations.FilterDef</literal> or
+ <literal>@FilterDefs</literal> define filter definition(s) used by
+ filter(s) using the same name. A filter definition has a name() and an
+ array of parameters(). A parameter will allow you to adjust the behavior
+ of the filter at runtime. Each parameter is defined by a
+ <literal>@ParamDef</literal> which has a name and a type. You can also
+ define a defaultCondition() parameter for a given
+ <literal>@FilterDef</literal> to set the default condition to use when
+ none are defined in each individual <literal>@Filter</literal>. A
+ <literal>@FilterDef</literal>(s) can be defined at the class or package
+ level.</para>
+
+ <para>We now need to define the SQL filter clause applied to either the
+ entity load or the collection load. <literal>@Filter</literal> is used
+ and placed either on the entity or the collection element</para>
+
+ <para><programlisting>@Entity
+ at FilterDef(name="minLength", parameters=@ParamDef( name="minLength", type="integer" ) )
+ at Filters( {
+ @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length"),
+ @Filter(name="minLength", condition=":minLength <= length")
+} )
+public class Forest { ... }</programlisting></para>
+
+ <para>When the collection use an association table as a relational
+ representation, you might want to apply the filter condition to the
+ association table itself or to the target entity table. To apply the
+ constraint on the target entity, use the regular
+ <literal>@Filter</literal> annotation. However, if you wan to target the
+ association table, use the <literal>@FilterJoinTable</literal>
+ annotation.</para>
+
+ <programlisting> @OneToMany
+ @JoinTable
+ //filter on the target entity table
+ @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length")
+ //filter on the association table
+ @FilterJoinTable(name="security", condition=":userlevel >= requredLevel")
+ public Set<Forest> getForests() { ... }</programlisting>
+ </sect2>
+
+ <sect2 id="entity-hibspec-query">
+ <title>Queries</title>
+
+ <para>Since Hibernate has more features on named queries than the one
+ defined in the EJB3 specification,
+ <literal>@org.hibernate.annotations.NamedQuery</literal>,
+ <literal>@org.hibernate.annotations.NamedQueries</literal>,
+ <literal>@org.hibernate.annotations.NamedNativeQuery</literal> and
+ <literal>@org.hibernate.annotations.NamedNativeQueries</literal> have
+ been introduced. They add some attributes to the standard version and
+ can be used as a replacement:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>flushMode: define the query flush mode (Always, Auto, Commit
+ or Manual)</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheable: whether the query should be cached or not</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheRegion: cache region used if the query is cached</para>
+ </listitem>
+
+ <listitem>
+ <para>fetchSize: JDBC statement fetch size for this query</para>
+ </listitem>
+
+ <listitem>
+ <para>timeout: query time out</para>
+ </listitem>
+
+ <listitem>
+ <para>callable: for native queries only, to be set to true for
+ stored procedures</para>
+ </listitem>
+
+ <listitem>
+ <para>comment: if comments are activated, the comment seen when the
+ query is sent to the database.</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheMode: Cache interaction mode (get, ignore, normal, put or
+ refresh)</para>
+ </listitem>
+
+ <listitem>
+ <para>readOnly: whether or not the elements retrievent from the
+ query are in read only mode.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Those hints can be set in a standard
+ <literal>@javax.persistence.NamedQuery</literal> annotations through the
+ detyped <literal>@QueryHint</literal>. Another key advantage is the
+ ability to set those annotations at a package level.</para>
+ </sect2>
+
+ <sect2 id="entity-hibspec-customsql" revision="1">
+ <title>Custom SQL for CRUD operations</title>
+
+ <para>Hibernate gives you the ability to override every single SQL
+ statement generated. We have seen native SQL query usage already, but
+ you can also override the SQL statement used to load or change the state
+ of entities.</para>
+
+ <programlisting>@Entity
+ at Table(name="CHAOS")
+<emphasis role="bold">@SQLInsert( sql="INSERT INTO CHAOS(size, name, nickname, id) VALUES(?,upper(?),?,?)")
+ at SQLUpdate( sql="UPDATE CHAOS SET size = ?, name = upper(?), nickname = ? WHERE id = ?")
+ at SQLDelete( sql="DELETE CHAOS WHERE id = ?")
+ at SQLDeleteAll( sql="DELETE CHAOS")
+</emphasis><emphasis role="bold">@Loader(namedQuery = "chaos")</emphasis>
+ at NamedNativeQuery(name="chaos", query="select id, size, name, lower( nickname ) as nickname from CHAOS where id= ?", resultClass = Chaos.class)
+public class Chaos {
+ @Id
+ private Long id;
+ private Long size;
+ private String name;
+ private String nickname;</programlisting>
+
+ <para><literal>@SQLInsert</literal>, <literal>@SQLUpdate</literal>,
+ <literal>@SQLDelete</literal>, <literal>@SQLDeleteAll</literal>
+ respectively override the INSERT statement, UPDATE statement, DELETE
+ statement, DELETE statement to remove all entities.</para>
+
+ <para>If you expect to call a store procedure, be sure to set the
+ <literal>callable</literal> attribute to true
+ (<literal>@SQLInsert(callable=true, ...)</literal>).</para>
+
+ <para>To check that the execution happens correctly, Hibernate allows
+ you to define one of those three strategies:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>NONE: no check is performed: the store procedure is expected
+ to fail upon issues</para>
+ </listitem>
+
+ <listitem>
+ <para>COUNT: use of rowcount to check that the update is
+ successful</para>
+ </listitem>
+
+ <listitem>
+ <para>PARAM: like COUNT but using an output parameter rather that
+ the standard mechanism</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>To define the result check style, use the <literal>check</literal>
+ parameter (<literal>@SQLUpdate(check=ResultCheckStyle.COUNT,
+ ...)</literal>).</para>
+
+ <para>You can also override the SQL load statement by a native SQL query
+ or a HQL query. You just have to refer to a named query with the
+ <literal><literal>@Loader</literal></literal> annotation.</para>
+
+ <para>You can use the exact same set of annotations to override the
+ collection related statements.</para>
+
+ <programlisting>@OneToMany
+ at JoinColumn(name="chaos_fk")
+<emphasis role="bold">@SQLInsert( sql="UPDATE CASIMIR_PARTICULE SET chaos_fk = ? where id = ?")
+ at SQLDelete( sql="UPDATE CASIMIR_PARTICULE SET chaos_fk = null where id = ?")</emphasis>
+private Set<CasimirParticle> particles = new HashSet<CasimirParticle>();</programlisting>
+
+ <para>The parameters order is important and is defined by the order
+ Hibernate handle properties. You can see the expected order by enabling
+ debug logging for the <literal>org.hibernate.persister.entity</literal>
+ level. With this level enabled Hibernate will print out the static SQL
+ that is used to create, update, delete etc. entities. (To see the
+ expected sequence, remember to not include your custom SQL through
+ annotations as that will override the Hibernate generated static
+ sql.)</para>
+
+ <para>Overriding SQL statements for secondary tables is also possible
+ using <literal>@org.hibernate.annotations.Table</literal> and either (or
+ all) attributes <literal>sqlInsert</literal>,
+ <literal>sqlUpdate</literal>, <literal>sqlDelete</literal>:</para>
+
+ <programlisting>@Entity
+ at SecondaryTables({
+ @SecondaryTable(name = "`Cat nbr1`"),
+ @SecondaryTable(name = "Cat2"})
+ at org.hibernate.annotations.Tables( {
+ @Table(appliesTo = "Cat", comment = "My cat table" ),
+ @Table(appliesTo = "Cat2", foreignKey = @ForeignKey(name="FK_CAT2_CAT"), fetch = FetchMode.SELECT,
+ <emphasis role="bold">sqlInsert=@SQLInsert(sql="insert into Cat2(storyPart2, id) values(upper(?), ?)") )</emphasis>
+} )
+public class Cat implements Serializable {</programlisting>
+
+ <para>The previous example also show that you can give a comment to a
+ given table (promary or secondary): This comment will be used for DDL
+ generation.</para>
+ </sect2>
+
+ <sect2>
+ <title>Tuplizer</title>
+
+ <para><classname>org.hibernate.tuple.Tuplizer</classname>, and its
+ sub-interfaces, are responsible for managing a particular representation
+ of a piece of data, given that representation's
+ <literal>org.hibernate.EntityMode</literal>. If a given piece of data is
+ thought of as a data structure, then a tuplizer is the thing which knows
+ how to create such a data structure and how to extract values from and
+ inject values into such a data structure. For example, for the POJO
+ entity mode, the correpsonding tuplizer knows how create the POJO
+ through its constructor and how to access the POJO properties using the
+ defined property accessors. There are two high-level types of Tuplizers,
+ represented by the
+ <classname>org.hibernate.tuple.EntityTuplizer</classname> and
+ <classname>org.hibernate.tuple.ComponentTuplizer</classname> interfaces.
+ EntityTuplizers are responsible for managing the above mentioned
+ contracts in regards to entities, while
+ <classname>ComponentTuplizers</classname> do the same for components.
+ Check the Hibernate reference documentation for more information.</para>
+
+ <para>To define tuplixer in annotations, simply use the
+ <literal>@Tuplizer</literal> annotation on the according element</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@Tuplizer(impl = DynamicEntityTuplizer.class)</emphasis>
+public interface Cuisine {
+ @Id
+ @GeneratedValue
+ public Long getId();
+ public void setId(Long id);
+
+ public String getName();
+ public void setName(String name);
+
+ <emphasis role="bold">@Tuplizer(impl = DynamicComponentTuplizer.class)</emphasis>
+ public Country getCountry();
+ public void setCountry(Country country);
+
+
+}</programlisting>
+ </sect2>
+ </sect1>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/setup.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/setup.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/setup.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter>
+ <title id="setup" revision="1">Setting up an annotations project</title>
+
+ <section id="setup-requirements" revision="2">
+ <title>Requirements</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="http://www.hibernate.org/6.html">Download</ulink>
+ and unpack the Hibernate Annotations distribution from the Hibernate
+ website.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>This release requires Hibernate Core 3.3 and
+ above.</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>This release is known to work on Hibernate Core 3.3.0.SP1</para>
+ </listitem>
+
+ <listitem>
+ <para>Make sure you have JDK 5.0 installed or above. You can of course
+ continue using XDoclet and get some of the benefits of
+ annotation-based metadata with older JDK versions. Note that this
+ document only describes JDK 5.0 annotations and you have to refer to
+ the XDoclet documentation for more information.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="setup-configuration" revision="2">
+ <title>Configuration</title>
+
+ <para>First, set up your classpath (after you have created a new project
+ in your favorite IDE): <itemizedlist>
+ <listitem>
+ <para>Copy all Hibernate3 core and required 3rd party library files
+ (see lib/README.txt in Hibernate).</para>
+ </listitem>
+
+ <listitem>
+ <para>Copy <filename>hibernate-annotations.jar</filename>,
+ <filename>lib/hibernate-comons-annotations.jar</filename> and
+ <filename>lib/ejb3-persistence.jar</filename> from the Hibernate
+ Annotations distribution to your classpath as well.</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>If you wish to use <ulink
+ url="http://validator.hibernate.org">Hibernate Validator</ulink>, download
+ it from the Hibernate website and add
+ <filename>hibernate-validator.jar</filename> in your classpath.</para>
+
+ <para>If you wish to use <ulink
+ url="http://search.hibernate.org">Hibernate Search</ulink>, download it
+ from the Hibernate website and add
+ <filename>hibernate-search.jar</filename> and
+ <filename>lucene-core-x.y.z.jar</filename> in your classpath.</para>
+
+ <para>We also recommend a small wrapper class to startup Hibernate in a
+ static initializer block, known as <classname>HibernateUtil</classname>.
+ You might have seen this class in various forms in other areas of the
+ Hibernate documentation. For Annotation support you have to enhance this
+ helper class as follows: <programlisting>package hello;
+
+import org.hibernate.*;
+import org.hibernate.cfg.*;
+import test.*;
+import test.animals.Dog;
+
+public class HibernateUtil {
+
+private static final SessionFactory sessionFactory;
+
+ static {
+ try {
+
+ sessionFactory = new <emphasis role="bold">AnnotationConfiguration()</emphasis>
+ configure().buildSessionFactory();
+ } catch (Throwable ex) {
+ // Log exception!
+ throw new ExceptionInInitializerError(ex);
+ }
+ }
+
+ public static Session getSession()
+ throws HibernateException {
+ return sessionFactory.openSession();
+ }
+}
+ </programlisting></para>
+
+ <para>Interesting here is the use of
+ <classname>AnnotationConfiguration</classname>. The packages and annotated
+ classes are declared in your regular XML configuration file (usually
+ <filename>hibernate.cfg.xml</filename>). Here is the equivalent of the
+ above declaration:</para>
+
+ <programlisting><!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+ <hibernate-configuration>
+ <session-factory>
+ <emphasis role="bold"><mapping package="test.animals"/>
+ <mapping class="test.Flight"/>
+ <mapping class="test.Sky"/>
+ <mapping class="test.Person"/>
+ <mapping class="test.animals.Dog"/></emphasis>
+<emphasis role="bold"> <mapping resource="test/animals/orm.xml"/></emphasis>
+ </session-factory>
+ </hibernate-configuration>
+ </programlisting>
+
+ <para>Note that you can mix the hbm.xml use and the new annotation one.
+ The resource element can be either an hbm file or an EJB3 XML deployment
+ descriptor. The distinction is transparent for your configuration
+ process.</para>
+
+ <para>Alternatively, you can define the annotated classes and packages
+ using the programmatic API</para>
+
+ <programlisting> sessionFactory = new <emphasis role="bold">AnnotationConfiguration()
+ .addPackage("test.animals") //the fully qualified package name
+ .addAnnotatedClass(Flight.class)
+ .addAnnotatedClass(Sky.class)
+ .addAnnotatedClass(Person.class)
+ .addAnnotatedClass(Dog.class)</emphasis>
+<emphasis role="bold"> .addResource("test/animals/orm.xml")</emphasis>
+ configure()..buildSessionFactory();</programlisting>
+
+ <para>You can also use the Hibernate EntityManager which has its own
+ configuration mechanism. Please refer to this project documentation for
+ more details.</para>
+
+ <para>There is no other difference in the way you use Hibernate APIs with
+ annotations, except for this startup routine change or in the
+ configuration file. You can use your favorite configuration method for
+ other properties ( <filename>hibernate.properties</filename>,
+ <filename>hibernate.cfg.xml</filename>, programmatic APIs, etc). You can
+ even mix annotated persistent classes and classic
+ <filename>hbm.cfg.xml</filename> declarations with the same
+ <classname>SessionFactory</classname>. You can however not declare a class
+ several times (whether annotated or through hbm.xml). You cannot mix
+ configuration strategies (hbm vs annotations) in a mapped entity hierarchy
+ either.</para>
+
+ <para>To ease the migration process from hbm files to annotations, the
+ configuration mechanism detects the mapping duplication between
+ annotations and hbm files. HBM files are then prioritized over annotated
+ metadata on a class to class basis. You can change the priority using
+ <literal>hibernate.mapping.precedence</literal> property. The default is
+ <literal>hbm, class</literal>, changing it to <literal>class,
+ hbm</literal> will prioritize the annotated classes over hbm files when a
+ conflict occurs.</para>
+ </section>
+
+ <section>
+ <title id="setup-properties">Properties</title>
+
+ <para>Asides from the Hibernate core properties, Hibernate Annotations
+ reacts to the following one</para>
+ </section>
+
+ <section>
+ <title>Logging</title>
+
+ <para>Hibernate Annotations utilizes <ulink
+ url="http://www.slf4j.org/">Simple Logging Facade for Java</ulink> (SLF4J)
+ in order to log various system events. SLF4J can direct your logging
+ output to several logging frameworks (NOP, Simple, log4j version 1.2, JDK
+ 1.4 logging, JCL or logback) depending on your chosen binding. In order to
+ setup logging properly you will need <filename>slf4j-api.jar</filename> in
+ your classpath together with the jar file for your preferred binding -
+ <filename>slf4j-log4j12.jar</filename> in the case of Log4J. See the SLF4J
+ <ulink type=""
+ url="http://www.slf4j.org/manual.html">documentation</ulink> for more
+ detail.</para>
+
+ <para>The logging categories interesting for Hibernate Annotations
+ are:</para>
+
+ <table>
+ <title>Hibernate Annotations Log Categories</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry align="center">Category</entry>
+
+ <entry align="center">Function</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><emphasis>org.hibernate.cfg</emphasis></entry>
+
+ <entry>Log all configuration related events (not only
+ annotations).</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>For further category configuration refer to the <ulink
+ url="http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#configuration-logging">Logging</ulink>
+ in the Hibernate Core documentation.</para>
+ </section>
+</chapter>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/xml-overriding.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/xml-overriding.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/modules/xml-overriding.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,402 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="xml-overriding" label="Overriding metadata through XML">
+ <title>Overriding metadata through XML</title>
+
+ <para>The primary target for metadata in EJB3 is annotations, but the EJB3
+ specification provides a way to override or replace the annotation defined
+ metadata through an XML deployment descriptor. In the current release only
+ pure EJB3 annotations overriding are supported. If you wish to use Hibernate
+ specific features in some entities, you'll have to either use annotations or
+ fallback to hbm files. You can of course mix and match annotated entities
+ and entities describes in hbm files.</para>
+
+ <para>The unit test suite shows some additional XML file samples.</para>
+
+ <section id="xml-overriding-principles">
+ <title>Principles</title>
+
+ <para>The XML deployment descriptor structure has been designed to reflect
+ the annotations one. So if you know the annotations structure, using the
+ XML schema will be straightforward for you.</para>
+
+ <para>You can define one ot more XML files describing your metadata, these
+ files will be merged by the overriding engine.</para>
+
+ <section>
+ <title>Global level metadata</title>
+
+ <para>You can define global level metadata available for all XML files.
+ You must not define these metadata more than once per deployment.</para>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <persistence-unit-metadata>
+ <xml-mapping-metadata-complete/>
+ <persistence-unit-defaults>
+ <schema>myschema</schema>
+ <catalog>mycatalog</catalog>
+ <cascade-persist/>
+ </persistence-unit-defaults>
+ </persistence-unit-metadata></programlisting>
+
+ <para><literal>xml-mapping-metadata-complete</literal> means that all
+ entity, mapped-superclasses and embeddable metadata should be picked up
+ from XML (ie ignore annotations).</para>
+
+ <para><literal>schema / catalog</literal> will override all default
+ definitions of schema and catalog in the metadata (both XML and
+ annotations).</para>
+
+ <para><literal>cascade-persist</literal> means that all associations
+ have PERSIST as a cascade type. We recommend you to not use this
+ feature.</para>
+ </section>
+
+ <section id="xml-overriding-principles-entity" revision="1">
+ <title>Entity level metadata</title>
+
+ <para>You can either define or override metadata informations on a given
+ entity.</para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="3 85" id="aa1" />
+
+ <area coords="9 85" id="aa2" />
+
+ <area coords="10 85" id="aa3" />
+
+ <area coords="11 85" id="aa4" />
+
+ <area coords="17 85" id="aa5" />
+
+ <area coords="23 85" id="aa6" />
+
+ <area coords="24 85" id="aa7" />
+
+ <area coords="25 85" id="aa8" />
+
+ <area coords="26 85" id="aa9" />
+
+ <area coords="31 85" id="aa10" />
+ </areaspec>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <package>org.hibernate.test.annotations.reflection</package>
+ <entity class="Administration" access="PROPERTY" metadata-complete="true">
+ <table name="tbl_admin">
+ <unique-constraint>
+ <column-name>firstname</column-name>
+ <column-name>lastname</column-name>
+ </unique-constraint>
+ </table>
+ <secondary-table name="admin2">
+ <primary-key-join-column name="admin_id" referenced-column-name="id"/>
+ <unique-constraint>
+ <column-name>address</column-name>
+ </unique-constraint>
+ </secondary-table>
+ <id-class class="SocialSecurityNumber"/>
+ <inheritance strategy="JOINED"/>
+ <sequence-generator name="seqhilo" sequence-name="seqhilo"/>
+ <table-generator name="table" table="tablehilo"/>
+ ...
+ </entity>
+
+ <entity class="PostalAdministration">
+ <primary-key-join-column name="id"/>
+ ...
+ </entity>
+</entity-mappings></programlisting>
+
+ <calloutlist>
+ <callout arearefs="aa1">
+ <para><literal>entity-mappings</literal>: entity-mappings is the
+ root element for all XML files. You must declare the xml schema,
+ the schema file is included in the hibernate-annotations.jar file,
+ no internet access will be processed by Hibernate
+ Annotations.</para>
+ </callout>
+
+ <callout arearefs="aa2">
+ <para><literal>package</literal> (optional): default package used
+ for all non qualified class names in the given deployment
+ descriptor file.</para>
+ </callout>
+
+ <callout arearefs="aa3">
+ <para><literal>entity</literal>: desribes an entity.</para>
+
+ <para><literal>metadata-complete</literal> defines whether the
+ metadata description for this element is complete or not (in other
+ words, if annotations present at the class level should be
+ considered or not).</para>
+
+ <para>An entity has to have a <literal>class</literal> attribute
+ refering the java class the metadata applies on.</para>
+
+ <para>You can overrides entity name through the
+ <literal>name</literal> attribute, if none is defined and if an
+ <literal>@Entity.name</literal> is present, then it is used
+ (provided that metadata complete is not set).</para>
+
+ <para>For metadata complete (see below) element, you can define an
+ <literal>access</literal> (either <literal>FIELD</literal> or
+ <literal>PROPERTY</literal> (default)). For non medatada complete
+ element, if <literal>access</literal> is not defined, the @Id
+ position will lead position, if <literal>access</literal> is
+ defined, the value is used.</para>
+ </callout>
+
+ <callout arearefs="aa4">
+ <para><literal>table</literal>: you can declare table properties
+ (name, schema, catalog), if none is defined, the java annotation
+ is used.</para>
+
+ <para>You can define one or several unique constraints as seen in
+ the example</para>
+ </callout>
+
+ <callout arearefs="aa5">
+ <para><literal>secondary-table</literal>: defines a secondary
+ table very much like a regular table except that you can define
+ the primary key / foreign key column(s) through the
+ <literal>primary-key-join-column</literal> element. On non
+ metadata complete, annotation secondary tables are used only if
+ there is no <literal>secondary-table</literal> definition,
+ annotations are ignored otherwise.</para>
+ </callout>
+
+ <callout arearefs="aa6">
+ <para><literal>id-class</literal>: defines the id class in a
+ similar way <literal>@IdClass</literal> does</para>
+ </callout>
+
+ <callout arearefs="aa7">
+ <para><literal>inheritance</literal>: defines the inheritance
+ strategy (<literal>JOINED</literal>,
+ <literal>TABLE_PER_CLASS</literal>,
+ <literal>SINGLE_TABLE</literal>), Available only at the root
+ entity level</para>
+ </callout>
+
+ <callout arearefs="aa8">
+ <para><literal>sequence-generator</literal>: defines a sequence
+ generator</para>
+ </callout>
+
+ <callout arearefs="aa9">
+ <para><literal>table-generator</literal>: defines a table
+ generator</para>
+ </callout>
+
+ <callout arearefs="aa10">
+ <para><literal><literal>primary-key-join-column</literal></literal>:
+ defines the primary key join column for sub entities when JOINED
+ inheritance strategy is used</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="11 85" id="ab1" />
+
+ <area coords="18 85" id="ab2" />
+
+ <area coords="22 85" id="ab3" />
+
+ <area coords="28 85" id="ab4" />
+
+ <area coords="34 85" id="ab5" />
+ </areaspec>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <package>org.hibernate.test.annotations.reflection</package>
+ <entity class="Music" access="PROPERTY" metadata-complete="true">
+ <discriminator-value>Generic</discriminator-value>
+ <discriminator-column length="34"/>
+ ...
+ </entity>
+
+ <entity class="PostalAdministration">
+ <primary-key-join-column name="id"/>
+ <named-query name="adminById">
+ <query>select m from Administration m where m.id = :id</query>
+ <hint name="org.hibernate.timeout" value="200"/>
+ </named-query>
+ <named-native-query name="allAdmin" result-set-mapping="adminrs">
+ <query>select *, count(taxpayer_id) as taxPayerNumber
+ from Administration, TaxPayer
+ where taxpayer_admin_id = admin_id group by ...</query>
+ <hint name="org.hibernate.timeout" value="200"/>
+ </named-native-query>
+ <sql-result-set-mapping name="adminrs">
+ <entity-result entity-class="Administration">
+ <field-result name="name" column="fld_name"/>
+ </entity-result>
+ <column-result name="taxPayerNumber"/>
+ </sql-result-set-mapping>
+ <attribute-override name="ground">
+ <column name="fld_ground" unique="true" scale="2"/>
+ </attribute-override>
+ <association-override name="referer">
+ <join-column name="referer_id" referenced-column-name="id"/>
+ </association-override>
+ ...
+ </entity>
+</entity-mappings></programlisting>
+
+ <calloutlist>
+ <callout arearefs="ab1">
+ <para><literal>discriminator-value /
+ discriminator-column</literal>: defines the discriminator value
+ and the column holding it when the SINGLE_TABLE inheritance
+ strategy is chosen</para>
+ </callout>
+
+ <callout arearefs="ab2">
+ <para><literal>named-query</literal>: defines named queries and
+ possibly the hints associated to them. Those definitions are
+ additive to the one defined in annotations, if two definitions
+ have the same name, the XML one has priority.</para>
+ </callout>
+
+ <callout arearefs="ab3">
+ <para><literal>named-native-query</literal>: defines an named
+ native query and its sql result set mapping. Alternatively, you
+ can define the <literal>result-class</literal>. Those definitions
+ are additive to the one defined in annotations, if two definitions
+ have the same name, the XML one has priority.</para>
+ </callout>
+
+ <callout arearefs="ab4">
+ <para><literal>sql-result-set-mapping</literal>: describes the
+ result set mapping structure. You can define both entity and
+ column mappings. Those definitions are additive to the one defined
+ in annotations, if two definitions have the same name, the XML one
+ has priority</para>
+ </callout>
+
+ <callout arearefs="ab5">
+ <para><literal>attribute-override /
+ association-override</literal>: defines a column or join column
+ overriding. This overriding is additive to the one defined in
+ annotations</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+
+ <para>Same applies for <literal><embeddable></literal> and
+ <literal><mapped-superclass></literal>.</para>
+ </section>
+
+ <section>
+ <title>Property level metadata</title>
+
+ <para>You can of course defines XML overriding for properties. If
+ metadata complete is defined, then additional properties (ie at the Java
+ level) will be ignored. Otherwise, once you start overriding a property,
+ all annotations on the given property are ignored. All property level
+ metadata behave in <literal>entity/attributes</literal>,
+ <literal>mapped-superclass/attributes</literal> or
+ <literal>embeddable/attributes</literal>.</para>
+
+ <programlisting> <attributes>
+ <id name="id">
+ <column name="fld_id"/>
+ <generated-value generator="generator" strategy="SEQUENCE"/>
+ <temporal>DATE</temporal>
+ <sequence-generator name="generator" sequence-name="seq"/>
+ </id>
+ <version name="version"/>
+ <embedded name="embeddedObject">
+ <attribute-override name"subproperty">
+ <column name="my_column"/>
+ </attribute-override>
+ </embedded>
+ <basic name="status" optional="false">
+ <enumerated>STRING</enumerated>
+ </basic>
+ <basic name="serial" optional="true">
+ <column name="serialbytes"/>
+ <lob/>
+ </basic>
+ <basic name="terminusTime" fetch="LAZY">
+ <temporal>TIMESTAMP</temporal>
+ </basic>
+ </attributes></programlisting>
+
+ <para>You can override a property through <literal>id</literal>,
+ <literal>embedded-id</literal>, <literal>version</literal>,
+ <literal>embedded</literal> and <literal>basic</literal>. Each of these
+ elements can have subelements accordingly: <literal>lob</literal>,
+ <literal>temporal</literal>, <literal>enumerated</literal>,
+ <literal>column</literal>.</para>
+ </section>
+
+ <section>
+ <title>Association level metadata</title>
+
+ <para>You can define XML overriding for associations. All association
+ level metadata behave in <literal>entity/attributes</literal>,
+ <literal>mapped-superclass/attributes</literal> or
+ <literal>embeddable/attributes</literal>.</para>
+
+ <programlisting> <attributes>
+ <one-to-many name="players" fetch="EAGER">
+ <map-key name="name"/>
+ <join-column name="driver"/>
+ <join-column name="number"/>
+ </one-to-many>
+ <many-to-many name="roads" target-entity="Administration">
+ <order-by>maxSpeed</order-by>
+ <join-table name="bus_road">
+ <join-column name="driver"/>
+ <join-column name="number"/>
+ <inverse-join-column name="road_id"/>
+ <unique-constraint>
+ <column-name>driver</column-name>
+ <column-name>number</column-name>
+ </unique-constraint>
+ </join-table>
+ </many-to-many>
+ <many-to-many name="allTimeDrivers" mapped-by="drivenBuses">
+ </attributes></programlisting>
+
+ <para>You can override an association through
+ <literal>one-to-many</literal>, <literal>one-to-one</literal>,
+ <literal>many-to-one</literal>, and <literal>many-to-many</literal>.
+ Each of these elements can have subelements accordingly:
+ <literal>join-table</literal> (which can have
+ <literal>join-column</literal>s and
+ <literal>inverse-join-column</literal>s),
+ <literal><literal>join-column</literal>s</literal>,
+ <literal>map-key</literal>, and <literal>order-by</literal>.
+ <literal>mapped-by</literal> and <literal>target-entity</literal> can be
+ defined as attributes when it makes sense. Once again the structure is
+ reflects the annotations structure. You can find all semantic
+ informations in the chapter describing annotations.</para>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/fopdf.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/fopdf.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/fopdf.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,519 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL FO configuration file for the Hibernate
+ Reference Documentation. It defines a custom titlepage and
+ the parameters for the A4 sized PDF printable output.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ exclude-result-prefixes="#default">
+
+ <xsl:import href="&db_xsl_path;/fo/docbook.xsl"/>
+
+ <!--###################################################
+ Custom Title Page
+ ################################################### -->
+
+ <xsl:template name="book.titlepage.recto">
+ <fo:block>
+ <fo:table table-layout="fixed" width="175mm">
+ <fo:table-column column-width="175mm"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell text-align="center">
+ <fo:block>
+ <fo:external-graphic src="file:images/hibernate_logo_a.png"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm">
+ <xsl:value-of select="bookinfo/title"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="18pt" padding-before="10mm">
+ <xsl:value-of select="bookinfo/subtitle"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="12pt" padding="10mm">
+ Version:
+ <xsl:value-of select="bookinfo/releaseinfo"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Prevent blank pages in output -->
+ <xsl:template name="book.titlepage.before.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.separator">
+ </xsl:template>
+
+ <!--###################################################
+ Header
+ ################################################### -->
+
+ <!-- More space in the center header for long text -->
+ <xsl:attribute-set name="header.content.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$body.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="margin-left">-5em</xsl:attribute>
+ <xsl:attribute name="margin-right">-5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Custom Footer
+ ################################################### -->
+
+ <!-- This footer prints the Hibernate version number on the left side -->
+ <xsl:template name="footer.content">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="position" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+
+ <xsl:variable name="Version">
+ <xsl:choose>
+ <xsl:when test="//releaseinfo">
+ <xsl:text>Hibernate </xsl:text>
+ <xsl:value-of select="//releaseinfo"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$sequence='blank'">
+ <xsl:choose>
+ <xsl:when test="$double.sided != 0 and $position = 'left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position = 'center'">
+ <!-- nop -->
+ </xsl:when>
+
+ <xsl:otherwise>
+ <fo:page-number/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$pageclass='titlepage'">
+ <!-- nop: other titlepage sequences have no footer -->
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--###################################################
+ Custom Toc Line
+ ################################################### -->
+
+ <!-- Improve the TOC. -->
+ <xsl:template name="toc.line">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+
+ <fo:block text-align-last="justify"
+ end-indent="{$toc.indent.width}pt"
+ last-line-end-indent="-{$toc.indent.width}pt">
+ <fo:inline keep-with-next.within-line="always">
+ <fo:basic-link internal-destination="{$id}">
+
+ <!-- Chapter titles should be bold. -->
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'chapter'">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$label != ''">
+ <xsl:copy-of select="$label"/>
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </fo:basic-link>
+ </fo:inline>
+ <fo:inline keep-together.within-line="always">
+ <xsl:text> </xsl:text>
+ <fo:leader leader-pattern="dots"
+ leader-pattern-width="3pt"
+ leader-alignment="reference-area"
+ keep-with-next.within-line="always"/>
+ <xsl:text> </xsl:text>
+ <fo:basic-link internal-destination="{$id}">
+ <fo:page-number-citation ref-id="{$id}"/>
+ </fo:basic-link>
+ </fo:inline>
+ </fo:block>
+ </xsl:template>
+
+ <!--###################################################
+ Extensions
+ ################################################### -->
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <!-- FOP provide only PDF Bookmarks at the moment -->
+ <xsl:param name="fop.extensions">1</xsl:param>
+
+ <!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+ <!-- Dot and Whitespace as separator in TOC between Label and Title-->
+ <xsl:param name="autotoc.label.separator" select="'. '"/>
+
+
+ <!--###################################################
+ Paper & Page Size
+ ################################################### -->
+
+ <!-- Paper type, no headers on blank pages, no double sided printing -->
+ <xsl:param name="paper.type" select="'A4'"/>
+ <xsl:param name="double.sided">0</xsl:param>
+ <xsl:param name="headers.on.blank.pages">0</xsl:param>
+ <xsl:param name="footers.on.blank.pages">0</xsl:param>
+
+ <!-- Space between paper border and content (chaotic stuff, don't touch) -->
+ <xsl:param name="page.margin.top">5mm</xsl:param>
+ <xsl:param name="region.before.extent">10mm</xsl:param>
+ <xsl:param name="body.margin.top">10mm</xsl:param>
+
+ <xsl:param name="body.margin.bottom">15mm</xsl:param>
+ <xsl:param name="region.after.extent">10mm</xsl:param>
+ <xsl:param name="page.margin.bottom">0mm</xsl:param>
+
+ <xsl:param name="page.margin.outer">18mm</xsl:param>
+ <xsl:param name="page.margin.inner">18mm</xsl:param>
+
+ <!-- No intendation of Titles -->
+ <xsl:param name="title.margin.left">0pc</xsl:param>
+
+ <!--###################################################
+ Fonts & Styles
+ ################################################### -->
+
+ <!-- Default Font size -->
+ <xsl:param name="body.font.master">11</xsl:param>
+
+ <!-- Line height in body text -->
+ <xsl:param name="line-height">1.4</xsl:param>
+
+ <!-- Monospaced fonts are smaller than regular text -->
+ <xsl:attribute-set name="monospace.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$monospace.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="font-size">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Tables
+ ################################################### -->
+
+ <!-- The table width should be adapted to the paper size -->
+ <xsl:param name="default.table.width">17.4cm</xsl:param>
+
+ <!-- Some padding inside tables -->
+ <xsl:attribute-set name="table.cell.padding">
+ <xsl:attribute name="padding-left">4pt</xsl:attribute>
+ <xsl:attribute name="padding-right">4pt</xsl:attribute>
+ <xsl:attribute name="padding-top">4pt</xsl:attribute>
+ <xsl:attribute name="padding-bottom">4pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Only hairlines as frame and cell borders in tables -->
+ <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
+ <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
+
+ <!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+ <!-- Label only Sections up to level 2 -->
+ <xsl:param name="local.l10n.xml" select="document('')"/>
+ <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+ <l:l10n language="en">
+ <l:context name="title-numbered">
+ <l:template name="sect3" text="%t"/>
+ <l:template name="sect4" text="%t"/>
+ <l:template name="sect5" text="%t"/>
+ </l:context>
+ <l:context name="section-xref-numbered">
+ <l:template name="sect3" text="the section called %t"/>
+ <l:template name="sect4" text="the section called %t"/>
+ <l:template name="sect5" text="the section called %t"/>
+ </l:context>
+ </l:l10n>
+ </l:i18n>
+
+ <!--###################################################
+ Titles
+ ################################################### -->
+
+ <!-- Chapter title size -->
+ <xsl:attribute-set name="chapter.titlepage.recto.style">
+ <xsl:attribute name="text-align">left</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.8"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Why is the font-size for chapters hardcoded in the XSL FO templates?
+ Let's remove it, so this sucker can use our attribute-set only... -->
+ <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xsl:use-attribute-sets="chapter.titlepage.recto.style">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
+ </xsl:call-template>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->
+ <xsl:attribute-set name="section.title.level1.properties">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.5"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level2.properties">
+ <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.25"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level3.properties">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.0"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Titles of formal objects (tables, examples, ...) -->
+ <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Programlistings
+ ################################################### -->
+
+ <!-- Verbatim text formatting (programlistings) -->
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ <xsl:attribute name="border-color">#444444</xsl:attribute>
+ <xsl:attribute name="border-style">solid</xsl:attribute>
+ <xsl:attribute name="border-width">0.1pt</xsl:attribute>
+ <xsl:attribute name="padding-top">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-left">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-right">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-left">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-right">0.5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Shade (background) programlistings -->
+ <xsl:param name="shade.verbatim">1</xsl:param>
+ <xsl:attribute-set name="shade.verbatim.style">
+ <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- We want to use callouts... -->
+ <xsl:param name="callout.extensions">1</xsl:param>
+
+ <!-- Place callout bullets at this column in programmlisting.-->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+ <!--
+ No, don't use crappy graphics for the callout bullets. This setting
+ enables some weird Unicode rendering for some fancy bullet points
+ in callouts. By default, this can only count to 10 and produces
+ strange results if you ever have more than 10 callouts for one
+ programlisting. We will fix that next.
+ -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!--
+ Again, fun with DocBook XSL: The callout bullets are rendered in
+ two places: In the programlisting itself and in the list below
+ the listing, with the actual callout text. The rendering in the
+ programlisting is some XSL transformer extension (e.g. a Saxon
+ extension), so we can't change that without messing with the
+ extensions. We only can turn it off by setting this limit to
+ zero, then, a simple bracket style like "(3)" and "(4)" will
+ be used in the programlisting.
+ -->
+ <xsl:param name="callout.unicode.number.limit" select="'0'"></xsl:param>
+
+ <!--
+ The callout bullets in the actual callout list will be rendered
+ with an XSL FO template. The default template is broken: limited to 10
+ nice looking Unicode bullet points and then it doesn't print anything,
+ the fallback doesn't work. We implement our own template, which is not
+ as complicated, more ugly, but works. As always, function is more
+ important than form.
+ -->
+ <xsl:template name="callout-bug">
+ <xsl:param name="conum" select='1'/>
+ <fo:inline
+ color="black"
+ padding-top="0.1em"
+ padding-bottom="0.1em"
+ padding-start="0.2em"
+ padding-end="0.2em"
+ baseline-shift="0.1em"
+ font-family="{$monospace.font.family}"
+ font-weight="bold"
+ font-size="75%">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$conum"/>
+ <xsl:text>)</xsl:text>
+ </fo:inline>
+
+ </xsl:template>
+
+ <!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Correct placement of titles for figures and examples. -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+ <!-- Format Variable Lists as Blocks (prevents horizontal overflow). -->
+ <xsl:param name="variablelist.as.blocks">1</xsl:param>
+
+ <!-- The horrible list spacing problems, this is much better. -->
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Newer DocBook XSL apparently thinks that some sections are by
+ default "draft" status, and this idiotic thing is by default
+ also set to "maybe", so it spits out a lot of errors with the
+ latest FOP as the XSL/FO styles have references to some draft
+ watermarks, which you actually don't want in the first place.
+ Turn this crap off. If you have to work with the "status"
+ attribute, don't.
+ -->
+ <xsl:param name="draft.mode" select="'no'"/>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.css
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.css (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.css 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,97 @@
+A {
+ color: #003399;
+}
+
+A:active {
+ color: #003399;
+}
+
+A:visited {
+ color: #888888;
+}
+
+P, OL, UL, LI, DL, DT, DD, BLOCKQUOTE {
+ color: #000000;
+}
+
+TD, TH, SPAN {
+ color: #000000;
+}
+
+BLOCKQUOTE {
+ margin-right: 0px;
+}
+
+
+H1, H2, H3, H4, H5, H6 {
+ color: #000000;
+ font-weight:500;
+ margin-top:10px;
+ padding-top:15px;
+}
+
+TABLE {
+ border-collapse: collapse;
+ border-spacing:0;
+ border: 1px thin black;
+ empty-cells: hide;
+}
+
+TD {
+ padding: 4pt;
+}
+
+H1 { font-size: 150%; }
+H2 { font-size: 140%; }
+H3 { font-size: 110%; font-weight: bold; }
+H4 { font-size: 110%; font-weight: bold;}
+H5 { font-size: 100%; font-style: italic; }
+H6 { font-size: 100%; font-style: italic; }
+
+TT {
+font-size: 90%;
+ font-family: "Courier New", Courier, monospace;
+ color: #000000;
+}
+
+PRE {
+font-size: 100%;
+ padding: 5px;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #CCCCCC;
+ background-color: #F4F4F4;
+}
+
+UL, OL, LI {
+ list-style: disc;
+}
+
+HR {
+ width: 100%;
+ height: 1px;
+ background-color: #CCCCCC;
+ border-width: 0px;
+ padding: 0px;
+ color: #CCCCCC;
+}
+
+.variablelist {
+ padding-top: 10;
+ padding-bottom:10;
+ margin:0;
+}
+
+.itemizedlist, UL {
+ padding-top: 0;
+ padding-bottom:0;
+ margin:0;
+}
+
+.term {
+ font-weight:bold;
+}
+
+
+
+
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL HTML configuration file for the Hibernate
+ Reference Documentation.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="&db_xsl_path;/html/docbook.xsl"/>
+
+<!--###################################################
+ HTML Settings
+ ################################################### -->
+
+ <xsl:param name="html.stylesheet">../shared/css/html.css</xsl:param>
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+
+<!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+<!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Don't use graphics, use a simple number style -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+<!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html_chunk.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html_chunk.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/en/styles/html_chunk.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL HTML configuration file for the Hibernate
+ Reference Documentation.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="&db_xsl_path;/html/chunk.xsl"/>
+
+<!--###################################################
+ HTML Settings
+ ################################################### -->
+
+ <xsl:param name="chunk.section.depth">'5'</xsl:param>
+ <xsl:param name="use.id.as.filename">'1'</xsl:param>
+ <xsl:param name="html.stylesheet">../shared/css/html.css</xsl:param>
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+
+<!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+<!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Don't use graphics, use a simple number style -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+<!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/images/hibernate_logo_a.png
===================================================================
(Binary files differ)
Property changes on: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/images/hibernate_logo_a.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/master.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/master.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/master.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+"../support/docbook-dtd/docbookx.dtd" [
+<!ENTITY setup SYSTEM "modules/setup.xml">
+<!ENTITY entity SYSTEM "modules/entity.xml">
+<!ENTITY xml-overriding SYSTEM "modules/xml-overriding.xml">
+<!ENTITY validator SYSTEM "modules/validator.xml">
+<!ENTITY lucene SYSTEM "modules/lucene.xml">
+]>
+<book lang="fr">
+ <bookinfo>
+ <title>Hibernate Annotations</title>
+
+ <subtitle>Guide de référence</subtitle>
+
+ <releaseinfo>3.2.0.GA</releaseinfo>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/hibernate_logo_a.png" format="png" />
+ </imageobject>
+ </mediaobject>
+ </bookinfo>
+
+ <toc></toc>
+
+ <preface id="preface" revision="1">
+ <title>Préface</title>
+ <para>Traducteur(s): Vincent Ricard</para>
+
+ <para>Hibernate, comme tous les autres outils de mapping objet/relationnel,
+ nécessite des méta-données qui régissent la transformation des données
+ d'une représentation vers l'autre (et vice versa). Dans Hibernate 2.x, les
+ méta-données de mapping sont la plupart du temps déclarées dans des fichiers
+ XML. Une autre option est XDoclet, qui utilise les annotations du code source
+ Javadoc et un préprocesseur au moment de la compilation. Le même genre
+ d'annotation est maintenant disponible avec le JDK standard, quoique plus
+ puissant et mieux pris en charge par les outils. IntelliJ IDEA et Eclipse,
+ par exemple, prennent en charge la complétion automatique et la coloration
+ syntaxique des annotations du JDK 5.0. Les annotations sont compilées en
+ bytecode et lues au moment de l'exécution (dans le cas d'Hibernate, au
+ démarrage) en utilisant la réflexion, donc pas besoin de fichiers XML
+ externes.</para>
+
+ <para>La spécification EJB3 reconnaît l'intérêt et le succès du paradigme
+ du mapping objet/relationnel transparent. La spécification EJB3 standardise
+ les APIs de base et les méta-données requises par n'importe quel mécanisme
+ de persistance objet/relationnel. <emphasis>Hibernate EntityManager</emphasis>
+ implémente les interfaces de programmation et les règles de cycle de vie
+ telles que définies par la spécification de persistance EJB3. Avec
+ <emphasis>Hibernate Annotations</emphasis>, ce wrapper implémente une
+ solution de persistance EJB3 complète (et autonome) au-dessus du noyau
+ mature d'Hibernate. Vous pouvez utiliser soit les trois ensembles, soit les
+ annotations sans le cycle de vie et les interfaces de programmations EJB3,
+ ou même Hibernate tout seul, selon les besoins techniques et fonctionnels
+ de votre projet. Vous pouvez à tout moment recourir aux APIs natives
+ d'Hibernate ou même, si besoin est, à celles de JDBC et au SQL.</para>
+
+ <para>Cette version est basée sur la dernière version de la spécification
+ EJB 3.0 / JPA (alias JSP-220) et prend en charge toutes les fonctionnalités
+ de la spécification (dont certaines optionnelles). La plupart des
+ fonctionnalités d'Hibernate et des extensions sont aussi disponibles à
+ travers des annotations spécifiques à Hibernate. Bien que la couverture
+ d'Hibernate en termes de fonctionnalités soit maintenant très grande,
+ certaines sont encore manquantes. Le but ultime est de tout couvrir. Voir la
+ section JIRA "road map" pour plus d'informations.</para>
+
+ <para>Si vous utilisiez une version précédente d'Hibernate Annotations,
+ veuillez regarder <uri>http://www.hibernate.org/371.html</uri> pour un guide
+ de migration.</para>
+ </preface>
+
+ &setup;
+
+ &entity;
+
+ &xml-overriding;
+
+ &validator;
+
+ &lucene;
+</book>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/entity.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/entity.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/entity.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,3458 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<chapter id="entity">
+ <title>Entity Beans</title>
+
+ <sect1 id="entity-overview" revision="1">
+ <title>Introduction</title>
+
+ <para>Cette section couvre les annotations entity bean EJB 3.0 (alias JPA)
+ et les extensions spécifiques à Hibernate.</para>
+ </sect1>
+
+ <sect1 id="entity-mapping" revision="2">
+ <title>Mapping avec les annotations EJB3/JPA</title>
+
+ <para>Les entités EJB3 sont des POJOs ordinaires. En fait, ils
+ représentent exactement le même concept que les entités de persistance
+ Hibernate. Leur mapping est défini à travers les annotations du JDK 5.0
+ (une syntaxe de descripteur XML pour la surcharge est définie dans la
+ spécification EJB3). Les annotations peuvent être divisées en deux
+ catégories, les annotations de mapping logique (vous permettant de décrire
+ le modèle objet, les associations de classe, etc) et les annotations de
+ mapping physique (décrivant le schéma physique, les tables, les colonnes,
+ les index, etc). Nous mélangerons les annotations des deux catégories dans
+ les exemples de code.</para>
+
+ <para>Les annotations EJB3 sont dans le package
+ <literal>javax.persistence.*</literal>. La plupart des IDE compatibles JDK 5
+ (comme Eclipse, IntelliJ IDEA et Netbeans) peuvent auto-compléter les
+ interfaces et les attributes d'annotation pour vous (même sans module "EJB3"
+ spécifique, puisque les annotations EJB3 sont des annotations ordinaires de
+ JDK 5).</para>
+
+ <para>Pour plus d'exemples concrets, lisez le tutorial EJB 3.0 de JBoss ou
+ parcourez la suite de tests d'Hibernate Annotations. La plupart des tests
+ unitaires ont été conçus pour représenter un exemple concret et être une
+ source d'inspiration.</para>
+
+ <sect2>
+ <title>Déclarer un entity bean</title>
+
+ <para>Chaque classe POJO persistante liée est un entity bean et est
+ déclarée en utilisant l'annotation <literal>@Entity</literal> (au niveau
+ de la classe) :</para>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+ Long id;
+
+ @Id
+ public Long getId() { return id; }
+
+ public void setId(Long id) { this.id = id; }
+}
+</programlisting>
+
+ <para><literal>@Entity</literal> déclare la classe comme un entity bean
+ (ie une classe POJO persistante), <literal>@Id</literal> déclare la
+ propriété identifiante de cet entity bean. Les autres déclarations de
+ mapping sont implicites. Ce concept de déclaration par exception est
+ un composant essentiel de la nouvelle spécification EJB3 et une
+ amélioration majeure. La classe Flight est mappée sur la table Flight, en
+ utilisant la colonne id comme colonne de la clef primaire.</para>
+
+ <para>Selon que vous annotez des champs ou des méthodes, le type d'accès
+ utilisé par Hibernate sera <literal>field</literal> ou
+ <literal>property</literal>. La spécification EJB3 exige que vous
+ déclariez les annotations sur le type d'élément qui sera accédé,
+ c'est-à-dire le getter si vous utilisez l'accès
+ <literal>property</literal>, le champ si vous utilisez l'accès
+ <literal>field</literal>. Mélanger des EJB3 annotations dans les champs et
+ les méthodes devrait être évité. Hibernate devinera le type d'accès de
+ l'identifiant à partir de la position d'<literal>@Id</literal> ou
+ d'<literal>@EmbeddedId</literal>.</para>
+
+ <sect3>
+ <title>Définir la table</title>
+
+ <para><literal>@Table</literal> est positionnée au niveau de la classe ;
+ cela vous permet de définir le nom de la table, du catalogue et du
+ schéma pour le mapping de votre entity bean. Si aucune
+ <literal>@Table</literal> n'est définie les valeurs par défaut sont
+ utilisées : le nom de la classe de l'entité (sans le nom de
+ package).</para>
+
+ <programlisting>
+ at Entity
+ at Table(name="tbl_sky")
+public class Sky implements Serializable {
+...
+ </programlisting>
+
+ <para>L'élément <literal>@Table</literal> contient aussi un attribut
+ <literal>schema</literal> et un attribut <literal>catalog</literal>,
+ si vous avez besoin de les définir. Vous pouvez aussi définir des
+ contraintes d'unicité sur la table en utilisant l'annotation
+ <literal>@UniqueConstraint</literal> en conjonction avec
+ <literal>@Table</literal> (pour une contrainte d'unicité n'impliquant
+ qu'une seule colonne, référez-vous à <literal>@Column</literal>).</para>
+
+ <programlisting>@Table(name="tbl_sky",
+ <emphasis role="bold">uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}</emphasis>
+)</programlisting>
+
+ <para>Une contrainte d'unicité est appliquée au tuple {month, day}.
+ Notez que le tableau <literal>columnNames</literal> fait référence aux
+ noms logiques des colonnes.</para>
+
+ <remark>Le nom logique d'une colonne est défini par l'implémentation
+ de NamingStrategy d'Hibernate. La stratégie de nommage EJB3 par défaut
+ utilise le nom de colonne physique comme nom de colonne logique. Notez
+ qu'il peut être différent du nom de la propriété (si le nom de colonne
+ est explicite). A moins que vous surchargiez la stratégie de nommage,
+ vous ne devriez pas vous soucier de ça.</remark>
+ </sect3>
+
+ <sect3>
+ <title>Versionner pour un contrôle de concurrence optimiste</title>
+
+ <para>Vous pouvez ajouter un contrôle de concurrence optimiste à un
+ entity bean en utilisant l'annotation
+ <literal>@Version</literal> :</para>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+...
+ @Version
+ @Column(name="OPTLOCK")
+ public Integer getVersion() { ... }
+} </programlisting>
+
+ <para>La propriété de version sera mappée sur la colonne
+ <literal>OPTLOCK</literal>, et le gestionnaire d'entités l'utilisera
+ pour détecter des conflits lors des mises à jour (prévenant des pertes
+ de données lors de mises à jours que vous pourriez voir avec la
+ stratégie du last-commit-wins).</para>
+
+ <para>La colonne de version peut être un numérique (solution
+ recommandée) ou un timestamp comme pour la spécification EJB3. Hibernate
+ prend en charge n'importe quel type fourni que vous définissez et
+ implémentez avec la classe <classname>UserVersionType</classname>
+ appropriée.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Mapping de simples propriétés</title>
+
+ <sect3>
+ <title>Déclarer des mappings de propriétés élémentaires</title>
+
+ <para>Chaque propriété (champ ou méthode) non statique non transient
+ d'un entity bean est considérée persistante, à moins que vous l'annotiez
+ comme <literal>@Transient</literal>. Ne pas avoir d'annotation pour
+ votre propriété est équivalent à l'annotation <literal>@Basic</literal>.
+ L'annotation <literal>@Basic</literal> vous permet de déclarer la
+ stratégie de récupération pour une propriété :</para>
+
+ <programlisting>public transient int counter; // propriété transient
+
+private String firstname; // propriété persistante
+
+ at Transient
+String getLengthInMeter() { ... } // propriété transient
+
+String getName() {... } // propriété persistante
+
+ at Basic
+int getLength() { ... } // propriété persistante
+
+ at Basic(fetch = FetchType.LAZY)
+String getDetailedComment() { ... } // propriété persistante
+
+ at Temporal(TemporalType.TIME)
+java.util.Date getDepartureTime() { ... } // propriété persistante
+
+ at Enumerated(EnumType.STRING)
+Starred getNote() { ... } // enum persistée en tant que String dans la base de données</programlisting>
+
+ <para><literal>counter</literal>, un champ transient, et
+ <literal>lengthInMeter</literal>, une méthode annotée comme
+ <literal>@Transient</literal>, seront ignorés par le gestionnaire
+ d'entités. Les propriétés <literal>name</literal>,
+ <literal>length</literal>, et <literal>firstname</literal> sont mappées
+ comme persistantes et à charger immédiatement (ce sont les valeurs
+ par défaut pour les propriétés simples). La valeur de la propriété
+ <literal>detailedComment</literal> sera chargée à partir de la base de
+ données dès que la propriété de l'entité sera accédée pour la première
+ fois. En général vous n'avez pas besoin de marquer de simples propriétés
+ comme "à charger à la demande" (NdT: lazy) (à ne pas confondre avec la
+ récupération d'association "lazy").</para>
+
+ <note>
+ <para>Pour activer la récupération à la demande au niveau de la
+ propriété, vos classes doivent être instrumentées : du bytecode est
+ ajouté au code original pour activer cette fonctionnalité, veuillez
+ vous référer à la documentation de référence d'Hibernate. Si vos
+ classes ne sont pas instrumentées, le chargement à la demande au
+ niveau de la propriété est silencieusement ignoré.</para>
+ </note>
+
+ <para>L'alternative recommandée est d'utiliser la capacité de projection
+ de JPA-QL ou des requêtes Criteria.</para>
+
+ <para>EJB3 prend en charge le mapping de propriété de tous les types
+ élémentaires pris en charge par Hibernate (tous les types de base Java,
+ leur wrapper respectif et les classes sérialisables). Hibernate
+ Annotations prend en charge le mapping des types Enum soit vers une
+ colonne ordinale (en stockant le numéro ordinal de l'enum), soit vers
+ une colonne de type chaîne de caractères (en stockant la chaîne de
+ caractères représentant l'enum) : la représentation de la persistance,
+ par défaut ordinale, peut être surchargée grâce à l'annotation
+ <literal>@Enumerated</literal> comme montré avec la propriété
+ <literal>note</literal> de l'exemple.</para>
+
+ <para>Dans les APIs core de Java, la précision temporelle n'est pas
+ définie. Lors du traitement de données temporelles vous pourriez vouloir
+ décrire la précision attendue dans la base de données. Les données
+ temporelles peuvent avoir une précision de type <literal>DATE</literal>,
+ <literal>TIME</literal>, ou <literal>TIMESTAMP</literal> (c'est-à-dire
+ seulement la date, seulement l'heure, ou les deux). Utilisez
+ l'annotation <literal>@Temporal</literal> pour ajuster cela.</para>
+
+ <para><literal>@Lob</literal> indique que la propriété devrait être
+ persistée dans un Blob ou un Clob selon son type :
+ <classname>java.sql.Clob</classname>,
+ <classname>Character[]</classname>, <classname>char[]</classname> et
+ java.lang.<classname>String</classname> seront persistés dans un Clob.
+ <classname>java.sql.Blob</classname>, <classname>Byte[]</classname>,
+ <classname>byte[] </classname> et les types sérialisables seront
+ persistés dans un Blob.</para>
+
+ <programlisting>
+ at Lob
+public String getFullText() {
+ return fullText;
+}
+
+ at Lob
+public byte[] getFullCode() {
+ return fullCode;
+}
+ </programlisting>
+
+ <para>Si le type de la propriété implémente
+ <classname>java.io.Serializable</classname> et n'est pas un type de
+ base, et si la propriété n'est pas annotée avec <literal>@Lob</literal>,
+ alors le type Hibernate <literal>serializable</literal> est
+ utilisé.</para>
+ </sect3>
+
+ <sect3>
+ <title>Déclarer des attributs de colonne</title>
+
+ <para>La(les) colonne(s) utilisée(s) pour mapper une propriété peuvent
+ être définies en utilisant l'annotation <literal>@Column</literal>.
+ Utilisez-la pour surcharger les valeurs par défaut (voir la
+ spécification EJB3 pour plus d'informations sur les valeurs par défaut).
+ Vous pouvez utilisez cette annotation au niveau de la propriété pour
+ celles qui sont :</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>pas du tout annotées</para>
+ </listitem>
+
+ <listitem>
+ <para>annotées avec <literal>@Basic</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotées avec <literal>@Version</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotées avec <literal>@Lob</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotées avec <literal>@Temporal</literal></para>
+ </listitem>
+
+ <listitem>
+ <para>annotées avec
+ <literal>@org.hibernate.annotations.CollectionOfElements</literal>
+ (pour Hibernate uniquement)</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+...
+ at Column(updatable = false, name = "flight_name", nullable = false, length=50)
+public String getName() { ... }
+ </programlisting>
+
+ <para>La propriété <literal>name</literal> est mappée sur la colonne
+ <literal>flight_name</literal>, laquelle ne peut pas avoir de valeur
+ nulle, a une longueur de 50 et ne peut pas être mise à jour (rendant
+ la propriété immuable).</para>
+
+ <para>Cette annotation peut être appliquée aux propriétés habituelles
+ ainsi qu'aux propriétés <literal>@Id</literal> ou
+ <literal>@Version</literal>.</para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="2 55" id="hm1" />
+
+ <area coords="3 55" id="hm2" />
+
+ <area coords="4 55" id="hm3" />
+
+ <area coords="5 55" id="hm4" />
+
+ <area coords="6 55" id="hm5" />
+
+ <area coords="7 55" id="hm6" />
+
+ <area coords="8 55" id="hm7" />
+
+ <area coords="9 55" id="hm8" />
+
+ <area coords="10 55" id="hm9" />
+
+ <area coords="11 55" id="hm10" />
+ </areaspec>
+
+ <programlisting>@Column(
+ name="columnName";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ int length() default 255;
+ int precision() default 0; // decimal precision
+ int scale() default 0; // decimal scale</programlisting>
+
+ <calloutlist>
+ <callout arearefs="hm1">
+ <para><literal>name</literal> (optionnel) : le nom de la colonne
+ (par défaut le nom de la propriété)</para>
+ </callout>
+
+ <callout arearefs="hm2">
+ <para><literal>unique</literal> (optionnel) : indique si la colonne
+ fait partie d'une contrainte d'unicité ou non (par défaut
+ false)</para>
+ </callout>
+
+ <callout arearefs="hm3">
+ <para><literal>nullable</literal> (optionnel) : indique si la
+ colonne peut avoir une valeur nulle (par défaut false).</para>
+ </callout>
+
+ <callout arearefs="hm4">
+ <para><literal>insertable</literal> (optionnel) : indique si la
+ colonne fera partie de la commande insert (par défaut true)</para>
+ </callout>
+
+ <callout arearefs="hm5">
+ <para><literal>updatable</literal> (optionnel) : indique si la
+ colonne fera partie de la commande update (par défaut true)</para>
+ </callout>
+
+ <callout arearefs="hm6">
+ <para><literal>columnDefinition</literal> (optionnel) : surcharge
+ le fragment DDL sql pour cette colonne en particulier (non
+ portable)</para>
+ </callout>
+
+ <callout arearefs="hm7">
+ <para><literal>table</literal> (optionnel) : définit la table
+ cible (par défaut la table principale)</para>
+ </callout>
+
+ <callout arearefs="hm8">
+ <para><literal><literal>length</literal></literal> (optionnel) :
+ longueur de la colonne (par défaut 255)</para>
+ </callout>
+
+ <callout arearefs="hm8">
+ <para><literal><literal>precision</literal></literal>
+ (optionnel) : précision décimale de la colonne (par défaut
+ 0)</para>
+ </callout>
+
+ <callout arearefs="hm10">
+ <para><literal><literal>scale</literal></literal> (optionnel) :
+ échelle décimale de la colonne si nécessaire (par défaut 0)</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+ </sect3>
+
+ <sect3>
+ <title>Objets embarqués (alias composants)</title>
+
+ <para>Il est possible de déclarer un composant embarqué à l'intérieur
+ d'une entité et même de surcharger le mapping de ses colonnes. Les
+ classes de composant doivent être annotées au niveau de la classe avec
+ l'annotation <literal>@Embeddable</literal>. Il est possible de
+ surcharger le mapping de colonne d'un objet embarqué pour une entité
+ particulière en utilisant les annotations
+ <literal>@Embedded</literal> et <literal>@AttributeOverride</literal>
+ sur la propriété associée :</para>
+
+ <programlisting>
+ at Entity
+public class Person implements Serializable {
+
+ // Composant persistant utilisant les valeurs par défaut
+ Address homeAddress;
+
+ @Embedded
+ @AttributeOverrides( {
+ @AttributeOverride(name="iso2", column = @Column(name="bornIso2") ),
+ @AttributeOverride(name="name", column = @Column(name="bornCountryName") )
+ } )
+ Country bornIn;
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class Address implements Serializable {
+ String city;
+ Country nationality; // par de surcharge ici
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class Country implements Serializable {
+ private String iso2;
+ @Column(name="countryName") private String name;
+
+ public String getIso2() { return iso2; }
+ public void setIso2(String iso2) { this.iso2 = iso2; }
+
+
+ public String getName() { return name; }
+ public void setName(String name) { this.name = name; }
+ ...
+}
+ </programlisting>
+
+ <para>Un objet embarquable hérite du type d'accès de son entité
+ d'appartenance (notez que vous pouvez surcharger cela en utilisant les
+ annotations spécifiques à Hibernate <literal>@AccessType</literal>,
+ voir <xref linkend="entity-hibspec" />).</para>
+
+ <para>L'entity bean <literal>Person</literal> a deux propriétés
+ composant, <literal>homeAddress</literal> et
+ <literal>bornIn</literal>. La propriété <literal>homeAddress</literal>
+ n'a pas été annotée, mais Hibernate devinera que c'est un composant
+ persistant en cherchant l'annotation <literal>@Embeddable</literal>
+ dans la classe Address. Nous surchargeons aussi le mapping d'un nom de
+ colonne (pour <literal>bornCountryName</literal>) avec les annotations
+ <literal>@Embedded</literal> et <literal>@AttributeOverride</literal>
+ pour chaque attribut mappé de <literal>Country</literal>. Comme vous
+ pouvez le voir, <literal>Country</literal> est aussi un composant
+ imbriqué de <literal>Address</literal>, utilisant de nouveau la
+ détection automatique d'Hibernate et les valeurs par défaut EJB3.
+ Surcharger des colonnes d'objets embarqués d'objets (eux-mêmes)
+ embarqués n'est actuellement pas pris en charge par la spécification
+ EJB3, cependant, Hibernate Annotations le prend en charge à travers des
+ expressions séparées par des points.</para>
+
+ <para><programlisting> @Embedded
+ @AttributeOverrides( {
+ @AttributeOverride(name="city", column = @Column(name="fld_city") ),
+ @AttributeOverride(name="<emphasis role="bold">nationality.iso2</emphasis>", column = @Column(name="nat_Iso2") ),
+ @AttributeOverride(name="<emphasis role="bold">nationality.name</emphasis>", column = @Column(name="nat_CountryName") )
+ // les colonnes de nationality dans homeAddress sont surchargées
+ } )
+ Address homeAddress;</programlisting>Hibernate Annotations prend en charge
+ une fonctionnalité de plus qui n'est pas explicitement prise en charge
+ par la spécification EJB3. Vous pouvez annoter un objet embarqué avec
+ l'annotation
+ <literal>@MappedSuperclass</literal> pour rendre les propriétés de la
+ classe parente persistantes (voir <literal>@MappedSuperclass</literal>
+ pour plus d'informations).</para>
+
+ <para>Alors que ce n'est pas pris en charge par la spécification EJB3,
+ Hibernate Annotations vous permet d'utiliser les annotations
+ d'association dans un objet embarquable (ie <literal>@*ToOne</literal>
+ ou <literal>@*ToMany</literal>). Pour surcharger les colonnes de
+ l'association vous pouvez utiliser
+ <literal>@AssociationOverride</literal>.</para>
+
+ <para>Si vous voulez avoir le même type d'objet embarquable deux fois
+ dans la même entité, le nom de colonne par défaut ne fonctionnera pas :
+ au moins une des colonnes devra être explicitée. Hibernate va au-delà
+ de la spécification EJB3 et vous permet d'améliorer le mécanisme par
+ défaut avec <classname>NamingStrategy</classname>.
+ <classname>DefaultComponentSafeNamingStrategy</classname> est une petite
+ amélioration par rapport à la stratégie par défaut
+ <classname>EJB3NamingStrategy</classname> qui permet aux objets
+ embarqués de fonctionner avec leur valeur par défaut même s'ils sont
+ utilisés deux fois dans la même entité.</para>
+ </sect3>
+
+ <sect3>
+ <title>Valeurs par défaut des propriétés non annotées</title>
+
+ <para>Si une propriété n'est pas annotée, les règles suivantes
+ s'appliquent :</para>
+
+ <itemizedlist>
+ <listitem>
+ Si la propriété est de type simple, elle est mappée comme @Basic
+ </listitem>
+
+ <listitem>
+ Sinon, si le type de la propriété est annoté comme @Embeddable,
+ elle est mappée comme @Embedded
+ </listitem>
+
+ <listitem>
+ Sinon, si le type de la propriété est Serializable, elle est mappée
+ comme @Basic vers une colonne contenant l'objet sous sa forme
+ sérialisée
+ </listitem>
+
+ <listitem>
+ Sinon, si le type de la propriété est java.sql.Clob ou
+ java.sql.Blob, elle est mappée comme @Lob avec le LobType
+ approprié
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-mapping-identifier"
+ xreflabel="Mapper des propriétés identifiantes">
+ <title>Mapper des propriétés identifiantes</title>
+
+ <para>L'annotation <literal>@Id</literal> vous permet de définir quelle
+ propriété identifie votre entity bean. Cette propriété peut être
+ positionnée par l'application elle-même ou générée par Hibernate
+ (préféré). Vous pouvez définir la stratégie de génération de l'identifiant
+ grâce à l'annotation <literal>@GeneratedValue</literal> :</para>
+
+ <itemizedlist>
+ <listitem>
+ AUTO - soit la colonne identity, soit la séquence, soit la table
+ selon la base de données sous-jacente
+ </listitem>
+
+ <listitem>
+ TABLE - table contenant l'id
+ </listitem>
+
+ <listitem>
+ IDENTITY - colonne identity
+ </listitem>
+
+ <listitem>
+ SEQUENCE - séquence
+ </listitem>
+ </itemizedlist>
+
+ <para>Hibernate fournit plus de générateurs d'identifiant que les simples
+ générateurs EJB3. Vérifiez <xref linkend="entity-hibspec" /> pour plus
+ d'informations.</para>
+
+ <para>L'exemple suivant montre un générateur par séquence utilisant la
+ configuration SEQ_STORE (voir plus bas) :</para>
+
+ <programlisting>
+ at Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+public Integer getId() { ... }
+ </programlisting>
+
+ <para>L'exemple suivant utilise le générateur identity :</para>
+
+ <programlisting>
+ at Id @GeneratedValue(strategy=GenerationType.IDENTITY)
+public Long getId() { ... }
+ </programlisting>
+
+ <para>Le générateur <literal>AUTO</literal> est le type préféré pour les
+ applications portables (vers différentes base de données). La
+ configuration de la génération d'identifiant peut être partagée par
+ différents mappings <literal>@Id</literal> avec l'attribut du générateur.
+ Il y a différentes configurations disponibles avec
+ <literal>@SequenceGenerator</literal> et
+ <literal>@TableGenerator</literal>. La portée d'un générateur peut être
+ l'application ou la classe. Les générateurs définis dans les classes ne
+ sont pas visibles à l'extérieur de la classe et peuvent surcharger les
+ générateurs de niveau applicatif. Les générateurs de niveau applicatif
+ sont définis au niveau XML (voir
+ <xref linkend="xml-overriding" />) :</para>
+
+ <programlisting><table-generator name="EMP_GEN"
+ table="GENERATOR_TABLE"
+ pk-column-name="key"
+ value-column-name="hi"
+ pk-column-value="EMP"
+ allocation-size="20"/>
+
+// et l'annotation équivalente
+
+ at javax.persistence.TableGenerator(
+ name="EMP_GEN",
+ table="GENERATOR_TABLE",
+ pkColumnName = "key",
+ valueColumnName = "hi"
+ pkColumnValue="EMP",
+ allocationSize=20
+)
+
+<sequence-generator name="SEQ_GEN"
+ sequence-name="my_sequence"
+ allocation-size="20"/>
+
+// et l'annotation équivalente
+
+ at javax.persistence.SequenceGenerator(
+ name="SEQ_GEN",
+ sequenceName="my_sequence",
+ allocationSize=20
+)
+ </programlisting>
+
+ <para>Si JPA XML (comme <filename>META-INF/orm.xml</filename>) est utilisé
+ pour définir les générateurs, <literal>EMP_GEN</literal> et
+ <literal>SEQ_GEN</literal> sont des générateurs de niveau applicatif.
+ <literal>EMP_GEN</literal> définit un générateur d'identifiant basé sur
+ une table utilisant l'algorithme hilo avec un <literal>max_lo</literal> de
+ 20. La valeur haute est conservée dans une <literal>table</literal>
+ "<literal>GENERATOR_TABLE</literal>". L'information est gardée dans une
+ ligne où la colonne <literal>pkColumnName</literal> ("clef") est égale à
+ <literal>pkColumnValue</literal> "<literal>EMP</literal>" et une colonne
+ <literal>valueColumnName</literal> "<literal>hi</literal>" contient la
+ prochaine valeur haute utilisée.</para>
+
+ <para><literal>SEQ_GEN</literal> définit un générateur par séquence
+ utilisant une séquence nommée <literal>my_sequence</literal>. La taille
+ d'allocation utilisée pour cet algorithme hilo basé sur une séquence est
+ 20. Notez que cette version d'Hibernate Annotations ne gère pas
+ <literal>initialValue</literal> dans le générateur par séquence.
+ La taille par défaut de l'allocation est 50, donc si vous voulez utiliser
+ une séquence et récupérer la valeur chaque fois, vous devez positionner
+ la taille de l'allocation à 1.</para>
+
+ <note>
+ <para>La définition au niveau package n'est plus prise en charge par la
+ spécification EJB 3.0. Vous pouvez cependant utiliser
+ <literal>@GenericGenerator</literal> au niveau du package (voir <xref
+ linkend="entity-hibspec-identifier" />).</para>
+ </note>
+
+ <para>Le prochain exemple montre la définition d'un générateur par
+ séquence dans la portée d'une classe :</para>
+
+ <programlisting>
+ at Entity
+ at javax.persistence.SequenceGenerator(
+ name="SEQ_STORE",
+ sequenceName="my_sequence"
+)
+public class Store implements Serializable {
+ private Long id;
+
+ @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+ public Long getId() { return id; }
+}
+ </programlisting>
+
+ <para>Cette classe utilisera une séquence nommée my_sequence et le
+ générateur SEQ_STORE n'est pas visible dans les autres classes. Notez que
+ vous pouvez regarder les tests unitaires d'Hibernate Annotations dans le
+ package org.hibernate.test.metadata.id pour plus d'exemples.</para>
+
+ <para>Vous pouvez définir une clef primaire composée à travers différentes
+ syntaxes :</para>
+
+ <itemizedlist>
+ <listitem>
+ annote la propriété du composant comme @Id et rend la classe du
+ composant @Embeddable
+ </listitem>
+
+ <listitem>
+ annote la propriété du composant comme @EmbeddedId
+ </listitem>
+
+ <listitem>
+ annote la classe comme @IdClass et annote chaque propriété de
+ l'entité impliquée dans la clef primaire avec @Id
+ </listitem>
+ </itemizedlist>
+
+ <para>Bien qu'assez commun pour le développeur EJB2,
+ <literal>@IdClass</literal> est probablement nouveau pour les utilisateurs
+ d'Hibernate. La classe de la clef primaire composée correspond aux
+ multiples champs ou propriétés de l'entité ; de plus, les noms des champs
+ ou propriétés de la clef primaire et ceux de l'entité doivent
+ correspondre ; et enfin, leur type doit être le même. Regardons un
+ exemple :</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@IdClass(FootballerPk.class)</emphasis>
+public class Footballer {
+ // partie de la clef
+ <emphasis role="bold">@Id</emphasis> public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ // partie de la clef
+ <emphasis role="bold">@Id</emphasis> public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ public String getClub() {
+ return club;
+ }
+
+ public void setClub(String club) {
+ this.club = club;
+ }
+
+ // implémentation appropriée de equals() et hashCode()
+}
+
+ at Embeddable
+public class FootballerPk implements Serializable {
+ // même nom et même type que dans Footballer
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ // même nom et même type que dans Footballer
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ // implémentation appropriée de equals() et hashCode()
+}
+</programlisting>
+
+ <para>Comme vous pouvez le voir, <literal>@IdClass</literal> pointe vers
+ la classe de la clef primaire correspondante.</para>
+
+ <para>Bien que ce ne soit pas pris en charge par la spécification EJB3,
+ Hibernate vous permet de définir des associations à l'intérieur d'un
+ identifiant composé. Pour cela, utilisez simplement les annotations
+ habituelles.</para>
+
+ <programlisting>@Entity
+ at AssociationOverride( name="id.channel", joinColumns = @JoinColumn(name="chan_id") )
+public class TvMagazin {
+ @EmbeddedId public TvMagazinPk id;
+ @Temporal(TemporalType.TIME) Date time;
+}
+
+ at Embeddable
+public class TvMagazinPk implements Serializable {
+ @ManyToOne
+ public Channel channel;
+ public String name;
+ @ManyToOne
+ public Presenter presenter;
+}
+</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Mapper l'héritage</title>
+
+ <para>EJB3 prend en charge les trois types d'héritage :</para>
+
+ <itemizedlist>
+ <listitem>
+ Stratégie d'une table par classe concrète : l'élément
+ <union-class> dans Hibernate
+ </listitem>
+
+ <listitem>
+ Stratégie d'une seule table par hiérarchie de classe : l'élément
+ <subclass> dans Hibernate
+ </listitem>
+
+ <listitem>
+ Stratégie d'une table par classe fille : l'élément
+ <joined-subclass> dans Hibernate
+ </listitem>
+ </itemizedlist>
+
+ <para>La stratégie choisie est déclarée au niveau de la classe de l'entité
+ la plus haute dans la hiérarhie en utilisant l'annotation
+ <literal>@Inheritance</literal>.</para>
+
+ <note>
+ <para>Annoter des interfaces n'est pour le moment pas pris en
+ charge.</para>
+ </note>
+
+ <sect3>
+ <title>Une table par classe concrète</title>
+
+ <para>Cette stratégie a beaucoup d'inconvénients (surtout avec les
+ requêtes polymorphiques et les associations) expliqués dans la
+ spécification EJB3, la documentation de référence d'Hibernate, Hibernate
+ in Action, et plusieurs autres endroits. Hibernate en contourne la
+ plupart en implémentant cette stratégie en utilisant des requêtes
+ <literal>SQL UNION</literal>. Elle est habituellement utilisée pour le
+ niveau le plus haut d'une hiérarchie d'héritage :</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public class Flight implements Serializable {
+ </programlisting>
+
+ <para>Cette stratégie prend en charge les associations de un vers
+ plusieurs bidirectionnelles. Cette stratégie ne prend pas en charge
+ la stratégie de générateur <literal>IDENTITY</literal> : l'identifiant
+ doit être partagé par plusieurs tables. Par conséquent, lors de
+ l'utilisation de cette stratégie, vous ne devriez pas utilisez
+ <literal>AUTO</literal> ni <literal>IDENTITY</literal>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Une seule table par hiérarchie de classe</title>
+
+ <para>Toutes les propriétés de toutes les classes parentes et classes
+ filles sont mappées dans la même table, les instances sont différenciées
+ par une colonne spéciale discriminante :</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy=InheritanceType.SINGLE_TABLE)
+ at DiscriminatorColumn(
+ name="planetype",
+ discriminatorType=DiscriminatorType.STRING
+)
+ at DiscriminatorValue("Plane")
+public class Plane { ... }
+
+ at Entity
+ at DiscriminatorValue("A320")
+public class A320 extends Plane { ... }
+ </programlisting>
+
+ <para><classname>Plane</classname> est la classe parente, elle définit
+ la stratégie d'héritage <literal>InheritanceType.SINGLE_TABLE</literal>.
+ Elle définit aussi la colonne discriminante avec l'annotation
+ <literal>@DiscriminatorColumn</literal>, une colonne discriminante peut
+ aussi définir le type du discriminant. Finalement, l'annotation
+ <literal>@DiscriminatorValue</literal> définit la valeur utilisée pour
+ différencier une classe dans la hiérarchie. Tous ces attributs ont des
+ valeurs par défaut sensées. Le nom par défaut de la colonne
+ discriminante est <literal>DTYPE</literal>. La valeur discriminante par
+ défaut est le nom de l'entité (comme défini dans
+ <literal>@Entity.name</literal>) avec le type
+ <literal>DiscriminatorType.STRING</literal>. <classname>A320</classname>
+ est une classe fille ; vous devez seulement définir la valeur
+ discriminante si vous ne voulez pas utiliser la valeur par défaut. La
+ stratégie et le type du discriminant sont implicites.</para>
+
+ <para><literal>@Inheritance</literal> et
+ <literal>@DiscriminatorColumn</literal> devraient seulement être
+ définies sur l'entité la plus haute de la hiérarchie.</para>
+ </sect3>
+
+ <sect3>
+ <title>Une table par classe fille</title>
+
+ <para>Les annotations <literal> @PrimaryKeyJoinColumn</literal> et
+ <literal>@PrimaryKeyJoinColumns</literal> définissent la (les) clef(s)
+ primaire(s) de la table de la classe fille jointe :</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy=InheritanceType.JOINED)
+public class Boat implements Serializable { ... }
+
+ at Entity
+public class Ferry extends Boat { ... }
+
+ at Entity
+ at PrimaryKeyJoinColumn(name="BOAT_ID")
+public class AmericaCupClass extends Boat { ... }
+ </programlisting>
+
+ <para>Toutes les entités ci-dessus utilisent la stratégie
+ <literal>JOINED</literal>, la table <literal>Ferry</literal> est jointe
+ avec la table <literal>Boat</literal> en utilisant les mêmes noms de
+ clef primaire. La table <literal>AmericaCupClass</literal> est jointe
+ avec <literal>Boat</literal> en utilisant la condition de jointure
+ <code>Boat.id = AmericaCupClass.BOAT_ID</code>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Héritage de propriétés des classes parentes</title>
+
+ <para>Il est parfois utile de partager des propriétés communes à travers
+ une classe technique ou métier sans l'inclure comme une entité
+ habituelle (c'est-à-dire aucune table spécifique pour cette entité).
+ Pour cela, vous pouvez les mapper comme
+ <literal>@MappedSuperclass</literal>.</para>
+
+ <programlisting>@MappedSuperclass
+public class BaseEntity {
+ @Basic
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date getLastUpdate() { ... }
+ public String getLastUpdater() { ... }
+ ...
+}
+
+ at Entity class Order extends BaseEntity {
+ @Id public Integer getId() { ... }
+ ...
+}</programlisting>
+
+ <para>En base de données, cette hiérarchie sera représentée comme une
+ table <literal>Order</literal> ayant les colonnes <literal>id</literal>,
+ <literal>lastUpdate</literal> et <literal>lastUpdater</literal>.
+ Les mappings de propriété de la classe parente embarquée sont copiés
+ dans les classes filles de l'entité. Souvenez-vous que la classe parente
+ embarquable n'est cependant pas la racine de la hiérarchie.</para>
+
+ <note>
+ <para>Les propriétés des classes parentes non mappées comme
+ <literal>@MappedSuperclass</literal> sont ignorées.</para>
+ </note>
+
+ <note>
+ <para>Le type d'accès (champ ou méthode) est hérité de l'entité
+ racine, à moins que vous utilisiez l'annotation Hibernate
+ <literal>@AccessType</literal>.</para>
+ </note>
+
+ <note>
+ <para>La même notion peut être appliquée aux objets
+ <literal>@Embeddable</literal> pour persister des propriétés de leurs
+ classes parentes. Vous avez aussi besoin d'utiliser
+ <literal>@MappedSuperclass</literal> pour faire ça (cependant cela ne
+ devrait pas être considéré comme une fonctionnalité EJB3
+ standard).</para>
+ </note>
+
+ <note>
+ <para>Il est permis de marquer une classe comme
+ <literal>@MappedSuperclass</literal> dans le milieu d'une hiérarchie
+ d'héritage mappée.</para>
+ </note>
+
+ <note>
+ <para>Toute classe de la hiérarchie non annotée avec
+ <literal>@MappedSuperclass</literal> ou <literal>@Entity</literal>
+ sera ignorée.</para>
+ </note>
+
+ <para>Vous pouvez surcharger des colonnes définies dans des entités
+ parentes au niveau de l'entité racine en utilisant l'annotation
+ <literal>@AttributeOverride</literal>.</para>
+
+ <programlisting>@MappedSuperclass
+public class FlyingObject implements Serializable {
+
+ public int getAltitude() {
+ return altitude;
+ }
+
+ @Transient
+ public int getMetricAltitude() {
+ return metricAltitude;
+ }
+
+ @ManyToOne
+ public PropulsionType getPropulsion() {
+ return metricAltitude;
+ }
+ ...
+}
+
+ at Entity
+ at AttributeOverride( name="altitude", column = @Column(name="fld_altitude") )
+ at AssociationOverride( name="propulsion", joinColumns = @JoinColumn(name="fld_propulsion_fk") )
+public class Plane extends FlyingObject {
+ ...
+}</programlisting>
+
+ <para>La propriété <literal>altitude</literal> sera persistée dans la
+ colonne <literal>fld_altitude</literal> de la table
+ <literal>Plane</literal> et l'association <literal>propulsion</literal>
+ sera matérialisée dans la colonne de clef étrangère
+ <literal>fld_propulsion_fk</literal>.</para>
+
+ <para>Vous pouvez définir <literal>@AttributeOverride</literal>(s) et
+ <literal>@AssociationOverride</literal>(s) sur des classes
+ <literal>@Entity</literal>, des classes
+ <literal>@MappedSuperclass</literal> et des propriétés pointant vers un
+ objet <literal>@Embeddable</literal>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-mapping-association">
+ <title>Mapper des associations/relations d'entity beans</title>
+
+ <sect3>
+ <title>One-to-one</title>
+
+ <para>Vous pouvez associer des entity beans avec une relation one-to-one
+ en utilisant <literal>@OneToOne</literal>. Il y a trois cas pour les
+ associations one-to-one : soit les entités associées partagent les mêmes
+ valeurs de clef primaire, soit une clef étrangère est détenue par une
+ des entités (notez que cette colonne de clef étrangère dans la base de
+ données devrait être avoir une contrainte d'unicité pour simuler la
+ cardinalité one-to-one), soit une table d'association est utilisée pour
+ stocker le lien entre les 2 entités (une contrainte d'unicité doit être
+ définie sur chaque clef étrangère pour assurer la cardinalité un à
+ un).</para>
+
+ <para>Tout d'abord, nous mappons une véritable association one-to-one en
+ utilisant des clefs primaires partagées :</para>
+
+ <programlisting>
+ at Entity
+public class Body {
+ @Id
+ public Long getId() { return id; }
+
+ @OneToOne(cascade = CascadeType.ALL)
+ @PrimaryKeyJoinColumn
+ public Heart getHeart() {
+ return heart;
+ }
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Heart {
+ @Id
+ public Long getId() { ...}
+}
+ </programlisting>
+
+ <para>L'association un à un est activée en utilisant l'annotation
+ <literal>@PrimaryKeyJoinColumn</literal>.</para>
+
+ <para>Dans l'exemple suivant, les entités associées sont liées à travers
+ une clef étrangère :</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToOne(cascade = CascadeType.ALL)
+ <emphasis role="bold">@JoinColumn(name="passport_fk")</emphasis>
+ public Passport getPassport() {
+ ...
+ }
+
+ at Entity
+public class Passport implements Serializable {
+ @OneToOne(<emphasis role="bold">mappedBy = "passport"</emphasis>)
+ public Customer getOwner() {
+ ...
+}
+ </programlisting>
+
+ <para>Un <classname>Customer</classname> est lié à un
+ <classname>Passport</classname>, avec une colonne de clef étrangère
+ nommée <literal>passport_fk</literal> dans la table
+ <literal>Customer</literal>. La colonne de jointure est déclarée avec
+ l'annotation <literal>@JoinColumn</literal> qui ressemble à l'annotation
+ <literal>@Column</literal>. Elle a un paramètre de plus nommé
+ <literal>referencedColumnName</literal>. Ce paramètre déclare la colonne
+ dans l'entité cible qui sera utilisée pour la jointure. Notez que lors
+ de l'utilisation de <literal>referencedColumnName</literal> vers une
+ colonne qui ne fait pas partie de la clef primaire, la classe associée
+ doit être <classname>Serializable</classname>. Notez aussi que
+ <literal>referencedColumnName</literal> doit être mappé sur une
+ propriété ayant une seule colonne lorsqu'elle pointe vers une colonne
+ qui ne fait pas partie de la clef primaire (d'autres cas pourraient ne
+ pas fonctionnner).</para>
+
+ <para>L'association peut être bidirectionnelle. Dans une relation
+ bidirectionnelle, une des extrémités (et seulement une) doit être la
+ propriétaire : la propriétaire est responsable de la mise à jour des
+ colonnes de l'association. Pour déclarer une extrémité comme
+ <emphasis>non</emphasis> responsable de la relation, l'attribut
+ <literal>mappedBy</literal> est utilisé.
+ <literal>mappedBy</literal> référence le nom de la propriété de
+ l'association du côté du propriétaire. Dans notre cas, c'est
+ <literal>passport</literal>. Comme vous pouvez le voir, vous ne devez
+ (absolument) pas déclarer la colonne de jointure puisqu'elle a déjà été
+ déclarée du côté du propriétaire.</para>
+
+ <para>Si aucune <literal>@JoinColumn</literal> n'est déclarée du côté du
+ propriétaire, les valeurs par défaut s'appliquent. Une(des) colonne(s)
+ de jointure sera(ont) créée(s) dans la table propriétaire, et son(leur)
+ nom sera la concaténation du nom de la relation du côté propriétaire,
+ <keycap>_</keycap> (underscore), et le nom de la (des) colonne(s) de la
+ clef primaire du propriétaire. Dans cet exemple
+ <literal>passport_id</literal> parce que le nom de la propriété est
+ <literal>passport</literal> et la colonne identifiante de
+ <literal>Passport</literal> est <literal>id</literal>.</para>
+
+ <para>La troisième possibilité (utilisant une table d'association) est
+ très exotique.</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToOne(cascade = CascadeType.ALL)
+ <emphasis role="bold">@JoinTable(name = "CustomerPassports",
+ joinColumns = @JoinColumn(name="customer_fk"),
+ inverseJoinColumns = @JoinColumn(name="passport_fk")</emphasis>
+ )
+ public Passport getPassport() {
+ ...
+ }
+
+ at Entity
+public class Passport implements Serializable {
+ @OneToOne(<emphasis role="bold">mappedBy = "passport"</emphasis>)
+ public Customer getOwner() {
+ ...
+}
+ </programlisting>
+
+ <para>Un <classname>Customer</classname> est lié à un
+ <classname>Passport</classname> à travers une table d'association
+ nommée <literal>CustomerPassports</literal> ; cette table d'association
+ a une colonne de clef étrangère nommée <literal>passport_fk</literal>
+ pointant vers la table <literal>Passport</literal> (matérialisée par
+ l'attribut <literal>inverseJoinColumn</literal>), et une colonne de clef
+ étrangère nommée <literal>customer_fk</literal> pointant vers la table
+ <literal>Customer</literal> (matérialisée par l'attribut
+ <literal>joinColumns</literal>).</para>
+
+ <para>Vous devez déclarer le nom de la table de jointure et les colonnes
+ de jointure explicitement dans un tel mapping.</para>
+ </sect3>
+
+ <sect3>
+ <title>Many-to-one</title>
+
+ <para>Les associations Many-to-one sont déclarées au niveau de la
+ propriété avec l'annotation <literal>@ManyToOne</literal> :</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ <emphasis role="bold">@ManyToOne</emphasis>( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+ @JoinColumn(name="COMP_ID")
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+ </programlisting>
+
+ <para>L'attribut <literal>@JoinColumn</literal> est optionnel, la valeur
+ par défaut est comme l'association un à un, la concaténation du nom
+ de la relation du côté propriétaire, <keycap>_</keycap>
+ (underscore), et le nom de la colonne de la clef primaire du côté
+ propriétaire. Dans cet exemple, <literal>company_id</literal> parce que
+ le nom de la propriété est <literal>company</literal> et la colonne
+ identifiante de Company est <literal>id</literal>.</para>
+
+ <para><literal>@ManyToOne</literal> a un paramètre nommé
+ <literal>targetEntity</literal> qui décrit le nom de l'entité cible.
+ Généralement, vous ne devriez pas avoir besoin de ce paramètre puisque
+ la valeur par défaut (le type de la propriété qui stocke l'association)
+ est correcte dans la plupart des cas. Il est cependant utile lorsque
+ vous souhaitez retourner une interface plutôt qu'une entité
+ normale.</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, <emphasis
+ role="bold">targetEntity=CompanyImpl.class</emphasis> )
+ @JoinColumn(name="COMP_ID")
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+
+public interface Company {
+ ...
+ </programlisting>
+
+ <para>Vous pouvez sinon mapper une association plusieurs à un avec une
+ table d'association. Cette association décrite par l'annotation
+ <literal>@JoinTable</literal> contiendra une clef étrangère référençant
+ la table de l'entité (avec
+ <literal>@JoinTable.joinColumns</literal>) et une clef étrangère
+ référençant la table de l'entité cible (avec
+ <literal>@JoinTable.inverseJoinColumns</literal>).</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+ <emphasis role="bold">@JoinTable(name="Flight_Company",
+ joinColumns = @JoinColumn(name="FLIGHT_ID"),
+ inverseJoinColumns = @JoinColumn(name="COMP_ID")
+ )</emphasis>
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+ </programlisting>
+ </sect3>
+
+ <sect3 id="entity-mapping-association-collections">
+ <title>Collections</title>
+
+ <sect4 id="entity-mapping-association-collections-overview"
+ revision="1">
+ <title>Vue d'ensemble</title>
+
+ <para>Vous pouvez mapper des <classname>Collection</classname>s, des
+ <literal>List</literal>s (ie des listes ordonnées, pas des listes
+ indexées), des <literal>Map</literal>s et des
+ <classname>Set</classname>s. La spécification EJB3 décrit comment
+ mapper une liste ordonnée (ie une liste ordonnée au chargement) en
+ utilisant l'annotation <literal>@javax.persistence.OrderBy</literal> :
+ pour ordonner la collection, cette annotation prend en paramètre une
+ liste de propriétés (de l'entité cible) séparées par des virgules
+ (p. ex. <code>firstname asc, age desc</code>) ; si la chaîne de
+ caractères est vide, la collection sera ordonnée par les identifiants.
+ Pour le moment <literal>@OrderBy</literal> fonctionne seulement sur
+ des collections n'ayant pas de table d'association. Pour les
+ véritables collections indexées, veuillez vous référer à
+ <xref linkend="entity-hibspec" />. EJB3 vous permet de mapper des
+ <literal>Map</literal>s en utilisant comme clef une des propriétés de
+ l'entité cible avec <literal>@MapKey(name="myProperty")</literal>
+ (myProperty est un nom de propriété de l'entité cible). Lorsque vous
+ utilisez <literal>@MapKey</literal> sans nom de propriété, la clef
+ primaire de l'entité cible est utilisée. La clef de la map utilise la
+ même colonne que celle pointée par la propriété : il n'y a pas de
+ colonne supplémentaire définie pour la clef de la map, et c'est normal
+ puisque la clef de la map représente en fait un propriété de la cible.
+ Faites attention qu'une fois chargée, la clef n'est plus synchronisée
+ avec la propriété, en d'autres mots, si vous modifiez la valeur de la
+ propriété, la clef ne sera pas changée automatiquement dans votre
+ modèle Java (pour une véritable prise en charge des maps veuillez vous
+ référer à <xref linkend="entity-hibspec" />). Beaucoup de gens
+ confondent les capacités de <literal><map></literal> et celles
+ de <literal>@MapKey</literal>. Ce sont deux fonctionnalités
+ différentes. <literal>@MapKey</literal> a encore quelques limitations,
+ veuillez vous référer au forum ou au système de suivi de bogues JIRA
+ pour plus d'informations.</para>
+
+ <para>Hibernate a plusieurs notions de collections.</para>
+
+ <para></para>
+
+ <table>
+ <title>Sémantique des collections</title>
+
+ <tgroup cols="3">
+ <colspec colname="c1" />
+
+ <colspec colname="c2" />
+
+ <colspec colname="c3" colnum="2" />
+
+ <thead>
+ <row>
+ <entry>Sémantique</entry>
+
+ <entry>Représentation Java</entry>
+
+ <entry>Annotations</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Sémantique de Bag</entry>
+
+ <entry>java.util.List, java.util.Collection</entry>
+
+ <entry>@org.hibernate.annotations.CollectionOfElements ou
+ @OneToMany ou @ManyToMany</entry>
+ </row>
+
+ <row>
+ <entry>Sémantique de Bag avec une clef primaire (sans les
+ limitations de la sémantique de Bag)</entry>
+
+ <entry>java.util.List, java.util.Collection</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements ou
+ @OneToMany ou @ManyToMany) et @CollectionId</entry>
+ </row>
+
+ <row>
+ <entry>Sémantique de List</entry>
+
+ <entry>java.util.List</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements ou
+ @OneToMany ou @ManyToMany) et
+ @org.hibernate.annotations.IndexColumn</entry>
+ </row>
+
+ <row>
+ <entry>Sémantique de Set</entry>
+
+ <entry>java.util.Set</entry>
+
+ <entry>@org.hibernate.annotations.CollectionOfElements ou
+ @OneToMany ou @ManyToMany</entry>
+ </row>
+
+ <row>
+ <entry>Sémantique de Map</entry>
+
+ <entry>java.util.Map</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements ou
+ @OneToMany ou @ManyToMany) et (rien ou
+ @org.hibernate.annotations.MapKey/MapKeyManyToMany pour une
+ véritable prise en charge des maps, ou
+ @javax.persistence.MapKey</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <remark>Donc spécifiquement, les collections java.util.List sans
+ @org.hibernate.annotations.IndexColumn vont être considérées commes
+ des bags.</remark>
+
+ <para>Les collections de types primitifs, de types core ou d'objets
+ embarqués ne sont pas prises en charge par la spécification EJB3.
+ Cependant Hibernate Annotations les autorise
+ (voir <xref linkend="entity-hibspec" />).</para>
+
+ <programlisting>@Entity public class City {
+ @OneToMany(mappedBy="city")
+ <emphasis role="bold">@OrderBy("streetName")</emphasis>
+ public List<Street> getStreets() {
+ return streets;
+ }
+...
+}
+
+ at Entity public class Street {
+ <emphasis role="bold">public String getStreetName()</emphasis> {
+ return streetName;
+ }
+
+ @ManyToOne
+ public City getCity() {
+ return city;
+ }
+ ...
+}
+
+
+ at Entity
+public class Software {
+ @OneToMany(mappedBy="software")
+ <emphasis role="bold">@MapKey(name="codeName")</emphasis>
+ public Map<String, Version> getVersions() {
+ return versions;
+ }
+...
+}
+
+ at Entity
+ at Table(name="tbl_version")
+public class Version {
+ <emphasis role="bold">public String getCodeName()</emphasis> {...}
+
+ @ManyToOne
+ public Software getSoftware() { ... }
+...
+}</programlisting>
+
+ <para>Donc <literal>City</literal> a une collection de
+ <literal>Street</literal>s qui sont ordonnées par
+ <literal>streetName</literal> (de <literal>Street</literal>) lorsque
+ la collection est chargée. <literal>Software</literal> a une map de
+ <literal>Version</literal>s dont la clef est
+ <literal>codeName</literal> de <literal>Version</literal>.</para>
+
+ <para>A moins que la collection soit une "generic", vous devrez
+ définir <literal>targetEntity</literal>. C'est un attribut de
+ l'annotation qui prend comme valeur la classe de l'entité
+ cible.</para>
+ </sect4>
+
+ <sect4 id="entity-mapping-association-collection-onetomany"
+ revision="2">
+ <title>One-to-many</title>
+
+ <para>Les associations one-to-many sont déclarées au niveau propriété
+ avec l'annotation <literal>@OneToMany</literal>. Les associations un
+ à plusieurs peuvent être bidirectionnelles.</para>
+
+ <sect5>
+ <title>Relation bidirectionnelle</title>
+
+ <para>Puisque les associations plusieurs à un sont (presque)
+ toujours l'extrémité propriétaire de la relation bidirectionnelle
+ dans la spécification EJB3, l'association un à plusieurs est
+ annotée par <literal>@OneToMany(mappedBy=...)</literal>.</para>
+
+ <programlisting>@Entity
+public class Troop {
+ @OneToMany(mappedBy="troop")
+ public Set<Soldier> getSoldiers() {
+ ...
+}
+
+ at Entity
+public class Soldier {
+ @ManyToOne
+ @JoinColumn(name="troop_fk")
+ public Troop getTroop() {
+ ...
+} </programlisting>
+
+ <para><classname>Troop</classname> a une relation bidirectionnelle
+ un à plusieurs avec <literal>Soldier</literal> à travers la
+ propriété <literal>troop</literal>. Vous ne devez pas définir
+ de mapping physique à l'extrémité de
+ <literal>mappedBy</literal>.</para>
+
+ <para>Pour mapper une relation bidirectionnelle un à plusieurs, avec
+ l'extrémité one-to-many comme extrémité propriétaire, vous devez
+ enlever l'élément <literal>mappedBy</literal> et marquer
+ l'annotation <literal>@JoinColumn</literal> de l'extrémité plusieurs
+ à un comme ne pouvant pas être insérée et ni mise à jour. Cette
+ solution n'est certainement pas optimisée et produira quelques
+ commandes UPDATE supplémentaires.</para>
+
+ <programlisting>@Entity
+public class Troop {
+ @OneToMany
+ @JoinColumn(name="troop_fk") // nous avons besoin de dupliquer l'information physique
+ public Set<Soldier> getSoldiers() {
+ ...
+}
+
+ at Entity
+public class Soldier {
+ @ManyToOne
+ @JoinColumn(name="troop_fk", insertable=false, updatable=false)
+ public Troop getTroop() {
+ ...
+}</programlisting>
+ </sect5>
+
+ <sect5>
+ <title>Relation unidirectionnelle</title>
+
+ <para>Une relation un à plusieurs unidirectionnelle utilisant une
+ colonne de clef étrangère de l'entité propriétaire n'est pas si
+ commune, réellement recommandée. Nous vous conseillons
+ fortement d'utiliser une table de jointure pour cette sorte
+ d'association (comme expliqué dans la prochaine section). Cette
+ sorte d'association est décrite à travers
+ <literal>@JoinColumn</literal>.</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ public Set<Ticket> getTickets() {
+ ...
+}
+
+ at Entity
+public class Ticket implements Serializable {
+ ... // pas de relation bidirectionnelle
+}
+ </programlisting>
+
+ <para><literal>Customer</literal> décrit une relation
+ unidirectionnelle avec <literal>Ticket</literal> en utilisant la
+ colonne de jointure <literal>CUST_ID</literal>.</para>
+ </sect5>
+
+ <sect5>
+ <title>Relation unidirectionnel avec une table de jointure</title>
+
+ <para>Une relation unidirectionnelle un à plusieurs avec une table
+ de jointure est largement préférée. Cette association est décrite
+ à travers l'annotation <literal>@JoinTable</literal>.</para>
+
+ <programlisting>
+ at Entity
+public class Trainer {
+ @OneToMany
+ @JoinTable(
+ name="TrainedMonkeys",
+ joinColumns = @JoinColumn( name="trainer_id"),
+ inverseJoinColumns = @JoinColumn( name="monkey_id")
+ )
+ public Set<Monkey> getTrainedMonkeys() {
+ ...
+}
+
+ at Entity
+public class Monkey {
+ ... // pas de relation bidirectionnelle
+}
+ </programlisting>
+
+ <para><literal>Trainer</literal> décrit une relation
+ unidirectionelle avec <classname>Monkey</classname> en utilisant la
+ table de jointure <classname>TrainedMonkeys</classname>, avec une
+ clef étrangère <literal>trainer_id</literal> vers
+ <literal>Trainer</literal> (<literal>joinColumns</literal>) et une
+ clef étrangère <literal>monkey_id</literal> vers
+ <literal>Monkey</literal>
+ (<literal>inversejoinColumns</literal>).</para>
+ </sect5>
+
+ <sect5 id="entity-mapping-association-collection-manytomany-default"
+ revision="1">
+ <title>Valeurs par défaut</title>
+
+ <para>Si aucun mapping physique n'est déclaré, une relation
+ unidirectionnelle un vers plusieurs utilise une table de jointure.
+ Le nom de la table est la concaténation du nom de la table
+ propriétaire, <keycap>_</keycap>, et le nom de la table de l'autre
+ extrémité. Le nom des colonnes de la clef étrangère référençant la
+ table propriétaire est la concaténation de la table propriétaire,
+ <keycap>_</keycap>, et le nom des colonnes de la clef primaire. Le
+ nom des colonnes de la clef étrangère référençant l'autre extrémité
+ est la concaténation du nom de la propriété du propriétaire,
+ <keycap>_</keycap>, et le nom des colonnes de la clef primaire de
+ l'autre extrémité. Une contrainte d'unicité est ajoutée sur la
+ clef étrangère référençant la table de l'autre extrémité pour
+ réfléter le un à plusieurs.</para>
+
+ <programlisting>
+ at Entity
+public class Trainer {
+ @OneToMany
+ public Set<Tiger> getTrainedTigers() {
+ ...
+}
+
+ at Entity
+public class Tiger {
+ ... // non bidirectionnelle
+}
+ </programlisting>
+
+ <para><classname>Trainer</classname> décrit une relation
+ unidirectionnelle avec <classname>Tiger</classname> utilisant la
+ table de jointure <literal>Trainer_Tiger</literal>, avec une clef
+ étrangère <literal>trainer_id</literal> vers
+ <literal>Trainer</literal> (nom de la table, <keycap>_</keycap>,
+ identifiant de trainer) et une clef étrangère
+ <literal>trainedTigers_id</literal> vers <literal>Monkey</literal>
+ (nom de la propriété, <keycap>_</keycap>, colonne de la clef
+ primaire de Tiger).</para>
+ </sect5>
+ </sect4>
+
+ <sect4 id="eentity-mapping-association-collection-manytomany"
+ revision="">
+ <title>Many-to-many</title>
+
+ <sect5>
+ <title>Définition</title>
+
+ <para>Une association many-to-many est définie logiquement en
+ utilisant l'annotation <literal>@ManyToMany</literal>. Vous devez
+ aussi décrire la table d'association et les conditions de jointure
+ en utilisant l'annotation <literal>@JoinTable</literal>. Si
+ l'association est bidirectionnelle, une extrémité doit être la
+ propriétaire et l'autre doit être marquée comme "inverse" (ie
+ qu'elle sera ignorée lors de la mise à jour des valeurs de la
+ relation dans la table d'association) :</para>
+
+ <programlisting>
+ at Entity
+public class Employer implements Serializable {
+ @ManyToMany(
+ targetEntity=org.hibernate.test.metadata.manytomany.Employee.class,
+ cascade={CascadeType.PERSIST, CascadeType.MERGE}
+ )
+ @JoinTable(
+ name="EMPLOYER_EMPLOYEE",
+ joinColumns=@JoinColumn(name="EMPER_ID"),
+ inverseJoinColumns=@JoinColumn(name="EMPEE_ID")
+ )
+ public Collection getEmployees() {
+ return employees;
+ }
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Employee implements Serializable {
+ @ManyToMany(
+ cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+ mappedBy = "employees",
+ targetEntity = Employer.class
+ )
+ public Collection getEmployers() {
+ return employers;
+ }
+}
+ </programlisting>
+
+ <para>Nous avons déjà montré les déclarations des relations
+ "many" et détaillé les attributs de ces associations. Allons
+ plus en profondeur dans la description de
+ <literal>@JoinTable</literal> ; elle définit un
+ <literal>name</literal>, un tableau de colonnes de jointure (un
+ tableau dans une annotation est défini par {A, B, C}), et un tableau
+ de colonnes de jointure inverse. Ces dernières sont les colonnes
+ de la table d'association qui référencent la clef primaire de
+ <classname>Employee</classname> ("l'autre extrémité").</para>
+
+ <para>Comme vu précédemment, l'autre extrémité ne doit pas décrire
+ le mapping physique : un simple argument
+ <literal>mappedBy</literal> contenant le nom de la propriété de
+ l'extrémité propriétaire suffit à relier les deux.</para>
+ </sect5>
+
+ <sect5>
+ <title>Valeurs par défaut</title>
+
+ <para>Comme d'autres annotations, la plupart des valeurs d'une
+ relation plusieurs à plusieurs sont inférées. Si aucun mapping
+ physique n'est décrit dans une relation plusieurs à plusieurs
+ unidirectionnelle, alors les règles suivantes s'appliquent. Le nom
+ de la table est la concaténation du nom de la table propriétaire,
+ <keycap>_</keycap> et le nom de la table de l'autre extrémité. Le
+ nom des colonnes de la clef étrangère référençant la table
+ propriétaire est la concaténation du nom de la table propriétaire,
+ <keycap>_</keycap> et le nom des colonnes de la clef primaire
+ de cette table. Le nom des colonnes de la clef étrangère référençant
+ l'autre extrémité est la concaténation du nom de la propriété du
+ propriétaire, <keycap>_</keycap> et le nom des colonnes de la
+ clef primaire de l'autre extrémité. Ce sont les mêmes règles que
+ celles utilisées pour une relation un à plusieurs
+ unidirectionnelle.</para>
+
+ <programlisting>
+ at Entity
+public class Store {
+ @ManyToMany(cascade = CascadeType.PERSIST)
+ public Set<City> getImplantedIn() {
+ ...
+ }
+}
+
+ at Entity
+public class City {
+ ... // pas de relation bidirectionnelle
+}
+ </programlisting>
+
+ <para>La table <literal>Store_City</literal> est utilisée comme
+ table de jointure. La colonne <literal>Store_id</literal> est
+ une clef étrangère vers la table <literal>Store</literal>. La
+ colonne <literal>implantedIn_id</literal> est une clef étrangère
+ vers la table <literal>City</literal>.</para>
+
+ <para>Si aucun mapping physique n'est décrit dans une relation
+ plusieurs à plusieurs bidirectionnelle, alors les règles suivantes
+ s'appliquent. Le nom de la table est la concaténation du nom de la
+ table propriétaire, <keycap>_</keycap> et le nom de la table de
+ l'autre extrémité. Le nom des colonnes de la clef étrangère
+ référençant la table propriétaire est la concaténation du nom de la
+ propriété de l'autre extrémité, <keycap>_</keycap> et le nom des
+ colonnes de la clef primaire du propriétaire. Le nom des colonnes de
+ la clef étrangère référençant l'autre extrémité est la concaténation
+ du nom de la propriété du propriétaire, <keycap>_</keycap> et le nom
+ des colonnes de la clef primaire de l'autre extrémité. Ce sont les
+ mêmes règles que celles utilisées pour une relation un à plusieurs
+ unidirectionnelle.</para>
+
+ <programlisting>
+ at Entity
+public class Store {
+ @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
+ public Set<Customer> getCustomers() {
+ ...
+ }
+}
+
+ at Entity
+public class Customer {
+ @ManyToMany(mappedBy="customers")
+ public Set<Store> getStores() {
+ ...
+ }
+}
+ </programlisting>
+
+ <para>La table <literal>Store_Customer</literal> est utilisée comme
+ table de jointure. La colonne <literal>stores_id</literal> est une
+ clef étrangère vers la table <literal>Store</literal>. La colonne
+ <literal>customers_id</literal> est une clef étrangère vers la table
+ <literal>Customer</literal>.</para>
+ </sect5>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Persistance transitive avec les opérations en cascade</title>
+
+ <para>Vous avez probablement remarqué l'attribut
+ <literal>cascade</literal> prenant comme valeur un tableau de
+ <classname>CascadeType</classname>s. Le concept de cascade dans EJB3 est
+ similaire à la persistance transitive et les opérations en cascade dans
+ Hibernate, mais avec une sémantique légèrement différente et les types
+ de cascade suivants :</para>
+
+ <itemizedlist>
+ <listitem>
+ CascadeType.PERSIST : effectue en cascade l'opération de
+ persistance (création) sur les entités associées si persist() est
+ appelée ou si l'entité est supervisée (par le gestionnaire
+ d'entités)
+ </listitem>
+
+ <listitem>
+ CascadeType.MERGE : effectue en cascade l'opération de fusion sur
+ les entités associées si merge() est appélée ou si l'entité est
+ supervisée
+ </listitem>
+
+ <listitem>
+ CascadeType.REMOVE : effectue en cascade l'opération de
+ suppression sur les entités associées si delete() est appelée
+ </listitem>
+
+ <listitem>
+ CascadeType.REFRESH : effectue en cascade l'opération de
+ rafraîchissement sur les entités associées si refresh() est appelée
+ </listitem>
+
+ <listitem>
+ CascadeType.ALL : tous ceux du dessus
+ </listitem>
+ </itemizedlist>
+
+ <para>Veullez vous référer au chapitre 6.3 de la spécification EJB3 pour
+ plus d'informations sur les opérations en cascade et la sémantique des
+ opérations de création/fusion.</para>
+ </sect3>
+
+ <sect3>
+ <title>Récupération d'associations</title>
+
+ <para>Vous avez la possibilité de récupérer les entités associées soit
+ immédiatement ("eager"), soit à la demande ("lazy"). Le paramètre
+ <literal>fetch</literal> peut être positionné à
+ <literal>FetchType.LAZY</literal> ou à
+ <literal>FetchType.EAGER</literal>. <literal>EAGER</literal> essaiera
+ d'utiliser une jointure externe pour rappatrier l'objet associé,
+ alors que <literal>LAZY</literal> est la valeur par défaut et rapportera
+ les données lorsque l'objet associé sera accédé pour la première fois.
+ JPA-QL a aussi un mot clef <literal>fetch</literal> qui vous permet de
+ surcharger le type de récupération pour une requête particulière. C'est
+ très utile pour améliorer les performances et décider au cas par
+ cas.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Mapper des clefs primaires et étrangères composées</title>
+
+ <para>Les clefs primaires composées utilisent une classe embarquée comme
+ représentation de la clef primaire, donc vous devriez utiliser les
+ annotations <literal>@Id</literal> et <literal>@Embeddable</literal>.
+ Alternativement, vous pouvez utiliser l'annotation
+ <literal>@EmbeddedId</literal>. Notez que la classe dépendante doit être
+ sérialisable et implementer
+ <methodname>equals()</methodname>/<methodname>hashCode()</methodname>.
+ Vous pouvez aussi utiliser <literal>@IdClass</literal> comme décrit dans
+ <xref linkend="entity-mapping-identifier" />.</para>
+
+ <programlisting>
+ at Entity
+public class RegionalArticle implements Serializable {
+
+ @Id
+ public RegionalArticlePk getPk() { ... }
+}
+
+ at Embeddable
+public class RegionalArticlePk implements Serializable { ... }
+ </programlisting>
+
+ <para>ou alternativement</para>
+
+ <programlisting>
+ at Entity
+public class RegionalArticle implements Serializable {
+
+ @EmbeddedId
+ public RegionalArticlePk getPk() { ... }
+}
+
+public class RegionalArticlePk implements Serializable { ... }
+ </programlisting>
+
+ <para><literal>@Embeddable</literal> hérite le type d'accès de son entité
+ d'appartenance à moins que l'annotation spécifique Hibernate
+ <literal>@AccessType</literal> soit utilisée. Les clefs étrangères
+ composées (si les valeurs par défaut ne sont pas utilisées) sont définies
+ sur les associations en utilisant l'élément
+ <literal>@JoinColumns</literal>, lequel est simplement un tableau de
+ <literal>@JoinColumn</literal>s. Il est considéré comme une bonne pratique
+ d'exprimer <literal>referencedColumnNames</literal> explicitement. Sinon,
+ Hibernate supposera que vous utilisez le même ordre de colonnes que dans
+ la déclaration de la clef primaire.</para>
+
+ <programlisting>
+ at Entity
+public class Parent implements Serializable {
+ @Id
+ public ParentPk id;
+ public int age;
+
+ @OneToMany(cascade=CascadeType.ALL)
+ @JoinColumns ({
+ @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+ @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+ @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+ })
+ public Set<Child> children; //unidirectionnelle
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Child implements Serializable {
+ @Id @GeneratedValue
+ public Integer id;
+
+ @ManyToOne
+ @JoinColumns ({
+ @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+ @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+ @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+ })
+ public Parent parent; // unidirectionnelle
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class ParentPk implements Serializable {
+ String firstName;
+ String lastName;
+ ...
+}
+ </programlisting>
+
+ <para>Notez l'usage explicite de
+ <literal>referencedColumnName</literal>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Mapper des tables secondaires</title>
+
+ <para>Vous pouvez mapper un simple entity bean vers plusieurs tables en
+ utilisant les annotations de niveau classe
+ <literal>@SecondaryTable</literal> ou
+ <literal>@SecondaryTables</literal>. Pour dire qu'une colonne est dans
+ une table particulière, utlisez le paramètre <literal>table</literal> de
+ <literal>@Column</literal> ou <literal>@JoinColumn</literal>.</para>
+
+ <programlisting>
+ at Entity
+ at Table(name="MainCat")
+<emphasis role="bold">@SecondaryTables({
+ @SecondaryTable(name="Cat1", pkJoinColumns={
+ @PrimaryKeyJoinColumn(name="cat_id", referencedColumnName="id")
+ ),
+ @SecondaryTable(name="Cat2", uniqueConstraints={@UniqueConstraint(columnNames={"storyPart2"})})
+})</emphasis>
+public class Cat implements Serializable {
+
+ private Integer id;
+ private String name;
+ private String storyPart1;
+ private String storyPart2;
+
+ @Id @GeneratedValue
+ public Integer getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ <emphasis role="bold">@Column(table="Cat1")</emphasis>
+ public String getStoryPart1() {
+ return storyPart1;
+ }
+
+ <emphasis role="bold">@Column(table="Cat2")</emphasis>
+ public String getStoryPart2() {
+ return storyPart2;
+ }
+</programlisting>
+
+ <para>Dans cet exemple, <literal>name</literal> sera dans
+ <literal>MainCat</literal>. <literal>storyPart1</literal> sera dans
+ <literal>Cat1</literal> et <literal>storyPart2</literal> sera dans
+ <literal>Cat2</literal>. <literal>Cat1</literal> sera joint à
+ <literal>MainCat</literal> avec <literal>cat_id</literal> comme clef
+ étrangère, et <literal>Cat2</literal> avec <literal>id</literal> (ie
+ le même nom de colonne que la colonne identifiante de
+ <literal>MainCat</literal>). De plus, une contrainte d'unicité sur
+ <literal>storyPart2</literal> a été renseignée.</para>
+
+ <para>Regardez le tutoriel EJB3 de JBoss ou la suite de tests
+ unitaires d'Hibernate Annotations pour plus d'exemples.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="entity-mapping-query">
+ <title>Mapper des requêtes</title>
+
+ <sect2 id="entity-mapping-query-hql"
+ revision="1">
+ <title>Mapper des requêtes JPAQL/HQL</title>
+
+ <para>Vous pouvez mapper des requêtes JPA-QL/HQL en utilisant les
+ annotations. <literal>@NamedQuery</literal> et
+ <literal>@NamedQueries</literal> peuvent être définies au niveau de la
+ classe ou dans un fichier JPA XML. Cependant, leurs définitions sont
+ globales au scope de la session factory/entity manager factory. Une
+ requête nommée est définie par son nom et la chaîne de caractères de la
+ requête réelle.</para>
+
+ <programlisting><entity-mappings>
+ <named-query name="plane.getAll">
+ <query>select p from Plane p</query>
+ </named-query>
+ ...
+</entity-mappings>
+...
+
+ at Entity
+ at NamedQuery(name="night.moreRecentThan", query="select n from Night n where n.date >= :date")
+public class Night {
+ ...
+}
+
+public class MyDao {
+ doStuff() {
+ Query q = s.getNamedQuery("night.moreRecentThan");
+ q.setDate( "date", aMonthAgo );
+ List results = q.list();
+ ...
+ }
+ ...
+}
+ </programlisting>
+
+ <para>Vous pouvez aussi fournir des indications de fonctionnement à une
+ requête à travers un tableau de <literal>QueryHint</literal>s avec
+ l'attribut <literal>hints</literal>.</para>
+
+ <para>Les indications de fonctionnement Hibernate disponibles
+ sont :</para>
+
+ <para></para>
+
+ <table>
+ <title>Indications de fonctionnement d'une requête</title>
+
+ <tgroup cols="2">
+ <thead>
+ <colspec colname="c1" />
+
+ <colspec colname="c2" colnum="2" />
+
+ <row>
+ <entry>Indication</entry>
+
+ <entry colname="c2">description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>org.hibernate.cacheable</entry>
+
+ <entry>Indique si la requête devrait interagir avec le cache de
+ second niveau (par défaut à false)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.cacheRegion</entry>
+
+ <entry>Nom de la région du cache (si indéfinie, la valeur par
+ défaut est utilisée)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.timeout</entry>
+
+ <entry>Timeout des requêtes</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.fetchSize</entry>
+
+ <entry>Taille des result sets par fetch</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.flushMode</entry>
+
+ <entry>Mode de flush utilisé pour cette requête</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.cacheMode</entry>
+
+ <entry>Mode de cache utilisé pour cette requête</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.readOnly</entry>
+
+ <entry>Indique si les entités chargées par cette requête devraient
+ être en lecture seule ou pas (par défaut à false)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.comment</entry>
+
+ <entry>Commentaire de la requête, ajouté au SQL généré</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="entity-mapping-query-native" revision="2">
+ <title>Mapper des requêtes natives</title>
+
+ <para>Vous pouvez aussi mapper une requête native (ie une requête SQL).
+ Pour ce faire, vous devez décrire la structure de l'ensemble de résultat
+ SQL en utilisant <literal>@SqlResultSetMapping</literal> (ou
+ <literal>@SqlResultSetMappings</literal> si vous prévoyez de définir
+ plusieurs mappings de résultats). Comme <literal>@NamedQuery</literal>, un
+ <literal>@SqlResultSetMapping</literal> peut être défini au niveau de la
+ classe ou dans un fichier XML JPA. Cependant sa portée est globale à
+ l'application.</para>
+
+ <para>Comme vous le verrez, un paramètre de
+ <literal>resultSetMapping</literal> est défini dans
+ <literal>@NamedNativeQuery</literal>, il représente le nom du
+ <literal>@SqlResultSetMapping</literal> défini. Le mapping de l'ensemble
+ des résultats déclare les entités récupérées par cette requête native.
+ Chaque champ de l'entité est lié à un alias SQL (nom de colonne). Tous les
+ champs de l'entité (dont ceux des classes filles) et les colonnes des
+ clefs étrangères relatives aux entités doivent être présents dans la
+ requête SQL. Les définitions des champs sont optionnelles, si elles ne
+ sont pas fournies, elles mappent le même nom de colonne que celui déclaré
+ sur la propriété de la classe.</para>
+
+ <para><programlisting>@NamedNativeQuery(name="night&area", query="select night.id nid, night.night_duration, "
+ + " night.night_date, area.id aid, night.area_id, area.name "
+ + "from Night night, Area area where night.area_id = area.id", <emphasis
+ role="bold">resultSetMapping="joinMapping"</emphasis>)
+ at SqlResultSetMapping(name="joinMapping", entities={
+ @EntityResult(entityClass=org.hibernate.test.annotations.query.Night.class, fields = {
+ @FieldResult(name="id", column="nid"),
+ @FieldResult(name="duration", column="night_duration"),
+ @FieldResult(name="date", column="night_date"),
+ @FieldResult(name="area", column="area_id"),
+ discriminatorColumn="disc"
+ }),
+ @EntityResult(entityClass=org.hibernate.test.annotations.query.Area.class, fields = {
+ @FieldResult(name="id", column="aid"),
+ @FieldResult(name="name", column="name")
+ })
+ }
+)</programlisting></para>
+
+ <para>Dans l'exemple ci-dessus, la requête nommée
+ <literal>night&area</literal> utilise le mapping de résultats
+ <literal>joinMapping</literal>. Ce mapping retourne 2 entités,
+ <literal>Night</literal> et <literal>Area</literal>, chaque propriété est
+ déclarée et associée à un nom de colonne, en fait le nom de colonne
+ récupéré par la requête. Voyons maintenant une déclaration implicite de
+ mapping propriété/colonne.</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@SqlResultSetMapping(name="implicit", entities=@EntityResult(entityClass=org.hibernate.test.annotations.query.SpaceShip.class))
+ at NamedNativeQuery(name="implicitSample", query="select * from SpaceShip", resultSetMapping="implicit")</emphasis>
+public class SpaceShip {
+ private String name;
+ private String model;
+ private double speed;
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Column(name="model_txt")
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+}</programlisting>
+
+ <para>Dans cet exemple, nous décrivons seulement le membre de l'entité du
+ mapping de résultats. Le mapping de propriété/colonne est fait en
+ utilisant les valeurs de mapping de l'entité. Dans ce cas, la propriété
+ <literal>model</literal> est liée à la colonne
+ <literal>model_txt</literal>. Si l'association à une entité concernée
+ implique une clef primaire composée, un élément
+ <literal>@FieldResult</literal> devrait être utilisé pour chaque colonne
+ de la clef étrangère. Le nom de <literal>@FieldResult</literal> est
+ composé du nom de la propriété pour la relation, suivi par un point ("."),
+ suivi par le nom ou le champ ou la propriété de la clef primaire.</para>
+
+ <programlisting>@Entity
+ at SqlResultSetMapping(name="compositekey",
+ entities=@EntityResult(entityClass=org.hibernate.test.annotations.query.SpaceShip.class,
+ fields = {
+ @FieldResult(name="name", column = "name"),
+ @FieldResult(name="model", column = "model"),
+ @FieldResult(name="speed", column = "speed"),
+<emphasis role="bold"> @FieldResult(name="captain.firstname", column = "firstn"),
+ @FieldResult(name="captain.lastname", column = "lastn"),</emphasis>
+ @FieldResult(name="dimensions.length", column = "length"),
+ @FieldResult(name="dimensions.width", column = "width")
+ }),
+ columns = { @ColumnResult(name = "surface"),
+ @ColumnResult(name = "volume") } )
+
+ at NamedNativeQuery(name="compositekey",
+ query="select name, model, speed, lname as lastn, fname as firstn, length, width, length * width as surface from SpaceShip",
+ resultSetMapping="compositekey")
+} )
+public class SpaceShip {
+ private String name;
+ private String model;
+ private double speed;
+ private Captain captain;
+ private Dimensions dimensions;
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @ManyToOne(fetch= FetchType.LAZY)
+ @JoinColumns( {
+ @JoinColumn(name="fname", referencedColumnName = "firstname"),
+ @JoinColumn(name="lname", referencedColumnName = "lastname")
+ } )
+ public Captain getCaptain() {
+ return captain;
+ }
+
+ public void setCaptain(Captain captain) {
+ this.captain = captain;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+
+ public Dimensions getDimensions() {
+ return dimensions;
+ }
+
+ public void setDimensions(Dimensions dimensions) {
+ this.dimensions = dimensions;
+ }
+}
+
+ at Entity
+ at IdClass(Identity.class)
+public class Captain implements Serializable {
+ private String firstname;
+ private String lastname;
+
+ @Id
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ @Id
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+}
+</programlisting>
+
+ <note>
+ <para>Si vous regardez la propriété dimension, vous verrez qu'Hibernate
+ prend en charge la notation avec les points pour les objets embarqués
+ (vous pouvez même avoir des objets embarqués imbriqués). Les
+ implémentations EJB3 n'ont pas à prendre en charge cette fonctionnalité,
+ mais nous le faisons :-)</para>
+ </note>
+
+ <para>Si vous récupérez une simple entité et si vous utilisez le mapping
+ par défaut, vous pouvez utiliser l'attribut <literal>resultClass</literal>
+ à la place de <literal>resultSetMapping</literal> :</para>
+
+ <programlisting><emphasis role="bold">@NamedNativeQuery(name="implicitSample", query="select * from SpaceShip",
+ resultClass=SpaceShip.class)</emphasis>
+public class SpaceShip {</programlisting>
+
+ <para>Dans certaines de vos requêtes natives, vous devrez retourner des
+ valeurs scalaires, par exemple lors de la construction de requêtes de
+ rapport. Vous pouvez les mapper dans
+ <literal>@SqlResultsetMapping</literal> avec
+ <literal>@ColumnResult</literal>. En fait, vous pouvez même mélanger des
+ retours d'entités et de valeurs scalaires dans la même requête native (ce
+ n'est cependant probablement pas commun).</para>
+
+ <programlisting><emphasis role="bold">@SqlResultSetMapping(name="scalar", columns=@ColumnResult(name="dimension"))
+ at NamedNativeQuery(name="scalar", query="select length*width as dimension from SpaceShip", resultSetMapping="scalar")</emphasis></programlisting>
+
+ <para>Une autre indication de fonctionnement spécifique aux requêtes
+ natives a été présentée : <literal>org.hibernate.callable</literal>
+ laquelle peut être à true ou à false fausse selon que la requête est une
+ procédure stockée ou pas.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="entity-hibspec" xreflabel="Extensions d'Hibernate Annotation">
+ <title>Extensions d'Hibernate Annotation</title>
+
+ <para>Hibernate 3.1 offre une variété d'annotations supplémentaires que vous
+ pouvez mélanger/faire correspondre avec des entités EJB3. Elles ont été
+ conçues comme une extension naturelle aux annotations EJB3.</para>
+
+ <para>Pour aller plus loin que les capacités d'EJB3, Hibernate fournit des
+ annotations spécifiques qui correspondent aux fonctionnalités d'Hibernate.
+ Le package <classname>org.hibernate.annotations</classname> contient toutes
+ ces extensions d'annotations.</para>
+
+ <sect2 id="entity-hibspec-entity" revision="2">
+ <title>Entité</title>
+
+ <para>Vous pouvez finement paramétrer certaines des actions faites par
+ Hibernate sur les entités au-delà de ce qu'offre la spécification
+ EJB3.</para>
+
+ <para><classname>@org.hibernate.annotations.Entity</classname> ajoute des
+ méta-données supplémentaires qui peuvent être nécessaires au-delà de ce
+ qui est défini dans l'annotation <literal>@Entity</literal>
+ standard :<itemizedlist>
+ <listitem>
+ mutable : indique si l'entité est modifiable ou non
+ </listitem>
+
+ <listitem>
+ dynamicInsert : autorise le SQL dynamique pour les insertions
+ </listitem>
+
+ <listitem>
+ dynamicUpdate : autorise le SQL dynamique pour les mise à jour
+ </listitem>
+
+ <listitem>
+ selectBeforeUpdate : spécifie qu'Hibernate ne devrait jamais
+ exécuter un UPDATE SQL à moins qu'il ne soit certain qu'un objet
+ est réellement modifié
+ </listitem>
+
+ <listitem>
+ polymorphism : indique si le polymorphisme d'entité est de type
+ PolymorphismType.IMPLICIT (valeur par défaut) ou
+ PolymorphismType.EXPLICIT
+ </listitem>
+
+ <listitem>
+ persister : autorise la surcharge de l'implémentation de
+ persistance fournie par défaut
+ </listitem>
+
+ <listitem>
+ optimisticLock : stratégie de verrouillage optmiste
+ (OptimisticLockType.VERSION,
+ OptimisticLockType.NONE, OptimisticLockType.DIRTY ou
+ OptimisticLockType.ALL)
+ </listitem>
+ </itemizedlist></para>
+
+ <para><note>
+ <para>@javax.persistence.Entity est encore obligatoire,
+ @org.hibernate.annotations.Entity ne la remplace pas.</para>
+ </note></para>
+
+ <para>Voici quelques extensions d'annotations Hibernate
+ supplémentaires.</para>
+
+ <para><literal>@org.hibernate.annotations.BatchSize</literal> vous permet
+ de définir la taille du batch lors de la récupération d'instances de
+ cette entité (p. ex. <literal>@BatchSize(size=4)</literal>). Lors du
+ chargement d'une entité donnée, Hibernate chargera alors toutes les
+ entités non initialisées du même type dans le contexte de la persistance
+ jusqu'à la taille du batch.</para>
+
+ <para><literal>@org.hibernate.annotations.Proxy</literal> définit les
+ attributs de chargement de l'entité. lazy (valeur par défaut) définit si
+ la classe est chargée à la demande ou non. proxyClassName est l'interface
+ utilisée pour générer le proxy (par défaut, la classe elle-même).</para>
+
+ <para><literal>@org.hibernate.annotations.Where</literal> définit une
+ clause WHERE SQL optionnelle utilisée lorsque des instances de cette
+ classe sont récupérées.</para>
+
+ <para><literal>@org.hibernate.annotations.Check</literal> déclare une
+ contrainte de vérification optionnelle définie dans l'expression
+ DDL.</para>
+
+ <para><literal>@OnDelete(action=OnDeleteAction.CASCADE)</literal> sur des
+ classes filles jointes : utilise une commande SQL DELETE en cascade lors
+ de la suppression plutôt que le mécanisme habituel d'Hibernate.</para>
+
+ <para><literal>@Table(appliesTo="tableName", indexes = {
+ @Index(name="index1", columnNames={"column1", "column2"} ) } )</literal>
+ crée les index définis sur les colonnes de la table
+ <literal>tableName</literal>. Cela peut s'appliquer sur une table primaire
+ ou une table secondaire. L'annotation <literal>@Tables</literal> vous
+ permet d'avoir des index sur des tables différentes. Cette annotation est
+ attendue là où <literal>@javax.persistence.Table</literal> ou
+ <literal>@javax.persistence.SecondaryTable</literal>(s) sont
+ déclarées.</para>
+
+ <note>
+ <para><literal>@org.hibernate.annotations.Table</literal> est un
+ complément, pas un remplacement de
+ <literal>@javax.persistence.Table</literal>. Surtout, si vous souhaitez
+ changer le nom par défaut d'une table, vous devez utiliser
+ <literal>@javax.persistence.Table</literal>, pas
+ <literal>@org.hibernate.annotations.Table</literal>.</para>
+ </note>
+
+ <para><programlisting>@Entity
+ at BatchSize(size=5)
+ at org.hibernate.annotations.Entity(
+ selectBeforeUpdate = true,
+ dynamicInsert = true, dynamicUpdate = true,
+ optimisticLock = OptimisticLockType.ALL,
+ polymorphism = PolymorphismType.EXPLICIT)
+ at Where(clause="1=1")
+ at org.hibernate.annotations.Table(name="Forest", indexes = { @Index(name="idx", columnNames = { "name", "length" } ) } )
+public class Forest { ... }</programlisting><programlisting>@Entity
+ at Inheritance(
+ strategy=InheritanceType.JOINED
+)
+public class Vegetable { ... }
+
+ at Entity
+ at OnDelete(action=OnDeleteAction.CASCADE)
+public class Carrot extends Vegetable { ... }</programlisting></para>
+ </sect2>
+
+ <sect2 id="entity-hibspec-identifier" revision="1">
+ <title>Identifiant</title>
+
+ <para><literal>@org.hibernate.annotations.GenericGenerator</literal> vous
+ permet de définir un générateur d'identifiants Hibernate
+ spécifique.</para>
+
+ <para><programlisting>@Id @GeneratedValue(generator="system-uuid")
+ at GenericGenerator(name="system-uuid", strategy = "uuid")
+public String getId() {
+
+ at Id @GeneratedValue(generator="hibseq")
+ at GenericGenerator(name="hibseq", strategy = "seqhilo",
+ parameters = {
+ @Parameter(name="max_lo", value = "5"),
+ @Parameter(name="sequence", value="heybabyhey")
+ }
+)
+public Integer getId() {</programlisting></para>
+
+ <para><literal>strategy</literal> est le nom court de la stratégie du
+ générateur Hibernate3 ou le nom pleinement qualifié de la classe d'une
+ implémentation de <classname>IdentifierGenerator</classname>. Vous pouvez
+ ajouter des paramètres avec l'attribut
+ <literal>parameters</literal>.</para>
+
+ <para>Contrairement à son pendant standard,
+ <literal>@GenericGenerator</literal> peut ête utilisée dans les
+ annotations au niveau du package, en faisant ainsi un générateur de niveau
+ applicatif (comme s'il était dans un fichier JPA XML).</para>
+
+ <programlisting>@GenericGenerator(name="hibseq", strategy = "seqhilo",
+ parameters = {
+ @Parameter(name="max_lo", value = "5"),
+ @Parameter(name="sequence", value="heybabyhey")
+ }
+)
+package org.hibernate.test.model</programlisting>
+ </sect2>
+
+ <sect2 id="entity-hibspec-property" revision="2">
+ <title>Propriété</title>
+
+ <sect3>
+ <title>Type d'accès</title>
+
+ <para>Le type d'accès est déduit de la position de
+ <literal>@Id</literal> ou de <literal>@EmbeddedId</literal> dans la
+ hiérarchie de l'entité. Les entités filles, les objets embarqués et les
+ entités parentes mappés héritent du type d'accès de l'entité
+ racine.</para>
+
+ <para>Dans Hibernate, vous pouvez surcharger le type d'accès
+ pour :</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>utiliser une stratégie d'accès personnalisée</para>
+ </listitem>
+
+ <listitem>
+ <para>paramétrer finement le type d'accès au niveau de la classe ou
+ au niveau de la propriété</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Une annocation @AccessType a été présentée pour prendre en charge
+ ce comportement. Vous pouvez définir le type d'accès sur :</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>une entité</para>
+ </listitem>
+
+ <listitem>
+ <para>une classe parente</para>
+ </listitem>
+
+ <listitem>
+ <para>un objet embarqué</para>
+ </listitem>
+
+ <listitem>
+ <para>une propriété</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Le type d'accès est surchargé pour l'élément annoté, si surchargé
+ sur une classe, toutes les propriétés de la classe donnée héritent du
+ type d'accès. Pour les entités racines, le type d'accès est considéré
+ par défaut comme celui de la hiérarchie entière (surchargeable au niveau
+ de la classe ou de la propriété).</para>
+
+ <para>Si le type d'accès est marqué comme "propriété", les getters sont
+ parcourus pour examiner les annotations, si le type d'accès est marqué
+ comme "champ", ce sont les champs qui sont parcourus pour les
+ annotations. Sinon les éléments marqués avec @Id ou @embeddedId sont
+ scannés.</para>
+
+ <para>Vous pouvez surcharger une type d'accès pour une propriété, mais
+ l'élément annoté ne sera pas influencé : par exemple, une entité ayant
+ un type d'accès <literal>field</literal>, peut annoter un champ avec
+ <literal>@AccessType("property")</literal>, le type d'accès sera alors
+ "property" pour cet attribut, des annotations devront encore être
+ portées sur les champs.</para>
+
+ <para>Si une classe parente ou un objet embarquable n'est pas annoté, le
+ type d'accès de l'entité racine est utilisé (même si un type d'accès a
+ été défini sur une classe parente ou un objet embarquable
+ intermédiaire). Le principe de la poupée russe ne s'applique pas.</para>
+
+ <programlisting>@Entity
+public class Person implements Serializable {
+ @Id @GeneratedValue // type d'accès "champ"
+ Integer id;
+
+ @Embedded
+ @AttributeOverrides({
+ @AttributeOverride(name = "iso2", column = @Column(name = "bornIso2")),
+ @AttributeOverride(name = "name", column = @Column(name = "bornCountryName"))
+ })
+ Country bornIn;
+}
+
+ at Embeddable
+<emphasis role="bold">@AccessType("property")</emphasis> // surcharge le type d'accès pour toutes les propriétés dans Country
+public class Country implements Serializable {
+ private String iso2;
+ private String name;
+
+ public String getIso2() {
+ return iso2;
+ }
+
+ public void setIso2(String iso2) {
+ this.iso2 = iso2;
+ }
+
+ @Column(name = "countryName")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
+</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Formule</title>
+
+ <para>Parfois, vous voulez effectuer certains calculs par la base de
+ données plutôt que par la JVM, ou vous pourriez aussi vouloir créer une
+ sorte de colonne virtuelle. Vous pouvez utilisez un fragment SQL (alias
+ une formule) plutôt que de mapper un propriété sur une colonne. Cette
+ sorte de propriété est en lecture seule (sa valeur est calculée par
+ votre formule).</para>
+
+ <programlisting>@Formula("obj_length * obj_height * obj_width")
+public long getObjectVolume()</programlisting>
+
+ <para>Le fragment SQL peut être aussi complexe que vous le souhaitez,
+ même avec des sous-selects inclus.</para>
+ </sect3>
+
+ <sect3>
+ <title>Type</title>
+
+ <para><literal>@org.hibernate.annotations.Type</literal> surcharge le
+ type Hibernate utilisé par défaut : ce n'est généralement pas nécessaire
+ puisque le type est correctement inféré par Hibernate. Veuillez vous
+ référer au guide de référence Hibernate pour plus d'informations sur les
+ types Hibernate.</para>
+
+ <para><literal>@org.hibernate.annotations.TypeDef</literal> et
+ <literal>@org.hibernate.annotations.TypeDefs</literal> vous permettent
+ de déclarer des définitions de type. Ces annotations sont placées au
+ niveau de la classe ou du package. Notez que ces définitions seront
+ globales pour la session factory (même au niveau de la classe) et que la
+ définition du type doit être définie avant n'importe quelle
+ utilisation.</para>
+
+ <programlisting>@TypeDefs(
+ {
+ @TypeDef(
+ name="caster",
+ typeClass = CasterStringType.class,
+ parameters = {
+ @Parameter(name="cast", value="lower")
+ }
+ )
+ }
+)
+package org.hibernate.test.annotations.entity;
+
+...
+public class Forest {
+ @Type(type="caster")
+ public String getSmallText() {
+ ...
+}
+ </programlisting>
+
+ <para>Lors de l'utilisation d'un type utilisateur composé, vous devrez
+ exprimer les définitions des colonnes. L'annotation
+ <literal>@Columns</literal> a été mise en place dans ce but.</para>
+
+ <programlisting>@Type(type="org.hibernate.test.annotations.entity.MonetaryAmountUserType")
+ at Columns(columns = {
+ @Column(name="r_amount"),
+ @Column(name="r_currency")
+})
+public MonetaryAmount getAmount() {
+ return amount;
+}
+
+
+public class MonetaryAmount implements Serializable {
+ private BigDecimal amount;
+ private Currency currency;
+ ...
+}</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Index</title>
+
+ <para>Vous pouvez définir un index sur une colonne particulière en
+ utilisant l'annotation <literal>@Index</literal> sur une propriété d'une
+ colonne, l'attribut columnNames sera ignoré.</para>
+
+ <programlisting>@Column(secondaryTable="Cat1")
+ at Index(name="story1index")
+public String getStoryPart1() {
+ return storyPart1;
+}</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>@Parent</title>
+
+ <para>A l'intérieur d'un objet embarquable, vous pouvez définir
+ une des propriétés comme un pointeur vers l'élément
+ propriétaire.</para>
+
+ <programlisting>@Entity
+public class Person {
+ @Embeddable public Address address;
+ ...
+}
+
+ at Embeddable
+public class Address {
+ @Parent public Person owner;
+ ...
+}
+
+
+person == person.address.owner</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Propriétés générées</title>
+
+ <para>Certaines propriétés sont générées au moment de l'insertion ou de
+ la mise à jour par votre base de données. Hibernate peut traiter de
+ telles propriétés et déclencher un select subséquent pour lire ces
+ propriétés.</para>
+
+ <programlisting>@Entity
+public class Antenna {
+ @Id public Integer id;
+ @Generated(GenerationTime.ALWAYS) @Column(insertable = false, updatable = false)
+ public String longitude;
+
+ @Generated(GenerationTime.INSERT) @Column(insertable = false)
+ public String latitude;
+}</programlisting>
+
+ <para>Quand vous annotez votre propriété avec
+ <literal>@Generated</literal>, vous devez vous assurer que l'insertion
+ et la mise à jour n'entreront pas en conflit avec la stratégie de
+ génération que vous avez choisie. Lorsque GenerationTime.INSERT est
+ choisi, la propriété ne doit pas contenir de colonnes insérables ;
+ lorsque GenerationTime.ALWAYS est choisi, la propriété ne doit pas
+ contenir de colonnes qui puissent être insérées ou mises à jour.</para>
+
+ <para>Les propriétés <literal>@Version</literal> ne peuvent pas (par
+ conception) être <literal>@Generated(INSERT)</literal>, elles doivent
+ être <literal>NEVER</literal> ou <literal>ALWAYS</literal>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-hibspec-inheritance" revision="1">
+ <title>Héritage</title>
+
+ <para>SINGLE_TABLE est une stratégie très puissante mais parfois, et
+ surtout pour des systèmes pré-existants, vous ne pouvez pas ajouter une
+ colonne discriminante supplémentaire. Pour cela Hibernate a mis en place
+ la notion de formule discriminante :
+ <literal>@DiscriminatorFormula</literal> est une remplaçcant de
+ <literal>@DiscriminatorColumn</literal> et utilise un fragment SQL en tant
+ que formule pour la résolution du discriminant (pas besoin d'avoir une
+ colonne dédiée).</para>
+
+ <programlisting>@Entity
+ at DiscriminatorForumla("case when forest_type is null then 0 else forest_type end")
+public class Forest { ... }</programlisting>
+
+ <para>Par défaut, lors du requêtage sur les entités les plus hautes,
+ Hibernate ne met pas de restriction sur la colonne discriminante. Ceci
+ peut être un inconvénient si cette colonne contient des valeurs qui ne sont
+ pas mappées dans votre hiérarchie (avec
+ <literal>@DiscriminatorValue</literal>). Pour contourner ca, vous pouvez
+ utilser <literal>@ForceDiscriminator</literal> (au niveau de la classe,
+ à côté de <literal>@DiscriminatorColumn</literal>). Hibernate listera
+ alors les valeurs disponibles lors du chargement des entités.</para>
+ </sect2>
+
+ <sect2 id="entity-hibspec-singleassoc">
+ <title>Annotations concernant les simples associations</title>
+
+ <para>Par défaut, lorsqu'Hibernate ne peut pas résoudre l'association
+ parce que l'élément associé attendu n'est pas dans la base de données
+ (mauvais identifiant sur la colonne de l'association), une exception est
+ levée par Hibernate. Cela pourrait être un inconvénient pour des schémas
+ pré-existants et mal maintenus. Vous pouvez demander à Hibernate d'ignorer
+ de tels éléments plutôt que de lever une exception en utilisant
+ l'annotation <literal>@NotFound</literal>. Cette annotation peut être
+ utilisée sur une association <literal>@OneToOne</literal> (avec une clef
+ étrangère), <literal>@ManyToOne</literal>, <literal>@OneToMany</literal>
+ ou <literal>@ManyToMany</literal>.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ @NotFound(action=NotFoundAction.IGNORE)
+ public Parent getParent() { ... }
+ ...
+}</programlisting>
+
+ <para>Parfois vous voulez déléguer à votre base de données la suppression
+ en cascade lorsqu'une entité donnée est supprimée.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ public Parent getParent() { ... }
+ ...
+}</programlisting>
+
+ <para>Dans ce cas, Hibernate génère une contrainte de suppression en
+ cascade au niveau de la base de données.</para>
+
+ <para>Les contraintes de clef étrangère, bien que générées par Hibernate,
+ ont un nom justement illisible. Vous pouvez surcharger le nom de la
+ contrainte par l'utilisation de <literal>@ForeignKey</literal>.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ <emphasis role="bold">@ForeignKey(name="FK_PARENT")</emphasis>
+ public Parent getParent() { ... }
+ ...
+}
+
+alter table Child add constraint FK_PARENT foreign key (parent_id) references Parent</programlisting>
+
+ <sect3>
+ <title>Options de chargement et modes de récupération</title>
+
+ <para>EJB3 arrive avec l'option <literal>fetch</literal> pour définir
+ le chargement à la demande et les modes de récupération, cependant
+ Hibernate a beaucoup plus d'options dans ce domaine. Pour finement
+ paramétrer le chargement à la demande et les stratégies de récupération,
+ quelques annotations supplémentaires ont été mises en place :</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>@LazyToOne</literal> : définit l'option de chargement
+ à la demande sur les associations <literal>@ManyToOne</literal> et
+ <literal>@OneToOne</literal>. <literal>LazyToOneOption</literal>
+ peut être <literal>PROXY</literal> (ie utiliser un chargement à la
+ demande basé sur un proxy), <literal>NO_PROXY</literal> (utilise
+ un chargement à la demande sur l'ajout de bytecode - notez qu'un
+ temps de construction du bytecode est nécessaire) et
+ <literal>FALSE</literal> (association sans chargement à la
+ demande) ;</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@LazyCollection</literal> : définit l'option de
+ chargement à la demande sur les associations
+ <literal>@ManyToMany</literal> et <literal>@OneToMany</literal>.
+ LazyCollectionOption peut être <literal>TRUE</literal> (la
+ collection est chargée à la demande lorsque son état est accédé),
+ <literal>EXTRA</literal> (la collection est chargée à la demande et
+ toutes les opérations essaieront d'éviter le chargement de la
+ collection, c'est surtout utile pour de grosses collections lorsque
+ le chargement de tous les éléments n'est pas nécessaire) et
+ <literal>FALSE</literal> (association sans chargement à la
+ demande) ;</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@Fetch</literal> : définit une stratégie de
+ récupération utilisée pour charger l'association.
+ <literal>FetchMode</literal> peut être
+ <literal>SELECT</literal> (un select est déclenché lorsque
+ l'association a besoin d'être chargée), <literal>SUBSELECT</literal>
+ (disponible uniquement pour des collections, utilise une stratégie
+ de sous select - veuillez vous référer à la documentation de
+ référence d'Hibernate pour plus d'informations) ou
+ <literal>JOIN</literal> (utilise un JOIN SQL pour charger
+ l'association lors du chargement de l'entité propriétaire).
+ <literal>JOIN</literal> surcharge n'importe quel attribut de
+ chargement à la demande (une association chargée avec la stratégie
+ <literal>JOIN</literal> ne peut pas être chargée à la
+ demande).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Les annotations Hibernate surchargent les options de récupération
+ EJB3.</para>
+
+ <table>
+ <title>Chargement à la demande et options de récupération
+ équivalentes</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Annotations</entry>
+
+ <entry>Chargement à la demande</entry>
+
+ <entry>Récupération</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>@[One|Many]ToOne](fetch=FetchType.LAZY)</entry>
+
+ <entry>@LazyToOne(PROXY)</entry>
+
+ <entry>@Fetch(SELECT)</entry>
+ </row>
+
+ <row>
+ <entry>@[One|Many]ToOne](fetch=FetchType.EAGER)</entry>
+
+ <entry>@LazyToOne(FALSE)</entry>
+
+ <entry>@Fetch(JOIN)</entry>
+ </row>
+
+ <row>
+ <entry>@ManyTo[One|Many](fetch=FetchType.LAZY)</entry>
+
+ <entry>@LazyCollection(TRUE)</entry>
+
+ <entry>@Fetch(SELECT)</entry>
+ </row>
+
+ <row>
+ <entry>@ManyTo[One|Many](fetch=FetchType.EAGER)</entry>
+
+ <entry>@LazyCollection(FALSE)</entry>
+
+ <entry>@Fetch(JOIN)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-hibspec-collection" revision="2">
+ <title>Annotations concernant les collections</title>
+
+ <sect3 id="entity-hibspec-collection-enhance" revision="2">
+ <title>Améliorer les configurations des collections</title>
+
+ <para>Il est possible de configurer :<itemizedlist>
+ <listitem>
+ la taille des batchs pour les collections en utilisant @BatchSize
+ </listitem>
+
+ <listitem>
+ la clause where, en utilisant @Where (appliquée à l'entité cible)
+ ou @WhereJoinTable (appliquée à la table de l'association)
+ </listitem>
+
+ <listitem>
+ la clause de vérification, en utilsant @Check
+ </listitem>
+
+ <listitem>
+ la clause SQL order by, en utilisant @OrderBy
+ </listitem>
+
+ <listitem>
+ la stratégie de suppression en cascade avec
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ </listitem>
+ </itemizedlist></para>
+
+ <para>Vous pouvez aussi déclarer un comparateur de tri, utilisez
+ l'annotation <literal>@Sort</literal>. Exprimez le type de comparateur
+ que vous voulez entre "non trié" (NdT : unsorted), "ordre naturel"
+ (NdT : natural) ou un comparateur personnalisé. Si vous voulez utilisez
+ votre propre implémentation de comparateur, vous devrez indiquer la
+ classe d'implémentation en utilisant l'attribut
+ <literal>comparator</literal>. Notez que vous avez besoin d'utiliser
+ l'interface <classname>SortedSet</classname> ou
+ <classname>SortedMap</classname>.</para>
+
+ <programlisting> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ @Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
+ @Where(clause="1=1")
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ public SortedSet<Ticket> getTickets() {
+ return tickets;
+ }</programlisting>
+
+ <para>Veuillez vous référer aux descriptions précédentes de ces
+ annotations pour plus d'informations.</para>
+
+ <para>Les contraintes de clef étrangère, bien que générées par
+ Hibernate, ont un nom illisible. Vous pouvez surcharger le nom de la
+ contrainte en utilisant <literal>@ForeignKey</literal>. Notez que cette
+ annotation doit être placée du côté possédant la relation,
+ <literal>inverseName</literal> référençant la contrainte de l'autre
+ côté.</para>
+
+ <programlisting>@Entity
+public class Woman {
+ ...
+ @ManyToMany(cascade = {CascadeType.ALL})
+ <emphasis role="bold">@ForeignKey(name = "TO_WOMAN_FK", inverseName = "TO_MAN_FK")</emphasis>
+ public Set<Man> getMens() {
+ return mens;
+ }
+}
+
+alter table Man_Woman add constraint TO_WOMAN_FK foreign key (woman_id) references Woman
+alter table Man_Woman add constraint TO_MAN_FK foreign key (man_id) references Man</programlisting>
+ </sect3>
+
+ <sect3 id="entity-hibspec-collection-extratype" revision="1">
+ <title>Types de collection extra</title>
+
+ <sect4>
+ <title>List</title>
+
+ <para>Outre EJB3, Hibernate Annotations prend en charge les véritables
+ <classname>List</classname> et <classname>Array</classname>. Mappez
+ votre collection de la même manière que d'habitude et ajoutez
+ l'annotation @<literal>IndexColumn</literal>. Cette annotation vous
+ permet de décrire la colonne qui contiendra l'index. Vous pouvez aussi
+ déclarer la valeur de l'index en base de données qui représente le
+ premier élément (alias index de base). La valeur habituelle est
+ <literal>0</literal> ou <literal>1</literal>.</para>
+
+ <programlisting>@OneToMany(cascade = CascadeType.ALL)
+ at IndexColumn(name = "drawer_position", base=1)
+public List<Drawer> getDrawers() {
+ return drawers;
+}</programlisting>
+
+ <note>
+ <para>Si vous oubliez de positionner
+ <literal>@IndexColumn</literal>, la sémantique du bag est appliquée.
+ Si vous voulez la sémantique du bag sans ses limitations, considérez
+ l'utilisation de <literal>@CollectionId</literal>.</para>
+ </note>
+ </sect4>
+
+ <sect4>
+ <title>Map</title>
+
+ <para>Hibernate Annotations prend aussi en charge le mapping de
+ véritables Maps, si <literal>@javax.persistence.MapKey</literal> n'est
+ pas positionnée, Hibernate mappera l'élément clef ou l'objet
+ embarquable dans ses propres colonnes. Pour surcharger les colonnes
+ par défaut, vous pouvez utiliser
+ <literal>@org.hibernate.annotations.MapKey</literal> si votre clef est
+ un type de base (par défaut à <literal>mapkey</literal>) ou un objet
+ embarquable, ou vous pouvez utiliser
+ <literal>@org.hibernate.annotations.MapKeyManyToMany</literal> si
+ votre clef est une entité.</para>
+ </sect4>
+
+ <sect4 id="entity-hibspec-collection-extratype-indexbidir">
+ <title>Associations bidirectionnelle avec des collections indexées</title>
+
+ <para>Une association bidirectionnelle où une extrémité est
+ représentée comme une <literal>@IndexColumn</literal> ou une
+ <literal>@org.hibernate.annotations.MapKey[ManyToMany]</literal>
+ requiert une considération spéciale. S'il y a une propriété de la
+ classe enfante qui mappe la colonne de l'index, pas de problème, nous
+ pouvons continuer en utilisant <literal>mappedBy</literal> sur le
+ mapping de la collection :</para>
+
+ <programlisting>@Entity
+public class Parent {
+ @OneToMany(mappedBy="parent")
+ @org.hibernate.annotations.MapKey(columns=@Column(name="name"))
+ private Map<String, Child> children;
+ ...
+}
+
+ at Entity
+public class Child {
+ ...
+ @Basic
+ private String name;
+
+ @ManyToOne
+ @JoinColumn(name="parent_id", nullable=false)
+ private Parent parent;
+ ...
+}</programlisting>
+
+ <para>Mais s'il n'y a pas de telle propriété sur la classe enfante,
+ nous ne pouvons pas penser que l'association est vraiment
+ bidirectionnelle (il y a des informations disponibles à une extrémité
+ qui ne sont pas disponibles à l'autre). Dans ce cas, nous ne pouvons
+ pas mapper la collection avec <literal>mappedBy</literal>. A la place,
+ nous pourrions utiliser le mapping suivant :</para>
+
+ <programlisting>@Entity
+public class Parent {
+ @OneToMany
+ @org.hibernate.annotations.MapKey(columns=@Column(name="name"))
+ @JoinColumn(name="parent_id", nullable=false)
+ private Map<String, Child> children;
+ ...
+}
+
+ at Entity
+public class Child {
+ ...
+ @ManyToOne
+ @JoinColumn(name="parent_id", insertable=false, updatable=false, nullable=false)
+ private Parent parent;
+ ...
+}</programlisting>
+
+ <para>Notez que dans ce mapping, l'extrémité de l'association dont la
+ valeur est une collection est responsable des mises à jour pour la
+ clef étrangère.</para>
+ </sect4>
+
+ <sect4>
+ <title>Bag avec une clef primaire</title>
+
+ <para>Une autre fonctionnalité intéressante est la possibilité de
+ définir une clef primaire subrogée à une collection bag. Ceci enlève
+ pas mal d'inconvénients des bags : mise à jour et suppression
+ sont efficaces, plus d'un bag <literal>EAGER</literal> par requête ou
+ par entité. Cette clef primaire sera contenue dans une colonne
+ supplémentaire de votre table de collection mais ne sea pas visible
+ par l'application Java. @CollectionId est utilisée pour marquer une
+ collection comme "id bag", ca permet aussi de surcharger les colonnes
+ de la clef primaire, le type de la clef primaire et la stratégie du
+ générateur. La stratégie peut être <literal>identity</literal>, ou
+ n'importe quel nom de générateur défini de votre application.</para>
+
+ <programlisting>@Entity
+ at TableGenerator(name="ids_generator", table="IDS")
+public class Passport {
+ ...
+
+ @ManyToMany(cascade = CascadeType.ALL)
+ @JoinTable(name="PASSPORT_VISASTAMP")
+ <emphasis role="bold">@CollectionId(
+ columns = @Column(name="COLLECTION_ID"),
+ type=@Type(type="long"),
+ generator = "ids_generator"
+ )</emphasis>
+ private Collection<Stamp> visaStamp = new ArrayList();
+ ...
+}</programlisting>
+ </sect4>
+
+ <sect4>
+ <title>Collection d'éléments ou d'éléments composés</title>
+
+ <para>Hibernate Annotations prend aussi en charge les collections de
+ types core (Integer, String, Enums, ...), les collections d'objets
+ embarquables et même les tableaux de types primitifs. Ce sont des
+ collections d'éléments.</para>
+
+ <para>Une collection d'éléments doit être annotée comme
+ <literal>@CollectionOfElements</literal> (en tant que remplaçant de
+ <literal>@OneToMany</literal>). Pour définir la table de la
+ collection, l'annotation <literal>@JoinTable</literal> est utilisée
+ sur la propriété de l'association, <literal>joinColumns</literal>
+ définit les colonnes de jointure entre la table de l'entité primaire
+ et la table de la collection (inverseJoincolumn est inutile et
+ devrait être laissé à vide). Pour une collection de types core ou un
+ tableau de types primitifs, vous pouvez surcharger la définition de la
+ colonne de l'élément en utilisant <literal>@Column</literal> sur la
+ propriété de l'association. Vous pouvez aussi surcharger les colonnes
+ d'une collection d'objets embarquables en utilisant
+ <literal>@AttributeOverride</literal>. Pour atteindre l'élément de la
+ collection, vous avez besoin d'ajouter "element" au nom de l'attribut
+ surchargé (p. ex. "element" pour les types core, ou "element.serial"
+ pour la propriété serial d'un élément embarqué). Pour atteindre
+ l'index/clef d'une collection, ajoutez "key" à la place.</para>
+
+ <programlisting>@Entity
+public class Boy {
+ private Integer id;
+ private Set<String> nickNames = new HashSet<String>();
+ private int[] favoriteNumbers;
+ private Set<Toy> favoriteToys = new HashSet<Toy>();
+ private Set<Character> characters = new HashSet<Character>();
+
+ @Id @GeneratedValue
+ public Integer getId() {
+ return id;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ public Set<String></emphasis> getNickNames() {
+ return nickNames;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ @JoinTable(
+ table=@Table(name="BoyFavoriteNumbers"),
+ joinColumns = @JoinColumn(name="BoyId")
+ )
+ @Column(name="favoriteNumber", nullable=false)</emphasis>
+ @IndexColumn(name="nbr_index")
+ public int[] getFavoriteNumbers() {
+ return favoriteNumbers;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ @AttributeOverride( name="element.serial", column=@Column(name="serial_nbr") )</emphasis>
+ public Set<Toy> getFavoriteToys() {
+ return favoriteToys;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ public Set<Character></emphasis> getCharacters() {
+ return characters;
+ }
+ ...
+}
+
+public enum Character {
+ GENTLE,
+ NORMAL,
+ AGGRESSIVE,
+ ATTENTIVE,
+ VIOLENT,
+ CRAFTY
+}
+
+ at Embeddable
+public class Toy {
+ public String name;
+ public String serial;
+ public Boy owner;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSerial() {
+ return serial;
+ }
+
+ public void setSerial(String serial) {
+ this.serial = serial;
+ }
+
+ <emphasis role="bold">@Parent</emphasis>
+ public Boy getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Boy owner) {
+ this.owner = owner;
+ }
+
+ public boolean equals(Object o) {
+ if ( this == o ) return true;
+ if ( o == null || getClass() != o.getClass() ) return false;
+
+ final Toy toy = (Toy) o;
+
+ if ( !name.equals( toy.name ) ) return false;
+ if ( !serial.equals( toy.serial ) ) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = name.hashCode();
+ result = 29 * result + serial.hashCode();
+ return result;
+ }
+}</programlisting>
+
+ <para>Sur une collection d'objets embarquables, l'objet embarquable
+ peut avoir une propriété annotée avec <literal>@Parent</literal>.
+ Cette propriété pointera alors vers l'entité contenant la
+ collection.</para>
+
+ <note>
+ <para>Les versions précédentes d'Hibernate Annotations utilisaient
+ <literal>@OneToMany</literal> pour marquer une collection
+ d'éléments. Suite à des incohérences sémantiques, nous avons mis en
+ place l'annotation <literal>@CollectionOfElements</literal>. Pour
+ marquer des collections d'éléments, l'ancienne façon fonctionne
+ encore mais elle est considérée comme "deprecated" et ne sera plus
+ prise en charge dans les futures versions.</para>
+ </note>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Cache</title>
+
+ <para>Pour optimiser vos accès à la base de données, vous pouvez activer
+ le cache de second niveau d'Hibernate. Ce cache est configurable par
+ entité et par collection.</para>
+
+ <para><literal>@org.hibernate.annotations.Cache</literal> définit la
+ stratégie de cache et la région du cache de second niveau donné. Cette
+ annotation peut être appliquée à une entité racine (pas les entités
+ filles), et sur les collections.</para>
+
+ <programlisting>@Entity
+ at Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class Forest { ... }</programlisting>
+
+ <programlisting> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+ public SortedSet<Ticket> getTickets() {
+ return tickets;
+ }</programlisting>
+
+ <para></para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="2 55" id="hm1" />
+
+ <area coords="3 55" id="hm2" />
+
+ <area coords="4 55" id="hm3" />
+ </areaspec>
+
+ <programlisting>@Cache(
+ CacheConcurrencyStrategy usage();
+ String region() default "";
+ String include() default "all";
+)</programlisting>
+
+ <calloutlist>
+ <callout arearefs="hm1">
+ <para>usage : la stratégie de concurrence du cache donné (NONE,
+ READ_ONLY, NONSTRICT_READ_WRITE, READ_WRITE, TRANSACTIONAL) ;</para>
+ </callout>
+
+ <callout arearefs="hm2">
+ <para>region (optionnel) : la région du cache (par défaut le nom
+ complet de la classe avec le nom du package, ou le nom complet du
+ rôle de la collection) ;</para>
+ </callout>
+
+ <callout arearefs="hm3">
+ <para><literal>include</literal> (optionnel) : "all" pour inclure
+ toutes les propriétés, "non-lazy" pour inclure seulement les
+ propriétés qui ne sont pas chargées à la demande (valeur par
+ défaut : all).</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+ </sect2>
+
+ <sect2 id="entity-hibspec-filters">
+ <title>Filtres</title>
+
+ <para>Hibernate a la capacité d'appliquer des filtres arbitraires à la
+ partie supérieure de vos données. Ces filtres sont appliqués au moment de
+ l'exécution sur une session donnée. Vous avez tout d'abord besoin de les
+ définir.</para>
+
+ <para><literal>@org.hibernate.annotations.FilterDef</literal> ou
+ <literal>@FilterDefs</literal> déclarent des définitions de filtre
+ utilisées par les filtres ayant le même nom. Une définition de filtre a
+ un name() et un tableau de parameters(). Un paramètre vous permettra
+ d'ajuster le comportement du filtre au moment de l'exécution. Chaque
+ paramètre est défini par une <literal>@ParamDef</literal> qui a un nom et
+ un type. Vous pouvez aussi définir un paramètre defaultCondition() pour
+ une <literal>@ParamDef</literal> donnée pour positionner la condition par
+ défaut à utiliser lorsqu'aucune n'est définie dans chaque
+ <literal>@Filter</literal> individuelle. Une <literal>@FilterDef</literal>
+ peut être définie au niveau de la classe ou du package.</para>
+
+ <para>Nous avons besoin de définir la clause du filtre SQL appliqué au
+ chargement de l'entité ou au chargement de la collection.
+ <literal>@Filter</literal> est utilisée et placée sur l'entité ou
+ l'élément de la collection.</para>
+
+ <para><programlisting>@Entity
+ at FilterDef(name="minLength", parameters=@ParamDef( name="minLength", type="integer" ) )
+ at Filters( {
+ @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length"),
+ @Filter(name="minLength", condition=":minLength <= length")
+} )
+public class Forest { ... }</programlisting></para>
+
+ <para>Lorsque la collection utilise une table d'association comme
+ représentation relationnelle, vous pourriez vouloir appliquer la condition
+ du filtre à la table de l'association elle-même ou à la table de l'entité
+ cible. Pour appliquer la contrainte sur l'entité cible, utilisez
+ l'annotation habituelle <literal>@Filter</literal>. Cependant, si vous
+ voulez ciblez la table d'association, utilisez l'annotation
+ <literal>@FilterJoinTable</literal>.</para>
+
+ <programlisting> @OneToMany
+ @JoinTable
+ // filtre sur la table de l'entité cible
+ @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length")
+ // filtre sur la table d'association
+ @FilterJoinTable(name="security", condition=":userlevel >= requredLevel")
+ public Set<Forest> getForests() { ... }</programlisting>
+ </sect2>
+
+ <sect2 id="entity-hibspec-query">
+ <title>Requête</title>
+
+ <para>Puisqu'Hibernate a plus de fonctionnalités sur les requêtes nommées
+ que définies dans la spécification EJB3,
+ <literal>@org.hibernate.annotations.NamedQuery</literal>,
+ <literal>@org.hibernate.annotations.NamedQueries</literal>,
+ <literal>@org.hibernate.annotations.NamedNativeQuery</literal> et
+ <literal>@org.hibernate.annotations.NamedNativeQueries</literal> ont été
+ mis en place. Elles ajoutent des attributs à la version standard et
+ peuvent être utilisées comme remplaçant :</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>flushMode : définit le mode de flush de la requête (Always,
+ Auto, Commit ou Manual)</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheable : indique si la requête devrait être cachée ou
+ non</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheRegion : région du cache utilisée si la requête est
+ cachée</para>
+ </listitem>
+
+ <listitem>
+ <para>fetchSize : taille de l'expression de récupération JDBC pour
+ cette requête</para>
+ </listitem>
+
+ <listitem>
+ <para>timeout : timeout de la requête</para>
+ </listitem>
+
+ <listitem>
+ <para>callable : pour les requêtes natives seulement, mettre à true
+ pour les procédures stockées</para>
+ </listitem>
+
+ <listitem>
+ <para>comment : si les commentaires sont activés, le commentaire vu
+ lorsque la requête est envoyée vers la base de données</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheMode : mode d'intéraction du cache (get, ignore, normal,
+ put ou refresh)</para>
+ </listitem>
+
+ <listitem>
+ <para>readOnly : indique si les éléments récupérés à partir de la
+ requête sont en lecture seule ou pas</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ces indications de fonctionnement peuvent être positionnées sur
+ les annotations standards <literal>@javax.persistence.NamedQuery</literal>
+ avec l'annotation <literal>@QueryHint</literal>. Un autre avantage clef
+ est la possibilité de positionner ces annotations au niveau du
+ package.</para>
+ </sect2>
+ </sect1>
+</chapter>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/lucene.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/lucene.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/lucene.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<chapter id="lucene" revision="1">
+ <title>Intégration de Lucene avec Hibernate</title>
+
+ <para>Lucene est une bibliothèque de la fondation Apache fournissant un moteur
+ de recherche en Java hautement performant. Hibernate Annotations inclut un
+ ensemble d'annotations qui vous permettent de marquer n'importe quel objet
+ du modèle de données comme indexable et de laisser Hibernate maintenir un
+ index Lucene de toutes les instances persistées via Hibernate.</para>
+
+ <para>Hibernate Lucene est un projet en cours et de nouvelles fonctionnalités
+ sont en préparation. Donc attendez-vous à certains changements avec les
+ versions ultérieures.</para>
+
+ <section id="lucene-mapping">
+ <title>Mapper les entités sur l'index</title>
+
+ <para>Tout d'abord, nous devons déclarer une classe persistante comme
+ étant indexable. Ceci se fait en annotant la classe avec
+ <literal>@Indexed</literal> :</para>
+
+ <programlisting>@Entity
+ at Indexed(index="indexes/essays")
+public class Essay {
+ ...
+}</programlisting>
+
+ <para>L'attribut <literal>index</literal> indique à Hibernate quel est le
+ nom du répertoire Lucene (en général un répertoire de votre système de
+ fichiers). Si vous souhaitez définir un répertoire de départ pour tous vos
+ index Lucene, vous pouvez utiliser la propriété
+ <literal>hibernate.lucene.default.indexDir</literal> dans votre fichier de
+ configuration.</para>
+
+ <para>Les index Lucene contiennent quatre types de champs :
+ <emphasis>keyword</emphasis>, <emphasis>text</emphasis>,
+ <emphasis>unstored</emphasis> et <emphasis>unindexed</emphasis>. Hibernate
+ Annotations fournit des annotations pour marquer une propriété d'une entité
+ comme étant d'un des trois premiers types.</para>
+
+ <programlisting>@Entity
+ at Indexed(index="indexes/essays")
+public class Essay {
+ ...
+
+ @Id
+ @Keyword(id=true)
+ public Long getId() { return id; }
+
+ @Text(name="Abstract")
+ public String getSummary() { return summary; }
+
+ @Lob
+ @Unstored
+ public String getText() { return text; }
+
+}</programlisting>
+
+ <para>Ces annotations définissent un index avec trois champs :
+ <literal>id</literal>, <literal>Abstract</literal> et
+ <literal>text</literal>. Notez que par défaut le nom du champ n'a plus de
+ majuscules, en suivant la spécification JavaBean.</para>
+
+ <para>Note : vous <emphasis>devez</emphasis> spécifier
+ <literal>@Keyword(id=true)</literal> sur la propriété identifiante de
+ votre entité.</para>
+
+ <para>Lucene a la notion of <emphasis>boost factor</emphasis>. C'est un
+ moyen de donner plus de poids à un champ ou à un élément indexé durant la
+ procédure d'indexation. Vous pouvez utiliser <literal>@Boost</literal> au
+ niveau du champ ou de la classe.</para>
+
+ <para>La classe analyste utilisée pour indexer les éléments est
+ configurable par la propriété
+ <literal>hibernate.lucene.analyzer</literal>. Si aucune n'est définie,
+ <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</classname>
+ est utilisée par défaut.</para>
+ </section>
+
+ <section id="lucene-configuration">
+ <title>Configuration</title>
+
+ <section id="lucene-configuration-directory">
+ <title>Configuration du directory</title>
+
+ <para>Lucene a une notion de Directory où l'index est stocké.
+ L'implémentation de Directory peut être personnalisée mais Lucene arrive,
+ avec deux implémentations prêtes à l'emploi complètes, une sur un système
+ de fichiers et une en mémoire. Hibernate Lucene a la notion de
+ <literal>DirectoryProvider</literal> qui gère la configuration et
+ l'initialisation du Directory Lucene.</para>
+
+ <table>
+ <title>Liste des Directory Providers intégrés</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry align="center">Classe</entry>
+
+ <entry align="center">Description</entry>
+
+ <entry align="center">Propriétés</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>org.hibernate.lucene.store.FSDirectoryProvider</entry>
+
+ <entry>Directory base sur le système de fichiers. Le répertoire
+ utilisé sera
+ <indexBase>/<<literal>@Index.name</literal>></entry>
+
+ <entry><literal>indexBase</literal> : répertoire de départ</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.lucene.store.RAMDirectoryProvider</entry>
+
+ <entry>Directory utilisant la mémoire, le directory sera
+ uniquement identifié par l'élément
+ <literal>@Index.name</literal></entry>
+
+ <entry>aucune</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Si les directory providers intégrés ne répondent pas à vos besoins,
+ vous pouvez écrire votre propre directory provider en implémentant
+ l'interface
+ <classname>org.hibernate.store.DirectoryProvider</classname>.</para>
+
+ <para>Chaque entité indexée est associée à un index Lucene (un index peut
+ être partagé par différentes entités mais ce n'est pas le cas en général).
+ Vous pouvez configurer l'index à travers des propriétés préfixées par
+ <literal><literal>hibernate.lucene.<indexname></literal></literal>.
+ Les propriétés par défaut héritées par tous les index peuvent être
+ définies en utilisant le préfixe hibernate.lucene.default.</para>
+
+ <para>Pour définir le directory provider d'un index donné, utilisez
+ <literal>hibernate.lucene.<indexname>.directory_provider</literal>.</para>
+
+ <programlisting>hibernate.lucene.default.directory_provider org.hibernate.lucene.store.FSDirectoryProvider
+hibernate.lucene.default.indexDir=/usr/lucene/indexes
+
+hibernate.lucene.Rules.directory_provider org.hibernate.lucene.store.RAMDirectoryProvider
+</programlisting>
+
+ <para>appliqué à</para>
+
+ <programlisting>@Indexed(name="Status")
+public class Status { ... }
+
+ at Indexed(name="Rules")
+public class Rule { ... }</programlisting>
+
+ <para>Ceci créera un directory système de fichiers dans
+ <filename>/usr/lucene/indexes/Status</filename> où les entités Status
+ seront indexées, et utilisera un directory mémoire nommé
+ <literal>Rules</literal> où les entités Rule seront indexées.</para>
+
+ <para>Donc vous pouvez facilement définir des règles générales comme le
+ directory provider et le répertoire de départ, et surcharger ces valeurs
+ par défaut plus tard pour chaque index.</para>
+
+ <para>En écrivant votre propre DirectoryProvider, vous pouvez aussi
+ bénéficier de ce mécanisme de configuration.</para>
+ </section>
+
+ <section id="lucene-configuration-event">
+ <title>Activer l'indexation automatique</title>
+
+ <para>Finalement, nous activons le <literal>LuceneEventListener</literal>
+ pour les trois événements Hibernate qui ont lieu après que les changements
+ sont validés dans la base de données.</para>
+
+ <programlisting><hibernate-configuration>
+ ...
+ <event type="post-commit-update"
+ <listener
+ class="org.hibernate.lucene.event.LuceneEventListener"/>
+ </event>
+ <event type="post-commit-insert"
+ <listener
+ class="org.hibernate.lucene.event.LuceneEventListener"/>
+ </event>
+ <event type="post-commit-delete"
+ <listener
+ class="org.hibernate.lucene.event.LuceneEventListener"/>
+ </event>
+</hibernate-configuration></programlisting>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/setup.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/setup.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/setup.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<chapter>
+ <title id="setup" revision="1">Configurer un projet avec des annotations</title>
+
+ <section id="setup-requirements">
+ <title>Prérequis</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Téléchargez et installez la distribution Hibernate Annotations à
+ partir du site web d'Hibernate.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Cette version requiert Hibernate 3.2.0.GA ou
+ supérieur. N'utilisez pas cette version d'Hibernate Annotations avec
+ une version plus ancienne d'Hibernate 3.x !</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>Cette version est connue pour fonctionner avec le noyau 3.2.0.CR5
+ et 3.2.0.GA d'Hibernate.</para>
+ </listitem>
+
+ <listitem>
+ <para>Assurez-vous que vous avez le JDK 5.0 d'installé. Vous pouvez
+ bien sûr continuer à utiliser XDoclet et avoir certains des avantages
+ des méta-données basées sur les annotations avec des versions plus
+ anciennes du JDK. Notez que ce document décrit seulement les annotations
+ du JDK 5.0 et que vous devez vous référer à la documentation de XDoclet
+ pour plus d'informations.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="setup-configuration">
+ <title>Configuration</title>
+
+ <para>Tout d'abord, paramétrez votre classpath (après avoir créer un nouveau
+ projet dans votre IDE favori) :<itemizedlist>
+ <listitem>
+ <para>Copiez toutes les bibliothèques du noyau Hibernate3 et toutes
+ les bibliothèques tierces requises (voir lib/README.txt dans
+ Hibernate).</para>
+ </listitem>
+
+ <listitem>
+ <para>Copiez aussi <filename>hibernate-annotations.jar</filename> et
+ <filename>lib/ejb3-persistence.jar</filename> de la distribution
+ Hibernate Annotations dans votre classpath.</para>
+ </listitem>
+
+ <listitem>
+ <para>Pour utiliser <xref linkend="lucene" />, ajouter le fichier jar
+ de lucene.</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>Nous recommandons aussi un petit wrapper pour démarrer Hibernate dans
+ un bloc statique d'initialisation, connu en tant que
+ <classname>HibernateUtil</classname>. Vous pourriez avoir vu cette classe
+ sous diverses formes dans d'autres parties de la documentation Hibernate.
+ Pour prendre en charge Annotation vous devez modifier cette classe d'aide
+ de la manière suivante :<programlisting>package hello;
+
+import org.hibernate.*;
+import org.hibernate.cfg.*;
+import test.*;
+import test.animals.Dog;
+
+public class HibernateUtil {
+
+private static final SessionFactory sessionFactory;
+
+ static {
+ try {
+
+ sessionFactory = new <emphasis role="bold">AnnotationConfiguration()</emphasis>.buildSessionFactory();
+ } catch (Throwable ex) {
+ // Log exception!
+ throw new ExceptionInInitializerError(ex);
+ }
+ }
+
+ public static Session getSession()
+ throws HibernateException {
+ return sessionFactory.openSession();
+ }
+}
+ </programlisting></para>
+
+ <para>La partie intéressante ici est l'utilisation de
+ <classname>AnnotationConfiguration</classname>. Les packages et les classes
+ annotées sont déclarés dans votre fichier de configuration XML habituel
+ (généralement <filename>hibernate.cfg.xml</filename>). Voici un équivalent
+ de la déclaration ci-dessus :</para>
+
+ <programlisting><!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+ <hibernate-configuration>
+ <session-factory>
+ <emphasis role="bold"><mapping package="test.animals"/>
+ <mapping class="test.Flight"/>
+ <mapping class="test.Sky"/>
+ <mapping class="test.Person"/>
+ <mapping class="test.animals.Dog"/></emphasis>
+<emphasis role="bold"> <mapping resource="test/animals/orm.xml"/></emphasis>
+ </session-factory>
+ </hibernate-configuration>
+ </programlisting>
+
+ <para>Notez que vous pouvez mélanger l'utilisation du fichier hbm.xml et
+ celle des annotations. L'élément de ressource peut être un fichier hbm ou
+ un descripteur de déploiement XML EJB3. Cette distinction est transparente
+ pour votre procédure de configuration.</para>
+
+ <para>Alternativement, vous pouvez définir les classes annotées et des
+ packages en utilisant l'API :</para>
+
+ <programlisting> sessionFactory = new <emphasis role="bold">AnnotationConfiguration()
+ .addPackage("test.animals") // le nom complet du package
+ .addAnnotatedClass(Flight.class)
+ .addAnnotatedClass(Sky.class)
+ .addAnnotatedClass(Person.class)
+ .addAnnotatedClass(Dog.class)</emphasis>
+<emphasis role="bold"> .addResource("test/animals/orm.xml")</emphasis>
+ .buildSessionFactory();</programlisting>
+
+ <para>Vous pouvez aussi utiliser Hibernate EntityManager qui a son propre
+ mécanisme de configuration. Veullez vous référer à la documentation de ce
+ projet pour plus de détails.</para>
+
+ <para>Il n'y a pas d'autres différences dans la façon d'utiliser les APIs
+ d'Hibernate, excepté ce changement de routine de démarrage ou le fichier
+ de configuration. Vous pouvez utiliser votre méthode de configuration
+ favorite pour d'autres propriétés (<filename>hibernate.properties</filename>,
+ <filename>hibernate.cfg.xml</filename>, utilisation des APIs, etc). Vous
+ pouvez même mélanger les classes persistantes annotées et des déclarations
+ <filename>hbm.cfg.xml</filename> classiques avec la même
+ <classname>SessionFactory</classname>. Vous ne pouvez cependant pas déclarer
+ une classe plusieurs fois (soit avec les annotations, soit avec un fichier
+ hbm.xml). Vous ne pouvez pas non plus mélanger des stratégies de
+ configuration (hbm vs annotations) dans une hiérarchie d'entités
+ mappées.</para>
+
+ <para>Pour faciliter la procédure de migration de fichiers hbm vers les
+ annotations, le mécanisme de configuration détecte la duplication de mappings
+ entre les annotations et les fichiers hbm. Les classes décrites dans les
+ fichiers hbm se voient alors affecter une priorité plus grande que les
+ classes annotées. Vous pouvez changer cette priorité avec la propriété
+ <literal>hibernate.mapping.precedence</literal>. La valeur par défaut est :
+ <literal>hbm, class</literal> ; la changer en : <literal>class, hbm</literal>
+ donne alors la priorité aux classes annotées lorsqu'un conflit
+ survient.</para>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/validator.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/validator.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/validator.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,569 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<chapter id="validator">
+ <title>Hibernate Validator</title>
+
+ <para>Les annotations sont une manière très commode et élégante pour spécifier
+ des contraintes invariantes sur un modèle de données. Vous pouvez, par
+ exemple, indiquer qu'une propriété ne devrait pas être nulle, que le solde
+ d'un compte devrait être strictement positif, etc. Ces contraintes de modèle
+ de données sont déclarées dans le bean lui-même en annotant ses propriétés.
+ Un validateur peut alors les lire et vérifier les violations de contraintes.
+ Le mécanisme de validation peut être exécuté dans différentes couches de
+ votre application (présentation, accès aux données) sans devoir dupliquer
+ ces règles. Hibernate Validator a été conçu dans ce but.</para>
+
+ <para>Hibernate Validator fonctionne sur deux niveaux. D'abord, il est capable
+ de vérifier des violations de contraintes sur les instances d'une classe en
+ mémoire. Ensuite, il peut appliquer les contraintes au méta-modèle d'Hibernate
+ et les incorporer au schéma de base de données généré.</para>
+
+ <para>Chaque annotation de contrainte est associée à l'implémentation du
+ validateur responsable de vérifier la contrainte sur l'instance de l'entité.
+ Un validateur peut aussi (optionnellement) appliquer la contrainte au
+ méta-modèle d'Hibernate, permettant à Hibernate de générer le DDL qui
+ exprime la contrainte. Avec le listener d'événements approprié, vous pouvez
+ exécuter l'opération de vérification lors des insertions et des mises à jour
+ effectuées par Hibernate. Hibernate Validator n'est pas limité à Hibernate.
+ Vous pouvez facilement l'utiliser n'importe où dans votre application.</para>
+
+ <para>Lors de la vérification des instances à l'exécution, Hibernate Validator
+ retourne des informations à propos des violations de contraintes dans un
+ tableau de <classname>InvalidValue</classname>s. Parmi d'autres informations,
+ <classname>InvalidValue</classname> contient un message de description
+ d'erreur qui peut inclure les valeurs des paramètres associés à l'annotation
+ (p. ex. la limite de taille), et des chaînes de caractères qui peuvent être
+ externalisées avec un <classname>ResourceBundle</classname>.</para>
+
+ <sect1 id="validator-constraints">
+ <title>Contraintes</title>
+
+ <sect2>
+ <title>Qu'est-ce qu'une contrainte ?</title>
+
+ <para>Une contrainte est représentée par une annotation. Une contrainte a
+ généralement des attributs utilisés pour paramétrer les limites des
+ contraintes. La contrainte s'applique à l'élément annoté.</para>
+ </sect2>
+
+ <sect2>
+ <title>Contraintes intégrées</title>
+
+ <para>Hibernate Validator arrive avec des contraintes intégrées,
+ lesquelles couvrent la plupart des vérifications de données de base. Comme
+ nous le verrons plus tard, vous n'êtes pas limité à celles-ci, vous pouvez
+ écrire vos propres contraintes en une minute.</para>
+
+ <table>
+ <title>Contraintes intégrées</title>
+
+ <tgroup cols="4">
+ <colspec align="center" />
+
+ <thead>
+ <row>
+ <entry>Annotation</entry>
+
+ <entry>S'applique à</entry>
+
+ <entry>Vérification à l'exécution</entry>
+
+ <entry>Impact sur les méta-données d'Hibernate</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>@Length(min=, max=)</entry>
+
+ <entry>propriété (String)</entry>
+
+ <entry>vérifie si la longueur de la chaîne de caractères est
+ comprise dans l'intervalle</entry>
+
+ <entry>la longueur de la colonne sera positionnée à max</entry>
+ </row>
+
+ <row>
+ <entry>@Max(value=)</entry>
+
+ <entry>propriété (nombre ou chaîne de caractères représentant un
+ nombre)</entry>
+
+ <entry>vérifie si la valeur est inférieure ou égale à max</entry>
+
+ <entry>ajoute une contrainte de vérification sur la
+ colonne</entry>
+ </row>
+
+ <row>
+ <entry>@Min(value=)</entry>
+
+ <entry>propriété (nombre ou chaîne de caractères représentant un
+ nombre)</entry>
+
+ <entry>vérifie si la valeur est supérieure ou égale à max</entry>
+
+ <entry>ajoute une contrainte de vérification sur la
+ colonne</entry>
+ </row>
+
+ <row>
+ <entry>@NotNull</entry>
+
+ <entry>propriété</entry>
+
+ <entry>vérifie si la valeur n'est pas nulle</entry>
+
+ <entry>les colonnes sont marquées "not null"</entry>
+ </row>
+
+ <row>
+ <entry>@Past</entry>
+
+ <entry>propriété (Date ou Calendar)</entry>
+
+ <entry>vérifie si la date est dans le passé</entry>
+
+ <entry>ajoute une contrainte de vérification sur la
+ colonne</entry>
+ </row>
+
+ <row>
+ <entry>@Future</entry>
+
+ <entry>propriété (Date ou Calendar)</entry>
+
+ <entry>vérifie si la date est dans le futur</entry>
+
+ <entry>aucun</entry>
+ </row>
+
+ <row>
+ <entry>@Pattern(regex="regexp", flag=)</entry>
+
+ <entry>propriété (String)</entry>
+
+ <entry>vérifie si la propriété correspond à l'expression
+ rationnelle donnée (pour "flag", voir
+ <classname> java.util.regex.Pattern</classname>)</entry>
+
+ <entry>aucun</entry>
+ </row>
+
+ <row>
+ <entry>@Range(min=, max=)</entry>
+
+ <entry>propriété (nombre ou chaîne de caractères représentant un
+ nombre)</entry>
+
+ <entry>vérifie si la valeur est comprise entre min et max
+ (inclus)</entry>
+
+ <entry>ajoute une contrainte de vérification sur la
+ colonne</entry>
+ </row>
+
+ <row>
+ <entry>@Size(min=, max=)</entry>
+
+ <entry>propriété (tableau, collection, map)</entry>
+
+ <entry>vérifie si la taille de l'élément est comprise entre min et
+ max (inclus)</entry>
+
+ <entry>aucun</entry>
+ </row>
+
+ <row>
+ <entry>@AssertFalse</entry>
+
+ <entry>propriété</entry>
+
+ <entry>vérifie que la méthode est évaluée à faux (utile pour les
+ contraintes exprimées dans le code plutôt que dans les
+ annotations)</entry>
+
+ <entry>aucun</entry>
+ </row>
+
+ <row>
+ <entry>@AssertTrue</entry>
+
+ <entry>propriété</entry>
+
+ <entry>vérifie que la méthode est évaluée à vrai (utile pour les
+ contraintes exprimées dans le code plutôt que dans les
+ annotations)</entry>
+
+ <entry>aucun</entry>
+ </row>
+
+ <row>
+ <entry>@Valid</entry>
+
+ <entry>propriété (objet)</entry>
+
+ <entry>exécute la validation récursivement sur l'objet associé.
+ Si l'objet est une Collection ou un tableau, les éléments sont
+ validés récursivement. Si l'objet est une Map, les éléments
+ valeur sont validés récursivement.</entry>
+
+ <entry>aucun</entry>
+ </row>
+
+ <row>
+ <entry>@Email</entry>
+
+ <entry>propriété (String)</entry>
+
+ <entry>vérifie si la chaîne de caractères est conforme à la
+ spécification d'une adresse e-mail</entry>
+
+ <entry>aucun</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="validator-constraints-error" xreflabel="Messages d'erreur">
+ <title>Messages d'erreur</title>
+
+ <para>Hibernate Validator arrive avec un ensemble de messages d'erreur par
+ défaut traduits dans environ dix langues (si la vôtre n'en fait pas
+ partie, veuillez nous envoyer un patch). Vous pouvez surcharger ces
+ messages en créant un <filename>ValidatorMessages.properties</filename>
+ (ou <filename>ValidatorMessages_loc.properties</filename>) et en
+ surchargeant les clefs dont vous avez besoin. Vous pouvez même ajouter
+ votre propre ensemble de messages supplémentaire lorsque vous écrivez
+ vos annotations de validation. Si Hibernate Validator ne peut pas trouver
+ une clef à partir de votre resourceBundle ou de votre ValidatorMessage,
+ il se repliera sur les valeurs intégrées par défaut.</para>
+
+ <para>Alternativement vous pouvez fournir un
+ <classname>ResourceBundle</classname> pendant la vérification par
+ programmation des règles de validation sur un bean, ou si vous voulez un
+ mécanisme d'interpolation complètement différent, vous pouvez fournir une
+ implémentation de
+ <literal>org.hibernate.validator.MessageInterpolator</literal> (lisez la
+ JavaDoc pour plus d'informations).</para>
+ </sect2>
+
+ <sect2>
+ <title>Ecrire vos propres contraintes</title>
+
+ <para>Etendre l'ensemble de contraintes intégrées est extrêment facile.
+ N'importe quelle contrainte est constituée deux morceaux : le
+ <emphasis>descripteur</emphasis> de contrainte (l'annotation) et le
+ <emphasis>validateur</emphasis> de contrainte (la classe
+ d'implémentation). Voici un simple descripteur personnalisé :</para>
+
+ <programlisting>@ValidatorClass(CapitalizedValidator.class)
+ at Target(METHOD)
+ at Retention(RUNTIME)
+ at Documented
+public @interface Capitalized {
+ CapitalizeType type() default Capitalize.FIRST;
+ String message() default "has incorrect capitalization";
+}</programlisting>
+
+ <para><literal>type</literal> est un paramètre décrivant comment la
+ propriété devrait être mise en majuscule. Ceci est un paramètre
+ utilisateur complètement dépendant du fonctionnement de
+ l'annotation.</para>
+
+ <para><literal>message</literal> est la chaîne de caractères par défaut
+ utilisée pour décrire la violation de contrainte et est obligatoire. Vous
+ pouvez mettre la chaîne de caractères dans le code ou bien l'externaliser
+ en partie ou complètement avec le mécanisme ResourceBundle Java. Les
+ valeurs des paramètres sont injectées à l'intérieur du message quand
+ la chaîne de caractères <literal>{parameter}</literal> est trouvée (dans
+ notre exemple <literal>Capitalization is not {type}</literal> générerait
+ <literal>Capitalization is not FIRST</literal>), externaliser toute la
+ chaîne dans <filename>ValidatorMessages.properties</filename> est
+ considéré comme une bonne pratique. Voir <xref
+ linkend="validator-constraints-error" />.</para>
+
+ <programlisting>@ValidatorClass(CapitalizedValidator.class)
+ at Target(METHOD)
+ at Retention(RUNTIME)
+ at Documented
+public @interface Capitalized {
+ CapitalizeType type() default Capitalize.FIRST;
+ String message() default "{validator.capitalized}";
+}
+
+...
+#in ValidatorMessages.properties
+validator.capitalized=<literal>Capitalization is not {type}</literal></programlisting>
+
+ <para>Comme vous pouvez le voir la notation {} est récursive.</para>
+
+ <para>Pour lier un descripteur à l'implémentation de son validateur, nous
+ utilisons la méta-annotation <literal>@ValidatorClass</literal>. Le
+ paramètre de la classe du validateur doit nommer une classe qui implémente
+ <literal>Validator<ConstraintAnnotation></literal>.</para>
+
+ <para>Nous devons maintenant implémenter le validateur (ie
+ l'implémentation vérifiant la règle). Une implémentation de validation
+ peut vérifier la valeur d'une propriété (en implémentant
+ <literal>PropertyConstraint</literal>) et/ou peut modifier les
+ méta-données de mapping d'Hibernate pour exprimer la contrainte au niveau
+ de la base de données (en implémentant
+ <literal>PersistentClassConstraint</literal>).</para>
+
+ <programlisting>public class CapitalizedValidator
+ implements Validator<Capitalized>, PropertyConstraint {
+ private CapitalizeType type;
+
+ // partie du contrat de Validator<Annotation>,
+ // permet d'obtenir et d'utiliser les valeurs de l'annotation
+ public void initialize(Capitalized parameters) {
+ type = parameters.type();
+ }
+
+ // partie du contrat de la contrainte de la propriété
+ public boolean isValid(Object value) {
+ if (value==null) return true;
+ if ( !(value instanceof String) ) return false;
+ String string = (String) value;
+ if (type == CapitalizeType.ALL) {
+ return string.equals( string.toUpperCase() );
+ }
+ else {
+ String first = string.substring(0,1);
+ return first.equals( first.toUpperCase();
+ }
+ }
+}</programlisting>
+
+ <para>La méthode <literal>isValid()</literal> devrait retourner false si
+ la contrainte a été violée. Pour plus d'exemples, référez-vous aux
+ implémentations intégrées du validateur.</para>
+
+ <para>Nous avons seulement vu la validation au niveau propriété, mais vous
+ pouvez écrire une annotation de validation au niveau d'un bean. Plutôt
+ que de recevoir l'instance de retour d'une propriété, le bean lui-même
+ sera passé au validateur. Pour activer la vérification de validation,
+ annotez juste le bean lui-même. Un petit exemple peut être trouvé dans la
+ suite de tests unitaires.</para>
+ </sect2>
+
+ <sect2>
+ <title>Annoter votre modèle de données</title>
+
+ <para>Maintenant que vous vous êtes familiarisés avec les annotations, la
+ syntaxe devrait être connue.</para>
+
+ <programlisting>public class Address {
+ private String line1;
+ private String line2;
+ private String zip;
+ private String state;
+ private String country;
+ private long id;
+
+ // une chaîne non nulle de 20 caractères maximum
+ @Length(max=20)
+ @NotNull
+ public String getCountry() {
+ return country;
+ }
+
+ // une chaîne de caractères non nulle
+ @NotNull
+ public String getLine1() {
+ return line1;
+ }
+
+ // pas de contrainte
+ public String getLine2() {
+ return line2;
+ }
+
+ // une chaîne non nulle de 3 caractères maximum
+ @Length(max=3) @NotNull
+ public String getState() {
+ return state;
+ }
+
+ // une chaîne non nulle de 5 caractères maximum représentant un nombre
+ // si la chaîne de caractères est plus longue, le message sera recherché
+ // dans le resource bundle avec la clef 'long'
+ @Length(max=5, message="{long}")
+ @Pattern(regex="[0-9]+")
+ @NotNull
+ public String getZip() {
+ return zip;
+ }
+
+ // devrait toujours être vrai
+ @AssertTrue
+ public boolean isValid() {
+ return true;
+ }
+
+ // un nombre entre 1 et 2000
+ @Id @Min(1)
+ @Range(max=2000)
+ public long getId() {
+ return id;
+ }
+}</programlisting>
+
+ <para>Bien que l'exemple montre seulement la validation de propriétés
+ publiques, vous pouvez aussi annoter des champs avec n'importe quelle
+ visibilité.</para>
+
+ <programlisting>@MyBeanConstraint(max=45)
+public class Dog {
+ @AssertTrue private boolean isMale;
+ @NotNull protected String getName() { ... };
+ ...
+}</programlisting>
+
+ <para>Vous pouvez aussi annoter des inferfaces. Hibernate Validator
+ vérifiera toutes les classes parentes et les interfaces héritées ou
+ implémentées par un bean donné pour lire les annotations appropriées du
+ validateur.</para>
+
+ <programlisting>public interface Named {
+ @NotNull String getName();
+ ...
+}
+
+public class Dog implements Named {
+
+ @AssertTrue private boolean isMale;
+
+ public String getName() { ... };
+
+}</programlisting>
+
+ <para>La propriété "name" sera vérifiée pour la nullité lorsque le bean
+ Dog sera validé.</para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>Utiliser le framework Validator</title>
+
+ <para>Hibernate Validator est destiné à être utilisé pour implémenter une
+ validation de données à plusieurs couches, où nous exprimons des contraintes
+ à un seul endroit (le modèle de données annoté) et les appliquons aux
+ différents niveaux de l'application.</para>
+
+ <sect2>
+ <title>Validation au niveau du schéma de la base de données</title>
+
+ <para>Par défaut, Hibernate Annotations traduira les contraintes que vous
+ avez définies sur vos entités en méta-données de mapping. Par exemple, si
+ une propriété de votre entité est annotée avec
+ <literal>@NotNull</literal>, ses colonnes seront déclarées comme
+ <literal>not null</literal> dans le schéma DDL généré par
+ Hibernate.</para>
+ </sect2>
+
+ <sect2>
+ <title>La validation basée sur les événements Hibernate</title>
+
+ <para>Hibernate Validator a deux listeners d'événements Hibernate
+ intégrés. Quand un <literal>PreInsertEvent</literal> ou un
+ <literal>PreUpdateEvent</literal> survient, les listeners vérifieront
+ toutes les contraintes de l'instance de l'entité et lèveront une exception
+ si une contrainte est violée. Fondamentalement, les objets seront vérifiés
+ avant les insertions et avant les mises à jour effectuées par Hibernate.
+ C'est le plus commode et la manière la plus simple d'activer le processus
+ de validation. Sur une violation de contrainte, l'événement lèvera une
+ exception d'exécution <classname>InvalidStateException</classname> (NdT :
+ c'est une RuntimeException) laquelle contient un tableau
+ d'<literal>InvalidValue</literal>s décrivant chaque échec.</para>
+
+ <programlisting><hibernate-configuration>
+ ...
+ <event type="pre-update">
+ <listener
+ class="org.hibernate.validator.event.ValidatePreUpdateEventListener"/>
+ </event>
+ <event type="pre-insert">
+ <listener
+ class="org.hibernate.validator.event.ValidatePreInsertEventListener"/>
+ </event>
+</hibernate-configuration></programlisting>
+
+ <note>
+ <para>Lors de l'utilisation d'Hibernate Entity Manager, le framework
+ Validation est activé par défaut. Si les beans ne sont pas annotés avec
+ des annotations de validation, il n'y a pas de coût en terme de
+ performance.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>La validation au niveau applicatif</title>
+
+ <para>Hibernate Validator peut être utilisé n'importe où dans le code de
+ votre application.</para>
+
+ <programlisting>ClassValidator personValidator = new ClassValidator( Person.class );
+ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) );
+
+InvalidValue[] validationMessages = addressValidator.getInvalidValues(address);</programlisting>
+
+ <para>Les deux premières lignes préparent Hibernate Validator pour la
+ vérification de classes. La première s'appuie sur les messages d'erreur
+ intégrés à Hibernate Validator (voir
+ <xref linkend="validator-constraints-error" />), la seconde utilise un
+ resource bundle pour ses messages. Il est considéré comme une bonne
+ pratique d'exécuter ces lignes une fois et de cacher les instances de
+ validateur.</para>
+
+ <para>La troisième ligne valide en fait l'instance
+ <literal>Address</literal> et retourne un tableau
+ d'<literal>InvalidValue</literal>s. Votre logique applicative sera alors
+ capable de réagir aux échecs.</para>
+
+ <para>Vous pouvez aussi vérifier une propriété particulière plutôt que
+ tout le bean. Ceci pourrait être utile lors d'interactions avec
+ l'utilisateur propriété par propriété.</para>
+
+ <programlisting>ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) );
+
+// récupère seulement les valeurs invalides de la propriété "city"
+InvalidValue[] validationMessages = addressValidator.getInvalidValues(address, "city");
+
+// récupère seulement les valeurs potentielles invalides de la propriété "city"
+InvalidValue[] validationMessages = addressValidator.getPotentialInvalidValues("city", "Paris")</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Informations de validation</title>
+
+ <para>Comme un transporteur d'informations de validation, Hibernate
+ fournit un tableau d'<classname>InvalidValue</classname>s. Chaque
+ <literal>InvalidValue</literal> a un groupe de méthodes décrivant les
+ problèmes individuels.</para>
+
+ <para><methodname>getBeanClass()</methodname> récupère le type du bean
+ ayant échoué.</para>
+
+ <para><methodname>getBean()</methodname> récupère l'instance du bean ayant
+ échoué (s'il y en a, c'est-à-dire pas lors de l'utilisation de
+ <methodname>getPotentianInvalidValues()</methodname>).</para>
+
+ <para><methodname>getValue()</methodname> récupère la valeur ayant
+ échouée.</para>
+
+ <para><methodname>getMessage()</methodname> récupère le message d'erreur
+ internationalisé.</para>
+
+ <para><methodname>getRootBean()</methodname> récupère l'instance du bean
+ racine ayant généré le problème (utile en conjonction avec
+ <literal>@Valid</literal>), est nulle si getPotentianInvalidValues() est
+ utilisée.</para>
+
+ <para><literal>getPropertyPath()</literal> récupère le chemin (séparé par
+ des points) de la propriété ayant échouée à partir du bean racine.</para>
+ </sect2>
+ </sect1>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/xml-overriding.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/xml-overriding.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/modules/xml-overriding.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<chapter id="xml-overriding">
+ <title>Surcharger des méta-données à travers du XML</title>
+
+ <para>La cible primaire pour les méta-données dans EJB3 sont les annotations,
+ mais la spécification EJB3 fournit un moyen de surcharger ou remplacer les
+ méta-données définies par des annotations à travers un descripteur de
+ déploiement XML. Dans la version courante, seule la surcharge des annotations
+ pure EJB3 est prise en charge. Si vous souhaitez utiliser des caractéristiques
+ spécifiques à Hibernate dans des entités, vous devrez utiliser les annotations
+ ou vous replier sur les fichiers hbm. Vous pouvez bien sûr mélanger et faire
+ correspondre des entités annotées et des entités décrites dans des fichiers
+ hbm.</para>
+
+ <para>La suite de test unitaires montre des exemples supplémentaires de
+ fichier XML.</para>
+
+ <section id="xml-overriding-principles">
+ <title>Principes</title>
+
+ <para>La structure du descripteur de déploiement XML a été conçue pour
+ refléter celle des annotations. Donc si vous connaissez la structure des
+ annotations, utiliser le schéma XML sera facile pour vous.</para>
+
+ <para>Vous pouvez définir un ou plusieurs fichiers XML décrivant vos
+ méta-données, ces fichiers seront fusionnés par le moteur de surcharge.</para>
+
+ <section>
+ <title>Méta-données de niveau global</title>
+
+ <para>Vous pouvez définir des méta-données de niveau global disponibles
+ pour tous les fichiers XML. Vous ne devez pas définir ces méta-données
+ plus d'une fois par déploiement.</para>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <persistence-unit-metadata>
+ <xml-mapping-metadata-complete/>
+ <persistence-unit-defaults>
+ <schema>myschema</schema>
+ <catalog>mycatalog</catalog>
+ <cascade-persist/>
+ </persistence-unit-defaults>
+ </persistence-unit-metadata></programlisting>
+
+ <para><literal>xml-mapping-metadata-complete</literal> signifie que toutes
+ les entités, classes mères mappées et méta-données devraient être
+ récupérées à partir du XML (c'est-à-dire ignorer les annotations).</para>
+
+ <para><literal>schema / catalog</literal> surchargera toutes les
+ définitions par défaut de schéma et de catalogue dans les méta-données
+ (XML et annotations).</para>
+
+ <para><literal>cascade-persist</literal> signifie que toutes les
+ associations ont PERSIST comme type de cascade. Nous vous recommandons de
+ ne pas utiliser cette fonctionnalité.</para>
+ </section>
+
+ <section id="xml-overriding-principles-entity" revision="1">
+ <title>Méta-données de niveau entité</title>
+
+ <para>Vous pouvez définir ou surcharger des informations de méta-données
+ sur une entité donnée.</para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="3 85" id="aa1" />
+
+ <area coords="9 85" id="aa2" />
+
+ <area coords="10 85" id="aa3" />
+
+ <area coords="11 85" id="aa4" />
+
+ <area coords="17 85" id="aa5" />
+
+ <area coords="23 85" id="aa6" />
+
+ <area coords="24 85" id="aa7" />
+
+ <area coords="25 85" id="aa8" />
+
+ <area coords="26 85" id="aa9" />
+
+ <area coords="31 85" id="aa10" />
+ </areaspec>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <package>org.hibernate.test.annotations.reflection</package>
+ <entity class="Administration" access="PROPERTY" metadata-complete="true">
+ <table name="tbl_admin">
+ <unique-constraint>
+ <column-name>firstname</column-name>
+ <column-name>lastname</column-name>
+ </unique-constraint>
+ </table>
+ <secondary-table name="admin2">
+ <primary-key-join-column name="admin_id" referenced-column-name="id"/>
+ <unique-constraint>
+ <column-name>address</column-name>
+ </unique-constraint>
+ </secondary-table>
+ <id-class class="SocialSecurityNumber"/>
+ <inheritance strategy="JOINED"/>
+ <sequence-generator name="seqhilo" sequence-name="seqhilo"/>
+ <table-generator name="table" table="tablehilo"/>
+ ...
+ </entity>
+
+ <entity class="PostalAdministration">
+ <primary-key-join-column name="id"/>
+ ...
+ </entity>
+</entity-mappings></programlisting>
+
+ <calloutlist>
+ <callout arearefs="aa1">
+ <para><literal>entity-mappings</literal> : entity-mappings est
+ l'élément racine pour tous les fichiers XML. Vous devez déclarer le
+ schéma xml, le fichier du schéma est inclus dans le fichier
+ hibernate-annotations.jar, aucun accès à internet ne sera effectué
+ par Hibernate Annotations.</para>
+ </callout>
+
+ <callout arearefs="aa2">
+ <para><literal>package</literal> (optionnel) : package par défaut
+ utilisé pour tous les noms de classes sans package dans le fichier
+ de descripteur de déploiement donné.</para>
+ </callout>
+
+ <callout arearefs="aa3">
+ <para><literal>entity</literal> : décrit une entité.</para>
+
+ <para><literal>metadata-complete</literal> définit si la description
+ des méta-données pour cet élément est complète ou pas (en d'autres
+ mots, si les annotations présentes au niveau de la classe devraient
+ être prises en compte ou pas).</para>
+
+ <para>Une entité doit avoir un attribut <literal>class</literal>
+ référençant une classe java à laquelle s'applique les
+ méta-données.</para>
+
+ <para>Vous pouvez surcharger un nom d'entité avec l'attribut
+ <literal>name</literal>, si aucun n'est défini et si une annotation
+ <literal>@Entity.name</literal> est présente, alors elle est
+ utilisée (et établit que les méta-données ne sont pas
+ complètes).</para>
+
+ <para>Pour un élément avec des méta-données complètes (voir
+ ci-dessous), vous pouvez définir un attribut
+ <literal>access</literal> (soit <literal>FIELD</literal>, soit
+ <literal>PROPERTY</literal> (valeur par défaut)). Pour un élément
+ avec des méta-données incomplètes, si <literal>access</literal>
+ n'est pas défini, la position de @Id permettra de le déterminer, si
+ <literal>access</literal> est défini, sa valeur est utilisée.</para>
+ </callout>
+
+ <callout arearefs="aa4">
+ <para><literal>table</literal> : vous pouvez déclarer des propriétés
+ de table (nom, schéma, catalogue), si aucune n'est définie,
+ l'annotation java est utilisée.</para>
+
+ <para>Vous pouvez définir une ou plusieurs contraintes d'unicité
+ comme dans l'exemple.</para>
+ </callout>
+
+ <callout arearefs="aa5">
+ <para><literal>secondary-table</literal> : définit une table
+ secondaire très semblable à une table habituelle excepté que vous
+ pouvez définir les colonnes de clef primaire / clef étrangère avec
+ l'élément <literal>primary-key-join-column</literal>. Sur des
+ méta-données incomplètes, les annotations de table secondaire sont
+ utilisées seulement s'il n'y a pas de <literal>secondary-table</literal>
+ de défini, sinon les annotations sont ignorées.</para>
+ </callout>
+
+ <callout arearefs="aa6">
+ <para><literal>id-class</literal> : définit la classe identifiante
+ comme le fait <literal>@IdClass</literal>.</para>
+ </callout>
+
+ <callout arearefs="aa7">
+ <para><literal>inheritance</literal> : définit la stratégie
+ d'héritage (<literal>JOINED</literal>,
+ <literal>TABLE_PER_CLASS</literal>,
+ <literal>SINGLE_TABLE</literal>) ; disponible seulement au niveau de
+ l'élément racine.</para>
+ </callout>
+
+ <callout arearefs="aa8">
+ <para><literal>sequence-generator</literal> : définit un générateur
+ de séquence.</para>
+ </callout>
+
+ <callout arearefs="aa9">
+ <para><literal>table-generator</literal> : définit un générateur de
+ table.</para>
+ </callout>
+
+ <callout arearefs="aa10">
+ <para><literal><literal>primary-key-join-column</literal></literal> :
+ définit la colonne de jointure sur la clef primaire pour les
+ entités filles lorsque la stratégie d'héritage utilisée est
+ JOINED.</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="11 85" id="ab1" />
+
+ <area coords="18 85" id="ab2" />
+
+ <area coords="22 85" id="ab3" />
+
+ <area coords="28 85" id="ab4" />
+
+ <area coords="34 85" id="ab5" />
+ </areaspec>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <package>org.hibernate.test.annotations.reflection</package>
+ <entity class="Music" access="PROPERTY" metadata-complete="true">
+ <discriminator-value>Generic</discriminator-value>
+ <discriminator-column length="34"/>
+ ...
+ </entity>
+
+ <entity class="PostalAdministration">
+ <primary-key-join-column name="id"/>
+ <named-query name="adminById">
+ <query>select m from Administration m where m.id = :id</query>
+ <hint name="org.hibernate.timeout" value="200"/>
+ </named-query>
+ <named-native-query name="allAdmin" result-set-mapping="adminrs">
+ <query>select *, count(taxpayer_id) as taxPayerNumber
+ from Administration, TaxPayer
+ where taxpayer_admin_id = admin_id group by ...</query>
+ <hint name="org.hibernate.timeout" value="200"/>
+ </named-native-query>
+ <sql-result-set-mapping name="adminrs">
+ <entity-result entity-class="Administration">
+ <field-result name="name" column="fld_name"/>
+ </entity-result>
+ <column-result name="taxPayerNumber"/>
+ </sql-result-set-mapping>
+ <attribute-override name="ground">
+ <column name="fld_ground" unique="true" scale="2"/>
+ </attribute-override>
+ <association-override name="referer">
+ <join-column name="referer_id" referenced-column-name="id"/>
+ </association-override>
+ ...
+ </entity>
+</entity-mappings></programlisting>
+
+ <calloutlist>
+ <callout arearefs="ab1">
+ <para><literal>discriminator-value /
+ discriminator-column</literal> : définissent la colonne et la valeur
+ discriminantes lorsque la stratégie d'héritage choisie est
+ SINGLE_TABLE.</para>
+ </callout>
+
+ <callout arearefs="ab2">
+ <para><literal>named-query</literal> : définit les requêtes nommées
+ et potentiellement les indices qui leur sont associés. Ces
+ définitions sont ajoutées à celles définies dans les annotations,
+ si deux définitions ont le même nom, la version XML a la
+ priorité.</para>
+ </callout>
+
+ <callout arearefs="ab3">
+ <para><literal>named-native-query</literal> : définit une requête
+ SQL nommée et le mapping de son résultat. Alternativement, vous
+ pouvez définir <literal>result-class</literal>. Ces définitions
+ sont ajoutées à celles definies dans les annotations, si deux
+ définitions ont le même nom, la version XML a la priorité.</para>
+ </callout>
+
+ <callout arearefs="ab4">
+ <para><literal>sql-result-set-mapping</literal> : décrit la
+ structure du mapping des résultats. Vous pouvez définir des mappings
+ de colonnes et d'entité. Ces définitions sont ajoutées à celles
+ définies dans les annotations, si deux définitions ont le même nom,
+ la version XML a la priorité.</para>
+ </callout>
+
+ <callout arearefs="ab5">
+ <para><literal>attribute-override /
+ association-override</literal> : surcharge la définition d'une
+ colonne ou d'une colonne de jointure. Cette surcharge est ajoutée à
+ celle définie dans les annotations.</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+
+ <para>La même chose s'applique à <literal><embeddable></literal> et
+ <literal><mapped-superclass></literal>.</para>
+ </section>
+
+ <section>
+ <title>Méta-données de niveau propriété</title>
+
+ <para>Vous pouvez bien sûr définir des surcharges XML pour des propriétés.
+ Si les méta-données sont définies comme incomplètes, alors les propriétés
+ supplémentaires (c'est-à-dire au niveau Java) seront ignorées. Toutes les
+ méta-données de niveau propriété sont définies par
+ <literal>entity/attributes</literal>,
+ <literal>mapped-superclass/attributes</literal> ou
+ <literal>embeddable/attributes</literal>.</para>
+
+ <programlisting> <attributes>
+ <id name="id">
+ <column name="fld_id"/>
+ <generated-value generator="generator" strategy="SEQUENCE"/>
+ <temporal>DATE</temporal>
+ <sequence-generator name="generator" sequence-name="seq"/>
+ </id>
+ <version name="version"/>
+ <embedded name="embeddedObject">
+ <attribute-override name"subproperty">
+ <column name="my_column"/>
+ </attribute-override>
+ </embedded>
+ <basic name="status" optional="false">
+ <enumerated>STRING</enumerated>
+ </basic>
+ <basic name="serial" optional="true">
+ <column name="serialbytes"/>
+ <lob/>
+ </basic>
+ <basic name="terminusTime" fetch="LAZY">
+ <temporal>TIMESTAMP</temporal>
+ </basic>
+ </attributes></programlisting>
+
+ <para>Vous pouvez surcharger une propriété avec <literal>id</literal>,
+ <literal>embedded-id</literal>, <literal>version</literal>,
+ <literal>embedded</literal> et <literal>basic</literal>. Chacun de ces
+ éléments peuvent avoir des sous-éléments : <literal>lob</literal>,
+ <literal>temporal</literal>, <literal>enumerated</literal>,
+ <literal>column</literal>.</para>
+ </section>
+
+ <section>
+ <title>Méta-données au niveau association</title>
+
+ <para>Vous pouvez définir des surcharges XML pour les associations. Toutes
+ les méta-données de niveau association sont définies par
+ <literal>entity/attributes</literal>,
+ <literal>mapped-superclass/attributes</literal> ou
+ <literal>embeddable/attributes</literal>.</para>
+
+ <programlisting> <attributes>
+ <one-to-many name="players" fetch="EAGER">
+ <map-key name="name"/>
+ <join-column name="driver"/>
+ <join-column name="number"/>
+ </one-to-many>
+ <many-to-many name="roads" target-entity="Administration">
+ <order-by>maxSpeed</order-by>
+ <join-table name="bus_road">
+ <join-column name="driver"/>
+ <join-column name="number"/>
+ <inverse-join-column name="road_id"/>
+ <unique-constraint>
+ <column-name>driver</column-name>
+ <column-name>number</column-name>
+ </unique-constraint>
+ </join-table>
+ </many-to-many>
+ <many-to-many name="allTimeDrivers" mapped-by="drivenBuses">
+ </attributes></programlisting>
+
+ <para>Vous pouvez surcharger une association avec
+ <literal>one-to-many</literal>, <literal>one-to-one</literal>,
+ <literal>many-to-one</literal>, et <literal>many-to-many</literal>.
+ Chacun de ces éléments peut avoir des sous-éléments :
+ <literal>join-table</literal> (qui peut avoir des
+ <literal>join-column</literal>s et des
+ <literal>inverse-join-column</literal>s),
+ <literal><literal>join-column</literal>s</literal>,
+ <literal>map-key</literal>, et <literal>order-by</literal>.
+ <literal>mapped-by</literal> et <literal>target-entity</literal> peuvent
+ être définis en tant qu'attributs lorsque cela a du sens. Une fois de plus
+ la structure est le reflet de la structure des annotations. Vous pouvez
+ trouver toutes les informations de sémantique dans le chapitre décrivant
+ les annotations.</para>
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/fopdf.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/fopdf.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/fopdf.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,519 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL FO configuration file for the Hibernate
+ Reference Documentation. It defines a custom titlepage and
+ the parameters for the A4 sized PDF printable output.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ exclude-result-prefixes="#default">
+
+ <xsl:import href="&db_xsl_path;/fo/docbook.xsl"/>
+
+ <!--###################################################
+ Custom Title Page
+ ################################################### -->
+
+ <xsl:template name="book.titlepage.recto">
+ <fo:block>
+ <fo:table table-layout="fixed" width="175mm">
+ <fo:table-column column-width="175mm"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell text-align="center">
+ <fo:block>
+ <fo:external-graphic src="file:images/hibernate_logo_a.png"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm">
+ <xsl:value-of select="bookinfo/title"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="18pt" padding-before="10mm">
+ <xsl:value-of select="bookinfo/subtitle"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="12pt" padding="10mm">
+ Version:
+ <xsl:value-of select="bookinfo/releaseinfo"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Prevent blank pages in output -->
+ <xsl:template name="book.titlepage.before.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.separator">
+ </xsl:template>
+
+ <!--###################################################
+ Header
+ ################################################### -->
+
+ <!-- More space in the center header for long text -->
+ <xsl:attribute-set name="header.content.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$body.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="margin-left">-5em</xsl:attribute>
+ <xsl:attribute name="margin-right">-5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Custom Footer
+ ################################################### -->
+
+ <!-- This footer prints the Hibernate version number on the left side -->
+ <xsl:template name="footer.content">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="position" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+
+ <xsl:variable name="Version">
+ <xsl:choose>
+ <xsl:when test="//releaseinfo">
+ <xsl:text>Hibernate </xsl:text>
+ <xsl:value-of select="//releaseinfo"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$sequence='blank'">
+ <xsl:choose>
+ <xsl:when test="$double.sided != 0 and $position = 'left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position = 'center'">
+ <!-- nop -->
+ </xsl:when>
+
+ <xsl:otherwise>
+ <fo:page-number/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$pageclass='titlepage'">
+ <!-- nop: other titlepage sequences have no footer -->
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--###################################################
+ Custom Toc Line
+ ################################################### -->
+
+ <!-- Improve the TOC. -->
+ <xsl:template name="toc.line">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+
+ <fo:block text-align-last="justify"
+ end-indent="{$toc.indent.width}pt"
+ last-line-end-indent="-{$toc.indent.width}pt">
+ <fo:inline keep-with-next.within-line="always">
+ <fo:basic-link internal-destination="{$id}">
+
+ <!-- Chapter titles should be bold. -->
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'chapter'">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$label != ''">
+ <xsl:copy-of select="$label"/>
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </fo:basic-link>
+ </fo:inline>
+ <fo:inline keep-together.within-line="always">
+ <xsl:text> </xsl:text>
+ <fo:leader leader-pattern="dots"
+ leader-pattern-width="3pt"
+ leader-alignment="reference-area"
+ keep-with-next.within-line="always"/>
+ <xsl:text> </xsl:text>
+ <fo:basic-link internal-destination="{$id}">
+ <fo:page-number-citation ref-id="{$id}"/>
+ </fo:basic-link>
+ </fo:inline>
+ </fo:block>
+ </xsl:template>
+
+ <!--###################################################
+ Extensions
+ ################################################### -->
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <!-- FOP provide only PDF Bookmarks at the moment -->
+ <xsl:param name="fop.extensions">1</xsl:param>
+
+ <!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+ <!-- Dot and Whitespace as separator in TOC between Label and Title-->
+ <xsl:param name="autotoc.label.separator" select="'. '"/>
+
+
+ <!--###################################################
+ Paper & Page Size
+ ################################################### -->
+
+ <!-- Paper type, no headers on blank pages, no double sided printing -->
+ <xsl:param name="paper.type" select="'A4'"/>
+ <xsl:param name="double.sided">0</xsl:param>
+ <xsl:param name="headers.on.blank.pages">0</xsl:param>
+ <xsl:param name="footers.on.blank.pages">0</xsl:param>
+
+ <!-- Space between paper border and content (chaotic stuff, don't touch) -->
+ <xsl:param name="page.margin.top">5mm</xsl:param>
+ <xsl:param name="region.before.extent">10mm</xsl:param>
+ <xsl:param name="body.margin.top">10mm</xsl:param>
+
+ <xsl:param name="body.margin.bottom">15mm</xsl:param>
+ <xsl:param name="region.after.extent">10mm</xsl:param>
+ <xsl:param name="page.margin.bottom">0mm</xsl:param>
+
+ <xsl:param name="page.margin.outer">18mm</xsl:param>
+ <xsl:param name="page.margin.inner">18mm</xsl:param>
+
+ <!-- No intendation of Titles -->
+ <xsl:param name="title.margin.left">0pc</xsl:param>
+
+ <!--###################################################
+ Fonts & Styles
+ ################################################### -->
+
+ <!-- Default Font size -->
+ <xsl:param name="body.font.master">11</xsl:param>
+
+ <!-- Line height in body text -->
+ <xsl:param name="line-height">1.4</xsl:param>
+
+ <!-- Monospaced fonts are smaller than regular text -->
+ <xsl:attribute-set name="monospace.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$monospace.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="font-size">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Tables
+ ################################################### -->
+
+ <!-- The table width should be adapted to the paper size -->
+ <xsl:param name="default.table.width">17.4cm</xsl:param>
+
+ <!-- Some padding inside tables -->
+ <xsl:attribute-set name="table.cell.padding">
+ <xsl:attribute name="padding-left">4pt</xsl:attribute>
+ <xsl:attribute name="padding-right">4pt</xsl:attribute>
+ <xsl:attribute name="padding-top">4pt</xsl:attribute>
+ <xsl:attribute name="padding-bottom">4pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Only hairlines as frame and cell borders in tables -->
+ <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
+ <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
+
+ <!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+ <!-- Label only Sections up to level 2 -->
+ <xsl:param name="local.l10n.xml" select="document('')"/>
+ <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
+ <l:l10n language="en">
+ <l:context name="title-numbered">
+ <l:template name="sect3" text="%t"/>
+ <l:template name="sect4" text="%t"/>
+ <l:template name="sect5" text="%t"/>
+ </l:context>
+ <l:context name="section-xref-numbered">
+ <l:template name="sect3" text="the section called %t"/>
+ <l:template name="sect4" text="the section called %t"/>
+ <l:template name="sect5" text="the section called %t"/>
+ </l:context>
+ </l:l10n>
+ </l:i18n>
+
+ <!--###################################################
+ Titles
+ ################################################### -->
+
+ <!-- Chapter title size -->
+ <xsl:attribute-set name="chapter.titlepage.recto.style">
+ <xsl:attribute name="text-align">left</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.8"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Why is the font-size for chapters hardcoded in the XSL FO templates?
+ Let's remove it, so this sucker can use our attribute-set only... -->
+ <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xsl:use-attribute-sets="chapter.titlepage.recto.style">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
+ </xsl:call-template>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->
+ <xsl:attribute-set name="section.title.level1.properties">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.5"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level2.properties">
+ <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.25"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level3.properties">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.0"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Titles of formal objects (tables, examples, ...) -->
+ <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Programlistings
+ ################################################### -->
+
+ <!-- Verbatim text formatting (programlistings) -->
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ <xsl:attribute name="border-color">#444444</xsl:attribute>
+ <xsl:attribute name="border-style">solid</xsl:attribute>
+ <xsl:attribute name="border-width">0.1pt</xsl:attribute>
+ <xsl:attribute name="padding-top">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-left">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-right">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-left">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-right">0.5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Shade (background) programlistings -->
+ <xsl:param name="shade.verbatim">1</xsl:param>
+ <xsl:attribute-set name="shade.verbatim.style">
+ <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- We want to use callouts... -->
+ <xsl:param name="callout.extensions">1</xsl:param>
+
+ <!-- Place callout bullets at this column in programmlisting.-->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+ <!--
+ No, don't use crappy graphics for the callout bullets. This setting
+ enables some weird Unicode rendering for some fancy bullet points
+ in callouts. By default, this can only count to 10 and produces
+ strange results if you ever have more than 10 callouts for one
+ programlisting. We will fix that next.
+ -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!--
+ Again, fun with DocBook XSL: The callout bullets are rendered in
+ two places: In the programlisting itself and in the list below
+ the listing, with the actual callout text. The rendering in the
+ programlisting is some XSL transformer extension (e.g. a Saxon
+ extension), so we can't change that without messing with the
+ extensions. We only can turn it off by setting this limit to
+ zero, then, a simple bracket style like "(3)" and "(4)" will
+ be used in the programlisting.
+ -->
+ <xsl:param name="callout.unicode.number.limit" select="'0'"></xsl:param>
+
+ <!--
+ The callout bullets in the actual callout list will be rendered
+ with an XSL FO template. The default template is broken: limited to 10
+ nice looking Unicode bullet points and then it doesn't print anything,
+ the fallback doesn't work. We implement our own template, which is not
+ as complicated, more ugly, but works. As always, function is more
+ important than form.
+ -->
+ <xsl:template name="callout-bug">
+ <xsl:param name="conum" select='1'/>
+ <fo:inline
+ color="black"
+ padding-top="0.1em"
+ padding-bottom="0.1em"
+ padding-start="0.2em"
+ padding-end="0.2em"
+ baseline-shift="0.1em"
+ font-family="{$monospace.font.family}"
+ font-weight="bold"
+ font-size="75%">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$conum"/>
+ <xsl:text>)</xsl:text>
+ </fo:inline>
+
+ </xsl:template>
+
+ <!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Correct placement of titles for figures and examples. -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+ <!-- Format Variable Lists as Blocks (prevents horizontal overflow). -->
+ <xsl:param name="variablelist.as.blocks">1</xsl:param>
+
+ <!-- The horrible list spacing problems, this is much better. -->
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Newer DocBook XSL apparently thinks that some sections are by
+ default "draft" status, and this idiotic thing is by default
+ also set to "maybe", so it spits out a lot of errors with the
+ latest FOP as the XSL/FO styles have references to some draft
+ watermarks, which you actually don't want in the first place.
+ Turn this crap off. If you have to work with the "status"
+ attribute, don't.
+ -->
+ <xsl:param name="draft.mode" select="'no'"/>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.css
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.css (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.css 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,97 @@
+A {
+ color: #003399;
+}
+
+A:active {
+ color: #003399;
+}
+
+A:visited {
+ color: #888888;
+}
+
+P, OL, UL, LI, DL, DT, DD, BLOCKQUOTE {
+ color: #000000;
+}
+
+TD, TH, SPAN {
+ color: #000000;
+}
+
+BLOCKQUOTE {
+ margin-right: 0px;
+}
+
+
+H1, H2, H3, H4, H5, H6 {
+ color: #000000;
+ font-weight:500;
+ margin-top:10px;
+ padding-top:15px;
+}
+
+TABLE {
+ border-collapse: collapse;
+ border-spacing:0;
+ border: 1px thin black;
+ empty-cells: hide;
+}
+
+TD {
+ padding: 4pt;
+}
+
+H1 { font-size: 150%; }
+H2 { font-size: 140%; }
+H3 { font-size: 110%; font-weight: bold; }
+H4 { font-size: 110%; font-weight: bold;}
+H5 { font-size: 100%; font-style: italic; }
+H6 { font-size: 100%; font-style: italic; }
+
+TT {
+font-size: 90%;
+ font-family: "Courier New", Courier, monospace;
+ color: #000000;
+}
+
+PRE {
+font-size: 100%;
+ padding: 5px;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #CCCCCC;
+ background-color: #F4F4F4;
+}
+
+UL, OL, LI {
+ list-style: disc;
+}
+
+HR {
+ width: 100%;
+ height: 1px;
+ background-color: #CCCCCC;
+ border-width: 0px;
+ padding: 0px;
+ color: #CCCCCC;
+}
+
+.variablelist {
+ padding-top: 10;
+ padding-bottom:10;
+ margin:0;
+}
+
+.itemizedlist, UL {
+ padding-top: 0;
+ padding-bottom:0;
+ margin:0;
+}
+
+.term {
+ font-weight:bold;
+}
+
+
+
+
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL HTML configuration file for the Hibernate
+ Reference Documentation.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="&db_xsl_path;/html/docbook.xsl"/>
+
+<!--###################################################
+ HTML Settings
+ ################################################### -->
+
+ <xsl:param name="html.stylesheet">../shared/css/html.css</xsl:param>
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+
+<!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+<!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Don't use graphics, use a simple number style -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+<!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html_chunk.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html_chunk.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/fr/styles/html_chunk.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL HTML configuration file for the Hibernate
+ Reference Documentation.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="&db_xsl_path;/html/chunk.xsl"/>
+
+<!--###################################################
+ HTML Settings
+ ################################################### -->
+
+ <xsl:param name="chunk.section.depth">'5'</xsl:param>
+ <xsl:param name="use.id.as.filename">'1'</xsl:param>
+ <xsl:param name="html.stylesheet">../shared/css/html.css</xsl:param>
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+
+<!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+<!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Don't use graphics, use a simple number style -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+<!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.ttf
===================================================================
(Binary files differ)
Property changes on: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.ttf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simhei.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<font-metrics type="TYPE0"><font-name>SimHei</font-name><embed/><cap-height>0</cap-height><x-height>0</x-height><ascender>859</ascender><descender>-140</descender><bbox><left>0</left><bottom>-140</bottom><right>996</right><top>855</top></bbox><flags>33</flags><stemv>0</stemv><italicangle>0</italicangle><subtype>TYPE0</subtype><multibyte-extras><cid-type>CIDFontType2</cid-type><default-width>0</default-width><bfranges><bf us="32" ue="126" gi="3"/><bf us="127" ue="127" gi="2"/><bf us="164" ue="164" gi="98"/><bf us="167" ue="168" gi="99"/><bf us="176" ue="177" gi="101"/><bf us="183" ue="183" gi="103"/><bf us="215" ue="215" gi="104"/><bf us="224" ue="225" gi="105"/><bf us="232" ue="234" gi="107"/><bf us="236" ue="237" gi="110"/><bf us="242" ue="243" gi="112"/><bf us="247" ue="247" gi="114"/><bf us="249" ue="250" gi="115"/><bf us="252" ue="252" gi="117"/><bf us="257" ue="257" gi="118"/><bf us="275" ue="275" gi="119"/><bf us="283" ue="283" gi="120"/><bf us="299" ue="299" gi="121"!
/><bf us="324" ue="324" gi="122"/><bf us="328" ue="328" gi="123"/><bf us="333" ue="333" gi="124"/><bf us="363" ue="363" gi="125"/><bf us="462" ue="462" gi="126"/><bf us="464" ue="464" gi="127"/><bf us="466" ue="466" gi="128"/><bf us="468" ue="468" gi="129"/><bf us="470" ue="470" gi="130"/><bf us="472" ue="472" gi="131"/><bf us="474" ue="474" gi="132"/><bf us="476" ue="476" gi="133"/><bf us="505" ue="505" gi="687"/><bf us="593" ue="593" gi="134"/><bf us="609" ue="609" gi="135"/><bf us="711" ue="711" gi="136"/><bf us="713" ue="713" gi="137"/><bf us="714" ue="715" gi="799"/><bf us="729" ue="729" gi="801"/><bf us="913" ue="929" gi="138"/><bf us="931" ue="937" gi="155"/><bf us="945" ue="961" gi="162"/><bf us="963" ue="969" gi="179"/><bf us="1025" ue="1025" gi="186"/><bf us="1040" ue="1103" gi="187"/><bf us="1105" ue="1105" gi="251"/><bf us="8208" ue="8208" gi="971"/><bf us="8211" ue="8211" gi="802"/><bf us="8212" ue="8212" gi="252"/><bf us="8213" ue="8213" gi="803"/><bf us="8214!
" ue="8214" gi="253"/><bf us="8216" ue="8217" gi="254"/><bf us!
="8220"
ue="8221" gi="256"/><bf us="8229" ue="8229" gi="804"/><bf us="8230" ue="8230" gi="258"/><bf us="8240" ue="8240" gi="259"/><bf us="8242" ue="8243" gi="260"/><bf us="8245" ue="8245" gi="805"/><bf us="8251" ue="8251" gi="262"/><bf us="8451" ue="8451" gi="263"/><bf us="8453" ue="8453" gi="806"/><bf us="8457" ue="8457" gi="807"/><bf us="8470" ue="8470" gi="264"/><bf us="8481" ue="8481" gi="969"/><bf us="8544" ue="8555" gi="265"/><bf us="8560" ue="8569" gi="957"/><bf us="8592" ue="8595" gi="277"/><bf us="8598" ue="8601" gi="808"/><bf us="8712" ue="8712" gi="281"/><bf us="8719" ue="8719" gi="282"/><bf us="8721" ue="8721" gi="283"/><bf us="8725" ue="8725" gi="812"/><bf us="8730" ue="8730" gi="284"/><bf us="8733" ue="8734" gi="285"/><bf us="8735" ue="8735" gi="813"/><bf us="8736" ue="8736" gi="287"/><bf us="8739" ue="8739" gi="814"/><bf us="8741" ue="8741" gi="288"/><bf us="8743" ue="8747" gi="289"/><bf us="8750" ue="8750" gi="294"/><bf us="8756" ue="8759" gi="295"/><bf us="8765" ue=!
"8765" gi="299"/><bf us="8776" ue="8776" gi="300"/><bf us="8780" ue="8780" gi="301"/><bf us="8786" ue="8786" gi="815"/><bf us="8800" ue="8801" gi="302"/><bf us="8804" ue="8805" gi="304"/><bf us="8806" ue="8807" gi="816"/><bf us="8814" ue="8815" gi="306"/><bf us="8853" ue="8853" gi="880"/><bf us="8857" ue="8857" gi="308"/><bf us="8869" ue="8869" gi="309"/><bf us="8895" ue="8895" gi="818"/><bf us="8978" ue="8978" gi="310"/><bf us="9312" ue="9321" gi="311"/><bf us="9332" ue="9371" gi="321"/><bf us="9472" ue="9547" gi="361"/><bf us="9552" ue="9587" gi="819"/><bf us="9601" ue="9615" gi="855"/><bf us="9619" ue="9621" gi="870"/><bf us="9632" ue="9633" gi="437"/><bf us="9650" ue="9651" gi="439"/><bf us="9660" ue="9661" gi="873"/><bf us="9670" ue="9671" gi="441"/><bf us="9675" ue="9675" gi="443"/><bf us="9678" ue="9679" gi="444"/><bf us="9698" ue="9701" gi="875"/><bf us="9733" ue="9734" gi="446"/><bf us="9737" ue="9737" gi="879"/><bf us="9792" ue="9792" gi="448"/><bf us="9794" ue="9!
794" gi="449"/><bf us="11905" ue="11905" gi="21903"/><bf us="1!
1908" ue
="11908" gi="21907"/><bf us="11912" ue="11912" gi="21910"/><bf us="11915" ue="11915" gi="21911"/><bf us="11916" ue="11916" gi="21916"/><bf us="11943" ue="11943" gi="21930"/><bf us="11946" ue="11946" gi="21933"/><bf us="11950" ue="11950" gi="21936"/><bf us="11955" ue="11955" gi="21938"/><bf us="11958" ue="11959" gi="21939"/><bf us="11963" ue="11963" gi="21944"/><bf us="11978" ue="11978" gi="21954"/><bf us="12272" ue="12283" gi="689"/><bf us="12288" ue="12291" gi="450"/><bf us="12293" ue="12293" gi="454"/><bf us="12294" ue="12294" gi="977"/><bf us="12295" ue="12295" gi="21983"/><bf us="12296" ue="12305" gi="455"/><bf us="12306" ue="12306" gi="881"/><bf us="12307" ue="12311" gi="465"/><bf us="12317" ue="12318" gi="882"/><bf us="12321" ue="12329" gi="884"/><bf us="12353" ue="12435" gi="470"/><bf us="12443" ue="12444" gi="973"/><bf us="12445" ue="12446" gi="978"/><bf us="12449" ue="12534" gi="553"/><bf us="12540" ue="12540" gi="972"/><bf us="12541" ue="12542" gi="975"/><bf us="12!
549" ue="12585" gi="639"/><bf us="12832" ue="12841" gi="676"/><bf us="12849" ue="12849" gi="970"/><bf us="12963" ue="12963" gi="893"/><bf us="13198" ue="13199" gi="894"/><bf us="13212" ue="13214" gi="896"/><bf us="13217" ue="13217" gi="899"/><bf us="13252" ue="13252" gi="900"/><bf us="13262" ue="13262" gi="901"/><bf us="13265" ue="13266" gi="902"/><bf us="13269" ue="13269" gi="904"/><bf us="13383" ue="13383" gi="21909"/><bf us="13427" ue="13427" gi="21908"/><bf us="13726" ue="13726" gi="21913"/><bf us="13838" ue="13838" gi="21915"/><bf us="13850" ue="13850" gi="21914"/><bf us="14616" ue="14616" gi="21919"/><bf us="14702" ue="14702" gi="21918"/><bf us="14799" ue="14799" gi="21921"/><bf us="14800" ue="14800" gi="21924"/><bf us="14815" ue="14815" gi="21922"/><bf us="14963" ue="14963" gi="21923"/><bf us="15182" ue="15182" gi="21927"/><bf us="15470" ue="15470" gi="21928"/><bf us="15584" ue="15584" gi="21929"/><bf us="16470" ue="16470" gi="21934"/><bf us="16735" ue="16735" gi="21!
935"/><bf us="17207" ue="17207" gi="21937"/><bf us="17324" ue=!
"17324"
gi="21943"/><bf us="17329" ue="17329" gi="21942"/><bf us="17373" ue="17373" gi="21945"/><bf us="17622" ue="17622" gi="21946"/><bf us="17996" ue="17996" gi="21948"/><bf us="18017" ue="18017" gi="21947"/><bf us="18211" ue="18211" gi="21950"/><bf us="18217" ue="18217" gi="21951"/><bf us="18300" ue="18300" gi="21952"/><bf us="18317" ue="18317" gi="21953"/><bf us="18759" ue="18759" gi="21955"/><bf us="18810" ue="18810" gi="21956"/><bf us="18813" ue="18813" gi="21957"/><bf us="18818" ue="18819" gi="21958"/><bf us="18821" ue="18822" gi="21960"/><bf us="18843" ue="18843" gi="21963"/><bf us="18847" ue="18847" gi="21962"/><bf us="18870" ue="18870" gi="21965"/><bf us="18871" ue="18871" gi="21964"/><bf us="19575" ue="19575" gi="21972"/><bf us="19615" ue="19615" gi="21969"/><bf us="19617" ue="19617" gi="21971"/><bf us="19618" ue="19618" gi="21973"/><bf us="19619" ue="19619" gi="21968"/><bf us="19629" ue="19629" gi="21970"/><bf us="19731" ue="19737" gi="21974"/><bf us="19886" ue="19886" g!
i="21981"/><bf us="19968" ue="40869" gi="980"/><bf us="59335" ue="59336" gi="686"/><bf us="59367" ue="59379" gi="688"/><bf us="59413" ue="59492" gi="21903"/><bf us="63788" ue="63788" gi="21882"/><bf us="63865" ue="63865" gi="21883"/><bf us="63893" ue="63893" gi="21884"/><bf us="63975" ue="63975" gi="21885"/><bf us="63985" ue="63985" gi="21886"/><bf us="64012" ue="64015" gi="21887"/><bf us="64017" ue="64017" gi="21891"/><bf us="64019" ue="64020" gi="21892"/><bf us="64024" ue="64024" gi="21894"/><bf us="64031" ue="64033" gi="21895"/><bf us="64035" ue="64036" gi="21898"/><bf us="64039" ue="64041" gi="21900"/><bf us="65072" ue="65073" gi="905"/><bf us="65075" ue="65092" gi="907"/><bf us="65097" ue="65106" gi="925"/><bf us="65108" ue="65111" gi="935"/><bf us="65113" ue="65126" gi="939"/><bf us="65128" ue="65131" gi="953"/><bf us="65281" ue="65374" gi="701"/><bf us="65504" ue="65505" gi="795"/><bf us="65506" ue="65506" gi="967"/><bf us="65507" ue="65507" gi="797"/><bf us="65508" !
ue="65508" gi="968"/><bf us="65509" ue="65509" gi="798"/><bf u!
s="65535
" ue="65535" gi="0"/></bfranges><cid-widths start-index="0"><wx w="1000"/><wx w="0"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="!
500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/></cid-widths></multibyte-extras></font-metrics>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.ttc
===================================================================
(Binary files differ)
Property changes on: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.ttc
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/simsun.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<font-metrics type="TYPE0"><font-name>SimSun</font-name><embed/><cap-height>0</cap-height><x-height>0</x-height><ascender>859</ascender><descender>-140</descender><bbox><left>0</left><bottom>-140</bottom><right>996</right><top>855</top></bbox><flags>33</flags><stemv>0</stemv><italicangle>0</italicangle><ttc-name>SimSun</ttc-name><subtype>TYPE0</subtype><multibyte-extras><cid-type>CIDFontType2</cid-type><default-width>0</default-width><bfranges><bf us="32" ue="126" gi="3"/><bf us="127" ue="127" gi="2"/><bf us="160" ue="163" gi="22021"/><bf us="164" ue="164" gi="98"/><bf us="165" ue="166" gi="22025"/><bf us="167" ue="168" gi="99"/><bf us="169" ue="175" gi="22027"/><bf us="176" ue="177" gi="101"/><bf us="178" ue="182" gi="22034"/><bf us="183" ue="183" gi="103"/><bf us="184" ue="214" gi="22039"/><bf us="215" ue="215" gi="104"/><bf us="216" ue="223" gi="22070"/><bf us="224" ue="225" gi="105"/><bf us="226" ue="231" gi="22078"/><bf us="232" ue="234" gi="107"/><bf us="235" ue="235"!
gi="22084"/><bf us="236" ue="237" gi="110"/><bf us="238" ue="241" gi="22085"/><bf us="242" ue="243" gi="112"/><bf us="244" ue="246" gi="22089"/><bf us="247" ue="247" gi="114"/><bf us="248" ue="248" gi="22092"/><bf us="249" ue="250" gi="115"/><bf us="251" ue="251" gi="22093"/><bf us="252" ue="252" gi="117"/><bf us="253" ue="255" gi="22094"/><bf us="257" ue="257" gi="118"/><bf us="275" ue="275" gi="119"/><bf us="283" ue="283" gi="120"/><bf us="299" ue="299" gi="121"/><bf us="324" ue="324" gi="122"/><bf us="328" ue="328" gi="123"/><bf us="333" ue="333" gi="124"/><bf us="338" ue="339" gi="22097"/><bf us="352" ue="353" gi="22099"/><bf us="363" ue="363" gi="125"/><bf us="376" ue="376" gi="22101"/><bf us="402" ue="402" gi="22102"/><bf us="462" ue="462" gi="126"/><bf us="464" ue="464" gi="127"/><bf us="466" ue="466" gi="128"/><bf us="468" ue="468" gi="129"/><bf us="470" ue="470" gi="130"/><bf us="472" ue="472" gi="131"/><bf us="474" ue="474" gi="132"/><bf us="476" ue="476" gi="133!
"/><bf us="505" ue="505" gi="687"/><bf us="593" ue="593" gi="1!
34"/><bf
us="609" ue="609" gi="135"/><bf us="710" ue="710" gi="22103"/><bf us="711" ue="711" gi="136"/><bf us="713" ue="713" gi="137"/><bf us="714" ue="715" gi="799"/><bf us="729" ue="729" gi="801"/><bf us="732" ue="732" gi="22104"/><bf us="913" ue="929" gi="138"/><bf us="931" ue="937" gi="155"/><bf us="945" ue="961" gi="162"/><bf us="963" ue="969" gi="179"/><bf us="1025" ue="1025" gi="186"/><bf us="1040" ue="1103" gi="187"/><bf us="1105" ue="1105" gi="251"/><bf us="8208" ue="8208" gi="971"/><bf us="8211" ue="8211" gi="802"/><bf us="8212" ue="8212" gi="252"/><bf us="8213" ue="8213" gi="803"/><bf us="8214" ue="8214" gi="253"/><bf us="8216" ue="8217" gi="254"/><bf us="8218" ue="8218" gi="22105"/><bf us="8220" ue="8221" gi="256"/><bf us="8222" ue="8222" gi="22106"/><bf us="8224" ue="8226" gi="22107"/><bf us="8229" ue="8229" gi="804"/><bf us="8230" ue="8230" gi="258"/><bf us="8240" ue="8240" gi="259"/><bf us="8242" ue="8243" gi="260"/><bf us="8245" ue="8245" gi="805"/><bf us="8249" ue="!
8250" gi="22110"/><bf us="8251" ue="8251" gi="262"/><bf us="8364" ue="8364" gi="22112"/><bf us="8451" ue="8451" gi="263"/><bf us="8453" ue="8453" gi="806"/><bf us="8457" ue="8457" gi="807"/><bf us="8470" ue="8470" gi="264"/><bf us="8481" ue="8481" gi="969"/><bf us="8482" ue="8482" gi="22113"/><bf us="8544" ue="8555" gi="265"/><bf us="8560" ue="8569" gi="957"/><bf us="8592" ue="8595" gi="277"/><bf us="8598" ue="8601" gi="808"/><bf us="8712" ue="8712" gi="281"/><bf us="8719" ue="8719" gi="282"/><bf us="8721" ue="8721" gi="283"/><bf us="8725" ue="8725" gi="812"/><bf us="8730" ue="8730" gi="284"/><bf us="8733" ue="8734" gi="285"/><bf us="8735" ue="8735" gi="813"/><bf us="8736" ue="8736" gi="287"/><bf us="8739" ue="8739" gi="814"/><bf us="8741" ue="8741" gi="288"/><bf us="8743" ue="8747" gi="289"/><bf us="8750" ue="8750" gi="294"/><bf us="8756" ue="8759" gi="295"/><bf us="8765" ue="8765" gi="299"/><bf us="8776" ue="8776" gi="300"/><bf us="8780" ue="8780" gi="301"/><bf us="8786" !
ue="8786" gi="815"/><bf us="8800" ue="8801" gi="302"/><bf us="!
8804" ue
="8805" gi="304"/><bf us="8806" ue="8807" gi="816"/><bf us="8814" ue="8815" gi="306"/><bf us="8853" ue="8853" gi="880"/><bf us="8857" ue="8857" gi="308"/><bf us="8869" ue="8869" gi="309"/><bf us="8895" ue="8895" gi="818"/><bf us="8978" ue="8978" gi="310"/><bf us="9312" ue="9321" gi="311"/><bf us="9332" ue="9371" gi="321"/><bf us="9472" ue="9547" gi="361"/><bf us="9552" ue="9587" gi="819"/><bf us="9601" ue="9615" gi="855"/><bf us="9619" ue="9621" gi="870"/><bf us="9632" ue="9633" gi="437"/><bf us="9650" ue="9651" gi="439"/><bf us="9660" ue="9661" gi="873"/><bf us="9670" ue="9671" gi="441"/><bf us="9675" ue="9675" gi="443"/><bf us="9678" ue="9679" gi="444"/><bf us="9698" ue="9701" gi="875"/><bf us="9733" ue="9734" gi="446"/><bf us="9737" ue="9737" gi="879"/><bf us="9792" ue="9792" gi="448"/><bf us="9794" ue="9794" gi="449"/><bf us="11905" ue="11905" gi="21903"/><bf us="11908" ue="11908" gi="21907"/><bf us="11912" ue="11912" gi="21910"/><bf us="11915" ue="11915" gi="21911"/><bf!
us="11916" ue="11916" gi="21916"/><bf us="11943" ue="11943" gi="21930"/><bf us="11946" ue="11946" gi="21933"/><bf us="11950" ue="11950" gi="21936"/><bf us="11955" ue="11955" gi="21938"/><bf us="11958" ue="11959" gi="21939"/><bf us="11963" ue="11963" gi="21944"/><bf us="11978" ue="11978" gi="21954"/><bf us="12272" ue="12283" gi="689"/><bf us="12288" ue="12291" gi="450"/><bf us="12293" ue="12293" gi="454"/><bf us="12294" ue="12294" gi="977"/><bf us="12295" ue="12295" gi="21983"/><bf us="12296" ue="12305" gi="455"/><bf us="12306" ue="12306" gi="881"/><bf us="12307" ue="12311" gi="465"/><bf us="12317" ue="12318" gi="882"/><bf us="12321" ue="12329" gi="884"/><bf us="12353" ue="12435" gi="470"/><bf us="12443" ue="12444" gi="973"/><bf us="12445" ue="12446" gi="978"/><bf us="12449" ue="12534" gi="553"/><bf us="12540" ue="12540" gi="972"/><bf us="12541" ue="12542" gi="975"/><bf us="12549" ue="12585" gi="639"/><bf us="12832" ue="12841" gi="676"/><bf us="12849" ue="12849" gi="970"/><!
bf us="12963" ue="12963" gi="893"/><bf us="13198" ue="13199" g!
i="894"/
><bf us="13212" ue="13214" gi="896"/><bf us="13217" ue="13217" gi="899"/><bf us="13252" ue="13252" gi="900"/><bf us="13262" ue="13262" gi="901"/><bf us="13265" ue="13266" gi="902"/><bf us="13269" ue="13269" gi="904"/><bf us="13383" ue="13383" gi="21909"/><bf us="13427" ue="13427" gi="21908"/><bf us="13726" ue="13726" gi="21913"/><bf us="13838" ue="13838" gi="21915"/><bf us="13850" ue="13850" gi="21914"/><bf us="14616" ue="14616" gi="21919"/><bf us="14702" ue="14702" gi="21918"/><bf us="14799" ue="14799" gi="21921"/><bf us="14800" ue="14800" gi="21924"/><bf us="14815" ue="14815" gi="21922"/><bf us="14963" ue="14963" gi="21923"/><bf us="15182" ue="15182" gi="21927"/><bf us="15470" ue="15470" gi="21928"/><bf us="15584" ue="15584" gi="21929"/><bf us="16470" ue="16470" gi="21934"/><bf us="16735" ue="16735" gi="21935"/><bf us="17207" ue="17207" gi="21937"/><bf us="17324" ue="17324" gi="21943"/><bf us="17329" ue="17329" gi="21942"/><bf us="17373" ue="17373" gi="21945"/><bf us="1762!
2" ue="17622" gi="21946"/><bf us="17996" ue="17996" gi="21948"/><bf us="18017" ue="18017" gi="21947"/><bf us="18211" ue="18211" gi="21950"/><bf us="18217" ue="18217" gi="21951"/><bf us="18300" ue="18300" gi="21952"/><bf us="18317" ue="18317" gi="21953"/><bf us="18759" ue="18759" gi="21955"/><bf us="18810" ue="18810" gi="21956"/><bf us="18813" ue="18813" gi="21957"/><bf us="18818" ue="18819" gi="21958"/><bf us="18821" ue="18822" gi="21960"/><bf us="18843" ue="18843" gi="21963"/><bf us="18847" ue="18847" gi="21962"/><bf us="18870" ue="18870" gi="21965"/><bf us="18871" ue="18871" gi="21964"/><bf us="19575" ue="19575" gi="21972"/><bf us="19615" ue="19615" gi="21969"/><bf us="19617" ue="19617" gi="21971"/><bf us="19618" ue="19618" gi="21973"/><bf us="19619" ue="19619" gi="21968"/><bf us="19629" ue="19629" gi="21970"/><bf us="19731" ue="19737" gi="21974"/><bf us="19886" ue="19886" gi="21981"/><bf us="19968" ue="40869" gi="980"/><bf us="59335" ue="59336" gi="686"/><bf us="59367" u!
e="59379" gi="688"/><bf us="59413" ue="59492" gi="21903"/><bf !
us="6378
8" ue="63788" gi="21882"/><bf us="63865" ue="63865" gi="21883"/><bf us="63893" ue="63893" gi="21884"/><bf us="63975" ue="63975" gi="21885"/><bf us="63985" ue="63985" gi="21886"/><bf us="64012" ue="64015" gi="21887"/><bf us="64017" ue="64017" gi="21891"/><bf us="64019" ue="64020" gi="21892"/><bf us="64024" ue="64024" gi="21894"/><bf us="64031" ue="64033" gi="21895"/><bf us="64035" ue="64036" gi="21898"/><bf us="64039" ue="64041" gi="21900"/><bf us="65072" ue="65073" gi="905"/><bf us="65075" ue="65092" gi="907"/><bf us="65097" ue="65106" gi="925"/><bf us="65108" ue="65111" gi="935"/><bf us="65113" ue="65126" gi="939"/><bf us="65128" ue="65131" gi="953"/><bf us="65281" ue="65374" gi="701"/><bf us="65504" ue="65505" gi="795"/><bf us="65506" ue="65506" gi="967"/><bf us="65507" ue="65507" gi="797"/><bf us="65508" ue="65508" gi="968"/><bf us="65509" ue="65509" gi="798"/><bf us="65535" ue="65535" gi="0"/></bfranges><cid-widths start-index="0"><wx w="1000"/><wx w="0"/><wx w="500"/><w!
x w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><w!
x w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/!
><wx w="
500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><w
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1!
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1
000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000!
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000
"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/>!
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/>
<wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx!
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w=!
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w=
"1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="10!
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="10
00"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"!
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"
/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><!
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><
wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx !
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx
w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="!
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="
1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="100!
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><w!
x w="100
0"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/!
><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w!
="1000"/
><wx w="1000"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/!
><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="500"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/><wx w="1000"/></cid-widths></multibyte-extras></font-metrics>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/userconfig.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/userconfig.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/fop/userconfig.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,114 @@
+<!--<!DOCTYPE configuration SYSTEM "config.dtd">-->
+<!--
+ this file contains templates which allow an user easy
+ configuration of Fop. Actually normally you don't need this configuration
+ file, but if you need to change configuration, you should
+ always use this file and *not* config.xml.
+ Usage: java org.apache.fop.apps.Fop -c userconfig.xml -fo fo-file -pdf pdf-file
+-->
+
+
+<configuration>
+
+<!--
+baseDir: normally the base directory is the directory where the fo file is
+ located. if you want to specify your own, uncomment this entry.
+ This value can also be a URL. Actually, the value is converted to
+ a URL.
+-->
+<!--
+ <entry>
+ <key>baseDir</key>
+ <value></value>
+ </entry>
+-->
+
+<!--
+fontBaseDir: Similar to baseDir, except that this value is used for fonts. If
+ it isn't specified, the value from baseDir is used.
+-->
+<!--
+ <entry>
+ <key>fontBaseDir</key>
+ <value></value>
+ </entry>
+-->
+
+<!--
+************************************************************************
+ HYPHENATION
+************************************************************************
+-->
+
+<!--
+ hyphenation directory
+ if you want to specify your own directory with hyphenation pattern
+ then uncomment the next entry and add the directory name
+-->
+
+<!--
+ <entry>
+ <key>hyphenation-dir</key>
+ <value>/java/xml-fop/hyph</value>
+ </entry>
+-->
+
+<!--
+************************************************************************
+ Add fonts here
+************************************************************************
+-->
+
+<fonts>
+ <!-- example -->
+ <!--
+ <font metrics-file="arial.xml" kerning="yes" embed-file="arial.ttf">
+ <font-triplet name="Arial" style="normal" weight="normal"/>
+ <font-triplet name="ArialMT" style="normal" weight="normal"/>
+ </font>
+ <font metrics-file="arialb.xml" kerning="yes" embed-file="arialb.ttf">
+ <font-triplet name="Arial" style="normal" weight="bold"/>
+ <font-triplet name="ArialMT" style="normal" weight="bold"/>
+ </font>
+ <font metrics-file="ariali.xml" kerning="yes" embed-file="ariali.ttf">
+ <font-triplet name="Arial" style="italic" weight="normal"/>
+ <font-triplet name="ArialMT" style="italic" weight="normal"/>
+ </font>
+ <font metrics-file="arialbi.xml" kerning="yes" embed-file="arialbi.ttf">
+ <font-triplet name="Arial" style="italic" weight="bold"/>
+ <font-triplet name="ArialMT" style="italic" weight="bold"/>
+ </font>
+ -->
+ <!-- Example Japanese fonts
+ <font metrics-file="msgothic.xml" embed-file="D:\winnt\font\msgothic.ttc" kerning="yes">
+ <font-triplet name="Gothic" style="normal" weight="normal"/>
+ <font-triplet name="Gothic" style="normal" weight="bold"/>
+ <font-triplet name="Gothic" style="italic" weight="normal"/>
+ <font-triplet name="Gothic" style="italic" weight="bold"/>
+ </font>
+ <font metrics-file="msmincho.xml" embed-file="Cyberbit.ttf" kerning="yes">
+ <font-triplet name="Mincho" style="normal" weight="normal"/>
+ <font-triplet name="Mincho" style="normal" weight="bold"/>
+ <font-triplet name="Mincho" style="italic" weight="normal"/>
+ <font-triplet name="Mincho" style="italic" weight="bold"/>
+ </font>
+ -->
+ <font metrics-file="simhei.xml" embed-file="simhei.ttf" kerning="yes">
+ <font-triplet name="simhei" style="normal" weight="normal"/>
+ <font-triplet name="simhei" style="normal" weight="bold"/>
+ <font-triplet name="simhei" style="italic" weight="normal"/>
+ <font-triplet name="simhei" style="italic" weight="bold"/>
+ </font>
+ <font metrics-file="simsun.xml" embed-file="simsun.ttc" kerning="yes">
+ <font-triplet name="simsun" style="normal" weight="normal"/>
+ <font-triplet name="simsun" style="normal" weight="bold"/>
+ <font-triplet name="simsun" style="italic" weight="normal"/>
+ <font-triplet name="simsun" style="italic" weight="bold"/>
+ </font>
+</fonts>
+
+
+</configuration>
+
+
+
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/images/hibernate_logo_a.png
===================================================================
(Binary files differ)
Property changes on: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/images/hibernate_logo_a.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/master.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/master.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/master.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+"../support/docbook-dtd/docbookx.dtd" [
+<!ENTITY setup SYSTEM "modules/setup.xml">
+<!ENTITY entity SYSTEM "modules/entity.xml">
+<!ENTITY xml-overriding SYSTEM "modules/xml-overriding.xml">
+<!ENTITY validator SYSTEM "modules/validator.xml">
+<!ENTITY lucene SYSTEM "modules/lucene.xml">
+]>
+<book lang="zh_cn">
+ <bookinfo>
+ <title>Hibernate Annotations</title>
+
+ <subtitle>åèææ¡£</subtitle>
+
+ <releaseinfo>3.2.0 CR1</releaseinfo>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/hibernate_logo_a.png" format="png" />
+ </imageobject>
+ </mediaobject>
+ </bookinfo>
+
+ <toc></toc>
+
+ <preface id="preface" revision="2">
+ <title>åè¨</title>
+
+ <para>WARNING! This is a translated version of the English Hibernate
+ reference documentation. The translated version might not be up to date!
+ However, the differences should only be very minor. Consult the English
+ reference documentation if you are missing information or encounter a
+ translation error. If you like to contribute to a particular translation,
+ contact us on the Hibernate developer mailing list.</para>
+
+ <para>Translator(s): RedSaga Translate Team 满æ±çº¢ç¿»è¯å¢é
+ <caoxg at yahoo.com></para>
+
+ <sect1 id="preface-translate-comments-zh-cn">
+ <title>ç¿»è¯è¯´æ</title>
+
+ <para>æ¬ææ¡£çç¿»è¯æ¯å¨ç½ç»ä¸åä½è¿è¡çï¼ä¹ä¼ä¸ææ ¹æ®Hibernateçå级è¿è¡æ´æ°ãæä¾æ¤ææ¡£çç®çæ¯ä¸ºäºåç¼å¦ä¹ Hibernateçå¡åº¦ï¼èé代æ¿åææ¡£ãæ们建议æææè½åç读è
é½ç´æ¥é
读è±æåæãè¥æ¨å¯¹ç¿»è¯æå¼è®®ï¼æåç°ç¿»è¯é误ï¼æ¬è¯·ä¸åèµæï¼æ¥åå°å¦ä¸å°åï¼http://wiki.redsaga.com/confluence/display/HART/Home</para>
+
+ <table frame="topbot" id="redsaga-translate-team">
+ <title>Hibernate Annotation v3ç¿»è¯å¢é</title>
+
+ <tgroup cols="6" colsep="1" rowsep="1">
+ <colspec colname="c1" colwidth="1*" />
+
+ <colspec colname="c2" colwidth="2*" />
+
+ <colspec colname="c3" colwidth="2*" />
+
+ <colspec colname="c4" colwidth="2*" />
+
+ <colspec colname="c5" colwidth="2*" />
+
+ <thead>
+ <row>
+ <entry align="center">åºå·</entry>
+
+ <entry align="center">æ é¢</entry>
+
+ <entry align="center">ä¸ææ é¢</entry>
+
+ <entry align="center">ç¿»è¯</entry>
+
+ <entry align="center">1审</entry>
+
+ <entry align="center"> 2审</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>--</entry>
+
+ <entry>Contents</entry>
+
+ <entry>ç®å½</entry>
+
+ <entry>Liu Chang</entry>
+
+ <entry></entry>
+
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry>#1</entry>
+
+ <entry>Setting up an annotations projec</entry>
+
+ <entry>å建ä¸ä¸ªæ³¨è§£é¡¹ç®</entry>
+
+ <entry>melthaw</entry>
+
+ <entry>Zheng Shuai</entry>
+
+ <entry>superq</entry>
+ </row>
+
+ <row>
+ <entry>#2</entry>
+
+ <entry>Entity Beans-Introduction</entry>
+
+ <entry>å®ä½Bean-ç®ä»</entry>
+
+ <entry>melthaw</entry>
+
+ <entry>Zheng Shuai</entry>
+
+ <entry>superq</entry>
+ </row>
+
+ <row>
+ <entry>#3</entry>
+
+ <entry>Entity Beans-Mapping with EJB3 Annotations</entry>
+
+ <entry>å®ä½Bean-ç¨EJB3注解è¿è¡æ å°</entry>
+
+ <entry>melthaw</entry>
+
+ <entry>Zheng Shuai</entry>
+
+ <entry>superq, Liu Chang, Sean Chan</entry>
+ </row>
+
+ <row>
+ <entry>#4</entry>
+
+ <entry>Entity Beans-Mapping Queries</entry>
+
+ <entry>å®ä½Bean-æ å°æ¥è¯¢</entry>
+
+ <entry>melthaw</entry>
+
+ <entry>Zheng Shuai</entry>
+
+ <entry>superq, Liu Chang, Sean Chan</entry>
+ </row>
+
+ <row>
+ <entry>#5</entry>
+
+ <entry>Entity Beans-Hibernate Annotation Extensions</entry>
+
+ <entry>å®ä½Bean-Hibernateç¬æç注解æ©å±</entry>
+
+ <entry>Sean Chan</entry>
+
+ <entry>morning</entry>
+
+ <entry>melthaw</entry>
+ </row>
+
+ <row>
+ <entry>#6</entry>
+
+ <entry>Overriding metadata through XML</entry>
+
+ <entry>éè¿XMLè¦åå
æ°æ®</entry>
+
+ <entry>icess</entry>
+
+ <entry>melthaw</entry>
+
+ <entry>Sean Chan</entry>
+ </row>
+
+ <row>
+ <entry>#7</entry>
+
+ <entry>Hibernate Validator</entry>
+
+ <entry>Hibernateéªè¯å¨</entry>
+
+ <entry>DigitalSonic</entry>
+
+ <entry>morning</entry>
+
+ <entry>melthaw</entry>
+ </row>
+
+ <row>
+ <entry>#8</entry>
+
+ <entry>Hibernate Lucene Integration</entry>
+
+ <entry>Hibernateä¸Luceneéæ</entry>
+
+ <entry>mochow</entry>
+
+ <entry>morning</entry>
+
+ <entry>melthaw</entry>
+ </row>
+
+ <row>
+ <entry>#9</entry>
+
+ <entry>Appendix:Glossary</entry>
+
+ <entry>éå½:æ¯è¯è¡¨</entry>
+
+ <entry>mochow</entry>
+
+ <entry>Liu Chang</entry>
+
+ <entry>æ¹æé¢</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>å
³äºæ们</para>
+
+ <variablelist spacing="compact">
+ <varlistentry>
+ <term>满æ±çº¢.å¼æº, http://www.redsaga.com</term>
+
+ <listitem>
+ <para>ä»æç«ä¹åå°±è´åäºJavaå¼æ¾æºä»£ç å¨ä¸å½çä¼ æä¸åå±,ä¸å½å
å¤ä¸ªJavaå¢ä½ååºç社ææ·±å
¥äº¤æµãåæå°è¯´å¤åçååï¼ç®åæ两个å¢éï¼âOpenDocå¢éâä¸âç¿»è¯å¢éâï¼æ¬ç¿»è¯ææ¡£å³ä¸ºç¿»è¯å¢éä½åãOpenDocå¢éå·²ç»æ¨åºå
æ¬HibernateãiBatisãSpringãWebWorkçå¤ä»½å¼æ¾ææ¡£ï¼å¹¶äº2005å¹´5æå¨Hibernateå¼æ¾ææ¡£åºç¡ä¸æ©å
æ书ï¼åºçäºåå书ç±ï¼ãæ·±å
¥æµ
åºHibernateãï¼æ¬ä¹¦400ä½é¡µï¼éåå个å±æ¬¡çHibernateç¨æ·ã(http://www.redsaga.com/hibernate_book.html)æ¬è¯·æ¯æã</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>è´è°¢</term>
+
+ <listitem>
+ <para>å¨æ们翻è¯Hibernate
+ Annotationåèææ¡£çåæ¶ï¼è¿æä¸ä½çå¿çæåä¹å¨è¿è¡çåæ ·çå·¥ä½ï¼è¿ä½æåå°±æ¯icess(å°é¨)ï¼ç±icessç¿»è¯çä¸æççå°åï¼
+ http://icess.my.china.com/hibernate/a/ref/index.htm</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+
+ <sect1 id="preface-translate-licence-zh-cn">
+ <title>çæ声æ</title>
+
+ <para>Hibernateè±æææ¡£å±äºHibernateåè¡å
çä¸é¨åï¼éµå¾ªLGPLåè®®ãæ¬ç¿»è¯çæ¬åæ ·éµå¾ªLGPLåè®®ãåä¸ç¿»è¯çè¯è
ä¸è´åææ¾å¼é¤ç½²åæå¤å¯¹æ¬ç¿»è¯çæ¬çå
¶å®æå©è¦æ±ã</para>
+
+ <para>æ¨å¯ä»¥èªç±é¾æ¥ãä¸è½½ãä¼ ææ¤ææ¡£ï¼æè
æ¾ç½®å¨æ¨çç½ç«ä¸ï¼çè³ä½ä¸ºäº§åçä¸é¨ååè¡ãä½åææ¯å¿
é¡»ä¿è¯å
¨æå®æ´è½¬è½½ï¼å
æ¬å®æ´ççæä¿¡æ¯åä½è¯è
声æï¼å¹¶ä¸è½è¿åLGPLåè®®ãè¿éâå®æ´âçå«ä¹æ¯ï¼ä¸è½è¿è¡ä»»ä½å é¤/å¢æ·»/注解ãè¥æå é¤/å¢æ·»/注解ï¼å¿
é¡»é段æ确声æé£äºé¨å并éæ¬ææ¡£çä¸é¨åã</para>
+ </sect1>
+ </preface>
+
+ <preface>
+ <title>åè¨</title>
+
+ <para>æ£å¦å
¶ä»çORMå·¥å
·,Hibernateåæ ·éè¦å
æ°æ®æ¥æ§å¶å¨ä¸åæ°æ®è¡¨è¾¾å½¢å¼ä¹é´ç转å. å¨Hibernate
+ 2.xé,å¤æ°æ
åµä¸è¡¨ç¤ºæ å°å
³ç³»çå
æ°æ®ä¿åå¨XMLææ¬æ件ä¸.
+ è¿æä¸ç§æ¹å¼å°±æ¯Xdoclet,å®å¯ä»¥å¨ç¼è¯æ¶å©ç¨Javadocä¸çæºç 注éä¿¡æ¯æ¥è¿è¡é¢å¤ç.
+ ç°å¨æ°çJDKæ åï¼JDK1.5以ä¸ï¼ä¹æ¯æ类似ç注解åè½,ä½ç¸æ¯ä¹ä¸å¾å¤å·¥å
·å¯¹æ¤æä¾äºæ´å¼ºå¤§æ´å¥½ç¨çæ¯æ. 以IntelliJ
+ IDEAåEclipse为ä¾,è¿äºIDEå·¥å
·ä¸ºJDK 5.0注解åè½æä¾äºèªå¨å®æåè¯æ³é«äº®åè½. 注解被ç´æ¥ç¼è¯å°åèç é,并
+ å¨è¿è¡æ¶ï¼å¯¹äºHibernateæ¥è®²å°±æ¯å¯å¨çæ¶åï¼éè¿åå°è¯»åè¿äºæ³¨è§£, å æ¤å¤é¨XMLæ件就ä¸åéè¦äº.</para>
+
+ <para>EJB3è§èæç»è®¤å¯äºéæåORMçæåèä¾ä»¥åå¸åºå¯¹äºè¿ç§ææ¯çå
´è¶£.
+ EJB3è§èæ ååäºORMçåºç¡APIèä¸å¨ä»»ä½ORMæä¹
åæºå¶ä¸ä½¿ç¨å
æ°æ®. <emphasis>Hibernate
+ EntityManager</emphasis>å®ç°äºEJB3æä¹
åè§èä¸å®ä¹çç¼ç¨æ¥å£åçå½å¨æè§å. å¨<emphasis>Hibernate
+ Core</emphasis>çåºç¡ä¸åç»å <emphasis>Hibernate
+ Annotations</emphasis>å°±å®ç°äºä¸å¥å®æ´(并ä¸ç¬ç«)çEJB3æä¹
å解å³æ¹æ¡.
+ ä½ å¯ä»¥ç»åä¸è
æ¥ä½¿ç¨,ä¹å¯ä»¥æå¼EJB3ç¼ç¨æ¥å£åçå½å¨æè§åèç¬ç«ä½¿ç¨æ³¨è§£, çè³åªåç¬ä½¿ç¨<emphasis>Hibernate
+ Core</emphasis>. è¿äºé½åå³äºé¡¹ç®çåä¸åææ¯ä¸çå®é
éæ±. Hibernateå
è®¸ä½ ç´æ¥ä½¿ç¨native APIs,å¦ææéè¦,
+ çè³å¯ä»¥ç´æ¥æä½JDBCåSQL.</para>
+
+ <para>注ææ¬ææ¡£åºäºHibernate Annotationsçé¢è§ç(éµä»EJB 3.0/JSR-220æç»èæ¡).
+ è¿ä¸ªçæ¬åæ°è§èä¸å®ä¹çæç»æ¦å¿µå·²ç»é常æ¥è¿äº.æ们çç®æ æ¯æä¾ä¸å¥å®æ´çORM注解,
+ å
æ¬EJB3çæ å注解以åHibernate3çæ©å±ï¼åè
æ¯EJB3è§èä¸æ²¡ææ¶åå°çï¼. æç»éè¿æ³¨è§£ä½ å¯ä»¥å®æä»»ä½å¯è½çæ å°.详æ
åè<xref
+ linkend="compliance" />.</para>
+
+ <para>EJB3æç»èæ¡ä¿®æ¹äºé¨å注解,
+ http://www.hibernate.org/371.htmlæä¾äºä»ä¸ä¸ä¸ªçæ¬å°ææ°çæ¬çè¿ç§»æå.</para>
+ </preface>
+
+ &setup;
+
+ &entity;
+
+ &xml-overriding;
+
+ &validator;
+
+ &lucene;
+
+ <appendix>
+ <title id="glossary">æ¯è¯è¡¨</title>
+
+ <para>Redsagaçwikiä¸ç»´æ¤äºæ¬æç¿»è¯è¿ç¨ä¸æåç
§çä¸è±æ对ç
§çæ¯è¯è¡¨,å°å:http://wiki.redsaga.com/confluence/display/HART/glossary.</para>
+ </appendix>
+</book>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/entity.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/entity.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/entity.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,2857 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="entity">
+ <title>å®ä½Bean</title>
+
+ <sect1 id="entity-overview" revision="1">
+ <title>ç®ä»</title>
+
+ <para>æ¬ç« å
容è¦çäºEJB3.0å®ä½beanç注解è§è以åHibernateç¹æçæ©å±.</para>
+ </sect1>
+
+ <sect1 id="mapping" revision="1">
+ <title>ç¨EJB3注解è¿è¡æ å°</title>
+
+ <para>ç°å¨EJB3å®ä½Beanæ¯çº¯ç²¹çPOJO.å®é
ä¸è¿è¡¨è¾¾äºåHibernateæä¹
åå®ä½å¯¹è±¡åæ ·çæ¦å¿µ.
+ å®ä»¬çæ å°é½éè¿JDK5.0注解æ¥å®ä¹(EJB3è§èä¸çXMLæè¿°è¯æ³è³ä»è¿æ²¡ææç»å®ä¸æ¥).
+ 注解å为两个é¨å,åå«æ¯é»è¾æ å°æ³¨è§£åç©çæ å°æ³¨è§£,
+ éè¿é»è¾æ å°æ³¨è§£å¯ä»¥æ述对象模å,ç±»ä¹é´çå
³ç³»çç,
+ èç©çæ å°æ³¨è§£åæè¿°äºç©ççschema,表,å,ç´¢å¼çç.
+ ä¸é¢æ们å¨ä»£ç ä¸å°æ··å使ç¨è¿ä¸¤ç§ç±»åç注解.</para>
+
+ <para>EJB3注解çAPIå®ä¹å¨<literal>javax.persistence.*</literal>å
éé¢.
+ 大é¨ååJDK5å
¼å®¹çIDE(象Eclipse, IntelliJ IDEA åNetbeansçç)é½æä¾äºæ³¨è§£æ¥å£åå±æ§çèªå¨å®æåè½.
+ (è¿äºä¸éè¦IDEæä¾ç¹å«çEJB3æ¯æ模å,å 为EJB3注解æ¯æ åçJDK5注解)</para>
+
+ <para>请é
读JBoss EJB 3.0æåæè
ç´æ¥é
读Hibernate Annotationsæµè¯ä»£ç 以è·åæ´å¤çå¯è¿è¡å®ä¾.Hibernate Annotationsæä¾ç大é¨ååå
æµè¯ä»£ç é½æ¼ç¤ºäºå®é
çä¾å,æ¯ä¸ä¸ªè·åçµæç好å°æ¹.</para>
+
+ <sect2>
+ <title>声æå®ä½bean</title>
+
+ <para>æ¯ä¸ä¸ªæä¹
åPOJOç±»é½æ¯ä¸ä¸ªå®ä½bean,è¿å¯ä»¥éè¿å¨ç±»çå®ä¹ä¸ä½¿ç¨<literal>@Entity</literal>注解æ¥è¿è¡å£°æ:</para>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+ Long id;
+
+ @Id
+ public Long getId() { return id; }
+
+ public void setId(Long id) { this.id = id; }
+}
+ </programlisting>
+
+ <para>éè¿<literal>@Entity</literal>注解å°ä¸ä¸ªç±»å£°æ为ä¸ä¸ªå®ä½bean(å³ä¸ä¸ªæä¹
åPOJOç±»),
+ <literal>@Id</literal>注解å声æäºè¯¥å®ä½beançæ è¯å±æ§.
+ å
¶ä»çæ å°å®ä¹æ¯éå¼ç.è¿ç§ä»¥éå¼æ å°ä¸ºä¸»ä½,以æ¾å¼æ å°ä¸ºä¾å¤çé
ç½®æ¹å¼å¨æ°çEJ3è§èä¸å¤äºé常éè¦çä½ç½®,
+ å以åççæ¬ç¸æ¯æäºè´¨çé£è·.
+ å¨ä¸é¢è¿æ®µä»£ç ä¸ï¼Flightç±»æ å°å°Flight表,并使ç¨idåä½ä¸ºä¸»é®å.
+ </para>
+
+ <para>å¨å¯¹ä¸ä¸ªç±»è¿è¡æ³¨è§£æ¶,ä½ å¯ä»¥éæ©å¯¹å®ççå±æ§æè
æ¹æ³è¿è¡æ³¨è§£,æ ¹æ®ä½ çéæ©,Hibernateç访é®ç±»ååå«ä¸º
+ <literal>field</literal>æ<literal>property</literal>.
+ EJ3è§èè¦æ±å¨éè¦è®¿é®çå
ç´ ä¸è¿è¡æ³¨è§£å£°æ,ä¾å¦,å¦æ访é®ç±»å为
+ <literal>property</literal>å°±è¦å¨getteræ¹æ³ä¸è¿è¡æ³¨è§£å£°æ,
+ å¦æ访é®ç±»å为 <literal>field</literal>å°±è¦å¨å段ä¸è¿è¡æ³¨è§£å£°æ.åºè¯¥å°½éé¿å
æ··å使ç¨è¿ä¸¤ç§è®¿é®ç±»å.
+ Hibernateæ ¹æ®<literal>@Id</literal> æ <literal>@EmbeddedId</literal>çä½ç½®æ¥å¤æ访é®ç±»å.</para>
+
+ <sect3>
+ <title>å®ä¹è¡¨(Table)</title>
+
+ <para><literal>@Table</literal>æ¯ç±»ä¸çº§ç注解,
+ éè¿<literal>@Table</literal>注解å¯ä»¥ä¸ºå®ä½beanæ å°æå®è¡¨(table),ç®å½(catalog)åschemaçåå.
+ å¦æ没æå®ä¹<literal>@Table</literal>,é£ä¹ç³»ç»èªå¨ä½¿ç¨é»è®¤å¼ï¼å®ä½ççç±»å(ä¸é带å
å).</para>
+
+ <programlisting>
+ at Entity
+ at Table(name="tbl_sky")
+public class Sky implements Serializable {
+...
+ </programlisting>
+
+ <para><literal>@Table</literal>å
ç´ å
æ¬äºä¸ä¸ª<literal>schema</literal>
+ åä¸ä¸ª <literal>catalog</literal>å±æ§,å¦æéè¦å¯ä»¥æå®ç¸åºçå¼.
+ ç»å使ç¨<literal>@UniqueConstraint</literal>注解å¯ä»¥å®ä¹è¡¨çå¯ä¸çº¦æ(unique constraint)
+ (对äºç»å®å°ååçå¯ä¸çº¦æ,请åè<literal>@Column</literal>注解)
+ </para>
+
+ <programlisting>@Table(name="tbl_sky",
+ <emphasis role="bold">uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}</emphasis>
+ )</programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,å¨monthådayè¿ä¸¤ä¸ªå段ä¸å®ä¹å¯ä¸çº¦æ.
+ 注æ<literal>columnNames</literal>æ°ç»ä¸çå¼æçæ¯é»è¾åå.</para>
+
+ <remark>Hibernateå¨NamingStrategyçå®ç°ä¸å®ä¹äºé»è¾åå.
+ é»è®¤çEJB3å½åçç¥å°ç©çå段åå½ä½é»è¾å段åæ¥ä½¿ç¨.
+ 注æ该å段ååå®å¯¹åºçå±æ§åå¯è½ä¸å(å¦æå段åæ¯æ¾å¼æå®çè¯).
+ é¤éä½ éåäºNamingStrategy,å¦åä¸ç¨æ
å¿è¿äºåºå«..</remark>
+ </sect3>
+
+ <sect3>
+ <title>ä¹è§éå®çæ¬æ§å¶</title>
+
+ <para>ä½ å¯ä»¥å¨å®ä½beanä¸ä½¿ç¨<literal>@Version</literal>注解,éè¿è¿ç§æ¹å¼å¯æ·»å 对ä¹è§éå®çæ¯æ:</para>
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+...
+ @Version
+ @Column(name="OPTLOCK")
+ public Integer getVersion() { ... }
+} </programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,versionå±æ§å°æ å°å° <literal>OPTLOCK</literal>å,
+ entity manager使ç¨è¯¥å段æ¥æ£æµæ´æ°å²çª(é²æ¢æ´æ°ä¸¢å¤±,请åèlast-commit-winsçç¥).</para>
+
+ <para>æ ¹æ®EJB3è§è,versionåå¯ä»¥æ¯numericç±»å(æ¨èæ¹å¼)ä¹å¯ä»¥æ¯timestampç±»å.
+ Hibernateæ¯æä»»ä½èªå®ä¹ç±»å,åªè¦è¯¥ç±»åå®ç°äº<classname>UserVersionType</classname>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>æ å°ç®åå±æ§</title>
+
+ <sect3>
+ <title>声æåºæ¬çå±æ§æ å°</title>
+
+ <para>Every non static non transient property (field or method) of an
+ entity bean is considered persistent, unless you annotate it as
+ <literal>@Transient</literal>. Not having an annotation for your
+ property is equivalent to the appropriate <literal>@Basic</literal>
+ annotation. The <literal>@Basic</literal> annotation allows you to
+ declare the fetching strategy for a property:</para>
+
+ <para>å®ä½beanä¸ææçéstaticétransientçå±æ§é½å¯ä»¥è¢«æä¹
å,
+ é¤éä½ å°å
¶æ³¨è§£ä¸º<literal>@Transient</literal>.ææ没æå®ä¹æ³¨è§£çå±æ§çä»·äºå¨å
¶ä¸é¢æ·»å äº@Basic注解.
+ éè¿ <literal>@Basic</literal>注解å¯ä»¥å£°æå±æ§çè·åçç¥(fetch strategy)ï¼</para>
+
+ <programlisting>public transient int counter; //transient property
+
+private String firstname; //persistent property
+
+ at Transient
+String getLengthInMeter() { ... } //transient property
+
+String getName() {... } // persistent property
+
+ at Basic
+int getLength() { ... } // persistent property
+
+ at Basic(fetch = FetchType.LAZY)
+String getDetailedComment() { ... } // persistent property
+
+ at Temporal(TemporalType.TIME)
+java.util.Date getDepartureTime() { ... } // persistent property
+
+ at Enumerated(EnumType.STRING)
+Starred getNote() { ... } //enum persisted as String in database</programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,<literal>counter</literal>æ¯ä¸ä¸ªtransientçå段,
+ <literal>lengthInMeter</literal>çgetteræ¹æ³è¢«æ³¨è§£ä¸º<literal>@Transient</literal>,
+ entity managerå°å¿½ç¥è¿äºå段åå±æ§.
+ è<literal>name</literal>,<literal>length</literal>,<literal>firstname</literal>
+ è¿å 个å±æ§åæ¯è¢«å®ä¹ä¸ºå¯æä¹
ååå¯è·åç.对äºç®åå±æ§æ¥è¯´,é»è®¤çè·åæ¹å¼æ¯å³æ¶è·å(early fetch).
+ å½ä¸ä¸ªå®ä½Beançå®ä¾è¢«å建æ¶,Hibernateä¼å°è¿äºå±æ§çå¼ä»æ°æ®åºä¸æååºæ¥,ä¿åå°Beançå±æ§é.
+ ä¸å³æ¶è·åç¸å¯¹åºçæ¯å»¶è¿è·å(lazy fetch).å¦æä¸ä¸ªå±æ§çè·åæ¹å¼æ¯å»¶è¿è·å
+ (æ¯å¦ä¸é¢ä¾åä¸ç<literal>detailedComment</literal>å±æ§),
+ Hibernateå¨å建ä¸ä¸ªå®ä½Beançå®ä¾æ¶,ä¸ä¼å³æ¶å°è¿ä¸ªå±æ§çå¼ä»æ°æ®åºä¸è¯»åº.
+ åªæå¨è¯¥å®ä½Beançè¿ä¸ªå±æ§ç¬¬ä¸æ¬¡è¢«è°ç¨æ¶,Hibernateæä¼å»è·å对åºçå¼.
+ éå¸¸ä½ ä¸éè¦å¯¹ç®åå±æ§è®¾ç½®å»¶è¿è·å(lazy simple property),åä¸ä¸è¦å延è¿å
³èè·å(lazy association fetch)æ··æ·äº
+ (è¯æ³¨:è¿éæä¸è¦ælazy simple propertyålazy association fetchæ··æ·äº).
+ </para>
+
+ <note>
+ <para>为äºå¯ç¨å±æ§çº§ç延è¿è·å,ä½ çç±»å¿
é¡»ç»è¿ç¹æ®å¤ç(instrumented)ï¼
+ åèç å°è¢«ç»å
¥åå§ç±»ä¸æ¥å®ç°å»¶è¿è·ååè½,
+ 详æ
åèHibernateåèææ¡£.å¦æä¸å¯¹ç±»æ件è¿è¡åèç ç¹æ®å¤ç,
+ é£ä¹å±æ§çº§ç延è¿è·åå°è¢«å¿½ç¥.</para>
+ </note>
+
+ <para>æ¨èçæ¿ä»£æ¹æ¡æ¯ä½¿ç¨EJB-QLæè
Criteriaæ¥è¯¢çæå½±(projection)åè½.</para>
+
+ <para>HibernateåEJB3é½æ¯æææåºæ¬ç±»åçå±æ§æ å°.
+ è¿äºåºæ¬ç±»åå
æ¬ææçJavaåºæ¬ç±»å,åå
¶åèªçwrapperç±»åserializableç±».
+ Hibernate Annotationsè¿æ¯æå°å
ç½®çæ举类åæ å°å°ä¸ä¸ªé¡ºåºå(ä¿åäºç¸åºçåºåå¼)
+ æä¸ä¸ªå符串类åçå(ä¿åç¸åºçå符串).é»è®¤æ¯ä¿åæ举çåºåå¼,
+ ä½æ¯ä½ å¯ä»¥éè¿<literal>@Enumerated</literal>注解æ¥è¿è¡è°æ´(è§ä¸é¢ä¾åä¸çnoteå±æ§).</para>
+
+ <para>å¨æ ¸å¿çJava APIä¸å¹¶æ²¡æå®ä¹æ¶é´ç²¾åº¦(temporal precision).
+ å æ¤å¤çæ¶é´ç±»åæ°æ®æ¶,ä½ è¿éè¦å®ä¹å°å
¶åå¨å¨æ°æ®åºä¸æé¢æç精度.
+ å¨æ°æ®åºä¸,表示æ¶é´ç±»åçæ°æ®æ<literal>DATE</literal>, <literal>TIME</literal>,
+ å <literal>TIMESTAMP</literal>ä¸ç§ç²¾åº¦(å³å纯çæ¥æ,æ¶é´,æè
两è
å
¼å¤).
+ å¯ä½¿ç¨<literal>@Temporal</literal>注解æ¥è°æ´ç²¾åº¦.</para>
+
+ <para><literal>@Lob</literal>注解表示å±æ§å°è¢«æä¹
å为Blobæè
Clobç±»å,
+ å
·ä½åå³äºå±æ§çç±»å,
+ <classname>java.sql.Clob</classname>,
+ <classname>Character[]</classname>,
+ <classname>char[]</classname> å
+ <classname>java.lang.String</classname>è¿äºç±»åçå±æ§é½è¢«æä¹
å为Clobç±»å,
+ è<classname>java.sql.Blob</classname>,
+ <classname>Byte[]</classname>,
+ <classname>byte[]</classname> å
+ serializableç±»åå被æä¹
å为Blobç±»å.</para>
+
+ <programlisting>
+ at Lob
+public String getFullText() {
+ return fullText;
+}
+
+ at Lob
+public byte[] getFullCode() {
+ return fullCode;
+}
+ </programlisting>
+
+ <para>å¦ææ个å±æ§å®ç°äº<classname>java.io.Serializable</classname>åæ¶ä¹ä¸æ¯åºæ¬ç±»å,
+ 并ä¸æ²¡æå¨è¯¥å±æ§ä¸ä½¿ç¨<literal>@Lob</literal>注解,
+ é£ä¹Hibernateå°ä½¿ç¨èªå¸¦ç<literal>serializable</literal>ç±»å.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>声æåå±æ§</title>
+
+ <para>ä½¿ç¨ <literal>@Column </literal>注解å¯å°å±æ§æ å°å°å.
+ 使ç¨è¯¥æ³¨è§£æ¥è¦çé»è®¤å¼(å
³äºé»è®¤å¼è¯·åèEJB3è§è).
+ å¨å±æ§çº§ä½¿ç¨è¯¥æ³¨è§£çæ¹å¼å¦ä¸ï¼</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>ä¸è¿è¡æ³¨è§£</para>
+ </listitem>
+
+ <listitem>
+ <para>å <literal>@Basic</literal>ä¸èµ·ä½¿ç¨</para>
+ </listitem>
+
+ <listitem>
+ <para>å <literal>@Version</literal>ä¸èµ·ä½¿ç¨</para>
+ </listitem>
+
+ <listitem>
+ <para>å <literal>@Lob</literal>ä¸èµ·ä½¿ç¨</para>
+ </listitem>
+
+ <listitem>
+ <para>å <literal>@Temporal</literal>ä¸èµ·ä½¿ç¨</para>
+ </listitem>
+
+ <listitem>
+ <para>å
+ <literal>@org.hibernate.annotations.CollectionOfElements</literal>ä¸èµ·ä½¿ç¨
+ (åªé对Hibernate )</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <programlisting>
+ at Entity
+public class Flight implements Serializable {
+...
+ at Column(updatable = false, name = "flight_name", nullable = false, length=50)
+public String getName() { ... }
+ </programlisting>
+
+ <para>å¨ä¸é¢è¿ä¸ªä¾åä¸,<literal>name</literal>å±æ§æ å°å°<literal>flight_name</literal>å.
+ 该å段ä¸å
许为空,é¿åº¦ä¸º50,并ä¸æ¯ä¸å¯æ´æ°ç(ä¹å°±æ¯å±æ§å¼æ¯ä¸åç).</para>
+
+ <para>ä¸é¢è¿äºæ³¨è§£å¯ä»¥è¢«åºç¨å°æ£è§å±æ§ä¸ä¾å¦<literal>@Id</literal> æ<literal>@Version</literal>å±æ§.</para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="2 55" id="hm1" />
+
+ <area coords="3 55" id="hm2" />
+
+ <area coords="4 55" id="hm3" />
+
+ <area coords="5 55" id="hm4" />
+
+ <area coords="6 55" id="hm5" />
+
+ <area coords="7 55" id="hm6" />
+
+ <area coords="8 55" id="hm7" />
+
+ <area coords="9 55" id="hm8" />
+
+ <area coords="10 55" id="hm9" />
+
+ <area coords="11 55" id="hm10" />
+ </areaspec>
+
+ <programlisting>@Column(
+ name="columnName";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ int length() default 255;
+ int precision() default 0; // decimal precision
+ int scale() default 0; // decimal scale</programlisting>
+
+ <calloutlist>
+ <callout arearefs="hm1">
+ <para><literal>name</literal> å¯é,åå(é»è®¤å¼æ¯å±æ§å)</para>
+ </callout>
+
+ <callout arearefs="hm2">
+ <para><literal>unique</literal> å¯é,æ¯å¦å¨è¯¥åä¸è®¾ç½®å¯ä¸çº¦æ(é»è®¤å¼false)</para>
+ </callout>
+
+ <callout arearefs="hm3">
+ <para><literal>nullable</literal> å¯é,æ¯å¦è®¾ç½®è¯¥åçå¼å¯ä»¥ä¸ºç©º(é»è®¤å¼false)</para>
+ </callout>
+
+ <callout arearefs="hm4">
+ <para><literal>insertable</literal> å¯é,该åæ¯å¦ä½ä¸ºçæçinsertè¯å¥ä¸çä¸ä¸ªå(é»è®¤å¼true)</para>
+ </callout>
+
+ <callout arearefs="hm5">
+ <para><literal>updatable</literal> å¯é,该åæ¯å¦ä½ä¸ºçæçupdateè¯å¥ä¸çä¸ä¸ªå(é»è®¤å¼true)</para>
+ </callout>
+
+ <callout arearefs="hm6">
+ <para><literal>columnDefinition</literal> å¯é: 为è¿ä¸ªç¹å®åè¦çSQL DDLç段 (è¿å¯è½å¯¼è´æ æ³å¨ä¸åæ°æ®åºé´ç§»æ¤)</para>
+ </callout>
+
+ <callout arearefs="hm7">
+ <para><literal>table</literal> å¯é,å®ä¹å¯¹åºç表(é»è®¤ä¸ºä¸»è¡¨)</para>
+ </callout>
+
+ <callout arearefs="hm8">
+ <para><literal><literal>length</literal></literal> å¯é,åé¿åº¦(é»è®¤å¼255)</para>
+ </callout>
+
+ <callout arearefs="hm8">
+ <para><literal><literal>precision</literal></literal>
+ å¯é,ååè¿å¶ç²¾åº¦(decimal precision)(é»è®¤å¼0)</para>
+ </callout>
+
+ <callout arearefs="hm10">
+ <para><literal><literal>scale</literal></literal>
+ å¯é,å¦æååè¿å¶æ°å¼èå´(decimal scale)å¯ç¨,å¨æ¤è®¾ç½®(é»è®¤å¼0)</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+ </sect3>
+
+ <sect3>
+ <title>åµå
¥å¼å¯¹è±¡(ååç»ä»¶)</title>
+
+ <para>å¨å®ä½ä¸å¯ä»¥å®ä¹ä¸ä¸ªåµå
¥å¼ç»ä»¶(embedded component),
+ çè³è¦ç该å®ä½ä¸åæçåæ å°.
+ ç»ä»¶ç±»å¿
é¡»å¨ç±»ä¸çº§å®ä¹<literal>@Embeddable</literal>注解.
+ å¨ç¹å®çå®ä½çå
³èå±æ§ä¸ä½¿ç¨<literal>@Embedded</literal>å
+ <literal>@AttributeOverride</literal>注解å¯ä»¥è¦ç该å±æ§å¯¹åºçåµå
¥å¼å¯¹è±¡çåæ å°ï¼</para>
+
+ <programlisting>
+ at Entity
+public class Person implements Serializable {
+
+ // Persistent component using defaults
+ Address homeAddress;
+
+ @Embedded
+ @AttributeOverrides( {
+ @AttributeOverride(name="iso2", column = @Column(name="bornIso2") ),
+ @AttributeOverride(name="name", column = @Column(name="bornCountryName") )
+ } )
+ Country bornIn;
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class Address implements Serializable {
+ String city;
+ Country nationality; //no overriding here
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class Country implements Serializable {
+ private String iso2;
+ @Column(name="countryName") private String name;
+
+ public String getIso2() { return iso2; }
+ public void setIso2(String iso2) { this.iso2 = iso2; }
+
+
+ public String getName() { return name; }
+ public void setName(String name) { this.name = name; }
+ ...
+}
+ </programlisting>
+
+ <para>åµå
¥å¼å¯¹è±¡ç»§æ¿å
¶æå±å®ä½ä¸å®ä¹ç访é®ç±»å
+ (注æ:è¿å¯ä»¥éè¿ä½¿ç¨Hibernateæä¾ç<literal>@AccessType</literal>注解æ¥è¦çåæå¼)(请åè <xref
+ linkend="entity-hibspec" />).</para>
+
+ <para>å¨ä¸é¢çä¾åä¸,å®ä½bean <literal>Person</literal> æ两个ç»ä»¶å±æ§,
+ åå«æ¯<literal>homeAddress</literal>å<literal>bornIn</literal>.
+ æ们å¯ä»¥çå°<literal>homeAddress</literal> å±æ§å¹¶æ²¡æ注解.
+ ä½æ¯Hibernateèªå¨æ£æµå
¶å¯¹åºçAddressç±»ä¸ç<literal>@Embeddable</literal>注解,
+ 并å°å
¶çä½ä¸ä¸ªæä¹
åç»ä»¶.对äºCountryä¸å·²æ å°çå±æ§,
+ å使ç¨<literal>@Embedded</literal>å<literal>@AttributeOverride
+ </literal>注解æ¥è¦çåæ¥æ å°çåå.
+ æ£å¦ä½ æçå°ç, <literal>Address</literal>对象ä¸è¿å
åµäº<literal>Country</literal>对象,
+ è¿éå<literal>homeAddress</literal>ä¸æ ·ä½¿ç¨äºHibernateåEJB3èªå¨æ£æµæºå¶.
+ ç®åEJB3è§èè¿ä¸æ¯æè¦çå¤å±åµå¥(å³åµå
¥å¼å¯¹è±¡ä¸è¿å
æ¬å
¶ä»åµå
¥å¼å¯¹è±¡)çåæ å°.
+ ä¸è¿Hibernateéè¿å¨è¡¨è¾¾å¼ä¸ä½¿ç¨"."符å·è¡¨è¾¾å¼æä¾äºå¯¹æ¤ç¹å¾çæ¯æ.</para>
+
+ <para><programlisting> @Embedded
+ @AttributeOverrides( {
+ @AttributeOverride(name="city", column = @Column(name="fld_city") ),
+ @AttributeOverride(name="<emphasis role="bold">nationality.iso2</emphasis>", column = @Column(name="nat_Iso2") ),
+ @AttributeOverride(name="<emphasis role="bold">nationality.name</emphasis>", column = @Column(name="nat_CountryName") )
+ //nationality columns in homeAddress are overridden
+ } )
+ Address homeAddress;</programlisting>
+ Hibernate注解æ¯æå¾å¤EJB3è§èä¸æ²¡ææç¡®å®ä¹çç¹æ§.
+ ä¾å¦,å¯ä»¥å¨åµå
¥å¼å¯¹è±¡ä¸æ·»å <literal>@MappedSuperclass</literal>注解,
+ è¿æ ·å¯ä»¥å°å
¶ç¶ç±»çå±æ§æä¹
(详æ
请æ¥é
<literal>@MappedSuperclass</literal>).</para>
+
+ <para>Hibernateç°å¨æ¯æå¨åµå
¥å¼å¯¹è±¡ä¸ä½¿ç¨å
³è注解(å¦<literal>@*ToOne</literal>å<literal>@*ToMany</literal>).
+ èEJB3è§èå°ä¸æ¯æè¿æ ·çç¨æ³ãä½ å¯ä»¥ä½¿ç¨ <literal>@AssociationOverride</literal>注解æ¥è¦åå
³èå.</para>
+
+
+ <para>å¨åä¸ä¸ªå®ä½ä¸ä½¿ç¨ä¸¤ä¸ªåç±»åçåµå
¥å¯¹è±¡,
+ å
¶é»è®¤ååæ¯æ æç:è³å°è¦å¯¹å
¶ä¸ä¸ä¸ªè¿è¡æ确声æ.
+ Hibernateå¨è¿æ¹é¢èµ°å¨äºEJB3è§èçåé¢,
+ Hibernateæä¾äº<classname>NamingStrategy</classname>, å¨ä½¿ç¨Hibernateæ¶,
+ éè¿<classname>NamingStrategy</classname>ä½ å¯ä»¥å¯¹é»è®¤çæºå¶è¿è¡æ©å±.
+ <classname>DefaultComponentSafeNamingStrategy</classname>
+ å¨é»è®¤çEJB3NamingStrategyä¸è¿è¡äºå°å°çæå,
+ å
许å¨åä¸å®ä½ä¸ä½¿ç¨ä¸¤ä¸ªåç±»åçåµå
¥å¯¹è±¡èæ é¡»é¢å¤ç声æ.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>æ 注解ä¹å±æ§çé»è®¤å¼</title>
+
+ <para>å¦ææå±æ§æ²¡æ注解,该å±æ§å°éµå®ä¸é¢çè§å:</para>
+
+ <itemizedlist>
+ <listitem>
+ å¦æå±æ§ä¸ºåä¸ç±»å,åæ å°ä¸º@Basic
+ </listitem>
+
+ <listitem>
+ å¦å,å¦æå±æ§å¯¹åºçç±»åå®ä¹äº@Embeddable注解,åæ å°ä¸º@Embedded
+ </listitem>
+
+ <listitem>
+ å¦å,å¦æå±æ§å¯¹åºçç±»åå®ç°äºSerializable,
+ åå±æ§è¢«æ å°ä¸º@Basic并å¨ä¸ä¸ªåä¸ä¿å该对象çserializedçæ¬
+ </listitem>
+
+ <listitem>
+ å¦å,å¦æ该å±æ§çç±»å为java.sql.Clob æ java.sql.Blob,åä½ä¸º@Lob并æ å°å°éå½çLobType.
+ </listitem>
+ </itemizedlist>
+
+ </sect3>
+ </sect2>
+
+ <sect2 id="mapping-identifier" label=""
+ xreflabel="Mapping identifier properties">
+ <title>æ å°ä¸»é®å±æ§</title>
+
+ <para>使ç¨<literal>@Id</literal>注解å¯ä»¥å°å®ä½beanä¸çæ个å±æ§å®ä¹ä¸ºæ è¯ç¬¦(identifier).
+ 该å±æ§çå¼å¯ä»¥éè¿åºç¨èªèº«è¿è¡è®¾ç½®,
+ ä¹å¯ä»¥éè¿Hiberanteçæ(æ¨è).
+ ä½¿ç¨ <literal>@GeneratedValue</literal>注解å¯ä»¥å®ä¹è¯¥æ è¯ç¬¦ççæçç¥:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ AUTO - å¯ä»¥æ¯identity columnç±»å,æè
sequenceç±»åæè
tableç±»å,åå³äºä¸åçåºå±æ°æ®åº.
+ </listitem>
+
+ <listitem>
+ TABLE - 使ç¨è¡¨ä¿åidå¼
+ </listitem>
+
+ <listitem>
+ IDENTITY - identity column
+ </listitem>
+
+ <listitem>
+ SEQUENCE - sequence
+ </listitem>
+ </itemizedlist>
+
+ <para>åEJB3è§èç¸æ¯,Hibernateæä¾äºæ´å¤çidçæå¨.详æ
请æ¥é
<xref linkend="entity-hibspec" /> .</para>
+
+
+ <para>ä¸é¢çä¾åå±ç¤ºäºä½¿ç¨SEQ_STOREé
ç½®çsequenceçæå¨</para>
+
+ <programlisting>
+ at Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+public Integer getId() { ... }
+ </programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾å使ç¨çæ¯identityçæå¨</para>
+
+ <programlisting>
+ at Id @GeneratedValue(strategy=GenerationType.IDENTITY)
+public Long getId() { ... }
+ </programlisting>
+
+ <para><literal>AUTO</literal>çæå¨éç¨äºå¯ç§»æ¤çåºç¨(å¨å¤ä¸ªDBé´åæ¢).
+ å¤ä¸ª<literal>@Id</literal>å¯ä»¥å
±äº«åä¸ä¸ªidentifierçæå¨,åªè¦ægeneratorå±æ§è®¾æç¸åçå¼å°±å¯ä»¥äº.
+ éè¿<literal>@SequenceGenerator</literal> å<literal>@TableGenerator</literal>,ä½ å¯ä»¥é
ç½®ä¸åçidentifierçæå¨.
+ æ¯ä¸ä¸ªidentifierçæå¨é½æèªå·±çéç¨èå´,å¯ä»¥æ¯åºç¨çº§(application level)åç±»ä¸çº§(class level).
+ ç±»ä¸çº§ççæå¨å¨å¤é¨æ¯ä¸å¯è§ç,
+ èä¸ç±»ä¸çº§ççæå¨å¯ä»¥è¦çåºç¨çº§ççæå¨.
+ åºç¨çº§ççæå¨åå®ä¹å¨å
ä¸çº§(package level)(å¦<classname>package-info.java</classname>):</para>
+
+ <programlisting>
+ at javax.persistence.TableGenerator(
+ name="EMP_GEN",
+ table="GENERATOR_TABLE",
+ pkColumnName = "key",
+ valueColumnName = "hi"
+ pkColumnValue="EMP",
+ allocationSize=20
+)
+ at javax.persistence.SequenceGenerator(
+ name="SEQ_GEN",
+ sequenceName="my_sequence"
+)
+package org.hibernate.test.metadata;
+ </programlisting>
+
+ <para>
+ å¦æå¨<classname>org.hibernate.test.metadata</classname>å
ä¸é¢ç
+ <classname>package-info.java</classname>æ件ç¨äºåå§åEJBé
ç½®,
+ é£ä¹è¯¥æ件ä¸å®ä¹ç <literal>EMP_GEN</literal>
+ å<literal>SEQ_GEN</literal>é½æ¯åºç¨çº§ççæå¨.
+ <literal>EMP_GEN</literal>å®ä¹äºä¸ä¸ªä½¿ç¨hiloç®æ³
+ (max_lo为20)çidçæå¨(该çæå¨å°idçä¿¡æ¯åå¨æ°æ®åºçæ个表ä¸.).
+ idçhiå¼ä¿åå¨<literal>GENERATOR_TABLE</literal>ä¸.
+ å¨è¯¥è¡¨ä¸ <literal>pkColumnName</literal>"key"çä»·äº
+ <literal>pkColumnValue</literal> "<literal>EMP</literal>",
+ è<literal>valueColumnName</literal> "<literal>hi</literal>"ä¸åå¨çæ¯ä¸ä¸ä¸ªè¦ä½¿ç¨çæ大å¼.
+ </para>
+
+ <para><literal>SEQ_GEN</literal>åå®ä¹äºä¸ä¸ªsequence çæå¨,
+ å
¶å¯¹åºçsequenceå为 <literal>my_sequence</literal>.
+ 注æç®åHibernate Annotationsè¿ä¸æ¯æsequence çæå¨ä¸ç
+ <literal>initialValue</literal>å <literal>allocationSize</literal>åæ°.</para>
+
+ <para>ä¸é¢è¿ä¸ªä¾åå±ç¤ºäºå®ä¹å¨ç±»èå´(class scope)çsequenceçæå¨:</para>
+
+ <programlisting>
+ at Entity
+ at javax.persistence.SequenceGenerator(
+ name="SEQ_STORE",
+ sequenceName="my_sequence"
+)
+public class Store implements Serializable {
+ private Long id;
+
+ @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+ public Long getId() { return id; }
+}
+ </programlisting>
+
+ <para>å¨è¿ä¸ªä¾åä¸,Store类使ç¨å为my_sequenceçsequence,并ä¸SEQ_STORE çæå¨å¯¹äºå
¶ä»ç±»æ¯ä¸å¯è§ç.
+ 注æå¨org.hibernate.test.metadata.idå
ä¸çæµè¯ä»£ç ææ´å¤æ¼ç¤ºHibernate Annotationsç¨æ³çä¾å..</para>
+
+ <para>ä¸é¢æ¯å®ä¹ç»å主é®çå ç§è¯æ³:</para>
+
+ <itemizedlist>
+ <listitem>
+ å°ç»ä»¶ç±»æ³¨è§£ä¸º@Embeddable,并å°ç»ä»¶çå±æ§æ³¨è§£ä¸º@Id
+ </listitem>
+
+ <listitem>
+ å°ç»ä»¶çå±æ§æ³¨è§£ä¸º@EmbeddedId
+ </listitem>
+
+ <listitem>
+ å°ç±»æ³¨è§£ä¸º@IdClass,并å°è¯¥å®ä½ä¸ææå±äºä¸»é®çå±æ§é½æ³¨è§£ä¸º@Id
+ </listitem>
+ </itemizedlist>
+
+ <para>对äºEJB2çå¼å人åæ¥è¯´ <literal>@IdClass</literal>æ¯å¾å¸¸è§ç,
+ ä½æ¯å¯¹äºHibernateçç¨æ·æ¥è¯´å°±æ¯ä¸ä¸ªå´æ°çç¨æ³.
+ ç»å主é®ç±»å¯¹åºäºä¸ä¸ªå®ä½ç±»ä¸çå¤ä¸ªå段æå±æ§,
+ èä¸ä¸»é®ç±»ä¸ç¨äºå®ä¹ä¸»é®çå段æå±æ§å
+ å®ä½ç±»ä¸å¯¹åºçå段æå±æ§å¨ç±»åä¸å¿
é¡»ä¸è´.ä¸é¢æ们çä¸ä¸ªä¾å:</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@IdClass(FootballerPk.class)</emphasis>
+public class Footballer {
+ //part of the id key
+ <emphasis role="bold">@Id</emphasis> public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ //part of the id key
+ <emphasis role="bold">@Id</emphasis> public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ public String getClub() {
+ return club;
+ }
+
+ public void setClub(String club) {
+ this.club = club;
+ }
+
+ //appropriate equals() and hashCode() implementation
+}
+
+ at Embeddable
+public class FootballerPk implements Serializable {
+ //same name and type as in Footballer
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ //same name and type as in Footballer
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ //appropriate equals() and hashCode() implementation
+}
+</programlisting>
+
+
+ <para>å¦ä¸, <literal>@IdClass</literal>æå对åºç主é®ç±».</para>
+
+ <para>Hibernateæ¯æå¨ç»åæ è¯ç¬¦ä¸å®ä¹å
³è(å°±å使ç¨æ®éç注解ä¸æ ·),èEJB3è§è并ä¸æ¯ææ¤ç±»ç¨æ³.
+ </para>
+
+ <programlisting>@Entity
+ at AssociationOverride( name="id.channel", joinColumns = @JoinColumn(name="chan_id") )
+public class TvMagazin {
+ @EmbeddedId public TvMagazinPk id;
+ @Temporal(TemporalType.TIME) Date time;
+}
+
+ at Embeddable
+public class TvMagazinPk implements Serializable {
+ @ManyToOne
+ public Channel channel;
+ public String name;
+ @ManyToOne
+ public Presenter presenter;
+}
+</programlisting>
+
+ </sect2>
+
+ <sect2>
+ <title>æ å°ç»§æ¿å
³ç³»</title>
+
+ <para>EJB3æ¯æä¸ç§ç±»åç继æ¿æ å°:</para>
+
+ <itemizedlist>
+ <listitem>
+ æ¯ä¸ªç±»ä¸å¼ 表(Table per class)çç¥: å¨Hibernateä¸å¯¹åº<union-class>å
ç´ :
+ </listitem>
+
+ <listitem>
+ æ¯ä¸ªç±»å±æ¬¡ç»æä¸å¼ 表(Single table per class hierarchy)çç¥:å¨Hibernateä¸å¯¹åº<subclass>å
ç´
+ </listitem>
+
+ <listitem>
+ è¿æ¥çåç±»(Joined subclasses)çç¥:å¨Hibernateä¸å¯¹åº <joined-subclass>å
ç´
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ ä½ å¯ä»¥ç¨ <literal>@Inheritance</literal>注解æ¥å®ä¹æéæ©ççç¥.
+ è¿ä¸ªæ³¨è§£éè¦å¨æ¯ä¸ªç±»å±æ¬¡ç»æ(class hierarchy) æ顶端çå®ä½ç±»ä¸ä½¿ç¨.
+ </para>
+
+ <note>
+ <para>ç®åè¿ä¸æ¯æå¨æ¥å£ä¸è¿è¡æ³¨è§£.</para>
+ </note>
+
+ <sect3>
+ <title>æ¯ä¸ªç±»ä¸å¼ 表</title>
+
+ <para>
+ è¿ç§çç¥æå¾å¤ç¼ºç¹(ä¾å¦:å¤ææ¥è¯¢åå
³è),EJB3è§è, Hibernateåèæå,
+ Hibernate in Action,以åå
¶ä»è®¸å¤å°æ¹é½å¯¹æ¤è¿è¡äºæè¿°å解é.
+ Hibernate使ç¨<literal>SQL UNION</literal>æ¥è¯¢æ¥å®ç°è¿ç§çç¥.
+ é常使ç¨åºåæ¯å¨ä¸ä¸ªç»§æ¿å±æ¬¡ç»æç顶端:</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public class Flight implements Serializable {
+ </programlisting>
+
+ <para>
+ è¿ç§çç¥æ¯æååçä¸å¯¹å¤å
³è.
+ è¿éä¸æ¯æ<literal>IDENTITY</literal>çæå¨çç¥,å 为idå¿
é¡»å¨å¤ä¸ªè¡¨é´å
񄧮.
+ å½ç¶,ä¸æ¦ä½¿ç¨è¿ç§çç¥å°±æå³çä½ ä¸è½ä½¿ç¨
+ <literal>AUTO </literal>çæå¨å<literal>IDENTITY</literal>çæå¨.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>æ¯ä¸ªç±»å±æ¬¡ç»æä¸å¼ 表</title>
+
+ <para>æ´ä¸ªç»§æ¿å±æ¬¡ç»æä¸çç¶ç±»ååç±»çææå±æ§é½æ å°å°åä¸ä¸ªè¡¨ä¸,
+ ä»ä»¬çå®ä¾éè¿ä¸ä¸ªè¾¨å«ç¬¦(discriminator)åæ¥åºå.:</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy=InheritanceType.SINGLE_TABLE)
+ at DiscriminatorColumn(
+ name="planetype",
+ discriminatorType=DiscriminatorType.STRING
+)
+ at DiscriminatorValue("Plane")
+public class Plane { ... }
+
+ at Entity
+ at DiscriminatorValue("A320")
+public class A320 extends Plane { ... }
+ </programlisting>
+
+ <para>å¨ä¸é¢è¿ä¸ªä¾åä¸,<classname>Plane</classname>æ¯ç¶ç±»,å¨è¿ä¸ªç±»éé¢å°ç»§æ¿çç¥å®ä¹ä¸º
+ <literal>InheritanceType.SINGLE_TABLE</literal>,并éè¿
+ <literal>@DiscriminatorColumn</literal>注解å®ä¹äºè¾¨å«ç¬¦å(è¿å¯ä»¥å®ä¹è¾¨å«ç¬¦çç±»å).
+ æå,对äºç»§æ¿å±æ¬¡ç»æä¸çæ¯ä¸ªç±»,<literal>@DiscriminatorValue</literal>注解æå®äºç¨æ¥è¾¨å«è¯¥ç±»çå¼.
+ 辨å«ç¬¦åçååé»è®¤ä¸º <literal>DTYPE</literal>,å
¶é»è®¤å¼ä¸ºå®ä½å(å¨<literal>@Entity.name</literal>ä¸å®ä¹)ï¼å
¶ç±»å
+ 为DiscriminatorType.STRING.
+ <classname>A320</classname>æ¯åç±»,å¦æä¸æ³ä½¿ç¨é»è®¤ç辨å«ç¬¦,åªéè¦æå®ç¸åºçå¼å³å¯.
+ å
¶ä»çå¦ç»§æ¿çç¥,辨å«æ å¿å段çç±»åé½æ¯èªå¨è®¾å®ç.</para>
+
+ <para><literal>@Inheritance</literal> å
+ <literal>@DiscriminatorColumn</literal> 注解åªè½ç¨äºå®ä½å±æ¬¡ç»æç顶端.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>è¿æ¥çåç±»</title>
+
+ <para>å½æ¯ä¸ªåç±»æ å°å°ä¸ä¸ªè¡¨æ¶, <literal> @PrimaryKeyJoinColumn</literal>
+ å<literal>@PrimaryKeyJoinColumns</literal>
+ 注解å®ä¹äºæ¯ä¸ªå类表å
³èå°ç¶ç±»è¡¨ç主é®:</para>
+
+ <programlisting>
+ at Entity
+ at Inheritance(strategy=InheritanceType.JOINED)
+public class Boat implements Serializable { ... }
+
+ at Entity
+public class Ferry extends Boat { ... }
+
+ at Entity
+ at PrimaryKeyJoinColumn(name="BOAT_ID")
+public class AmericaCupClass extends Boat { ... }
+ </programlisting>
+
+ <para>以ä¸ææå®ä½é½ä½¿ç¨äº<literal>JOINED</literal>çç¥,
+ <literal>Ferry</literal>表å<literal>Boat</literal>表使ç¨ååç主é®.
+ è<literal>AmericaCupClass</literal>表å<literal>Boat</literal>表使ç¨äºæ¡ä»¶
+ <code>Boat.id = AmericaCupClass.BOAT_ID</code>è¿è¡å
³è.
+ </para>
+ </sect3>
+
+ <sect3>
+ <title>ä»ç¶ç±»ç»§æ¿çå±æ§</title>
+
+ <para>ææ¶åéè¿ä¸ä¸ª(ææ¯ä¸æä¸å¡ä¸)ç¶ç±»å
±äº«ä¸äºå
Œ
±å±æ§æ¯å¾æç¨ç,
+ åæ¶è¿ä¸ç¨å°è¯¥ç¶ç±»ä½ä¸ºæ å°çå®ä½(ä¹å°±æ¯è¯¥å®ä½æ²¡æ对åºç表).
+ è¿ä¸ªæ¶åä½ éè¦ä½¿ç¨<literal>@MappedSuperclass</literal>注解æ¥è¿è¡æ å°.</para>
+
+ <programlisting>@MappedSuperclass
+public class BaseEntity {
+ @Basic
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date getLastUpdate() { ... }
+ public String getLastUpdater() { ... }
+ ...
+}
+
+ at Entity class Order extends BaseEntity {
+ @Id public Integer getId() { ... }
+ ...
+}</programlisting>
+
+ <para>å¨æ°æ®åºä¸,ä¸é¢è¿ä¸ªä¾åä¸ç继æ¿çå±æ¬¡ç»ææç»ä»¥<literal>Order</literal>表çå½¢å¼åºç°,
+ 该表æ¥æ<literal>id</literal>, <literal>lastUpdate</literal> å
+ <literal>lastUpdater</literal>ä¸ä¸ªå.ç¶ç±»ä¸çå±æ§æ å°å°å¤å¶å°å
¶åç±»å®ä½.
+ 注æè¿ç§æ
åµä¸çç¶ç±»ä¸åå¤å¨ç»§æ¿å±æ¬¡ç»æç顶端.</para>
+
+ <note>
+
+ <para>注æ,没æ注解为<literal>@MappedSuperclass</literal>çç¶ç±»ä¸çå±æ§å°è¢«å¿½ç¥.</para>
+ </note>
+
+ <note>
+
+ <para>é¤éæ¾å¼ä½¿ç¨Hibernate annotationä¸ç<literal>@AccessType</literal>注解,
+ å¦åå°ä»ç»§æ¿å±æ¬¡ç»æçæ ¹å®ä½ä¸ç»§æ¿è®¿é®ç±»å(å
æ¬å段ææ¹æ³)</para>
+ </note>
+
+ <note>
+
+ <para>è¿å¯¹äº<literal>@Embeddable</literal>对象çç¶ç±»ä¸çå±æ§æä¹
ååæ ·ææ.
+ åªéè¦ä½¿ç¨<literal>@MappedSuperclass</literal>注解å³å¯
+ (è½ç¶è¿ç§æ¹å¼ä¸ä¼çº³å
¥EJB3æ å)</para>
+
+ </note>
+
+ <note>
+
+ <para>å¯ä»¥å°å¤å¨å¨æ å°ç»§æ¿å±æ¬¡ç»æçä¸é´ä½ç½®ç类注解为<literal>@MappedSuperclass</literal>.</para>
+ </note>
+
+ <note>
+
+ <para>å¨ç»§æ¿å±æ¬¡ç»æä¸ä»»ä½æ²¡æ被注解为<literal>@MappedSuperclass</literal>
+ æ<literal>@Entity</literal>çç±»é½å°è¢«å¿½ç¥.</para>
+ </note>
+
+ <para>
+ ä½ å¯ä»¥éè¿ <literal>@AttributeOverride</literal>注解è¦çå®ä½ç¶ç±»ä¸çå®ä¹çå.
+ è¿ä¸ªæ³¨è§£åªè½å¨ç»§æ¿å±æ¬¡ç»æç顶端使ç¨.</para>
+
+ <programlisting>@MappedSuperclass
+public class FlyingObject implements Serializable {
+
+ public int getAltitude() {
+ return altitude;
+ }
+
+ @Transient
+ public int getMetricAltitude() {
+ return metricAltitude;
+ }
+
+ @ManyToOne
+ public PropulsionType getPropulsion() {
+ return metricAltitude;
+ }
+ ...
+}
+
+ at Entity
+ at AttributeOverride( name="altitude", column = @Column(name="fld_altitude") )
+ at AssociationOverride( name="propulsion", joinColumns = @JoinColumn(name="fld_propulsion_fk") )
+public class Plane extends FlyingObject {
+ ...
+}</programlisting>
+
+ <para>å¨ä¸é¢è¿ä¸ªä¾åä¸,<literal>altitude</literal>å±æ§çå¼æç»å°æä¹
åå°<literal>Plane</literal>
+ 表ç<literal>fld_altitude</literal>å.èå为propulsionçå
³èåä¿åå¨<literal>fld_propulsion_fk</literal>å¤é´å.</para>
+
+ <para>ä½ å¯ä»¥ä¸º<literal>@Entity</literal>å<literal>@MappedSuperclass</literal>注解çç±»
+ 以åé£äºå¯¹è±¡ä¸º<literal>@Embeddable</literal>çå±æ§å®ä¹
+ <literal>@AttributeOverride</literal>å<literal>@AssociationOverride</literal>.</para>
+
+ </sect3>
+ </sect2>
+
+ <sect2 id="entity-mapping-association">
+ <title>æ å°å®ä½Beançå
³èå
³ç³»</title>
+
+ <sect3>
+ <title>ä¸å¯¹ä¸(One-to-one)</title>
+
+ <para>使ç¨<literal>@OneToOne</literal>注解å¯ä»¥å»ºç«å®ä½beanä¹é´çä¸å¯¹ä¸çå
³è.
+ ä¸å¯¹ä¸å
³èæä¸ç§æ
åµï¼
+ ä¸æ¯å
³èçå®ä½é½å
±äº«åæ ·ç主é®,
+ äºæ¯å
¶ä¸ä¸ä¸ªå®ä½éè¿å¤é®å
³èå°å¦ä¸ä¸ªå®ä½ç主é®
+ (注æè¦æ¨¡æä¸å¯¹ä¸å
³èå¿
é¡»å¨å¤é®åä¸æ·»å å¯ä¸çº¦æ).
+ ä¸æ¯éè¿å
³è表æ¥ä¿å两个å®ä½ä¹é´çè¿æ¥å
³ç³»
+ (注æè¦æ¨¡æä¸å¯¹ä¸å
³èå¿
é¡»å¨æ¯ä¸ä¸ªå¤é®ä¸æ·»å å¯ä¸çº¦æ).</para>
+
+ <para>é¦å
,æ们éè¿å
±äº«ä¸»é®æ¥è¿è¡ä¸å¯¹ä¸å
³èæ å°:</para>
+
+ <programlisting>
+ at Entity
+public class Body {
+ @Id
+ public Long getId() { return id; }
+
+ @OneToOne(cascade = CascadeType.ALL)
+ @PrimaryKeyJoinColumn
+ public Heart getHeart() {
+ return heart;
+ }
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Heart {
+ @Id
+ public Long getId() { ...}
+}
+ </programlisting>
+
+ <para>ä¸é¢çä¾åéè¿ä½¿ç¨æ³¨è§£<literal>@PrimaryKeyJoinColumn</literal>å®ä¹äºä¸å¯¹ä¸å
³è.</para>
+
+ <para>ä¸é¢è¿ä¸ªä¾å使ç¨å¤é®åè¿è¡å®ä½çå
³è.</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToOne(cascade = CascadeType.ALL)
+ <emphasis role="bold">@JoinColumn(name="passport_fk")</emphasis>
+ public Passport getPassport() {
+ ...
+ }
+
+ at Entity
+public class Passport implements Serializable {
+ @OneToOne(<emphasis role="bold">mappedBy = "passport"</emphasis>)
+ public Customer getOwner() {
+ ...
+}
+ </programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,<classname>Customer</classname> éè¿<literal>Customer</literal>
+ 表ä¸å为ç<literal>passport_fk</literal> å¤é®åå <classname>Passport</classname>å
³è.
+ <literal>@JoinColumn</literal>注解å®ä¹äºèæ¥å(join column).
+ 该注解å<literal>@Column</literal>注解æç¹ç±»ä¼¼,
+ ä½æ¯å¤äºä¸ä¸ªå为<literal>referencedColumnName</literal>çåæ°.
+ 该åæ°å®ä¹äºæå
³èç®æ å®ä½ä¸çèæ¥å.
+ 注æ,å½<literal><literal>referencedColumnName</literal></literal>å
³èå°é主é®åçæ¶å,
+ å
³èçç®æ ç±»å¿
é¡»å®ç°<classname>Serializable</classname>,
+ è¿è¦æ³¨æçæ¯ææ å°çå±æ§å¯¹åºå个å(å¦åæ å°æ æ).
+ </para>
+
+ <para>ä¸å¯¹ä¸å
³èå¯è½æ¯ååç.å¨ååå
³èä¸,
+ æä¸ä»
æä¸ç«¯æ¯ä½ä¸ºä¸»ä½(owner)端åå¨çï¼ä¸»ä½ç«¯è´è´£ç»´æ¤èæ¥å(å³æ´æ°).
+ 对äºä¸éè¦ç»´æ¤è¿ç§å
³ç³»çä»è¡¨åéè¿mappedByå±æ§è¿è¡å£°æ.
+ <literal>mappedBy</literal>çå¼æå主ä½çå
³èå±æ§.
+ å¨ä¸é¢è¿ä¸ªä¾åä¸,<literal>mappedBy</literal>çå¼ä¸º <literal>passport</literal>.
+ æå,ä¸å¿
ä¹ä¸è½åå¨è¢«å
³è端(owned side)å®ä¹èæ¥åäº,å 为已ç»å¨ä¸»ä½ç«¯è¿è¡äºå£°æ.</para>
+
+ <para>å¦æå¨ä¸»ä½æ²¡æ声æ<literal>@JoinColumn</literal>,ç³»ç»èªå¨è¿è¡å¤çï¼
+ å¨ä¸»è¡¨(owner table)ä¸å°å建èæ¥å,
+ åå为ï¼ä¸»ä½çå
³èå±æ§åï¼ä¸å线ï¼è¢«å
³è端ç主é®åå.
+ å¨ä¸é¢è¿ä¸ªä¾åä¸æ¯<literal>passport_id</literal>,
+ å 为<literal>Customer</literal>ä¸å
³èå±æ§å为<literal>passport</literal>,
+ <literal>Passport</literal>ç主é®æ¯<literal>id</literal>.</para>
+
+ <para>The third possibility (using an association table) is very
+ exotic.</para>
+
+ <para>第ä¸ç§æ¹å¼ä¹è®¸æ¯æå¦ç±»ç(éè¿å
³è表).</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToOne(cascade = CascadeType.ALL)
+ <emphasis role="bold">@JoinTable(name = "CustomerPassports",
+ joinColumns = @JoinColumn(name="customer_fk"),
+ inverseJoinColumns = @JoinColumn(name="passport_fk")</emphasis>
+ )
+ public Passport getPassport() {
+ ...
+ }
+
+ at Entity
+public class Passport implements Serializable {
+ @OneToOne(<emphasis role="bold">mappedBy = "passport"</emphasis>)
+ public Customer getOwner() {
+ ...
+}
+ </programlisting>
+
+ <para><classname>Customer</classname>éè¿å为 <literal>CustomerPassports</literal>çå
³è表å
+ <classname>Passport</classname>å
³è; 该å
³è表æ¥æå为<literal>passport_fk</literal>çå¤é®å,该
+ å¤é®æå<literal>Passport</literal>表,该信æ¯å®ä¹ä¸º<literal>inverseJoinColumn</literal>çå±æ§å¼,
+ è<literal>customer_fk</literal>å¤é®åæå<literal>Customer</literal>表,
+ 该信æ¯å®ä¹ä¸º <literal>joinColumns</literal>çå±æ§å¼.</para>
+
+ <para>è¿ç§å
³èå¯è½æ¯ååç.å¨ååå
³èä¸,
+ æä¸ä»
æä¸ç«¯æ¯ä½ä¸ºä¸»ä½ç«¯åå¨çï¼ä¸»ä½ç«¯è´è´£ç»´æ¤èæ¥å(å³æ´æ°).
+ 对äºä¸éè¦ç»´æ¤è¿ç§å
³ç³»çä»è¡¨åéè¿mappedByå±æ§è¿è¡å£°æ.
+ <literal>mappedBy</literal>çå¼æå主ä½çå
³èå±æ§.
+ å¨ä¸é¢è¿ä¸ªä¾åä¸,<literal>mappedBy</literal>çå¼ä¸º <literal>passport</literal>.
+ æå,ä¸å¿
ä¹ä¸è½åå¨è¢«å
³è端(owned side)å®ä¹èæ¥åäº,å 为已ç»å¨ä¸»ä½ç«¯è¿è¡äºå£°æ.</para>
+
+ <para>ä½ å¿
é¡»æç¡®å®ä¹å
³è表ååå
³èåå.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>å¤å¯¹ä¸(Many-to-one)</title>
+
+ <para>å¨å®ä½å±æ§ä¸çº§ä½¿ç¨<literal>@ManyToOne</literal>注解æ¥å®ä¹å¤å¯¹ä¸å
³è:</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ <emphasis role="bold">@ManyToOne</emphasis>( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+ @JoinColumn(name="COMP_ID")
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+ </programlisting>
+
+ <para>å
¶ä¸<literal>@JoinColumn</literal>æ¯å¯éç,å
³èå段é»è®¤å¼åä¸å¯¹ä¸
+ (one to one)å
³èçæ
åµç¸ä¼¼,
+ åå为ï¼ä¸»ä½çå
³èå±æ§åï¼ä¸å线ï¼è¢«å
³è端ç主é®åå.
+ å¨è¿ä¸ªä¾åä¸æ¯<literal>company_id</literal>,
+ å 为å
³èçå±æ§æ¯<literal>company</literal>,
+ <literal>Company</literal>ç主é®æ¯<literal>id</literal>.</para>
+
+ <para><literal>@ManyToOne</literal>注解æä¸ä¸ªå为<literal>targetEntity</literal>çåæ°,
+ 该åæ°å®ä¹äºç®æ å®ä½å.é常ä¸éè¦å®ä¹è¯¥åæ°,
+ å 为å¨å¤§é¨åæ
åµä¸é»è®¤å¼(表示å
³èå
³ç³»çå±æ§ç±»å)å°±å¯ä»¥å¾å¥½ç满足è¦æ±äº.
+ ä¸è¿ä¸é¢è¿ç§æ
åµä¸è¿ä¸ªåæ°å°±æ¾å¾ææä¹äºï¼ä½¿ç¨æ¥å£ä½ä¸ºè¿åå¼èä¸æ¯å¸¸è§çå®ä½.</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, <emphasis
+ role="bold">targetEntity=CompanyImpl.class</emphasis> )
+ @JoinColumn(name="COMP_ID")
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+
+public interface Company {
+ ...
+ </programlisting>
+
+ <para>对äºå¤å¯¹ä¸ä¹å¯ä»¥éè¿å
³è表çæ¹å¼æ¥æ å°ã
+ éè¿<literal>@JoinTable</literal>注解å¯å®ä¹å
³è表ï¼
+ 该å
³è表å
å«äºæåå®ä½è¡¨çå¤é®(éè¿<literal>@JoinTable.joinColumns</literal>)
+ 以åæåç®æ å®ä½è¡¨çå¤é®(éè¿<literal>@JoinTable.inverseJoinColumns</literal>).</para>
+
+ <programlisting>
+ at Entity()
+public class Flight implements Serializable {
+ @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+ <emphasis role="bold">@JoinTable(name="Flight_Company",
+ joinColumns = @JoinColumn(name="FLIGHT_ID"),
+ inverseJoinColumns = @JoinColumn(name="COMP_ID")
+ )</emphasis>
+ public Company getCompany() {
+ return company;
+ }
+ ...
+}
+ </programlisting>
+ </sect3>
+
+ <sect3 id="entity-mapping-association-collections">
+ <title>éåç±»å</title>
+
+ <sect4>
+ <title>æ¦åµ</title>
+
+ <para>ä½ å¯ä»¥å¯¹ <classname>Collection </classname>,<literal>List</literal>
+ (ææåºå表, èä¸æ¯ç´¢å¼å表),
+ <literal>Map</literal>å<classname>Set</classname>è¿å ç§ç±»åè¿è¡æ å°.
+ EJB3è§èå®ä¹äºæä¹æ ·ä½¿ç¨<literal>@javax.persistence.OrderBy</literal>
+ 注解æ¥å¯¹æåºå表è¿è¡æ å°ï¼
+ 该注解æ¥åçåæ°æ ¼å¼ï¼ç¨éå·éå¼ç(ç®æ å®ä½)å±æ§ååæåºæ令,
+ å¦<code>firstname asc, age desc</code>,å¦æ该åæ°ä¸ºç©º,åé»è®¤ä»¥id对该éåè¿è¡æåº.
+ å¦ææ个éåå¨æ°æ®åºä¸å¯¹åºä¸ä¸ªå
³è表(association table)çè¯,ä½ ä¸è½å¨è¿ä¸ªéåå±æ§ä¸é¢ä½¿ç¨@OrderBy注解.
+ 对äºè¿ç§æ
åµçå¤çæ¹æ³,请åè<xref linkend="entity-hibspec" />.
+ EJB3 å
è®¸ä½ å©ç¨ç®æ å®ä½çä¸ä¸ªå±æ§ä½ä¸ºMapçkey,
+ è¿ä¸ªå±æ§å¯ä»¥ç¨<literal>@MapKey(name="myProperty")</literal>æ¥å£°æ.
+ å¦æ使ç¨<literal>@MapKey</literal>注解çæ¶åä¸æä¾å±æ§å,
+ ç³»ç»é»è®¤ä½¿ç¨ç®æ å®ä½ç主é®.
+ mapçkey使ç¨åå±æ§ç¸åçåï¼ä¸éè¦ä¸ºmap keyå®ä¹ä¸ç¨çåï¼å 为map keyå®é
ä¸å°±è¡¨è¾¾äºä¸ä¸ªç®æ å±æ§ã
+ 注æä¸æ¦å è½½,keyä¸ååå±æ§ä¿æåæ¥,
+ ä¹å°±æ¯è¯´,å¦æä½ æ¹åäºè¯¥å±æ§çå¼,å¨ä½ çJava模åä¸çkeyä¸ä¼èªå¨æ´æ°
+ (请åè<xref linkend="entity-hibspec" />).
+ å¾å¤äººè¢«<literal><map></literal>å<literal>@MapKey</literal>å¼ç³æ¶äºã
+ å
¶ä»å®ä»¬æ两ç¹åºå«.<literal>@MapKey</literal>ç®åè¿æä¸äºéå¶,详æ
请æ¥ç论åæè
+ æ们çJIRA缺é·ç³»ç»ã
+
+
+ 注æä¸æ¦å è½½,keyä¸ååå±æ§ä¿æåæ¥,
+ ä¹å°±æ¯è¯´,å¦æä½ æ¹åäºè¯¥å±æ§çå¼,å¨ä½ çJava模åä¸çkeyä¸ä¼èªå¨æ´æ°.
+ (Hibernate 3ä¸Mapæ¯æçæ¹å¼å¨å½åçåå¸çä¸è¿æªå¾å°æ¯æ).</para>
+
+ <para>Hibernateå°éåå以ä¸å ç±».</para>
+
+ <para></para>
+
+ <table>
+ <title>éåè¯ä¹</title>
+
+ <tgroup cols="3">
+ <colspec colname="c1" />
+
+ <colspec colname="c2" />
+
+ <colspec colname="c3" colnum="2" />
+
+ <thead>
+ <row>
+ <entry>è¯ä¹</entry>
+
+ <entry>Javaå®ç°ç±»</entry>
+
+ <entry> 注解</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Bag è¯ä¹</entry>
+
+ <entry>java.util.List, java.util.Collection</entry>
+
+ <entry>@org.hibernate.annotations.CollectionOfElements æ
+ @OneToMany æ @ManyToMany</entry>
+ </row>
+
+ <row>
+ <entry>List è¯ä¹</entry>
+
+ <entry>java.util.List</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements æ
+ @OneToMany æ @ManyToMany)
+ 以å
+ @org.hibernate.annotations.IndexColumn</entry>
+ </row>
+
+ <row>
+ <entry>Set è¯ä¹</entry>
+
+ <entry>java.util.Set</entry>
+
+ <entry>@org.hibernate.annotations.CollectionOfElements æ
+ @OneToMany æ @ManyToMany</entry>
+ </row>
+
+ <row>
+ <entry>Map è¯ä¹</entry>
+
+ <entry>java.util.Map</entry>
+
+ <entry>(@org.hibernate.annotations.CollectionOfElements æ
+ @OneToMany æ @ManyToMany)
+ 以å
+ (空
+ æ
+ @org.hibernate.annotations.MapKey/MapKeyManyToMany(æ¯æçæ£çmap),
+ æ
+ @javax.persistence.MapKey</entry>
+
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <remark>
+ ä»ä¸é¢å¯ä»¥æç¡®å°çå°,没æ@org.hibernate.annotations.IndexColumn
+ 注解çjava.util.Listéåå°è¢«çä½bagç±».
+ </remark>
+
+ <para>EJB3è§èä¸æ¯æåå§ç±»å,æ ¸å¿ç±»å,åµå
¥å¼å¯¹è±¡çéå.ä½æ¯Hibernate对æ¤æä¾äºæ¯æ
+ (详æ
åè <xref linkend="entity-hibspec" />).</para>
+
+ <programlisting>@Entity public class City {
+ @OneToMany(mappedBy="city")
+ <emphasis role="bold">@OrderBy("streetName")</emphasis>
+ public List<Street> getStreets() {
+ return streets;
+ }
+...
+}
+
+ at Entity public class Street {
+ <emphasis role="bold">public String getStreetName()</emphasis> {
+ return streetName;
+ }
+
+ @ManyToOne
+ public City getCity() {
+ return city;
+ }
+ ...
+}
+
+
+ at Entity
+public class Software {
+ @OneToMany(mappedBy="software")
+ <emphasis role="bold">@MapKey(name="codeName")</emphasis>
+ public Map<String, Version> getVersions() {
+ return versions;
+ }
+...
+}
+
+ at Entity
+ at Table(name="tbl_version")
+public class Version {
+ <emphasis role="bold">public String getCodeName()</emphasis> {...}
+
+ @ManyToOne
+ public Software getSoftware() { ... }
+...
+}</programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,<literal>City</literal>
+ ä¸å
æ¬äºä»¥<literal>streetName</literal>æåºç<literal>Street</literal>çéå.
+ è<literal>Software</literal>ä¸å
æ¬äºä»¥<literal>codeName</literal>ä½ä¸º
+ keyå以<literal>Version</literal>ä½ä¸ºå¼çMap.</para>
+
+ <para>é¤ééå为genericç±»å,å¦åä½ éè¦æå®<literal>targetEntity</literal>.
+ è¿ä¸ªæ³¨è§£å±æ§æ¥åçåæ°ä¸ºç®æ å®ä½çclass.</para>
+ </sect4>
+
+ <sect4 id="entity-mapping-association-collection-onetomany"
+ revision="2">
+ <title>ä¸å¯¹å¤(One-to-many)</title>
+
+ <para>å¨å±æ§çº§ä½¿ç¨ <literal>@OneToMany</literal>注解å¯å®ä¹ä¸å¯¹å¤å
³è.ä¸å¯¹å¤å
³èå¯ä»¥æ¯ååå
³è.</para>
+
+ <sect5>
+ <title>åå(Bidirectional)</title>
+
+ <para>å¨EJB3è§èä¸å¤å¯¹ä¸è¿ç«¯å ä¹æ»æ¯ååå
³èä¸ç主ä½(owner)端,
+ èä¸å¯¹å¤è¿ç«¯çå
³è注解为<literal>@OneToMany( mappedBy=...
+ )</literal></para>
+
+ <programlisting>@Entity
+public class Troop {
+ @OneToMany(mappedBy="troop")
+ public Set<Soldier> getSoldiers() {
+ ...
+}
+
+ at Entity
+public class Soldier {
+ @ManyToOne
+ @JoinColumn(name="troop_fk")
+ public Troop getTroop() {
+ ...
+} </programlisting>
+
+ <para><classname>Troop</classname> éè¿<literal>troop</literal>
+ å±æ§å<literal>Soldier</literal>建ç«äºä¸å¯¹å¤çååå
³è.
+ å¨<literal>mappedBy</literal>端ä¸å¿
ä¹ä¸è½åå®ä¹ä»»ä½ç©çæ å°</para>
+
+ <para>对äºä¸å¯¹å¤çååæ å°,å¦æè¦ä¸å¯¹å¤è¿ä¸ç«¯ç»´æ¤å
³èå
³ç³»,
+ ä½ éè¦å é¤<literal>mappedBy</literal>å
ç´ å¹¶å°å¤å¯¹ä¸è¿ç«¯ç
+ <literal>@JoinColumn</literal>çinsertableåupdatable设置为false.
+ å¾ææ¾,è¿ç§æ¹æ¡ä¸ä¼å¾å°ä»ä¹ææ¾çä¼å,èä¸è¿ä¼å¢å ä¸äºéå çUPDATEè¯å¥.</para>
+
+ <programlisting>@Entity
+public class Troop {
+ @OneToMany
+ @JoinColumn(name="troop_fk") //we need to duplicate the physical information
+ public Set<Soldier> getSoldiers() {
+ ...
+}
+
+ at Entity
+public class Soldier {
+ @ManyToOne
+ @JoinColumn(name="troop_fk", insertable=false, updatable=false)
+ public Troop getTroop() {
+ ...
+}</programlisting>
+ </sect5>
+
+ <sect5>
+ <title>åå(Unidirectional)</title>
+
+ <para>éè¿å¨è¢«æ¥æçå®ä½ç«¯(owned entity)å¢å ä¸ä¸ªå¤é®åæ¥å®ç°ä¸å¯¹å¤ååå
³èæ¯å¾å°è§ç,ä¹æ¯ä¸æ¨èç.
+ æ们强ç建议éè¿ä¸ä¸ªèæ¥è¡¨(join table)æ¥å®ç°è¿ç§å
³è(ä¸ä¸èä¼å¯¹æ¤è¿è¡è§£é).
+ å¯ä»¥éè¿<literal>@JoinColumn</literal>注解æ¥æè¿°è¿ç§ååå
³èå
³ç³».</para>
+
+ <programlisting>
+ at Entity
+public class Customer implements Serializable {
+ @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ public Set<Ticket> getTickets() {
+ ...
+}
+
+ at Entity
+public class Ticket implements Serializable {
+ ... //no bidir
+}
+ </programlisting>
+
+ <para><literal>Customer</literal> éè¿
+ <literal>CUST_ID</literal>åå<literal>Ticket</literal> 建ç«äºååå
³èå
³ç³».</para>
+
+ </sect5>
+
+ <sect5>
+ <title>éè¿å
³è表å¤çååå
³è</title>
+
+ <para>éè¿èæ¥è¡¨å¤çååä¸å¯¹å¤å
³èæ¯é¦éæ¹å¼.è¿ç§å
³èéè¿<literal>@JoinTable</literal>注解æ¥è¿è¡æè¿°.</para>
+
+ <programlisting>
+ at Entity
+public class Trainer {
+ @OneToMany
+ @JoinTable(
+ name="TrainedMonkeys",
+ joinColumns = @JoinColumn( name="trainer_id"),
+ inverseJoinColumns = @JoinColumn( name="monkey_id")
+ )
+ public Set<Monkey> getTrainedMonkeys() {
+ ...
+}
+
+ at Entity
+public class Monkey {
+ ... //no bidir
+}
+ </programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,<literal>Trainer</literal>éè¿
+ <classname>TrainedMonkeys</classname>表å
+ <classname>Monkey</classname> 建ç«äºååå
³è.
+ å
¶ä¸å¤é®<literal>trainer_id</literal>å
³èå°<literal>Trainer</literal>
+ (<literal>joinColumns</literal>),
+ èå¤é®<literal>monkey_id</literal>å
³èå° <literal>Monkey</literal>
+ (<literal>inversejoinColumns</literal>).</para>
+ </sect5>
+
+ <sect5>
+ <title>é»è®¤å¤çæºå¶</title>
+
+ <para>éè¿èæ¥è¡¨æ¥å»ºç«ååä¸å¯¹å¤å
³èä¸éè¦æè¿°ä»»ä½ç©çæ å°.
+ 表åç±ä»¥ä¸ä¸ä¸ªé¨åç»æ:主表(owner table)表å+ä¸å线+ä»è¡¨(the other side table)表å.
+ æå主表çå¤é®åï¼ä¸»è¡¨è¡¨å+ä¸å线+主表主é®åå
+ æåä»è¡¨çå¤é®åï¼ä¸»è¡¨æ对åºå®ä½çå±æ§å+ä¸å线+ä»è¡¨ä¸»é®åå
+ æåä»è¡¨çå¤é®å®ä¹ä¸ºå¯ä¸çº¦æ,ç¨æ¥è¡¨ç¤ºä¸å¯¹å¤çå
³èå
³ç³».</para>
+
+ <programlisting>
+ at Entity
+public class Trainer {
+ @OneToMany
+ public Set<Tiger> getTrainedTigers() {
+ ...
+}
+
+ at Entity
+public class Tiger {
+ ... //no bidir
+}
+ </programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,<classname>Trainer</classname>å<classname>Tiger</classname>
+ éè¿èæ¥è¡¨ <literal>Trainer_Tiger</literal>建ç«ååå
³èå
³ç³»,
+ å
¶ä¸å¤é®<literal>trainer_id</literal>å
³èå°<literal>Trainer</literal>
+ (主表表å, <keycap>_</keycap>(ä¸å线), trainer id),
+ èå¤é®<literal>trainedTigers_id</literal>å
³èå°<literal>Tiger</literal>
+ (å±æ§å称, <keycap>_</keycap>(ä¸å线), Tiger表ç主é®åå).</para>
+
+ </sect5>
+ </sect4>
+
+ <sect4>
+ <title>å¤å¯¹å¤(Many-to-many)</title>
+
+ <sect5>
+ <title>å®ä¹</title>
+
+ <para>ä½ å¯ä»¥éè¿<literal>@ManyToMany</literal>注解å¯å®ä¹çå¤å¯¹å¤å
³è.
+ åæ¶,ä½ ä¹éè¦éè¿æ³¨è§£<literal>@JoinTable</literal>æè¿°å
³è表åå
³èæ¡ä»¶.
+ å¦ææ¯ååå
³è,å
¶ä¸ä¸æ®µå¿
é¡»å®ä¹ä¸ºowner,å¦ä¸ç«¯å¿
é¡»å®ä¹ä¸ºinverse(å¨å¯¹å
³è表è¿è¡æ´æ°æä½æ¶è¿ä¸ç«¯å°è¢«å¿½ç¥):</para>
+
+ <programlisting>
+ at Entity
+public class Employer implements Serializable {
+ @ManyToMany(
+ targetEntity=org.hibernate.test.metadata.manytomany.Employee.class,
+ cascade={CascadeType.PERSIST, CascadeType.MERGE}
+ )
+ @JoinTable(
+ name="EMPLOYER_EMPLOYEE",
+ joinColumns=@JoinColumn(name="EMPER_ID"),
+ inverseJoinColumns=@JoinColumn(name="EMPEE_ID")
+ )
+ public Collection getEmployees() {
+ return employees;
+ }
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Employee implements Serializable {
+ @ManyToMany(
+ cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+ mappedBy = "employees",
+ targetEntity = Employer.class
+ )
+ public Collection getEmployers() {
+ return employers;
+ }
+}
+ </programlisting>
+
+ <para>è³æ¤,æ们已ç»å±ç¤ºäºå¾å¤è·å
³èæå
³ç声æå®ä¹ä»¥åå±æ§ç»è.
+ ä¸é¢æ们å°æ·±å
¥ä»ç»<literal>@JoinTable</literal>注解,该注解å®ä¹äºèæ¥è¡¨ç表å,
+ èæ¥åæ°ç»(注解ä¸å®ä¹æ°ç»çæ ¼å¼ä¸º{ A, B, C }),
+ 以åinverseèæ¥åæ°ç».
+ åè
æ¯å
³è表ä¸å
³èå°<classname>Employee</classname>主é®çå(the "other side").</para>
+
+ <para>æ£å¦åé¢æ示,被å
³è端ä¸å¿
ä¹ä¸è½æè¿°ç©çæ å°:
+ åªéè¦ä¸ä¸ªç®åç<literal>mappedBy</literal>åæ°,该åæ°å
å«äºä¸»ä½ç«¯çå±æ§å,è¿æ ·å°±ç»å®åæ¹çå
³ç³».</para>
+ </sect5>
+
+ <sect5>
+ <title>é»è®¤å¼</title>
+
+ <para>åå
¶ä»è®¸å¤æ³¨è§£ä¸æ ·,å¨å¤å¯¹å¤å
³èä¸å¾å¤å¼æ¯èªå¨çæ.
+ å½ååå¤å¯¹å¤å
³èä¸æ²¡æå®ä¹ä»»ä½ç©çæ å°æ¶,Hibernateæ ¹æ®ä»¥ä¸è§åçæç¸åºçå¼.
+ å
³è表å:主表表å+<keycap>_</keycap>ä¸å线+ä»è¡¨è¡¨å,
+ å
³èå°ä¸»è¡¨çå¤é®å:主表å+<keycap>_</keycap>ä¸å线+主表ä¸ç主é®åå.
+ å
³èå°ä»è¡¨çå¤é®å:主表ä¸ç¨äºå
³èçå±æ§å+<keycap>_</keycap>ä¸å线+ä»è¡¨ç主é®åå.
+ 以ä¸è§å对äºååä¸å¯¹å¤å
³èåæ ·ææ.</para>
+
+ <programlisting>
+ at Entity
+public class Store {
+ @ManyToMany(cascade = CascadeType.PERSIST)
+ public Set<City> getImplantedIn() {
+ ...
+ }
+}
+
+ at Entity
+public class City {
+ ... //no bidirectional relationship
+}
+ </programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,<literal>Store_Table</literal>ä½ä¸ºèæ¥è¡¨.
+ <literal>Store_id</literal>åæ¯èæ¥å°<literal>Store</literal>表çå¤é®.
+ è<literal>implantedIn_id</literal>ååèæ¥å°<literal>City</literal>表.</para>
+
+ <para>å½ååå¤å¯¹å¤å
³èä¸æ²¡æå®ä¹ä»»ä½ç©çæ å°æ¶, Hibernateæ ¹æ®ä»¥ä¸è§åçæç¸åºçå¼
+ å
³è表å: :主表表å+<keycap>_</keycap>ä¸å线+ä»è¡¨è¡¨å,
+ å
³èå°ä¸»è¡¨çå¤é®å:ä»è¡¨ç¨äºå
³èçå±æ§å+<keycap>_</keycap>ä¸å线+主表ä¸ç主é®åå.
+ å
³èå°ä»è¡¨çå¤é®å:主表ç¨äºå
³èçå±æ§å+<keycap>_</keycap>ä¸å线+ä»è¡¨ç主é®åå.
+ 以ä¸è§å对äºååä¸å¯¹å¤å
³èåæ ·ææ.</para>
+
+ <programlisting>
+ at Entity
+public class Store {
+ @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
+ public Set<Customer> getCustomers() {
+ ...
+ }
+}
+
+ at Entity
+public class Customer {
+ @ManyToMany(mappedBy="customers")
+ public Set<Store> getStores() {
+ ...
+ }
+}
+ </programlisting>
+
+ <para>å¨ä¸é¢è¿ä¸ªä¾åä¸,<literal>Store_Customer</literal>ä½ä¸ºèæ¥è¡¨.
+ <literal>stores_id</literal>åæ¯èæ¥å°<literal>Store</literal>表çå¤é®,
+ è<literal>customers_id</literal>åèæ¥å°<literal>City</literal>表.</para>
+
+ </sect5>
+ </sect4>
+ </sect3>
+
+
+ <sect3>
+ <title>ç¨cascadingå®ç°ä¼ ææ§æä¹
å(Transitive persistence)</title>
+
+ <para>ä¹è®¸ä½ å·²ç»æ³¨æå°äº<literal>cascade</literal>å±æ§æ¥åçå¼ä¸º<classname>CascadeType</classname>æ°ç».
+ å¨EJB3ä¸çcascadeçæ¦å¿µåHibernateä¸çä¼ ææ§æä¹
å以åcascadeæä½é常类似,
+ ä½æ¯å¨è¯ä¹ä¸æç»å¾®çåºå«,æ¯æçcascadeç±»åä¹æç¹åºå«:</para>
+
+ <itemizedlist>
+ <listitem>
+ CascadeType.PERSIST: å¦æä¸ä¸ªå®ä½æ¯å管ç¶æ, æè
å½persist()å½æ°è¢«è°ç¨æ¶, 触å级èå建(create)æä½
+ </listitem>
+
+ <listitem>
+ CascadeType.MERGE: å¦æä¸ä¸ªå®ä½æ¯å管ç¶æ, æè
å½merge()å½æ°è¢«è°ç¨æ¶, 触å级èå并(merge)æä½
+ </listitem>
+
+ <listitem>
+ CascadeType.REMOVE: å½delete()å½æ°è¢«è°ç¨æ¶, 触å级èå é¤(remove)æä½
+ </listitem>
+
+ <listitem>
+ CascadeType.REFRESH: å½refresh()å½æ°è¢«è°ç¨æ¶, 触å级èæ´æ°(refresh)æä½
+ </listitem>
+
+ <listitem>
+ CascadeType.ALL: 以ä¸å
¨é¨
+ </listitem>
+ </itemizedlist>
+
+ <para>å
³äºcascading, create/mergeçè¯ä¹è¯·åèEJB3è§èç6.3ç« è.</para>
+ </sect3>
+
+ <sect3>
+ <title>å
³èå
³ç³»è·å</title>
+
+ <para>éè¿Hibernateä½ å¯ä»¥è·å¾ç´æ¥æè
延è¿è·åå
³èå®ä½çåè½.
+ <literal>fetch</literal>åæ°å¯ä»¥è®¾ç½®ä¸º<literal>FetchType.LAZY</literal>
+ æè
<literal>FetchType.EAGER</literal>.
+ <literal>EAGER</literal>éè¿<literal>outer join select</literal>ç´æ¥è·åå
³èç对象,
+ è<literal>LAZY</literal>(é»è®¤å¼)å¨ç¬¬ä¸æ¬¡è®¿é®å
³è对象çæ¶åæä¼è§¦åç¸åºçselectæä½.
+ EJBQLæä¾äº<literal>fetch</literal>å
³é®å,该å
³é®åå¯ä»¥å¨è¿è¡ç¹æ®æ¥è¯¢çæ¶åè¦çé»è®¤å¼.
+ è¿å¯¹äºæé«æ§è½æ¥è¯´é常ææ,åºè¯¥æ ¹æ®å®é
çç¨ä¾æ¥å¤ææ¯å¦éæ©fetchå
³é®å.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>æ å°å¤å主é®ä¸å¤é®</title>
+
+ <para>ç»å主é®ä½¿ç¨ä¸ä¸ªå¯åµå
¥çç±»ä½ä¸ºä¸»é®è¡¨ç¤º,å æ¤ä½ éè¦ä½¿ç¨<literal>@Id</literal>
+ å<literal>@Embeddable</literal>两个注解.
+ è¿æä¸ç§æ¹å¼æ¯ä½¿ç¨<literal>@EmbeddedId</literal>注解.注ææä¾èµçç±»å¿
é¡»å®ç°
+ serializable以åå®ç°<methodname>equals()</methodname>/<methodname>hashCode()</methodname>æ¹æ³.
+ ä½ ä¹å¯ä»¥å¦<xref linkend="mapping-identifier" />ä¸ç« ä¸æè¿°çåæ³ä½¿ç¨<literal>@IdClass</literal>注解.</para>
+
+ <programlisting>
+ at Entity
+public class RegionalArticle implements Serializable {
+
+ @Id
+ public RegionalArticlePk getPk() { ... }
+}
+
+ at Embeddable
+public class RegionalArticlePk implements Serializable { ... }
+ </programlisting>
+
+ <para>æè
</para>
+
+ <programlisting>
+ at Entity
+public class RegionalArticle implements Serializable {
+
+ @EmbeddedId
+ public RegionalArticlePk getPk() { ... }
+}
+
+public class RegionalArticlePk implements Serializable { ... }
+ </programlisting>
+
+ <para><literal>@Embeddable</literal> 注解é»è®¤ç»§æ¿äºå
¶æå±å®ä½ç访é®ç±»å,
+ é¤éæ¾å¼ä½¿ç¨äºHibernateç<literal>@AccessType</literal>注解(è¿ä¸ªæ³¨è§£ä¸æ¯EJB3æ åçä¸é¨å).
+ è<literal>@JoinColumns</literal>,å³<literal>@JoinColumn</literal>æ°ç»,
+ å®ä¹äºå
³èçç»åå¤é®(å¦æä¸ä½¿ç¨ç¼ºçå¼çè¯).
+ æ¾å¼ææ<literal>referencedColumnNames</literal>æ¯ä¸ä¸ªå¥½çå®è·µæ¹å¼,
+ å¦å,Hibernateè®¤ä¸ºä½ ä½¿ç¨çå顺åºå主é®å£°æç顺åºä¸è´.</para>
+
+ <programlisting>
+ at Entity
+public class Parent implements Serializable {
+ @Id
+ public ParentPk id;
+ public int age;
+
+ @OneToMany(cascade=CascadeType.ALL)
+ @JoinColumns ({
+ @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+ @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+ @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+ })
+ public Set<Child> children; //unidirectional
+ ...
+}
+ </programlisting>
+
+ <programlisting>
+ at Entity
+public class Child implements Serializable {
+ @Id @GeneratedValue
+ public Integer id;
+
+ @ManyToOne
+ @JoinColumns ({
+ @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+ @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+ @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+ })
+ public Parent parent; //unidirectional
+}
+ </programlisting>
+
+ <programlisting>
+ at Embeddable
+public class ParentPk implements Serializable {
+ String firstName;
+ String lastName;
+ ...
+}
+ </programlisting>
+
+ <para>注æä¸é¢ç <literal>referencedColumnName</literal>æ¾å¼ä½¿ç¨æ¹å¼.</para>
+ </sect2>
+
+ <sect2>
+ <title>æ å°äºçº§è¡¨(secondary tables)</title>
+
+ <para>使ç¨ç±»ä¸çº§ç <literal>@SecondaryTable </literal> æ
+ <literal>@SecondaryTables </literal>注解å¯ä»¥å®ç°å个å®ä½å°å¤ä¸ªè¡¨çæ å°.
+ ä½¿ç¨ <literal>@Column </literal>æè
<literal>@JoinColumn </literal>
+ 注解ä¸ç <literal>table </literal>åæ°å¯æå®æ个åæå±çç¹å®è¡¨.</para>
+
+ <programlisting>
+ at Entity
+ at Table(name="MainCat")
+<emphasis role="bold">@SecondaryTables({
+ @SecondaryTable(name="Cat1", pkJoinColumns={
+ @PrimaryKeyJoinColumn(name="cat_id", referencedColumnName="id")
+ ),
+ @SecondaryTable(name="Cat2", uniqueConstraints={@UniqueConstraint(columnNames={"storyPart2"})})
+})</emphasis>
+public class Cat implements Serializable {
+
+ private Integer id;
+ private String name;
+ private String storyPart1;
+ private String storyPart2;
+
+ @Id @GeneratedValue
+ public Integer getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ <emphasis role="bold">@Column(table="Cat1")</emphasis>
+ public String getStoryPart1() {
+ return storyPart1;
+ }
+
+ <emphasis role="bold">@Column(table="Cat2")</emphasis>
+ public String getStoryPart2() {
+ return storyPart2;
+ }
+</programlisting>
+
+ <para>å¨ä¸é¢è¿ä¸ªä¾åä¸,<literal>name</literal>ä¿åå¨<literal>MainCat</literal>表ä¸,
+ <literal>storyPart1</literal>ä¿åå¨<literal>Cat1</literal>表ä¸,
+ <literal>storyPart2</literal>ä¿åå¨<literal>Cat2</literal>表ä¸.
+ <literal>Cat1</literal>表éè¿å¤é®<literal>cat_id</literal>å<literal>MainCat</literal>表å
³è,
+ <literal>Cat2</literal>表éè¿<literal>id</literal>åå<literal>MainCat</literal>表å
³è
+ (å<literal>MainCat</literal>ç<literal>id</literal>ååå).
+ 对<literal>storyPart2</literal>åè¿å®ä¹äºå¯ä¸çº¦æ.</para>
+
+ <para>å¨JBoss EJB 3æååHibernate Annotationsåå
æµè¯ä»£ç ä¸è¿ææ´å¤çä¾å.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="entity-mapping-query">
+ <title>æ å°æ¥è¯¢</title>
+
+ <sect2>
+ <title>æ å°EJBQL/HQLæ¥è¯¢</title>
+
+ <para>使ç¨æ³¨è§£è¿å¯ä»¥æ å°EJBQL/HQLæ¥è¯¢.
+ <literal>@NamedQuery</literal> å<literal>@NamedQueries</literal>æ¯å¯ä½¿ç¨å¨ç±»åå
ä¸ç注解.
+ ä½æ¯å®ä»¬çå®ä¹å¨session factory/entity manager factoryèå´ä¸æ¯é½å¯è§ç.
+ å½åå¼æ¥è¯¢éè¿å®çåååå®é
çæ¥è¯¢å符串æ¥å®ä¹.</para>
+
+ <programlisting>
+javax.persistence.NamedQueries(
+ @javax.persistence.NamedQuery(name="plane.getAll", query="select p from Plane p")
+)
+package org.hibernate.test.annotations.query;
+
+...
+
+ at Entity
+ at NamedQuery(name="night.moreRecentThan", query="select n from Night n where n.date >= :date")
+public class Night {
+ ...
+}
+
+public class MyDao {
+ doStuff() {
+ Query q = s.getNamedQuery("night.moreRecentThan");
+ q.setDate( "date", aMonthAgo );
+ List results = q.list();
+ ...
+ }
+ ...
+}
+ </programlisting>
+
+ <para>è¿å¯ä»¥éè¿å®ä¹ <literal>QueryHint</literal> æ°ç»ç<literal>hints</literal>
+ å±æ§ä¸ºæ¥è¯¢æä¾ä¸äºhintä¿¡æ¯.</para>
+
+ <para>ä¸é¢æ¯ç®åå¯ä»¥ä½¿ç¨çä¸äºHibernate hintï¼</para>
+
+ <para></para>
+
+ <table>
+ <title>Query hints</title>
+
+ <tgroup cols="2">
+ <thead>
+ <colspec colname="c1" />
+
+ <colspec colname="c2" colnum="2" />
+
+ <row>
+ <entry>hint</entry>
+
+ <entry colname="c2">description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>org.hibernate.cacheable</entry>
+
+ <entry>æ¥è¯¢æ¯å¦ä¸äºçº§ç¼å交äº(é»è®¤å¼ä¸ºfalse)
+ </entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.cacheRegion</entry>
+
+ <entry>设置ç¼ååºå称 (é»è®¤ä¸ºotherwise)</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.timeout</entry>
+
+ <entry>æ¥è¯¢è¶
æ¶è®¾å®</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.fetchSize</entry>
+
+ <entry>æè·åçç»æé(resultset)大å°</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.flushMode</entry>
+
+ <entry>æ¬æ¬¡æ¥è¯¢æç¨çå·æ°æ¨¡å¼</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.cacheMode</entry>
+
+ <entry>æ¬æ¬¡æ¥è¯¢æç¨çç¼å模å¼</entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.readOnly</entry>
+
+ <entry>æ¯å¦å°æ¬æ¬¡æ¥è¯¢æå è½½çå®ä½è®¾ä¸ºåªè¯»(é»è®¤ä¸ºfalse)
+ </entry>
+ </row>
+
+ <row>
+ <entry>org.hibernate.comment</entry>
+
+ <entry>å°æ¥è¯¢æ³¨éæ·»å å
¥æçæçSQL</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="entity-mapping-query-native" revision="2">
+ <title>æ å°æ¬å°åæ¥è¯¢</title>
+
+ <para>ä½ è¿å¯ä»¥æ å°æ¬å°åæ¥è¯¢(ä¹å°±æ¯æ®éSQLæ¥è¯¢).
+ ä¸è¿è¿éè¦ä½ 使ç¨<literal>@SqlResultSetMapping</literal>注解æ¥æè¿°SQLçresultsetçç»æ
+ (å¦æä½ æç®å®ä¹å¤ä¸ªç»æéæ å°ï¼å¯æ¯ä½¿ç¨<literal>@SqlResultSetMappings</literal>).
+ <literal>@SqlResultSetMapping</literal>å<literal>@NamedQuery</literal>,
+ <literal>@SqlResultSetMapping</literal>ä¸æ ·,å¯ä»¥å®ä¹å¨ç±»åå
ä¸çº§.
+ ä½æ¯<literal>@SqlResultSetMapping</literal>çä½ç¨å为åºç¨çº§.
+ ä¸é¢æ们ä¼çå°,<literal>@NamedNativeQuery</literal> 注解ä¸
+ <literal>resultSetMapping</literal>åæ°å¼ä¸º<literal>@SqlResultSetMapping</literal>çåå.
+ ç»æéæ å°å®ä¹äºéè¿æ¬å°åæ¥è¯¢è¿åå¼åå®ä½çæ å°.
+ 该å®ä½ä¸çæ¯ä¸ä¸ªå段é½ç»å®å°SQLç»æéä¸çæ个åä¸.
+ 该å®ä½çææå段å
æ¬åç±»çææå段以å
+ å
³èå®ä½çå¤é®åé½å¿
é¡»å¨SQLæ¥è¯¢ä¸æ对åºçå®ä¹.
+ å¦æå®ä½ä¸çå±æ§åSQLæ¥è¯¢ä¸çååç¸å,è¿ç§æ
åµä¸å¯ä»¥ä¸è¿è¡å®ä¹å段æ å°.</para>
+
+ <para><programlisting>@NamedNativeQuery(name="night&area", query="select night.id nid, night.night_duration, "
+ + " night.night_date, area.id aid, night.area_id, area.name "
+ + "from Night night, Area area where night.area_id = area.id", <emphasis
+ role="bold">resultSetMapping="joinMapping"</emphasis>)
+ at SqlResultSetMapping(name="joinMapping", entities={
+ @EntityResult(entityClass=org.hibernate.test.annotations.query.Night.class, fields = {
+ @FieldResult(name="id", column="nid"),
+ @FieldResult(name="duration", column="night_duration"),
+ @FieldResult(name="date", column="night_date"),
+ @FieldResult(name="area", column="area_id"),
+ discriminatorColumn="disc"
+ }),
+ @EntityResult(entityClass=org.hibernate.test.annotations.query.Area.class, fields = {
+ @FieldResult(name="id", column="aid"),
+ @FieldResult(name="name", column="name")
+ })
+ }
+)</programlisting></para>
+
+ <para>å¨ä¸é¢è¿ä¸ªä¾åä¸,å为<literal>night&area</literal>çæ¥è¯¢
+ å<literal>joinMapping</literal>ç»æéæ å°å¯¹åº.
+ 该æ å°è¿å两个å®ä½,åå«ä¸º<literal>Night</literal>
+ å<literal>Area</literal>,å
¶ä¸æ¯ä¸ªå±æ§é½åä¸ä¸ªåå
³è,
+ ååéè¿æ¥è¯¢è·å.ä¸é¢æ们çä¸ä¸ªéå¼å£°æå±æ§ååæ å°å
³ç³»çä¾å.</para>
+
+ <programlisting>@Entity
+<emphasis role="bold">@SqlResultSetMapping(name="implicit", entities=@EntityResult(entityClass=org.hibernate.test.annotations.query.SpaceShip.class))
+ at NamedNativeQuery(name="implicitSample", query="select * from SpaceShip", resultSetMapping="implicit")</emphasis>
+public class SpaceShip {
+ private String name;
+ private String model;
+ private double speed;
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Column(name="model_txt")
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+}</programlisting>
+
+ <para>å¨è¿ä¸ªä¾åä¸,æ们åªéè¦å®ä¹ç»æéæ å°ä¸çå®ä½æå.
+ å±æ§åååä¹é´çæ å°åå©å®ä½ä¸å
å«æ å°ä¿¡æ¯æ¥å®æ.
+ å¨è¿ä¸ªä¾åä¸,<literal>model</literal>å±æ§ç»å®å°<literal>model_txt</literal>å.
+ å¦æåç¸å
³å®ä½çå
³è设计å°ç»å主é®,
+ é£ä¹åºè¯¥ä½¿ç¨<literal>@FieldResult</literal>注解æ¥å®ä¹æ¯ä¸ªå¤é®å.
+ <literal>@FieldResult</literal>çååç±ä»¥ä¸å é¨åç»æï¼
+ å®ä¹è¿ç§å
³ç³»çå±æ§åå+"."ï¼ä¸»é®åæ主é®åæ主é®å±æ§.</para>
+
+ <programlisting>@Entity
+ at SqlResultSetMapping(name="compositekey",
+ entities=@EntityResult(entityClass=org.hibernate.test.annotations.query.SpaceShip.class,
+ fields = {
+ @FieldResult(name="name", column = "name"),
+ @FieldResult(name="model", column = "model"),
+ @FieldResult(name="speed", column = "speed"),
+<emphasis role="bold"> @FieldResult(name="captain.firstname", column = "firstn"),
+ @FieldResult(name="captain.lastname", column = "lastn"),</emphasis>
+ @FieldResult(name="dimensions.length", column = "length"),
+ @FieldResult(name="dimensions.width", column = "width")
+ }),
+ columns = { @ColumnResult(name = "surface"),
+ @ColumnResult(name = "volume") } )
+
+ at NamedNativeQuery(name="compositekey",
+ query="select name, model, speed, lname as lastn, fname as firstn, length, width, length * width as surface from SpaceShip",
+ resultSetMapping="compositekey")
+} )
+public class SpaceShip {
+ private String name;
+ private String model;
+ private double speed;
+ private Captain captain;
+ private Dimensions dimensions;
+
+ @Id
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @ManyToOne(fetch= FetchType.LAZY)
+ @JoinColumns( {
+ @JoinColumn(name="fname", referencedColumnName = "firstname"),
+ @JoinColumn(name="lname", referencedColumnName = "lastname")
+ } )
+ public Captain getCaptain() {
+ return captain;
+ }
+
+ public void setCaptain(Captain captain) {
+ this.captain = captain;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+
+ public Dimensions getDimensions() {
+ return dimensions;
+ }
+
+ public void setDimensions(Dimensions dimensions) {
+ this.dimensions = dimensions;
+ }
+}
+
+ at Entity
+ at IdClass(Identity.class)
+public class Captain implements Serializable {
+ private String firstname;
+ private String lastname;
+
+ @Id
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ @Id
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+}
+</programlisting>
+
+ <note>
+
+ <para>è§å¯dimensionå±æ§ä½ ä¼åç°Hibernateæ¯æç¨"."符å·æ¥è¡¨ç¤ºåµå
¥å¼å¯¹è±¡.
+ EJB3å®ç°ä¸å¿
æ¯æè¿ä¸ªç¹å¾,ä½æ¯æ们åå°äº:-)</para>
+ </note>
+
+ <para>å¦ææ¥è¯¢è¿åçæ¯å个å®ä½,æè
ä½ æç®ä½¿ç¨ç³»ç»é»è®¤çæ å°,
+ è¿ç§æ
åµä¸å¯ä»¥ä¸ä½¿ç¨<literal>resultSetMapping</literal>
+ èæ¯ä½¿ç¨<literal>resultClass</literal>å±æ§:</para>
+
+ <programlisting><emphasis role="bold">@NamedNativeQuery(name="implicitSample", query="select * from SpaceShip",
+ resultClass=SpaceShip.class)</emphasis>
+public class SpaceShip {</programlisting>
+
+ <para>æäºæ¬å°æ¥è¯¢è¿åçæ¯scalarå¼,ä¾å¦æ¥è¡¨æ¥è¯¢.
+ ä½ å¯ä»¥éè¿<literal>@ColumnResult</literal>å°å
¶æ å°å°
+ <literal>@SqlResultsetMapping</literal>ä¸.
+ çè³è¿å¯ä»¥å¨åä¸ä¸ªæ¬å°æ¥è¯¢çç»æä¸æ··åå®ä½åscalarç±»å(ä¸è¿è¿ç§æ
åµæ¯è¾å°è§).</para>
+
+ <programlisting><emphasis role="bold">@SqlResultSetMapping(name="scalar", columns=@ColumnResult(name="dimension"))
+ at NamedNativeQuery(name="scalar", query="select length*width as dimension from SpaceShip", resultSetMapping="scalar")</emphasis></programlisting>
+
+ <para>æ¬å°æ¥è¯¢ä¸è¿æå¦å¤ä¸ä¸ªhintå±æ§ï¼
+ <literal>org.hibernate.callable</literal>.
+ è¿ä¸ªå±æ§çå¸å°åéå¼è¡¨æè¿ä¸ªæ¥è¯¢æ¯å¦æ¯ä¸ä¸ªåå¨è¿ç¨.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="entity-hibspec" xreflabel="Hibernate Annotation Extensions">
+ <title>Hibernateç¬æç注解æ©å±</title>
+
+ <para>Hibernate 3.1 æä¾äºå¤ç§éå ç注解,è¿äºæ³¨è§£å¯ä»¥ä¸EJB3çå®ä½æ··å/å¹é
使ç¨.
+ ä»ä»¬è¢«è®¾è®¡æEJB3注解çèªç¶æ©å±.</para>
+
+ <para>为äºå¼ºåEJB3çè½å,Hibernateæä¾äºä¸å
¶èªèº«ç¹æ§ç¸å»åçç¹æ®æ³¨è§£.
+ <classname>org.hibernate.annotations</classname>å
å·²å
å«äºææçè¿äºæ³¨è§£æ©å±.</para>
+
+ <sect2 id="entity-hibspec-entity" revision="2">
+ <title>å®ä½</title>
+
+ <para>ä½ å¯ä»¥å¨EJB3è§èæè½æä¾çè½åä¹å¤,å°±Hibernate对å®ä½æåçä¸äºæä½è¿è¡ä¼å.</para>
+
+ <para><classname>@org.hibernate.annotations.Entity</classname>
+ 追å äºå¯è½éè¦çé¢å¤çå
æ°æ®,
+ èè¿äºå
æ°æ®è¶
åºäºæ å<literal>@Entity</literal> ä¸æå®ä¹çå
æ°æ®.
+ <itemizedlist>
+ <listitem>
+ mutable: æ¤å®ä½æ¯å¦ä¸ºå¯åç
+ </listitem>
+
+ <listitem>
+ dynamicInsert: ç¨å¨æSQLæ°å¢
+ </listitem>
+
+ <listitem>
+ dynamicUpdate: ç¨å¨æSQLæ´æ°
+ </listitem>
+
+ <listitem>
+ selectBeforeUpdate: ææHibernateä»ä¸è¿è¡SQL UPDATEé¤éè½ç¡®å®å¯¹è±¡ç确已被修æ¹
+ </listitem>
+
+ <listitem>
+ polymorphism: (æåº)å®ä½å¤ææ¯PolymorphismType.IMPLICIT(é»è®¤)è¿æ¯PolymorphismType.EXPLICIT
+ </listitem>
+
+ <listitem>
+ persister:å
许对é»è®¤æä¹
å®ç°(persister implementation)çè¦ç
+ </listitem>
+
+ <listitem>
+ optimisticLock: ä¹è§éçç¥(OptimisticLockType.VERSION, OptimisticLockType.NONE, OptimisticLockType.DIRTYæOptimisticLockType.ALL)
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ <note>
+ <para>
+ @javax.persistence.Entityä»æ¯å¿
éç(mandatory),
+ @org.hibernate.annotations.Entityä¸æ¯å代å.
+ </para>
+ </note>
+ </para>
+
+ <para>以ä¸æ¯ä¸äºéå çHibernate注解æ©å±ï¼</para>
+
+ <para><literal>@org.hibernate.annotations.BatchSize</literal>
+ å
è®¸ä½ å®ä¹æ¹éè·å该å®ä½çå®ä¾æ°é(å¦ï¼<literal>@BatchSize(size=4)</literal>).
+ å½å è½½ä¸ç¹å®çå®ä½æ¶,Hibernateå°å è½½å¨æä¹
ä¸ä¸æä¸æªç»åå§åçåç±»åå®ä½,ç´è³æ¹éæ°é(ä¸é).</para>
+
+ <para><literal>@org.hibernate.annotations.Proxy</literal>
+ å®ä¹äºå®ä½ç延è¿å±æ§.Lazy(é»è®¤ä¸ºtrue)å®ä¹äºç±»æ¯å¦ä¸ºå»¶è¿(å è½½).
+ proxyClassNameæ¯ç¨æ¥çæ代ççæ¥å£(é»è®¤ä¸ºè¯¥ç±»æ¬èº«).</para>
+
+ <para><literal>@org.hibernate.annotations.Where</literal>
+ å®ä¹äºå½è·åç±»å®ä¾æ¶æç¨çSQL WHEREåå¥(该SQL WHEREåå¥ä¸ºå¯é).</para>
+
+ <para><literal>@org.hibernate.annotations.Check</literal>
+ å®ä¹äºå¨DDLè¯å¥ä¸å®ä¹çåæ³æ§æ£æ¥çº¦æ(该约æ为å¯é).</para>
+
+ <para><literal>@OnDelete(action=OnDeleteAction.CASCADE)</literal>
+ å®ä¹äºè¢«è¿æ¥çåç±»(joined subclass)ï¼å¨å é¤æ¶ä½¿ç¨SQL级è¿å é¤,èéé常çHibernateå é¤æºå¶.</para>
+
+ <para><literal>@Table(name="tableName", indexes = {
+ @Index(name="index1", columnNames={"column1", "column2"} ) } )</literal>
+ å¨<literal>tableName</literal>表çåä¸å建å®ä¹å¥½çç´¢å¼.
+ 该注解å¯ä»¥è¢«åºç¨äºå
³é®è¡¨æè
æ¯å
¶ä»æ¬¡è¦ç表.
+ <literal>@Tables</literal> 注解å
è®¸ä½ å¨ä¸åç表ä¸åºç¨ç´¢å¼.
+ æ¤æ³¨è§£é¢æå¨ä½¿ç¨
+ <literal>@javax.persistence.Table</literal>æ
+ <literal>@javax.persistence.SecondaryTable</literal>çå°æ¹ä¸åºç°.</para>
+
+ <note>
+ <para>
+ <literal>@org.hibernate.annotations.Table</literal> æ¯å¯¹
+ <literal>@javax.persistence.Table</literal>çè¡¥å
èä¸æ¯å®çæ¿ä»£å.
+ ç¹å«æ¯å½ä½ æç®æ¹å表åçé»è®¤å¼çæ¶åï¼ä½ å¿
须使ç¨<literal>@javax.persistence.Table</literal>,
+ èä¸æ¯<literal>@org.hibernate.annotations.Table</literal>.</para>
+ </note>
+
+ <para><programlisting>@Entity
+ at BatchSize(size=5)
+ at org.hibernate.annotations.Entity(
+ selectBeforeUpdate = true,
+ dynamicInsert = true, dynamicUpdate = true,
+ optimisticLock = OptimisticLockType.ALL,
+ polymorphism = PolymorphismType.EXPLICIT)
+ at Where(clause="1=1")
+ at org.hibernate.annotations.Table(name="Forest", indexes = { @Index(name="idx", columnNames = { "name", "length" } ) } )
+public class Forest { ... }</programlisting><programlisting>@Entity
+ at Inheritance(
+ strategy=InheritanceType.JOINED
+)
+public class Vegetable { ... }
+
+ at Entity
+ at OnDelete(action=OnDeleteAction.CASCADE)
+public class Carrot extends Vegetable { ... }</programlisting></para>
+ </sect2>
+
+ <sect2>
+ <title>æ è¯ç¬¦</title>
+
+ <para><literal><literal>@org.hibernate.annotations.GenericGenerator</literal>
+ å
è®¸ä½ å®ä¹ä¸ä¸ªHibernateç¹å®çidçæå¨.</literal></para>
+
+ <para><programlisting>@Id @GeneratedValue(generator="system-uuid")
+ at GenericGenerator(name="system-uuid", strategy = "uuid")
+public String getId() {
+
+ at Id @GeneratedValue(generator="hibseq")
+ at GenericGenerator(name="hibseq", strategy = "seqhilo",
+ parameters = {
+ @Parameter(name="max_lo", value = "5"),
+ @Parameter(name="sequence", value="heybabyhey")
+ }
+)
+public Integer getId() {</programlisting></para>
+
+ <para><literal>strategy</literal>å¯ä»¥æ¯Hibernate3çæå¨çç¥çç®ç§°,
+ æè
æ¯ä¸ä¸ª<classname>IdentifierGenerator</classname>å®ç°ç(带å
è·¯å¾ç)å
¨éå®ç±»å.
+ ä½ å¯ä»¥éè¿<literal>parameters</literal>å±æ§å¢å ä¸äºåæ°.</para>
+</sect2>
+
+<sect2 id="entity-hibspec-property" revision="2">
+ <title>å±æ§</title>
+
+ <sect3>
+ <title>访é®ç±»å</title>
+
+ <para>访é®ç±»åæ¯æ ¹æ®<literal>@Id</literal>æ<literal>@EmbeddedId</literal>
+ å¨å®ä½ç»§æ¿å±æ¬¡ä¸æå¤çä½ç½®æ¨æ¼èå¾ç.åå®ä½(Sub-entities),
+ å
åµå¯¹è±¡å被æ å°çç¶ç±»å继æ¿äºæ ¹å®ä½(root entity)ç访é®ç±»å.</para>
+
+ <para>å¨Hibernateä¸,ä½ å¯ä»¥æ访é®ç±»åè¦çæï¼</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>使ç¨å®å¶ç访é®ç±»åçç¥</para>
+ </listitem>
+
+ <listitem>
+ <para>ä¼å类级æå±æ§çº§ç访é®ç±»å</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>为æ¯æè¿ç§è¡ä¸º,Hibernateå¼å
¥äº@AccessType注解.ä½ å¯ä»¥å¯¹ä»¥ä¸å
ç´ å®ä¹è®¿é®ç±»åï¼</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>å®ä½</para>
+ </listitem>
+
+ <listitem>
+ <para>ç¶ç±»</para>
+ </listitem>
+
+ <listitem>
+ <para>å¯å
åµç对象</para>
+ </listitem>
+
+ <listitem>
+ <para>å±æ§</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>被注解å
ç´ ç访é®ç±»åä¼è¢«è¦ç,è¥è¦çæ¯å¨ç±»ä¸çº§ä¸,åææçå±æ§ç»§æ¿è®¿é®ç±»å.
+ 对äºæ ¹å®ä½,å
¶è®¿é®ç±»åä¼è¢«è®¤ä¸ºæ¯æ´ä¸ªç»§æ¿å±æ¬¡ä¸ç缺ç设置(å¯å¨ç±»æå±æ§ä¸çº§è¦ç).</para>
+
+ <para>è¥è®¿é®ç±»å被æ 以"property",åHibernateä¼æ«ægetteræ¹æ³ç注解,è¥è®¿é®ç±»å被æ 以"field",
+ åæ«æå段ç注解.å¦å,æ«ææ 为@Idæ@embeddedIdçå
ç´ .</para>
+
+ <para>ä½ å¯ä»¥è¦çæ个å±æ§(property)ç访é®ç±»å,ä½æ¯å注解çå
ç´ å°ä¸åå½±åï¼
+ ä¾å¦ä¸ä¸ªå
·æfield访é®ç±»åçå®ä½,(æ们)å¯ä»¥å°æ个å段æ 注为 @AccessType("property"),
+ å该å段ç访é®ç±»åéä¹å°æ为property,ä½æ¯å
¶ä»å段ä¸ä¾ç¶éè¦æºå¸¦æ³¨è§£.</para>
+
+ <para>è¥ç¶ç±»æå¯å
åµç对象没æ被注解,å使ç¨æ ¹å®ä½ç访é®ç±»å(å³ä½¿å·²ç»å¨éç´ç³»ç¶ç±»æå¯å
åµå¯¹è±¡ä¸å®ä¹äºè®¿é®ç±»å).
+ æ¤æ¶ä¿ç½æ¯å¥å¨(Russian doll)åçå°±ä¸åéç¨.(è¯æ³¨ï¼ä¿ç½æ¯å¥å¨(маÑÑÑÑкаæ маÑÑеÑка)æ¯ä¿ç½æ¯ç¹äº§æ¨å¶ç©å
·,
+ ä¸è¬ç±å¤ä¸ªä¸æ ·å¾æ¡ç空å¿æ¨å¨å¨ä¸ä¸ªå¥ä¸ä¸ªç»æ,æå¤å¯è¾¾åå¤ä¸ª,é常为åæ±å½¢,åºé¨å¹³å¦å¯ä»¥ç´ç«.)</para>
+
+<programlisting>@Entity
+public class Person implements Serializable {
+ @Id @GeneratedValue //access type field
+ Integer id;
+
+ @Embedded
+ @AttributeOverrides({
+ @AttributeOverride(name = "iso2", column = @Column(name = "bornIso2")),
+ @AttributeOverride(name = "name", column = @Column(name = "bornCountryName"))
+ })
+ Country bornIn;
+}
+
+ at Embeddable
+<emphasis role="bold">@AccessType("property")</emphasis> //override access type for all properties in Country
+public class Country implements Serializable {
+ private String iso2;
+ private String name;
+
+ public String getIso2() {
+ return iso2;
+ }
+
+ public void setIso2(String iso2) {
+ this.iso2 = iso2;
+ }
+
+ @Column(name = "countryName")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
+</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>å
¬å¼</title>
+
+ <para>ææ¶å,ä½ æ³è®©æ°æ®åº,èéJVM,æ¥æ¿ä½ å®æä¸äºè®¡ç®,ä¹å¯è½æ³å建æç§èæå.
+ ä½ å¯ä»¥ä½¿ç¨SQLç段(亦称为å
¬å¼),èä¸æ¯å°å±æ§æ å°å°(ç©ç)å. è¿ç§å±æ§æ¯åªè¯»ç(å±æ§å¼ç±å
¬æ±å¾).</para>
+
+ <programlisting>@Formula("obj_length * obj_height * obj_width")
+ public long getObjectVolume()</programlisting>
+
+
+ <para>SQLç段å¯ä»¥æ¯ä»»æå¤æç,çè³å¯å
å«åæ¥è¯¢.</para>
+ </sect3>
+
+ <sect3>
+ <title>ç±»å</title>
+
+ <para><literal>@org.hibernate.annotations.Type</literal>
+ è¦çäºHibernateæç¨çé»è®¤ç±»åï¼è¿é常ä¸æ¯å¿
é¡»ç,å 为类åå¯ä»¥ç±Hibernateæ£ç¡®æ¨å¾.
+ å
³äºHibernateç±»åç详ç»ä¿¡æ¯,请åèHibernate使ç¨æå.</para>
+
+ <para><literal>@org.hibernate.annotations.TypeDef</literal> å
+ <literal>@org.hibernate.annotations.TypeDefs</literal>å
è®¸ä½ æ¥å£°æç±»åå®ä¹.
+ è¿äºæ³¨è§£è¢«ç½®äºç±»æå
ä¸çº§.注æ,对session factoryæ¥è¯´,
+ è¿äºå®ä¹å°æ¯å
¨å±ç(å³ä½¿å®ä¹äºç±»ä¸çº§),并ä¸ç±»åå®ä¹å¿
é¡»å
äºä»»ä½ä½¿ç¨.</para>
+
+ <programlisting>@TypeDefs(
+ {
+ @TypeDef(
+ name="caster",
+ typeClass = CasterStringType.class,
+ parameters = {
+ @Parameter(name="cast", value="lower")
+ }
+ )
+ }
+)
+package org.hibernate.test.annotations.entity;
+
+...
+public class Forest {
+ @Type(type="caster")
+ public String getSmallText() {
+ ...
+}
+ </programlisting>
+
+ <para>å½ä½¿ç¨ç»åçç¨æ·èªå®ä¹ç±»åæ¶,ä½ å¿
é¡»èªå·±è¡¨ç¤ºåçå®ä¹.
+<literal>@Columns</literal>å°±æ¯ä¸ºäºæ¤ç®çèå¼å
¥ç.</para>
+<programlisting>@Type(type="org.hibernate.test.annotations.entity.MonetaryAmountUserType")
+ at Columns(columns = {
+ @Column(name="r_amount"),
+ @Column(name="r_currency")
+})
+public MonetaryAmount getAmount() {
+ return amount;
+}
+
+
+public class MonetaryAmount implements Serializable {
+ private BigDecimal amount;
+ private Currency currency;
+ ...
+}</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>ç´¢å¼</title>
+
+ <para>éè¿å¨åå±æ§(property)ä¸ä½¿ç¨<literal>@Index</literal>注解,
+ å¯ä»¥å¨ç¹å®åä¸å®ä¹ç´¢å¼,columnNameså±æ§(attribute)å°éä¹è¢«å¿½ç¥.</para>
+
+ <programlisting>@Column(secondaryTable="Cat1")
+ at Index(name="story1index")
+public String getStoryPart1() {
+ return storyPart1;
+}</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>@Parent</title>
+
+ <para>å¨åµå
¥å¼å¯¹è±¡å
é¨,ä½ å¯ä»¥å¨é£äºæå该åµå
¥å¼å¯¹è±¡æå±å
ç´ çå±æ§ä¸å®ä¹è¯¥æ³¨è§£.</para>
+
+ <programlisting>@Entity
+public class Person {
+ @Embeddable public Address address;
+ ...
+}
+
+ at Embeddable
+public class Address {
+ @Parent public Person owner;
+ ...
+}
+
+
+person == person.address.owner</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>çæçå±æ§</title>
+
+ <para>
+ æäºå±æ§å¯ä»¥å¨å¯¹æ°æ®åºåæå
¥ææ´æ°æä½çæ¶åçæ.
+ Hibernateè½å¤å¤çè¿æ ·çå±æ§,并触åä¸ä¸ªåç»çæ¥è¯¢æ¥è¯»åè¿äºå±æ§.
+ </para>
+
+ <programlisting>@Entity
+public class Antenna {
+ @Id public Integer id;
+ @Generated(GenerationTime.ALWAYS) @Column(insertable = false, updatable = false)
+ public String longitude;
+
+ @Generated(GenerationTime.INSERT) @Column(insertable = false)
+ public String latitude;
+}</programlisting>
+
+ <para>
+ ä½ å¯ä»¥å°å±æ§æ³¨è§£ä¸º<literal>@Generated</literal>.
+ ä½æ¯ä½ è¦æ³¨æinsertabilityåupdatabilityä¸è¦åä½ éæ©ççæçç¥å²çª.
+ å¦æéæ©äºGenerationTime.INSERT,该å±æ§ä¸è½å
å«insertableå,
+ å¦æéæ©äºGenerationTime.ALWAYS,该å±æ§ä¸è½å
å«insertableåupdatableå.</para>
+
+ <para><literal>@Version</literal>å±æ§ä¸å¯ä»¥ä¸º
+ <literal>@Generated(INSERT)</literal>(设计æ¶), åªè½æ¯
+ <literal>NEVER</literal>æ<literal>ALWAYS</literal>.</para>
+ </sect3>
+
+ </sect2>
+
+ <sect2>
+ <title>继æ¿</title>
+
+ <para>SINGLE_TABLE æ¯ä¸ªåè½å¼ºå¤§ççç¥,ä½ææ¶,ç¹å«å¯¹éçç³»ç»èè¨,
+ æ¯æ æ³å å
¥ä¸ä¸ªé¢å¤ç辨å«ç¬¦å.
+ ç±æ¤,Hibernateå¼å
¥äºè¾¨å«ç¬¦å
¬å¼(discriminator formula)çæ¦å¿µï¼
+ <literal>@DiscriminatorFormula</literal>æ¯<literal>@DiscriminatorColumn</literal>çæ¿ä»£å,
+ å®ä½¿ç¨SQLç段ä½ä¸ºè¾¨å«ç¬¦è§£å³æ¹æ¡çå
¬å¼( ä¸éè¦æä¸ä¸ªä¸é¨çå段).</para>
+
+ <programlisting>@Entity
+ at DiscriminatorForumla("case when forest_type is null then 0 else forest_type end")
+public class Forest { ... }</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>å
³äºå个å
³èå
³ç³»ç注解</title>
+
+ <para>é»è®¤æ
åµä¸,å½é¢æç被å
³èå
ç´ ä¸å¨æ°æ®åºä¸(å
³ä¹å
³èåçé误id),è´ä½¿Hiberanteæ æ³è§£å³å
³èæ§é®é¢æ¶,Hibernateå°±ä¼æåºå¼å¸¸.
+ è¿å¯¹éçschemaååç»æå£ç»´æ¤çschemaèè¨,è¿ææ许å¤ä¸ä¾¿.
+ æ¤æ¶,ä½ å¯ç¨ <literal>@NotFound </literal>注解让Hibernateç¥è¿è¿æ ·çå
ç´ èä¸æ¯æåºå¼å¸¸.
+ 该注解å¯ç¨äº <literal>@OneToOne </literal> (æå¤é®)ã <literal>@ManyToOne </literal>ã
+ <literal>@OneToMany </literal> æ <literal>@ManyToMany </literal>å
³è.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ @NotFound(action=NotFoundAction.IGNORE)
+ public Parent getParent() { ... }
+ ...
+}</programlisting>
+
+ <para>
+ ææ¶åå é¤æå®ä½çæ¶åéè¦è§¦åæ°æ®åºç级èå é¤.</para>
+
+ <programlisting>@Entity
+public class Child {
+ ...
+ @ManyToOne
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ public Parent getParent() { ... }
+ ...
+}</programlisting>
+
+ <para>ä¸é¢è¿ä¸ªä¾åä¸,Hibernateå°çæä¸ä¸ªæ°æ®åºçº§ç级èå é¤çº¦æ.</para>
+
+ <sect3>
+ <title>延è¿é项åè·å模å¼</title>
+
+ <para>
+ EJB3为延è¿å è½½åè·å模å¼æä¾äº<literal>fetch</literal>é项,èHibernate
+ è¿æ¹é¢æä¾äºæ´ä¸°å¯çé项é.为äºæ´å¥½çè°æ´å»¶è¿å è½½åè·åçç¥,Hibernateå¼å
¥äº
+ ä¸äºéå ç注解:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>@LazyToOne</literal>: å®ä¹äº
+ <literal>@ManyToOne</literal> å <literal>@OneToOne</literal>
+ å
³èç延è¿é项. <literal>LazyToOneOption</literal> å¯ä»¥æ¯
+ <literal>PROXY</literal> (ä¾å¦:åºäºä»£çç延è¿å è½½),
+ <literal>NO_PROXY</literal> (ä¾å¦:åºäºåèç å¢å¼ºç延è¿å è½½ - 注æéè¦å¨æ建æå¤çåèç )
+ å <literal>FALSE</literal> (é延è¿å è½½çå
³è)</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@LazyCollection</literal>: å®ä¹äº
+ <literal>@ManyToMany</literal>å
+ <literal>@OneToMany</literal> å
³èç延è¿é项. LazyCollectionOption
+ å¯ä»¥æ¯<literal>TRUE</literal> (éåå
·æ延è¿æ§,åªæå¨è®¿é®çæ¶åæå è½½),
+ <literal>EXTRA</literal> (éåå
·æ延è¿æ§,并ä¸ææçæä½é½ä¼å°½éé¿å
å è½½éå,
+ 对äºä¸ä¸ªå·¨å¤§çéåç¹å«æç¨,å 为è¿æ ·çéåä¸çå
ç´ æ²¡æå¿
è¦å
¨é¨å è½½)å FALSE
+ (é延è¿å è½½çå
³è)</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>@Fetch</literal>:
+ å®ä¹äºå è½½å
³èå
³ç³»çè·åçç¥. <literal>FetchMode</literal> å¯ä»¥æ¯
+ <literal>SELECT</literal> (å¨éè¦å è½½å
³èçæ¶å触åselectæä½),
+ <literal>SUBSELECT</literal>
+ (åªå¯¹éåææ,使ç¨äºåæ¥è¯¢çç¥,详æ
åèHibernateåèææ¡£) or
+ <literal>JOIN</literal> (å¨å 载主å®ä½(owner entity)çæ¶å使ç¨SQL JOINæ¥å è½½å
³èå
³ç³»).
+ <literal>JOIN</literal> å°è¦åä»»ä½å»¶è¿å±æ§
+ (éè¿<literal>JOIN</literal>çç¥å è½½çå
³èå°ä¸åå
·æ延è¿æ§).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The Hibernate annotations overrides the EJB3 fetching
+ options.</para>
+
+ <para>Hibernate注解è¦åäºEJB3æä¾çè·å(fetch)é项.</para>
+
+ <table>
+ <title>延è¿åè·åé项ççæ注解</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Annotations</entry>
+
+ <entry>Lazy</entry>
+
+ <entry>Fetch</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>@[One|Many]ToOne](fetch=FetchType.LAZY)</entry>
+
+ <entry>@LazyToOne(PROXY)</entry>
+
+ <entry>@Fetch(SELECT)</entry>
+ </row>
+
+ <row>
+ <entry>@[One|Many]ToOne](fetch=FetchType.EAGER)</entry>
+
+ <entry>@LazyToOne(FALSE)</entry>
+
+ <entry>@Fetch(JOIN)</entry>
+ </row>
+
+ <row>
+ <entry>@ManyTo[One|Many](fetch=FetchType.LAZY)</entry>
+
+ <entry>@LazyCollection(TRUE)</entry>
+
+ <entry>@Fetch(SELECT)</entry>
+ </row>
+
+ <row>
+ <entry>@ManyTo[One|Many](fetch=FetchType.EAGER)</entry>
+
+ <entry>@LazyCollection(FALSE)</entry>
+
+ <entry>@Fetch(JOIN)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect3>
+
+
+ </sect2>
+
+ <sect2 id="entity-hibspec-collection" revision="2">
+ <title>å
³äºéåç±»åç注解</title>
+
+ <sect3>
+ <title>åæ°æ³¨è§£</title>
+
+ <para>以ä¸æ¯å¯è½ç设置æ¹å¼<itemizedlist>
+ <listitem>
+ ç¨@BatchSizebatch设置éåçbatch大å°
+ </listitem>
+
+ <listitem>
+ ç¨@Where注解设置Whereåå¥
+ </listitem>
+
+ <listitem>
+ ç¨æ³¨è§£@Checkæ¥è®¾ç½®checkåå¥
+ </listitem>
+
+ <listitem>
+ ç¨æ³¨è§£@OrderByæ¥è®¾ç½®SQLçorder byåå¥
+ </listitem>
+
+ <listitem>
+ å©ç¨@OnDelete(action=OnDeleteAction.CASCADE) 注解设置级è¿å é¤çç¥
+ </listitem>
+ </itemizedlist></para>
+
+ <para>ä½ ä¹å¯ä»¥å©ç¨<literal>@Sort</literal>注解å®ä¹ä¸ä¸ªæåºæ¯è¾å¨(sort comparator),
+ 表æå¸æçæ¯è¾å¨ç±»å,æ åºãèªç¶é¡ºåºæèªå®ä¹æåº,ä¸è
æ©ä¸.è¥ä½ æ³ç¨ä½ èªå·±å®ç°çcomparator,
+ ä½ è¿éè¦å©ç¨<literal>comparator</literal>å±æ§(attribute)ææå®ç°ç±».</para>
+
+ <programlisting> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ @Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
+ @Where(clause="1=1")
+ @OnDelete(action=OnDeleteAction.CASCADE)
+ public SortedSet<Ticket> getTickets() {
+ return tickets;
+ }</programlisting>
+
+ <para>å
³äºè¿äºæ³¨è§£æ´è¯¦ç»çä¿¡æ¯,请åé
æ¤åçæè¿°.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>æ´å¤çéåç±»å</title>
+
+ <para>æ¯EJB3æ´èä¸ç¹çæ¯,Hibernate Annotationsæ¯æçæ£ç
+ <classname>List</classname>å<classname>Array</classname>.
+ æ å°éåçæ¹å¼å以åå®å
¨ä¸æ ·,åªä¸è¿è¦æ°å¢<literal>@IndexColumn</literal>注解.
+ 该注解å
è®¸ä½ ææåæ¾ç´¢å¼å¼çå段.ä½ è¿å¯ä»¥å®ä¹ä»£è¡¨æ°æ®åºä¸é¦ä¸ªå
ç´ çç´¢å¼å¼(亦称为索å¼åºæ°).
+ 常è§åå¼ä¸º<literal>0</literal>æ<literal>1</literal>.</para>
+
+ <programlisting>@OneToMany(cascade = CascadeType.ALL)
+ at IndexColumn(name = "drawer_position", base=1)
+public List<Drawer> getDrawers() {
+ return drawers;
+}</programlisting>
+
+ <note>
+ <para>åå¦ä½ å¿äºè®¾ç½®<literal>@IndexColumn</literal>,
+ Hibernateä¼éç¨å
(bag)è¯ä¹(è¯æ³¨ï¼å³å
许éå¤å
ç´ çæ åºéå).</para>
+ </note>
+
+ <para>Hibernate注解æ¯ætrue Mapæ å°,
+ å¦æ没æ设置<literal>@javax.persistence.MapKey</literal>,
+ hibernateå°keyå
ç´ æåµå
¥å¼å¯¹è±¡ç´æ¥æ å°å°ä»ä»¬æå±çå.
+ è¦è¦åé»è®¤çå,å¯ä»¥ä½¿ç¨ä»¥ä¸æ³¨è§£:
+ <literal>@org.hibernate.annotations.MapKey</literal>éç¨çkey为åºæ¬ç±»åæè
åµå
¥å¼å¯¹è±¡,
+ <literal>@org.hibernate.annotations.MapKey</literal>éç¨çkey为å®ä½.
+ </para>
+
+ <para>Hibernate Annotationsè¿æ¯ææ ¸å¿ç±»åéå(Integer, String, Enums, ......)ã
+ å¯å
åµå¯¹è±¡çéå,çè³åºæ¬ç±»åæ°ç».è¿å°±æ¯æè°çå
ç´ éå.</para>
+
+ <para>å
ç´ éåå¯ç¨@CollectionOfElementsæ¥æ³¨è§£(ä½ä¸º@OneToManyçæ¿ä»£).
+ 为äºå®ä¹éå表(è¯æ³¨ï¼å³åæ¾éåå
ç´ ç表,ä¸ä¸é¢æå°ç主表对åº),è¦å¨å
³èå±æ§ä¸ä½¿ç¨@JoinTable注解,
+ joinColumnså®ä¹äºä»ä¹å®ä½ä¸»è¡¨ä¸éå表ä¹é´çè¿æ¥å段(inverseJoincolumnæ¯æ æçä¸å
¶å¼åºä¸ºç©º).
+ 对äºæ ¸å¿ç±»åçéåæåºæ¬ç±»åæ°ç»,ä½ å¯ä»¥å¨å
³èå±æ§ä¸ç¨<literal>@Column</literal>æ¥è¦çåæ¾å
ç´ å¼çå段çå®ä¹.
+ ä½ è¿å¯ä»¥ç¨<literal>@AttributeOverride</literal>æ¥è¦çåæ¾å¯å
åµå¯¹è±¡çå段çå®ä¹.
+ è¦è®¿é®éåå
ç´ ,éè¦å°è¯¥æ³¨è§£çnameå±æ§å¼è®¾ç½®ä¸º"element"("element"ç¨äºæ ¸å¿ç±»å,è"element.serial"
+ ç¨äºåµå
¥å¼å¯¹è±¡çserialå±æ§).è¦è®¿é®éåçindex/key,åå°è¯¥æ³¨è§£çnameå±æ§å¼è®¾ç½®ä¸º"key".
+ </para>
+
+ <programlisting>@Entity
+public class Boy {
+ private Integer id;
+ private Set<String> nickNames = new HashSet<String>();
+ private int[] favoriteNumbers;
+ private Set<Toy> favoriteToys = new HashSet<Toy>();
+ private Set<Character> characters = new HashSet<Character>();
+
+ @Id @GeneratedValue
+ public Integer getId() {
+ return id;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ public Set<String></emphasis> getNickNames() {
+ return nickNames;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ @JoinTable(
+ table=@Table(name="BoyFavoriteNumbers"),
+ joinColumns = @JoinColumn(name="BoyId")
+ )
+ @Column(name="favoriteNumber", nullable=false)</emphasis>
+ @IndexColumn(name="nbr_index")
+ public int[] getFavoriteNumbers() {
+ return favoriteNumbers;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ @AttributeOverride( name="element.serial", column=@Column(name="serial_nbr") )</emphasis>
+ public Set<Toy> getFavoriteToys() {
+ return favoriteToys;
+ }
+
+ <emphasis role="bold">@CollectionOfElements
+ public Set<Character></emphasis> getCharacters() {
+ return characters;
+ }
+ ...
+}
+
+public enum Character {
+ GENTLE,
+ NORMAL,
+ AGGRESSIVE,
+ ATTENTIVE,
+ VIOLENT,
+ CRAFTY
+}
+
+ at Embeddable
+public class Toy {
+ public String name;
+ public String serial;
+ public Boy owner;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSerial() {
+ return serial;
+ }
+
+ public void setSerial(String serial) {
+ this.serial = serial;
+ }
+
+ <emphasis role="bold">@Parent</emphasis>
+ public Boy getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Boy owner) {
+ this.owner = owner;
+ }
+
+
+ public boolean equals(Object o) {
+ if ( this == o ) return true;
+ if ( o == null || getClass() != o.getClass() ) return false;
+
+ final Toy toy = (Toy) o;
+
+ if ( !name.equals( toy.name ) ) return false;
+ if ( !serial.equals( toy.serial ) ) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = name.hashCode();
+ result = 29 * result + serial.hashCode();
+ return result;
+ }
+}</programlisting>
+
+ <para>
+ å¨åµå
¥å¼å¯¹è±¡çéåä¸,å¯ä»¥ä½¿ç¨ <literal>@Parent</literal>注解åµå
¥å¼å¯¹è±¡çæå±æ§.
+ 该å±æ§æå该åµå
¥å¼å¯¹è±¡æå±çéåå®ä½.</para>
+
+ <note>
+ <para>æ§ççHibernate Annotationsç¨<literal>@OneToMany</literal>æ¥æ è¯éåå
ç´ .
+ ç±äºè¯ä¹çç¾,æ们å¼å
¥äº<literal>@CollectionOfElements</literal>注解.
+ ç¨<literal>@OneToMany</literal>æ¥æ è¯éåå
ç´ çè¿ç§æ§ææ¹å¼ç®åå°ææ,
+ ä½æ¯ä¸æ¨è使ç¨,èä¸å¨ä»¥åçåå¸çæ¬ä¸ä¸åæ¯æè¿ç§æ¹å¼.</para>
+ </note>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>ç¼å</title>
+
+ <para>为äºä¼åæ°æ®åºè®¿é®,ä½ å¯ä»¥æ¿æ´»æè°çHibernateäºçº§ç¼å.该ç¼åæ¯å¯ä»¥ææ¯ä¸ªå®ä½åéåè¿è¡é
ç½®ç.</para>
+
+ <para><literal>@org.hibernate.annotations.Cache</literal>å®ä¹äºç¼åçç¥åç»å®çäºçº§ç¼åçèå´.
+ æ¤æ³¨è§£éç¨äºæ ¹å®ä½(éåå®ä½),è¿æéå.</para>
+
+ <programlisting>@Entity
+ at Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class Forest { ... }</programlisting>
+
+ <programlisting> @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+ @JoinColumn(name="CUST_ID")
+ @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+ public SortedSet<Ticket> getTickets() {
+ return tickets;
+ }</programlisting>
+
+ <para></para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="2 55" id="hm1" />
+
+ <area coords="3 55" id="hm2" />
+
+ <area coords="4 55" id="hm3" />
+ </areaspec>
+
+ <programlisting>@Cache(
+ CacheConcurrencyStrategy usage();
+ String region() default "";
+ String include() default "all";
+)</programlisting>
+
+ <calloutlist>
+ <callout arearefs="hm1">
+ <para>usage: ç»å®ç¼åç并åçç¥(NONE,
+ READ_ONLY, NONSTRICT_READ_WRITE, READ_WRITE, TRANSACTIONAL)</para>
+ </callout>
+
+ <callout arearefs="hm2">
+ <para>region (å¯éç)ï¼ç¼åèå´(é»è®¤ä¸ºç±»çå
¨éå®ç±»åææ¯éåçå
¨éå®è§è²å)</para>
+ </callout>
+
+ <callout arearefs="hm3">
+ <para><literal>include</literal> (å¯éç)ï¼å¼ä¸ºallæ¶å
æ¬äºææçå±æ§(proterty),
+ 为non-lazyæ¶ä»
å«é延è¿å±æ§(é»è®¤å¼ä¸ºall)</para>
+ </callout>
+ </calloutlist>
+
+ </programlistingco>
+ </sect2>
+
+ <sect2>
+ <title>è¿æ»¤å¨</title>
+
+ <para>Hibernateå
·ææ°æ®è¿æ»¤å¨çæ¦å¿µ,å¯å¨è¿è¡æåºç¨äºä¸ä¸ªç»å®çsession.è¿æ»¤å¨éè¦äºå
å®ä¹å¥½.</para>
+
+ <para><literal>@org.hibernate.annotations.FilterDef</literal> æ
+ <literal>@FilterDefs</literal> å®ä¹è¿æ»¤å¨å£°æ,为ååè¿æ»¤å¨æç¨.
+ è¿æ»¤å¨å£°æ带æä¸ä¸ªname()åä¸ä¸ªparameters()æ°ç»,<literal>@ParamDef</literal>å
å«nameåtype,
+ ä½ è¿å¯ä»¥ä¸ºç»å®ç<literal>@filterDef</literal>å®ä¹ä¸ä¸ªdefaultCondition()åæ°,
+ å½<literal>@Filter</literal>ä¸æ²¡æä»»ä½å®ä¹æ¶,å¯ä½¿ç¨è¯¥åæ°å®ä¹ç¼ºçæ¡ä»¶.
+ <literal>@FilterDef</literal> (s)å¯ä»¥å¨ç±»æå
ä¸çº§è¿è¡å®ä¹.</para>
+
+ <para>ç°å¨æ们æ¥å®ä¹åºç¨äºå®ä½æéåå è½½æ¶çSQLè¿æ»¤å¨åå¥.æ们使ç¨<literal>@Filter</literal>,并å°å
¶ç½®äºå®ä½æéåå
ç´ ä¸.</para>
+
+ <para><programlisting>@Entity
+ at FilterDef(name="minLength", parameters=@ParamDef( name="minLength", type="integer" ) )
+ at Filters( {
+ @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length"),
+ @Filter(name="minLength", condition=":minLength <= length")
+} )
+public class Forest { ... }</programlisting></para>
+ </sect2>
+
+
+ <sect2>
+ <title>æ¥è¯¢</title>
+
+ <para>ç±äºHibernateå¼å
¥äº
+ <literal>@org.hibernate.annotations.NamedQuery</literal>,
+ <literal>@org.hibernate.annotations.NamedQueries</literal>,
+ <literal>@org.hibernate.annotations.NamedNativeQuery</literal> å
+ <literal>@org.hibernate.annotations.NamedNativeQueries</literal> å½åå¼æ¥è¯¢,
+ å æ¤Hibernateå¨å½åå¼æ¥è¯¢ä¸æ¯EBJ3è§èä¸æå®ä¹çå½åå¼æ¥è¯¢æä¾äºæ´å¤çç¹æ§.
+ ä»ä»¬å¨æ åçä¸æ·»å äºå¯ä½ä¸ºæ¿ä»£åçä¸äºå±æ§(attributes):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>flushMode: å®ä¹æ¥è¯¢çå·æ°æ¨¡å¼(Always, Auto, CommitæManual)</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheable: æ¥è¯¢è¯¥ä¸è¯¥è¢«ç¼å</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheRegion: è¥æ¥è¯¢å·²è¢«ç¼åæ¶æç¨ç¼åçèå´</para>
+ </listitem>
+
+ <listitem>
+ <para>fetchSize: é对该æ¥è¯¢çJDBC statementå次è·åè®°å½çæ°ç®</para>
+ </listitem>
+
+ <listitem>
+ <para>timeout: æ¥è¯¢è¶
æ¶</para>
+ </listitem>
+
+ <listitem>
+ <para>callable: ä»
ç¨äºæ¬å°åæ¥è¯¢(native query),对äºåå¨è¿ç¨è®¾ä¸ºtrue</para>
+ </listitem>
+
+ <listitem>
+ <para>comment: ä¸æ¦æ¿æ´»æ³¨éåè½,æ们ä¼å¨åæ°æ®åºäº¤éæ¥è¯¢è¯·æ±æ¶çå°æ³¨é</para>
+ </listitem>
+
+ <listitem>
+ <para>cacheMode: ç¼å交æ¤æ¨¡å¼(get, ignore,normal,ærefresh)</para>
+ </listitem>
+
+ <listitem>
+ <para>readOnly: ä¸ç®¡æ¯å¦ä»æ¥è¯¢è·åå
ç´ é½æ¯å¨åªè¯»æ¨¡å¼ä¸</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>注æ,EJB3å·²å
¬å¼çæç»èæ¡ä¸å¼å
¥äº<literal>@QueryHint</literal>çæ¦å¿µ,
+ è¿å¯è½æ¯å®ä¹hintsæ´å¥½çæ¹æ³.</para>
+ </sect2>
+ </sect1>
+
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/lucene.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/lucene.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/lucene.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="lucene">
+ <title id="lucene">Hibernateä¸Luceneéæ</title>
+
+ <para>Luceneæ¯ä¸ä¸ªé«æ§è½çjavaæç´¢å¼æåºï¼å¯ä»¥ä» Apache软件åºéç»ç»è·åã
+ Hibernate Annotationså
æ¬ä¸ä¸ªæ³¨è§£å
ï¼å®å
许æä»»ä½å模å对象æ 记为å¯ç´¢å¼çï¼
+ 并ä¸å¯¹ä»»ä½ç»ç±Hibernateè¿è¡æç»åçå®ä¾ï¼Hibernate é½ä¼ä¸ºä¹ç»´æ¤ä¸ä¸ªå¯¹åºçLuceneç´¢å¼ã</para>
+
+ <sect1 id="lucene-intro">
+ <title>使ç¨Lucene为å®ä½å»ºç«ç´¢å¼</title>
+
+ <sect2>
+ <title>注解é¢å模å</title>
+
+ <para>é¦å
ï¼å¿
é¡»å°ä¸ä¸ªæä¹
类声æ为
+ <literal>@Indexed</literal>:</para>
+
+ <programlisting>@Entity
+ at Indexed(index="indexes/essays")
+public class Essay {
+ ...
+}</programlisting>
+
+ <para>å±æ§<literal>index</literal>æ¯åè¯Hibernateï¼ Luceneç´¢å¼ä¿¡æ¯æå¨çä½ç½®ï¼ä½ æ件系ç»çæ个ç®å½ï¼ã
+ å¦æä½ æ³ä¸ºææçLuceneç´¢å¼å®ä¹ä¸ä¸ªæ ¹ç®å½ï¼ä½ å¯ä»¥å¨é
ç½®æ件ä¸ç¨å±æ§<literal>hibernate.lucene.index_dir</literal>è¿è¡é
ç½®ã
+ </para>
+
+ <para>Luceneç´¢å¼å
æ¬åç§å段ï¼<emphasis>keyword</emphasis> å段ï¼<emphasis>text</emphasis>
+ å段ï¼<emphasis>unstored</emphasis>å段å<emphasis>unindexed</emphasis>å段ã
+ Hibernate注解æä¾äºå°å®ä½å±æ§æ 记为åä¸ç§è¢«ç´¢å¼å段ç注解ã</para>
+
+ <programlisting>@Entity
+ at Indexed(index="indexes/essays")
+public class Essay {
+ ...
+
+ @Id
+ @Keyword(id=true)
+ public Long getId() { return id; }
+
+ @Text(name="Abstract")
+ public String getSummary() { return summary; }
+
+ @Lob
+ @Unstored
+ public String getText() { return text; }
+
+}</programlisting>
+
+ <para>è¿äºæ³¨è§£å®ä¹äºä¸ä¸ªå¸¦æä¸ä¸ªå段çç´¢å¼:
+ <literal>Id</literal>, <literal>Abstract</literal> å
+ <literal>Text</literal>.</para>
+
+ <para>注æ:ä½ å¿
é¡»å¨ä½ çå®ä½ç±»çæ å¿å±æ§ä¸æå®
+ <literal>@Keyword(id=true)</literal> .</para>
+
+ <para>ç¨äºå¯¹å
ç´ å»ºç«ç´¢å¼çåæå¨ç±»æ¯å¯ä»¥éè¿<literal>hibernate.lucene.analyzer</literal>å±æ§è¿è¡é
ç½®çã
+ å¦æ没æå®ä¹ï¼åæ <classname>org.apache.lucene.analysis.standard.StandardAnalyzer</classname>ä½ä¸ºç¼ºçã</para>
+
+ </sect2>
+
+ <sect2>
+ <title>å¯ç¨èªå¨ç´¢å¼</title>
+
+ <para>æ们æ¿æ´»ç¨äºå¸§å¬ä¸ç±»Hibernateäºä»¶ç <literal>LuceneEventListener</literal>ï¼
+ è¿äºäºä»¶ä¼å¨åæ´è¢«æ交è³æ°æ®åºå产çã</para>
+
+ <programlisting><hibernate-configuration>
+ ...
+ <event type="post-commit-update"
+ <listener
+ class="org.hibernate.lucene.event.LuceneEventListener"/>
+ </event>
+ <event type="post-commit-insert"
+ <listener
+ class="org.hibernate.lucene.event.LuceneEventListener"/>
+ </event>
+ <event type="post-commit-delete"
+ <listener
+ class="org.hibernate.lucene.event.LuceneEventListener"/>
+ </event>
+</hibernate-configuration></programlisting>
+ </sect2>
+ </sect1>
+</chapter>
+
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/setup.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/setup.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/setup.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter>
+ <title id="setup" revision="1">å建ä¸ä¸ªæ³¨è§£é¡¹ç®</title>
+
+ <section id="setup-requirements">
+ <title>ç³»ç»éæ±</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>é¦å
ä»Hibernateå®æ¹ç½ç«ä¸è½½å¹¶è§£åHibernate Annotationsçåå¸å
ã</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>è¿ä¸ªçæ¬(é¢è§ç)è¦æ±ä½¿ç¨Hibernate 3.2.0.CR2ææ´é«çæ¬ã请ä¸è¦åèçæ¬çHibernate 3.xæ··åèµ·æ¥ä½¿ç¨ã</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>è¿ä¸ªçæ¬å¨Hibernate core 3.2.0.CR2çåºç¡ä¸å·¥ä½è¯å¥½ã</para>
+ </listitem>
+
+ <listitem>
+ <para>é¦å
ç¡®å®ä½ å·²ç»å®è£
äºJDK 5.0ãå½ç¶å°±ç®ä½¿ç¨ä½çæ¬çJDKï¼
+ Xdocletä¹å¯ä»¥æä¾ï¼åºäºæ³¨è§£çï¼å
æ°æ®æ带æ¥çé¨ååè½ã
+ ä¸è¿è¯·æ³¨ææ¬ææ¡£åªæè¿°è·JDK5.0注解æå
³çå
容ï¼å
³äºXdoclet请åèç¸å
³ææ¡£ã</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section id="setup-configuration">
+ <title>ç³»ç»é
ç½®</title>
+
+ <para>é¦å
å°±æ¯è®¾ç½®classpath(å½ç¶æ¯å¨IDEä¸å建äºä¸ä¸ªæ°é¡¹ç®ä¹å)ã <itemizedlist>
+ <listitem>
+ <para>å°Hibernate3æ ¸å¿æ件以åå
¶ä¾èµç第ä¸æ¹åºæ件(请åèlib/README.txtæ件)å å
¥å°ä½ çclasspathéé¢ã</para>
+ </listitem>
+
+ <listitem>
+ <para>å°<filename>hibernate-annotations.jar</filename>
+ å<filename>lib/ejb3-persistence.jar</filename>å å
¥å°ä½ çclasspathéé¢ã</para>
+ </listitem>
+
+ <listitem>
+ <para>å¦æè¦ä½¿ç¨ <xref linkend="lucene" />ï¼è¿éè¦å°luceneçjaræ件å å
¥ä½ çclasspathã</para>
+ </listitem>
+ </itemizedlist></para>
+
+ <para>æ们æ¨èå¨ä¸ä¸ªå
è£
å¨(wrapper)ç±»<classname>HibernateUtil</classname>
+ çéæåå§å代ç åä¸å¯å¨Hibernateãæè®¸ä½ å¨Hibernateææ¡£çå
¶ä»å¾å¤å°æ¹çå°è¿è¿ä¸ªç±»ï¼
+ ä½æ¯è¦å¨ä½ ç项ç®ä¸ä½¿ç¨æ³¨è§£ï¼è¿éè¦å¯¹è¿ä¸ªè¾
å©(helper)ç±»è¿è¡æ©å±ãæ©å±å¦ä¸:
+ <programlisting>package hello;
+
+import org.hibernate.*;
+import org.hibernate.cfg.*;
+import test.*;
+import test.animals.Dog;
+
+public class HibernateUtil {
+
+private static final SessionFactory sessionFactory;
+
+ static {
+ try {
+
+ sessionFactory = new <emphasis role="bold">AnnotationConfiguration()</emphasis>.buildSessionFactory();
+ } catch (Throwable ex) {
+ // Log exception!
+ throw new ExceptionInInitializerError(ex);
+ }
+ }
+
+ public static Session getSession()
+ throws HibernateException {
+ return sessionFactory.openSession();
+ }
+}
+ </programlisting></para>
+
+ <para>è¿éæ¯è¾æææçæ¯ä½¿ç¨å°äº<classname>AnnotationConfiguration</classname>ç±»ã
+ å¨XMLé
ç½®æ件(é常æ¯<filename>hibernate.cfg.xml</filename>)ä¸åå®ä¹äºå
åç»è¿æ³¨è§£çç±»ãä¸é¢çxmlååé¢ç声æçä»·:
+ </para>
+
+ <programlisting><!DOCTYPE hibernate-configuration PUBLIC
+ "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+ <hibernate-configuration>
+ <session-factory>
+ <emphasis role="bold"><mapping package="test.animals"/>
+ <mapping class="test.Flight"/>
+ <mapping class="test.Sky"/>
+ <mapping class="test.Person"/>
+ <mapping class="test.animals.Dog"/></emphasis>
+<emphasis role="bold"> <mapping resource="test/animals/orm.xml"/></emphasis>
+ </session-factory>
+ </hibernate-configuration>
+ </programlisting>
+
+ <para>注æç°å¨ä½ å¯ä»¥æ··å使ç¨hbm.xmlå注解ãèµæºå
ç´ (resource element)å¯ä»¥æ¯hbmæ件ä¹å¯ä»¥æ¯EJB3 XMLåå¸æ述符ï¼æ¤å·®å«å¯¹äºé
ç½®è¿ç¨æ¯éæçã</para>
+
+ <para>é¤äºä¸é¢çæ¹å¼,ä½ è¿å¯ä»¥éè¿ç¼ç¨çæ¹å¼å®ä¹å
æ¬æ³¨è§£çç±»åå
</para>
+
+ <programlisting> sessionFactory = new <emphasis role="bold">AnnotationConfiguration()
+ .addPackage("test.animals") //the fully qualified package name
+ .addAnnotatedClass(Flight.class)
+ .addAnnotatedClass(Sky.class)
+ .addAnnotatedClass(Person.class)
+ .addAnnotatedClass(Dog.class)</emphasis>
+ .buildSessionFactory();</programlisting>
+
+ <para>ä½ ä¹å¯ä»¥ä½¿ç¨Hibernate Entity Manageræ¥å®æ以ä¸åè½ãHibernate Entity Manageræèªå·±çä¸å¥é
ç½®æºå¶ï¼è¯¦æ
请åèç¸å
³ææ¡£ã</para>
+
+ <para>é¤äºå¯å¨æ¹å¼åé
ç½®æ件æææ¹åä¹å¤ï¼ç»å注解æ¥ä½¿ç¨Hibernate APIå以å没æä»ä¹åºå«ï¼
+ å¨å
¶ä»æ¹é¢ä½ è¿æ¯å¯ä»¥ç»§ç»ä¿æ以åçä¹ æ¯åå好(<filename>hibernate.properties</filename>ï¼
+ <filename>hibernate.cfg.xml</filename>ï¼ programmatic APIsçç)ã
+ çè³å¯¹äºåä¸ä¸ª<classname>SessionFactory</classname>ï¼ä½ é½å¯ä»¥æ··å带注解çæä¹
类以åä¼ ç»çbm.cfg.xml声ææ¹å¼ã
+ ç¶èä½ ä¸è½å¤æ¬¡å£°æåä¸ä¸ªç±»(è¦ä¹éè¿æ³¨è§£è¦ä¹éè¿hbm.xmlé
ç½®æ件)ï¼
+ èä¸å¨ä¸ä¸ªæ å°å®ä½ç类继æ¿å±æ¬¡ä¸ï¼è¿ä¸¤ä¸ªé
ç½®çç¥ä¸è½åæ¶ä½¿ç¨.
+ </para>
+
+ <para>为äºç®åä»hbmæ件å°æ³¨è§£çè¿ç§»è¿ç¨ï¼
+ é
ç½®æºå¶å°èªå¨æ£æµå¨æ³¨è§£åhbmæ件ä¸éå¤çæ å°ã
+ é»è®¤æ
åµä¸hbmæ件ä¸ç声ææ¯ç±»ä¸ç注解å
æ°æ®å
·ææ´é«çä¼å
级ã
+ è¿ç§ä¼å
级ç设å®æ¯ä»¥ç±»ä¸ºåä½çã
+ ä½ ä¹å¯ä»¥éè¿<literal>hibernate.mapping.precedence</literal>ä¿®æ¹è¿ç§ä¼å
级ã
+ é»è®¤çå¼æ¯<literal>hbm, class</literal>ï¼
+ å¦ææ¹ä¸º<literal>class,hbm</literal>ï¼å½åçå²çªçæ¶åï¼ç±»ä¸ç注解å°æ¯hbmæ件å
·ææ´é«çä¼å
级ã
+ </para>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/validator.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/validator.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/validator.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,464 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="validator">
+ <title>Hibernateéªè¯å¨</title>
+
+ <para>注解æ¯ä¸ç§ä¸ºé¢å模å(domain model)æå®ä¸å约æçç®æ´èå¹½é
çæ¹æ³ãä¾å¦ï¼ä½ è½
+ 表示ä¸ä¸ªå±æ§æ°¸è¿ä¸ä¸ºnullï¼ä¸ä¸ªå¸æ·ä½é¢ä¸å®æ¯æ£å¼ï¼ççãè¿äºå模å约æéè¿ä¸ºbeanä¸çå±æ§æ·»å
+ 注解æ¥å 以声æãéåä¸ä¸ªéªè¯å¨(validator)ä¼è¯»å并æ£æ¥è¿äºçº¦æãéªè¯æºå¶å¯ä»¥æ§è¡äºåºç¨ç¨åºä¸ç
+ ä¸åå±ï¼è¡¨ç°å±ãæ°æ®è®¿é®å±ï¼ï¼èä¸å¿
å¤è¿°ä»»ä½ï¼åè¿°ï¼è¿äºè§åãHibernateéªè¯å¨æ£ä¸ºè¿ä¸ç®çè设计çã</para>
+
+ <para>Hibernateéªè¯å¨å·¥ä½å¨ä¸¤ä¸ªå±æ¬¡ä¸ã第ä¸å±ï¼å®è½æ£æ¥å
åä¸ä¸ä¸ªç±»çå®ä¾æ¯å¦è¿å约æã
+ 第äºå±ï¼å®è½å°çº¦æåºç¨äºHibernateå
模åä¸ï¼å¹¶å°å®ä»¬èå
¥çæçæ°æ®åºschemaä¸ã</para>
+
+ <para>æ¯ä¸ªçº¦æ注解ï¼constraint annotationï¼åä¸ä¸ªéªè¯å¨å®ç°å
³èï¼è¯¥éªè¯å¨è´è´£æ£æ¥ä½äºå®ä½å®ä¾ä¸ç约æã
+ ä¸ä¸ªéªè¯å¨ä¹è½(å¯éå°)å°çº¦æåºç¨äºHibernateå
模åä¸ï¼è®©Hibernateçæ表示è¿ä¸çº¦æçDDLã使ç¨åéçäºä»¶çå¬å¨ï¼ä½ è½
+ 让Hibernateå¨æå
¥åæ´æ°æ¶æ§è¡æ£æ¥æä½ãHibernateéªè¯å¨å¹¶ä¸å±éäºåHibernateä¸èµ·ä½¿ç¨ã
+ ä½ è½å¨ä½ åºç¨ç¨åºçä»»ä½å°æ¹æ¹ä¾¿å°ä½¿ç¨å®ã</para>
+
+ <para>å¨è¿è¡æ¶æ£æ¥å®ä¾æ¶ï¼Hibernateéªè¯å¨è¿åè¿å约æçä¿¡æ¯ï¼
+ è¿äºä¿¡æ¯ä»¥ä¸ä¸ª<classname>InvalidValue</classname>æ°ç»çå½¢å¼è¿åã
+ é¤äºä¼å¤å
¶ä»ä¿¡æ¯å¤ï¼<classname>InvalidValue</classname>å
å«äºä¸ä¸ªé误æè¿°æ¶
+ æ¯ï¼è¯¥ä¿¡æ¯å¯ä»¥å
åµä¸æ³¨è§£ç¸æç»çåæ°å¼ï¼ä¾å¦é¿åº¦éå¶ï¼ï¼ä»¥åè½è¢«æåè³ResourceBundleçæ¶æ¯å串ã</para>
+
+ <sect1 id="validator-constraints">
+ <title>约æ</title>
+
+ <sect2>
+ <title>ä»ä¹æ¯çº¦æï¼</title>
+
+ <para>约æéè¿æ³¨è§£è¡¨ç¤ºãä¸ä¸ªçº¦æé常æä¸äºç¨æ¥åæ°å约æéå¶çå±æ§ã约æåºç¨äºå¸¦æ³¨è§£çå
ç´ ã</para>
+ </sect2>
+
+ <sect2>
+ <title>å
建约æ</title>
+
+ <para>Hibernateéªè¯å¨æäºå
建约æï¼è¿äºçº¦æè¦çäºå¤§å¤æ°çåºæ¬æ°æ®æ£æ¥ãéåæ们ä¼çå°ï¼
+ ä½ ä¸å¿
åå¶äºè¿äºå
置约æï¼å 为ä¸åéå
å°±å¯ä»¥ååºä½ èªå·±ç约æã</para>
+
+ <table>
+ <title>å
建约æ</title>
+
+ <tgroup cols="4">
+ <colspec align="center" />
+
+ <thead>
+ <row>
+ <entry>注解</entry>
+
+ <entry>åºç¨ç®æ </entry>
+
+ <entry>è¿è¡æ¶æ£æ¥</entry>
+
+ <entry>Hibernateå
æ°æ®å½±å</entry>
+ </row>
+ </thead>
+
+ <tbody>
+
+ <row>
+ <entry>@Length(min=, max=)</entry>
+
+ <entry>å±æ§(String)</entry>
+
+ <entry>æ£æ¥å符串é¿åº¦æ¯å¦ç¬¦åèå´</entry>
+
+ <entry>åé¿åº¦ä¼è¢«è®¾å°æ大å¼</entry>
+ </row>
+
+ <row>
+ <entry>@Max(value=)</entry>
+
+ <entry>å±æ§ (以numericæè
stringç±»åæ¥è¡¨ç¤ºä¸ä¸ªæ°å)</entry>
+
+ <entry>æ£æ¥å¼æ¯å¦å°äºæçäºæ大å¼</entry>
+
+ <entry>对åå¢å ä¸ä¸ªæ£æ¥çº¦æ</entry>
+ </row>
+
+ <row>
+ <entry>@Min(value=)</entry>
+
+ <entry>å±æ§(以numericæè
stringç±»åæ¥è¡¨ç¤ºä¸ä¸ªæ°å)</entry>
+
+ <entry>æ£æ¥å¼æ¯å¦å¤§äºæçäºæå°å¼</entry>
+
+ <entry>对åå¢å ä¸ä¸ªæ£æ¥çº¦æ</entry>
+ </row>
+
+ <row>
+ <entry>@NotNull</entry>
+
+ <entry>å±æ§</entry>
+
+ <entry>æ£æ¥å¼æ¯å¦é空(not null)</entry>
+
+ <entry>åä¸ä¸ºç©º</entry>
+ </row>
+
+ <row>
+ <entry>@Past</entry>
+
+ <entry>å±æ§(dateæcalendar)</entry>
+
+ <entry>æ£æ¥æ¥ææ¯å¦æ¯è¿å»æ¶</entry>
+
+ <entry>对åå¢å ä¸ä¸ªæ£æ¥çº¦æ</entry>
+ </row>
+
+ <row>
+ <entry>@Future</entry>
+
+ <entry>å±æ§ (date æ calendar)</entry>
+
+ <entry>æ£æ¥æ¥ææ¯å¦æ¯å°æ¥æ¶</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ <row>
+ <entry>@Pattern(regex="regexp", flag=)</entry>
+
+ <entry>å±æ§ (string)</entry>
+
+ <entry>æ£æ¥å±æ§æ¯å¦ä¸ç»å®å¹é
æ å¿çæ£å表达å¼ç¸å¹é
(è§<classname>
+ java.util.regex.Pattern </classname>)</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ <row>
+ <entry>@Range(min=, max=)</entry>
+
+ <entry>å±æ§(以numericæè
stringç±»åæ¥è¡¨ç¤ºä¸ä¸ªæ°å)</entry>
+
+ <entry>æ£æ¥å¼æ¯å¦å¨æå°åæ大å¼ä¹é´(å
æ¬ä¸´çå¼)</entry>
+
+ <entry>对åå¢å ä¸ä¸ªæ£æ¥çº¦æ</entry>
+ </row>
+
+ <row>
+ <entry>@Size(min=, max=)</entry>
+
+ <entry>å±æ§ (array, collection, map)</entry>
+
+ <entry>æ£æ¥å
ç´ å¤§å°æ¯å¦å¨æå°åæ大å¼ä¹é´(å
æ¬ä¸´çå¼)</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ <row>
+ <entry>@AssertFalse</entry>
+
+ <entry>å±æ§</entry>
+
+ <entry>æ£æ¥æ¹æ³çæ¼ç®ç»ææ¯å¦ä¸ºfalse(对以代ç æ¹å¼èä¸æ¯æ³¨è§£è¡¨ç¤ºç约æå¾æç¨)</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ <row>
+ <entry>@AssertTrue</entry>
+
+ <entry>å±æ§</entry>
+
+ <entry>æ£æ¥æ¹æ³çæ¼ç®ç»ææ¯å¦ä¸ºtrue(对以代ç æ¹å¼èä¸æ¯æ³¨è§£è¡¨ç¤ºç约æå¾æç¨)</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ <row>
+ <entry>@Valid</entry>
+
+ <entry>å±æ§ (object)</entry>
+
+ <entry>对å
³è对象éå½çè¿è¡éªè¯ãå¦æ对象æ¯éåææ°ç»ï¼å°±éå½å°éªè¯å
¶å
ç´ ãå¦æ对象æ¯Mapï¼åéå½éªè¯å
¶å¼å
ç´ ã</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ <row>
+ <entry>@Email</entry>
+
+ <entry>å±æ§ï¼Stringï¼</entry>
+
+ <entry>æ£æ¥å符串æ¯å¦ç¬¦åææçemailå°åè§èã</entry>
+
+ <entry>æ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="validator-constraints-error" xreflabel="Error messages">
+ <title id="validator-constraints-error">é误信æ¯</title>
+
+ <para>Hibernateéªè¯å¨æä¾äºä¸ç»é»è®¤çé误æ示信æ¯ï¼å®ä»¬è¢«ç¿»è¯æå¤ç§è¯è¨(å¦æä½ çè¯è¨ä¸å¨å
¶ä¸ï¼è¯·ç»
+ æ们å¯ä¸ä¸ªè¡¥ä¸)ãä½ å¯ä»¥å¨<filename>org.hibernate.validator.resources.DefaultValidatorMessages.properties</filename>
+ ä¹å¤å建<filename>ValidatorMessages.properties</filename>æ<filename>ValidatorMessages_loc.properties</filename>
+ æ件并æ¹åç¸åºçé®å¼ï¼ç±æ¤è¦çé£äºï¼é»è®¤ï¼ä¿¡æ¯ãä½ çè³å¯ä»¥å¨åèªå·±çéªè¯å¨
+ 注解æ¶æ·»å ä½ èªå·±çéå æ¶æ¯éã</para>
+
+ <para>æè
ä½ å¯ä»¥ä»¥ç¼ç¨æ¹å¼æ£æ¥beançéªè¯è§å并æä¾ç¸åºç<classname>ResourceBundle</classname>ã</para>
+ </sect2>
+
+ <sect2>
+ <title>ç¼åä½ èªå·±ç约æ</title>
+
+ <para>æ©å±å
建约æéæ¯æå
¶æ¹ä¾¿çãä»»ä½çº¦æé½å
æ¬ä¸¤é¨åï¼çº¦æ<emphasis>æ述符</emphasis>(注解)
+ å约æ<emphasis>éªè¯å¨</emphasis>(å®ç°ç±»)ãä¸é¢æ¯ä¸ä¸ªç®åçç¨æ·å®ä¹æ述符ï¼</para>
+
+ <programlisting>@ValidatorClass(CapitalizedValidator.class)
+ at Target(METHOD)
+ at Retention(RUNTIME)
+ at Documented
+public @interface Capitalized {
+ CapitalizeType type() default Capitalize.FIRST;
+ String message() default "has incorrect capitalization";
+}</programlisting>
+
+ <para><literal>type</literal>åæ°æè¿°å±æ§åºè¯¥å¦ä½è¢«å¤§åãè¿æ¯ä¸ä¸ªå®å
¨ä¾èµäºæ³¨è§£ä¸å¡(é»è¾)çç¨æ·
+ åæ°ã</para>
+
+ <para><literal>message</literal>æ¯ç¨äºæ述约æè¿è§çé»è®¤å符串ï¼å®æ¯å¼ºå¶è¦æ±çãä½ å¯ä»¥éå硬ç¼ç çæ¹å¼ï¼
+ æè
éè¿Java ResourceBundleæºå¶å°messageçé¨å/å
¨é¨å
容æåè³å¤é¨æ件ãä¸æ¦åç°messageä¸{parameter}å符串ï¼
+ å°±ä¼å¨{parameter}è¿ä¸ªä½ç½®æ³¨å
¥ç¸åºçåæ°å¼(å¨æ们çä¾åéCapitalization is not {type}ä¼çæ Capitalization is not FIRST)ï¼
+ å¯ä»¥å°message对åºçæ´ä¸ªå符串æåè³å¤é¨æ件ValidatorMessages.propertiesï¼è¿ä¹æ¯ä¸ç§è¯å¥½å®è·µã
+ è§<xref linkend="validator-constraints-error" />ã</para>
+
+ <programlisting>@ValidatorClass(CapitalizedValidator.class)
+ at Target(METHOD)
+ at Retention(RUNTIME)
+ at Documented
+public @interface Capitalized {
+ CapitalizeType type() default Capitalize.FIRST;
+ String message() default "{validator.capitalized}";
+}
+
+...
+#in ValidatorMessages.properties
+validator.capitalized=<literal>Capitalization is not {type}</literal></programlisting>
+
+ <para>å¦ä½ æè§{}符å·æ¯éå½çã</para>
+
+ <para>为äºå°ä¸ä¸ªæ述符è¿æ¥å°å®çéªè¯å¨å®ç°ï¼æ们使ç¨<literal>@ValidatorClass</literal>
+ å
注解ãéªè¯å¨ç±»åæ°å¿
é¡»æå®ä¸ä¸ªå®ç°äº<literal>Validator<ConstraintAnnotation></literal>
+ çç±»ã</para>
+
+ <para>æ们ç°å¨è¦å®ç°éªè¯å¨(ä¹å°±æ¯å®ç°è§åæ£æ¥)ãä¸ä¸ªéªè¯å¨å®ç°è½æ£æ¥ä¸ä¸ªå±æ§çå¼
+ (å®ç°<literal>PropertyConstraint</literal>)ï¼å¹¶ä¸/æè
å¯ä»¥ä¿®æ¹hibernateæ å°å
æ°æ®
+ (å®ç°<literal>PersistentClassConstraint</literal>)ï¼ç±æ¤è¡¨ç¤ºæ°æ®åºçº§ç约æã</para>
+
+ <programlisting>public class CapitalizedValidator
+ implements Validator<Capitalized>, PropertyConstraint {
+ private CapitalizeType type;
+
+ //part of the Validator<Annotation> contract,
+ //allows to get and use the annotation values
+ public void initialize(Capitalized parameters) {
+ type = parameters.type();
+ }
+
+ //part of the property constraint contract
+ public boolean isValid(Object value) {
+ if (value==null) return true;
+ if ( !(value instanceof String) ) return false;
+ String string = (String) value;
+ if (type == CapitalizeType.ALL) {
+ return string.equals( string.toUpperCase() );
+ }
+ else {
+ String first = string.substring(0,1);
+ return first.equals( first.toUpperCase();
+ }
+ }
+}</programlisting>
+
+ <para>å¦æè¿å约æï¼<literal>isValid()</literal>æ¹æ³å°è¿åfalseãæ´å¤ä¾å请åèå
建éªè¯å¨å®ç°ã</para>
+
+ <para>è³æ¤æ们åªçå°å±æ§çº§çéªè¯ï¼ä½ è¿å¯ä»¥åä¸ä¸ªBean级å«çéªè¯æ³¨è§£ãBeanèªèº«ä¼è¢«ä¼ éç»éªè¯å¨ï¼
+ èä¸æ¯beançå±æ§å®ä¾ãåªè¦å¯¹beanèªèº«è¿è¡æ³¨è§£å³å¯æ¿æ´»éªè¯æ£æ¥ãå¨åå
æµè¯å¥ä»¶ä¸è¿å¯ä»¥æ¾å°ä¸ä¸ªå°ä¾åã</para>
+ </sect2>
+
+ <sect2>
+ <title>æ³¨è§£ä½ çé¢å模å</title>
+
+ <para>æ¢ç¶ä½ ç°å¨å·²ç»çæ注解äºï¼é£ä¹å¯¹è¯æ³ä¹åºè¯¥å¾æ¸
æ¥äºã</para>
+
+ <programlisting>public class Address {
+ private String line1;
+ private String line2;
+ private String zip;
+ private String state;
+ private String country;
+ private long id;
+
+ // a not null string of 20 characters maximum
+ @Length(max=20)
+ @NotNull
+ public String getCountry() {
+ return country;
+ }
+
+ // a non null string
+ @NotNull
+ public String getLine1() {
+ return line1;
+ }
+
+ //no constraint
+ public String getLine2() {
+ return line2;
+ }
+
+ // a not null string of 3 characters maximum
+ @Length(max=3) @NotNull
+ public String getState() {
+ return state;
+ }
+
+ // a not null numeric string of 5 characters maximum
+ // if the string is longer, the message will
+ //be searched in the resource bundle at key 'long'
+ @Length(max=5, message="{long}")
+ @Pattern(regex="[0-9]+")
+ @NotNull
+ public String getZip() {
+ return zip;
+ }
+
+ // should always be true
+ @AssertTrue
+ public boolean isValid() {
+ return true;
+ }
+
+ // a numeric between 1 and 2000
+ @Id @Min(1)
+ @Range(max=2000)
+ public long getId() {
+ return id;
+ }
+}</programlisting>
+
+ <para>ä¸é¢çä¾ååªå±ç¤ºäºå
Œ
±å±æ§éªè¯ï¼ä½ è¿å¯ä»¥å¯¹ä»»ä½å¯è§åº¦çå段(field)è¿è¡æ³¨è§£ã</para>
+
+ <programlisting>@MyBeanConstraint(max=45)
+public class Dog {
+ @AssertTrue private boolean isMale;
+ @NotNull protected String getName() { ... };
+ ...
+}</programlisting>
+
+ <para>ä½ å¯ä»¥å¯¹æ¥å£è¿è¡æ³¨è§£ãHibernateéªè¯å¨ä¼æ£æ¥ç»å®beanææ©å±æå®ç°çææç¶ç±»åæ¥å£ï¼
+ ç±ä»¥è¯»åç¸åºçéªè¯å¨æ³¨è§£(ä¿¡æ¯)ã</para>
+
+ <programlisting>public interface Named {
+ @NotNull String getName();
+ ...
+}
+
+public class Dog implements Named {
+
+ @AssertTrue private boolean isMale;
+
+ public String getName() { ... };
+
+}</programlisting>
+
+ <para>å¨éªè¯Dog beanæ¶ä¼æ£æ¥nameå±æ§çæææ§(ä¸ä¸ºnull)ã</para>
+ </sect2>
+ </sect1>
+
+ <sect1>
+ <title>使ç¨éªè¯å¨æ¡æ¶</title>
+
+ <para>Hibernateéªè¯å¨æ¨å¨å®ç°å¤å±æ°æ®éªè¯ï¼æ们å¨ä¸å¤è¡¨ç¤ºçº¦æ(带注解çå模å)ï¼ç¶åå°å
¶è¿ç¨äº
+ åºç¨ç¨åºçä¸åå±ã</para>
+
+ <sect2>
+ <title>æ°æ®åºschemaå±æ¬¡éªè¯</title>
+
+ <para>æ é¡»é¢å¤æç»ï¼Hibernate Annotationsä¼èªå¨å°ä½ 为å®ä½å®ä¹ç约æç¿»è¯ä¸ºæ å°å
æ°æ®ãä¾å¦ï¼å¦æä½ çå®ä½
+ çä¸ä¸ªå±æ§æ³¨è§£ä¸º<literal>@NotNull</literal>ï¼å¨HibernateçæçDDL schemaä¸è¿åä¼è¢«å®ä¹ä¸º
+ <literal>not null</literal>ã</para>
+ </sect2>
+
+ <sect2>
+ <title>Hibernateåºäºäºä»¶çéªè¯</title>
+
+ <para>Hibernateéªè¯å¨æ两个å
建Hibernateäºä»¶çå¬å¨ãå½ä¸ä¸ª<literal>PreInsertEvent</literal>
+ æ<literal>PreUpdateEvent</literal>åçæ¶ï¼çå¬å¨ä¼éªè¯è¯¥å®ä½å®ä¾çææ约æï¼å¦æè¿åä¼æåºä¸ä¸ªå¼å¸¸ã
+ åºæ¬ä¸ï¼å¨Hibernateæ§è¡ä»»ä½æå
¥åæ´æ°å对象ä¼è¢«æ£æ¥ãè¿æ¯æ¿æ´»éªè¯è¿ç¨çæ便æ·æç®åçæ¹æ³ãå½éå°çº¦æ
+ è¿è§æ¶ï¼äºä»¶ä¼å¼åä¸ä¸ªè¿è¡æ¶<classname>InvalidStateException</classname>ï¼è¯¥å¼å¸¸å
å«ä¸ä¸ªæè¿°æ¯ä¸ªé误ç
+ <literal>InvalidValue</literal>æ°ç»ã</para>
+
+ <programlisting><hibernate-configuration>
+ ...
+ <event type="pre-update">
+ <listener
+ class="org.hibernate.validator.event.ValidatePreUpdateEventListener"/>
+ </event>
+ <event type="pre-insert">
+ <listener
+ class="org.hibernate.validator.event.ValidatePreInsertEventListener"/>
+ </event>
+</hibernate-configuration></programlisting>
+
+ <para><note>
+ <para>å¨ä½¿ç¨Hibernate Entity Manageræ¶ï¼Validationæ¡æ¶ä¼è¢«èªå¨æ¿æ´»ãå¦æbeanä¸å¸¦éªè¯æ³¨è§£ï¼
+ å°±ä¸ä¼ææ§è½æ失ã</para>
+ </note></para>
+ </sect2>
+
+ <sect2>
+ <title>ç¨åºçº§éªè¯</title>
+
+ <para>Hibernateéªè¯å¨è½åºç¨äºä½ åºç¨ç¨åºä»£ç ä¸çä»»ä½å°æ¹ã</para>
+
+ <programlisting>ClassValidator personValidator = new ClassValidator( Person.class );
+ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) );
+
+InvalidValue[] validationMessages = addressValidator.getInvalidValues(address);</programlisting>
+
+ <para>头两è¡ä¸ºæ§è¡ç±»æ£æ¥èåå¤Hibernateéªè¯å¨ã第ä¸è¡ä¾èµäºåµå
¥å¨Hibernateéªè¯å¨å
çé误
+ æ¶æ¯(è§<xref linkend="validator-constraints-error" />)ï¼ç¬¬äºè¡ä¸ºè¿äºæ¶æ¯åå¤èµæºå
ãè¿äºä»£ç åªæ§è¡ä¸æ¬¡ï¼
+ 并å°éªè¯å¨è¿è¡ç¼åå¤çï¼è¿ç§æ¹å¼æ¯ä¸ç§è¯å¥½å®è·µã</para>
+
+ <para>第ä¸è¡çæ£éªè¯äº<literal>Address</literal>å®ä¾å¹¶è¿åä¸ä¸ª<literal>InvalidValue</literal>æ°ç»ã
+ ä½ çåºç¨ç¨åºé»è¾éåå¯ä»¥å¯¹é误ååºååºã</para>
+
+ <para>é¤äºé对æ´ä¸ªbeanä½ è¿å¯ä»¥å¯¹æ个ç¹å®å±æ§è¿è¡æ£æ¥ãè¿å¯¹äºä¸ä¸ªå±æ§ä¸ä¸ªå±æ§çç¨æ·äº¤äºæ
å½¢æ许æ¯æç¨çã</para>
+
+ <programlisting>ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) );
+
+//only get city property invalid values
+InvalidValue[] validationMessages = addressValidator.getInvalidValues(address, "city");
+
+//only get potential city property invalid values
+InvalidValue[] validationMessages = addressValidator.getPotentialInvalidValues("city", "Paris")</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>éªè¯ä¿¡æ¯</title>
+
+ <para>ä½ä¸ºä¸ä¸ªéªè¯ä¿¡æ¯çè½½ä½ï¼hibernateæä¾äºä¸ä¸ª<classname>InvalidValue</classname>æ°ç»ã
+ æ¯ä¸ª<literal>InvalidValue</literal>æä¸ç»ï¼è¿äºæ¹æ³åå«æè¿°ç¸åºç个ä½é®é¢ã</para>
+
+ <para><methodname>getBeanClass()</methodname>è·å失败çbeanç±»åã</para>
+
+ <para><methodname>getBean()</methodname>è·åéªè¯å¤±è´¥çå®ä¾(å¦ææçè¯ï¼å½ä½¿ç¨
+ <methodname>getPotentianInvalidValues()</methodname>æ¶åä¸ä¼åå°) </para>
+
+ <para><methodname>getValue()</methodname>è·åéªè¯å¤±è´¥çå¼</para>
+
+ <para><methodname>getMessage()</methodname>è·ååéçå½é
åé误æ¶æ¯</para>
+
+ <para><methodname>getRootBean()</methodname>è·å产çé®é¢çæ ¹beanå®ä¾(å¨ä¸<literal>@Valid</literal>è¿ç¨
+ æ¶å¾æç¨)ï¼å¦ç¨getPotentianInvalidValues()åè¿ånullã</para>
+
+ <para><literal>getPropertyPath()</literal>è·åâé®é¢âå±æ§ä»æ ¹beanå¼å§ç带ç¹çè·¯å¾</para>
+ </sect2>
+ </sect1>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/xml-overriding.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/xml-overriding.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/modules/xml-overriding.xml 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,345 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter id="xml-overriding">
+ <title>éè¿XMLè¦åå
æ°æ®</title>
+
+ <para>å¨EJB3ä¸å
æ°æ®ç主è¦ç®æ æ¯ä½¿ç¨æ³¨é,ä½æ¯EJB3è§èä¹æä¾éè¿XMLé¨ç½²æ件æ¥è¦åæè
æ¿æ¢å
æ°æ®æ³¨é.
+ å¨å½åçåå¸çæ¬ä»
ä»
æ¯æEJB3注éçè¦å,å¦æä½ æ³ä½¿ç¨Hibernateç¹æçä¸äºå®ä½æ³¨é,
+ ä½ æ两ç§éæ©:ä¸,åªä½¿ç¨æ³¨é;äº,使ç¨åæ¥çhbm æ å°æ件.ä½ å½ç¶è¿æ¯å¯ä»¥åæ¶ä½¿ç¨æ³¨éå®ä½åhbm XMLæ å°æ件çå®ä½.</para>
+
+ <para>å¨æµè¯å¥ä»¶ä¸æä¸äºéå çXMLæ件çæ ·ä¾.</para>
+
+ <section>
+ <title>åå</title>
+
+ <para>XMLé¨ç½²æ件ç»æ被设计为ç´æ¥æ å°æ³¨éç»æ,æ以å¦æä½ ç¥é注éçç»æ,é£ä¹ä½¿ç¨XMLè¯æ³æ¯å¾ç®åç.</para>
+
+
+ <para>ä½ å¯ä»¥å®ä¹ä¸ä¸ªæè
å¤ä¸ªXMLæ件æ¥æè¿°ä½ çå
æ°æ®,è¿äºæ件ä¼è¢«è¦åå¼æå并(merged).</para>
+
+ <section>
+ <title>å
¨å±çº§å«çå
æ°æ®</title>
+
+ <para>ä½ å¯ä»¥ä½¿ç¨XMLæ件æ¥å®ä¹å
¨å±å
æ°æ®,对æ¯ä¸ä¸ªé¨ç½²æä»¶ä½ ä¸è½å®ä¹å¤äºä¸ä¸ªçå
æ°æ®.</para>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <persistence-unit-metadata>
+ <xml-mapping-metadata-complete/>
+ <persistence-unit-defaults>
+ <schema>myschema</schema>
+ <catalog>mycatalog</catalog>
+ <cascade-persist/>
+ </persistence-unit-defaults>
+ </persistence-unit-metadata></programlisting>
+
+ <para><literal>xml-mapping-metadata-complete</literal> æå³çææçå®ä½,mapped-superclassesååµå¥çå
æ°æ®åºè¯¥ä»XMLæ件ä¸å¯ç¨(忽ç¥æ³¨é).</para>
+
+
+ <para><literal>schema / catalog</literal> å°è¦åææå¨å
æ°æ®ä¸é»è®¤å®ä¹çschema å catalog(å
æ¬XMLå注é).</para>
+
+ <para><literal>cascade-persist</literal> æå³çææ注éä½ä¸ºä¸ä¸ª cascade type é½æ¯PERSISTç. æ们æ¨èä½ ä¸è¦ä½¿ç¨è¯¥ç¹æ§.</para>
+ </section>
+
+ <section>
+ <title>å®ä½çº§å«çå
æ°æ®</title>
+
+ <para>ä½ ä¹å¯ä»¥å¨ä¸ä¸ªç»å®çå®ä½ä¸å®ä¹æè
è¦åå
æ°æ®</para>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="3 85" id="aa1" />
+
+ <area coords="9 85" id="aa2" />
+
+ <area coords="10 85" id="aa3" />
+
+ <area coords="11 85" id="aa4" />
+
+ <area coords="17 85" id="aa5" />
+
+ <area coords="23 85" id="aa6" />
+
+ <area coords="24 85" id="aa7" />
+
+ <area coords="25 85" id="aa8" />
+
+ <area coords="26 85" id="aa9" />
+
+ <area coords="31 85" id="aa10" />
+ </areaspec>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <package>org.hibernate.test.annotations.reflection</package>
+ <entity class="Administration" access="PROPERTY" metadata-complete="true">
+ <table name="tbl_admin">
+ <unique-constraint>
+ <column-name>firstname</column-name>
+ <column-name>lastname</column-name>
+ </unique-constraint>
+ </table>
+ <secondary-table name="admin2">
+ <primary-key-join-column name="admin_id" referenced-column-name="id"/>
+ <unique-constraint>
+ <column-name>address</column-name>
+ </unique-constraint>
+ </secondary-table>
+ <id-class class="SocialSecurityNumber"/>
+ <inheritance strategy="JOINED"/>
+ <sequence-generator name="seqhilo" sequence-name="seqhilo"/>
+ <table-generator name="table" table="tablehilo"/>
+ ...
+ </entity>
+
+ <entity class="PostalAdministration">
+ <primary-key-join-column name="id"/>
+ ...
+ </entity>
+</entity-mappings></programlisting>
+
+ <calloutlist>
+ <callout arearefs="aa1">
+ <para><literal>entity-mappings</literal>:entity-mappings æ¯ææXMLæ件çæ ¹å
ç´ .ä½ å¿
é¡»å®ä¹XML Schema, 该æ件å
å«å¨hibernate-annotations.jarä¸,使ç¨Hibernate Annotations ä¸éè¦è®¿é®ç½ç».</para>
+ </callout>
+
+ <callout arearefs="aa2">
+ <para><literal>package</literal> (å¯éç): ä½ä¸ºé»è®¤çpackageç¨äºå¨ä¸ä¸ªç»å®çé¨ç½²æè¿°æ件ä¸ææ没æéå®çç±».</para>
+ </callout>
+
+ <callout arearefs="aa3">
+ <para><literal>entity</literal>: æè¿°ä¸ä¸ªå®ä½. </para>
+
+ <para><literal>metadata-complete</literal> å®ä¹å¯¹äºè¯¥å
ç´ æ¯å¦å
¨é¨ä½¿ç¨å
æ°æ®(æ¢å¥è¯æ¥è¯´å°±æ¯,å¦æ注éåºç°å¨ç±»çº§å«åºè¯¥èèæè
忽ç¥).</para>
+
+ <para>ä¸ä¸ªå®ä½ä¸å¾ä¸æä¸ä¸ª class å±æ§æ¥å¼ç¨ å
æ°æ®æåºç¨çç±». </para>
+
+ <para>éè¿<literal>name</literal>å±æ§ä½ å¯ä»¥è¦åå®ä½çåå,
+ å¦æ没æå®ä¹å¹¶ä¸<literal>@Entity.name</literal>åºç°äºçè¯,é£ä¹å°±ä½¿ç¨è¯¥æ³¨é(åå¦metadata complete 没æ被设置).</para>
+
+ <para>
+ 对äºmetadata complete (åèä¸é¢)å
ç´ , ä½ å¯ä»¥å®ä¹ä¸ä¸ª <literal>access</literal>(<literal>FIELD</literal> æè
<literal>PROPERTY</literal>(é»è®¤å¼)),
+ 对äºémetadata complete å
ç´ ,使ç¨æ³¨éçaccess type.</para>
+ </callout>
+
+ <callout arearefs="aa4">
+ <para><literal>table</literal>: ä½ å¯ä»¥å£°ætable å±æ§(name, schema, catalog), å¦æ没æå®ä¹, å°ä½¿ç¨Java注é.</para>
+
+ <para>就象ä¾åä¸æ示çé£æ ·ä½ å¯ä»¥å®ä¹ä¸ä¸ªæè
å¤ä¸ªunique constraints</para>
+ </callout>
+
+ <callout arearefs="aa5">
+ <para><literal>secondary-table</literal>: å®ä¹ä¸ä¸ªsecondary-table,é¤äºä½ å¯ä»¥éè¿<literal>primary-key-join-column </literal>å
ç´ å®ä¹ primary key / foreign key å以å¤æ¯åä¸è¬çtableä¸æ ·ç. å¨émetadata completeä¸, annotation secondary tables ä»
ä»
å¨æ²¡æ<literal>secondary-table </literal>å®ä¹çæ
åµä¸ä½¿ç¨, å¦å 注éå°è¢«å¿½ç¥.</para>
+ </callout>
+
+ <callout arearefs="aa6">
+ <para><literal>id-class</literal>: å<literal>@IdClass</literal>ä¸æ ·å®ä¹ä¸ä¸ªid class.</para>
+ </callout>
+
+ <callout arearefs="aa7">
+ <para><literal>inheritance</literal>:
+ å®ä¹ç»§æ¿çç¥(<literal>JOINED</literal>,
+ <literal>TABLE_PER_CLASS</literal>,
+ <literal>SINGLE_TABLE</literal>), ä»
ä»
å¨æ ¹å®ä½çº§å«å¯ä»¥ä½¿ç¨.</para>
+ </callout>
+
+ <callout arearefs="aa8">
+ <para><literal>sequence-generator</literal>: å®ä¹ä¸ä¸ªåºå产çå¨.</para>
+ </callout>
+
+ <callout arearefs="aa9">
+ <para><literal>table-generator</literal>: å®ä¹ä¸ä¸ªtable generator</para>
+ </callout>
+
+ <callout arearefs="aa10">
+ <para><literal><literal>primary-key-join-column</literal></literal>:
+ å½ JOINED 继æ¿çç¥ä½¿ç¨æ¶,为sub entitieså®ä¹ä¸ä¸ª primary key join column.</para>
+ </callout>
+ </calloutlist>
+
+
+ </programlistingco>
+
+ <programlistingco>
+ <areaspec>
+ <area coords="11 85" id="ab1" />
+
+ <area coords="18 85" id="ab2" />
+
+ <area coords="22 85" id="ab3" />
+
+ <area coords="28 85" id="ab4" />
+
+ <area coords="34 85" id="ab5" />
+ </areaspec>
+
+ <programlisting><?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings
+ xmlns="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+ version="1.0">
+
+ <package>org.hibernate.test.annotations.reflection</package>
+ <entity class="Music" access="PROPERTY" metadata-complete="true">
+ <discriminator-value>Generic</discriminator-value>
+ <discriminator-column length="34"/>
+ ...
+ </entity>
+
+ <entity class="PostalAdministration">
+ <primary-key-join-column name="id"/>
+ <named-query name="adminById">
+ <query>select m from Administration m where m.id = :id</query>
+ <hint name="org.hibernate.timeout" value="200"/>
+ </named-query>
+ <named-native-query name="allAdmin" result-set-mapping="adminrs">
+ <query>select *, count(taxpayer_id) as taxPayerNumber
+ from Administration, TaxPayer
+ where taxpayer_admin_id = admin_id group by ...</query>
+ <hint name="org.hibernate.timeout" value="200"/>
+ </named-native-query>
+ <sql-result-set-mapping name="adminrs">
+ <entity-result entity-class="Administration">
+ <field-result name="name" column="fld_name"/>
+ </entity-result>
+ <column-result name="taxPayerNumber"/>
+ </sql-result-set-mapping>
+ <attribute-override name="ground">
+ <column name="fld_ground" unique="true" scale="2"/>
+ </attribute-override>
+ <association-override name="referer">
+ <join-column name="referer_id" referenced-column-name="id"/>
+ </association-override>
+ ...
+ </entity>
+</entity-mappings></programlisting>
+
+ <calloutlist>
+ <callout arearefs="ab1">
+ <para><literal>discriminator-value /
+ discriminator-column</literal>: å½SINGLE_TABLE继æ¿çç¥ä½¿ç¨æ¶,å®ä¹é´å«å¨å¼ å ä¿å该å¼çå.</para>
+ </callout>
+
+ <callout arearefs="ab2">
+ <para><literal>named-query</literal>: å®ä¹å½åæ¥è¯¢åä¸äºç¸å
³çå¯è½ç线索. 该å®ä¹éå å¨æ³¨éçå®ä¹ä¸,å¦æ两个é½å®ä¹äºç¸åçåå,é£ä¹XMLå°ä¼å
èè.</para>
+ </callout>
+
+ <callout arearefs="ab3">
+ <para><literal>named-native-query</literal>: å®ä¹ä¸ä¸ªå½åæ¬å°æ¥è¯¢ åä»ç sql result set æ å°. ä½ä¸ºå¦å¤ä¸ç§éæ©,ä½ å¯ä»¥å®ä¹<literal>result-class</literal>. è¿äºå®ä¹éå å¨æ³¨éçå®ä¹ä¸.å¦æ两个å®ä¹äºåæ ·çåå,XMLæ件ä¼å
èè.</para>
+ </callout>
+
+ <callout arearefs="ab4">
+ <para><literal>sql-result-set-mapping</literal>: æè¿°äº result set mapping çç»æ. ä½ å¯ä»¥å®ä¹ å®ä½ååæ å°. è¿äºå®ä¹éå å¨æ³¨éçå®ä¹ä¸,å¦æå®ä¹äºåæ ·çåå,XMLæ件ä¼å
èè.</para>
+ </callout>
+
+ <callout arearefs="ab5">
+ <para><literal>attribute-override /
+ association-override</literal>: å®ä¹ä¸åæè
join column overriding. 该overriding éå å¨æ³¨éçå®ä¹ä¸.</para>
+ </callout>
+ </calloutlist>
+ </programlistingco>
+
+ <para>ä¸äºåºç¨äº <literal><embeddable></literal> å
+ <literal><mapped-superclass></literal>.</para>
+ </section>
+
+ <section>
+ <title>å±æ§çº§å«çå
æ°æ®</title>
+
+ <para>
+ ä½ å½ç¶å¯ä»¥å®ä¹XMLæ¥è¦åå±æ§. å¦æmetadata complete ç»å®ä¹äº,é£ä¹éå çå±æ§(å¦: å¨Java 级å«ç)å°è¢«å¿½ç¥.
+å¦å¤,ä¸æ¦ä½ å¼å§è¦åä¸ä¸ªå±æ§,å¨è¯¥å±æ§ä¸çææ注éé½ä¼è¢«å¿½ç¥.ææå±æ§çº§å«çå
æ°æ®åºç¨äº<literal>entity/attributes</literal>,
+ <literal>mapped-superclass/attributes</literal> æ
+ <literal>embeddable/attributes</literal>.</para>
+
+ <programlisting> <attributes>
+ <id name="id">
+ <column name="fld_id"/>
+ <generated-value generator="generator" strategy="SEQUENCE"/>
+ <temporal>DATE</temporal>
+ <sequence-generator name="generator" sequence-name="seq"/>
+ </id>
+ <version name="version"/>
+ <embedded name="embeddedObject">
+ <attribute-override name"subproperty">
+ <column name="my_column"/>
+ </attribute-override>
+ </embedded>
+ <basic name="status" optional="false">
+ <enumerated>STRING</enumerated>
+ </basic>
+ <basic name="serial" optional="true">
+ <column name="serialbytes"/>
+ <lob/>
+ </basic>
+ <basic name="terminusTime" fetch="LAZY">
+ <temporal>TIMESTAMP</temporal>
+ </basic>
+ </attributes></programlisting>
+
+ <para>
+ éè¿ <literal>id</literal>,
+ <literal>embedded-id</literal>, <literal>version</literal>,
+ <literal>embedded</literal> å <literal>basic</literal>ä½ å¯ä»¥è¦åä¸ä¸ªå±æ§,
+ è¿äºå
ç´ ä¸çæ¯ä¸ä¸ªå
ç´ é½æç¸åºçsubelementsï¼<literal>lob</literal>,
+ <literal>temporal</literal>, <literal>enumerated</literal>,
+ <literal>column</literal>.</para>
+
+ </section>
+
+ <section>
+ <title>å
³è级å«çå
æ°æ®</title>
+
+ <para>ä½ å¯ä»¥å®ä¹XMLè¦åå
³è注é. ææçå
³è级å«çå
æ°æ®ä½ç¨äº
+ <literal>entity/attributes</literal>,
+ <literal>mapped-superclass/attributes</literal> æ
+ <literal>embeddable/attributes</literal>.</para>
+
+ <programlisting> <attributes>
+ <one-to-many name="players" fetch="EAGER">
+ <map-key name="name"/>
+ <join-column name="driver"/>
+ <join-column name="number"/>
+ </one-to-many>
+ <many-to-many name="roads" target-entity="Administration">
+ <order-by>maxSpeed</order-by>
+ <join-table name="bus_road">
+ <join-column name="driver"/>
+ <join-column name="number"/>
+ <inverse-join-column name="road_id"/>
+ <unique-constraint>
+ <column-name>driver</column-name>
+ <column-name>number</column-name>
+ </unique-constraint>
+ </join-table>
+ </many-to-many>
+ <many-to-many name="allTimeDrivers" mapped-by="drivenBuses">
+ </attributes></programlisting>
+
+ <para>éè¿<literal>one-to-many</literal>, <literal>one-to-one</literal>,
+ <literal>many-to-one</literal>, å <literal>many-to-many</literal>.
+ ä½ å¯ä»¥éåä¸ä¸ªå
³èå
³ç³».è¿äºå
ç´ ä¸çæ¯ä¸ä¸ªé½æç¸åºçsubelements. <literal>join-table</literal> (å¯ä»¥æ
+ <literal>join-column</literal>å
+ <literal>inverse-join-column</literal>),
+ <literal><literal>join-column</literal></literal>,
+ <literal>map-key</literal>, å <literal>order-by</literal>.
+ <literal>mapped-by</literal> å <literal>target-entity</literal>
+ å½ä»ä»¬ææä¹çæ¶åå¯ä»¥å®ä¹å±æ§. åä¸æ¬¡å¼ºè° 该ç»ææ å°äºæ³¨éçç»æ.å¨æ述注éçä¸ç« ä¸ ä½ å¯ä»¥æ¾å°ææçè¯ä¹ä¿¡æ¯.</para>
+
+
+ </section>
+ </section>
+</chapter>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/fopdf.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/fopdf.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/fopdf.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,509 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL FO configuration file for the Hibernate
+ Reference Documentation. It defines a custom titlepage and
+ the parameters for the A4 sized PDF printable output.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ exclude-result-prefixes="#default">
+
+ <xsl:import href="&db_xsl_path;/fo/docbook.xsl"/>
+
+ <!--###################################################
+ Custom Title Page
+ ################################################### -->
+
+ <xsl:template name="book.titlepage.recto">
+ <fo:block>
+ <fo:table table-layout="fixed" width="175mm">
+ <fo:table-column column-width="175mm"/>
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell text-align="center">
+ <fo:block>
+ <fo:external-graphic src="file:images/hibernate_logo_a.png"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm">
+ <xsl:value-of select="bookinfo/subtitle"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="12pt" padding="10mm">
+ Version:
+ <xsl:value-of select="bookinfo/releaseinfo"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Prevent blank pages in output -->
+ <xsl:template name="book.titlepage.before.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.separator">
+ </xsl:template>
+
+ <!--###################################################
+ Header
+ ################################################### -->
+
+ <!-- More space in the center header for long text -->
+ <xsl:attribute-set name="header.content.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$body.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="margin-left">-5em</xsl:attribute>
+ <xsl:attribute name="margin-right">-5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Custom Footer
+ ################################################### -->
+
+ <!-- This footer prints the Hibernate version number on the left side -->
+ <xsl:template name="footer.content">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="position" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+
+ <xsl:variable name="Version">
+ <xsl:choose>
+ <xsl:when test="//releaseinfo">
+ <xsl:text>Hibernate </xsl:text>
+ <xsl:value-of select="//releaseinfo"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$sequence='blank'">
+ <xsl:choose>
+ <xsl:when test="$double.sided != 0 and $position = 'left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position = 'center'">
+ <!-- nop -->
+ </xsl:when>
+
+ <xsl:otherwise>
+ <fo:page-number/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$pageclass='titlepage'">
+ <!-- nop: other titlepage sequences have no footer -->
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--###################################################
+ Custom Toc Line
+ ################################################### -->
+
+ <!-- Improve the TOC. -->
+ <xsl:template name="toc.line">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+
+ <fo:block text-align-last="justify"
+ end-indent="{$toc.indent.width}pt"
+ last-line-end-indent="-{$toc.indent.width}pt">
+ <fo:inline keep-with-next.within-line="always">
+ <fo:basic-link internal-destination="{$id}">
+
+ <!-- Chapter titles should be bold. -->
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'chapter'">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:if test="$label != ''">
+ <xsl:copy-of select="$label"/>
+ <xsl:value-of select="$autotoc.label.separator"/>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="titleabbrev.markup"/>
+ </fo:basic-link>
+ </fo:inline>
+ <fo:inline keep-together.within-line="always">
+ <xsl:text> </xsl:text>
+ <fo:leader leader-pattern="dots"
+ leader-pattern-width="3pt"
+ leader-alignment="reference-area"
+ keep-with-next.within-line="always"/>
+ <xsl:text> </xsl:text>
+ <fo:basic-link internal-destination="{$id}">
+ <fo:page-number-citation ref-id="{$id}"/>
+ </fo:basic-link>
+ </fo:inline>
+ </fo:block>
+ </xsl:template>
+
+ <!--###################################################
+ Extensions
+ ################################################### -->
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <!-- FOP provide only PDF Bookmarks at the moment -->
+ <xsl:param name="fop.extensions">1</xsl:param>
+
+ <!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+ <!-- Dot and Whitespace as separator in TOC between Label and Title-->
+ <xsl:param name="autotoc.label.separator" select="'. '"/>
+
+
+ <!--###################################################
+ Paper & Page Size
+ ################################################### -->
+
+ <!-- Paper type, no headers on blank pages, no double sided printing -->
+ <xsl:param name="paper.type" select="'A4'"/>
+ <xsl:param name="double.sided">0</xsl:param>
+ <xsl:param name="headers.on.blank.pages">0</xsl:param>
+ <xsl:param name="footers.on.blank.pages">0</xsl:param>
+
+ <!-- Space between paper border and content (chaotic stuff, don't touch) -->
+ <xsl:param name="page.margin.top">5mm</xsl:param>
+ <xsl:param name="region.before.extent">10mm</xsl:param>
+ <xsl:param name="body.margin.top">10mm</xsl:param>
+
+ <xsl:param name="body.margin.bottom">15mm</xsl:param>
+ <xsl:param name="region.after.extent">10mm</xsl:param>
+ <xsl:param name="page.margin.bottom">0mm</xsl:param>
+
+ <xsl:param name="page.margin.outer">18mm</xsl:param>
+ <xsl:param name="page.margin.inner">18mm</xsl:param>
+
+ <!-- No intendation of Titles -->
+ <xsl:param name="title.margin.left">0pc</xsl:param>
+
+ <!--###################################################
+ Fonts & Styles
+ ################################################### -->
+
+ <!-- Default Font size -->
+ <xsl:param name="body.font.master">11</xsl:param>
+
+ <!-- Line height in body text -->
+ <xsl:param name="line-height">1.4</xsl:param>
+
+ <!-- Monospaced fonts are smaller than regular text -->
+ <xsl:attribute-set name="monospace.properties">
+ <xsl:attribute name="font-family">
+ <xsl:value-of select="$monospace.font.family"/>
+ </xsl:attribute>
+ <xsl:attribute name="font-size">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+
+ <!--###################################################
+ Tables
+ ################################################### -->
+
+ <!-- The table width should be adapted to the paper size -->
+ <xsl:param name="default.table.width">17.4cm</xsl:param>
+
+ <!-- Some padding inside tables -->
+ <xsl:attribute-set name="table.cell.padding">
+ <xsl:attribute name="padding-left">4pt</xsl:attribute>
+ <xsl:attribute name="padding-right">4pt</xsl:attribute>
+ <xsl:attribute name="padding-top">4pt</xsl:attribute>
+ <xsl:attribute name="padding-bottom">4pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Only hairlines as frame and cell borders in tables -->
+ <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
+ <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
+
+ <!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+ <!--###################################################
+ Titles
+ ################################################### -->
+
+ <!-- Chapter title size -->
+ <xsl:attribute-set name="chapter.titlepage.recto.style">
+ <xsl:attribute name="text-align">left</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.8"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Why is the font-size for chapters hardcoded in the XSL FO templates?
+ Let's remove it, so this sucker can use our attribute-set only... -->
+ <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xsl:use-attribute-sets="chapter.titlepage.recto.style">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
+ </xsl:call-template>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->
+ <xsl:attribute-set name="section.title.level1.properties">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.5"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level2.properties">
+ <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.25"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:attribute-set name="section.title.level3.properties">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.0"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Titles of formal objects (tables, examples, ...) -->
+ <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Programlistings
+ ################################################### -->
+
+ <!-- Verbatim text formatting (programlistings) -->
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ <xsl:attribute name="border-color">#444444</xsl:attribute>
+ <xsl:attribute name="border-style">solid</xsl:attribute>
+ <xsl:attribute name="border-width">0.1pt</xsl:attribute>
+ <xsl:attribute name="padding-top">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-left">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-right">0.5em</xsl:attribute>
+ <xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-left">0.5em</xsl:attribute>
+ <xsl:attribute name="margin-right">0.5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Shade (background) programlistings -->
+ <xsl:param name="shade.verbatim">1</xsl:param>
+ <xsl:attribute-set name="shade.verbatim.style">
+ <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- We want to use callouts... -->
+ <xsl:param name="callout.extensions">1</xsl:param>
+
+ <!-- Place callout bullets at this column in programmlisting.-->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+ <!--
+ No, don't use crappy graphics for the callout bullets. This setting
+ enables some weird Unicode rendering for some fancy bullet points
+ in callouts. By default, this can only count to 10 and produces
+ strange results if you ever have more than 10 callouts for one
+ programlisting. We will fix that next.
+ -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!--
+ Again, fun with DocBook XSL: The callout bullets are rendered in
+ two places: In the programlisting itself and in the list below
+ the listing, with the actual callout text. The rendering in the
+ programlisting is some XSL transformer extension (e.g. a Saxon
+ extension), so we can't change that without messing with the
+ extensions. We only can turn it off by setting this limit to
+ zero, then, a simple bracket style like "(3)" and "(4)" will
+ be used in the programlisting.
+ -->
+ <xsl:param name="callout.unicode.number.limit" select="'0'"></xsl:param>
+
+ <!--
+ The callout bullets in the actual callout list will be rendered
+ with an XSL FO template. The default template is broken: limited to 10
+ nice looking Unicode bullet points and then it doesn't print anything,
+ the fallback doesn't work. We implement our own template, which is not
+ as complicated, more ugly, but works. As always, function is more
+ important than form.
+ -->
+ <xsl:template name="callout-bug">
+ <xsl:param name="conum" select='1'/>
+ <fo:inline
+ color="black"
+ padding-top="0.1em"
+ padding-bottom="0.1em"
+ padding-start="0.2em"
+ padding-end="0.2em"
+ baseline-shift="0.1em"
+ font-family="{$monospace.font.family}"
+ font-weight="bold"
+ font-size="75%">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$conum"/>
+ <xsl:text>)</xsl:text>
+ </fo:inline>
+
+ </xsl:template>
+
+ <!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Correct placement of titles for figures and examples. -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+ <!-- Format Variable Lists as Blocks (prevents horizontal overflow). -->
+ <xsl:param name="variablelist.as.blocks">1</xsl:param>
+
+ <!-- The horrible list spacing problems, this is much better. -->
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- Newer DocBook XSL apparently thinks that some sections are by
+ default "draft" status, and this idiotic thing is by default
+ also set to "maybe", so it spits out a lot of errors with the
+ latest FOP as the XSL/FO styles have references to some draft
+ watermarks, which you actually don't want in the first place.
+ Turn this crap off. If you have to work with the "status"
+ attribute, don't.
+ -->
+ <xsl:param name="draft.mode" select="'no'"/>
+
+ <!-- Simplified Chinese related Settings -->
+ <xsl:param name="hyphenate">false</xsl:param>
+ <xsl:param name="body.font.family">simsun</xsl:param>
+ <xsl:param name="monospace.font.family">simsun</xsl:param>
+ <xsl:param name="title.font.family">simhei</xsl:param>
+ <xsl:param name="saxon.character.representation" select="native"/>
+ <xsl:param name="callout.unicode" select="1"/>
+ <xsl:param name="callout.unicode.start.character" select="10102"/>
+ <xsl:param name="l10n.gentext.default.language" select="zh-cn"/>
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.css
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.css (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.css 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,97 @@
+A {
+ color: #003399;
+}
+
+A:active {
+ color: #003399;
+}
+
+A:visited {
+ color: #888888;
+}
+
+P, OL, UL, LI, DL, DT, DD, BLOCKQUOTE {
+ color: #000000;
+}
+
+TD, TH, SPAN {
+ color: #000000;
+}
+
+BLOCKQUOTE {
+ margin-right: 0px;
+}
+
+
+H1, H2, H3, H4, H5, H6 {
+ color: #000000;
+ font-weight:500;
+ margin-top:10px;
+ padding-top:15px;
+}
+
+TABLE {
+ border-collapse: collapse;
+ border-spacing:0;
+ border: 1px thin black;
+ empty-cells: hide;
+}
+
+TD {
+ padding: 4pt;
+}
+
+H1 { font-size: 150%; }
+H2 { font-size: 140%; }
+H3 { font-size: 110%; font-weight: bold; }
+H4 { font-size: 110%; font-weight: bold;}
+H5 { font-size: 100%; font-style: italic; }
+H6 { font-size: 100%; font-style: italic; }
+
+TT {
+font-size: 90%;
+ font-family: "Courier New", Courier, monospace;
+ color: #000000;
+}
+
+PRE {
+font-size: 100%;
+ padding: 5px;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #CCCCCC;
+ background-color: #F4F4F4;
+}
+
+UL, OL, LI {
+ list-style: disc;
+}
+
+HR {
+ width: 100%;
+ height: 1px;
+ background-color: #CCCCCC;
+ border-width: 0px;
+ padding: 0px;
+ color: #CCCCCC;
+}
+
+.variablelist {
+ padding-top: 10;
+ padding-bottom:10;
+ margin:0;
+}
+
+.itemizedlist, UL {
+ padding-top: 0;
+ padding-bottom:0;
+ margin:0;
+}
+
+.term {
+ font-weight:bold;
+}
+
+
+
+
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL HTML configuration file for the Hibernate
+ Reference Documentation.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="&db_xsl_path;/html/docbook.xsl"/>
+
+<!--###################################################
+ HTML Settings
+ ################################################### -->
+
+ <xsl:param name="html.stylesheet">../shared/css/html.css</xsl:param>
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+
+<!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+<!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Don't use graphics, use a simple number style -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+<!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html_chunk.xsl
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html_chunk.xsl (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/docbook/zh_cn/styles/html_chunk.xsl 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,86 @@
+<?xml version="1.0"?>
+
+<!--
+
+ This is the XSL HTML configuration file for the Hibernate
+ Reference Documentation.
+
+ It took me days to figure out this stuff and fix most of
+ the obvious bugs in the DocBook XSL distribution. Some of
+ the workarounds might not be appropriate with a newer version
+ of DocBook XSL. This file is released as part of Hibernate,
+ hence LGPL licensed.
+
+ christian at hibernate.org
+-->
+
+<!DOCTYPE xsl:stylesheet [
+ <!ENTITY db_xsl_path "../../support/docbook-xsl/">
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ exclude-result-prefixes="#default">
+
+<xsl:import href="&db_xsl_path;/html/chunk.xsl"/>
+
+<!--###################################################
+ HTML Settings
+ ################################################### -->
+
+ <xsl:param name="chunk.section.depth">'5'</xsl:param>
+ <xsl:param name="use.id.as.filename">'1'</xsl:param>
+ <xsl:param name="html.stylesheet">../shared/css/html.css</xsl:param>
+
+ <!-- These extensions are required for table printing and other stuff -->
+ <xsl:param name="use.extensions">1</xsl:param>
+ <xsl:param name="tablecolumns.extension">0</xsl:param>
+ <xsl:param name="callout.extensions">1</xsl:param>
+ <xsl:param name="graphicsize.extension">0</xsl:param>
+
+<!--###################################################
+ Table Of Contents
+ ################################################### -->
+
+ <!-- Generate the TOCs for named components only -->
+ <xsl:param name="generate.toc">
+ book toc
+ </xsl:param>
+
+ <!-- Show only Sections up to level 3 in the TOCs -->
+ <xsl:param name="toc.section.depth">3</xsl:param>
+
+<!--###################################################
+ Labels
+ ################################################### -->
+
+ <!-- Label Chapters and Sections (numbering) -->
+ <xsl:param name="chapter.autolabel">1</xsl:param>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+<!--###################################################
+ Callouts
+ ################################################### -->
+
+ <!-- Don't use graphics, use a simple number style -->
+ <xsl:param name="callout.graphics">0</xsl:param>
+
+ <!-- Place callout marks at this column in annotated areas -->
+ <xsl:param name="callout.defaultcolumn">90</xsl:param>
+
+<!--###################################################
+ Misc
+ ################################################### -->
+
+ <!-- Placement of titles -->
+ <xsl:param name="formal.title.placement">
+ figure after
+ example before
+ equation before
+ table before
+ procedure before
+ </xsl:param>
+
+</xsl:stylesheet>
Added: annotations/branches/v3_4_0_GA_CP/src/main/javadoc/jdstyle.css
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/javadoc/jdstyle.css (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/javadoc/jdstyle.css 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,117 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { font-family: Arial;
+ background-color: white;
+ font-size: 10pt;
+ }
+td { font-family: Arial;
+ font-size: 10pt;
+ }
+/* Table colors */
+.TableHeadingColor { background: #F4F4F4 }
+.TableSubHeadingColor { background: #F4F4F4 }
+.TableRowColor { background: #FFFFFF }
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont { font-size: normal; font-family: Arial }
+.FrameHeadingFont { font-size: normal; font-family: Arial }
+.FrameItemFont { font-size: normal; font-family: Arial }
+
+/* Example of smaller, sans-serif font in frames */
+/* .FrameItemFont { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */
+
+/* Navigation bar fonts and colors */
+.NavBarCell1 { background-color:#F4F4F4;}
+.NavBarCell1Rev { background-color:silver;}
+
+.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
+A {
+ color: #003399;
+}
+
+A:active {
+ color: #003399;
+}
+
+A:visited {
+ color: #888888;
+}
+
+P, OL, UL, LI, DL, DT, DD, BLOCKQUOTE {
+ color: #000000;
+}
+
+TD, TH, SPAN {
+ color: #000000;
+}
+
+BLOCKQUOTE {
+ margin-right: 0px;
+}
+
+
+/*H1, H2, H3, H4, H5, H6 {
+ color: #000000;
+ font-weight:500;
+ margin-top:10px;
+ padding-top:15px;
+}
+
+H1 { font-size: 150%; }
+H2 { font-size: 140%; }
+H3 { font-size: 110%; font-weight: bold; }
+H4 { font-size: 110%; font-weight: bold;}
+H5 { font-size: 100%; font-style: italic; }
+H6 { font-size: 100%; font-style: italic; }*/
+
+TT {
+font-size: 90%;
+ font-family: "Courier New", Courier, monospace;
+ color: #000000;
+}
+
+PRE {
+font-size: 90%;
+ padding: 5px;
+ border-style: solid;
+ border-width: 1px;
+ border-color: #CCCCCC;
+ background-color: #F4F4F4;
+}
+
+UL, OL, LI {
+ list-style: disc;
+}
+
+HR {
+ width: 100%;
+ height: 1px;
+ background-color: #CCCCCC;
+ border-width: 0px;
+ padding: 0px;
+ color: #CCCCCC;
+}
+
+.variablelist {
+ padding-top: 10;
+ padding-bottom:10;
+ margin:0;
+}
+
+.itemizedlist, UL {
+ padding-top: 0;
+ padding-bottom:0;
+ margin:0;
+}
+
+.term {
+ font-weight:bold;
+}
Added: annotations/branches/v3_4_0_GA_CP/src/main/javadoc/package.html
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/javadoc/package.html (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/javadoc/package.html 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1 @@
+<body></body>
Added: annotations/branches/v3_4_0_GA_CP/src/main/resources/org/hibernate/ejb/orm_1_0.xsd
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/resources/org/hibernate/ejb/orm_1_0.xsd (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/main/resources/org/hibernate/ejb/orm_1_0.xsd 2009-11-24 20:21:05 UTC (rev 18045)
@@ -0,0 +1,1516 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Java Persistence API object-relational mapping file schema -->
+<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ version="1.0">
+
+ <xsd:annotation>
+ <xsd:documentation>
+ @(#)orm_1_0.xsd 1.0 Feb 14 2006
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:annotation>
+ <xsd:documentation><![CDATA[
+
+ This is the XML Schema for the persistence object-relational
+ mapping file.
+ The file may be named "META-INF/orm.xml" in the persistence
+ archive or it may be named some other name which would be
+ used to locate the file as resource on the classpath.
+
+ ]]></xsd:documentation>
+ </xsd:annotation>
+
+ <xsd:complexType name="emptyType"/>
+
+ <xsd:simpleType name="versionType">
+ <xsd:restriction base="xsd:token">
+ <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:element name="entity-mappings">
+ <xsd:complexType>
+ <xsd:annotation>
+ <xsd:documentation>
+
+ The entity-mappings element is the root element of an mapping
+ file. It contains the following four types of elements:
+
+ 1. The persistence-unit-metadata element contains metadata
+ for the entire persistence unit. It is undefined if this element
+ occurs in multiple mapping files within the same persistence unit.
+
+ 2. The package, schema, catalog and access elements apply to all of
+ the entity, mapped-superclass and embeddable elements defined in
+ the same file in which they occur.
+
+ 3. The sequence-generator, table-generator, named-query,
+ named-native-query and sql-result-set-mapping elements are global
+ to the persistence unit. It is undefined to have more than one
+ sequence-generator or table-generator of the same name in the same
+ or different mapping files in a persistence unit. It is also
+ undefined to have more than one named-query or named-native-query
+ of the same name in the same or different mapping files in a
+ persistence unit.
+
+ 4. The entity, mapped-superclass and embeddable elements each define
+ the mapping information for a managed persistent class. The mapping
+ information contained in these elements may be complete or it may
+ be partial.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description" type="xsd:string"
+ minOccurs="0"/>
+ <xsd:element name="persistence-unit-metadata"
+ type="orm:persistence-unit-metadata"
+ minOccurs="0"/>
+ <xsd:element name="package" type="xsd:string"
+ minOccurs="0"/>
+ <xsd:element name="schema" type="xsd:string"
+ minOccurs="0"/>
+ <xsd:element name="catalog" type="xsd:string"
+ minOccurs="0"/>
+ <xsd:element name="access" type="orm:access-type"
+ minOccurs="0"/>
+ <xsd:element name="sequence-generator" type="orm:sequence-generator"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="table-generator" type="orm:table-generator"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="named-query" type="orm:named-query"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="named-native-query" type="orm:named-native-query"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="sql-result-set-mapping"
+ type="orm:sql-result-set-mapping"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="mapped-superclass" type="orm:mapped-superclass"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="entity" type="orm:entity"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="embeddable" type="orm:embeddable"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="version" type="orm:versionType"
+ fixed="1.0" use="required"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="persistence-unit-metadata">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Metadata that applies to the persistence unit and not just to
+ the mapping file in which it is contained.
+
+ If the xml-mapping-metadata-complete element is specified then
+ the complete set of mapping metadata for the persistence unit
+ is contained in the XML mapping files for the persistence unit.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="persistence-unit-defaults"
+ type="orm:persistence-unit-defaults"
+ minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="persistence-unit-defaults">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ These defaults are applied to the persistence unit as a whole
+ unless they are overridden by local annotation or XML
+ element settings.
+
+ schema - Used as the schema for all tables or secondary tables
+ that apply to the persistence unit
+ catalog - Used as the catalog for all tables or secondary tables
+ that apply to the persistence unit
+ access - Used as the access type for all managed classes in
+ the persistence unit
+ cascade-persist - Adds cascade-persist to the set of cascade options
+ in entity relationships of the persistence unit
+ entity-listeners - List of default entity listeners to be invoked
+ on each entity in the persistence unit.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="schema" type="xsd:string"
+ minOccurs="0"/>
+ <xsd:element name="catalog" type="xsd:string"
+ minOccurs="0"/>
+ <xsd:element name="access" type="orm:access-type"
+ minOccurs="0"/>
+ <xsd:element name="cascade-persist" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="entity-listeners" type="orm:entity-listeners"
+ minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="entity">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the settings and mappings for an entity. Is allowed to be
+ sparsely populated and used in conjunction with the annotations.
+ Alternatively, the metadata-complete attribute can be used to
+ indicate that no annotations on the entity class (and its fields
+ or properties) are to be processed. If this is the case then
+ the defaulting rules for the entity and its subelements will
+ be recursively applied.
+
+ @Target(TYPE) @Retention(RUNTIME)
+ public @interface Entity {
+ String name() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="table" type="orm:table"
+ minOccurs="0"/>
+ <xsd:element name="secondary-table" type="orm:secondary-table"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="primary-key-join-column"
+ type="orm:primary-key-join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+ <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>
+ <xsd:element name="discriminator-value" type="orm:discriminator-value"
+ minOccurs="0"/>
+ <xsd:element name="discriminator-column"
+ type="orm:discriminator-column"
+ minOccurs="0"/>
+ <xsd:element name="sequence-generator" type="orm:sequence-generator"
+ minOccurs="0"/>
+ <xsd:element name="table-generator" type="orm:table-generator"
+ minOccurs="0"/>
+ <xsd:element name="named-query" type="orm:named-query"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="named-native-query" type="orm:named-native-query"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="sql-result-set-mapping"
+ type="orm:sql-result-set-mapping"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="exclude-default-listeners" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="exclude-superclass-listeners" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="entity-listeners" type="orm:entity-listeners"
+ minOccurs="0"/>
+ <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+ <xsd:element name="post-persist" type="orm:post-persist"
+ minOccurs="0"/>
+ <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+ <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+ <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+ <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+ <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+ <xsd:element name="attribute-override" type="orm:attribute-override"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="association-override"
+ type="orm:association-override"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="class" type="xsd:string" use="required"/>
+ <xsd:attribute name="access" type="orm:access-type"/>
+ <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="attributes">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This element contains the entity field or property mappings.
+ It may be sparsely populated to include only a subset of the
+ fields or properties. If metadata-complete for the entity is true
+ then the remainder of the attributes will be defaulted according
+ to the default rules.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:choice>
+ <xsd:element name="id" type="orm:id"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="embedded-id" type="orm:embedded-id"
+ minOccurs="0"/>
+ </xsd:choice>
+ <xsd:element name="basic" type="orm:basic"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="version" type="orm:version"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="many-to-one" type="orm:many-to-one"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="one-to-many" type="orm:one-to-many"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="one-to-one" type="orm:one-to-one"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="many-to-many" type="orm:many-to-many"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="embedded" type="orm:embedded"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="transient" type="orm:transient"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="access-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ This element determines how the persistence provider accesses the
+ state of an entity or embedded object.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="PROPERTY"/>
+ <xsd:enumeration value="FIELD"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="entity-listeners">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface EntityListeners {
+ Class[] value();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="entity-listener" type="orm:entity-listener"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="entity-listener">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines an entity listener to be invoked at lifecycle events
+ for the entities that list this listener.
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+ <xsd:element name="post-persist" type="orm:post-persist"
+ minOccurs="0"/>
+ <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+ <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+ <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+ <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+ <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="class" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="pre-persist">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PrePersist {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="post-persist">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostPersist {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="pre-remove">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PreRemove {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="post-remove">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostRemove {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="pre-update">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PreUpdate {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="post-update">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostUpdate {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="post-load">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD}) @Retention(RUNTIME)
+ public @interface PostLoad {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="query-hint">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface QueryHint {
+ String name();
+ String value();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="named-query">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface NamedQuery {
+ String name();
+ String query();
+ QueryHint[] hints() default {};
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="query" type="xsd:string"/>
+ <xsd:element name="hint" type="orm:query-hint"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="named-native-query">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface NamedNativeQuery {
+ String name();
+ String query();
+ QueryHint[] hints() default {};
+ Class resultClass() default void.class;
+ String resultSetMapping() default ""; //named SqlResultSetMapping
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="query" type="xsd:string"/>
+ <xsd:element name="hint" type="orm:query-hint"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="result-class" type="xsd:string"/>
+ <xsd:attribute name="result-set-mapping" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="sql-result-set-mapping">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface SqlResultSetMapping {
+ String name();
+ EntityResult[] entities() default {};
+ ColumnResult[] columns() default {};
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="entity-result" type="orm:entity-result"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="column-result" type="orm:column-result"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="entity-result">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface EntityResult {
+ Class entityClass();
+ FieldResult[] fields() default {};
+ String discriminatorColumn() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="field-result" type="orm:field-result"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="entity-class" type="xsd:string" use="required"/>
+ <xsd:attribute name="discriminator-column" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="field-result">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface FieldResult {
+ String name();
+ String column();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="column" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="column-result">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface ColumnResult {
+ String name();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="table">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface Table {
+ String name() default "";
+ String catalog() default "";
+ String schema() default "";
+ UniqueConstraint[] uniqueConstraints() default {};
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="unique-constraint" type="orm:unique-constraint"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="catalog" type="xsd:string"/>
+ <xsd:attribute name="schema" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="secondary-table">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface SecondaryTable {
+ String name();
+ String catalog() default "";
+ String schema() default "";
+ PrimaryKeyJoinColumn[] pkJoinColumns() default {};
+ UniqueConstraint[] uniqueConstraints() default {};
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="primary-key-join-column"
+ type="orm:primary-key-join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="unique-constraint" type="orm:unique-constraint"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="catalog" type="xsd:string"/>
+ <xsd:attribute name="schema" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="unique-constraint">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({}) @Retention(RUNTIME)
+ public @interface UniqueConstraint {
+ String[] columnNames();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="column-name" type="xsd:string"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="column">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Column {
+ String name() default "";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ int length() default 255;
+ int precision() default 0; // decimal precision
+ int scale() default 0; // decimal scale
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="unique" type="xsd:boolean"/>
+ <xsd:attribute name="nullable" type="xsd:boolean"/>
+ <xsd:attribute name="insertable" type="xsd:boolean"/>
+ <xsd:attribute name="updatable" type="xsd:boolean"/>
+ <xsd:attribute name="column-definition" type="xsd:string"/>
+ <xsd:attribute name="table" type="xsd:string"/>
+ <xsd:attribute name="length" type="xsd:int"/>
+ <xsd:attribute name="precision" type="xsd:int"/>
+ <xsd:attribute name="scale" type="xsd:int"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="join-column">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface JoinColumn {
+ String name() default "";
+ String referencedColumnName() default "";
+ boolean unique() default false;
+ boolean nullable() default true;
+ boolean insertable() default true;
+ boolean updatable() default true;
+ String columnDefinition() default "";
+ String table() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+ <xsd:attribute name="unique" type="xsd:boolean"/>
+ <xsd:attribute name="nullable" type="xsd:boolean"/>
+ <xsd:attribute name="insertable" type="xsd:boolean"/>
+ <xsd:attribute name="updatable" type="xsd:boolean"/>
+ <xsd:attribute name="column-definition" type="xsd:string"/>
+ <xsd:attribute name="table" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="generation-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="TABLE"/>
+ <xsd:enumeration value="SEQUENCE"/>
+ <xsd:enumeration value="IDENTITY"/>
+ <xsd:enumeration value="AUTO"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="attribute-override">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface AttributeOverride {
+ String name();
+ Column column();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="column" type="orm:column"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="association-override">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface AssociationOverride {
+ String name();
+ JoinColumn[] joinColumns();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="join-column" type="orm:join-column"
+ maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="id-class">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface IdClass {
+ Class value();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="class" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="id">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Id {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="column" type="orm:column"
+ minOccurs="0"/>
+ <xsd:element name="generated-value" type="orm:generated-value"
+ minOccurs="0"/>
+ <xsd:element name="temporal" type="orm:temporal"
+ minOccurs="0"/>
+ <xsd:element name="table-generator" type="orm:table-generator"
+ minOccurs="0"/>
+ <xsd:element name="sequence-generator" type="orm:sequence-generator"
+ minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="embedded-id">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface EmbeddedId {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="attribute-override" type="orm:attribute-override"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="transient">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Transient {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="version">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Version {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="column" type="orm:column" minOccurs="0"/>
+ <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="basic">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Basic {
+ FetchType fetch() default EAGER;
+ boolean optional() default true;
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="column" type="orm:column" minOccurs="0"/>
+ <xsd:choice>
+ <xsd:element name="lob" type="orm:lob" minOccurs="0"/>
+ <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+ <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="fetch" type="orm:fetch-type"/>
+ <xsd:attribute name="optional" type="xsd:boolean"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="fetch-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum FetchType { LAZY, EAGER };
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="LAZY"/>
+ <xsd:enumeration value="EAGER"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="lob">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Lob {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="temporal">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Temporal {
+ TemporalType value();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="orm:temporal-type"/>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="temporal-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum TemporalType {
+ DATE, // java.sql.Date
+ TIME, // java.sql.Time
+ TIMESTAMP // java.sql.Timestamp
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="DATE"/>
+ <xsd:enumeration value="TIME"/>
+ <xsd:enumeration value="TIMESTAMP"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="enumerated">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Enumerated {
+ EnumType value() default ORDINAL;
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="orm:enum-type"/>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="enum-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum EnumType {
+ ORDINAL,
+ STRING
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="ORDINAL"/>
+ <xsd:enumeration value="STRING"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="many-to-one">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface ManyToOne {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default EAGER;
+ boolean optional() default true;
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:choice>
+ <xsd:element name="join-column" type="orm:join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="join-table" type="orm:join-table"
+ minOccurs="0"/>
+ </xsd:choice>
+ <xsd:element name="cascade" type="orm:cascade-type"
+ minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="target-entity" type="xsd:string"/>
+ <xsd:attribute name="fetch" type="orm:fetch-type"/>
+ <xsd:attribute name="optional" type="xsd:boolean"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="cascade-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="cascade-all" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="cascade-persist" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="cascade-merge" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="cascade-remove" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="cascade-refresh" type="orm:emptyType"
+ minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="one-to-one">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OneToOne {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default EAGER;
+ boolean optional() default true;
+ String mappedBy() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:choice>
+ <xsd:element name="primary-key-join-column"
+ type="orm:primary-key-join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="join-column" type="orm:join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="join-table" type="orm:join-table"
+ minOccurs="0"/>
+ </xsd:choice>
+ <xsd:element name="cascade" type="orm:cascade-type"
+ minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="target-entity" type="xsd:string"/>
+ <xsd:attribute name="fetch" type="orm:fetch-type"/>
+ <xsd:attribute name="optional" type="xsd:boolean"/>
+ <xsd:attribute name="mapped-by" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="one-to-many">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OneToMany {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default LAZY;
+ String mappedBy() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="order-by" type="orm:order-by"
+ minOccurs="0"/>
+ <xsd:element name="map-key" type="orm:map-key"
+ minOccurs="0"/>
+ <xsd:choice>
+ <xsd:element name="join-table" type="orm:join-table"
+ minOccurs="0"/>
+ <xsd:element name="join-column" type="orm:join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:choice>
+ <xsd:element name="cascade" type="orm:cascade-type"
+ minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="target-entity" type="xsd:string"/>
+ <xsd:attribute name="fetch" type="orm:fetch-type"/>
+ <xsd:attribute name="mapped-by" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="join-table">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface JoinTable {
+ String name() default "";
+ String catalog() default "";
+ String schema() default "";
+ JoinColumn[] joinColumns() default {};
+ JoinColumn[] inverseJoinColumns() default {};
+ UniqueConstraint[] uniqueConstraints() default {};
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="join-column" type="orm:join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="inverse-join-column" type="orm:join-column"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="unique-constraint" type="orm:unique-constraint"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="catalog" type="xsd:string"/>
+ <xsd:attribute name="schema" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="many-to-many">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface ManyToMany {
+ Class targetEntity() default void.class;
+ CascadeType[] cascade() default {};
+ FetchType fetch() default LAZY;
+ String mappedBy() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="order-by" type="orm:order-by"
+ minOccurs="0"/>
+ <xsd:element name="map-key" type="orm:map-key"
+ minOccurs="0"/>
+ <xsd:element name="join-table" type="orm:join-table"
+ minOccurs="0"/>
+ <xsd:element name="cascade" type="orm:cascade-type"
+ minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="target-entity" type="xsd:string"/>
+ <xsd:attribute name="fetch" type="orm:fetch-type"/>
+ <xsd:attribute name="mapped-by" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="generated-value">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface GeneratedValue {
+ GenerationType strategy() default AUTO;
+ String generator() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="strategy" type="orm:generation-type"/>
+ <xsd:attribute name="generator" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="map-key">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface MapKey {
+ String name() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="order-by">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface OrderBy {
+ String value() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="inheritance">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface Inheritance {
+ InheritanceType strategy() default SINGLE_TABLE;
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="strategy" type="orm:inheritance-type"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="inheritance-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum InheritanceType
+ { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="SINGLE_TABLE"/>
+ <xsd:enumeration value="JOINED"/>
+ <xsd:enumeration value="TABLE_PER_CLASS"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="discriminator-value">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface DiscriminatorValue {
+ String value();
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:simpleType name="discriminator-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ public enum DiscriminatorType { STRING, CHAR, INTEGER };
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="STRING"/>
+ <xsd:enumeration value="CHAR"/>
+ <xsd:enumeration value="INTEGER"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="primary-key-join-column">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface PrimaryKeyJoinColumn {
+ String name() default "";
+ String referencedColumnName() default "";
+ String columnDefinition() default "";
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+ <xsd:attribute name="column-definition" type="xsd:string"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="discriminator-column">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface DiscriminatorColumn {
+ String name() default "DTYPE";
+ DiscriminatorType discriminatorType() default STRING;
+ String columnDefinition() default "";
+ int length() default 31;
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>
+ <xsd:attribute name="column-definition" type="xsd:string"/>
+ <xsd:attribute name="length" type="xsd:int"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="embeddable">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the settings and mappings for embeddable objects. Is
+ allowed to be sparsely populated and used in conjunction with
+ the annotations. Alternatively, the metadata-complete attribute
+ can be used to indicate that no annotations are to be processed
+ in the class. If this is the case then the defaulting rules will
+ be recursively applied.
+
+ @Target({TYPE}) @Retention(RUNTIME)
+ public @interface Embeddable {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="attributes" type="orm:embeddable-attributes"
+ minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="class" type="xsd:string" use="required"/>
+ <xsd:attribute name="access" type="orm:access-type"/>
+ <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="embeddable-attributes">
+ <xsd:sequence>
+ <xsd:element name="basic" type="orm:basic"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="transient" type="orm:transient"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="embedded">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface Embedded {}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="attribute-override" type="orm:attribute-override"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="mapped-superclass">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ Defines the settings and mappings for a mapped superclass. Is
+ allowed to be sparsely populated and used in conjunction with
+ the annotations. Alternatively, the metadata-complete attribute
+ can be used to indicate that no annotations are to be processed
+ If this is the case then the defaulting rules will be recursively
+ applied.
+
+ @Target(TYPE) @Retention(RUNTIME)
+ public @interface MappedSuperclass{}
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+ <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+ <xsd:element name="exclude-default-listeners" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="exclude-superclass-listeners" type="orm:emptyType"
+ minOccurs="0"/>
+ <xsd:element name="entity-listeners" type="orm:entity-listeners"
+ minOccurs="0"/>
+ <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+ <xsd:element name="post-persist" type="orm:post-persist"
+ minOccurs="0"/>
+ <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+ <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+ <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+ <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+ <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+ <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="class" type="xsd:string" use="required"/>
+ <xsd:attribute name="access" type="orm:access-type"/>
+ <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="sequence-generator">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface SequenceGenerator {
+ String name();
+ String sequenceName() default "";
+ int initialValue() default 1;
+ int allocationSize() default 50;
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="sequence-name" type="xsd:string"/>
+ <xsd:attribute name="initial-value" type="xsd:int"/>
+ <xsd:attribute name="allocation-size" type="xsd:int"/>
+ </xsd:complexType>
+
+ <!-- **************************************************** -->
+
+ <xsd:complexType name="table-generator">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+ public @interface TableGenerator {
+ String name();
+ String table() default "";
+ String catalog() default "";
+ String schema() default "";
+ String pkColumnName() default "";
+ String valueColumnName() default "";
+ String pkColumnValue() default "";
+ int initialValue() default 0;
+ int allocationSize() default 50;
+ UniqueConstraint[] uniqueConstraints() default {};
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="unique-constraint" type="orm:unique-constraint"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="table" type="xsd:string"/>
+ <xsd:attribute name="catalog" type="xsd:string"/>
+ <xsd:attribute name="schema" type="xsd:string"/>
+ <xsd:attribute name="pk-column-name" type="xsd:string"/>
+ <xsd:attribute name="value-column-name" type="xsd:string"/>
+ <xsd:attribute name="pk-column-value" type="xsd:string"/>
+ <xsd:attribute name="initial-value" type="xsd:int"/>
+ <xsd:attribute name="allocation-size" type="xsd:int"/>
+ </xsd:complexType>
+
+</xsd:schema>
+
+
More information about the hibernate-commits
mailing list