changeset 10717:3932162186a7 jdk-10+34

8178275: Ensemble: Upgrade version of Lucene to 7.1.0 Reviewed-by: aghaisas, prr
author kcr
date Tue, 28 Nov 2017 07:49:31 -0800
parents 004b61ffd150
children 8754c88dbb63 f98d189cb8e7
files .hgignore apps/samples/.classpath apps/samples/Ensemble8/build.gradle apps/samples/Ensemble8/build.xml apps/samples/Ensemble8/lib/lucene-core-3.2.0.jar apps/samples/Ensemble8/lib/lucene-grouping-3.2.0.jar apps/samples/Ensemble8/nbproject/project.properties apps/samples/Ensemble8/src/app/java/ensemble/SearchPopover.java apps/samples/Ensemble8/src/app/java/ensemble/search/ClasspathDirectory.java apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.cfe apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.cfs apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.si apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 build.gradle
diffstat 26 files changed, 259 insertions(+), 1308 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Fri Nov 24 15:18:20 2017 +0530
+++ b/.hgignore	Tue Nov 28 07:49:31 2017 -0800
@@ -28,7 +28,10 @@
 test.keystore
 ^webrev*
 nbproject/private/
+Ensemble8/src/generated/resources/ensemble/search/index/write.lock
+Ensemble8/lib/lucene.*.jar
 ^.*~$
+
 syntax: glob
 *.vcxproj.user
 */Release/*
--- a/apps/samples/.classpath	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/.classpath	Tue Nov 28 07:49:31 2017 -0800
@@ -12,8 +12,9 @@
     <classpathentry kind="src" path="Ensemble8/src/compiletime/java"/>
     <classpathentry kind="src" path="Ensemble8/src/generated/java"/>
     <classpathentry kind="src" path="Ensemble8/src/generated/resources"/>
-    <classpathentry kind="lib" path="Ensemble8/lib/lucene-core-3.2.0.jar"/>
-    <classpathentry kind="lib" path="Ensemble8/lib/lucene-grouping-3.2.0.jar"/>
+    <classpathentry kind="lib" path="Ensemble8/lib/lucene-core-7.1.0.jar"/>
+    <classpathentry kind="lib" path="Ensemble8/lib/lucene-grouping-7.1.0.jar"/>
+    <classpathentry kind="lib" path="Ensemble8/lib/lucene-queryparser-7.1.0.jar"/>
     <classpathentry kind="src" path="MandelbrotSet/src"/>
     <classpathentry kind="src" path="Modena/src/main/java"/>
     <classpathentry kind="src" path="Modena/src/main/resources"/>
--- a/apps/samples/Ensemble8/build.gradle	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/build.gradle	Tue Nov 28 07:49:31 2017 -0800
@@ -4,8 +4,9 @@
 def mainClassName = "ensemble.EnsembleApp"
 
 def FileCollection apachecp = files(
-   "./lib/lucene-grouping-3.2.0.jar",
-   "./lib/lucene-core-3.2.0.jar")
+   "./lib/lucene-core-7.1.0.jar",
+   "./lib/lucene-grouping-7.1.0.jar",
+   "./lib/lucene-queryparser-7.1.0.jar")
 
 sourceSets {
     main {
--- a/apps/samples/Ensemble8/build.xml	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/build.xml	Tue Nov 28 07:49:31 2017 -0800
@@ -122,15 +122,41 @@
     <target name="-pre-jar">
         <delete dir="${build.classes.dir}/ensemble/compiletime"/>
     </target>
-    
+
     <!-- COPY LIBS INTO JAR FILE: so that we have a simple single jar application -->
     <target name="-post-jar" depends="jfx-deployment">
         <zip destfile="${dist.jar}" update="true">
-            <zipfileset src="${file.reference.lucene-core-3.2.0.jar}"/>
-            <zipfileset src="${file.reference.lucene-grouping-3.2.0.jar}"/>
+            <!-- Rename license and notice file -->
+            <mappedresources>
+                <zipfileset src="${file.reference.lucene-core-7.1.0.jar}">
+                    <include name="META-INF/LICENSE.txt"/>
+                </zipfileset>
+                <globmapper from="*/LICENSE.txt" to="*/LUCENE_LICENSE.TXT" />
+            </mappedresources>
+            <mappedresources>
+                <zipfileset src="${file.reference.lucene-core-7.1.0.jar}">
+                    <include name="META-INF/NOTICE.txt"/>
+                </zipfileset>
+                <globmapper from="*/NOTICE.txt" to="*/LUCENE_NOTICE.TXT" />
+            </mappedresources>
+
+            <!-- Include the core SPI services -->
+            <zipfileset src="${file.reference.lucene-core-7.1.0.jar}">
+                <include name="META-INF/services/**"/>
+            </zipfileset>
+
+            <zipfileset src="${file.reference.lucene-core-7.1.0.jar}">
+                <exclude name="META-INF/**"/>
+            </zipfileset>
+            <zipfileset src="${file.reference.lucene-grouping-7.1.0.jar}">
+                <exclude name="META-INF/**"/>
+            </zipfileset>
+            <zipfileset src="${file.reference.lucene-queryparser-7.1.0.jar}">
+                <exclude name="META-INF/**"/>
+            </zipfileset>
         </zip>
     </target>
-    
+
     <target name="ensemble-generate-samples-class" depends="init,compile" description="Ensemble: Generate source for all samples data class.">
        <java classname="ensemble.compiletime.EnsembleCompiletimeMain" fork="true">
          <arg value="samples"/>
Binary file apps/samples/Ensemble8/lib/lucene-core-3.2.0.jar has changed
Binary file apps/samples/Ensemble8/lib/lucene-grouping-3.2.0.jar has changed
--- a/apps/samples/Ensemble8/nbproject/project.properties	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/nbproject/project.properties	Tue Nov 28 07:49:31 2017 -0800
@@ -31,15 +31,17 @@
 dist.javadoc.dir=${dist.dir}/javadoc
 endorsed.classpath=
 excludes=
-file.reference.lucene-core-3.2.0.jar=lib/lucene-core-3.2.0.jar
-file.reference.lucene-grouping-3.2.0.jar=lib/lucene-grouping-3.2.0.jar
+file.reference.lucene-core-7.1.0.jar=lib/lucene-core-7.1.0.jar
+file.reference.lucene-grouping-7.1.0.jar=lib/lucene-grouping-7.1.0.jar
+file.reference.lucene-queryparser-7.1.0.jar=lib/lucene-queryparser-7.1.0.jar
 includes=**
 jar.archive.disabled=${jnlp.enabled}
 jar.compress=true
 jar.index=${jnlp.enabled}
 javac.classpath=\
-    ${file.reference.lucene-core-3.2.0.jar}:\
-    ${file.reference.lucene-grouping-3.2.0.jar}
+    ${file.reference.lucene-core-7.1.0.jar}:\
+    ${file.reference.lucene-grouping-7.1.0.jar}:\
+    ${file.reference.lucene-queryparser-7.1.0.jar}
 # Space-separated list of extra javac options
 compile.patch=@../../../build/compile.args
 javac.compilerargs=${compile.patch} 
--- a/apps/samples/Ensemble8/src/app/java/ensemble/SearchPopover.java	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/SearchPopover.java	Tue Nov 28 07:49:31 2017 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -42,16 +42,14 @@
 import java.util.Map;
 import javafx.animation.KeyFrame;
 import javafx.animation.Timeline;
-import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.geometry.Point2D;
 import javafx.scene.control.Tooltip;
 import javafx.scene.input.KeyCode;
 import javafx.scene.input.KeyEvent;
 import javafx.util.Duration;
-import org.apache.lucene.queryParser.ParseException;
+import org.apache.lucene.queryparser.classic.ParseException;
 
 
 /**
--- a/apps/samples/Ensemble8/src/app/java/ensemble/search/ClasspathDirectory.java	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/search/ClasspathDirectory.java	Tue Nov 28 07:49:31 2017 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -36,12 +36,15 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
+import org.apache.lucene.store.Lock;
 
 /**
  * A very simple implementation of lucene Directory, it reads a index from the classpath in a directory called index
@@ -75,8 +78,9 @@
         return allFiles;
     }
 
-    @Override public IndexInput openInput(String s) throws IOException {
+    @Override public IndexInput openInput(String s, IOContext ioc) throws IOException {
         return new ClassPathIndexInput(
+            s,
             getClass().getResourceAsStream("index/"+s),
             fileLengthMap.get(s).intValue()
         );
@@ -87,7 +91,8 @@
         private int pointer = 0;
         private int length;
 
-        private ClassPathIndexInput(InputStream in, int length) throws IOException {
+        private ClassPathIndexInput(String resourceDescription, InputStream in, int length) throws IOException {
+            super(resourceDescription);
             this.length = length;
             // read whole file into memory, so we can provide random access
             data = new byte[length];
@@ -108,6 +113,13 @@
             in.close();
         }
 
+        private ClassPathIndexInput(String resourceDescription, byte[] data) {
+            super(resourceDescription);
+            this.data = data;
+            this.pointer = 0;
+            this.length = data.length;
+        }
+
         @Override public byte readByte() throws IOException {
             return data[pointer ++];
         }
@@ -124,13 +136,48 @@
         @Override public void seek(long l) throws IOException { pointer = (int)l; }
 
         @Override public long length() { return length; }
+
+        @Override
+        public IndexInput slice(String sliceDescription, long offset, long length) throws IOException {
+            int o = (int) offset;
+            int l = (int) length;
+            byte[] sliceData = new byte[l];
+            System.arraycopy(data, o, sliceData, 0, l);
+            return new ClassPathIndexInput(sliceDescription, sliceData);
+        }
     }
 
     @Override public void close() throws IOException {}
-    @Override public boolean fileExists(String s) throws IOException { throw new UnsupportedOperationException("Not implemented"); }
-    @Override public long fileModified(String s) throws IOException { throw new UnsupportedOperationException("Not implemented"); }
-    @Override @Deprecated public void touchFile(String s) throws IOException { throw new UnsupportedOperationException("Not implemented"); }
     @Override public void deleteFile(String s) throws IOException { throw new UnsupportedOperationException("Not implemented"); }
     @Override public long fileLength(String s) throws IOException { throw new UnsupportedOperationException("Not implemented"); }
-    @Override public IndexOutput createOutput(String s) throws IOException { throw new UnsupportedOperationException("Not implemented"); }
+    @Override
+    public IndexOutput createOutput(String string, IOContext ioc) throws IOException {
+        throw new UnsupportedOperationException("Not implemented");
+    }
+
+    @Override
+    public IndexOutput createTempOutput(String string, String string1, IOContext ioc) throws IOException {
+        throw new UnsupportedOperationException("Not implemented");
+    }
+
+    @Override
+    public void sync(Collection<String> clctn) throws IOException {
+        throw new UnsupportedOperationException("Not implemented");
+    }
+
+    @Override
+    public void rename(String string, String string1) throws IOException {
+        throw new UnsupportedOperationException("Not implemented");
+    }
+
+    @Override
+    public void syncMetaData() throws IOException {
+        throw new UnsupportedOperationException("Not implemented");
+    }
+
+    @Override
+    public Lock obtainLock(String string) throws IOException {
+        throw new UnsupportedOperationException("Not implemented");
+    }
+
 }
--- a/apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/src/app/java/ensemble/search/IndexSearcher.java	Tue Nov 28 07:49:31 2017 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2014, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -35,32 +35,37 @@
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
 import javafx.application.ConditionalFeature;
 import javafx.application.Platform;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.queryParser.MultiFieldQueryParser;
-import org.apache.lucene.queryParser.ParseException;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;
+import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.grouping.GroupDocs;
 import org.apache.lucene.search.grouping.SearchGroup;
-import org.apache.lucene.search.grouping.SecondPassGroupingCollector;
+import org.apache.lucene.search.grouping.TermGroupSelector;
 import org.apache.lucene.search.grouping.TopGroups;
-import org.apache.lucene.util.Version;
+import org.apache.lucene.search.grouping.TopGroupsCollector;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Class for searching the index
  */
 public class IndexSearcher {
-    private final static List<SearchGroup> searchGroups = new ArrayList<>();
+    private final static List<SearchGroup<BytesRef>> searchGroups = new ArrayList<>();
     static {
         for (DocumentType dt: DocumentType.values()){
-            SearchGroup searchGroup = new SearchGroup();
-            searchGroup.groupValue = dt.toString();
+            SearchGroup<BytesRef> searchGroup = new SearchGroup();
+            searchGroup.groupValue = new BytesRef(dt.toString());
             searchGroup.sortValues = new Comparable[]{5f};
             searchGroups.add(searchGroup);
         }
@@ -71,24 +76,25 @@
 
     public IndexSearcher() {
         try {
-            searcher = new org.apache.lucene.search.IndexSearcher(new ClasspathDirectory());
+            searcher = new org.apache.lucene.search.IndexSearcher(DirectoryReader.open(new ClasspathDirectory()));
         } catch (IOException e) {
             e.printStackTrace();
         }
-        analyzer = new StandardAnalyzer(Version.LUCENE_31);
-        parser = new MultiFieldQueryParser(Version.LUCENE_31, new String[]{"name","bookTitle","chapter","description"}, analyzer);
+        analyzer = new StandardAnalyzer();
+        parser = new MultiFieldQueryParser(new String[]{"name","bookTitle","chapter","description"}, analyzer);
     }
 
     public Map<DocumentType, List<SearchResult>> search(String searchString) throws ParseException {
         Map<DocumentType, List<SearchResult>> resultMap = new EnumMap<>(DocumentType.class);
         try {
             Query query = parser.parse(searchString);
-            final SecondPassGroupingCollector collector = new SecondPassGroupingCollector("documentType", searchGroups,
+            final TopGroupsCollector<BytesRef> collector = new TopGroupsCollector(
+                    new TermGroupSelector("documentType"), searchGroups,
                     Sort.RELEVANCE, Sort.RELEVANCE, 10, true, false, true);
             searcher.search(query, collector);
-            final TopGroups groups = collector.getTopGroups(0);
-            for (GroupDocs groupDocs : groups.groups) {
-                DocumentType docType = DocumentType.valueOf(groupDocs.groupValue);
+            final TopGroups<BytesRef> groups = collector.getTopGroups(0);
+            for (GroupDocs<BytesRef> groupDocs : groups.groups) {
+                DocumentType docType = DocumentType.valueOf(groupDocs.groupValue.utf8ToString());
                 List<SearchResult> results = new ArrayList<>();
                 for (ScoreDoc scoreDoc : groupDocs.scoreDocs) {
                     if ((Platform.isSupported(ConditionalFeature.WEB)) || (docType != DocumentType.DOC)) {
--- a/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/src/compiletime/java/ensemble/compiletime/search/BuildEnsembleSearchIndex.java	Tue Nov 28 07:49:31 2017 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2015, Oracle and/or its affiliates.
+ * Copyright (c) 2008, 2017, Oracle and/or its affiliates.
  * All rights reserved. Use is subject to license terms.
  *
  * This file is available and licensed under the following license:
@@ -32,7 +32,11 @@
 package ensemble.compiletime.search;
 
 import ensemble.compiletime.Sample;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -51,12 +55,15 @@
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.document.SortedDocValuesField;
+import org.apache.lucene.document.StringField;
+import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.util.Version;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Generate the lucene index that Ensemble uses for its search
@@ -71,6 +78,8 @@
             System.out.println("Creating Documents for Samples...");
             docs.addAll(indexSamples(allSamples));
             System.out.println("Creating tasks for getting all documentation...");
+            System.out.println("javaDocBaseUrl = " + javaDocBaseUrl);
+            System.out.println("javafxDocumentationHome = " + javafxDocumentationHome);
             tasks.addAll(indexJavaDocAllClasses(javaDocBaseUrl));
             tasks.addAll(indexAllDocumentation(javafxDocumentationHome));
             // execute all the tasks in 32 threads, collecting all the documents to write
@@ -94,24 +103,22 @@
             }
             // create index
             System.out.println("Indexing to directory '" + indexDir + "'...");
-            Directory dir = FSDirectory.open(indexDir);
-            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
-            IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_31, analyzer);
+            Directory dir = FSDirectory.open(indexDir.toPath());
+            Analyzer analyzer = new StandardAnalyzer();
+            IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
             iwc.setOpenMode(OpenMode.CREATE);
             try (IndexWriter writer = new IndexWriter(dir, iwc)) {
                 // write all docs
                 System.out.println("Writing ["+docs.size()+"] documents to index....");
                 writer.addDocuments(docs);
-                // optimize the writen index
-                System.out.println("Optimizing search index....");
-                writer.optimize();
                 System.out.println("NUMBER OF INDEXED DOCUMENTS = ["+writer.numDocs()+"]");
             }
             // write file listing all the search index files, so we know what
             // is in the jar file at runtime
             try (FileWriter listAllOut = new FileWriter(new File(indexDir,"listAll.txt"))) {
                 for (String fileName: dir.listAll()) {
-                    if (!"listAll.txt".equals(fileName)) { // don't include the "listAll.txt" file
+                    // don't include the "listAll.txt" file or "write.lock"
+                    if (!"listAll.txt".equals(fileName) && !"write.lock".equals(fileName)) {
                         Long length = dir.fileLength(fileName);
                         listAllOut.write(fileName);
                         listAllOut.write(':');
@@ -167,11 +174,11 @@
                 }
                 // write documentation section entry to index
                 docs.add(createDocument(DocumentType.DOC,
-                    new Field("bookTitle", docPage.bookTitle, Field.Store.YES, Field.Index.ANALYZED),
-                    new Field("chapter", docPage.chapter==null? "" : docPage.chapter, Field.Store.YES, Field.Index.ANALYZED),
-                    new Field("name", section.name, Field.Store.YES, Field.Index.ANALYZED),
-                    new Field("description", section.content, Field.Store.NO, Field.Index.ANALYZED),
-                    new Field("ensemblePath", section.url, Field.Store.YES, Field.Index.NOT_ANALYZED)
+                    new TextField("bookTitle", docPage.bookTitle, Field.Store.YES),
+                    new TextField("chapter", docPage.chapter==null? "" : docPage.chapter, Field.Store.YES),
+                    new TextField("name", section.name, Field.Store.YES),
+                    new TextField("description", section.content, Field.Store.NO),
+                    new StringField("ensemblePath", section.url, Field.Store.YES)
                 ));
             }
             // handle next page if there is one
@@ -206,11 +213,11 @@
         for (Sample sample: allSamples) {
             // write class entry to index
             docs.add(createDocument(DocumentType.SAMPLE,
-                new Field("name", sample.name, Field.Store.YES, Field.Index.ANALYZED),
-                new Field("description", sample.description, Field.Store.NO, Field.Index.ANALYZED),
-                new Field("shortDescription", sample.description.substring(0, Math.min(160, sample.description.length())),
-                        Field.Store.YES, Field.Index.NOT_ANALYZED),
-                new Field("ensemblePath", "sample://"+sample.ensemblePath, Field.Store.YES, Field.Index.NOT_ANALYZED)
+                new TextField("name", sample.name, Field.Store.YES),
+                new TextField("description", sample.description, Field.Store.NO),
+                new StringField("shortDescription", sample.description.substring(0, Math.min(160, sample.description.length())),
+                        Field.Store.YES),
+                new StringField("ensemblePath", "sample://"+sample.ensemblePath, Field.Store.YES)
             ));
         }
         return docs;
@@ -257,13 +264,13 @@
         ///System.out.println("classDescription = " + classDescription);
         // write class entry to index
         docs.add(createDocument(documentType,
-                new Field("name", className, Field.Store.YES, Field.Index.ANALYZED),
-                new Field("description", classDescription, Field.Store.NO, Field.Index.ANALYZED),
-                new Field("shortDescription", classDescription.substring(0,Math.min(160,classDescription.length())),
-                        Field.Store.YES, Field.Index.NOT_ANALYZED),
-                new Field("package", packageName, Field.Store.YES, Field.Index.ANALYZED),
-                new Field("url", url, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                new Field("ensemblePath", url, Field.Store.YES, Field.Index.NOT_ANALYZED) // TODO what do we need here
+                new TextField("name", className, Field.Store.YES),
+                new TextField("description", classDescription, Field.Store.NO),
+                new StringField("shortDescription", classDescription.substring(0,Math.min(160,classDescription.length())),
+                        Field.Store.YES),
+                new TextField("package", packageName, Field.Store.YES),
+                new StringField("url", url, Field.Store.YES),
+                new StringField("ensemblePath", url, Field.Store.YES) // TODO what do we need here
         ));
 
         // extract properties
@@ -282,14 +289,14 @@
                 //System.out.println("                    oracle url = " + url);
                 // write class entry to index
                 docs.add(createDocument(DocumentType.PROPERTY,
-                        new Field("name", propertyName, Field.Store.YES, Field.Index.ANALYZED),
-                        new Field("description", description, Field.Store.NO, Field.Index.ANALYZED),
-                        new Field("shortDescription", description.substring(0,Math.min(160,description.length())),
-                                Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("url", propUrl, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("className", className, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("package", packageName, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("ensemblePath", url + "#" + propertyName, Field.Store.YES, Field.Index.NOT_ANALYZED) // TODO what do we need here
+                        new TextField("name", propertyName, Field.Store.YES),
+                        new TextField("description", description, Field.Store.NO),
+                        new StringField("shortDescription", description.substring(0,Math.min(160,description.length())),
+                                Field.Store.YES),
+                        new StringField("url", propUrl, Field.Store.YES),
+                        new StringField("className", className, Field.Store.YES),
+                        new StringField("package", packageName, Field.Store.YES),
+                        new StringField("ensemblePath", url + "#" + propertyName, Field.Store.YES) // TODO what do we need here
                 ));
             }
         }
@@ -309,14 +316,14 @@
                 //System.out.println("                    oracle url = " + url);
                 // write class entry to index
                 docs.add(createDocument(DocumentType.METHOD,
-                        new Field("name", methodName, Field.Store.YES, Field.Index.ANALYZED),
-                        new Field("description", description, Field.Store.NO, Field.Index.ANALYZED),
-                        new Field("shortDescription", description.substring(0,Math.min(160,description.length())),
-                                Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("url", methodUrl, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("className", className, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("package", packageName, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("ensemblePath", url + "#" + methodName + "()", Field.Store.YES, Field.Index.NOT_ANALYZED) // TODO what do we need here
+                        new TextField("name", methodName, Field.Store.YES),
+                        new TextField("description", description, Field.Store.NO),
+                        new StringField("shortDescription", description.substring(0,Math.min(160,description.length())),
+                                Field.Store.YES),
+                        new StringField("url", methodUrl, Field.Store.YES),
+                        new StringField("className", className, Field.Store.YES),
+                        new StringField("package", packageName, Field.Store.YES),
+                        new StringField("ensemblePath", url + "#" + methodName + "()", Field.Store.YES) // TODO what do we need here
                 ));
             }
         }
@@ -336,14 +343,14 @@
                 //System.out.println("                    oracle url = " + url);
                 // write class entry to index
                 docs.add(createDocument(DocumentType.FIELD,
-                        new Field("name", fieldName, Field.Store.YES, Field.Index.ANALYZED),
-                        new Field("description", description, Field.Store.NO, Field.Index.ANALYZED),
-                        new Field("shortDescription", description.substring(0,Math.min(160,description.length())),
-                                Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("url", fieldUrl, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("className", className, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("package", packageName, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("ensemblePath", url + "#" + fieldName, Field.Store.YES, Field.Index.NOT_ANALYZED) // TODO what do we need here
+                        new TextField("name", fieldName, Field.Store.YES),
+                        new TextField("description", description, Field.Store.NO),
+                        new StringField("shortDescription", description.substring(0,Math.min(160,description.length())),
+                                Field.Store.YES),
+                        new StringField("url", fieldUrl, Field.Store.YES),
+                        new StringField("className", className, Field.Store.YES),
+                        new StringField("package", packageName, Field.Store.YES),
+                        new StringField("ensemblePath", url + "#" + fieldName, Field.Store.YES) // TODO what do we need here
                 ));
             }
         }
@@ -363,14 +370,14 @@
                 ///System.out.println("                    oracle url = " + url);
                 // write class entry to index
                 docs.add(createDocument(DocumentType.ENUM,
-                        new Field("name", enumName, Field.Store.YES, Field.Index.ANALYZED),
-                        new Field("description", description, Field.Store.NO, Field.Index.ANALYZED),
-                        new Field("shortDescription", description.substring(0,Math.min(160,description.length())),
-                                Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("url", enumUrl, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("className", className, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("package", packageName, Field.Store.YES, Field.Index.NOT_ANALYZED),
-                        new Field("ensemblePath", url+ "#" + enumName, Field.Store.YES, Field.Index.NOT_ANALYZED) // TODO what do we need here
+                        new TextField("name", enumName, Field.Store.YES),
+                        new TextField("description", description, Field.Store.NO),
+                        new StringField("shortDescription", description.substring(0,Math.min(160,description.length())),
+                                Field.Store.YES),
+                        new StringField("url", enumUrl, Field.Store.YES),
+                        new StringField("className", className, Field.Store.YES),
+                        new StringField("package", packageName, Field.Store.YES),
+                        new StringField("ensemblePath", url+ "#" + enumName, Field.Store.YES) // TODO what do we need here
                 ));
             }
         }
@@ -387,8 +394,9 @@
     private static Document createDocument(DocumentType documentType, Field... fields) throws IOException {
         // make a new, empty document
         Document doc = new Document();
-        // add doc type field
-        doc.add(new Field("documentType", documentType.toString(), Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
+        // add doc type field + sorting field
+        doc.add(new StringField("documentType", documentType.toString(), Field.Store.YES));
+        doc.add(new SortedDocValuesField("documentType", new BytesRef(documentType.toString())));
         // add other fields
         if (fields != null) {
             for (Field field : fields) {
@@ -409,8 +417,9 @@
     private static void addDocument(IndexWriter writer, DocumentType documentType, Field... fields) throws IOException {
         // make a new, empty document
         Document doc = new Document();
-        // add doc type field
-        doc.add(new Field("documentType", documentType.toString(), Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
+        // add doc type field + sorting field
+        doc.add(new StringField("documentType", documentType.toString(), Field.Store.YES));
+        doc.add(new SortedDocValuesField("documentType", new BytesRef(documentType.toString())));
         // add other fields
         if (fields != null) {
             for (Field field : fields) {
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.cfe has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.cfs has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdt has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fdx has changed
--- a/apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.fnm	Fri Nov 24 15:18:20 2017 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-documentTypenamedescriptionshortDescriptionensemblePathpackageurl	className
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.frq	Fri Nov 24 15:18:20 2017 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1170 +0,0 @@
-									
			
-


    !!!!!!"""""""####$$$$$%%&&&&&&&**+&''''''(((()))*****,,,-.///00//00001111122222223333444478844455555566666778888999999:;;;;;;<<=<====>>>?@@@ @@AA AAA BB!BBB!BCCCC!EE"E"FFF#GGGG#GHHH$III&1$OO'OO(P(QQQRRRRRRRR)RR)SSS)SSSTTTTTTTTTT*UUUU*UUU+VVVVV+VWWWW+W,XX,XYYYYYY,Z-ZZZZ-[[-\\\\\\\\]]]\\\.].]]]]]]^^^^^/^/__________``````````aaaaaaaaaabbbbbbbbccccccccccdd2d2d2e2ff3gg4h4}~h4i4jj5mm6nn7o7ooo7pppp8pqqq8r9rss9ss9s:t:tu:uuuuuuvvvvvvvvvvvvvvvw;ww;xxxxxxxyy<yyz=z{{{{={{|||>|}}||||||}}}}>~~~~?BÅ?@π׀@AABɅBцCLJCDψDDEEًFFFǍӍߍFGяGHϐHHH˒ђےIIÔϔՔJJKחK˗їLəLŚݚMN˜ӜۜNOO͞l5}
6
-		5
-P
-o"#@':-g1!E	D
8w
]&uU$xx"$.xLxU%V.K
Y%	
-e
-[%b)!

-!!E UU
(	qD#, <


;U	bbk	.l*")#&'.&$1DOOƅƅU0IVIU1$U1>5$N;UU	
;G0
-YCFUIUUV
-{	
-E 1	6*1{G
-!U/NQϏEUU
2<YCV
B
-j>45UWU	G	>'U
-J
-$U5$
9;&c.	
-WQ	C1WUV#E%[Wc		1c5$U		c	$m+
8W$fV1Uݍ;1Um+-"$=b{	
Tl*
x4s+$,f3E!8!_EVEU*[$;O1=
-
)	S~UIU$**e!& yU,W/DžUI1WDžq
	UUUUUUU'[A#7
- C#'

H	333335)n	#3	
-o)ylC;k=
Wb3		.*m9CS͐SSSVF

1	!k$e		
F$:$$$
	#D		!'

-]`%-=E>.\$.G5.2z%.I1*
-[1=08<1

-!!	E9						ME
+#E'/!%\0)C#Hz0
'%K2_ 
-C
-cC]A#1





%
a?E	Y 	!
-
-;4)04333333)#W8
-6i%/OL<-	e

UGGI-Mg3	
	M<g+		V=q
-1	e	/		S%H	7C
/B==&Q	#/5	 )Ag{CM_E111113_#{?{
9	#wg			WY"4		/W!
IT	\E_[A,:^
)/

-6
)213	MQ;	+





%
wMXA/?A
0/	%$/^e[)!1~$U5/9.
m)K#
-
-"SK
	!"
1	
$

-/-
Qa]!	
/
f%aK!7)Ki5SA!3U4	%WA%	Y7mmik\222222>
eQaG+kmUQ+IW=/'
;/3
m)W1




;
3
9
a!UO1+!a M

U'y'
	S?%[.U
Ga7
U"qM
%
GGF@)Y.gCy###+
O6P+3;	k/(+"		!Fi		%_J3
-I

G%Sg0	U0+S7


-u#	E
2+	CK;"	#=IiQK333335[|CSk	E'/

 #,#DV#1
!
!
!
!
!
!
)






;
ϝQѝI^UA)1
		K	!SooYeo%;+"WUBI$,%	'1?	=#	'3	/		ua/-)
-/	"g),
-P*"%F)[	[[a
+B	%o/1&*<*%!
=B	4
	+	
-7A	C1r͐!	

	5	
-	aG5+	y
	5	M	O			'AWφ?.mt?
y//}=)e]-	'5r2C=###.}U333335Su[6S4	]	`%SZ&Bg;a3$!R+%?yG[w3m!??'		' 	*3333350EE5?-.۞		3=O
7?{Yy%S

5#!&?@](;8'FF#%!6(p#U
-}Mc'y|-	 '(P
--&y	|)*,%1U,H}E
-
-=,!!'
-?39|
#			9w!;-9#I
-0
$c3Wm3(&7*#*$$
&c6-c-g65'c----g6
J	
?Gl%!!ׇeeTeee13	
>Co1&$ݒO	
-
-
-+
-C	|kYs?H	73kA-
K
+)eKkCC	
'S+}=A
R=G$jHDž#Hy8??9?C	'M	%	Dž	_%
-]E!P		P	CS%###')GW
;#;
g?			y1w
-H׌&uI*'/	CB6<$IG		




#C
3
9
*F@CII			A[3!
-1=Coh
=>85A
	
-#	
w	3'**/%1!!;[C$H}U	
 :[['1T
}|Y[-
-$C+9/
\		_	oRuMa?%Q	!"	
-	





%
[/4333335#U.1I9g
		7
	
1
	SE75
		
!			9kkk;	 G='UUU						k}"*
	k"	
$!Zqq	3\%		
Y[%	K	*B33kmOm#S\<
=_(
!=]G@Eq/37n7	K5o9	!9	q8u]!!	GW{	O1kq
g	!U3CkK
-
-
0
;o>/+I$Y4
-
-
-
-
-
-
-)*T0&:)4333333)#	
-	Q'}u6"#*f
/UiM9!!!!!#	M	e-u1
					
		

		

		aU	W
;
%!)R	#C
;??7
a
	
-

}YO]
3iEN'{!		"'sSGh+m	V]%u>,?'Sm?E/I-$C$*0o

-[=	%!A,/sGI-%###5+(u1!1%





%
L&Y"+90#C		)<
 ?O
-?	FC;	=
-YS}"$L%,{

H.U59J1s3	K+		(&;71	%'9!]	'|MO			K7'
S9/-)I5"/EF	/#$-_
-
-					
-	KM]
-
		~
-	
-! z

-
	'
B		!				G				[				?		5		?		Y		%		K	M	U		G	M"
-{##	
-
=])	CI$*
3


K
+
S	&'Rn	ƅS&%
		
/		+	>	/% 					
+'$
A\D2RS3	Mm
3#	E%
	I99-y-11Cu7};M
-
5
m[}-	UC/MkuU/+/
	s	A_
A=yM	QEm9UgAPi!}	
-+E/%A!	1!!C	.HO͐		
0<%Z)
)3V%	F;U%Ec	
-
-#]#+/5#

			+	!gCk=H*

wd
	
+
-8	 	 	 	 	 	"	
!	
%!
-	*$A1S?w0M	
-		1Q"|	
-_!ojeQ
W	z);j"II$9		J	
-		%Q
-1#GIG@m
-F<	z0`8E͐$!HYC-=!~qCCg!333333
#0̐'	222222)"0+͐9K

-C
FT+';<WqFUmob4

		@3g&
k		


-uj@

-	) 4
////yx
a		4C6/gGY,&i'%'i)%)i+%+
X
]
-
[#,====	===LB18e;I%
-!K	|131K)3	?	K	K'

##P%'/ee
-*n
Gg			!	C-3		
%
	
	
	
b

-?p*5G		A?t
2?[e
-/\;a	
u!#EM
-'?p+Ck
-(((((*+	?--{}7

	gC+./!5WY
!-)7
--
K					COC
?		[eK-+/;#sIE=H+5=[,&P	mq	Ci2}saG@
y)a!}	A1!










!

%
	yi#
-#	Cq
-<W5A\#S!	 (/+|CGJK
F$	
7%HZ9W5	AV+H1>5		
		
		
		
		
		
		7!$1E0>w{=RNsle/99L;W
iC;qj+;)
-$sC;;n+!'aC
E;]]!! 
-

B@M	'P##
!Y'H"U.Cu]`1u9;;Q3A>*$]V'.[
$"ƅ]##%

Dž'	3-I
337J9	

-A	'UU*U2F>03!~WR	&!M_Dž2V		E׉D^;lq	
-}
-	-^	Ic%&	
8 OH	ƅK	f		
0?	o

-
-
!,
+A)(I BfS3Bu	
-';				
	
	
	
		

	)!
		'/5r=1	'
-c
	'/
-'
-II	0
J8	QQ23 !,J-(?C?C?C^!2c##+%


	'!)
I#'#n)
g"
3'@ӂ%
#
- (o%?&2Ie;	
	
]$
͐&y 
-F&z4333333)#A

/Ua!>)]			yU
u	6?+q%a+GI	S[ok[Rs
-i	o+I/

-EWM- =( .Th
-L8     "Ld,				
	
	
	`T'

-
-





#C
3
9
0Ue	C
;);O6	Oc?G6 
G[k#qq'
-				"	
		

		

	WOB}[M

-B
-	5S8u#9Ln59C+
C	+#E+C!#
(


#+!		#	""G)-!$
-K333335				
&)C
-	
-$Dž'O
-
-!#=	
-
-
-
-	GW

-
	

-;
-&3$
-"'
+%5!%$	' -.̐	+p		
-7	;2


|3u
S		!yG%}Y
'#)J͐%$@
l				###I2$r!!!!+111111		
	.U$$$$$$-!CE'CEm:l	'>BMg'bI'U!)aN@#b=7g=M+	
`I











%;${v	"
-#K!)eC]	1,
-:)!+&+0x$/$Dž	/;Uj	K?%!?6J#0k%u	$
-e;%)A	6#&I	.~7[#O-EGYm')		5M*I

-'cDž#)SylY)m[c;)c]	.	%=o	QC++%i-	w[LQK	=		P
-c3		*1,͐Yы
#K
	7$$!
-
-1





%
/*	1/&
V	BCS
-`	g	
 3'	
#	W-(
w


=z&/m+
(.






oqm		{
-.W]#*%!);%
!
-,	*[);$*
-B0
	(),8p&"...;
)#!.GTCQ
/;)/I5/tS?%	Ct!QE	:%	.W~~~~)$#A4333333)#.O&% K)g/"WC+C@33-2@//[S1C/5S
E *


J !+(%%;+t'A%1{7#%
-#=.	
m
-g
-kC*
'mA{	!777777777
-Y.2j*2RJ9	
	W
+-%[[[[[[I
-y
%
		
-	
	




-
u
 
({*\y?C1
-	cc=;%  Dž]\šš
ٌ
-#$Y%2#W*C5EBA@###^	=OHC0;4333333)#0,HFS'!G$*#W5)
	3=
K[
3IK!CC5;;'S?1+}9=(7'-
-E

K
'I	CC'S+}=4333335
%=!+U',=
`8&]y	
-#
-;
"S"#D]"	@%
 	[#&		1	Q$	i;=	$v%m
SK
	K	CC%'S+}=Q
-	"4
	)'37I
71333335qsj
-#						-=M]W]	U	
L
#I	 8zQ]CE	3>	
>	
@	

''5/f
;/=O'
-	37	c		o&mN		$lL
::*Q9:_X<A		!;IߘXww
-}7
-='$#	&G8:"&~ @>1.=	
{	
-gQiW.M/YGg
/5	;=QU/'7
-g#		:!	7?!	9;}7O
CW	;Q
-?
-
-'A+$++IA5M

AkT)	==+		yu}%P
-
!^
!	-
!-
^
!	#-
%-
%-5O5
6_c33_/$
-%-
4333333)#
-v868EQA	'wA+!y!!!	
$?
-/	'!	
\\Džn[W
7+
-	
#	c	3	
c1
S
%qf$G1)		
	G
)3	3<
-"T"}S   g
-9
		SgAY!
-E?57K
!/5
{
}?
-	#)M	e	-
-U%_$i)!)*)
>1Dž5	UO						͐+	<W)0OǍƅ^	
	`tzI#{?b[!U###5E!
1!!!!!!iME#;	c_J%@;7!y
-		$~	
-		
-'A
 !̐#c	=O9C![?y+ow+###5#YQI1	2i"Gk6N	*6<m]&%=N"5B'tDžY1 Dž-!				c_;

;		)9	y	J									A!'O]# !~%#C /6 >      4#t!gm

m#+	#
-A	7	3k		3	/3333339!AC	/KE##Y
7A
	A	)'K
K+






q]75-59a	kCQ_e	!
	y
I8	W-
7#'k
7Q7q

+	C;				w+J>	Cm	A
e%)!Am		I	yI	G	/{E			
#'E	
M=KS]	%>>	q			MYOc'p5=2 0-#G*	A	B

-N
"5
;ƅDž#
,O#I? C	$O*!_S
(iU/")''<"
."<">=G_!	q`c?+
-]#Qo
	
-

-
EseS
	!	}.O[~	Pt#e#	-
-%"F?
-!ݝ!/%0	A""i !!!!!
!$$$O.=]C=]$$$$$qqW
K
K	CC'S+}=Yyc?[%n7n	MmK])		|e73l-%'& D+^"""9[%Gwl'}_
bW)	we4-e{
-	:	bi+J	%sg'1-b[#0!_i7	-`
-oj #+*)5?
-s
-		3?	!%)+l5#Ao5	)3o;K
1;	[W%	/K	Sw				#U	+CC?	
-
m1
7
!3)OYOU
	UM7-s	}	v%		
%!
#_5	E&8qRYX!'MX6	-w*
	s
-R	/W&	&'h	
	
-!'

-], GGGGG+1G
wDžDžbWY%ݝ+2	=
-%HH$Bރ2>ooq	)	
	+M81??=:9	=
-	d $*	
L#GE\ۚ	q!%xK\z??*|C=*	\C_&&I0U-u_
IH.7	:
-)*( 
-RAyl
-#??DH$
/////5$$#	
!3		Z
-
'K=K$-3"'		#!
	!y{	yH,
-'1-E&''6dDž?/ 	

[X/3
-({1





%
	ZR,
I%';
W<W88			w
"-8
-')	

+
-##
-E?+75!_o'
-|######V
-"		`e))-
-CA1F5	
#3?f d!
-{

3K]K3'7&	y 
-@Iq/%&&&!"""A
I=Q
=)'O#U
-c
#m,U6?			***Q
%o'S/7###	=r=
QU1++KI#sك3).
-!	1Q?;5-;T &<"5&%CT4xxyx

-
k!W5
-C3SqNRyy!G6*	L+/
- 	c2H !7e\SM>im&s'
-
- 	1FG0h!<%0	-#	%ua	'AGG1(11=1
-ke1]!	;	'		7					C	;
-ZK`	I)+i!

#5[QA	i)#;$	
-K
#l!Ggg	9C7!IMiC	I
}!"
-
-
Z	%W0
-

-K9=<P
-Q	]BE%50
	
&$	C/ 	E#{
;B
'1
Q
;s7+W(
g|W
G=7	&EmA	y
9s8+3/!snr6!zj1*)!3vM5b#A.(2`/.?x& $VT%%		/
				o	_
-!3#

#o#A#/
+'
-\0JI]!#
-7



#$$#$$-$$$$$$	$$$$%#6$	$$$H	=#y#'3X
ts8	k?(-3NoA$5##$+###$1%$$$$$$--YY\7%$

C	
-8q#%)o	
	A
-	
-Y
-%mm&c.m*
-Qmm%{5+
-A-7K3)
-E%
Gy';?C-͐-
-'	)3	+#		C>BG
-	!#
		J*	Re		#UC  CC/!OG65!11H>e	%(o
Nu	I	/%	%=]gO?5"/$!GTE]4m	ƅ5A 		'F!UP++%+
@MM43R%)@
-&?VW,
-?!1-)G!362###!$C"C'	0$A@S
-		)?
!9%!
!D
-)		1'" "s"U	

-	
	=%	/(2u%	H	!	%		I	q*K (&E7U	A?E|1





%
qs)-Z;=u
)U'+7;M!!)=	
-		
-S55		O
T
1CK			
-;I+::)
-c
	>V:Y	+ReCS<###
MC
u'
+

-%)
/
-S3333333CG#!0
-(Cq?&}e[\DžR0!7$U5.B?A];Y,
-1	3%
-Y	
_#S*	!'>	=;SDž$TGC$$+/5'	"
 	"
8 0MgU	bY[ i		$	9c#Cw
!5###8
O	#A%DžI}I	AA		%Q	){;			
-	}UUm
-CM"
-/AGk
G
/
9	/

&/2
-+Hp&7)
W/!
	9--)-*I;!
\D)'+/%+~v	.)n	V
-}.-T8Rv!
-;N!
	N)*	'1G'!I7wI
9/c	
o{	
#%E
-%+I	++%
1
-
%	;
-%53S/'I.1	&E%8)sq'z28GC!){(2R$&$oo$oo$&	y 
-&$.4JI?Y;
+A*c ;>
8
GJJ=W
*TE(k9u 
-

-
		
		y	( "*	#
-$+%^>8FJ<jV?
3%8)"##&H		G&I18
=
A#=g)=SVRBYc=CEE(Km:E,77;}9/5k
=_;#,?Um+%%(';F[y5mUG5g&{
+MoR
-}A#Q~c2jC:W0 /		]:Y	5';$


--+#		
. +͐1!!
qm1	1
/%VBU+\'	C&nUm-	ADž'"Ŕ5E
U&E39	15$ z$#Mu6.b
	

	#
Hɓmg;!I=}\YGm 	
-"@;)+mnqDž	a! 9
- 	[dD
-!	
-	m
- '9=I%1G333335]/9)F8%+	
-FI
C[O_s
-'-'$_503-EG]d.g5*+-!#cd	rD-O͐͐͐8i8X=XX==R"+
4E7 5!;-S#@I		.O
			3y!

c5
5
-Q(&.0
,+m	
+
#	'B	0
m+mItC	b	-k{	YW_ ?C*gt		0)U5+#$'!o2?WK
Z'0D
/
-
=-*10c'''''ƅƅ
	%d͐sEK###		37E4	_q
-3/'	6
-3('*-('1*7(
N'J%	&7#I?oY;CH'	+0)K59]&WBKg%
-<-A	$'$I
-,
-93L	)H&#g6$*.{C*	8,'G8/
-/^5/@
-&4333335)#xY
-=75m
1	%Z)&o	OC^m%b3
-q?CB@
^$2^!2^$3	m;		3g)19Z-0%pp19.'
/+#=
3I'/ID+		
2ӎDž	;	5		7					Q	


#		
(
-W'(
(I;K/"""()
Y)))))10s1' 	
-&))	
'
-'Y
%Wf	3	0
''3
9"_E3A))7)'
.C?=3I
'.Ik{͐*
-333333%4HS'#<)ylY;E;i=k	=c
-K[
-?
 J#	_a
-2(	g-@	%
)	=
$*Y)98*-
)	=
$#DžOEz.T);%	

 
-
-%q}
"C(];0
' ;E&W?C!O=&)ag;&].w
-0
#		!774#CY.&e
a%)#<M]

g[+ A	^
73			 	cKBe=)G+Q|'5e!k;_k75I111113'uW'O
;
Z	I-[g5y)[_A5Eg)
	`
	]OEe_O1	;3I{+i#				
	
	
	3
G{kIW3
	 Q=	w_??o5g]*
	
	
	
Og	Y'!-S7[A	A_#5r	bWC:+)?Qto414gG&?Tc/%/c1%1i3%3!F&c.&c&c.&c.&/&/$
2&zzh

-
-
3				]%	7		
-;
%!	I{
	
	
	
_
c[	
3)LCwC6
>ƅDžt?p,,++,,,,,,,*.͐?C#+)177
! 
IW
Is	
Y.;7
-
-1





%
0	,'J9	q"	[!------#
-=-	ITϋ	DžDž/4I!	=y



k	
$		1'!"i g6,,' $$$c{5K[ogSI333335oA'[S5[]}K1[ses
-c		

7p

-=O>DDE39++
-!x$^!3)=!/?>=>4?ϓDž1E=9	W;5-K#c5;!	q1g9-777}/)-1=
-M799'ea15Q
;%![#a
;?/9#'#/AQ-/
7E
K'		Y5
=?Os3u0S=#%KM/#'7O'%C{
Ua15!K3/3#7	;!9Me1	q	e#Y	[a=


	
'K-	sK		gY-%	#QM!G1		ss=!	A#m
e)	C9#;pEe}n8E%W98O|C7YH*15i6MO*HD7rs:=ـӄ4
-3
-$P&',&=!~$qT:bn')/	
-OQEO	
;M=I			1!7$@I'1c	a&I%)7o		'5
-QYI111113).-?AY-wtC9
	
E7





%
	s	sa?{m+A-)

Q#/11'
5	
1#
U	9kO;@=s$-1
	/	1{#
+E10.;%M1Eq l%:	"/Ac
aY8?		
	#7'3!

#oO7+:)QO
%klDž!Y
#";Q!?		!!.	CW
#
k],G9
-)5.	<9	7./..h.....{	
-
-}R	 (%!/*]
%]

 1'-.3IR,9Y,I
	1++Y
*--7
-8CR

/"\		
-<###O-
A"G'!Q99
	
#%Y/UK	1%
+e/^I!	;	;8/%!#	1U/
#D?C=
-5TK#
lc
U)fgI#!;|
)mC7!~Ui#	g*#9R	/c-5C?>
-o_
-;/4L	s
w	%bie{#
-
--+5-/*%kk%UQf
9?

CR
+3=%!##9
GW

0X?,_!%N'
U
=?"|$	m)_-	[	**a	Ej222222>[II]"+;'uZY	I5],m-eO'aU

 !+'wp=o1////CQ
mzj}%	`s[>
-	]a;y'	e^	a		I	

a1H#79#	-3'-		))!B=H(.!).K;+J$ 411zD
-+ 
&	)9[/+1+8!*w	%$%mCE"[98!
['C!];&N771$2!m#*%t?y/	o1o1IW
-/G		
-

1###2l8_i=?C79se5K57E	 "=-+7E
)	7t
	%;
Q!=
	
i	)
-ӝ!!
S/8		՝!,Uۚ*00%

+=I!^	UQ/i'[A=-
-uU#3ghC~	}
-I	c;#&"&	6
-;)T
S	NOL0)M
͐mo)$T$$G


	#
(((((*(!!a'])S9=?)z	/!%#	#!'!3$3
-e>]y4H l!*!IADž!	S% !
)!YC*$}n	Ɂ['WaE 

{*			
81#&	&	#00/900000~17	6=0r
-	'DD9D-P9yx:1333335
-# ?!O|1-gu	m+m	MRMO{S
G
- 0}C]*w
-		
-+
-
-= m,	%-&	
T#=
-EbtQ=.4	
*glz; #$)}
-	%C#!+/Eqqm**eU
-	#>+ g	&;K
O	&$=!:	7DžRIY#n7&@
&Gn	.!͐C		7#	9		?)
'*+7;M!w;
!!i	%/
-9|o

-	A
-4AS=OL;
-l8	D=D[1W?MA

-		
C
-
U
I`$#07{;3-g
17w3#U)m
I#7a)Y
!3O	-M7''9A		5
-=		%*%$yST	.'					A,: g #
.r%,:/%W)FK
C#
-UC,
G
--RŇ=CAIqƅW77AI[	;"'W,XJ7:5:?E@33M$1?C
2222
		
x,	8_

	
E-	(Y		5)yCMy'[M''3ۉ2I2
+qEOE'iB'mA239	G]*3"9%%[/+	1K		
-?	0?ICYwO*
#9w#YI/CG/_@5DE]!3

;




98()D07+	
	1!	{
	
	
	
	
	

$gu	eK
O;y/+ %yA+;7!''{{hO+-73:0dZ\;
-		/G	333333#NO
"i?C
	
-5H		
-,?Vk*+	'	!			
%		
			A			{_
	
/	2Y?-eD!xA	#=a


-K
9Q

{	#_!		=#A}o+
--
5T5
'Z
-_0
AA
M
?{'7<;gX Mi"&
-<k"%\YY*!'I!+
!+8 
-%+33341$,	*	EE!^B77i]{q)?C	3}=
-9OH
-	3(	+DžO$,!&].w
-Q2	2UG998o	ƅƅDžXE/
'),	2
=]FC	Qm
OQW
/
U
i
-
M9!!!!!#	!
M	e
-	u0
					
		

		

		a
U
-	!<ۃOum7mMu +Qe
-I1     "I])
-t1					

	
		
		YQ	:7
-
-





#C
3
9
0=!	Z)+g3CG	5s	mS	G+	-%yMW%CBmH&ƅ
-^3̐̐g/̐^Dž!3!e?$--H$p0$
-
-eu&v)#V@*""":
j
-'
-
-
-4|m;-u	
{%=-1		 	"
-!/%"+*!#						
^



t%$-
-$'2;	q
K1)w]	3.o	",sƅƅm[(]sKs9
-*G
-l	13!KO
)1	]-
-|
tuRO|	-	
]	
[AS!u	;q	!&+'iz	S
$!%[!/l&}m"$
!2L#- 
-}111U\\/
-
-
-
-
-
-
-	






#"L"877777777~
-q*
-

3*	e3m333333)#+'9 
-'
-
-
M
'.
-6'/
-9=IEY
-=k!!!
-=								
=
M
;!(['-%	%CW3k!
	oi+4000000)
?#

1=33_3 QS]1?g19-	/5	4"""""")BuAUA%+E=mMcoO	
5E	A
A!KWw
	%e
mH
 
 
 
 
 

o5##
C
)Cm+-qU)Cg!q'SCw






			+PC	}W%==
],''=>dfO		+Y+	Y
-n!!)*	'	1	9+(%	
-r"'+!(CDs
-%C++
- 44	45	55	55	56	66	6#6		
i333335,{-9s&c/+,H	}
v						F?<?C.Jj1.9?C]]nowՈ	,H00c11.g:11+B=EcQ

+m3+1ozz+H0 	_
'L/&ט!~~~77777*!"U~W0	
D
-:^.]]7%]2F?'8_);)%?A"'
-
-,>B	B
-"+5			4/gU
/%'$					
+$,>BN"	%5

-
-6%
&-
99	>C'98988)	337(/9Q9N8	8RCF*9GDž	&"+\Wa'5
-
]U###/9g	_';	9&!1	:C9w'X:k /S=C,OFX+m,#5
rU$	Js

	A	E$%m	[A7m+$#0	2T$TI9y[	
-	+
-eM
-"0
'y9)eXd-S+'
;!
!		!
+%|x
-%
	I$K;/IIIK6	HR*\WI:?#M
-
-1





%
0	3JK|	oH8!
eC
-G
=
-g
-=RdSu)Qk?p
-H_i'	% wJ=(-$<i
5!%d!-	+cw "Pc$jU98
%	
	-

m<<rRY32&>!
-		+;h;;i;;;;;;;;;;W;<	;=;=;yI
#O#m3F?Z#
{Ca
'9H
-'A	/5%/A&
.
"n;yum=? 9?5)5+:'L=0$C}
V͐[i!y;+6UM


	B	#^###mJau#OYI111113!	
	#
Y-[	9
]		#{W7E



		

%
UY+3(aK_-Om5A?GF%!<=A]G
-	'P
-
-='3!C?=
			1!][	' <
*Pd
-H7!HZk=\
(\	
-
-
-
-VP
98vdc" ;au
-YI111113Y-w9
}1





%
sa
W
-!=!>?*	/	5m
				25$?o???	7k8WW\0s#Cc+#(?+		++;1UL%m
)!g%	.Qe
BL#

!<s;LJKKLJ#

1J#

1L0%
G	]s|
-%eg1*mnoL0\x)	;	1		7					M	
	
		>
-	#	





~
-c
O#ƅ
-3$@@@A08I#~	͐	(1%.ϖ	#WWY,q
-% $F2xx!A%

]	#N2s^^^^V	,	%#w4 ''9C=_:'55w'U	C)	$$9/I
-9q
+-q8Dž	vEm"U&M5

	
-
-
-9
-
-A'Ae
		4Ac 4"AW(+-?CO#
@BB':	%	-3**#$1+-T	'
	#


mg	K	%	
-!
-C%Y'-BUuQ-#5'	u	#8)Fi't#5%+>		'Q)k+A0A?%!fgI<юY
-Y5z7S
-1g	A+)7)O-5uG;tf19Y#'a
#	
-nm/TOFg-
-Y7=OH_
-K,A 
{]{-=H|j,D$$[fOA	,};
 )	, %"1! 
!#l])2	9^	MCc)"-J	*$a 
- 		-		G!>XBB-)?DBH)

-EDSDSDSCSDSDSC			c?
*{_
-1





%
/m	)#9###4$
-%#=%tj/EFE<EFFE<E='$
(%
#(5FFq<#GNG^71,,	-DB1	E
	
%1="7(1)CJW&q3M!k/
-'#-kk?]GT	/O
{'%$	
-7O!WC1oKo5/u
;=_=y;,kWYS)qAQ9-C15U]/	!

Q1	k1AEc9I		
V%3?!
Y5CMAE<+!A
;
CS		
;4>!Wd(8	Y	l;222222?u#"u7c!.9
3I		%%%		H!	!&-'df5#B!.Y
-[7z]!z

-s	
k






E)+7)M
-5G;pI	-;Y
#
-O';
%w'#ۖ#J%OF?	M[7=O7iφ-3.!_	$O-Uk%9%C'1G#'Rzzz/
-zzz#

l####		3	d'	2K!k.
M#
-
A	 		O[	

#e	Q3
-?Cy	
-W?JGS31
!&^ ,D$)Dž
-/	X
$U7XC##1@UCC_###m]9#	-?Q#
5"
??
?/"
-?,C 
-2CA
O|
-x$$-7GGG	
-3
-

=%_	
9
#C
A
L$HHHH$$HH3_'DL7 	
*AF$&~$
G	
AD

8>>$T'%Y\=i	:_Q?8
-o%_II
-YwO&)I?zB{zp"6]50o7	q/!
-###333335=
-s)#		n%c!+ƅ\CCD/_.37)*_55+*_75-0^0|/.T91/*_;/1*_=/3?-5
A+7C)9	%21qWJ~9
				F






3)9#()BBE3	 
-"R
-;











K								*|<+j0	,
&yM
8
-"(3_,*
-333333Wk+7
%!22_!x87	f"@U###Y$,
#?(Y
-y+k
Uxq	5
7G$=
-E1?
-
-}kWYuGOag#IW
'		V
/./5N4&YI%5DžKVp#<gQ!	(9
X=	JVbBX	T<
-	E!4DlGY:!BDM
-,#WL:}
-8	
-.4j{111111'i9^:GG+4G+e#=L<#{"-y		3/W,4TA,*$.L :@!Zx4lUk24#%'b&z9:7CJ%U@;js
-0
PiMC+-m1ZO1DB:3l#H01!FT)_&()+P*:Dž>!*	7	7+#
-	!?
3s
-!+Qk=)	qTSDžu)	C		(V=-c
L
#

-		5		*CMaZE'Oa1J=2&	c

	
'l?	09"#+o57	Cn
-%;wA43.
-@
		}5i_
O!J&
-$#$?4$	I%
	

	/
-'d)
-
J;3
%: t&	')9]X!!E	a%
--}'e	9!%
-[?V		!'

-]2ooo}}ooIcb
		+
|
-pE}%Q3	''"0]Y			=
	
	
	
" J&	sE	EY5U'
-}0! 4]	l<-r!mU#m	)|1zS	q





%
i	u7Eo
		

! ?$W
:&#,
	#]h
(
-
-o





#C
3
9
	!-
S
g

-K
5
K
c+
u3


#/			_S

]L",-4333335
\t=&&%-e)M.k]S/AEB_=)`k	}Pq%E5AI
YZ	#sUk=,	1'gN5		

-
-b
=
1
sSN-]5[Q#E	
xa;Uz	.-RM?	AO53#	'J	5	 			5g
-	K	K	
--PW 0#'
-A+B9-
['(_;*kdA)
c

3Y[	?

9%5	k]Q;7q[1m'mK
~#1U_q!	]

!qWVw_	[
+C7
'
'
'
'

)Kv)
A	3-)`%!C)S);1uI'>#
A;5_9!	####%#/%+
+M?7Qg	O)
						=O-
Q19)	7Ob	-/W]'1
	iU):@8$
-0

-)RYo
-'
-	1 V'%MaE2!!!!!#		E	K	?%		
	7											
E	MS1:30*-A
-Z"UbC
9#6/#='	(*(Q(	
-/;?Q%%
35"*<@> Wu!!!&		
-	!F	?/-&=			
A(}@v
	=	 	
+b>@
@5
-
-,>BB
-"+*	 		
4 bA	
-

=(
-	
-
-
-
-
-
-
-
-
-
-F #!$! " !/"=  O
-rD
#8=!]
-C
-1





%
/
-+8		
(	$1cs
-(jn
-"7!$	1+AEQq%Gp		
*	

" 5
-!3!cK!5	
-					
		

		

	3/.U!_2!Z'ze	=
??
T<
-
-q (=O C(,
-
-I)%	(-
+73%+Hf
"9G-)'A	u3
I9	G!
-


y$yEC/kA9#
-#;
m?
8"i
"i

*O
#'
-
+
-%(;@[%q7#1		H==7KKKKKKKKK	())49	C-
4YJCeY_	5s	[/m	)G5W	%M*+W	#u+ie
-9!'_XZW[q\	?}]	oOIRG		JOL3
-
'|c:CCU7$sq7#1'4H%(U7%(U7K
-!999#A/P	m=Uu#Y5_Oi
-#?=5xQ
-jYY
-%M"'%kk:K"CF;KKKKKKKKKKKC.7#CKKKq7#1q7#1KKK?/C=G-=G%(U7%(U7=Gq7#1KKKK%Wa'A+KKKK7%KKK
-'373;Q
*k	1
)
1#	1
)
1#		
-5)&
	

-ke]$ #Q	2Cg'h*	Eƅ	YA!
-}'!
=Dž]pBm%&
-=
-?2A)
-E/
-7my###-(u%
Kw
IKCOCkU
]'S'y+O/>#y~-=4>#3?Q
-IE}~\	
3			p#cci%	%)Ex]V		3`%		G
0'M
-9
LUDz#
	J	gCA/	Uy		#	#o1	G5	y|		3%i!Y[W[\M'}1	YSAzqO19)k
-[
	







G)
{z
-o;k)=V	?%$tC=+{###+
-k?-1O#9#Z+.J}m	;auY	Y1w9 saw Z{
-	y +*$77G	W
*-:Q$	:?C!
-
$	
-A+q
-1
-['"4)=	0A1^!2111Y381(38	&C\+H C*93+;.
-
7!


	q;*!TTTT7)H\7)7	)ST_;	U
-

 1!UU	
-hCw	E	(E~UU4p 7d'.U7TDWU9K3kA>(1
-	
9[	.O+R	g7KJ)|-W1_
cc+	%T
-5ba'MYG	S''#"
)}MF;MF;HMMM1;6&6&V8 {%CG
-0&	7cy1
?=y5	?.H(ƅDžDžDžDž!
$3Dž=	
-1=&	 
yMU,333335B1	D
)$a
V?;g	'	=

?	


8
8}VVVVVVVVV5 ?	>??W,t?Yi
-#7=Mh
-;Q'oC!u+"")s%
-
-uUBG0E
-				M5rG
7$S?CW==
-IV?EUM^!2
-#V.UWWWWWWWWW~&	!!'WHB
-H "'L9H@W
XXX	Im%!SQE7
)8	S	E!	3	S	E!	3
]
c!"C
-
-
-9,!Y	C0)
		#]]w#


-k
	8	-oq
%U;r
-gU%]"'	
-=
-

"%/C=G,..*(
		5
#>)	
-$#7F7N 
-'
/:
F<9!	#'"/
	3;		#A;!AH	)5
	<"B'3<
a
3%$!qs+-!#ك53	Oۚ%f'g
+
-#	
	w?U'	?
3/%
		
A'
?	k/5KR"e"3[W
9

o-		
-)(/D']
;

o-
-	
S%(/D-HUH 4j1
-e)
-	a3
-		*;;;9/3K+m%
e5Bm+e),,q$-	?#Dž	#};	=Z	[F
	[%>\[8%)s
-&
-*q	Eyj[
!S	1+7;M!		;gMgaw=aa	y-5'&
M
9
	'g
?-Q	0K
-%l/=
7/5J	tSu222222)3=	"?YsT%S

5}
- %uU&*$#}'W+I')&A&.I*'+'
-Ifه
!5+I	
-
-
-`	
m!	Q##C
Y#Z		)
#"
00Y
-]"+	
ۇ
7+9+;+o3o3?
-];)/
V\W\\\YC&"Dž*-!CO3'0'U%'E"1
&r&
&		'
w
Q
%

$9C
-
-1





%
	0	yJ
#	
	

-
2F3
-H%
nnnnn
-
E7!

(.T
77%%(0-n
-	;.\0;]077-%oD$77)0-;7)8
-!&*<-CKA.].
-Z 0.
-'2.g]+<H]$%#

-1YPQ'95
)	S;k	=;
Qq,Q

c)IŇ=Džy/+
+/

%#	1

9'k\ #?JC
.j=T)#%l?7/G	222222>u#"'cSZ	}s9o,|x!!$"	)
-K
CO		-#	;;
0>		1[]	-	
		G	
		
!	)	
3%	7%@	 5
^		w
Um%
_
		U1


	13?
		.	3	
	
=
1+	d		
-	:?%+

		
?y'	;=		?U	
!	;	I?O
1	1
5!	1!=


+-'	5s	Y#)	g	"		9%		#[/3!
		x		/	'	7!			%	)3
/+1		?		-%3!	F	5
			'		
/6		
	=		4	

	
-!	
G$#		F
3d			`@p0IqH@Q"2.)$2ZAW4r)S3]I3-$*A#0J_~N58tG!$*!1)T1(=z7"#,? ,+[?,/G-#i=""6^RFY52?7;qe+BU6K$)OB/;y->-BC
-

-

-
-4333335)#C1"zW$!-+5+390g	\UC_				O!'A81
#G

/U5'9qw	#=Omg3F=?
	
-	9CA	l{Oc3)c=	;%Y%S
5|K

-:
^^UUK=`	
-c2'9$$'\U!]9O*%q--	)),W^^+0/W^^^^^X)K59CYDž?C](m}0@ddjdddd<<Dž]_^#u_
-,_,_____'O
_K	E
			
#

8Ma~%7Y	@7G<0?,
OF]"{f
-<!!+)!	$N#"B	&'L	%	
-
[O9C*C	q	E
-!DžӎrA/?Ye-v
'0Y7DžB,_E#%5!;!__Q'__	G+	?		C__`````	``	`a	aa	aa	aa	aa	bbbbbc_###Y]	G	BB2_"""
-

-
ccc
?79)		dYC+
-7)*T1I(o͐m
-		!A??g
!&AhDžOW]	
-(1





%
#Rƅ
)bl*$
-7"ݍ&c.m+
-&c.m+
-;
)m+%
-
)I$$$
)III

(
-b1/	-Tl*$olR'7
U19	
-o2:<K
 5	!	"ϓg!QM7I"	/
.~]C!- YI
-e3333331



#!	
	
%	

	bY[(	*333335)0$7UP%C]>						A?C=!	_	BC!']+dd?=$'
-		


-	$

+m		
-eG	3&3y/
-!Ci}
-aCa!}A1M





%
+yi
CEy 
-H&iC43333350"I}}QFH.	I		
	'O+oQ`
	-	k%{mE#w
-
)V
-$&3		?k



 !$9H#+
m8\qMI$5{I&==m>/A1

K333333))r
-)	]3333359Qy	
;EGu

7
-
-
-1





%
0	S
-;Gau!9YI111113Y-w
-9
7





%
sag#Y?,			w
:!A9###sc
-
+1K5#/
-_	Yq	?*[
-CS	3C	s;KD5E
'8R!/?C	9$$9F	;	%?o-5$
-6
-9%QC1akkK1U__gCK33333	!
!!1-)!C1S)K	}csI'C#
	Y5;!!###3'/-/M'uQgO)IC7y!-)
	' 	
	
+%
-y'{w	
'	
-5



3

?+}
#
	
m];q}5M+
-G	C]A	E)!=I!+_
!+??]3[	#'	ygQB"E4O-K
kMEGA	 
-%		s
-	TK/*	]'
-
->	*!03*@
	-!,0m 9ipe
-|		7	m	J;1
#&	}t$	G3'_?)!-aY	JW f1$$	gJ++$M]+#	&0qŇ='%O,&9a#'j ?1!0C+-/!Y]&C(-qmm3r%$-e'e1!	
-O7	]3yq	CU)ECU5%C|51i





%
#A[]
_M%"U6$,1>1&q&!+
-&	
-
_y
		'
-!KpAZ	p}C333333#b%w{#7as+C[M2+>m	
9	;
333335
-
#k]0]!	q
-Mqe9MM9

Mu7##/
S#M+I
'	1		?]]
!#Y	/#)c+
7/=

?W	m1%	++]	
%''''')#		!
37/)73
-)
/+M	A	'%q!Ie


	)#!)#
	#c!'+3S
	7E]+		);!!
%
%	%7!d
Au9wK
U+)c')+; 	)k
w

-
){E		O	5y/
a
)=GI''#WG)E#	K)y+'S	QQ
M-y
+E#?K/!)<t}=:Fj\B|Hig1An;yTW{C}a}3OTLOl,Zq;4333333)#MA&7&#	V<Y/
		
/?	s=P[UkAp
-H%eKi'
-'j
wJ\+CE0K;F			

-'iai]		@n2
( (j9&͐GU	%e1;)N	)E

U	4,)a
	G+Ac'C7

#
ggLY>-g5Q43 %
X
	=s
-
-
&	A@
'^".Aq	S*#".9hhh..97=E.E*1C
9/#C%S
5"2.
KY)1DžU	gU	U	U	
	3'-)5Wa+/q*'%A.Y7"$YpT		)	
	9O)
]	,7}yEc'}	mW1
+!3	
-.((Ez((=G
-1





%

	/zUa5l/{6Y###iuC"222222?y=I?5
-1q



"


s[K/%}			

-0)*'0"-j'dƅ-###BD	Y1/a+
33
-

-/1"'uE4i+eQU4"&"&L		a		&'S#			%		3"$IY!C7]!
-2|0sx4
cej-iKl__
-f/
-
-)#
&	(#IL ).
qi&}|01kN)1NHHN]m71)Nm	m
-!;!0%		
/A57q
-	H#
-2	=

	_
-nNNn))&_,c>E&7				'-	
MmM7
-oonn7ˇNI
7݇P	'#8op,C?DCNoMOoOo?C߇*UE[.0333333)#*UUY=
1	
-
-1H';=I
%
-9{#Y
-5Vm/O}K@go/m9#SQu5S/Q,?%%?QkC

-ADDH

@#cm+	
-
CC,+gI	3#YuwO*A
-V	
#JV@

-I		%F	'			YK	dM	wc
-O
-''pp;&])l	*5J#_E
-M		')				,eQ*$?
-9?C?
-9
I0"3'Yw}OAI9FP	
I-		'	A'WW\
-
-





#C
3
9
0=9;=/{%w	*q'O*'+p
o	qqqqWW"
==9N1!9,'W+#5
-'
-"
-
-
-#/	,+-!$ߝmFm	)=mmmmm.///

oq	4
-6'J3U	
-j	+	LC#%5!	K						
!?y''	'!#?
9WB1'k5iI	
]5		L	O	n
5+R=t'C2CTo+w
-5X#H[W	]1; $J22W+/*
-
-?C
r'111T		a
$c_$Xxx$$+s!L1.111[/,[[H$$(?Vn9[o[1]ss1Oc--/1#9'K!#
#
=7E-###'Q;G+OE;1{a{/esi9ak/'
Q	Ae9Y!-=I3=+})C-'{/#
51?MYE7yIkM-GO[!3=YG{5+5O	'UU?ywggC+%e;=C1OcQ9=5-C=	!%:owKhUmE4uME3mxEGl6<<%Di?~7_?C1E.-$L&
-V.@_
=>f!>-|i5u		
 ! 
 3333338=	#

9	_,11]qG2
-
1a
222222}"#0-	"A7
-	|

-		+=$

-$t't'j
-	4/*-)\<BIB;gq)IE7***,O9
-I+7I:?C0%'
-
-/8Džu	cQ
e
	
o_('	K]	CE#e
-
33Q))111111{]+E)o1WQ!c	{SL?vY6qQ3!-rEC	,OK!!
7!3u	3'u!
q)?3
3P!R3dF!)#/
9
3		
+!K@!&\!5=E%	USMU
;?zO
o%zws			15)


##/)/3	=53>]		
+9!!,'
		MS=i~O	S
'dW'CE
-''
'%+
-0'w#w#!	RxR+\ggOA)8kQA'!	373%@Dž	*333335)0\~͐IN5&	$	/
-	Q
#	+@	
-\			p"(9I
qq+B#)=mJEng
73%Ck
-;Y9T$k5k#wO&%=Z

-	1
-





%
Y/ky
-g E=
l
|
!1A/!]|}q;7k!
f=zI/
#"	
-$K	
-}J}%.}I]3
-
	:
	
GO	o;7!'C
-
XvIiSMxX
I!V
-'<wwwwg[A-?5	
F]1
/׆OO)O~;eSw#EX-O(Y		'+'?e|e.!	k{-@a
	"L/9,͐t
I%;gkU1k	:'%|
-aW[}X3%;

-!$oW	2<\C=T
x?<x~	A-
?Q	Y5	Hyˁ#7B?O?S%
-%uts!G;ǃɃ;E+%	
-		%?/	;
	
	{9
-	
q
--$$8!xxxxxx		#
0KQ5
	&1		)%
- f$
-
f	u
-)Kl/-%/
- 
- 	&T  /%5 !.'.T.
MH!
-#*_/-?CO#{5C9		c];R	#%	
!%{*#''%(ek+75M!-%	/		
U	%		K
{A=S		UW	-l?WW
S*	222222#
##
`='G1Cq
3


k[
	'	7
"P1/
%	loWa)_7		+=+}7%5#k15;y[drI#	#!-		y1
![i'caaQR,=Y1)G				K;E	/!e
9c	

g%	u3k	/%K
S%
eW		53mmM/5;y%	Eo>b333333#Ag
%/;9W"';')'W<;?W!W#
	3
'x)4w	]x
-]0
-$S#7?*')R)--YY/U
-iU
-UUU
-e%-VKy3x.S#fyyyyyyM
-!

)	= 5z1=)+4+41=)nn+)1HDžzzzzzCC=U4	,
P	+/W	1	[		G+GSx	##	*w	')
'c*$$$-H+(%	!c
-	QC=\4+	"
-	"
V	6A
-
-
-Vu.
-	iSm	d		
-
-
-3		/*	?m)(	
%

	>	?6
-%1-	
-
-!=

	%,) %+;''8! !'
0#_D()!1"WHI}o?
	+
-T}}]
75=7a]	A1	i9YQ
-	#
;{	
-
;
-
!]c"
C)IIY~Ae@
-
-1





%
;,tT
-6*###j1S9=q#[5	Cq[1a=	kK1U_	!%e_+baeCC333335)	
W1-MO)!C)7)G	csI'+oU
{={579!!###3'/-/M'uQg1)
?C

++)5	45E!\Q-E?$2
-2E)??'	&>
-/o{!(	(q,1			7o		
			?
-S!*
-mp=
--)9
-|?>R1
#	)*$:t-Fc?c?c?-Fc?tF|ttt9+c
-
-1





%
0	iI4{IS%7	+;;3
-@)5	39
T		
&66)V
'#\	9)	?^eV-73

-/?3
-O	!-+53(!/=W/E'I!}

+	C&$%Y3tI!&HmM7#1$9(I$-E+11MH&))4333333?)#+q%1	
s3?	:/U	i	1M9!!!!!#Ma9-							
							
G
%]U=	W
9	B	#DžDž̐Dž#%51	IQ809A!<
-E
 	}YtA
-9	:.-222224
#!=-^2r;+,<g6%oom-P-P-q+!"~
-~~7FJ
6N~#k=/'/HH333333#"0Y*a)a)6<#56<#~+4###%5!;!HB	3J%Q	g"!"*e	3'q		

	)
-KU"
H{8a	M8$###Q[	fF<;Y?[<


5rV1	)%=1/?	^ 8I<	bP 1	2W
-2b0E?	I5E 
%? 	G/O)
-a9},^!AD#A#		
@!
+!YEN	'				s1B"ŀp39C	B5Ӄ37ـIՒ
NQ),-!
'	D%
	)

	rUMw

@Z94?#MU}}-	B}}	BE+				&	y 
-&"+ 
-6%+a%%J..4
-K 		ye/E+
-kW#
-1Y/S!	
$$$	m	h	8'	y(Dž](\DžDžh	=&TtCEY,H]4L
׌
-	HIE	!	!	QG))
	A
(=5
.GD2r.P	<-
)!	FE
-EU-359
z	
Z!	
	+! 
-/W)+#f$@	=
)	=

)	=
:
)	=
*;=
)	=

)	=
-1(L
-ć'/ooooo]
-BC	
-	
-	
-	
-D!)͈:)XY]2V	-
:)QOwX=DžDžDž)-	_

-#%#wN#"#1 H]==p	#*PŚ0E/KkMIq	2
"ICl/?C*BIHDžDž}}
-'nq'
-p-"8"5ƅq'/)qq
3)"4=]-#	3$YQ
-%S
5$G8d		
8<m
*D7q	#		
-

9	'+#	$299ߖ%99';oKӎ)
d:ODž=	/=+1/	
-1[%C-	4uWA		!')	!'v	?REy!8Q

-1=(	
m[		45A=5
-/3
-)=8	Eˋ	\g!:3}sJ	!	q		
	E_,#I_,
-F"_J,lyG
-CM"6$A	@-[m		_-2FŇ=		1	?g
-}XQ-ikCyH';	s

wd
e
CK);Y[@gooƅ	1r7˞H5		
5#og/NE&;T"i7%7i9%9i;%;}/	5
-=1F)IF$
	
#E$$+$$$$+$;%8&)m3%	!
!0Oa>
/AGG
-ˎ3I159Kg&g%%##9%
;			[	e		
-
	
	
	
)	:C(-53GCm	C
-)8#	-E]5.UGI@I@L@)i-E)qK?%!G* -$&&IU]m.?	%+?a3	'J+GJ+5G		{	SU	T7RH/n͐͐͐͐{͐͐͐̐̐rW	̐5
A?I		
s,+";			#:qGђܑ|"qWn
'#				I,/:	?	
,2	
	;-Ոq;1_
	
	=y
g1EGu1H	"*9R^EyisGYm1
k	%mC###O)S;+Wc_gb3/
;
-

#

9AQ=%9m+A+Ees9+	!
KSa	9;
(*~%-WO5Y
}#)e)3K(8a2!+	
-Dž:S2UϏUϏUUU//o{!q!?9Ic
Q	/Aq
Y[;rR#
#!%#zF'####%!k+;ARC7o]U6?###%		;1aG5I1OO[YAq%0{I	Q	:	q!)S9S53g+Q;CAdG59+%;{)ME?-
-o;!
aQ$* 	
-y7%%#%	q$q&M{f%Q?DžWW
-!
-

-
%$&0z4?	
!}:#L:a
E	;O=)X	%_V%=9C
-G333335_)'''
-'K333333'tIC%
-*;n

%
'47%_K).:_'
%$	/
1
-.z
-
-1





%
0	E
-HYDž!#I 	]\O	&$_a	;	=I/g8	/
-soM		#c	#e	X	!,ƅ	WY[)
-5ƅƅCS###;{0ƅH(]5EW
-ks[@		!1)1E+ϖ%V.J/B
	,!1Lqqq0%*WW	[))
85#3;0F'

	=7(XJ30-1}):5;Q(e?5WoeueCD!{ZI%yo$oqson$/G[S_!X/Kt
g-1G	
3s!`
;$d>	"+.5eK?])5?}+eli1	#
-?"J				
YGmM]AWgsaA)))))+#r+_)9hA|)"?W?
;-
%j
)vC
)?1C
a	u+#)S>"
_++5az)
CQ@? P  5}=
-D
-
=2]'	#3	B	5			Y	}%
=			?		#C9Q%?=k

#/;~	E!U<)?'	#'	]	+
Z-a	5
-
|*Tgј5Ә5J&
՘5#+/-7
"1
-	
-}3F}7A'>Em	[sIEC-Y7
-C
9'MIURzs=maBM-_
-!H		]
-GN9;	/+;
--5		
-
-k
11]?I	i	*Tg.;78A$]I	%O,!
6		7"	0	
-			*	QA-
	%#
\/	!
-!!5

-
-#I				]U
						E[/I@
	

	13!A																		'9	!		'+

 
		/-
	'

					


% ;
+
Ay
				=
;![
-	!/'!!-Y'	/Ic	#"											)
		
	
	/	7.#
-'	`
-%c"
	$
	

#$			
#	
	/	
-=		;#$#	
)w
)1
-		
	?		,!
-)!	;	
-	
-1
3
#6'


-
47
 
-+	+
-$		
^1aB19e<6-        8#$\K8'77@J[#*(o:;5,U>8!")'B?"$;!>78[#0I"822K 9v    * 8Ws>($+,|0*'(4=-/) #H/!ZA    *,B$*DE- 6X7+**,m8;Q*(h6:8A`719KT$&*W+Xj'2 51ššw%K4i=	oo;#CG.u.G33!	-;#uap4?or%?|/5J!'	!*>3		A%Ia+'A9.$$<E	E	)~o3SBK8
		
		%#w,p!-Y3<gK'%e	!	=%E
)u	)
	Y	@
	;9
7%o
		-i%;W-o/-		ם#Z;		+
_4333335)7[C'.?9.#K%=#.!E
9	EY59iQM"%WU5U/
		
-#7o31IDž;q!?9	'zy)!15iAw1A)!Q')h%7
-
	&+%h5%
k7y!n+0
5A]?@
+C՗	Džo3o3K
-
	"!&1
-=YO
"y)63;=o'3
	1++!5uK+
^\!G=R=	'	v
-$=	.j	)
yE	A"o
-
-1





%
0	$_
	

	0	K
-M!k'	;!#*..z!I
-Y
-#wO;J*	H 		*:O=
-C%#m77
#'q


/+
	/5	

	W-	%f		;8$-+	%(;3
-GSQ4'
5#}=; -
O
*)"e	5U?/'9![M	h	6a~gY7#kIS3
%%13	%%	
#/5%	?/eM%ei=
-
-
-
-'UA	-	7'
!##/GW5^1W[JI/	!EG
-:
e/Q$<t;SCK?[V#%x!n-
%	/S
g
K
7!K
c	G
-+
u3


			-s_S
%		[>:	
-d",-c!l?'S70ey
-k_?	Q)W	7w7#7{!/-'3		]/#)%7WW/##-++o{=?U
G#	!	95_Q
/+Ui)!cI[!
1qEy		Kg;-CUq_?{)GQ]		-77Q?+E;!g)%G$Q'	'
9A
?1

m	7	MyK'C#7)WS)';?S7G+		S
	'#	q!#s=/	-%#VC/EK.u=%K_U#	{f
G5C/Q5)
	_MQ##c 
	C#5Am3y;6OA	t//#{OAC+9=38
-?3
+,EM1				#		!	gA9
-O		/;%	-o3?R-'%7m/Y!EYgO)K;7 1
-!
5j+_*	
f%55_%)a;
	)#+
<2k}wG"	%=xePv%*.9fT-Qp;	
U
-%/ +2	*[	eY_v	w$B
-;M0)
/!t.K7'%				[	M0
-	3!
'Ib	7a	
e\
]		6				!cq1?H'93
5+vh
	U'z
-
/A-5'7@>n
-$I&a.J$~+

-
-1%-	..ٛ}A?"HF*y/g#		+M	;		1			/-	O2C_j=
Hi+M%IC )-hm-|	SS77M=
U7;j$	5M###VsS=e	!'+M=)#]Y		
G͉)	?
-	juaM &r2q_=1	
	N!;r0#!
-=*Pv	%A("0a4'A
-?
'
'
'
'
'
)
)3
I
		M	O	
U
			*?()_
-)?
-
-A
### :##L#(O	93@Y9?2?CDžY,DžE0}n7c-		D


-(	%	
S%$c
	5%<	g
	S)i	
											[


					7		
#		
+
					77!		
-!4>:(3,+--C/%2-y#----/m-e+-!#qc9+-#	#U5
*-#
%^qc&
5
[+B


-
		
0	%

US%$#
	5%:	g

	U+i
	S											


				7	
	
#	
-					77!	
-4=;t"+
-I--C/%2-y---gI	5-	of]
-222222|
-"N"
,$/#2f!%<F
  
-
-
-H1Dž-e+-!#qcqc&5U		
			
	

				7'	/;					7

-Z1	-###%."3'/5:oG0P%;ʞ˞O1	˞J1	Oqc&qc&i		=C!A!
%)G'+#
C/K/')++=C_###)
9-E;//

;=EK?%	-+
%5S)		Q)}9/IK	5'U!)
1%
#;%!+#Y)}
5+7)+

M=#!Q%{[	
##-	-
73
+
K=135si)1
5%	
	
	
	







	


9#+c5=W]	UG5)+
5)3WC								;m		
!'{
5'+	/!'Q	

CASw=%)s)
U%+A]#G
'Q	#
/
[=}A					s'##@{}Yzlt
K	a	KC+S+}='1{ea79-;CC;U+a+o='	E5eQw+?
k	G35S-!			

	


			
							1			

		a
			#	
	
								C			
	-	
				
	)	m
#	%				
#%#!			
		+
#
!#		
* |1a			
-
-
-".#!?!#2 a3#E&''# !( +  #17%7}#7%=1A#'##
15M!!!337c1Q{S%1eIG9w5/'';#
e/9!)9a';?;A=5k?
E%;A)mE[1+AQ#q+1MY[o{'y9=')Gu!')Ys#c
C]Eo_5!'i#
=Ig#mKO?;g!8of_rh}@znXnnYKG;`rL=PeX@FWUSwJP&&&&&&&&&&&&&&''''''&'''''''''''''''''''444444444444999999999999999UUUUUUUUVVVVVVVVVVVVVVVVVVVVVWWWWWWgggggggggggghhhhghhhhhhhghiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijijijqqqqqqqq||||||||||||||||||ϏяӏՏ׏ُۏݏߏ///000YYYYYYY\\\\\\\\\\\\\\\\\\\44RRR							
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
















##########################''((((((((((((((((((((((((33333333333333333333333333==================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOOOPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQRRRrrrrrrrrrrrrrrrrrsssssssssssssssssssssssss{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ÚŚ#################$((((((((((()))))))333333333333333444>>>>>>>>>>>>>>>?>???@@@@@@@@@@@@@AAAAABBBBBBBBBBBBBBBBBBBBRRRRRRRRRRRRRRRR^^^^^^_____________________________```````````````````````bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccdddddssssssssssssssssssssuuuuuuuuuuuuuvvvvvvvvvvvvvvvvv{{{{{{{{{{{|||||444444444444444444444444444444444555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666777777```````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbRRRRRRSSSSSSSSSSSSTTTTTTTTTTTɜ˜͜ϜќӜ՜לٜۜݜߜ**************+++++++++++++++==================AAAAAAAAAGGGGGGGGGGGGGGGRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTrsssssrr'''''''''xxxxxxxxxmnnnmmmmmmmmmmmmmmmnnnnnmnmnmnmnnmnnnnnnnnqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrqrqrqrqrqrqrqrqrrrrrrqrrrrrrrrrrrrqrrqrqrqrqrDžɅ˅ͅυхӅՅׅمۅ݅߅ÆdžɆˆ͆ÜŜǜ*VVVVVV^^^vvvvvvvvvvvvvvvvvvvvvvvvvvvv}}}}}}}}}}}}}}}|||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}7777777777777777777~~~~~~~~~~~~~~~~~~~~~****~~~&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++1177@""""""000///232233333OOOTTTYZYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZ\\\\\ddddddddddddduuuuuɗ˗͗777777777777777777777777777777777778888888TTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\\\]]]]]]]]]]]]\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]             !!!!!!!!  """////////////0000000000000;;;;;;;;;;;;IOJJJJIJIJIJJIIJJIJJJIJIJIJIJIJIJIJJIKIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLILILILLLLLLLLLLLLLLILILILLILLILLLLILLLLLILIMIMIMIMIMIMIMIMIMIMIMIMIMJMJMJMJMJMJMJMJMJMJMJMJMJMJJMMJMJMJMJMJMJMJMJMJMJJMMJMJMJMMJMMMJMMMMMMMMJMJMJMJMJMJMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOJOOOOJOJOJOOJOUUVUVVVVVVVVVVVVVVUVVVVVVVWWWWWWWWWWZjkkkkjkjkjkjkjkjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklljllljljljljljljljljljljljljljljljljljljljljljljljljljljljjlljljljljljljljljljljjlljlllljllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmjmjmjmjmmmmmxxxxxxxxxxxxxxx}}}}}}}}}}}}}}}}}}}}}}}---------------------------------------------------------...........																		<<<<<<<<<<<<====OOOOOOOOOOOOOOOOOOOOOXXXXXXXXXXXYYYXXXXXXXXXXXXXXXXXXXXXXXXjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyɖ͖ϖіӖՖזٖۖݖߖÖŖǖÞŞǞɞÝŝǝɝ˝͝ϝѝӝ՝םٝ۝ݝߝ		!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""!"))))))))))))*00000001111111111111119999999:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=========@@@@@@???????????????????????????????????????????????????????????@@EFFFFEEEEEEEEEEEEEEEEEEEFFFFEFFFFFFFFFFFFFFFFFFFFFFFFGFFFFFFFFFFFFFFFFFFFFFFGFGFGGGGGFGFGFGFGFGGGGGGGGGGGGGGGFGFGFGIIIIIIIIIIIITTTTUUTTTTTTTTTTTTTTTTTTTVVVZ[[[ZZZZZZZZZZZZZZZZZZZZ[Z[[Z[[Z[[Z[[Z[[[[[[[[[[[[[[[Z[Z[]]]^]^]^^]^^____________fffnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnononopppooooooooooooooooooooooooopopoppppopopoppppppppppppppppopopopopoppppppppppppppppppppppppppppqqqqqpqpqqqqpqqvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwxwxwxwxwxxxxxxxxxxxxxwxwxwxwwxxxxxxxxxyyyyyxxxyyyyyyxyyyyy~~~~~~~~~~~~~~~~~~~~~~~~~~~~ÅŅ̀πрӀՀ׀ـۀ݀߀ˀÀŀǀɀÁŁǁɁˁ́ρсӁՁׁفہ݁߁ǂɂ˂͂ςтӂՂׂۂńDŽɄ˄̈́τфӄՄׄل߄ÃŃǃɃ˃̓σуӃՃ׃كۃ݃߃ŇчӇՇׇهۇ݇߇LJɇˇ͇χÉljɉˉ͉ωщӉՉ׉ىۉ݉߉ËŋNjɋˋ͋ϋыӋՋ׋݋ߋًۋÌŌnjɌˌ͌όьӌՌ׌ٌی݌ߌÐŐǐɐːِ͐ېݐߐϐѐӐՐאÑőǑɑˑ͑ϑёӑՑבّۑݑߑǒÒŒɒ˒͒ϒђӒՒגْےݒߒ˔ÔŔǔɔ͔ϔєӔהݔߔՔÓœǓɓ˓͓ϓѓӓՓדٓۓݓߓÕŕɕǕ˕͕ϕѕӕՕוٕەݕߕBB]]]]]]^^^ňLjɈˈ͈шψӈՈوۈ݈߈








"""""""""""""""""""""""""""""$$$$$$$$$$%%%%$%$%$%$%$%%%%%%%%%%$%$%%(((((((((((,,,,,,,,,,,,,,,---00000000101012222222222222222222222222222222222222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;<;<;<<<<<<<<;<<<<<<<<;<;<;<GGHHHHHHHHHHHWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWdddddddddedeeeeeededeqqqqqqqqqsssstttttttstststttttttst00000000000000000000000111111111111111111111111111111111111YYYYYYYYYYYYYYYYYYYYYYYYY!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,,,,,,,,,,,,,,,,,,,,22222222222222222222222288888888888888888888888888999999989999999999988888899999999999999999999999GGGGGGHHHHHHHHHHHHHHHHHHHHHHHHIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXXXXXXggggggggggooooooooooooooooooooooooo~~~~~~~~~~Íэ׍ٍۍӍՍ˞ٞ۞ݞߞ͞ўӞ՞מ																																)))))))))))))))))))))))))))))))))))))))))./...........................................//////////./////////////////////////////UU]]]]]effeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffeffeffeffefeffeffefffefffffffffffffffffffffeffffefffffefhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyzˊ͊ϊъӊՊ׊ۊ݊ߊÊŊNJɊ×ŗǗ&&&&&&&&&&&&&&&BBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCEEECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDDDCDDDDDDDDDDDDDDDDDDDDDDDDCDCDDCDCDCEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE}ōǍɍˍ͍ύϗїӗ!!!11111111<<<<<<<<<<<<<BUUUWWWWXWXXXXXXXXWXXXXXXXXWXWXWXX______________z{{{{{                                               !!!!!!!!!!$$$%%%%%%%%%%%%&&&&&&'''//////<<<<<<<<<<<<<<<<<<==========GGGGGGIIIIIIIIIIRVVVVVVVVVVVVZZZZZZ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_dddddddddddddddddddddddddddd}}}}}}}}}~ttttttttttttttttttttttttttttttttttttttttttttututuuuutuuuuxxxxxx|||||||||՗ٗۗݗחߗ**************************φцӆՆ׆نۆ݆߆ÇBBBBBBBOfgggffffffgggggggggggggggggggggfgfgfggggggggghhhhhhhhhhhhhhhiiiihihihiiiiiiiiihihihiuuuuuuuuuuuuuuuuuuuuuuuuuuuuuݍߍÎǎˎ͎юӎ׎Ïŏɏˏ͏00000[[[[[^^^ØŘǘɘ˘͘ϘјӘ՘ט٘ۘݘÙřǙə˙͙ϙљәՙיٙۙݙߙ""""""""""''''''''''''''''''''''''GGGZZ\\\[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\[\\\\\\\\\\\nnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzۚݚߚÛśǛɛ˛͛ϛћӛ՛כٛۛݛߛ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%UUUUUU{{{						  """"""""""""$$$)))****444AAAQQQQWWuuu8888888888888888888888881/-3IKGMOE9?;=AC75qusmoUwky}SQa_c[ei]gY{W#+')%
	!#UUUUUUUVVFF${	
-s1
>	
-!!).J 
Ey 
-Ag{
-_E111113_#y?c/	#ug
-Ak7.n	!ACË)
-?)
-?99[[[[[[G/Hww	IGQ8$-J-|	'dd'dd-
-
-
-+3I
---###/o{!/]CC;CCCCC	[[[[UCC<FJ//_wfy;;\	e		mm<m<&&G			Oц4333333)#4333333)#S--++_		Ci}
-aG333335a'}Ayi_#
-
-
-=
-WY[
-WY[	++	
;Jn	n	
A$
A	
-VeF

ddIJIJӆ#9=ېݐ[ECC"333333)#&y 
-;<WWs!qgg&&i&i&i&i&i&i&UI7JJeeOFϖ<%
-'Wk0=###BD]2q9?	o	o#@#@	&&ee+
9-EE$XE***m220!!& pJ-p+JXX#@~~z 7
Y8qo$
[8))B######*Bxx%JwFF
-
-&
-
-&
-
-&
-
-&*
-!
- P&[[&w->5AA!N]R:R;<!Nw5_ə_799+++^5EAEA^1^5EAEA^1
-6&A'/###41A-)###f77*+3ٍ++	$HR%4333333)#
-YYd]E
		o;7!'C!
-
-
-d
-
-\]
-6<6<q Y1+  Tumm CCmmTT>?>? ( J -2!V3<<>?!!XD!+-!#+-!#+-!#XD!" ""!!n		ˀ+-\\"+iiÉdG"'JljUWX;<WX""F5I$J3F3 
-4&"	333335
 Y1
-
kGGGY1####$#

-H$$$$$$$$$-$PuA$%a+&_% 444?C	"A		"A	?@?@?@??ǕU?@%#I J JB;;#::
-cc=A"
;?9***)iY9A0;;ˉS]͉TT""""RAU
-&
['-3k)
c_3Y[	0_0+8&+,&&# 0J /&&&0A888888880AmUqqYn,ωX&miWW''8!)=
-	-/8/8--k		--'/'V'-'{{S'**5kR&$&
-I333335




1
!
'
!11-oooo11?C?C'(((()#
')X?%IQ))))KP)C?C)jk)IK*L**:L˙*\*OOk*]@*?*jӉddgg~A		
$:&aT&_Ti&i&i&i&i&i&zzzzzz,,,,,,,**+&&,,Ag{
-_I333335i]_+;C	?5K#yg		

Fk$$=S=
-?\8Չ[[[HOk\ddYCCCCCgs;em=&	04333335)#						1	0Kn	$
A}eq"
TdnKKC%+<XHgYYY&i&i&i&Kk
-2W	o\#@&998u+XE/%W	V2!s
-		S/#%]?sWiU)[	+HK8O/7$
[}f
.).}.2x2[
-9g
-
-.:R<_8	
-?SE++^-= =^- = =C'/###4276<]	
-								A!'O],umCmT??K =?<"X@}"i!*+\\\\\\]\]]]^ifoo	
-!%K'\X<XՃyy!W/n$$$$u&]%?ו-}K ssV;:1T9 ! !}BK /	!F0Aqɓ''**]W!$=	-)'11?C__)X)?Ck-L}**d=h&]Ti&i&i&zz&$#$--:8:RBo	%{Q+	*)\2oo		00\!0ozF!!	!)+G1"'	;
7]U}YY9UXXXXX)L/###%!I2
-<7]]98Gm9wX:XnKKKm"T,W,D<:L-==WWǍKK+1<2זWWwVA"JCBun	]Z
-0nnT?
-SSDBE8FG^8BJn	Z
-wۖ?
-SSkz
)Lood%dd&dd%d&d&d&d%&
-333335]3#							*+@@& u-ϓK 0{"
"
ـ
-(AØ[q~KKKKKKK?@?@?@DBSq5D)U)UKKKKDFKKKKKKKKKKKDDD-DǘKKKqrKKK?C)U)UDɘDrKKKKKKKK˘KKK

-3Oe)z[[eTT7T7}T7ׇLDFFUVhn=DXgggY0Y-o#CÝZ;;;;F=p'ه?7Z
-1ۇoo?
-)nTT7]\7770,͘mF3
->3^^F!
-33<=_###%5!;!==S		00+nk"T+@LL.Ã..)ۀ!ݖ")")L*ODD;nnDD݇p߇̈́'pI9pI9C2VI#CXs'>89}	!1};v8xǃɃ*5'P/gX<;MXX%1STD ! !r?<"D!}-Fttttttt*F!F!|	V&]]]]]]]]<kyӄ߀I!&S4111111)!028-:L-oooo:2:Rߖ<O9J=h_,`k"Tdegoo?rӞo&]Ti&i&i&͍B$$-JLLLL{ea7Òˑ͑I!dd
-2F!d%WWn}WWјG2
-Ә՘.9
-	s+AكA9{oŝ		)\.9/13on˃̓σnoo=\o0*	K3	2ekr88+	?3	$ǝ+	?3	,ɝ
$ك՞,u98:8-:R:R*c*(%*c*..,/ UU !q\\\\e%-m)_S5Y[	S[L2[[oo.!		>!	>)\)\w'C?!![[/opopG/˝͝/0000%IL0U 0op/zzF$ߍG$M5E0010S1~~/~)~GE~,,,,,n	m?^kH11>11y""''11,zzz2	;
22222L2	;
c22e׌~333344]!w
-82Zt);#
	
-!
-9
-!ك4dGdBV$ٌ,Dϝѝɋ
-8[[D/0
-K333335)LeӂeXˋ###&	,D	l8,G2L2H$	"A
--*.=/]]!({0͋.w8hppW*"5LOz8Y.	![u	ӝ՝LzY%kH,ט88;Lz8,DH:8LD8Vo/]Q!({2!2!
-pL-HY0uLH1"-
-yreHyk5I	E,D,)CTww!0u/ewˁHYHӃ:L%F	
-!wكu	WםG508	":MYC#C#C>5U444555555666666,7٘7UUU777]]8899988889999A9a199wx9XX::OXX,U>mnVILDD
-
-?5&!	yMEe+-!$ILILӐUo
+c*(%+c*,D-D:{;;;;;;;<;:2n<<8:L:L-=====1>>><@=7WWWW+mݘ@*+"LILLILL,n@@@@A#
L	L!WWWWY5UwxILUAAA""A%BBB8)B2uBQ	&L
3
-c;[zzmnmnTTn	Ù1
5
-e=?<ABBCCCCEEEDGFFFGGG89r99UY3%Q	&/	7
-g?[wxn	%	9
-iA?G::G
GUGHHHHHHHHHHHHIIIHHHIL -I
c5CD UUU4333333!#<1XE UV
=`SSSSSS9&"o+IM'.w+lO1(5
,&OOOOPQ QQRRRRR*RRR*'R**'S*(SSS+(SSS+(TTTT"
"
"
"
))))
-(A
-(A[[qr71$~~I MI MI MI MI MI MI M%?@?@?@?@?@?@CDBaSBSqrCD)U)U)U)UI M
-!I MI MI MCDFGI MJ MJ MJ MJ MJ MJ MJ MJ MJ MJ MCDCDC.D-CDJ MJ MJ MqrqrJ J MMJ M?C׃?C~)U)U)U)UۃCDCDqrJ MJ MJ MJ MJ MJ MJ MJ MJ J MMJ M
<P?Mef!))T[\[\efTTTT77TT77S:7UUopU77UUJ1:ӁFGFGMCMVV;T!VVVV"?WWhhmnWWWJMXAXXXXsfgfgfgYYYY#C#C!Y=YZZ;;;;;;XXZZ[FF[\\pfp''LJA9/;
-oC[1ɇopop=
-qE?))\\\\\\#11JM0h7%7\I\\]]]]7%77&77&7V777777777k/-]]]]0-^lm^^^M
AA^^-___
-+
-,9999<=_______``````````aaaaaaaaaabbbbbbbbccccccccccdr-bd,,be,M/>/>	/ݝME
-~;au
-YI111113Y-u9
e/






%
qa
-?8l7Gߝ+MMs&#V=0zzM߃fM0,,rmn->	1+&D,,l)s&gMgggJMÎhB))!Yq]Or!-,:%efi"'"+"'"+JM5jJ0mMMNrmnN,,,ooomoooˇop?Cpp͇p![%D
cI9

m?I''ppppwk5IACI'
I9
I'#1#DII'
ppI9
WXpqqq+-!$6<$+-$q
-K333335?
-C# U		

 VGs
-?>	
-!/\\\HwddYCDDDD\\D/gS;fn=&	rNn	%
Afe+<Xh'i&i&i&NNfl	o#@&frr+2!+NXы7%
c)..###x	.\	N
/:R<`++^) 9 9^) 9 9C1####f76<uTN=XES"+ixNX<XG1NyyH$$$u$'Y/	"A	- ;: " "N.NrՋs+W-?.e8-('h1pp1?DN?DN-LOeh'YTi&i&i&zzz&--:8:R.Bp!	1
	)\]!\ppN0pzG$1Yk"'	;
N#D7GA9xXXNN-D<;--:L-WW+WWxN"]Jun	[znnT[3i?E8Gn	[x[3?-:NDYEV' }
-N"
"

-(@\rNNNNNNN?@?@?@DBgSrD)U)UNNNNDGNNNNNNNNNNNDDD-DNNNrrNNN?C)U)UDDrNNNNNNNOˎOOO@L7f){fTT78p8GGVhnOYgggY#C;;;Fp'7[1[3pp?)1O8]888^mss
-,55<=zy+n+AOO//)((f",",O*$ k1I,'ppCI#CX'>xx"}<81/fxŀ0/gX<;OXX%RD " "D-FttttttG$<4111111:8-:L-::QOSh_,`ee'YTi&i&i&-JOOOWW:LnWWG0	F/9
-
-		
=xpW)\/9.12pG2n0pp=p%
-	1
	":MU	CU	G;-&	q'=t'>u9999u'5 z"0)IT)5U'']]'wxwx!"+N}юe%uuuuuvvvvvvvvvvvvv+
cG=)
- ;))=9G50E3ٛ;Evw<w1/11/fffffOxxffefwx+XSxxǀ0'P1/g/gWX;<;A;SWXWX'x4xwxy$%3yyxyzmSRO###BDOTTCD" "" "qr??9==6CDۆ{{{3{{
,F.tt.tttttt...t...|ttttF$U		||||||}}}}}G$>	}}

[3n];<}!~~~~~~~~+++)~S%̀ՀQ/MWU}}4&	] 8:Lc:LŇ͈::Y߆:R:Q:8ŖӎOOÊŊNJ׉JKgh>% O+O+~={݊_,_,%8%%
-`
`F
dede
-%9%	ESCg!E1aM
kK	1U_	%_gC	C33333}!!3-)!C	)S)K	I'?#S/wO{5/S!####3'/-/M'uQogO)	A7-)
-??qr&aT'[Ti&j&i&j&i&j&ōэ*9{gG
g',`)ϏJOJOJOŐɒϒْW/q͔ӔבWIǐRWWWW?ey
-]K333333]1{=we

-
-
TY[
TY[:L:Ltno%++++<$V1CS###<*.+-$=ÆldžɐۑݑߑːɆǖ!WWWW[[O7FF!ghh
9
-1
0wxA
K
m)#CCC'S+}=
Q
-
K
KGCC'S+}=opɗWW)\)\hhϗ1op1F6noG200՗opop<=op!!=1=S=1==
׌	!		@%
-!	Aj/mqrÜŜǜ"":M:Lɜќٜ5	
-:gW	:%5	
-CgW	C;-&g%45ߙݞߞ˞;-&!9_
-C>8+Y	0)*4E		C
-	;1
 	1e0
-,n'
-
-{17
-~Lu4)02>'%G		C	)$$
-
	$	"'P<m6	
-
-,+7F#*S$q+
!E1
-
g
-&5g		a	]eq;(,5=AG,	WQ?!5
-/73	{	63h	N:7Zh*.LN);$)*
-#,"
A+}8M0G'C2
E$8
-s	%6(ii8
-"3=5
-QM=
-	'-85-
*\9w.+J>F41S0+9L" 	;/&	
	
	8!W!
}U'+?k{C-w-Ay
Q%'g}c3Y	YU?q
E79
C%G##E;Mi/A535wcu
/###YY=WA3e								;!;q5	
#}	

W+
y'6"W'T8T7T7,+,,,,,,	nnn%%%99ߒ=ccA=Ar;? !!]Vw,+,CIא###BՐ?]\!JFZ+EI7%IId=ccA=Ar;?F:X׍ٍ&44444[EEEEGFFFF~{?&$@T&,229HIgopx~{ٞm,,/!tIJJjJjjJJjJIjJjJjJjJ jjJJJ J J JJ J J jjJjJjIjIjI IjJjjjjIjJjJjI IIIIjjJJ J et݆Jۆtt}h^^ > ^f u^d/
h^^ > ^f u^d=ZhfJJfefJj}tEEtttJJJhhhV'Ն%d}!d%I;ttzzzzIjuu߆!x}jIIzd%ن%d}IJIJtIzzzWee"+ӆߍEEmݒۍ3m+BCCCCCCCCCCE&.pp	zqqqqqqqqqϙIχ:ˀEoo!1FwU0II~EIwmI0119љ&әՙ&י:9999999999CX1ZZٙۙ,+++,,,ZZZZZZeeeeeeII 7777777A]pp!!!!!_Ӑyߙ[[ff/~F00?;IE׆IJ:˙GUUUUUUUUUUUUUUUUUgggg::;UIQjUWяiӏiՏig&oo[:RI:ُiۏiݏig'|&ig'|&:Uj}V[[[əw[[eoJIz?F?CooUUUUUUUUUŖ+++I1:JAU###jDۋ
VjEцV~?=?~0<<0<<FFoŊ]NJ$
A.nnw/):RC)ɊGX0;eCe
dW!+X2~;x&~;~ Cmo)CmTCCnwo11~		yÊ :-W;W B&'gi|V+׏ !jI;t~F~0qϐd&	o	~ B1(.jeh) j$
AIZF~000)m"''	;
eCmX,q;1"oomhTmnwoomhnw ,,,,,,Xѐ!o[    CCwTˇ͇C""qqqqqq2B
;x?npw)/):TJ'hLJAɇ)+,$
ACIII1&""Öj_,WC$
A$
$
V0!!!W;;;WW$iiU		;,++,,,,,,Vgi&ߏ'|!~F:CC"'~
ddeC?wOǖXh)!hhj$
AC!!B1.(jeWWW;;WWWW;;U?[?@?@H$999ggooݞߞ$$$HIIHHHIHHHH$ÜŜǜgo۞~~~~OFF'?V&FU^,n[eXXO6<w:/JIߚC!C&Eݙ		""$)4A WQu"*.--RRDf-N%
Af-׎LLLLMNNp+N"?nOm*+T]]xl=#=#A} Ay cycu6A	
6;C%+
=%+#i}
-ay333
-a



0#cw
-[}333
-[06-
i6-c7;%
c8X'TX'TY:RbGuNNu%%%%%%%%%D44DDi'Y/nn>5>>/>1>1---<<N	;
&J&&Jk&y+&&N.
-(@\))G))???ED?CÀÛśǛɛrrrrrrNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOˎOOO&EyِEׁJPkqMMlrJPkqNMMlr'-V'"?-V:L)U$$~---~XX1X0X0ÉNffCi}
-aG333335a%}A{[





%
yi=cw
-[K333335[/y;
C!'ucAAGzG98)<==1='PS>#b6<$=A}AyAVB buӎՎÎŎEGGklzH@)./y͊j.....y...../)/z/y///ŗ/efe...........//]yيG׌y\ӋN!N::9'.}
-#CN4c
-!
-!


-

-Ϛ#*RRRR(*SSSS>3+++bb?>X?Þ
-
-
-**+>>++*
-



*+++
-
-
-


>@bbBBAA
-
-++*
-



-
-

A?
-

-
-
-

-
-
-

-
-
-
-

-
-
-
-


-
-
-
PkPkPkPkPkPk#-[#,k#-c#,sPkPkњQ
-
-
QQӚRsccsss
++*
-s?
-
{{{{{{{{՚B>BsR6'4H4333F#
-
{6F
-
{#(@3?)Ey:Q7]8x--l	t:\\8m}VJLLLdYMYYYYYݎNNYYLLLZMZZZZZߎNgSOZZ\)s
-?\\\\8888]]0]]h>>BBssRR{{

-#(3@#
-
#
-
{{
-
-[M__`b_nddE1x*7\͛zppITyTur%cctttV'>Fw<Oz]S###jÈ׈x"-t-tt}}||}Y4&CS###jD*BRvp{?R+ю*6fpσ߃^Bŀm-:L_,$Omdxюۓɐϓۑ۔ݑߑːɆ-)h]]\z"'''\m+-!#+-!#+-$ߝݝ+-!#+-!$	#e/
-/		?
)o		ms
=/Ui/SS]A[S{-#%-W
_a	C]=qWiQ'	1	[}[Q
-
-98T7T7U7FV99ǐ=iYA9Ar;;}}!
-!
-!$^VxAUL0CJ###BǕ?qmrrrn]\̈́<"L-ZG[J88887?Tŕ??Õ?ɕېݐLL==9AG5rE3AsG:ӌ))ـz &Sz}OF&2
-!x###BD###BD[vӎEEEE<+-!$׃ك?ۃ
-K333335)]rqm0Y&	
-!plj--z7Y5mV/ӄۀI9!*4555667``aaaab]E
		o;7!'C!___`bS>APssQ>>AAssRR{{{{{#
****;#(3@#(3@***&$wndMMMlMllMMlMMlMlMlMlMllMMMMMMMMMllMlMlMlMlMMlMllllMlMlMlMMMMMllMMMetMttL}i_^^ > <<^g u ^d/
i^^ > <<^g u ^d=ZigO_MffdfMk}uEEdtɏˏ͏_uMMMiiiV'&d}!d%J;duzÙzzzJkuu!x}lIIzd%%d}LOLOtLzzzWef"<_DEEO7HVŐRSBDDDDDDDDDDEV]-GF.qqC8U4555667``aaaaaǝɝ7z]ك-UsAsAUz͍U
-I333335! 		

)1x{*Vk8oV$-vrrrrqrrrrvg%ggg&g%ggg&g%g%g&g&,,n/{ZZogo---xx-x------xx2*'/	!F''-102,,ooozx1$88U2kV/VUqCk;99o&*v]ngx&222!UYVFٌ)
-?ϝѝՉ[[[Hdd
-[[/gs;em	Kn	$
Ae
dKK<Xg&i&i&i&LKek׉	odӂeXE2!KX$
[8)x[!N:R<b^-= =^- = =ummK XD}!iKX<XGLu&]/%"A
-KK ;:>1 " "0K /0Aq͋ɓWk		/8V'{1pp1kLLN)):LOdh&]Ti&i&i&zz:::R.Uo2	)\![ooӝ՝00LozF:0SI"'	;
Kegטm9wX:nKKK,D<;:L=WWKKזWWwL"un	eJznnGqn	eJwۖ:
LXEV&.u-K"
"

-(A[KKKKKKKŘ)U)UKKKKFKKKKKKKKKKKKKKKKK?C)U)UKKKKKKKKKKK
>Oe)-[[ep7LFFVhnLXggg#C;;;Fp'ه?eۇooJ)1L770-m
-,33znkLLÃ)rݖe")")LLO݇߇I,'IgX'>ww!)CT;1CewɃˁ0/gX<;MXX%S " "rtttttttF:<ӃI:::L::RߖOJh&]Ti&i&i&_,derLLL͑IWW:LnWWFјӘ՘h
RwoWם)\h1oG5n0ooo	2	kr":MC		CC		G;-&,,ooon101$1$՞Ӟ$%%
-=/[EF$HL7:JEF]JA1A1=͝oo		!=:0wn====$,		F=xV0-J,,,,,J~X<6<F5xn_0H&KɉH,uu0L10101ŝq
-s&#	yE88+	
-!&:ÝӉˉ!͉AOO8Y577TC]DX-ZZZ!Z#Z%Z'ffffffLM7777777C]]Ոppv						
-K333333)]_y˕V)s&#M=nBC&&\BBB&B\BBBBDBRDDDDDDDDCDE\\CDCCCCDDD\}l\!xDEDEїCCDCzˍCzD\EDDDzDCEӗEE"i* 0%B\\\\]]k}X\F!F!*HHH
Heߋ-YYYYYI9I9-d!%*99<Z_1bcdn{"3Y889G2 3:9  >YE!"###%@&\&((),//22334445566888999<=<=>?@@AABBCHHIQRRVYZZZ^_1__``bbbcccddggh~inoɞrssu{{{|~Ïݗמ9$$?y
K
K	CC'S+}=y9FL݋̓yׇ]]]]]]]]^/$HD..^HC?V?V?VGGCU###jDπрՒɔ~4333335)#						1	99\0*7Ø͘0ɘǘ˘@݀ՄוǔєfɋJT+ѕ+w+ˋϔf++??TٓR
RRS
S
T
#
-?T?Tp+]	19Y&*?CT\@?1pXXXXd###T1Z+0TU4333335)#							1	+׀ÔBB'P%)X%%TB%Ŕ.T߀7^3__``bbcccd]+
-!T+wH1U9ۉ9T\@#
#
#
#
Ӏ\TϘ###YSYYC{$H[99999[[EE[-vvvvz
-






#]
I
O
0>#B cٛ~F11?FzR	4333335)==<8JEJM:BGg::;JPkWiiig&op[:R_I:iiig'|&jh'|':k}V[[٘[x		[[fp		OKz?G?Cpp-OmDrD.|	LÁJ1:MAU###jD]ǍmEKAF5?ϕ=Z?ɀבג90<<0<<FGp^$
A.onw/):RCǗ)HX0;eCe
dW!X2~%;
ђx~<	~Cmp)CmTCDoxp11y\:щ\X<XB&'gi|V%!kJ;d=)G~)0q*d*&	o	~B	1"(/dleh)mݛ%
AKZ|GŁ~!0	00)m"''	;
22333eCFE9nX-q<1"ppnh%Tn]nx%ρF
-
-!
-!ppnhnx%сX!o\CCxTC$n""qqqqrr<y?nqx)/)ˊ:TTM*	'h9Ձ)n,%
A7DJJL1""k_,XC$
A%
%
V		>As	ǃ1=$X<;<XX%88889jj<Vhi'$'|=G:DD"'=eefDF!?ՃxO		Xh)hhmߛ%
AEB	1".(dmۛf\;;dWWWWdY3;;dWWWWdY3;;ZU?݃[}?@?@pp~F+<$+-$GG4333335+pg'bYc0YY		!'

-]2KI'ppI''?VӁ=_˝Fفǀffff$HofXXO6<x$:/MHDHDHDHDLכC"DEH++*߂ٚ>4xHY$7lR4Ś|###w4hDՋDV\\/NffX\6<GN"A	/8{ppNNOz.!\NzX;Nz:NVpO1OznfI,xx"1Cfx:LFxWG20":MEEϋы~~)--w-كY5)a)a&].w
-%VV[4[4[4e66/~~~L/	Mwwwϖ<~JLLLLL-%[fO˖[f-%..%%w#$$

-	
-PkPkPkPk#
#
#
#
PkPkMMn[f0%NNN*44ǚXωw|
-ff[[[[[[&&&4gDDE?DDD\\Hdd;	n	eh'i&i&i&	o2^) 9 9^) 9 9<; " "W11eh'i&i&i&:R!
1
	)\pppXNN-D:WWWWxn	fJn	fJ"
"
@LhYggg;;;pfppJ)^
-,55O",",O/g<;OX%R " "ttt<Oh'i&i&i&eeOOOWWnWWn	)\nppp%
-
1
	U	GU	K;-&EEEUVZ4[4[4e66/~~~L/	MML~fwwwÆYYYǎ͎YYY--Mddddcm.Ɏώ----.-dd-.-.MnZZZZZZLLdddcm---Y4.-Z--y.-.)

-	
-PkPkPkPk#
#
#
#
PkPkɚ|5gRR*RRRR˃.RSRSyY>S>/SSG>=1>=>SSSG:8p)Zv*p>R'vv'PG'P)X?vpvpGGGRSI8G?742
-

-
-
-PkPkPkPkPkPk#
#
#
#
PkPkSωńۂۄ݄Äقł݂ٔ.RRSRRSSʼnI4˚|15gDTDTDT(řnx7p(**2YYY((((Y(YYYYYYRS*YSSS7777777777~"*+Ϝ4333333`#%}++]$)4AO#
-
QOל	
O4333333)#+AH	$go~ϞHH
['(oU+

 Y[	k	=Z888

bbcbbc1
-QQ{{
<+
$9$4G0	
-YBDDDDDDDDDu0+ݘߘ******PsQ4333333)#0 8!78898**
K
K	CC'S+}=4333333)#8|
{{{{{{{{+^8LL	l4333333O{-u-..-ך%dž0ۘ*{O[91"		
<U_6[}:G3'AYEmG:::Sz4333333)#4333333		++1+++++!!GG1>5>*G>'4Sہx"++
-PsA+
-++
-
-
-
-
-
-
-
-rS'~A
-

-
-
-PkPkPkPkPkPk#
#
#
#
PkPk4͚}6fņ~#'3=@AC1"Qr{SǙ!q/9FTV[_qMbbcu;5K1.C%#(3=@AQs{xU49Dž)?7WAE\*	%+)'
wgoUyk[3O#c!?WeSQ=Úۚ8)80E-/qmR4333335`#7FI1ϒ͈UvWG)e,i]_Y$-I_&dG/zݍ
$,2;;;;Gq,0'4|hfnu>/
N	H/*~GU^3x0R&B]g&'|iϏ99FY4333333)#^!d
-
-1





%
0	m%2ќ	ɜP'tZY}\T]]_pyna}Iz~Ň==!*1<8mowVj&v	XW9g6E|͐H~AUBp&Ew]#(@3Ty7OW1UU'29}\0s8{ْ~!<	φ+o	z\&&&&&&&&&&&&&&''''''&'''''''''''''''''''444444444444999999999999999UUUUUUUUVVVVVVVVVVVVVVVVVVVVVWWWWWWgggggggggggghhhhghhhhhhhghiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijijijqqqqqqqq||||||||||||||||||ϏяӏՏ׏ُۏݏߏ///000YYYYYYY\\\\\\\\\\\\\\\\\\\44RRR							
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
















##########################''((((((((((((((((((((((((33333333333333333333333333==================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOOOPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQRRRrrrrrrrrrrrrrrrrrsssssssssssssssssssssssss{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ÚŚ#################$((((((((((()))))))333333333333333444>>>>>>>>>>>>>>>?>???@@@@@@@@@@@@@AAAAABBBBBBBBBBBBBBBBBBBBRRRRRRRRRRRRRRRR^^^^^^_____________________________```````````````````````bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccdddddssssssssssssssssssssuuuuuuuuuuuuuvvvvvvvvvvvvvvvvv{{{{{{{{{{{|||||444444444444444444444444444444444555555555555555555555555555555555555555555555555555556666666666666666666666666666666666666666666666666666666777777```````````````````````````````aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbRRRRRRSSSSSSSSSSSSTTTTTTTTTTTɜ˜͜ϜќӜ՜לٜۜݜߜ**************+++++++++++++++==================AAAAAAAAAGGGGGGGGGGGGGGGRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTrsssssrr'''''''''xxxxxxxxxmnnnmmmmmmmmmmmmmmmnnnnnmnmnmnmnnmnnnnnnnnqqqqqqqqqqqqqqqqqqqqqrrrrrrrrrqrqrqrqrqrqrqrqrrrrrrqrrrrrrrrrrrrqrrqrqrqrqrDžɅ˅ͅυхӅՅׅمۅ݅߅ÆdžɆˆ͆ÜŜǜ*VVVVVV^^^vvvvvvvvvvvvvvvvvvvvvvvvvvvv}}}}}}}}}}}}}}}|||||||||||||||||||||||||||||||}}}}}}}}}}}}}}}}7777777777777777777~~~~~~~~~~~~~~~~~~~~~****~~~&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++++++++++++++++++++++1177@""""""000///232233333OOOTTTYZYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZ\\\\\ddddddddddddduuuuuɗ˗͗777777777777777777777777777777777778888888TTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\\\]]]]]]]]]]]]\\\\\\\\\\\\\\\\\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]             !!!!!!!!  """////////////0000000000000;;;;;;;;;;;;IOJJJJIJIJIJJIIJJIJJJIJIJIJIJIJIJIJJIKIKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLILILILLLLLLLLLLLLLLILILILLILLILLLLILLLLLILIMIMIMIMIMIMIMIMIMIMIMIMIMJMJMJMJMJMJMJMJMJMJMJMJMJMJJMMJMJMJMJMJMJMJMJMJMJJMMJMJMJMMJMMMJMMMMMMMMJMJMJMJMJMJMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOJOOOOJOJOJOOJOUUVUVVVVVVVVVVVVVVUVVVVVVVWWWWWWWWWWZjkkkkjkjkjkjkjkjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklljllljljljljljljljljljljljljljljljljljljljljljljljljljljljjlljljljljljljljljljljjlljlllljllllllllllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmjmjmjmjmmmmmxxxxxxxxxxxxxxx}}}}}}}}}}}}}}}}}}}}}}}---------------------------------------------------------...........																		<<<<<<<<<<<<====OOOOOOOOOOOOOOOOOOOOOXXXXXXXXXXXYYYXXXXXXXXXXXXXXXXXXXXXXXXjjjjjjjjyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyɖ͖ϖіӖՖזٖۖݖߖÖŖǖÞŞǞɞÝŝǝɝ˝͝ϝѝӝ՝םٝ۝ݝߝ		!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""!"))))))))))))*00000001111111111111119999999:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::=========@@@@@@???????????????????????????????????????????????????????????@@EFFFFEEEEEEEEEEEEEEEEEEEFFFFEFFFFFFFFFFFFFFFFFFFFFFFFGFFFFFFFFFFFFFFFFFFFFFFGFGFGGGGGFGFGFGFGFGGGGGGGGGGGGGGGFGFGFGIIIIIIIIIIIITTTTUUTTTTTTTTTTTTTTTTTTTVVVZ[[[ZZZZZZZZZZZZZZZZZZZZ[Z[[Z[[Z[[Z[[Z[[[[[[[[[[[[[[[Z[Z[]]]^]^]^^]^^____________fffnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnononopppooooooooooooooooooooooooopopoppppopopoppppppppppppppppopopopopoppppppppppppppppppppppppppppqqqqqpqpqqqqpqqvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwxwxwxwxwxwxxxxxxxxxxxxxwxwxwxwwxxxxxxxxxyyyyyxxxyyyyyyxyyyyy~~~~~~~~~~~~~~~~~~~~~~~~~~~~ÅŅ̀πрӀՀ׀ـۀ݀߀ˀÀŀǀɀÁŁǁɁˁ́ρсӁՁׁفہ݁߁ǂɂ˂͂ςтӂՂׂۂńDŽɄ˄̈́τфӄՄׄل߄ÃŃǃɃ˃̓σуӃՃ׃كۃ݃߃ŇчӇՇׇهۇ݇߇LJɇˇ͇χÉljɉˉ͉ωщӉՉ׉ىۉ݉߉ËŋNjɋˋ͋ϋыӋՋ׋݋ߋًۋÌŌnjɌˌ͌όьӌՌ׌ٌی݌ߌÐŐǐɐːِ͐ېݐߐϐѐӐՐאÑőǑɑˑ͑ϑёӑՑבّۑݑߑǒÒŒɒ˒͒ϒђӒՒגْےݒߒ˔ÔŔǔɔ͔ϔєӔהݔߔՔÓœǓɓ˓͓ϓѓӓՓדٓۓݓߓÕŕɕǕ˕͕ϕѕӕՕוٕەݕߕBB]]]]]]^^^ňLjɈˈ͈шψӈՈوۈ݈߈








"""""""""""""""""""""""""""""$$$$$$$$$$%%%%$%$%$%$%$%%%%%%%%%%$%$%%(((((((((((,,,,,,,,,,,,,,,---00000000101012222222222222222222222222222222222222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;<;<;<<<<<<<<;<<<<<<<<;<;<;<GGHHHHHHHHHHHWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWdddddddddedeeeeeededeqqqqqqqqqsssstttttttstststttttttst00000000000000000000000111111111111111111111111111111111111YYYYYYYYYYYYYYYYYYYYYYYYY!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$,,,,,,,,,,,,,,,,,,,,22222222222222222222222288888888888888888888888888999999989999999999988888899999999999999999999999GGGGGGHHHHHHHHHHHHHHHHHHHHHHHHIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXXXXXXggggggggggooooooooooooooooooooooooo~~~~~~~~~~Íэ׍ٍۍӍՍ˞ٞ۞ݞߞ͞ўӞ՞מ																																)))))))))))))))))))))))))))))))))))))))))./...........................................//////////./////////////////////////////UU]]]]]effeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffeffeffeffefeffeffefffefffffffffffffffffffffeffffefffffefhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyyyyyyyyyyyyyyyyzˊ͊ϊъӊՊ׊ۊ݊ߊÊŊNJɊ×ŗǗ&&&&&&&&&&&&&&&BBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCEEECECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDCDCDCDCDCDCDCDCDCDCDCDDDCDDDDDDDDDDDDDDDDDDDDDDDDCDCDDCDCDCEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE}ōǍɍˍ͍ύϗїӗ!!!11111111<<<<<<<<<<<<<BUUUWWWWXWXXXXXXXXWXXXXXXXXWXWXWXX______________z{{{{{                                               !!!!!!!!!!$$$%%%%%%%%%%%%&&&&&&'''//////<<<<<<<<<<<<<<<<<<==========GGGGGGIIIIIIIIIIRVVVVVVVVVVVVZZZZZZ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_dddddddddddddddddddddddddddd}}}}}}}}}~ttttttttttttttttttttttttttttttttttttttttttttututuuuutuuuuxxxxxx|||||||||՗ٗۗݗחߗ**************************φцӆՆ׆نۆ݆߆ÇBBBBBBBOfgggffffffgggggggggggggggggggggfgfgfggggggggghhhhhhhhhhhhhhhiiiihihihiiiiiiiiihihihiuuuuuuuuuuuuuuuuuuuuuuuuuuuuuݍߍÎǎˎ͎юӎ׎Ïŏɏˏ͏00000[[[[[^^^ØŘǘɘ˘͘ϘјӘ՘ט٘ۘݘÙřǙə˙͙ϙљәՙיٙۙݙߙ""""""""""''''''''''''''''''''''''GGGZZ\\\[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\[\\\\\\\\\\\nnnnnnnnnnzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzۚݚߚÛśǛɛ˛͛ϛћӛ՛כٛۛݛߛ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%UUUUUU{{{						  """"""""""""$$$)))****444AAAQQQQWWuuu888888888888888888888888
\ No newline at end of file
--- a/apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.nrm	Fri Nov 24 15:18:20 2017 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-NRMxy||||||y||yx|yyyy|yxyxxyxyxxyxxxyyxxyxx||y||yy|yyyyyy||yyyyyy||xy||y||||||y|yxxxyy|||||||||yyyyyyyyyyy|yyy|yyyy|y|yyyyy||yy||||||y|yyy||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||wsrtvsrussrttwpuqstrvvuutvtxstxwruvuustvxttvrvvxuvvsvxtxwvxvvxvvtxqrqvttvutxxwsusuxtxxxxxpxqrtuuvuutvvuwvuututtxwtxsuuutuvuuxuuuwuuuuvuoxvxxxvtxxvmvvvvvvvvvvvvtsqvvtstuuuuttttvtuuuxvxutxxxxxxxxxxxxxututxvvvvvvvvvtsqvvtstuuuuttttvtuuutvvvvvvvvvxtsquvvvwuuvvvkuvvsuuuuuvttttnvtvxsxxvyuvtvxsxuxxxxxxxxuxxvvxyuuuvvvvvvvvvyuuuuuvyylxsvxuwvuutvvtvvvpvvwttwvvvxxxxxxxwttvvvvvvvwwvmxxxyxxxxxxwxxxxxxvvvvvvvywxxxuuttssrvtwtttvuuttvvxvwvvvwxxxxvxxxvutvwvvvvvvwvupxxxxwvptxruuyvxxvuvxwututuuvtuxwxxxxxxuuuvttxtxxvyutttvtvvvtvvvvvvvvvvxxvuvxtwuuxuwxxxvxuvvyvwwyuuyxtvywxvyyxttxytvtvuuxxuunyuurruuruvvvvssrxxtwttvvuxuuxuuouwxxmttttttttttrrtttttsttttttuvuuuuuuutttttttttttttssstststtsststststttttttttttttttsstttttttttttttttttttttsstttttttttstttutttuuuuttttttttttttttttttttssttttttstttttttttttttttttttttttttttuusstststtsststststttttttttuuuuuuuuuuuuuuuuuuttttttttttttttttvutttttunxvuxxxxxxvuvvvvxtuupyuxxyvvuuuptuvxxxvxxuttwvtuwvvvxuuvupwuvwwuqtuuvxvwttwwxvuuuyutuuxvyyuttxxtjvwvvvvwuvvsuvxxvxvxxvvvtvvvtvvvuuywwwwwwwwwwwtuwwwyvutvvuwwxwyuuuuttttuvuvutttsuuuwutstxutttsuuyyvvxvvxyutstwwwwxxxwvvvwuqxyuxxxxxxyuvvvvxssrwttuuxuotttvtuxxvvvtvytyuxxvvvuupuussmtttxxttvvpxxxxxxvvxvvuvutvvuwxtuxwxuuvtxvtxvvtvvuuguuuxvtruuuwvvvwxvvttuvstvuuvxvuywtvttttwvtxxxxxtuxvutvvvvvvvywotwxtvxwxxxxvvvpyvyttxvvvtupyvyttttxvvvtumyvyrttxvvutumvvvuvvxxxvvvvwtuvpyvyttttxvvvtumxxxvnuxxuuuvxxxxxxxxvvvvxuupytyuttuxvvtuqytyuttuxvvtupytyuttuxvvtuqytyuttuxvvtuvvxvvxxxxvvvwjwttututtuuuuuuuuuuuuuutuuuuuuuvuvwvvvuwuukvsrvsvuvxvxwvxvvvuvwtstwwtsvxuutvvwwwwwwvwvwvvwwwvwwwvvvvvvvvvvvvvvvvvvvvvvvvwvvwwvwwwwvwwvvwwwwvvvvvvvvvvvvvvvvvvwvwwwvvvvvvvvvvvvwvwvwvwvwvvvvvvwwwvwwvvvwvvvwwvvvvwvvwwwwvwwwwvwvqxxxyxxxxxxxxxyxvvvvvuxuttxxxxxuxvvvvvuttluuvuuuoxxxxxxxxxxxxxxxxxxxxxvvvvvvvwjuutyvuxuuutvyxxxxxxxxvuxvuvvvvvuntvuuuuvutsytyvxxxxxxxvxxxuuuuvuvvvvvvvvvtsuvtupuytuyuttuxvxtvtuquytuyuttuxvxtvtupuytuyuttuxvxtvtuquytuyuttuxvxtvtupuuvuwuultvxxttvtqrtxxuuwwvvvvwvvpxxyuuuusuxvvxsxxvvvvvvxyxyvvvvvvvvvvvvvvvvtvsluuvvuuspuuuuuuuuuuuuuuxxxxxxxxvvvvvvvvuuwpuuuuvvuuuuxxxxxxvvvvvvwvvuuvvvxuxvxxxtxxwxwxxwwxxxxnxtxxtxvvuuwwvxxwwvvruwwtwxxtxxxpvunuutyuuuvtyxxxxxvvuvuxvvuvuxuuuuuyyvxxxxxxvvvxnyxttuuuxxxxxxyxxttuuvvvvvvvumtuvxxxvxxuttwvtuuuuuwuuuuuvvxxxxxuuuuuvuuuuupwuuwwuqtuuvxvwttwwxvuuwvvuttuuhuttsvxxxwwxuuwwxvvvwvtvttvvvvuuuoxywywwxywxyxxxxxxxxxwywwxvvvvvvvvvywrtuutuuuwtwwuuututtttuuuuwuyxwxvvvxxvvxxxxxxvvvvwxxxxxxxxxvvvxxxxtvxxuwuyvurvvvmutpvpxwwxpuywxwuywxxxxxuxvvvvvwmwwsxvxxxxwwsvvvvvtvxvxwuupywxwywxxxxuvvvvxwuxvxuxuxuptuvxxxvxxuttwvtuuuuwuuuuxvvxxxxuuuuvuuuuxxxxxvttssrvxpwuuwwuqtuuvxvwttwwxvuujuutytutuuuvvsuxxvtxvxxxxtvytuuvvvuvvvvttvvuvvuuxxvvunutttttsstxtsxxuwuuwvuuruuvtuuuvuvuovwvtstutwwwuvttuvutvvututuuuttvvuuvtttttutqywwxwwxuxuxvuuuttsvuvvuvuvuuvxwwxxwxxwxxuxuxvxxxxxxwxwxxxxxxwwxxxxxxxxxxxryxxxyxvvstxxuuwwuuvvvuvvvuwxryvxxyvvvnuvrtystxystrwstttsstvuxvxxxwwxxuxxxxvttttttvwutvuwvvvvvvwuvwtwstttttsstvtuhvtwwtsttvuvvsuxxuuvtvxvvxuuvxvtwuuxvuvtttrrrqttvtvtutttvtwwtnttxvxtuurrvjvtvvuvvsutxvvtvvxxvuvvtuvvrxxvwxuutwwutuuutvxuvpvvwxvvlvvvvvxvvxxuxttxvvxssvvrwwwttxxxuwwwyttxxxvvvyttkxxxwwwuluuxtrxwwuutxxxxxxxxxtvvvvvvvvrxwwvquuuvuwxxwswsxqtqxyywywwxwxyyxxxxxxxxxwywwxvvvvvvvvvwxvptvvxxwvxuuttutvwxwuxxxxwxyptuvxxxvxxuttwvtuuuuwuuuuxxxvvxxuuuuvuuuupwuuwwuqtuuvxvwttwwxvuutvvsssssrttvvvvvsvptuuutxxxwttwwxoutwxvvwvvptuuutxxxwttwwxoutwxvvwvvptuuutxxxwttwwxoutwxvvwvvptuuutxxxwttwwxoutwxvvwvvptuuutxxxwttwwxoutwxvvwvvptuuutxxxwttwwxoutwxvvwvvptuuutxxxwttwxoutwxvvwvvunvtwstttsyyttttvsvmxvxxuxxxxxxvuwxxxxtxxuxxxxxwyywvvwwwurwwwwwwwwwwwwwwwovwvvvuutuvxwtvxuvvxxuxtxuutuvxwtpuwwwxwwwuuxuuvuvuvxuvuvxxxuulttuuxtvvvvuwvtvvupuxwxwwwpuxuxwwuvvxvvptwvwxwvwvrxuxwttwvwxvxxxxxxxxxxxxwxxxvwvvvvvvvvvvvvvvvrxuxxwtxxxvpyyyyxxvvpxxxxxxvvvxxxpwwwvxxxxwwwvvvvvxxxxvtxxvvuuqxxyxyyxxxyxxxxxxxxvvvvvvvyyxvvvvvvxxxxvvvvvvwluuvvvvtwwvwuttssrvtwtttvuurxxxxvvwxxpwwtuuvxxwxvxxuttuwwvmxtrvxxtvtlxtuxvuwxxxxvxvvurwwyxxuvvyywyyxyxttuuyvyytyyuyuxtuwxyuutvwtqwwtuuuwvtxvwttuvwwxitttutxututvustvttvttttutxtwxuvvvxuxwxxututvuuustvuvutttutvvvvvwvptuvxxxvxxuttwvtuuuuwuuuuxxxxvvxuuuuvuuuupwuuwwuqtuuvxvwttwwxvuupwwtuuvxxwxvxxusttwwvtxxxxxxrwwvyywyyxxttuuuxvywuutvwtqwwtuuuwvtxvwsttvwwxqswwxwuuqxvxvxxvxwxwwvxwxxvuxtxxxwwwuuxxkwxxvvvtxwxxvvxuvvuvvvuvvwtxuuwwxxvvvtxwxxvwvxvxwwxxxxxxxvwwxxxxxxxxxxxxxuxxxxuvvuvvvuvvyxwvuvvvvwwwvuvvvvvvvvvwwvtxxuuwvnuuottwvtswvvttvvvxwwwuuvwvtuuuvuuvvvswvvmvvtwwuvxxxxxvxvvtwtvvvvuwwwwwovvxxvvnuwvywxyxuvwwmuwxyvvvxxvxuuuvwxxyxxxxxxuwxwyxwtxyxxxvvvxxtvvvvvvvvvvvtvvxuwwxwvtyyyxxuuoxxvuvuyyyyxyxtxqxyxxxxxyxvvvuunutxwwvvvvvvujutsvvxxuuwwvvvwwvwuuuuwutsvwvvtvvvvvuvvrxxxxvvwxxrvvvxvvtvvtvgvuvwuvwuxwtxxvuwyxvuuvvvuxuustuuutttttttuttvvtuuuvvvuvttttvuvuvuvvytxuxtttxvuuuuttvtvuvvwuvustwuxwtxxwvusxxxxxvtxxxxxyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuwxxxxxxvwtvxxxwtxwyxtsxxxxxxxxxxuxvuuttsttvttsttvttsttttvuuuuuxuustuuutttttttuttvvtuuuvvvuvttttvuvuvuvvyttttttuuxtsttttsuxtttxttttttttvvvvvvvvvvtvvvvvvvvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvuvvvtvstuuvuuxuuuuuwuuvusutvtwuxxtvtvuuunuuuuuvtuuuuuuttttttttttttttttutttttttutttttttttttuuuuuvuuuuutuvtuuttttttttttttttttutttttttutttttttttttuvuxuvuptuvxxxvxxuttwvtvtuxtutuvvvuwwuqtuuvxvwttwwxputrvxtuvxvqvuuutxxvtutttvuttutututxvtutttvuttutututxuuutuuutuvunuuuxxuvuutttuvtutuutuxutxxxxwuumtxtqtuvttuuuunyvvyttvvuuvvvvmvvxtvvxwxwvxtvvwuwuwuvvxxxxlxqyvxvuuuuuuuuuvuuuuuuuutvxxxxxxxxxxpnuxxwuuvpuvvvvvxvvuxuvtuuuuuuuvxsvvvwxxvvvxvwvvxvpyxvvyxxxxuxvvvvvvuupyyxuvvvluuuxxvvumyttttttttxxxxxxxxxyttttvvvvvvvvvttttouxxxxxxuxxxxxxxxxxvvvvvvvxxxutxvvysuyvvwuytxxvxxvvtvvvvvwxxxxxxxxxvvwqrrrrssrruttuuttrrrrrttrrrrnxvxutvtuttttututtuyywuttuvttxvtuttttututtvyyywuttuvttxvxwxwwtyvvvvvvxvvtyvvvvvvwxvwuwyuvuvuvuvuvuvxwutuutuutuvuxvtrsvvvvnuvvsvutxxxuvvsvuxxxxxxxwtxxxxxxvvvvvvvvttxtuuxxuulvvxvvxwwxwxuuuupustuxwxuvtuurxxwvvvxvwxvvvtvvvvxlvxvxuutxwvxwtwvwouuuuyxxuuuuuuqvptuptuqvxvxvxxvwvwuuwxunswouuuuuuuuuuuxxxxxxvvvvvvuuwpvvvvvvxxxxvvvvwvvsuuuuttvtwwvwunvtlxxxxxvvxwvwqtuvttqtuvwttwvwqtuvttqtuvvttwvwqtuvttqtuvwttwvwqtuvttqtuvwttquvxxxouuwxvvwquvxxxouuwxvvwquvxxxouuwxvvwquvxxxouuwxvvwquvxxxouuwxvvwquvwxxouuwxvvwutquvwxxouuwxvvwtttywttqtuuvtttuqtuuvtwttuwvwqtuvttqtuvwtttttywwttqtuuvtsttqtuuvtwsttwqtuvttqtuvwttxxtttywwttqtuuvtttuqtuuvtwttuwqtuvttqtuvwttrvvxxvvvvxxtxxxxxvvvvvvwxvvttuuuyvvvvywtuxvpuxyuuuxxxxxxyvvvvvuuqtttuxsvvvvuuvvuttxtttuvvvvsuxxtxxxxxxxxxxxxxsxxvxxqppquvuvuvuvuuqquvuvtuvvvvvvtvvtvvvvtvvvvvtuuuuttttxrstuqwwvvvwwxvxutxxvvvvvvvvvxxxvvvututvvvvvvvvwuuuwwwnttxxwwvtvvpxuywxwxuywxxxxxxuxvvvvvvwoxxxxxxxxxxxxxxxxxxxvvvvvvvwxxuuuuuuxvxutvvvxxxvvvxxxututuuuvvvvvvwuuuuuouuuyvvvxvwwuuuyvvvxxxxxxxxxxxuxvvvvvvvvvvvvwwssrwttumvxtxxwyxtustuuutttttttuttvvtuuuvvvuvuuuuvuuuvuvwyyxxttwvvxtxxwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuxxxxywtxtustuuutttttttuttvvtuuuvvvuvuuuuvuuuvuvttwwvvvtvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvsuuuyyxxtvxivvvuxxttuvtvvuutxxxxxxxxxxxttyuuvvvvvttttruxvywtuxwwrvxxvuxuvvvxxxxxxxxxxxvvvvvvvvuxukttxxxuuvvvvvvvwvtvvuuuunxttvxxwuwwvxxxwxvttxxxxxxxxxxxxvxxwxxxuwwvvvvvvvvvvvvvvvvxxxwuuvuvuuotttvuuuuututtvvuuvvqtvtvxxxtvvvvtqqyvxxyvvvnuxxwuuvkvxxuuuuuuxvwxuxwttvvtvvuxtwxxxuuuuuuxxxxxxxxuuuuuuxtttyutvttvttttttywtxuxwpwwtuuvxxwxvxxuttuwwvtxxxxxrwwyxvyywyxxttuuyyyvwytvwtqwwtuuuwvtxvwttuvwwxxywyxwxyxxxxxxwyxvvvvvvwmuvutvvtuwutxxvxxxxxxtxvvvvvvvvvvutvvtuwttxxxxxxxxxvvvrvvttxvxutvvxxvvxxututvvvvvvwuuttxuuuuuuxxxxxxxxxxxxxxxxxxxxxwxxwxxwxxwxxwxxwxxwxvtvuvuutwtxxxxtvwwttssssttuvxtwwtqpqqqxuuuutttuxxvxnvwvxuxvvuuvxvvvwxxxxxxxxwxxxxwvxuxvvvvvvvvvvvvvvuuvxxxxxxvvvvvwvvxxvxuuxuvxvxxvovwkyvvvuytyuwqtptxtvttssrvtwtttvuuvvssrxtwttvuukvvuvvsuxvvtvvuuvukvuxxxxxxwxyvuxuuxxxxxvxxxwtwxxxxxxxxxwvruvvvvvvvvvvuxxxuuuquxtwwptuvxxxvxxuttwvuuruxxttttvutttvutttvvvttttvtutwwuuqtuuvxvwttwwxuuuupywxwywxxxxuvvvvxwtuutyywvwtwtuxwtuxwtuxwtuxwtuxwtuxwptwxtuxwtxtuxuuqvxxvxvxxxxxxxxwvvvvvvxtvtvxxvvwrssowxuttuuuuuuutvnttxvwvuuuurtsqxxxxxyyvvwxwxxxxxxxxxxyxyvxwuwwwtwxxwtyxyxxutvvwxvutvtwuvtututwxxxwvvqxvxtrvxxxvtxvxvvvvnwtuuutxwtvttsxttxtyxxxxwxwuuuttuuuvtxvxxxvutvvvvuusvuvuyvvtxvvtvxuytvvuvtutttxxxxxxxxuwxxtxtxuwyxxxxvvtxtvvvvvvvvvvvvvvtvvtvxuyvuuuuutrwxxwruwxxwpxvxxvruuttvutyvvvvxuusttuvvvvtvvuusvvgutsuuwxttvuxsusutvrsuuwxxxxwxxxxxxxxuxtutxxxttvusxuutusuvuvvuuuvuvuvuusturtvvuttuuvuuxvvtrtttvuttyvvuvvwvuusstttuvvtvuusnxwxxxxxxvwxxxxxxxvxwtuvtvvvvxxxxxxupuuevxuuuuuxvwxuxwttvuxytvtwxxuuuuuxxxxxxxxuuuuuxtttvtttttttwtxuwuuwwxwpuvxvvuvvxuuwwuvxvxxtxxxxxxxxxxxvvvvvvvvvvvvvuvvxwuuuwwuuqxxvvtvuxxxxxxxvvvvvvvtxxpuuquuxuvxvxxuxvvvxsytytsxvtusytytsxvtusytytsxvtusytytsxvtukvxvsuvvtxxvvuvvvxuxwvwxuwyxxvxwyuuttvuyvvwuwxxxwxxxxxxuvuxxwvvwuvutwvwvwvvywuwuvvvvxwtvuwjuvywwxxvxxvuuvvsuxvvtxvxxxxxxxxxvvywwxxuuvvuvvvvvvvvxxvnxuvvpxxyxxxyvxyxxxuvtvxxuwtxxvvtxnwxvuxxwvvxsyxxyxnvvxxvvnuwwxwvuxtuwvwxtxxxwxxxxwuxxvvvvvvvvvuxutntttxuxtwwwwwvvuvuosuxxttvvxuuuvvvwvuuuxvuuwvxtxuxttrqvxutvxutttxtvvvvvvvvvxvvvxutttvutvvtsxxutttututtuttuuvuuvvttuuxvutuutvxmvvxwuvvuuuxvxutttvvvxxxutttutvvvwuuuuuouuuyvvvxvvvuuuyvvvxxxxxxxxxxxuxvvvvvvvvvvvvvvotuutrvtvwxttuuvvixvuxuuttvutxyvyvuvxxuxuxxutvuuwuuuutvttvwtuuttvnswuuqxtrvxxvtxvuvvlwtuuutxwtvttsxttxtyxxxxwxwuuuttuuuvtxvxxxvutvvvvuurwxwxptuutrvtvwxttuuvvhuttuuuttuvuwxsvtustutvrtvtuutuutxxxxxwxtxxxxutxwxuxxututxuxvtuvuswxutusuvuvuuuvvuvuvuvvvutustturvuvvvtvvuttuuvuuxvvtrtvuyvvuvvvuutuvvtvuusitttuututuuwsvtvttvtuttuutsuxwxtvvvxutwuxuvutuuwussvuutttuvuuvvuvvvlwuxwxwxvuwvvvvtsuutuxxxxxxuvtxvuvuwvvvvvvvvvvtuuvvjvtvvuvvsutxvtvxvxvuvvuvtvuuxxrxxvwxuurtvuurvvrtvvrtvrtvixxwwxxvwxwxxwuwxxwvxxvxuwxxwxwxwxxxxwvvuxxvwxwuxtuuvuvuuuuvvvxwuwnxwwtttwwuvuuuuwwwxvxtwvuwwvyxxxxxxyxwwvxtxxxxxxxxxxxuyxuuxuxuxuxuxuxtvvvwuwwuwwuwuyxquuuuuttttuurxvyvvvvwvxvyxxttvuxwvxxxxxxxxxxxxyvxxvvvvwvttwxvtvvvvvvvvvvvvvuyxxttxwvuvvvvkvxxvwxuxwxvuvvxwwxvwxxvwxuxwmuuwvuuuuuutxwwtxwwtxwwutxwwtxwwuxwstrxwrvvyvtvtvvuttssrytuttxrrvvvvvtxxxxxtwrstttvvtttuvvvvuuvtuxvvuxxvvxvvuuwvvwxvxxxvxxxxxxuvvwnttxxxwvtvv||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
\ No newline at end of file
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.prx has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.si has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tii has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/_0.tis has changed
--- a/apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt	Fri Nov 24 15:18:20 2017 +0530
+++ b/apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/listAll.txt	Tue Nov 28 07:49:31 2017 -0800
@@ -1,10 +1,4 @@
-_0.fdx:81284
-segments_1:240
-_0.tii:12956
-segments.gen:20
-_0.frq:259491
-_0.fnm:96
-_0.tis:829654
-_0.prx:187643
-_0.fdt:3255379
-_0.nrm:71124
+_0.cfe:363
+_0.cfs:2287285
+_0.si:362
+segments_1:136
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments.gen has changed
Binary file apps/samples/Ensemble8/src/generated/resources/ensemble/search/index/segments_1 has changed
--- a/build.gradle	Fri Nov 24 15:18:20 2017 +0530
+++ b/build.gradle	Tue Nov 28 07:49:31 2017 -0800
@@ -1459,22 +1459,6 @@
 }
 
 allprojects {
-    // We want to configure all projects as java projects and use the same compile settings
-    // etc, except for the root project which we just want to ignore (and for now media)
-    if (project == rootProject) {
-       return
-    }
-    if (project.path.startsWith(":apps")) {
-        // Lets handle the apps tree differently, as it is a collection of ant builds,
-        // and the ant importer collides with the 'apply plugin:java'
-        return
-    }
-
-    // All of our projects are java projects
-
-    apply plugin: "java"
-    sourceCompatibility = 1.9
-
     // Setup the repositories that we'll download libraries from. Maven Central is
     // just easy for most things. The custom "ivy" repo is for downloading SWT. The way it
     // works is to setup the download URL such that it will resolve to the actual jar file
@@ -1494,6 +1478,22 @@
         }
     }
 
+    // We want to configure all projects as java projects and use the same compile settings
+    // etc, except for the root project which we just want to ignore (and for now media)
+    if (project == rootProject) {
+       return
+    }
+    if (project.path.startsWith(":apps")) {
+        // Lets handle the apps tree differently, as it is a collection of ant builds,
+        // and the ant importer collides with the 'apply plugin:java'
+        return
+    }
+
+    // All of our projects are java projects
+
+    apply plugin: "java"
+    sourceCompatibility = 1.9
+
     // By default all of our projects require junit for testing so we can just
     // setup this dependency here.
     dependencies {
@@ -3919,6 +3919,36 @@
 project(":apps") {
     // The apps build is Ant based, we will exec ant from gradle.
 
+    // Download the Lucene libraries needed for the Ensemble8 app
+    getConfigurations().create("lucene");
+    dependencies {
+        lucene group: "org.apache.lucene", name: "lucene-core", version: "7.1.0"
+        lucene group: "org.apache.lucene", name: "lucene-grouping", version: "7.1.0"
+        lucene group: "org.apache.lucene", name: "lucene-queryparser", version: "7.1.0"
+    }
+
+    // Copy Lucene libraries into the Ensemble8/lib directory
+    File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib");
+    def libNames = [ "lucene-core-7.1.0.jar",
+                     "lucene-grouping-7.1.0.jar",
+                     "lucene-queryparser-7.1.0.jar" ]
+
+
+    task getLucene(type: Copy) {
+        doFirst {
+            ensembleLibDir.mkdirs();
+        }
+        into ensembleLibDir
+        includeEmptyDirs = false
+        configurations.lucene.files.each { f ->
+            libNames.each { name ->
+                if (name == f.getName()) {
+                    from f.getPath()
+                }
+            }
+        }
+    }
+
     compileTargets { t ->
         List<String> params = []
 
@@ -3932,7 +3962,7 @@
         params << "-Drun.patch=@${rootProject.buildDir}/${RUNARGSFILE}"
 
         def appsJar = project.task("appsJar${t.capital}") {
-            dependsOn(sdk)
+            dependsOn(sdk, getLucene)
             doLast() {
                 ant(t.name,
                       projectDir.path,
@@ -3948,6 +3978,7 @@
                       project.projectDir.path,
                       "clean",
                       params);
+                delete(ensembleLibDir);
             }
         }
         rootProject.clean.dependsOn(appsClean)