summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2010-04-14 08:25:58 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2010-04-14 08:25:58 +0000
commit433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f (patch)
tree270b56354e7dde32bb3fc7953d08baf92ba49326
parentd61d2c93d788fdf01ad2497b9c6bb69ab9d6a397 (diff)
downloadscala-433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f.tar.gz
scala-433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f.tar.bz2
scala-433ed7ef4fd7d6ed8067c10cebe1e7ec3f72b40f.zip
Merged revisions 21492-21512,21516-21518,21520-...
Merged revisions 21492-21512,21516-21518,21520-21525,21527,21529,21531,21535-21537,21539- 21543,21545-21548,21550,21552,21554-21560 via svnmerge from https://lampsvn.epfl.ch/svn-repos/scala/scala/trunk ........ r21492 | dubochet | 2010-04-12 19:04:31 +0200 (Mon, 12 Apr 2010) | 1 line [scaladoc] Lazy vals are printed as such, no longer as vars. No review. ........ r21493 | dubochet | 2010-04-12 19:04:47 +0200 (Mon, 12 Apr 2010) | 1 line [scaladoc] Signature kind (def, val) needs more space to accommodate lazy vals and implicit defs. ........ r21494 | dubochet | 2010-04-12 19:05:04 +0200 (Mon, 12 Apr 2010) | 1 line [scaladoc] Comment summary (first sentence) is extracted by comment parser, which is a lot more robust and correct. No review. ........ r21495 | dragos | 2010-04-12 19:19:29 +0200 (Mon, 12 Apr 2010) | 4 lines Auto-generate scala.runtime.AbstractFunctionN classes. Moved zipped* methods in Tuple1/2 in genprod, so that regenerating tuples does not lose these methods. Added @specialized annotations into genprod for the same reason. ........ r21496 | dragos | 2010-04-12 19:19:38 +0200 (Mon, 12 Apr 2010) | 5 lines Regenerated tuples, products and (Abstract)Functions. We needed to have separate files for AbstractFunctionN because the compiler may need their symbol even before their sourcefile is parsed. In such cases it relies on finding a source file with the right name. ........ r21497 | dragos | 2010-04-12 19:19:51 +0200 (Mon, 12 Apr 2010) | 1 line Don't generate forwarders for specialized methods. no review. ........ r21498 | dragos | 2010-04-12 19:19:59 +0200 (Mon, 12 Apr 2010) | 3 lines Companion objects of case classes extend AbstractFunctionN instead of FunctionN. This saves quite some space, since FunctionN methods are not re-mixed in for each object. ........ r21499 | dragos | 2010-04-12 19:20:07 +0200 (Mon, 12 Apr 2010) | 5 lines Fixed various position issues in specialized members. Removed an instance where the tree transformer was run twice on the same tree, resulting in double definition errors. Fixed re-typing of super calls in constructor arguments for specialized members. No review. ........ r21500 | phaller | 2010-04-12 19:27:14 +0200 (Mon, 12 Apr 2010) | 1 line Restored partest behavior to write log files with normalized paths. For new tests the check file can be copied from the log file. This makes the behavior of --show-diff exactly the same as diffing the log and check file. Review by extempore. ........ r21501 | dubochet | 2010-04-12 19:30:24 +0200 (Mon, 12 Apr 2010) | 1 line [scaladoc] Inner objects, which according to the compiler are actually methods, are now printed as objects by Scaladoc. No review. ........ r21502 | phaller | 2010-04-12 21:18:31 +0200 (Mon, 12 Apr 2010) | 1 line Reverted r21500 until all test categories work again. ........ r21503 | dubochet | 2010-04-12 21:51:53 +0200 (Mon, 12 Apr 2010) | 1 line [scaladoc] Use case symbols have correct owner; inherited filter works as expected with use cases. Review by odersky. ........ r21504 | extempore | 2010-04-12 21:57:56 +0200 (Mon, 12 Apr 2010) | 5 lines Correct oversight where neg tests didn't demand a checkfile. More trying to get timeout/interrupted logic so we know when things die but also don't impede interrupts. Folded precondition logic into test sequence logic, it's plenty general to cover it. Closes #3282, review by phaller. ........ r21505 | malayeri | 2010-04-12 21:59:21 +0200 (Mon, 12 Apr 2010) | 7 lines [scaladoc] Cosmetic changes: - changed link color to underlined and dark purple - increased padding in gray lines of method definitions - lightened gray lines of method definitions - changed dashed and solid lines from black to gray - increased size of top template declaration; changed alignment Review by dubochet. ........ r21506 | phaller | 2010-04-12 22:17:13 +0200 (Mon, 12 Apr 2010) | 1 line Disabled test that hangs when actors package is compiled with specialization. Review by dragos. ........ r21507 | phaller | 2010-04-12 22:41:46 +0200 (Mon, 12 Apr 2010) | 1 line Another attempt at avoiding partest hang ups when the compiler crashes. Review by extempore. ........ r21508 | dubochet | 2010-04-12 22:48:42 +0200 (Mon, 12 Apr 2010) | 1 line [scaladoc] Members inherited from sourceless files are correctly printed in documentation. No review. ........ r21509 | malayeri | 2010-04-12 22:53:02 +0200 (Mon, 12 Apr 2010) | 1 line Changed the colors for types, value members, and tooltips. Feel free to revert. Review by dubochet. ........ r21510 | extempore | 2010-04-12 23:36:33 +0200 (Mon, 12 Apr 2010) | 9 lines Still working on partest. Added ant targets which can be temporary if considered clutter. ant test.partest ant test.partest-opt They run some recently troublesome partest tests with a low timeout. Logged some more exceptions where the compiler has been dying. Review by phaller. ........ r21511 | extempore | 2010-04-12 23:45:17 +0200 (Mon, 12 Apr 2010) | 10 lines Disabling what I think are the last two failing tests, one each of the two leading bugs among those we've seen here today on testing theater: "could not find toMap: (x$1: scala.collection.TraversableOnce,x$2: Predef$<:<)" and "scala.tools.nsc.symtab.Types$TypeError: method react cannot be accessed in java.lang.Object with scala.actors.Reactor[Any] No review but hey lets' see if we can re-enable these tests soonish. ........ r21512 | prokopec | 2010-04-12 23:53:30 +0200 (Mon, 12 Apr 2010) | 1 line Documentation for mutable collections. No review. ........ r21516 | extempore | 2010-04-13 01:20:03 +0200 (Tue, 13 Apr 2010) | 5 lines Noticed that Settings post-set hooks were not being set in the place where they ought to be, so multiple setting settings (such as -optimise) were not flipping all the right bits when set programmatically instead of via command line options. This may be a factor in inlining issues, though by itself it does not appear to solve anything. No review. ........ r21517 | malayeri | 2010-04-13 06:25:09 +0200 (Tue, 13 Apr 2010) | 1 line [scaladoc] Changed comment code and pre tages to not have "font-size: small" attribute. Review by dubochet. ........ r21518 | plocinic | 2010-04-13 10:12:05 +0200 (Tue, 13 Apr 2010) | 1 line Some clean-ups. Removed old syntax, code duplication etc. No review. ........ r21520 | prokopec | 2010-04-13 12:29:58 +0200 (Tue, 13 Apr 2010) | 1 line docs for immutable.A-L*. no review ........ r21521 | rytz | 2010-04-13 12:31:39 +0200 (Tue, 13 Apr 2010) | 1 line fixed most of stability, reviewed by iuli, so no review. continuations.jar is still failing stability, i'll look at that. ........ r21522 | rompf | 2010-04-13 13:08:12 +0200 (Tue, 13 Apr 2010) | 1 line closes #3241 and improves serialization of hash tries. review by community. ........ r21523 | phaller | 2010-04-13 13:37:42 +0200 (Tue, 13 Apr 2010) | 1 line Improved handling of uncaught exceptions in actors. See #711. Review by community. ........ r21524 | prokopec | 2010-04-13 13:41:54 +0200 (Tue, 13 Apr 2010) | 1 line A brace got hurt while documenting. no review. ........ r21525 | rytz | 2010-04-13 13:53:50 +0200 (Tue, 13 Apr 2010) | 1 line fix stability. jar is not stable. no review. ........ r21527 | dubochet | 2010-04-13 14:08:47 +0200 (Tue, 13 Apr 2010) | 1 line [scaladoc] Fixed CSS so that styles from wiki markup are correctly displayed in comments. No Review. ........ r21529 | prokopec | 2010-04-13 14:15:40 +0200 (Tue, 13 Apr 2010) | 1 line Immutable up to Queue docs. no review ........ r21531 | imaier | 2010-04-13 14:53:21 +0200 (Tue, 13 Apr 2010) | 1 line Fixed #3258 ........ r21535 | phaller | 2010-04-13 16:41:02 +0200 (Tue, 13 Apr 2010) | 1 line Hardened actor tests. No review. ........ r21536 | phaller | 2010-04-13 16:59:29 +0200 (Tue, 13 Apr 2010) | 1 line Removed obsolete AbstractReactor trait. No review. ........ r21537 | prokopec | 2010-04-13 17:50:39 +0200 (Tue, 13 Apr 2010) | 1 line Docs. no review ........ r21539 | prokopec | 2010-04-13 18:32:09 +0200 (Tue, 13 Apr 2010) | 1 line Documented immutable.*. no review ........ r21540 | odersky | 2010-04-13 19:36:21 +0200 (Tue, 13 Apr 2010) | 1 line more documentation ........ r21541 | odersky | 2010-04-13 19:36:54 +0200 (Tue, 13 Apr 2010) | 1 line fix for usecase in doccomments. ........ r21542 | odersky | 2010-04-13 19:37:24 +0200 (Tue, 13 Apr 2010) | 1 line attempted fix for the TypeSkolem problem under specialize. ........ r21543 | odersky | 2010-04-13 19:42:35 +0200 (Tue, 13 Apr 2010) | 1 line Fix for specialized fix. ........ r21545 | malayeri | 2010-04-13 20:13:53 +0200 (Tue, 13 Apr 2010) | 1 line [scaladoc] More cosmetic changes. Objects are a different shade of blue and classes are green. ........ r21546 | extempore | 2010-04-13 20:24:05 +0200 (Tue, 13 Apr 2010) | 1 line A redblack tree scalacheck test contributed by dcsobral. No review. ........ r21547 | extempore | 2010-04-13 20:24:27 +0200 (Tue, 13 Apr 2010) | 2 lines A safety improvement for random path generation, and a small change to Random for a more general interface. Review by community. ........ r21548 | extempore | 2010-04-13 20:24:48 +0200 (Tue, 13 Apr 2010) | 3 lines Some mopping up in equality. Found a stack overflow in the way equals was being handled, and hammered it out. New ==/## tests which covers all types and values. Review by odersky. ........ r21550 | odersky | 2010-04-13 21:46:21 +0200 (Tue, 13 Apr 2010) | 2 lines Removed trace output after having verified that skolems are correctly identified now. Now review. ........ r21552 | malayeri | 2010-04-13 22:48:50 +0200 (Tue, 13 Apr 2010) | 1 line [scaladoc] Tweak so that left pane has a little bit of left padding. Review by dubochet. ........ r21554 | dchenbecker | 2010-04-13 22:51:44 +0200 (Tue, 13 Apr 2010) | 4 lines Fix for #3284. This code should probably be refactored, but in the interest of not breaking backwards compatibility, the JSON.parse method has been marked deprecated for now. ........ r21555 | phaller | 2010-04-13 23:48:21 +0200 (Tue, 13 Apr 2010) | 1 line Reverted r21523. No review. ........ r21556 | dragos | 2010-04-14 00:50:37 +0200 (Wed, 14 Apr 2010) | 4 lines Fixed deadlocking behavior in actors. This bug deserves a few more lines. Specialization removed a 'private' modifier on Actor.resumeActor. Mixin did not mix this method in actor implementations, believing it was private. At runtime, an AbstractMethodError was thrown, but swallowed by forkjoin (probably), resulting in an apparent deadlock. It would have been much faster to find and fix if the stacktrace was printed, as it is in Java 1.5. No review. ........ r21557 | dragos | 2010-04-14 00:50:52 +0200 (Wed, 14 Apr 2010) | 1 line Don't decode symbols in .toString. ........ r21558 | dragos | 2010-04-14 00:51:04 +0200 (Wed, 14 Apr 2010) | 4 lines Made the icode reader more resilient to errors. A non-resolved symbol does not cause any crashes, but the method using an unknown symbol will not be used for inlining. Resurrected tests, removed spec-matrix for the moment. No review. ........ r21559 | dragos | 2010-04-14 00:52:56 +0200 (Wed, 14 Apr 2010) | 2 lines Revert "Fix for #3284. This code should probably be refactored,". It breaks test test/files/run/json.scala, and we need at least one good nightly before the RC. ........ r21560 | odersky | 2010-04-14 00:54:25 +0200 (Wed, 14 Apr 2010) | 2 lines Disabled failing json test. ........
-rw-r--r--build.xml27
-rw-r--r--src/actors/scala/actors/OutputChannel.scala2
-rw-r--r--src/actors/scala/actors/Reactor.scala2
-rw-r--r--src/build/genprod.scala313
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala2
-rw-r--r--src/compiler/scala/tools/nsc/Phase.scala1
-rwxr-xr-xsrc/compiler/scala/tools/nsc/ast/DocComments.scala2
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreeGen.scala11
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala2
-rw-r--r--src/compiler/scala/tools/nsc/dependencies/Files.scala176
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala1
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/page/Template.scala13
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/class.pngbin519 -> 516 bytes
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.pngbin2995 -> 3183 bytes
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css12
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css310
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.pngbin504 -> 494 bytes
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.pngbin2863 -> 3088 bytes
-rw-r--r--src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai2264
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/Entity.scala3
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala15
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/comment/Body.scala42
-rw-r--r--src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala106
-rw-r--r--src/compiler/scala/tools/nsc/io/Path.scala7
-rw-r--r--src/compiler/scala/tools/nsc/settings/MutableSettings.scala14
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Symbols.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala17
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala23
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala82
-rw-r--r--src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala29
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Unapplies.scala2
-rw-r--r--src/library/scala/Function0.scala5
-rw-r--r--src/library/scala/Function1.scala5
-rw-r--r--src/library/scala/Function10.scala3
-rw-r--r--src/library/scala/Function11.scala3
-rw-r--r--src/library/scala/Function12.scala3
-rw-r--r--src/library/scala/Function13.scala3
-rw-r--r--src/library/scala/Function14.scala3
-rw-r--r--src/library/scala/Function15.scala3
-rw-r--r--src/library/scala/Function16.scala3
-rw-r--r--src/library/scala/Function17.scala3
-rw-r--r--src/library/scala/Function18.scala3
-rw-r--r--src/library/scala/Function19.scala3
-rw-r--r--src/library/scala/Function2.scala7
-rw-r--r--src/library/scala/Function20.scala3
-rw-r--r--src/library/scala/Function21.scala3
-rw-r--r--src/library/scala/Function22.scala3
-rw-r--r--src/library/scala/Function3.scala3
-rw-r--r--src/library/scala/Function4.scala3
-rw-r--r--src/library/scala/Function5.scala3
-rw-r--r--src/library/scala/Function6.scala3
-rw-r--r--src/library/scala/Function7.scala3
-rw-r--r--src/library/scala/Function8.scala3
-rw-r--r--src/library/scala/Function9.scala3
-rw-r--r--src/library/scala/Product1.scala3
-rw-r--r--src/library/scala/Product10.scala3
-rw-r--r--src/library/scala/Product11.scala3
-rw-r--r--src/library/scala/Product12.scala3
-rw-r--r--src/library/scala/Product13.scala3
-rw-r--r--src/library/scala/Product14.scala3
-rw-r--r--src/library/scala/Product15.scala3
-rw-r--r--src/library/scala/Product16.scala3
-rw-r--r--src/library/scala/Product17.scala3
-rw-r--r--src/library/scala/Product18.scala3
-rw-r--r--src/library/scala/Product19.scala3
-rw-r--r--src/library/scala/Product2.scala6
-rw-r--r--src/library/scala/Product20.scala3
-rw-r--r--src/library/scala/Product21.scala3
-rw-r--r--src/library/scala/Product22.scala3
-rw-r--r--src/library/scala/Product3.scala3
-rw-r--r--src/library/scala/Product4.scala3
-rw-r--r--src/library/scala/Product5.scala3
-rw-r--r--src/library/scala/Product6.scala3
-rw-r--r--src/library/scala/Product7.scala3
-rw-r--r--src/library/scala/Product8.scala3
-rw-r--r--src/library/scala/Product9.scala3
-rw-r--r--src/library/scala/Tuple1.scala3
-rw-r--r--src/library/scala/Tuple10.scala3
-rw-r--r--src/library/scala/Tuple11.scala3
-rw-r--r--src/library/scala/Tuple12.scala3
-rw-r--r--src/library/scala/Tuple13.scala3
-rw-r--r--src/library/scala/Tuple14.scala3
-rw-r--r--src/library/scala/Tuple15.scala3
-rw-r--r--src/library/scala/Tuple16.scala3
-rw-r--r--src/library/scala/Tuple17.scala3
-rw-r--r--src/library/scala/Tuple18.scala3
-rw-r--r--src/library/scala/Tuple19.scala3
-rw-r--r--src/library/scala/Tuple2.scala8
-rw-r--r--src/library/scala/Tuple20.scala3
-rw-r--r--src/library/scala/Tuple21.scala3
-rw-r--r--src/library/scala/Tuple22.scala3
-rw-r--r--src/library/scala/Tuple3.scala6
-rw-r--r--src/library/scala/Tuple4.scala3
-rw-r--r--src/library/scala/Tuple5.scala3
-rw-r--r--src/library/scala/Tuple6.scala3
-rw-r--r--src/library/scala/Tuple7.scala3
-rw-r--r--src/library/scala/Tuple8.scala3
-rw-r--r--src/library/scala/Tuple9.scala3
-rw-r--r--src/library/scala/collection/BitSetLike.scala2
-rw-r--r--src/library/scala/collection/IndexedSeq.scala1
-rw-r--r--src/library/scala/collection/IndexedSeqLike.scala4
-rw-r--r--src/library/scala/collection/Iterable.scala1
-rw-r--r--src/library/scala/collection/IterableView.scala10
-rw-r--r--src/library/scala/collection/IterableViewLike.scala8
-rw-r--r--src/library/scala/collection/Iterator.scala6
-rw-r--r--src/library/scala/collection/LinearSeq.scala1
-rw-r--r--src/library/scala/collection/Map.scala42
-rw-r--r--src/library/scala/collection/MapLike.scala36
-rw-r--r--src/library/scala/collection/Seq.scala1
-rw-r--r--src/library/scala/collection/SeqView.scala11
-rw-r--r--src/library/scala/collection/SeqViewLike.scala17
-rw-r--r--src/library/scala/collection/Set.scala26
-rw-r--r--src/library/scala/collection/SetLike.scala51
-rw-r--r--src/library/scala/collection/Traversable.scala1
-rw-r--r--src/library/scala/collection/TraversableView.scala6
-rw-r--r--src/library/scala/collection/generic/GenericCompanion.scala9
-rw-r--r--src/library/scala/collection/generic/ImmutableMapFactory.scala8
-rw-r--r--src/library/scala/collection/generic/ImmutableSortedMapFactory.scala10
-rw-r--r--src/library/scala/collection/generic/ImmutableSortedSetFactory.scala10
-rw-r--r--src/library/scala/collection/generic/MapFactory.scala15
-rw-r--r--src/library/scala/collection/generic/MutableMapFactory.scala7
-rw-r--r--src/library/scala/collection/generic/SetFactory.scala6
-rw-r--r--src/library/scala/collection/immutable/BitSet.scala8
-rwxr-xr-xsrc/library/scala/collection/immutable/DefaultMap.scala44
-rw-r--r--src/library/scala/collection/immutable/HashMap.scala120
-rw-r--r--src/library/scala/collection/immutable/HashSet.scala109
-rw-r--r--src/library/scala/collection/immutable/IndexedSeq.scala3
-rw-r--r--src/library/scala/collection/immutable/IntMap.scala24
-rw-r--r--src/library/scala/collection/immutable/Iterable.scala12
-rw-r--r--src/library/scala/collection/immutable/LinearSeq.scala7
-rw-r--r--src/library/scala/collection/immutable/ListMap.scala19
-rw-r--r--src/library/scala/collection/immutable/ListSet.scala16
-rw-r--r--src/library/scala/collection/immutable/LongMap.scala24
-rw-r--r--src/library/scala/collection/immutable/Map.scala9
-rw-r--r--src/library/scala/collection/immutable/MapLike.scala60
-rw-r--r--src/library/scala/collection/immutable/MapProxy.scala14
-rw-r--r--src/library/scala/collection/immutable/NumericRange.scala34
-rw-r--r--src/library/scala/collection/immutable/PagedSeq.scala12
-rw-r--r--src/library/scala/collection/immutable/Queue.scala15
-rw-r--r--src/library/scala/collection/immutable/Range.scala80
-rw-r--r--src/library/scala/collection/immutable/RedBlack.scala4
-rw-r--r--src/library/scala/collection/immutable/Seq.scala8
-rw-r--r--src/library/scala/collection/immutable/Set.scala23
-rw-r--r--src/library/scala/collection/immutable/SetProxy.scala15
-rw-r--r--src/library/scala/collection/immutable/SortedMap.scala11
-rw-r--r--src/library/scala/collection/immutable/SortedSet.scala10
-rw-r--r--src/library/scala/collection/immutable/Stack.scala17
-rw-r--r--src/library/scala/collection/immutable/Stream.scala48
-rw-r--r--src/library/scala/collection/immutable/StringLike.scala53
-rw-r--r--src/library/scala/collection/immutable/StringOps.scala18
-rw-r--r--src/library/scala/collection/immutable/Traversable.scala9
-rw-r--r--src/library/scala/collection/immutable/TreeMap.scala42
-rw-r--r--src/library/scala/collection/immutable/TreeSet.scala36
-rw-r--r--src/library/scala/collection/immutable/WrappedString.scala21
-rw-r--r--src/library/scala/collection/mutable/ArrayBuffer.scala4
-rw-r--r--src/library/scala/collection/mutable/ArrayLike.scala8
-rw-r--r--src/library/scala/collection/mutable/IndexedSeq.scala5
-rw-r--r--src/library/scala/collection/mutable/IndexedSeqView.scala32
-rw-r--r--src/library/scala/collection/mutable/Iterable.scala5
-rw-r--r--src/library/scala/collection/mutable/LinearSeq.scala5
-rw-r--r--src/library/scala/collection/mutable/ListBuffer.scala2
-rw-r--r--src/library/scala/collection/mutable/ListMap.scala4
-rw-r--r--src/library/scala/collection/mutable/Map.scala18
-rw-r--r--src/library/scala/collection/mutable/MapBuilder.scala4
-rw-r--r--src/library/scala/collection/mutable/MapLike.scala39
-rw-r--r--src/library/scala/collection/mutable/MapProxy.scala15
-rw-r--r--src/library/scala/collection/mutable/MutableList.scala9
-rw-r--r--src/library/scala/collection/mutable/ObservableBuffer.scala6
-rw-r--r--src/library/scala/collection/mutable/ObservableMap.scala6
-rw-r--r--src/library/scala/collection/mutable/ObservableSet.scala6
-rw-r--r--src/library/scala/collection/mutable/OpenHashMap.scala61
-rw-r--r--src/library/scala/collection/mutable/PriorityQueue.scala40
-rw-r--r--src/library/scala/collection/mutable/PriorityQueueProxy.scala3
-rw-r--r--src/library/scala/collection/mutable/Publisher.scala8
-rw-r--r--src/library/scala/collection/mutable/Queue.scala9
-rw-r--r--src/library/scala/collection/mutable/QueueProxy.scala4
-rw-r--r--src/library/scala/collection/mutable/ResizableArray.scala2
-rw-r--r--src/library/scala/collection/mutable/RevertibleHistory.scala11
-rw-r--r--src/library/scala/collection/mutable/Seq.scala17
-rw-r--r--src/library/scala/collection/mutable/Set.scala21
-rw-r--r--src/library/scala/collection/mutable/SetBuilder.scala2
-rw-r--r--src/library/scala/collection/mutable/Stack.scala8
-rw-r--r--src/library/scala/collection/mutable/StackProxy.scala3
-rw-r--r--src/library/scala/collection/mutable/StringBuilder.scala7
-rw-r--r--src/library/scala/collection/mutable/SynchronizedBuffer.scala6
-rw-r--r--src/library/scala/collection/mutable/SynchronizedMap.scala7
-rw-r--r--src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala8
-rw-r--r--src/library/scala/collection/mutable/SynchronizedQueue.scala6
-rw-r--r--src/library/scala/collection/mutable/SynchronizedSet.scala6
-rw-r--r--src/library/scala/collection/mutable/SynchronizedStack.scala6
-rw-r--r--src/library/scala/collection/mutable/Traversable.scala8
-rw-r--r--src/library/scala/collection/mutable/Undoable.scala4
-rw-r--r--src/library/scala/collection/mutable/WeakHashMap.scala22
-rw-r--r--src/library/scala/collection/mutable/WrappedArray.scala12
-rw-r--r--src/library/scala/collection/mutable/WrappedArrayBuilder.scala5
-rw-r--r--src/library/scala/math/BigDecimal.scala6
-rw-r--r--src/library/scala/math/BigInt.scala2
-rw-r--r--src/library/scala/math/ScalaNumericConversions.scala21
-rw-r--r--src/library/scala/runtime/AbstractFunction0.scala35
-rw-r--r--src/library/scala/runtime/AbstractFunction1.scala (renamed from src/actors/scala/actors/AbstractReactor.scala)19
-rw-r--r--src/library/scala/runtime/AbstractFunction10.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction11.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction12.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction13.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction14.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction15.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction16.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction17.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction18.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction19.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction2.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction20.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction21.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction22.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction3.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction4.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction5.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction6.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction7.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction8.scala19
-rw-r--r--src/library/scala/runtime/AbstractFunction9.scala19
-rw-r--r--src/library/scala/util/Random.scala23
-rw-r--r--src/partest/scala/tools/partest/Actions.scala6
-rw-r--r--src/partest/scala/tools/partest/Alarms.scala7
-rw-r--r--src/partest/scala/tools/partest/Categories.scala9
-rw-r--r--src/partest/scala/tools/partest/Compilable.scala6
-rw-r--r--src/partest/scala/tools/partest/Entities.scala4
-rw-r--r--src/partest/scala/tools/partest/Partest.scala11
-rw-r--r--src/partest/scala/tools/partest/PartestSpec.scala2
-rw-r--r--src/partest/scala/tools/partest/Universe.scala5
-rw-r--r--src/partest/scala/tools/partest/category/AllCategories.scala2
-rw-r--r--src/partest/scala/tools/partest/category/Analysis.scala3
-rw-r--r--src/partest/scala/tools/partest/category/Compiler.scala6
-rw-r--r--src/partest/scala/tools/partest/category/Runner.scala2
-rw-r--r--src/partest/scala/tools/partest/io/Logging.scala8
-rw-r--r--src/swing/scala/swing/Table.scala6
-rw-r--r--src/swing/scala/swing/test/UIDemo.scala6
-rw-r--r--test/disabled/run/spec-matrix.check (renamed from test/files/run/spec-matrix.check)0
-rw-r--r--test/disabled/run/spec-matrix.scala (renamed from test/files/run/spec-matrix.scala)0
-rw-r--r--test/files/jvm/actor-exceptions.scala10
-rw-r--r--test/files/jvm/actor-executor.scala10
-rw-r--r--test/files/jvm/actor-executor2.scala15
-rw-r--r--test/files/jvm/actor-executor3.scala10
-rw-r--r--test/files/jvm/actor-link-getstate.scala15
-rw-r--r--test/files/jvm/actor-looping.scala5
-rw-r--r--test/files/jvm/actor-normal-exit.scala10
-rw-r--r--test/files/jvm/actor-termination.scala5
-rw-r--r--test/files/jvm/actor-uncaught-exception.scala16
-rw-r--r--test/files/jvm/actor-uncaught-exception2.scala16
-rw-r--r--test/files/jvm/daemon-actor-termination.scala10
-rw-r--r--test/files/jvm/future-alarm.scala5
-rw-r--r--test/files/jvm/future-awaitall-zero.scala5
-rw-r--r--test/files/jvm/future-termination.scala5
-rw-r--r--test/files/jvm/reactor-exceptionOnSend.scala11
-rw-r--r--test/files/jvm/reactor-producer-consumer.scala20
-rw-r--r--test/files/jvm/reactor.scala10
-rw-r--r--test/files/jvm/replyablereactor.scala10
-rw-r--r--test/files/jvm/replyablereactor2.scala10
-rw-r--r--test/files/jvm/replyablereactor3.scala10
-rw-r--r--test/files/jvm/replyablereactor4.scala10
-rw-r--r--test/files/jvm/replyreactor-react-sender.scala10
-rw-r--r--test/files/jvm/replyreactor.scala10
-rw-r--r--test/files/jvm/scheduler-adapter.scala10
-rw-r--r--test/files/jvm/t1449.scala10
-rw-r--r--test/files/jvm/t1600.scala6
-rw-r--r--test/files/jvm/t1948.scala16
-rw-r--r--test/files/jvm/t2359.scala25
-rw-r--r--test/files/jvm/t2530.scala14
-rw-r--r--test/files/jvm/t3102.scala10
-rw-r--r--test/files/run/Course-2002-10-msil.check (renamed from test/disabled/run/Course-2002-10-msil.check)0
-rw-r--r--test/files/run/Course-2002-10.check (renamed from test/disabled/run/Course-2002-10.check)0
-rw-r--r--test/files/run/Course-2002-10.scala (renamed from test/disabled/run/Course-2002-10.scala)0
-rw-r--r--test/files/run/Course-2002-13.check (renamed from test/disabled/run/Course-2002-13.check)0
-rw-r--r--test/files/run/Course-2002-13.scala (renamed from test/disabled/run/Course-2002-13.scala)0
-rw-r--r--test/files/run/json.scala.disabled (renamed from test/files/run/json.scala)8
-rw-r--r--test/files/run/numbereq.scala41
-rw-r--r--test/files/run/streamWithFilter.check (renamed from test/disabled/run/streamWithFilter.check)0
-rw-r--r--test/files/run/streamWithFilter.scala (renamed from test/disabled/run/streamWithFilter.scala)0
-rw-r--r--test/files/run/t3241.check1
-rw-r--r--test/files/run/t3241.scala23
-rw-r--r--test/files/scalacheck/redblack.scala157
-rw-r--r--test/partest-tests/jvm/actor-receivewithin.check16
-rw-r--r--test/partest-tests/jvm/actor-receivewithin.scala69
-rw-r--r--test/partest-tests/run/crash.scala6
-rw-r--r--test/partest-tests/run/streamWithFilter.check5
-rw-r--r--test/partest-tests/run/streamWithFilter.scala11
-rw-r--r--test/partest-tests/run/timeout.scala5
287 files changed, 4328 insertions, 2299 deletions
diff --git a/build.xml b/build.xml
index d59863277b..9bc22ae539 100644
--- a/build.xml
+++ b/build.xml
@@ -1129,7 +1129,7 @@ BOOTSTRAPPING BUILD (STRAP)
<scalacfork
destdir="${build-strap.dir}/classes/library"
compilerpathref="pack.classpath"
- params="${scalac.args.all} -Xpluginsdir ${build-quick.dir}/misc/scala-devel/plugins -Xplugin-require:continuations -P:continuations:enable"
+ params="${scalac.args.all} -Xpluginsdir ${build-strap.dir}/misc/scala-devel/plugins -Xplugin-require:continuations -P:continuations:enable"
srcdir="${src.dir}/continuations/library"
jvmargs="${scalacfork.jvmargs}">
<include name="**/*.scala"/>
@@ -1493,7 +1493,7 @@ BOOTRAPING TEST AND TEST SUITE
<exclude name="**/*.properties"/>
<exclude name="bin/**"/>
<exclude name="*.complete"/>
- <exclude name="plugins/*.jar"/>
+ <exclude name="misc/scala-devel/plugins/*.jar"/>
</same>
</target>
@@ -1520,6 +1520,29 @@ BOOTRAPING TEST AND TEST SUITE
</syspropertyset>
</partest>
</target>
+
+ <target name="test.partest-opt" depends="pack.done">
+ <antcall target="test.partest">
+ <param name="scalac.args.optimise" value="-optimise"/>
+ </antcall>
+ </target>
+
+ <target name="test.partest" depends="pack.done">
+ <partest classpathref="pack.classpath">
+ <env key="PATH" path="${build-pack.dir}/bin:${env.PATH}" />
+ <sysproperty key="partest.srcdir" value="partest-tests" />
+ <sysproperty key="partest.scalacopts" value="${scalac.args.all}" />
+ <sysproperty key="partest.javacopts" value="${javac.args}" />
+ <sysproperty key="partest.verbose" value="true" />
+ <sysproperty key="partest.trace" value="true" />
+ <sysproperty key="partest.debug" value="true" />
+ <sysproperty key="partest.test-timeout" value="25" />
+ <sysproperty key="partest.scalacopts" value="${scalac.args.optimise}" />
+ <syspropertyset>
+ <propertyref prefix="partest"/>
+ </syspropertyset>
+ </partest>
+ </target>
<target name="test.done" depends="test.suite, test.continuations.suite, test.stability"/>
diff --git a/src/actors/scala/actors/OutputChannel.scala b/src/actors/scala/actors/OutputChannel.scala
index 8bf92b448e..5f99f57ecf 100644
--- a/src/actors/scala/actors/OutputChannel.scala
+++ b/src/actors/scala/actors/OutputChannel.scala
@@ -18,7 +18,7 @@ package scala.actors
*
* @define actor `OutputChannel`
*/
-trait OutputChannel[-Msg] extends AbstractReactor[Msg] {
+trait OutputChannel[-Msg] {
/**
* Sends <code>msg</code> to this $actor (asynchronous).
diff --git a/src/actors/scala/actors/Reactor.scala b/src/actors/scala/actors/Reactor.scala
index a5bdcf1dd9..85dcd57189 100644
--- a/src/actors/scala/actors/Reactor.scala
+++ b/src/actors/scala/actors/Reactor.scala
@@ -195,7 +195,7 @@ trait Reactor[Msg >: Null] extends OutputChannel[Msg] with Combinators {
*
* @param handler a partial function with message patterns and actions
*/
- protected[actors] def react(handler: PartialFunction[Msg, Unit]): Nothing = {
+ protected def react(handler: PartialFunction[Msg, Unit]): Nothing = {
synchronized { drainSendBuffer(mailbox) }
searchMailbox(mailbox, handler, false)
throw Actor.suspendException
diff --git a/src/build/genprod.scala b/src/build/genprod.scala
index 099c24ef20..8217ce3c3b 100644
--- a/src/build/genprod.scala
+++ b/src/build/genprod.scala
@@ -32,7 +32,8 @@ object genprod {
def productFiles = arities map Product.make
def tupleFiles = arities map Tuple.make
def functionFiles = (0 :: arities) map Function.make
- def allfiles = productFiles ::: tupleFiles ::: functionFiles
+ def absFunctionFiles = (0 :: arities) map AbstractFunction.make
+ def allfiles = productFiles ::: tupleFiles ::: functionFiles ::: absFunctionFiles
trait Arity extends Group {
def i: Int // arity
@@ -48,8 +49,10 @@ object genprod {
def xdefs = to map ("x" + _)
def mdefs = to map ("_" + _)
def invariantArgs = typeArgsString(targs)
- def covariantArgs = typeArgsString(targs map ("+" + _))
- def contraCoArgs = typeArgsString((targs map ("-" + _)) ::: List("+R"))
+ def covariantArgs = typeArgsString(targs map (covariantSpecs + "+" + _))
+ def covariantSpecs = ""
+ def contravariantSpecs = ""
+ def contraCoArgs = typeArgsString((targs map (contravariantSpecs + "-" + _)) ::: List(covariantSpecs + "+R"))
def fields = List.map2(mdefs, targs)(_ + ":" + _) mkString ","
def funArgs = List.map2(vdefs, targs)(_ + ":" + _) mkString ","
@@ -59,6 +62,8 @@ object genprod {
def descriptiveComment = ""
def withFancy = if (descriptiveComment.isEmpty) "" else "(with fancy comment)"
def withMoreMethods = if (moreMethods.isEmpty) "" else "(with extra methods)"
+ def packageDef = "scala"
+ def imports = ""
def header = """
/* __ *\
@@ -73,8 +78,9 @@ object genprod {
%s
-package scala
-""".trim.format(genprodString) + "\n\n"
+package %s
+%s
+""".trim.format(genprodString, packageDef, imports) + "\n\n"
}
def main(args: Array[String]) {
@@ -96,7 +102,7 @@ package scala
w.close
} catch {
case e: java.io.IOException =>
- println(e.getMessage() + ": " + out)
+ println(e.getMessage() + ": " + f)
exit(-1)
}
}
@@ -112,6 +118,7 @@ import genprod._
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz */
object FunctionZero extends Function(0) {
+ override def covariantSpecs = "@specialized "
override def descriptiveComment = functionNTemplate.format("currentSeconds", "anonfun0",
""" *
* <b>val</b> currentSeconds = () => System.currentTimeMillis() / 1000L
@@ -126,6 +133,9 @@ object FunctionZero extends Function(0) {
}
object FunctionOne extends Function(1) {
+ override def contravariantSpecs = "@specialized(Int, Long, Double) "
+ override def covariantSpecs = "@specialized(Unit, Boolean, Int, Long, Double) "
+
override def descriptiveComment = functionNTemplate.format("succ", "anonfun1",
""" *
* <b>val</b> succ = (x: Int) => x + 1
@@ -149,6 +159,9 @@ object FunctionOne extends Function(1) {
}
object FunctionTwo extends Function(2) {
+ override def contravariantSpecs = "@specialized(Int, Long, Double) "
+ override def covariantSpecs = "@specialized(Unit, Boolean, Int, Long, Double) "
+
override def descriptiveComment = functionNTemplate.format("max", "anonfun2",
""" *
* <b>val</b> max = (x: Int, y: Int) => <b>if</b> (x < y) y <b>else</b> x
@@ -254,16 +267,245 @@ object Tuple
{
def make(i: Int) = apply(i)()
def apply(i: Int) = i match {
+ case 1 => TupleOne
case 2 => TupleTwo
+ case 3 => TupleThree
case _ => new Tuple(i)
}
}
+object TupleOne extends Tuple(1)
+{
+ override def covariantSpecs = "@specialized(Int, Long, Double) "
+}
+
object TupleTwo extends Tuple(2)
{
+ override def imports = """
+import scala.collection.{TraversableLike, IterableLike}
+import scala.collection.generic.CanBuildFrom
+"""
+ override def covariantSpecs = "@specialized(Int, Long, Double) "
override def moreMethods = """
/** Swap the elements of the tuple */
def swap: Tuple2[T2,T1] = Tuple2(_2, _1)
+
+ def zip[Repr1, El1, El2, To](implicit w1: T1 => TraversableLike[El1, Repr1],
+ w2: T2 => Iterable[El2],
+ cbf1: CanBuildFrom[Repr1, (El1, El2), To]): To = {
+ val coll1: TraversableLike[El1, Repr1] = _1
+ val coll2: Iterable[El2] = _2
+ val b1 = cbf1(coll1.repr)
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext)
+ b1 += ((el1, elems2.next))
+
+ b1.result
+ }
+
+ /** Wraps a tuple in a `Zipped`, which supports 2-ary generalisations of map, flatMap, filter,...
+ *
+ * @see Zipped
+ * $willNotTerminateInf
+ */
+ def zipped[Repr1, El1, Repr2, El2](implicit w1: T1 => TraversableLike[El1, Repr1], w2: T2 => IterableLike[El2, Repr2]): Zipped[Repr1, El1, Repr2, El2]
+ = new Zipped[Repr1, El1, Repr2, El2](_1, _2)
+
+ class Zipped[+Repr1, +El1, +Repr2, +El2](coll1: TraversableLike[El1, Repr1], coll2: IterableLike[El2, Repr2]) { // coll2: IterableLike for filter
+ def map[B, To](f: (El1, El2) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ val b = cbf(coll1.repr)
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext)
+ b += f(el1, elems2.next)
+
+ b.result
+ }
+
+ def flatMap[B, To](f: (El1, El2) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ val b = cbf(coll1.repr)
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext)
+ b ++= f(el1, elems2.next)
+
+ b.result
+ }
+
+ def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CanBuildFrom[Repr1, El1, To1], cbf2: CanBuildFrom[Repr2, El2, To2]): (To1, To2) = {
+ val b1 = cbf1(coll1.repr)
+ val b2 = cbf2(coll2.repr)
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1) {
+ if(elems2.hasNext) {
+ val el2 = elems2.next
+ if(f(el1, el2)) {
+ b1 += el1
+ b2 += el2
+ }
+ }
+ }
+
+ (b1.result, b2.result)
+ }
+
+ def exists(f: (El1, El2) => Boolean): Boolean = {
+ var acc = false
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1)
+ if(!acc && elems2.hasNext)
+ acc = f(el1, elems2.next)
+
+ acc
+ }
+
+ def forall(f: (El1, El2) => Boolean): Boolean = {
+ var acc = true
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1)
+ if(acc && elems2.hasNext)
+ acc = f(el1, elems2.next)
+
+ acc
+ }
+
+ def foreach[U](f: (El1, El2) => U): Unit = {
+ val elems2 = coll2.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext)
+ f(el1, elems2.next)
+ }
+ }
+"""
+}
+
+object TupleThree extends Tuple(3) {
+ override def imports = """
+import scala.collection.{TraversableLike, IterableLike}
+import scala.collection.generic.CanBuildFrom
+"""
+ override def moreMethods = """
+ def zip[Repr1, El1, El2, El3, To](implicit w1: T1 => TraversableLike[El1, Repr1],
+ w2: T2 => Iterable[El2],
+ w3: T3 => Iterable[El3],
+ cbf1: CanBuildFrom[Repr1, (El1, El2, El3), To]): To = {
+ val coll1: TraversableLike[El1, Repr1] = _1
+ val coll2: Iterable[El2] = _2
+ val coll3: Iterable[El3] = _3
+ val b1 = cbf1(coll1.repr)
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext && elems3.hasNext)
+ b1 += ((el1, elems2.next, elems3.next))
+
+ b1.result
+ }
+
+ /** Wraps a tuple in a `Zipped`, which supports 3-ary generalisations of map, flatMap, filter,...
+ *
+ * @see Zipped
+ * $willNotTerminateInf
+ */
+ def zipped[Repr1, El1, Repr2, El2, Repr3, El3](implicit w1: T1 => TraversableLike[El1, Repr1],
+ w2: T2 => IterableLike[El2, Repr2],
+ w3: T3 => IterableLike[El3, Repr3]): Zipped[Repr1, El1, Repr2, El2, Repr3, El3]
+ = new Zipped[Repr1, El1, Repr2, El2, Repr3, El3](_1, _2, _3)
+
+ class Zipped[+Repr1, +El1, +Repr2, +El2, +Repr3, +El3](coll1: TraversableLike[El1, Repr1],
+ coll2: IterableLike[El2, Repr2],
+ coll3: IterableLike[El3, Repr3]) {
+ def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ val b = cbf(coll1.repr)
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext && elems3.hasNext)
+ b += f(el1, elems2.next, elems3.next)
+
+ b.result
+ }
+
+ def flatMap[B, To](f: (El1, El2, El3) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ val b = cbf(coll1.repr)
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext && elems3.hasNext)
+ b ++= f(el1, elems2.next, elems3.next)
+
+ b.result
+ }
+
+ def filter[To1, To2, To3](f: (El1, El2, El3) => Boolean)(
+ implicit cbf1: CanBuildFrom[Repr1, El1, To1],
+ cbf2: CanBuildFrom[Repr2, El2, To2],
+ cbf3: CanBuildFrom[Repr3, El3, To3]): (To1, To2, To3) = {
+ val b1 = cbf1(coll1.repr)
+ val b2 = cbf2(coll2.repr)
+ val b3 = cbf3(coll3.repr)
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1) {
+ if(elems2.hasNext && elems3.hasNext) {
+ val el2 = elems2.next
+ val el3 = elems3.next
+ if(f(el1, el2, el3)) {
+ b1 += el1
+ b2 += el2
+ b3 += el3
+ }
+ }
+ }
+
+ (b1.result, b2.result, b3.result)
+ }
+
+ def exists(f: (El1, El2, El3) => Boolean): Boolean = {
+ var acc = false
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1)
+ if(!acc && elems2.hasNext && elems3.hasNext)
+ acc = f(el1, elems2.next, elems3.next)
+
+ acc
+ }
+
+ def forall(f: (El1, El2, El3) => Boolean): Boolean = {
+ var acc = true
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1)
+ if(acc && elems2.hasNext && elems3.hasNext)
+ acc = f(el1, elems2.next, elems3.next)
+
+ acc
+ }
+
+ def foreach[U](f: (El1, El2, El3) => U): Unit = {
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
+
+ for(el1 <- coll1)
+ if(elems2.hasNext && elems3.hasNext)
+ f(el1, elems2.next, elems3.next)
+ }
+ }
"""
}
@@ -271,7 +513,7 @@ class Tuple(val i: Int) extends Group("Tuple") with Arity
{
// prettifies it a little if it's overlong
def mkToString() = {
- def str(xs: List[String]) = xs.mkString(""" + "," + """)
+ def str(xs: List[String]) = xs.mkString(""" + "," + """)
if (i <= MAX_ARITY / 2) str(mdefs)
else {
val s1 = str(mdefs take (i / 2))
@@ -303,7 +545,21 @@ zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz */
object Product extends Group("Product")
{
def make(i: Int) = apply(i)()
- def apply(i: Int) = new Product(i)
+ def apply(i: Int) = i match {
+ case 1 => ProductOne
+ case 2 => ProductTwo
+ case _ => new Product(i)
+ }
+}
+
+object ProductOne extends Product(1)
+{
+ override def covariantSpecs = "@specialized(Int, Long, Double) "
+}
+
+object ProductTwo extends Product(2)
+{
+ override def covariantSpecs = "@specialized(Int, Long, Double) "
}
class Product(val i: Int) extends Group("Product") with Arity
@@ -354,3 +610,44 @@ trait {className}{covariantArgs} extends Product {{
</file>}
}
+
+/** Abstract functions **/
+
+object AbstractFunctionZero extends AbstractFunction(0) {
+ override def covariantSpecs = FunctionZero.covariantSpecs
+}
+
+object AbstractFunctionOne extends AbstractFunction(1) {
+ override def covariantSpecs = FunctionOne.covariantSpecs
+ override def contravariantSpecs = FunctionOne.contravariantSpecs
+}
+
+object AbstractFunctionTwo extends AbstractFunction(2) {
+ override def covariantSpecs = FunctionTwo.covariantSpecs
+ override def contravariantSpecs = FunctionTwo.contravariantSpecs
+}
+
+class AbstractFunction(val i: Int) extends Group("AbstractFunction") with Arity
+{
+ override def packageDef = "scala.runtime"
+
+ val superTypeArgs = typeArgsString(targs ::: List("R"))
+
+ def apply() = {
+<file name={"runtime/" + fileName}>{header}
+abstract class {className}{contraCoArgs} extends Function{i}{superTypeArgs} {{
+{moreMethods}
+}}
+</file>}
+
+}
+object AbstractFunction
+{
+ def make(i: Int) = apply(i)()
+ def apply(i: Int) = i match {
+ case 0 => AbstractFunctionZero
+ case 1 => AbstractFunctionOne
+ case 2 => AbstractFunctionTwo
+ case _ => new AbstractFunction(i)
+ }
+}
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index 3e54b68daf..16bff5d399 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -255,6 +255,8 @@ class Global(var settings: Settings, var reporter: Reporter) extends SymbolTable
override def flatClasses: Boolean = isFlat
private val isDevirtualized = prev.name == "devirtualize" || prev.devirtualized
override def devirtualized: Boolean = isDevirtualized // (part of DEVIRTUALIZE)
+ private val isSpecialized = prev.name == "specialize" || prev.specialized
+ override def specialized: Boolean = isSpecialized
/** Is current phase cancelled on this unit? */
def cancelled(unit: CompilationUnit) =
diff --git a/src/compiler/scala/tools/nsc/Phase.scala b/src/compiler/scala/tools/nsc/Phase.scala
index cd5a399c12..98f0f840ff 100644
--- a/src/compiler/scala/tools/nsc/Phase.scala
+++ b/src/compiler/scala/tools/nsc/Phase.scala
@@ -34,6 +34,7 @@ abstract class Phase(val prev: Phase) {
// Will running with -Ycheck:name work?
def checkable: Boolean = true
def devirtualized: Boolean = false
+ def specialized: Boolean = false
def erasedTypes: Boolean = false
def flatClasses: Boolean = false
def keepsTypeParams = true
diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala
index febb4b221d..ddf4fb0a23 100755
--- a/src/compiler/scala/tools/nsc/ast/DocComments.scala
+++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala
@@ -90,7 +90,7 @@ trait DocComments { self: SymbolTable =>
getDocComment(sym) map getUseCases getOrElse List()
}
- def useCases(sym: Symbol): List[(Symbol, String, Position)] = useCases(sym, sym)
+ def useCases(sym: Symbol): List[(Symbol, String, Position)] = useCases(sym, sym.enclClass)
/** Returns the javadoc format of doc comment string `s`, including wiki expansion
*/
diff --git a/src/compiler/scala/tools/nsc/ast/TreeGen.scala b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
index f8678ce24e..cc3581c3f8 100644
--- a/src/compiler/scala/tools/nsc/ast/TreeGen.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreeGen.scala
@@ -31,10 +31,13 @@ abstract class TreeGen
private def isRootOrEmptyPackageClass(s: Symbol) = s.isRoot || s.isEmptyPackageClass
- def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree): Tree =
- AppliedTypeTree(
- scalaDot(newTypeName("Function"+argtpes.length)),
- argtpes ::: List(restpe))
+ def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree, abstractFun: Boolean = false): Tree = {
+ val cls = if (abstractFun)
+ mkAttributedRef(AbstractFunctionClass(argtpes.length))
+ else
+ mkAttributedRef(FunctionClass(argtpes.length))
+ AppliedTypeTree(cls, argtpes ::: List(restpe))
+ }
/** Builds a reference to value whose type is given stable prefix.
* The type must be suitable for this. For example, it
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
index c587b8342c..5318c76311 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala
@@ -874,7 +874,7 @@ abstract class GenJVM extends SubComponent {
atPhase(currentRun.picklerPhase) (
m.owner != definitions.ObjectClass
&& m.isMethod
- && !m.hasFlag(Flags.CASE | Flags.PROTECTED | Flags.DEFERRED)
+ && !m.hasFlag(Flags.CASE | Flags.PROTECTED | Flags.DEFERRED | Flags.SPECIALIZED)
&& !m.isConstructor
&& !m.isStaticMember
&& !(m.owner == definitions.AnyClass)
diff --git a/src/compiler/scala/tools/nsc/dependencies/Files.scala b/src/compiler/scala/tools/nsc/dependencies/Files.scala
index 09f694b6ca..194351a13f 100644
--- a/src/compiler/scala/tools/nsc/dependencies/Files.scala
+++ b/src/compiler/scala/tools/nsc/dependencies/Files.scala
@@ -1,47 +1,48 @@
package scala.tools.nsc
-package dependencies;
+package dependencies
import java.io.{InputStream, OutputStream, PrintStream, InputStreamReader, BufferedReader}
-import io.{AbstractFile, PlainFile}
+import io.{AbstractFile, PlainFile, VirtualFile}
-import scala.collection._;import scala.tools.nsc.io.VirtualFile
+import scala.collection._
trait Files { self : SubComponent =>
- class FileDependencies(val classpath : String) {
+ class FileDependencies(val classpath: String) {
import FileDependencies._
- class Tracker extends mutable.OpenHashMap[AbstractFile, mutable.Set[AbstractFile]]{
+ class Tracker extends mutable.OpenHashMap[AbstractFile, mutable.Set[AbstractFile]] {
override def default(key: AbstractFile) = {
- this(key) = new mutable.HashSet[AbstractFile];
- this(key);
+ this(key) = new mutable.HashSet[AbstractFile]
+ this(key)
}
}
val dependencies = new Tracker
- val targets = new Tracker;
+ val targets = new Tracker
def isEmpty = dependencies.isEmpty && targets.isEmpty
def emits(source: AbstractFile, result: AbstractFile) =
- targets(source) += result;
+ targets(source) += result
def depends(from: AbstractFile, on: AbstractFile) =
- dependencies(from) += on;
+ dependencies(from) += on
- def reset(file: AbstractFile) = dependencies -= file;
+ def reset(file: AbstractFile) = dependencies -= file
- def cleanEmpty() = {
- dependencies foreach {case (key, value) => value.retain(x => x.exists && (x ne RemovedFile))}
- dependencies.retain((key, value) => key.exists && !value.isEmpty)
- targets foreach {case (key, value) => value.retain(_.exists)}
- targets.retain((key, value) => key.exists && !value.isEmpty)
+ def cleanEmpty = {
+ dependencies foreach {case (_, value) =>
+ value retain (x => x.exists && (x ne removedFile))}
+ dependencies retain ((key, value) => key.exists && !value.isEmpty)
+ targets foreach {case (_, value) => value retain (_.exists)}
+ targets retain ((key, value) => key.exists && !value.isEmpty)
}
def containsFile(f: AbstractFile) = targets.contains(f.absolute)
- def invalidatedFiles(maxDepth : Int) = {
- val direct = new mutable.HashSet[AbstractFile];
+ def invalidatedFiles(maxDepth: Int) = {
+ val direct = new mutable.HashSet[AbstractFile]
for ((file, products) <- targets) {
// This looks a bit odd. It may seem like one should invalidate a file
@@ -53,34 +54,33 @@ trait Files { self : SubComponent =>
val indirect = dependentFiles(maxDepth, direct)
- for ((source, targets) <- targets;
- if direct(source) || indirect(source) || (source eq RemovedFile)){
- targets.foreach(_.delete);
- targets -= source;
+ for ((source, targets) <- targets
+ if direct(source) || indirect(source) || (source eq removedFile)) {
+ targets foreach (_.delete)
+ targets -= source
}
- (direct, indirect);
+ (direct, indirect)
}
/** Return the set of files that depend on the given changed files.
* It computes the transitive closure up to the given depth.
*/
def dependentFiles(depth: Int, changed: Set[AbstractFile]): Set[AbstractFile] = {
- val indirect = new mutable.HashSet[AbstractFile];
- val newInvalidations = new mutable.HashSet[AbstractFile];
+ val indirect = new mutable.HashSet[AbstractFile]
+ val newInvalidations = new mutable.HashSet[AbstractFile]
- def invalid(file: AbstractFile) = indirect(file) || changed(file) || (file eq RemovedFile)
+ def invalid(file: AbstractFile) =
+ indirect(file) || changed(file) || (file eq removedFile)
- def go(i : Int) : Unit = if(i > 0){
- newInvalidations.clear;
- for((target, depends) <- dependencies;
- if !invalid(target);
- d <- depends){
+ def go(i: Int) : Unit = if(i > 0) {
+ newInvalidations.clear
+ for((target, depends) <- dependencies if !invalid(target);
+ d <- depends)
newInvalidations(target) ||= invalid(d)
- }
- indirect ++= newInvalidations;
- if(!newInvalidations.isEmpty) go(i - 1);
- else ()
+
+ indirect ++= newInvalidations
+ if (!newInvalidations.isEmpty) go(i - 1)
}
go(depth)
@@ -88,65 +88,73 @@ trait Files { self : SubComponent =>
indirect --= changed
}
- def writeTo(file: AbstractFile, fromFile : AbstractFile => String) {
+ def writeTo(file: AbstractFile, fromFile: AbstractFile => String): Unit =
writeToFile(file)(out => writeTo(new PrintStream(out), fromFile))
- }
-
- def writeTo(print : PrintStream, fromFile : AbstractFile => String) : Unit = {
- cleanEmpty();
- def emit(tracker : Tracker){
- for ((f, ds) <- tracker;
- d <- ds){
- print.println(fromFile(f) + " -> " + fromFile(d));
- }
- }
- print.println(classpath);
- print.println(FileDependencies.Separator)
- emit(dependencies);
- print.println(FileDependencies.Separator)
- emit(targets);
+ def writeTo(print: PrintStream, fromFile: AbstractFile => String): Unit = {
+ def emit(tracker: Tracker) =
+ for ((f, ds) <- tracker; d <- ds) print.println(fromFile(f) + arrow + fromFile(d))
+ cleanEmpty
+ print.println(classpath)
+ print.println(separator)
+ emit(dependencies)
+ print.println(separator)
+ emit(targets)
}
}
- object FileDependencies{
- val Separator = "-------";
- private val RemovedFile = new VirtualFile("removed")
-
- def readFrom(file: AbstractFile, toFile : String => AbstractFile): Option[FileDependencies] = readFromFile(file) { in =>
- val reader = new BufferedReader(new InputStreamReader(in))
- val it = new FileDependencies(reader.readLine)
- reader.readLine
- var line : String = null
- while ({line = reader.readLine; (line != null) && (line != Separator)}){
- line.split(" -> ") match {
- case Array(from, on) =>
- (toFile(from), toFile(on)) match {
- case (null, _) => // fromFile is removed, it's ok
- case (fromFile, null) => it.depends(fromFile, RemovedFile) // onFile is removed, should recompile fromFile
- case (fromFile, onFile) => it.depends(fromFile, onFile)
+ object FileDependencies {
+ private val separator:String = "-------"
+ private val arrow = " -> "
+ private val removedFile = new VirtualFile("removed")
+
+ private def validLine(l: String) = (l != null) && (l != separator)
+
+ def readFrom(file: AbstractFile, toFile: String => AbstractFile): Option[FileDependencies] =
+ readFromFile(file) { in =>
+ val reader = new BufferedReader(new InputStreamReader(in))
+ val it = new FileDependencies(reader.readLine)
+
+ def readLines(valid: Boolean)(f: (AbstractFile, AbstractFile) => Unit): Boolean = {
+ var continue = valid
+ var line: String = null
+ while (continue && {line = reader.readLine; validLine(line)}) {
+ line.split(arrow) match {
+ case Array(from, on) => f(toFile(from), toFile(on))
+ case _ =>
+ global.inform("Parse error: Unrecognised string " + line)
+ continue = false
}
- case x => global.inform("Parse error: Unrecognised string " + line); return None
+ }
+ continue
}
- }
- while ({line = reader.readLine; (line != null) && (line != Separator)}){
- line.split(" -> ") match {
- case Array(source, target) =>
- val targetFile = toFile(target)
- (toFile(source), toFile(target)) match {
- case (null, null) => // source and target are all removed, it's ok
- case (null, targetFile) => it.emits(RemovedFile, targetFile) // source is removed, should remove relative target later
- case (_, null) => // it may has been cleaned outside, or removed during last phase
- case (sourceFile, targetFile) => it.emits(sourceFile, targetFile)
- }
- case x => global.inform("Parse error: Unrecognised string " + line); return None
- }
+ reader.readLine
+
+ val dResult = readLines(true)(
+ (_, _) match {
+ case (null, _) => // fromFile is removed, it's ok
+ case (fromFile, null) =>
+ // onFile is removed, should recompile fromFile
+ it.depends(fromFile, removedFile)
+ case (fromFile, onFile) => it.depends(fromFile, onFile)
+ })
+
+ readLines(dResult)(
+ (_, _) match {
+ case (null, null) =>
+ // source and target are all removed, it's ok
+ case (null, targetFile) =>
+ // source is removed, should remove relative target later
+ it.emits(removedFile, targetFile)
+ case (_, null) =>
+ // it may has been cleaned outside, or removed during last phase
+ case (sourceFile, targetFile) => it.emits(sourceFile, targetFile)
+ })
+
+ Some(it)
}
-
- Some(it)
- }
}
def writeToFile[T](file: AbstractFile)(f: OutputStream => T) : T = {
diff --git a/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala b/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala
index 74ec740204..ae98ecf1f6 100644
--- a/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/HtmlPage.scala
@@ -167,6 +167,7 @@ abstract class HtmlPage { thisPage =>
case EntityLink(entity) => templateToHtml(entity)
case Monospace(text) => <code>{ Unparsed(text) }</code>
case Text(text) => Unparsed(text)
+ case Summary(in) => inlineToHtml(in)
}
def typeToHtml(tpe: model.TypeEntity, hasLinks: Boolean): NodeSeq = {
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
index d90e3d2f64..41a7de93bd 100644
--- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala
@@ -267,9 +267,12 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
if (tpl.isPackage) "package" else if (tpl.isClass) "class" else if (tpl.isTrait) "trait" else "object"
case ctor: Constructor => "new"
case tme: MemberEntity =>
- val attr: String = if (tme.isImplicit) "implicit " else ""
- val kind = if (tme.isDef) "def" else if (tme.isVal) "val" else if (tme.isVar) "var" else "type"
- attr + kind
+ ( if (tme.isImplicit) "implicit " else "" ) +
+ ( if (tme.isDef) "def"
+ else if (tme.isVal) "val"
+ else if (tme.isLazyVal) "lazy val"
+ else if (tme.isVar) "var"
+ else "type")
}
def boundsToHtml(hi: Option[TypeEntity], lo: Option[TypeEntity], hasLinks: Boolean): NodeSeq = {
@@ -357,7 +360,7 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
case Some(st) => <span class="result"> extends { typeToHtml(st, hasLinks) }</span>
case None =>NodeSeq.Empty
}
- case tme: MemberEntity if (tme.isDef || tme.isVal || tme.isVar) =>
+ case tme: MemberEntity if (tme.isDef || tme.isVal || tme.isLazyVal || tme.isVar) =>
<span class="result">: { typeToHtml(tme.resultType, hasLinks) }</span>
case abt: AbstractType =>
val b2s = boundsToHtml(abt.hi, abt.lo, hasLinks)
@@ -374,6 +377,8 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage {
mbr match {
case dte: DocTemplateEntity if !isSelf =>
<h4 class="signature"><a href={ relativeLinkTo(dte) }>{ inside(hasLinks = false) }</a></h4>
+ case _ if isSelf =>
+ <h4 id="signature" class="signature">{ inside(hasLinks = true) }</h4>
case _ =>
<h4 class="signature">{ inside(hasLinks = true) }</h4>
}
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png
index c6e3841e53..25a8b4c185 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class.png
Binary files differ
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png
index 1969cff9e2..51e85957fe 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/class_big.png
Binary files differ
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css b/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css
index 63a2ffaa71..0bae7dbc3a 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.css
@@ -41,7 +41,7 @@ h1 {
right: 0;
left: 0;
top: 0;
- background-color: grey;
+ background-color: #B78E99;
}
#textfilter {
@@ -124,14 +124,14 @@ h1 {
float: right;
font-weight: normal;
color: white;
- padding: 1px 4px 1px 4px;
+ padding: 1px 0.5em 1px 4px;
}
#tpl .packages > li > h3 {
display: block;
- background-color: #142556;
+ background-color: #2C475C;
color: white;
- padding: 1px 4px 1px 4px;
+ padding: 1px 4px 1px 0.5em;
font-weight: bold;
display: block;
}
@@ -140,6 +140,10 @@ h1 {
display: block;
}
+#tpl .templates > li {
+ padding-left: 0.5em;
+}
+
#tpl ol > li .icon {
bottom: -2px;
position: relative;
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css b/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css
index 5c8822b1c1..f315a283b6 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/template.css
@@ -1,159 +1,191 @@
* {
- color: black;
- text-decoration: none;
- font-family: inherit;
- font-size: inherit;
- font-weight: normal;
- border-width: 0px;
- padding: 0px;
- margin: 0px;
+ color: black;
+ text-decoration: none;
+ font-family: inherit;
+ font-size: inherit;
+ font-weight: normal;
+ border-width: 0px;
+ padding: 0px;
+ margin: 0px;
}
body {
- font-family: sans-serif;
- font-size: 10pt;
+ font-family: sans-serif;
+ font-size: 10pt;
}
a {
- cursor: pointer;
+ cursor: pointer;
+ text-decoration: underline;
+ color: #69481D; /* brown */
}
a:hover {
- text-decoration: underline;
+ text-decoration: none;
}
#owner {
- padding: 4px;
- font-size: 12pt;
- display: block;
+ padding: 4px;
+ font-size: 12pt;
+ display: block;
+}
+
+#owner a {
+ color: black;
}
.value #owner {
- background-color: #ced8f4;
+ background-color: #7996AC;
}
.type #owner {
- background-color: #f4cece;
+ background-color: #799F5A;
}
#definition {
- display: block;
- padding: 6px;
+ display: block;
+ padding: 6px;
}
#definition > img {
- float: left;
+ float: left;
}
#definition > h1 {
- padding: 12px 0 12px 6px;
- color: white;
- font-size: 24pt;
- display: inline-block;
+ padding: 12px 0 12px 6px;
+ color: white;
+ font-size: 24pt;
+ display: inline-block;
+}
+
+#signature > span.kind {
+ font-size: 11pt;
+ display: inline;
+ float: left;
+ text-align: left;
+ width: auto;
+ padding-left: 6px;
+}
+
+#signature > span.symbol {
+ font-size: 11pt;
+ text-align: left;
}
.value #definition {
- background-color: #142556;
+ background-color: #2C475C;
}
.type #definition {
- background-color: #561414;
+ background-color: #385E1A;
}
#comment {
- padding-left: 8px;
+ padding-left: 8px;
}
#values > h3 {
- color: white;
- padding: 4px;
- background-color: #142556;
- font-size: 12pt;
- font-weight: bold;
+ color: white;
+ padding: 4px;
+ background-color: #7996AC;
+ font-size: 12pt;
+ font-weight: bold;
}
#types > h3 {
- padding: 4px;
- color: white;
- font-weight: bold;
- font-size: 12pt;
- background-color: #561414;
+ padding: 4px;
+ color: white;
+ font-weight: bold;
+ font-size: 12pt;
+ background-color: #799F5A;
}
#constructors > h3 {
- padding: 4px;
- color: white;
- font-weight: bold;
- font-size: 12pt;
- background-color: #000000;
+ padding: 4px;
+ color: white;
+ font-weight: bold;
+ font-size: 12pt;
+ background-color: #333;
}
/* Member cells */
div.members > ol {
- background-color: white;
- list-style: none
+ background-color: white;
+ list-style: none
}
div.members > ol > li {
- display: block;
+ display: block;
}
/* Member signatures */
#tooltip {
- background: #142556;
- border: 2px solid white;
- color: white;
- display: none;
- padding: 5px;
- position: absolute;
+ background: #EFD5B5;
+ border: 1px solid gray;
+ color: black;
+ display: none;
+ padding: 5px;
+ position: absolute;
}
.signature {
- padding: 1px;
- font-family: monospace;
- font-size: 10pt;
- clear: both;
- display: block;
- background-color: #dddddd;
+ padding: 3px;
+ font-family: monospace;
+ font-size: 10pt;
+ clear: both;
+ display: block;
+ background-color: #E5E5E5;
}
.signature .kind {
- text-align: right;
- float: left;
- display: inline-block;
- width: 7em;
+ text-align: right;
+ float: left;
+ display: inline-block;
+ width: 8em;
+}
+
+.signature > a > .symbol > .name {
+ text-decoration: underline;
+}
+
+.signature > a:hover > .symbol > .name {
+ text-decoration: none;
+}
+
+.signature > a {
+ text-decoration: none;
}
.signature .symbol {
- display: inline;
- padding-left: 0.7em;
+ display: inline;
+ padding-left: 0.7em;
}
.signature .name {
- display: inline-block;
- font-weight: bold;
+ display: inline-block;
+ font-weight: bold;
}
.signature .symbol .params .implicit {
- font-style: italic;
+ font-style: italic;
}
.signature .symbol .name.deprecated {
- text-decoration: line-through;
+ text-decoration: line-through;
}
.signature .symbol .params .default {
- font-style: italic;
+ font-style: italic;
}
#values .signature .name {
- color: blue;
+ color: blue;
}
#types .signature .name {
- color: red;
+ color: green;
}
/* Comments text formating */
@@ -161,169 +193,181 @@ div.members > ol > li {
.cmt {}
.cmt p {
- margin: 2px 0 2px 0;
+ margin: 2px 0 2px 0;
}
.cmt code {
- font-family: monospace;
- font-size: small;
+ font-family: monospace;
+/* font-size: small;*/
}
.cmt pre {
- display: block;
- font-family: monospace;
- font-size: small;
- margin: 2px 0 2px 0;
+ display: block;
+ font-family: monospace;
+/* font-size: small;*/
+ margin: 2px 0 2px 0;
}
.cmt ul {
- display: block;
- list-style: circle;
- padding-left:20px;
+ display: block;
+ list-style: circle;
+ padding-left:20px;
}
.cmt ol {
- display: block;
- padding-left:20px;
+ display: block;
+ padding-left:20px;
}
.cmt ol.decimal {
- list-style: decimal;
+ list-style: decimal;
}
.cmt ol.lowerAlpha {
- list-style: lower-alpha;
+ list-style: lower-alpha;
}
.cmt ol.upperAlpha {
- list-style: upper-alpha;
+ list-style: upper-alpha;
}
.cmt ol.lowerRoman {
- list-style: lower-roman;
+ list-style: lower-roman;
}
.cmt ol.upperRoman {
- list-style: upper-roman;
+ list-style: upper-roman;
}
.cmt li {
- display:list-item;
+ display:list-item;
}
.cmt a {
- text-decoration: underline;
+ text-decoration: underline;
}
/* Comments structured layout */
p.comment {
- display: block;
- margin-left: 7.7em;
+ display: block;
+ margin-left: 8.7em;
}
p.shortcomment {
- display: block;
- margin-left: 7.7em;
- cursor: help;
+ display: block;
+ margin-left: 8.7em;
+ cursor: help;
}
div.fullcomment {
- display: block;
- margin: 10px 0 10px 0;
+ display: block;
+ margin: 10px 0 10px 0;
}
#template div.fullcomment {
- margin: 6px 0 6px 7.7em;
+ margin: 6px 0 6px 8.7em;
}
div.fullcomment .block {
- padding: 2px 0 2px 0;
- border-top: 1px solid black;
- border-bottom: 1px solid black;
+ padding: 2px 0 2px 0;
+ border-top: 1px solid gray;
+ border-bottom: 1px solid gray;
}
div.fullcomment div.block ol li p,
div.fullcomment div.block ol li {
- display:inline
+ display:inline
}
div.fullcomment .block + .block {
- border-top: none;
+ border-top: none;
}
div.fullcomment .block > h5 {
- font-style: italic;
- font-weight: normal;
- display: inline-block;
+ font-style: italic;
+ font-weight: normal;
+ display: inline-block;
}
div.fullcomment .comment {
- margin: 6px 0 6px 0;
+ margin: 6px 0 6px 0;
}
div.fullcomment dl.paramcmts > dt {
- display: block;
- float: left;
- font-weight: bold;
- margin: 2px 4px 2px 0;
+ display: block;
+ float: left;
+ font-weight: bold;
+ margin: 2px 4px 2px 0;
}
div.fullcomment dl.paramcmts > dd {
- display: block;
- padding-left: 80px;
- border-top: 1px dashed black;
- border-bottom: 1px dashed black;
+ display: block;
+ padding-left: 80px;
+ border-top: 1px dashed gray;
+ border-bottom: 1px dashed gray;
}
div.fullcomment dl.paramcmts > dt:first-child + dd {
- border-top: none;
+ border-top: none;
}
div.fullcomment dl.paramcmts > dd:last-child {
- border-bottom: none;
+ border-bottom: none;
}
div.fullcomment dl.paramcmts > dd + dt + dd {
- border-top: none;
+ border-top: none;
}
/* Members filter tool */
#mbrsel {
- padding: 4px;
- background-color: #cccccc;
- display: block;
+ padding: 4px;
+ background-color: #B78E99; /* grayish pink */
+ display: block;
+ margin-bottom: 10px;
}
#mbrsel > div > h3 {
- padding: 4px;
- display: inline;
+ padding: 4px;
+ display: inline;
+ color: white;
}
#mbrsel > div > ol {
- display: inline-block;
- background-color: white;
+ display: inline-block;
+ background-color: white;
}
#mbrsel > div > ol#linearization {
- display: inline;
+ display: inline;
}
#mbrsel > div > ol > li {
- padding: 4px 8px 4px 8px;
- font-weight: bold;
- background-color: white;
- display: inline-block;
- cursor: crosshair;
+ padding: 4px 8px 4px 8px;
+/* font-weight: bold;*/
+ background-color: white;
+ display: inline-block;
+ cursor: crosshair;
}
#mbrsel > div > ol > li.in {
- background-color: white;
+ background-color: white;
+ color: #4C4C4C;
}
#mbrsel > div > ol > li.out {
- color: #888888;
- background-color: #bbbbbb;
+ color: #80384E;
+ background-color: #9E6A77;
+}
+
+#mbrsel .hideall {
+ color: #4C4C4C;
+ font-weight: bold;
}
+#mbrsel .showall {
+ color: #4C4C4C;
+ font-weight: bold;
+} \ No newline at end of file
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png
index b1b043080a..b3871a01c4 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait.png
Binary files differ
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png
index 63be0d7a3a..a44871309e 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/trait_big.png
Binary files differ
diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai b/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai
index 5d5d25ee98..b56fd1d3cd 100644
--- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai
+++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/type_tags.ai
@@ -1,5 +1,5 @@
%PDF-1.5 %âãÏÓ
-1 0 obj <</Metadata 961 0 R/Pages 2 0 R/OCProperties<</D<</RBGroups[]/ON[37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R]/OFF[15 0 R 27 0 R]/Order 877 0 R>>/OCGs[15 0 R 27 0 R 37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R]>>/Type/Catalog>> endobj 961 0 obj <</Subtype/XML/Length 44678/Type/Metadata>>stream
+1 0 obj <</Metadata 1054 0 R/Pages 2 0 R/OCProperties<</D<</RBGroups[]/ON[37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R 971 0 R 975 0 R 994 0 R 1011 0 R 1029 0 R]/OFF[15 0 R 27 0 R]/Order 970 0 R>>/OCGs[15 0 R 27 0 R 37 0 R 65 0 R 78 0 R 90 0 R 116 0 R 129 0 R 141 0 R 167 0 R 180 0 R 192 0 R 218 0 R 237 0 R 255 0 R 287 0 R 306 0 R 324 0 R 356 0 R 375 0 R 393 0 R 425 0 R 444 0 R 462 0 R 480 0 R 515 0 R 534 0 R 552 0 R 570 0 R 605 0 R 624 0 R 642 0 R 660 0 R 695 0 R 699 0 R 718 0 R 735 0 R 753 0 R 785 0 R 789 0 R 808 0 R 825 0 R 843 0 R 878 0 R 882 0 R 901 0 R 918 0 R 936 0 R 971 0 R 975 0 R 994 0 R 1011 0 R 1029 0 R]>>/Type/Catalog>> endobj 1054 0 obj <</Subtype/XML/Length 44482/Type/Metadata>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c036 46.277092, Fri Feb 23 2007 14:16:18 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
@@ -17,15 +17,15 @@
xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/">
<xap:CreatorTool>Adobe Illustrator CS3</xap:CreatorTool>
<xap:CreateDate>2009-11-23T17:10:12+01:00</xap:CreateDate>
- <xap:ModifyDate>2009-11-24T11:35:55+01:00</xap:ModifyDate>
- <xap:MetadataDate>2009-11-24T11:35:55+01:00</xap:MetadataDate>
+ <xap:ModifyDate>2010-04-13T20:05:12+02:00</xap:ModifyDate>
+ <xap:MetadataDate>2010-04-13T20:05:12+02:00</xap:MetadataDate>
<xap:Thumbnails>
<rdf:Alt>
<rdf:li rdf:parseType="Resource">
<xapGImg:width>256</xapGImg:width>
<xapGImg:height>208</xapGImg:height>
<xapGImg:format>JPEG</xapGImg:format>
- <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA0AEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXlX54yWv13ynbe&#xA;YJ5YPIt1eTJ5h9NiqPIsYeySUp+84F0cmm21eoXMrT3Uq+rown07kF+VVxocf5iarp3kyXn5TTTI&#xA;p9Sht3kmso9WaUIPRklHL4oVbcfap/kik9QSYAy+q/sYw57PYswm12KuxV2KuxV2KuxV2KuxVIfN&#xA;nnvyn5Sht5vMOopYrdOUt1KySu5UVYrHEsj8V2q1KCo8RlmPFKfIIMgOaK8t+aNB8y6YNT0O8W9s&#xA;i7RmRQyFXTqro4V0O4NGA2IPQjBkxygakFBB5JpkEuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KqdzbW91by21zEk9tMpjmhkUOjowoysrVBBGxBwg0qnp+m6dptollp1rDZWcVfTtreN&#xA;Yol5Es3FECqKsSTiZEmytIjArsVdirsVdirsVdirsVdirzfzhoWrWf5gv5xS2nu9MTy7caaYrFPW&#xA;uxdCYyxqkPCSvqep8LcSoI+OgpXJxyHDw9eK2EhvaL/LXTNZk1rzN5r1LTH0VfMMlobPTJuHrrFb&#xA;QEetNwJ4vK0p5IQGUjfBmkKjEG+G1iOZZ7mOzdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVcSAKnpirzDz5+fflbyxdT6bao2p6tCSjwREemjjj9uToP2gQPiBH2aGuZWHSSnv0a5ZAHnF&#xA;1/zkn5xub1JrWwgtbUUra8vU5UNTV2Su422zPh2aK3LUcxZh5Z/5yQ0y7nEOv6e2ncqBZ4W9WMUU&#xA;/aJ4kcmoBtQdS2U5ezJRHpNso5g9itrq2ureO4tpVmglUPFKhDKyncEEdQc1pFc29UwK7FXYq7FX&#xA;Yq7FXYq7FWAeefzr8n+U5fqssh1DUOKt9UtSrsFcEgs1eK/sn4iKg1FcyMWmlNhKYDzkf85Raw5X&#xA;h5eh4g/GTcPVh7AJ8P45nDsy+rV4zJvK3/ORmg38wg160fSpHb93Mp9WAClAGfZq178QPHpvVl7N&#xA;nHcbso5geb1u2uYLmCO4t5FlglUPHIpqGVhUEH5ZryKblTArsVdirsVdirsVdirD5/76T/WP682M&#xA;eTSVmFDsVT7y9/vNJ/r/AMBmJqObZBNcoZuxV2KuxV49/wA5C/mZd+W9Ii0TSJxHqmqKyyypQyQw&#xA;inJga1RjWg271B2zL0uHiNlrySp4F5D8ja95u1T6lpcXqSAc7i4kJEUSk/akeh6ntuTm4lkjijcn&#xA;HESTs9qs/wDnGUi3/wBJ18LcEdIrbkin5tIpb7hmL/K1HaP2s/A82Gee/wAo9f8AKcP1uRkvtLJC&#xA;m8hBHAnYCVDXjXsake9cz9LroZtuUmueMxTj8jvzBudH1qLy1fz/AO4i+ZvqpkO0MxBPFSSOKyH/&#xA;AIb5k5i9paUEcY5s8M+j6PzQuU7FXYq7FXYq7FXYq8t/Pz8yJfKXlyOy09uOsatyS3fekca/3knS&#xA;hpUACvU7giozJ02Lil5BhOVB4d+W/wCU2uee7W91K2v4Ingm43DXRkLu8g5l+Sq9a965tJ6iOKgQ&#xA;0CBky2y/5x784SatcWTS28VpbcAdQYv6chZAxES8ebceVCdhXvln8p4xEHe+5Hgytb5q/IrzPoem&#xA;yahFJDqVtApe4WDksiKNy3Bh8SgdaGvtk8HaOPIeE7FEsJG6I/JH8wrrRtai8t38pbSdQfjalyT6&#xA;M56Ku+yyHalPtfMnKe0dICOMcwywz6PpDNC5TsVdirsVdirsVdirD5/76T/WP682MeTSVmFDsVT7&#xA;y9/vNJ/r/wABmJqObZBh2vfmPq2n+YvMVjC1kJNDs3uNO8vyI51LV2WxN16lm3rR0jST92wWCQ/A&#xA;3Q0yhm8/8wfnR5wvPIGoO9xp2kPdWWr/AFbXopI2WV7W0heK1tfqV/di3vne5kKcp2IEXLhUlUVS&#xA;S+8zeepr/Wbe11+5hnkufqswM91LJHFNrdjZwia2WaEWB9KdhbvAQ1xFycsr0YKvV/IGoecD+Znm&#xA;3TNct7uKwhstNfSY5Z4preOBJry3SVaTzS87sQ+oxcc6qVc7IWVfP/5+6ld3n5qanFcPz+oCO2hN&#xA;KUj4+qq0Hh6tPxzb6QARDjz5vff+cdtJtbP8tLS9iUevqc08079z6crQKK+AEX45ia6ZOSu5sxDZ&#xA;iH5q/mp5q0X8xjZadcmGw0r0OdoAOE5kjWZ/U2qarJx9qVG+Z2j0cJ4rI3LVkyESe46np9pqul3N&#xA;hcrztryJopFI/ZdaVoe4zUQmYyBHMOQRYfFRvZrC7hvIW43FpKk0TA1o8TBlII9xnW5gDGnAjzfb&#xA;Ng8j2Nu8jc5GiQu5ABZioqaCg39s5CXN2AV8CuxV2KuxV2KuxV8gf85FawuofmZPGgZI7KFLfiaC&#xA;rozB32J67CvgBm20kai4+Q7vUf8AnFj/AJRzWf8AmKj/AOTeV9o84+5lh6pz+cn5p655R1DT9P0i&#xA;KH1J4zczzTqXBXmUVFAK0+yeR+VMdDo45QTJcuQx5M98o6+nmLyzp+semI/rsIeSLqFcVV1FeoDA&#xA;0zCzY+CZj3NkZWLfKX5gWyaF521SGwPpCyvWktOO3Cj+ogH+rtnS45ceEE9Q4ZFSfX1g/Oxt3qTy&#xA;iRqtUtuoO9e+csebnBXwK7FXYq7FXYq7FWHz/wB9J/rH9ebGPJpKzCh2Kp95e/3mk/1/4DMTUc2y&#xA;Ca5QzdirsVdir5P/AOcmvLJ0zzxFq8KUttUhDSNy5H10JDV68Qwpx+Rp0zaaSdxruaMg3Z7/AM40&#xA;fmDptxoP+EbydYdQtJHk09HNPWhlJdlSvV0csSPA+xyrW4jfGGWOXRmXm78mtD8y+a4NfuLmSGnp&#xA;i+tFRWWf0tl+In4aqArbHYdsGDXSxw4QFliBNpr+ZXnvTvKPly4uZZlGpTRsmm21RzeUigbj14IT&#xA;Vj9HUjKtLgOSQHTqynKg+UPKulTeYfNWm6TFH6wnnUzJVRWJDykFWIWpUUFTuSBm91ObhiS4sI7v&#xA;te2gW3t4oFLMsSKisxqxCilSfHOaJtzVTArsVdirsVdirsVfLH/OUnl6e084WetqgFrf24iJWp/e&#xA;wkkluwLBth/kk5stHP000ZBuzX/nFKTn5c1v2u4/+TeQ15shliZt+ZP5T2Xna4srpr5rC6tFMTOI&#xA;xKHiJ5caFkoQa0Ne/TI6XWHCCKsFOTHxMltING8peWIoXmFtpWk24Vp5T0VBuzHuzHw6k7ZjyMsk&#xA;76lkKiHyPqFxc+ePP7rbI/PWb5mVEBZ0hZiSaKGJ9OIVNB2zfykMWOu4OKBZfZdrE0NtDCzBmjRU&#xA;ZgKAlRSoG9M5wuYqYFdirsVdirsVdir481v/AJyE8+2us39tHHY+nBczRpyhcnikhUV/ee2bmOIU&#xA;GglBf9DG/mD/AL7sP+RL/wDVTJeEEW7/AKGN/MH/AH3Yf8iX/wCqmPhBbe+f848+eda84eWdSvtW&#xA;WFZre99CMQIUXj6SNuCzb1bNfq4gSDbDk9UzEZuxV2KuxVjnn/yPpnnPy7No1/VAx9S3mABaOVQQ&#xA;rivhXt8ulRlmLIYGwiQt8d+b/IHm7yVf01C2lSBXrb6hGG9JqMQp5j7LVU7fSKjfNtjzCXJxzGle&#xA;0/N38xLe2FtH5hvhEBQBpmZgB2DNVh9+S8PGecQiz3oGzXzX5u1b0rVLrWNTmIDuzNK+54gySOfh&#xA;FTSrGmWHLGA7giiX09+S/wCUaeTrI6nqLCXXrxKSkCixRnf01qA3+t+rbbU6nUGZro3whT1DMVsd&#xA;irsVdirsVdirsVY55+8kab5z8uTaNfkoGPqQTAAtHKoPFxUdq9vl0qMsxZDA2ESFsK/IHyRrvk61&#xA;8waZq0XEm7RradfsSxhCvNa79R0P6qE3anIJUQwgKYz/AM5A/mD5r8p+c9N/QWoyWYm08NLGAskb&#xA;ETSCpjkDoT70y/SY4SieIXuxyEg7PIdX8+fmD53uI7G7vLnVJCax2UKBUqP2jFCqJsP2iNszYjHj&#xA;3AprJJe+fkn+TU/lflrXmCON9ZmQCKHZxbqaNRSDx5V+0adR8Owq2u1Wp49hybYQp7BmE2uxV2Ku&#xA;xV2KuxV2Kvzv8zf8pJqv/MZcf8nWzew5BxyluSV2Kvqz/nEX/lCtZ/7aR/5MR5rdb9Q9zbj5PUtR&#xA;84Saf51sPL9zZrHYX2n3l+urvOqqhsWhEqNEV2ULcK3MuPlmEzYy35u6jN5d13zDY6AraZoF1JHc&#xA;C7uzbTzWi2lveQzwRCCWstwl2PShcr25MrHiFV11+cHop5quFtdONt5ZLRPC+plL0yiSONWubb6s&#xA;wtoGZ2/emRvs/ZPZVUufzetLe80HSpH0Y6vrUX1ssNYQaets05hiaC7kgR7mSanwRpBuQwqAORVe&#xA;iYqpz21vcJ6c8Sypv8LqGG4Knr7EjCCrGT+Vf5bk1by1pzN3ZrdGJPiSRUn55Z40+8seEJ3pGgaL&#xA;o9utvpdlDZwrXjHEgUDlSoHgNhtkJSJ5pApH5FLsVdirsVdirsVdirsVdiq14kcUYb0I5AkMAetG&#xA;FCPoxVjHmj8s/KHmjULS+1mz+sz2Y4JyNQycuXB+VTxrXpTqcthmlEUGJiCmeieUfLGhBho+mW9g&#xA;H48vQjCVKggHbvv16nIynKXMpAATbIJdirsVdirsVdirsVdir87/ADN/ykmq/wDMZcf8nWzew5Bx&#xA;yluSV2Kvqz/nEX/lCtZ/7aR/5MR5rdb9Q9zbj5PXtW8p6Rq2s2eqX6GdrO0vbAWjhHt5YNR9H11m&#xA;jZW57WygCtKE1B7YTNitx+SHlRLiSXRbi48uxy38epyWulQ6dHbtPBBHBAGhmtJ0ZITE0sakUEru&#xA;/wBrjxVTeXyA0urT6w/mDUzqphktbC8pYcrKCeaOeWOBfqnBg5gRf36yEL0pU4qlE35JeWJLRrVL&#xA;6/hiureS01ng1vXUIZrqW8kS45QNw5T3MrVt/SI5UFABRV6FirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdirsVdirsVdirsVdirsVfImtf840fmhd6xf3cMFoYbi4lljJuVB4u5YVFPA5tI6uA&#xA;DUYFB/8AQr35rf8ALPZ/9JK/0yX5yCOAu/6Fe/Nb/lns/wDpJX+mP5yC8Be7f84//l95j8keWtR0&#xA;/XUiS4ubz6xEIZBIOHpIm5HupzC1OUTIIbIinqOYzJ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2&#xA;KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoY6lYgkGZQRsRg4g2eFLud+k7D/&#xA;AH+uPEF8KXc79J2H+/1x4gvhS7lWG4hmUtE4cA0JHjiCxlEjmqYWLsVdirsVU7m5gtoJLidxHDEp&#xA;Z3PQAYpAt4v5v/5yX0iwv5LLy7ZjVvSLI12XKQE0FCjUq1G5DYUIoQ2UyygOxwdnSkLOzDIf+civ&#xA;zFLDnFZNEOoEREhH+ty4/wDCZV45dgOyIHveh+Tv+chdF1W6Sz121/RM8rBYpg3OCpIWjOaFepNS&#xA;KAd8tjmB5uFqOypwFx3D1tWVlDKaqRUEdxlzqm8VdirsVdirsVdirsVdirsVQuo6rpum2z3OoXMd&#xA;rAil2klYKAoIBO/hyGAllGJPJjjfm1+Wol9L/EVkWqBVZKrv/lgcfxwcY724aXL/ADSn+la7ourw&#xA;ifS72G8iPIB4XVweJAalPCowggtU8co8xSOwsHYq7FXYq7FXYq7FWHzf30n+sf15QXZx5LMWTsVT&#xA;/wAvf7zSf6/8BlkHC1PMJpk3HdirsVdir5s/5yS/Mi6n1T/BunSmO3gAbVGUsC7NRliIIX/WPWop&#xA;Q0JrRkl0drocH8Ree+QPy/1/zbem10mEFIqG5upCVhiDdC7AHrTYAEnKBEyOzt8meGGNyeyWf/OM&#xA;6iEfWtepMRusVtVQfm0lT9wyz8v5uEe265Q+39jy/wA7+VYvLXmO60P60L1rUR8pwnp1MiCQDjyf&#xA;sw75ROPCadzpc3jYxOqt6h+QPn+7klbynqU/qJFGX0ySQ1YKCAYuRI2WvwihPbYDMjBkvZ0Xa2jE&#xA;Txx683uOZLpHYq7FXYq7FXYq7FXYqwz80/zGsPJHl57x2WTUJj6dlaBh6juwNGAo1FFN2O3zNFMZ&#xA;SoN+nwnJKuj5YuNT84/mJ5liS7mN5f3stLW0DCOBGIoAisQq0VQKnc03JzFlIyL0GLFDFG+gZvqn&#xA;5C67oPle91zVby2jNoiuLSHlKx5OqUZyEVftduWMsRAsrh7QxzyCEQd+rC9J1DVNGvEvtJuntLlC&#xA;rB4zseJ5AMpqrCorRhTKRMh2WXTRmKIfS/5UfmdF5vsHt70xwa3a0E8ANPUBqfUjB6rt0rUd+xOb&#xA;jycQeV12iOGW30vQMtcB2KuxV2KuxV2KsPm/vpP9Y/ryguzjyWYsnYqn/l7/AHmk/wBf+AyyDhan&#xA;mHmvm3yb5z1j8xNevNMAeL9HaZZ27Xz/AFSEWk8l0dQisr2O0upopmEUatwP2ZKtuIuM3HS3yTqP&#xA;5m6f5Ut9Pntb+x1bS/LtsnlrQ47NpLC7ki0oEG/u5LTlBcLcKVMDTRUYBfjryKqL8k+Y/wAz7rV7&#xA;SHzRc6jbaaxVtPmtNMnY3M5kAe11OSbSrdreNBSkqQRKVb+8YqTiqf8A5P6x+ZGpJqb+dFMUqiAp&#xA;ayQTQtBcEyevHG7WVlDJCKJw9OSem9ZW5Cir5V863M1x5712Sd2kcX9xHzclm4xysi1Y7miqN8xJ&#xA;vR6f6Q+svyN0a0038ttLeFQJb9Wu7mQDdndiFr/qoFX6MvxCoup7QyGWU+Wzzj81Pzf842fm+90n&#xA;R7v9HWensIfgSNnkfiCzszq3c0AGUZMpug7XQ9n4jjEpCyXlmpa1qOr6nPqWoy+ve3JDTy0VeRAC&#xA;/ZUBRsOwyiRvcu4wwEI8MeQR3krVptL87aRfQAGWGbZT0IZSpB+g5PEaLja+IljIL7KzPeOdirsV&#xA;dirsVdirsVdir5A/5yG8xXOq/mXdWLvW20hVtoUVmZOTKJHYAn4WPIK1P5cx8h3d3oYAQB72Wf8A&#xA;ONeh+XLzUdQvtSRG1LT3tW0pmlaNldxN6nFFZQ/2V6g5HCATu2dpTnGAEeRu/sfQmvado+paRc2O&#xA;sKrabMoFyru0SkBgRV1ZCPiA75kyAI3dJinKMgY/U+XvzS0ry9o/nCSx0BETThBE6rHK0y82B5fG&#xA;7OfxzAyxAOz13Z2ac8dz52l3kHXbjQ/O+k3sDcVknS2nBYorRzMEPMj9kEhvoxxSoo7RxCeMvsHN&#xA;g8c7FXYq7FXYq7FWHzf30n+sf15QXZx5LMWTsVT/AMvf7zSf6/8AAZZBwtTzCaZNx3Yq7FXYq+J/&#xA;zn8sz+XfzE1ONgxgvJDdwSuVLOJfictx2B51NPAjYZjTFF3ulycUA93/AOcdPzA03VPKsHlq4nWP&#xA;V9L5rFE5o01uzF1ZK9SnIqQOgAyzFLanC1+EiXGORZJ50/Jjyr5q1Q6rPJcWV9IAJ5LZk4ycRxBZ&#xA;XVviAAFRjPEJG103aOTFHhFEPnf8yfL1p5V84X+i2jyPa24iMDykM7LJCjksVCivJj2GYs4Uaeh0&#xA;mpOTGJHmmP5HaBPr35hWs/pCSy0oG5uiwJTcFEUkA7kkkV60yzDHdwu0s9QrvfWmZbzbsVdirsVd&#xA;irsVdirsVfFP53Wslp+a2vc68Zp1mjYgiquinavg1V+jMafN32kl6AmH5NShvzA0Ed/rS/8AETlc&#xA;PqDm6qV4Je59KfnCrN+WuuBQSfSQ0G+wmQnMnL9JdD2d/fx/HR8lKab5gPXhGaAj3nmfSLWOvKW8&#xA;gBIBai+oCzUG/wAIqcnAbuLq8lQPufbebB412KuxV2KuxV2Kvg3zD5687R+YNTjj8w6mkaXc6oi3&#xA;lwAAJGAAAfoMxSXoYQHCNkv/AMfeev8AqY9U/wCk24/5rwWy4B3O/wAfeev+pj1T/pNuP+a8bXgH&#xA;c+mf+cWdZ1jVfKGrTapfXF/MmoFEkupXmZV9CM8QXLECpy/FydVrwBIe57TljguxV2KuxVg35s/l&#xA;hYee9DELOYdTtAz2FwADRj1U1p8LUodx+ApGUbcjT5zjPk+RvMXlLzX5P1JoNTtZbWSFwI7pK+kz&#xA;UDKUkFN+JDUNGHcDMcxp3WPMJDZHwfmz+YUUSxr5i1DioooNxI23zJJwWe9PhY/5o+Sv5e8teffz&#xA;B1XlbJcXzyMFuNVu2kaNBUCrzPyJpXoKn2xECVyaiGMVy8n1h+XH5d6T5J0NLC0/f3j/AB3t8wAe&#xA;WQ05ePFdhRa9u53zJjGnR585ySsssyTQ7FXYq7FXYq7FXYq7FXh//OSH5ZXOt2UXmfSkabUbFBDc&#xA;WyB2aWCpb4dyKodwtBWp6sQMqyR6ufos/CeE8nzt5U8xzaDr+natGvNrC4iuPTOwcRsGKk/5QFMo&#xA;5G3bn1RMT1D7H0j82fy01vTFuP07YwRzLSW0vporeReQ+JHjmK1p0NKj3zJEwXQy02SJ5H4Pm385&#xA;dZ0G4893r6FLby6aI4Fie04+jVYlDBeHw7HwzGyAGWzv9HOUcQEufmzr/nHT8u7qfUB5x1NGiigF&#xA;NLiYOpf1FIMwIK0FNgN6gmooVJtxQ6uB2hqrHCH0Vl7p3Yq7FXYq7FXYq/PHzL/ykeq/8xlx/wAn&#xA;WzEPN6OH0hLcWTsVfVf/ADiN/wAoVrP/AG0j/wAmI8uxcnU9ofUPcyfzh501vyv5rv77VJNQXQYr&#xA;OaTRLO2XT3sry4tNPmvJ4Z24SahHJxiLJQqnw9d6G1wEjXz15yHlaWefUryz8y2V/oU+qWdza6d6&#xA;Bs9YvI7YRWht2uQIXBkoZJGmHHfjUYqna+d/Mup/mtP5aiN5pGlyadqUFiZtMn+K8s5bQC/FxLEI&#xA;XipPIiBXKbKW3kjXFWPSfmv5uj8meQLsi7Nxqa6Pea/rEWmz3MM0V1ewW0trGbeCSGOaVZHamzbB&#xA;UBd1oq9wxVQu7CyvEMd1BHOhVkIkUN8LU5DfxoMUgkcmOj8rPy6Dch5esRJ/v0RASV8eY+KvvXI8&#xA;IbfzE+9ksNvbwJwgiSJNvhRQo2FBsPYUyTUSqYodirsVdirsVdirsVdirsVakjSRGjkUPG4KujCo&#xA;IOxBBxV5Z5//AOce/KXmi6n1K0ZtL1SarPJCAIpHPH4pEpT+Ykjck7nK5YwXLw6uUdjuHnrf84l6&#xA;2JqJ5itzDX7Zt5A1P9XmR/w2R8Jyf5QHczLyX/zjR5X0a4ivNauG1m6ibksTqFt6gqVJiNa9CCGL&#xA;Df2yQxgNOXXSlsNnsUUMUKCOJFjQVIVQAKk1J28Sa5Y4JK7FXYq7FXYq7FXYq/PHzL/ykeq/8xlx&#xA;/wAnWzEPN6OH0hLcWTsVfVf/ADiN/wAoVrP/AG0j/wAmI8uxcnU9ofUPc9kHlry4NXl1oaVZjWLh&#xA;PSn1IW8X1mSPiF4PNx9Rl4qBQnplrgKVj5Q8p2FlJY2OiWFpYyzJcy2sFrDHE08TrJHKyKoUujor&#xA;K1KggHtiqYtaWrXUd40MbXcMbwxXBUGRI5SjSIr05BXaJCwHXiPAYqox6PpEenwadHY26afamI2t&#xA;msSCGI27rJAY4wOK+k6KyUHwkAjpiqLxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku&#xA;xV2KuxV2KuxV2KvnjU/+cR/r2pXd7/iv0/rU0k3p/o/lx9Ri1K/WRWlfDKjidjHtChXD9v7EN/0J&#xA;3/393/cu/wCzrB4Xmn+Uf6P2/sd/0J3/AN/d/wBy7/s6x8LzX+Uf6P2/serflH+V/wDyrzRbzTP0&#xA;n+lPrdz9Z9b0Pq/H92qcePqTV+xWtcsjGnF1GfxDdUzrJOO7FXYq7FXYq7FXYq7FXYq7FXYq7FXY&#xA;q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq&#xA;7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXgPn6HTvM&#xA;H5hebbDzNqbm20O1s5PLehSXiWEEzywB5pVdxxZ0djvuTWlaAUpnuS7PTyMIxIHPmatm/wCQXmLX&#xA;9e/L9LvWmkmkhupre0vJg5kngQKRIzuT6hWRnj5D+Wh3ByWMkjdo10IRyel6PljhuxV2KuxV2Kux&#xA;V2KuxV2KuxVi3nr8wLDymNPtmtLjUtY1iR4NI0y2A5TSoB9uRiFjQM6Bm3IrUKaGkZSpuw4TOzdA&#xA;c1PyP+Yth5nuL3TJ7STSfMOmmmoaRcMrOorTnE67Sx1IHIAdR2KkiM7Z59McYB5xPIstybjOxV2K&#xA;uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVK9W8q+WNZlSbV9HstRmjXhHJd20U7Kta8VMisQ&#xA;K4CAzjklHkSEwtra3tbeK2tokgtoEWOGGNQiIiDiqqq0CqoFABhYk2qYodirsVdirsVdirsVdirs&#xA;Vdirz381vInmDzBe+W9d8vyw/pXyzdtdx2dw7RJcIxjdoxIoajMYFWhoCGNSMhKJPJydPljEES5S&#xA;Q/5b/l3q2nebNZ87a5/ompaypjh0hJ/ra20UhSSQSzlV5vzjAUJ8Kr3avwiMKNs9RqOKIgNwOr0r&#xA;LHDdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir//Z</xapGImg:image>
+ <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA0AEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXlX54yWv13ynba&#xA;/PLB5FuryZPMPpsVR5FjD2aSlP3nAujk022r1C5k6fka+ro1ZOl8kH+VVxocf5iarp3kyXn5TTTI&#xA;p9Sht3kmso9WaUKPRklHL4oVbcfap/kilmckwBl9V/YjH9W3J7DmE3OxV2KuxV2KuxV2KuxV2KpD&#xA;5s89eU/KUNvN5h1BLFbpylupWSV3KirFY4ld+K7ValBUeIycMcp8gxlIDmivLfmfQfMumDU9DvFv&#xA;bIu0ZkUMhV06q6OFdDuDRgNiD0IxnjlA0UxkDyTTIJdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVU7m2t7q3ltrmJJ7eZTHNDIodHRhRlZWqCCOoOEGlU9P03TtNtEs9OtYbKzir6dtbx&#xA;rFEvIljxRAFFSSTiZE7lAFIjAl2KuxV2KuxV2KuxV2KuxV5v5w0LVrT8wW84pbT3emJ5euNNMVin&#xA;rXYuhMZY1SHhJX1PUorcSoI+OgpXIxyHDw9eJrkN78kX+Wumaw+s+ZfNepaY+ir5hktDaaZNw9dY&#xA;raAj1puBIV5WlPJCAykb45pChEG+FYDcnvZ7mO2OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux&#xA;V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV&#xA;2KuxV2KuJAFT0xV5j58/Pryv5Zup9NtUbU9WhJR4YiPTRxx+3J0H7QIHxAj7NDXMrDpZT36NU8oD&#xA;zi6/5yR843N6k1rYQWtqtK2vL1OVDU1dkruNtszo9nCmg6gsv8tf85H6ZdziHXtPbTuVAs0LerGK&#xA;KftE8SOTUA2oOpbKcvZsgNt2cdSDzexW11b3VvHcW0qzQSqHilQhlZTuCCOoOa4iubkqmBXYq7FX&#xA;Yq7FXYq7FXYqwDzz+dXk/wApy/VZJDqGoUVvqlqVdgrgkFmrxX9k/ERUGormRi00ptcsgDzof85Q&#xA;aw5Xh5eh4j7ZNw9WHagCfD+OZo7Nvq0nU+TJfK3/ADkXoV/MINdtH0qR2/dzKfVgApQBn2ate/ED&#xA;7t68vZ047jdlHUA83rdtcwXMEdxbyLLBKoeORTUMrCoI+jNeRTkKmBXYq7FXYq7FXYq7FWHz/wB9&#xA;J/rH9ebAcmgrMKHYqn3l7/eaT/X/AIDMXPzbYck1yhm7FXYq7FXj3/OQv5mXflvSYtE0icR6pqis&#xA;ssqULwwinJga1RjWg271B2zL0uHiNlqyzp4J5D8ja95t1T6lpcXqSAc7i4kJEUSk/akeh6nt1Oba&#xA;WSOONycQRMjQe1Wf/OM5W3/0nXgtwR0ituSKfm0ilvuGY38q1yj9rZ+V82Geevyk17ypD9blZL7T&#xA;CQpvIQRwJ2AlQ1417GpHvXM7Ta2GXblJoy4TDfonH5IfmBc6PrUXlu/n/wBxF8zfVjIdoZiCeKkk&#xA;cVkP/DfMnMXtHSgjjHNt0+Xei+jc0bnOxV2KuxV2KuxV2KvLvz7/ADIl8peXY7LT246xq3JLd96R&#xA;xr/eSdKGlQAK9TuCKjMnTYuI+TVlnQeH/lv+U2uee7W91K2v4I3gm43BujIXd5BzL8lV6171zZT1&#xA;EcVAhx44zNllj/zj55wfVriyaW3itbbgDqDF/TkLIGpEvHk3HlQnYV75Z/KWMRB3vuY/lpEteavy&#xA;L8z6JpsmoRSQ6lbQKXuBByWRFG5bgw+JQOtDX2yzD2jjyHhOxYz08oi0R+SX5g3Wja1F5cvpS2k6&#xA;g/G1Lkn0Zz0Vd9lkO1Kfa+ZOUdo6UEcY5s9Pl3ovo7NG5zsVdirsVdirsVdirD5/76T/AFj+vNgO&#xA;TQVmFDsVT7y9/vNJ/r/wGYufm2w5MO178x9W0/zF5isYWshJodm9xp3l+RHOpauy2JuvUs29aOka&#xA;Sfu2CwSH4G6GmUM3n/mD86fN955Av3e503SHurLVzba7FJGyyva2kLRWtr9Sv7sW9873LlOU7ECL&#xA;lwqxVFUlv/M3nma91i2tNfuYJ5Lj6rcAz3Usscc2u2VpD61us0P1A+jcMLd4GVriLk5KvRgq9W8g&#xA;ah5wP5mebdM1y3u4rCGy019Jjlnimt44EmvLdJVpPNLzuxD6jFxzqpVzshZV4B+fmpXd5+ampxXD&#xA;8/qIjtoTSlI+PqqtB4erTNtpQBEOJlO73z/nHbSbWz/LW0vYlHr6nNPNO/c+nK0CivgBF+OYmtkT&#xA;krubcA9LEfzU/NPzVov5jGy065MNhpXoc7QAcJzJGsz+ptU1WTj7UqN8ztJpITxWRuWjNmkJ7dHu&#xA;Gpafa6rpdzYXK87a8iaKRSP2XWlaHuM1MJmMgRzDmEWKfFjXs1hdw3kLcbi0lSaJga0eNgykEe4z&#xA;qswBjTqobF9r2DyPY27yNzkaJC7kAFmKipoKDf2zkzzdqFfAl2KuxV2KuxV2KvkH/nInWF1D8y54&#xA;0DJHZQpb8TQVdGYO+xPXYV8AM2uljUXEymy9R/5xZ/5R3Wf+YqP/AJN5X2hzHuZ6fkU5/OT80tc8&#xA;pahp+n6RFD6k8ZuZ5p1LgrzKKigFafZPI/KmOi0kcgJkjPmMTQZ75S15PMPlnT9Y9MR/XYQ8kXUK&#xA;4qrqK9QGBpmHmx8EzHub4S4hb5T/ADAtk0LzrqkNgfSFletJa8duFG9RAP8AV2zo8cuPECeoddIV&#xA;M0+vLB+djbvUnlEjVapbdQd6985g83ZBXwJdirsVdirsVdirD5/76T/WP682A5NBWYUOxVPvL3+8&#xA;0n+v/AZi5+bbDkmuUM3Yq7FXYq+T/wDnJnyydM88RavClLbVIQ0jcuR9dCQ1evEMKcfkadM2eknc&#xA;a7nGyjdn3/ONP5gabPoP+ErydYdQtJHk09HNPWhlJdlSvV0csSPA+xyrWYjfEGWGW1Mx83fk1onm&#xA;XzXBr9xcyQ09MX1oqKyz+lsvxE/DVQFOx2HbBh10scOEBZ4BKVpr+ZPnrTvKPly4uZZlGpTRsmnW&#xA;1RzeUigbj14ITVj9HUjKtNgOSVdOrPJPhD5S8q6VN5h81abpMUfrCedTMlVFYlPKQVYhalRQVO5o&#xA;M3mpy1ElwccLL7VtoFt7eKBSzLEiorMasQopUnxznCbdkqYFdirsVdirsVdir5Z/5yj8vz2nnCz1&#xA;tUAtb+3ERK1P72Ekkt2BYNsPYnNlpJemnGzDdmn/ADinJz8ua37Xcf8AybyGuNkMsA2LN/zJ/Kiy&#xA;87XFldNfNYXNopiZxGJQ8RPLjQslCDWhr36ZDS6w4gRV2nLh42SWkGjeU/LEULzC20vSbcK08p6K&#xA;g3Zj3Zj4dSdsx5GWSd9S2ACI9z5I1C4ufPHn91t0fnrN8xVEBZ0hZiSaLyJ9OIVNB2zfSkMeOu4O&#xA;ABxSfZVrE0NtDCzBmjRUZgKAlRSoG9M54uxVMCuxV2KuxV2KuxV8e63/AM5B+fLXWb+2jjsfTguZ&#xA;Y0rC5PFHKiv7z2zcRxCg4plugv8AoYz8wP8Afdh/yJf/AKqYfCCOIu/6GM/MD/fdh/yJf/qpj4QX&#xA;iL3v/nHrzzrXnDyzqV9qywrNb3voRiBCi8fSRtwWberZgauNSDdiNh6pmK2uxV2KuxVjnn7yPpnn&#xA;Py7No1/VAx9S3mABaOVQQrivhXt8ulRlmPIYGwxlGw+PPN3kDzd5Kv6ahbSpArVt9QjDek1GIU8x&#xA;9lqqdvpFRvm1x5RLk4koEIi0/Nz8w7e2FtH5hvhEBQBpmZgB2DNVh9+S8PH/ADQvFLvQFmvmvzbq&#xA;3pWqXWsanMQHdmaV9zxBkkc/CKnqxplhyxgO4MREkvp78l/ykTydZHU9RYS69eJSUgUWKM7+mtQG&#xA;/wBb9W22q1OoMzXRysePhen5itrsVdirsVdirsVdirHPP3kjTfOfl2bRr4lAx9SCYAFo5VB4uKjt&#xA;Xt8ulRlmPIYG2Mo2GF/kF5I13yfbeYNM1aLiTdo1tOv2JYwhXmtd+o7/AKqE26nIJUQwxxpjP/OQ&#xA;H5gea/KfnPTf0HqMlmJtPDSxgK8bETSCpjkDoT70y/SQjKJ4he7DLIg7PIdX8+fmB53uI7G7vLnV&#xA;JCax2cKBUqP2vShVE2H7RG2ZkRDHuBTSTKXN73+Sn5Nz+WOWteYI431mZAIodnFupo1FIPHlX7Rp&#xA;1Hw7Cra/U6nj2HJyMeOub2DMNudirsVdirsVdirsVfnj5l/5SPVf+Yy4/wCTrZvIcg4Z5pbkkOxV&#xA;9V/84jf8oVrP/bSP/JiPNbrfqHucjDyeo6j5wk0/zrYeX7mzWOwvtPvL9dXedVVDYtCJUaIrsoW4&#xA;VuZcfLMNtYy35u6jN5d13zDY6AraZoF1JHcC7uzbTzWi2lveQzwRCCWstwl2PShcr25MrHiFV11+&#xA;cHop5quFtdONt5ZLRPC+plL0yiSONWubb6swtoGZ2/emRvs/ZPZVUufzetLe90HSpG0Y6trUX1su&#xA;usINPW2af0Ymgu5IEkuZJt/TjSDchgSAAxVeiYqpz21vcJ6c8Sypv8LqGG4Knr7EjEFWNH8q/wAt&#xA;yat5a09m7s1ujEnxJIqT88s8afex4B3J1pOgaLo9utvpdlDZwrXikSBQOVKgeA26ZGUieaQAEfkU&#xA;uxV2KuxV2KuxV2KuxV2KrXiRxRhvQjkCQwB60YUI+jFWMeaPy08oeaNQtL7WbT6zPZjgnI1DJy5c&#xA;H5VPGtelOpy2GWURQYygCmeieUfLGhBho+mW9gH48vQjCVKggHbvv16nISmTzKREBNsil2KuxV2K&#xA;uxV2KuxV2Kvzx8y/8pHqv/MZcf8AJ1s3kOQcM80tySHYq+q/+cRv+UK1n/tpH/kxHmt1v1D3ORh5&#xA;PXdW8p6Rq2s2eqX6GdrO0vbAWjhHt5YNR9H11mjZW57WygCtKE1B7YbaxW4/JDyolxJLotxceXY5&#xA;b+PU5LXSodOjt2nggjggDQzWk6MkJiaWNSKCV3f7XHiqm8vkBpdWn1h/MGpnVTDJa2F5Sw5WUE80&#xA;c8scC/VODBzAi/v1kIXpSpxVKJvyS8sSWjWqX1/DFdW8lprPBreuoQzXUt5IlxygbhynuZWrb+kR&#xA;yoKACir0LFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+Rta/wCc&#xA;afzQu9Yv7qGC0MNxcSyxk3Kg8XcsKingc2cdVABxzjKC/wChX/zV/wCWez/6SV/ph/NwR4Rd/wBC&#xA;v/mr/wAs9n/0kr/TH83BfCL3b8gPy+8x+SPLeo6frqRJcXN568QhkEg4ekibke6nMPU5BMghtxxI&#xA;D1DMdsdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir&#xA;sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs&#xA;VdirsVdirsVdiqGOpWIJBmUEbEYOINnhS7nfpOw/3+uPEF8KXc79J2H+/wBceIL4Uu5VhuIZlLRO&#xA;HANCR44gsZRI5qmFi7FXYq7FVO4uIbaB553EcMYLO56ADElXj/mv/nIzSrK+ks/L1oNV9MsjXRYp&#xA;ATQbo1KtRq9BQihDZh5NWI8t2mWYBiUH5+/mCzDnHZtEOoERDkf63Lj/AMLmKdfJq/MFnvlP8+NJ&#xA;1K5W01u2/Rc0jBYpg3OCpIFGc0K9SakUpmTi1sZGjs2Qzg83qasrKGU1U7gjM1vbxV2KuxV2KuxV&#xA;2KuxV2KuxVDahqmnadbtcX9zHbQIpZpJGCgKCATv4VGAkDmgljx/NP8ALsS+l+n7QtUCoeq7/wCU&#xA;Bx/HK/Hh3sfEj3p7pet6RqsIm028hu4jUB4XDg8aA0p4VGTjIHkyBBRuSS7FXYq7FXYq7FXYqxCb&#xA;++k/1j+vKC7SPJZil2Kp95f/AN5pP9f+AyyDh6nmE0ybjOxV2KuxV86/85E/mHcz6n/g/T5THbwg&#xA;NqbKWBdmoViIIX/WPWopQ9a4Opy9A0ZZdGDeQvIet+aLs22mQgrHQ3FzIeMUQPTk1D1psAK5gxxS&#xA;yGg44iZHZ6/af848KsI+s63SUjdY7eqg/NpKn7hmQOze+X2Nv5bzec+cfLMWga9c6N9ZF21sE5TB&#xA;PTqZEDgceT9mHfNfnx+HPhu3GyR4TT0T8j/PF08x8rahNzSJC+nO53CggGLkSNl/ZFD9AGbLQ5yf&#xA;SXKwZL2L2bNk5LsVdirsVdirsVdirsVYf+Z35hWHkvQHu3ZZNQmPp2VoGHN3YH4qUaiim7Hb5mim&#xA;rLk4QwnKg+ZpdQ82/mB5iiW7mN3fXktLa1DCOFCRQBFYhVoq0qdzTcnNXOcpyrq4spGRZtqH5Iax&#xA;onlu71nU7q3Q2qK4tYuUjHkyrRmIRR9rtXHJpJxiZErLEQLLEtMutR0m6S90u5e1uUIYPGdjxPIB&#xA;lPwsKitCMw4ZpRNhpjMh9Dflh+Y0Xmqye3vSkOs21BNCDT1AannGD1XbxqO/Ynd6bUDIPNzsWTiD&#xA;Osym12KuxV2KuxV2KsQm/vpP9Y/rygu0jyWYpdiqfeX/APeaT/X/AIDLIOHqeYea+bfJvnPWPzE1&#xA;680wB4v0dplnbtfP9UhFpPJdHUIrK9jtLqaKZhFGrcD9mSrbiLjNxkt8k6j+Zun+VLfT57W/sdW0&#xA;vy7bJ5a0OOzaSwu5ItKBBv7uS05QXC3ClTA00VGAX468iqivJHmL8z7rVrOHzRc6jb6axVtPmtNM&#xA;mZrmcyASW2pyTaVbm3jQUpKkEKlW/vGKk4qyD8n9Y/MjUk1N/OimKVRAUtZIJoWguCZPXjjdrKyh&#xA;khFE4enJPTesrchRV8yecLmafzzrkkztI4vrhObks3GOQotSdzRVGajLzLhzfVP5LaRa6f8Al5pj&#xA;wqPVvVa6uJAN2d2IFf8AVQBcz9LECA83IxCosA/Mv81fNlp5qu9L0m5+oWlgwi+BEZ5GoCzMzq3c&#xA;7AZg6nVTEyAaAaMuU3Qeb3+sX+q6jPqF/L615cENNLQLyIAHRQANh2Ga/JIyNnm40jZsorynqs2m&#xA;+cdJvYKGWKbZT0IZSpB+g5dpTUgWeI0X1rnQOxdirsVdirsVdirsVdir5L/P3zBc6p+ZFzYu1bbS&#xA;VW3hRWZl5Mod2ofssahWp/Lmt1Mrk42U7su/5x20Xy/d319e6giNqFi9s2mM0jIwZxLz4oGUP9le&#xA;oOR0cYmRJ5jkjCATu941uw0rUNLuLPVlVtPmAFwruY1oGBFXUqRuB3zY5IiQqXJyZAEbvnL8yNN0&#xA;LSfNclloiomniGJlVJGmXkwPL42Zz+OaLV44xnUeTr80QDslvkvWp9F85aXewtxDzpbzAsUVo5mC&#xA;HkR+yCQ30Y6SZjMLhlUn1bnQOxdirsVdirsVdirEJv76T/WP68oLtI8lmKXYqn3l/wD3mk/1/wCA&#xA;yyDh6nmE0ybjOxV2KuxV8afnB5cm8vfmDqMbBjBdyG7gkYglhL8TluOwPOpp4U2GazNCpFxZii9x&#xA;/wCcfvPmnan5Yh8uzzKmq6byWKJjRpYCxdWSvXhXiQOgAzI0uQVw9Q24pbUyPzd+UflnzLqR1KZ5&#xA;7S9kAE727Lxk4igLK6t8VABUYc2kjM3yKzwiRt4N+YWiWnljzXe6Ras7W1uIjC8pBcrJEr1YgKOr&#xA;Htmpz4eCZAcTJCpUi/yZ0WfXfP1rMIxJZ6WDc3RYEpuCqKSAdyTUV60zJ0eK5X3NmGO76lzbuY7F&#xA;XYq7FXYq7FXYq7FXxt+c1tJafmlrnOvGaZZo2IIqrop2r4NUfRmszj1Fxcg3TX8oJlbzxoi13+sr&#xA;/wAROY2EfvQ1wHqD6I/NdWb8vdZCgk+khoPASoTm01f92XKy/SXy8hCmpzQF16vo4a88yaVax15S&#xA;3cC1ALUHqAs1B/KN8vwR9QZ4xu+xs6B2LsVdirsVdirsVfB3mHz152j1/U44/MOppGl3OqIt5cAA&#xA;CRgAAH6DMUl6GEBQ2S//AB956/6mPVP+k24/5rwWy4B3O/x956/6mPVP+k24/wCa8bXgHc+mf+cW&#xA;tZ1jVfKGrTapfXF/MmoFEkuZXmZV9CM8QXLECpy/FydVrwBIe57RljguxV2KuxVhP5qflpY+eNFE&#xA;LMYdStAz2FwADRj1U1ps1PH9QpVlxcQYTjb5S1/yt5q8o6i0OpW0ls8LgR3SV9NmoGUpIO/EhqGj&#xA;DuBmunjIO7jmNI+D81fPsUaxr5gv+KigBuJDt8ya4OOfeUcR71fQfL/nrz7qfK1S4vXkYLcandM7&#xA;RoNh8czciaV6Cp9sY4pTKiBL6k/L38v9K8maKlja/vrt/ivL1gA8khpX/VXbZf1nfNnixCApyoxo&#xA;Mpyxk7FXYq7FXYq7FXYq7FXiv/ORH5bXOtWcXmXS0aXULJBFcW6hmaSGpPw7kVQ9FoK1PViBmLqM&#xA;d7hqyR6vAPKvmObQ9csNUjXm1jPHP6Z2DCNgxUn/ACgKZgDYg9zRyNvrvSvzT/LnWdNWca3ZQxzL&#xA;SW1vZY4JFqN0eOUrWnQ0qPfNoM0CObkiYL55/N3W9Dm87Xj6JLBLp4jhWJ7Xj6NViUMF4fDsfDNX&#xA;qIgzNcnFyAGWzNP+cf8AyDdXF+PN2pI0UUIppkTBlL81IM1QV2psOtQTUUKk5Wkw16i24odX0Bme&#xA;5DsVdirsVdirsVfnl5l/5SPVf+Yy4/5OtmIXo4fSEtxZOxV9V/8AOI//AChWs/8AbSP/ACYjy7Fy&#xA;dT2h9Q9zJvOHnTW/K/mu/vtUk1BdBis5pNEs7ZdPeyvLi00+a8nhnbhJqEcnGIslCqfD13obXASN&#xA;PPXnMeVZJ7jUryz8zWV/oU+qWlza6d6Bs9YvI7YRWht2uaQODJQySNMOO/GoxVO187+ZdT/Nafy1&#xA;EbzSNLk07UoLEzaZP8V5Zy2gF+LiWIQvFSeRECuU2UtvJGuKsek/NfzdH5M8gXZF2bjU10e81/WI&#xA;tNnuYZorq9gtpbWM28EkMc0qyO1Nm2CoC7rRV7hiqjdWNndoUuoEmQqUIdQ3wtTkN/GmAi1pjw/L&#xA;H8vg3IeX7ISf79EQElfHmPir71yHhR7mPAGSQ28EC8IY1iTb4UUKNhQbD2GWUyX4q7FXYq7FXYq7&#xA;FXYq7FXYq06JIjI6h0cFWVhUEHYgg4q8x8+fkF5U8zXM2o2rNpmpzVZ5IQPSdzTd0pT+Ykjck9co&#xA;yacS3a5YwWAn/nFXWhLRPMNuYf5zA4an+ryI/wCGyn8oe9h4TL/J3/OOPlnSLiO81m4bWLmJuSxu&#xA;oW3qCCpMZrXoQQxI3yyGmA5so4gHrkUUUSBIkCIKkKooKk1PTxJzJbV2KuxV2KuxV2KuxV+eXmX/&#xA;AJSPVf8AmMuP+TrZiF6OH0hLcWTsVfVf/OI//KFaz/20j/yYjy7FydT2h9Q9z2MeWvLg1eXWhpVm&#xA;NYuE9KfUhbxfWZI+IXg83H1GXioFCemWuApWPlDynYWUljY6JYWljLMlzLawWsMcTTxOskcrIqhS&#xA;6OisrUqCAe2Kpi1patdR3jQxtdwxvDFcFQZEjlKNIivTkFdokLAdeI8BiqjHo+kR6fBp0djbpp9q&#xA;Yja2axIIYjbuskBjjA4r6TorJQfCQCOmKovFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F&#xA;XYq7FXYq7FXYq7FXYq+edT/5xI+u6ld3v+K/T+tTSTen+j+XH1GLUr9ZFaV8Mq8J2Me0KFcP2/sQ&#xA;3/Qnn/f3f9y7/s6weF5p/lH+j9v7Hf8AQnn/AH93/cu/7OsfC81/lH+j9v7Hqv5R/lh/yrzRbzTP&#xA;0n+lPrdz9Z9b0Pq/H92qcePqTV+xWtcsjGnE1GfxDdUzrJNDsVdirsVdirsVdirsVdirsVdirsVd&#xA;irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeE+eYtP1&#xA;78wPNVj5l1N/q2iWtnJ5d0WS7SxgmaWAPNKrOOLOjsd+prStBthZRxEg9OQaJiyWafkX5g1zXfIi&#xA;XWrtJM8VzLBaXc3IyTwIFIdnYn1CHZ05D+Wh3By3TSkYbs8RJG70LMhsdirsVdirsVdirsVdirsV&#xA;dirGPO3nyw8rCwt2tZ9R1fV5Gg0nTrYDlLKoH2nYhUQM6hm3IrWhocryZOH3ljKVLPJn5gWXmSe7&#xA;06a1k0rXtONL7SrgqzqK05xuu0kdduQA7dipMceYS25EIjO/eyrLmbsVdirsVdirsVdirsVdirsV&#xA;dirsVdirsVdirsVdirsVS3VfLHlrV5Ul1bSbLUZY14RyXdvFOyrWtFMisQK5EwB5hBAR1vb29tbx&#xA;W1tEkNvCixwwxqEREQUVVUUAAAoAMkAlUxV2KuxV2KuxV2KuxV2KuxV2KsB/NHyPruvXnl3XNBli&#xA;GqeW7prqO0uHaNJ0Yo7R+ooajMYFXfajGpGU5YE0R0YTiTuFD8vPIGq6f5p1jzlrf+i6jq6mOHSU&#xA;nN0tvFIUkkEk5Veb84wFC/Cq92r8McWKpGR5lEIUbei5kNjsVdirsVdirsVdirsVdirsVdirsVdi&#xA;rsVdirsVf//Z</xapGImg:image>
</rdf:li>
</rdf:Alt>
</xap:Thumbnails>
@@ -34,7 +34,7 @@
xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"
xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#">
<xapMM:DocumentID>uuid:89B13A64E5D9DE11BB37992E5642CB24</xapMM:DocumentID>
- <xapMM:InstanceID>uuid:7a20788e-1606-7140-8335-11445081584b</xapMM:InstanceID>
+ <xapMM:InstanceID>uuid:bce40ba9-528e-1a48-b1a0-2636e427f460</xapMM:InstanceID>
<xapMM:DerivedFrom rdf:parseType="Resource">
<stRef:instanceID>uuid:1052650b-0efc-4cb2-a32e-387095575b05</stRef:instanceID>
<stRef:documentID>uuid:6120892493BFDB11914A8590D31508C8</stRef:documentID>
@@ -54,7 +54,7 @@
<xapTPg:HasVisibleTransparency>False</xapTPg:HasVisibleTransparency>
<xapTPg:HasVisibleOverprint>False</xapTPg:HasVisibleOverprint>
<xapTPg:MaxPageSize rdf:parseType="Resource">
- <stDim:w>841.889832</stDim:w>
+ <stDim:w>841.889771</stDim:w>
<stDim:h>595.275574</stDim:h>
<stDim:unit>Pixels</stDim:unit>
</xapTPg:MaxPageSize>
@@ -65,7 +65,7 @@
<stFnt:fontFamily>Myriad Pro</stFnt:fontFamily>
<stFnt:fontFace>Regular</stFnt:fontFace>
<stFnt:fontType>Open Type</stFnt:fontType>
- <stFnt:versionString>Version 2.037;PS 2.000;hotconv 1.0.51;makeotf.lib2.0.18671</stFnt:versionString>
+ <stFnt:versionString>Version 2.007;PS 002.000;Core 1.0.38;makeotf.lib1.7.9032</stFnt:versionString>
<stFnt:composite>False</stFnt:composite>
<stFnt:fontFileName>MyriadPro-Regular.otf</stFnt:fontFileName>
</rdf:li>
@@ -581,7 +581,7 @@
-<?xpacket end="w"?> endstream endobj 2 0 obj <</Count 1/Type/Pages/Kids[5 0 R]>> endobj 15 0 obj <</Intent 16 0 R/Usage 17 0 R/Name(Class)/Type/OCG>> endobj 27 0 obj <</Intent 28 0 R/Usage 29 0 R/Name(Package)/Type/OCG>> endobj 37 0 obj <</Intent 38 0 R/Usage 39 0 R/Name(Object)/Type/OCG>> endobj 65 0 obj <</Intent 66 0 R/Usage 67 0 R/Name(Class)/Type/OCG>> endobj 78 0 obj <</Intent 79 0 R/Usage 80 0 R/Name(Package)/Type/OCG>> endobj 90 0 obj <</Intent 91 0 R/Usage 92 0 R/Name(Object)/Type/OCG>> endobj 116 0 obj <</Intent 117 0 R/Usage 118 0 R/Name(Class)/Type/OCG>> endobj 129 0 obj <</Intent 130 0 R/Usage 131 0 R/Name(Package)/Type/OCG>> endobj 141 0 obj <</Intent 142 0 R/Usage 143 0 R/Name(Object)/Type/OCG>> endobj 167 0 obj <</Intent 168 0 R/Usage 169 0 R/Name(Class)/Type/OCG>> endobj 180 0 obj <</Intent 181 0 R/Usage 182 0 R/Name(Package)/Type/OCG>> endobj 192 0 obj <</Intent 193 0 R/Usage 194 0 R/Name(Object)/Type/OCG>> endobj 218 0 obj <</Intent 219 0 R/Usage 220 0 R/Name(Class)/Type/OCG>> endobj 237 0 obj <</Intent 238 0 R/Usage 239 0 R/Name(Package)/Type/OCG>> endobj 255 0 obj <</Intent 256 0 R/Usage 257 0 R/Name(Object)/Type/OCG>> endobj 287 0 obj <</Intent 288 0 R/Usage 289 0 R/Name(Class)/Type/OCG>> endobj 306 0 obj <</Intent 307 0 R/Usage 308 0 R/Name(Package)/Type/OCG>> endobj 324 0 obj <</Intent 325 0 R/Usage 326 0 R/Name(Object)/Type/OCG>> endobj 356 0 obj <</Intent 357 0 R/Usage 358 0 R/Name(Class)/Type/OCG>> endobj 375 0 obj <</Intent 376 0 R/Usage 377 0 R/Name(Package)/Type/OCG>> endobj 393 0 obj <</Intent 394 0 R/Usage 395 0 R/Name(Object)/Type/OCG>> endobj 425 0 obj <</Intent 426 0 R/Usage 427 0 R/Name(Class)/Type/OCG>> endobj 444 0 obj <</Intent 445 0 R/Usage 446 0 R/Name(Trait)/Type/OCG>> endobj 462 0 obj <</Intent 463 0 R/Usage 464 0 R/Name(Package)/Type/OCG>> endobj 480 0 obj <</Intent 481 0 R/Usage 482 0 R/Name(Object)/Type/OCG>> endobj 515 0 obj <</Intent 516 0 R/Usage 517 0 R/Name(Class)/Type/OCG>> endobj 534 0 obj <</Intent 535 0 R/Usage 536 0 R/Name(Trait)/Type/OCG>> endobj 552 0 obj <</Intent 553 0 R/Usage 554 0 R/Name(Package)/Type/OCG>> endobj 570 0 obj <</Intent 571 0 R/Usage 572 0 R/Name(Object)/Type/OCG>> endobj 605 0 obj <</Intent 606 0 R/Usage 607 0 R/Name(Class)/Type/OCG>> endobj 624 0 obj <</Intent 625 0 R/Usage 626 0 R/Name(Trait)/Type/OCG>> endobj 642 0 obj <</Intent 643 0 R/Usage 644 0 R/Name(Package)/Type/OCG>> endobj 660 0 obj <</Intent 661 0 R/Usage 662 0 R/Name(Object)/Type/OCG>> endobj 695 0 obj <</Intent 696 0 R/Usage 697 0 R/Name(Base)/Type/OCG>> endobj 699 0 obj <</Intent 700 0 R/Usage 701 0 R/Name(Class)/Type/OCG>> endobj 718 0 obj <</Intent 719 0 R/Usage 720 0 R/Name(Trait)/Type/OCG>> endobj 735 0 obj <</Intent 736 0 R/Usage 737 0 R/Name(Package)/Type/OCG>> endobj 753 0 obj <</Intent 754 0 R/Usage 755 0 R/Name(Object)/Type/OCG>> endobj 785 0 obj <</Intent 786 0 R/Usage 787 0 R/Name(Base)/Type/OCG>> endobj 789 0 obj <</Intent 790 0 R/Usage 791 0 R/Name(Class)/Type/OCG>> endobj 808 0 obj <</Intent 809 0 R/Usage 810 0 R/Name(Trait)/Type/OCG>> endobj 825 0 obj <</Intent 826 0 R/Usage 827 0 R/Name(Package)/Type/OCG>> endobj 843 0 obj <</Intent 844 0 R/Usage 845 0 R/Name(Object)/Type/OCG>> endobj 878 0 obj <</Intent 879 0 R/Usage 880 0 R/Name(Base)/Type/OCG>> endobj 882 0 obj <</Intent 883 0 R/Usage 884 0 R/Name(Class)/Type/OCG>> endobj 901 0 obj <</Intent 902 0 R/Usage 903 0 R/Name(Trait)/Type/OCG>> endobj 918 0 obj <</Intent 919 0 R/Usage 920 0 R/Name(Package)/Type/OCG>> endobj 936 0 obj <</Intent 937 0 R/Usage 938 0 R/Name(Object)/Type/OCG>> endobj 937 0 obj [/View/Design] endobj 938 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 919 0 obj [/View/Design] endobj 920 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 902 0 obj [/View/Design] endobj 903 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 883 0 obj [/View/Design] endobj 884 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 879 0 obj [/View/Design] endobj 880 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 844 0 obj [/View/Design] endobj 845 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 826 0 obj [/View/Design] endobj 827 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 809 0 obj [/View/Design] endobj 810 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 790 0 obj [/View/Design] endobj 791 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 786 0 obj [/View/Design] endobj 787 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 754 0 obj [/View/Design] endobj 755 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 736 0 obj [/View/Design] endobj 737 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 719 0 obj [/View/Design] endobj 720 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 700 0 obj [/View/Design] endobj 701 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 696 0 obj [/View/Design] endobj 697 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 661 0 obj [/View/Design] endobj 662 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 643 0 obj [/View/Design] endobj 644 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 625 0 obj [/View/Design] endobj 626 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 606 0 obj [/View/Design] endobj 607 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 571 0 obj [/View/Design] endobj 572 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 553 0 obj [/View/Design] endobj 554 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 535 0 obj [/View/Design] endobj 536 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 516 0 obj [/View/Design] endobj 517 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 481 0 obj [/View/Design] endobj 482 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 463 0 obj [/View/Design] endobj 464 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 445 0 obj [/View/Design] endobj 446 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 426 0 obj [/View/Design] endobj 427 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 394 0 obj [/View/Design] endobj 395 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 376 0 obj [/View/Design] endobj 377 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 357 0 obj [/View/Design] endobj 358 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 325 0 obj [/View/Design] endobj 326 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 307 0 obj [/View/Design] endobj 308 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 288 0 obj [/View/Design] endobj 289 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 256 0 obj [/View/Design] endobj 257 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 238 0 obj [/View/Design] endobj 239 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 219 0 obj [/View/Design] endobj 220 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 193 0 obj [/View/Design] endobj 194 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 181 0 obj [/View/Design] endobj 182 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 168 0 obj [/View/Design] endobj 169 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 142 0 obj [/View/Design] endobj 143 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 130 0 obj [/View/Design] endobj 131 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 117 0 obj [/View/Design] endobj 118 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 91 0 obj [/View/Design] endobj 92 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 79 0 obj [/View/Design] endobj 80 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 66 0 obj [/View/Design] endobj 67 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 38 0 obj [/View/Design] endobj 39 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 28 0 obj [/View/Design] endobj 29 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 16 0 obj [/View/Design] endobj 17 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 877 0 obj [936 0 R 918 0 R 901 0 R 882 0 R 878 0 R] endobj 5 0 obj <</CropBox[321.5 204.775 334.5 217.775]/Parent 2 0 R/Contents 955 0 R/BleedBox[0.0 0.0 841.89 595.276]/PieceInfo<</Illustrator 869 0 R>>/ArtBox[321.5 204.775 334.5 217.775]/MediaBox[0.0 0.0 841.89 595.276]/Thumb 960 0 R/TrimBox[0.0 0.0 841.89 595.276]/Resources<</XObject<</Fm0 893 0 R/Fm1 900 0 R/Fm2 910 0 R/Fm3 917 0 R/Fm4 927 0 R/Fm5 935 0 R/Fm6 945 0 R/Fm7 952 0 R>>/ColorSpace<</CS0 889 0 R>>/Font<</T1_0 953 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 878 0 R/MC1 882 0 R/MC2 901 0 R/MC3 918 0 R/MC4 936 0 R>>/ExtGState<</GS0 885 0 R>>>>/Type/Page/LastModified(D:20091124113554+01'00')>> endobj 955 0 obj <</Length 1948/Filter/FlateDecode>>stream
+<?xpacket end="w"?> endstream endobj 2 0 obj <</Count 1/Type/Pages/Kids[5 0 R]>> endobj 15 0 obj <</Intent 16 0 R/Usage 17 0 R/Name(Class)/Type/OCG>> endobj 27 0 obj <</Intent 28 0 R/Usage 29 0 R/Name(Package)/Type/OCG>> endobj 37 0 obj <</Intent 38 0 R/Usage 39 0 R/Name(Object)/Type/OCG>> endobj 65 0 obj <</Intent 66 0 R/Usage 67 0 R/Name(Class)/Type/OCG>> endobj 78 0 obj <</Intent 79 0 R/Usage 80 0 R/Name(Package)/Type/OCG>> endobj 90 0 obj <</Intent 91 0 R/Usage 92 0 R/Name(Object)/Type/OCG>> endobj 116 0 obj <</Intent 117 0 R/Usage 118 0 R/Name(Class)/Type/OCG>> endobj 129 0 obj <</Intent 130 0 R/Usage 131 0 R/Name(Package)/Type/OCG>> endobj 141 0 obj <</Intent 142 0 R/Usage 143 0 R/Name(Object)/Type/OCG>> endobj 167 0 obj <</Intent 168 0 R/Usage 169 0 R/Name(Class)/Type/OCG>> endobj 180 0 obj <</Intent 181 0 R/Usage 182 0 R/Name(Package)/Type/OCG>> endobj 192 0 obj <</Intent 193 0 R/Usage 194 0 R/Name(Object)/Type/OCG>> endobj 218 0 obj <</Intent 219 0 R/Usage 220 0 R/Name(Class)/Type/OCG>> endobj 237 0 obj <</Intent 238 0 R/Usage 239 0 R/Name(Package)/Type/OCG>> endobj 255 0 obj <</Intent 256 0 R/Usage 257 0 R/Name(Object)/Type/OCG>> endobj 287 0 obj <</Intent 288 0 R/Usage 289 0 R/Name(Class)/Type/OCG>> endobj 306 0 obj <</Intent 307 0 R/Usage 308 0 R/Name(Package)/Type/OCG>> endobj 324 0 obj <</Intent 325 0 R/Usage 326 0 R/Name(Object)/Type/OCG>> endobj 356 0 obj <</Intent 357 0 R/Usage 358 0 R/Name(Class)/Type/OCG>> endobj 375 0 obj <</Intent 376 0 R/Usage 377 0 R/Name(Package)/Type/OCG>> endobj 393 0 obj <</Intent 394 0 R/Usage 395 0 R/Name(Object)/Type/OCG>> endobj 425 0 obj <</Intent 426 0 R/Usage 427 0 R/Name(Class)/Type/OCG>> endobj 444 0 obj <</Intent 445 0 R/Usage 446 0 R/Name(Trait)/Type/OCG>> endobj 462 0 obj <</Intent 463 0 R/Usage 464 0 R/Name(Package)/Type/OCG>> endobj 480 0 obj <</Intent 481 0 R/Usage 482 0 R/Name(Object)/Type/OCG>> endobj 515 0 obj <</Intent 516 0 R/Usage 517 0 R/Name(Class)/Type/OCG>> endobj 534 0 obj <</Intent 535 0 R/Usage 536 0 R/Name(Trait)/Type/OCG>> endobj 552 0 obj <</Intent 553 0 R/Usage 554 0 R/Name(Package)/Type/OCG>> endobj 570 0 obj <</Intent 571 0 R/Usage 572 0 R/Name(Object)/Type/OCG>> endobj 605 0 obj <</Intent 606 0 R/Usage 607 0 R/Name(Class)/Type/OCG>> endobj 624 0 obj <</Intent 625 0 R/Usage 626 0 R/Name(Trait)/Type/OCG>> endobj 642 0 obj <</Intent 643 0 R/Usage 644 0 R/Name(Package)/Type/OCG>> endobj 660 0 obj <</Intent 661 0 R/Usage 662 0 R/Name(Object)/Type/OCG>> endobj 695 0 obj <</Intent 696 0 R/Usage 697 0 R/Name(Base)/Type/OCG>> endobj 699 0 obj <</Intent 700 0 R/Usage 701 0 R/Name(Class)/Type/OCG>> endobj 718 0 obj <</Intent 719 0 R/Usage 720 0 R/Name(Trait)/Type/OCG>> endobj 735 0 obj <</Intent 736 0 R/Usage 737 0 R/Name(Package)/Type/OCG>> endobj 753 0 obj <</Intent 754 0 R/Usage 755 0 R/Name(Object)/Type/OCG>> endobj 785 0 obj <</Intent 786 0 R/Usage 787 0 R/Name(Base)/Type/OCG>> endobj 789 0 obj <</Intent 790 0 R/Usage 791 0 R/Name(Class)/Type/OCG>> endobj 808 0 obj <</Intent 809 0 R/Usage 810 0 R/Name(Trait)/Type/OCG>> endobj 825 0 obj <</Intent 826 0 R/Usage 827 0 R/Name(Package)/Type/OCG>> endobj 843 0 obj <</Intent 844 0 R/Usage 845 0 R/Name(Object)/Type/OCG>> endobj 878 0 obj <</Intent 879 0 R/Usage 880 0 R/Name(Base)/Type/OCG>> endobj 882 0 obj <</Intent 883 0 R/Usage 884 0 R/Name(Class)/Type/OCG>> endobj 901 0 obj <</Intent 902 0 R/Usage 903 0 R/Name(Trait)/Type/OCG>> endobj 918 0 obj <</Intent 919 0 R/Usage 920 0 R/Name(Package)/Type/OCG>> endobj 936 0 obj <</Intent 937 0 R/Usage 938 0 R/Name(Object)/Type/OCG>> endobj 971 0 obj <</Intent 972 0 R/Usage 973 0 R/Name(Base)/Type/OCG>> endobj 975 0 obj <</Intent 976 0 R/Usage 977 0 R/Name(Class)/Type/OCG>> endobj 994 0 obj <</Intent 995 0 R/Usage 996 0 R/Name(Trait)/Type/OCG>> endobj 1011 0 obj <</Intent 1012 0 R/Usage 1013 0 R/Name(Package)/Type/OCG>> endobj 1029 0 obj <</Intent 1030 0 R/Usage 1031 0 R/Name(Object)/Type/OCG>> endobj 1030 0 obj [/View/Design] endobj 1031 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 1012 0 obj [/View/Design] endobj 1013 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 995 0 obj [/View/Design] endobj 996 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 976 0 obj [/View/Design] endobj 977 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 972 0 obj [/View/Design] endobj 973 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 937 0 obj [/View/Design] endobj 938 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 919 0 obj [/View/Design] endobj 920 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 902 0 obj [/View/Design] endobj 903 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 883 0 obj [/View/Design] endobj 884 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 879 0 obj [/View/Design] endobj 880 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 844 0 obj [/View/Design] endobj 845 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 826 0 obj [/View/Design] endobj 827 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 809 0 obj [/View/Design] endobj 810 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 790 0 obj [/View/Design] endobj 791 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 786 0 obj [/View/Design] endobj 787 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 754 0 obj [/View/Design] endobj 755 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 736 0 obj [/View/Design] endobj 737 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 719 0 obj [/View/Design] endobj 720 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 700 0 obj [/View/Design] endobj 701 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 696 0 obj [/View/Design] endobj 697 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 661 0 obj [/View/Design] endobj 662 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 643 0 obj [/View/Design] endobj 644 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 625 0 obj [/View/Design] endobj 626 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 606 0 obj [/View/Design] endobj 607 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 571 0 obj [/View/Design] endobj 572 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 553 0 obj [/View/Design] endobj 554 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 535 0 obj [/View/Design] endobj 536 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 516 0 obj [/View/Design] endobj 517 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 481 0 obj [/View/Design] endobj 482 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 463 0 obj [/View/Design] endobj 464 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 445 0 obj [/View/Design] endobj 446 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 426 0 obj [/View/Design] endobj 427 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 394 0 obj [/View/Design] endobj 395 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 376 0 obj [/View/Design] endobj 377 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 357 0 obj [/View/Design] endobj 358 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 325 0 obj [/View/Design] endobj 326 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 307 0 obj [/View/Design] endobj 308 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 288 0 obj [/View/Design] endobj 289 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 256 0 obj [/View/Design] endobj 257 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 238 0 obj [/View/Design] endobj 239 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 219 0 obj [/View/Design] endobj 220 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 193 0 obj [/View/Design] endobj 194 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 181 0 obj [/View/Design] endobj 182 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 168 0 obj [/View/Design] endobj 169 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 142 0 obj [/View/Design] endobj 143 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 130 0 obj [/View/Design] endobj 131 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 117 0 obj [/View/Design] endobj 118 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 91 0 obj [/View/Design] endobj 92 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 79 0 obj [/View/Design] endobj 80 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 66 0 obj [/View/Design] endobj 67 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 38 0 obj [/View/Design] endobj 39 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 28 0 obj [/View/Design] endobj 29 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 16 0 obj [/View/Design] endobj 17 0 obj <</CreatorInfo<</Subtype/Artwork/Creator(Adobe Illustrator 13.0)>>>> endobj 970 0 obj [1029 0 R 1011 0 R 994 0 R 975 0 R 971 0 R] endobj 5 0 obj <</CropBox[321.5 204.775 334.5 217.775]/Parent 2 0 R/Contents 1048 0 R/BleedBox[0.0 0.0 841.89 595.276]/PieceInfo<</Illustrator 962 0 R>>/ArtBox[321.5 204.775 334.5 217.775]/MediaBox[0.0 0.0 841.89 595.276]/Thumb 1053 0 R/TrimBox[0.0 0.0 841.89 595.276]/Resources<</XObject<</Fm0 986 0 R/Fm1 993 0 R/Fm2 1003 0 R/Fm3 1010 0 R/Fm4 1020 0 R/Fm5 1028 0 R/Fm6 1038 0 R/Fm7 1045 0 R>>/ColorSpace<</CS0 982 0 R>>/Font<</T1_0 1046 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 971 0 R/MC1 975 0 R/MC2 994 0 R/MC3 1011 0 R/MC4 1029 0 R>>/ExtGState<</GS0 978 0 R>>>>/Type/Page/LastModified(D:20100413200510+02'00')>> endobj 1048 0 obj <</Length 1948/Filter/FlateDecode>>stream
H‰ÌWËŽ5Ý÷Wx™,®Çå··L
ZÖíÿu¹ÄÐgIIy_±ã<¾+i,¼}pë:§Œ¿.ï öP—ÎØ5•æmØW±!¥´«{[°£
ûYì$ÖC«je ¹g±-´uÊG+ÒL„S×±[SãÒAðÞ¡°j}l6
@@ -594,12 +594,14 @@ H¶CŸá’:P«Ûzì Ž¾þ˜²må9cÄfwó§ s@Èð~¾0‡æð_f²p. ….7–ªdCõ¨¯¥^"'€ýù@Ó
eÀ!L<8“ØUoÎλvkºŠ]GîLxg‘‚bgv &›R;à2$ìx¶xÆ…˜N”Tg l3ûÝ#|XʪÕD^kE½ï‡V­%ÅIe@ÛT7|]Δ›ÚKšŸx OòºKËGìò0ðD¸M\[±)‡ðz®Ðy¶Û¿ãër¦ô“´™ïÍ•¨î?;äŸj"Ëi.ªÞGMr¿qÑ)ióµþÓö_'X(ü¶L|¯øJ_¦LãGA,)}Á^ç¾+¾´ïʽ²|ºBz${E» ×íóO‚ø¢
ÿ«
ù¬oH*U zE';«‹øhÐñ3žgÑn/µëRôÝ×ÜÀå pÄMùe#fP'Q¬
-8Éͯvù:¢—ÚÐÒó¹Ë&?`óø&Cw`„×}ëa¾Ù´i7¼6|F£†9¾5i#… g¦ºx;.¾s7íÀM;ª(Ϥc* Žr~g ê^±( ›xw ‡‹ÃSß/ýi‚^Êo€æÉiškMŸ| uàtŽ´•DÓÌu»¤UŽÊ@Ž‹˜ÝÚ‘ï?P\æË¡#¾Wðj‚­CÕ”s\Ñoè3«¡3 ¼¾ðW7¡Z³†¢ýEæðé|ý¸Êäm¶¢®Hg™UœRøÛå/
-8;Xnf&7>J<fDsP~> endstream endobj 885 0 obj <</OPM 1/BM/Normal/CA 1.0/OP false/SMask/None/ca 1.0/AIS false/op false/Type/ExtGState/SA true>> endobj 953 0 obj <</Subtype/Type1/FontDescriptor 954 0 R/LastChar 102/Widths[513 513 0 513 513 513 0 513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 448 564 501 292]/BaseFont/WLSGHE+MyriadPro-Regular/FirstChar 49/Encoding/WinAnsiEncoding/Type/Font>> endobj 954 0 obj <</StemV 88/FontName/WLSGHE+MyriadPro-Regular/FontStretch/Normal/FontFile3 957 0 R/FontWeight 400/Flags 32/Descent -250/FontBBox[-157 -250 1126 952]/Ascent 952/FontFamily(Myriad Pro)/CapHeight 674/XHeight 484/Type/FontDescriptor/ItalicAngle 0>> endobj 957 0 obj <</Subtype/Type1C/Length 1273/Filter/FlateDecode>>stream
-H‰|S]PWÞ%ìF
-M[â2šÐÝÕZ„#b(?Šâ mÆfü IÔ$˜(EKÚ™¶&„PèP±øƒƒ¢uÈTmg
-Æü ì/<0ÙX,”ïÞcaWÆÇGGúP9‡±‘ltTTÔ*Ùõzc¾U—›-†}f6½Hg4MZ‹A¯`ײsfÖd0L¥¾¤0ŽÅ t6¿œÕ(ÔBF8]$œÙ ŒQFÆÄE+Øg93kà,{ &V+ìæ„&¡ÎbÒê û´¦ÖèSþCwýÏ8,WÄ
-^¬¦ˆó1µEHšYm‘~…àbœë¢3–YLœÁ¬X‘ªÎ./6°q¬Þ° Œc”¶Ã6ˆ°@߆²°bì"Æã›ñ~*¿Z.Òˆê_VuñÓ]¸€KºDUþü¡•÷ NÔC¡µðOIÄ¢«øˆ·Nì%·ÏÅ° œä¿£|ò1ÉñR¾o´ª,¬cÒv°†ŒÍÐI¤t-^×”Ä-¢š”Tyøü„ˆßâAßT‹¯tð&,Ÿ† ÙSÕ¯ˆ]ŸQ´kÝšE´œí<{C>ÝönzĺX”€¢™Ô4B#Ú@ê
+8Éͯvù:¢—ÚÐÒó¹Ë&?`óø&Cw`„×}ëa¾Ù´i7¼6|F£†9¾5i#… g¦ºx;.¾s7íÀM;ª(Ϥc* Žr~g ê^±( ›xw ‡‹ÃSß/ýi‚^Êo€æÉiškMŸ| uàtŽ´•DÓÌu»¤UŽÊ@Ž‹˜ÝÚ‘ï?P\æË¡#¾Wðj‚­CÕ”s\Ñoè3«¡3 ¼¾ðW7¡Z³†¢ýEæðé|ý¸Êäm¶¢®Hg™UœRøÛå/
+8;Xnf&7>J<fDsP~> endstream endobj 978 0 obj <</OPM 1/BM/Normal/CA 1.0/OP false/SMask/None/ca 1.0/AIS false/op false/Type/ExtGState/SA true>> endobj 1046 0 obj <</Subtype/Type1/FontDescriptor 1047 0 R/LastChar 102/Widths[513 513 0 513 513 513 0 513 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 448 564 501 292]/BaseFont/XAMDXC+MyriadPro-Regular/FirstChar 49/Encoding/WinAnsiEncoding/Type/Font>> endobj 1047 0 obj <</StemV 88/FontName/XAMDXC+MyriadPro-Regular/FontStretch/Normal/FontFile3 1050 0 R/FontWeight 400/Flags 32/Descent -250/FontBBox[-157 -250 1126 952]/Ascent 952/FontFamily(Myriad Pro)/CapHeight 674/XHeight 484/Type/FontDescriptor/ItalicAngle 0>> endobj 1050 0 obj <</Subtype/Type1C/Length 1212/Filter/FlateDecode>>stream
+H‰|SmPg¾#\N„¦-ñMìÝY-àH‘BR?
+((ØH%t´sÚ LÔŠšv¦-„ X~P¨"ZGT§„ŠZÔ"ÅX$ÊHüK;ô{ñÍŒ½Øÿý³»Ïûì³ûî;ïâXh†ãø¬‚ô¼Ì‚Œy;M^e2¾ŸÏm)+Ñ™‚$ÃËq~f(?;‚B ÇË—/s ¨}¾}yvè¹H,ÇžÎ0–
+Ú-Ÿ[ØÄ„„„¸ U°¯2]o,âXõN³…Ûffs¶o2šJ&…Ódzé%%l~Pffó93g*jâÕñ¬JHØna3JEœ2%1þ¿«±3«cM܃PÍÄéY‹I§ç¶éL[Yãfö:-\®þdg)Ǧ°zn3†áX$ŽQ!Ø, ËaáÂ#`yX)Ö…ùñ|¼/duˆ3ä•H-Ú7UÓÃOöà‚×#ª å«üª@•¨BË`ÏĈE½A ž ˆ7¼Ža°˜¿D#D’#åü€·¦"¬ãÒ3`÷Óibé0z÷£ÃÙ@Ü jÅ’ßàÁŸñ£<èb-y©›€w`æ£Iˆ=Sý‰Ø´UFn}<h;á>qM>yruc›Ÿ–ŒRQâòì™RèYÃp{?èÃ?/
+²ž 'ð±q$ºH"ÖÀ”E"بZ’`GÓ‰CÇ›;g9ÄÕ›Á CÛH‰u:‡ ù~ŸˆÏòÓº)Ö¡ÂÑÚî<#‡¨«'ÛE¦&Eµ¶ùP)]–MTt\¯‘Ãœ©ç õê®´3­›´.­Ü¼»ºº’iƒÅØÅëô BÂ]ü§GÐ"”Vøc©]e¶ïv0‹¾Ê(Ö¬¶jÕúh4C†–>A0 ƒiêDfh E%t•øà ÏÐ-mÎ{“mŠ §Ž¾¨f9ëöÓ?·ºOõÊÇzÕññ¹iŒÄz“ïê<óxå0?\é“z žRRßbCášE²8o*̆·&ï1ªý5õ$í ¥÷îw»vE6–;Š"‘X‘5–zÔêÛú)ê”)Ú¾AóÛùž»Gé Ón‰LêÉ)Ð.¡í¼@ßíЬSmܤþ‚Ik.<= WÏu{h‰Û:Âc¿ãÂØ1)«©xV¾ cB§®{AÔ}ʺ÷Ó<D4˜×7®“£Ä÷†æ£Øç1=ðËá†F‹¬#úr~Ù0l­ˆìôAû„ÔÍÇø )ÔUMž-ÓžN—£é1±HigPÌãX½vþò1ºV,­t&£âªS6÷ï%“Nj·moÕ^ZêÎ٥ѫäqŸŽýõâòý'ƒÝëÕŒÃj¯´Ê$ÿX‡aI?ÌíÇ;‚k\ÄA9eÿ¾ö@“̧%¢9JD¢hí‹…ù÷zè +û‰ÝÅœ5Wžô‘«{?u£þ¬×'ÿ»U¡¶1VXå-HÁ½D°4ŠWBØ-ö#yç‡Á?Úš¾ý¦‘n"ê¿,­/‘}¶gk1S¤¯Ì[!³¬È
+(…ŸéòØ€6¸`¡Ëí
+XêÅüÊ:”[0º.ֵבô‘Y_xvkúDø„3â ~ÿ ~.õ¯
H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó

V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚ó
@@ -608,8 +610,8 @@ H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8
N'çÎ)Î].ÂuæJ¸rî
î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö
n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=G</zÁ^Á^j¯­^—¼ Þ¡ÞZïQïBº0FX'Ü+œòáû¤útøŒû<öuñ-ôÝà{Ö÷µ__•ß˜ß-G”,ê}çïé/÷ñ¿ÀHh 8ðm W 2p[àŸƒ¸AiA«‚Ný#8$X¼?øAˆKHIÈ{!7Ä<q†¸Wüy(!46´-ôãÐaÁa†°ƒa†W†ï ¿¿@°@¹`lÁݧYÄŽˆÉH,²$òýÈÉ(Ç(YÔhÔ7ÑÎÑŠèÑ÷b<b*böÅ<Žõ‹ÕÇ~ûL&Y&9‡Ä%ÆuÇMÄsâsã‡ã¿NpJP%ìM˜I JlN<žDHJIÚtCj'•KwKg’C’—%ŸN¡§d§ §|“ꙪO=–§%§mL»½Ðu¡váx:H—¦oL¿“!ȨÉøC&13#s$ó/Y¢¬–¬³ÙÜìâì=ÙOsbsúrnåºçsOæ1óŠòvç=ËËïÏŸ\ä»hÙ¢óÖê‚#…¤Â¼Â…³‹ãoZ<]TÔUt}‰`IÃ’sK­—V-ý¤˜Y,+>TB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO
-¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ
-/CS0 cs 0.616 0.196 0.196 scn
+¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ
+/CS0 cs 0.29 0.486 0.133 scn
1 i
/GS0 gs
q 1 0 0 1 183 308.2725 cm
@@ -623,8 +625,8 @@ Q
q
/Fm0 Do
Q
- endstream endobj 900 0 obj <</Subtype/Form/Length 245/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 895 0 R/Resources<</XObject<</Fm0 899 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
-/CS0 cs 0.616 0.196 0.196 scn
+ endstream endobj 993 0 obj <</Subtype/Form/Length 244/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 988 0 R/Resources<</XObject<</Fm0 992 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
+/CS0 cs 0.29 0.486 0.133 scn
1 i
/GS0 gs
q 1 0 0 1 186.627 218.2744 cm
@@ -638,8 +640,8 @@ Q
q
/Fm0 Do
Q
- endstream endobj 910 0 obj <</Subtype/Form/Length 259/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 905 0 R/Resources<</XObject<</Fm0 909 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
-/CS0 cs 0.616 0.196 0.196 scn
+ endstream endobj 1003 0 obj <</Subtype/Form/Length 258/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 998 0 R/Resources<</XObject<</Fm0 1002 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
+/CS0 cs 0.29 0.486 0.133 scn
1 i
/GS0 gs
q 1 0 0 1 334.002 303.2773 cm
@@ -653,8 +655,8 @@ Q
q
/Fm0 Do
Q
- endstream endobj 917 0 obj <</Subtype/Form/Length 248/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 912 0 R/Resources<</XObject<</Fm0 916 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
-/CS0 cs 0.616 0.196 0.196 scn
+ endstream endobj 1010 0 obj <</Subtype/Form/Length 247/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1005 0 R/Resources<</XObject<</Fm0 1009 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
+/CS0 cs 0.29 0.486 0.133 scn
1 i
/GS0 gs
q 1 0 0 1 327.999 212.2715 cm
@@ -668,7 +670,7 @@ Q
q
/Fm0 Do
Q
- endstream endobj 927 0 obj <</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 922 0 R/Resources<</XObject<</Fm0 926 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
+ endstream endobj 1020 0 obj <</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1015 0 R/Resources<</XObject<</Fm0 1019 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
/CS0 cs 0.196 0.322 0.616 scn
1 i
/GS0 gs
@@ -683,7 +685,7 @@ Q
q
/Fm0 Do
Q
- endstream endobj 935 0 obj <</Subtype/Form/Length 241/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 930 0 R/Resources<</XObject<</Fm0 934 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
+ endstream endobj 1028 0 obj <</Subtype/Form/Length 241/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1023 0 R/Resources<</XObject<</Fm0 1027 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
/CS0 cs 0.196 0.322 0.616 scn
1 i
/GS0 gs
@@ -698,7 +700,7 @@ Q
q
/Fm0 Do
Q
- endstream endobj 945 0 obj <</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 940 0 R/Resources<</XObject<</Fm0 944 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
+ endstream endobj 1038 0 obj <</Subtype/Form/Length 262/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1033 0 R/Resources<</XObject<</Fm0 1037 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
/CS0 cs 0.196 0.322 0.616 scn
1 i
/GS0 gs
@@ -713,7 +715,7 @@ Q
q
/Fm0 Do
Q
- endstream endobj 952 0 obj <</Subtype/Form/Length 240/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 947 0 R/Resources<</XObject<</Fm0 951 0 R>>/ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
+ endstream endobj 1045 0 obj <</Subtype/Form/Length 240/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1040 0 R/Resources<</XObject<</Fm0 1044 0 R>>/ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
/CS0 cs 0.196 0.322 0.616 scn
1 i
/GS0 gs
@@ -728,7 +730,7 @@ Q
q
/Fm0 Do
Q
- endstream endobj 947 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 951 0 obj <</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 948 0 R/Resources<</XObject<</Fm0 950 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
+ endstream endobj 1040 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1044 0 obj <</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1041 0 R/Resources<</XObject<</Fm0 1043 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
q
189.876 496.023 m
189.876 501.023 l
@@ -747,7 +749,7 @@ q
/Fm0 Do
Q
Q
- endstream endobj 948 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 950 0 obj <</Subtype/Form/Length 11006/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 949 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
+ endstream endobj 1041 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1043 0 obj <</Subtype/Form/Length 11006/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1042 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[183.873 501.023 195.879 489.026]>>stream
/CS0 cs 0.2 0.325 0.624 scn
1 i
/GS0 gs
@@ -850,7 +852,7 @@ q 1 0 0 1 189.876 497.5073 cm
-1.093 -1.708 l
-1.262 -2.107 -1.291 -2.435 -1.188 -2.804 c
-1.126 -3.032 -0.727 -4.136 0.984 -3.565 c
-4.73 -2.315 2.784 0.034 2.453 0.246 c
+4.73 -2.315 2.784 0.034 2.453 0.247 c
1.442 0.896 0.101 0.218 0 0 c
0 3.516 l
3.312 3.516 6.003 0.834 6.003 -2.478 c
@@ -1129,7 +1131,7 @@ Q
q 1 0 0 1 191.5 495.7261 cm
0 0 m
-0.004 0.004 -0.533 0.573 -0.71 0.862 c
--0.568 0.875 -0.483 0.883 -0.265 0.809 c
+-0.568 0.875 -0.482 0.883 -0.264 0.809 c
-0.18 0.781 -0.083 0.699 -0.025 0.631 c
0.033 0.563 0.091 0.45 0.104 0.362 c
0.135 0.141 0.099 0.019 0.074 -0.062 c
@@ -1153,7 +1155,7 @@ q 1 0 0 1 189.876 501.0112 cm
0.15 0.006 0.046 -0.044 0 0 c
f
Q
- endstream endobj 949 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 940 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 944 0 obj <</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 941 0 R/Resources<</XObject<</Fm0 943 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
+ endstream endobj 1042 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1033 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1037 0 obj <</Subtype/Form/Length 482/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1034 0 R/Resources<</XObject<</Fm0 1036 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
q
184.836 446.278 m
184.836 462.278 l
@@ -1172,7 +1174,7 @@ q
/Fm0 Do
Q
Q
- endstream endobj 941 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 943 0 obj <</Subtype/Form/Length 13525/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 942 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
+ endstream endobj 1034 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1036 0 obj <</Subtype/Form/Length 13533/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1035 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[156.837 462.278 212.835 406.271]>>stream
/CS0 cs 0.208 0.337 0.655 scn
1 i
/GS0 gs
@@ -1199,7 +1201,7 @@ q 1 0 0 1 184.8359 451.4419 cm
6.606 -29.181 12.008 -23.781 11.999 -17.163 c
12.01 -10.555 6.607 -5.153 0 -5.164 c
0 -0.468 l
-0.316 -0.694 0.738 -0.996 1.055 -1.223 c
+0.316 -0.694 0.738 -0.997 1.055 -1.223 c
3.817 -3.661 7.459 -4.869 10 -7.617 c
12.018 -9.8 13.458 -12.461 14.279 -15.528 c
15.076 -18.507 16.901 -19.346 16.917 -19.348 c
@@ -1226,8 +1228,8 @@ q 1 0 0 1 184.8359 453.2891 cm
12.01 -12.402 6.607 -7 0 -7.011 c
0 -5.167 l
0.338 -5.201 0.788 -5.245 1.126 -5.278 c
-2.249 -5.476 12.143 -7.557 13.761 -19.538 c
-13.896 -20.531 13.436 -21.605 14.171 -22.516 c
+2.249 -5.476 12.144 -7.557 13.761 -19.538 c
+13.765 -19.565 14.171 -22.516 14.171 -22.516 c
14.636 -23.09 15.724 -23.507 16.459 -23.43 c
20.584 -22.993 26.416 -9.568 15.896 -1.312 c
7.943 4.929 0.035 0.084 0 0 c
@@ -1255,7 +1257,7 @@ q 1 0 0 1 184.8359 454.4082 cm
5.587 -8.118 13.156 -12.018 12.674 -22.551 c
12.559 -25.065 12.662 -26.483 12.98 -26.764 c
14.309 -27.938 23.357 -23.699 22.629 -14.042 c
-21.27 4.006 1.142 2.02 0 0 c
+21.269 4.004 1.142 2.019 0 0 c
0 7.87 l
15.462 7.87 27.999 -4.667 27.999 -20.129 c
27.999 -35.6 15.462 -48.137 0 -48.137 c
@@ -1274,7 +1276,7 @@ q 1 0 0 1 184.8359 455.3335 cm
-11.368 -29.209 -4.441 -35.048 3.701 -32.84 c
16.505 -28.457 l
19.639 -26.39 21.523 -23.894 22.614 -20.364 c
-24.61 -13.908 21.812 -4.74 13.674 -0.575 c
+24.61 -13.907 21.812 -4.74 13.674 -0.575 c
6.26 3.219 0.029 0.049 0 0 c
0 6.945 l
15.462 6.945 27.999 -5.592 27.999 -21.054 c
@@ -1325,7 +1327,7 @@ q 1 0 0 1 184.8359 457.5 cm
-3.111 -1.225 -7.25 -3.37 -10.633 -9.471 c
-11.685 -11.368 -15.021 -18.085 -13.796 -24.879 c
-12.453 -32.328 -5.461 -39.37 6.714 -37.227 c
-28.95 -33.313 28.976 -11.259 15.609 -2.301 c
+28.951 -33.313 28.976 -11.259 15.609 -2.301 c
7.856 2.895 0.038 0.056 0 0 c
0 4.778 l
15.462 4.778 27.999 -7.759 27.999 -23.221 c
@@ -1341,7 +1343,7 @@ q 1 0 0 1 184.8359 458.1108 cm
-0.285 -0.403 -1.085 -0.384 -1.55 -0.549 c
-2.14 -0.758 -7.426 -2.783 -11.14 -9.4 c
-12.536 -11.888 -15.643 -18.441 -14.343 -25.555 c
--13.274 -31.4 -7.567 -40.72 7.05 -38.576 c
+-13.275 -31.4 -7.567 -40.72 7.05 -38.576 c
28.069 -35.492 30.907 -13.131 16.17 -2.838 c
7.979 2.883 0.04 0.057 0 0 c
0 4.167 l
@@ -1375,8 +1377,8 @@ q 1 0 0 1 184.8359 459.2207 cm
-0.327 -0.44 -1.224 -0.37 -1.749 -0.528 c
-5.52 -1.667 -9.766 -5.26 -12.073 -9.267 c
-15.394 -15.036 -16.522 -20.933 -15.426 -26.792 c
--13.856 -35.181 -5.227 -43.018 7.675 -41.021 c
-29.388 -37.66 31.678 -13.959 16.092 -3.122 c
+-13.856 -35.181 -5.227 -43.019 7.675 -41.021 c
+29.387 -37.659 31.678 -13.959 16.092 -3.122 c
8.188 2.374 0.041 0.052 0 0 c
0 3.058 l
15.462 3.058 27.999 -9.479 27.999 -24.941 c
@@ -1423,11 +1425,11 @@ Q
0.153 0.251 0.482 scn
q 1 0 0 1 184.8359 460.6479 cm
0 0 m
--0.165 -0.201 -0.596 -0.119 -0.851 -0.169 c
+-0.165 -0.201 -0.596 -0.119 -0.852 -0.169 c
-6.63 -1.321 -11.086 -5.48 -13.33 -8.99 c
-17.823 -16.018 -17.959 -22.68 -17.283 -27.032 c
-15.528 -38.313 -5.353 -45.642 6.913 -44.456 c
-29.058 -42.316 33.218 -18.568 18.588 -5.674 c
+29.058 -42.316 33.217 -18.568 18.588 -5.674 c
9.722 2.142 0.051 0.062 0 0 c
0 1.63 l
15.462 1.63 27.999 -10.907 27.999 -26.369 c
@@ -1444,7 +1446,7 @@ q 1 0 0 1 184.8359 461.0591 cm
-5.333 -1.052 -10.598 -4.013 -13.752 -8.857 c
-18.474 -16.108 -18.606 -22.979 -17.885 -27.466 c
-16.272 -37.507 -7.1 -46.929 7.31 -45.507 c
-29.579 -43.31 33.524 -19.12 18.666 -5.999 c
+29.58 -43.31 33.524 -19.12 18.666 -5.999 c
9.679 1.938 0.05 0.061 0 0 c
0 1.219 l
15.462 1.219 27.999 -11.318 27.999 -26.78 c
@@ -1478,7 +1480,7 @@ q 1 0 0 1 184.8359 461.7397 cm
-5.616 -0.798 -11.203 -3.577 -14.553 -8.414 c
-20.526 -17.037 -19.484 -25.015 -19.142 -27.636 c
-17.325 -41.551 -4.721 -48.305 6.215 -47.597 c
-22.827 -46.52 31.84 -32.415 25.896 -16.796 c
+22.827 -46.52 31.839 -32.415 25.896 -16.796 c
27.251 -20.083 27.999 -23.685 27.999 -27.46 c
27.999 -42.931 15.462 -55.468 0 -55.468 c
-15.462 -55.468 -27.999 -42.931 -27.999 -27.46 c
@@ -1557,7 +1559,7 @@ Q
q 1 0 0 1 200.7622 436.103 cm
0 0 m
-1.706 2.422 -2.871 5.192 -4.806 7.466 c
--5.581 8.376 -6.334 9.141 -7.046 9.74 c
+-5.581 8.375 -6.334 9.141 -7.046 9.74 c
-7.103 9.788 -12.699 14.577 -12.706 14.929 c
-12.708 15.035 -10.925 16.753 -10.74 16.825 c
-10.058 17.086 -7.544 17.231 -6.875 17.166 c
@@ -1575,25 +1577,25 @@ q 1 0 0 1 200.8965 438.5967 cm
-5.844 7.601 -6.16 7.969 -6.419 8.224 c
-6.913 8.711 -7.551 9.382 -8.074 9.839 c
-9.724 11.281 -9.908 11.547 -9.911 11.595 c
--9.914 11.657 -8.495 13.252 -8.295 13.411 c
--8.132 13.541 -7.808 13.456 -7.601 13.433 c
--5.32 13.184 -2.962 12.927 -0.476 10.566 c
-2.531 7.709 2.783 5.143 2.904 3.91 c
+-9.914 11.655 -8.389 13.369 -8.295 13.411 c
+-7.711 13.674 -6.801 13.346 -6.164 13.276 c
+-2.962 12.927 -1.156 11.212 -0.476 10.566 c
+2.531 7.709 2.783 5.143 2.904 3.909 c
2.938 3.565 2.929 0.875 2.709 0.41 c
2.675 0.337 0.707 -0.875 0.645 -0.861 c
0.33 -0.793 0.182 -0.267 0 0 c
f
Q
0.224 0.361 0.694 scn
-q 1 0 0 1 199.981 442.126 cm
+q 1 0 0 1 199.9814 442.126 cm
0 0 m
--0.736 0.236 -1.075 1.45 -1.575 2.04 c
--3.148 3.894 -3.148 3.894 -3.896 4.678 c
--4.212 5.008 -4.839 5.354 -4.922 5.803 c
+-0.737 0.235 -1.076 1.45 -1.576 2.04 c
+-3.148 3.895 -3.148 3.895 -3.897 4.678 c
+-4.212 5.008 -4.84 5.354 -4.922 5.803 c
-4.014 7.981 l
--3.952 8.007 -1.426 7.15 0.33 5.083 c
-1.632 3.552 2.398 0.755 2.281 0.574 c
-1.906 -0.01 0.7 -0.197 0.037 0.011 c
+-3.953 8.007 -1.427 7.15 0.33 5.083 c
+1.631 3.552 2.397 0.755 2.281 0.574 c
+1.906 -0.01 0.699 -0.197 0.037 0.011 c
0.026 0.014 0.011 -0.003 0 0 c
f
Q
@@ -1632,7 +1634,7 @@ q 1 0 0 1 184.8359 462.2749 cm
0.701 -0.01 0.211 -0.214 0 0 c
f
Q
- endstream endobj 942 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 930 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 934 0 obj <</Subtype/Form/Length 477/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 931 0 R/Resources<</XObject<</Fm0 933 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
+ endstream endobj 1035 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1023 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1027 0 obj <</Subtype/Form/Length 477/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1024 0 R/Resources<</XObject<</Fm0 1026 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
q
315.165 487.275 m
315.165 492.275 l
@@ -1651,7 +1653,7 @@ q
/Fm0 Do
Q
Q
- endstream endobj 931 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 933 0 obj <</Subtype/Form/Length 11078/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 932 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
+ endstream endobj 1024 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1026 0 obj <</Subtype/Form/Length 11079/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1025 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[309.171 492.275 321.168 480.278]>>stream
/CS0 cs 0.2 0.325 0.624 scn
1 i
/GS0 gs
@@ -1789,7 +1791,7 @@ q 1 0 0 1 315.165 489.1035 cm
-0.734 -0.546 -0.993 -1.253 -1.244 -1.936 c
-1.353 -2.232 -1.496 -2.812 -1.238 -3.374 c
-0.612 -4.739 1.248 -4.146 1.803 -3.932 c
-4.138 -3.031 4.266 -0.308 2.51 0.419 c
+4.138 -3.031 4.265 -0.308 2.51 0.419 c
1.108 1 0.006 0.012 0 0 c
0 3.172 l
3.312 3.172 6.003 0.49 6.003 -2.831 c
@@ -1840,7 +1842,7 @@ q 1 0 0 1 315.165 489.7065 cm
-0.751 -0.537 -1.207 -1.436 -1.319 -1.735 c
-1.402 -1.96 -1.802 -3.124 -1.467 -3.945 c
-0.712 -5.795 1.956 -4.866 1.982 -4.855 c
-5.3 -3.58 5.175 -0.371 3.116 0.573 c
+5.299 -3.58 5.174 -0.371 3.116 0.573 c
1.411 1.355 0.007 0.017 0 0 c
0 2.569 l
3.312 2.569 6.003 -0.113 6.003 -3.434 c
@@ -1910,7 +1912,7 @@ q 1 0 0 1 315.165 491.083 cm
-1.149 -1.351 -1.614 -2.354 -1.616 -2.362 c
-2.165 -3.906 -2.034 -4.643 -1.834 -5.161 c
-0.959 -7.42 1.653 -7.023 2.585 -6.679 c
-3.892 -6.198 6.612 -5.195 5.552 -2.522 c
+3.892 -6.198 6.61 -5.196 5.552 -2.522 c
5.843 -3.227 6.003 -4 6.003 -4.811 c
6.003 -8.123 3.312 -10.805 0 -10.805 c
-3.312 -10.805 -5.994 -8.123 -5.994 -4.811 c
@@ -1995,7 +1997,7 @@ q 1 0 0 1 316.7451 486.4531 cm
-0.662 0.769 -0.836 0.916 -0.974 1.096 c
-1.233 1.432 -1.232 1.599 -1.232 1.6 c
-1.226 1.62 -0.028 2.446 0.591 1.368 c
-1.026 0.612 0.245 -0.132 0.233 -0.134 c
+1.026 0.611 0.245 -0.132 0.233 -0.134 c
0.153 -0.145 0.065 -0.047 0 0 c
f
Q
@@ -2058,7 +2060,7 @@ q 1 0 0 1 315.165 492.2632 cm
0.15 0.006 0.046 -0.044 0 0 c
f
Q
- endstream endobj 932 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 922 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 926 0 obj <</Subtype/Form/Length 473/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 923 0 R/Resources<</XObject<</Fm0 925 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
+ endstream endobj 1025 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1015 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1019 0 obj <</Subtype/Form/Length 473/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1016 0 R/Resources<</XObject<</Fm0 1018 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
q
323.67 445.774 m
323.67 461.774 l
@@ -2077,7 +2079,7 @@ q
/Fm0 Do
Q
Q
- endstream endobj 923 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 925 0 obj <</Subtype/Form/Length 13513/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 924 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
+ endstream endobj 1016 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1018 0 obj <</Subtype/Form/Length 13391/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1017 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[295.671 461.774 351.669 405.776]>>stream
/CS0 cs 0.208 0.337 0.655 scn
1 i
/GS0 gs
@@ -2122,7 +2124,7 @@ Q
q 1 0 0 1 323.6699 452.7832 cm
0 0 m
-0.297 -0.712 -1.488 -1.167 -1.738 -1.898 c
--1.989 -2.637 -2.004 -3.871 -1.531 -4.492 c
+-1.989 -2.637 -2.005 -3.871 -1.531 -4.492 c
-1.227 -4.891 -0.45 -4.943 0 -5.165 c
0 -7.009 l
-6.615 -7 -12.009 -12.397 -11.999 -19.008 c
@@ -2157,10 +2159,10 @@ q 1 0 0 1 323.6699 453.9038 cm
12.01 -13.521 6.607 -8.119 0 -8.129 c
0 -7.407 l
0.312 -7.427 0.727 -7.454 1.039 -7.474 c
-5.586 -8.118 13.155 -12.017 12.674 -22.547 c
+5.586 -8.118 13.154 -12.018 12.674 -22.547 c
12.56 -25.06 12.663 -26.477 12.982 -26.758 c
-14.31 -27.928 23.355 -23.682 22.629 -14.041 c
-21.271 4 1.142 2.018 0 0 c
+14.311 -27.928 23.356 -23.682 22.629 -14.041 c
+21.27 3.998 1.142 2.018 0 0 c
0 7.871 l
15.462 7.871 27.999 -4.667 27.999 -20.128 c
27.999 -35.59 15.462 -48.127 0 -48.127 c
@@ -2174,8 +2176,8 @@ q 1 0 0 1 323.6699 454.8291 cm
0 0 m
-0.223 -0.378 -0.896 -0.494 -1.28 -0.706 c
-3.988 -2.198 -4.356 -2.882 -7.222 -8.202 c
--10.978 -15.406 l
--12.035 -17.648 -12.409 -19.973 -12.123 -22.51 c
+-10.979 -15.406 l
+-12.035 -17.648 -12.409 -19.972 -12.123 -22.51 c
-11.368 -29.204 -4.441 -35.039 3.701 -32.831 c
16.504 -28.45 l
19.64 -26.383 21.524 -23.889 22.614 -20.364 c
@@ -2192,12 +2194,9 @@ Q
0.192 0.31 0.596 scn
q 1 0 0 1 323.6699 455.6289 cm
0 0 m
--0.174 -0.267 -0.682 -0.299 -0.974 -0.428 c
--3.272 -1.437 -6.368 -4.312 -7.598 -6.58 c
--13.391 -17.255 -13 -20.65 -12.686 -23.378 c
--12.045 -28.943 -6.307 -36.331 3.975 -34.516 c
-34.372 -29.149 23.201 -7.032 15.417 -1.844 c
-7.622 3.352 0.039 0.059 0 0 c
+-11.795 -5.181 -18.994 -27.783 -4.636 -33.729 c
+5.806 -38.053 30.469 -28.935 22.345 -10.09 c
+19.107 -2.58 10.176 3.509 0 0 c
0 6.146 l
15.462 6.146 27.999 -6.392 27.999 -21.854 c
27.999 -37.315 15.462 -49.853 0 -49.853 c
@@ -2263,8 +2262,8 @@ q 1 0 0 1 323.6699 458.1792 cm
-0.295 -0.407 -1.114 -0.365 -1.591 -0.521 c
-3.039 -0.995 -8.059 -3.066 -11.891 -9.807 c
-12.952 -11.675 -16.307 -18.377 -14.887 -26.189 c
--13.692 -32.762 -6.813 -41.824 7.243 -39.848 c
-28.686 -36.834 31.47 -13.846 16.374 -3.144 c
+-13.692 -32.762 -6.813 -41.823 7.243 -39.848 c
+28.687 -36.834 31.471 -13.847 16.374 -3.144 c
8.08 2.737 0.041 0.056 0 0 c
0 3.595 l
15.462 3.595 27.999 -8.942 27.999 -24.404 c
@@ -2281,7 +2280,7 @@ q 1 0 0 1 323.6699 458.7163 cm
-5.521 -1.665 -9.768 -5.259 -12.076 -9.267 c
-15.396 -15.033 -16.523 -20.929 -15.426 -26.791 c
-13.856 -35.175 -5.227 -43.009 7.675 -41.011 c
-29.381 -37.65 31.673 -13.956 16.092 -3.122 c
+29.382 -37.65 31.673 -13.956 16.092 -3.122 c
8.188 2.374 0.041 0.052 0 0 c
0 3.058 l
15.462 3.058 27.999 -9.479 27.999 -24.941 c
@@ -2295,7 +2294,7 @@ Q
q 1 0 0 1 323.6699 459.2314 cm
0 0 m
-0.315 -0.414 -1.17 -0.321 -1.672 -0.458 c
--5.63 -1.542 -10.188 -5.222 -12.512 -9.206 c
+-5.63 -1.542 -10.189 -5.222 -12.512 -9.206 c
-13.797 -11.409 -17.707 -18.115 -15.958 -27.369 c
-14.312 -36.085 -5.369 -44.227 7.962 -42.147 c
29.823 -38.738 32.256 -15.066 16.713 -3.752 c
@@ -2382,7 +2381,7 @@ q 1 0 0 1 323.6699 461.2358 cm
-0.366 -0.422 -1.291 -0.183 -1.844 -0.262 c
-5.618 -0.797 -11.206 -3.577 -14.557 -8.414 c
-20.527 -17.033 -19.484 -25.013 -19.142 -27.635 c
--17.325 -41.544 -4.721 -48.296 6.215 -47.587 c
+-17.325 -41.544 -4.721 -48.297 6.215 -47.587 c
22.825 -46.511 31.838 -32.41 25.896 -16.796 c
27.251 -20.083 27.999 -23.685 27.999 -27.46 c
27.999 -42.922 15.462 -55.459 0 -55.459 c
@@ -2438,8 +2437,8 @@ Q
0.122 0.2 0.384 scn
q 1 0 0 1 319.437 461.4541 cm
0 0 m
--22.53 -4.549 -23.53 -35.024 -6.331 -46.258 c
-6.847 -54.865 25.642 -52.171 31.071 -35.682 c
+-22.531 -4.549 -23.531 -35.025 -6.331 -46.258 c
+6.847 -54.864 25.642 -52.17 31.071 -35.682 c
27.627 -47.245 16.914 -55.678 4.233 -55.678 c
-11.238 -55.678 -23.766 -43.141 -23.766 -27.679 c
-23.766 -13.386 -13.062 -1.593 0.777 0.109 c
@@ -2462,20 +2461,20 @@ Q
q 1 0 0 1 339.5962 435.5991 cm
0 0 m
-1.706 2.422 -2.871 5.192 -4.806 7.466 c
--5.581 8.376 -6.334 9.141 -7.046 9.74 c
--7.103 9.788 -12.699 14.576 -12.705 14.929 c
+-5.581 8.375 -6.334 9.141 -7.046 9.74 c
+-7.103 9.788 -12.699 14.577 -12.705 14.929 c
-12.707 15.035 -10.925 16.753 -10.74 16.825 c
-10.058 17.086 -7.544 17.231 -6.875 17.166 c
-5.111 16.992 -2.438 16.241 0.275 13.649 c
3.79 10.293 4.269 6.382 4.332 5.263 c
-4.608 0.362 1.816 -1.552 1.125 -1.426 c
+4.608 0.362 1.816 -1.553 1.125 -1.426 c
0.589 -1.328 0.314 -0.445 0 0 c
f
Q
0.22 0.353 0.682 scn
q 1 0 0 1 339.7305 438.0928 cm
0 0 m
--1.971 2.884 -3.056 4.472 -4.87 6.595 c
+-1.97 2.883 -3.055 4.471 -4.87 6.595 c
-5.072 6.832 -5.375 7.116 -5.591 7.34 c
-5.844 7.601 -6.16 7.969 -6.419 8.224 c
-6.913 8.711 -7.551 9.382 -8.074 9.839 c
@@ -2483,29 +2482,29 @@ q 1 0 0 1 339.7305 438.0928 cm
-9.914 11.657 -8.495 13.252 -8.295 13.411 c
-8.132 13.541 -7.808 13.456 -7.601 13.433 c
-5.32 13.184 -2.962 12.927 -0.476 10.566 c
-2.531 7.709 2.783 5.143 2.904 3.91 c
+2.531 7.709 2.783 5.143 2.904 3.909 c
2.938 3.565 2.929 0.875 2.709 0.41 c
2.675 0.337 0.707 -0.875 0.645 -0.861 c
0.33 -0.793 0.182 -0.267 0 0 c
f
Q
0.224 0.361 0.694 scn
-q 1 0 0 1 338.8149 441.6221 cm
+q 1 0 0 1 338.8154 441.6221 cm
0 0 m
--0.736 0.235 -1.075 1.45 -1.575 2.04 c
--3.148 3.894 -3.148 3.894 -3.896 4.678 c
--4.212 5.008 -4.839 5.354 -4.922 5.803 c
+-0.737 0.235 -1.076 1.45 -1.576 2.04 c
+-3.148 3.894 -3.148 3.894 -3.897 4.678 c
+-4.212 5.008 -4.84 5.354 -4.922 5.803 c
-4.014 7.981 l
--3.952 8.007 -1.426 7.15 0.33 5.083 c
-1.632 3.552 2.398 0.755 2.281 0.574 c
-1.906 -0.01 0.7 -0.197 0.037 0.011 c
+-3.953 8.007 -1.427 7.15 0.33 5.083 c
+1.631 3.552 2.397 0.755 2.281 0.574 c
+1.906 -0.01 0.699 -0.197 0.037 0.011 c
0.026 0.014 0.011 -0.003 0 0 c
f
Q
0.141 0.227 0.439 scn
q 1 0 0 1 335.7192 459.0469 cm
0 0 m
--5.215 2.39 -9.179 2.425 -12.049 2.189 c
+-5.275 2.417 -9.403 2.407 -12.049 2.189 c
-12.049 2.728 l
-6.604 2.728 -1.522 1.173 2.777 -1.517 c
2.232 -1.205 1.506 -0.789 0.961 -0.477 c
@@ -2524,7 +2523,7 @@ Q
0.133 0.216 0.412 scn
q 1 0 0 1 327.9009 461.4541 cm
0 0 m
--2.557 0.263 -2.657 0.273 -4.231 0.228 c
+-1.314 0.178 -2.48 0.278 -4.231 0.228 c
-4.231 0.32 l
-2.431 0.32 -0.671 0.15 1.035 -0.174 c
0.724 -0.122 0.312 -0.042 0 0 c
@@ -2537,7 +2536,7 @@ q 1 0 0 1 323.6699 461.771 cm
0.701 -0.01 0.211 -0.214 0 0 c
f
Q
- endstream endobj 924 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 912 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 916 0 obj <</Subtype/Form/Length 478/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 913 0 R/Resources<</XObject<</Fm0 915 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
+ endstream endobj 1017 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1005 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1009 0 obj <</Subtype/Form/Length 478/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1006 0 R/Resources<</XObject<</Fm0 1008 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
q
327.999 212.271 m
327.999 217.271 l
@@ -2556,8 +2555,8 @@ q
/Fm0 Do
Q
Q
- endstream endobj 913 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 915 0 obj <</Subtype/Form/Length 11074/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 914 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
-/CS0 cs 0.624 0.2 0.2 scn
+ endstream endobj 1006 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1008 0 obj <</Subtype/Form/Length 11068/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1007 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[321.996 217.271 334.002 205.274]>>stream
+/CS0 cs 0.294 0.494 0.133 scn
1 i
/GS0 gs
q 1 0 0 1 327.999 212.2715 cm
@@ -2588,7 +2587,7 @@ q 1 0 0 1 327.999 213.1963 cm
0.142 -0.55 0.184 -0.536 0.21 -0.549 c
1.046 -1.473 l
1.441 -2.153 1.79 -2.106 1.805 -2.104 c
-2.058 -2.064 3.185 -0.619 1.901 0.191 c
+2.057 -2.064 3.185 -0.619 1.901 0.191 c
1.598 0.383 1.275 0.409 1.132 0.396 c
0 0 l
0 4.075 l
@@ -2599,7 +2598,7 @@ q 1 0 0 1 327.999 213.1963 cm
0 0 l
f
Q
-0.612 0.196 0.196 scn
+0.286 0.482 0.133 scn
q 1 0 0 1 327.999 213.3379 cm
0 0 m
-0.03 -0.092 -0.164 -0.17 -0.185 -0.265 c
@@ -2620,7 +2619,7 @@ q 1 0 0 1 327.999 213.3379 cm
0 0 l
f
Q
-0.596 0.192 0.192 scn
+0.278 0.471 0.129 scn
q 1 0 0 1 327.999 213.4785 cm
0 0 m
-0.294 -0.83 -1.296 -1.345 -1.079 -2.404 c
@@ -2637,7 +2636,7 @@ q 1 0 0 1 327.999 213.4785 cm
0 0 l
f
Q
-0.58 0.188 0.188 scn
+0.275 0.459 0.125 scn
q 1 0 0 1 327.999 213.6182 cm
0 0 m
-0.352 -0.866 -1.383 -1.428 -1.146 -2.558 c
@@ -2653,7 +2652,7 @@ q 1 0 0 1 327.999 213.6182 cm
0 0 l
f
Q
-0.569 0.18 0.18 scn
+0.267 0.447 0.122 scn
q 1 0 0 1 327.999 213.7549 cm
0 0 m
-0.193 -0.417 -0.585 -0.691 -0.795 -1.098 c
@@ -2670,7 +2669,7 @@ q 1 0 0 1 327.999 213.7549 cm
0 0 l
f
Q
-0.553 0.176 0.176 scn
+0.259 0.439 0.118 scn
q 1 0 0 1 327.999 213.9082 cm
0 0 m
-0.013 -0.025 -0.053 -0.04 -0.076 -0.058 c
@@ -2687,7 +2686,7 @@ q 1 0 0 1 327.999 213.9082 cm
0 0 l
f
Q
-0.541 0.173 0.173 scn
+0.255 0.427 0.118 scn
q 1 0 0 1 327.999 214.0996 cm
0 0 m
-0.034 -0.067 -0.142 -0.105 -0.203 -0.15 c
@@ -2704,7 +2703,7 @@ q 1 0 0 1 327.999 214.0996 cm
0 0 l
f
Q
-0.525 0.169 0.169 scn
+0.247 0.416 0.114 scn
q 1 0 0 1 327.999 214.2871 cm
0 0 m
-0.037 -0.069 -0.152 -0.104 -0.217 -0.147 c
@@ -2721,7 +2720,7 @@ q 1 0 0 1 327.999 214.2871 cm
0 0 l
f
Q
-0.51 0.165 0.165 scn
+0.239 0.404 0.11 scn
q 1 0 0 1 327.999 214.4717 cm
0 0 m
-0.176 -0.317 -0.542 -0.437 -0.748 -0.722 c
@@ -2738,7 +2737,7 @@ q 1 0 0 1 327.999 214.4717 cm
0 0 l
f
Q
-0.498 0.161 0.161 scn
+0.235 0.392 0.106 scn
q 1 0 0 1 327.999 214.7031 cm
0 0 m
-0.06 -0.133 -0.265 -0.211 -0.386 -0.291 c
@@ -2755,15 +2754,15 @@ q 1 0 0 1 327.999 214.7031 cm
0 0 l
f
Q
-0.482 0.153 0.153 scn
+0.227 0.38 0.106 scn
q 1 0 0 1 327.999 214.9854 cm
0 0 m
-0.04 -0.083 -0.167 -0.135 -0.239 -0.193 c
-0.736 -0.594 -1.131 -1.171 -1.412 -1.908 c
-1.719 -2.715 -1.736 -3.694 -1.577 -4.139 c
-0.858 -6.132 1.881 -5.304 1.908 -5.295 c
-5.597 -4.044 5.759 -0.555 3.075 0.691 c
-1.838 1.267 0.163 0.34 0 0 c
+5.598 -4.044 5.76 -0.555 3.075 0.691 c
+1.838 1.266 0.163 0.34 0 0 c
0 2.286 l
3.312 2.286 6.003 -0.396 6.003 -3.708 c
6.003 -7.02 3.312 -9.711 0 -9.711 c
@@ -2772,7 +2771,7 @@ q 1 0 0 1 327.999 214.9854 cm
0 0 l
f
Q
-0.467 0.149 0.149 scn
+0.22 0.369 0.102 scn
q 1 0 0 1 327.999 215.2715 cm
0 0 m
-0.045 -0.106 -0.21 -0.167 -0.302 -0.236 c
@@ -2789,7 +2788,7 @@ q 1 0 0 1 327.999 215.2715 cm
0 0 l
f
Q
-0.455 0.145 0.145 scn
+0.212 0.361 0.098 scn
q 1 0 0 1 327.999 215.6543 cm
0 0 m
-0.163 -0.361 -0.542 -0.515 -0.779 -0.805 c
@@ -2807,7 +2806,7 @@ q 1 0 0 1 327.999 215.6543 cm
0 0 l
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 327.999 216.0791 cm
0 0 m
-0.128 -0.296 -0.442 -0.404 -0.638 -0.631 c
@@ -2823,7 +2822,7 @@ q 1 0 0 1 327.999 216.0791 cm
0 0 l
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 327.999 216.5439 cm
0 0 m
-0.037 -0.078 -0.154 -0.129 -0.22 -0.185 c
@@ -2838,7 +2837,7 @@ q 1 0 0 1 327.999 216.5439 cm
0 0 l
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 327.999 216.9863 cm
0 0 m
-0.038 -0.066 -0.155 -0.09 -0.221 -0.129 c
@@ -2853,7 +2852,7 @@ q 1 0 0 1 327.999 216.9863 cm
0 0 l
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 327.999 217.2598 cm
0 0 m
-0.043 -0.053 -0.154 -0.029 -0.221 -0.042 c
@@ -2867,7 +2866,7 @@ q 1 0 0 1 327.999 217.2598 cm
0 0 l
f
Q
-0.384 0.122 0.122 scn
+0.18 0.302 0.082 scn
q 1 0 0 1 327.0938 217.1953 cm
0 0 m
-1.738 -0.59 -1.75 -4.505 -1.75 -4.545 c
@@ -2879,7 +2878,7 @@ q 1 0 0 1 327.0938 217.1953 cm
0.115 0.021 0.049 0.013 0 0 c
f
Q
-0.369 0.118 0.118 scn
+0.173 0.29 0.078 scn
q 1 0 0 1 325.7642 216.7715 cm
0 0 m
-1.064 -0.938 -0.813 -4.867 -0.541 -5.6 c
@@ -2893,10 +2892,10 @@ q 1 0 0 1 325.7642 216.7715 cm
0.161 0.102 0.061 0.054 0 0 c
f
Q
-0.639 0.204 0.204 scn
+0.302 0.506 0.137 scn
q 1 0 0 1 329.5791 211.4561 cm
0 0 m
--0.096 0.068 -0.096 0.068 -0.519 0.587 c
+-0.095 0.068 -0.095 0.068 -0.519 0.587 c
-0.661 0.762 -0.834 0.909 -0.973 1.089 c
-1.125 1.286 -1.231 1.594 y
-1.226 1.612 -0.029 2.438 0.592 1.362 c
@@ -2904,7 +2903,7 @@ q 1 0 0 1 329.5791 211.4561 cm
0.153 -0.144 0.065 -0.047 0 0 c
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 330.5688 216.6631 cm
0 0 m
-1.295 0.462 -2.254 -0.325 -2.57 -0.584 c
@@ -2914,7 +2913,7 @@ q 1 0 0 1 330.5688 216.6631 cm
0.219 -0.095 0.096 -0.034 0 0 c
f
Q
-0.655 0.208 0.208 scn
+0.306 0.518 0.141 scn
q 1 0 0 1 329.6191 211.708 cm
0 0 m
-0.335 0.354 l
@@ -2925,7 +2924,7 @@ q 1 0 0 1 329.6191 211.708 cm
0.106 -0.131 0.048 -0.039 0 0 c
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 329.7661 216.9941 cm
0 0 m
-0.649 0.12 -1.161 -0.01 -1.767 -0.45 c
@@ -2935,7 +2934,7 @@ q 1 0 0 1 329.7661 216.9941 cm
0.02 -0.005 0.009 -0.002 0 0 c
f
Q
-0.667 0.216 0.216 scn
+0.314 0.525 0.145 scn
q 1 0 0 1 329.623 211.9746 cm
0 0 m
-0.004 0.004 -0.533 0.572 -0.71 0.861 c
@@ -2946,7 +2945,7 @@ q 1 0 0 1 329.623 211.9746 cm
0.052 -0.044 0.021 -0.021 0 0 c
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 328.9043 217.1943 cm
0 0 m
-0.314 -0.006 -0.487 -0.009 -0.905 -0.208 c
@@ -2955,7 +2954,7 @@ q 1 0 0 1 328.9043 217.1943 cm
0.157 -0.021 0.068 -0.004 0 0 c
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 327.999 217.2598 cm
0 0 m
0 0.012 l
@@ -2963,7 +2962,7 @@ q 1 0 0 1 327.999 217.2598 cm
0.15 0.006 0.046 -0.045 0 0 c
f
Q
- endstream endobj 914 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 905 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 909 0 obj <</Subtype/Form/Length 475/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 906 0 R/Resources<</XObject<</Fm0 908 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
+ endstream endobj 1007 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 998 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1002 0 obj <</Subtype/Form/Length 475/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 999 0 R/Resources<</XObject<</Fm0 1001 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
q
334.002 303.277 m
334.002 319.277 l
@@ -2982,8 +2981,8 @@ q
/Fm0 Do
Q
Q
- endstream endobj 906 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 908 0 obj <</Subtype/Form/Length 13488/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 907 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
-/CS0 cs 0.655 0.208 0.208 scn
+ endstream endobj 999 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1001 0 obj <</Subtype/Form/Length 13469/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 1000 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[306.003 319.277 362.001 263.279]>>stream
+/CS0 cs 0.306 0.518 0.141 scn
1 i
/GS0 gs
q 1 0 0 1 334.002 303.2773 cm
@@ -3023,7 +3022,7 @@ q 1 0 0 1 334.002 308.4409 cm
0 0 l
f
Q
-0.639 0.204 0.204 scn
+0.302 0.506 0.137 scn
q 1 0 0 1 334.002 310.2881 cm
0 0 m
-0.296 -0.712 -1.487 -1.168 -1.735 -1.898 c
@@ -3049,7 +3048,7 @@ q 1 0 0 1 334.002 310.2881 cm
0 0 l
f
Q
-0.624 0.2 0.2 scn
+0.294 0.494 0.133 scn
q 1 0 0 1 334.002 311.4072 cm
0 0 m
-0.627 -1.109 -1.866 -1.525 -2.708 -2.391 c
@@ -3064,7 +3063,7 @@ q 1 0 0 1 334.002 311.4072 cm
0.312 -7.428 0.727 -7.455 1.039 -7.475 c
5.587 -8.118 13.155 -12.018 12.674 -22.55 c
12.559 -25.063 12.663 -26.479 12.981 -26.762 c
-14.31 -27.933 23.356 -23.689 22.629 -14.042 c
+14.31 -27.933 23.356 -23.69 22.629 -14.042 c
21.27 4.006 1.142 2.02 0 0 c
0 7.87 l
15.462 7.87 27.999 -4.667 27.999 -20.129 c
@@ -3074,12 +3073,12 @@ q 1 0 0 1 334.002 311.4072 cm
0 0 l
f
Q
-0.612 0.196 0.196 scn
+0.286 0.482 0.133 scn
q 1 0 0 1 334.002 312.3325 cm
0 0 m
-0.223 -0.377 -0.896 -0.494 -1.279 -0.706 c
-3.984 -2.198 -4.352 -2.882 -7.218 -8.204 c
--10.977 -15.407 l
+-10.978 -15.407 l
-12.034 -17.649 -12.409 -19.973 -12.123 -22.511 c
-11.368 -29.203 -4.44 -35.038 3.702 -32.832 c
16.504 -28.455 l
@@ -3094,7 +3093,7 @@ q 1 0 0 1 334.002 312.3325 cm
0 0 l
f
Q
-0.596 0.192 0.192 scn
+0.278 0.471 0.129 scn
q 1 0 0 1 334.002 313.1323 cm
0 0 m
-0.174 -0.267 -0.682 -0.3 -0.974 -0.428 c
@@ -3111,14 +3110,14 @@ q 1 0 0 1 334.002 313.1323 cm
0 0 l
f
Q
-0.58 0.188 0.188 scn
+0.275 0.459 0.125 scn
q 1 0 0 1 334.002 313.833 cm
0 0 m
-0.26 -0.393 -1.01 -0.429 -1.443 -0.612 c
-4.281 -1.817 -7.531 -4.969 -9.346 -8.278 c
-13.499 -15.849 -13.757 -21.087 -13.243 -24.146 c
-12.334 -29.559 -7.254 -38.113 6.021 -35.853 c
-29.653 -31.827 27.567 -10.229 15.691 -2.188 c
+29.652 -31.827 27.567 -10.229 15.691 -2.188 c
7.725 3.206 0.039 0.058 0 0 c
0 5.444 l
15.462 5.444 27.999 -7.093 27.999 -22.555 c
@@ -3128,7 +3127,7 @@ q 1 0 0 1 334.002 313.833 cm
0 0 l
f
Q
-0.569 0.18 0.18 scn
+0.267 0.447 0.122 scn
q 1 0 0 1 334.002 314.499 cm
0 0 m
-0.27 -0.397 -1.042 -0.411 -1.488 -0.586 c
@@ -3145,7 +3144,7 @@ q 1 0 0 1 334.002 314.499 cm
0 0 l
f
Q
-0.553 0.176 0.176 scn
+0.259 0.439 0.118 scn
q 1 0 0 1 334.002 315.1099 cm
0 0 m
-0.285 -0.403 -1.085 -0.384 -1.55 -0.549 c
@@ -3162,14 +3161,14 @@ q 1 0 0 1 334.002 315.1099 cm
0 0 l
f
Q
-0.541 0.173 0.173 scn
+0.255 0.427 0.118 scn
q 1 0 0 1 334.002 315.6826 cm
0 0 m
-0.294 -0.407 -1.113 -0.365 -1.59 -0.521 c
-3.037 -0.996 -8.057 -3.068 -11.887 -9.807 c
-12.95 -11.677 -16.306 -18.383 -14.886 -26.191 c
-13.691 -32.763 -6.811 -41.823 7.247 -39.848 c
-28.689 -36.835 31.471 -13.847 16.374 -3.144 c
+28.69 -36.835 31.472 -13.848 16.374 -3.144 c
8.08 2.736 0.041 0.056 0 0 c
0 3.595 l
15.462 3.595 27.999 -8.942 27.999 -24.404 c
@@ -3179,7 +3178,7 @@ q 1 0 0 1 334.002 315.6826 cm
0 0 l
f
Q
-0.525 0.169 0.169 scn
+0.247 0.416 0.114 scn
q 1 0 0 1 334.002 316.2197 cm
0 0 m
-0.327 -0.44 -1.224 -0.37 -1.749 -0.528 c
@@ -3196,7 +3195,7 @@ q 1 0 0 1 334.002 316.2197 cm
0 0 l
f
Q
-0.51 0.165 0.165 scn
+0.239 0.404 0.11 scn
q 1 0 0 1 334.002 316.7344 cm
0 0 m
-0.315 -0.413 -1.169 -0.321 -1.671 -0.458 c
@@ -3213,7 +3212,7 @@ q 1 0 0 1 334.002 316.7344 cm
0 0 l
f
Q
-0.498 0.161 0.161 scn
+0.235 0.392 0.106 scn
q 1 0 0 1 334.002 317.207 cm
0 0 m
-0.326 -0.417 -1.197 -0.297 -1.71 -0.424 c
@@ -3230,14 +3229,14 @@ q 1 0 0 1 334.002 317.207 cm
0 0 l
f
Q
-0.482 0.153 0.153 scn
+0.227 0.38 0.106 scn
q 1 0 0 1 334.002 317.647 cm
0 0 m
--0.165 -0.201 -0.596 -0.119 -0.851 -0.169 c
+-0.165 -0.201 -0.596 -0.119 -0.852 -0.169 c
-6.63 -1.321 -11.086 -5.48 -13.33 -8.99 c
-17.824 -16.019 -17.96 -22.681 -17.283 -27.032 c
--15.527 -38.307 -5.35 -45.631 6.918 -44.447 c
-29.057 -42.308 33.215 -18.565 18.588 -5.674 c
+-15.528 -38.307 -5.35 -45.631 6.918 -44.447 c
+29.057 -42.308 33.214 -18.565 18.588 -5.674 c
9.722 2.142 0.051 0.062 0 0 c
0 1.63 l
15.462 1.63 27.999 -10.907 27.999 -26.369 c
@@ -3247,7 +3246,7 @@ q 1 0 0 1 334.002 317.647 cm
0 0 l
f
Q
-0.467 0.149 0.149 scn
+0.22 0.369 0.102 scn
q 1 0 0 1 334.002 318.0581 cm
0 0 m
-0.345 -0.419 -1.243 -0.245 -1.775 -0.35 c
@@ -3264,7 +3263,7 @@ q 1 0 0 1 334.002 318.0581 cm
0 0 l
f
Q
-0.455 0.145 0.145 scn
+0.212 0.361 0.098 scn
q 1 0 0 1 334.002 318.4131 cm
0 0 m
-0.359 -0.424 -1.279 -0.213 -1.827 -0.305 c
@@ -3281,7 +3280,7 @@ q 1 0 0 1 334.002 318.4131 cm
0 0 l
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 334.002 318.7388 cm
0 0 m
-0.366 -0.422 -1.29 -0.183 -1.842 -0.262 c
@@ -3296,7 +3295,7 @@ q 1 0 0 1 334.002 318.7388 cm
0 0 l
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 334.002 318.9941 cm
0 0 m
-0.38 -0.425 -1.322 -0.147 -1.889 -0.211 c
@@ -3311,7 +3310,7 @@ q 1 0 0 1 334.002 318.9941 cm
0 0 l
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 334.002 319.1851 cm
0 0 m
-0.389 -0.421 -1.333 -0.109 -1.905 -0.156 c
@@ -3326,7 +3325,7 @@ q 1 0 0 1 334.002 319.1851 cm
0 0 l
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 334.002 319.2739 cm
0 0 m
-0.403 -0.423 -1.362 -0.067 -1.945 -0.096 c
@@ -3340,19 +3339,18 @@ q 1 0 0 1 334.002 319.2739 cm
0 0 l
f
Q
-0.384 0.122 0.122 scn
+0.18 0.302 0.082 scn
q 1 0 0 1 329.771 318.957 cm
0 0 m
--22.131 -3.785 -23.922 -33.441 -7.507 -45.461 c
-5.397 -54.909 25.482 -52.656 31.069 -35.688 c
+-22.534 -4.552 -23.533 -35.028 -6.33 -46.26 c
+6.848 -54.863 25.642 -52.17 31.069 -35.688 c
27.625 -47.252 16.911 -55.678 4.231 -55.678 c
-11.231 -55.678 -23.768 -43.149 -23.768 -27.679 c
-23.768 -13.386 -13.055 -1.592 0.778 0.109 c
-0.778 0.109 l
-0.545 0.077 0.232 0.04 0 0 c
+0.544 0.077 0.232 0.04 0 0 c
f
Q
-0.369 0.118 0.118 scn
+0.173 0.29 0.078 scn
q 1 0 0 1 321.978 316.4971 cm
0 0 m
-16.565 -9.063 -17.347 -40.195 9.314 -48.713 c
@@ -3364,21 +3362,21 @@ q 1 0 0 1 321.978 316.4971 cm
1.31 0.61 0.543 0.297 0 0 c
f
Q
-0.667 0.216 0.216 scn
-q 1 0 0 1 349.9287 293.1025 cm
+0.314 0.525 0.145 scn
+q 1 0 0 1 349.9282 293.1025 cm
0 0 m
--1.706 2.422 -2.872 5.191 -4.807 7.466 c
--5.581 8.375 -6.334 9.14 -7.046 9.739 c
--7.103 9.787 -12.7 14.576 -12.706 14.928 c
--12.708 15.034 -10.926 16.753 -10.74 16.824 c
--10.059 17.085 -7.544 17.231 -6.876 17.165 c
--5.112 16.991 -2.439 16.24 0.274 13.649 c
+-1.706 2.422 -2.871 5.191 -4.806 7.466 c
+-5.58 8.375 -6.333 9.14 -7.046 9.739 c
+-7.103 9.787 -12.7 14.578 -12.706 14.928 c
+-12.708 15.034 -10.925 16.753 -10.74 16.824 c
+-10.058 17.085 -7.544 17.231 -6.875 17.165 c
+-5.111 16.991 -2.438 16.24 0.275 13.649 c
3.79 10.292 4.269 6.381 4.332 5.263 c
-4.607 0.361 1.816 -1.553 1.124 -1.426 c
-0.588 -1.328 0.313 -0.446 0 0 c
+4.608 0.361 1.816 -1.553 1.125 -1.426 c
+0.589 -1.328 0.314 -0.446 0 0 c
f
Q
-0.682 0.22 0.22 scn
+0.322 0.537 0.145 scn
q 1 0 0 1 350.0625 295.5957 cm
0 0 m
-1.97 2.883 -3.056 4.472 -4.87 6.595 c
@@ -3386,29 +3384,29 @@ q 1 0 0 1 350.0625 295.5957 cm
-5.844 7.601 -6.16 7.969 -6.419 8.224 c
-6.913 8.711 -7.551 9.382 -8.074 9.839 c
-9.724 11.281 -9.908 11.547 -9.911 11.595 c
--9.914 11.657 -8.495 13.252 -8.295 13.411 c
--8.132 13.541 -7.808 13.456 -7.601 13.433 c
--5.32 13.184 -2.962 12.927 -0.476 10.566 c
-2.531 7.709 2.783 5.143 2.904 3.91 c
+-9.914 11.655 -8.389 13.369 -8.295 13.411 c
+-7.711 13.674 -6.801 13.346 -6.164 13.276 c
+-2.962 12.927 -1.156 11.212 -0.476 10.566 c
+2.531 7.709 2.783 5.143 2.904 3.909 c
2.938 3.565 2.929 0.875 2.709 0.41 c
2.675 0.337 0.707 -0.874 0.645 -0.861 c
0.33 -0.793 0.182 -0.267 0 0 c
f
Q
-0.694 0.224 0.224 scn
-q 1 0 0 1 349.147 299.125 cm
+0.325 0.549 0.149 scn
+q 1 0 0 1 349.1475 299.125 cm
0 0 m
--0.736 0.236 -1.075 1.45 -1.575 2.04 c
--3.148 3.894 -3.148 3.894 -3.896 4.678 c
--4.212 5.008 -4.839 5.354 -4.922 5.803 c
+-0.737 0.235 -1.076 1.45 -1.576 2.04 c
+-3.148 3.894 -3.148 3.894 -3.897 4.678 c
+-4.212 5.008 -4.84 5.354 -4.922 5.803 c
-4.014 7.981 l
--3.952 8.007 -1.426 7.15 0.33 5.083 c
-1.632 3.552 2.398 0.755 2.281 0.574 c
-1.906 -0.01 0.7 -0.197 0.037 0.011 c
+-3.953 8.007 -1.427 7.15 0.33 5.083 c
+1.631 3.552 2.397 0.755 2.281 0.574 c
+1.906 -0.01 0.699 -0.197 0.037 0.011 c
0.026 0.014 0.011 -0.003 0 0 c
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 346.0513 316.5498 cm
0 0 m
-5.275 2.417 -9.403 2.407 -12.049 2.189 c
@@ -3418,7 +3416,7 @@ q 1 0 0 1 346.0513 316.5498 cm
0.673 -0.334 0.292 -0.134 0 0 c
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 342.2651 318.0342 cm
0 0 m
-3.078 0.794 -4.478 1.111 -8.263 0.96 c
@@ -3427,7 +3425,7 @@ q 1 0 0 1 342.2651 318.0342 cm
0.981 -0.329 0.425 -0.126 0 0 c
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 338.2329 318.957 cm
0 0 m
-2.557 0.263 -2.657 0.273 -4.231 0.228 c
@@ -3436,14 +3434,14 @@ q 1 0 0 1 338.2329 318.957 cm
0.724 -0.122 0.312 -0.042 0 0 c
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 334.002 319.2739 cm
0 0 m
0.335 0.003 0.669 -0.002 1.001 -0.014 c
0.701 -0.01 0.211 -0.214 0 0 c
f
Q
- endstream endobj 907 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 895 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 899 0 obj <</Subtype/Form/Length 481/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 896 0 R/Resources<</XObject<</Fm0 898 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
+ endstream endobj 1000 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 988 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 992 0 obj <</Subtype/Form/Length 481/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 989 0 R/Resources<</XObject<</Fm0 991 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
q
186.627 218.274 m
186.627 223.274 l
@@ -3462,8 +3460,8 @@ q
/Fm0 Do
Q
Q
- endstream endobj 896 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 898 0 obj <</Subtype/Form/Length 11026/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 897 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
-/CS0 cs 0.624 0.2 0.2 scn
+ endstream endobj 989 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 991 0 obj <</Subtype/Form/Length 11020/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 990 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[180.624 223.274 192.621 211.277]>>stream
+/CS0 cs 0.294 0.494 0.133 scn
1 i
/GS0 gs
q 1 0 0 1 186.627 218.2744 cm
@@ -3505,14 +3503,14 @@ q 1 0 0 1 186.627 219.1992 cm
0 0 l
f
Q
-0.612 0.196 0.196 scn
+0.286 0.482 0.133 scn
q 1 0 0 1 186.627 219.3418 cm
0 0 m
-0.03 -0.093 -0.164 -0.171 -0.185 -0.266 c
-0.222 -0.434 -0.125 -0.678 -0.187 -0.838 c
-0.188 -0.839 -0.237 -0.941 -0.403 -1.05 c
-1.157 -1.54 -1.045 -2.159 -0.993 -2.338 c
--0.813 -2.951 -0.139 -3.261 0.448 -2.999 c
+-0.812 -2.951 -0.139 -3.261 0.448 -2.999 c
0.646 -2.911 0.784 -2.775 0.866 -2.694 c
1.137 -2.427 1.542 -2.629 1.829 -2.42 c
2.42 -1.988 2.555 -1.604 2.619 -1.418 c
@@ -3526,7 +3524,7 @@ q 1 0 0 1 186.627 219.3418 cm
0 0 l
f
Q
-0.596 0.192 0.192 scn
+0.278 0.471 0.129 scn
q 1 0 0 1 186.627 219.4824 cm
0 0 m
-0.295 -0.834 -1.295 -1.352 -1.079 -2.413 c
@@ -3542,7 +3540,7 @@ q 1 0 0 1 186.627 219.4824 cm
0 0 l
f
Q
-0.58 0.188 0.188 scn
+0.275 0.459 0.125 scn
q 1 0 0 1 186.627 219.6211 cm
0 0 m
-0.353 -0.868 -1.382 -1.434 -1.146 -2.564 c
@@ -3558,7 +3556,7 @@ q 1 0 0 1 186.627 219.6211 cm
0 0 l
f
Q
-0.569 0.18 0.18 scn
+0.267 0.447 0.122 scn
q 1 0 0 1 186.627 219.7588 cm
0 0 m
-0.193 -0.418 -0.584 -0.692 -0.794 -1.099 c
@@ -3575,7 +3573,7 @@ q 1 0 0 1 186.627 219.7588 cm
0 0 l
f
Q
-0.553 0.176 0.176 scn
+0.259 0.439 0.118 scn
q 1 0 0 1 186.627 219.9111 cm
0 0 m
-0.013 -0.025 -0.053 -0.04 -0.076 -0.058 c
@@ -3592,7 +3590,7 @@ q 1 0 0 1 186.627 219.9111 cm
0 0 l
f
Q
-0.541 0.173 0.173 scn
+0.255 0.427 0.118 scn
q 1 0 0 1 186.627 220.1025 cm
0 0 m
-0.034 -0.067 -0.142 -0.105 -0.203 -0.15 c
@@ -3609,7 +3607,7 @@ q 1 0 0 1 186.627 220.1025 cm
0 0 l
f
Q
-0.525 0.169 0.169 scn
+0.247 0.416 0.114 scn
q 1 0 0 1 186.627 220.291 cm
0 0 m
-0.037 -0.07 -0.152 -0.104 -0.217 -0.148 c
@@ -3626,7 +3624,7 @@ q 1 0 0 1 186.627 220.291 cm
0 0 l
f
Q
-0.51 0.165 0.165 scn
+0.239 0.404 0.11 scn
q 1 0 0 1 186.627 220.4746 cm
0 0 m
-0.175 -0.316 -0.542 -0.436 -0.748 -0.721 c
@@ -3643,7 +3641,7 @@ q 1 0 0 1 186.627 220.4746 cm
0 0 l
f
Q
-0.498 0.161 0.161 scn
+0.235 0.392 0.106 scn
q 1 0 0 1 186.627 220.7061 cm
0 0 m
-0.06 -0.132 -0.265 -0.211 -0.386 -0.291 c
@@ -3660,11 +3658,11 @@ q 1 0 0 1 186.627 220.7061 cm
0 0 l
f
Q
-0.482 0.153 0.153 scn
+0.227 0.38 0.106 scn
q 1 0 0 1 186.627 220.9883 cm
0 0 m
-0.04 -0.083 -0.167 -0.135 -0.239 -0.193 c
--0.735 -0.594 -1.129 -1.171 -1.41 -1.909 c
+-0.735 -0.593 -1.129 -1.17 -1.41 -1.909 c
-1.685 -2.632 -1.76 -3.635 -1.577 -4.146 c
-0.866 -6.126 1.876 -5.311 1.903 -5.301 c
5.874 -3.976 5.345 -0.496 3.416 0.521 c
@@ -3677,7 +3675,7 @@ q 1 0 0 1 186.627 220.9883 cm
0 0 l
f
Q
-0.467 0.149 0.149 scn
+0.22 0.369 0.102 scn
q 1 0 0 1 186.627 221.2744 cm
0 0 m
-0.045 -0.106 -0.21 -0.167 -0.303 -0.236 c
@@ -3694,7 +3692,7 @@ q 1 0 0 1 186.627 221.2744 cm
0 0 l
f
Q
-0.455 0.145 0.145 scn
+0.212 0.361 0.098 scn
q 1 0 0 1 186.627 221.6582 cm
0 0 m
-0.163 -0.362 -0.542 -0.515 -0.779 -0.805 c
@@ -3712,7 +3710,7 @@ q 1 0 0 1 186.627 221.6582 cm
0 0 l
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 186.627 222.082 cm
0 0 m
-0.128 -0.296 -0.442 -0.404 -0.638 -0.631 c
@@ -3720,7 +3718,7 @@ q 1 0 0 1 186.627 222.082 cm
-1.147 -1.346 -1.619 -2.354 -1.622 -2.361 c
-2.173 -3.904 -2.042 -4.642 -1.843 -5.159 c
-0.967 -7.426 1.647 -7.027 2.581 -6.683 c
-3.886 -6.201 6.602 -5.199 5.542 -2.518 c
+3.886 -6.201 6.602 -5.198 5.542 -2.518 c
5.833 -3.224 5.994 -3.998 5.994 -4.811 c
5.994 -8.123 3.312 -10.805 0 -10.805 c
-3.312 -10.805 -6.003 -8.123 -6.003 -4.811 c
@@ -3728,7 +3726,7 @@ q 1 0 0 1 186.627 222.082 cm
0 0 l
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 186.627 222.5469 cm
0 0 m
-0.037 -0.078 -0.154 -0.129 -0.22 -0.185 c
@@ -3743,7 +3741,7 @@ q 1 0 0 1 186.627 222.5469 cm
0 0 l
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 186.627 222.9893 cm
0 0 m
-0.038 -0.066 -0.155 -0.09 -0.221 -0.129 c
@@ -3758,21 +3756,21 @@ q 1 0 0 1 186.627 222.9893 cm
0 0 l
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 186.627 223.2627 cm
0 0 m
-0.043 -0.052 -0.154 -0.029 -0.221 -0.042 c
-0.696 -0.133 -1.347 -0.689 -1.732 -1.731 c
-2.576 -4.018 -2.459 -5.555 -2.314 -6.268 c
-1.868 -8.458 0.839 -8.7 1.752 -8.612 c
-4.208 -8.376 5.691 -8.233 5.942 -6.786 c
+4.209 -8.376 5.692 -8.233 5.942 -6.786 c
5.553 -9.723 3.042 -11.985 0 -11.985 c
-3.312 -11.985 -6.003 -9.304 -6.003 -5.991 c
-6.003 -2.67 -3.312 0.012 0 0.012 c
0 0 l
f
Q
-0.384 0.122 0.122 scn
+0.18 0.302 0.082 scn
q 1 0 0 1 185.7217 223.1973 cm
0 0 m
-1.735 -0.588 -1.748 -4.507 -1.748 -4.547 c
@@ -3784,7 +3782,7 @@ q 1 0 0 1 185.7217 223.1973 cm
0.115 0.022 0.049 0.014 0 0 c
f
Q
-0.369 0.118 0.118 scn
+0.173 0.29 0.078 scn
q 1 0 0 1 184.3926 222.7744 cm
0 0 m
-1.065 -0.939 -0.813 -4.875 -0.541 -5.608 c
@@ -3798,10 +3796,10 @@ q 1 0 0 1 184.3926 222.7744 cm
0.161 0.103 0.062 0.054 0 0 c
f
Q
-0.639 0.204 0.204 scn
+0.302 0.506 0.137 scn
q 1 0 0 1 188.1982 217.4531 cm
0 0 m
--0.089 0.065 -0.089 0.065 -0.518 0.595 c
+-0.089 0.064 -0.089 0.064 -0.518 0.595 c
-0.66 0.77 -0.832 0.916 -0.969 1.096 c
-1.153 1.336 -1.228 1.588 -1.225 1.6 c
-1.219 1.619 -0.023 2.449 0.592 1.369 c
@@ -3809,7 +3807,7 @@ q 1 0 0 1 188.1982 217.4531 cm
0.153 -0.145 0.065 -0.047 0 0 c
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 189.1953 222.666 cm
0 0 m
-1.292 0.462 -2.253 -0.325 -2.568 -0.584 c
@@ -3819,7 +3817,7 @@ q 1 0 0 1 189.1953 222.666 cm
0.215 -0.093 0.095 -0.034 0 0 c
f
Q
-0.655 0.208 0.208 scn
+0.306 0.518 0.141 scn
q 1 0 0 1 188.2393 217.709 cm
0 0 m
-0.336 0.357 l
@@ -3830,7 +3828,7 @@ q 1 0 0 1 188.2393 217.709 cm
0.105 -0.132 0.047 -0.039 0 0 c
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 188.3931 222.9971 cm
0 0 m
-0.649 0.121 -1.161 -0.01 -1.766 -0.45 c
@@ -3840,7 +3838,7 @@ q 1 0 0 1 188.3931 222.9971 cm
0.019 -0.004 0.008 -0.001 0 0 c
f
Q
-0.667 0.216 0.216 scn
+0.314 0.525 0.145 scn
q 1 0 0 1 188.2437 217.9775 cm
0 0 m
-0.004 0.005 -0.532 0.572 -0.709 0.863 c
@@ -3851,7 +3849,7 @@ q 1 0 0 1 188.2437 217.9775 cm
0.049 -0.041 0.02 -0.02 0 0 c
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 187.5317 223.1973 cm
0 0 m
-0.313 -0.006 -0.486 -0.009 -0.905 -0.208 c
@@ -3860,7 +3858,7 @@ q 1 0 0 1 187.5317 223.1973 cm
0.157 -0.021 0.068 -0.004 0 0 c
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 186.627 223.2627 cm
0 0 m
0 0.012 l
@@ -3868,7 +3866,7 @@ q 1 0 0 1 186.627 223.2627 cm
0.15 0.006 0.046 -0.045 0 0 c
f
Q
- endstream endobj 897 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 886 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 892 0 obj <</Subtype/Form/Length 450/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 887 0 R/Resources<</XObject<</Fm0 891 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
+ endstream endobj 990 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 979 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 985 0 obj <</Subtype/Form/Length 450/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 980 0 R/Resources<</XObject<</Fm0 984 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
q
183 308.272 m
183 324.272 l
@@ -3887,8 +3885,8 @@ q
/Fm0 Do
Q
Q
- endstream endobj 887 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 891 0 obj <</Subtype/Form/Length 13396/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 888 0 R/Resources<</ColorSpace<</CS0 889 0 R>>/ExtGState<</GS0 885 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
-/CS0 cs 0.655 0.208 0.208 scn
+ endstream endobj 980 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 984 0 obj <</Subtype/Form/Length 13394/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 981 0 R/Resources<</ColorSpace<</CS0 982 0 R>>/ExtGState<</GS0 978 0 R>>>>/BBox[155.001 324.272 210.999 268.274]>>stream
+/CS0 cs 0.306 0.518 0.141 scn
1 i
/GS0 gs
q 1 0 0 1 183 308.2725 cm
@@ -3914,7 +3912,7 @@ q 1 0 0 1 183 313.436 cm
6.607 -29.172 12.01 -23.77 11.999 -17.163 c
12.01 -10.555 6.607 -5.153 0 -5.164 c
0 -0.468 l
-0.316 -0.694 0.738 -0.996 1.055 -1.223 c
+0.316 -0.694 0.738 -0.997 1.055 -1.223 c
3.817 -3.661 7.459 -4.869 10 -7.617 c
12.018 -9.8 13.458 -12.461 14.279 -15.528 c
15.091 -18.562 16.901 -19.343 16.918 -19.345 c
@@ -3928,7 +3926,7 @@ q 1 0 0 1 183 313.436 cm
0 0 l
f
Q
-0.639 0.204 0.204 scn
+0.302 0.506 0.137 scn
q 1 0 0 1 183 315.2832 cm
0 0 m
-0.296 -0.712 -1.487 -1.168 -1.735 -1.898 c
@@ -3941,7 +3939,7 @@ q 1 0 0 1 183 315.2832 cm
12.01 -12.402 6.607 -7 0 -7.011 c
0 -5.167 l
0.338 -5.201 0.788 -5.245 1.126 -5.278 c
-2.249 -5.476 12.141 -7.556 13.761 -19.537 c
+2.249 -5.476 12.142 -7.556 13.761 -19.537 c
14.172 -22.51 l
14.637 -23.085 15.725 -23.501 16.46 -23.424 c
20.584 -22.987 26.414 -9.567 15.896 -1.312 c
@@ -3954,7 +3952,7 @@ q 1 0 0 1 183 315.2832 cm
0 0 l
f
Q
-0.624 0.2 0.2 scn
+0.294 0.494 0.133 scn
q 1 0 0 1 183 316.4023 cm
0 0 m
-0.627 -1.109 -1.866 -1.525 -2.708 -2.391 c
@@ -3969,8 +3967,8 @@ q 1 0 0 1 183 316.4023 cm
0.312 -7.428 0.727 -7.455 1.039 -7.475 c
5.586 -8.118 13.155 -12.017 12.674 -22.548 c
12.56 -25.061 12.663 -26.477 12.982 -26.758 c
-14.31 -27.928 23.355 -23.683 22.629 -14.042 c
-21.27 4.006 1.142 2.02 0 0 c
+14.311 -27.929 23.356 -23.684 22.629 -14.042 c
+21.269 4.004 1.142 2.019 0 0 c
0 7.87 l
15.462 7.87 27.999 -4.667 27.999 -20.129 c
27.999 -35.591 15.462 -48.128 0 -48.128 c
@@ -3979,7 +3977,7 @@ q 1 0 0 1 183 316.4023 cm
0 0 l
f
Q
-0.612 0.196 0.196 scn
+0.286 0.482 0.133 scn
q 1 0 0 1 183 317.3276 cm
0 0 m
-0.223 -0.377 -0.896 -0.494 -1.279 -0.706 c
@@ -3989,7 +3987,7 @@ q 1 0 0 1 183 317.3276 cm
-11.368 -29.204 -4.441 -35.04 3.701 -32.832 c
16.504 -28.451 l
19.64 -26.383 21.524 -23.889 22.614 -20.364 c
-24.61 -13.908 21.812 -4.741 13.674 -0.575 c
+24.61 -13.908 21.812 -4.74 13.674 -0.575 c
6.26 3.219 0.029 0.049 0 0 c
0 6.945 l
15.462 6.945 27.999 -5.592 27.999 -21.054 c
@@ -3999,14 +3997,14 @@ q 1 0 0 1 183 317.3276 cm
0 0 l
f
Q
-0.596 0.192 0.192 scn
+0.278 0.471 0.129 scn
q 1 0 0 1 183 318.1274 cm
0 0 m
-0.174 -0.267 -0.682 -0.3 -0.974 -0.428 c
-3.27 -1.438 -6.363 -4.313 -7.593 -6.58 c
-13.39 -17.262 -13 -20.653 -12.686 -23.377 c
-12.045 -28.943 -6.307 -36.332 3.975 -34.516 c
-34.373 -29.149 23.201 -7.033 15.417 -1.844 c
+34.372 -29.149 23.201 -7.033 15.417 -1.844 c
7.621 3.352 0.038 0.059 0 0 c
0 6.145 l
15.462 6.145 27.999 -6.392 27.999 -21.854 c
@@ -4016,7 +4014,7 @@ q 1 0 0 1 183 318.1274 cm
0 0 l
f
Q
-0.58 0.188 0.188 scn
+0.275 0.459 0.125 scn
q 1 0 0 1 183 318.8281 cm
0 0 m
-0.26 -0.393 -1.01 -0.429 -1.443 -0.612 c
@@ -4033,7 +4031,7 @@ q 1 0 0 1 183 318.8281 cm
0 0 l
f
Q
-0.569 0.18 0.18 scn
+0.267 0.447 0.122 scn
q 1 0 0 1 183 319.4941 cm
0 0 m
-0.27 -0.397 -1.042 -0.411 -1.488 -0.586 c
@@ -4050,14 +4048,14 @@ q 1 0 0 1 183 319.4941 cm
0 0 l
f
Q
-0.553 0.176 0.176 scn
+0.259 0.439 0.118 scn
q 1 0 0 1 183 320.105 cm
0 0 m
-0.285 -0.403 -1.085 -0.384 -1.55 -0.549 c
-2.14 -0.758 -7.426 -2.783 -11.14 -9.4 c
-12.536 -11.888 -15.643 -18.441 -14.343 -25.552 c
-13.349 -30.994 -7.597 -40.716 7.05 -38.567 c
-28.063 -35.482 30.901 -13.127 16.17 -2.838 c
+28.064 -35.482 30.902 -13.127 16.17 -2.838 c
7.979 2.883 0.04 0.057 0 0 c
0 4.167 l
15.462 4.167 27.999 -8.37 27.999 -23.832 c
@@ -4067,7 +4065,7 @@ q 1 0 0 1 183 320.105 cm
0 0 l
f
Q
-0.541 0.173 0.173 scn
+0.255 0.427 0.118 scn
q 1 0 0 1 183 320.6777 cm
0 0 m
-0.294 -0.407 -1.113 -0.365 -1.59 -0.521 c
@@ -4084,7 +4082,7 @@ q 1 0 0 1 183 320.6777 cm
0 0 l
f
Q
-0.525 0.169 0.169 scn
+0.247 0.416 0.114 scn
q 1 0 0 1 183 321.2148 cm
0 0 m
-0.327 -0.44 -1.224 -0.37 -1.749 -0.528 c
@@ -4101,7 +4099,7 @@ q 1 0 0 1 183 321.2148 cm
0 0 l
f
Q
-0.51 0.165 0.165 scn
+0.239 0.404 0.11 scn
q 1 0 0 1 183 321.7295 cm
0 0 m
-0.315 -0.413 -1.169 -0.321 -1.671 -0.458 c
@@ -4118,7 +4116,7 @@ q 1 0 0 1 183 321.7295 cm
0 0 l
f
Q
-0.498 0.161 0.161 scn
+0.235 0.392 0.106 scn
q 1 0 0 1 183 322.2021 cm
0 0 m
-0.326 -0.417 -1.197 -0.297 -1.71 -0.424 c
@@ -4135,7 +4133,7 @@ q 1 0 0 1 183 322.2021 cm
0 0 l
f
Q
-0.482 0.153 0.153 scn
+0.227 0.38 0.106 scn
q 1 0 0 1 183 322.6421 cm
0 0 m
-0.165 -0.201 -0.596 -0.119 -0.851 -0.169 c
@@ -4152,7 +4150,7 @@ q 1 0 0 1 183 322.6421 cm
0 0 l
f
Q
-0.467 0.149 0.149 scn
+0.22 0.369 0.102 scn
q 1 0 0 1 183 323.0532 cm
0 0 m
-0.345 -0.419 -1.243 -0.245 -1.775 -0.35 c
@@ -4169,7 +4167,7 @@ q 1 0 0 1 183 323.0532 cm
0 0 l
f
Q
-0.455 0.145 0.145 scn
+0.212 0.361 0.098 scn
q 1 0 0 1 183 323.4082 cm
0 0 m
-0.359 -0.424 -1.279 -0.213 -1.827 -0.305 c
@@ -4186,7 +4184,7 @@ q 1 0 0 1 183 323.4082 cm
0 0 l
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 183 323.7339 cm
0 0 m
-0.366 -0.422 -1.29 -0.183 -1.842 -0.262 c
@@ -4201,7 +4199,7 @@ q 1 0 0 1 183 323.7339 cm
0 0 l
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 183 323.9893 cm
0 0 m
-0.38 -0.425 -1.322 -0.147 -1.889 -0.211 c
@@ -4216,7 +4214,7 @@ q 1 0 0 1 183 323.9893 cm
0 0 l
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 183 324.1802 cm
0 0 m
-0.389 -0.421 -1.333 -0.109 -1.905 -0.156 c
@@ -4231,7 +4229,7 @@ q 1 0 0 1 183 324.1802 cm
0 0 l
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 183 324.269 cm
0 0 m
-0.403 -0.423 -1.362 -0.067 -1.945 -0.096 c
@@ -4245,18 +4243,18 @@ q 1 0 0 1 183 324.269 cm
0 0 l
f
Q
-0.384 0.122 0.122 scn
+0.18 0.302 0.082 scn
q 1 0 0 1 178.769 323.9521 cm
0 0 m
--22.528 -4.551 -23.527 -35.025 -6.329 -46.258 c
-6.847 -54.863 25.641 -52.169 31.069 -35.683 c
+-22.529 -4.551 -23.528 -35.026 -6.329 -46.258 c
+6.848 -54.862 25.641 -52.169 31.069 -35.683 c
27.625 -47.245 16.912 -55.678 4.231 -55.678 c
-11.231 -55.678 -23.768 -43.141 -23.768 -27.679 c
-23.768 -13.386 -13.055 -1.592 0.778 0.109 c
0.544 0.077 0.232 0.04 0 0 c
f
Q
-0.369 0.118 0.118 scn
+0.173 0.29 0.078 scn
q 1 0 0 1 170.9761 321.4922 cm
0 0 m
-16.563 -9.063 -17.344 -40.194 9.316 -48.713 c
@@ -4268,51 +4266,51 @@ q 1 0 0 1 170.9761 321.4922 cm
1.31 0.61 0.543 0.297 0 0 c
f
Q
-0.667 0.216 0.216 scn
+0.314 0.525 0.145 scn
q 1 0 0 1 198.9263 298.0972 cm
0 0 m
-1.706 2.422 -2.871 5.192 -4.806 7.466 c
--5.581 8.375 -6.334 9.141 -7.046 9.74 c
--7.103 9.788 -12.699 14.577 -12.706 14.929 c
+-5.58 8.375 -6.333 9.14 -7.046 9.74 c
+-7.103 9.788 -12.7 14.579 -12.706 14.929 c
-12.708 15.035 -10.925 16.753 -10.74 16.825 c
-10.058 17.086 -7.544 17.231 -6.875 17.166 c
-5.111 16.992 -2.438 16.241 0.275 13.649 c
3.79 10.293 4.269 6.382 4.332 5.263 c
-4.608 0.362 1.816 -1.552 1.125 -1.426 c
+4.608 0.362 1.816 -1.553 1.125 -1.426 c
0.589 -1.328 0.314 -0.445 0 0 c
f
Q
-0.682 0.22 0.22 scn
+0.322 0.537 0.145 scn
q 1 0 0 1 199.0605 300.5908 cm
0 0 m
--1.971 2.884 -3.056 4.472 -4.87 6.595 c
+-1.97 2.883 -3.055 4.471 -4.87 6.595 c
-5.072 6.832 -5.375 7.116 -5.591 7.34 c
-5.844 7.601 -6.16 7.969 -6.419 8.224 c
-6.913 8.711 -7.551 9.382 -8.074 9.839 c
-9.724 11.281 -9.908 11.547 -9.911 11.595 c
--9.914 11.657 -8.495 13.252 -8.295 13.411 c
--8.132 13.541 -7.808 13.456 -7.601 13.433 c
--5.32 13.184 -2.962 12.927 -0.476 10.566 c
-2.531 7.709 2.783 5.143 2.904 3.91 c
+-9.914 11.655 -8.389 13.369 -8.295 13.411 c
+-7.711 13.674 -6.801 13.346 -6.164 13.276 c
+-2.962 12.927 -1.156 11.212 -0.476 10.566 c
+2.531 7.709 2.783 5.143 2.904 3.909 c
2.938 3.565 2.929 0.875 2.709 0.41 c
2.675 0.337 0.707 -0.875 0.645 -0.861 c
0.33 -0.793 0.182 -0.267 0 0 c
f
Q
-0.694 0.224 0.224 scn
-q 1 0 0 1 198.145 304.1201 cm
+0.325 0.549 0.149 scn
+q 1 0 0 1 198.1455 304.1201 cm
0 0 m
--0.736 0.235 -1.075 1.45 -1.575 2.04 c
--3.148 3.894 -3.148 3.894 -3.896 4.678 c
--4.212 5.008 -4.839 5.354 -4.922 5.803 c
+-0.737 0.235 -1.076 1.45 -1.576 2.04 c
+-3.148 3.894 -3.148 3.894 -3.897 4.678 c
+-4.212 5.008 -4.84 5.354 -4.922 5.803 c
-4.014 7.981 l
--3.952 8.007 -1.426 7.15 0.33 5.083 c
-1.632 3.552 2.398 0.755 2.281 0.574 c
-1.906 -0.01 0.7 -0.197 0.037 0.011 c
+-3.953 8.007 -1.427 7.15 0.33 5.083 c
+1.631 3.552 2.397 0.755 2.281 0.574 c
+1.906 -0.01 0.699 -0.197 0.037 0.011 c
0.026 0.014 0.011 -0.003 0 0 c
f
Q
-0.439 0.141 0.141 scn
+0.208 0.349 0.094 scn
q 1 0 0 1 195.0493 321.5449 cm
0 0 m
-5.275 2.417 -9.403 2.407 -12.049 2.189 c
@@ -4322,7 +4320,7 @@ q 1 0 0 1 195.0493 321.5449 cm
0.673 -0.334 0.292 -0.134 0 0 c
f
Q
-0.427 0.137 0.137 scn
+0.2 0.337 0.09 scn
q 1 0 0 1 191.2632 323.0293 cm
0 0 m
-3.078 0.794 -4.478 1.111 -8.263 0.96 c
@@ -4331,7 +4329,7 @@ q 1 0 0 1 191.2632 323.0293 cm
0.981 -0.329 0.425 -0.126 0 0 c
f
Q
-0.412 0.133 0.133 scn
+0.192 0.325 0.09 scn
q 1 0 0 1 187.231 323.9521 cm
0 0 m
-2.557 0.263 -2.657 0.273 -4.231 0.228 c
@@ -4340,105 +4338,90 @@ q 1 0 0 1 187.231 323.9521 cm
0.724 -0.122 0.312 -0.042 0 0 c
f
Q
-0.396 0.125 0.125 scn
+0.188 0.314 0.086 scn
q 1 0 0 1 183 324.269 cm
0 0 m
0.335 0.003 0.669 -0.002 1.001 -0.014 c
0.701 -0.01 0.211 -0.214 0 0 c
f
Q
- endstream endobj 888 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 958 0 obj [/Indexed/DeviceRGB 255 959 0 R] endobj 959 0 obj <</Length 428/Filter[/ASCII85Decode/FlateDecode]>>stream
+ endstream endobj 981 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 1051 0 obj [/Indexed/DeviceRGB 255 1052 0 R] endobj 1052 0 obj <</Length 428/Filter[/ASCII85Decode/FlateDecode]>>stream
8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
-l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 869 0 obj <</Private 870 0 R/LastModified(D:20091124113554+01'00')>> endobj 870 0 obj <</CreatorVersion 13/RoundtripVersion 13/ContainerVersion 11/AIMetaData 871 0 R/AIPrivateData1 872 0 R/AIPrivateData2 873 0 R/AIPrivateData3 874 0 R/AIPrivateData4 875 0 R/NumBlock 4/RoundtripStreamType 1>> endobj 871 0 obj <</Length 964>>stream
-%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 13.0 %%AI8_CreatorVersion: 13.0.2 %%For: (Gilles Dubochet) () %%Title: (type_tags.ai) %%CreationDate: 11/24/09 11:35 AM %%BoundingBox: -227 -99 143 234 %%HiResBoundingBox: -226.5 -98.5 142.5908 233.748 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 9.0 %AI12_BuildNumber: 434 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: -59.5 -62.5 -46.5 -49.5 %AI3_TemplateBox: 40.5 29.5 40.5 29.5 %AI3_TileBox: -239.5552 -349.6377 319.4453 433.3623 %AI3_DocumentPreview: None %AI5_ArtSize: 841.8898 595.2756 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 5 %AI9_OpenToView: -472.5 308.5 2 1589 965 18 0 0 50 75 0 0 1 1 1 0 1 %AI5_OpenViewLayers: 77777 %%PageOrigin:-399 227 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 872 0 obj <</Length 7432>>stream
-%%BoundingBox: -227 -63 143 234 %%HiResBoundingBox: -226.5 -62.001 142.5908 233.748 %AI7_Thumbnail: 128 104 8 %%BeginData: 7284 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD0AFFA8285353FD7CFF28A8FF5353FD7AFFA92EA8FF537EFD7BFF %53282828A8FD27FF2E2828A8FD51FF847EA9FD27FF5953AFA928FD7BFF53 %52FFA82FA8FD7AFF847E7E2E7DFD7CFFA87E7DFDFCFFFDFCFFFD31FFA9FF %FFFFA9FFFFFFA9FD76FFA9FFA9AFA9FFA9AFA9FFA9AFA9FD1AFFA87E537E %A8FD2BFFA8A9A8AFA8FD23FFA9A9A8A9A9A9A8A9A9A9A8A9A8AFFD17FFA9 %7E28292829282F2F7EA8FD26FFA8532F2829282F53A8FD22FFA9A9A9AFA9 %A9A9AFA9A9A9AFA9FD16FF7E2E012806FD0529062F7EFD23FFA859062806 %FD0529065384FD1FFFA8A9A8A9A8A9A8A9A8A9A8A9A8FD16FF7E28282F29 %53292F29542F54292FA8FD21FFA85306292853295329542F54295384FD1F %FFA9AFA9FFA9AFA9FFA9AFA9AFA9FD09FFA8A87DFF7DFFA8FD04FFA82801 %292829295453542930292F292FA8FD1FFFA95300290629292F2929293029 %2F292FA8FD1DFFA8A9A9A9A8A9A9A9A8A9A9A9A8FD04FFA87DFF7DFFA852 %275227277D27A8FFFFFF530629282F5AA9FD04FF7E5429542953FD1FFF7E %01282FA984A82F7EA8A9A87E29542953FD1EFFA9AFA9A9A9AFA9A9A9AFA9 %A9A9FFFFFF52FF5227527D7D52527D527DF8A8FFFFA8002828297EFD07FF %7E30292F06A8FD1DFFA905280153FFFFFFA9FD05FF7E292F0684FD1CFFA8 %A9A8A9A8A9A8A9A8A9A8A9A8AFFFFFA8527D7D27A8FD05527DFF7DA8FFFF %5328282953FD04FFA9FD04FF7E30292F53FD1DFF7D28282953FD0AFF5A29 %2F53FD1DFFA9FFA9AFA9FFA9AFA9FFA9AFA9FD09FFA8FFA8FD06FFA82E00 %2828A9FFFFFF7E067EFD04FF292F2953A8FD1CFF5300280653FD04FF7E7E %A9FFFFFF7E29292FA8FD1BFFA9A9A8A9A9A9A8A9A9A9A8A9A8FD14FF2828 %0653FD04FF2F2F29FD04FF54292F28FD1DFF2828282953FFFFFFA829077E %FFFFFFA9292F28FD1DFFA9A9A9AFA9A9A9AFA9A9A9AFA9FD12FFA8280028 %28FFFFFFA82F292FA8FFFFFF292F2929A8FD1BFF842800280153FFFFFFA8 %29292FFFFFFFA82F2929A8FD1BFFA8A9A8A9A8A9A8A9A8A9A8A9A8FD14FF %28282853FD04FF53292FFD04FF54292F28FD1DFF5328282953FFFFFFA82F %297EFFFFFFA9292F28FD1DFFA9FFA9FFA9FFA9FFA9FFA9FD15FF53002801 %A8FFFFFFA92984FFFFFFA8292F0653A8FD1CFF7D00280159FD04FF532FA8 %FFFFFF7E292829A8FD1BFFFD04532E5353532E535353287EFD13FF7D2828 %282FFD09FF532928297DFD1DFF7E28282853FD0AFF54282953FD1CFF5300 %280028002800280028000053FD13FFA92828062853FD07FF5329282828FD %1FFF28280053FD09FF7E062906A8FD1CFF28000028002800280028002800 %53FD14FFA806282828297EA8AFA87E2929282906A8FD1FFFA8062853FFFF %FFA8A9FFFFA87E2829067DFD1DFF5300280628012806280128062853FD15 %FF7D0028052801280629062828280159FD21FF7D0053FFFFFF7E012F2828 %0129012FA8FD1DFF2E01002800280028002800280053FD04FFA8FFFFFFA8 %FFFFA8A8FFA8FD07FF7E062806FD0728067EFD23FF7D53FFFFFF7E280628 %28280053A8FD1EFF5300280028062800280628002853FFFFFF7D52FF7D52 %A852A852A8527DFF7D7DFD04FFA9A8282800060006002828A8FD24FFA8A8 %A9FFFF7E00280028287DA8FD1FFF2806002800280028002800280053FFFF %FFA852A8277DFF7D527DA8527D7D27A8FD07FFA87E537D537EA8FD2BFFA8 %28287D7DFD22FF5300280128062801280628012853FFFFFFA87DA852527D %52FF527DA852527D27FD3AFFA8FD25FF2806002800280028002800280059 %FD04FF7DFFFFA8527D7D7DA87D7DFF7DA8FD60FF53002806280028062800 %28060653FD72FF2800002800280028002800280053FD72FF530028062801 %2806280128062853FD72FF2800000600010006000100060053FD72FF7E2E %53525353535253535352537DFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF %FDFCFFFDFCFFFDFCFFFDFCFFFD9AFFCACAA8CAA8CAA8CAA8CAA8CAA8FD74 %FFFD0DCAFD18FFA8A8767676A1A8FD53FFCACAA8CAA8CAA8CAA8CAA8CAA8 %CAFD17FF7D6F446F446F456F70A8FD52FFFD0DCAFD15FFA84B45446F446F %6F6F696F4476A8FD29FFA8A176766F7676A8FD1EFFA8CAA8CAA8CAA8CAA8 %CAA8CAA1FD05FFA8FFA8FD0DFFCA4B4B4BFD066F936F6F689AFD28FF766F %446F456F446F6F76A8FD1DFFCACACAFFCACACAFFFD05CAFFFFFFFD047DFD %0DFF4B44446F4B6F6F9A6F9A6F936F6F449AFD25FFA84B4B446F44FD056F %686F7DFD1BFFA8CAA8CAA8CAA8CAA8CAA8CAA8FD04FFFD04527D7D7D2752 %52A85252A8FFFF764B4B6F456FA1CAFD04FF6F936F6F45A8FD24FF4B4B45 %6F6FA1A1FF766F6F946F6FA1FD1BFFA8FD0CCAFFFFFF52A8522752FF5252 %27A8A82752FFFFA84B204B446FA1FD06FF6F6F936F6F6FFD23FF4C44444B %44CAFFFFFF9A68FD056FA1FD19FFA8CAA8CAA8CAA8CAA8CAA8CAA8CAFFFF %FFA8A8FFA8A87DFF7DA852A87D7DFFFFA1444B4B6FA1FD05FFCACA6F946F %936F6FCAFD21FFA14B4B6F4B70A8FFFFFF76936F9A6F936F9AFD1AFFCAFF %CACACAFFCACACAFFCACACAFD12FF7644444B4BFD04FFA1FD056F936F6F44 %A8FD21FF76204B446FA8FD06FF9A68936F6F44A8FD18FFCACAA8CAA8CAA8 %CAA8CAA8CAA8CAFD12FF7D204B449AFD04FFFD076F936F6F76FD21FF4B4B %446F6FFD07FF9A6F6F946F6F76FD19FFFD0DCAFD12FF7644444576FFFFFF %A16F6F6F69FD056F4476FD20FFA84B204B446FA1FD04FFCAA19A696F6F6F %4476FD18FFCAFFCACACAFFCACACAFFCACACAFD13FF7D204B4476FD04FF6F %6F68FD046F946F6FA1FD20FFCA444B4B6F6F6FA8FFFFFFFD056F946F6F76 %FD18FFA176A176A176A176A176A17676A1FD12FF7D4B444B44FD05FF9AA1 %766F6F6F4B6F4BCAFD20FFA14B444B446F6FCAFFFFFF7644FD056F4476FD %18FF4BFD0420442020204420202076FD13FFFD044B76FD07FFFD046F4476 %FD22FF444B4B6F4B6FA8FFFFFFFD086F76FD18FF76204B444B204B444B20 %4B444476FD13FF7D204B444B76FD06FF76446F444B7DFD21FFA84B204B44 %4B44CAFFFFFF9A44FD056F44A1FD18FF4B20204B2044204B2044204B2076 %FD13FFCA76204B444B6FA1A1CAA1A16F6F4B4B76FD23FF76FD044B6FA8FF %FFFFCACAFD046F456FCAFD18FF76204B444B204B444B204B444476FD07FF %A8FD0CFFA14B204B204B444B444B444B44444BFD24FFCA4B4B444B44A1FD %05FF76446F454476FD19FF4B20204B2044204B2044204B2076FFFFFF7D7D %FF52A87D52FF7D52A852FF527DFFFFFFA876204B444B4B4B444B444B76FD %26FFA8204B4B4B45CAFD04FF6F6F4B4B76FD1AFF76204B204B444B204B44 %4B204476FFFFFF52A87D52A8FF52A8277DA87DA85252FD04FFA87D4B4B20 %44204420767DFD28FF7D2045204B44767DA1764B44444BCAFD1AFF4B4420 %44204B2044204B20442076FFFFFFA8275252527D52A85227FF52A85227FD %07FFA1A1767D76FD2CFFA84B4B204B4444204B444B76FD1CFF76204B204B %444B204B444B204476FFFFFF7DA8FF7DA8FF7DFFFFA8FFA8FFFFA8FD3AFF %764B204B204B4476A1FD1DFF4B442044204B2044204B20442076FD4DFFCA %FFA8A8A8FD20FF76204B444B204B444B204B444476FD72FF4B20204B2044 %204B2044204B2076FD72FF76204B444B204B444B204B444476FD72FF5244 %204B444B204B444B204B2076FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD2FFF %A86F4BA8FD7BFFA84B76A144A8FD2EFFCAFD4CFF4BFFA14476FD2CFFCA6F %6FA1FD4BFF4B4C7720A8FD2CFF207DA144A1FD4AFFA8A176CAFD2DFF4BA8 %CA44A1FD7BFF4476A144A1FD7BFFCA4B76A8FD7EFFCAFD42FFFF %%EndData endstream endobj 873 0 obj <</Length 65536>>stream
-%AI12_CompressedDataxœì½ëŽ$Éu ùñ¹?À²ÒÍïÎ],WmÏŠj‚MÎhV4’UÙÍUU¶ê"‰óôkçò;YÝjŠäJXÁf•Y„{D¸™vŽ¹}áõ¿ýò«Ÿ]½zúíãϦÃÅé¯þêæýãÃǧ÷?¿ÐÚ‹/Þ¼ùôáã{©úɯ~zQê«ê‹®¾Ø¿öþ×Ç÷^?½û¹>õb¬OÞËÖ?ùë×oÞ<~¸¸ýôÛ§—¿{üøÓ‹Ÿü´>÷ë×ß<Ög?þþ»Ç¯?>|ûáÅÃëŸò®u7·ëÓ¥\ŽóåpÔü|Z.®~Q_qýôéÝ«×ï¾½~ú—Ÿ_ül·‹Ÿõót1Ns}þÿ~ý«Çç/Z_,õe{ýÿ2/–cØ뫧Û¼×-nŸ^~zûøîã/ß?½|üðáæéÍÓû?¿¸ùýû‹_<|[Ÿy¸øïoÞ<ýóÅõ›‡—ÿ6¹z÷±¾ô¿ÿúáUÝþg¿züöÓ›‡÷é%ûøøêñÕ÷¿ðê‹åëû×oëÑzûðñâãzõE¿¾þôúÍ«¿ýôö·õ0ÎòÝ®¾˜¾ÖO÷›õcÕO(ÿ–êíë/ÞÖš¯?~¬_º¾´Í¯þú:£Z©Ÿü}}ë×Ú”õ8ÿŸúnß?}÷öáý?Ôm¶r´ÖQþÖ#7×{ݯß~÷¦¶Øy¨OŽòêø—¿ª~?ôS­\–ñâgSÝÉ:mÛÅTŽó¼Lõ;M/¦uœl›Ö
-ÿôúñŸ~ñ·Oïíð\½ÿøÕëÿU¿ð>—û~ì˱¼·eµçõéÍãûß¼{-GX«;L¿xzõø¦ö¢ØËý›=:ú(íÿí¿~xÿíãÇÚ{žÞ|ú¨]yü©Ú óðûG鋽Á—ß=¾ûõÓÕOú³y“ƒ5 ÒÁÆ‹²ìÇű־¶ë[,ÃŶø›}CÿD²Ù»ÞäOm¹_Ö¶üòýëo_¿ûùϦڹk'·Vþë÷¯_µFÞÆ‹ÝþO¿Ä‹=ýwðŸ}ÚúÅ?~||çÇ¢v®›_¤Î2¼øÅWõmïÞ½ºyz+mðAγÚKÞÕôæé[{.þ­ÏÔÍ?}wúûÓt\þ㧧ê¾Þ<Ö¯}ùíû‡z¼(ã~yõêõãûú̇˫÷õéË›—¯* .ï^~úøxù·k¼ü’—.[<ØKto—/_¿¯Ýã›7ÿrùÐ^cÛ?èÎ_²óGÝòtùh›>¦McÓ׶û×öš×é5¯ã5ït÷§Ë'{퓽ö)½ö)^ûd哽ô“½ôS{ééòS¼öÕ÷ß>¾¿|U?àããåËz¼/?|||ÿF¾Å‡Ç—Òõ.û©Róãåwïå|÷»ËºÅÛ‡w¯~û¦¥÷z×½½º|ùô]EÊ·¿ûxYOèWr
-_Úgˆ·{ñîéã«Ço.¯î.¿üðæáÃïNQõ]eúÛ×ï>µñ÷ïß]¾ýt^}zö:þ~zÿê›Çº«×ïåßo>¼üôF
-¼à¡Öû»ÿã§Çò%_=ýó»ËÇyùæá­þ³ö®×/ÞÔ b«oêYüúÝóñí'UÞ>ÕAä›­dG¢¢úõwòÍ?|÷ðòñòÊãÊ;›ÿuwù$}äÝ«ú‘.ßê_Ú‘ë!ÖR°}j©Õ[å«×ÿôZ:H´8æÿ=þõÍûkÑ»OïŸô“ꙟ[Kº»Óå7¯ëöîQßùò»ú>O¯¤ƒh[·óì·ãj¡¾ôãïž>}¨]äty•ºè]ú÷•õŒ»øpwvh¾°ú/rwý"^ô…½èK{Ñ—i|ï/í¿±Wü&ïæ7öÔ+i©^_¦­­!Þ>¼|/ý½R__öðRO;¥íŒ>]þîÓ»oÞzûæáÓÇzÖá._>ÔíN¿¾S”.ÿåë_¨ÃG5¦¯Swï^>I ð󋯟½ŸÿþòùË.Ÿoh,ÿõÿkoTÙÈÛX°ôëÔœþ¾¬ÅÏñ‹²M—õX=þ㧇7µ°^¾~÷M=W>þ>r|ô 5ª_
-§²9+>¾~xóêõ7ß\Ö/úVïËïÞ?½úô²bâuÝãG^Ýý~\~ùöñÛ‡‹S9–ËJ9©.ʱ]>|W7øÿÇ~yûø¦†6c™½'×3ð=¾ûöñbœyñ›Ú·¿þê÷oûôæëKûÛÇNûê‹ã¯ë1ÿem0NNûÝI£Â_¾ùTŸúë÷OŸ¾ûâÝ7O§ŸXùˇ¿«QT=ï>ÔHÐê¬xa[ÔÚ¿yýOVWƒÂï~úƒûûu=½ä¸ùÛÿYÉY7öŠö¯¯>½þøø¯ïè«—2B¾¿¸~ÿéÃï.~ýôô&>_ÿT|L¯ÖZyýŒ÷ø¥nðîËwv¤Ÿ¿“¿àüjtôî]ê«¿ÿê“ÿ‘÷~óPG!º_¿üÜ|æùx'{îx³Þ½lÛk‘¿D·Ô3ûõ‡·­7¦š_
-y^¾yüê÷5äxû¯ïíöñ›šÉ¤Ã¦µwïþéñÍÓwéCFM².þÛÃûï~h×ÒL•˜¯ê¢çs;ŒOo¿“\ïâ«ß=|÷¨÷ãïîõ•_ýˆnüæá]ŹÖÇ.?µÿVžõH²ºØé"ÜÏèûÙÏ~€‰ËÅõ»ôô_ –ë8÷sÙõ»Gý VsQ~zúL]eîxqýªÜÿçi?e˜†yX†u؆c¸®‡›án¸/¥Tž—¥luà8ÊU¹.7å¶ÜÃXÆqœÆy\ÆuÜÇc¼¯Ç›ñv¼=wãý4L5#žæ©æhÓ>]M×ÓÍt;ÝM÷sM™kúYS¶y·ù˜¯æëùf¾ïæûeXÊ2.Ó2/ë²-{ÍË®–›Ór»Ü­ÃZÖqÖe]×mÝ×c½Z¯×›õv½[ï·a+Û¸ÍÛ²­5éÙ·£>®¶ëíf»Ýî¶û}Ø‹>Æ}ÚçÓ>ï˾îõu»äWûu}Üì·ûÝ~Ô~£c:êÇ;–£¾WÝß~ÈŸ«ãº>nŽÛú¸«û«z´NWõÐ\ÕCp5]ÕïsU?õÕzU?ÀUÝ÷UÝæJþ\×ÇM}Ü^ÝÕÇýÕýõ zP¯ëÁ‹¿ë±:]׃r½\¯×õ;ȇ»Ö·½Ö}\ËŸ›ú¸­»ëûëû›ÚZ7µenÆ›z˜ofyœþ¯Ö¶£·®µï-|«m<h+Oõ!-½F[ÓÚwÚÞÒâÓ)š|ëÝZ¼x›/Þêût¤–—¶RÛk럾§ù—Ô®—éË}íô‚ÙûÁyO¸;ygî0Õ‘»ÄUt íÑ-´SxŸXµOX¯~qsªÝB;Æg»Æ¢]Ã:Ç•vŽíw­sxߘ´oÔ~qÒ®±k§°.q«]Â:] ·þ¡m~ÓZû_kÛ¾ui_i]kßµ;Ÿ½OÞÈãgÚ˜V¦¨¥o½¥Ë©6vkê]ÿ;?ÝûomN«k»kË×v?yÓ[ãŸ7¿£@Ûßp =@þkýÀzx¸:iw C'èÒ)&ít :]CaЈÞqªÝC:ˆuºJë,°D:Ì÷ð¤µíŸðÏ¿ÓK<´oÕž*}uŽþj=VúìqòN{¥ù¬³ÞÅà3k/•>j’¾)ýRzå6§Ú!¥;Ê€#ÈYkw[û]©=n©}í¨½ì¶ö®¢ãʦ]IºÑ}í>Sí0{í$7Û]ýˆÓ¾œj8´ÁïkËNµ÷Úr·õ$뉽Öóùú궞Ác=s·Ú¨7×wõëL7Kí%W777w7Ö¶÷÷÷w÷·÷7õL¾º?jÇÙjŸ]îçûé~¼/÷ÃÝýÝÝÝíÝÍÝu&ŽÚ¹¶Šµån®ïÊÝp{{w{{{Sé%½æTù´Ý®õ\™ëÉ7Þ–Ûáæ¾¾Ûm}ÏëúÎG}ÿ­žK¦:B”›¡Rä®Òä¦Råª~Ò½~Þµ~ê¹r§C§ë¡Âè®Bé¦~¥«úÅöz®¬õ¤œ+ÃÆJ³á¸¯]õ¶vÛëÚz ¶z8–ÚɧÚáË1ÔóáN¹ySÏ’«S=n{=zk=•æz(Çz‚ •¿wõ´»©§àU=!özf®õÏzΖm¨gò]mŠ›zn_Õ†Ùk󬵑æÚTe*îjëÝÔ6¼ª-¹×ö\k«ÎµmÇÚÂÃ|_s[Ys]ÛýPþ¬•Fsí cíµN÷U·µ—\Kg9êù¾Už-µMµ•iïk¯º­}ëºö±£ö´­Rq©ýnªý¯ŒC¹¯ýñ¶öÊërõçhÛýô§mÙë©üiZVÛUšõô§lWiÖÓÛ®­U­QOL«VîìeûcÛö³­ûg?oÿèöý·œ·?ØÂ'kâ?] sÞþgnmÛù⯾¾~_“!¿¼R†Aj¾:ýÕשæúéX)žr}îú6Ò8­—¡ŸÉÐFÉÐæÈЉhd”ÔØÎÉÛá^ó3&Gí6*wݯ뼕/ê š:lžê‘‘SÆÎ]Ex7áiŒgQÞ¤QžŒ¨9Ò;4ÚKñÞIB> úäa Þ¤íµh¸Dh1 ŒÄ2_Ï–«Üj<({‹
-OJh8jxÈÃöµx°(áâ¦!ã®a£ýÿᤑ×HÖ2þY r:k7»×7•·¿öÇM»Ýªo9G÷ó¨ð^¿½<®¥+^ëèճ?¬kÊE²?nõÀËãÊ»6Ìvª-Úg—è¹ögàQû°=n5Œ¿Qf]—#[<Ö2Ÿj/‘‡~€¤ÅCú•õ/ùÿ«î±y´f×ÿ?iç=¨NF—ÌŸLŸk§Ï¦áðòYþ<]2}VåÐG¾$ä1ö@ž‰±e¹?iN!ýà*¸#ä‘c\¢CÜhW¸ÒN`]@°hÓ+Îut‘“à°ÑEØcŠœ;zÝ(}§Ï¦m8kv¥-XOÌ{o7ÚLNÝõT¿‡åiõíêAdè‘F†l&í7²ù ƒŽ ;6ðÈÐ#ƒÏ•fŸ»A2É0´èùeCÑxÒ^3èˆ$c’ŒJ2.ÉÈ$c“Æ•¾IbT‡(¤d˜šµ·ú¸ :dÕAë¤ã–Œ\7:zÉø%#˜Œa2Šm:’­zöÙ9?é˜6z·tl»×ñMF¸Û“s7×öçJ‡»C‡¼]‡=øVü
-·ókÖ)IÉf®tZ’K^³NMJ´qôN§'m e½>É<åÙàÉÈ©£f3/c´ô«rv.>Rú8)#%£d#m„ôѱ»ötNÎÄΓÃsòàCêìÍ<ñ,®á¤¿ ÇÄ" ®´ AkÔ£tò€ãs,ô°àƒ‹ Ÿ»4Ô]1<¿:d!I»<Tü Oqqh¹þîòЩ;îíº!‘Ê× ÓC¿ZHÀbÍa ²Ÿüê W5€µ8÷ˆÇÕÙ£ÿssö¸íŸrpü,DÎaòy°ÜÂå©]§ü\àÜBçó
-ñ=³Öq•÷ì
-ïvuœ|ÂôV¿d-³ÐÜ"å%2PË4¾/•¤Ã÷~­˜ ûˆ ijâË&ÏEìÑòÑ=òÑš™œ>›ŒŸ(eFtõYϸàì—$mó>®ý·Ó‰ëú,ñk^÷[÷XÏK÷˜»Ç”§ûñìQºG·’HW¦´GÿçÖ'þq×ÍÃÞ]w«îqœ=öü8銗úÐð㢅?œœ~\´àÃÉN?&VøC†’#‰~¿Fy㯽ÒŽk“¶ÍÙÅɸ4yë—&¯|0’áh;éˆÔ_™´I¯MÆ¥I lˆÚ4A]tÝÞäCU‘<F†«“/¾c½•[»/½³…wmÙ]ñEww>ŽÝè‚Ÿ«XoW³“ŽguDë燊¸Y¦V¦/u"ØçX™B<ŠÌ­ÖÔOQÊns›iBòÚ‹Í:KY7ôiç»Orêló²ï2Ǫ³œ2·YS¿c”9Öy­o¾ÍýdöŸbgÈü›wïÞ>¾ºø–áv_ëü¹Únž”QkM#ÕîYìù˜–Ç»4P¦ÒÕɇÊüˆ'Ÿ¸6._Ÿ|ó¬t{ŠÑþ6"‚üï;-ßt¯º~¶EzýɃ ÂŒ»v=¾•$»·“-«8Åóˆ³1¢‚õ
-Fˆr
-@È)/';Q¦Ü7aJ|éùƒ‡–,*sÖÂÊz–žt=ä­.Ý#¢d-ä­Ÿ‚ $G "ïuù£„›†³-9Ò
-Êó°aìã
-]Õ?–g±œâŸÛ³Çž¶$ñû—~Ï¢Ãt㦻¸¯‘èɧ¯Ï–¦ptŽeé÷¬6ÔYêSºhŸ¡ýÀbŠn)Z[Œfë oNiqa‰Ui¶.mõŽ¢BO,ïÏ ü¯tl½iSÓ¾º?/;_Õï‹ÇN>Uý£V}ïjvᢜ4Ôø¾¾ä#&³õzFšÐÎë>|åÇÉt³Úz­»MlëÔöYñG¸±›xâß‘ô¡Ä·ŸŠ"þ_5h¿³ã¿÷Q£Ž_>½ù‡‡‹Û§üH9ž×]Œ/ʸ\”ûQT¹(.ÅM®K¯KýŠŸtZâê;(þ«3÷{-þ—úÏÿY+ÿùb¾øÅÅßÿáâ•Öÿݯê_¾'vü¶Võoõ7Qãï¦5ýÈUy»wú>_þË
--OáåeÝ hµ÷Ê6÷õ¿e®'ÀÒƒNêÆ)H'Å26ÒÕòP·ŽtR7Ú'Ö½Ô“aÝé¤\æ5“®VíëÜH'å²4ÒIyZzÒ-rZ®A:yɸ4ÒiyèH§{ÝéjÙ°í¤ÓòÒ“NêôØ9é¤|Œt²ÏyêI'_péô •FºZ|AºZW¡ÛHWËë<5Ò-rR®é–¥e†t‹üÂëÐHWËóxô¤«uëp4ÒÕò>ntK¾†Ò‘®Vò£Á®–kû7ÒÉóûÑ“®ÖMJx']-/ÛÚHWËë±ô¤«uû±é–íÅP7¤“âVzÒIݾ6Òi¹vQPWËE¾lFÔ ®@]-ËuŸ@”‡¡Gls ui‚:)NK:©+SC¾fk¨ÓòÚ£N릆:)/cC|½z
-v¨“¹í uÚž¥¡NzÈ>õ¨«éÐu•†ºZ”‰—@ö»Ò£NúæVêj¹Æ uµ¬ÛfÔI—íA²ek¨ÓòÞ£N뎆:=o¦†:eÑСNXs uZÞꤼÏQWóŒy::ÒIÕ².:)×Q P'å2•uµnZ‡9P'åaØuµ<Z¸éjM9¶=H'åÚ¾A:)¯ûÑ‘n^œ<»c@NËÖÑ€œV•9 'åb€RÈIy°7ÈIÖu% '¯±èN'ÅÍ"Â`œ|³m:‚qz´æ=WË«äP™qµn¬NWËG¨‚q³œµk'ÆÕªéøÍ W‹«UW‹Ûj!T0®Ö5{ÆÍû Ñ‹‚qµ<MóÒA®Ö-g)äjY «åu×rµnsv*äj¹Ží[@n–ϸïäjÝ8îrµ\7Ý \-Öacï('u£ÑG)'åbB)'eùº™rRWä œüùb‘–RNÊÓ´u”“ºÑâF¥\Ú‡PNŠ«w<(§om¹„RNÊ›ÁT)gÛlå´ÎB¥œ¾dJ99"GY;ÊÉ‘,µ?@9iQ9P®¶ølOä¤'ÉÌ‚Cn¶ÊAtÈiÇ“°1AN;ç¼ä¤<­s@N:ô²nää×Þ·e ÈéI09-—£ƒœÖMs@Î0³äCÓš!§°2ò(ä´<–€œ”Gãd¹iž¸J]K\õ)q•òyâZëºÄUÊ9q­åóÄUªrâZË]â*ÏŸ'®ÓÞ%®²IN\u}âªU)q•rN\µ|–¸J]N\¥œWùd牫|᜸êAK‰k-?K\§£O\k¹K\õgþûĵV¥Äµ–ºÄuž'®µ®K\ç¡O\kù<q‡>q­å.q­åg‰ë\úĵ–»Äu.Ï×Z—×Z̉«ÏW©Ë‰«”Sâ:—牫ÜÝ '®z·ƒ”¸Jù<q•ºœ¸¦}(çÊóÄu.}⪯I‰«–ÏW­K‰«¾MJ\eŸç‰«Çœ¸JsæÄU:Èyâ*ý(%®ÓÑ'®ÒíÎWíš)q•rN\¥;Ÿ'®ÓÞ'®z
-¤ÄUËg‰«Ö¥ÄUÊ9qÕrŸ¸JUN\µœW).qÊóÄUêRâ*Åœ¸Öò³ÄUêrâ: }â*å³ÄUÌ œ¸J9'®Óð<q†.q•—äÄUË}âª{M‰ë4ô‰«–ÏW©Ë‰«”sâ*û<O\å æÄUZJ\§ò<qJŸ¸Ör—¸NåYâ:9q­¥.q­åg‰k­ë×Zî×iz–¸Öª.q­å.q•çÏW¹ÁJN\k¹K\kùYâZërâ:Í]â*ÅóÄUêrâªå”¸NóóÄUêrâZË]â*åóÄU¶É‰kÚ‡ NŠç‰ë4÷‰«¾&%®Z>K\µ.%®RΉ«|½óÄUdN\µ=Sâ*=ä<qJ—¸N¥O\µß%®Ò7sâ:•>q­åg‰«ôñœ¸*[Râªå³ÄUëRâªçMJ\•E}â*¬É‰«–Sâ*åÏ%®ãô,q•ªœ¸J9'®R>O\Ç©O\¥œ×Z>K\kM—¸J9'®R>O\Ç Èɳ9qÕrŸ¸jUJ\¥œW)Ÿ'®ãÔ'®òš”¸Jñ<q•o–W=Z)q­åg‰k­ë×Zî×q~–¸Öªœ¸ÖbN\kñYâZëºÄu\úĵ–Ÿ%®µ®K\k¹K\kùYâZëºÄµ–»Äu\Ÿ'®ãÚ'®ãÚ%®µø,q•ºœ¸J9'®ãú<q•ºœ¸Ê}Èrâ*åóÄUêrâšö!”“âyâªoW)çÄÕ¶éW­K‰«¾MJ\刜'®r$sâ*-š×Úâ牫ô¤”¸ŽsŸ¸jÇ;K\µs¦ÄUÊ9q•}ž¸ŽSŸ¸êIW-Ÿ%®Z—WÃLK\C}⪰J‰«–Sâ*åÏ%®eyž¸J]K\õ)q•òyâZëºÄUÊ9q­åóÄUªrâZË]â*ÏŸ'®eéWÙ$'®º‹>qÕª”¸J9'®Z>K\¥.'®RΉ«|²óÄU¾pN\õ ¥Äµ–Ÿ%®eí×Zîײ>K\kUJ\k©K\Ëö<q­u]âZË]âZËç‰k­ê×Zî×Z~–¸–½O\k¹K\kùYâZërâZ‹9q•âyâ*u9q•rJ\Ëþ<q­u]â*圸Jù<q•ºœ¸¦}ç¤xž¸–½O\õ5)qÕòYâªu)qÕ·I‰«ìó<q•ã˜WiÎœ¸J9O\¥¥Äµ¬}â*Ýî<qÕ®™W)çÄUºóyâZ–>qÕS %®Z>K\µ.%®RΉ«–ûÄUªrâªå”¸Jùs‰ë.yë¼u Û%oZ8·ËIàèÔí’¸.G‡º]W‹µGo’¸ŽG n“ÄuéP·Iâ:®ºM»Ó¨Û4q]:Ôm]âºIÞjØRÒmš·–L:Ù©ÒmBmOd…tRös'H·é¡›‚tr¢vB)é6É[„AºMóÖ)H·kÞÚH·kÞ:v¤“9þÝb#%Ý.yë°évÍ[» ®â©vÒÔš¸–@LÕ†µ@Ý!‰ë¾êM\—†ºáYæZ«ºÌµ–»ÌUž?Ï\ËÐg®eè3×Z~–¹–¡Ë\Ké2W)žg®R—3W-§Ìµ”癫Ôå̵–»ÌUÊ癫l“3×´e]yž¹–Òg®úš”¹jù,sÕº”¹J9g®¥<Ï\ËÐg®ÒžòÕaÝñ<qÝ5o- N&àW££¢nž·î–#H§ÓåǤÛu˹#Œm£…lJº]ÓÖ1H·?O[¥ŠœS@'gÍ4¶ˆn׬uÌ Û5kmÝ®Yë Û5kŸNÖzê*¼LºAóÖ¹MÒ mÛ¬$sö>®ÓŸ9Ú[î:HꪇÇi7Hî:VÁÀc×Æ»AÓW oÐüõŒx°“_»g Ú šÀGÆÔ9ýàÝ`G´ði…݈Äì 6äÉ ¿Ö{•yƒä±ÛÒg²ƒ&²F0¥Þ ™ì8öMeËÚqo\Vöøäë*q#ÆÓl¶t1žd³s¯tÙ¬,/š,=n!ž$³SãÞ¨ÉìܲYIfç­Ïf%™56Z6«‡¨´lV’Ùå,›•d6Åx£Œ÷kËf'MfK?e§É¬y2ÍYû‘%³“dÖ©6g§Élisv’Ì.K›³“ÜhZû9;ID­?Ùœ$³FO›³“dÖÊmÎN“Ù©ÍÙiþ1Æœ&³s?g'É춴9;àÁœ&³S?g×'³“æ²-™žç²“¦²{B¦eÜZŒWˆc-ÆërYí0mÁ=évËpìù¤sÎNGEß Éì¸ûÍfm0à'§[ Eæ Ÿœ
-eÖÀŸVÈp—(•¢D3€ƒæ´–ÂÀA“Z‹Ð‚ƒfµn)Mk_:/¯Þ¼}­÷·}xÿû‹Ÿ×ªŸ\ýôâò«rÿÖ‹ŸèMùôVžr[¾/nzñ¿ËKþŸï}‰Ü9Õ_¤`¨}1½öúúêåËOoõôQoj/ü?êõ¿9±R¼´•âõ²4|½øÉO/þî¿Xýåé³ë¢ÏšËYz63)UyfROä5­“>žÏL
-•Ö!­“–KXCZ'}œÏL*.¶´Lúèg&¥|>3i§Ýá°Yö´Búx63©UifR™•f&•qg3“Â9[Y!}t3“R<Ÿ™”o–g&õh¥™IEØṲ̀¼6ÏLÖ¿»™IáÑṲ̀â¨ÍLÊ÷L,—Ãp>3)G*ÏL
-Iò̤¶ÅṲ̀4qž™Ô&N3“z>ÍLÊI—g&·ÒÏLÊ>3)ðˆ™ÉI1QaQ¬°ç|fRêò̤ò)ÍL*ÂÎf&¥n/-Šìå™I)ŸÏLJ]ž™Ô}ŒÅJñ|fRßzkQ¬”ó̤mÓÏLj]‚¹¾Mš™”#rNsegš™”ýå™IùZg3“r4Íåàå™Iíxg3“Ú9Ó̤”ó̤´Ùṳ̀¶uš™ÔþRÒéãṳ̀ÖMâ 3¶Dúx63©°J3“ZN3“RÎ3“?DðëÿÈÿ±ô–¥#‹v‰.@_*´ŽðD¤Åçµ Û¡Oñ¹†cЗuž— ×®Sì‚Y ÐÇešK»À$VØ2Ø'Ðkô7Øeï ×ç´#N%UœSœ>zÊ’ãôqØlÂôõðSž0}]†³‰ ÁE=9—¦ï6îG˜^OËR”>ÕñkÛS”¾ ÃaOˆÒ×Íç r”¾lûÚ<lMΕ-F¯œîça-VI1ú:XTëQú^£xŽÒÃf0<J‹M¼¤ƒV-H_‹ Ë£/ò“ 9F×ɱ³Ý'_Ñ×eOWÕkÎ8ÛÔnÑ÷ÙÂxÑg¦n=D_‡c>ÑYð@ˆ®˜mº~Õ>B_¦mMúj9r Ð-™íô}°9UÐk°às ‹zœèÒ•J
-ÐkàlÍôºÍ¾ŸèË8Ú‰çú2{Øãºý}ˆ®ý©…èc)ó”Côm*óyˆ^ûÄšbô}õ™\†­½Nº>D·ô»EèǸظéz²d‚ªÐ%E4¡×Ž¼´kNRAÖž"ô%çÍ+ ¶µãº,™ªŸfϱù¾{#{­½ÿ‘ÑþÉÿóẔ¡tµfãÎP7IyßZ@-Eé6- 6G­x8­RÛf±¥t+QÜd°…ÓV7úÔ¤„ÓâQƒÕÊ“¬SòpZ,ºÕg-Sà¹úF<-&žœ!9 –ºÑF[›®_h÷# –òpÄÇÒKýµn=,`•€ZÌ­Ù‚f ¨EÝšŽøæPKï-c ¨%Ž´ôÃjéËÒb«Ûf;^P³T„€ºž9ëñ±EÔÅ&n ©eøó£ÕÅÊa‹hÊBjö0¶ºØ®"¤–qµ¨E
-=J ¨YC@]ϯB˜G@]ëv»êaµ¼Æ¯œh@]Ë•§}@]Ÿ› õR¿ÔO-¢^5ŠnѱDÔÒ¾¾F#j)¯Ëµ´Ìu¶ˆÚt¼Ù#h‰¨µÍ})DÔjpαFÔR§C:û¨}m™[H½Ê2®´ZÏqòÏ"!µtß9¶1MpÙ»ˆZ΀Åæz5¢^õÊúµž—[l£u­Ó‰v"êZ®ƒþBD½ºn“#j©[­ÛhH-»Øì¬ÐZ$PY
-”CêUœˆ¨kqídÓˆZ]Ò5¢p¨¥n:v; †ÃüÓˆ°µ\æÆ
-Jõì9‚¤zÂícGR•··#Hªöv©šÙsé@ªöö±H±¹©:ÔvP¤âDe
-JÙTyÈjq›:ŒªÐmM©=8FÕºÞ×£úÎëU{X£ºK0ªUëÕ·Y¶À¨ê륣¨Æ¥” ¨©økPTÝíuê0ªî¶1O1ºt0*n^zŒJÇœƒ¢µ¤D h‰ãÒ(Zl¶ˆº…•r™zˆo, *eÛ­ATºÛÔ3Ôj"*eûÙchñïØ3TEI;ÂnñÕ½NÝÉepêIŽSG8©Ó«ÛJ8‘˜#L”¸ßÄ|6½^ñ¦¾õ^o*F[9ð&Êöfã³âMµî½ñMËS‡7­ÖÀþ5x“²^ßIxS{Ÿo²aoR¶ºÉ\¦tÓÃ5ÜÄf=JÇ6‘b÷†6ñf—e´‰¯­² m¢ãjOu´‰²½[`¨h[|ÝWFÛ²DX§hÅ×; ÒM”m¹gH£›Ùz†:ÝÄØÂrΈínÐmYcLRº‰±­¿•àx«eY¬“éV«ê°³ÝÄO–«[àMuì¹£›TÉšgè¦eK ”n¢<6tݤn-%è&†ö47)ËLæ›ZÜÖ˜zÇ>œoÜ™oúÞ–XéÑSýÚ²&å›msd¾iÕxÓwñ3Lð¦Îú°w|SóÝb/囶¦±Iù&=äXÇŽo"lûY=÷—Ùz:|Óž7Oß´sZ樦þU–5
-xÛË”8'Òö6oÁ9‘¶÷a Îͺ°¦tœi{^ÖàœHÛ£‡mÂ9QgK
-æ&uF·ÀÜäm’97é…á=8'bñàœp®–uÕoæÜ$Ýk‚s"(ëäšsn"Iœ›˜aqÎM¤1Î9u«­ƒsR§ËQœsâh/c›™“òäWÁàœyÝ[p.öᜓ²uÏÀœ¾uK\õ~ynŽ-–L9­J™«”÷¹åTH?æŽsr ‹’”sÚœíòF-–2÷×7¤#MÆ$üsÒñl’³aÎÒÌIW°XÍ0W;ÏbùrÃœ,…°k†9˾5ÌIÙò冹âÍæŠçN`®øÊÌ9]Àz4ΉÔm“óƹâ rϹQ×%¬™s#?0꜓²fë:)-P ЉŸ-âŒNJ“^:QšýêE€ndžÖA'*ô¾¶ÌUžÖ>s›zÚZæjÊ÷ Óré3WÝoK\Uâ¶IWZâ6q “:%¿ƒNÍñ©]Ê•V,¼ ÐÉ7.¥%®£-ŒЉä:}âª"ì1èÆÚetâÚʺ…L:Qr'Kn•t£ÿ¤õI÷Žt"nï tbù{K\ÅÛÞÆ’@'Ö¶_ÎQЉµ ‘åäkÛãÐ
-ЉkÌõ @7êŒFË\UÓ¶zÐc?G'uK‹ç´8¶ÌÕìês"`—£%®R>Æ)0'å­ôW ¤n--q}8æ¤<¬}âªomYöl}¥8
-:-o]âªUsK\qÅ:êGŸ¸Êœ–¸js¥”tÒC»$¤“ž´Í-q•Á:íxcŸ·JçœíWµÓø…GçœtçcîóVýa‚i
-Î)Xö–·jÙœÓÓ¤aN‹vÝC1§ : çF_7æÆ)®+æÆÉÇúse°[«"UÆ:椬©º}Wº3ä¤f²ÜT³Ô¥ø9)Ú¼`0Nœçmn— ¤<.m¥Š”ç¥_©"¶¶íT§Â·Mú)â´<ô«Ut·v9A§†·]6RÆ©ÎmçL0N궵­V1qüÆIy±à.'ßÐÙ©Œ+þkž0N\Ö}ï—«\Ü‚qâÍ.)gÍöØúå*¢ãŠ ãÄØ6~)âŠÌºøõjWë½”qµ¬+ç`œØإ̉qâcë”—3NüíioËUäyg^0®ˆÖrVѵwÝqµ\ñÕ_…(2•±´Õ**_ÛÊE\!ùHˆ+Ì°8ã
- Œ3N”çÑòÓ€œÚ×{[­R$·*k@NÊÅ/S9©†¶Z%öá“ò¼ö«Uô½ç1 §¯ñ«hslÓ­VѪ©­VQy|j«Uä뉜!'Æö¾·Õ*Úžã“.rØõƒ€\‘_ôœÛr•orÚõÆ~¹ŠtÏÝVÊh·‘éô©a®–‡iê—«H/_ì"‚bNÁ²µå*Z¶d90§gŠe²Ê9#ÍœS ýrÝÏЖ«HÙ/`+ç´<<[®¢¿=¹uáœÎlNspN~pÔEáœX”ÇÞç­âpû”Ý&ž¥ yF:™÷ËS:nP'ööbduòëž“êäœ\[ÚºÉÊÙ¹¡Nʃ!*P'»ÝK»Ú*'í0´ë(ßu*Žc Nüìqkyë&Ëž—>o•“_Øê䕵ÍΉຯýW\\ZÞª?K9µ•yrFnÆ­@¬+œÇv!â£ÓòVùÁÒã裹ƒeÓŽ:Ypì´4ÔÉŠó’/Dˆ½-o_&+ê_Ô“QgêYc,N_—ƺ¡]¨Ö þs°NæølBÀXW|®1³N5è–·j¹´¼µŸò̬ûzoy«Ú[Yëjy–žuò«YCË[c°NW÷¨“·¶,ÈP'/iáœmÑå­Z5µ¼UÕñ©å­Åš«#]=ãÞòViÎqhósòcˆÓÖ“®ö$¿ï‚Nøº•¶ D:^Ùû¼UfÇ‹ÍÇI§‘Étç©‚®öçÍWÍèv¹g›(è„,ÛÖ.¸îfw Óß2.í‚«¢fi  žYºZçkÈ”s»^Si\wíçsÎ…’@:¤ÓÙ³ÏlIɬSd‰È*ƒS$¯á‚dÜ© r±•w!ƒ
-É +†Ã
-9ÃàŸÑØþs‹Ø²ÎK4 ¬ÈÚ°_ÍZõNãèö–\‚“µbËëÆÕ‘f˺†9"åÃ~¹A: ¥|UG–Ãó^³Ý‡b[lI¸ÎMË¢¶5Dl»+Éæˆ.ƒsÃCÌ‘ZžÊ6Ç;ÈĬ,[]½–I)—r„9²ÈOí­ñ©Ô‘ÅU“)²JIWè™Å¬æÈ2ÛòLßDÍY8µoG˜#²pj›Bá&¾‰-H›Ã{Ñ~¨·©ñßÄqdÑß—tyÙÅ‘Z'c"∬_,öczÁUÊËÒ€MºÒ´G¤¬…‹#ºæqíÕ©ÛÍ­ÕÕ ²ÖjÆ‹µ#¢Ñ½o£êˆ.+%ÔyþÒ•«#òü°…ž¡êˆ¥-Ì9ˆ›™$jŽÈ^Û&jŽHcô1GtÑÛX‘²¬Ja±>t±œý„˜š#ÒæîY«9¢Ë+Kl£3Ò—ôG¥Ú>4úÁ‘òÚ”5GùÀ1Äé®Glb7]L±‰t|½‘Î|„9"çvº˜#rnÊu ßFÍ]@9†8"‹wŽæâë§ðT±;ÜÌ!ŽÈü÷T‘%šÂùèž³Þ‹gŸíGÔ‘•ü~Êb÷êÙJû)5GdÕ¢†ânŽÄêP7GdõèÞ` &KíæGä%“K "ŽÈÓM³ÕQº0Õ<PGô5îfË+Ú²ý;˜#J] ”º:(uw¤C©»#R·G¥®t,u}$XêúH°Ôõ‘ÌR·G¨fOÝéxêöHðÔí‘à©Û#OÝ žº=@u{¤ªÛ#T·G
- ˆC!q($ q$ ƒƹA’‡Aâ0H@IF ˆÃ qndÂa@87Hp.d¾¹@ÞHÀIÆ xC o$o$à Â!d¡@8‡B’ ‡BáèÛ Î’L8' ˆsƒ$ƒÂa@8 ’L8ì‡Aâ0H2ã0H`\Ú‡2ƒ$3ƒÄ‡@ãH2ãÜ q$ ƒ$3ƒÄ‡@ãH2ãH` ŒC ÉŒC r$@ƒ$CƒÊa¤ž 3 ™r$N9H€I¦ ”C r$ç”à ɔC!r($P‡$S‡Êa‘À94’Ì94@‡FèÐHè°H
-;,’ ;,‡ °C"É°Ã"vX$Ћ$Ó‹Äi‡DíH2íH  ´C"É´C"vn‘
-"—@ÁK2C.„!—@ÂKÎQøŸØ.‘e².$Û%R7N!—ÈÊŠuo7%‘òÐnÙ¥r‰¬¶ð7k8(åyŒ»üÉz­Ý3D®›HU™Û]þdMÀ0´»üÍóÎÜ’@.ÿëO­¹[¢‹Föv—?YTÒVÈë4­Tù-ÁT-©eû‘zWK¤<Lñ5T-©uzIWKl5K»ËŸ¬A˜¦þ.²AµhWKjysGÝY`ÐÝõÁfRn††[¢‹„¶v—¿Y²œðDì×½?”›%²Á:µ»üÉêžr¸YÂ
- ÌÙæ(í.ò¼\ZÓmÜ,‘A~ÃK]á ô(í.²‚bÀwp³DWUìí.³§‚˜%RB·q³DÒ¼†Z"Ñî¢f‰gi:ßDÍ©;¶v—?]r´»üIÓM4·Bt]ÉÞîò'e¿ßˆš%ºiïïò'uÇ0_¤}ln€¬Öñäþêñ62Ñ*}s<Ú]þ¤ëNG»ËŸtíeŒ# f‰®`Û]þ䤒°³D–&ɽ{}5Kt­Ñ±†Z2v+$WKdá4–wUK¤ni·$‘=øyÔ,‘ÅL²|?:§ýp,·¶T³DÊeowù“µ<k»'‘š%º¾gÃ,‘…T¦IѲھ5Xý†úi®–Hy_Û]þ„BµúVyì×Ü,‘ò6¶»ü)̦ùßÁ,é0êf u±$0êbI‡QK£.–F],Éu¯$8ê^IpÔ½’Ž£.–
-  C!É C!t($€…$ƒ…С
- GÓFŠÿÂ?Úˆå¾i#õb£©6Rl!`h#%{c¾6ªÖémßðFä5ÇÒ¼9jÿÖHÂ(ÒÅqŒ"dŒ"8FqFÀ(ÎHæ(ÒE£H#™£H#ÀÔ­XŠ5’YêÚH°Ôµ‘`©k#K] –º6LÝé`êÖHÀÔ­‘€©[#LÝ ˜º5L±F2LÑF€)Þ4ÅÉ4Ŧê€R¼‘„R´PŠ6JÑF2JÑF@©k#m$‘k’º5HÑF2HÑF
-×¥èæ-b.–2¨7èfóFçf×FàÜìÚœ›]Éœ›]s³k#pm$kÐa
-¹ðFœrá$Ê…7b” mÄ1ÚHÂ\h#Ž¹ÐFs¡$Ì…6✠mÄ9ÚHâ\x#ιðFœsátœ k¤q.¤ç\X#ƹFéB1Ò…3⤠g$¡.¤G]H#ŽºFêFua8êÂI¨Cuh# m$£mÔ¡8ê°F2ê°F@Ö¨ÃɨÃuX# k$£mÔ¹7êðF2êðF@ÞH Î½‘Œ:×FuC@ÙPçÚH‡:×F‚u®ë†v¡bˆMÔ Ö¹5¬sm¤ck#Á:×F‚u®t¬så#XçÚH°Îµ‘Žuh#°mÖ¹7’Q‡7êÜt¥å+Gû2ûÔòÖÐF ÚH&Úˆ“.´']h#‰th#ºðFtá$Ð…7b  mÄAÚH]h#ºÐFt¡$Ð…6â  mÄAÚHÞˆs.¼ç\x#çš5Ò@פ']³F uMI¬kÒˆÁ®9#N»æŒ$Ü5iÄyפ^“Fñš4âÌkÖˆC¯Y#‰zh#P/´°ÚHæ^h#€/´'ÖH&_X# /¬ØÖH†ÖHÄynDœçÖHç¹6q^"›zîtž{#‘Ìš7¹¬{#9—5m$RY×F"•um¤KeM‰LÖµ‘˜²sm$OÙ¹5SvnÄ”k#Ý”k#1egyMÌع6ÒÍعò3v®ÄŒk#ÝŒÚ3vh#ÌØáä);¼æìðF˜³ÃIsvh#ÌÙ¡0g‡6’çìÐFHeÑFˆòÐFr”‡6B”‡7B”‡7’àÞˆÁ¯i#N¿¦$ü5mÄùÚˆó¯i# €Mq†6âlÚHB`óF‚Íq
-6oä_]üŸÄ‘Érq…²6"ue›C‘ wYNˆ7"îÒ¹^žš7"óôǾ†82ùä‹#òôæ÷ÝA‘:™™A™ê ÌGˆ#R® ~£›Hi]ÜçÐ0r´©=¼¹Ø°s¼ƒz#£]×od´+áŒ6çÛ˜72ÖOjÆ‹z#2;=®MñÙißÄÄQ*Ž£‰#µÿšfcÞH9»¡ƒÕéÂËðF;o©ý¾Hã v‹(¼(ëa od°Õ꾉 LƒeÓá ¶¶4¼‘Ánü£Û Ž ²†sk∜WËÒÄ9÷ÑGŠÞ+¼¹ž´¯Í©eAµn‚8"i?š8Rl„q¤Øú5ßÆĹä[Ö&Ž ÁBm5 Û¨82Ú∴¹ÝKÄÄ‘úþ2ßäÛèÄŸÔ©ÙÞö¡ûG©e)x`­ýslÞˆtÞ)6Ñ·Ñ¡‰MD‘@ÖB"ŽÈyVÓ¦Gä<<õ]Ñ‹.sx#µ¨·AroD/Ñ, }@½©““oDöà÷ÜQoD®sÉatÏYUM8"eÁ9âˆ\æYÚí†TÑKhûâˆ\b›IŠ–Õ\ôm¬Á&]
- ”Ã!É”Ã!rH$p‰$s‰Ð!‘
-9»¡Î]’uî’ê\& Ô¹LÒ¡Îe’@Ë$:—I2êÜ% Ô¹K¨óKçêpI@»$—$“—Òá’@:d’L:dH‡Lâ¤Ã%ɤÃ%t¸$C,ñ?JÖ…KéÆ ˜’.\’DºpI†H÷Í%bVÄ\’„ºiŠ££¨›Iu2IbÝ„Lb¬›pIœu.IbÝ„L⬠™ÄY2Ib]È$κIœu!“$Ö…L⬠™ÄY2Ib2 ¬Kû°Iz“I2ê\&qÒá’@:\’L:dH‡LéI2ë&—Iœuî’êÜ%éPç.I æ‚:wI:Ô¹K¨s™$Pç2I‡:—Iu.“ê\&éPç2 ¨s—$Pç.IÇ:wI‚uî’ëJäÊë°I2ëÐI`: °Ã'É°Ã'v%À¡$áØ!”
-ã ‹%A;K:Ú¹Xâ´Ã+vx%™v{Kï½íy%À¯$ïØ!–
-·$Oá!—0…‡\ÂrIžÂC.a
-Ï“fðKò r 3xÈ%Ìà!—ä<—Kb¯íÃfð\.é¦ð\.aÏÝ’˜Ãs·¤›Ãs¹$æð\.‰9<—Kº9<—KHkÝ-‰hÏÝ’.Ús·$¢=wK"Ús·$·
-â–@ÁpK2Ã-„á–@ÂpKÎQøŸØ.‘É#QŠ²]¢“Ls »DÊrÞ`—Œž8¿<5»D&ª$ôÀ.‘ò>ÍØ%R,;[¨\"Ó_˲„\"ó)¾Ô\çªk¹ænv‰L¦{È%2ß6º"rÉ(Ëj×°>˜mY¿ ‰ÌHy°5ó*—Ôò2·5ò*—È,Žt—Ktç˜B.‘ œmŽ/¢rÉ8™!‚\RË5¹ßÂ.§³Û>XnŒn+¬‹øn—Œ½X2Vü-;^‰L‹Ê›ðJt*•»q¸W¢³¯æ„¨W¢S«"Y¸W¢3¶~+'¼™^•H¯dœ,ñÃ+ѹTÜ÷JäËÖæ ±D^#Úb‰ÎW­!|Œ>?¥ÌE,‘¸á•È1^Ú&ê•H;è Ý+©eífx%RÞš»±Û,®Îz¡•Hkû½FT+‘Þ°¶…èôß8»ùÞöa· Q©DúܲÎñ.úëKó åV‰ôZ½©‹/@ÖY©m#V‰ôücZÃ*‘ói3±F­9'ç&¼¨U"’Ó°…V2ÊZÓ‘f{Z›Ê»€j%²É±‡U2úÂN¬’ZVÀG·œu7º)VɸÚÙ†U2¦;“a•È´¨ÄEX%2ÿ¬?ñïVI-«ØèÛXs-¶„­D^#½ ­Dž±ÌVK „$¨Â*‘—¿;‰,¸RÍÿ÷#éêVI Ô­’@¨[%BÝ* „ºUu«$3Ô¥’`¨K%ÁP—J:†ºUHM* ŽºTÒqÔ¥’à¨K%ÁQ—J:ŽºTu©$@êRIR—J¤.•HÝ*é@êVI€Ô­@ŠU2öB‰ƒŸ’â“d’â“@RõIÀ(>IÆ(> Å'£ø$£ø$`Ô…(ŠP’)ŠPE](qˆâ“dˆâ“
-ã°F`ÖŒÃù†q²F^Œ“5’Œ k$'kä…8Y#‰8Y#‰8Y#q’Fq’Fq’F^ˆ“5â$$â$¼'i$ÒHNÒÈ‹p’F’p’F’p’F^„“4’„“4’„k™Ç]yðìä’síÖH".¬'aÂõE¯-TÏ­„Ãpø" _¤"_Äá‹€8|‘Ê8|‡0ãF*ãF`ˆ‡/R‡/ãðE`¾HaªŒCqè"•qè"0®ìC‰,×ýBœd‡-á°E*á°E ¶„éŒÃqÒEqÒE^ˆ“.â`í*Rá¶È q²Eq²Eq²E^ˆ“-’ˆ“-’ˆ“-òBœl‘Dœt‘Dœt‘Ê8Ù"É8Ù"ɸ–}âãºl‘ʸ.[ÆuÙ"@®ïÙFLÈuÙ"@®Ër]¶H\—,äºd ×%‹TÈuÙ"‚\—,äºd‘
-¹²Œë’E€\—,R!×Q\¹.YÈuÉ"r]²\@®Ë©ë²Er[Ù"@®ËéoQD”ëòD \—'R)×]8ž>äº<‘
-¹.OÈõ3IìïN—'R!×å‰
-âP<@šˆC©ˆCqe±ˆK"•qH"@KÈa‰TÈa‰
-ã°C`vŒÃùdvHevŒÃqØ!•rØ!P;Êa‡Ì!‡€9ä0‡R1';D˜CsÈ!sÈ!`9Ì!‡TÌ!‡€9ä0‡R1‡æCÀvHÅv˜ÃsØ!ý-†sòBÀ^HÅ^˜Ã IÌÉ yaN^HbnKæä…¼0'/$9'1$9·å¤ÄâœÄäœÄ8'/äÅ9y!É9y!É9y!•sR:’sÒB’sÒB^œ“’œ[ûÐB Y#H!‰¹°B’rmõO’r²B’r²B’r²B^”“åÐB ZH¥ÜX&ôi…
-9¬ ‡ä°B*ä°B€VÃ
-©Ã
-rh!@-¤@NVŒÃ
-qX!ŸŒK+¤B.­(—V˜K+¤r.­@—V¤K+¤ .¥X—R°K)¤Ò.­ñ.¥€—RH%RÄK)ä¥R™—RÐK)ê!…Tê¥öR
-{i…Tða…dûNVH¶ïd…о“Bû®PÍxòA^ <ù Ù $û¯òA^ýWÕ û*$»¯òA^Ý×ðA²÷*!$‡è$„¼†è$„䄆è䃼†èäƒäº3ŒÐÉ©#tR9r„N:HŽÐIyÐIɺµ_$d×d£“ ’ct²A^ct²ArŒN6HŽÑÉyÑÉÉî«tlÝIyµî¤ƒÐº“ ’­;Ù |Ø €/mÈ—6HE_Ú °ö¥ Rá—6ôC~©ƒü¥ 
-â}·ÖPAì¿^gþÂ]‹Ùäù·mpAìßOkÄz”GDôî°3AžoÖ5æO¸£tÇŠ1È Öq="ŸÜeçßÏ ÏÃrÄûº!±X’õb"iÝÿšõbž ¿pÄz2Ö Ã±^ŒÔwA¬‡òZÊ¡±¨aKÄ:þ¾DŸ\n8$„XÌ&%e„ØO¬…Âø‚~â_$—Ø{!>æ°i„øHÇ[ñá’ÞR±#}Ú½)„ØÙLD !Ö/³Õ¯Bìß6lbÿ¶GÍ#!Ä®’Ý„»Š6§…âýÅõ7B,6dØŒ¶Ýëô`„ؽëÇZdD×Ô_x”û·Vq%Äž‘çÖò볘Këìã¶vñRH³ÜÀ£åßñåjŸç³µÔˆ=¾=]æòsBì 8žMqBì5³† Nˆ½†sËMü•´Þ¹%¤â„´k É ±Îüà"'Ä;üñܸb»Ðz;.…Ø€ˆuHòù<|?g¬âNˆýs‹—ÍW9ÖZCî„Xìùô¤bcG¤ù¿ÝGÔo(xÑlü'ÄþmMœ»çu½¤‹Yk)Äþ}ÅÂ>žEå<ëÿœ
-R)! R)!€TFÈ ¤2B
-8Ä
-ÏË©œÃsø"€_¤€]С‹
-èÐF
-9´(ÇëåÐF*åÐF Úˆ(‡5R)‡5å°F ÖH¥\“5嚬(×dTÊ5©#P®],Þu¹#ríÎÖ—S®ÉrMîH¡\“:åšÔ(פŽTʵPG€\“:äšÔ‘
-¹&uÈ5©#@®Ñ)kŒ´ˆrnŒ(×äŽTÌ5‰`®IsMòHÅ\“<ærÂ\“>R1פ€¹6Ö|ZÏß¼rWšì0×FÎô:æšì‘Š¹&{Ì5Ù#`®É©˜k²GÀ\ƒ¸#ç«]©œkÒGĹ&{Ð5Ù#tMö k²G
-;ä`‡<ìG*ìG€òˆ`‡;Ra‡;ìpG€îH…î°Ãv¸#v$ÀN °Ã ©°Ã v$ ;$vHvÛ²ÃNÉ vH’vH’vÛš²HÚI IÚI IÚÉ yÑNIÒNIÒNÉ‹vÒ?’vRH’vRH^´“B’´cÐ.$’ì$‘$ìB"Iֵ촜å–yœ¬k9笓CòbX‡CëpH*ëÆZeêðW8$P‡DRQ‡D"Ôá€:’Š:P‡CêpH*êpH@ ¨Ã!©¨“DéH ÉéÒ!)¨K…Ö¥B"Ø¥ARi—‰p— ¼K¤/ ˆ— ÈKƒ¤2/ ¨—
- ØK…¤r…î¥BøR!©äK…ô¥B"öaTö¥AüÒ ~iTüad[OI¶õd¼ÚzÒH²­·Ø=y$¯Æž<’ìÒ†G’=Zy$µG«uèÐJ#É­4’W‡64’ìÏJ#É¡;i$¯¡;i$9t'$‡î䑼†îä‘äÐz7ŒÜÉ#yÜIÉ‘;‰$9r'‘ä5r'‘$GîØ#wRI^CwRIrìN*IŽÝI%©cw2IrìN&IŽÝÉ$yÝÉ$É­L’léÉ$yµôd’dKO*I¶ô¤’Tü¡’i’À¿4I*
-SL`*“–b’T–b’ÀR™$ “¤¢“”b’€RL’ŠR<P*“’Ê$© Å$¤kRL’
-RL@ŠIH1I
-HÓ$HÓ$H1I
-GÓ$ Ž¦H"Ž¦HR@š"‰@š" E$© •HG1Ià(&Iå¨L0ŠIF1I*F1I„QD0*‘d{‰d!’@QD(ŠHòAÑ4I
-ãR%ãR%ãÒ%)ŒK—DŒ“L"Â¥LR‡L"À!“
-á0I¸4I¸4I
-áÒ$ Â¥H"Â¥HR—"‰—"‰—"I!\Š$B\š$B\š$qi’ˆqi’ˆqi’Æ¥IŒC$âR$)ŒK‘DŒK‘DŒK‘äƒqi’Æ¥J"Æ¥J"Æ¥KR—.‰—2‰(—2I¡\Ê$Â2 ˜C&IÌa’€9L0‡IR9‡Iç0Ià&Iå& œÃ$s¨$t¨$& ¤Ã$)¨C$uˆ$°‘¤²N" ¨C$uˆ$uˆ$ ‘ÔI$©¤Ã$t˜$“¤’“Òa’@:L’Š:LP‡Iê0I*ëd’€:LP‡IRQ‡ê0I@&IE& ¨[ûÔa’TÔa’€:LP‡IRP—&‰X—&‰X—&Ia]š$ÁºIĺI
-ëR$ëR$ëR$)¬K‘D¬Ã$êÒ$)¨K“D¨K“D¨K“¤ .M’@]Š$b]Š$ÛK( ‘D¬K‘D¬K‘äƒui’Ö¥J"Ö¥J"Ö¥KRX—.‰X—2‰X—2Ia]Ê$b2 ¬C&IÖa’À:LX‡IRY‡Ië0I`&Ie& ¬Ã$u¨$•u¨$b& ¬Ã$)¬C$uI@"IE" ¬C$IÖI$y±N"I².D’DD’ëd’$ë6¨,Ö…IòBL’DL’DL’êd’$êd’$êd’¼P'“$Y'“$Y'“äÅ:Y É:™$É:™$/ÖÉ$IÖå>Ä:™$/ÖÉ$IÖÉ$IÖµì²$ë0I`& ¬ “¤’“D¤C$éR$)¤K‘D¤K‘D¤K‘¤.E‘.M¡.M’‚º4I„º4I„º4I
-êÒ$ Ô¥H"Ô!’l/ìVÿØ_ØIDºI>I‡IRI‡Jé½õ
-êÒ%êR&êR&)¨K™D¨C&uÈ$‰:LP‡Iê0I*êd’@:LP‡IRQ‡Iê0I@*IE*‰P·ÊPê0I
-êI@" ¨C$©¬C$uˆ$°‘¤²N" ¨C$uˆ$u˜$ “Ôa’TÔa’€:LP‡IRQ‡Iê0I@&IELH‡Iéd’TÐa
-é0It)’t)’l/›,R­ºIºI>@—&I]ª$]ª$\’‚¹tI„¹”I„9d’B¹”ID9d(‡L’”“Iä0I€&I…& ”#íÊa’TÊa’@9L(‡JR)‡J"Êa’@9L’B9D(‡HåI*åI œD ‡HR!‡HåI "I¥& ”Ã$r˜$•r2I€& Ã$©Ã$r˜$@“¤B“Êa’@9L’Š9,0‡Iæ0I*æ0IÀÜÚG`“¤b“Ìa’€9L’‚¹4I„¹4I„¹4I
-æÒ$ Ì¥H"Ì¥HR0—"‰0—"‰8—"Iá\Š$[z7a’ti’Ð¥I"Ð¥I"Ð¥IR@—&I.E‘.E’BºIDºIDºI>H—&I!]ª$"]ª$"]º$…ué’ˆu)“ˆu)“Ø¥L"Ø!“
-êÒ$ Ô¥H"Ô¥HRP‡H"Ò¥H"Ò¥HòAºe’Ô-•D¬[*‰`·\’B»å’wK&ï–LR€·d/e—2I2/M¨—& ØK“¤r“î¥IøÒ$©äK“ô¥IûPI*ûR%üÒ$~i’ü!’d[O"I¶õ$’¼ÚzI²­—lScO"É«±'‘$»´!’dV8zõhÃ$É­L’ìÐÊ$yuhÃ$Éþ¬L’º“Iòº“I’Cw2IrèN&ÉkèN&IÝE÷&Gîd’¼FîdäÈL’¹“Iò¹“I’#w¹ÜÉ$y ÝÉ$ɱ;™$9v'“¤ŽÝa’0v‡IÂØ&I»Ã$Q‡‘„–"Imé!’ÐÒC$¡¥‡HRð—"‰ð·Lño™$€Ë$Ó$—IR¸L’``Š$bàI
-—H" .‘D\"É?"_ù¿†Ib[Í?Ä+éž ×_^I·õ˜¶3¾Ÿ—Õ§±ðJºe8Ì+ß/[yDz X£Ää¤xº¥•t½ŸúE,_lã—Ç•ZI·Ï¸4_-ûç¸c_ü7öχÌ2Iìá}XÔÂçˆ5Jž¦‘¥|ð'|¼Ö—š9Ö%?_¾<T®QâSœß<ß {’KBŒ§0=´m±òB”•ôé±F‰åøœgš%6—³ß±@‹«%öà>­·\bæóNi—lö&ÙRè%ö}{¾~¹êˆû%fÉfè¾@‡ÔûÌØ£¯­ø¶'OÆ-ÙÜ«*«”„~°½í’ço=°PE<×ÁÞ´£·µRÉs ãÎݱꭙÛ¸_âÓd=L Lž-v½üg2Lìj ï©táÿyÛìë‹•øðéÁb±’‡û[¿×b%Ï7‚AÜX°ÕËf:OoÙbÑËÅJ~>µI¬Ubã3-F] [$–ú1èÁZ%?öס6pC{&ÝòⶵTI·ø}Ùåï׋HÊ0±o§÷Pd˜Ø‡ñl)¿D]=Ë2¹®TLl/›åb²û ËG'n> ö¡˜ì.©˜ì¦ø´÷Z%{,Ÿ†abóZ¼È ËßÏ|éÜ0Ù--ûÍæ¹g&ÝÇ|bíEûk×,ĉ–Š‰å{Û3ñp9…î§)¹§bbÛØëƒbbd»äÿ +&ô¼ªóéeÝeÛ?ù“?þå—¿ýõÏþÓßüGû“ßuQ^ð•‹’ð•‹’ð•‹ò‚¯\à+%á+åE_©(I_©(I_©(/úÊFIÛœ±õž@0 ›T³° faÌÂ&Á,l‚Yس²Ia0 ›À`é(‹ÁòQÞ –‘²,%%Œ“òb0RÊ–:JB¥B%!ìBJ#åE`””$0NJ)¥'% ,)%Œ•ò0ZŠ]*_íNÄß\á¤ð7W8s…ñ7W8)üÍõIÄ_V8 ü²ÀI¡o.p"ú®}s“B_´Ñ+úb¥Tú¢¥@_´è+-¥Â-øâ¥
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 962 0 obj <</Private 963 0 R/LastModified(D:20100413200510+02'00')>> endobj 963 0 obj <</RoundtripVersion 13/CreatorVersion 13/ContainerVersion 11/AIMetaData 964 0 R/AIPrivateData1 965 0 R/AIPrivateData2 966 0 R/AIPrivateData3 967 0 R/AIPrivateData4 968 0 R/NumBlock 4/RoundtripStreamType 1>> endobj 964 0 obj <</Length 974>>stream
+%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 13.0 %%AI8_CreatorVersion: 13.0.2 %%For: (Gilles Dubochet) () %%Title: (type_tags.ai) %%CreationDate: 4/13/10 8:05 PM %%BoundingBox: -227 -99 143 234 %%HiResBoundingBox: -226.5 -98.5 142.5908 233.748 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 9.0 %AI12_BuildNumber: 434 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: -59.5 -62.5 -46.5 -49.5 %AI3_TemplateBox: 40.5 29.5 40.5 29.5 %AI3_TileBox: -239.5552 -349.6377 319.4453 433.3623 %AI3_DocumentPreview: None %AI5_ArtSize: 841.8898 595.2756 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 5 %AI9_OpenToView: -285.3354 49.2085 4.4426 1589 965 18 0 0 470 360 0 0 1 1 1 0 1 %AI5_OpenViewLayers: 77777 %%PageOrigin:-399 227 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 965 0 obj <</Length 7512>>stream
+%%BoundingBox: -227 -63 143 234 %%HiResBoundingBox: -226.5 -62.001 142.5908 233.748 %AI7_Thumbnail: 128 104 8 %%BeginData: 7364 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD0AFFA8282F53FD7CFF06A8FF5359FD7AFFA92EA8FF537EFD7BFF %53282E28A8FD27FF2E2828A8FD51FF847EAFFD27FF5953AFA928FD7BFF59 %2EFFA82FA8FD7AFF847E7E2E59FD7CFFA87D7DFDFCFFFDFCFFFD31FFA9FF %FFFFA9FFFFFFA9FD76FFA9FFA9AFA9FFA9AFA9FFA9AFA9FD1AFFA87E537E %A8FD2BFFA8A9A8AFA8FD23FFA9A9A8A9A8A9A8A9A8A9A8A9A8AFFD17FFA9 %7E282F282F282F2F7EA8FD26FFA8532F282F282F53A8FD22FFA9AFA9AFA9 %AFA9AFA9AFA9AFA9FD16FF7E2E0128062F292F292F062F7EFD23FFA85906 %28062F282F2829065384FD1FFFA8A9A8A9A8A9A8A9A8A9A8A984FD16FF84 %28062F292F292F29542F30292FA8FD21FFA853062928FD042F542F30292F %84FD1FFFA9AFA9FFA9AFA9FFA9AFA9AFA9FD09FFA8A87DFF7DFFA8FD04FF %A8280529282929535353292F292F292FA8FD1FFFA92F00280629062F292F %292F292F292FA8FD1DFFA8A9A8A9A8A9A8A9A8A9A8A9A8FD04FFA87DFF7D %FFA852275227277D27A8FFFFFF530628282F5AA9FD04FF7E302F302953FD %1FFF7E06282FA984A82F7EA8A9847E2F302953FD1EFFA9AFA9AFA9AFA9AF %A9AFA9A9A9FFFFFF52FF5227527D7D52527D527DF8A8FFFFA8002806297E %FD07FF7E30292F06A8FD1DFFA905280653FFFFFFA9FD05FF7E292F0684FD %1CFFA8A9A8A9A8A9A8A9A8A9A8A9A8AFFFFFA8527D7D27A8FD05527DFF7D %A8FFFF5328282959FD04FFA9FD04FF7E302F2F59FD1DFF7D28282953FD0A %FF5A292F53FD1DFFA9FFA9AFA9FFA9AFA9FFA9AFA9FD09FFA8FFA8FD06FF %A82E002806A9FFFFFF7E067EFD04FF292F292FA8FD1CFF5300280653FD04 %FF5A5AA9FFFFFF7E2F292FA8FD1BFFA9A9A8A9A8A9A8A9A8A9A8A9A8FD14 %FF2828062FFD04FF2F2F29FD04FF542F2F28FD1DFF2E28062953FFFFFFA8 %2F067EFFFFFFA92F2F28FD1DFFA9AFA9AFA9AFA9AFA9AFA9AFA9FD12FFA8 %28052828FFFFFFA82F292FA8FFFFFF2F2F2929A8FD1BFF842805280659FF %FFFF8407292FFFFFFF842F2929A8FD1BFFA8A9A8A9A8A9A8A9A8A9A8A9A8 %FD14FF2828062FFD04FF2F292FFD04FF54292F28FD1DFF5328282953FFFF %FFA82F077EFFFFFFAF292F28FD1DFFA9FFA9FFA9FFA9FFA9FFA9FD15FF53 %002806A8FFFFFFA92984FFFFFFA8072F0653A8FD1CFF7D00280659FD04FF %532FA8FFFFFF7E29282FA8FD1BFFFD04532E5353532E535353287EFD13FF %7D2828282FFD09FF532F28297DFD1DFF7E28282853FD0AFF53282953FD1C %FF5300280006002800060028000053FD13FFA92828060653FD07FF532928 %2828FD1FFF28280053FD09FF7E062806A8FD1CFF2E050028000600280006 %00280053FD14FFA8062828282E7E84AFA87E292F282F06A8FD1FFFA80628 %53FFFFFFA8A9FFFFA87E282F067DFD1DFF53002806280528062805280606 %53FD15FF7D0028052806280628062806280059FD21FF7D0053FFFFFF7E06 %2F28280628012EA8FD1DFF2E06002800280028002800280053FD04FFA8FF %FFFFA8FFFFA8A8FFA8FD07FF7E06280628282806282828067EFD23FF5952 %FFFFFF7E28062828280053A8FD1EFF5300280528062805280628050653FF %FFFF7D52FF7D52A852A852A8527DFF7D7DFD04FFA9A82828000600060028 %28A8FD24FFA8A8A9FFFF8400060028287DA8FD1FFF280600060028000600 %2800060059FFFFFFA852A8277DFF7D527DA8527D7D27A8FD07FFA87E597D %537EA8FD2BFFA8282E7D7DFD22FF5300280528062805280628052853FFFF %FFA87DA852527D52FF527DA852527D27FD3AFFA8FD25FF2E060028002800 %28002800280059FD04FF7DFFFFA8527D7D7DA87D7DFF7DA8FD60FF530028 %0628052806280528060653FD72FF2E05002800060028000600280053FD72 %FF5300280628052806280528060653FD72FF280000060006000600060006 %0053FD72FF7E2E532E5353532E5353532E537DFDFCFFFDFCFFFDFCFFFDFC %FFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD9AFFCACAA8CAA8CAA8CA %A8CAA8CAA8FD74FFFD0DCAFD18FFA8A8587C5883A8FD53FFCACAA8CAA8CA %A8CAA8CAA8CAA8CAFD17FF7C51262D2C2D2C5151A8FD52FFFD0DCAFD15FF %A82D2C262D2C512C2D2C2D2C7CA8FD29FFA87D5258515858A8FD1EFFA8CA %A8CAA8CAA8CAA8CAA8CAA1FD05FFA8FFA8FD0DFFAE2D2D2D512D572D572D %5757572C7CFD28FF7C51262D2C2D2C2D2D58A8FD1DFFCACACAFFCACACAFF %FD05CAFFFFFFFD047DFD0DFF2D26262D2C2D2C5757582D572D572C7CFD25 %FFA82D2C262D2C2D2D572C572C2D7DFD1BFFA8CAA8CAA8CAA8CAA8CAA8CA %A8FD04FFFD04527D7D7D275252A85252A8FFFF582C2C2D2C577CCFFD04FF %FD04572CA8FD24FF2D2C2C51517C83FF57572D572D2D7DFD1BFFFD0DCAFF %FFFF52A8522752FF525227A8A82752FFFFA82D042D2C2D83FD06FF572C57 %2D2D51FD23FF5126262D2CA8FFFFFF582C572C572C2D83FD19FFA8CAA8CA %A8CAA8CAA8CAA8CAA8CAFFFFFFA8A8FFA8A87DFF7DA852A87D7DFFFFA726 %2D2D2D83FD05FFCFAE2D5757572D57A8FD21FF832D2C2D2C57A8FFFFFF58 %57335757572C7CFD1AFFCAFFCACACAFFCACACAFFCACACAFD12FF5226262D %2DFD04FF832C572D572C572D572CA7FD21FF58042D2C51A8FD06FF7C2C57 %2D572CA8FD18FFCACAA8CAA8CAA8CAA8CAA8CAA8CAFD12FF7D042D267CFF %FFFFCF2C572C572D572D572D2D58FD21FF272D262D2DFD07FF58572D5733 %2D7CFD19FFFD0DCAFD12FF5226262C51FFFFFF832D2C2D2C572C572C572C %7CFD20FFA82D262D2657A7FD04FFA8A7582C572C572C58FD18FFCAFFCACA %CAFFCACACAFFCACACAFD13FF7D262D267CFD04FF572D2C572D572D572D2D %83FD20FFA8262D2C512D57A8FFFFFF57572D572D572D2D58FD18FFA176A1 %76A176A176A176A1769AA1FD12FF7D2D262D2CFD05FF7C7D7C572C572C2D %2CAEFD20FF832D262D2C512CA8FFFFFF572C572D572C572C58FD18FF4BFD %0420442020204420202076FD13FF272D262C7CFD07FF2D572D512658FD22 %FF262D2C2D2C57A8FFFFFF57572D572D572D2D7CFD18FF76204B444B204B %444B204B444476FD13FF7C042D262C7CFD06FF572C2D2C2C7DFD21FFA851 %042D262D2CA8FFFFFF582C512C572C2D0483FD18FF4B20204B2044204B20 %44204B2076FD13FFAE52262D262D518383A8A7832D512D2C58FD23FF7C2D %262D2C2DA7FFFFFFAEA857572D572C51AEFD18FF76204B444B204B444B20 %4B444476FD07FFA8FD0CFFA72D042D262D042C262D042D262651FD24FFAE %2626262D047DFD05FF582C2D2C2C58FD19FF4B44204B2045204B2045204B %2076FFFFFF7D7DFF52A87D52FF7D52A852FF527DFFFFFFA852042C262D26 %2D262D262C52FD26FFA8042D262D2CAEFD04FF512D2C2D51FD1AFF76204B %204B444B204B444B204476FFFFFF52A87D52A8FF52A8277DA87DA85252FD %04FFA87D27260426042604517DFD28FF7D04262626047C7D7D582D26262D %A8FD1AFF4B442044204B2044204B20442076FFFFFFA8275252527D52A852 %27FF52A85227FD07FFA77D587D58CFFD2BFFA82D26262D262C042C262D58 %FD1CFF76204B204B444B204B444B204576FFFFFF7DA8FF7DA8FF7DFFFFA8 %FFA8FFFFA8FD3AFF7C51042D042626587DFD1DFF4B442045204B2045204B %20452076FD4DFFCFFFA8A8A8FD20FF76204B444B204B444B204B444476FD %72FF4B20204B2044204B2044204B2076FD72FF76204B444B204B444B204B %444476FD72FF5244204B444B204B444B204B2076FDFCFFFDFCFFFDFCFFFD %FCFFFDFCFFFD2FFFA8512CA8FD7BFFA82D588304A8FD2EFFAEFD4CFF27FF %832C58FD2CFFAE5151A7FD4BFF2D517C04A8FD2CFF047D7D2C83FD4AFFA8 %7D58A8FD2DFF2DA8CF047DFD7BFF26587D26A7FD7BFFAE5158A8FD7EFFAE %FD42FFFF %%EndData endstream endobj 966 0 obj <</Length 65536>>stream
+%AI12_CompressedDataxœì½ë’$Çu ùùµ?dFš-ºÂãܵ5««³CF3š•ÁŠÝ°G}ú"‰óôëçò?žÕ€@Jfè$Øíž‘™áŸŸãá_Æ_ý¿ùò³«oÿðøÙôl¸8ýÕ_ݼ{|øðöݯ.´öâóW¯>¾ÿðNª~ñÛ_^”úªú¢«Ï÷¯ü…ÿõñÝû—oßüJŸz6Ö'ïeë_üõËW¯ß_Ü~üÃÛç|üðË‹_ü²>÷»—^=Ög?üéÛǯ><|óþÙÃË_ò®u7·êÓóe™.Ëp±ÿjX.~óëúüõÛo^¼|óÍõÛþÕÅgã¸]|vež.Æi®Ïÿ§—¿}|þ¢õÙR_¶×ÿ/óøl9†½¾zz¶Í{Ýâöíó¯ß|øÍ»·Ïß¿¿yûêí»÷¿º¸ùÓÛ‹_?|SŸy¸øï¯^½ý§‹ëWÏÿ>mrÿö͇úÒ_ÿéݡuûÏ~ûøÍÇWïÒKþæññÅã‹ï~áÕçËW÷/_=ÖcõúáÃÅ!Gõêó2~uýñå«óñõëAœå»]}>}¥Ÿî÷ïëǪŸPþ-ÕÛWŸ¿®5_>~øP¿t}i™ßþõuþFµR¿ø»úÖ/µ!ëQþ¿ôݾ{ûíë‡w_·ýl9äh­£üÿ¬Gn®5öºß=¾þöUm=°óPŸåÕñ/Uý>~è§Z¹,ãÅgSÝÉ:mÛÅTŽgó¼Lõ;MϦuœl›Ö
+ÿøòñŸ~uñ7oß<Úá¹z÷áË—ÿ«~á}.ÏöýØ/–cy6nËjÏÿöã«Çw¿óRŽ°Vv˜~ýöÅã«Úc/÷¯ôè裴ÿ·üîáÝ7jïyûêãíÈûàOÕfø/z”n±Ø|ñíã›ß½ý¯úI?÷åÙ4-óEýŽã°×ãQ¿á¸^”e?.Žµöº]ßlÞ†‹iå틾¹:ÙŸì·ÙäOmÅßÔvýâÝËo^¾ùÕgSíèµÃ[‹ÿõ»—/ZƒoãÅnÿ§_èÙžþ;øÏ>y=><¾ñãR;ÚͯSÇžýúËú¶wo^ܼ}-íñ^ιÚcÞÔÎôêí7ö\ü[Ÿ©›üöôw§é¸ü‡o?<¾¯ûzõX¿øå7ïþññ¢ŒûåÕ‹—ïê3ï/¯ÞÕ§/ož?¾¨\x¸¼{xþñÃãåß|¨½ýñò ^vºü}lñ`/yн]><ù®v•¯_=þóåC{mÿ ;ÎÎuËÓå£mú˜6}ŒM_Úî_Úk^¦×¼Œ×¼ÑÝŸ.ßÚkßÚkߦ׾׾µòÑ^úÑ^ú±½ôtù1^ûâá›oß]¾¨ðññòy=Þ—ï?<¾{%ßâýãs醗øXùùáòÛ‡wr¾ýãeÝâõÛxUÒ;=™ëÞ^\>ûmÅË7üpYOîr:_Úgˆ·{öæí‡__^Ý]~ñþÕÃû?ž¢êÛJ÷×/ß|l/âï?=¾¹|ýñ¼úôäuüýöÝ‹¯ë®^¾y”¿~xÿüã+)ð‚‡ZïïþßË—|ñöŸÞ\>þóóW¯õŸµw½|þðªn[}]Ïè—ož~Œo>ÊøòúmN¾þÐJv$*¶_~+ßüý·Ï/¯¬1®¼³ù_w—o¥¼yQ?ÒåãkýK;r=ĺS
+¶O-µz«|ñò_J‰ƒÇü¿Ç¿¾~÷`-z÷ñÝ[ý¤z¦ÄçÖ’îîtùõËú…½{Ôw¾ü¶¾ÏÛÒA´­Ûyö‡‡÷ñµP_úáo?¾¯]äty•ºè]ú÷•õŒ»øpwvh>·úÏswý<^ô¹½è {Ñi|ï/ì¿·Wü>ïæ÷öÔ i©÷ï_^¦­­!^?<'ý½Ž
+éÐýòù§ÞàÏÇ;ÙsÆ›ÕðîÝcÛ^‹üýº¥žÙ/ß¿n½1ÕüFÈóüÕã—ª!Çëyo·_׬&6­½{ó¯Þ~›>dÔÔ!ëâ¿=¼ûöûv-ÍT‰ù¢ž!z>·Ãøöõ·’÷]|ùLJoõã~øã½¾òËÐ_=¼©8×úØ¥à§ößʳIV;]„û}Ÿ}ö=L\.®ß¤§ÿZ°\ǹ_É®ß<êg°š‹òËÓ'ê*sÇ‹ë5àþ¿Oƒü)Ã4ÌÃ2¬Ã6ÃÕp=Ü wÃ})¥ò¼,e«ÇQ®Êu¹)·å~Æ2Žã4Îã2®ã>ãÕx=ÞŒ·ãíi¼ï§aªÙñ4O5_›öéjºžn¦ÛénºŸkú\SÑš¾Íë¼ÍÇ|5_Ï7óí|7ß/ÃR–q©iв.Û²×íj¹9-·ËÝ:¬e×i]ÖuÝÖ}=Ö«õz½Yo×»õ~¶²Û¼-ÛZ“ž};êãj»Þn¶Ûín»ß‡½ècܧ}>íó¾ìë^_·K.xµ_×ÇÍ~»ßí÷GýþG9ê7:¦£~¼c9ê{Õýí‡ü¹:®ëã渭»ú¸¿ªGëtUÍU=WÓUý>WõS_­Wõ\Õ}_Õm®äÏu}ÜÔÇíÕ]}Ü_Ý_ú¨õº¼ø»«Óu=(×Ëõz]¿ƒ|¸k}ÛkÝǵü¹©Ûú¸»¾¿¾¿©­uS[æf¼©‡ùf–Çéÿim;zëZûîÑ·Úƃ¶òTÒÒk´5­}§í-->¢É·®Ñ­Å‹·ùâ­¾OGjyiû!µ½¶þé;šIàz¹‘°Ü×>@/˜½œ÷„»“wéSí¹K\E—ÐNÝB;…÷‰Uû„õ
+é7§Ú-´c|²k,Ú5¬s\iç¸ÑÎq×:‡÷IûFí'í»v
+ë·Ú%¬CÐrëÚæ7­µÿ¥¶í[—ö•Öµö]»óÙÛøä<~¢ieÚùûZúÖ[ºœjc·¦Þõ¿óÓ½oñÖæ´º¶»¶|m÷“7½5þyó;
+´ý Òä¿Ö¬'€‡«“v:„q‚.!bÒNA· cÐ5è§Ú=¤ƒXG¡«´ÎK¤Ã|OZÛþ„þB;,ñоU{ªôÕ9ú«õXé³ÇÉ;í9”æ³ÎzƒÏ¬½Tú¨QHú¦ôKé•Ûtœj‡”î(Ž g­½OúÞmíw¥ö¸¥öµ£ö²ÛÚ»ŠŽ+›v%éF÷µûLµÃ쵓Ülwõ#Nûrªàп¯-;ÕvÜkËÝÖ“|¬'öZÏçë«ÛzõÌÝj£Þ\ßÕ¯3Ý,µ—\ÝÜÜÜÝXÛÞßßßÝßÞßÔ3ùêþ¨g«}v¹Ÿï§ûñ¾Üw÷www·w7w×u˜8jçÚ*Ö–»¹t¼+wÃíýíÝíííM¥ÿ•ôšSåÓv»Öse®'ßx[n‡›ûún·õ=¯ë;õý·zz,uT˜êQn†J‘»J“›J•«úI÷úy×ú©çÊ: ®‡
+£»
+¥›ú•®êÛë¹²Ö“r® +͆ã¾vÕÛÚm¯k>êØêáXj'Ÿj‡/ÇPχ;åæM=K®Nõ¸íõè­õTšë¡ë 6TþÞÕÓ‚Wõ„Ø뙹ÖC>ë9[¶¡žÉwµ)nê¹}Uf¯Í³ÖFškSU”u¨\¸«­wSÛðª¶ä^Ûs­­:׶k ó}eÌmeÍum÷Cù³V͵7ŒµOÔN8ÝWTÝÖ^r-å¨çûVy¶Ô4Õ~T¦a¼¯½ê¶ö­ëÚÇŽÚÓ¶JÅ¥ö»©ö¿2å¾öÇÛÚ+¯ËÕ¿EÛ¶e¯k¤òÓ´¬¶«4ëé§lWiÖÓm×ÖªÖ¨§Óª•;{Ù~lÛ~²uÿÍÏÛݾÿšóö{[ødMüÓµ0çí8skÛÎõÕõ»š É\Ô2\”aš/OõUª¹~*VŠg£\Ÿ»¾4ŽDë‡ehã'2´Q2´92´E"%5¶³Aòv¸×üL†ÉÑc»M‡ÊÝc÷ëúoå‹z`'ƒ¦›§z$dä”±s×ãcÞExãY”7i”'#jŽôöR¼w’Oƒ>yX‚7i{-.Z (#±ŒÅ׳å*·Êãޢ“†Žò°}-,J¸¸iȸkØhÿx
+îyä—è7Ú®´X,ÚôŠs]ä$8ltöØŸ"玞G7JŸÃé³iΚ]i ÖóÞÛ6“Sw=ÕïayZ}»zPzd ‘¡F›Iûl>è #ÃŽ <2ôÈàs¥Ùç®C B2 -z~ÙP4ž´× :"ɘ$£’ŒK22Éؤq¥„o’Õ!J)¦fíí£>.ƒYuÐ:é¸%#׎^2~É&c˜Œb›Žd«ž}vÎO:¦ÞmÛîu|“îö¤ÃÜ͵ý¹ÒáîÐ!o×aO¾U¿EÀYÁIBæRä¡3,’ZKàs¯Ãc}h_õ}ßøãÖwñ°d“+CL±Ø4 É2áâßl‰Çê-{<Žx\ŃÏâNõ¿Ûô¸‹Ç=Û!%=ÆxLé1Ÿ´ í±¤Çš[÷Ø»Çqþ8i_ñ‡Ô'4Ÿž¨›¾c^†©ºÑSïõôStÅç`òäÜ•'Ò5‰Ö™—âóq2S.§<ãò½ó-ÝŒKš[[¼M­ ¯NÞ`·Ö.Þräí0ÛAµÃ'ï+ìFÏ79ïîå,Ô³Q˜!§ç|ªçé¢zÀZtRG¬­I"5HÉøTÇ& ,ôµ˜hÖÁFb¡kZ–J €NŠŸ+&†úaê™XãŒÍ‰¼¤ì6¹Tóó˜^5/¿©ß×BŒ–‘Ë|‘ÄA0|{’pAcËÉ7n5/·‰-ÅNFOO8)N¾rÆ´Hy ¢8KA¤Òì/;cS+[[ _iójãjÓZÃ.Þ¨‡7¦5dÑ&œµå¶SÅïQYs]?ëmô½„k[Iˆs¿Ú7=)ßìS$ý,=u0½¦TßSÃ3´¹ Ìlz®f·)$#›|²ŽéºíäAá³v>o—;°ž„9¤ZÈë;îœ07š©\ë¹}¥çø¡Y‹>Nž¾XA 1k01i@¡!…=dŠNƒ‹;Ÿš¸UÛˆrE¸±k³錟³¢hÒA»† !ˆ%A·ŠH0r­³dפHÓ¢“gF‘ÉC£”§\{žd™’Å,–/YN¬‘‹'Mw'Í›,sºò×ÒÓ§so2ÎëCGüáúì±ûãÐÿ·i¹ú8é_s÷`Ïfòòü^ù©¦ ÿŒ?ÿ{vh¼¶Œ«]‰ž%Ó:4À¸ÑéÈQÃ:AŸ¤RrVßi5iÒdés‘:'~ªç\û²©p;¿f’”læJ§%¹ä5ëÔ¤ôGGïtzÒÆPFÐë“ÌSž žŒœ:j¦1“ñ2FK¿J!gçâ#¥“2R2J¶1ÒFH»kOçäLì<9<'> ÎÞÌÏâNúË
+_V8¦E…ƒõ¾’°Žÿ' n<,¸ö¶dõë¡1„]£[5²˜µ…íaë`ƈD$*©Éæ` Øb9Ì/‡¹ópÆÅø(ÏׄOÆÉ~½>{¤Ñ÷¤ –úÇùŸ~l¿ïGþ³¨ < Æ>®Ð5QýcyòHË)þ¹=yìùaK¿{Ùáw,:L8nº‹û‰ž|úúlÉa
+GçXFq‘~ÇjC¥>¥‹öyÚ÷,¦è–¢µÅh¶¾ðæ”–X•fëÒVï(Ú!ôøÄòþ¼ÀÿJÇÖ›65í«ûóâ±óUý¾xìäSÕ?hõØw®öh.ÊICïZðáK>b2[¯g¤ í¼îÃW~œ|ñG7«­×ºÛĶNmŸE?rÀý Çnâ‰}DÒ‡?n?ßEü9¿jÐ~gÇï£F¿yûêï.nß~à7@jÌñ´îb|VÆå¢<Ûš ÊEq)nr]z]êWü¨ÓWßêüCñ_ùÛ?iñ?×þÏZùOóů/þî /´þo[ÿò=±ã×µª«ÿ5þnZÓ€\•·{£ïóÅXð·ÿÖŸñk?zG/ÿôœ¾ýZžmò‰ëÆëR?Ük¯;¤fÙK¹ÐWÚ,˸ÎZž×UÊóZ»ÛsÛb=|=Ã:NòY¼¬¯ݦîKßeš6YêÑ’*YÖ,/™÷q–r=ƒVÝd²öáíâƶ™d{©+¶I R¤X?Q±]ÔS®–åCø»ݤjÙ¦Q_2¯»–e¡„–í]êâËÔPh•ºš¼ìúšJ9)×fÖ/·”Aߦ+{€¡žÚëQþ´ÚAÛ')WHlR>ä'ky™7ŸÚª“ÕMG¥G-O5–ºX÷ú—UÊË2mZ.›l“¾bßyAÝÙÁ0Êñ˜êZ7-×Qζ˜êá]©+è¯
+Ô0K¿â!ãž³žÐ{íûV^´¼Õpƒm¬ÅêW¬¹¾f·CR75ö웂ÚEœ’ûhU Kô%5¨Ðò4Z^ÖÝ€V{¯ls_ÿ[æz,=è¤nœ‚tR,c#]-5qëH'u£}bíÐK=Ö­‘NÊe^3éjÕ¾ÎtR.K#”§¥'Ý"§å¤“—ŒK#–‡Žtº×­‘®– ÛN:-/=é¤N“NÊÇØH'ûœ§žtòç¡‘NZi¤«åÑɤ«uºtµ¼ÎS#Ý"'åÚ‘nY*PfH·È¯½tµ<GOºZ·G#]-ïãÖH·Ôèk(éjÕ(? éj¹¶#<¿=éjݤ„wÒÕò²­tµ¼KOºZ·KnÙž õxC:)n¥'Ôík#–kuµ\äËfÔIà
+ÔÕ²\÷ ÔIyzÔÉ6ÇÐP—ö!¨“â´ô¨“º25Ôék¶†:-¯=ê´nj¨“ò26ÔÉ׫§`‡:9ÛÞP§íY꤇ìSºÚ‘]Wi¨«E™x Ôi¿+=ê¤on¥¡®–kÜÑPW˺mFôqÙÔ)[¶†:-ï=ê´îh¨Óófj¨S ê„5ÇÑP§å½¡NÊûñu5Ϙ§£#T-먓ruR.SéPWë¦u˜uR†=PWË£…ë®Ö”cÛƒtR®í¤“òºéæÈɳË1ä´l ÈiU™rR.(…œ”{ƒ€œd]ÇQrò‹î”qRÜ," ÆÉ7Û¦#§GkÞƒqµ¼J•WëöÁê”qµ|Ô*7ËÙX»vb\­š‰ß rµ¸X•qµ¸­BãjÝQ³÷`ܼ?½(WËÓ4/äjÝâq–B®–õØ
+é¤ìçNnÓC7éäDí„RÒm’· ƒt›æ­Sn×¼µ‘n×¼uìH'sü»ÅFJº]òÖa Òíš·vA]ÅSí¤+¨;4q-:™ª? kºC×} Ôš¸. uÓ̵Vu™k-w™«<ž¹–¡Ï\ËÐg®µü$s-C—¹–Òe®R<Ï\¥.g®ZN™k)O3W©Ë™k-w™«”Ï3WÙ&g®iʺò4s-¥Ï\õ5)sÕòYæªu)s•rÎ\Kyš¹–¡Ï\¥=å«ÃºãiâºkÞZ@LÀ¯FGEÝþ4oÝ%-GN§Ë)H·ë–sG:ÛF Ù”t»¦­cnš¶J9§€NΚilÝ®Yë˜A·kÖÚ"º]³Ö)@·kÖ:?¬õÔUx™tƒæ­s›¤$Ú¶-X7Hæ:ì}\§?s´·ÜuÔUÓnÜu0¬‚;Ç6®wƒ¦¯@Þ ùëñ`'=¾vÏ´4ŽŒ;©+rúÁ»ÁŽh à Ò
+»1ˆ7ØAlÈ“~9¬÷*óÉc·¥ÏdMd`J½A3Ùqì šÊ–µãÞ ¹¬ì ðÉ×UâFŒ§Ùléb<Éfç _é²YY^4YzÜB<If§Æ½Q“Ù¹e³’ÌÎ[ŸÍJ2kl´lVQiÙ¬$³ËY6+ÉlŠñFï×–ÍNšÌ–~ÊN“Yòdš³ö#?J:g'ɬ RmÎN“ÙÒæì$™]–6g'¹Ñ´ösv’ˆZ²9;Ifž6g'ɬ•Ûœ&³S›³ÓücŒ9;Mfç~ÎN’ÙmisvÀƒ9;Mf§~ήOf'Íe[2;=Íe'Me÷„L˸µ¯ÆZŒ×å²ÛaÚ‚{Òí–áØ;òI眎Š¾A“Ùq ö šÍÚ<`ÀON·ŠÌA?9Ê<¬?­á.P*E‰f
+šÖ6
+>w
+^^½ûpûRïoûðîO¿ªU¿Ðºö¡_^\~ùAnãzñ‹ëë«çÏ?¾þíÛzÛÒ_^üŸòÂÿ7½BïÞ§÷ü”û÷ÉýSýEWßù¢Ïoí%ÿWý¯þï÷'VŠ—¶R¼þC–†¯¿øåÅßþ· £¿8}r]ôÙBs9KÏf&¥*ÏLꉼ¦uÒÇÓ™I¡Ò:¤uÒr kHë¤ó™IÅÅ––Iý̤”Ïg&í´;6ËžVHOf&µ*ÍL*³Ò̤2îlfR8§c++¤nfRŠç3“òÍò̤­43©;›™”×æ™Éúw73)<:›™Tµ™Iùž‰årÎg&åHå™I!Iž™Ô¶8›™”&Î3“ÚÄifRϧ³™I9éòÌäVú™I9ãÏg&139)&*Ì#ŠöœÏLJ]ž™T>¥™IEØṲ̀Ôí¥E±‚½<3)åó™I©Ë3“º1¢X)žÏLê[o-Š•rž™´mú™I­K0×·I3“rDÎi®ìL3“²¿<3)_ëlfRŽF¢¹¼<3©ïlfR;gš™”rž™”6;Ÿ™Ô¶N3“Ú_JZ"}<™Ôº©Q<aÆ–HOf&VifRËifRÊyfòÁ¯Z‚ÿPzËÒ‘E»D /ZGø@"ÒâóÚ…íЧø\C1èË:ÏK
+Ðk×)vÁ¬èã2Í¥]`+l슓è5úì²w ÐësÚ‚§’*Î)N=eÉqú8l¶ aúzø)O˜¾.ÃÙĄ࢞œKÓw÷#L¯§‚å)JŸêøµí)J_†á°‹'Déëæó9J_6‹}m¶&çÊÆ£WN÷󰫤},ªõ(}/‡Q<GéÇa3¥Å&^ ÒÁG«¤¯Å†eÑùɆ£ëäØYŒî“/„è벧«ê5gœmj7‡èûla¼‡è3S·¢¯Ã1Ÿ‡è,x DW̶]¿j¡/Ó¶¦
+NDÔµ8v²iD­.éQ¸FÔR7»ÃaþiDØZ.sc€5˜¨|Ûµ”K75¢ mSRK„‚„ÔúËÐ4¤–rí{Ì 
+»?-MC4N•“f9Fe‰ï²Fe-ò8÷Ûú‰Që<”À¨ÄÇÛÜsTNÔ­4ŽÊнO£²ÍÊ£rÚsƒ©èÛGc©ÍGm,•ºak,¢¥¢oïcÏRÑ·í7–
+K–©ÁTôíµô0-LåÍcƒieÈbõ ¦5D˜ÝW˜Š¾½SÕ·µƒ©úÛë0•ïå¤TšÊ¹=¸ Måpí~¸ô´¨áR TŽÿæ/„oýˆ tÕå]S T{°¡5Pªö¶MA©ž=GTO¸}ìHªòövIÕÞn U3{.HÕÞ>ö
+:-{šâ ÓªeÒéÛÌGNôaìH'GÒƒ^%6ç´餇LËÒ‘NzÒbXRÒÍ0×I§=oÚ:ÒiïœFH'EÛ«‚Núó¶LèDÚ>æ1@§h9–
+d¤“×X~c¤+-ctRµ´”Ußfn)«Jê=çê܆–±jc£”sÒA6ÏÜáœt¤ciëtØzy8§ýnê3Ví›–-KŸ‘â1·”u’ßÈXú”Uºød
+:%ËÑrÖÉ—úgÐiÍ(è´¼Œ:EQÏ9Ými9«–‡–³ªç]žä¬“.ÈÝ:Î_'
+éÇÜqNä`Q’rN›³]Þ¨ÅRæþú†t¤É˜d˜ƒ·`N:žMr6ÌùOš‚9é
+«æjçY,_n˜“¥v­Â0'`Ù·†9)[¾Ü0W¼¹À\ñÜ Ì¿@™9§ XÆ9‘ºmrÞ8W<Aî97꺄5snäFsRÖlÝ@§"¥Š:ñ³Eœ1ÐIi²ÀK@'J³_½ÐÌÓ:èD…Þ×–¹ÊóÃÚg®bSO[Ë\MùžtZ.}æªûm‰«JÜ6骠SKÜ&ntR§äwЩ9>µK¹òÑŠ…w:ùÆ¥´Äu´…Ñ:‘\ç£O\U„=æ
+:±¶!²œ<bm{ k{[æ*Öö¼M:q¹>èFÑh™«jÚ6#  Szìçè¤niñœÇ–¹š]ÝaNìr´ÄUÊÇ8椼•þ
+„Ô­¥%®±Çœ”‡µO\õ­- Òž­¯±GA§å­K\µjn‰+®8 SGýèW9óÑWmN£”’NzÈb—$‚tÒ“¶¹%®£28@§oìóV霳ýê¯v¿ð蜓î|Ì}Þª?L0MÁ9ËÞòV-¡ƒszš4ÌiÑ®{(æDgáÜèë¦ÀÜ8ÅõqÅÜ8ùXßc®,âvkU¤JÃXÇœ”5U·ïjBw†œÔLÖ‚›j–ºß!'E› Ɖó¼Í턔ǥ­T‘ò¼ô+UÄÖ¶*âTø¶I?Eœ–‡~µŠîÖ.'(ãÔð¶ËFÊ8Õ¹íœ ÆIݶ¶Õ*&ŽÁ8)/Üãä:;•qÅÍƉ˺ïýr•¢“‹[0N¼Ù%嬢Ù[¿\Et\q`aœÛÆ/E\‘Y¿^ âj¡—2®–u医”91N|lòrƉ¿=ím¹Š<ïÌ ÆÒZÎ*ºöî±› ®–+¾ú«E¦2–¶ZEåk[y¢ˆ+$ q…g\!qƉò<Z~Sûzo«UŠäVe ÈI¹øe* 'uÃÐV«Ä>rRž×~µŠ¾÷<äô5~mŽmºÕ*Z5µÕ**OmµŠ|=qƒ3äÄØÞ÷¶ZEÛsrÒE»~+ò‹žs[®Rà­SN»ÞØ/W‘î¹ÛJí62>5ÌÕò0Mýréå‹]DPÌ)X¶¶\EË–,æôL±LV9g¤Ù‚sJ¢¡_®¢ûÚr)ûl圖‡'ËUô·'·.œÓ™ÍiÎÉŽz (œ‹òØû¼UnŸ²Ûijt!ÏH'á~y*P‡À êÄÞ^사¢N~ÁsÒ@œ“kK[7Y9;7ÔIy0Dêd·{iW[夆vå;£NÅñc Ô‰Ÿ=n-oÝdÙóÒç­rò [@²²¶Ù9\÷µ¿àª“‹KË[õg)§¶2OÎÈ͸¨“u…óØ.DrtZÞ*?Xz}4w°lÚQ' Ž–†:Yq^ò…ñ±·±å­âkÃdEÝà‹z2êL=k¬“ÅéëÒX7´ ÁºÁ®ÖÉŸMëŠÏ5fÖ©ÝòV-—–·–âSž™ub_ï-oC{+Kc]-/ÃÒ³N~5khykìÖéÊâuòÖ–êä%-œ³-º¼U«¦–·ª:>µ¼µøOsu¤«rÜ[Þ*Í9m~N~ qÚzÒÕžä÷=PÐ _·Ò”HÇ+{Ÿ·Êìx±ù8é42™î<UÐÕþ¼ùª™
+ „C!É„C!pômç
+I&
+‰ƒĹA’ ‡Aá0H I&ö„à q$™q$0.íC‡A’‡AâŒC q$™qn€8 ‡A’‡AâŒC q$™q$0Æ!dÆ!
+Q³DŽ³4o¢f‰Ô[»ËŸ®9Ú]þ¤é&š[!º®dowù“²ßoDÍ]Š´÷wù“ºc˜/Ò>67@Vëxrõx™h•¾9í.Òu§£ÝåOºö2ÆP³DW0í.rRIØY"K“äÞ½¾š%ºÖèXC-™»’«%²ðFË;ª%R·´[’ÈüÆ<j–Èb&Y¾Ó~8–[[ªY"å²·»üÉZžµÝ“HÍ]ß3a–ÈBª Ó¤hYíFßƬ~Cý‰4WK¤¼¯í.B¡Z}«Œ<ök n–HyÛ]þfÓü0K:ŒºYF], ŒºXÒaÔÅ’À¨‹%QK2GÝ+ ŽºWu¯¤ã¨‹%ÀÔ¼’`©{%™¥®•K]+ –ºVÒ±Ôµ’`©k%S×J:˜ºV0u­$`ê^IS÷J¦î•
+®sÂa”dÂa”8áJ BI&B „C(q%‰qø$@ŸÈá“dÈ!”8äðI€>I¢: ”C'rè$™rè$PF@9t’Œ9t0‡NçðI2èðI > ¤Ã'I¤sÄA‡Mè°I2è°IâK¸MèÜ&ÉœÃ&sØ$p›$s›Îa“À9l’ :l@‡Nâ Ã&ɤs›Ða“
+  C!É C!t($€‡$ƒ‡Ðá
+üF*×2…4"ðŸ’5"Ëà]ïPkd°…õ¼Åb×eu±Úˆ”[¯ÚH-ïËKµ¹7™Ï!k”äœÝ#A­½×Ì«52IÇ°FäÛj÷YPkdÚÏnù`u8/Ú åúø:OaHY.Jj ìÚH­ÝîÈÅmYM7"eY¿í›è¸$uî|¨7"e•(ÜÑ‹ì.&¸6"UûPB‘+yø È·Y0\‘o<.sh#ò™üA‘ç‡P@Ô‘ªÍ ±Fä ®f‘¨62ùÒßFµi ½{¡k#µ¬kÐF¤7gtåCšs_ÆÐF¤Éýf#ªLjOÄ66í7¸ÛŽ62Èe­­y#2Ì7ŸÃ¼‰íý³lv©}ÚcýQG ¯ØDµ¹XxŒM‘ëvÛÑ´91÷¸ï‰i#EV½OM©G\pŽ6R¬±¼˜6"×·§ä™„9š7RŒòÑ=gÝÏ2'm¤Ø’¹ÐFÒÝÉB‘…ÃÑ´‘â¿ð6âA¹ocÚHý†Øhª[ÚHÉÞ˜¯ªuzÛ7¼yͱ4oDŽÚ_ÂIE£X#ŽQ¤‘ŒQ¤Ç(ÎÅÉE£H#pi$si˜º5K±F2K] –º6,um¤c©k#ÁR×F€©[#LÝ ˜º50uk¤ƒ©[#S·F€)ÖH†)Ú0Ŧx#™¦x#ÐT½PŠ7’PŠ6JÑF@)ÚHF)Ú(um’¢$’b@R·F
+=£ÜìÖHÆÜìÖ˜›Ýs³[#t³[#nvkÒÍndÒͦ
+ÏåæðÜ-‰9<wKº9<—KbÏå’˜Ãs¹¤›Ãs¹„´ÖÝ’ˆöÜ-é¢=wK"Ús·$¢=wK2
+9ì ‡>åÐG
+å°G ö”Ãù¤öH¥ö”ÃrØ#•rØ#P{ÊaÊ!@9ä(‡<R)‡="Ê!@9ä‘J9ä(‡<åG*åG ò”C©”CrÈ#P{¤R{¤”¸¶œ' ‡=ÂrâGD9¼‘¤œ¼‘å¶lv!}œ‚žCNÞÈ‹ròF’r[’8(ÞÈ ròFrGrG^“8’“8ää¼ 'o$)'o$)'o¤RNÊGRNÚHRNÚÈ‹rÒF’rk*hÒÈ‹r’F’r²F’rmuP’r²F’r²F’rn¼'k$'mÆ¡TÆ¡ˆqX#0k¤2kÆa
+9¬ ‡5ä°F*ä°F€Ú“6R‡5ã°F`ÖÈ7Œ“5òbœ¬‘d\X#‰8Y#/ÄÉIÄÉIÄÉ©ˆ“4’ˆ“4’ˆ“4òBœ¬'i$'iä…8I#‰¸F’p’F^„“4’„“4’„“4ò"œ¤‘$œ¤‘$\Ë<îºÈƒg'—œk·Fqa@8 #®/zm¡*xþh%¾„Ãqø"qø" _Äá‹TÆá‹À8„‡0R‡0ãFÄ8|‘Ê8|‡/ãðE
+ãP=`ºŒC©ŒCqeJd¹îâ$‹@8l‡-R ‡-á°E ¶He¶Œ“.’ˆ“.òBœtkW‘
+·E^ˆ“-’ˆ“-’ˆ“-òBœl‘Dœl‘Dœl‘âd‹$⤋$⤋TÆÉIÆÉIƵì¿×e‹TÆuÙ"0®Ër}Ï6bB®Ër]¶ë²E
+äºd ×%‹
+¹Žâ"ÈuÉ"@®K©ë’E€àr]¶H…\—-’ÛÊr]¶H‹"¢\—'åº<‘J¹~ÐèÂñðô! ×å‰TÈuy"@®ŸIbwº<‘
+¹.OÈu‰"@Q¤BQÈ!Šrx"ròD`žŒ“'R‡ââÐD@šHEšˆ+ûˆå@\©ŒCrX"@K¤BKÈa‰
+9, ×¥‰@¹.M¤R®KåzX"@®Ë©ë²D€\KÆuY"•q]–Œë²D`\—%R×Ãq]šˆë{®”SL1O q}ÏypG\—%ò‰8,‘Š8,‡%â©€ÃpX"
+8ì
+IÌ…’”k«’”“’”“’”“ò¢œ¬(‡åÐB*åÆ2¡çH+Èa…TÈa…
+ùd\Z!ri…@¹´BÀ\Z!•si…
+¿´A :ôK¤à/m
+bÿõ:óî‚X̾ȸ Ï¿ýkƒ bÿ~Zû¸ Ö£<â ¢/p‡ òü{³®1Â¥;VŒA±Žëùä.ƒ<ÿ~nx–Ë Þ× ‰Åò¬Iëþ׬ó|Hø…» Ö“±N.ˆõb¤Î¸ b=”×RE [º Öñ÷%úä‚ØpÃÜ !Äb6))#Ä~b(ŒÆôÿ"ù¸ÄÞÓñ1‡íL#ÄG:ÞBˆ—ô–BˆéÓîM!ÄÎf"*H±~™­~…bÿ¶a „û·=jþ !v•ìž „ØU´9-Œï/®ß¸b±!kÄf´íæX§#Äî]?Öê$#º¦þ£„Ø¿µŠˆ+!öŒ<·–ßøXŸÅ\Zg·µ‹ï”Bšå-ÿŽ/Wû<Ÿm¬¥Fìñíù›è2—Ÿ˜boÀñlŠb¯™5lpBì5œ[.h⯤õÎ-!'¤ÍXINˆuæo9!ÞáçÆ¥Û…ÖÛq)ÄD¬C’Ïçáû9cÕwBìŸ[¼lî„ظʱÖr'Äbϧ'3è8"Íÿí>¢~CÁ‹fã78!öokúà„Ø8¯ë%…XÌZ‹H!öï+öñ,*çYÿÿÁ © •’ •He„¼@*#JIJy‘TFH’TFH’TFÈ‹¤2B§¡„$M¥„¼h*%$i*%$i*%äES)!IS)!àTFÈ §2B§2B§2B^8•’8•N1B*NÑBÀ)^<Å ©<Å §î…
+RÔ@ŠHQC
+H1C
+èÐE
+ç0FàƜé¤Ãt2Ft2F^ “1’ ƒ¸€NÊÈ tRF
+; `‡A’°“ARa'$a·-,;ì$¼`'$i'$i·­)‹¤’¤’¤ ’íd$íd$íd¼h'ý#i'…$i'…äE;)$I;öíB"yÁNIÂ.$’d]ËNËY~a™Çɺ–s¾Á:9$/ÖÉ!u8$°‡¤²n¬U¦…C"uH$uH$B ¨Ã!©¨Ã!u8$ ‡¤¢‡Ôá€:’Š:I$‰Ò!‘|.’‚ºTH`]*$‚]$•viw)À»H*ðÒ xi€¼4H*óÒ z©€½TH*÷PHà^*$€/’J¾TH@_*$bIe_$À/ è—IÅI¶õdd[OÉ«­'$Ûz‹mÑØ“GòjìÉ#É.mx$Ù£•GR{´Z׈­4’ìÐJ#yuhC#Éþ¬4’º“Fòº“F’CwÒHrèNÉkèNIÝ©wÃÈ<’×È$¹“H’#wI^#wIräŽ}0r'•ä5t'•$ÇäØT’:v'“$Çîd’äØL’×ØL’ìÐÊ$É–žL’WKO&I¶ô¤’dKO*IÅ*‰ð—& üK“¤0MˆIÓ$©L“b’ÀÀ4I*S%ƒ©’ÀÁTI>@øß²I²…?ôRI¶˜»M•Äè»—d³yf’‡K²Å8jÊ$ÖÀ¹ï”I¶×OB&Ùl$e¤Lbyëg8>Fmó§˜$óçøh`’L¨9Ž4Iž#Û2]V&És$Od™$Ï‘øÍÃ$yþ½š$Ó“›:&‰Íï×ZVÄ:N6©Ÿ¸Jbø6Ó$±ùèk;Ó$«7´ø_÷•"Ém™ås‰$÷Ïñañf°D’'fgŒHbŸIËÅ@$±ÏäsdüÄnwëV ’ÜŽ«%’X€Å…0I¬_aiK˜$öRù 2I†5SÇÁoîR§yp¥I2|¥§–&ÉÐ÷À#“Ä®’¥üa’ _骧Ibáí|›$Ã×áêi’ŒŸã%Ç$™¶àX_¿¡ÿÞZÄM’é“*gš$öôæ’,2I,kÇÀ´öqx÷“ÄÒmìãÌß±aVëXû“dúÊZ^ä¹ó£¬{â&Éóø­Z2â-ó,³4IìͼO~CdÖ|?—HòÜÉË®ˆD’fw+×— ‘ÄÙýX"‰µ·k‰$-(ŸÏçᦺ]¤Ib ‹ý\&IYc,M{ç¹L’MUû1I¶põ›0I¶Ÿe‡…H²Yù\"ÉVe2åIÙëЯ%’Ø6ZmÄS­ž÷ñGXñéŸo’T¢’
+RL@ºö Å$© Å$¤˜$€“¤€4M4M“¤p4M’àhŠ$âhŠ$¤)’¤)’
+R‰$p“Žb’TŽÊ$£˜$`“¤b“DE$£I¶—H" E$¢ˆ$M“¤0.U1.U1.]’¸tIÄ8É$"\Ê$…pÈ$2 €C&IÀa’
+8L
+êÒ$ Ô¥H"Ö¥H²½„²IĺIĺI>X—&Ia]ª$b]ª$b]º$…ué’ˆu)“ˆu)“Ö¥L"Ö!“À:d’d& ¬Ã$u˜$•u˜$°“Öa’TÖa’À:LX‡JRY‡J"Öa’À:L’Â:DX'‘Ô!’TÔ!’À:D’dD’ë$’$ëB$IÔI$y±N&I²nƒÊb]˜$/ÔÉ$IÔÉ$IÔÉ$y¡N&I¢N&I¢N&É u2I’u2I’u2I^¬“’¬“I’¬“IòbL’d]îC¬“IòbL’dL’d]Ë.K²“Öa’Àº0I*é0ID:D‘.E’BºIDºIDºI
+éR$éÒ$êÒ$)¨K“D¨K“D¨K“¤ .M’@]Š$B"ÉöÒÉnõý…M‘D¤K‘ä“t˜$•t¨$®Ñ[Ðá’TÐá’
+9L ‡Iä0I*ä0I & ”Ã$©˜Ãs˜$`“¤b“Ì­}æ0I*æ0IÀ& ˜Ã$)˜K“D˜K“D˜K“¤`.M’À\Š$Â\Š$s)’s)’ˆs)’Î¥H²¥w&‰@—&I]š$]š$]š$ti’éR$éR$)¤K‘D¤K‘D¤K‘äƒti’Ò¥J"Ò¥J"Ò¥KRX—.‰X—2‰X—2I]Ê$‚2 °C&IØÉ$v˜$À“¤Â“Øa’
+;L`‡IìPI*ìPI;L`‡IR`‡HìI€"I…" °“HìI*ìI€"IÂN"É v2Iv\ìd’¼`'“$i'“$i·1eQh'“$i'“$i'“äE;™$I;™$I;™$/ÚÉIÚÉ$IÚÉ$yÑN&IÒ.÷!Ú…Iò‚L’„]˜$ɺ–=–d& ¬Ã$u˜$•u˜$ÁºIĺI
+ëI„ºI„ºI
+êR$êÒ$êÒ$)¨K“D¨K“D¨K“¤ .M’@]Š$B]Š$uˆ$"]Š$"]Š$¤[&IAÝRIĺ¥’vË%)´[.‰p·dñnÉ$xK&ñR&y)“$óÒ$zi’€½4I*÷0Ià^š$€/M’J¾4I@_š$°•¤²/UÁ/Mè—&IÁ"I¶õ$’d[O"É«­'‘$ÛzÉ65ö$’¼{I²K"Iöh…£W6L’ìÐÊ$É­L’W‡6L’ìÏÊ$É¡;™$¯¡;™$9t'“$‡îd’¼†îd’äÐ]toräN&ÉkäNHŽÜÉ$É‘;™$¯‘;™$9r—ûÐÈL’×ÐL’»“I’cw2IêØ& cw˜$ŒÝa’Ô±;LuhIhé!’Ô–" -=DZzˆ$)’Ë$ÿ–IR
ër±.×8ër“º\ãD¬Ë5NÄ:9Y¨Ë5N„:™)I:©)/ÐINIÎa§$çÐS^œÃOÙÒLIΡ¦TΡ¦$çpSuÈ)/Ôa§$êÐSuø)uè)‰:ü”d•ê0Tu¹Ø‰XÇb'u¹Ø‰P—‹u¹ØIA].T"Ôåb'Áº\ë¤À.×:ìÖ.v¹ÖI†Š`‡ ìT*ìd¨À: X‡¡Ra‡¡ìPT€ŠJ…Š
°CQv(*v(*¢†
´ÃP©´ÃPw*àC¥âCÜIQv(*w(*àEÜ¡¨|âE¥âEÜ¡¨€;•Š;áCàa¨Tàa¨@< ˆ‡¡R‰‡¤ñ\J¹W;—;)ÈËåN„¼\îDÈËåN
@@ -4459,502 +4442,532 @@ K2O
ïri/—Fðri”¼\EÀË¥Q¼\e/—FðZx-/àá´$ðZxX-/ࡵl-É;Œ–Ê;Œ–JK§å<¤–VK­¥
ñ[z.«¤Ù¸ ^K%b ÄClxˆ-•xˆ-³âa¶Tâa¶@<̇ÙR‘‡Ù"ä!¶À<Ä–Ê<ʇØó[*ó[€f ÐÃl©ÐÃlz˜-@³åz˜-z˜-@³èa¶Tìa¶{ˆ-`±¥r±î!¶À=Ä–Ê=¹-pÏÒ•#[!¸—«¤îå*)â^®’"îå*)…{¹JŠ¸—«¤ˆ{¹LÊâ^®’"îá¶$÷[^ÜCoIîá·$÷\^ÜÃpÙp[’{È-•{È-É=ì–Å=é-oîÉoYÜÛÒâž —Ê= . |2\ø¶œë(à“ã²ÀÇr)€åR*øX.ð±\
àc¹”
->–:|,—"ð±ZJ«¥
--˃³ôö1<_Ó²X~À¶yI5ÛÿãóþßOðï<~üŸ~üßþ÷íÇ¿ôø¿ÿ³è!¼öùk‰i¿?~ý!RéËßzÅøí×ïìÏb¿ÿ! ‡öÿŒ‰Og%²üž‡É>;ö?ÆûX kìÓZO® ýÿqŒíÇøg?|ã)ýq¼|ço{³5´îH›¶´ï_#vÝQ}\–ú´/bá‚Ýry?ÊžýË„Âî)Ý6†uYGõò”àòÓuS<¯úTk}÷obüåÓ‘iÓú×ÎæÉV×Ø;°Êö¶éOOG¼,g×–éjž2æ˹G®Æe3{|¯ÿÝ1‰zß×ëmÚý¸gžãÑ¢WÏIN{"ËI2³¬“<ž/ÕEÿý$#2ëIzŠÉµçIzÚ•çxœ,±œã³ÛicøœedoäIö+Ò’8É_t’m·ušŽ×I6ûª\wžäÓígTÃ÷“ôÇƲ’ËIÚ°Ö¹5NÒ:­Ç¾çIZ¿Þ¦õêIöͧ^9Ç6Ÿ›o+è$m˜ÅÊ‚—s|þðó%<ó[ö='iÖeþÚçYÛçée>-=ÅNò¶^å~ßÑý¾í'Ï?ϧeuzæ·ÍJ?Wz»R-µs÷L¥ËæÎÓýÏ¿§e;[ìÑòȦûmÌêxÞ1ªxoû²ýÞÇ)fݲ,YÿÌâÇž‘tÈ[8­öô¦Ÿ;|Ú­:ÍáêÃþûn½l?¶-D¯c!º³…§öü¿­Ï±NSžž?ÍÕ,[o¹_þ§Uºß<WÂÿœg9Ÿ\2ÿk0‡_2¡°“²çD×ìù_·9w\3ÿÂoÖ"9òšÙ´€xqͺ¥cïçëšukVXN‰®Y·7ú9®Y·–ÊsÇê5ë67l×Q×̆½-–kfó!—Ý«rÍl¤ÜF×¹f6óbe^uÉl€~ŸóuÉúˆM¹fÝùƙ׬Û8eõ¢=¹[J ÏYW÷XÍò
-vKêõà©;²Ñ/ússä¥zÚ‰qæžç1û8FmP+vaçñÝ£ú%÷ò6¢ÿsN8Üø{ØJDpšPǶ?/”m°qמ» Ä}Ñ|”3v`â†þ˜7¡ýÈläê»Gð%mØëÛzùs¿Þ:WÈêÅDÐW~Qði×)¨{dÁM×ÒÂsÓ¡ùb¹Ú«®¤¶ýîèÐf· LíÂÆéâОð8¸ÊÃZ‘~—fóé©_qŸ§áëÞÙôòë3·¨kï{?§h^ ÛF¿|¯ÃæÁŽ3ÿX\‡Ó¬SÁeéRÜ#×ц‡®ÃîÐQØZ²
-ÚJÀœk¨µWýE;8÷Ø“t"¸?-8q("v üùÎEñgS±;÷h)>Úc^/I¿ïnŠÆU±Ö–Ų_eɳ¯-M·×ÍaYG[Áçèé Ÿó<=ã)ñ6'OóŒWäŸ<b¦‹XÐ’.f¾û—.€…­‰a š#8‰Móhb§62¿·æ7k³yd šDÏY5€ˆwÔêqñÄ—vÐÂŽm­oÁX"‚íÊŒ›?5×ă+܆8€mrÿ=y5‚žª"œL®`/°óÒL_öÕîc¿Cçðìââ.ú9Dðùîk6Ì»µÏ=ܦÛvzs{cŸóhº±Ï#räï]ãÕÙ^ñ§l€" <;·©¼‰UaæÎz¶ØÍÈèÎ\˜¦Z;ŽlùjÜ—»Æ½ãÕ¸¯H
-}ßíËúÕsí“s³&Glú<ß¼‰MË4Ëkzê÷ÃzÚ|òNóÕ,hi3ñ±ë¢úL.€í{°ÏG™m÷üÖã·øáõExú
-‰æF(³•¸/{×äO™LÁ§ã§kíO·‚ÇEОÂØ4]Öx¬¬®ßJŽkWpS÷¿Ï±ç¯}rNˆ/¢Nì:þçùpO¼ ‡m÷úØ.mzsF¢ˆo×µ÷Zãçžáxžñç .C;Ø»¾Ö~lÇdÓc}6טÏZ¼WÏÇäi
-é’<ºšÙ¶qXûЋuíQm/Ž`‹¯œ çÆè7Á­7NâX”§Ï¿`þPG¡3öï§y˜=.»þ‰|¾f“Ã÷½ÇçtÆŒjüý-®À9£1?W;å´"ëíÙuYΑƒ ù§‚ô¹ós]Z¬2ÝøñåEoµ¥½› å×ôŽ×Ì‚ÛÎ!]|Ÿ¬ÀP¶Éx{OKâ¶GpxqÜÁ‰ÒJ:¬¬&§êßݯj¥x˜õDе 5Sâà Îâòiá…ã{îAšzVwXÁì²{,~oµ+ò#æu`õ)xe?xD·(~oÍOÌmןúnPO]îmÏÄ»~²#¾æVÛä<'[àÆægÒÎÒòbg4ºtË/5Ž3›°ÏÖÙþ9äjÄÖ¦x*8ïäŽá,ÏŒçÃÅŸë•:1tÑ­nAvegt¬l¥¦¹ôžð|¡¶÷ËÕO/|¹çh)ødíß±‚_Ùi •ñ×öl1¯ï†™¼9P¢¦¥¹—9¦5'ñ°ÞÆÕd¶&¾âûIïàÌw!ï®Ï`Í|o¢½¿FIÛ×T°1:é âüœ¯ùµ
-lw/PÁv7ë8Dïf„¼¿ÎÊ‚.,ðÇŽh=ùìóÆ…ÊçÛåÆÕ‰ïVo«×æùd?yŸ+‡(n†‰<ê‰Ñ êºÙx0¯6™ù?\‚{ª'·—1¯qI_òb8ÁK¥EÌëTEp‹kåÉÑôƯ™‡ÕJ_Ðwà‡µÍ(»¨Æªs÷m„À­)Îv»JÑ;æ¾ßÍ*Žå¨æ¥³}¢{Ž¬^V‘Õ‚>ÿ^[…t,®Ëììö´¦3]´Á\Ãf£:=â¯ífWŒViŒá= ¨ö¿gËÂ;4ï2Ä^[L3G8 ¾©pF×h×Ïm
-}…› ºÜ·#*~ÿm¤ütM6nOŸé khn!M6>ÿçÜÎEì÷¶»}ð\.k³Ø4ãhVrã²ý>_:„ùÕ‚6#nƒÃˆf°·˜}ù§ÅÚcç›Ú(ôèöOÔ³ÏÆ­©
-ÞÑVà
-ó̬pSúÐ,°Ï×ÅD‡÷æ×É*iÇ7Й<s¯  Hl-:˯°/9ÁqÜwó"zú!Ak óvMÓP=ⱟ‚§îxP£i5¨i#Nw…i•xQ"‡d‹‚‚¼Ÿ¶öZLdÚœ}žîáÉm¤˜÷CÜ%
-­úýú^‘î‡c3]lO‚ ø
-ÕmO3Å
-/AÏ ]A>ú>˜õÞ¶w2¯2ØæϪÏùöé|ϸKc1°·v—#8¹£·4GPß!%eEÌëÕfŒŸŸ{$FÕ-H½±]‚ +Í6ô˜xFø/Êóäd?*¿Y É3ýø|èOÞtÝf°VO„w|ïQž럜—î‡'dþ(Ç¡Käèý)’]öCà}Ü™ ä«Qƶ÷¤3?ŸV¾nRð©k/c¿h8rú°rÝÒgøtxúu¤Wmù0B3Ì¢¬«6“ü6öÒ6]¢®c*A%QÒ—$|fZK·né¦$·Ó²Nâ°ÜfR¢Çʇs[ÅùzE{ÃÖq±òwARÝ5ÚÕ,Y¸ YSm³!o†‰FÜ–íù5€Fh\ݸ¬=^û­•†U—Åäa«M¬mcì×gç>¾ 6Þ³W¸uÆ©¼¨m¤Yšnª·VëCÕÛêi³» í~¯ì ½ÂtÒm¯»?XÖe8¶÷(³iÜUÛßÃ4 ­0—NkS6ÁGБÀ"\GÌ1e¸fgìâc Ñ&wÚÿF2fWí¹³ûþ+Ñ]±K¨‘ç xNnïór·äµñ¬ü÷¶w,8ß•3‡ ŽHëf+ì•qƳleïÜ«½˜Á›~ðàšDÀ“§§Î3^<߶ý#k¬'t…cNЃ¶ˆc€PY¬ß\Á/1l÷§ ñµ­K[ÃÌÿYÚêH–ù–[!Ë8ÚÙ®|£½ZdÇjêƲ橇×BÖùlzst¬Rʶ3´Èh å$¬à(ŒO­0˜wpä /­åÁ#ÓK'ß^»·ÆÒfˆÀqi5#ö
-ä¼Ã¾fÁÓëÕÐA¿ãca=*½¡
-rº¾àø{Û=j.EÐkD¶H ¬ÚBUûNïqÏ¡*+‰ÒÕÓs#/º Öà~œ«û¸Âþ½ˆàv3,çëhÆ_š>¡’AàÞîóc[“éþ˜W}ñ #?
-æ Ûûç¶#ì6$Å ÷
-Zÿ´¯›@Øðz“á嵂´j:ÚíºãXdô_ÛN]o_²…)¦Á'?OáµíÞ6m{çtÄŠù<¿/a®a‹Â÷NDoÇ s³Â6`¬A5_ðC±Äíf=ÌÌÇÐgÐ>¶=&¼Ðo{m¼ºÑF}…ÉC(OÁÞ’‚×ä´ö] ¤òp4RYËÑÖ뺂½L¬huÞÃX!cì—‚–¡T‚¼Ïç¶}l{FYÍ8
-:#C+ƒ†;k#èì‡ck;Bmâ=Ñf²–£q[´ì|®ëj³epÜr2Cõ®<ÜzG (t‚‰iÁqH*ºxˆ¬ª3e]¥î¢‹¯¹y›ð}ù
-û2v?Õ¾¹õéΛþêã¥s¸pëãc[ïÙx0¶ ~ô*ÕÝ´ŽFÑ”-¸~U¸«=ÝBðŒg6 2û¦(ƒÈ²`åÿÊ­á ½$;[Ù«q³íµ³-9còqyÁ¼¾ø{ÛKùªÝËïŠy}ƒ‘Sm_ô{ñÈ>T#Ó$Z´»ËžµÑûÕK0ó$ŸÊ²­W'÷ V¿ƒýg-²öGÍDqújúR&濹jÛU´Õ{†>†÷«Þ¯´ŸPcfÊ›ÏOóæ× ¿L¼x
-·-'c,¨–‰‹QúCc×vÞ?£vkD|FMПå¹ÒRÜÁR/Öõ6ÏDó:² xų\ Mïí^¼x– _ ãØæǶæá¦JMŸÁó¸×'l…™ú±½Î®–ûî=àæXKƒ‹ãsu¿>‡Zs öX°GŸ÷ìÙî»V}Í4•mÃý­×49/ãã,É ÛAot›5j¬ u
-öKXýæìÜþõŸÿá©ÊÇGªò¿ù'¥+[›Ý?Î6;es®È*Á»Â_ßá¦tŽ¯ïüFxíä÷ÿLeð5C¾«ò…{ þLd- MäŸHÝ1ëZ9`­þÌLöØɼð4²úÛƒ^ˆê»<žTKýo×­­}-J¿žW‹ân>ÞУ[¿Q.¶VÅví‘ÏäAÏ–ýâ;8"-®¼Ä¶;c#Ñ(Ø.œ%/Ù¢
-Ô>Ë€‡&·ëŽö÷ˆ‰Ö†Ét¶yrmŽ¡ eéû_—4«
-¸EVH^Íl©>tyÝ’‰à®NΈ²©±ß9Yº¡:<AMùùJç;è‘Ö4]’;8ï¼Ág׶^?J;¶úâÚ¬X¢²JãC\Á&ð /Ì°µž;à›&~U˜ÑÖ5Ã-Ø2¯eDµ ª=äA/û}ÂÛ¥ó¡áØÁŒªõàäÀÖ‰õXs!¯‘ö™ð%Ùc§g,퇺Eùß4uƒ†¿wJŸÿ}œ]×Èß{±w=²ß_3~?U0Ѓ^,/‚6î;¸äìøßòRªô²­¾í.9Ç*×1¾5ã3ÊFË[Ц(f%‚îiž®]Ü2âluµï5?ÆGÙÂ^4)Ž×~دú•Mõ"õ#üóB¹OpDV”NøâIª“JK¯´šV<,àãö´ÕFµ ¯ŸæÁkßyËûž»½Þ-v;£äçºhÜÎlÕhšK!³ðó1Ðánm\:„¹qƒÛ©§fFµÝÉSçkRÞˆÖâÕ¶>ñ99±-ì+-Õ  fá,ì#;q´‘ÑoÁûܸâÑöà¸yǘ³°
-=ض{€Y›C›*Oß‚Ç ;æD+­ÅÖe‹§f˜‰ÙöovÀÔ‡f“Ùb¼:1Ÿ`ÁÙöÆs°–3¶õrµc^(—¦ˆ^ÝMgm©#ð qv@&ˆÊ-HZ<ï› ›AWkãòœÑÚ}a /ðÑœƒòuxŠÆzì5Ò(,¸8«cxPC<~ªÇ•;8çq³m<ÜVÈàȯMøB¶¥OVÇuAMÛ²µžÙR;—ÅRt8©ø\Zèì<,wÆ»ç½~½O’v4¹jÁ¹Þ±oÈïXÇ;±r€^ðè-Øy_Ü/ø¶½ÉL*ìdcëG>°C1ÒÙ†ÇÁ38c¶\»ÍßkÐ¥|}Fý‚zÊ-;˜ÛÎ;o“?¹ô¯’þD“ÇJIÜä8íše²è½s
-ÞÜòÝvL·`o‡ß”‰éOÁ}äž;ªK@3פ§æÜÍ)˜˜ÀõZ\(ÂgS*ÎÖõÞܤ‹Úa턼ó§ö|on™a~`*«a~S~+hRO vŒWÞ¦…›Æ´|[uãf¶-ØxF£ý>}á^…ït7tÎØ«Ê£˜¤Öø†xf ;`XnµGMáí}™šzñX]Y'žëÇ‹7T(Ç‚;oˆr||¯“7ä:42ia_Z6ö«t;“ÖصÛVš<ždë=r «q1©7i31‘“ÖU9‚ûMF€VRŠh~0ÝMÿª°¯e ÃjìÁË$ÅaÅàÁæCÑŠyOì¶Óeì›þÞ¹|ªoÓ<)”覹daù–v•âɪSG+>E°óßpÓ)›ßc ÓØA4Å-èµËâìU‡ÝÃX “^¿ïàäìU%vM# _›¢gЂJ¢Yxð-ó›ä­[v0:@öõ[¿Þ§2¥*µé¡ã®W!‚[¼1¾%—vTŽõEÐ×´#úTÕKÛ© ö±ƒ#¸£^Í'\ÊõÛö¸©ïÛ°JSa>ÂG¾G—®Ík²¯»£à}äÙÞcí`Nå°w‰×Û‘ù#"¨7Ž')vpdŸhF ÌŸ¼Úˆœ.Û6zZ<ò»3Èç<xÁñ*Lt»ÇÁÓ¿ÈÍ‘±«9
-w¼ÏÁ-›s¼s–%Γ¨"—úýä“r)_ò ö|ñ¢Ì„}ÔV7a›¹ƒýbc(¡Ì”Âs¯ìŽ °éC•/Þ)£3¯¶;íåŽ)¸³¥W¬`G´÷fצr´;{qZae}%â÷*5¯³ÕsxG*Ÿp¬ërÇ÷úK-¯)ÓÕO° ÕhçoéýHçÒwzì¹/ ¾(óUa/õ¢Uœ—52vžX úoö•`lÀ»‘ ‚ÎYÚ6Þà];€¹ëõ°i”q\¯ðŸäâvÍ‘x*"/m~(=<ótçÍîlÃãtÉÎÆgÊ|‡ô9Ü£Ñ^/hÂÌ;ÉÚ†gãZ>ô*SÚrvbÒ ÷`ãX½ä ;¸7žYæ
-7­V×;c=3ý¬)¨£µüÄ©X̃É°“µ9Yvpm{¾v';Pò¿ñ~ÙÌݤÁ4Rº·iÆ©¯j°â«ÂÇŽfå£ìƒ!±[#õÌæôªDa;ÈŽÆ©«©,“›s*¯ÂDбí噋ØØ{¶§;ÓmçsUÞ<Ë8KN’˜nsC;Í ‹>þw¶ýJ8ŸfæÖÜŸå¶à¹1«àû]-O> v Š[Å£íO倣’Ù²œÕ1fGß+²0üò…<Öï]%­-W Žv¶š¾\CJƒˆWkj (Ürž,¸ùiÓ=·Üñ†ÏÉ×ÆÃ|T£Í‚ÊX÷7¦‚Úš.|=Œ–|1ê{ª½N†ƒIú·`¶ ¹ƒHΨO¨í`ä`æau`ãrͳ{Óæ~4È]ˆ¬
-oƒv°_´ èdTÓ"«}E‘Ô°È3PkUpì@ÍT¿Ž¢füAšˆ‡Þªxè3[8ZÚå*Zi¸ìÂô”É× œc9`½e%r¬t—_'àËQ-¡e·fßʛ묯
-3=Y^ÒÓlê¬4ö»5†þsäÞÿÜd2Ö1Øï~åôܪšÇ¬«f“[¬sÆää¹-ñÛŸÛ±î4ÃŽ†·:ò>üÄï©O03pS­ñè…ŽT÷'må#Z!´N_‡|Ç-rx_›œË¶eê¶ÛT,¹dÊÆ){{#SïõQô¸³s›%óömçí"5³لٕ=*RçxÛµŒ½Öx5w¾¿õs¥¡ö-kæY†ÜƖ嘞¤itÛª3qûª§±÷É<xkáPe
-Ò³ÔÄ…ïu$H4€g;(—°­øúÀºß“¬ÂëÎZ";¿+@;Fþ^ nw>D+ ®·©¶G"ùz·ØÁÃMãI^
-‘vÉMÑ<ÏYfüÜ;!¥@-1“ Ø(ÄØ'zÍy¡‹2H8s—ʱðèÁQJƒÚ:
-Ûmv
-;Á~fU[W_*/KI¦Ä‡>®25qwÞ‚¶~}ä»l|J­Vfª 8Øï/^CúàÇ*µ4C‡a«逊/Ì]ÚT±Â›U« ïøªß9ÍÈ]¬3Mš6Ú†oœ™@Û`¯+u™ j ^œ—3°Û•8EI+u›0'å~ï(c„*=[#÷0k²Z!éŽ{“Õ:GN9+}<v0ÒuÒÑ~Uxeží«ÆöÖy¿5yvØC–MèEÃi3äü5Oúªðz}à$Ù’,È‚ãÈú++zÏŸnùÐÞ¹d{&ÕYß3‰J?VË8M0Õ±:|$/ý Æ^l·™;¥t\¯.œƒjJ±õBá76‰g/³‘ÚS»ïýã2¦‹á‡ª¬Ù*ì€ü­1¦#ЬÐÈu(ìN$»µrô±.C5Ç*5bpYÁ«å†s®ß§Mâ“z:Nª¡Rß×JoXküȪDßd·SØÏ×ç&…ÜG?xBñÏÕ:²š˜„Ë[ÎXc)+iÈí.G`Œ¼ŠãN¿l¤úoLÑ-h}ýšòscÕ±òŒ<oYîÃ&Pq12cÕ·MG%R,xñÞRÍ ójMr2Q%·Æú[ß75€còÄì9bæü=z¹µÔ%Ö*­m,&Ö`>ÝgŒFpµ™N>ÂvÁ Ý‘¹ù¯ ®ó§oU¿y½«ý•o ôÇ;»ŸþaÅÝ`õ0pøÔ ™rŽžM×hþ76‚çäÚz#­Ás¢K‘àc½–;˜«¯}gY露žæ ÿ|ɉ¯ÙUåmÌýêi‰Û³—¾.BÆži›{}ó˜[³u/óêê+d# ú
-ßaÂ0`¦1rΆA”VvÇbo?¨«÷ñŽv[ñdAL_§š¡—“=¬$úºOU~diøS+´å5dD­çËU\,‹=ͧg~ŠAÅN¦¶C£;ûUžm^ÖsDV± ض‹óÊÄ'òըϽ†®öôÐì£~3^¬bÚ¾×s•d¦áqG?Ó‚¶ ÞIÙé{æ„ßMÅXOlÍÉÁAI6o©Ç¤åÈŒ“;ëâØ ©
-]Þ«¦ði3™:…̳¬wwÝ™q³’ºÑõ¤«(ð îÅ$­ÕÕiì6ÇÎlNùä:Z}¡å¡¡¥góÔ¯ˆ‹ïL_“¹´Ö,± T€;«1îZÑ9ÊÇuO"è
-ïZ´ÄÒ °¯$ˆgC«ç ¯€WsǼåW…)yG 8‚Cû¥_Ð{Ì°G0çœ,gBº;ZA?yÒÆzo²ŠiKIí^O´gUó¬Ä½1Œk•l5oÝ I°wä«’ÊâofìV3
-Þ-æ
-2¯¯L
-Ÿ N^ä@[»úÒ²YmiÉ;”¢@î¶JÜÞ“Š˜ß‘5Žã÷#?Îkõ!Ëá¾yŠ|ã'O×>=Ÿ!8káÉËA[[äEi}2ּ6확‡®51òìvFp׳iI÷’UîèˆÆl%UÞJ¡XÒýÉ%`JØ‚y ÏL³ýžì—Å{¶3¦;ò<#xí|ð3‹]­ÂØÊÏ?©*ç±àÌüµ»,O²)œÞËU±‚F¼H$ؘW³Ž*¿UÛV^û#µ DäÛŠ0ÇlÌÀy•OriÝ`"|éú­%?îlçê.ƒV2>FWýĤ l©>ÑVîAº­î[)eó^vÒ–™¿÷Òu,
-s[˜Ó졧êÐ_Dá,[²§ tÎ:•’Ûo¹(Û<0Ð?Úr§ÄJ”ñõÝü++%õÑ)T/åÛ#PM/«-zef´AôWÂg#ÊP÷ñßLNÖ¡Yð$1fËIVÛÁJÄÞ³þð¶ftï\]}»H&Ü2EãH_ݧN/F çdLR«¸|{œZ§áGö<p¿¾™ŽÉƒè%?"öêŒBø€ùµ*Ò~ì÷«þàV.…Lþªð鼫îô}’:äSg”9õ`®¾Ñ®ë[:X>§ÃôynßÀ—<2uÊÈKáÈÔŠékaDKÖ#G—… ¬>r&ë-/&¦˜fØ×:烔¡3§À>þ>%åì[HB¯ß_ 7ì΂¯ý`Ɣɽý&‹1fLéñ¯™ÌìØÞ¡z(·g­úþó«ÔÝJW9³ÎÝì7“À[öøç–ÁU
-ƒöô8½Aæ Q2ábزÖw{1±¬ÕÚ|§×ÒçŽñãw@EÞÆ,^7Ì%<³v„¹
-_ Fî|Äçë÷wòÕ3ÿ«žÿ\ —“Z¿2Õ#b Òz›þµpù;R.o^ðY¼üyýU÷ÝæõríòÆšódèd»›¸\ºü8»–*ðÙÀ_ô{V·8ÓEóUBøŒÃ}º—µñ*þìàºØ6—’>3/úŠb³:¬k¯c Œè0°†ʶógM½}ÆÖÊM>„ðB‚UÎô’Måk
-iZª{fk윺—lH7a'¥ZUíúö­ê(k[ÕJðo£F57ò‚úk™‡­@úZKçùÕp÷'±Äø¹Æ½Ê–Ö,¦—rm^Á=×ZaˆÈVF·CeyäÕïñ ;@÷{mK‘µjž ~îŒ
-ÖÀ^á<‚;§ìï\BûÜ×Ú¨+|­¥žïÌyéû_¥öºMgyl{ÅÂcÑ›ŒºŠïàZ'«„H:—uxbÚ,°³‚¶u*™lËœ²«ùïºfaDŽ5ƒhy‹ñ)>²½˜+V+–×\ÙÖ–Wdf¾wi刦‚K¤_Ëw¶3:`?iN.תb–%È*pjíùmO †Êû –•/j˜%†Öú™VÝÙR-¢qÛöQƒ¿0ÖX:ƒm÷‹d4«?|¶ØkÝ¢.ë Jà×µˆfæ¿Ôu‹<IˆÙÖR®´XËZ·¨ëºE%¼×d´½7•UÎ’Ñ^z®ãŒO,ß[¶Ý4ŽÕ³Î„¥ŽjØîUÒ|¤¼GîÞOš<ì*Sž«†š÷¹ G
-ÕuŒJUŒB†R•‰LZR‡¦®bdŠÒ¶ïÛZá¾xªÖÊD»•-¢¼V1²o¿ZeÛ3’¦ã°®eXÃ{/PT¸¯Çº¤àM‹l¦J=ò%ãÛ¹v°³»LŽ'[)=^^Éâù©µY;,úÓ¬?£º±ÌìëŠÖ+Ú—¤¤ßQ'Ä&Sö¶Pµ¸¨Ï±œ¬åô´V²šÄ+ø¼ü‹p„GÍo`1‹U²Æ–!þÎüEƒL*ôT·=­UÕuiÈÔYÁëçµHÖŠ1y¯ìã¹VÉJëyø:H—ÿm«… áEÎnrU£a˼r
-¯õ¼ÌÑk,NÁ]¶Ñ ¥²Z5¾¾Å7ÛvJ>”õ¼Vðµž×+œ®Qg—¶­•0:ëp7k’uÒr¡Ê«å²:Ú²žW –õ¼Jt­çe *ç¡`æõ\PXÁ/ô1s!íÉjŒÙEõŽ¡ÇeËÅ™ÕÒʦWZsu}’ûX«gªëíÙåËÓjV¥|myÛ6¿ùxwŸæù,mpq™ÙØŒ¿_Q
-ºØ²ç“‰Ä®,Óžo¡M¿ä‚E¶«†¯µR³å]jCÞ¬dˆ·:•>•;9u|æ̯ P ê\Ë7Ïr±·Æǧ¯<WDÒØ>àtÞúÌBûGÌî1¤pq öH‰`SY³Ý­ßq»ö©MñOL¡#ôlE— 7/¸Û+Èl°¯Ñ¼ëÕ`îÞW(fÅr­Ž“õãʶÏT[íô×ø ;Ð0]KËøôJ÷Ͷ»Úæ]E¦£ÜWPÝßþ3Ù*kÙv#¡zV°B£d¡ÿ~#ï[³Ì^ëW¶k[
-{¾ž}.B»·ö¼Ë’l%|dÖf¬žÝâÃGæ­¿ðG/A@²Ç»U·5Ñ6èÚ#‡õ<c1xÚµ+Lor?™/´W.TÄ_Š$UdÙ²G‰‰ÕPú zÊa¶L3¼±ZS§
-ÞǪEÇU‚9XyÅ•*Ûn?³Pá>s¹eB®Qpùæªá’›SQгբ}x®*çfSðÎ%‰›J7²BÞA{L[ûŠú$À{§šŠë½DRù°„9þÚöR¡` R>±•&”Ÿ6…3Ë¿{Vd‹³ò¥.â
-€LKäæп€Öª Hƒ6"¶ Èóó¶ÄlÙ3A½6uψš)dÖ~%OÏÝ(5S°_mRZƒ”µƒ$
-Âõ¨jrñ†/ÖR³šùsÄ‹æ±Í|?6ß`V J­ëÞ€¦Gà5\bæÒiªL¨ÇnÆË)ââX Š*œ@B^óª@!!‡²©&ć[Að ›ðIúf.àùÉR«ÿ@„ÂÛ¯ú¶Ö6¹¬ÄŠÜbî,N9Í¥€Â
-»VI¢ÖÑ£PE©/¹™â©DXĴâ­¤N3ÑP‚ÕPÈ.ÙT$%vÜlêù"\I­oÁ0ÃENoùc2(*Ù9c]“å¬ HïEÔK‘Œ×käLëÕX:çç0·5Å9WÝf³¶l +%˜ù&éï2qšF^wçØý*>X £…YR¦¹þR_Ž’GV½zºØtaöÎ*°sÔ×5"ǯÂâ ²Â9 17Õ‚M¢¦ÅÓ´¬¨;‚½¶µª(ó…5øŵpn1%šºCf‚šíã¨Ã’‹h'³[W ð¢2YWìQ‰ø8UL«mµ†:aMgn¨´‘î­µôûš?Åu¼Æå Þ7þQXw J yBà!™`¹¾kYÆ!Ì)æÎ\éG#öˆJ 7Uì
-3â¹N3•{ÚÀYÜKb1¿Û
-9©¿Ð9ó=9Aé"ÀžµŠ:hz¸œ9¯(²9¢˜²WˆœX„L×0`m%œ4T6¬z†©°2ïZB®q5ÙÓÏV´Uád¶‘4âÅbi1 l Ék¤Më“ã:h*³ 1Òó܈ø´r«­´…˜ˆ@e¦+ƒBXºñ¨HLÊ
-Ù‰™¬Á¯Þ>¡(MGÍyF<ת«ëműºèUÊ6ð"Pz"lˆŒ\ ðN%gûà 0¥Q:(dzŒ‹¶”¸ÎòÌo 4¶ºÈ›Fª¹ C*n°ÀŒÒÿšï=ˆòvSf»Ò¶I,ŸôªB C67‹ÖVBœêé³]D~à4@•ˆi¡“N•ˆ‰K.Ë¢­”óŸwJQ µ k<ZBD .- #ié%ÑXÊØ{K¬
-;]ÔTûM6º~ø ~WÐäu¯P`ó–8þ,mkµßQ#ýq¤AnRU:—Ñüœc‹³j¶ožÅN>gJ‰ûÎÍSS4-±ü©BßµÛ´$ë§j^sM98 Äy¶Ù,0‹’†j,+4*ãϦHÐøm*ÙO×Ò¢eQuí~Ú
-ÐÁì>×LöÙiÐÊU/ˆ/8LA­œü$1̉f
-Nñ¾¶÷§{‡µB~ UšæåaÌ”$ÙY De±`U”ÃÙº’ÿʘ£…(’¢Êòk±²úE[Š+œ”qùõUâ
-jüœÌ»XˆÙ‹`2. ŠtáªKFD
-‘ ¨ÃJ:ÈpõPC;²I³ŸªlÚ€w8Ú‰Åò';…–ú>ˆmæÁZ!#Ÿ&V5:©"@Aø¡ùÞÖ’á\·¶
-Âöa!h&Žžå÷G¤Òh›ÖëœkîYW™üÀDu™²VÆÉN€î˜Œxì춚¤î·Åx¹jŠ˜_ÅÔáP±\¢ºBœÈÆŒó/df I–S4—ž k´aÌ™‘Õÿ®}¶V‰k¯&B%b=5WcÞ¶©-…ˆAµñÔR
-€<YMŽ¤‰’9£5Ù“Æ»"–³E¤¶ZÛfùÏ£zïŒØúÕ–ÓÈpÿ&N„@Õ›d¥ý¦‚zÕœ§‰“ ÚZÛ”¬ |Cš1ˆà1(Ð5k;'Z)Ê9qNΩ^3<íV”dmg;J‡ªD,A)Vm9¹•“vFÔˆ|œ*%ϪV‚¡qÖ„AyKTš‡—’ 2¯´L³
-i Ù°s"Gúâ}gKez­*.Ä©:Ý®œÇ„›yé”*QßéOyxÁæÄ–ÂlÕãéVŸ$/'êÉÐÊ”¸zÕÏÛÆÉ0x“A\%ºYƒLC8¶8-B£bøPiOˆ«WíJ[Íuà¸Fd[%j‰eìB%ûCñ ±ˆŠ;dHoÎ&XpeÑ6€R¯y
-kD΀°1ÈP1©¨¬”7pãÆ2ÁˆˆÉM£
-'ˆ¥fñéi,­låv2këÀý8]s«ÃïA.Ãñ[>ÉS‰+#ßtö)£YjuŒ¶ÙY¡ªð\ô¦ArZRÎÄû ÑQVjuàYm5“’®×2µÑnG–WÚV ÄJCk™¹,:dN×ëÕ‰Ø@Ù³ý|þÏgK2‚?ir–Ù·iõ“0ñc!?h“ÉåP6zÓL)ž‘ Ôĸ|ú ­Ê×’ë×…™.Qá¡ .^S~’ÌF\¼P1¢Ô{t#È’§OiÑN4\°PÄ¢{eN¶Ø|2âOê°5µiNœ©ƒœ`0§#¤' ›™&AYDœëfm½˜F„¨‰Ð+D.φeÞ5hšið쭹ഠ@ÉcõLN¸^fD¼¯8<ó¶‘,~eubQD°}Mðžµ5ƒ
-£&0­9(¶ÄAôúÊA' cC¹·!³S¢KA};k 1g3LeIÌR¿wÕšÌqÿÞ[)W ²"1°…5׆ÇûƒŒš@”*Ž
-rÎ` `u4âª)pÞ62‘ÙBQWˆŒë‹hX³^³¹‹ÔrZŽ ŒÒþn¶°¦%&SQlè=Þ$Ι† ºY-Àb¿.1€0FÔ1pP(ÙI,DÍË3Т˜³¶3 ½ „¾IkFûõr/ÌÛR6AÒ:<3ÖfàïLÄQ`™ÖVË-¬ÍX!ò†AÅ» ˆŒ¡ÍʯgS˜“|L£-(rhè5ãØ+#Uï¬- F¨I€¢–ƒ{b¬p ©Ã(hÉ " 8+•Ñ¢~æê'…Äf
-|õ| »PL'Iªñâ:;UwYVÍ+¢œË ׂcc… @3ÊÞH™ŠùÀaÊqNDZRcÞ–†…T‘¼ôù qZúüŒ<œ‘1ÏÈ?I sâpFúûÚÞK¼wXkƒJ(3ŸWBéôù
-DTžZ]­(zä²­Z;æß`Nœ}¯Až}Û4Kx²]0ì+;fèn³Ý•­6ìÊ>q±gAÛÛ¤ Ù1p3¸W;0Œ0
-q…k®Áa©Ú‚ÝàÅ4Ö{øöˆ=˜·õêÊe¡B3Æ,Vƈҷ2“+mQ­T1N¹hð€䚀ÒCéúÏä€WGUÕü@y¬ 8ÕLœó
-
-¢ÀÃŽemNÈi Ñc
-ÞF04`¯EA…¬¦ï°»œVU¾U
-&Z>‹8µ$nfV­bžµMb“kRW~dŠ —|Ä.dp¢ÖB¢_’<I¥á÷K‚ =Zb¨ZÇRˆ
-´­‹Ü iVëuND‰Éà*¢ÜaÍØdvžjüÉŒ6ÒŒ<†Ov).V$ ÊpeE‚¥ç–ò5_ä()Ë2f¢ü ÛÌê–¬ìT…¡ éL£õÀ½^ÇáôäW1—w.s>
-èæ˵â—ÛÃLö…Na„`šI’2³mîΞ5Ük
-[Š ‡.ç=Q)èè$94f°ñÅðϘfŸ‚š~ú؃'ò!u>È2ô?ãæ‰=‘Í/—>Š»åÐ/Ë'逿º¼ûËÙå‡TÉÇwgžÝ^Þ}ÿúânó/õ‹½;®¼½™xëã÷@ò·ß]ÐJ>"!h[Öñ¿ÅÏ7€cÈЮÔS òO0dèÅÍÍÕ—·ÿµ±/æpã…òÆŸçÀÍž[žcžÈãÏñÏ7Ξ={uùnó%AóRÓžT°×Æy4ÚÙVÃ/óŒÿÕåÕÙæ±QÅüãÍí›ïo®n¾ûñ©&O­=föäò÷6Ï1:2³#3ÛE&2!«O†‡mì¥y4Ll»¤m¸ØõGqûTsö·ØZ‡~ì7—*˱ßxF‡.¼¸ÍEþÇYEaã
-Ê?wY¾{Åðìꇳ7žO¿ŒîÎn·º¼¤ý§OÏÚ˜•ÙÙÏÿ‰g°áo=@ŠÓõÅÙÆ#çgWç¼yµùôÆ `9¿Þøv:;?÷ú݇<ænöÊ'ŸÛí›(6žÞ«W—w—ÿÚbrö©$g×—¯Ï¬4ìc­CwÚŽÁ0¦Ù?¹`˜ÍgôX¬Ç`˜1÷n±µýØ?¹`˜Ígtè§!¹yeÀc8Ì}&¹c8ÌŽŸgcùóq„ÃlÁó>æ Ý­O.fóúÝz ‡9†ÃÊeô ‡ñ¿”p˜-8ä¡ß^O.fó=ƒÐã ‡Ùâ;úyrá0›ÏèÐ%¼C ‡9hÿÏã‰æÙbƒnË<è>ƪ[DÍ¿ÂÏö~¾j"à#ü|x üE¿øϯËÕG¾ÞÎNô‘DìCY†ÍÍ~¤jÑ“¬™}¬“säh[p´òKæhOþÈÑŽíÈÑœ£ý"Ú‘¡:C» zägG~¶ ?;
-hG~vägG~öøùÙÜ©óõv>ë'ÆÖ6žü/ȇw<6››úK>6OþxlŽÇæ/—ÿ¾¸úËÕÙ_o—/wˆ1 ô©«3¸“¼qô¤ õ¯[PÎÞxLœïöâõ͇Òǵ^h Vëeó ËŠ<TYâ?îÄçþ¿î¤ÿóyÿ»ÿÿçýÁÉS Ù¾¼~uñíåõå殓ۋ7gw¿Ýb{ÎÞøäóÛù?ö1oßP‰˜Mçx,s,s`bE†z‚Ћßl6þX"õ·™Ó¡Çê ‡Î¶öÄzšùVÇçÀÙÛùÍë77o»
-¼ƒ9êha;ÖÐøYxñ†ÆÉÃÕÐؼbÃ×ÐØü‹x Í'rà54¶ I=øKóIbš\]ÞýåìòC&üÇwgkgï΃™ÈßÇúS‡vwúý¹íUóX®ÎcÝ©_îÝùxÜû[ïÖcÍ©mð@?þ$jN}õýÙ«›ŽøEߧàÔãáDÇêB
-ظþÛ1#ÿ“¡5_}€ÍÃÀþý
-O°ØÑæ'õÛÛ›×›O‡?Àt6F¹»Ùü®¾y€©«6mqa?\Õ¦']»h‹ËùXºè'§w,]ô3]ÈÇÒE?£Ýæâoïn¿ywÕOÿã³#>±Ú+[(‡®¸ë’üœGöñ›Z½{‚ñc[ÌéÑÄËáëdx?³øæßç°#È6ŸÇ1~ìñ»)îæòÙ“qRЬžšqß=wOÜ&¾qüÒÑ$¾>Á­MâGuïI«{Û°À£ÂwTøŽ
-ßQáû”
-ßƲÌQá;˜y¾Ç¯ð=Õ¸´§©òm\§âqj|Oï¨ñ5¾£ÆwÔøÖgrÔø¶ÀÐøòÔø¶˜Ó£ÑøþÇÍÍ«ïnÏ6?Ï«îú§¢ðm3“£Ê÷øU¾' ñ«Dl•÷~à<«vÇŠŸœ!ËxþÔDŽ/ö¼”?}Å‹™áÏÆ©ˆ™í_¿ãS›²¯ºr!¨ØÿñÍÕÙù???ÒÍ›³óË»ÿc ûéÛ»¯6·qkëOý øc9M[M걦ßÓF|DgiŸ‚6‡nÝnƒo×æo¹ªè‹Ÿ•+ÍÙdÎ>~÷”î-O ØÈõÀyÀÆustÞ/n®ßÞ}¶n®¸.ß;Ü)Êžúêül ™{åO>µ¾ß"GÿŠ<Hýùé’Çl†Ë×>ù$7ŽÉ{ûîöÛ³ó‹í>àêKÉ€îãÆ+sö_—¯ßmáš³öŸücón{2£ÊÆõ”.®ú¿lelž½ñ`2Öo/™©¿TWöCD ô1ðóRÙÔQÚ{ioŒÞÇ"ñý".ÙÍ+¿áKÿîßon®/¶×_<\QcÝZÜ]ñ(/»}ºòÒQ\:ŠK›Žá+ePP^z’ñÑ;NGYðÁdÁ£ÉüИÂÆWÆ??àuŸ}
-jz¸²é??Ðr>ÿ
+>–:|,—"ð±ZJ«¥
+^šO·IËJŸÞ9ø±ÏhÀþìÓèœvœc4Gàì±JýQsßgilNgžY—ß“êŸËás* méé²Q€Ëç±Î©·ÿÙæy!½žšÊå§ïï &I»b-øãÌÅJöË:‰ö§W:Z·ÞWÔˆç Ê sH‹Ø´žÏŒy’Ó3èX5p·ÛrµqsѾÄ}b‹ö\ö‡ ‹æùvWÊE³|{G¹h»È-/šePìÇ|]´]hä¢í&!Åô¥_4›h÷ÜßrÑ,3ሹ:?”=dG.Únïãq¿.š=D–çÍEÛïH;ä¢í—žrÑ<½ÀÒuÑžS=Öö‹æëðÝÍ9ûýÖf^4Ûž1çì·×¿ýï‹æÏìŒ bãv–¯í˜•ÝÓz|åî-*O7iš—7^Q†¨³ÀÍû©<¢Mq_6¥¨n“³,WÙkš>??¹,§àyw}ÙNo{ØrÏ^­§b›¤¥“ûð>G2¬¢¡sô©Ößõ_ãÜ®Õú˜§ÿm›H¸áª.‰·>|
+üÁñ–ê®|uK
+jÑ
+ê£Hg^6o!ùÒßë²Y ÉZå\6o!Ù§Y—í³a-¤#\7o"y±·¸nÞDšíuݺš›\7o#YΣ®›µ‘ÆëªýÛßîeöïÿðoþãïÿ—§?÷wO—"ì¯ú~ø7ÿ·ý—ÿåOÿÓßÿçÿƒýü‹¿øýïÿê׿ùëû¿üaûñOžÿÿïÿñ‡¿þçÕÛú~_Ë{Z?ýizy&Ò±[¾9ÿú„›‹ËölgøëGØîøó²}ýØÉo„s'¿÷ÃûŸ°6Ò<\8½­³åÃßô¾îk»#ol¿»=OÃéøæBËÓûæh¬½À±‡ñ: GÑóýiÌXGï{§d;ùúÃßÚ0:Z’oïC
+¿6ñ×Ãݤì–ÔëÁS!w#d#¢_ôçæÈKõ´ã(Ì=ÏcöqŒÚ VìÂÎã»GõKîåmDÿæœp¸ñ9ö°• ‰à4¡>Žm^( Ú`ã®=wˆû¢ø(gìÀÄ ý1oBû‘ÙÈÕwàKÚ°×·õòç~%¼u®Õ‹‰ ¯ü¢àÓ®SP÷È‚›®¥…ç¦CóÅrµW]ImûÝ#СÍn˜Ú…ÓÅ¡=áqp•‡µ"ý.ÍæÓS¾â>OÃ×½³éå×gnQ×Þ÷NѼ@·~ù^‡Íƒgþ±¸§Y§:‚ËÒ¥,¸G®‹ ]‡Ý¡£°µd´•€#8×Pk¯6ú‹vp î±'éDpZp
+*â6PDì@øó‹âϦbwîÑR|´Ç¼,^’&~ßÝ«b­-‹e¿Ê<’g
+^[þ>šn>®›Ã²Ž¶‚ÏÑÓ> æyzÆS<â0lN$žæ¯È>yÄL± %]Ì|÷/]
+j~]NËFãí^OÐf³Ñvó"u/5BëÊg°-(wþ°²},fù<ÅטÁ¡nà<F3ž·‡y®¿ÅߚȴÑ6>Ç-x˜Oœ—uúªèiúÃz¸,hƒlºOÛq(æ3ÄË}Fͨ›øUáûäZáBßÅå"yœ€•¯‰˜UˆÔÅ‚Zö_éÆ>/ÒW…¯›÷c¬Ýî÷ÌÜq(xíù¸Y£•ýÆ2ymÿ‰½Žµ×1[î Ö'ô‹k…î,øl‘íØ!îÜ:ŸØòRSÃÂ'™#>´ÖMòªz¶Ovzm­ÁóíÎ߃¨l{?+ŸCï¼;_Ï^o^„{È£a¿µ­çžë oO7¡ lSËì`¼àž(óU6“g¾µ¶åQö©}mxò·žÒ:1·HãñØŽ]ÛzÒy¼Öà‹ +ôôZsì íG†u¼o¯¹‚ñ†ŒÐìòÞ¶ƒ?¶íùp´íø8‚+jDÆ’1ö$^·úÌ>)ÍSÛݯŒ^p¼ùÖ‚8¹ŠÃ¾œjEyjÏzɶqr}ç-?vbgÜñ§±Ô¯£l?ï¥8g°ÏªÊÅ{g¶A^/ÅFCÞ³ð~Ñï}¸Tg;âºØWQ!ÑÜe¾÷e/àšü)ÓI"øtýt­ýéVð¸ÚS;°‚¦Ë•UöÛ@Éqí
+ncêþ÷9öüµOÏ ±ñEôÒ‰]Ç¿ßw€{xê}l8Ô€ôhÛ¸×ÇviÓ›3E|»®í¼ß?÷Ç‹ðŒ?opÚÁÞõ-°öck<&›ëë´ÙÆ|Öâ½z>&OSH—äiÔEÐܶÃÚ‡^¬kz{q[|ål@4.@¿ n½q
+Ç¢<}þó‡:J±×èz?ÍÃìsÙ ôOäó5›¾ï=>§3æTãïoqÎÁø¹Ú)§•XoÏ®ËrŽÉ?õ¤ÏŸ{èÒr•ùèÆ//{«-íÝŒ`H¿~¤w¼fÜvéâûd%†²MÆÛ{Zª‡´õ8‚ÃËãN”VÒa…59Uÿî~U+ÅËÀ¬7 ‚.^¨™NpGO Ϩ(ßsÒÔ³ÊÃ
+f§Ýcñ{«n\‘1¯«7HÁ+{Â#ºEñ{k~ò`n»þÔwƒê~êro{î VÙõ“ñ5·ê&ç9yØ769“v–˜;8£Ñ¥[~©épœÙ„}¶ÎöÏ![#¶6ÉSÁy'‡t gyf<#.þ\¯Ô‰Á‹n• ²3;£ƒd-`+6Ím¤ð„½F±.ï—ËŸ _ø.2<rÏÑRðé,Ú/¾c¾²ÓR*ã¯íÙb^ß sys¨DMK³/sTk2Râa½«ÉlMþ|Å÷“ÞÁ™ïBÞ]ŸÃšùÞD{“·¯©`c|ÒSÄù9_ó;ª*Øî^. ‚ìnÖqˆÞÍ}•]YàÑzòùç •Ï·ë«ß­ÞV¯Í3Ê~ò>×£¸)ò°ç>D‹¨ën£Â¼e¦
+¢¾Ÿº~‚¶³ëaóó.6û·e­X-œaßUþ·ð³#_9ÃþNŒ_?A{³/ª=ñKdï€ —J«Eê¬U/:vO¿~¾Ng;^º,oËg{ýgºö]e\ý¬|ʯ¾eŒYÇÕlè’ª¯X4•Ÿà®µZº¯„bÚ'Ø£ï÷γÔl—3~Ã>%çõ@÷w?ÄéÆâöáz¿0—µz"è“~L·=ˆt'$.âÃ._IëŠøö´þÒ¯Øò˜vsÔìü ï>“è—ÊÊSØ@§Önݱú\ÔðOoƒú¼V_ôóÃRüçw'Ò«~QîógÍ„ÝÏ‹Î6}:4Q6Â7õU&lC›î·Å«ìP½fÒýÞWÄöÝòtqý6¼õ ‡úí¹þÑž8«cjSLc ›ËèM®Ñ†K
+Çlk¢¢MÀøeŠ÷s‹BÂþ©>ƒo¼(ð45\<‰'чP‡5
+öÙ¸PÖf·ûç“Áû¼õlzÿÕùà%2¿=Õ?ÚÃæ鶆_»Uè‘«èƒØöf ÛZ Ʀ¾}d0^ü3ÆÓr>xgÁY\ÎHËÃsðO¾¡ìµ8_Ï]òóõò›vÁ4%åA»³àŒîÂð i»Ë~}Æyø¶6†bCqÅÍ=õ3°|{‹õ&–{àE¨¿ˆ}¶š…w×"üî…1ÈþýøÄÚõu%›¿M·¿ÜÏ3Ó"‰Ù¿i»-]ò­õ8}ÓԸܞﭻ}Vg!ûNm6XfÃño n×iúþÔúâaOð>£³ã7ÆÔØÁØbf5¾ã>=òmØ”wɳö¬a+š¼ñM;h팂øþ€ºvm¶ãô#°·¹Œhžñ2uœâS÷´L$3;z|«ïXcÆ÷êÅoÿò‡ë½™¦&Ç7x7.NñÉÇg~§v·—íðËhj¨Ÿ„ãòïºÿ…¸4Ý°æA¿\ÛyEëőÛÍQŸnX¿s¶øÚ ð8õ šX.òn1Ðáï§zA¼îÄðÔµç";xmþ¢_º½qÁL/þù8¶#ÎÀdzþR_;·Vý¼Ä\<¶£ù‹;´ÃïDJÝÉR²®ëº{<Œ>7ùÝ'Ô3½MèÓÐÏî[¨C޳ϟM´?a3‡{´5{TE‚öŸ§?yëÙ ¶e·¬Ä‰_^ËK¾¯BvàE™Â·'û³¿‡ƒkAù.öàl&#ñ¦¶(Yh=Ðíy ·Ë‘{Ù·üšú]Ñ̺¶CÕ—`ó¯Íþœù%h‘2ça/1÷›Œ¾W¯ ÷—ºož çÛú"’ÑøÑõ½,âr†ùTÔÆ¥9}1ÁøâÆrÍÖ,°¼v=dÞ½´mýÀìt(±ï—ÑgÈü2žV¤Ò>gžƒeIïqmÖZ
+¿û¼~ïÙŽGþ›7Áùï¾5ß}¿~ã]üÞ{ûÝ7ü»Wö·îÂwï×çý'žož—¿Ô¶^5×u‹‹h};}.¯—ÍßWñ¾£ÌÓ/zŒtÁ•û®m=™Ù[dúf~ç+ôO|±¾ùº1zñí—ð{ßÌßø¾~ÿ[üݯöo|á¿Ûøn»á7Úßm|§åòýoÈo}o¾ûeúö+öå7¿x¿õuÜb… ßï°²ôœ'A|U&u¢º?ôÖÇ>Ý+‹°Oø+âÉ‹±OCòçë¹<ç÷¿ _þ ï~(&ÿÜÞΠÝ Jzäë+bO—×ZãºßDâW¿ÿá_1¦{©­ûn
+´“oƒ¬WSƱFÉl€ÓûòØZ³›O?F7u,¼ê£#À‚ÖqóŒzB_>Nå
+´q†÷æ·~ž11Ç^thd¼ªçíý‚14b
+&Çèάó ¾Q·väÄÃ6c\"bsœïØYÏ‹_ÛLzÿfKwb3vÚmâç%¼Æ,¸ïb›e0èïœ'l<!Èžƒ"> µOm[¾#nj ÞÑZà
+ò~Úl1™ióöyº‡&·=cÞq—ðtöóïå g§]"bÜñÓž
+&⶘d]Ûž[°92V>C¦ñç_áKO§ËZ‘îqÅØ_cM+"òó™6íz\ü)o
+xp¿ïob^Œ5Ÿa>úÜ©?Yúó“ÇÍ¿h>fži ¬ÝÑAzGLVçé+<£%AŸó—ˆ¯¼!Ì[úÖ/þ\½ö¯½‚§ÄtëYEÉ8µo
+Ò™9è’ZðÞ²áu…]ý~}¯Hy‹Ã±Ù®¶À'ÁH|…궧i‚b…׌ g‘® }Îzo[ƒ;ÙWlóg•éü û”¾‚gÜ¥±Xƒ[»ËœÜÑÛÆš#¨ï³"æek3ÆÏÏ=’£ê–G¤ßØ.Á„UhzL<-üey†²•FଅäY„~úÙÛÜf°VO„w|ïQž럜—î‡'eþY(Ç¡Käèý)^öCà}Ü™ä‹Rƶ÷¤3?ŸV¾nRð©k/c¿h@rúÈrÝÒçøt1ük)V[~#ºf]¼+¨Wq&ùmì¥mºD]ÇT‚J¤¤/IX–ñÇöx%šå~]ôe]iR²ÇʉseÅùzE{Ös±*xARÝ5ÚÕ,a¸ YSm³Ao†‰FÜ–í6€Fh|ݸ¬=^û­•†U—Êäa+Q¬mcôקç>¾ 6Þ³W¸uÆ©¼¶m¤ÍÁÉzû`¹®1Xý±­ž6k±ÛàîgðÊÒ+L'Ýöºûƒe]†c{x0›Æ]%þ=LÓÐêsé´6e| ì ÂuDÁD“¡Q†kvÆ.>Æm~§ýø¯u!c†Õž;»ï¿Ý»ô€y‚çäö>/w+A^ÏÌo{Ǻãñ]9s‘àˆÔnv°Â^ ‡`<ËVñνڋ¼é®™$<Iqzê<ëÅsnûÑ?‚±dÁzBW8&=hk9•ÉúÍüSÁvÚ_Ûº´5Ì  ¥®Ždù‘o¹Õ³Œ£íÊ7Ú ¡E†ì9s kžjqxId˜Ï¨g0GÇz ¥l;ÃŒæÁPbÂ
+Þ1…ÂøÔ
+Ó‰yGÚù|žL1|{í
+ÜK›aÇ¥ÕœØ+è¸y
+ŠðÓòIGmæ~]|#°|q ‡Rl,ŒcÔÊ°î9 ú*œ[/Á ô7ªnk_•>u
+²ú‚¯m§®·¯Ü”NÓà“‚Ÿ§ðÚvo›¶½s:bÅ|žˆß—0×°Eý{'¢·?ƒcйYa0Ö š¯û¡Xâv3f æcè3hÛŽ“ ^ï·½ƒ6^Ýh£¾Âä!”§` wIÁkrZû®Ry8¬öSÛßG[¯ë
+ö2q°¢eÔyke„±_
+ZŽR ò"<ŸÛö±íÕ5ã
+2Þ4V¶½4íG0âÙ~Ë)ÔðT·lwËN–^Nñ[9óq–`6û~~lk %ŸÏðGk'æ°åV0ÛQ9¸²-WöÈÂ+è5c?ï‚ £vòyî±ëíb¤æìëA¬a |x%ŒMoÓd–¸“oâšR³†œîMÙÖ*nO½] P”àSü4äV8*#zpêö¨1ùôÒ!ì`…7nB‹zA1—}fóRv@Äø¹¬¦µ¥uLcdÒ† •ãP‚GTO¡?±Â¾šÝOµon}ºó¦¿zÅx)Á.ÜúøØÖÆ{6Œ-ƒ½Ju7­£Ñc4e‹®_îjO·<ã™ ‹Ì¾)Ê ²<X9ÀlxC/ ÏVûjÜl{íl dΘ|\A^0/3þÞöRÆj÷*ä»b^ã`äTÛý^<²ÕÈ4‰íî2…gmô~õÌ<‰Á§²lëEÊ=èƒÕï`ÿYk­½ÃQ8Qœ¾š¾”‰ùon†ÚvÕnõž¡áýª÷ÆË­Ä'T㘙òæóÓ¼ù5è//žÂmËÉ ªeâv”þÐص÷Ïè€ÝŸQØtÅgy®´÷°Ô‹µÕ¼òáðêpq^Gv¯øc–«¡é½ÝkÏä tÛüضÓ<ÜT®é3x÷ú„­0S?¶×Ù5pâÃrß½Ükipq|®îWÂçPkŽÁ öèó¾‚=Û}×ꡯ™¦²mc¸¿õš&çÕücœ¥1¹a;èn³Bíµ¡NÁ~ «ßœ‚Û¿ú‹?<UùøHUþ×ÿ¬tek³ûÇÙf§l.À=¹SuxWøë;Ü”Îñõ½“߯üþT _3仪_t{ ü™ÈzšÈ?»cÖ9´rÀZš™ì±“yáidô¶½Õwÿx<©–üïùòþ|IJ¿ž—<NoèѭߨJÛF«b»öÈgò gË~ñ‘Àá³7¶Ý‰FÁva-ùxÉ¥ žðY<4 ¸]w´¿GL´ú3ålóäÚC;ÊÒ÷3¾¢N‰‡Ÿ£½_Wg3_ª]^e"¸«“3¢vjìwFN–.BÈOPS~¾àùÅz$‚5M—äÎ;oðÙµ­×ÒA†m >†¸6«˜¨¬’Áø×Eðõ <èëóÆlQª×Ã|Óį
+3Ú:£t¸[浌¨˜aAµ‡<èác¿Ox»t`>4;˜Ñ@µàáâœØ:±K/Ä#ã…Òžà‘#¾2{ìôŒõ ýP·¨–¦N`Ðð÷àÎAéÓã¿Ï³ëù{¯ù®G¶ñûkÆ離zÐ+æEÐƽc—¬ÿ[^OÕƒ^»Õ·Ý¥çXùÚ#Æ·f|FÙÁhy ÚŬLн3ÍÓµ‹[æCœ­®ö£¦ñÇø([Ø 'ÅñŽmíWýʦ ŒþŽyµÜ'8"+J'|ñ$ÕI¥TA,ìÄ1noA[tT»ðj¼ö·¼ï¹Ûëý×b·²×E‹àžtf+¨FÓ„v~>:Ü-LFûcsã·SOÍŒŠ?º“§Î×D¤¼­Å«;l™âsrb¡³bƒ‚š…³°ìÄÑFF¿ïsãŠGs؃ãæcÌÂ*ö`Ûîq
+$Ú{³kS 9Ú½Î8-³²¾ñ{Õ›×Ùê9¼#•O8Öu¹c©{ý¥–¿×”éê'XÐê´ó·ô~¤sé;=öÜQ_”ùªð8'_˜"Ù¬‘±óÄjг¯cþ“ØíŒÜ
+ÛAv4N}\Me™ÜœSy&‚Žm/Ï\ìÀÆÞ³=Ý™Þh;Ÿ«òæYÆYr’Ät›Úi]ôñ¿³íWÂù43·æn$øÔ(·ÏY—xØïjyòa°c¸èTÜ* m*ý“Ì”­à¬Ž0;‚ü^‘…áG/ä±~ï*im¹Zpl´³ÕôµàRt@¼^Sc@á–ódÁýÈO›î¹åŽï4|N¾6æ0£ßmAe¬ûƒSAmM¾FK¾õ=Õ^'ÃÁ$ý[0[ÐÜA$gÔ'Ôv0ò 0ó°:°Îq¹æÙ½Œis¿Nä. DV€eYnÙöÛgËß_ù¡XGSêúú6ê/í4ȳéÝÖp]x_‰f3odÑ ¯onìÈv~¹„kØÀCþØL2zŪåº5‘ØrdÐÛsy¶×óXržMNÉÁ€)¹Ù„V¯ 7mR _ëñžS'¶ÆË“x‡s§^É©Øѧڙ,Ȫ0ŸWdØ-“l“lw-³¦~‘I+1HÑcåØ눥?õó[[ΓC
+c^_¼go#›ƒ±v»¸óÓ6–Õ_Ͷª B㙟Ï Èë:¢7CÕXÁ¹ñ¬–ÿìäUæf¬ü£SUÍ›6½GL[Tl[  6„>·*%:6fÁ¼«@‹º[,7[É@M•tãVKÝk™s«Þnü¼GÚœͨ‘kŒÒnŒ / öÆHF¾\ͼ¬0•›úIɲ¾fö_n£OøèCϻذàNsú\ÝåÕf²¥}öôÐoöX7v÷õ‰Iè51Å6Ío%‰)O0êç»Á{æPL"ºïѺϿõUÑòdØ×>–նÚ2Ö,H¯YË2ô#ò’Ôžæíîªýg7"iªDT ­~eØ„WÛ¯¾©OP()jù®ya}b8vpÆ
+rù¥Ä‚U¾ayÌê¼ó^’J[ƘÅçnÕö¶s8SûÓÓÙ7Æã]m½r”iP9ß,ªIóŠŽ¿º:ø¬“àä%Øòl¯Áƒ4TÄ0¬k]««5¹½mœxŽ3á‚SléËuÇ~ï4즪F†G‘ñ'M…·A;Ø/ZˆŒt 2ªi‘Õ¾¢LjXä™F¨õ*8v fª_„GQ3þ MÄCoÕ <ô™--ír­4\vazÊäëα°Þ²9VºË¯ð5Á¨–в[³oåÍõÖW…™ž,/éŒi6uVûÝCÿ9rïn2ë‰ìw¿rznUÍcÖU³É-;crÒÖúò›?·cÝi† nuä}ø‰ßSŸ`f
+ংãÑ ©îOÚËG´Bh¾ùŽ[äð¾7/8—mËÔl·9¨XrÉ”SööF¦Þë£èpgç6KæíÛÎÛEjf+,8² ³+{T¤Îð¶k{­ñjî|~ëçJCí[Ö̳ ¹-Ë0=HÓ趕gâöUOcï!“yðÖê¡Ê¤g©‰ ßëHh
+'qf×Ê?¦hÏýª^m}ðNÅ4>`¿ÏÙ
+Ûmv
+¯`:y
+z.n¨jÁ³k.ÏvÛøÐú üW…Ï Rûr¨„•ëD9òÈb¹ã>jn­+ÑÞÿÒ±‘–ëŸ%íÑ4äHêÿ3þfm¢L¬X»Pƒª8‡/”÷ú‚ÛŸï³´Zô·Ÿ?³ÌCê´IÑ÷´[~¤¶<§™1×9õL
+Ì3PW0'Ö„ˆ]™sË †qæåbþGÍìC `{lQÈŽkdxäùQ Æ4骘ݾsg{N0X8g-S¿|+…AÃGË•BG£ÊV+%R[É#[Å,îlAyRBìÀ
+öæìý8¨Q×=kºVï÷Ì~!)R¶-å.f–]4·:góAÞµ^Œ¢øš™HžŸé©Ú &’¯1ûûD9__5jÕZΆ̛Š
+½å'N%˜ì
+¯çÐN2œ)É2€,8ŽÌ¡¿²¢÷¼ñéæ‘­áK¶gRÕñ=1“¨ôcµŒÓS«ÃGòÒÏ`ìÅv›¹SJÇõêÂ9¨¦[/~c“xö2;©=µûÞ?.cº~¨ÊJ­ÂÈÑ*c:Í
+\‡ÂŽàD²[«G+ár0Ts¬"P#—¼Zn8çú}Ú$>y¡§ã¤*õ}­Ôù†õ±Æ¬JôMv;…ý|nRÈ}ôƒ'Oñ\­#«‰I¸ü±åŒ5–°’†Üîræ@ñÇÈ«8îôËFªÿÆÝ‚Öׯ)?7Vm+ÏÈó–å>l#3V}ÛtY"Å‚ï-ÕØ R1¯Ö$ 'Urk¬/°õ}S8(O¼Áž#fÎߣ—[K]b­ÔÚÆbb æÓ}ÆØiW›éä#l Ò™›ÿ
+â:pÚøVõ›WÑ»Ú_ùJ¼³ûéVÜ ÆQSá‡OÍÑ)×áèÙtæ`#xN®­g1Ò<'º >Öûh¹ƒ¹úÚw–•Î(ëižðÏ—œøš]UÞÆܯž–¸={éë"d왶¹×7¹5[ü2¯®¾B6² ¯ð& h#§álDiew,÷öÓˆº
+qïh·åOÄôµªŠq9ÙÃJ"±¡¯ûTåG–‡?µF[^CFÔzþ±\ÅŲXÐÓ|zæ§T<ádj 14º³_åÙFáe=GdÛ€m»8¯L|²!_úÜkèjOÍ>ê7ãÅ*¦í{=WIfwô3-hK┾gNøÝTŒõÄÖœ”dó–zLZŽÌ8¹³.ŽÍªÐå½j
+Ÿ6“©SÈ8«Ázgq×7+©]Q¯AºŠŠá^LÒZ]ÆnsìÌæ”O®ã¡ÕúQZz6O½ñŠ¸øÎô5™KkÍ J¸³ã®U£|X÷$‚®ð®EK,Ý q
+x5wÌ[~U˜â‘w”€#8´_ú½Ç {sÎÉr&Ô¨»£ô“'m¬÷&«˜¶”Ôî5ÁñD{V5ÏJÜøVÉV£ñÖ{G¾*©,þfÆn5£àÝb€Õ{<Šè^‹P5ûÎ)BšPz¼NÙ¤cpGDì`dßäŽ
+N?½Þ;ØŽ|ºàœÃ…§Þçss¯Æî¢g½Å®”Ò¯¤½U…Í OG[¥1îUJÖò.ó&Ð>h=kšÝtî¼ÂïA¶Ú’DîÈÍøªð!óúÊ
+än«´Áí=©ˆùÝYã8~?òã¼V²Èg0~òtíóØ󂳞¼¸µE^”Ö'c]Áû¾ykÓžYyèZó'Ïngw=›–t/Y厎hìÀSå¡Š%ÝŸ\¦„-˜·ðÌô7ÛïÉ~Y¼g;Óaº#Ï3‚×Î?s ¼ØÕ*Œ­üü“ªrþë
+ȽwÖì o‰8è˜é\Ý) ÞZŒ3vJËÙwƒÆv\wÔÒ9¤rÓ%ð ÔÞk‰^Çâ¾TêUs³V4CÙ!íÊڶ̱zK×J·0-Ü ÁÀƒƒå?ÔˆòŒ„é–G`e%O¾´6ñ•ðA}yŸÿ ÌB;תÑq>ˆáxµN],Í›‹ÚР¶’(žâæa5c¬,L¬[ï7G'¬4Ž,‰kiÛu1+ÖÔUýÉkë00u1kux´˜½_[}T¬æCwZÏ—Õ'R*ú[k-Ý«0·…™1Íúwªýeβ%{ÊàAWá¬S)y±ý–‹²ÍÝù£-w
+A¬D_¨ÑÍ¿²RRBõrP¾=Õô²Ú¢WfFD%|¦1¢ uÿÍädšOc¶œdµ¬Dì=ëokF÷ÎõÕ·‹dÂ-S4ŽôÕ}êôbzNÆ$µŠË·gÀ©uº~dÏ÷+á›é˜<ˆ^ò#ra¯Î(„˜_«"íÇ~¿ênåRøÈä¯
+ߙλêNß'©Cn0EpF™Sòå°pf§â`ùœÓWä¹}{
+eñ 2sfÚV¾¤ß—ï•;wavÆýªð9S¥°šà*­à#_¿¿“Ø»éþöÒ¢í¿* ÚÓãô:™ƒFÉ„‹aË^TXßíÅIJVkó^KŸ;Æß=
+6ÕÃ\ÖX‹0ÜY lkµÿ˜ºËd¥¬ €½ÂywNÙß¹„ö+¸¯µQWøZK=ß™ò
+Ò÷¿Jíu›ÎóþØöŠ…Ç¢7ußÁµNV tÜY /ëðĵY`gmëT 2/Ø–9eW;òßu͈kÑòãS|d{1W¬V,¯¹
+²­-¯ÈÌ|ïÒÊM—H¿–ïlgtÀ~Òœ\®UÅ,KU0àÔÚóÛž •3ö,+_Ô0K ­õ3­º³¥ZDã¶í£a>¬±tÛîÉhVøl±×ºE+\Ö-”À¯kÍÌ©ëy’ ³­¥\i±–µnQ Öu‹Jx¯Éh{o*«œ%£½ô\ Æ)ŸX¾·l»i«g KÕ°Ý«¤ùHxܽŸ4yØU¦<W 4ï rŽ
+m–à/ÙW J”mm±SW ‡¿ϺŽõ
+lOYîáIRe.¼4J—²|‘OÖϪÛZE|¼ÉðôæEì †s®ósݤϠw{ò2L®§Oj2ÈlÇ®êÝ+˜ßT½eÛ¦Äk‚ýªë• «… ¥ +™´¤M]ÅÈ¥mß?¶µÂ}ñT­•‰v+[Dy­bdß~µ(ʶg$MÇa];Ë°†÷^> &¨p_u5"HÁ›ÙL”zäKÆ·sí`g1v/˜O¶Rz¼ ½’ÅóSk³&vXô§YFuc™Ù×#¬W>´/I?H-¾£NˆM¦ìm% jqQŸc9YËéi­d5‰WðyùášßÀb«d-C4ü%ø‹™Tè©n{Z«ªëÒ©³‚×Ïk‘¬=bò*^Ù-Æs­’•Öóðu.ÿÛV7
+‹œÝäªF–yå
+ƒ#Ê­à/ù|g[¥¹lkåDO†ÒZ1«œ‘ëøx‘לº˜ÑÜßð|<Wп ™Ÿ3ºÛȬÿ ÍeSýÇŠ¨çºåjg–²nYÕË=¬]Áµž—QK•W÷\lØ
+Ž{®•Œ^ëy™£×Xœ‚5ºl¢AKeµj|}‹o¶í”|(ëy­àk=¯W8]£Î.m[+atÖán×$ë¤åB•WËe7t´e=¯,ëy•èZÏËTÎCÁÌ'ê¹ °‚_ècæBÚ“Õ³‹êCË–Š3«¥•M¯´æ6êú$÷±VÏT×۳˖§Õ¬Jù Ûò¶m~óñî>ÍóYÚà*â2³±%=~¿¢t±eÏ'‰]Y¦=ßB›~É‹l V ^k¥f˻Ԇ¼YÈou*}*3v0rêøÌ™_+@ Ô¹–ožåboO_y®&ˆ2¤±|Àé¼õ™…ö˜ÝcHá<âì‘Á¦²f»?Z¿ãvíS›âŸ˜:?BGèÙŠ.Ao^p·WÙ`_£y׫Áܽ¯PÌŠ)äZ'ëÇ•mŸ;¨ ¶Ú+è¯ñv aº––ñ+è•þá›mwµÍ»ŠLG+¸¯ º¿ýg²UÖ²íFBõ ­`…FÉ:CÿýFÞ·2f™½Ö¯l׶ö|=û\„voí#x—%ÙJøȬÍX=»Å‡Ì[á^‚€dw«nk¢m,еGë;xÆbð´kW˜Þä~2_h®\¨ˆ¿1HªȲe«¡ôô”Ãl™fxcµ¦N¦íŠÏ†þRÌZÖÉJ ÜãsMš–Ðe¡¢s} jÐ=ü˜d8—èÉJ×V“¡2µ`#Ä{©êd¹g ÆÇÍ&¤·ö¼ÊÝ+á;³õwÉ.Ñr£kÙñ·æÝÓJdeÛ‹2dvùd‚” éι¸ó
+·,ãÕ¼«²m¼U‹Ž«s°òŠ+U¶Ý~f¡Â}ærË„\£àòÌUÃ%;7-¦¢ g«Eûð\U&Îͦà-œK7•:nd…¼ƒö˜¶<öõI€÷N5!Ö{‰¤ òa süµí¥BÁ¤|b *M(?m
+g–÷¬ÈgåK]ÄDµ· ÛûþØ{×åºnkMô ôü㪤ª©àÌí_¶r9û”r9qÒ®®.MQ6;馨8ÞO0.ßÀ\sQÖºÈâ"½vÊÞô˜˜X
+‘¿:
+x5Œ%ʼoü ¢°î”@ò„ÀC 2Á(r}ײŒC˜S̹ÒF&ì•@;oªØä|£dµ¹s„ðdµæcPÍÀʆ¯I=>¶$K@(´‚óæOrÙfÄsf*÷´€³:¹—Äb~·rR¡sæ{r‚Ò-D€=k5tÐôp9s^QdsD0e¯9±™®a >ÀÚJ48 h¨lXõ SaeÞµ,„\ãj²§Ÿ­h«ÂÉl#i<Ä‹ÅþÒb@Ø@’×H› Ö'ÇuÐTfAb¤æ¹ñiåV[i +0ÊLW'„°tãQ‘˜”²3Yƒ_9¼}BPšŽš3òŒx®TW×ÛŠcuÑ«”màD ô:Dع2„àJÎöÁ `J3¢tPÈôm)qå3˜ß@ilu‘7TsA"†TÜ`¥ÿ5ß{åí¦Ìv¥m“X>éU…@‡ln­­„8ÕÓg7ºˆüÀ)h:€*Ó:C'*—\–E[)ç?j4,<Öx´„ˆ@]ZFÒÒK¢±”±÷—X#2vº¨©ö›ltýðAý® Éë^¡Àæ-qüYÚÖj¿3¢FúãHƒÜ¤ªt*.£ù9Çg%Ôlß$<‹|Δ2÷›§¦h"&ZbùS…¾k·iIÖOÕ¼æšrp&ˆól³Y`% ÕXVhTÆŸM‘ ñÛT²Ÿ®¥EË¢êÚý´Ž½JVƒ–/o@ÄKfˆÙªÁ{Í¥Õ·bÍ^aëxG鱟ç
+5”­L§’_VˆÒAóÉjÛ$&µÕ5˜½œfä*©§BŒÕÁ@áue5ÂDÆjÞ\
+ûðQ9
+‘sÑÁ ;-&;û±b%È]¬[C‰ÒÕqaÑ–.«ª+«@]s"‰®ú:ˆ|ß+ƆÕÿ k_ƒÞ$Ž'Έò~EÝ­Õ¶š·FD­¨ÆQmE+
+œ&«ÒHN ƒÙ}4®™ì³ Ò •«^_q˜‚Z9ùIb˜Íœâ}mï'N÷k…ü6ª45ÌËØ)I²³ ‰ÊbÁ>ª(‡³u%ÿ•1G Q$E!”å×beõ‹¶W8)ãòë«ÄÔø9™w±³Ád\éÂU—Œˆ
+f?UÙ´ïp´;‹åOv
+-õ}Û̃µBF>M¬jtRE€‚ðCó3"¼­%ùnmxÈ÷èäË‚XWý½ Ûm•ù0 8‚F„:]ô2m)ë¢T0` ¢
+"ˆ
+Š©Ã¡ b¹D5.t…8‘ç_ÈÌ*’,§h.=ÖhØ3#«ÿ]ûl-¬)Ö^M„JÄzj®Æ¼mS[
+ƒjã©!¥
+‚²6ˆ8-0ÖÍÚz1Q¡Wˆ\ž  2ʼkÐ4ÓàÙ[!rÁi€’džk;™4œ8p½Ìˆx_qxæm"Y(üËêÄ¢<ˆ`ûšà=kkŽ¬m蜛32e,44)–7'¤¨P¢qÁC_m[+l8ÛÁQ¢¶Í—/©ÛØË…åÑÊ.€½u>…™ùbÖ6BZeõXÄ0K‰š‘ý(ðíõ@æBõðR€€ÚƒË Of†Ô¶”]P~,IJê
+±oÝQ‹B«oq%²ŠjMâ’É/Ga4H»Ðê[ ÔmP7š“êªaùQ6ŠDFƒ+¢â,ÎÛÖÙ ƒ¢JöB‰áV@ÆY¶å°-­¥É ¢â— %“'€‰
+Ä!K°’¨ÅÂEY`Cy:-Kù$*FM`Z!rPl‰ƒ èõ•ƒNƆroCf§D—‚úvÖbÎf˜Ê’˜¥~ïª5™ãþ½·R®dEb` k4® ÷5(TäœÁÀêhÄUSà¼me"³…¢®× 2аf½f+r;#©å´A¥ýÝlaLKL¦¢ØÐ{¼Iœ3 %(t³Z€+Ä~]b
+‰Í
+€f”½‘<2=óÔ㜈´¤Æ¼- ©"yéóâ´ôùy8#cž‘’æÄáŒô÷µ½—xï°Ö•Pþf>¯„Òéóˆ¨<µºZQôÈe[µvÌ¿Áœ8û^ƒ<û¶i–ðd»`Ø+VvÌÐÝf»+[mØ•}âbÏ‚<¶·IA³càfp¯v`a
+×\!ƒÃRµ» À‹i¬÷ðí{0oëÕ•ËB…fŒY¬Œ¥oe&WÚ¢Z©b4œrÑà!È5¥‡ÒõžÉ3
+IKoúÁŠʉ´¡,ÚšÔ?mWˆC ^!Çy•ë¢½B¸^ù©!ˆ{ƒðž í³S;ÄûA\Qfä¡6P\*»CÁ ŒÓdÆSF(?U çm“ºú¥î˜äIN¸7˜ˆ)hYñyÛ¡:%¥¢9lj®“-"2Ò"jæÎXŸ‹(É7'ªö‡šâ`Q3’sÚã4#ÚI’í9këL¬™iµ3â\ž‘‡¶L¢RWª>à,D‡ËÚ"œÓ¢Ç¼`hÀ^‹‚
+YM1Þaw9­ª|« ‚‰8ÌÌÛVÛÚavš«¿$Ž)¬'…›,Âi±
+¢ÅDDw1ø4#Ú"
+ï[m‹•M‚³$²0²ü
+Ià„X2cfÏZ!2` :dýd
+ouqÀœ)š+‡‘PõÛÌÚK6ª1
+²t0'#=Æ)ª²bg\!›ä
+öK²Ÿ”6ŒŸúCrùÌì¡ä*u–#íH,Ë0»*w˜µÈŽ¼>'#©…6SXšˆÉÖ¦›unN&»X…½ÅÚF@ŃŒØåÂ2#J`¿ó¶#­AúV‰sûý Ó•§Åõ¨W«TŸ€›«=ÃàšñþÑÖr¦ãšĹgÝ$èÊ4¤pžSÌù)h Íl$} ×¼%C(¡ŽŽ:¹WˆlùDƒÌÕq´WœÑ¢–„cèÎÀ„ê8No4 Â'bV—ø
+‘§Š%üšû¸2c½h½aZh¾¥ƒL%ÁÛ¢m‚¸æHì :ÁÃFy„>YÄ>'¾«sŒÖ@¿–í#J‰Y[’XÔž¦Å7ÑÏeÃ9"©¥'̤#~Å¡Jaó’b4o›Q‰gæ¦]!—î
+î_Ëo˜;ŠÝPëçNeÎôt¨×®hb;Ê'ÂU=#Î}+d¸ÀG¯C÷âÌ8Tª6-Í’væ-yYQt\=Ê3¢*Còþ ‹Íít–LÁL´|qjIÜ̬ZÅ<k›Ä&פ®üÈ2.ùˆ]8Èà+D­…D¿$y’JÃï—Az´ÄPµŽ¥VgµœˆÅf YÛ@øS -uFl’ ‰@žÆ¶ÌÂUƱÚâò pØÚf­Q5˜™çÁ53òÄ¡›Y!XFÈ]niJ v€JZ³0 ÇBÅAðRËEÔØ¢ÏV¨ˆABÞ™{…*±äëAMë9‰”•ê%©›ŠžDÔ½a»ø›y Òq-€ª‹V­:n¤ÉfLUg°+BÔQû²Y…±È)C䜌rËi-s›¾§¥‚šV
+Ù.s¦×‰ZÜ+´ë)2e”QÖJ^7iÙGƒô£*ÆA4¼`6òQoyÌ~|C0÷ñ˜ÓÊÍEE¢¤æò¼­Åèè…-ÊG‚!ä<ØìŠ+«¸4 b®fHꄨR+åщ’È=·±Ï‰³¬Q3dÞ+ÌmÑ 8 b
+j»Ÿ·¥DÌË Ôƒ¤î¾y¦T€,:²`ï¯J–TŒQÕ«4K­¦m õqgmg§‚jÕ´ šgéõŠÝT8ÞÜG\M71òOÃœ8,¼ñ¾¶÷§qiz^X±Â#Ý„JšD¨'À(¢ja|JìÒ4‘@Á~QK6à0pù€z Õ(”£+M^o¸}FK*Ñ‘
+´­‹Ü iVëuND‰Éà*¢ÜaÍØdvžjüÉŒ6ÒŒ<†Ov).V$ ÊpeE‚¥ç–ò5_ä()Ë2f¢ü ÛÌê–¬ìT…¡ éL£õÀ½YÇáôäW1—w.s>
+èæ˵â—ÛÃLö…Na„`šI’2³mîΞ5Ük
+8ô+óêòî/g—Ò¶ßyv{y÷Ý›‹»Í·Þ/öî|<ºòöfâ­ùÉ}È?^Ü~{A+ùˆ„ mYÇSü?ß
+ÍæÂíÍ!³•×·7o6?9ÜøÓËéï°o4msÛ¤´þäó¹½`pÓI½zuywù¯ÍÕ©ñ¸®7Ÿ×ùù»7ï>÷0ŸÙì•È׺¾8Û8ýåüìêü7¯6ŸÛxáÓ§Öm,[̾~þO<…M?àê[¤’œ]_¾9{°Ò°µÝi;Øfwþd‚a6ŸÉc³~ƒaÄÜ»Åa9ôcÿd‚a6ŸÉc1è<ý`˜ÍëÊ=¾h˜#†ä_LËŸ#æy|8Ìù“ ‡Ù|&ån=†ÃÃaå2ú„Ãø_J8Ì<ÿÐoâ'³ùL›Aèq†Ãl±³ýŒ<™p˜ÍgòX$¼C ‡9hÿÏã‰æÙâÈmË<è>ƪ[Ä¿ÂÏö~¾j"à#ü|x üE¿øϯËÕG¾ÞÎòµ‘@ôx®¨Íe¤jÑ“,~¬“säh[p´òKæhOþÈÑŽíÈÑœ£ý"Ú‘¡:C» zägG~¶ ?;
+hG~vägG~öøùÙÜ©óõv^ø'ÆÖ6žü/ȇw<6››úK>6OþxlŽÇæ/—ÿ¾¸úËÕÙ_o—xˆQ, ô©ëK¸“¼qô¤ õ¯[PÎÞxLœïöâÍ͇Êk½B­¿y)ŽÃ/öòÔÊŠøÿyp'>÷»“þÏçýïþÿ?ïNžZÈö±†ŠÌë‘ÕPyû=UQÙtv©†Ê†·õG/ ò‰§yyýêâõåõåæ.Ë~R/Îî~»Åu0{ãà ÄŠ õ¡¿ÙlüÀ#õ·™Ëc‰Õ?,—luvœìèU:øDó›7ßß¼íéŸß}à°?>Öð¡-õ¸f/ðåCØØLøÏÍÏÍ?âØl>‘„ Í'Âü°ñD>0åùDüAOäžÁùDÒ#áÈãòÜR/xLWçÏ_7ðSÛŽo/ï¾{sq·¹¬ó‹½C‹c§{L
+ظþÛ1#ÿ“¡5_ý¸yø×°É6ŸÈxé|"ÿ>ppèÜìæõë·wt$n/^mŧwæmtüÿÌ3ýe(
+šÕÑ$þØLâÇ/=>‹¸;<“øQÝÛ…[¾£Â÷‘ÏÌQá;*|G…ï¨ð=¬Â·±€rTøµÂ÷TãÒŽ*ßcTù6®ÃñøT¾§vÔøŽßQã;j|Go›Â
+OEçÛf&®õå'§õm1£G¤õý››WßÞžmÎc*ߣVùž$"ÆV9âž¿ó+^l¬þ+^|r†p,ãùS9V¼ØóRFˆ'Á›õ;–½¾ê‚¬€,ÿÇ7WgçÿüüDH7ߟ_Þýø[áÞÞýxµ¹[[úDßm
+1ae‡²®ÿv{výöõ(‡³ßwj]PÛ1ßä1XCdjŸD=ÚC~áöŽœûâêê¨ëìy±šÛ à~|+ø§Ï¾øOï¾þÝõ+ƒ"R&Ê׺¹þKï‚Ë”œ
+ùË‹o/¯çžýé{íƒ}õã›on®Øvqòååí«_?s'_ôþñów³ÿ¹“ßöþüÌ=¯‘þïÄ=w1‡)ÑSsq’h›çEÿãy‹SðåägÏFPÎ?~ìÿñÿö?þO'ýp’Nþxò¿þ·;yE¿÷×g§Íçéy(S>i!¸ç©ôŽÞ¹Ð´Fäö<6ßN¨m~bNóóäƒ'bjÏkp•ˆ½+úëœ:HéyÌ™úMþy­!SÛþšŸR$byžRLtÏs©Ôk
Ï‹÷Q:ˆþ9¿ÝŸ¶:qÃø¼¤ªDo=¶”õ×'?Múrz>E jš\Ð÷£µõ¹bà9Õç)¸Y¥Òücykå¦ý¯©éô³öÙú: ÅM¡éËíyk­
-Ù»þMˆØ»Ï>1ѧjJô¾‚æ^žWÏ«ßÉaòúë-5þ­ø¼¶”&!E7}»>o5Ò:õ5ìëÈ¿Ô—,õÿ%"m™˜˜û:„(ÄÚª·ñ×Pè§B_¨š›¶mµðFéß®þv©ïƒ’y›ä¾ÎíäÅý{êå³oûFŽÅÕÆû×OÅ5ú£ÿ{ô²iµh—·œèƒ¹ç5ó´ŸiC†¾ýûJô>iù2öi~^2ï¨>
-EUßÃmbžˆ=üâÙï;«ÿìkúÇü•þ·¯x¡ÓE,nêL–þèGºïle÷©ºLì¾/V?>'ÿø¢¿%—i
-z‰9¿Ö}|^ÎmÙ$e¬Z?—.V=$çgå±Ð
-sµ³™"ß®Ÿ£šxKÕÖy[R†0…©ê9—è› 0;•.bÿè¼Ì}'µR¹‹Ò/‰‰» íë„SÑÕÓ’žŸÜ—]ä¾Y]àÖ½‰OrýôÙ•äa«0ÓAºˆ®YOæ(úÎòYûÌÙ˧ª±EÝlÍ9Ý
-Kí²Díí½‹¯ú?ïÿL'¿úõÉ?þ‰Qoæ²ÔRÐ}‡g÷ÁÙûØì}hö=2{˜½ËÞ‡e÷AÙû˜üÉÔ V%¶¼[Dô¢MVm
-ÒE¥ QîÞèÐú¦(*¡õSÕu&Z'w((Ùc™×[ë:wÆû¦»›¼9ÈXºüJ2ûKÓ~X)êä~¦ttÏvV­&†ê…é
-[ZejÙy¿]Žªm9Ñš™œCâ Ù ×¢nÝàŠW¡4Uì•…J$«í KôhÛ{Õ­Û¯· Rm´ƒ¾õusímE7‹Ï'áð¤ðx§úZèÿ«Ç¤9(qS,ºtzôcõË¢ÉÓ‰%@X&>¢ï§ª +i1x?øªH×aqX¬¬÷V'º´Ï8ÝX…Ø`Ò÷YÍz©jl©øµà¥ßÌö%v®ƒÉæT:(“éÁQïôÞ5íª/´…ìñzH Eem}µ‹þ”wrùõµÎrùõµÆZõÛ £²•Iuaáƒ>‹^ýô]+v–Kß5ö£®Ò-‰át
-¢Á–±·làíz*^³"KÞ…E>b}›Ñ†ÖOé¤ÒiÕÀâÕ¤äD‹ 맡¯˜œ–RdN©Da±¨Y•4„Ä\‚¬=IgF&ÜÈ Á÷®¢œ}²«¦IXµÉÁë¢sBÖFBÖýMÔ”‹Pc£Uè[8ó<m ‘WúÅœŸÑN§L]nòY[¶hœ.ÒÅ@óõd(”=J\•ìíLôIÙòFaò,dè’ôÖ“jiù5!ê­Xú©ËÌ’½šáäí©ów1ãÕ~VEÞ¨ý
-©°XÕð>.†B¬ª©,ZH©Ð¶C_»¨Ä®Aë
-b—ôfIdèF)ˆ,DGL®LÒ{¤×Ë]JÕ–|i˜Y?b¡M¸2›6u}‹
-­BÌÓb)özJI%׬¬ƒ§Œ7A‹©–¾2 ñ³3³œ Ę¡ñL9€X+æïçôËNÐÑ.Žç\DëI—°«¾5ë7ðÞÌïÎG]@¾ 1¯~/@aR.EÄV&|DÝ$ÖD]l¶ß£5)¹s=Û1ÁC¥)ê+¡î‹vÁ^)Ý1“Wý‰G|ð£’éJG·µ&¥šø̺LÕÎöwW¡ ‘.†sÃ+&wýªéÙõª« wE£%«†-Wgû G¿xµ_“$RÔ`¡ÙIê¬Ñ´*n‹;LeßÎdô,“¾ŠxAœÇOv¯¹b )ú”qÝâÇQ3OT ©OcaBˆS†„Ñ„®Kç.O°È)’ûŒERº·Ä‚ÐiÅîP¾à^¨A®JÜͪmq‚4uˆ5¨à
-8DçàÊüøÊ—ÃP‡¡óú¦v¾w|°lk‘ªx„¥êuY‰»z=QØ!5tÐ7skó÷e’)<®ÿV«l~# ÀgÃÔ&éjTSYÀNBî"ˆªK}b}“\M|7‘~~H[ˆ]+˜„Øw„vK:DÜ
-}Û”¨}™ä•ÆÖ |'Ö/OŠ›ÃuçDöôMø¼l ?‰dÐ7…KäÄœ³“û]æ±=Eä¡«9bËæÂÖ»Nc­gÆMlUõE6¤ÏèD4è ß™ ¨:ž»§Áûº «²E&µ¾œ…w¢ƒ{wÁOJ¬N”»B»×k¿ãrïdí„œD‚'âÄ»ƒˆýGÐpTni3S™€Ép‡ub–ÓìY^…‚í„Ö_«ÑÞï¼z?'SÐï£yQŽ™¼éÑyb馓™E±ë[Jì:¢hçL0p³6M¸s³‰ï"““ÿ¥’ÕッŒ,®N"«íˆ¥)1DÙÅ8L-iËCšT3‡WËÂ)«½Mîp7‰©ú”ÕÞ¾UF%ÕH¤\¶ ¨Í¾Lج g%OSõFþYÎ…Jvöhpc¹+ºæ¬†Ž>ÞRÔ@ßÌÙ7Ÿbw@òøÖ¶?Ðõµ †Þ²zI¿D],R >ªé½+ÙÅ‹Ãœœ "žtbœpØÆ.4QS”,B9iéM>eß÷ÅCuï-±m)ÂZ:ËØ"WmÛ,¹˜<1,‘¥Xÿkª—â.ï÷}˜ÓvŽÒ¥ÑVú¶ŸDðdcS(KŸ!Ìî0"G±Ü“3êþbuºå }¼½Æq…°9­Âv`"±]‡Û ¡ÿDg^ª
-º©BufýS.›¾ Ú¹U.bò4ˆ>Ü—1xøP&^Io¼º`8ÖBFP¢S•¼˜¹¥“û¾-B®¤†¼TrmMµçÞ|ü5ODsüçP ÿ0F6 :õâ°àñR­$hÈ4ø£jÛÌ›‰<Wè7‹¥‰M ,CÍeÓ “i‹¿Tª^ddpi¼[°Âdqž ±‹nˆê 8¬0ST+LΪiÙïÚVuòÞRB=ˆí½ßåNV±ON¯ b^TÍC7XCCgd?vOU]¾^*¹Ö¨‹ËÆÙά‡‹É©™ωj@²“ÝÐdµr5ÍDª—JŽ¹"4›I,
-ʶؽõqc[îÒ{ôžá,bv9×½[ŸÀ…9xïõ:9Á¥KäZ`\"—ÃËû;Qï6 º&µOñŽÞCŒ’‰X7-tSf½·h¦+Ù¡«=ñÞ¬ÿÜ‹1ŽV´‹âÍ@ä©é8Šˆku8ÎUtPb„í.[‘}žfÝ*ÑÁEݯ5Ùê
-Ã1ù¬`r.×2#cÑûÕ<ÈÐZ«q-’ü2zæ«[ÅÜ\Яó6ç -X¯jˆ%1KL3ɹÁâ¶&9×D”<jIá›&Ûö£(4ˆÄ†F ÉÉSƒ8):P£´H¹ÍbaIzYEצ޻û8„ «É”:h¦̇U$[Èæ5&I;9HÚøjÁŒEî$LÁᕱŠ5ymLCåq„†}Ê„4á5drÓ¹H(IWÆ›KŽÈe„l"žŠÈ2Ó¯<|ÜlšŒ«và'ðR"˜YrÂ9™2æÆÞj%F º¤€cYm`³}N‰è^Ý‘ƒ~;¿¹¨¥AEóÎ~ ÖŽ"'Âô†ôu¦Á´ú÷†R®ñ)¤žDSI'1 0oñ‹Øòà"ÕtrèÄÄœ
-î¦0Ü~c¢m¬·Ù
-SBšVÓÐúZF®Y"Þ¥­d?e؈‘.—ýÌ'U[Ãà¦
-5³ë}Hø›¢©ŽmÒÅfA&í`˜IûŒØˆ "“TCàÌ%bÆGÊ3+OP×Jš»EªÜò5J†¯gû
-4ÚPí |¿ô~E&žØn*Nd4û“GvÙÞ "G‰ ± Í"ýØþäàë­Ûl§¹8£©§ @ë¶MÝN3K„¥¶bþ:¯’ý–ù|ñø±ièûÞÛøêZ?ev:ÉzŠ}ÞÆ–Öq[p³c´†Á¦±m¦„ï
-6CÐlpÖ]Ñ3'§¨®RÊ® SLìòMšÖHZEÂ!AÈ'©ÎXP‹C‡dšÄæ"T ’Ô¥ñvûýŽŒv¢JÄŠ9s:óO/_ônØWõ)5 „ÖO>¤hl[ª¢…dôlÙ±DŽHÚ2_8² 4õ+Pìz_ÖC§©RŒ‚ƽZ#ܬÈh[/;€ ñ; d(ÃÑ8#·Ñm±è D[RÓw-Ü;ìIÇ|«¥‰s·Å†0óºW¸U½õªášÜ3ïLAÑÌçÝÉnE”Ûzo¯ªÖ`¶m‘G‰$Ÿg+ßľ|¨Yœðn˜Û©2Ä’
-c@¯l¿’,ÓXn-ÂÁˆf)d“ƒkÍÖ+|Ðye
- nÿ6aPO„\é\CbTðësk †'œüa+ꦭxB”JÓSÎz"¢28p\‰ ¹X.†a‡­f,áL(Û·šØÒ»Îú-É, \<‰
-uˆr8&Ô¯ÆkJs¶q«iØ!`ºpµ¥/<f„ OÙdÕ²É5å€à<ÀË4ͪIÔ0w§k‰ê6 ^CÒJF¯~²ØƒæþxÄÍXà-ùÙ=ìHü»Ú´YÌ‹æ0RK‡Ê2ÍÊ!¬8ôk4Æ'ì1¤ý1áì¬îÄÉ |ëU6³ Avë,³¯ºP{Û®'0L7‹ºNv
-V0†äŒbzFJ‘M^c‡‘'Hfˆ•øy %N8yÎ.>’`nÞ«·¦Q¿ÊƒH¤°Ï åY˜6jøÌlìÞäS6uêÅ3( W{7@Ns’¥
-†û¹ªÚ³ÅÜ´§0f5¨Éä•6ëz2q±9?ÈÙ¤Xü™)=ɱQ+YSö̆(P¨ A-ªÉøã«×¶£à“¡@133²‰¸ýÈcÑû‰F9’â –ÝÍýø¹.­¢ô‰OCå
-;Ú:#EC¶™˜,DE>Þæ¶m¬“&6NîD›f6d
-_ÆÊÔd›Fö3WÉÐv`‚ “¦vÐ$üøt!å³Qap
-èî+‡ÝÏìqp%Ó9³&¹³„j¥b48šø¢6¥Ymñ
-”üTÂðbj<ëeŒ7l¨ ³ÐÎ4c…ìŸòml¦=ø0‚@5ç„•
-ë5†lŠMÅhY•D ¶~=64G X0ÛlçÜ;>à ¤PpÁt‰¦ÎÖËd…„~WŒTCwNÑÄ9.Ë£ÛÁ"úày[˜©X¼Ö-™f²Ù8÷ÓÈfá#`H~+vµ?½°>½6²7rû [•ù²ÅÒåh~…U)ðåý­y.},Ýtx3¼ûTaåµ’3jkœÈ¿3n–×™À¿¸YT“JlóíB(’s/ÄæQÑ¢’áé\;`©ªI(¥rªº§¯StÌÏ„È×y“
-}³ÄÕ­y­DPÂW¢ª… ÑZûë¿öb C ;U*@Ú0šY¾üzk̆JÄ ,QB'£nLe©äå}MG1"ì&çiô#JŒgSˆlacˆ‹r13­hH£²%´ÕQª§Š!ÝÎ"¼ƒMT†Y6NF®aÖZ5íňG¸+L®t ,\–»
-™-.X PÍJR¢C ¢A>„ïeÞŠJÄ öíƒE
-@åjÚC¨ÝæŠÀý0’s5´Í¶
-A’D”\QÙ 1ºêéS¢±%g…Êh‚·;Ìl»DΪ5…Ù†‚£0ƒƒfr™bq‘¡S¤
-Ñ`)ÐCÌ}uKBpB”"ÛB³B D.¸q[6öÕÏJd5ë´IQNCIƒ§¡æÅ‚ï;«Ò…4®dé&¤ÿãh‡ŒnÓ”q·¦`uá:Ì7gÄûà¨ÉgT¿¬lVÂ(jD•¯Ç€ÍGD
-» ÂÑœ,ܼjQ5î՘ب9Ed»!BUy &ãƒ-[¯ÓüØij§Õ
-ŽÖoã’¬ßÙuµB.ò°Ú“û+Áqè©)¹¨ÿ…Zâè3«²OæìZŸ_Óˆg¬³jÏ<
-°Šáë¥uGÔnI'læÁLê4úHÕ[³ÅDÖdQ#ÔÉ4#[Õ5˜|‰˜•dÓKÙ®Ò˜Æ"£èòbØ'³>£Z§‰k›°˜*V‡•í±O!bûdž¤™hš,ý JeFŒ“‰è!\UªÂÚ`qT¦i\u(48JÔ­Œ z‚"]ŒeZÉHž>ªRÛ‚ËÅ=,‚Å-W³µ$‘
-„\Âìój)"Þ!#;„NÞ!k x“ù`Ê: <±ãâ­>ͳMæ-¡®´q凑gKR²P
-³ÓÙe¢2ëÀÎ…Gô°±Íd)˜E’^MÐENá|yœ.»ÆÚ™,¢ú µŽØβ(ëеàì ôÁQgk¤)ân’YäËHg#U Lj‹`!¬Uõ1ÍÖf'Ìb$³,c©œÓŒ\l),æ‚ÈÙ Ú)KÕGE%!q1rd”I>8˨yGðøÈÅ¢ò¹µCÑuÅ‚9:ÑÛ¹ ÃÒ¼mQêY6Sg1ŠNFۜƹÉÈSœQ¸=Û®Tûg‚ˆŒùYÛWq
-µuig…0µ¤+#* 4+‹KdÃQeVIÖ™}ε\'åuÎë„K[­ÆÄD°$.veBXÆ]äÚè6{’¯_ „Á2PÇ$8f°Ï!Ú!ëg˜çy 8CÌ&arœÒ̆” IöO ~oÕîˆ\áÃ9½è·6»gaA&Á×ô)äÁ©3.-CߢyKaɳoÜ쪎ˆàVvqe¼SŽ&è› ‚P ã5¯ûØg+:‘mÒS˜É³CÕCíEª: É R£öïëì\˜ñ$Õq.‚3Û¨Îîó<c?!ÜsOG«š½"+¬iúðМ_¹µù½z6L³kŸ¶Lï“\V[ÿÒLé;ÞÛ›˜‘çÿ n“ò™B—݃²)àl{ál
-ŒÖ^H›æµ3Ö¦¼¾Ú¦u±Þ¦¼¾â¦t±;榼¿ê&f±;îæ{öÙËþà[Þº;£o^p SìÀ)>ˆ}08áóØ…SÖmNùvû qYp,Néb/4NŒb<N  îŽÈ‰ÅÜ“S¸â^¨œŸ}ýûæDæ<9="s‘9wDæ¤#ôÅù?þßü`Gkæ ¦½ÏEÌoüõx˜Ž‡é—x˜þô>Udk,O9'ëhž ¯áyâÁ¢çý=AÖ<½×Ó,‘=ÑÛÛôÝÑ=çãYCøă=0>M4ÞåÓ†xÒ'¬a}¾çÙ¸ñÓ,1?‡¶3ê'” 5ÜO9»#Êû÷`âÁîèŸwÆÿD»#€J{a€Ê­±
-¨t±¨t±¨¦}°@ÑÃîh 0ʬáB½Þ]ìŒ *ìƒ
-*=ì… Š­²2¨t±6¨›}ÐA‚ƒžî‹
-ƒÒF(øìî(¡"Øì…*]ì…
- mg¬Pt°;Z¨ô°^(l&kˆ¡x°Ä eú~¨¡èz 7róîÈ¡ÒÃ^Ø¡XÔ=ÐCñe×ðCåÁ^¢ÉwÇ…0²†"
-†²Ž(,‰{ ‰âÛKTÞß MÅ…öÀ•.öB•‰Üƒ)Š{ ŠÂ\°†+
-{öîÈ¢ÒÃ=Ø¢x°ºèèbg|Qt±Â(t²1FÑÁÎ(£CÜg]¬!bp{`šÎ¼;Ú(ºXÃÅ÷Ûq],1G¾;ê(ÎÕθ£ÒÁ^È£`€»c‚y­¡Êƒ½ðGá­ÚFÆ=0HátÛ…TºØ‡tô°3)L¶kX¤˜àîh¤ÒÃ>x¤øN{ ’b¿íŽIŠó´*)8å.)ìL
-aglR¨ë»£“¢‡ñI¡ÕïP
-½~ £ÖPJíÁî8¥VwG*‘ù¬Ò¡œ/ÐJñ`‰W*ô½K¡µïYŠ.ö@-•.öÂ-…í`wäRéaìRÖÐKáVÙ¿ÔTÌÝL‡‹ia*úù^(¦ÞŽ)ìd*]܃e
-‹Ìh¦P»—x¦ ïhjö¢]1M¡ùïjj;r‰kŠ{ ›Êy¹Û–覠¯á›âäípjþ›ûPNíÁçÔìŽt:\e÷ dwúž7à‡Z Øüß6 IýzÏ Ô¯?NXêr"NúÙ×# ôôºp ]ø%†.ø~v®o®Oºvb±@ûÅR¯Cƒ¾;H0ì»Ãã’Û(Ø.¢Ý¡‚ÑÅî`ÁÒÃ>pÁØ}{
-¡ŒÖ@”íÁî0Êèb HÙTÁÝ¡”í4-Á”íÁîpʦ-•íÁÎʃó,@•©í «ŒÖ€•gLzŽu5{°W~1rn©¼bÙ¬‚,ÿ„]ݵ<dËØò{Þ8zäïñÈLÆðs–E ©G|þ˜þ¡3Âíºz<XE…6úú==­žÒ5tèñ`m–ÑCÞ#z> 5œè¡c´l=ç’kxÑãÁ1ú=o¬2Ý5Üèñ`mV¿óÖØÑè` =Úº;~´)—Ki{°Ä¶KdSuwÇ‘6M|‰$mæÀݱ¤«.Ѥ͸3ž´mÔ%¢ôÌ`Ⱥm1¥í–]¢JÛƒq¥G di3ùìŒ-mkº3º´}®¶Š/möžÝ¦ÑÅÓ?Á"ôÁî8ÓfzY M»É®XÓ&÷@›6Ùv‰7mbóΈÓ&‘/1§ñ`ÔiSÛ–¸Ó÷<˜eIï‡=mŠÛîèÓ¦CíŽ?m_lgjÛ6;cP›Qmwj3ù-q¨M«Ù‰zèK«XÔvâvG£]¯àQ[Ï»#R[;cR›`²;*õmvÆ¥–æ‘©mKlj{°D§ÂÚÎøÔcsìŒPm›c‰Q=vÍÎ(Õv^–8Õö`w¤jç5¬j{vE«6N±;^µu±@¬}Ìjt±jµb‰[kÈÕãÁÎØÕfFÚ½]¬áWÛƒ]¬‡¹l' k<–(Ö&OìŒcö@²6ëËÖЬíÁÏÚìŽh ‰d ÓÚìŒjm&æ%®õ°=dk£-±­ñ`gtk3-ð­¾D¸¶KŒk€k(×xcœk“:—H×ãÁëÚìŽv.Öð®ñ`gÄkÛ=;c^ÛÞ^¢^ãÁ¸×ƒ¿,¯ÇƒUìkãh»£_Ã]â_ۃݰí>Xb`›œ¾+
-¶ÝMKl{°;ö¸}XØv§îŽ†mbDzΈØC\Z`bÛƒ%*öÐTVq±ßc9œ›ïAÇøØ?a‡›¹†–(ÙCä\àd¿ç£7ç>oÎÇó>ÜïÌÙ×qÄ’þ),é#z÷§^ñ%z÷ÇôWþ§VþúÙÇõpÞƒòm–8ßö`‰ôýž®æW×=xßö`‰ø}ß
-Kl¥V¶'D*
-LiÕ²&dá˜ôÀÁ¨Þ2¬Ô‰´-‰2AÀK{¦L‹²cx\YyŠ0¢©²®U¨:²D´· _•-cƒƒïjü"ç¨ PDÍFLRVü”¥´²¡S‰oL¿߇ü­ôÄê‹~j5•Ÿ*æ.ëWt&(? WB”f¥Ñ ê8³_¡8ÂO¹fqžØ0Ô»â’<‚” 3– ÑðrQ*^dUþ$W*æ5=¯¸ûèšnlì¢
-!À€pϳìT€RQdE›à½z‡ÈšW³B·Ï‚§Ò»LV¤§_øzµ(‘vÂñÈtÅ¡Ù-6ƒ!
-ã˜&)ÉÆ"Ÿ7;§H0|'óQg…†~’í]$ç+‚ê,²¨“²[tv›œ2J9ÿÀÇתá³Aqþ wV(È"£¤)¾‰}¯nØl ¼U²Ó¦*a켩YØ:=ÕÁ°šq±&q»¢T©0×ÔÕ|þÑfGÜÖñ…Jx $õÊ‘É Oå Ó'v@qš…f¦4©«&7ÕZ;WZÓ5É–©¸‚SXÞj\^W¢H)™ÊfĹ•l8öN®™[}Ž4DH
-%´fÇÉù&å@0/’æ&Ú…»>\¶Dd ¾g-+šôͳÈ*ê­#íBå·bI¹¤nªâKÊTKI€¦øª,VÑ#;ɘ-«ü@ Tõ~V+hƒÒB‡¥5
-B´.0Áš"&²ì-WTèŸä~‘Œª”Êd>Ì[~–»…‚ùóg1¯uƒŸ”-Çà€›²$…°U…!“äpq ³]¥LÂãr4cMrxTÎI†_tùr”¶Š
-×gÿÁd|•(µiÔÍR ‰ìï>ëE )]™:##¸Ñð¸o…`Éä©K%µšãiUùj¢éâSí={
-ñ•%oFÑÖš†ŠK¥¢º.AëEq‚Sº(‚x2c™o ù£»T4‰ãs\¤DæG­±ÿ/5 «•59ƒù
-ÅS¶-/øE¼V$èÝ/´ÑåîKz>C%Ù/z3s¡ÁSTìsÁ$â(‰ÝS´©†1€UóÌ8‰R°2))9£_ÑàV€?ƒ\’@âô|Ñî“ †X¤PˆÈŠ„GH¡IétÝLqÍ€­Ê¹7hv:‰²IVC%:©À
-h/T%T#
-(ÉcšóÅPÝ®êL† Ö’ulpüdµ¤Ì+öТDDÈB¡¥VÙnB‰0Z ¢Ø“7èrä
-UU»‘TV& „8‚®ÊwHj§
-PNŒ^
-,J#ðwJ¼BŒ„+’à¾ë|CK‘’Ø9Üç]WNÌVo‘Pýä4Þ0Xd3MA2™‰c𒢦¶½„ …‰o™|¬lš R±lJ÷ŠLz¿ø–Yâq‰²EšF-•\Qù´‹ÄúV+ˆ!y1¸Ð
-À‚²”Õä`æVå
-mæYÂYä" ‚Õ¯2Y`&1ËVô£•s'2Ï·*½F»H)dŒ .rîO“£d‡xØjõšÃ†¤Œ °©zÊb gÙö”V'¢’ÍÒК
-BQØb,Þ¾.Y»àóÃÉÿòs¯ÿÇJÏ)G¼pL°Ø’èî…g"ØÙéDãtXÉ@aá\²5Š¾SAàtëbüM1œI2­£»…ùôi9ÔZD]òÈÖ&zéÔ'¢‚Hƒ© QSÉÁH×¢,$- ÃѦ4DQ ’ÈCn‰L$p½Gi›±wt«{4œ’$ð¤]¾|ä÷‘’Ñ„Ëáu­’,B4/Õ‰ÉváDÙ!@4òÈZ %:«ÜBl,LUÀI’=»
-,iÌA ä©í$‚>qt‰† Y² >‹ÌYªªhv#B( @ R–J˜4BžÝX2MÀækWÒ¨h°|S«<ÌSǹËU£ñ­\Däf>Í•Žè`x1‹ª«¬¾ˆ›ŽDˆg.³Ë×{F~ªã‰IƒÎÔàJg0þ(-Û èÇ•tD‘/L@e¥FÊßR[ñt¸1Ì-†Dç]Óœ§ÉzGr]Õ<0幎ùʤ@ΠÁ3w+ÁÍ$ ³B/Œ,æ¦!~‹,*Ÿq‘¢é M9O,xmÛÙk“ii~ŠæÕp’6IIQt*K5*Ù¤Uu6¤r—Ä2P§Ihœ†è
-ýK^•EÍöŒ{št
-Má]H
-dEKeF¢it¤´ˆèM7mPNØ…a†ìb‰žþSÉ…©’
-õÁ’åTß®p§Qš~*Î.å­J–e¹œhþI*ÌÄ"†#Ù
-Ï4Àè²ê³º9ÕõÁ1¨‚aD<.6¨yèq”ÐÂ3%[‡‘Y≉pÀ"—FcÑì ŽaÚDæbáT#‘XÚ`(ÏÄ
--ºˆ7-—¸"ixj²})§­ˆêÑP4‘"æä3‘Ï"¼¨9UÃMXr†¡§jÜ,ß…F\vF‚æx(RHžghäSž¡dò’䯽r±
-’XzÁ‹éÜf6ê{N‹ø)Eÿ¡dïh‰/­tCððä,v†#B-)#«Ô4ùŠ#Ò`´ y§±u¡3f†¿‘œæØrí êa ˯Ä9ŠTÀ¥
-ž¹é³ã%qCŒÜ™t$–óX¸“ˆ6Ò ˜+&ˆ8ÂÔä`‘qªW©1^+
-žrL£+ˆNa q*ˆjÏ:´æ1r,°8ƒHqç¼¸Ì Ð#ê
-/(¥,Z“­¼®ˆ³w: ,: 
-MD:2l
-fªC$ëâȯ+ Š¿É¨Ì@W†Hj3,;\·E"—x€êÕÉR~™7¹7/i´R´¦z.8ÎG0ŽÂXºœ iQ®A„r™2*>€?а
-<â“–ãblÐcÅK?%²õž–¶
-F‘ã8@뽇ˆ\ç“$ ÂbÚ5¯ #
-‰šˆZÓeÁ9
- –.ø Š‰cè)—)G_ …µ5y“X4n”I]ßfŸð\‘ç*Û°ÿŒ§¯·"9s'ÝŒúâ~ýòÙ·ëÛó‚?«xÛ‰~ö5H8
-Nˆc-¹ HG‘:\$?‹Á³v ÝHIoŸDL”rW´Ù,J‘`õr¦þe«0Ì–(1å:¯ˆÌnzQ³åQKH™ä˜L"ÂIKÑ)|b IFá¥èƒ„ç‹Ù– ZA±³œÀ
-â34Àî«Å4½Àž d_TFdÖ÷CZK7úªa<ÒïÇuUq#K@+‰‹Eh‰/8£‰Ù9t±ç)êSä:‰Yˆd!%"½ò^ÐÃ,
-òè2¡æàŽ‚?B¸æJqM±_ìÎÅÀ$°åJw³‡6ö|&Š^2¬õ&Qš 昢×]L}øY×}ŸFŠ"äÔ45Çil@^8ü”d¾ÌjyÓ /Û¿·¾mgâWTR Á#N ¥ÕX®3H&Gy<<$fdr+ ei(Ú÷ ÍRýH”‘u–îïu‚¨•ÎÕ®xÝ…ÉãòOYŠQ Žyàðpð ú†m—Dþ †Ä%ù|®ÉÕ«óз.Fßr°,í×›V@RŸVð$Õðë=j ”È-W#ø0ªà<c3 ´„zÁЛFäÓQpÔÓUmÚX™B÷%¹ÜaëÂøBhN£Ž%\o©Èú˜Ñ(€ÀLí
-O¥í:è¦ÎOg’å¹+ÂpõºNöƒ_&»eOeñ¨ˆè+›Ï·iF¯¡½±VôÆ:ÑkDoª½±6ô¦ºÐ›jBo¬½ŽôÊ:Ðk@o¬ÿ¼±öóƺÏëh>¯£÷¼†Öó¦:Ïk<¯£ï¼†¶ó¦ºÎ›j:oªç¼±–ó::Îëh8o¬ß¼©vóƺÍk6oª×¼ŽVóÆ:Ík4o¬Ïüd'VðºÎžbF×ûÀoQòœºYaº5Ez¯Aä™7*Î…Æ^p:4f‘Aƒ~‘Õœyƒáà<tËÅT,SUB)5A+—ÞÍq.““UëG¼ƒmZX6ÏMR¢q ýE~%7²l9žäVxèt˜n(SI.I À À÷T»v}¯<4M¥ÖéEíÒ?–uÊùí Ö7S®)u8à×W“s3Ç]ŽÔ‰eóÑÝÔŽD—l§Š&ê`9mv¼³Èƒ; È(φÑÝ: ©ý$Ó¤›©o¢ÜC^ÝÃütNÅͽB÷‰p®Þ<‚šoí7~ûotì™»ýÔÍÒ¹Éö3°lš#ïÈShìD7-V!7ñƒ£8Áà³íF©¡x‘Ñwj^Ÿ-Ìm¨q¹âB€„Ž\þÑšâÙ8ÜzrTœ=9äó0æl½ ŒnÄTº”qgyW1wbŒDE¡Ш´
-¿‚+¢±(ÊôŠUç´DÅPå!"Ĺ/6iL¹“H›0X眧1L’ˆ¥¹å h"û!ôqo‘¬Š<RDrŽµ(¬uGjc{°±d7ÚíÂuÈÒ÷\t"F è1¯ Ǭ‡pÔ¼‹U¯'<žm†Áͳ*'d„ö²ÒÑ8Yi¡ü³¥B]B“š¬qâ p(}n†%9dþØÑ÷СðÙWc |a‚÷O>=
-±¢ÔÏÄ’QÊ£*¯àþÉ}; pÆÍM!´ß ×JÄ°ä£AÃÔM9,ÓZÚ2ŽµØæuÝ,¹ÓÛÁÄ8˜ô$@•÷ýŽ£R‚7åGNGÒFƒŒÏŽtsͳ!4xÐðId5g¡n™2§y–’Z ó/êÔ‰{xRÕlÙÌÝ8*,Çó!À# ¨Ñ)ã}jÐTl'´’.ÝJbWNvmy‚·Tx›&¿0•³éRšð+½ÏRVOŠ9•¼ïòÜÍÒƒ‹,¨U0‚Ù¿k ט˜1¶¬)IØhd=­•cp}/Z²[Bð¡QÌ É4ìmëhRàIp5ö–èII|©R¬$Óƒy´à!ÁÒ¿ÌÕw ñÒÑÌò<l&ˆ¦5×dÜWV‘ÝhîÜIŒÅ¯Ò‹›eM_¢û&ß#ê:ŠeW©IR>B®»N'š'V5´dïØ-šÛ¯Áó›’¯^(KG‚¤Pªê~„XÂà&Y¡ô"pêô6Žl!—G/ŒÒ¤BÜûTc“º¸{(VËmÝG¤„!°¬±ï¬dA?oðë 8&³ÕÀæLÁ¿7·TÒ´N6ÀI×°*§CØWÎÌâ.G£q‰xr9Ñi»E@UajÄÒN a\1Þ¤Sºå¢¼Z$Ô1¾ßÈÚ‘ƒ®trL ’¤^‡ËÄiŠ…{rºj9†1ÐOá0¤ÞGz^Þ¡ßÚüà“Ð×a4H½ó£|‹}`'â%üÖ=<)"f›U}âQ4ózG3ÓÌ[³k°ÓSlľeÚ“~r
-Ã:8-&Ï êèz“¢YljîGëi°Ó¤¾Q‘«1ˆ.êjRi Õ‰¿©Ø‚Q}äªCñ{÷ œÇlTÌ—Ö´
-¤X‰ÛûpìÌ}j´û¢¦"¯…Ù%át–¦lŽR®©ƒ®…0¸;ùèy pg‹à9gy
-FúÜä=ÈN×ÀQœUl=‘w¡³FçD(º¢¦8GeõáT)
-óÞ…ÛÇ!TºéºÞúÇ 
-FÍ#—²ÑºÅ/ÒÃjxÙf[–H%SJøö‡0á¦d'¼Ì$®Y÷Ž&èI¬´#éH¡+8éSˆk¤zŒ³•£Is&P̦P ~m2³Ùush5L^ ’»0€îÅyYBÞÃÍ*o0°óÁ’ŒR9WŸÓù!ζNë/vÒ°ä[óS“*ˆñGLR ƒ*âÒ]ò1©eTíÆYéX\Å1n
-GíGx>œÖåyV<Ën «Í ‘ʪô³$ ý„PúnŠDw'¡µÓ¸^¼—¤"ÈŠ0Yš×ö£KÉ¥ØɺÓGâ´ ïñÉ™J?¸šOl'îß+ † ¦J #Ï“,'$\U†¼¡*ÀÙÁÎEg& £FÁ_7‹„á馽 y.ŽZqHØJõ­ÈÃW3Ù®œ¹ÎP·%ˆAó`à7ÌÆ‘
-$ÿ”#ÛˆòÑœû¬P…Î;Ù€î ,O€º{öà2­ŽÞA^b›µu1ºôàÆ#{Èû4îÆØ%Š<3}m…ë‹{ÓTãæ,¼ýí>®C¨
-æ|Ìt¸÷:Ó6Õ2íB9¹Ye÷5E$)d¼î'ÉÍ° lY YkÍ°³Dz073ù–íôËArBœÁTÜê
-6MpL/¢J¹n×êÅ&Ã^
-áµÍ?%;.$º{;±xÚõìb憪4©&FœšÑ@ú}“d*8û1¨¬¹^ÓÐÀ0Fª UQF@Aóæz"8³¾GG¢q²„\ߨªY¿°7sŒAªX…Eùˆ˜f‰•IâÏîòfŽL§µ¹­FãY^sʦ”ÈšÒ
-º°>ö˜ƒË¢3m×>³¼¬±ƒ~V L(v1‚Ú"̦Y¥:
-ë!Œõð`U(I‘úEÔƒ!ZuÑ–%.(TáæöÞ$Ÿ¸j¡â^ ’˜¤`¸Èå¾*¹â „ðÁ¨èƒGL"²îK É£û ×ÓXb^fäÈTdØ=Ã’†£õbWŸ;5¥Âm0û¾7$whuÌ¡<½Û‡‡“§:Ó‡—Ö0ê½üKW/ÐE=¸ÖBãZ¶V»á ]ë}‘a®ïÏQ÷â^¥'˜Y)¢H`“bVUõ øk{r°Xò—V8‚ÔÞr$cÖeñ0ÆÏ°>¯­É|ú¸.êPªuáSæG§Éz˜Ã¯$˜êJIÏ¿Údª ‚K2kü(À × m²¸¸,k8ùû½€šêt´.:„ÝÌ_b=+nöq^á߬P®’ƒ
-2b–I®CÊÓà˜òPc·â#òõ~NÂép£bžœ)ß»tIM`7«½;dàX3guZZ…cÜ•Ù9–}ï’Šå·#u°BBýz0¡‰uö#ÀùYpêX™–v0øòæÎßûpU¥ïaÅŧȵfu/×`Þ² «6_zæäÊ‚ä<+w ÍÖ1¦ u%±Oá½`q©©3I£ Ït$ä¸CØ`f#‹þ†¬=V-›¡©ðGG?^RÕ‹‰F󦢷"Höj–KK­B”žýAÚ‹B^€§”OÊ¢f=èbÕ”dÏêvp9#º¼Á¡¢ngBã‚u<; ³½"v!Ù±3Äh ŸÝ‚΂Ìcü¾’ÆÙi¥s UcÖ- àko<;ZU Ï,^Tdž°ˆâ¾©¡‰?<l
-50ͳŒ ð¨LF_U]ûâr> üº” òçÙýää:qì ¸eøyïÆUGÈj5kbŠ¸U÷U½™á&¢èò# / qPO„ºE"¸9hõ[ÔRLnÅÍ¥´7MŸÄ„„Þä¦,RÜbfœ§SUpßTE&@ï“èr‘àÀrÛyÚ¸N@edH2šE…6ÜØæíÆ«d¡ }? {AUD;hr‚u9‹Á,VrUàš'#èúëâ t®åÂXŽRö Ë=ÉiÑJg± ª(¡‚vñR}/ZCݽ04IJ„‹,)ĶŠ;l0‚ÍQ˜$ˆŸ¥ïžUWÆq€^¹&Î] ql{ ‚È ®Æ÷)uÊÜãHò”¢Q’¿N²Í´°c ™øq«WØ'ã× ¶Fq¢%Aª„ŠÚ=Ôd(ÕÕÜyë³PÜ%”³âø2Ù/ÈP†báj(D¶+§Á(ªcÜ%sYƒ×­k„c¦(ìû
-éŒÂ©1 7µÉ
-ñÕ&
-–NѶ}w„8mŠkàyúa²õÚ°Y?÷²[f!ënˆÄ’‡±Aª©+Pî†l"T~Bàd÷¡}¹0u݆îR«  ©±l%Jb]nj¶9¥'ÅÞLUq®ëÊ®)ý“Ñí飣2᱈J“ §ÅÅY*2â tU@ì")‹ee_„¾SrP1o€ó-vOÑ=ÔŠÚ¬1;¹‘Ñ·}VF2l $Ù&™¡ÖÚrxC†fs"›V|_Œ¼wÇñ? k½“šwÏv©³£®†¬†Í<Bª_i Ö™E;2p?I«D]r7Á ·nèËÊ9gÖ«©×«xífß>a–Ë2UÉÓÒ†®j €Å8ixÆh tj$”¾nR®‘ΛG7»pAš[iPà‰œ84»Ä¦~)Àuhv®-òf8`­Kk˳€’±*BAŸÆµ×VbUð¼B^GÅ5áÉ,уáðï(4Ì[%9—=R]ÐèTþFöÌè¢B*º±üU1xµÛrËò[z]XÎŒ•ãK-=™_MïHø‰Ái}LUÑ~a9ÝHy6î„|J‘E4*­Û0G̽†gÍÁ,]¤g©qν <9KùKJÁ™&¹Í4® íöÑYNÆËPt
-cgæ·¥qŠ#¿›»ØàÒlíp~ªLZxfüÈò\8 ŠamçHŽâ†Ò.èÄs­ ,»j‰jT¹ŸÑMÂ3‰Ü$J8æ)[…¢@½Hô U:‹J×nI n¡_ÀÏ!¬§£¨
-㹥̠>ì;âê½;âê;âê;âê;âê;âê;âê;âê¿
-Ý”#a}›€ßî$D±“GîZå8!\-Z1–WÚP`㢋 ê‡ò¢ÍоYm`›ãD¤È}  1*\
-nɺpÄ+²X¡ð缈!C¦ŠÐy‰Ì+È€éÙÜ…c}(‘E‹Äè@¿+kžã·"rÔ³$ê qñ€Ú+rBÂàfùRaÊç«M
-“3Ê—:˜¢n=‚û³œ=}Ôfà§*% 3[‰Îœ sè
-BÓ á°¿þQ¾dîÑ%¯ÐIë¢Ú’]˜ÍŒ{ß4NØEƒâ÷ÙnµÝDµ­Ùª¼+­Æ)ÔQe ówÈ5Ö@[[î\œ –v~xïÃåXî+€Åà"^“…€ylpKrÙñš½J43ª¥èy¿¦¢¢ðZ}–WüÐÞö‘¬b9Xá¬4f•;¬*jf=m&£sŠ"BÛY3•òØ2õ´ W+ô¢Ž¸²@ ]@«ª"¿›k_ó%Ä Éœ@GeVI..ù'’¹J:¦½~êáí3öhÇNáè® Ce—?uX¯Ÿ¨!"¨Bu˪<.!YÃÃyÌjo„7ý—Ü”ûÊì#U‹4ö
-LBبt:îÚæªÁŠ‰QÐE=9.ú¹&K ƒ#D
-C˜p€ fÒÑ(*D½b#÷NE´C¾¹á(ÖQûÐኪ„‡Ñ‰<§ÅÐ9Ç62ð™9¿"ióéú ØYu%yé)Ž9ˆ¥8;ÁuqÕ¶(qÿºØdn
-ö Û›•\»PÆ;¥#Svñ-ˆÓšBeg«œúNTˆ—jh5$i"è
-€¥Ðèm–éJ‡†1%-B§¢ù¤f§€O^åã8´Mt3ÆŽVš1,#WÆ°vÜNµ-z Ôüq¤f‰1à'ßÿÙõ€©)øû(éN1†ËI!±‹Pϼ6©pžz—zv11*0JÁ®Ý„@’óºq꤅’D4Ž’‰•
-õú@PŠ îõo¼Ó$uý¸:!ƒJäe$#ìOm-ÎiK-äÁ;×GövlhßýàñÒô ê[ü*Ë
-Þ§ å|f4Z›¢c6ŽÚm %E0”O5Yð$ü–W¢IÜ^$éíÛ¢+ž]H†*‚ãST0'¯Bãƒý²®¹ 'e!“{M¯^ p)&eA›µx]kG -Pø}rYˆ$ºaXM0#H@¶žÑT•É²úÁ| ½’=9V¢ÙýfU| @¥fŠºJ¦É£@·û ȷ ¾)bV…ë¢\7pÄ»ä4Lþß|}öµÔƒªrä©)ì³a¤TËOYëw¸0÷¡× b«GÑ´¬xãJéâXî²aÐ꾈õåFÊ®/²‡ëäØDçjèØdJÛÇU3wqû-»º¾Æà}¥g:‚a5
-i§ÆÓAZ”>röV$妈êºzÒØÕZ t’4®RC€ß²òÖN"ÍQÓD8B¤¼×m¾õ£pÔHئ&Íb*@3§ç‘hAÔ˜dèïoÍ{„|l.*¤S¾€ñoôk
-„c7éÙa h(ßÚæ²Ð0T1š°D 7Z[ÈbÍ©]sàâS‚>=£
-fÂ]GºvÞïeEž[2øô<r³½|ÈìÊN1¦¿L®!évŒfhišC«(ÙCÞÛ(ˆ†ËÚ5à7c#¾»ÚàÎfË›Ã`
-¹nÔO0ÇÛÆïš„/²<)ìI™j8
-Œs»¿Ðœ4@óFœ‰R°²‘£BÈá¬Å/ûÐ#S(ûõhQig=Û ú³!À5;d£W@Š)ôè
-‡“|ºˆcVÐ|u²Ï1Ÿ¬.TÃ8‡€%J”ß•  QTf¡6ËKëÇdÄ96
-îT +ŒDd~ô§tŽj¦h¶p¢RÛÛh>Úºd/ÀàŠMh$ü%R¬T`­‚ÕÁ‘¨ÜnÔ¬L¢ÍkÀzQ)wì]GïÕl«&rƒgn_þR;Ô4¯åTé’(ó´PL$•Â9ô¯ìÒ,•ùûM…ƒ 8Qf{´Äá£Ñúm±¥Ž{€²ÊwÚûôž*Uà6AåÐ`Açϸx¿,ÆùrÙAí‘”û?Ï›ÈÒ §­†9Ý3f?é`™ûŽ‰Åf÷ÑfÍ©}»¬¹·jÒq ñê×­iÝÕ€w6
-+Èõf¶;@d4\©3QÍíÞÑ­c¡[¦í 5tºÅ9áûªd…Ä$¶#FŠÓÚæèìt@“b7Þ³äDÄž š[½;Ð>DÖ`rô
-I‘By\¸ ìºf0 {½}ë ô,Ô`94lîü^í†ÁvëeÕA]VÿC£íî'÷²
-´òÇï/D{wžš?zmÚõ= ߉4Y£ð°÷ý¶1îo%=î< ).Ù¿éumÔ
-Ø›Ç[ºlÉ+„‘¡óoMC¿6˜š[±voï¡5.‚ö5«áÁƒ÷_œ~z~EÀÝ#÷æW! E“Ä°‰4NÃP ‰MÃ~ß®a­Ni‰¨ˆŽÒF |i÷HÜÜÔ¬.”züX›¸Ð!Ÿ†õûºaᣴ¢ßêµ—û¦¸¶\ÜÆ236ºøn@¼:&vòW|±Þ|÷Ã{—ßк¼é„|¥©YìÉŽ8r²Ñ@rÀâ& ûu®HòÓu!ÐÒªþ²ø :0â5†ÁóÚ¶2ðFêÕI·ka”06j¥ÚüpßqÚ~nšÀ ÎÇÀ¿Å&Z£Å?e)d½Ìå[§à›:6îÜj]‘Íó»êH[`îÀèCM:’˜ô9×°ìÜ„Õ¦]¦88¹-\þ»‡Ðf+­dº~L—V Î +¹Ñb%^Aêâ¦(¡5ŸÝ9øÉ¥¤Dk*½}»M“ £ÕÅèpœu¶G•ëÑÙ¦GVv‹Xeó“ït›²4¹(…CíW"¡dëÀæ1¥Sd–"<Ôu{*òÀ{¶ñ9¾oý+…™æKèú«SRIê¹ÊE@*Ûy.ü©³`Ž{¸nØÚ¼]°ªY±ͳFʇ1¾.€±I•nå-
-¾§7š7'*šÚ‡
-nš)œmvƵÜÏv Œ@º|ÊÔÜ<žC¸#öñI¾±¨°¾ÁO—)’š]Jso³¬Œcp{ÅÍ=²ÚMà–{–Òã=x¨.ü°e
-JsÂu»É·ÓƤe¼ Æ1 ‰ …CªÃHÝ`ŽÛqìÚêœìë
-h+#Ú
-{Ôà‚%ÑñNðΘ(ñák¢‘q꡺ä‘ÑÈ:."YcËSuè§7{åXÂ]:(BÁáÊn× Bí²r'‚ëx·EßäYsÅIõÊ)a¯¡B‘K.ÚQ§2œ…åôcµ½‚„`v6„×|¢ÄRy¥ysT  .øüxá{7aÌ@lmÙ +BU6ÛsA±é9y… ’nœb<·HÑ“ÐU:ÚÒ@Šu.G´Gö@ ~‹aýµ²zð£vÞ¡DÝM4—YÓPì–e„¨+äܶ#\½œägŽ ’ðqsQZªˆê8¾_"¤‘u•ZÝdü«ˆp
-¸Ëë‘ÛÕ6×ÎѡμÆÕk1„¨Tô}¹ŸÅAöA×ÀÔ¡YWKˆå¡_Ju Ò•a$üÔvõ÷ártý&"6‹GÀj;ûô°¬jš„²r (nW5v¤ «u —²ÍÍ<Úq–°ÿÙ½¼hdþékgƒž_]]ÝH¥Išg¬<†À7äúÔÄ“zÞ ‰ cÅ?xj]éÕ3Bû‰¾Å(SkŠ,µ¦ZSƒ—Ífãt­ ß ­¸39>›]E}€lä>¬\‚:Ê,fWý¥Úo¢½óõÉòÉôrK™N´ ]H®®¥ªÏʉЌ 
-/xHúÁ§è¾-™uL“
-D¶v¨àíêMä*LèÔPc &éòŽêš.¿˜M.àÍ)0ŠH•È‘D2IGŠžäâSZn“ d#ì=½Ø)kbe‹Ð"šèšbeBƱå«-‚wHÉV˜}:£¨\rnÙu}$ó±Ò›suYÓ·x
-*”¡ãîiÀŽÈ-Ë=‰(HÒÓ\òä¶àš×¹Uvì©éõÆ‚KæÐ*î-]*Üà§S”•U¸O¬Ÿ‰Épt~_vÅ0ë„T)8@;â+ƒ%8Ì‘îÉà»j«¨§^¡YÕW<°âŒfíRD{”7Û«\¦ÐÍÒÑrÒj‰ß7€ŒÕy¸˜öÑÈ™RÍ­9¶±>˜ݬŽ5{81a‘NK¼Ž6ŸšœËprœª ¬(“
- xOI…€Ä®Ì¥œ@r4õ‘€ïœ¿i ç²U“žœÙý†ï@éQÈ„Í‘œ#‰u®-)fpé=³j³(ö“ˆ¬¸^¯Z±IÇ´&=Ôpã’ÐPìScSÖYDƒo[æðFÓšIÍQ™’YÅ?QQ ñ›ã^ø~Ý
-c%s¸R¾D’Gv µ}%S«u§& KJ))÷E>'—Š
-ô*°°$f‚JÅmîfº IÞç¾Øɺ¼ÂÝ9piŒ¢€AÁ4¥ [4À°’ú¸ÎÀ–#ˆTv˜MÌE]p›G»4Rf.ºt²kÞ˜´F‚U¿¨ÛÀÔ“ÒÍE—úLfW$ê"å.UÒ
-¿.u Ö`–ˆ–*ê<\­¥št&ÎhS¦kxënŠ·M#9 JK
-âì$:†º´R¶³ðÆ$wc-a©‚Eô=Cפ
-U·È ³£;ÎÃó"¦¾Î.M]-Æ4«.¹yÁê§ hôº™Ã3›1+ô?ðJt£­+:y2¿YÍL¯ £Ju²Aß<äñæ{7ÅV €Bôînð}¦Áúx“hŠrô*åzý΃{TÞª“õ8›xiµ’CûJKè¢(‰±=Pý¦´ªó°è"^Ò,w)ó*;µ’EN}DÈ+Ç0oui’<:”n®¦ ÌAYÛ{rdâÈA—‹«l°ÏáÄÔ‹Y‡W¤·#p±dÅf®ã¼îqx“Ãœ¥$žx1]£">à‹¡bÚ4¸ÙH@/æOð‹4×(ÉQñ¯bdàÁ©./8ˆ€Vo‘Ušèt¡Ç×%»¶KH§”¤Ia³So^çúauCPò
-O“}6\›y’ºqz@Ô¤uNãbý³?Àñ:&ç?…“(ט¨”ãTÛññ
-¤q5ý”s$‰€¹NŠBd"7rff àý©[¯ãÉœníÒÒÐLgCÉUÐçÈV'ç¬ gnÆ,¼þ›çȬE•–>ŠW]Œ!j¼ Ï¥ònÆê6—f3-€F_aP[ØÃä9‹R2¬ÞifuŽ‚c·É”€_’!0÷–0Õy¯ºBLü [þ$³O³)™v×-ÒȨCk؆©nò:½Fi|gVö‡)O¬lÌóÜo”`i”ÕE ³§ö´pcRz"wp˜9âÇÁ
-&ÃÎÂTì©#µÍõfлávÜ
-x}f9h•swõðmºz¦ƒÂRÂÉ»qs\@׎ýõ;ŽS¹Ð *ÌvRÑ…´cŸÀSç
-““xCÍ+® _*Ù¯¥VqzËøvž_„TQi–ËÌô¬ Ȳ´pÖDϨUÉKµ÷Á?õÎ."2Ê+½O2çÊ÷s˜¨â-ÜÏ`(œ“ãSc”XÇK™g›$$Ä^Uh#Ü©Þð9¸a¨#Eb}›âeVբ·yoÇ@vCŸe‹ŽÁ÷šÎr¯Ð˜j¦ È„£õNJ-€,/RœD¨Ãæ„ž†ì™Âl½›£60ú§•‡BGüÚöi÷daêVçût ¨E‚<BòrNYœTo>(`Ј¯T™ƒ˜jH:ÂÈJTÆ^:jt5ÐÁ•û®«X;ª ‹ûî†7RV>˜þ\… A`9ºB%]µ qý•qP`0Ü(©PTNk8Æ)J¦¡ÁOkc¼
-Œ+•p3‰¸éÓª…?
-/Dw Ôp_ Cðg銹]Št´Ù$qý&ç>¿ÆíЯ æËX&'IPá¡…~ÃÆ .Ø\Tȧ¶Â,¥¾v&ÑÂùXºÕoYT€§«‚Ä´Ååg2$Ž+ñ ÑßÕ‹´¶d ˜~ î·‘`ŒF®Å(¯Öë>á,M®ÖQ[2;DU­–'öP{G¯ Ï„=‰™Þ¦ BpaÂæúÛ7Éèh:‹ûÔú°rìžDíž±³‰Å̲ ]SR J×~â!˜ËmÊòŸé²ˆÛ”lkvEÂUÆ0‰‡º(#óœo©ÍÚlöXÝoEõÑd«Ž= øÌÅq3 €—¿Œ%Ž‹]? üÉ¥:6jÆ¿„eaNÖa’¬OQk„º¢ X>ñ»é5¨xGê»ù"âÅòõX©dtå-eou½‹ÈyJqQP†¸_EÏÉл=e ;ÃMèÚJdnfň¹S¿s5O
-0hB°BžwBvKŽ=M—Îq
-É`ÒF;°XeB—üÔïNÙ®ã~óA˜ –¨£k‚¥'\X žûÞ^Ö<ôÖ(¦$g|j¹Ú~Y2€ZÚ~c8óHj)c >êÎloLg—عÆ-sYJÂuêrS|‡EÀ´¸ÎB€¡Õ]ßÜÜ«ƒn‘ +sŠÈÍÉ~Œæ¼vXeÖ'LûªL!ÕŠY‹q•ÍÑŽÚœô 4*9´DG;‚ë€#cãµðä2Ê¡RŸ
-”±í_ǘP2#Þx
-|®ôRWY0DÈdJªO))•¢ çä:&zcùpuv.¼»º.ÇŽåÐoÄí§ªõH·v eXê„Öɶè¢mE
-oÿ•ØõÙ¤ª ¼L%†¶:ü‡E€‚õú)[CªFOŒ.ÒÔ’z;=?©<«{&Û:ô•¹¶¨ö÷B™çU¡Ì€ÆÛò…ÃÀ GiŽÙŽå€äÍ uJ#Ô‰Ü:6®1„ðhšBÕaã*V7çòñШ7's)±[îÉ}ÝUdþÁïG :†!y®ÈÖö\Ÿ³w/µjÙ½ö€”LùÕ毪rN¤q›ía¸Ä~rt[¦p
-J€‚ÉÊ}š—_(L}ìÿÉK¶cYŠ ÒC2¨ RïZŒ,´5ûŸÇˆù³Â‹Žz-ó‡­B°e´9Àq º<¨§yŒ
-•ôR…—_Ïì:ö,ª ÀŒ
- ªú*+\É1Ü©Ró¾Šwªnß´&ñQi ©e™<Ý *–Æ«zv‰¿!Š·$¡_CŒfÄõAîSÝ.œI1—1Â
-ÔjDZ»¢rjÓ“´ã¸G6­p=T_0¢¦[_µ×[`×bàOÈ]èkººmu8w¬Ùê+ªJ†ÒÎÙ2ÄØä{€3ª{
-¡tQ— hX% zŸÐ¹¬H:oI¾P4&X+D"è 禔+\=€VÇUϸº3ý VÒ¨)½Q!¥EÉ 6­¡TW•áÉ÷ƒ¤8Š‘é>¤95^?©ÏH]JqgXɵÐY#Þv5ïhåS1¯C™K#ñe,m}3V˜('À
-n<Íhü©ï •_ [#Þ$ô¼nAg ªŸÍTF‡åaX!tÎÔÄÚ!v>L3OÕŒ´u©³8?‰¶€$*JÀP9Žh MáùÒL®ÛyZÝö½6hœLv¼:ç¤tõ(hu‰ðåëÀ@ ·ÛŒM˜Æ°YpµôŠ‰À3°AW‡&uZ&}Ic5mƒÀQìp55Y,+î¦)˜ažh`ƒ|:r*˱‡ŸS$¨Û­¸ ŒjvÇÝTÌîµãÈOCÃÏ
-¥å)¢Ð}#âÍšJøS"5
-‰dtÀr†”E,¸ðlE¡âý-žúú;7ÈZdšÅ;+Ó?“ä×àt“㪳±²k…Eð][å†ÔgöØÊÕôº_ ž`DÏzÕG,Íwˆ•xÍü‡ñÕIBã³r¨ód:›†wkª NG‚SÊ!X¨á³œÀ†»`zוÍÛ¨{dO¸(Ó (Ã>áiºŸXÀÉ „ +eò«¤ö1.NÔ y68/]^ÿ
-C4±,?7ÚY.˶u-ç/±j,ãÅ“*Z‡
-Ãx“—Ç9uc«;]jD]gy ÒèXæwF¨Sgsô‚å°ÒHëÍŒ¥C@¯Y2‰&eTŒF|]㚣PnÙêGšsh\g»F)½ð'5ÕJ×XÊAª• !8ê
-¸¨(‰¹³™ÕçH+­2ÔzŠ¹ëÊ$Â…žKhþÕ‰¥°Õý¡òà„YØ*VFçùj£'%
-¡ƒ¦(#ÊCïu ©/p“M=Cçï Bt%dÞ¡m2ä°™A`55M¼·–x5{ºF&ïæíØ¡'Ïc‹OÕÕŽÌ.ëYXfW%Ìa†
-
-–¨Ñ“X¬)q?@ ˜Âch?]_#g!ËᮩU!3’jœ3DÆÌc-ç ¢êE,6Ø(YŽ=И("·1oXgvÝÁÍõŠši¬Í„täfhµþøkb
-œ²$±ö9•Ï{©sµ™æ»»˜öj…m¼…X70¢\Aa¬h‚mnì›7“=w‡>³’ëTQWt˜FGcíÑÇpUríšA_ϨÐí&ŠmiƒC Jt§ùEtÞì?9‹’QaM5¬wBU;ÇVu5(/fã–‹q
-ÇƧ¶ÆáçIa:]¤C•ÊGŒ¡¼ürÄTEä÷4å²°ð 3ÞÇ=J;ÌÎ!BÛ(p ½÷S±Ã¦
-S1‘s1ŠÕѤuJu¢îꢖTdÑwaÚôz°ô\òŠoQe¼!N£SÀ‹ÌŸŽæ×(ˆ N¯ÑµSI‚ÛÓX#/U”Ôj°+:+ŽÖ¾š *à°-’_“#G¡°ª²~ÙÕÂ?¢Á¬A€|@:$™¦ ž" añæ9¼{%,”ot¶f±§GžÀÉôâº1²†‡{V«ÖE7hD&û áfSךÔDš\0¶0B4~IÆd…§Eñ[VHp¸GH³Kú­”s "ììJÅR0mô,›’Pë­.‰ÆmL á”^³³ ^Áí¨ ÿ†MÌô\Vf1
-ˆ5—H ,O‡küº<Âwírp¡fýžvkbq= è4N)™4h×Õy¤¸!,§µ#wFoƒ93xu~Aò ãxSÓ… º(+–”3IöÛq@ ÍùXS+ú² Ÿ…»7®‡Ñ¥kwüéh6*‹¡¾pñØÓ0—ˆ;A®Í:—@!ÎrD·äG†’%•´PÄk§E–²¬ö 9M€qëŽDZ^¤M™u‹N.Å®†i-]“h+Ô!žCe·ã¾å{®zü5
-·=ý„Åk j1V¾e¨¢quC%™5Ñéb@D¯” Ë™î0ÞË3æ,þйbÖç `ìß …¥&6Ó‚:Lí4Bà4|Y)QÿšÚSèÜBö¨ì‡K×lÀ(ÙëmÖE9uúchÉD!;ªM­f[œéf P€3ÈpÜó`ÆÍÚà•¬R,g(&ÈeqÉÐh›³ó±P­ùzÝ”ö†›¥}Pì™Ó! FëçB9âùI<+p ¹áÕÜ-¬F5JÁ¤Ѓaª"¬[/ŸÄ°ã—[uqrÚ`.ŽÝÓÃ#øiâˆá™òñDYÎ:ÐAm7ŒYõ‰A*kËz¸Jàbö|?µÈ=AÚí5‹/´R¡Ü”Õ.’gSšŽÉçÊš0¥#ýa ¿Î§êú–÷ÒØå±¾“õIdIðJQ ð¦Ž1;8wJXv™7.W˜´/òcÂ8¸©Q?ѹ¾
-ÌHY1¨…ägs¨ƒŸ%2YÓØ““M@Ê°Z§VèLkÖT;A¿Ó„¯ôDu+¨ruåì¼²qä¢/ß÷Ø东ò.S¨vùDa? QÓ¹
-RChÎcÇÛ°!8ÏÄC”XX†Î³Ý@6^pVÙïÎéá<éÉ™ÂÔa‘žâ†>’)åð¾P]gLF¶[Ž.å),2È8bµ!¢©Nuo{E‹Ìrõ®é¬
- 3þ¦„tJ%Ï¢bñØ!ζˆ`@©*g¾¶==*ôÔKžÐ÷)¸“ÅÖšGýX¥ŠjbÊŒ‚}Èvp@99”äÞ<ß`Ä ÆŸÁ^8¬ s¸®óY`ö–½ÒÍ’Ìtc+KÜKOÊ=T£,Q4Ö–ÞÇöÎò:Òàlˆ¹åå<FYo%„AÛ! ^Ä;Öv ÓÀÈšÂõÃÙ,ï56f-ÏõŒð&ƒö\R9Ê¿ÃWME‰?7Qƒ´¸)eõÐÇÐF'=óJ­AH’qal^ŸûŽnŽ>í¬¹`àá³n$…ÙX¸ŽO‘?kÆ1#Ó‡xvJ"¦nî­®íõL¾Œ™«p…k ¼bhUßìy+Q^¹ŒÞAc] Ug‚¡yܲLDâ)8sà!ÒîS<Êàv’ÆbYuq2 §r'Uqg=|w2Qà»2GiLÄ:fÑNt͇En†"z–%´b¾—qöºi|î
-ÙJ` YãGˆ2ów
-¯Z¼¬Q °Å“~ê·ƒÇQļ¸4jS²i•ì0/a”²)kÑdëÐ ‘1è*EMF‹vÁ“*² –9®õ:TžÐõVå‡9Ø1mÁWOŸeõlWa™Ú6¥ÈidæPóÐrëdTc•KÐȆ*˽·In4ž,3'6Œâœ]+ƒ ûNàSùˆ¹±ŽÀwLžVªHvkÓ‹A´+6Ù†Á¥¢r*ݽÁý÷rU‹]KC# U&éïêÚÊ_1ÙK“\¨Y´ŒW†WÀ´5†yïì‹@{Šy‹.û¢
-Džœ¸¡š°ç©å¸d><ô)n£.’³á0—‡Šùõü¹ùו¢‹ èH‰C/]Ã*n^^án3´1¨…#rêkÙ[ºÁ•¾ÓÕûŽ@·r¶¥®ñêAQåC¿q/¦ª“Ç ¢8€ $ /@3ç E)+EXé¤Sªä©/e¢Œ8OfÃ-,%an-³ Íi
-&³ø­#‹ ‘øÿ?~)_2ÒC/ë^·ŽCxw »èLªíHÒkÃ*·æÕ†òM®ûˤð2Þbø¥S;ÞÖØßlä6¸Š—Ǟ颌¶vŠ«ú šWÞ-¯=!³>YîÉÕïOŽ.ï½û¯gç¿=ã_Åæí÷Îà¹x÷'Ëè÷þþÞ»OŽOŸŸŧ,îó©UûùÁ+WÄs‹^õîãƒe@{?¼·÷îûGŸ/ÿ{Ë
-$÷oû»ãËÏŸ]ûÂùoÿùøéÓ£³'z‹o.C].öè/_㟜_^î¼±Êo\cê8*ÿt{–ï°lÈež?:Ûþê·u›èŸÿè–âÅ{?^:ú—e+üúžbSUÑ‹*@Çéns1&Fè’<0žÇú
-†€*^ùþÑ9Û‘éæ‚¡P¼»Öüó®ã³þØÚ;|i!÷4ÎÃ+E€~Ö|EëŸ~þÿÜó¬.½o7×…¿ÿøâèòèê_~¿³ž£õbQ‡žŸ_Åêk™Qsqðx٘Ϩ1í|êµþäóÏ—N½²úäôàêW9ßhJiçû|ªÞl*7šj¾Ùtó©r³¯tËS»}-Só‹›ßh¹Ù”ê7,7/Ý{NׇðŸ×~þÎ×Ió}`â'ï_üçΈغl€£³Ëã+­ùý:_ÿÎÏw~›­Ï/9)ûùzóº—z½—_ÜÚËÏu9êïéÆtÕúsÙß{÷ƒß¾À¾ÞéïL‘;Säι3EîL‘?¿)’îL‘oÂÉÃ-rg‹ÜÙ"w¶È-ò»í_Ëîl‘;[äι³Eîl‘»°È÷Ô¹ ‹Ü™"w¦È)rgŠ|×.û×2EÆ;Säι3E¾Æ™Âz¦žq>W›£¸š9rg|Üw;ããÎø¸3>îŒ;ããÎø¸Ýø˜îŒ;ããÎø¸3>îŒ;ãã{c|Ü¡°î¬;ëãÎú¸³>¾s·ýkYóõqg}ÜYwÖÇõq‡»úÞXw¡;ããÎø¸3>îŒïÚeÿ:ÆG—îŒ;ããÎø¸3>ÐÇ÷Æø¸ }ÜYwÖÇõqg}|çnûײ>òõqg}ÜYw èw¶È-rg‹ÜÙ"w¶È-rg‹ÜÙ"n[¤¾%BnÕDn­‹s])Yâ§øð¥êÉòúب'¯i–´ÝôäùÁ᪕¸ípQAÔöî?ùìן.óý{×*øì}åk½»-J³,ôÛïz=\fuyéÓóÃßüöø’«ÃXZ.£ûŠàTzê'”ÇéøÇ.ôãQ%r–s#úçïÝ®î êkžnîÄü5–VŒ÷gÏ/gÙr[…ƒºÑñÚ Òÿã‹óççœÿ|p}öÞýÙÙñárk•ŽÈ_xïé¯_\^Zcz…óüêÆÓ·`ý‘Öï×Y05âí;A;~'Þ¾Añ6öÃ4Tø
-}†^*)v¾þj’¢k0¥“ãSBéZËùç—;àº_Ÿ]=ÅôçZâ×ZÑŸµMñàÙòVoÿììl™¸§{_\<
-voÞÙìšÔŽîƒ/–o>x𪭖÷ÃøÃï÷>>¸üÍÕåGÂ9¿ty?<ZsùŠKÛ.O—÷{qùú××_¥Bó—/<9¼8þ쳓ï¢5ûW¹ã¾7þ/¨o5’õï#VR„#ÝÁ632e ÔýY3e$ccscnÏâÓ—ÊØÍÙx½ûs%kr·å]´–ž~qôÉ¢`Ÿ<ÿ÷ƒ‹ã5&t?ÍklMCØ}àÚï¼äC}õøìè2².üwï?UŠHºßß2¢×¿ þ\›.`§ÍSs?uhâæóŽ\Á§Ó°ü3Þ…Þì’xv|qþù‹ÃgÇw×Ä7{M|Ÿ¤ýw({»¸ÿ3¹÷ðüâìèâò†¸ç§/•õ×¾ûj¿A .^U©þ>›‡ù†yx?çaºn"¦ï¬‰¸ÜJëÅ&5|—
-‹îŒIjÊŸÝOøµ'ºU›ølˆÉ*Ã8-JÄn&˹ß]s /®üi7Æw×k\îOÓ×:ŽËºüá:N7\ǵ¿î;Þ|-¼Çé{é=¾s:¼Š>ù_KëÁ‹“«_nÔÉ'ǧÏOš:ù¯í§oºê¯“¤¡U¼ˆâ«Í«üà½æ_}pöô½ %k_¢¥G˯~‚dãåéÅ$ÛßWóƒ£å(>>89ºº:â =þìÞj-/©<âï}ÙÛÿõéò½Ë« Zu¿|‡“ðó?Ü»Þ~ïñáÍYzû?ž_é³7="ËŠ/êxüÎÊd0Í)ϺHg> ¦ ÿ@Ö%‹o?üøÿº÷éÑS&ÉS¼Nò¯Üº]¿ó‹£Ä+üJ°I;Òy›S—ßëÆõÛ?¾8::‹/‡ÏøfLðFàÏÒjÛ—þþ ¾;Ç|Ì~7~3CÍeø¬„½è [N^Äü'Ýmš<eê_Õ«·¯~|ðÅÑÙÕ¿ƒ÷p>’ÉüˆË\âêÚYF¿à}Ά¶ÂÃ-ŠøÇ?Z~á?ZÆü¯?×µŒUÒ“íZÆÿªKõ”ÐÑŒŽÆ¥£Ô:ãw·ÅxëµÑ­]ìjØéª×B®W/þˆeFWýØFÇ=½vÕ't5ítU5 +µ$ºŠ•ã´ökhxíj9„¿øÑ´yÁû '³^wrÍÑ}›2M§zê—ž8¦ºé¨¬šEÛý«Ú"Ø;•çèióv÷{êÕ½±ÙJË‚ÄD•uoaŽÜÓ¼éiŒ]¹}·~»vvŠŽ»z»ÛzŠ“¹fË…ŒXÎ
-]µ¸GŒ »¿¶=ÆÞÏÔk:Äq÷ÖqOXÔŒ-›¶KawØý¾¢­ÀèZâb“ò±å—sT®õ4ǘ&˜Ð3ÈS®®fìÙeá—÷Ûv¥lJ.^ÌÊ*I-ÔÚJT}âCøš ‹P0e¥¿~»Å@½#,s³nUŒ2d³)óΙÒznåô*qBŠõÛÃÙÍ!·UßV‹à²ð®N½ŸâÎbârLpÝÊìÚµ÷­E9Ç}=Í‘›ÚÅVkÍ&M»ëvu–銾;œß¼^í÷*l¥[ìÃn»ýR,tÙnšb‘´H ;„bA(›,7›·¨wú,{\$ÐrlG nÛe;º £É–ø±>¦½K»Ó†÷Za¬‹˜ø6y»›$Ýü!Øx¾ºØ®mekw]°öèyÀ6(Õ]ctC,J[ðÆŽPc«ß/¯zÅy°JNQWÚäÆ)Ž®ûÐBšÔi²iˆ–n{ÍqŽ+öÿP× °e±¥beú•­i\]\ U³í}‹½Õá@ŒtnË×Æç³Xš˜ŠU­q^×€z…
-ï¶lŽ'GW?áK|ýûmŸþ†–ÿ g"åL¼Òû,²÷U6þ×®ê÷é ÿׯ|Ôñè·¼£ñz‡/.¯ÎO¿]Iö§Û‡ÿpy€(î¼åˆ½êvü“Ÿ‹' ²ýÎ å/á”^~þÛïðmü-ƒË“ãÃï»,.sË3P /{Õgf+ÿú~ÖxÍ¿Íתà ûpúº÷ú­ÐÃ_ÿZ¿ ˜ñ·ùVû¥ +Â䥇ñ•â·þ.C¹¿«_÷2¿•—ùý·ý2 ?ô²×øìüjQ}~õÉÅñ$BúÚ·ºùïÀÕO™÷äüÅÅáÑ€ý¾õ»¹¡¾í!œ]<]T¡7Çü†ãø_Oí{x•Ýµy- køÞG9ïÅg{Ç—ç'WG{,âTeÂÖšï}4ï}|tùlïӃ˫£ Ûûôhù⋵ìÁKºÿÍÙbƒž¿¸ÚûBî`Šî´Óù'/®ž/|u÷Cߌ'â°åKWŸ\<Ý;¤³9/ãY*›Ç®.Î.Ÿ, pøûeÇO÷.ÿpôŠ]~AtŸíKW¦—?[6?ÿµ¾N·a¾í`Û“yg!»zÄÞO~wµ÷ÁÓ㫃ώO\o`y¸k}.7ÏÖ¢Û¾x¾÷èàì‹_í=>kw]èÖ–]ÿüàéÓk[á”9£;ƒº|~~}?œ_n6‡óôùñ}µÅ
-ØÊ—ryõñ²CÁã(qxŸBóÔ¡Ù3¹|V²?{•¹L¥±Ïý®¶aæe>–æÖç~ÿo¾¼côÓmþèÔçÔùWŸË¶Ê}·NG[^|méðÖÕ^ÎÛËóçï]lNá´¤ñQ+x„o¼»Ž_“ בå;‚fÞ;;_åáÞñÍùåñ•»~÷ÁqtóÞ“‡}4õïáôâ÷Þzëƒóãyð«·~ñÿXß÷“žøáÁ.~ôàÉçÿ¯Gõ‡?yë­‹ÿHoým÷ÏŸþÓ?|òOWóñ‡ÿ˜>ùÅ‹gþí=ÿÃþðÖ[ïü÷ûo½õ¿ÿîoÞzëíù›{?˜úG|ò‡õŸåWÞ*ÿtñoååÿ÷þúÓ÷Æ_~q²üáÿ¶üço¦?ø§£s<û Ÿ÷ÿôï¿üŸw–?üÝßñ¯ü÷áGÿ‚¿þ}P§þüõ=üÓÿ<üüõ}oú·ú|ùÃÛƒ¾ÿß÷¦Ç¿þ|ùÓ;?Â_zï?þ»ûïýýòçÿ‡þæÓÿà7?©ËŸþþ'øö/ú.þÊöïßÿtÿrùÃ~æ§><ºøüõgøëþÿýÿó6þp°ügî”gŸ]ð¯ÿ?wﵦ:,€>ï° ˜LÎ9眚šœö>³/γI6NØÆ4=7gþoõ€-ª¤’TIU*4è™ÛµgÞ§«aèÿÜ_îÓ:5kÊt0yYňÁ·š«±æùŠ§SqƒÐZ7LÍÔþ~r¥ÍâÉÂÝ1B$CÄt(pD|cL…­íÉœ£dOªû~bÒ¶Õÿïÿ4'õ%êvç7ß÷eOaæ¸u½ó¡Àá_4ÅpòZ+jò Û/ò!ë­úH£RB:Çè!ø5xœÃÔFàñvóh«ôÃÙ©ŒÁ›\é­­–x­ñ:e‹-ï}ÕcõEDOYUNØåû<2&ÃÛPJsì2ñ{ßú¦è¹·‰³–µÖ„ËþB³=ÇöÇï{:˜ÎUÜî¼؄²~cªT´EÏ‘¹Ç˜*¦Ën‡ú>ÿ¿ÿ³nó̾]<…y¬aŠ›ïÅM{öƒ°%¹¼F<©¯U:õ—¶ÖÂÊèôìû¶¯7¥@îš­¤f„é+ôT+0“?ƸÙWë's‹œVÇwÑ#¾sá3Çz]9b—yÎfÜú†p{(ky€¹xŒ5îØÚOÙW™˜íb6FÚYÌk¶(“+óÀ‘Œ—Jaþ”’sùh ÿ¦ÒÛ̘Ê:ßcÊEöÃ’'X³—†Eò7ØO%5WzÃP‰éËÝ3fðû h£y-¨«Âoª´îè%þÏÝ1ïŒÑ«þÛ _™áÚÆ4˜R3ôc*S²Œ©íƆ{ÀÖÕ„*.°öµ~"ƒé"»>¦O5Ž˜¡°`Æš2Ž™Ú£6f¤~0Ë̬ǬߛFì«5Ìvõ,1‡ê¦Æ÷–si‚yÌmR0m|Á¼Ñ’ó¥YÌßÂFX`>3„…4ç+X¤úÆ¢›‹û I,ÑW±”æ¢ÆÒÕsË⧖«œTXÁ|aÅ)>ÆÊ£«jÜ9¬6‹m°F®äÄZD·…µï?J¬{4¥°¯qh ° º-6ªíؤé2a³v½-º'5¶Z„‹Øú8½a[ ‘ÅöþÞ;V,ì<›ÉžUb¹é]©:ÅKJM\¥QêÖÝ–Ò˜ˆJóŸ(‰Ò4 tØJ{®týøóJoY«Sü‡2¬•ÑKï¬L¬ë ezTp*sÃÜNYd+ÊÊ¢äTÖwµƒ²uk7•=ÀÄvJ帕³=À¼
-äìÊM
-\“q· šRw{Ð45¦æ«–™i¦ÄÆ©ù^ºúšC²cÑÜÍúŽVs혵極«u¶‡m hã…£S›«4Úê Ñv6º“vt_—´+wϨÝscím
-¢Ëz®Žf„N Ž–jKD\Ó4‘¿UUDû;Ù!f5‡‹8
-Üi½%ŒÎPУqæ{F¥³kPߜ˞úê¼:ÔW—qk¸¹|Ò•I$pWËZÑ»ææoÂu6<nƒ!q{m“¬;·6ÜÍzcìžít;÷Ù×Óx §ÛãÓ/Ò@žeF…®§¶o=‹ËÑà¹. l)U:Þ`6{òq§÷+({7…èOU‰Ú}öe¡ê‹kÚ'_-µú&K5ØïÞ ÉoØôj~Z‰žÉø{ËõÉ¿i†’
-< .ìŽg"“$“Úk ™‹N^¸M‰NЩ\Áhâg¬®ç¹àÔ;ÐÏ«¯IÈé%BaÃB*O×óи­.„Ny—#lÊ.áPr6 — †\xüU³>mNšˆÙœØFÂåË0R9«‘iÚ”Œ\NS_ÔZÉX£1Cmèp,ºØoO1l4ÜÆÓþ&–Zô¾cïÎ*ö£®ãÚàö'î«Ý÷ñ‰¸ÄGñŒ*~ºÌ
-<a)‰˜½N4n·|b5Ë´“êî}‘ôTÊ×d¾b±$‡u,yš”)«&¼IŽ}ª5Àb©aßKk;?×tÀºö¥ËËm+=«Ü®̯e\fï(“Ó—–ÌŸ—2g£þ’%|…D6Y½l³Ýu*œÝvß9S³ÎÅôúŸ\«?Oä~|™K^·—óá¥Ê˜o4×Ãüº½ t•þµúµ Àž÷~¹¹uÞK¯Ûã
-¼ØÐÆ Åu»ÿSÒÛ°v)¼‰'JÍÖÆ^ú‰°²Ñó½.ÇÜ©~¹ãR•Ëûà Y±”ÒJrDØ+}åÝT9§¶Úª}=UUs‘Á½:¾n5l¸º×¼é£²Vñép^[ÝúºÎZ%êǧÞöZ#õ}¹•oX—šV#c­Ï£ŠþÔÄ”cÓÛŒ›U¿®Òü¾­f-ü­jÅûë«­µ.ÍÀ¶í…líÒ:\j¯4©ŸŽ>Þp*ðNì{Õê|yqeç²
-§ºîìð§[1êÝïmiÞ3NÔž^rØšõ†}»÷ ›nV_þu1òÕ4ù_û”¾Ø·­®†~Áñ=ê/F³ð@šcƒ¾ù f§ðZ4
-|(ûgÃV­Q›;ÏÈ9u«Fìk5Úx ­±¥ÕJs:›g<﮽3wŸ$¶ídԿͧêÜl0DÛéW´Ú˜ÞsÕÚ,P¯VgíE»:»fõ¹·|k+ðyãjëÏ…Ütá6}ÿ,jsâ²Ø·ûú¥3O¸–ÕÐW|¹Kê+Gö<_U:Ýûj»Š:¾vGî»ÒÐŒ¿·×#¶vÔuÕºo¯wÛËeãè›ZËßßÊE }þ¸«óÜOc`Üÿœ¾s¡­O³[lÛɘg{ý9MwÁTÍ»ëÝm˽²»ï£ÁÆ~?²§ó­Î§=¤´¶Áan%BG“Çr;泎Îq= Ov¢¢:UãÉéhÄò
-üì„]çNnª¼`Ëòµ Û—±Á“¹êñ•ïÿ ?Ÿ6;ã-¢\ÿ’èhBÂçÄr6ÙÿÅr/L´µM@ÿ[‚ò¿ÕÙþ7¶“5%ݱÖ6éÝ‹s¼{ì²5Ð>=,¨žÓÿõhlÿRÕ†Ôp8g $^¦«» ¼È-ÎÇËu¡C âDxn[¡¼¡ ¶¯—M+²™lb‘Í_S‹;TòW¯ÇúÂYƒÔP­Ìq¤õô½ßZË)ëä\÷ìà|ú8®üßüg7xíä|îÑü²°É+Á,k™íþ‡n‡ææ íò
-ÚÜ6;:žB”Ó_wÔH´AÜõ•Ä¸<¸£P—IÆ™Á6×ûì1*‡0ãÚqNƒ…ZÌЉ‰d“Ãò{Ê߈²Òà %DH´ÙÙæè¨üIâ³Ûõt±¼°ÎÝ[q92­±ñØ"ÿÐZuî6'ñŽƒÇÓ\B]@ ®CG ÷wΙy?—ÞÀ$³¾æ²j==‘Œ†þÔê<Y¥º–¥aù×Y΀æ=½æ9Ð5:•ê@ÿïìÒ=B¢áȨ˜vaT›Ã (n;ëI
-öq·["•ùùTžÝîzÛ=
-:]|¨Ä„?£Ú3s$ç7§¤Üî »S§…làä´Ñ¿°yÅdÞfta–Z÷ª%­Ó¹<é–,ÎKï`º-OŸ“Gt‹àKéÉköDS(ËëæûðBµ‡ ÑÔΨ¸Ê— YKX²Ýô:ÛÜöS ž›’mäh‰P€?Ô¿ÓQJç…-éôºƒKR(/Ј}A(ØX–§Ç {(ÒF°:«§aè 7xš{4ýÇDì¼ïöä´î ±VÍ'%›nÁ‹Â"Dý‚0¨&< ¯Œy*nÛÝõfûþ`„*æÛ0E–E¾ðuýÜnwG6îñòïv*hâÀNU“é1º^
-3LHg…RÁuêã‡äU§iÐçØåö¿ÇË6Îbn"åD
-ýÎRNÅÜa¦tµzÜmæ¿êióÁܲ¦„EfN^§G§ÉùÑ{‡5
- GªK`y±Vï«ÝüŽöÅÚªÀ¸¤mJð”Ôx´Å'˨ö&"× *`bß«6»n7§"ž Ø첄ÊÕ"–8J‚-¡É:}dp}ùã Î3ËdvØœ,Ÿƒ@ðFã)} ªn<×Äizx¸Ý¥Rœ‘Š¦o vBÚÀ´kÊ;4s<zÉì×þï–Oc&6±™Z®jw+›r«üÑV&\rFüŶ½ÜçžtÊ^òâ Ë*‚¸&’ß&B Œ,†hÐtºF¯»UGEìòh”¿Å¿³µb4è\6›Pxž´X´ßO¨Š‹ÀçI¦q¿ç+sKþ ãÎ/³)¶?¯±\ã¶6†Ýª{:éTwâ?;mG'WD~&Líñ­<íZk&,mq¤ìvþa4¸M£þ«eoLšð{Z—Y¬8"Vz¶tr5ìx`¤y׿Š¯o‰µçËÆ!ÇD“œÛŠçh0¢íp@—¯‰Ñ÷è>iÎ0X‹›½?êXì:}èNwîûÑ穹«¦K¬ã@0†;4ÆxÙ4Qê­tby7„ÛyÕ:0ŸO·ðÓƘZ×$faz.õÄ¿åñÑš/ÆÁ=Vlhΰÿúh ¿v(pw =ŒÆsíÞ*¬žý ´áÌûm4Äy2m²y´KOÇA,ü›„u
-æ×V
-é̦e|ç©îÉôŠx4‘ ª:)“Ïuó’ë»UaOâ82Û‹¾ß>S Øð
-» *8%}wÇ];@:…ã[½ÛL-Íö¢H؆ªRÒ: jÒ˜ñ뱸ዂ‚š(pb¦Ì9Ñgc8¤>;©Ù<aJMH`öž=–n—0†Ã)“=ùQp:¡``ñS¡™¤; àUâ.
- hÏÓ2°éBuØhéDÏ\X<9F¤†9 N÷—ûgk&ŒÉ•µpNM§ZuÜ=kÕ‚Ùä8k®ç·XU=/Åšv˜ý˜gØSß,¾RÝIäN“ˆ\µœe:Ú2À¼;Ë%û˜°Þ1¹j¤ˆž
-…C#-ìn¬’NþtƉÍÛXíño ßl€&á‰ÇS_açÌŒ~D©±ÝV2ìÿO–…Û@ûÂÉo³>B"¨9 ¨U´‰µ±—°nÂ!?5W\:ql‘-Xö–4c>Æžƒj‘ u¨ ó H®yjq²:"fThÂä:g6@5»–£ÿsµVG}Ûe!´0¦'ã°/™éyVÀOÙ {ÆY⃭aúÏH!×XêvRK®ZÆ àÓé¤]¿H‘;YªPøHÆ5
-j¶bûÊ“ ªtêpŸØqßÞKÍ~Ф¶ö½žy1¯U£`,½}™2ðï=<V+7Úé¤~ñxÁ,ö£†ðlï³*Q,ÌNŒÌ÷9Ø¿¶`^ëæ7†3ãñce -`-…ø¶dª}uÅìY?ô´Œâ[{c^ÐŽ
-=%0×v%ÖÈ,~À¼„.öh ó¡9@3ÒÝíK¸äVèàc‘õõŽ&ÙWL`Mˆæ55>ÙfÑ@Kka9Éì®2°ºWbÍÖ´øwDzu€ÞdÍ4wæ;0¸o—>®ÄVŒnÙ|ì^60™»×Áö(Jï_ÂîŽi’3ç²ñr÷²:wï7XÉi}uH']_vc¸74<C”aå³ÀY»7^¯=Á¼„Ýù{ÒR_˜ÑÝ´ˆjº•éC‚r ‚Åg>›¤µˆ>è©]Z×ËÑÒóJu.“ Q´rA1oï+a Å8ŠGÙ¯Ü_€ÔõkÊhp¯X‹Ywp)¹Õª³7êïœ7UvöõwÓlP$Ç&mwßL#‰4õÜY›%»©–„Øé·9˜¿¯@ryª‘:áV*øÌž,4KJ½§½+6 ‹¨Scâ0L®šÉ•O™Ž¥{ÌõSóêNÏS—(Ïä7¾ Õ§ô\­åv¬YŒÂmè3?w>¨‹^̾{¬Z·ý›‘wf¼c
-»\6Çw{bÖËöËöWzÑÀÉg{ÕÎ héñÖŽÑF¨‰±˜Ÿ›|™“„ïK›N,ÝÛX39µÅw^•—°›Î›¨¿RÛ¡ cq˜§U„Î'Bónlšd)VoFÏÏkCuMlB¥kԟƧ›I”í­º)ùâ næýdn^¯ÆûíiâG* ¢–Öå#E_v¾QJ05‰°Ð
-î@A[%¿UC§Ç²$€:´10 Ö­–G¸èúA½ÃÕLͬ_'®æMöÌÛÔ¨é±JÓ
-M%½ù`jÒê°ÂšíÈ6 Ÿ:ðjŸ¡
-
-Êj &1k8•;W~HdÄ>.ÚnZs?-ãÎ{X:ÀÒfÙä¨É^çÔ’ÚÅ~ªÑdnQ»%ó:]ƒæÈs£ØnºGªQê¦ÉaÌù;ÐÆŸ•×¢K©±Õ®;S¬f 9ßÛØì8¿¹~&ÈÛÔX€‚2oúË£Ù==Ù÷p9èÃô/öR
--ã,ö÷9IœØöpèê’+ÍIå¾n¡ôxg±r°lF¦o0WƒÇ?26ày‘?/ýÁç4æÔj>[§`y3× 
-]nÚ^õ]e²ž“ËàHÉLÒù'N ¢W'À>V·VÑÈý5ü­WÙlz|šÓQí²«ïŽgö2V5å{œåW¿<Íñý
-öxÈU²u·¿Ûš±,ÓÈ£8œdàR£”²<ñ •=@00³Fêö«†²Â\¾±1U2úÀ®3šãÊýp
-K е.¹õ!a0 Y7æí=Þ)P`$û‰`üž1ìšx€<³VcÉ
-Ù$ìˆ{^°¼÷_(¦­Cæ-‘/q¹„C³˜éTÎG ¾kØ› v,éã—³º ¾ˆäWº×L‡b¡¹Íó(,u͘0ê
-ö2$®A
-œA{ÕšJf¤®µnªí¥„‘:õcÐþ-<Rez$¯ªuÚ…ÆJ¤ã…¨R·J}¸èC"H{#"½*7¤(Þ•F›Á‚[~ÜDšÉÚ›¢äµ…›„¬ÅYŠ;§°’÷p¢Õ?Ϫ®çèïlz€Ôy|ZJE"N!­jµ<¤.×~|b2+™D;¾ ׇ¦ÒèÔíI«m‚HG‘I] )‰j‡.0k^Uëe]i-¡ŸÕû¢Rc`ç3HÁ¼p—’!ò­#uözDÚG”‘*Óßu}o¯!UàDz8L‹ŒÕ­Â·‡RB é”Ș&ma¤"¦]ê<=„Tó |S™"ÒžYÇ#p¤ì QäM ¶iÒ¯ Qô˜m©‡T_•ÙåÑ]Ÿší
-ß´p¾‹Ò® UÍ?vG «ZðÃüí hé°v„µä=hÛ½ÖªÔ
-„ȧ±ÇŠ,Q¤PäÍÅ.ØH `#³ÐzËñ éB£Q1H‘öO#uðÈ µz¤™©¾‡¬W6ZCvQ¤HûA
-ìA ý¤`,œ±E‘_âH¡ö/ŠTCý-<Ö f‘BZÔŠ"E:ƒî}Z¨S49³ºô=УOÔDè_‹½œv£ûþÀÞû"-ݪó(Õ­¼lçZSëŽâq0æAŒâ–O[w¢ÛCêÔYšpú~¡˜‹¦åíxëFå71Â'Ý¢Ië'‘ö~ø¤žhˆ:"ì˪P/¾L? ×41;ÖD¡§pê©t¤ ø€Ö-AÀàB'²ÏûØ^ܺ^&qúO­1S>³
-Ý8 ±dØÃä#”O t¹U4P¡½Ô!õvŠ³FPÕp H{Ü@‡‰¼ ÇѸ ;\+I¨S[_Ž×)v—Æw-Xº%“]!X~4ž;‘pËá=^xEtø‡ê<iÌ ŒO‹‰ŽO3#DDgð1 åëùSÑã3PkLh„PymIKþüÑú$- ™Ä’
-ÑuÊcxÞwÓ´Ü}'½ë€¬œ*»wɹTÙL-› þéY‡OËpF]ª 4€bì …À„2ŽèçµÆGsÁçµQ©Ñ]bõ å–ìY83»Š 2J,o-ë“ö<%ŒÅW2>OÉ"óJ “Ëz¶Þ«L2tF¦1Ðfú7Q±¤Àß™ß ¤Iö}íIhï/2\>-@¬Ò‘¼]ºEò¢²²R§ú#G¥]WèS§ÀåÍ °ò%‹W:?g¸¤bñÆüeª{¹’?
-3Ç#˜7—Ê #onù<‡Ž-Åž3èxC¿Î¡“ΠC<ùrèD‘¢ :ÑlÁ7sè¤3èØÙ‚ŸäÐIgÐq´¾rè¤3è8Ù‚äÐIgÐId ¾•C'A‡²ÿ ‡Nº•[ýqÝÓÆådÐіŇ9tÒtH{CÇ H–È0«jÓBÚ¶x ¼x&/ØEF—=½É×ÛyùRižüë`Ø$_ûpÈõôö“\iÿÞÔ±Îø’ü€_Ó)`à,Wn®(-ãur’Á–?Ëö+'
-÷ŒO
-˜t–¼ñ!_ß«Ì9Ùããy®ž÷‹|¢[ßï’Hæã Ï•T—„RæàXÞJš“ÅkR¼P&¶ç½ªÛ[¡ dü˜`0Èûnc1§1ºìcUϬ’šBf²7ò]Ç ZÉ`Î?õ“ÉnbÇ6\+éU²›¸}*}àÀâ–)É`ŽiúÊ Iñ²8™Âò€qC°lÏ'63ûùUæ£<ž5M¿eô¢])föÎâ!”o¥˜¢Ü·’̬Ã׶= –ÐY6­=»Î^9·ÞÏM~Û šýʼnUFTíÍciJü<°—j—ì<¾û«ø7òøf¯ò_T§•xjšxŒ´*ý¯ ­UbŠ
-¥hŠÏßËxÙQ‹ ׃)8róø¼—W91R‹ýY†è…9ùËLyØë/Ÿb\ë‡{™&* GûŸŽ_{¼Û3s²¼ÀzL.yºì“Ï÷ÙÌ¢·z]Øo)/Ç!`«äJdûÈÿL$wwV†±G[|/Œ½ï¬lcO
-‰ëÀL¶Ï3ë¡€û³˜H
-áüEF*Ìû<#Bù‹ŒTGÞ5Ð<“X(®mñKSß2Ò›©ÙçnÃîÇÛ—
-'ÌÇþ:ÅóKFôüE*œà¼üy*Üïý–\ŠIÛîoØ•¤Â±ï BÉpÿ•T8¯Â!NØ?&Ó>ëI)†lVÀ¾?Y*ñi-«*çFx®>–°¼0‹äzAP.YEdLüf»7u˜§K†ß=\`e£÷dáHÝÎ X¹Èc°¼NnæçÕ D¯Ãá ‡‡wT@<0ûV3 á£æ
-˜R'•ìf³ðrëñöbvn•êì¾Ä’ÝúRYg{é »c³)ŠTS\®bH—Òõøj]q¤©r?#J^õÁ‹!­q3ìЬ‚ K}¢Ö¹_f»€P;Ò«ÀiéeAtê«d;JtÝŠhùa%…Ó÷_ JùŽe„Ür5Xã 猨ª9þMjÏëU¾×D¼ŽÕYF—Xçbzœú*΃´^ÿ²’œPÙ;Udx—¤*ɽå…ë'e‡H¾È†DwB¾×÷ªˆœd\Ÿüõô¢ˆœèø„ê¾½*6"w|¯k È&ú«:#¼»Ô>¨'¿d–â…ˆDÃ]å “öôþ&›îw~˜w³é„ì€G-ο˦“y?̇ÙtB>Aþ~ù<›N(—î·™âÙtB¾xáHûO²é8d¡ö¬àýceÓ zqCÈ/²é~)‘ß̦:§¡eåŸeÓ åÒ±íý¿É¦Ê¥“ÛóF6¯ýQýï²é„fyzÿ4›NH¹aÇŽþM6P.ÈmódÓ=wi­×”~›M'¤œ*ð¿Î¦š?h¨³éø ^ÖþU6˜nù·Ùtò)öI6ÿLü²é~E±·³é$s¬þ,›N8·ú¯³é„
-pÏ•#Ò²IO¢ü<‹ÂŸ…(
-ŒÊýë\0´^îú=åê^ƾZŸ0Ï’xY‰tr"š¯3 Ń8dç,a‡o‘Aꈺþ¸+Y^…-€Y¥åçÁKSEÇ,t7”ØyO¦ºÿeb'
-,ªñಣ¡
-wR)ïe>‘¼JyŸæÑ•ò>߆î¸yIròC~SáNªÞ+¬q÷~…;¹·šÃì§ÏkgFͳ^e'Ö`¯Õ…E‡¬M÷»ÄZ~æ£ëSÿÌ/, ¦C¿wÏ‚ó ¾ùtG„ó'ùœ%Bž-öŽx.,/‰Iñêš T.ïüv¡$&ö©(d¦§mè×½˜~­GÝ7™iLr’˜´¡ßeI19iLÜA¾ð2 èyMcòëde¨Kšíô®ôëäìJ9ILÚЯ|ÿ֮쾕Ä$Ak'JHÚ÷Ã.•ÃûÁ­ü<ÅPà²Än¬ñ9® ‹ø­bÐ~y·"Ý[å)Åõ±Þß]MÕC§o”ãÚ½šê}fv}«Üã‹JyÖ_渲ö'†!#ëùuŽ+è’ì¬g©WÊ'¢èÆ÷Pý`Æ[6ÔLnm‰¸5ßIª–ù†OFŒfè81ºÁ§Le÷¥»ƒô® +“¤àA®]–ï˜úÄIÂ+Gêl¤œ|8~Uµ{U¶«Š[‡ÍŸè÷DòáôâIx—ûÄoãòd^aËýs«Ôžº~(–„7E
-Æ¢LŸ¢c%2ª¯–(Rmnfù«Ã¦gÒ™\ «.; )75íªõh˜:‚^–£^éï„*pH`~Í9NÞ”ŸûÇ&o!XAêVáÎrrÂø`ùqc ¤µ[i¦¦úBŠê¾y³œÔJ>ÒºTÁB[i*ÕJs"»
-¸UËHådßs%‘
-øª¤ñ‹ùcNޙ׉:²¯®±`•™7€½ª¢£åg×J
-ôóÿE]?é…l8Ÿ$¾ó3R[×O@ÕdUõcWg >¨ëÇÛ†·ªçή·ÓSº®ß˼×?©ë']Õ^ÉÖõ“¸fe¤~T×ÉßZ‹¼{®~]×Oš€Hƒýƒº~{íºuüQ=>ƒ4Ùõø^”““]~4Áíón6ÇS]?‰¼‡—ѶËwëúIkòðƃ¿¨ë'&ÃÛÏ'‰¿Ëß’¡Î?N_mÃWuý¤Ï›¹Q¿¯ëÇ¥6ßZüm=¾÷‚4ÄëñýÁö¡«ú}^ONÓ«Ûžc5Þ+ÅÇÏHý¬®DZýTÕÌú¼®*%UWôãº~ÒjŽÈ{»®ŸtU¿om¢êú}èë“Y×OFÞëÔõ“®ê÷v=¾_eáò¸ås]¿ß'óªú±°|T×ïÙ•Ì®ê'vËÙ»uý¤Ã»xRì×uý¤x>¥_×õ˜VU?é{áä×õû½ß’K±÷sžDìÊêú1ŒK¨ªß¯£yuý$W«Èguý¤CÒzý¼®ŸtB,%‘?®ëÇ$¿ªß“>&û&+n]?q%ˆÔa^Üd%³®Ÿ,æãº~ì™|>À‘ȮٟÂuý¤…ƒdçŸ%Ä’rß* ¾¤t´JK8⃯Ԛ¼Q‘'+ÁSq×®tà=/m‘³škŒ9½ ‡Nì<xÒ7E¡Òq$¤åȆ°V–nšžeŽ%Z¼ÂÜ7ûu±’ÇŒý²š°v·²̧ÂÔ¥pÎBè˜uÞ?9—u>Þ }µ–AgÞëµñsœÈ~—cªó=îÆÓ…|šDq—7Õ”*çºë¼íõ¸Çeqν¥t×R°\0W1ãœÄëÛVdÑ(¹;ëæ²ì:·uË•ºÓ;“?Êf½°õï‚Ýã2¢;œÇž3~‰Üe¬SŽhÕ]Ưú¹œþ¾VõÇÁÒOí}”Ûn5mÌbE1û÷¹m :´Q"/ĉôjž'2nMýr™øt—«·“»ªFîÙÕ5ëWéL˦1d5w,Ž¢OùH{û±^®ƒ#,6çS‘¹ÕÏ<„“_ø*Ž}±yí jº$¬'yŸØpC,ZÌ   ÷¦óâPc¢cEº©vYUµ¿šaõábMkìÎï»j·À0“4ÿHÅ³ ãÕJ”“ˆÅÒÍ&N¨— dïW\•ýÄÛ>`hÕ+iŽñ·²†ØšÂn<qWàɯô²‹
-h&†™z×]N,”Që-˜Z¯‹@Ú§ÚVS¨cÈvgvíî –uc3
-i¯b¡°8â^‡7°éW‰µ;]‰ï¼*/ËÚ  6’ÀøgÂL]Ø^Ý*Oÿb‹` º[!"ÖÒ&‰µ§pŠ5c‡”>{¼o)ðôXß/Øõóîæ1M³°v|ŠSCŸMhõÃS°t-{ð¬N.{èüГŸ¦Ê¶}$o 5 #‡ã_Ž,2=ûðÌñCú„¸
-þôŽr—k£ØÍTèLd>² ˺éÞ,¤³bc,Šj‡:Ê € +ÈBÿ/Z
-6¤÷Nnlë˜fu=S&bJð³ú 6nsoo @èÙ L›„1¡Ž¤h½&k×ùzFÓEÏ”Êp$C,ðCòr  \(VWe:3 ˆ¥Òeåèv«1ÄFÇQd
-èØG˜0;4¾ 캤ɖQ{¿dEOðo[ÐS ±ÆP$®æ2¾qX¦JKU‡¶×hsÈè–¨.7ÔЕðE_YËèz†þÅ1{¨tQÇC›#¯µ€ìÁ™áר†õƒ©yqö¾ RŒº‡„{g…&YaÈ‚ÞÌå õ½}ÄÊž*3Fj@Ékƒïš#Kçö›}O ÅûÈîéGL÷±ØÛB—¼³†
-YXœ£=±-c»êXö“®Ú†þ(pxSP¹mŠ#¿>³MoJ)‹#›”v'¹ wßD»˜ÀÛž1EGݼ„MÚÍ<|e+úÑ[ûx…9=6>2®uQwï„gö#0Øú_P™þbôgçÁCÁ$õ6²› XÝÕ«_LdW
-ýeÒ ÏîÖ¯ùÞrOÏ&Î"Nܘ.)Ç+6ÜWHü±¬²pfˆÜ`@Ðk,ÌŽfð‘RìáêpY´«­‡z»Ô|{ö±Åß“CLK+-®¤©¸kKuõ‹ò±V^y Q–ø³«CÀÑüq>¡í÷U™/+kbâ¯@9¿ z›-(ÝH:9Ñ¡%[ä ?ÊÊœ#ó6ûæž… |KjÐ{ÈÁœ¦\düÂ…µRmYó)eŸ`¾2#5‡1dìãyÚ&*æ`oW{Êþ$…–ú|Šéæ4‘ŸU¢È‡ãˆÔi[ÖC¸àF‚b«
-$ôs«Êîü~Cžì<¹ky_…U á~a«9t¿Æ/UHQås2ñÐw<»2#’Q Q”‹X›q[Lƒ r‚)Ì0*$QHÒ\’vª‘
- v¼¾ë·eZ×ÄCÔxø|o¦ÎÄÿF…|R Á't_(_3’®rÖSzLêUV„éû;LªˆäaÕVI`Úíop¸H3QÃ…­£<ð(_ƒâë}õëàÚÉš©¯E'bÕòßk(G0ìø°G¯ÀYg¬ðÔ‰ÐãEÂ̼à30/
-¯ÍeûçµÛmÿ¬õûny©\6ß›Ã?“" °Ær6[ë°8¦/ËesùÿÜ’Çù}¿<ÜþùÿYcD.çu%—óãbù…Ǻ&–uJvƒÒibÈäM®|™mVUM“+¢æzG6’ëÐàoƒ¾´àys~M“g d¸”`”‚Ury‰ßSÆR±ÃÛ_H½ríf©sò+íÊö–uùáñë~|R¶7<…hľÎÍHËàš“AÜüAgb7 ¦–pmØë$‹:éµb&}4J’×”ex"^†/"˜9æX`¦R7‹Ϊ ËzGPQGåo‰ª÷LWzWT½/¨ØÂM®¨z_P‘EòEüꈴ0ðµe`Q~x–F›Ú`K –q´ÚQ€½‹^ÛTYS[­XÉ™x÷¬_[62$MŽµÚw
-S€Å»±ŠZ^½©“ ÃZ^³
-þB…VÌZVjÙϺrµ€O}%[f#{(ã`®fS† ?ËŠ÷Lo{¸·ƒ$ËÃ?rï›Î§Šð¶§ùŠ€”‘pïÿ…”‘
-üo„¤´ˆTà#$¥E$·(Ðãxç)&—Çëâ;¢ø;ìa:#!c 5R ˜xGF%Ì5la…\ØÁBÇÈDF$š3'/¬AuvßK
- Ðe[ŽBALmnÎ
-]|z]êÿ
-|l]nÉÍü¶9¦—ÿüóÃGÝR±•Kþóÿ£þé@?ˆ1h
-žë¡çi ú6Vÿbà_÷ÚØ |ª( aw¸ì
-A2ÚúÛš¢±þ0ŸŽkÖÉsíÎã>±­­;ò#¿¿Ì‰O¤PÖÝz9þžâÚÀصû)L^~|Ͼf?˾Ïñ¼§z³öêß_Cáÿ}æ¥×¯s ¥õùÚô·_ãÕÒëšGÜc¯b|ýR^—vüjOùæaļ>Ùð ¿¾rM“ÍÆþí Þ,¯»Åyº$¥Ê×ß·ñã›|ÄeßäxÖÓ˼yæE}þáá™™|n¶çõ<³j×+{Zù7Ï!ã=—{óð
-o‘z±òÿýá¿<|ÉMÅýdÂð#¢û}_5×.’Ÿwik?"æ æïìuÛÂĺ§/óúø\òöýZ,ü£KÌa^Þçé£&æé[OÌÓGMÌÓ·Ÿ˜§‡g^ö< 6A¼®¿n#7Œ•ÖøÀýuj±c$6¢®‡-ëH[÷˜¹W}®¼^oø’2'i©^%T<Rš ï±&o¬±<÷KŒÜÜ^çÆGeý5ÕÇœ×óè#ùuOq½(´ëd/Ÿ–ʽþšúë:'h½4~Jíõˆk²52’jáÇú|—”XC Qö5×{µÆIìß½ï_ÏõBú¶¾>¶¶NM¯Ó(Éæc  2^Ç5툳™^—–Êå^üã·,O!Xž>J°<}KÁòÜ‹ú$üËÚ‡×Kñ)Ï ì™b¥À^˜´–ÒñÃØCpÖN^8jkK®ùŸ•ß9_—ÑøÅ#Ï¡‘ž×ßð(ÁVpÍÑ3ð›{À«Li.xÓÕŒ×Ô2V¾.øçÒÆb¬\ùñº”Ù1Zª[„Œòi“¥\}Fâ›”© ^.^öbÎS´äK[ûcA¨Zë¹vFúÚä’/“³ìCõu¯üLÍ)é-FPjì’)/ ³^cY—]ï‘_´vÊvYñNC¹-»xYÖ gSÛ)õ21RCëÉñû0ÑÑ_—Óu›¦£¯+Ʋ£3
-àµY5K
-Þ²ó衪±ÐfBÃ&ˆPl$ô pàÆ*Í¡ùØ1ôDÃñ¢6&ú’÷ïqªØŸšKˆgœ*º;äò:F\©HsaÊ`øzLìÛ¥Ô%6R_h]#¹´®]×.ÉTFÖ‚Vßîë”X#kr)7ê’V¨KOÑçÖ¼ôõ¢©8’¸UóÒ9ònH¶ÁKZoè³i$®ù†Ê+í[>7¨¸A771µ£&œ‰K'Ok/?Ƶq’Ÿ‰k·Á]½àÚÂz\Š}@_Ð_P^X~$8K¯Ô¨cËÑ <°e&¶¥ ´øX·ø¼ócÐò¡i-•I[/'HÜ¥©u_ßµÉ׋b‘S~,âÌ^ ñL«äXïRZ|Ø¿xQ›¿ƒþô»c¿ 7%Û~8¡Ôä>…Õ%¡ÖØÒgþ6Ö
-` &Óyç:1R–‚åàOKËáªÆu¸ä–¨‰×LÄ.ð×™i#.¡]5‡8ÖÄ/ûn)o†ô k1žiª¥sõÒöaV
-E,-?}ß’Òq)iRÉÖCZ׬ã+çª#­e*
-ü²<³­üÈ|•C C”gX‰P¢ëmX·õ¸1kÉ<Ö­Î4^@O/j“`
-羄y¥-GõßðY¤W­‡Å|­^×)½à¹ÿÐH*K9<COOÀÎÉAð×õµ˜Í<M)š°†#n$ÔÚ’ºK?Æõër¡d©N9å®uÏËRàѳ4‡gê•ðì•
-ŽàIÕ¡Ewêø4«6°÷^<O/j“p O7vÇ`rÀV—¨ñÀ)Øð\ØÂ!çðìø’‘¢¹Â:Ÿ1\u(P¦±2ÙfbIψU`'V™xY\†Ê(“
-]"æ’ ¯s ¿pÇm ,å—0£^³î„Y„¢°LðJMwÁ3­©:Íd›2^ãZ ÒH¦Ê·l6/í‚η茧E]ï˜óYtÒÌv—˜Í¡/<‹/AržßÓ¦À‘i‘ð2-Z¾öÿD&² ÷ûá„̃ڑ9J§ƒ.5Çæ:ã1P¶Ï«Ø“,¸
-dX¿@ogèÑgIUšHiEÆ&¯Y’³¤¹E '
-à(k8 ¦ûg(_p[(¥›zÏ[#€öºdçÀ©mzìëjGî9;ÎúÔL -0Ò¥ôIÙº|ÀyISÚöÐtG”sÆ-;¹eÖJt;>€ONÝÚ÷óx¬ÚÚKõEÀóô¢6 Âgö—á@Ý’3Û_ ì.¢ÒFì‡ Ï û&¾Ü% à›Õ|31&^r7ÙI-‘k¦ËNþ(:Ø›9Ùp<Þ]¹³nxBð/$NX„¹ŽXä
-3m05ˆˆš7wc&fÅ,ûÂp†O¡ÜlMR²½Fö΂gŸ3 žc¬½xFwá›;?sçÀ`a}§K¶EDqÎ#nfø\lÆI¿ìõ*|®·ÐÙ$l:¼©‹tÿÔÀI‰Î¥ ¸;©¢säQ/æñX´úRõÓ‹Ú$8:­eW§¢ÓCEeãx±…ý°ñÙœv|V¨˜UÂgübfËqdÀÀâ ïÆ<Jž$~N±¢®Lh!üÎâu,væeÄh“Ø|/k†´Î% àY3=SÀë’oHb#:ûÄ¡¾¬úÙ»‚¢u}ÿ#¢™Å6tůM´Îk­·¡Ì#Äž‚Ìõ,:B›üÔB'“Î ñS:Ð ­u¡s”žÎè\›ñ°É£ç.êWJß—€Î‹å$:p'tºìô8QñÜÀ¸Kúá„ÎÊщ̨¹ëC'‚ÓÐ.ºg Ž²Þ—‹ÓÆ6‰b£8iÍ+‚…ô: g€ÐBòˆŠGŠ–ŒMËø^Òs)ŸEè\–ù‰G Dh¦k2©2È—šs@™á
-Í$)´áüí¨=JZ#ú‘ž°,ô…´.£Z*ÒU
-îÎ4 t³‰>褀¡F¡k€Œïôáÿ05Â)9Ž
-¾@èÍ>ü$K$Ó¡ƒgç‘Œlÿ¥Òuå­.‹d̨DƒŠ²«(Ô¸p¼æ¦ÊÎäëõh½Ò&A8鵹њNÇ¥pêù„(L·´Ìï¢æ<¤—ßå¶îÉocA™í®Ùvˆ×[ú'D͵A7¢ -EŽ6
-±c|ñÎiæõ)Û2-
-ï´R ¤:RòáÝÁÊ
-PP5‘,…ô}ÎáNµ2œ‡&d*™=#o±ÄÚ\¦t‚=>6 –áÊLÁ˜»(a\(¯–J¹ì¾¾yI=Ó(éІ)ƒºEÃA(‘IBaáøŃlx¬ÙHžM²!QÜâ÷S³ÕS@ ê˜2÷ÞÄ1åk×æVGPÞ)<î³¾Œ£àËò6h™3ùÓƒù¥³eîÀ«5ˆô¾!Õj2ÀWƒTì±ÈðU¼®(Å©1v^F®7=0JmL ñ‹ÎÊŽ0úÈà4ÁAØc÷19g8d¥x/L#ضŒJ´0°Ž8S° 5Œ ‚Mgž;fišB*…9ÞfÒ®kh9#D3˜€*’Yæ¿lÌ‹<¶¼-JMÌÎpé²c¿Ù%Pt¯ý
-"ogh„áùëi|ÒêìÂÿÛëÚ+Ýåo?pu"‰èGJÑ—ùH0sÖ¶«ÚPËði.Æ
--jV¥Ÿ|ˆ¸f¸0ïˆ5EfL+~ˆr¿˜x••Shù™g‡R6:¦(3vp â%;òù×AÖ4ÒË:k0Á£:Ò Îà¥ñ4IÔC­hTyGÐc&ìZ]‹)p$ºì-ØD…8SÔÇÛU7,9ýÇ –ÜØhî«Þ,öƒ°4\¸atÏ°4#Ê+š
-X®±žÌåXr¡û½¶>5’r¡Ï³'“~x†U/Xý9™`‡«º…|T´Úd9Û¬0 uY:
-‘£ Ç6R|Fð}GL…AáøbÒ-çCä*um@dÏ°¼¸?Þ¾õÓ<VƒùíòýWw[aÁ ÕÙZ”ö
-(íüøˆ¶D‹=D«Áv«hvÏçêª'ÃØ ûxBa˜²°ú<ÏT–ÌøûçY–ÒãO~þåH¬?ùò¿ûäÝï>ûúw_þÓ/>ÿÃÿýo.H–"¹œŒé‚èÿ¼ÏÍó7ÿNŸüïÞ)~›¯Þw ïyä¿ø”œ{ñ)Ü"Kƒ]‹m?_ùÉžŒk`]##o-)¹v¶ìa³‹PšRtÝñ‰ê¥ëªý U¿ã#öP¸ê}ä[Ÿ|õÕgúqMðã'ÿü‡ß?þò³¯ÿðùW¿ûÿ>ÿ+‡}µfZS¼–à7¿ÿÇÏ?ýäçóÓÿô_þÕ¿|þ›OÿÏÿø©.úZ+ñ“ëo¸ú=>þ䧿ÿý»Ç¿üŸŸ}õÙ_ýù—¿ûÃï>{·¾×Öïø“_~þÙºö7¿ûâ?ýö·_þ‡_éO¯Ìî½þó¯õçàßñÕçOŸ¹^æ¯ü æó©7{Ì?{üÛßþöó§?oîŸØoÿó/¿þÃg_>}þéÏ>ûÃgŸþügŸþâ³ÿùW·ô·ÿëó§ÆW\~à„Ö¸.ÿò÷_>¦œ+Áù j¢UûÕ'°¾V¨þHý)€úúæ¯Ï¬l—ï󙪊˜ Ü-P7¿À´ƒ >˜»2+™IJiƒ²ú1ç«÷UÌ2ÃAx!•Ù=’úΓÝcÙ"¼u&±“ã*Q“"É;NR ý|ŒÌ˜ä“ænïîŒ>;c(B®Ëª|+%,ŒUÔÛ!××æ|…Ã
-x‹TI5=…ßÆâ³á~ ™o¬ñµl ` Þ)ÝE=†ÚÕ—a šJæï…DâãÉ/_ïý|~ÏLƒµ½ }¤ð¢_ ·ŒÙ´QÎ ¨Xu= ùÓ4l6­—Áñ^Èh¹xxxcºÜXû"¸g55~Ÿcäøº=v<Õ¾Ó~ô«×{óá9ÐDýÃó³þÌÒÔ›‡zv¡oÑp ™77˜zt·3þ<ˆ¯‘~—+Àe†ù^?Âë9xýÝyÆ:ûZÚè`j/yÞºMî[0¿:CìB¨Û*S0˜SñY)†êå<£Ô×3k±^Û¸¼jìCøüO»>O¹>Oµ>O¹>W³r=ÏÍÓÅl¢°JƒÙ.“CÉï•ZL6Ôü“*‡±1Ž,­ÉFb2¯ŠèyQݯÈ2VÇÀsúNZˤ÷¥~òCBµ"ÿW%=‡Å^*]ÐsÇZ˜.ÆA«}Í<êøÚÙìn$Wy…ÐÊÈÃ?ʈ›å"æ×,Ç(
-J,È–ÃHŸ7 äfxw«7.YòÇ•O'*Ÿ>RT>}œ¨|úðØLÝ‹¡Èo !7—FÈœÐw)IJ†*S™CVŒ¥ÖîÒÈy´Šê`)ÚdðíÍÑÐÌ
-Pm/b¦²¾\CÝñºxG P#˜ ÍÝ\e QLL8Û'¥!
->\‰î~.Ìe–A˜Çvè$ÉLLcñÒ~§ž¢2 ûþÊ$k2Yi Å*«B ’ì´ö þ­9™õè¥#Óµgæ.¢¶bFg¬ÔRÀú±5îu%:³ÛîyH”g¹˜Ù«ueO¡Žíë9°™ºÕq_j¦.¸sÒS÷ ÛÍ—®`j‰X”ñHíP.b0p‡ÃþëÍîixoÌ‡à–¬™ÌBh:P¦In• Pr;ÄÚO•;ïÊ3¾ð-_™à—Š ói²[N  Ç𭬊j6ÙM"Ê‘æ·-‹Hܦl&¾I|išIÕF }òí_-¯Sv¾dˆ_ÏÍÔ½˜¬N‘úÑã¡šØ;`ŠêW(Ã,Q\7Ù½áÃNèáþ&*S“­¦=÷aŠ8›­:W‡Ä·ŠÏ p619Å@ªW1Çehª˜_
-ÐffA
-aÖ"Ÿíè2˜\™=s8 ÈÄ:˜±)C¦{I"¢äT
-¨îý¢ïZ]TÙ©BÛ(B>S·O^
-˽ƒ(ƒô¸£Jv”„æx»7
-×ñŒ˜Íg>D{Ô²?º–£Ø`ò"I_ݳG/gã>¤œX½j2,¡ˆê‹«­<>³¦¶™WRji$ÁœË–êYå\ÃR^´]º§µ$Û.ÁJF)úÝ ­DTé*+³óàˆwîŒÖŽ˜e²Ov;62®¬ò® »Y«V<ó áæ©ÕëC ¾¹-…ÔaZè~Š[*/ÆòðÊ3? <^p=µwäì*íÆÈ`(5ií*Ý:ÐÌÆ×µi´?Á
->í ’“ž6FöâƲ£ùNâÊ[õr "Ú–2âô£ Å,=>óFw¢òzÞðþ€Á6‘[Vâ÷Éô;Ô?0-™Õîd“i¡G îÊÂd‡´Žæ›çú‘üëߎü‹®*ÂÆ
-g%6ÚA@­Éè? S
-–®?öIOJ€:F(ÌN¿›×ú刎뾞ӔÑň¡`äO·JßY'/`>•Z³¸å¬º‰œtXàÑIõš"÷¶^¦H0r¥à
-¤WÄnEι(ÃÒ•z•­v9z»¯„ØZ,ªuMb|ŽH˜F;T9îukõ~n($©ñ¤q /¶Ïð« *.ÞÕgã>¤~ÓŠpHt…™ˆè÷i„`‚Bú‹Å였ÆL•ÆƒµoD¶™R_&1û‘¼_ù:ì^XÕ§É(kW7ZêÚ)…ýºæ=
-ƒQÈp©e"~gEJJÓÁm¬ƒz¬:M<Utµ"³¬p~L¢Î^ƒšäEäö,ɸ¾í+ñìh,ÌpåúβÄvF$õ Œ|‚õßf¹)I&à$$Ím hc»ºidí/$wŒè†m½vþ
-dHË o„ºMRMöyÍ9[{¼ž¸‹åÚDª/
-¹«£¼ \^½«Mƈ›’×Þef¶E°È8 ¯Q‹lÉy”y ‡žL d§-”s¡I OQT7v…Zë-P+ÕQâ²²I©¢r-ËÓ\&ó8EöæŽèâ•bŠ>-`É¡B <åÇF¾•â°D¦
-9-sΨÿî¹"`˜±)°cÌ‚ìàò}ÄÒˆçT8[õ;Q
-ÍÉ”ÊõŽ¥z¨/-Tš‹Íƒ²B£× .SÌ  üꨮ<dÝ?=È3¾¤fž¨­……ª421Àn@ª
-5è bZ ÿˆðÒîݢǴn¨aÍjÒ„!œë¿"”EC^?ó£rPî ¡„Š:­v1/ÆШÑf†©ÊWˆ3ï
-w£ôíÚs}¢yFÙæ«°Lì1_JÙl†ãŠ37#° mÀN*|SÕmZ®ùj‡ßÂrP,²°~ý{/*Ω•Ã
-4”ö5#؇섹‚HóÀt+þk–û€=
-îzª(\9ãxCðcŠ½ '*$#?!‹^±Zî›W¾ùc*F…NSÍ_„éH4éùò¬±A•8{-Ìvãmø€?â˜É,!»-Ž q6 éêð&‘]ݾ™ œ‹r÷xͽc5‹ýæáïÄûWÀÊØãÙ0A
-*}ð‚ ijN$ëk7fó ëcNÀ;t•ÌÚKL3§'ˆ¦}™Ù´è ¯°¸ÄKҾƓf¸xô»Ðû=c½C+Oö#©¦yIS­³'ÞX·w‡¬·%ýn€Ñ(ýÆÊü‘¬ïߎ¬§ÑôÉg%½Å}VL3ÀH›Gk‹ŽeìÇå8Ïí’^åzÈóq_N\„žtÉ5‚«ä¸\Ïò=¥Û3H¿‡lï•›Ÿ? ¶½ÿ¶=ô5èˆÕ’Üa2¿å¡Ä”©g†`içîíþÜír•çåˆóc“C5°þÃEãü‰qHÇ'ñ¾ÙÐñb`è®Y¬-O>»­¯Þ>(±a¨brY Ý¡˜ËMay.D&Ü"õÁ/Aøù9ÕÓeâc•UxŠ>ƒ>_Óú¾dH{Ô¸³‰ß`߉jn æŽå¹Kó~fè´ þÁg†
-Ë<ÆiÖ}¿‘T/
-.¿¼†Ë'[¹bw½çäÐsRˆ»úFôèë?“ðL¾çûãÏfàcg‰`ÕPw¾xP%ýãÕþ¶Éïª:céŒ=·và{À¬ŽVNE²Ó®ðÇñM}çÞf¯„Ý×@¢qºMÑc¿
-C}œž&[¾ã~Þ«wz¿ÞsïîCèzÃ÷ñkGñëq¯Ïch»ëæ nóóæá™Æ1î7iéò™í÷õ”`Æ|ºbúTø=Ž‘ý=Ç?‹ßf?íõ½ùÐ[Û̈3íj–oÖ¡Ü>ÎÍzÞ.ù%,Þ<<tÅë ¾Åè ŠoPqE¹÷qÔ*?‚èeƒèïNo^Ô±Þ ÀLRôPJþÉ^T5¨völê“UݧªDÀ$ËÆæˆ=§nŸ#Åj
-©ÞøÛ·W=]P×ì&úp¾•KÔº#l°|µ©´•ßÏt0CÕ¿.ißàši-M÷]£6Èq‘ņêi™ŒƒaÖbû`ma]”kõî¯I7ªì)W£˜5ȉѼØV£˜’ƒ^Wù‰žOljq ’vÖ¼˜U´I_—­KŸAñàÅ:¼ñ( Ä°¦PYQWH¹Ä¨u>xa;óê­mfîÄtº-#¼ÚšiÖâÒ^Ûé!µŠ‚›€!h@>D'°³FñÍ8÷¹Å¦0oôtÀ·pª¨O‘,œvöÂaV,c
-:Ý–%ýB! -¦ùÇašlŠqÚ^pÝ6Š“’uWYsÌN(ï8–$«‡QGy3g5%Èz»#ø·ÊÂOÁ&q1Å.j`jÖ49ÄnˆŠªõ5çvò[^i°Öh<¬KKe©8FzvÕ£Ö¡Rð–TÝ8¦‰KËš¿š¦ËR#ú—†Ë«·¶™¹QÐ鶬ο°ä³·cGBX‘”!Õ†l{“(Å
-Qy Ó©UHSË`<Ô%¾(¹êASü€„WföšFZÜz®‡UJ*I"5V×›ÕX®vkÛ<¥ â UjTvæ6Ó<YNÒtõº9 >2íäQÖ,(F¦IÎVÝ:o:5’»%’þdV\Øç6›W ÉtùßË·¶™¹‘Ð鮬êscÑP¸½rÑáh•«Ù’òð4FŠ‚µßd¶NËdÝ©Ö&Yè58²
-ÉÓ*ªyæKÃîÕ[ÛÌÜ…hhß4‰.Û¡ë6B5S#Ödçâ´Òw™…¡.uŸ¾mË[-ê Lêî¼V‡®™8ÃÔà&iiÓ4ä¥ÛŸÇsVSzIg}˜æÝšr³r)+Û3ÓÙÞÔüÖCv¬›[78vZÖ* ‹ÛöèÎC%Âs‘,¨käëÞ‡õz2/WQ¼/ »Wom3s'&¢ÓmI`êloÃNÃèŽr·ÅDL7>i.L™uÍs
-MÛô™oN¾T¢Dk‰n‹™zËæyr/™nîpRýæm¦íj+]e1æRŒ v«üÖØöIð¶¬r'Ÿ#tÉæ朳|n¨áÐfJªqtͪ‹¨u’Æk®‹d é×3y¹ˆ±ÔÝ«·¶™¹[Ñé¶\K¼ÌóÅòmæA%™
-U…±OÎì2f»ÂE!P½¯\¿¦<¤.»($4M¼¶dâYÄ0©‚üʬž äÂôãx)µ“è¥Vtÿ2H=Í—«bêÒË‘kƒN¹±ds´èÍda¼]£x¢ƒƒ·¢9â2c˜œÏšs_Íåå2†¨1\¼³ÍÊ}¨ŒNwM;èn‰'î>_ú…P̵? Þ$+Ò@”-¦0FÔb6ÝB唳æE`Æ­0»dE èNUI«ƽëˆß¬ðÙC†Ã5ÝèÖRwÎ÷h•¥Q93ë]‹\»9‹¦É佞¦øl„Ôá>â(ÿGQ±t„¡ð¢©Îy^¾pÐÉ¿ ÐÞ¼5çå.G§[žSE$ÑuŶ‹Å}“{ÚáÊÂ-lJî0ÕPÖ{QÚ!Å’k- ?úwP®{¤Ðâ^;P^­Í/uˆ¦PCëùpöZA¢
-Ýð,¡KH4KË©#óß“ØÛo!̪Ž! ôÉ5L*Û©*)
-ÖŸ¾•¡ÒVÖˆRÖzšÀ°í}1——KØŸYä:l/ÞÙfåNôG'‰ÎÚôÛ–›­Hp¥ß&öÀ#LLÛ†f
-ßRb¶8‰\r$"fm™Á„Ï1kÕàR%HÞ¸©XÌ:YÒ`®ÅSUwÔ »ÿÁh˜t¹9w¡Ï—ïIPn¦åTÑÏwùW»ŠÑžX‘aàD8»Jµ0¥=™7Šq4Õ" ³<Qý7¿8ÅÉ,¨Æ.47Kp¹ö-ÕøË—¶y¹§ÒYýFzŒ!~w=›Éü¿%M[¥`.Þ<µnÎvÄm@¤˜bºølæ‰ Lµ~A‡(v•›sí°!å¦ù¦«"€ÇúÀ¼Ò+ªÕGÂùŠN Qv2—¡»JBRöQ°Ì#þM¢}* QÐè»g<üÆÁüqyX‡ µZ‡sD:
-ÛDJSï®}«êŸJÕœ
-cìÖs´°€žèq´êŨV 3Ú¹½­…äÐéòQ”ßcˆ‰!å w¡r:1—n™!6¶³ ¥8À,].Ô(Øf c1[&Ó£ÌqUÔ
-xê悲üÉúÚÓq›á‹ÜÚÔãzq|Vt(Z:ùQ6TÈL ¦0]`P9¾ºäÓðb
-Ä.Àøï *{ÿ^¬ê½ž²:/ð¾Hšû‚«×ŠÄŠe)W•ºÓnµ-¹W¡%'óc‡É3¶ý
-7±v‰lêQìƒyåÅƼ içe°)òÍ,݉ކyžEß´fÝÄÔNÏ eÙ>¯ºJXw¯pÒ ]ÿΆ_0k$æ¬ïœ©¹éµ7}ˆÁ$µŠCR²|hK¨ÆDWWæÇq¿œñ¤´¯òœþ‹ ¸ S¹´ìT…¿0œ[-¢%íŽÜºÈ ÃÁš§ƒczìØ|ÑÈ,=BÁ‹*ãícîm“8¯ª®Œ¯-.ÒB´bŠ`¢¼µÎÅÓ+T!}êŠ(ä„VËšÇCZ°®ŠHTWY‰…åË´ÒR–³Ô£z­q¬XæD®VR”<£ó<•wâ0ÂT3^CÝÏ<þI}S4Ö$+Ö6¶|ýqUúG›ñìÊò[45b«³IÑÔ  rôÌ­ 8™­}¶‚•¨Ec_£ad¹x»0½Çˆ}¯It¼åL3]¾å¡t{mít# [ÃVpGò
-Òà©Wô#ûÑ¿ûqÜDTÌ2 *NwtªaTíÉ]$Ußÿ0OQ}]åfº×"ꊠ{­ÿòªý%øƒ•AjÀžë{J…d
-íÏ>7–Ôhãí3(øF¶¤?…jèíOþâ“Ÿ×OÿöËß¼ýìŸõê•~ÿéçÿô»/9ò ŠJ¨ÌkŽÖÿÃcÅàÛ|øËÿüÙÓÿóÙ?-Ññö}çW¿xû÷?ÿÙãx<®ý
-øðéºzýéB¨²þùÕ¿^0!¹åàw5wþw”ÓïɶUÐ+Iþ×ÿc ýëcyüÅãýoáñ7ø¦_>0¸‰Š™Ø)”¿“–¦†!Zw¢wyÏVÏžËàøjíuµÔ
-òXWŠï£] _*ìo<“zW–ý”M)¬öv1ñå–;ÈI<úšˆØ£ÈW즰ô£ˆŽLÙRòaìOŒÕ5)üº ŒéˆVqôáb´‘hú«.Š‰}o(;ºfW}¦²1M%E§f)LSm6•G€fž£:ûÂ5N/a"|Tn·÷?Bd=}”Èzú‘õôQ"ëÃ/îÓ£ˆïpWv7‡« ¼ÙéÓ×¹8Ö£Q©•@h\3(¼–uɬcŒ×.¶}Ã{Ì)¬
-å¶Æ‘ œç!ªv<À°Lýf FÊê ÄhGd@w@r#´ÙúÎ7t>‘!à;mm<llȈ¨’=ó°ìjh‰æ_àø %{cUáÉÌU¡h⤃õˆl¨‘‘[;u‘âÒÁÍä­wìÐB×&ö„*ÝÔ®µ²
-ݱê™H×ôdr¦”|a9S\G)~ÌÉËJÄäÍMºÐ{{”iZbcÍy §îQÀvF†Òš^ÞŽ¸|oŸßž×â^Ÿàá‚«ý;ëà`:œîûewÛþ<,‡t- )›#*‰JTÃóL+.Cvœ÷\vRv¶¬ÎëØꄾövÑn6&®DÜ+5‹£{ª†pY# ¬B¨Ï.Ê%ì!¨ ÈD~̌Ȁ„ÕS ¨2"Ò%Sb*/>µ”ÚFGôÛÃ#)ª~…è͆ñrwuŬZ‘`¤d:ŸÆðåëɼXI¨)%½@ß¼¸OaxS)šõºdœ&go>Ï$ª'2»“yLp„‘Á·E ô\¨"9¼ªrÖtÂ\âé:ášÂZ5:ÍR3 a¦]4ÔåNÙGl})3…B1EÈ@`Q+@xvhjºYþ&Á ´„09q~`ËE¤1ÁY °s §%25“.Ò= ¡7œiK1‰å`Qµp<ÁŒþ‹e>0Èך$ºâéÌç×Óyµ–Ù™¢^ˆ¯^ܧÇ@¼ï<÷'x‚mpÏüfbL~q=10îËþ´æˆA]#ÆrÊ&v{Ö@ Ñ\3:Ò«¥$· $n›]eˆ*®2h–!ÊÖ²;ÓÍ ’+C$»íIWC0·‚¯ëQ&0¼^*ÛÇú ¹ÑÕ ®‘s½ùZý+{¹RI±Ž½h9(¬Ñ⻫¥0zˆÓº i±NáØ»¿{çNZêìÈ͉S‚úõT^-¤.¼<_½¸O|$i:çRp°sռ€4£§J’ Ï )1#ù”®ËdÕ:HÅç
-ôQ
-ÒQiõ`ÜDŒñee*¹?·[8@[0!<¨úö£ô™'~; )f M*KÀ…¶4fJÜnT8,óPå>Esó—6pÄY½î¯«Ž›æIýñv&¯–q^z‹_~¯_ܦÇð»¹t·¶ë‘½àîW*’ e£{¼ÄoÖ‚˜îE—vJ(@¬cB1PÞ&õò’ î#ËˤÊM8Ìb‘×$± €^¨²µÉ¬Zï
-Kc„Ì
-©¾žçÁ‘Òá4kèA%‡X/îgH¯åGK–0]êÑ %"ð@ɬð_¶ÞÀ‘œ‹ˆ¤ªbw&‘]*31êh°*yí¨>ÌÌÄCnÁ HÏË÷gë9ëã- g›ÍùZ"^sA€½À²Œ/âfEõŠ‚YgÚ@5ƒôÓ†¦%’ÝF&ÅêKŽ¸ÍwXÊö9j¬ÝRð'»ÝÞMV–ºøå»Q#2G-S¯í–i›‹4¥@a ´œÒ/–-crsVÅ™éKÎB7RI$¦a »`]ÍÔì‚‚[ˆ¸Ô,ßÜ3QZúødăÑ3aÞJpj¨FŒõ½Æ™Q¦\â}8Û\Ë»—ˆ_²é2Ê3)dü¢Ö7ΆD•¨Æª+ZøòÙ g™"oT¯'ŒÓ$œˆDsÕX䂇”.-¤¾«³:@K ÈlcÛ<¸¼`´k$$øò[WTAgù7ò*ŵ˜2QÀ{;«or`š «y’Õ lªËàWŠ.¨,½Áö‡råº2T~†ÛH|¿1Öúµ²
-Í¡¤5FÒ20'ÈŒŒóPä«ÓOPÈç$wTâEø· ¸šä»rSG4l,ññ£àŽ[í»Z%(ÔåžßiybalBlšõ*Gõú|ªSÊVHÐüqb´`Šdc­«™¶­3?6DIÉ\¬4d
- ÅÊÁÞ•¼œ~-ë¶dš¥´¨4ÅwÚ&ßk‡7 ¥CÍBÔå¤Äqˆ˜¨8tYyà'4ƒ/· 'E¦Ÿ±GÐŽ†HƒöÇHŒIBy$™*Ü’e*m%´ìÌÈôŸ‹Ñ[+¯sB¸†ŠðRMΓ#³ª‘ùjBlÕ“8.Lo­bî}zÿVT”ô‰bf­ªÊÞ ÆÌÊk†S›È@˜OÒ^Ôœ*ºV¬x)0LH‡(µ20$Ÿ3Ñ ‹þrWA*|WJ°]#ŒQsr‡ì:Ô|MƇ1æ©xµŒ{£±&F˜Å#fÐõи=ŸŠ¤YÐ`Fýx»äsæ4™º†3H6É];<éˆ:ƒe8Q¬Åºáe: ^pð%¸p*æ·Ô5(eDFT“8™%ʳ¶ÔäU 5Vg'ñ‹ Ï Ét¶ol‚‹£2p]™¤ E{SÙÙ‚]¤ï‡?[Î0`CD™/ i"÷›Õ8#ƒ:f
-1b‘^¨îyN³ôJ1˜w¨§ø : æîÉi,ÎÝõ³9íŒu‚8‡^Wån&õá›ðIbŒ$“
-»ª5ª§æÉÖ¸–õh’vjv;ÐPÍehMÅKÉ3!= %—7 ”¼ªà
-šªú¢5DÀ>c”ÐD;¼wÃ6ç˜É1Ö“±t}6I HÜ»d¥•bUXJ³†YŒ]'€Z#ä©$ÌÓ×ô¹¥ðiŒÁ^
-ÆJ»w)V-Äkª‚]…¤ç£j\ÍdN3®-nVåé>n½1ä>¦ µZªQÍY+ÝÕE„²·îŸopm/,©>k>nöŸ`ì&Y<»$qÃHóJN’€fïÌÏk8žÒÈqb³¤b¼x—5/š[pOšîPÈ ›x ]ÕÈóx3OwqeAváI©%!À/2±H1?‹óÓ£ûL1c¯µþŒÇãý">µPáó1Ä íÞåg¥×¿t÷g V½inÕ#ep_8³6ݳ4<n^å}3ô-0èE5ã…ÕãLó| ÕJTË.ÃHM×EÚ¡õ›ºµêm†àû'ðÁS'§aËì:蚯O(ÎdÍŠ$.™5V•4Àc‹áúEž¾;TsIéš:mi [7Ú4ì’a\¹Íê9V5=dd–‰û3fí„—ÿf„—g¿[ïå¢ñÖܯÕš…­_6“ð‘Ì•ð;ÂoiWŒz}‹=bößúÌ¢“$›÷’wAzÏé{ø«2ýItÅ~Ô}‹Ë÷ù¾òeÚyaæ+½Ü„/s]ÝóL™×ø¼Bgÿft~›ýl~{d~{\þö;÷¯ÅŽ¸6(¢“d¤f9¾8AŠa²á
-9'Â4–Tùn(f²æ}Z‘VA­ë¸HÌï .“¹ë4‚¸³}lMeæ©S6nŽP¦ú$V/²‘'ò1‘íþtÕT«mÆ4ÍçÊ€®Ê¦:ædXo–c¤ïOí¾È›g¦×'ÿ† 󃬪ïÑ.XU£È|¶þù嵘úä‡+¦¾þ3ÉhÏl¯Î†ü”¯¯˜²YS
-ÜB0¤–†¼~µH6JîÒz±eyÒ(»"®±à'w
-/êc\AºQåUû;Ö_ƒ•™"·å…CF
-#·*7û o{^ý+ŠÖoC…õ#D^Dþî¼Ô¯g*Ù×üBLgY^ð6žÀH´ õ
-C(pÆ @x#ø@1BàümÙgž†R)íâ²?œžøé#áéãáé[/ÂÓ·^„˸záÛ9ÏZˆÙÆàÔnæhâHg=d[Z²‘jcª érº82¬(˜©­º¦U{©>ì¥È”úŽclr„—_'nâl°9'F˜ô͸¬4¢Ö‹Í’+9Fª#ôã7²eÊ5™˜2•ÙYg9ÆH^E‰¦‹Øz O þ$Õ_ãûÝiñ¯/¤À¿­<{ú(yöôqòìé[ȳ§½¨MÆÇR˜íû€B«À&ïÝ µèF1›´ìIhD¼‡Úô±–‹Ð?á­ i·¬kRÔ~ØÔ12tEÙ¶PÕw%TVrÏÅá"€YHÜ™äg‘$'˜-1B5‚Ú"_`×AcÑ…:O¤Ø­‹: é³. ÖÔň[òcÕ¶h€·#ä÷$÷bÜ9íµ6M.µ’U8/‡sOd0•Ú%›Î‘¡b¼]Y[¦ÇV›–½ÿóî5b„Lͪš(²Ià¢Ü‹V—¬ÑüþÐ5R\’Å-0ÖüíØ1œ¨`3æk˜\BR±ù°÷®^Ô&ãNli§Û"Ãò •¹ .ö_1Ûe­ºZb'„2„ò™åÌ!„kì: ÌÕÄ’®vB:ý_Q²A ÔŒdqD”kd¦Äï,¹ZëŒöLnVKBü2)d„ÎŵÀ¿àÚÀH’£îÎüj‚³GCì+†& j9ÁØ2V]&M\¬ùñz&¯Öp\\òëxf.îÊvºi^òȱ:¤F–.R‡¦”Q”€¯1ueØ™ÞDA€‘0÷鳪ÕDb€©£Â\öñM$uï6²d¸žS-í‰c&X+J#^5+r•v$3IDiز+‚dYÃDÏ<#]1g ¶Ç›¹\Š¥L·¹«µÉ¸‹Ùé¶ìÒþ…©Ð@)‹ ~5)ì€3?™F:le0Ô]®}Š¤’@Fa؈ â<|à)A¶ ÆL/ï°”tk“$qسc|‚iUg¾)+Lz¤U^ÖØb2
-äq;=©hãæ<ý û2¤w+)8 ªÌ\·NI’úPŠ7óx¹„j™ù°zõ¢6wâ+;ݶe“ÛG
-I ®'órÕní
-‚eâW½Ëi1eCku›OX yZ“µáÓM f¹M¶:ŒýL²uèªe ^ª­Ó’Ok˜by`½zQ›Œÿ¿½oۑ亮ü‚ú‡z!ày(úÜ/3OR[d´`Ccò‚@7{8’y1H a0ÿ>±ÖÚûDDVV“,%G"»°vgFFœ³ÎŽ}]û6Œa§dBÖ톥XBŠÕlWóˆU¾ÐÄ`cÚÖM†üùp
-‚‹6š"뮫€[®[9QŠ&D4H3N-…hæ¬éd6±ê{ƒQ†™œþJ­)âŠ.úgåp«ëd:ñ4z›Í`ôŒV…`º\3"rIÎ^W…ćÊ*SnÝ(#’4e’*¦~U*îrˆÍ:ÎóÇ­Í;ýû¾ý¹÷÷æçç´¥¸¥ØÑ´†ui0ç;»-ˆE2ù'YF0¾è[÷æJ²%SfV Ô1Òóö9¬0¡eÓÛ±yÐŒü4Žª R,1eIcƒ¢¤˜É+„Ovâó ØA˳ïâ¸Sqÿu5à¬iðᨡÆG±üm1?/Úø@DwK²˜Z˜RJ–Öhªv
-_fä¯ú° UÉ# í
-òXÃU€]ž¥·È~NåL³§ï(Ž5Ê¥!¶µ[Ë<¡Ké¯(ºŒLþ·á;þ ê%]z-j•9¦ D"€C}WÙcKP[öF3 •jÙÇšbM®Ø3kïæÜà
-V¬Ä#‚ N­tg¬M@™³ÅûG[z’1 Ë0å2S–Â\¶¦·ÙvõÂa䛦C6J¦ÒeègK6ux©¶Â‚Û3'öí [F'¥nZb¯èÑK¨ª°A¿ÊMªâB‘§j5i4o´¢Ò"N,z ¯ÏÛÆJC\¨ÊÛÚ”ð VKÒk²ÃTWè>•êÇIŸÚLÃr8ƒ—[p+Š2X U‡-ŸéáU—ž5bì¾™½lu°œÁ˜ÑßÍYE‘hI–ÅŒ^33mûÊ"Á‰²8 ëmh¥K¶ÌYS¢, y .j2eF^q¦7a"¦Éʵ\ˆ
-Ãìöˆß34Gž3k›é>óT»ê®©ÑSõ`O›.#1Œ6¦zðbç•ø>®öî/^;¢+dDÙð¢Ëâ‘Ћ6žkt+ Qo’ç"²›%íà}‘«ðÕ‹¸äg”e½ '¢hJŠ>–èAX¡V)sÔ‡V8Ì •¼€BÎqPc®4^¦WäÛH¢C¤’´a’>Ö÷\cW¥ª»ÍÚ±ŒU¯3uX©^Þ-ƒ`ªƒï•²ÙÕÞ4)šé±yªžÊ QFRÈÉ=·éFKÐ+ë¼–7bçÁ-·"µ“§¦/rùhö~¶ðqµ i« çè”bE4Èɪk7eGF„
-yQÖ'2ñ~åÙ„ŽÑÌ bŠœvbµÛßÆ°]Ŭ’¤ú€Oa<W“œÛ@îšÐتän ¹ Õ‘4ê¤ó
-^O¾€aì@P'Nó"ñ~qjæöTŸDw„ðjØŠ3®¼¯Pž›8XÃkº%YñÒ”¬AÃ,ê¢ÓÅzX¶ß3/Ûä2` µkIÇlk§"ÇÝ®h£¸µ¼”¬ÓIJAbSß‹Í—e‹ê6H¸f»Mc@ëߣY\b­Çp›8]qÀÞé¤ ÁU?„à¢Quü‰T Ï"ybÚ‹I@jh¯ðV»}Öf:yZ2»±æ•žd¢’l(êlöV?~ìg3Vr_‚i­  ”Õl²¢Ýã!i×®ž®o9$KwnÁà 
-òYð"Ã^¸ÏÚ„7òÂkõãµRÀÇO¤Vëol£ e7Ÿ›(™ÿO’©Ý„—­~üÞú{ê³þ7ïrÅïÎæwãºö›+osøÞá~ ¤U|ÚMƒ=EZE»³ oU'oÕ ß}ß{ßyßwß’”ª‘Ô׊c“%Ô\FJ*—RAXd&ã{Ãzx‘
-bpª²*#( “‡Þk¨s‰^EYL¯{qMfûsæ¤ZWªòüì,K#+Jê~µDWÕ°’ïR¥^ ÂÀ/r†ÉÚ¬BšÃBjÖ£q‰L…aõÏö¡bÖÊ÷{>
-ÐJXW͈dÓÈ»›Åèh zçnµúC
-t“ÙXjJðÒ«µ—jNë?m–ÓAÀœÂQÀVÈWW÷ûc¤ú6ôK¯z÷ÁO~Q÷³Ï?~ýÑŸÞ~ùð ¿úö“ßNÉ]4¥%õ•î±ŸÛâv° T_ÿÛÝßüÿý
-öõSï¥_ÿòõ?ÿâïîÿëýú装~·}xû—“Uð“í¿_}â†ú»gSC]˜¿ýÏ6Ñ×÷åþ—÷¿ùm¸ÿ¿ö«»‡í"jj"4Bsð1k€…S¢šëäÞ6HÔHœ% $[ƒÂ5úô‚ÏlT~sªô
-ÓDÙªøѺ›’)$E´öÏ¥0ÐÀSW£ˆCN¿ªÏåq¸9]͹­õõ)†©ë‹²„¡CDJv&—âsÿŠ%ªjY¸q¥ÀÈÞ 6–ÄŸb;%KV>0œ.•‡YìûOºhûfŠˆ¼µÃÇâ2­‹í¢ÃoîÂukëbûí?zÌWß°¾lÿrwm#®n×嶾º»¾ý@òL¯î®‚î4Ëã]¸ôÇÇá
-–.øª¾{¸ìv/°ûî°ûùiQpåV/€c³?= ÷ô(
-šÿyågÞ<Eß<Eß<{Eß<Eßܽ{I®-Ü>\Xe¿3„,”£h³z4@&öP$ÒØNSB†Cx
-‡n¢—J:cÄÝ)ùñbvÃèüP:€ÏÊ9=.ÜCÓŒÎqËà³ù?2VƒDZ³€ANâUþâ@‘T`H„Q„'EQÅq‘S±…Í«eðc%Mdi#òjãà 7„tšIq6Œ¶a­‡ L-NùtðÈCú´/ååˆþ>Vz®.|ól]øæÙºðͳuá7-‡/Û>7Cy¸TÓa1¥Âv:'
-<Tì:AscèÛRÄø)ï"ÊS‰s(êÌ9J¨ý Dã?3qv1ÄÄÿ^ß  ˜¢í€È˜^N =Ùa\$'a*„ãñ¼ok\ŸP略»²$Wî´ÀÕF³B(4Tn.ÏM³“MÒJ²ªœ4¸¾JӱȅÃ8åk¨˜§ÍC‘Ǿ>›ò…‹CRæÁ“E‡ôUô´uÚœ˜éJæ…ázŽL féǃ¿§ø¤9ìA3nª‘N»š«jJÅÕÙ3@ÿÜ Ç<5µ|ðbº³QTʵ2NNI)É·]“»ÐMØϯ;hç³MrÀrM¼—ªîñrø²™ªû.D±'s2fu{@ا]8å"MEH*fDŒ /ÊÕ¥4›s 9¼¢mØ—€Gu(Ãú&Gc@°rEr:¨Ýæßž„š-r¥R/¿ú¾ë¸+Kreáö®b[ÊA]Ö¬Ö‡Ùx$n¤¨ÓŽÈôv»Øgx÷…04ºK… 4ñrŽMã½ø¤Y,4¤º'ÃD5ØŠ“3‘¢mM¢–­í G9¦”Cé#'Qvi0Làü¿Ìihž£(;¬GÎ3^Á#ˆ9Ö9’Bïñ‰¹<žª*xÑVO,‡/Ûs¹KWB·‚hk äÜ7\^¹vØM,Œ€õ”8äª4ÔŒf¢ àÜUVó §Yv>x`v`Ê,åW»Ì6Ž5€ ø©i†9Öí$ R{ÒH´ARBFÐÈØt~¹šm0î(3º¦¬šAÒ
-+Š))¢CQæ®°"Žå­OiY#êD%1ör‚kQl;Øk×ðÙÔÅšÂtä­òðL_WÔÑ£p§g;fëðDáláШà’I"bHI”Ç•T<‰woÎÒ
-ÓÃu§
-YÝ©OY³ÎÙeN\wºáÓ†Ò3‡öâÖ––ýåAÿ è%váºÍ¢q°"xØ|&rÑ]÷t'pÝæv#À¥H³ÒÙàºDä„ ÔcŒŽu@„ú”­¼6üf%Ãó=m¯íµ¦W)Ï $"1`¶vÔ
-v¡‡»x
-WV~aÏ:¿¹ÇèH/œŠ™4K× ^eiÞòãÕ½Ü]V>¿`ýújø¢Ýˆ8õÛîxÇz¶_—B3Q,ÒJ‚ËnÍOLŽÀi„]ä¨åf 5Û…D¬ÇM¨Šì² 0EtcÐÃrE¾MšP-øK©{_)Nh°"¡Oë\9Í‹ù~Üc©°CjKAÑm¬&VFÍØH¦qËShBô¥3™ñ3†Ø†8Ü»RÇ:ŽpŽºÚÒž·6ˉ|Aú“ËaËv#ÞÕÓ…Â#uÔ†0<ŒªrAݦöjˆ$=ú¸ßÑš‡j3z=!—9 nS¾a}%ÚÝ>…qι.ÝÌÊ^ÂŒ¼¿X/"êlxÞDÁq«§7'ðA¯³›QF7),o}Øx3Õ´&ÜѯàlåƅkÓwõ@ÃÏiv™wÑ(ç9œÙ
-Ê÷¢µœ)Þ_YÞËý%'Ö ÜŸ\[¶ñ¶žükÆ|îhPsè ÷Þ4:KVôjp6(šmb<1îe; AfY1
-¨ÚeŒ µpãªøã5í/všñ¤y`nîµvƒ{×Û*wÏî°Ëœ„m`ÏZµÒÎyM_ÝËíe;Ò ÚŸ\[¶[°¾ž®Ê®V‡úd^!z¦Y²ÑMÔ= 7õÞ;e·˜ <;õaæ9`Ũ“Þd†öD» Xº½ˆ¬LEvbb.üERjëC|O %¨*<uÏÌ ¬Yϸ¶µÄ2Dö&òÐöïc&{  ž04Pg¼XŸÃ-r{Ó]JÙÐÞUvÊã$ˆ;¡¶Ò•¾Ü^ñ;½ ý©å°eû³9cO®ÁÁZÇXSˆBiæ‡ÚøNÎfà “O§DÎA`âMniû0£c¨à.×hÎAL3cM+Ïj™å2i¾dŠ` C°)ÉV÷–L€|s8Ažñ˜¼‹Š¦U€<%a N“dÒä`HEÍp–¯ª<Äd&³Ÿ½Û)¦)jP¬©‡± ηÃ,dÉu„+”€ÁÖõ¼Ÿh•›/ÊüËÁE»Íìé²Ó:b r°ÎhÏšÅ3b˜mïw¯©à[$«Çp”Gt³ã¶IëcÃy
-Àõ*õ>Õït‘ˆ”b™´hÎçÑ|2$Î[±â úÂùÌE8æ¹F‹ –®ÂŒ2 ²f⟠ÎÑóIW•AtàœHÁ} "Kœsüu¹q¿1­Q¾­<:÷6ùKàÑâ^îmª¡¾@ýéå°e» Eíé¥A¢#«£}[Nq´ìpä ¢Vê*V}*x˜_ž‚#¥==Pædº9jÄ:Çj²xì‰
-êRº•±˜ÐQŸ›ŠÐ_JS¹ µ¼ïþ~e¨ÊHW FEétMé‘BµÓ1²ZÆZ­–(þ¨Ö lÊ,kP”Ýø˜‰n/ ðÚé~¢1fE1œ„®U.g«Å÷rsÉ›û‚õ'—Öí6ü¶§ëö±×ÊQSóÇš»Ÿ% ž7‘’ª±·¹¹^/³I¹™WŒW pc™…Lm‡›A¶(b p5ån#š‰uáÚ6Äz¥ÝÖÜd£“ó‘ѺŽ
-=Ö8ç¤AÓ51Šñœ ‰aˆõV
-f\-ÑÚñ"Ôaõæ%b Ø6õî ëEX倱ŽÜÜúb¼s9lÙnC{ú)–‰8ÖQ*¥0ZYÕIÈfᯰ>hÙ6׫žÊý›rGUøӋ߃É¡Y~…Ñc\æJ
-ƒòL` ,ßAY!/ƪ´ÌÎT
-L“¹ÜQöèã
-GXœ]Šq„¥™«À-Õ²j‘Cª‚qÉ¡K1NöM!ĘŠ­Ã¦y‡ª(‡˜Øh§j€I8ô &úªýžÊèDØ°Ô•¨ý(Ím Õ^²yšØlTz1NIA Ê*8ì˜  †…§¬tŽ#!xzüÙX±Õ³‚ k'à%N‡ø±A±ÇË—4!sòÝóum¼¡ØÚ4Ø,‚VbÓòáÃúðx`òŠªh_U•ßÑn¤jb3ŒÈÚc¶z¸Ô—M:jcMƃ(€ÞŒ‹àdA?ßÚÝò2£É»ø²d4F@ÙµxC"EÓ±8èÞ•¢q6€|Ž{©Z‘SÁl „Û’Œ`¾²,åYâY€òW&
-/ÁtþñgôÂ&b"ìÊ¡€g‹H A#2êîÑÄ”«r$»nO,¢‰s1£®ˆ±¶n/–䉻ƺ³Î40)´¸9Þ™QlÀ¢Ú0,áÿÇöD#‡¤áÈÚ"˜S¥?S.OÇ\¥QÛ{¤™FŸÖãµ³FÂ÷xyoD¾ËŠó!1Ë!IݘçGлR³'ß2?“lˆ‹zxPƒX²Ñ¹òŒqrÉæ ˜ß,NÇJú‚o2BÙ£§q`:ù®`(ÊŒamº]±Xßÿ¦õIžaSá
-”°(%»$DãµPÑH–…/BICMïæ4§E>˜f²tþ0Q[^E§Æ
-jV¶S@ó1j4ÍìÚ)ððU³ìœŽÇ»²ç¥FÇ
-‹Yâ(r·«ukj?íÕHÎEÑPT}@ýl`y±ªq3ÁFtóí\kq®oŒ‡‚Õ1ΙŽ¦?dî²6KñVþœ»¬Ö3¼DQKÇÀ@èŽÇ¬‚±/ÓÝYŸâ 2~WŽúgaP4’•ÌDÖa>^“ÛðqSßÁ¹£!†œ÷gwöÞ²‹k-fWdœV•õ„v±ÖŒã|c¼ç¸ÖhZé§Ä
-¸àÙØ›éb‚4ÿ]æ黈ôøÊ’0´“-o «Ìzü•i¼Ïû]ðß×m® œžåJÿ¼ÇSüÏL(ãÐü8øŸK Ãý¯.ÙŸrw Îï Íï Ìï Ëï ʯÞÍ MfèëTØ´+sc›¦ß.Dme›æ^2*¡”lL{Çg¨]dñËÞ?‡GU|EjnΣlËÍ(.„‰;¦E‚ÔňԋSXNÚD«¦1‹õ¹õ~±ÇO
-Nm².3 Í'agî¤~¦UŽ;9û 1RgÂÙ¼Ð苶²Umÿ ' Fò?ô6ëIÔö’Ž%„×ÅiÝŠk!r‹Ôu˜§_t‘Å= ]ŸÛoþ@qùxþw2ã ¢àg+
-…è îÙ²Fk'[4
-ˆ-0ñ¤Éà *yÙ
-…Y-2°9–´b
-,pL©‰<àð“—· hÝeeñ$&Ù¯EZò‹ŸLu¼5\,ãýŸòiÒß+‹a¢•4?H2?ô¯2êÁtè"Eƒ¸:9jZØAäwÿêî(,6¤m]+ÅË›—à•™¿¹?ÓmeÖe–äðk.ÛoÊ/´nüâá^½sl™þåîêš_Ù˜tåž®ló0œ!óêî:°®Âïñª_‡ó%æ/1sAîûÝ8Æ^€õ¬§€õó#@¦’!™ȦFfI49åi.š¨aoÕ¾ôiÊU×+im€öôgýt'¸zsF*ç—Ÿ$ˆ8?Á›çnÓ›çnÓ›çoÓ›gnÓÅÚ<^‰ËÕ:¯)3§ª•½eœJÑ´k±ì”¢”V¬}¿^²˜Ã,Á$¹Y™êŒ%ú‡êŠÒkˆàPdûSõ¸ÃrÔHü Ηµþµ)®nÝ7õÅj4AÄH`ñ)QϪ·æ3×ÑhN'0/&Ãå iÇJ>€¾ˆ¢‘ŒÃ‚KH‘ÿêå±øô¬6.ÖÜtËŸž«8ß<Oq¾yžâ|ó,Åùæ+àëô|f¹ýBI_×Cœœ¦åñ©_F—2iÖE7ûwH´H©!,M˜&yœ¾Zf5üv»{Oä1êN@qV;!¹q>  ÛzdÕâ1m¾I$%<ßÊ7BÍpäawŠkHbÕ~”ÞfR*š½-7Øi[É£µ)»¬OEk
-‰‡ND© ÖBÊÃÑY£”xuö°Éörà粺zigG¿ZkVzéHÀž9Zˆ$gnq]…´Cc‰ll…λ`;ÆfK¢CaH.tñfŽN¨Ù
-•;_^üQ3C•¡H¦çX,¯tfÁ›ÏÒ¥6dt]f×…\–g@<yß±ž`
->… ѹ b<†Ø­ØÞöâð„e«31Kr¼3yZqÅK2sª­
-‚‡5
-RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æ䨢pt/*®INGP”JÒÕ6Ãc}5ç:Í@)f¿–ªc$NÑG‹aÈwÍi„_Ž|·³Ü8k‡"6L!hX5e!ßR„C3K¬—Œ}9LÌkˆ9¤[6¨¦fMmÛeW´Uög§Ñ©ÉšáXÔg¢\LÔ×Q`Ó…¢îÁífo8Ž^ÆWƒ‘­"¹ù«§&g?»ÍLέ¸hy×y5¯ÚÃfžd1=p^µ[±EÝÕ#âðÖŸ‚Y»uƵ‚f|¯ÈüÑüF§Ñ1>ÅÐz€øÄðt{aG¯N ÅÌè<öH([xùP]”¢ãX²/°Û‹.L«nÙš}3—õ9Mp^Š?ƒOtÛ-nÓèŸ9ê‹…ëªðÈÙ+ÆW€9Zëev+úÞï9ywãi: ö~žûÌb,­º¦Bmº‘‘­I§xÊÄt#c‘7–fu[´5Í©˜ê`Á}ôÏyýfV3=üªÙDûj³N’fÒ+T¤ßi€úç¬8²d/Ì=,î­HÀ¬ãGVc(‹§BJ‘
-Äø…
+Ù»þMˆØ»Ï>1ѧjJô¾‚æ^žWÏ«ßÉaòúë-5þ­ø¼¶”&!E7}»>o5Ò:õ5ìëÈ¿Ô—,õ‘¶LLLŒ}BbmÕÛøk(ôS¡/TÍMÛ¶Zx£ôo×
+»Ô÷AɼMr_çvòâþ=õòÙ뾑cqµñþõSqþèÿ½lcZ-Úå-'ú`îùDÍ<ígÚ¡oÿ¾½OZ¾Œ}šŸ—Ì;ªÀÙ¥>ç]hC6&UÿÜ……˜sÑ¥ªýuÇK&?Ñú‡J1I—-;þz½aè[ˆ¡Ÿ‡¬»¼†>J^@ß×L>T‰tbé}deIhÑ?O±ïb~?Çþ[üUÜô<Ò¬dQ«‹4Uמ— ‡„{/ï÷¯¥ïÇÐ?Šc2}žªç©Ny’Õ/Eöiÿf½"“
+µ/¿ß×Ò§Àäú<dùýàe…xQª}ß ašd«ðúKý?Šì Ðû•ú¬ôôõ³ïôÚ7ÈY¡_Æ°Õ{Û©HÛÔÙ‹üX’µ)¤’ôPTc4?çôÕ¨#hÔŒ^åý>™I~©¯¯Í–[ /Á”„Õôãäs÷_­¡êYï[R7F™¼Î [èÃ4a•¹3"ú¾B‘GÕ÷p›˜'b¿xöûÎê?ûšþq'¥÷/tºˆÅMÉÒýH÷­ì>U—‰Ý÷ÅêÇçä_ô·¤ó2MA"1ç7ú ÏËy M ›¤ŒUëçÒŪ‡¤óü¬<"Zaî¢v6SäÛõsTo©Ú:oKʦ0U='à}f§ÒEì—¹ï¤V*wQú%1q´}p*ºzZÒó“ûò¢‹Ü7« ܺ7ñI®Ÿ>»R‚œ lfú1HÑ5ë¢óÉåAÿÂY>k?9{ùT5¶¨›­9§ ó¥ŒèËÑrÉŨ'¶ó„~ó6Ž¤¦N²b“·ÐÙ
+̈eçšt»»É79D̆弴–ô`”>Bë"÷ Iþ†Óå¯M¿r*Îa¥kÄ©ÚÇèCoÅGy@ GÏG®Ìa¹_ï•™¤<ÙAJÓl%C±u@ë¾ë›°bÁzÇõ~‹×}RKµµHõ¹Ë <I~î[-7e´ñFa©]–¨³½ý¢wñUÿçïýŸéäW¿>ùÇÿ 1êû¹,µ…tßáÙûèì}pö>6{š}Ì^fïã²÷aÙû¨ì}Pö>&2u‚U‰-ï½h“U@Ô³ÑÅœ>r¥Ò½ûRÉ9åAcäÕ>H"ÔƒçäJÌ"“¿9F•+»¸¬—89í¥ŸN£úìôž|Ö«¶æI;ˆAÞú½°Q¤~ÀTŠìÂFáåP•TMA;qAöné{¶Lºò.{„©m“Qôªˆ‚ôcÑc)H”»w:´¾)ŠJhýTuI†ÖÉ]
+JöXæõÖºÎ] ñ¾é.ä&o@2–.¿’ÌþÒ´VŠ:¹Ÿé]#ݳUA«‰¡z!F:€/T ÅW!³4Íý’ޖݤ;\^×úZb’˜l€^Qä‹ÜYwÚ‰%:]£»jðRÉ}4^ÛÖX´ƒÉ5ý ʸ;×s¥éÖŒ¹ÿõBå·~ÚZSazÔ§jP½Ë† Ï"<^/1¨Ò<y¿Òô´O×U<Õ”û'ÀÎix¿s…\ðå£èu˜BÀ–VE™ZvÞ¯D—£j[N´f&çxCvŵ¨[7¸âU(MU{e¡ÒɪA;è=Úö^uëöëm‚T['í o}]Á\{[ÑÍâóI8<)<Þ©¾ú¿õ˜4%nŠE—€N~¬~Y4¹c:±ËÄGôýTµa%-ï_u)ã:,‹•õÞêD‚ö§ «Lú>«Y/U-¿¼ô›Ùž ÄÎu0ÙœjBe2=8êÞ;°¦]õ…¶=^ ´è±¬­¯vÑŸòN.¿¾ÖY.¿¾ÖX«~cT¶³2©.,|ÐgÑ«Ÿ¾kÅÎr©â»Æ~ÔµSº%±1œ w@;^Š>¶2©^MwKHtas—BÖ…ímïsbé
+ÉüQ*#HtëƒáO^tÙä¡4ÑE(Èj
+b°yñ>~(d¶09çõNå:bN)XmDª"YÍÎ\$ÁMV±‹ “KÆ7«>ú‘P­1Ø·it$²
+P¾TSWF¥Û.Wta*ŠÑ¢*Ã}°7[µBQi%zˆ0‘äB須ŃÉʼní‚D#µ‘QnJJœ¦¢æ¤0e]pÒloÙ>îœô§ú¦*~i}vÁLŵPc²×¯*ïò‰¼Ö…Á(B†‹^MS‹ï[Ê9±01&Š¨zw'B‚
+®_Qòbµ™1’ŠtÅ¿T²«A‡`Ô.qö¯¨ö3çD
+ëMû¶Ó)ô“@,^>?Ùt]ß=³°k®ØuACÌ‚B,Aºð¦6tá ãêr0®¢¶¬¶:lðNìŸB‰mRA4Ø2ö– œ#°]OÅk–@dÉ»°ÈG¬o3ÚòÁú)T:m¸X¼š”œhdbý4ô“ÓÀRŠìÏ)•( !5«’†˜Kµ'éÌÈ„™!øÞU”³OvÕ4©«69x]T`NÈÚHȺ¿‰šrjìb´Š
+D®pÐ^*Ù{Q
+«Yç
+)Ó"±Tž–¦ÊÞêïñ…ªà.ye©}õ¡ dú ^v"kBì"‹vá¢N¢³¤¡Ua#«ÞÇÅPˆU5•E )Ú6ãbèk•Ø5h
+;¤†úfnmþ¾ìCR#…Çõßj•Ío¤ø b˜‚Ú$]Êa* ØIÈ]Qu©O¬a’«‰ïf"ÒOÀ‰c ±k“ûŽÐnIG‚È€[¡/b›‚U¡/“¼ÒØ:/ãÄúåIqs¸îœÈž¾ Ÿ—­á'‘ úæ¯Pc‰œ˜svr¿Ë<¶§ˆ<t5GlÙ\Øz×i¬uà̸‰­ª¾È†”ãˆá;3Udzbá4x_dU¶¨Ã¤Ö—³ðNôapï® øI‰Õ‰rWh÷zíw\îÌ¢“HðDœxw±ÿ:ŽÊ-mf*0î°NÌrš=Ë«P°Ðúñk5Úû]€Wïçd
+ú}4/Ê1Ó‚7=:O,Ýt2³!v}K‰]Gí¼‘ nÖæ  wn6ñ@drò¿T²â½ã•‘ÅÕIdµ±4%†(¡£‡©%myH“jæðjY8eµ·Éî&1UŸ²ÚÛ÷¯Ê¨¤‰”Ë–µÙ— û€•á¬äiªÞÈ]óÐ_#˹PÉÂÎ n,wEלÕÐÑÇ[Š:è›9ûfàSìHßÂÚöº¾ÄÐ[V"é—è ‹E*ÁG5½w%»xq˜““AÄ“NŒŽÛØ¥ƒ&jŠ’E('-½É§ìû¾x¨î½%¶-E˜@Kg[$ðªm»€%“'†%²ëMõRÜåý¾¯sÚÎQºT#ÚJßö“žllªeé3„ÙFä(–{²qFÝ_ì±.0C·œ¡×¢×8®6§UØLÄ#¶ëp[€!ôŸèÌKUA7U¨Î¬ÊeÓ—A; ·JÀELžчû2Ê$Â+é­“W ÇZÈJtª’3·trß·EÈ•Ô—J®­©öÜ{€¿æ)‚hŽÿ
+ôÿÆÈfA§^<^ªµƒ ™Tm›y3‘ç
+ýf±4± „Åc¨¹ld2mñ—JÕ‹Œ .m‚w V˜,Î3!vÑ A}‡fŠj…ÉY5í"û]ÛªNÞ[J¨¡½÷»ÜÉ*ö Âé5AÌ‹ªyèKbhèL`‚ìÇKÀwÃK%×uqÙX Û™õp195óï9Q Hv²š¬V®¦™HõRÉ1W„†`3‰@ã=Xz©gªsA•Ÿ\kˆìrÍk‡˜Þç²P—Ⱥ!þ Ȇ˜œŠ¹Øt)dU>’éáD„}ýÿkÆ•°²8ó€-…—÷·&ÌߟÁMýÓýê‹W7ß\œ|q{÷çë¿œÝ}wòåí»·ßüíææê×ìÏîðyö™K.ºà|gÝ®¹ø{·ú^žt¾Þ9Mù]gSy\ømp9=û¬t1¾üιgŸ}ý›þS+Ñ´Ÿ}=#y0_ó.^}Mã¡ÐÈϾþ¼ÿ3<ûØ_=+æˆß-lQ/ðØÔBBÅ¥ªµ³ßÌ2ù‰YrÑŒ\lGæ÷ nãCW;|»ÄdM¤—p4£Ÿ²ÉѬ2cs"ožë‰ì—%ßÝ}û:ôðuy0+QíšÑÂÔ:‘],fdA™É¾‰Ö@çQäó>€LbçîÄ,6ItÀÁQLžÝZ±°Ú⊹֣…ä91„ËûæwÅ"
+¸µ+F@§®ñåDDºµáÅîŒÛVñ*h[‰-èÄ)Y@eI²,$ŒÅ1
+i€ÖØ6‹*G¦ÒwÐ@ öé½öú4áãÍ+ˆ‰G Í<ù:
+¬8™ÕlìþÆç
+#GŒøv;±†¤L]6Ò‡tF÷#…4¼Tr‹p'Á©Ö‰SˆèW>Z˜9žÌ.NTµ PSØûYCàžHÏ×ÌLHšDÓù±cê
+ÄÄOZÒt
+æ'Æ’*‚ä¦ Ü ¬¶J6‚Š SÕŒoÃû¤hÅRy:úk¸oÈÃ#<¢Á:U)€Ãi¯ÃŠÄä™^ª¸È¶Eé5ƒ%:oê<(iJ 7,+§qY8—Õ?ìʼÛÑZý’ìá( ]¨3¦sÔi±ù^‡)¥¸ºˆïëTyr›û]hWf¬8e'–¢6†®£T- ¹X­ƒÈXƒšðÃ6.%6óy„¦Ùb"ùU¢KXm$+aÏ:Ô<€Çʲs+ÛTìóÍaFŽû}ŒX›¦^MÖ”˜àô9ï‹ïgd]Ü
+
+ ´nÛÑí4³DX:`+æ¯ó*iÐo™ÿÀ›†¾ï-ñ°¯®õSf§“¬§Øçmli ·7;FklÛfJøð ÂjÄä†Á°ŸuýµE“#]?Ø j‚ò"v(×xñ¾¯d‰K¢½¤©¦t,v>ç(±‚1pK³ x§mÉÄ<ÔzlQJ|‡^ì·¤\;qª‹%w‘99—Dþ }»2œ v*"'1ÿ›í<%Df’lè'ð‹ÉÄÀ.¹ ‹jýöû„Ñmlø:¼2è¥4W©›Ç¾-j]i£ŽÖ‘|È
+û Zž…i£†ÏÌÆî}±!@>eS§^<ƒ’p±wä¤1'Yª`±_«ª=[ÌM{
+cVS€šL^i³®'›óƒœMúñˆÅŸ™Ò“«µ’5eÈl˜…ºÔ²¡šŒÏ1á°zm;
+^0
+33#›ˆÛ<½Ÿh”#)Âa)Ð ÙÜŸëÒ*JŸø4dQ®°£­3¢Q4d›‰ÉBTTàãmnÛÆÊ1i2aãäNÔ¹ifC¦ðe¬LM¶ùgd?óp• m&:ijMÂOR>§€î¾rØýÌÞW23k’;K¨V*Fƒ£‰/j`SšÕv ŠÕ¸i\Õ£MÂíK1œQgªéK¥@ÉO% /¦ɳþPÆxsÁ
+2 íL3Ñ9VÈþ)ÑÆfÚƒ#TsNX©°^cȦØTŒ‘UIjë×cCs´€³ÍvnÁ½ãJ
+L—hêl½LVHèwÅH5tçMœã²<º,¢ž·…™ŠÅkÝ’i&݈ۘs?l>†ä·bWñÓ ëÓ#{#·Ÿ°U™_![,!]ŽæWX•_Þßú—çØÇÒM‡7ûOVÞ(9£¶Æ‰ü73à&ay ü‹›E±A5©Ä¦1Ñ.„"9÷Bl-*žÎµ–ªš„R*Ç¡ª{ú:EÇüøLˆ|7
+rÈÓ?ï»çc¸Xº|Þw%¼,÷¬2|pQøv•F›¬µ´Ýtµ­çÝ×û³¯ß~DïÑq?/×÷ú#øÃHþAuŽ©Áªjáw&[•úÃÈ’ål®w†Ÿf¡µlÚ°ÞU]¥Ð7KÜXýÑšÙJ%|%ªZˆ­µ¿þk/Æ0Ô°S¥¤ £Yàå˯·Æl¨D Ê%t2êÆT–J^Þ×tô#ÂnržF1¢Äx6uÈ6†¨±(3ÓŠ†41!0*[B[¥zª’Ñí, 9ØDÕh˜eãdäf­UÓ^Œx„»ÂäJÊÂe¹ ]Å…1dÊvÄ.c PfâEd‹ â’ÆFÖKÕ,ÇDÔ˜Îj%*øS#`05³ì'E‡ÕúUÛM•øt#[­Þ•m«¥V6F’ mgCÍöËl±V,d‹0Z%—4kíh¦áH¶i¬h(`|5XùÕ6«]ƒŒ¬*˜Jôˆ«N8j%û­öâþm¯ÛТÛ4Äȧ+†Ù¦8Oqš0ŽAìHˆ}[¡°‘Ùâ‚•
+V®¡ÓÁ|qF¼Ž|FõkÁÊf%Œ¢†@TQÙñz ØqD”Ш° "ÍÉÂÍ«Uã^‰šSD¶2!T•—`2>زõ:Ív vZ­àhýÖ8.ÙÉú]W+äá «=¹ÿ°瀞‘š’‹ú_¨%Ž>³*ûdήõù5xÆ:«öÌ£
+£Ì(Ôë=AÑÅΘ ÒÁ>¨ ÒÃ^¸ Ø*{ ƒJ{aƒÊ±Ùô'8è龡0(­a„‚ÏîŽ*‚Í^8¡ÒÅ^H¡ÐvÆ
+E»£…J{á…Âf²†ŠKÌP¦ï‡Š®×pC!7ïŽ*=ì…ŠEÝ=_v ?Tì…
+‘|w Q#k(¢`({àˆÂ’¸’(.°]±Dåý½ÐDQ\h<Qéb/DQ™È=˜¢x°ª(Ìk¸¢°gïŽ,*=܃-Š{ ‹Ž.vÆE{ ŒB'ÛcìŒ2:ÔÈqFÑÅÒ(·Ö¨éÌ»£¢‹5¼Q|¿=GÑÅsÔ軣Žâ\íŒ;*ì…<
+¸;ö(˜×ú¨<Ø ÞªÝHad܃N·=PH¥‹}pHG;#‘Âd»†EŠ îŽF*=ìƒGŠï´")öÛ8O{ ’‚S®á’âÁȤvöÀ&…º¾;:)zØŸZý¥Ðë×0Jñ` ¥ÔìŽS
+iuw¤R™ïÁ*Êù­–x¥Bß ±Zû˜¥èbÔRéb/ÜRØvG.•öÁ.…‘a ½n•=ðKMÅÜÁt¸˜¦¢Ÿï…bŠá­á˜âÁH¦ÒÅ=X¦°Èìf
+µ{‰g
+úˆ¦f/ÚÓšÿ¨¦¶#—¸¦x°²©œ—{°Mñ`‰n
+ú¾)Nާ濹åÔ,qNíÁîH§ÃUvÚéÐHx§ïy~¨Õ €ÍÿkÓÔ¯÷ Jýúã„¥.'¢á¤Ÿ}=JO¡ ÇÐ…_bè‚ïgçúæú¤k' ´_,õ:D0軃Ã.¼;L0.¹=€‚í"Ú*]ì,=ìŒÝ·`0±d0äè=@ƒïßn¸Û tðG ¾ûXC|oHÓná>pá{¤5rÀð{ºš…ÔÜ3l–@ÃÖÝjx<ØlxeDKÀa{°3ä0zØtxŒpxØèKèáû_x¹ÒÙ
+µõ¼;"µu±3&µ &»£RÙfg\êaiÞ™ÚF±Ä¦¶Ktê!¬íŒO=6ÇÎÕ¶9–Õc×ìŒRmçe‰SmvGªÆq^ê¶aW´jã»ãU[ ÄjÐ÷À¬F{ VÛ(–¸Õx°†\=ìŒ]mf¤ÝÑ«ÑÅ~µ=ØÁz˜Ëv°6Ác‰bmòÄÎ8Öèa$k3°.±¬ñ` ÍÚ,ñ¬íÁîˆÖHÖ0­íÁΨÖfb^âZÛó@¶6ÚÛvF·6#ÐßÚèK„k{°Ä¸†
+>zZà•7vFGkØàødkèàö`‰nvG·}²Ä·¾—(áö`‰>¬"…}‰n–háÆ—xá÷<(iåÝ1Ã×íŽþÞƒ¢v‰n–ØávHvFŸß?],ľ;†8ºXC·»ãˆcíÖÄǃ–8ìŽ&>XÒ®xâ¶ûvG‡cWLqÈÝQÅÑÃθâ&P-‘ÅÇØvÄ¢Ú]ÜzÞ_Üú^"ŒÛƒ%Ƹ=X¢ŒÛhvÇ·.–Hãö`‰5>F³Š6>¾Æo|Lx8n`‰Üi–¨ãö`WÜqë`‰<n2ø®Øãc7¯¢¹ìŒ?>ôƒ¹=ÀÁš¦ù%º
+ù˜ÍÎ8ä6¸%ùì¬b‘ÛƒÝÑÈm¯-ñÈǃ"¹íóÝ1É­‹ÝQÉM¼Yâ’»"“› ¹;6ùCèä&â.ñÉǃBùLr²¼íiåÁ¥ÜìŽSn²Ö©Ü,±ÊÇ ´r»½wÇ+"ı܄Žfù /PË!­á–Ú~F°v¹u±D/7Io‰_nvG07IoanôQ̇p¹À1·K$s›ÎîXæèb ÍÜìŽgn²üÑÜìŽinß~‰j¾Ü‡ môdsÛÒ;b›3´@7ǃ%¾¹Ñ—çö`‰q>,PÎßcÇX5r¬a ´óŸ° cÎæù‡e§%îùÑ1²î9c?dŒŸúÓ˹-ytÜkþÞbnÿÙÿéÝ׿»~õÕo¾¹¹ÒÿþòâÛËk¥üêË«w'¿¿ºùáâö×ÏÈ\ÏÆúwýdJ¦ü9O±%d4n
+IPŠíMU%Ù‘ƒ }ÿãìy]¶~~væ€[€Ó÷V\ì8¨DF-¢|R6´¼!rljSã@/n¨Ò&alé[ýVøïÔ6kê€þ€Î±è÷>ûæþ•þÕ)á?Lý\þz²/¿üâüüÝ›¿ÞÜQÛÙ û»}•¾´<¤fùR(‚…R¾#¥!Ó2Eï++ä+Äêþä‡>t7E„jU*(Òì]kšÖ:?,Œ›(¬‡v{ôšÐ{JùöZß¹kHlÈ}A+BU%F»ë÷Y@DňXÕîDÏ©ÒM'æ¾âA&m%25zÍ%bA¯TV¢0}…‘i¤3œÓë~Ràr¢:•O ÉÉ“Ñ3úü<ZµS±ŽÐÏsYçS©tJaü6€2cÐÚÍ‘D^­„—¼²–4{†>MZ‚2Rò,HÙINjï5Y5¡4I„bÿý&@šè@êsF7À}Ò¤>­*!¤¦)äÑùçbpÊQñ©¼E„à¨G¯ET‰ÿ8Š–¢P\$€"lV0p•F¤ú%ý
+n"PLX™äð w¨OB¼Qê‡ÝÃI^<{}?¿s'¿ùÏë»~ õ;ääüæÍ÷7ï®_¼ýîìû‹“77¯.f¼îݳ_ýåæêŸg'¿½¹;é’ÆÝÅmg…Äܽ±yúßÿò &1“®Éþ÷É÷Ïô>žØa@à`Œ0¬"fd*gŽ‹A%ÛšOÄ?å”’i…µæ)Ì>}±OYê­óHò*’5‚E…R
+ ý$¼HÎW:ÕYdQ'u·èì69e”s ‚52.VÃgƒýî¬PFF;I#R|_Ü0Úz«¤§MUâØyS92+°yzªƒa5ãbMwE©Ra®©¯ùü£ÍŽ¸­ã •
+Zh®Ã<<†d;{©¶_È\ À<¡ó)㪰<Èm‹Ö}$€4e#•˜£ˆÅ4(RäªwP][Ðl R¤ØŒÇ Ðä²rÐlY.ä” ]MáMZ"Nnz«€·¾ÏŸ½ýHÛ;&HGt5$µX¡ÙeÔAIi\à€Ì
+UɃ‚mi]`‚!8 ®DLdÙ[®¨ Ð7>Éý"U©•É|˜·üþ,w ó'æÏb_ë†;?)[ŽÁ46eÉ
+a«
+c&Éáâf»J™„ÇåhÆš:ä𨜓 ¾èòå(1lD`6ÍlqªÞý²Â 8¬‘;šyU¢$NžØ—í«$¯½Á½¢zNⱄIU9AÍâ¢ä0Ì.Ð&„É$®ø*ajÓ(*š¥:Ùá)|Ö‹$Rº2u†Ft£âqß
+Á²=È/Re–Jn5ÔªòÕDÓ'ȧ$Ú{ö@ðÅQe+h¾a«ªY!g+笾J6£BF'8ÑWtBß¡iùQê!XÁç°‘+ø`µ¤+‚Ÿ–^‰yi1BZe»aHZ7öHU’³[ŽHL
++Ž˜6‚“Ò麙 âš!=Z™soÐìue“¬†JtR‚îäAW‘¯t°‰¬])Ú<ú~èn´\E œÄŽ$þ•ÑÄߌȬ˜€û@C¡'û(£n‰ÏfÍ$ó¨Aû‘ú¹x
+÷š¤˜¿$É™°®”ÉQ€ ˆ¨&¿+ Â{):-x”2q¤8é©‘ÍáIcRÃ}¾„ÉqÀÙ˜G7±½õGcÒànÃ98U4Mb%6ìõ#ÐþclÂÕnE
+4ó~ÚP‘éògÎIßÈOÇ]S†J‚©ª|Nu:üújÖçÒšÿ$(/ÂpMœÙS'>‹ÄØ7!ò¾¢žÑñ AŽý48÷N
+®èE⬬¢!²§UŒRÒrR»ª‚Yw–/n/ÒÚ¸>;˜¤ÞÎYÝÔPç’4võw~©¨õÞ‰Næ>¹Ó‹‚Ú
+!W5»‰¥¦ãWkþ8åhQŒM*7I…2OXE¯ªÆv¢ç6½ê„Í÷]SùºÀò¯÷9<¶ÉÕ@GÂ
+›àØø-¶ñþg?èbµ«žãŒ)=·&®ïçY„)Ò¬Dçôõ%åfBÉ hVؤ‰Ê|b“WêNÆÞÇ5Ð6‘ˆ4¯qãœøl‰±^¨ƒ €‡æúrAq†»L#àÒH¤pÊï-Dƒ6ª„e’'X9ÍÎgE«wpZÓ*Å"ýdê`œ,(0­\±2x7“bÄ JXˆšE¢Ú¸_ KD‚O‡¾Ê6ØùƒzBw´ÆZj[™©‰êª KÉ¡Þλ=ªð ¨vd‘ÔVKW¿È.£›AÇq~~˜´¼À_'&máL¨ÂéMm‰fo$ l1¿¬–
+ñù,—ÜC“Dx{-R)g[£ªIÚQÑ´TËöñˆ„x‹>u†k“ Df¢`d]ÂK´ªª€-Ó³”ØäZDôH¼¯ —±V/‹¶™úoMrüd0®‰ªR(eAy6•wÅêÔ'Ô†O=i–Æ!¿¯*CTú…:Ä\Y$劕!ÍõÜ5¤pøó¼
+̲?úXaàJ”¡#BIxÞ´|"d @eqMé ACAYéU]⾘’˜l×v"‡Ÿ~Dæ18¯PÂoà”$2Mûb´n‰Xu&ÅkI‡:6¸~²ÚRæE{hQ"‚d¡ÐR«t7¡J˜Š­ìÉz9Ò
+I‚$J:ÈÀ.&펾RÁ”`ìL^B)‰H‘},5Ä(¦žÂDþV1óe‰Þ—5P§~}Àú1—,Ù&PŠ”1>ˆèážgkþ}
+ב¢B1#£‹­Y*7±qÇ1|ÿ©Š¼¸¢½ò èðŸ°Óí²
+"BH^,.4
+±S¶ 7QnļÉ1ëR€ †ä½”ßobmå³ÈWÔ©úw%ûËÁ[¾
+·'ûé’ìkŽîm£F,ÒvÇ
+YrÌr^¤´&Ç3³r}Êá«ü¥ØŸU)"ÏÕÄ žÿÒ@” ë婵Ì'Y"”²IXˆV¤•˜d1 ý¨°á›Ì- ìÖ”¨%_ŽHê;]¼,«Ã®
+-çY‚Zä&")‚5°BÜIlÁÄ0[ÑÃ`-réu½¼J¯Ñ.S
+㺋œÔäÇ(¥„E"·."­,Gè°5)c
+l¯ž²˜és¯ÙŽ8!• ?‰ÖÕŠÆ“ñöêÈŽÜÅŸNþ—¼{ý¬ùœrä Ç‹E‰n0Qz&ŸN4^‡=+]žQ<N
+éÒŒj=UÄžD¿ˆI8Å~æ$v†®¶éÓçå˜k‘xÉ5[›(S¤ZŸˆ&"Ù<\Tìv¤‰ÆO%·„O*³OIëÃpÔi ^Õƒ$R‘›D.9\oSÚ(Ecí]Èê&@©$9<©Y—¯ ùy¤f4áux] ¥$E=ÆK™b²`8QyE=²ÙÈŠÎJ¸3 SÕù;ɶgW - w'†¦Z]b7!?;¡ºzS
+u"aµ°S…|¥¦s5ó¨Ó!ÃQŽ—X€Ë$肪
+:D?Y¬éBˆâsÏE¹¡ä
+¯Ñ×:Ä„|ʦq}¢.P%/‰¬ðÅ’ÚSžÚN"î_—¨’( â´È¨¥
+‹fY1"0„’DÌ •©„I#åÙ™%#ÐLl¾|%ŠË÷µJÅl7uœÄ\5*ŸaËe
+Ê Qõ§œ/¼¶í ¶É´´?EõjXI›¤¶ˆ¨;î%ŠìlÒ­:RéKb¨Ó$4ÎC…
+c)ñÉkh¥
+
+d^RC6WsŸªj@êÇb±W/R¢4•Ž·Ô'³oFh(óLMóÓ µ2Ô~
+ PS<íbÕ¶"}äZ»—ò1¬ÖÞ…„ô}‘Y¥˜NHhTv 4.¥©©ì”­C³Dà+-Z…ö›®@VØTf$šNGª‹àtÓ†QO°»X®g±ÿTrbª$Åç“j;MºD!ë¶HºÚ&©®Dm m¥!à–þT_*'rêÏSÙIl0ŸSOš X‹øO¥acïdÕð:y½ÀTOê8„ò€{ˆâ.TW%&!ʵÌEEÕ© Ð!ƒ%©¨_®DAyµÕ€šø i˜FÆÙÈRT¢T¤R>oÖBò³0gÒ€²†¼Q"EÙ™p‘[GðÄ"©Vu ”¬
+ÀHEc«® ÀIÑÞaŠÊEŒúh/Êg!µB=±d?Õ·+œj”‰¦ŸŠ³Ly«’yY.'š’R3±ˆùH6@µ
+4 xº¬€Å¬ÎN«âXT3"”½
+ÈÔ¬HñÄŽD8`‘+Ä1}A…cÀ6º˜G8UKúFκ+ÄHÌÐâŒxÛrµ+ˆ§&˜²ÛŠè õ)vN> ú,Æ‹²S5ì„…g|ªFÐQ¡^ØqÄh$|>‹4…dz®#tÊs”œ^’þµW®À5’$VÁ˜&QvGkÜ
+©p|?ót5H‡¤e®HÙÎ%ÚRäº}äßd»SŽêjIÔ¢*·Ô)‡Ç é4¬É5Ä8¼õdTw9•Ìú*n©j(G¶Ÿ¬¿ßdÕÖ(÷Û· Ë­é*lºPmX9´ªQ¾kšEæÑåBÖ#ÎÁt¢­’Ë)ôªÔm¼Wõ Ø£uVýáöìíÛEeŒwûÕÇØÔuElXlá4ç«ðQ#EÑ‹+‹ˆ-iñ’bOnµ­û&&9¹Õ[ÃA­-B¶­¦Ë×5;8Š€«nR$^C”<GWLÌÐ(PnŠbþ$6Æœ/9¹Dz)Hg¿o&ÊìOlU…}4b(Õle*8‘¹L …u$1ù‚ÓÁÍlÝ÷œ-ñSŠDyßÑr`Û>è’àáÉaìGäZÒG4h©i‡¦VDžÆ&†Î›
+G:pšnËe 4º‡%,Âë(R —bu+Ñ)‚xæ¯ÏZ˜—$±vgR“XÔcùN̤0CV|ñˆ;)ÏÁRãT-ÄRƒ?¼V<åðFW¦Â ãˆXåžÕhMiä°`ñ(ä$à'xñ¸‡^ `‡¼.M#}½hôò~“bÚy’ã$. ?ÉFnˆ®÷!Sbš‰šê#%¨ùÍ‘KT#]¼ýïbËŠXÍ‘EDò©DÁÖ8…”*¸ÉfO^W„Ü» -ÖCµ!÷‹HudáüT7éUÌG'ɺ8rðŠg‚q2Š4Ð!Â…K—p‘& ºw²”bæMîÍFJ­°© Ž“Æ•£–.'[”v¡_¦Œâà4¬ÇxßÚ>‹Ù‚ë°Yu/¨ø”Êv|ZÛ*€EŽ#Y´÷® ò¡O’<ˆiؼ4 /TÙ
+KD-Žé2Âá„‹KW|PåÄ1‹Ì”¯/æB‡B›<…I,Aʤ~òªÙ(<—IäÉF>rýg´Ú8my½É­;é. °T-Ùr‹~ùìõzöö¼øÏ*8Åöᢟ}MGÒ›‚“ãÅfKÎ(*,E¹H†‚g '@ÑúÞ>‰¨(µ¯h²OX#îå¬ ÌVn˜­Qb,Êÿ?{oº$Çqf‰Þà;¤Ùµ#mº@÷ðX¦M?HPìÑ4(âÒ´4mc²B¡HV«XUZžþÆY>Ȫ T ¢Rœ…ôÊôôððå[Îwθ¥GfÂ^Žbm5Õ—©Þd–§OÚL.|¦§¡Qt"€T_@µ²…´’4ŽT¢0*о"»è[Ñ?“wºH2fCˆ¦Yu1~2Î0‡Ÿ8Ó‰fó“²61bxâ××^š‰1!r&åêÎ $c„]*7 æ*b`¦êCt^ù$Q­J7÷$áÅøC«S¤ÕÖ2ÑL“†äqêö_èr–™ˆ²+AµAÌt¡¶üÙ&/#`Ó{%î8îù©®5
+Š3ʬÌ÷‘PX¢ ì]"T†ø‹Ç®Ùƨ „>GA³h΢oƒG®7–˜Ð•ªà¬q3µ×Ì£A¦3PóÝZ=Gñ…ÉàM—×AtS4ªÆŒé½Œª¨®Ÿ£¶bÖZ3ê
+ø®®"4kÅG1éJg!:öŽ|Ë^ó4®¹ÒþO¢®ªhè÷‘P$[“âdeˆx*9¬¡3Áê§ãž‚0b×)ï§ihÌ!%Ô߀Ië2
+mvq™£„bY| E7³#1"[báIÜDLipÜzî€0£n6ŽîÁxh¨ñ'­&£ôËõ`Bð¨Aäå=tY«d"ØÍUÉûD@W5àæûÄú}Î0€.Ü,“›¼?CŠ[ý‘ɦÐØ‹xZü6"×ÄŽbCĶe…âAFߪÝúÙXÀΰ 5.wC\
+hTy
+yì´ÝP³}‰Ønøl
+35ÂÔØϱ[™Œ:ÝzØñ£ÇjšiÖ¹êD)dýP[0•ŸCuTŠÂUÂuLÛ«òJø7‚ ô„Ën’²&› ‰D£e3Qï¡ 3 æ8óÔ QaÚÒ¯’µ× ƒ GWdÍ0Õì¸TbO=9&aì“ôMaiù0îAÕ3i@ÚÈǶ!#Ó<GP²AÑH2Ù…¦KflS9V Ãä{ŠVääOÓNf"¤Ô £(š—#8š'J¹Ye’hË |<#ãH2§Npz` 4ºI‹\6«¹O‡,³MÙP?qs×ËÊ–†¬ÛÄ …Â_áјU[z»ªwu¢¨Šã\³=3ï$²' 69ç)®˜î,±Y)oNd¯ѵyd‡åï"SõŽÇâ÷`cîÜè¨ ßC'sÏê1ayYhçÌKÐÉ¡QÊÍØç$ôls0 nž¥mœ7Z妣q²ÍÂÓcì|&”Ñbš4d —€ésó+É$ ïÇa¾Ç΃Ͼs
+à”[EI i .0~vdœkž  ÁžDa@ê–•ã±›gÙ¨…8ÿ¬N]¿‡OJ×–ÀÛý!‰9îÁ°©t FWŽãì#JƒžbÛ¡e–À’6n\9Uæ Ý’7=~A*g³¦´Ã/Wï¥N‚ž<æ$~ æ¹5š¬Y0¬`³ü¾Õ]cbÆX²f&a£q=´$Ì
+äú.Z:·ÄÁ‡F0$ó±·,£Ù'AÀÕX}¢'Uð¡r¶‰Ì
+ûòX¶\M’ñçº;Ñ<Mu½c{v‹æöký¦ä«—LÊ2@Æ‘)ÈTÝ0søÛd-”]jjßØ©zT”&IrÑ8ŽEj™÷0¬–ÛºF$‡°¼cßYÉ‚:oÐë;°Mf‹ïF yøæ$í5Ön²NÁèÕ6½¦ø¬.s4º¢Ÿ\6dôÚ®PV˜$1·mD_¯Ò©†qIÛU›oŒï7ÚvÔ¢«¬óÂ’$Y×rüh’GzbžœûÎœaýƶèS”AÑð#Moï0ï­~ðJèëðd݃R±ÅÚ®ëŠHŠÚféP<‰fÞïhf¹ykVi –zŠ•X[Å=‰(§p1l”ÛbòÌ@¢0xA׫ÍÚO ?ÚPƒ›&û–\‰Aô!±I«-lKÔÿ¦lnBõ‰_P²Ÿ»ÚUê"äDÞàܨVâzÅB{³ í¾Ø©¨l¡?6‡8ÊÎÒÔ™k…Ôkê oI ®N~tˆÊ„³Eô‡ª³n
+fÆÜ<è\°½8Kw=‘¡·IçR(†¢¦ØH¹¶àE‘ æ<D¸¦ÅÆ›z(huĈùwV¹-ˆŽL‹Lqf‘MFú€-T3÷Ž|ç¾´@  Œ¾¨Ž¤™!ÈÉtÿ#|Ó1´‰_ce``L=::Víª3(£|OŠŠ?~rª-6U}2ªƒà÷7¯£`Œ%~nålº–£Y¯x:V-·Á©Laí¶¥0í}}œAe”®¯¶?% Ñ(n’VÀ1j¹Ô«›mñ¢>¬Dm¶g‰Z2Õä€xnê‚ó„—™Žk
+àÑ%K‰vT)u…}Šã•ãìXåhîœ ³™ƒ¦Gk̤výV «ƒë.Ü`„«¨/sÔ&"ʪ`0óA— Í®+Þ<fõCžmÙ›¶_¢¡ö[ S“1ˆ HLR ‡*8¤ûä]Rò(ÇYõX|‹c\8HŽZˆ{X.
+>—Epa²4ùc@É¢ì$ß©Q9m>~r¦ÑB„ÛKû×Z¢—’îIž*®
+SÞ0ìˆdçb3ÎQBú×Íâ¢C~ºY/hž³ÓÖcl¶Ò¼C+
+ñÕ<‹@Å‚.v†¹­sd†}Ãmi°áàŸºHÄ6Æ|4w5Æ/T¹ó^>à“•OÝ4DÏ\G¯£:ÉK`³–Î b—
+ŠðadiÆÕ«D©gÖ¯­`}ÑdošJ\œ™7 ¿]ã6„¥`êÇŽñöª=mW­£_¨@À 0‹Òìþš,®R_×ÉYrs,¨VA^B§wÍ°²Äz0·3y—òë‚ë„@ƒ)»,ÔF£; Ú¦{1BÌÄÄÕ¸¸/NCöm›ÐÆ™üY¼ÿ˜­iŠx•F|w-oÍ$¹h¦9›ÁËñ$šÅ¶1ƒ·umÌ ìIW³‚4ZÁ-ÍRÄãD¢ ï‰ç¬6—¯ïœÈéaS»åwÐlõ9˜ä¦ší„¹RZLrÐ6­EÚTsLÈ Ô±Òhƒj‰(ŠP27Š> ³a®x ›.˜ïjº¤¸}SŽMƽ8¢Æû#ÂcÝWóÈÒ"%/h;ÇúXåHSˆV,iæG’¢Ô¨òÉ&Eêo04¡]&hr1”‚¥öñzâØ4ËM4÷òF—f–\ªyVDÕXÊÞ¢âÐÖ#íÿ:)Óã%mO…€2˱<>"ãI.9Ðu
+éÒ¬‚ÈÉ2v0{ÎÁí`r‹5ä†áÈdï©¿bs§}9´ÍZYâì`‡åê2|ÉÚú~‘`•ýg“õ¢0]¨‹>Ög?‰Ü…×?Õ~ùýÞlŒ|‘e0¿x‰ EÂBCc`°zÝ®ê  øËÇ9>ká\2!CÜGµ3²JaØUëxI–!¶`tuCá;„¡^É.èïÎ>6("×èØ{f®ªEáØŒ©a Š÷\/м»IÚU+ÅÜfÕ;×ÔÞ••@—-Æ3ಖSÄX§&ý^Î¥a ´Ö‚±­t”#;©
+.¸>'¯&þ2ÇÊ‚!:¸foPrS îðˆ0šç
+ú~ŒªÓÒìÚ)5 ƒÄŽ£ýÄŠ 6š/=°0Á©õU:Ó阫´šZ†Õì1F©â5,öG$5s¼š$&í¾Û¬Â‘åT£V·-i|–7Ê)åR_ZyjeÇ;@®XVwo¯#VyÙhEü,=LP)ö1‚Òv"\§Y²@±Y.¬³ß¨Ð›Í Æ)èjˆYㅈϢ³°Ï߇™’SãÍçêk•Íò`„½&CZ«Âûˆ,FÂQC@)X…rõß´!DVœB´w‰+Šâ*\Ý|ã"ï°.*nÆ)iàJ
+–‹.?’ª+ž@ŒŠñ1±xÄ( ÿ>GBÉ<FàpA9æeVNŽlE^08¬ã™´*žõ¹—À)mnÃ9ÐXk5(whšæ0Œß­ää¶îBÈKï0´ßÿ¥Ñ«èCÙÑ5%‡Ð¸JØj2ዽf9çúþH8ï%BÁÒJ‘Õà6ý fU
+p
+MM½éMz¦-¡Ð²Àö*XŽ,
+2÷ظl¾¦2 =ãØxH)æE7„·’HldJ§¥HX!QÏ~AZ‹‚^€'çÈ/Éi¨wdß ¸
+u;XÚˆAïÉ ©vRÃ[Ÿ†ÙæôIa¸ˆÒ@1>û£éÇØÊÆÙka€ E$c§k@ØWgÀµ£÷ %QSñÌ¢HEí ÌM"bSœQc ÃѬ4˜T&€#ñ¹ ‘ÝÞ¿&ánv·A9Y3ŽКRE  „ßý2[Íš—,–Õ#)93ã$J]~$ä¥/·H7Á>¹ùfÈæ–ÝœEÍLyp±Iâß&Ï 7E*³,·˜êÀ9šD²
+4š©Ð—»YmÙÒÛAvÆJƒÎÈ d4ªA#“nlôzã'‹?ɤž:è„¿ -¢4¹F„Æœ/ôÁTVŠVä®'£þë}l,ë]².Lç¨h?SúI‹¦£EuUñPÂí¢jû”9öå WC<@¹ˆÇ’'ˆWq‰ Æð¡94Jº
+k Œ8¯Áû+q†¡Y¥ Îë]"64Òj懛K4ÁAb2 •.д@#ºÎ 7ÐràI5nž$8ûmƒ(âHT#|ÜhUÊÍÝ´¶Š¾÷BêO<=£Ð;w‚Í’ÏÐåÚšÍ ´kW»U‹‘ ™¡Å~1íñ6éØ»®Ál—›‚Õd7оƻì7I+V¶æò¤ÄE=4‰Q^šF`åC—Ëž>¡Šˆ¦ê,ÅVJc
+ÎÔZ1Âß¹,º¢4—X¬4Ë\LMš.òrŽ0›!ŠÚ¹ñ\ÎáhZŽh›>ömgRÍóèêÉ$q
+:Šb?‚©Û›"®Ä9× ;ªïg)]èPUí"ã4IyQ`"5&ÇÀ¤6eWÈàÆ™ÐÅŸ:N+K&ÅšÃý ŸVž2Q‚jÍZ¶Kj0µ­øH\¾I<QñýΤ IûõI4ëðBóà­ÎfÖ0±y4x•á*2K‰ÊÒ\Y±ÖN;[£8½Y•8ÑÌ—ƒVœîOÜ:úûLQE£ý-àaà›kƒÕ3yEÊt†]ä ÕÜ4ç‘4“Ëm9ÄB:&yœPékDbSŸœ’…CDpEôuÔ­,àr­«Œu”£&FÁÌdWYW]~YBÇÔrëðÐÇágÍV5M_ ¹·´x"’39‼xÞÆ!\=‡Ð &$a÷k² šƒ ‘‹½Ù6¸KüX<6k9uxRq¯µºµHO·5CäüÓ°öa÷ŘRâB£àà ÎYaƒò•>g»¡nNž1*÷`{G¯qet‚ķ桹‹s¿¶&÷Ì÷Ц‡ë6î"a)Äf<±5À{pjruÔ'Q̹”àÎíÊìO’u±½á¹w(šæ¶Ͳ9‹7K½RÝÁY»pã:AQ ëÒÙóÉŸŠËçS
+ÙŽÐ!¨Ú S3¸”'cPµA„º÷Áè4ãÜ*ŸX¨šG,H„à$¶Ac#{E[“fÐcŒRÜ‘šFö‘+«^vMî¥.Äuz¸º¹g|¢q`„YZ:ý6Ü}⎂e Rd4¥ÝU×ó«¨99ý2ÞG•³eA›T­>”‰
+J#¶ä\-eBÂɪRFAð>ËW¥Q®Ü€Ð¼±0u
+"ÆóûH2¥hx$ÇqêP‹Ëéã'qÝ+#Q»Þâвà°MÄ‘Ž lh~×Ê觰”¥..¶ìäæ`#K‘˜àûê©Mù/û+n¸p‰ê2³)¾_ã*© Dy“mCº|jœÛŽf1t#yØ÷ÞL¬ák&%6„_²Ø à¡ “ëC,¹ašÝÆ$¯f¶ÔˆÍÙTˆCL“«3a+-C,„Ó»­"¡àLNRjpˆ¨/%UªÙê²@á‘kéçÍNu](Ïð¦­ÑÁšTgN[YW&§@¾+‡;•u¡âQ——ê”ÈŒ¡ÔF•‚smëìó’:
+áàJ,Ä,?±s®x®‘m+@f±#½
+çdš]ázýC>/4e—KÙt!¤DHK–G…š)¤ehH(£èkr–ln‹£XÅÏ*ËWÚ˜g:á?“@ãƒ*I…É™ÌÙM% €
+Ræ0÷J¸½#Üi³\ÔS‡ÉîkCh!]f·!MUë~ˆò’›À±A¦©å¨|CJÚ>aMp²k_V©.Ûì]jrÊ’Ñ–CÇ/ÑÚS³ý)}R Î4ç°&muý“1žíE¤£ÊáñU,A<N¬,u##ÒËXÐ.j’:Q­‰ÔwJÎ+Fè  ¾Åñɺ‡zÃQ@5v.qdîˆ
+I†Î€†¤sl¾c¶µ´:Þ
+øÃ’G¯¤ÆgûÔ;TW⬆ÍjBZ_i î™Å82z?ɨ„< œ†[ÌeÕ³öµ÷Òçlø,dU"§)N#xº’
+„š]q‹êa(|icy\RPVåRxЧqíÀK”ïVàë¨Ô&b™9z0Fe‡©´•“ëÙ£d.ço„Ï€.*”£ëmkTÙˆà=ìn˜¹ô{¡°eä ‚K­Dõ_ÍîHø‰ÁÅ}¬WÑz¡¶n>zBV¥¨%UÜÇeØEÚ½DlÍÁ.eg©‘ÙA¥ç)àÚ.Ä×—wàFMíúÑfNÆÌð4è'S(‡£ä·%K~7÷¨*Ô“åæmG
+k+¹‹").)­ƒ^l׺Â:ë¢æ¥êrÐÝç 1¡È}º„‹hž:‘£ËÛh‰„¡ÈªQc–’í–šàüR{J30•Z̬YZç<«ÒÒj”V&“á¯K96™84×RýYép±Wahîà1y£’ù¾ÿo~òâêùéî“ëÛ//Ÿß~»ûôúÕÍ·»_]]D~ÄåUüæéÿ”úei,§XZþ7¥òyÚÿ_§¿¤Å:Y6ñχå`/Kþ³e7ôüÓ
+8E9èûÀ¡t)}dªÃ²HÑBaÐyã™
+’ç9ʯp¢
+kƒžÃÑú¯’ùª%âýN=‘¹.§Pð¢fÜý%É ‰Ž2ø…n;/8n`q6Åw÷Ñ9…EªÂaþ®¹á°ku+ ‹íÁÜØã>_væ‘RXÌ.â9©̃‹’ïÏYg§°Ì{ÅX6Ù(e’ŽÂlÕNqñÇÛG²‹uÁg˱“êa‘´™µ™Ì^,,ŠmoóTd+tÞOð.Ü–ê…ž¸J@SúÞ+’’BäÍ"Ø|±C²2PRå’³•cO²`Iµê§?<cOö<õWNïZ
+¡flÜ 'öXhÆÚhós Y·¼¶ÑgO7VÂŽÁ0GÞ–­qÞ arY©À”!t€מCC÷m • ÇD¬VRÞòžC]2mk  @F 
+ š€BÖb&F>7Fƹðüƒ]÷)Í€¤Ãòμ»y¯vz4Vn° =Àš84ÄC˜øUÅ·.Yðß—‡V™ÁC]|¶úÅšÞ¸m‡jĬ¼°l#Õ+à TéE3h¢< Þ–ˆ{pIàøhxW©u": ®
+"`ÄgD«²D¼ih „™¬0²]à”tíà ïUŒBÎ$F”{ˆÍšâê\³rá;QiB\ªa×®‰¸+˜
+ä'­…(Óh†çO‚Œ
+2㔎±«B‹õ!ÝÍLq/] Nxò
+Å‚Xřݦõô>—Ɔw¡=à‚)„+×ÜNfÒóÇxöë@:¿ F݇Ç"þß‚Êðß
+ñŽE±k„¢3‰¸ñTM]NTUH^`¤'ö H8±üþ¬Ë@âp- ÀiV ø| €É9_lÀqt3S:ÑŸ°C£©«Ž¥`¹ca d ÒA'×ú)ÃæxÛøY“pF>Pò0kR¦!@Øâäìż˜I\„y8½
+-x½W|­ªWçÁu¤!ÆÔgÍ@LŸ¥'Â×âŠx;ã è œØIPyÖ@‰Òä»^ë…'žŽ¨žìõXçv¡±)6ÓžõGzÁBU"'‡˜Ã X²ö±G ÞPöëÑB#ig}¶AõgCKç̵¦°£ à.öé#¡YÀøÕË×Â|Ri¨„ƒŽ–`Q~WP‘’¢°µy^z¬Jœcô""Yš§6ýHvèá¡)h—•·CéÝi—çÖAÑ
+&¬[ç(è¾Hƒ\Pfnš5IZaT)‹é3òxÊ”ÁšÛ[@ïÞgu½F
+TGZsm•¤íÇ«·¤uißÙ(Ð ß7«–ØÁy¡ÑénîÝ:>t󴽡†ž‡nví_„¿
+ "1‰íǬ¼¸4¦¶8{mФì×,é±æ‚ó–¹ïÞ´Æ‘5˜æ½â$ˆt¡".\^3Ðù}ûÖA‰Z
+XÂpDG5ƒx®vÃE õ¾l›#µK%@4Úï~öA'±ö/ÿòrìÁ„ ;O-"½¶íúF¥ÉØÎ(bìµnãþVñãÞgqŠëìßôº6j
+ÇñÖD¸¸×œj‰˜dž°{Ib¡Æ:éDpc$s%´÷ÙѼ{½n9‚x²µÙ´ ›Nû†‡Ü  Pýþ`÷>»>ÖÚ鈩)–ªã”MµE£uPG›Œ²žl´VC¨ôÁZc\7©“}»ùìâr³Žc¯×µQˆï¯­q[¬}6­íï«üðv¬›ÏnŸ5:½ûü1/}\£ÙB11öA‘šÝŽ«‘Údh òA(4q dlßb^DǓΧhÐ2ÍhlæEY<¨\†Ÿje\Òƒª4ºáƒaÌ-ä-[6w+šY‘¡÷oÍB¿3˜šAw©5.íGkuçŸ~rròêâ««["ï6`¹w¿
+0št ›Qã":ù8±éÙ94¬·“[A*2„£¬QÃ_Ú=’773«£?Ö&GrÚäUB™Íaèã·ªÖrm†k«É-»eåFßm¹ xòW|±Þö“n~¤÷ò®²ð…®fv$;5ªÍFs`ÊŽ›tدsE¶Ÿ¾-­æ/¥ÕqGxÏk[Ê@©Wß®„SÂô¨j_ðÃ#gjëÜ,A”E4„¤ óO ²*wùÁ)ø±¶;·Y—å3Æü®›Úì©ôeËèMMV’˜ô9×ÌìÜ«MHºL±qºö‚òßß8ì€>[núéú1]Z9ȃ4¬äF+ñ27Àp ¬íîÍÁ{t.%\Óè­í6MF«ÕÅqœµ·G‰÷ho Ö#/»e¬:S•ïuÐ5ci
+žQet\‰Ô’­7Z6–A‘Y†ðˆ×!8íiÈöyÒÆ?vñ}Û_)Ü4_BwýÇ:•džK;§!žŸzÌqïÑ× [Z´ ^5å»ÑØ"k¤~ãûÛ©Ò¯ü`1“Õ®rÝø¾8x* 8¨h”ma+“«ø `’½}þT1r©1SÞ?Õɧ¾?ïÏ™?LVÚà š—‹{Í,ÛRcí»{·5Žsí7ƒIý\î|Ì_ñÙÖ붑#ˆÖæ)lµµ×ÒÜÒ͚Ǿ?ڽϮÏÕz½7aF¦øÁ T§v"¬Í›MíŠC‚Z1&7Æv¶k¼ýl6¹ø^ŸÛFþ~¤ÐÝœÓöDXn$T÷Gq$p¬ÛO¶gÚöyïù11IîîW°ÊA‹ AÔ HÛfÈh"ÀÎP;#íÈã˜MêîvºUÜp9“‹‘½Ñ®~ÊKpŸy2è\]_{”'~ì~Ç”õ‰ ŽàRš±AA¢E8ˆ ‘§©D¬T¢‰ŒÖÎCd¥rÎbÁV)úâ³LO«×*˦¬AüÔLË
+aš)‚mÈv<ŒK~Ô9$0uj)•©…y<‡G1ß“|cÑ` |ƒ?§ •Dr)ÍÕnYÇ øŠ›{¤”c`—+…õxùÕ0¡W¿2»9»ýäÛi‚ î2^PcƉ ƒC¦ÃHÛ`ŽÛ1R{c´—óÅôÚ‘3ÚJ{”`…%Ñù^
+ߨë"Έy„·Æhƒ5)á®Õ÷kí,tìÆS‚hè$Î)?ºv©É÷íbÇ[`… ùÎÛT‹T'ɼ¶í`.‡Ylû¶KÈtÊm
+Žsâ´•)‡1*F$ŠAÂÂAÑ£Õ
+‹^qà„wh¨šÏU˜Ð©¡"Æ@M2ä/K1vfðâ
+zR9
+î-]*\à>¦)?ª°ðˆX?Ó“aëý¾¬ŠaÖ)2p80€vÄZOp˜C¹–Éw©¬H•‹ÈS¿¡Y:,Xv]³V)²=ª­’κY6Z—ô¶Äó0Æâ:\LLûhdU©tMˈXÌŽî@꤄z§ &,*j‰÷ï"…ÍOM®eH8¹N%í/ÊÅñ Þ©®˜ØÀ•YÔ |G¦>·ªþ&Lv/*%QOîì>ò"£áÃ
+¶%Õ䵃G¢Ÿ“U£‚¡PXr4Á¦
+¥[À»YoC²÷¹¶ýGY2W¸¼¢.!tLS
+Z±õ„VÇ>î³1
+3A–žs0Ê–>j0M¨-¯cÛ´ÈÙúƒ÷&-N£@ÁÎ’2ê7@õ¤’sñÄÅ­>“â•ÚD}Ôü Æ#Q­@ùëV÷éB9¦!œ‰Ð³ì%®óxusTkÒ›@£M™îE
+Iô9JÖIÇ9ëÆ™›;‹8D$
+ÔÛ[Z–[†iž˜ggIÿéŸöq
+‘
+FÑPãdNȪç¢À™œ8“÷")¯
+øq"È-27FVÿŽ©‰ų́·GâD¬À£C:êÌl1Z‹áˆ°^æ5H2R ì;jCKÜÝB&àÞ´’¦óÂ2ÃI½q\½Hôî\rTOå‹caç8£H{
+‚uV›œD‚v^¶,,©ä– ZDð-÷Û¥~‘M¸Ò¬¨#Hê©HZ„k¢gèVòV­ÞøþÁÙz"£ÓGäcq½|ÃÑ€ˆ— ?ƒ“àsNNQ!·
+ž—<ÏvJ"OˆµªìFDT½à»à‡¡‘µY oŠ£YF½7ó(êŽ4‡ÞË>:ßkÚËUÙ1 ¨ H5ÂÑG/+„®‰v@§8RìDØÃf‡^ÄÙ3…ã:87‡P0ú§•ŠB[üÎòi÷dfõVï{!æt`©EbB
+tNgœ„o<| eÐد$QAL%N:"HM”Ç*5Zt°†ß]koÃÁ”¡‚°ïnÄ#åçƒîÏ‚LÈ+Ô6éjmˆð/ƒrƒHI™Gå´jÅ1MÈ£dµ4Ò P– a Ì&]tÐM˜¬‹U‡äfu ®V„2Ö埲 nmâÁdP<ûl‰ãþQ4¼±½«ïDLí›E'ðžAˆ+ƒç«îUÅ›… «Yf̺ð’À±SrÜôaÞ°ãÜ+á)®KF$¨’T`\i…›OÄEŸVó("Rø0¢²AvÇT —Å0˜Ç¯ó)†»µk³™âê¦ìQ¿Fï°øó6k&ð2Ý&ðC²„j±r¢ÃË 6Ø„T¨§¹ÂJ¥Ú’;“h@ÌýºÌ’ àö*`3m¹ù™L‰#ÉgzÍIUl‹¾1J™ƒ ¸HJ0ÍG¯×b(­UÝ'œ¥ÉBa=­%ÓC©¶<sŒ2<ªèLûÁaO6AV¸évC~™Bÿ²úå03¡CÚrê[L~Ž#”ñ{û!lÖYõšGÕ ’ígƒ9ݦN!4Ýq’tÍÑHD˘Ê!ùPßTºnîÍÛ<ê®Ó —%–&GX²öÔò™³s!¦
+ò7¬x:™w° Œgâ¹ k[#c\‰,ÎTÀAwág.fíOMHX(úNÜ1a çc¥óÒ; I뛪 &mt ‹ªºæ§º?eûÁûÍÂqàÀðŠzF'(Ea•1Dï«#­ÝPmSLIùʹZÚmDehýÏ#·¥Ü5¼ðQ·f{bÆ»DÑ5néËR¸S×›r<TÓËÀ…îb° M…}sw¯1ºåYéË (7'‡2Zü
+15z§‰†ðšfj€7¸I¥±)σ,ß¡eEH±'†+›¼ÀÓ [áàë…C_ ÏN­jÖy.Së/;|®Cðµ§ÕåÁpÍZ¿‡R8¤cZȘ̩¢ DE¿†EÒdŽaê‡UmZ/4›š±E§Pž#îz8LÁÎëÉ»jñžSä“&« ð›ÁòÚ¢ïˆâöÑ9 ý­ *´ý¬yc¿°!¿l6>JDîd¯e<l>5ígJ*ŸÖÐHßIsN(Ô9‡üJ‘X-`g.9ÌA„Nx¯×£ê`r›Šfu‘[±w*š‘\èJj+Ç“ÆÁ:¾„¬ô¯êÂ
+Ðrô\šæS'!YGÙØK¬œ<²@ &“õ`‰ç}³K*P-.‘°‚R-û–jÂ!>§>Z¹™Ò˜"<CªR ›’lMZÙÅÒd´—û8ða:v-/e¢%Xžs¸àq½Þð!€¶Aý¤q4‡¥óTl
+-)gj HãhQivÄ×L‹<×Þ##5×t
+Ñ9.¤]š)#â
+vÍÔ]cŒ…³[{¶7Æ0[2ioñlÿ䣧ùµÊüMc¤m#@2íµ?œ‰Ì¥ÑS
+W‚tÀzvr%§±l/ú»èû’‰SŠ1Ç}¿!gC¦‡*Шöwd·ÁÃð}¾ª»‰žúÁk&å‚©ßÜQŒ"ê…ˆÚy;M%b*Q#…Š2a9ÃFÌ"#œ¹·B»øh‹«¾ûÌ ¹%gñÌ*ùïÈökºYr%î<+_°*.‚w(-RÙû,ÆÆ‹½p3ïGfYƒ0)´*¹ÄÜ¢ƒXé€×
+ÅeMQì!T>¥D­ÍØÛ‘0Ì{X;X8C .pdm5|
+ уAÁèýx6SmCäcPFa…&ˆrÝû‚¯óbφL´Êب›Zc`ðh2mJp^º¼ÿø¬5}´±HŠ’t‰u2 ´ôsDj˜ÜÐg‰¨ïåËâÊ‹]³¬–WÚ3…µÙEI“ÂÇ5ì7b©%ê¡*L§×4Þ‹‚0uŒ°Àä³–€¯§ªêæe‚…¾ôHœz.9ÐËC ¹fÊ
+_‰›P¹.BdÅþ†8%ïx|ˆ¥H¶µÅ^dÄ@cHBd(ºb¶5Q£‰o?'Û(|\J¸õ-蜨"ˤñDëÚl&ôy…S?6)ê,l#¤ž€À™¶8ÿ¶`z#Õi³9…A…lå5Òzõ£´Du8×r™D§2D¤‘f׸æÐcØͯ•: Cã`éíºzRj¶•î±Ô½VB¥†PYP²ÅAÚirÖ2,­;ÂÑì'Èn+w/‰›Ùm®ñ¶¾ZVêP£¤E–ÕYõʼ[•ÂQYaQhéÑz™º
+z±á³Q3Û‡þIªá ·âŘòf†QÏ!,x’Âdèý¬ÚEe
+aÂ
+ц’#Á¥@2Œ,™¤™G¼VZ”+ËmºÓ4·î¸±¥GdåEù”ù·åRúj˜V›Dg¡ ñÙ1,vGNœ«ûjÆßÁñ®vx`?"©Ð=*váy Ç@cq°·xßo$&0‹]ä¤húðS-&²ù¾ÓÇ­ä‘Á€*ÅEä­n={hÕ,ó² %¿š©b§-Gz«”&ÚÜõ¯Q€´ÅùV©ŠÆqÔ •äÕD&Ž%½*?0,—¼Ã{Ïc̘ËùÃæŠYŸƒ‹a áÄÐ –’ØL"&˜6”¼o•ãËI -lOar Ý#ý핾¹€¡ßëUÖ‡´:ój1²dÆ=­¦&ÞFÝê#‡Yà:2l
+ƒAÔ\6˜³s÷Œï
+¨Ò‘Ñ0°`w‘¥êk«}i$óx½“ITJðJœ0ð"c‡ÈN.ÄãuË7LöE1á™\ÒÐQìÉÔ‘¤0ˆ±‘¸3ÊV j!ÚÜ ªÃàÏ’²^ÓXIÍ&(e¸¬SS|ᚦÓÔÀ(Øun âWÆ¡úW¹Fröž %9
+1”ï[lrZNÅ—Âf¬Ÿè ¼§!ÄAgUm}¦1â°›Ç*ƒ{¡¤Z„D‰
+3Œíg²ñ„³4ÀQ»;6äI%s
+ë‡Å}ŠëQ´ø(¨TÀËBòΘ‹.Ö/âªUXN …ßàHˆÚ†€¦2•Ýöz¥å+\+Z™#ªÜèi@dí15r äÖa°Ž¬†ÄtÄ'­æ<nI)
+B΂Ԯ ýoP` dŠ³„îŽFF
+û^/48ìÀ!UzjZ22X•Š×zèf.«d ªmÞ™¤>Äù‰>5!ñj:é\¹¨ÀŽQƒà‰ŠL,PüÖzÐ]¥ÄNÊŠo)`"®º5Ÿ Þ3­s«˜\©… Õ=EXÚ@nPµZÚ/nZã<+²@µê¡ØM ìì™3’‡$æ¢ȱâaŒ(8•é7UàFÄ¡´f¬Áéo6'˜µÖÊ÷ËáÑX› }m—/&ÓK-›ø„×I­±üŒ‰^ë¤V´^±}á'è»àÍN³ I)ã)²¶26pÉ<bÛ¯t¢OƒïÖÈpztVJïKèY@‚§S GÈ Ëx5ÜéÒRHï+Þ›jœ¡X×½j†ðYËhZ_JŸ}_VŵjB47 [T d2·¤ó
+ÍYFY¡š•¥ÆÉ(—‡’á›Û´¸Áú38
+È%äù pªAaÉô3IŸ»¯~‰..t +ž)ÂÒqEy8›Ö*tjTMºZÕ8ûµ ÂÅ:X+*ëHo¸ž¡Ðì ¬:X¥㬤dx
+ç5©\ï‹5gyÔ,& ’˱X™Ycdûy¾€qh¸ÙäL6š§6ºI^îG„SÙù •Z›KלÆ2P*¡Sq´^X0oPEan#«\"[´‘@"ŸqÊ0)oè®Îy8E¥ï½ùœ×Dd|Zaº›!÷R7Ô¤!,3ëAìô &öÒ’õêÙg¥&auÄôžS\0Ï%ÒŒ*šaRcY!Bsð&ìó¥|چ׌”ý¨wS@qà3åÇíéd [Ý <ñ¼öƒ
+û;`\àP•9f¬âheÛ%Þˆžf ¬ˆ$`DrdðÀŠxº²î—#Ñ™p"‰õVÊ Êd¶½Y#5²9ý ¬ƒFÖ©È­ïÅH{HÄ”UÓ{ÓœØ+>5¶
+ž¾<rº Ûæ²æ«e•OüÄU„#48&Aò8€ $^ÀfÎÁ’W¦°Ü7 ïÛhÀÜÌ@6-n¦¨„)¶L}€6×°¦Ý¬b
+Æ)gJpñŒ&Ja*³°Ò“jOî@B× g:¤ Û £8$Úð}ѳêᘜV£oÄëûiµÐˆH2£­¬zÐuõÂÅñöÞØ>›!Có‹¸u6…
+/ã½w ¿vjLJëýF.ƒÛxx¬™>ô´µR,ï7hBÞxµ¼õ„ÌúËòâžÝþéüôæƒÿíòê—üÅ°ùð“K.>þå2úÝ?ðñ'‹ÑóÝiüõãÇW/±o??;_æŸ_ßÙåNPëGõÇþÈ??ô¥g·Ç'¿Û/½Á/}z|sv²ý™ë«ßŸ~ïW2ÿýüËkvédkè-quûÕé Á üQó|ìÞTaÑ&åÇŸ~½û—Ý»7Ý Jô/;þêî_>Ø}üôøúögùôüôòÅ÷?ý÷œßÛq¯^¿þšñ~ÏÐ_]¾xuvûšao¿øc¼t¼Îw˜'|}¦/?
+ü×Z^Çïüäpû|8ÿ!ÇŽêÀ¡ûž,™œê
+I™æÔͺ_g~vùNü@§»ß~üÅoÿm÷Õé &ÉESOÇ0«Ñíúßžž#_ág­qÚ;´·¼ÇE Øöí½>=½Œ/ÇÙnèkŠ/Ç=0ËØm_~ü§ãøîó1ûÙøÍÖ/{ÄßGÂk)ÚÔºøôüUÌÒEÒ¦ÉS¦~ñU=zûêÇßœ^ÞûÛ]¨AͶg–c& ¸Ñö^£ðgCKáñÏûü‹Ÿ-¿ðÛŸ-cþ·Ÿë»Œ·>qŠößeüÿ .¼ô”ÐÑŒŽÆ¥£Ô:ãw·ÅxË}ä±»ÙÕ°×U 4sÜÈøW¼ftUÇ6:®éµ«šÐÕ´×UÑ$¬‚[è*Þ§µ®㵫eþögÓæ%ìÌr7ö5G÷mÊ4ê©.=qLeÓQ^ Ž¶úWó´%¶÷&ª›£§ÍÓ=ªÞÔkÔc³”–•×µ…9rOó¦§1VåöÙr„óÚÞÉÚîêiìê)væÊQgIJMOÛw˜µVÔã„5º|ç·?ëRZúœ£ÏE‹¥Ê»M¦6›{„M5Å —¾¿øY沯K%Ç·@æ Îùêìî¶çÝlÊŸƒw¬Û‰‹i`û~}½ ‹ãÐ]µ¸GŒ «¿¶=ÆÚï6ºp]¼Ó!¶»—Ž{ÂKí°dÓöU8Jö¨¶]´=0úFßNùÇXòË>ÊwzšcL6̽Ð3Þê ÔÕŒ5»¼øåù¶]‰Ãž//fe=I}¨µ7Qôo‚ÄÇLx S–ëÝÛ-êá3·Ó­Šññ Ù¬_žˆÝÞžÒûÜžÓ뉧XÝnÎ~ŽqÛQñmµ\>¼‹Éú¥¸s†˜¸.&¸lÏìÒ·ç-8Šº.îƒèiE€>–Z»h¦ðtÚ…\¶og™®è»ÇþíÖ ¡]à~ ÛÓ-Öa¿]~)^tÞ.šì#i95'Š³Éçf "U‹°ÇåZ¶íˆÁm»ìcE·a´³%~¬Æ´×¸´{-x¿+Œu9&~‹EÞ®Áv’nþ%Ø$ûX®íÍ–þîÁZÑó€e‹»Æè†x)í…7MšV›“}¿l‚èûqÀ[°‹úÜ&7vqt]Ã
+i§N;›†hé·×ç¸`ýe]
+šŸß£v.þ›es{QLü÷o¾xòË«§þñ_vþñâürùóÑrn.³üêVÕg¬È[–ìI?Bÿ›O-¯ýüÅõ©‹˜Åÿsû§—§úë‡ÿíòæwß_ßü˦JkûÑïŽÒgÑ~óšÏéjÄ]|ðŸÿîgçòêòô &¨„ýᙉOþóßö¹žŸ]¾XÚ½Á³-‹ãÙéí/ù?ü|ÛOÿH¯ÿg¢ûÞ™x£ç?;^ÎÞ7Yø?øVÿž6úÿøî·:>ú7^Ñx¼“W7·Wۓ쯷ÿÇÍ1²\¸ó–-ö¦Ëñ¯¾/ž¡Ðÿ½ÊOa—Þ|ý‡÷ø6þoƒ›ó³“¿÷³ø(ça¼öý¾Ñ»ý[¼GC~´ø??ô0z“‡ùÓßúaÊ0ÃÃ~èiþ tõ?цý·|ª<W:~衾5_Æ?Õ·YãoùX xóºz~u»˜ON¿¾ýòúìjñýà£ÝÿÎ{põóÌ{võêúäôS€ýþæwÿrCý­‡pqz{üb1…Þuó;Žãÿ}áØÛ¬®Í‡9}¨,þ¢ëv-ˆ±˜1¯^îž_~óêø›ÓÝÓ«—¯^ê C­À¨ù;óîøúöùÕñõ‹Ý ã»Ýî:|˶9ØõSÓ+í~uúÇÛÝÏ_œÝ??;7·ÖòÿñÅ鋳W»¯No®Î_7tW¸ò¡A~~Žhóåéµ~âv·z~wÏ‚Òª²_¿ð(´ñ‚¥Œ{¿yyu{çSÇçgÞu%2ïÅ˳Gj‹É\æâºÍø'¿Ø}òêöj÷ÕñÍíéõÙŸOït‰Y|yüry€›³‹WçR¥îµó|¯‹e^âÅîΖ<¾=Ý‘Çu<Kg+úûâôæÛ6$þæfê¿·ûß_^üþêÕíîÅòÛd¬ùêöåòïï>ožîöúøòæåñ²%Nþ´ô{öb™‹˜¨\qß/ÅÏÖÜçéõŸÍëêüÁO>oì°~ô{ÝŒu»?Òî붌OÎÏ^.Ÿ‡£õÇe¼ß,æ%7®£ØûÆ5çùè»Ó“ÛåGžŸ_žÜ_e{_YÞê°v·ËnÜ_»¶÷öÜÿ÷ê»t÷D4Jß7ð`PÛ]}wzýAÓ›ý7ýûO~ñ,n§ËhoþýÛ³“oŸ^_}}v~jRµM×{}úÙç
+Ÿy¡»Ô¹©w?· âL}~ݧþîÞsMyW
+R~n
+ØbŸÑí™9’ó›Ã Rn³“Ý©ÃL6pjÚî¿°ûÄö¼Õ¨¯@H,.òZ^nRËíõJ·<1{˜Ï&ÌÁ÷¶”ÏþéÞ¹¿_J/¹{òš êÙ³ùyõ³s¼u‚ ÑÔNhŸýÓ†¬%,Ùn|ž¬.Û±„ÌM©6§G¿¢àä/Ìh>ß.àoy×ï'(¿SrSÜŸ Nø„P°áˆÐ["6²n[!S‚ KD‹ î#z®mÐí$4´ÛÎwк•Ç?ÔöŒˆ™M9¿SvÉõt_,a}6, 5x®6(Üuh_®€É÷¤Ù‰•üLõ€ÎÔÉøt– .£Ç
+¿¢Žº KÍ|Ìvô–LÎOGøµ ¿šS£ÈQ?ŒÁ¿;áXNNè+‹ôÌãÞ2ïÉä¢þ¯çËsX¦& ›’ ׸ÅYˆœ «¹oÏ8™J€Öº~j¢| m'òWç
+ZЫëÃo*R·÷Ùþëi›7ÆØYÿワÌpmcL©é0•‰(aj‡q‚á^ÀºšpÙ Ö¾6`KcºèæÓ§ê{ÌZ0cU™ÀL­A 3÷R¿˜ebÖcÖŸU³m+UÌ~öÎ1§ê¢Æœ×¦skB9ÌcR 0¯}xÂ|±¢ó“® hb,8‚š¶‹Dre,Ú
+ÿ`±Ýˆ%K~«†XJsRcdåÃ2ø¡‡eË–7_ãXaŒ±RÔ¨Ç*O«Nâ+¬ž-º°¦­ÓÄZ×_%ÖÙ›RØ×0¼Xz¦T7=lÔp›°I«VÇfƒ[Ì"l Kl­±e°m {ÄöeK;NÛGìbrd”Xv|Uª‰¢R“Pi”ºe§©4&£6¥ùŒ”¶â8¨tÚ‹[®tÿrJ_I«S»ž2¢‡”±S÷¨L.ku%9È»”Ù~v£,ô2eeyVt)k›êNÙ¼´Ê® ÀéÅ7Jå°Ž •“-À¼fÊU
+¸ñªíáöÒx‡{.q#*i"x¶¨ãéeu‰óa=^÷ZbxWyéàƒÍúˆÏ~Wüw8ªà‡Åt«Áfc—F»žU5Íö qy•AM bÿÖÄVqפ=­¼¦ØYï4 )¬ùª¦'š±måÒüÌÝßšѶh®f}[«9·ÍZóÜÚѺZ}‹6X ö´‰üޥ͖ë3m¥‰jÛ+ÝA;¸.‹Ú…§kÔn Ù¡ö²ŽEüÓF˜βðwt¿'  ÿú.ºìèŠ@*껺F×맺YîPÐm6î’È+õÚÄ|ª·&½·Pˆè£ƒ³EŸ>g}Ųžé;¹d[?Úcyý*Ò
+™÷ߦԙ\™ÊÓ³ÊÔíWœ¦éÈ™2m'ë¶Y¹k¬Íf<b4{æ¸9^:¶ÍùÍbon¹{Nó¨×.š×–ÚÒ|ýù²YŒ‰ï¢Å£™l,±å`±ä[º¶¥U©-ã|3cÙäv«2ç Y͵ÚÄꛩÜÖä53°–§õ«™XÁBt[•ÁĦÓÅC6gSµ¶EÝcÒ–»TT¶ÖѶMªN·mðÚñ¬® Àíö’Þj×õK{vl+Ú›{¯Ã>±'÷ö]¦ÒràÇUÜákŽÈ>µq䓃®£c°¤À&ó:Ž•Ö©'ê;§Ç¥9“îQÓYñ&rξ_sþ~|.e»lSà.ë%it…C^+×5*]ƒúâšwÕg×Ù©>»kÃÅío{•ît2‰»›Ö²Þ=5ÿØÜG“Áë1QÏ>ÊxÈ„µîiÔêCÏd£ÛxŽþ®Ækè¹<^¿~F‚ý,=Èw¼­ˆcíöïy÷–b¹í e2_>™pù¾"Á’o•ýúUå˜Ãï˜ç+þ„¦uðWSË4W~÷…Lê[ H%dV4èΗ‡Àª&xPß샮dš „ölýBpÖÎiƒ—±­²éTîP,ù»
+U–ÓlhìëéCÇÅ×(lŽv“áˆa¦—ÆËixØRçÇœÛ1¥ó§H˜˜ô#¥¼!~ÁìG«ƒ&j6'×ÑHéÔ–…JtLšˆèé0öǬå´5÷:µ±ºÇb³íúÇýuÜ9þ^ÅS³îO¼ýÓ^ĵãeBZÿ&üÕë6‘?ØN‰A"­JNS£OZJg2î(D’õË%—\LÒ-BݹÎo¹t&re‹…è·—qâ0*ÖSVMd•Jø úT³‡ÅS+öKjÛ¿g2h]úÉÒ|Ý$'åË9ôá´Û줳úÀ’îãÓbúhÔŸ26>™!*§u¦³LE2[Ãæ'kjä#Ù¸^ÿ›m~O“Ù_ú”Ó_¥\d®2æêe?·lÍ#y]ùûœ Zy`Œø¼\]
+:ß©[ ^¨kã†Â²õý[ÔÛ±V1²J$‹æÊQüM±’Ñû³,Å=©ïRÛ­*•¶¡Q¶É`™ØåoåÕT>¦ÖÚŠc9VU²ÑÞµ2¼ .U¬¿¸V}ä^Y-ûu¸¯.Œ}Mg­ØjQ篷ÖòY£µm©™«[çšf=m­MꃲþÐÀ”=cÃ׈†•€®Üø¹,&Mô¥j&¾óæW=VmžÁuË=Û[Åe¤ØZhR¿m}¢îRàíøÏ¢ÙþòáÊöiIu<™þo§lÔ;?ëâ´k©½]¢ßœtûßß6^-¾ËBô«a
+쿶)}áÛ¾8¾óΟÁ÷l0‰ôôá)ÖK⫯^orˆô±¾E£ÀûÁR`ÒoVë…þ¾±ñ\cjPƾƒ•×ÐZšÍÔ0«³{‡ÓÎÒ8Ò»²×Qrg_ß—éXôÆÑX«=þŠUêãk¶Rk•Ê¤5kU&'ä6õ•.->­ŸíßÓ}>;žyL?¿³êÔvšm[ßú¹+gsÏ+á¯Ä|“ ÖÎÌqº(·;×Åzsþ8ÎìO¹®þ
+üèEÜÇvv¬<aNËü³ô[§¡Á›>ëñ…ÿÿÜÍUAGUý#PÜ-76ÀÏÛ8Œw·£#§ÝÅ
+ð
+,ËðŠcìwˆS"wn²yµsoÛi›VIë̯½Ö™MóÄÆ[ÙR#èðX2RµS&¿˜oDöÛ£Šx“û1Ôš}Uìp0 ˆÇ ‚Sòíi{ª;H§Hb­÷˜é¥Ùšlö¾ªHXÇ! ‰¿N‹¾ (¨‰·M”YúlŒ!úS¨ÊSÍ“¦Ôˆæè:²`évlÆH$erÑŸ0 §g¿¥šÉ{‡¼rÂMc¹{úLìºp 6š»Ð37– †ˆÔÐRwy¾<¿Óxƒø5 kþ˜µê„gÒ¬†2Ä0o,§—xE=-Æ'˜}`¿wUà7³¯Tg½ÞID­ZÎ2¬`¾å”¹MXwO,ê©¢'
+>™.éƒrâ÷ƒ®"Áìy¿H®Î+”–æïŠC¯Êf˜QçÍprM—WÑÎ}ånHz@Ž9Á[¼`H_†³m¼>ÊÖUXGR
+1#Âo†WSNŽ ;gË0hˆE\;àì5’ê±%¹»9`)÷„÷–ž}ø~ÍÙiX¿6€M4½O™Ó0 bµ »£6FÂ'zK{ñVÕ›4ˆ|>c&C)·½…cù1ì¨æb Olr6 œ«o†?½¾èÊàŠµ&Vo%S¬Ù'ƒfÜ©ÁÔ)‡^=HÚÓÉB ~Š€%nÛæ“@ÔnÒ%£÷g@ááþ†j‰žÁ¯ (“è‡è«§^pTáÛ0úõA>KP â!3éu›‰šcøuHÁ&! “asø€¸£JÀF%…âよÝ;¹ÿ"ˆšÀÞTP—PÀX
+ôdºgM|>—ç'Zõ+x`ÛîYEÚv¶ vq³ 0¯·ÙŸç‰Eõ\·®*ß@mN“”¾ít(¿¥!QSH³!f…¡Qv'^&‰ßö0¹úõXƒ‹-þô[ƒÐ$2òzk³=윙Ñh5¶¾é3 ÀJ¦ýÿɲðîþ€ñcÖG)Ugdµ²6¹4v“ÖU$ çŠK'Ž-²ËÞB2†0cì9¨dùR§
+:
+Ôš§'«#bF…&B­s†*™ °,ýŸ«ý³:ê_ÏóI0 ™‘ #~"Ýõ.€9žrØiW‘¶Šé{<#…Zc©ÚQ•X4i §I¡Ÿ¥(D–*Üü”à„4k1¾ò’ƒ¾AE¦vב÷o}ôì‡Ljë·Ï;-äÕJ Œ¥»-Ñþµ‹Ç«¥z‹$ô³Û f±ï56ïú:©Ø
+ùɱ‘ù>Ç×ÌKrÙÃÆHz8¼­¬¾Ì %ŸX@µ¯,ž @OË ±v„1æÅÝ` ̶ÜDJÚ_Œ·X|¸?™Ò”JlÖ=XªÆhk|¼!hxcÁ|W ÌÇ%Æ…]Ž×Ó³_0/á“#ÖÄühÐ „uWÇ.¹zäXty¾¢IöWPXc
+Ü¿!÷ ±c¿·lܸ— L&÷:ÙEiþµ9<q 1qÍëO¹—ÕȽ?`%“úÊ&Hî/‡1Òí!Ê°òY` ,îM†KDO0/OîJXj33Š¹oQ ’Ü%i× X|æÃq¿"¬`ìFOíܺœFžgºsi"LKÐvØ ·yGb[Ž€]Œ£x”\‰òÕùH];§ŒÏ‚µc1ë.%ZuôÅíã*¸ÈL~bÉEIlÊv÷O8Ú±C¦®'ƒ`³önº¥MìôËÌßW˜Ê¤NxT—
+>sùFQÉ ÷¶6…Øè¢êÔж닱Pà)Ó¾x»cñïÔ´²ÑóÔ%Ú3ùƒ¯@õ+½gk©ob ýæÇ·t±“ÙWjÖ~`5ð-ÀŒ· `^Xê µ…­`Å @Aé5Éapiå#uDŽ[0É?Œš3/à\]ã¾ÉáÇbÏ´Lô30Å@k¨fR·÷ëy¯ì“BÖÁ€¸ï¯°Ë%sb³µ-ÀzYy"r7<øíC£ÛÁy-½¾êÞ Ú5 Ìf“ãc“/3aóiÉäܳŽ7ˆ±=±ñ©|6‡é¸ŠÊÕ š0–„yXEè|"<í|¦!ŠñZ#v|\ªsr.žc{¢žN:YJ¶¢wíÐCï/ÞÐjúMd§µJÂÕv\&~ ÂÀæa«’º\´àÏôÈ ­Ó“h -ï æÕññ£ê»¼ƒ% Ô¡•…´>l1ßÃE÷Ò«ñ!\Ý¡ÔÄúuàjÞTÏ| ºNUš:Ÿ±—ü^¦ÈùHÏô%5It
+<P4:¿ã†ã,–hö¶@{©èeQ „ðíkOddTd2Þ*b,ÛrŒ05ÜwŸ!Õ[ÿ:žjĽþÚß5JlÁ 6Ñ&p#CSIoÞ™wõ XaVt Em°¶³i@Ìkí%—pu•ÍL¸çÒÊ)­æq è,=ˆe-ó#µgó'¶‡»aÅ>þuª€‰ðåg@ì>¬D껕K<ßµÏXHÃùÒŒ˜mý&ö™è™Hùòú‡‘¿”Þ–n§ÞO/(k,퉅?·!&†î/ŒN!2¾Ù)‘;”·^Àìã¼@)iíù|ÈJ©jŽjÝL¦ì ˆ×”· më€äoX=a2Ixðƒ›ÈŽ7øƒüÙTô€6ý”¥"ŸU&´ä2PÈt­tɘí2s¾›˜Ád&lþÆï
+
+ÒÛ­±ñéi?_
+ãÿÌOòî zÂô²”%U—ÈkÔº+çÖUº{ÙÝtså3¥ &¼÷òµn&X™ÞRÓ'Tl)ˆÜ‰#ûZX)¼B’ž™i~ã-ýÇ;Ѳ@vxþŸ½˜åÖ…¼ °º]¡'%›xf)5ÄÚü§“öe2³ Å.}¸ý°qZm!Žö“¾î x={¿üáorUÞz\’$ ¨ –þKjÔeE]¼R’¼Òˆ‘aènHµs!¾ûéÎÔ
+Û¬š+èÝ~Á _ÿ]wëBÙ‚dzZdJ8ȳã˼±¼n'»ñj#u÷ g ËR=XB­uH®8°‹·ç“Öjþ¿r»ÂRSå(}¬yLQ“¨ª«›~ÌJðÊÜHÞ·cYF¥ÐàÀÞ¼9_,Óýuw¿F˜º0%»[ÿƒ¥!ÿqnæà Þk]rëCBTÝHxÃèí ™ýD0Ìq¼ÆhkbµYEƒ1º¼8á'‡+T 8ï/ª÷OèEÐm\ÄŸ^gTµð˜Xغ‘û[‡1\ó,1½3ÆÌVmMcÆÈ:„éK_~Ì´\W£…3^uÌTì˜ÙVtجᮡwcI}Õuvœ‹ sÄÚ-"΄Ïéó|y¶_(A95˜·¶ÌpžTà§S$<‰›¥\,ï?G|™PÛBî¿\­Ô©÷e#¾Ènƒ ÇÃS»!îÝÑXœêª1i6Ô
+çÓ)xn
+#M{î@v`D:P—
+
+œ‡–AêYåÓ¸0Ò¦;íøIiÅÞs)ƒT3hÏZSÑ,‚ԽԵݔ0R—¾g 9~„Gª$.®j6¡±ÚÈD>&‚Ô£RïNú°ÒîÀF.Ju)Jž¼£Mc!=7l"Mg Qò:¾"B
+Öâ$ÅÓ6Xɽk¤
+œOà‹Ê¥‘vÍ:£%W˜&oª·&9H¿B¶‚×l‡H <¤
+ü¬ÌÌ÷žÚØì
+%¿ëÛl«õJ¡±ž•ù̼ôý¥× "miw?¢HëËêh‚*ðDZ~§m­ü!$Œ´àÄ›d,FzÈ)…™ Ѷ†iåE„Àße[;š'„‘#©á Úï "í—×Y„î/cýíºg¤ÒžÏÖ?oÌÂHK¿‡mÙïsò,í0kÞ‰ø„טÒnÓ–Zms‚H}%³‹õÍ@Ž´#Ÿi®CïF:qêyL£ÿ*Œ ©CÑe¸#-ØF†@"51Hˆ€ý=Þ„~øÄGzÞkÂ4ÒKÔÈ)Öë)¤‰®=Ë„¦Ó¹Á
+œA‹,¤´s¾…‘ºº_¢HÁ&òkçécì±"KG)Üò¦bHgl¤®:°‘Yh}¥D…t¦Ñ¨¤Hû¿#uòÈ µÿûHÓR}Y¯l´‡¢H‘ö/‚؃@û0HÁX8cí‹">»Ä‘Bí_©‡úÿRx¬!Ì"…´ EŠt
+)ä}Z¨S48³:÷ßУOôDè“_³­œvƒëvÇæ}‘–Õqꔟ¶s/éuGK‹s/NKËÖé¶:5–ƒ&B^O´pÑÔc<Ž·®Tó'rÐÍ´±eeïGúÐáQ‡@Düõ/êEÄŸþ&€à§ f'#šhô‘Nÿ1÷4¤ßÜuKÐ0¸ðjÄó>±—°.ç~ÿSck̴Ϭ|oL@,iöpG¹(íS]nVÀ Th¯†u(½ǬT4\Þ=n Ã¶œÇѸ Û\+I¨Sk–×)v—†W-XºE“Cµ±üh<w "9–ýk"ÿŒèðÝyʘŸŸgFˆþˆÎàmþêÊçó§ºÏ@¯1¡Båµ)A,ùó·G듲,dK˜Ýø%EA)ä,÷±‚æ—V³®8;2µ²Ò½ã딤;Pn¾è•ü6å‰/Nšî
+qbqEþQô R\Ñã=ŠgK7Õ˞ؼw™C@ %z„i7€—ŒÜ,ÒSÊDý¡igß Ó®kÆDŶW"œàкÊׇÆÞÅÐàœÑV£øŒÔ鼆>Mìa䊽‹±F5¯X4ôì?ˆÑÀÒÚ¿4 ! Ö0ç:,ÚÞÙ½ÎGz è\‡™&ÓÁ>Vk3¨”Ÿÿ„±‰ïÒ˽1|[9¬•Œœ:ÂÀìr BtgòùnLÊå;i®{åXÙ¹JÎ¥ÊnjÚMðÏ·‘uHñ°,€dÔ¥òBÓ (ÆžPøL(ãˆ~\`|w)ø¸6ÊÕ{—XýBc¹¤{IOÎbƒŒÙæ—¦õA {œÆâ+§d–~¦…É=kßY‹nL2tF¦1Ðf¾/¢Û’e~Ó&™×µ'!ÞŸ¥¹rZ€XÅ=³ñJté͉î•åÝ9*è’¸Bw›:.o•/©X<Óù93¸Ã%‹æ/]Ù2 ¨•ü°úNF¿
+ü•N©þ(
+\b¥ƒµÃÝôþ"
+ÊÝšd Üdò+p^ß÷îö¾
+\HàlB­½”Í>:ÖQ\¦7ÞØ<¾qøìÝØÛþ²ÐÅÅLÍ, ø¼|bfÊÿš˜ÀZØKBV‹ŠÙ?F?p™¹…liŽ%þÌ/¨ILÂ<‡#Oµ…‚ü0
+ÂÄö¼–@uy)„Š yÝm,æ4F7ƒ½í¯êšUÒCSÈLvãFB¾êD+Ìù»c*ÙMì؆k%=Kv·O¥XÒ2% Â1MŸ™!)^6'SX0n–ýñÄfâ8>Ë|”'³ÆäKF/âJ1³wâ¡|)Åå¾ef>·í±„βïúØ£ëì™ãpí;ðÜ$à·MÁ Ù?œX¥EÕ.Ñ,0–¦ÄÏ{ªvÉÎã»>‹!oò,ÿEÅqZ‰§¦‰'ÁH«Ò1ðÚðR%Ö©˜PŠ¦øü=—E0Ks=˜‚ó'7Ïwz–#µ¸ÑéØÇ2DOÌɇXfÊ+Àž¯xùã:XߤØÓ4Qùƒd$ÚŸ(Æuü:®™è”áÖ drÉÓe|¾fÖÕkÂ~Ké|9
+v¬3ÙÞϬ‡ÜÇb"(nL¤˜n)'&²µ—ùŒ÷Ïkç»j@H¼ŸŽà˜žÍ¾L8ròHD¡Pú‚óL®‡H‰øç &׉;ÄãYµlD"žµGÃCijöød"xL(êíé´ÞaC&ùˆåUx— 0Éke„ä˜(vrÙPB‡ô~Í^\hŸ¹ Áy}Dò‘œ$BVy»ØS8âW‹Ü¦%fýx%ðÓÛи^iÞmzÓ£ &ŸI_ìôÔ ¾g¤Ú• aYìbá?e¤Ž•CI¤23RÇʉ—Á“T¿d¤öŽŸÉH…p>‘‘
+óÅÞÏH…P>‘‘
+áÈ»šg Åõ!¿4õå #½™ž}.vÞfC^*œ°ût*Šç—ŒèùD*œà¼|<îï~K.Ťm÷ìÊ7RáØw¡d¸ÿ“T8¯ÂÿA*œ°L¦}Ö•R Ù¢€}²TâÓR4VUÎð\},iybÉ ô‚ Ü²<Š2ȘøÍv/ê0— ¿z¸ÀÊFïÊ<‘ºˆr¡-Áò<¹™ŸW×½‡¿9ܼ£Ûÿ°jœI=¨Äe¤¼LoZã!¡š]S¤_H%³^´@ò“¨·‹Ê†_©S,žñ4rÉ„ešL&¬yX„ ~¸mGø†ÛeÚãÄÍÅÊ:ƒV£ô-žwæ«*ìåÅMv NËE¶ó™…Ô½4à!l/–açêv¤’ÝfVQ¤6²‘Ê°ÃË«âX éHiÚìg!åçbŒg–ŽŸìæê, ÷Ê„¼0¥N*ÙÍná!åÖã nÅ2ì<*ÕÑsí‰%»}Kem¥3ìö†(RMa¾œ‰!K×ã«vÄ‘¦JßiQòªwÎàP i•›a‡f0,=jô‰^ç™í‚Bí(¯§¥«WÑ¥¯Píè­³àPDK7+)B^7ü UÊw,#ä–«ÁwÔX8gDÍþ3©=Ï#Tù^ñ:VG]b‹ItêYpê³8Êzýd%9¡²#wªÈð.IU’{É ÷MÈ‘|’ ‰î„|!®ïY9ɸ>ùëéI9Ññ Õ}{VlDîøž×MôguFxw©½Q?N>¿¤çâ…ˆDÃ]å “öôþ%›îo~˜W³é„ì€[-ÎÏeÓɼæÍl:!Ÿ Ÿ_ÞϦÊ¥ûkæ£x6/^8Òþl:Yhž¼ì­l:!POnùC6Ýwä³é„Îiî{åDzé„réØöþg²é„rédÆö¼M'äk¿U`ÿ\6Ðì"OïG³é„”vìèg²é„réDn›#›î±KK•¸¦ô×l:!åT:›Nhþ¢¡Þ̦ãƒzZSøOÙtbºåg³éäSìl:(þ™ø‡²éþD±—³é$s¬>–M'œ[ýél:!
+"YÏbâuI®(Q]Ž{0õ§.AŠN½TvYªK¢F‚Ne—ED&ÜŸQÔž;ó,"§ÚxRØ\Ú3w¯–%Uèîí2w¬{®dªä)s'Z]./+WIf™;±L.y‰t²$¤ã“™BwïÍUº{SeFÒK%«ÌÝS"$ÌÛeîhFºÐÝÛeî¨Ü·'…îäò¸çÊmÚ¥'Q~žEþc!J‡<£rÿ9— -¬—»>EOy`º§±‡ÏÖ'L£ƒÆ³¤^V"œˆfÅó Cñ Ùù…
+£5z+G˜±÷.QR6„Hù´Þ«T µáñHfâ=FPKZâb1Ôóóú#™)÷›_×$A®Ÿª`^TĈeó~ó¥BÕb§o°ðÚÛêE*ªó8¸%€‚ónµj
+Ê …n8|-Vµ)#‘á¥^½Q€ [2dyàß®pw˯«q÷6®økÝê×*ÜIe>¾Á†·…FW¸ûH¥¼§ùDò*å½›Ot¯”÷>JT¸ãæ%ÉÉùK…;©z¯°ÆÝëîäÞj³ŸÞO¬í5GÌz•X €=Wsrª6Ýßkù™îwýG0¿°(˜ýÚ=WÎäæÃÎGò9‹6y¶ØS8â¹°¼$&ųk&P¹¼WòÛ…’˜Ø§¢P@˜Ø0 {22üZ·ºo2Ó˜ä$1iþ%ÊÚÅä¤1qùÄwÊ€ºÏ‹hS@'+C]Òl¿se@'‡+å$1iÃ;¾òýW»²óR“X¬(±Ó¾¦vèÞ7nåç)†—%vºT ˆOä¸&-â·ŠAûåÕŠt/•{D¤×ǺŸ»šª‹Nß>”ãÚ½šêufr~©Üã“JyÖ?渲øó†!#ëùyŽ+è’ì¬g©WÚ'¢àÆwSý`Æ[&Ü Öödškªy®®À‰¨±ÞïGFø”® ì>²Ó#gmDIPrí²|Çô'N^)Zc#åäÃ)ð³ªÕ­°]UÜ:läwW$N/ž„wºŽv®Læ¥áÙ b¹•Ú[Ó÷Å’ðz¢HÁX”äÁ):V[ZõÕEªÍN,?buØô Ò{&CàŠÛÁBÊMM;k½¦Ž “—å¨×E¿7BH8$0¿æ' oÌÏýc“7ªˆ õ¨pW‰1>X~FÜPiZíGš®ª¾„¢ºo¾ 'µ’´&UG0ßGšJ5INd@«†ïM÷OtæÕ¶rg_¤3imÇί´ ¸ ˆÆÀþ’b¶I0残¯tÞkhowóLJø‰ïÌ°I@T·qª˜=œ”±7Øa~bÓS‰xJÒch•h—àJïTRNjÓóĦó§*³ ‡î“Ê,r=I„th•èÔ=Tfꯄ IeÝñnž|#+íI„&E%…¼õÄ;ôzu|w¯5Ì»{¹Ê¢H—¢´øü"›è/Ei)p©N‰û‰_ë–âqZtbcyâ*Õ‹¸‡×©Çš)3%
+ü%‡®h]?é¡ñ|®ëÇéÈCU¿?T
+Þý‡º~Ò7ÝÏÄ߬ë'¹Ñ%Ñ.öº~Òná—n ’¨ë'mê
+FAÿ¡®ŸPš$ÃzïÕãû@ÎûKuý¤¡@?ÿ'êúI¨(dÃy'ñŸ‘ú׺~ª&«ª»:ƒíº~<6´q«úqîìz9=Åv¯ë÷4ïõ#uý¤«úÝWò›uý¤®Y©oÕõcò·„Ö"ïž«?×õ“& Ò`?P×O‚×Îkç‡êñ¤¡È®Ç÷¤œœìz|oÕõ»CdŸW³9êúIä=<¶¿Z×OZ“‡7|¢®ŸØÞz<Iü[þ– uþv’øŒ ŸÕõ“>oæFü½®—Ú|kñ¯õø^ Ò¯Ç÷ö¹Wõ{¿Ÿœ$¦g·7<Æj¼VŠŸ‘ú^]?Žcû¡ª•1ô~]¿{ª”T]Ñ·ëúI«9"kìåº~ÒUýÞ¾µ‰®ë÷¦¯Of]?y¯¨ë']Õïåz|ÊÂåIËǺ~O†gUõcay«®ß£+™]ÕOì–³WëúI‡wñv±?×õ“tâù”þ\×O`^XUý¤ï…“_×ïï~K.Å^Ïy±+ߨëÇ.¡ª~ŽäÕõ“\¬
+ ïÕõ“V )ëõýº~Ò ±ôŽüv]?î ùUýô1Ù7Yqëú‰+A”óä&+™uýdé0o×õcÏäãŽDv­
+×õ“Þ$³8?–KíûVíáKJG+7…#>ø÷J-©y{%x*îÚ•¼ç¥-rVÓm1§7‘ðOù¦hT:ÎiÙ3„±YËsÏž%Ž%Z8ÃÜ7Çy‰m%‡¿Kj›µ³öR`>¦.F²›n‡Y§ß—ó´Ì‘‘Mß_mtæ­^›8&l™ŸR\u¼&<Xo<s‚O£îö3šbùXs×Ýoîu[\S_‘ìXò–æ.¤]£DmÝŒÎêEO{Ù˜—ÜÇ–n¾P·ãzñ«lÔòëÀ&ÔÙÏ£ºÝqè=â§ØÎSÂÚ¥¨VíÔ¥=øâ;›Õ_—ªo×¾7мr;#ÍF½…YŒƒæø9¶Œ!§6f#ù„\Ls¶´GS;F~ÝéìkgϪgrvO¾+÷Lˆ1l5·-΂_yK{ûµžÎ½=,6çWQ¹Õ2„“_ü* ýñiõ
+ÿL˜© Û­Y…à)ð¿ClÚˆžf8Œ75ÁQréÍâø® ÷
+%H x~gP¿{q„êU¶1‹ÜÃålJ2êÐGÏ6AííCòƒŽº N -ÈÐBçFøÀ3otsEu¿ÓÞauÚ}*›|Ú•LÙ0,žeå;‰Ÿ¶`Œâí«ŽºP8Cí0Òw¥[ãÞ“¬.£gÊd\ ~V»ÀÆ-îí 4=„i•â0&ÕÑÔ]¯É8tþ®“ÑtÑ3¥2MÛføŽ8Â{WçŠÕYI’8Â6Wº­<N%~±Òq a _{Ó`ƒf§&øm\G˜ìéÍûE+z
+6ÿ–=;Ön‰½óM¸ /‘©ÒÒÕ¡?Õ»‚ÙgtKT—jèJø¢Ë¯¬et=Ã÷É9¹©t1çM›£®µ€âÁ•æר†õƒéyqu¿ RŒ¾‡„{g…&Yîa¨‚ÞÌå µ­cÀÊ+ÓFz@Ĺ~ïš#Kçö›}O -û¨îéL÷±Øl¡#NÔ¬!
+ü͉ ¯Ñ½W[Ý
+ ¤RHÙò»Óž¶Çⶼ}ëŸÊf¸;èž0܈y®–W»É¶3‚Þ^7ŸhïÌ%–݉ÏÌ»)б85!OÞºŠ4óN 1‚gßaê@Ŧ³|!%ÿ¦âÛ€QT·ØMIt 0ŽØMºr‘ß>)dõ4oèj]ʨšŸ×Z6uÜEF3ãøIÌ‹{”Ë…Jïö,gÛ)Z¶Æ3OÌqÝ–íýÚÅ#í´b~{ÆúZj}¬ë߀ gƒvˆ!ÈU·pôÈ»¿ê)l°JjGh¬úî‘ÃpýÎ43åôІ—nøÉɸñe˜é ˆi(EôÆš î9òí©ðbÊJ¦ã˜̾¢Ý{ÏÚl›^í³Ù³Ú äh#{,0[òga7ͶÜ:ë§ãù)‘C¹w¸p£}šYøÔ²OÔZEd„ó^ø3Ý+ ˆCçO2ÖXÂK{áÐúã+ìîf4ñاëG n“8Ó⑃Ùû«ÍDX·p˜øKew賡`ª¸>âè¬[ÆÈÕ;†_1—3ÚÔyQ½ò‚x 9ØÄê6£ŽQ©TBšÒÄãÐ×0Â>Í&Ê€_4 ¿ô(;7]˜EAo#V»é°%C4mD Œ= :—5AC1} ÃÈèîî¢è¦U‹¢n ±ù5yL%Êmì(oqã\`ƪ2ªÀÑÿh‹ð~ðè`ýšïí¡Öùøhâ,âä…é’ùx|²aC¾BÛË*‹¤ûÈ 4
+A“»Ó”=Õ¹:‚úE{áX+¯4Ž†iKüÑÕ!àè@þ8¿û@¾*ñ÷ʪØö—§_7F‚Þf
+†@÷RNNthÉÞòvÐeeΑy̾ºf ÿÍ’ƒôr0“´«‘Š_8±Vª=c>¤#Ì_bvM$a iÇpJÚÁDÅ=
+؇q¯^³ÎX#à.¨“áÛ‹¤™yÁ;f`^
+!îf{ÈÛ!JŽåàŸ(Åû¦ã¡,Ìöw¹"¹I
+m‘÷?»I
+m‘
+üÓ›¤ÐÉlœŸÚ$…¶Hn) Û¡ÎC$.;z×Íw?ñ9ìf0£MÆ®§f0ÝŽŠE˜jØ›r\‡òm#‘lL\¼`ÕÑs-Þ
+Ðe[öB¡LàÅÝÈœ
+ÐV"3z™ð”ïEj¾yí¸Tå RÇ,9[†¨Oî¨v¼µ¢ž‰Ü²‘Ä}Jºý»€KBÅØJï ÷32Ur ÃüÍgô’J~“–ÿ·*9¤ØŸ|F/©älÓÿJN]Bêû?VÉἈ¨ÐTÉÙæÿN%XX>±ÿ+•®1 ”ßUò3eôi¥›œú!Ðk)+szê˜nØ ¬è¸Îëã¾µ"eƒ²øzt\¢ÛN ;Tf‰“ RwÑÜÐoÜ3S‡d€×¾€bÜ:ݽ½´´
+Š$ÌN5~Údv~Æäø<e„£,V‰•$è†RŒÍêìòžé¡GK…¢lº ´Ðê~:f¤£Æ?QP)k·S»Û¤Àqð¤>¿\°{˜˜ÿ¬v…ñæ'…ýõ¯ ükÿçúçp»Ñ^?xà†O ….1>Ïõÿ
+;>´ÆOb5½¬ö»ñé?ÿðQ§Xhf‰tÃà?è‡mš‚çzèy‚¾ ¶qð_çÚø|*+l›Ãév
+È/<†ûŸÀ
+ŸèÿöÉgŸþìóß|ú¿×ßãýOþ¯?þþò¿ÿÍÝô›»vÿ—uÿ«ÿñ ž•¿Åg¥oñYákŸõîo%–X xóækC‚@x*Þ¾ÿä‹/þ,Á`W~½dø·ý?áÝñc#¦ /8„Ý·þPFK½[∈7 é÷eay®ýþòLí¾Ä‡°P¼6Þ¨ë_—xÊõ¡…Š­8Úú·55cýø¼;®YÈÌsí‰ã9±­ 3ò=™w¤PÖÓz9þ=ŵmð­û)L^~üξf¿Ë~Îñ¾§z»vÈ/¯øŸùèõ×¹6|Œº¿6ýÛ¯ñié¡æ÷Ø›Ø?¿”‡ÒŽ¿Ú[¾½Û#1¯;îðgà'×4Ùl쿽ŗåõ´8O—¤Tùùû1>pü’Ø«ì‡ïzú˜·Ï|¨OÂ?Ü=3“ÏÍö¼¾Á3«v]ÙÓÊ¿½{OÑs‹°·wÏ¡ð)RoVþÞý»Ï¹™¸üXJk«”Ê}|ÛäPÇÀù[#N8Ší¸þˆô#V^VþÞ>·­su=Ó—yÝ>—‚öÞþZRð[—–”ü}ÎãMÌã7ž˜Çš˜Ço>1wÏ|ìyl‚x]h#7Œ•ÖøÂ}m¶Ø1[!ˆÖË–šñŒ™×Îã}åaA¾áGÊœ|¥µK¨x¥4¾cMÞXcyî ¸¹=äÆWeýkª÷9¯÷Ñ-ù¡§¸>šéÚ Úœ3Œ¥fö‡:'h}4þ”ÚÈk²5²$jám}®·c¨!½òú®Ö8‰½ó× 0ð ùa®Ò¯õuÛÚ:5=¤Q’ÍÇÒ ËxˆkÚïog3½..-•Û½ø§o.X?@°<~`yü†‚å¹õIø÷µÏ’zÉé(…Ç­Œì¨.±ãV«õ¨!k/ü´µ×¼ÏÊßšP•øƒ#Ï¡‘ž×¿á‚­Ü›£gà6÷€O˜Ê\ð…1׬ûj+^×Òû}ic1V®øx(evŒ„–꣄|Ú\)WŸ‰¸@&õ鈕›½™†ó-¹ÒÖ¾ÃXšÖz®„‘¾6·äÊÀ䬻©>ôÊ{jNI_1ê²X×+,PuÉŒ”—dYŸ±¬¸®ïÈ#­²
+¹¼ŽW*$Ä\`*êÃZÇŠ‘ZG”ÌH}uäÒº6d\$SYKY}¯¯Sb¬i¥Ð¨ë`ë„óXzŠî[3Ò×'f€£âHâ.ÍKçÈ ±!ÙÞ.Ðl3³i$®™†ª+í»=7¨¶A7µ0΄3qéâimãû¸vLò3qm4LÙÂi ëuq(öÍ{Auaxøž°,½R“Ž-GïÀ^™ØÏàc½ÞRÜc)U·A»‡¦Eq·¶\N¶KQë¾°ks¯ïÄê¦ýTÄ‘]©úÉg‹äXXŸRZ| ¿ùP›G½¢
+KPŒµZrGk(¹ÞòÁ3Çd:c~Ôä…Ðud­±¥Åòm¬‰Ç@M¦éÎub¤,µÊ!Ÿ–nÃÅŒ%ê4É-Qÿ®™8]¯3Ó"\2ºjêp¬ù^Ö\Óð=a.|GÊtŒ´€ÍÒ´ziûô*PÌÖV ¼
+¿·„ò}\ª™±…ðÖ5ë¼Ê¹ê kg>ïëAØ-}Nj÷ËÐ̶â#ó[Ý ‘e3`B‰®®a½ÖûÆx¬ gòX¯:ÓxÀ<}¨M‚±"Ús)ÖfNí1¼Í>èéËÂ+Ûݽ¹­­¥ª±e@&‰Þ—們ä&NS, ŽiS»––OùL N0ÌAÀÅ}‰îJËʾá²HZ{Ó´z]Ç‚åóC#©dºJèÉa‰@P9yÄ|]?‹IÌÓ´Ÿ‰oxt kKÆV,îzÉu¹Ö¿d8ÖþH¹k¹×ÞŽ<h–"ã¨ä¯éï•zŒPI ¡EwÝø4‹5°ç^*Oj“਴ˆkÖñOTz¬Ÿx/Fawãr
+g™ã²ãé#Eó2„u c ¸†P .cIÌ=q±<@êÄò(k%—12Ê$r.²zós½õù;,Ø4,K¥Beˆ¹dê\/€ê¸uý¥Ü6à‹êËz¦úÀ²´+5Ù…Ë´þH !h
+Û”×*ð0Æ@2e½e3m©ù/TθEe,8êúƜϢ’Ö´{¼l}­à8| ’òü6I³[ô˜dðY& —I±&ï ’³Cr¬ƒã-5å:Í1P¶O«Ø+,œ
+]X¸@/fèÑDeY¿LU£´";’×,YYÒÜB3T”õùœˆ•c¡2x/œ-xRIM½ç}öC;]Òrà|6 a‰ÒuµCÏœ§:‚9˹ððÑØ:\»ëç–ø¤ÝEvä@a9gÜÂ’[e­@·ó¸äÌ­ãèþfÕZ{¨¾
+Xž>Ô&áŠKê“xß–±“YŠŸäWXfØ-ùðÑ®í—׬æp‰1ñª» Kê\”0]Xò_Þ #¼™ó ›Å`¹p–è¢uÃ’Ðà q¦"TÄuÐÃÆK®=`Ó>ú—Ý>a<5S\×9²“ûõ/µK¦iX…š7,sÌHßx¨†¶þ”–J™a-ÒI<àå{¯me‘ŠÑõ X˜G7X®¯àÜU6Çrµ2_CìàæCm®¸ÔL—ŽÉOîqÒ˜«g`N(dÌe‰v>ßÂRpïã [_Óvð  -JŒv¯M:ÕÒ”"Ù[eÔ§u7]–jÈ@ÝQ6wy}Q^óò,—aň–ûï²äî‚e,£8,yR¯Ã˜îGþ|ZVò=€žf,sª”Ÿs‰Y×-ÛZRÀ2 †¢,3îËSn
+Âr"ͱ1Ã%A¿„°¾ÁåªýþfõZû)¿
+`ž>Ô&Ái©bYfN<Ÿß¡%¬?1ª%‹}s½D-ÛÏM®13:—Àl2Cá·ÒHëKPrQZt\ÒÈ… ¥i
+e2ù­RÖ¸šÜ1© GX_ŸÁVÉ4èÄÉ Ø`j&ü ™aT˜‰8äðäï¯Oï
+¤úð,¡š–=½ÄåÒ.‹P¹Œí5F‰P=×ì9T Cec/=&æ(`2ÿ
+HR$p‰g8`×m=J<#F‘D°Œî…°.;œj(²I
+£7‰b’àfíô ¿L0JY
+„z§ þû‡¥N)lÀUÄ©XîFõKgy”úuÂÑLsã¨O¾ƒù;jrjª²v€#ø¥1²­O=hÈ$n4'2  × O´«}ã(¦ÀH…G˜EódèÜ튗@ÀÍ>ü¸KüÒ/ƒw繋üû¥­ue”.3cÌ¢D+‰rjMtN8šëš€*ß7ӡ׫õJC£%¾ærX:c®”¸©çŠÖ¤)ß?ÍyH$.¿¡ÈSdÒêÌ4AݺÍ&¶ž"i®Í¸‘d()ò“Iˆïâw–1¯ÇHÙfîhQئáÔ‘ VT@‚º‰Ä%$Òsî– ª•Iiqh"¦ÒÊ3Ò›A«Íõ! ÆõØ@ZV(ÓöbîKd0p¡»Zfã2aúúå%áL]¤+P°Ž[4Lð¨ƒFéO$^[¼È†Åšä™:»-~/±4[=ű W,•¥©È•Ç?K2Yü£KS¿ßEFg0!ºk`bDNæQΆ“¹£t,™ ¸ûFS«É0^ M±Ç"3VÁµ¢ &¬Ø±¹Ôô¤”ÂÀp‚²³¼"Œ>…/8?pÞõØý6æÌ4¨™Ê·^pFä®m±”h``d¦?AÝjÄ™Ž2¼wÌR$‰T
+®Í@]×ÐF\e0NRŽYæXÌ›¬²ÜŸÀ‚©†qÿ  °Ú^Œ LC€‚Ù(™zaëò¥¥T$¸—¶SÓËÓ¿‰$¼ª\Á%î[ £¿@~ð‘r‡Ä…‡qä×Õ‰2…u6(JÕ£)˜+ó…"ñi¸8Þ)¬H|úÎæ<¯õŽîiQç©Ò"òªæ£w^G¹P0VÜC6ÍÐcç×i|¼.
+}í·oýZG{Tª+L“2½@)úº =VËÚfUhÙ1­Ó5àFôôðûeίŸ6à ïq)¹‘LÚ…<¡4¬»ºr}³T\$¦¹7¼£ô¡Þ#Sù¨)–úΖem:z*±çéà‹ò×׋Í! V:×b*ÓF¬©Z¸ ….ð¯õl85L[`Ý5t4#!6Š¯2äŽÅcdçÉ·ÕÜ»u‡w¡ý¸ÕVÕ*ï)xÒ2d™’é ¹ÄRÉ(ƒ¨IÍ"wEˆJ°Â9:Y·‘Æ°XÃúÄšÁ¥ÁAK‘²Á³F»p ˆ=™”S›ëiÑëÄ.‹2¨ ôuÉãöÈdéQ¯aÈuf«Õ–“´Zý,~ƒ…]šÝ¶V.¯O]c3(pwWqCÍ*¬“ï× Ûa¡ÈDeÅøP]¯²*¦¨Ð`sJ¥è˜¢ÌкU?-øŽ°,žÜ=?rô²NLð¨Žñ‚ƒ6Gi=<7âèИÌ=‚Þ2aÓÔêšJ™Ÿèc·°ef&ME½ºè"å¹î¨AäÉ]Û«Wݪ¸AQTHo!†!8C“MáJàÉKÍu¢¬Ï¦CV(‚y|D+ö[Ó"Š#ñ]{;GˆjM#JJ\€©u¯Nç,ÃÜ´„Ëê †Èüù-Xê•dk¾ŒŸrYS’š!tí¡ÎÚΩ‚‹
+µ }íxŽˆT¡vvà Ç3ÒmF°“‰b¢ÂDpà@õè–!¶’ºv2YX½ÛïŸ~õã \MƒIäòÌW÷7au µÓZeƒ"SŠJßÓDEèKüÇB?ÏgÃY’sŠCÌ„>°V«Naú½Ö¢@£éhJwd2ÈÓ·¿ªÍßØ]²V¢Í³1ƒ5Öôàõ-ݽY
+i“?ýÆÈþ2|OÆñ!œñ4‹Bþ˜?™•…ÀšíõüâJ8ý¼«ZÌÍŒwÍ
+ß¾üu.^lîC/íü戂D‹ D«dv»fvO¡êªÊÂØ {wB ˜²‘ú<OR–Høåó¬Déþ'?ûü$"Š÷}þÇß}ôþwŸ|ñ»ÏÿåçŸþñþþ77¤D‘ÜGFtßó~;Ï>ü;}ó_-RüÊ}þÅþâc2·ýÅÇðZ,½s-©ýùâÁby!W‡÷ºF6¹›`Bž 1Ä·ì"¿]wÜQ]Rt]µ¡ÊwÜb/…«¾Œ’ê£?üáýqMãýGÿöÇßßÿâ“/þøé~÷ÿ}úW ÎúÚOMäšèßüþŸ?ýø£ŸÍÿÛ?ñéþýÓß|ü|ú§uÑšïŸ\áò÷xÿ“¿ýýïßßÿåÿúäŸ|öÅñ¯?ûüwüÝ'ï×ïÚÊ¿òŸ>~úùz% ¿1õ'¿øô“õ¿ùÝgÿí·¿ýâÓ?þZÿŸù§_ý•Á|þ%õe÷ù§÷÷Ûß~úøÇãËýŽýõ?ûü‹?~òùã§ÿô“?~òñÏ~úñÏ?ù_õt‚þîúøoø‰ÛN˜ŒëòÏÿù}/…X
+÷¿¸ †4qýꣻW_ª?S¢þ<}q÷×gB²Û·þDÇLE(.h†uA!ýÛ:˜Ë0+.IJƒzú1‡ õöUÌØ‚¸GhŽzçI}g™î±lN
+>‰ª9³¿Iö%™>b‡Bj¡Ÿ¯BZCLòP ³îù} “è~_PøU¹uï¤6Å€±Š"\;† Áçú`P˜òø9ÑY‡#fWÑÛe9-*yúÿI¥wŸÇòƒe6åè!4G=ŽE”óøˆ9Þñt•½u‚ÛÍ5D.—ñö™Õ}÷Û»¿þå’•Óä≵îƒÉêø²8QßÐ]mÊR‡ß a:-®*EŠh¶Y« AÌío£  U´ØÃpæVÓøk,µîe™ ¡º¤Ú/ðýè):w1Ô.?†1èRx)Y|2j7¿ý¼/§¥{f|¨í­ä#…ýZØc˜Å†¤r^ho§vò··åµAØ^ôÅg!ñãæåmà­©2pí‹àöÔÔøsŽ‘ãçöØñVûIûÕ/Ÿ÷ö«ç@õwÏÎú3KSŸ¼Ô³ ý ·y{÷SÏ‚îéŒ?â+Ò¯x¹Ù½€îäG„ýˆ°çö÷çYëki£ƒ9¯ä-ë65zn¡sß× Tsc“©LžÁ`NÅg</ª·óŒÚVO9=ÆP”{{ÕØgéù?t}?p}?h}?p}.³rƒçæéf6Q]¤Ál—Ég‡¡äÏJ-&j~§JClŒ#Kù±‘˜Ìµ™Ê‹êþD–o‚Ê÷R>&}œ(u“çy­*ý
+ܨs
+ózî`¬8hµ_àÍã?;›=¬!o»yø­ ©`°YÖ^~`…BQ|Mj`«#}>!7ÃûóX}2á’%úPQùøa¢òñEå㇉Êǯž›©—sîø¡âçæréúÅ0ÖPeZ s¯Šñ{ÔÚ]9%TQ(åPÛ" ~á8ŽQçnêqßÖ`µÁd?Ag¼ö¡ô^Mî +ÈdJE]<wyÏf{0f Ø$°½°%öoVEà0H?º^!8H£'81;‘kMy”Ó¶gKá­Å½\u`Ç°^jÚ‰ëÖÝ€n ‘ £qûpçŒMž}!,š¢‡ex,Ø3±Ç—Jþ2þMÄÕì>Kz1DÞ#»µ2¥Ó»…“”o¼¿O:)±… <‡ˆxz8ufÅBŠqj‚v±gÏ\€tÁ/)d^ù¾ÎÍÔK„ŽÇAøÚnÍäµ
+ª L§ƒÂá)íZ܇s,×ÝP€ŒµrU¹€?„ÕY77£œ0+ÀzvHºÜ§±û­ŒüPŒ(¯<=$Á·£`ÇŽ{Ù QÉ:I°zA[1QÌŨéþÉì\W$Ög”ðW†ÊøÜD½”=èxZC„ÛP©Š(¤)
+7¡î5ºþ•¹µ
+†N
+)bÂi ª9rQÞüƒ÷ld¤’#»5h'8¼«‰eöÕ˜\›‘"P£).¤Ä¬žH•,DúØ|­h#1Ž-POü Bsxy£ð4·CáŸÌ‚Á2[v1þ¿ÒÝ5{±ËBY”øUƒõ:6S/§:˜Û!KIùÈÁ1 ¬%µl‡dÉî=˜ÒÜ
+ÔE{ã†Y`S¸`•—®›ª&
+‹‰Äضn?šÄEX׳¢P>‡,ÃucR,€ÛÖ³+R¶ FÌQܼҳ׾´Seà„5Ìsÿ“â…ÇAÉ–ßÄjMUâk›‰iô\=r]yšô²H_2T›ºÛåÈãÄ^×3´üê1}™›©SÏ‹ÝqÓÒè)t¶c°FÓûXK­¡îÀG ¸Ã‹–%L´2M
+–¨æ»½‘‹¥è¢è²éx\F`:y#†ˆÄîÔ¶ ;ZÐÈÚ«[ç]Cc±o·Ù´93ãev/kʤµWŽëëØL½œÚèpnOøcØÈÖįˇ)®pö­÷ÕÈœI;TÖç°Û¸ûÀ§µFj&…KKrŠxØ…5·é;É&U’Ù³ëßæŸ8¤¾u Y9~1ç.jàÍ;1BÏ–yN×UÐh‘'Ð o“6fõ|*š–Ì2Ý~C±…#ï:º¿‰©™Ô s½Qmj/+êT7¯Õ×9°™z9/ÒñÀÈ·«ËÅ y+¦kÙ•˜ÌOTÓát+qNS´‡kÑ}‰Ã¸¬.ðØ$™iìòA:î4´S|#B_ß?™d,&+¡(eÝôD@>{ß Ž.7R2{&_î2j+fSÆJ•¬[¯^O’3»mû˜‡Äwö‘›™½,([ݼrP_çÀfêå¤JÇ©º¨ÎI¯ÛC4P7_3$(šë¡šb9Ú¡IÄ`¨‡y×›«ÕÓ€Þ˜Q Q,3R˜eÀtŒL“ժѠ¬&øÅ&OÅ:ï[åß^À–ëK¸KÅÄ÷4i-ç†À<cÀVò =5›´fé>%G‰ÎKÛ‚V‚¤Ên26Ø$n45¤jè÷é_ÖÕ)'_3¶¯s`3õrr¦SŒ}ôx¨!¶¸•¢ö_[N(.v› Úía§qŸî¦3¦8Øû°øBœÍ–L¡C[µ×D6Ô›s£Š*“[v|¥ŠÜÈÖ{ÙS1à-QÑÜjJ¿¦t6ˆH²ª¡èJæ.v3Òœ;¼‘m‡0‹aœšËX¾Ø.¢ˆ³{³¨eóÑ¿^`?›©ñ;Ï:¥Ó0Å–bÝ㔶ÌÑÃR­W]“rßRhÔ9m+‡³í„C'™·d ·šQŒ¢5±p6±2ÑõfÉÕÐE¸Þ“BÆQp“«Õ†•O±x…W«æ©GIY@oJê š2䘸åÌJR£]
+…r÷/Íbª@qVß^Ö¤—P=|2µ—µìãµ ê§s ‰z95Ô9 ÓwPÍÌï©[kpź©ÐT¹ÆyHn7ܘʋïLŽD)”Ü;ÀÒ{3E%mp’~…n•Ø·¾‘d»1ýÕÔíbÚKõ”æ:’k/Œ×Ñi'»¼BæÇ#‹³»ºK-¶%†ù¶{eØ;aÍ2k“ØgN/äôãÕHÑ”?[f¶]íL@yœµûW“J’Þ°ÇàáD©®«Ï!oKs„uT|Í{â26O/æ¥:iþðNû–`X·¥%¸åøBo¥¨5©žAÖ²R}í–•–ZÕ—KÛ=D3ãå”Ì*±#¡æýH°LMU+kÄÐŽ:¢Ír²‚½]SI,O‰l¥Y‰”"LðH[ÓÊ…~•´ƒ1ɼÜ8%̹Éغ¶MßiòetsÈÌbUœL®‘%ì%Ì#›=¾©±°oÈ´NK»ß@v:ýÚ²å’i{ÿÕéHN¦Wö”„ÁuFG³2vë*3»¾”·HeµÒì
+†¬2°ú¹+ñHŒdoüѬR¿6¬ÄM7MU
+F+4“š·:4éÃôëùÑÜ$@؈ `ä• px8G²{Lª•p¨*‘úÞM.+þÈ,®yèèQÛÁ)!N 3èÿ0@ÇÆOòbº¬Ó/€½e+ÄQ¯–«çÐ-à u‡¢Nñr8«ª¥x•K¯
+8Ÿ6êuE^Jç%E„ñ©í^ï!>öðåP‘3ý`ßkŸæçðñM4 Ü›Ák
+S(š¹àVcž&œw;^7 1f{
+ææõÏ^HóÌbÙêuà¨^(Ätõ9kJj•’]†çÆU i(6dÂ*mhkQÏdBwh<ª©KPìÍéXÝ&Xâ‡:>";ž¬øJK±‡IãPÛ¾ŽV|°5›%µât½è™ ~)× Ü˜¡È
+Õw½`RsÚun'-Ã÷6!*)›Ö‚EÔ
+ðŸAC/s÷ o'T©}Ie¿‰|<¤ŸO?Äkú8Þ…O©õxÛÛïù2º¬§_­ØÌbÑß‘_½.øõúÄhtwÉÔ”ÁI@¿§&†Ô›I5‚h43ïü oØ[7?²ÖM-±úw_Ò‹æ`?ÅN?äCû]ôÓÛOyû¥ßj“ñwO'õé´'oñtù® |ÁÀÛ»§0y¤ ÖÞÞ=…ãÀ^!paÀú`WÅ yE ùûã“£zÀž<ˆùþý‰i‰ãþ÷~ä3žûø!ÓôøÓôøÓôøͧéñîK?ø2!>eº£ÈlÁÄ¥ªkØŽœÉM%³sÝ,"aFk(%Ýg¡Ç£r幬eûá,Ú(ÿðèGËåç¿­4¬å$ÚÞEô‡@u»Ô••Æ’ø9ßä bâXô™–ä‡Ðº¶-Y‚&;P×Í©©„T©4E¾×Ú&åÞ¢íܹ¨.bg9LCbƒ›hŽgôSÍ’J¯‡:ö蟾±¸yüqóøâæñŠ›/ÿVŸYÆŸ–·û‚Ì
+š¤‡Nn!~ÚRÆ÷ÿ*ÄÇå[}6œ¢êC¹Peˆùë’HãÀ$3“Yu_v(a®ÅkZÄ¢ÆGÌÿFO£iéíHöb)°í’7ýÝÂ{ä­b/Õõ\ÿ~l•ž”YtŒ£æþ»¹“_ô¸~ðuBNSF× †‚Ýf% n%°³N^ÀLÜ•¼²;€å¬zƒœt^àÕIeš"··>¦H62†à
+ä1ÄnÕ¿¹(kÒ•Ó”­¨ý9É7’FS[¾BQ*£ò¦±£#ÛA==½!
+0j<)è›4¼&éH‹›oõÙx))¥?®"L]Û@pAô>ü
+;²Ë+%†-ïªzþÃbE¥nU/t;¢°S×Ì¿0>TÑÉ
+§˜úìáï,rOI™0xŒuÓŽU‡¢ ¦Š’V•GIœQ@jPƒ5´cÇñµ~=ñîh<ËÈáúͲö„R^ò×›¥K¤$i€c® ,—´r¤æŸµ±N1¢‹vˆÚq{žƒ‹ ’³Ë¢œP°,—_ào?ÕçâeŽÇÃÊ …öˆd9Ô¶(¿Ä¸r1Puw‚@ÙtVÏÍZס÷Ñ3ÕÐY­¾D$Z¬¯Ø܉MÅÅ0ð”›[Yg<ºÄ2G©"Ï"Ü¥ËA Áž×ÍR¨ñKÈñhéQî§zDó$s°#¦½¤nl–Å—²˜üÐÁ,QþCÌG6²s ,OÅ[,©E ÄGOã+;OÜÍ2)0ÿ: yó­>/ãoô‡5e™™FJN@‹ˆ„
+w¥ô,T7ˆ_¢ ‹ÂÊv²=‹¸MyÛhlB‚p¸A¬—ÝV&°u`5L+ÎÁDA±O›…ó•X·ŸêsñRÖÆÃűÞwƒ’2¯Y{[ ’ZÚˆî’hÄèZ¬dR2†Á¶Â*îRÊz9´ªd%*ürvíÚ<ÅsæÐ窂˜âpRå!D.œÓFL ‘kw%À‹í2Ym
+ô+0€PÝH&E#YrTÎÙÚýuânVjS„¾TÞ|«ÏÆKÉ ¾%2)œ*Öj$¶Îcï3oÌÑ0¨*cf9Îü¥DF ‰Í¹É¬fè|Öu™:ãÚ™:Îï"ç)t<
+½ž’…ù…È0Ì8FÖOÆlÕ`Iä¯àÊ"ëw¶êiÎIF‰aûˆ Oçñ½¤¸"¶lhòZ —X—#LlHÒØT¡æͤ ™££¼@^¾Õ&㥼„ÇÓÈÊîR2Ûì[êaœ…ר2Kwä ÊÐÛÎ{&.²je¹Â,Œƒã'*»"% ~ñu€Fde+LÅÕZ–¿€Læ@ŠìãÑñ9+µ]E@ÃÓ_@Ê÷t#Åñˆ?Š,ÅT_djᇡ*$$„ò®CñEÛf|W¶à?7‰Ç˼¿ÎÛÍ:¥òJ,ïë·úl¼”PðÁ¹oP²¸˜–U02T¸«‰8ºèa.°ÁŒtãB/Ö]¢ì´ºÐ‘$E£ ±%Gƒƒ(ÛÊ7ñE¡b´h…†DêFŒÙP=g¦ÜÔŒ¯Ké\W•3ä$Ø¢èˆ"»!*‘&òd|?FZz”£„%Ó>¬2ì°º a©9ˆ¨Ã]NÄýA(‚%“a>ÎnŸ¹›¥2B WËÛoµÙxàñ¤>vF
+‹ÛØU˺—%¸Á\¸Ãú=ÑL’el j8ôèîŠ×b—f:½aèuZ ]pD.5‰InÝÀÙS€Èµu:9@Š’¬z[Â5¡0]šé›ªV”Ýeçá0ºcÈÃ6/£eRä¨fzèQ ¯'ùéT°—qðÏ|Ïšt_’²v1»”­j›¸›Eª¯èì¾ýV›—úgÜØP‰ú<úAŒ)áÈDx2ÁtÀY! T'…9þ«QWBÃà-ëÔ N¦¤¬~L^C(œ±Y¯Ùšj~S·™H1D ÐR÷$Ü W\¤–$„OßÄ$™ЇÁ½ApŒâåXº Ã;Q#Úȃ ¡8•ìØi¨DtE(6Å*£¸b¯w³Rmö×Oò­6/¤Ô; á&B=oãV,\Lúðl¾: uj##]!*[#™4x b’Ëd‹Òþ+v³–‡ºšÓ4d‘,D!‰‹Ôk€¹)o¸´¢ö“DRÕùW–Ä…!6U.Á‚ÛŒ¶ú¥5ý
+š.4&V UõÈNò˜¦Nò^1#ïL.ÑfÀœÇv#ßG xÎV³UÅÝñ¤Ž~l†P3ËD&ó(¹ô-ô2@4€7I,Å
+‹QQ Í›Ó$µ0PÀ·elfᇒq0è€ 'tÂD2´ Šv­3ŠÙE$D¯NʹƑ=˜àb§¥^èåfò3ˆ~K³
+©$¦P'ùmRT5c3ïª" (`ÿiðÄKz»~/c’ÃÑ“¸ˆ¬Y`èpÓgª#1M}Ó…‘OÇþ0îê€Ñ_¼³(r;ÈoŠr1m!é
+YrÈMdTùåÒ$Èõ«uB¶î:f¡Ö¨š]úü'݉wšÑ³ðØ´ž¨L5
+<éd.Âe,cjE5üÌ‘ž2k >HlHð¼¿Nø ùvÖ Ö)½…:øgL›&ᬹ¢œÑ¹ U9DfGUÊ£ÌczVCrt.²`öQŽ"úE
+
+TsžCIHÁFÍìbPmZ™½’î@aˆê!¶œÃCª pÑ‚¯9…ñÂtÐÜÅ®ŽJö@…Ÿiú¸¹ˆ+MèÀŒkÉýˆH¬Yö‚oä«ŽT_‚5>9r%
+QY Ë?ib€ €Ñ¤ÖÀ‰^fxðŸœAÎbOtó€¾ µ¡9Øõj·³þ+>TñoHgŽRJCÁ€‡Ð™C§É-¾`B*2šž0/ø9‡°F‡!¼ÞÀþÉ3d”…mrn †€ÿ"4!ô2Ç“8Š´§™TM¦&Û0\ó>Ô‘^6DÊ@Gœ…ðëß{Q¹Kµ@&¾¡^®ý;¤%Œ„˜i x[E]³ìlJÀ^ê÷
+5q¨Z2?ý2­‚*s
+×Á1{Yrt[
+XËJ§ å6?¤éVËhæßæ¢ 9^3DTXÍÈ~òò/ä±+`ìñlQ Ï u2ø0ÀYn‘õ¥µÆ'îWØÀÇ\€×tH*™%‹˜^N7Mw P5ä¬Ub[IÚ¼xÓl7¯þRººg m(ØéÆÔ# 2/i*vÛ³#àuK¤W È¥?1$Ÿû®Éç (íœüGTž·ÿˆQ|ü‡4p´èÜ]¦P=.ÇQl—ô*_@ž÷ûr’³"Ô£KŽ( |Çåz—}Ü·¿„?Îðþ=cË{b} ßpÜw‹{j)â°qßI×E*Ò3C°ÀÛönß÷t ¿óvÄùšÉùX6a…q®Ä¸¤ž“"w_ƒ”âx30ôÔ,“Ç;I‚ŽJïî”6‚L+Tý¸,†PÌ…Çæ{9î¿?Þ‰Å)~ ¢nÈ~©žŒÂÈýÔ8aþ݃öQÓZŒd$”¡ô›=áö
+Šî¶¸qaÖlÏ ›çD /vQóµ‚ækÅÌ'6»3eœ#úƒyã؃ Xr<nüìN¥>ô,Wû·MÙVÕ&IGÞ¹
+Fü÷.PŠ×6Ùð§vß\Ú=~ˆ´{ü i÷øU_m3óR"™ý¼,² •ì ¸ì"q¡fÅÖ'@ £ª‡©ë)e½Ù
+ÝJ¿•NåwZ†ZÃ+Ô^._m3óR¾›ÓóXª.øÑÊÙÒ˜ÿ8LUM1Nþ+¯Qĉ¬6Êš\öÙxϱ$y[ÕnŠr7Ê·8«é:ÖÌñž¸5Þ£ÃÅ’úÓweM°ø4vƒòP «‹©϶¬Ë` µ(ÿ­He%4Fzv ƒ){Þ†—Èœ&-ü2M·K£Î㯠—¯¶™y)ÛÍéy¬:¿±Ñ³7àF6U‘\!m„¬v“!Ū-ùÓ™UÿF#Êð;Ô¼(5Œz@“ŸtMfКÆYÜ.®‡½‡©œ5V׋լvëö ¥ 2Õ,T6d6£;YVÏtõ¹9?;2ïìˆ!cé2¦ÉÊVÝîn:'’;’Òåd6ÜXÞ6›—dù«ÃííWÛ̼ çô8±¹hðÛŽ¶è8´
+Ílùlx £÷À¢‹1[C bRÇTk“+ØYc°eƒ@BÙ˜ð Æ#™GK¬öP;Ëvd ç“(‚¶ç.RÖšÏG¥K°ïZñˆÓ$×fŸ”ãD}%K)Þ(×ÝNú1¶?#Z§å˜ÍNç÷²4^xZ>ñ—¼6Ð^¾Úfæ¥l9ûyIÎŽZ7
+FÛ²Âo»T¢Äi‰nj™Ël÷ò™èmî=R &l¦í7+”tÃýƒ$–m•û[= ×–í¬iÄ,iÈœ•ŸB» uÚEI%^¬mõ>ÒkÍ!‘,uû:“·«K}…˜½|µÍÌK)wNÏã"š¨ef,Ö…|ÅÀj3?h¦2¨™6ÉìRe»²U_½_«¸¦)¤.øºð#&M ¶dYl°˜‚¼Ã,0 ÖÂô³w©®“°!Tt/1ø'Í#«‚ *Ò¾‘¤»G<TJâA‹¾L&àÃy5Šç*8j+òWÃ${Ö˜»÷2—·ë^¡zpóÍ6+/åã9=/íp¹e¸û;¶!ürÕO²6É<4ød‹ ¨|5
+ê ,‹¢h5÷
+xYæ™å£ÍY\CI„ÒÉ› Mѳ£Ã½æÍŠF=I}`(0hòÍDž.ä毮O¾šóòžžÓƒÎ©„èôaÛÃâ´Éåðîd¡•°55v˜ò'›ÜÛÞC ¹ŠÐÒð3~‡ÒºÇ÷,ZµÛÕzÂRYhŠ´ž§­•ç©ö ïº1_D3£ì•PZš=¼ y ¬êUÁðœ\¼$[ª¢ ÑÉÒY
+D7Ø0›kzXئ¾™ËÛ…ëÏ,í¬7ßl³òRŸ“èæIllËÍ–" ±Ò`“i2îMàn˘•ü<IÕâÄgÉ!ˆ³¥ ã¶=‡˜UŠÊ³?y— b!æd ~¹O
+£úƒº‡ Õ%’†‡•à½7_9¹
+«5[à{ZLºSšdkâ<apmáÁHƒY¯ßáºÉõX½GœT2ýT/¾g¬[9ÆLŒ¥ˆd£Vàæ³DÞÛÙ1Ϫû줨îÎhÖ*s±”Ù ¶ÚF·›T«¶ •·8Œæ5‰å3¢¨ˆÖ›-^ÖÂðø±9U–2I¾9oóľHr,q³"}ôʺÊì:9•luØdz»b ú}I˜hÒ¢søá «àhí¢‹Õí‹:óôV/¢z}Œäê³í¹lZ˜]SüƒÌQ9 Áš5=Yo'ZúÀ>êŒ{š¦0ÀÓü™ âh5ž$Žyn`f;°YØ }­f¤ÕCÁItAüúhŽ^KR-›¢…ÆV3÷l6›è<¨XïO¼Ê4x'ºAÛò¤ÅÐ5<YQFÙÙŠ;)6™iЛù„5kdx®NMî0ïXu½*º^FúÝw;m/d aº¹™-&_«ÝØYæû G²ÝÑó•†Ñᘠ·ÃÍ9ŽxöRè§UœL]C¬ŒO©b4y ÏvÊÃõÕõ¤M
+öâ<«–¹ØÎÃv>V«zýü+ªp-N/¯ÈŽæê}Qå~ëìUföÛ|Æj)‡ÈœR…É_ä©’³,«ž²­&+Œ1$¯Êg»·iBÖÜgîãÉ»õã,û>‹¼‰Õ˜;ÓNJ%¶Dï°fEšÀ®o1(Ú&¨pì*¤–ÈåÍÅ(˜È]lÌK†v®;è>™¥0·0~ï‰<ð kÆAX(Px"&+×yÕ%+Ü)¨¾ÊÛ
+Óc¹æVˆÆT`y
+rö[”·ÕS]›ÄuUµb|°¸E Ñj‚‰êÖvL6ÏsPBôI+¢>6-g/i©F“­«¬‚Á’ÕÀ°hÂÙÜQ-»8V,…!W+ÔIžGyžÊó`ŠG¡gù¤Vk’k³Z>ü¸”ÐÑÜû“ð„õM-ØziRl3(˜=g*(~ekž­$j±Ø$gØ Tn¾ã¥4=_b~©5s|àL3Ý~à¡8{¶jíô ISƒSpÏDò"ÌàÙ—Wú‘Òç;¦ô!P›8}Š©òÔéŠÁaOý‰ºø= y¤›û?ÌÓ-*P±«ÜŽöÒ=]ô¬õ_^µÿ`Uƒ°÷úañûÀ® K³úzÿ÷‰ÞçÏ ö`k-âB3ñkcYM˜ÞÙ¡m&ÂÓ±ª¸Ï»ó½Ï qF—±ipÌä„w£Y²“iÁã(€ûa¿\U®·¥RåÇò¤Çè;{µ·W¿µ¼ü0™þ §HµÄh­|D§L9ïé*¨›Ô §¼Ze±löá鶖LŽM;¯ÙWoZ½3°tö_ñ‡i¶ôžÑªÇ>?vZ¡}ïscIÍÞ=ƒ£ÿ9XuÞýíÝ_|ô³úñß}þ›wŸüéÓ?¼y£¿ÿí§ÿò»Ï9r V0hµë{×ÿ†ûŠÁwÿ|÷—ÿý“Çÿç“YàÝ— Ž_ýüÝ/öÓûÿr\û7”Æáãuõú§ üÑú¿_ýÇ éÈJ†û{ºÙ3øŸ£f'·4™–k'\ò]ø×5ô÷åþç÷ÿøOáþ7ø¥_Ü1Vˆ:’ØYy?“I‘GÛ‡r÷Ä-¦÷ž­êœ]uA@ÕÚCµ».©è§žÌÌÇPm ÊEÕo<r¾´,õS±µéT¿^>ˆ5†A°k_‚×aNÎ~ _Ùr\n¾ëKYžù~ÝŒ"˜b.þµ˜'±I| ¤š-x»GøÚoLßOɃrü’ ¬»:òFÉf׌jÓ±³Gü—öÀ~™ýßë7½ýªï¶¹ù‡»g&ú™Å˜—×yfIŸ,ûoïžÐSÝâðíÝ3P}
+ç§Ø¸å^êÐŒþ‡ÛíðѸ‰Ûê&ëýF?ÂHÔ@ûëÁªbÈili Þ¥==+z0×虉{ü‰{ü°‰{ü‰{ü°‰{¼ûªf‚luÖq,ó®g/ÈI™#mw¤C<#§j5V[â÷h§ ;句e¿eS
+¨}]Lü¸eqâغ±G)ƒoHпtˆÎ=ÙRØa”OŒÕ5)ü¹ <ãˆöaô¥b¬
+qèß«.Š‰MR’˜Õ9»â«ŸJ¶Ã4•Ì–5#qLõZT¨Guò+Noa"lSžnï?}€Èzü ‘õø"ëñƒDÖW¸O"«ÃK7»Nìd°Ò¢ì½¦ª£›“a½T * (¯–¼È¬]Œß€&¶à {Í)¬
+±2»ØóÁxŠ@@DCv$μ§øi0Ñ0¦ú
+tl€8`Ì“t×42¢F†u;iJ݈ìP¬ È]‹½ª½
+CÀ6Z—á%HYd'\ƒZ6Æ8¸fºíõh¸·w%:‹ÆøúdÏÓ÷é1Ùãô]u·&{N~覘̭Ôi*2Ô™ àsUe5µlѾ„Ó˜çDCÐ#ùnÙ¸RGbè£>¢Ä‡B\A@‰#h„óÈnëȯ"¦é¼2pÞ?ÌŽ|¼U¤çˆóv+öÓ+:Ï}üu‚n¦‘…t Q*
+ìx°˜l4ì˜Ûý1”?ý±If4²ˆ ß JŸ .+züu³5DžU‰hAî‚e²‚)ŸÚ>Òäx£ßÊ¡ ÀÙ¹PVdâA3Ø—eÚRâãëGK7Ÿ?Ë=GÐ
+ ƒ9àh)/ù
+Ñ=(SŽÌP–[š¶{jš³›œ=ªÂ úF’Å%m„;ð}@pžÅÛŸëcµŠhÜŠ@0MtCgæ*àñ†YFÞm¼wo!‚9'°®‚NErsâÚýÓ‰¼YÆì…•¯ ¿O?ܦÇñk¶Ow…×Ry%Ÿa±®yõÉ+%xü|¹cÁô’”q G ’ ¬ŠïÕ°¢%µ6Ö™Êôè¼<äëX&t”á`vÃ¥Ù¥y¬Ù 30Â}…Õ*òÑ¥ˆ:ø¿q %
+ÂͨRb,±!J©Â5ÕLJ†•Dp<ˆ§
+­¯8ióJ(M£Ï¸™½XœÀ¥&!à†§Ù,^fØ•êN+;†ËÊp/ëW[yÊïÓ·é¹wû¶çîˆ=rPfŸ8„N:
+“\øBBrq’”_æªbÄX×&iÜxIPÓÂPÎpÌhÝe‚ÉøC,@xRa­¡X‚F#î{Vö†Nn¸¶ˆbí¬>²›Ä#Š“ò1àð¥•Iš‚{ œîðpNÞpWˆáTþ GséÖ Ãtyà÷Y‹€t :Ò |»ˆ0Q©
+S«¤¾Ä0v¦nÜé`’;-e÷Úå׆áë‡Ûô8†-²0¶¹æ‡ ú>„‘¬1F²Zörª\?=–V” \@í+ëÑš‘ÍÇÁ¤ð¤ãˆZ½e^&$âû$·éFò­2Ÿ\ï@p£ù–Õ “ZÍ¥
+)HD¥YÔƒ‘è0~–•4² aë'Æàb &„Áˆ
+pÈe–E$ˆwF±‹¸áÙp¹ x†Ó”F`{²5Ì‘ºûÓâ†V_£÷ôÃmzÂ2׫÷ÎùÎÛwÛaW‹Ë3Ð0¬‘÷h‡œEA‰nÌfÃÅ™¨>†@Íȇ6Á¡ÊûHʆI€ÉG݇té ÂRN‘»åÎ]²·5eHU’º!®Æ´¦îITÀ4ûò!âš•©Ò­e']¼lœØP c¬XW…2ÅD†"…–¯¹ds ø½”=§^ä,fÃÓ#é>€˜n‘Y7çâ6óe•š¥‘ž×’2ý5‚øúá6=b6oŠ½mÁÈ*€iqy&[܆âÙ´85§2'(ãhDq§c-ËŠ2c®²ÅíÛ†ôF9ÛPç×.# Ãx¶0¯]„(P%f‚K:…TßÏóàHépš5DŽåëÅÝ éA~´d©È¥BaŠ#”ÌŠÿeë2IˆHª*óf2ù‘2óü¢ŽëÛ‘Y«nf&^rƒn@:^¾×8[ïYïŸâÁp找ã*£ç ă¿Õ¬ÝË-ÌŠªú³ÎŒ€jé§ 3$»‰5Šq› Þ°”í>j¬Ý’Û'R¦7ÞMVþ·˜Î»ñù1ÿ+S¯í–Ä›‹|š@a ´œÒ/–-c’HVšéJÎB7&Dú-
+èà‹'¦*Ê[P˜
+‡ìæΓU%
+BKŸŒx0z&ÌÀ9B ÎrÆUÃ8ž¾×83j+ ¾ gž€¾RGsY”g²³øC­oœ ‰*±fUW´ðã³Î2EÞ©^©§I8‘g æ:«ù¯Èx)=ZÈ* fu :_‘ÙÆþlp xÁˆÖ9ϳdë¾$Ü70Súh1e¢€ u:ÛÜäÀ4%ÿV%ò$«ؤ•Á¯]PY~ƒí!‘~­+CågH±¡Á÷c­_•€Á1f‚j7¤M/¶ûOxài×À=“áÄß®^ñDú?Ê©n¬m&Ðð'ÆX–akMpd’Ú]Öwmv¦ˆvëe­]áŠ_g¨ÖŽÜ7K¦U9t<éé²0áx†vÅ
+:;/°dË"¬À˜ÚÀ%±@qdªAV63Œe¶ìÁ9`î“qd*©…ŒÕ‘Tûr”ÿ@a-¸„‘¬Ëé?`æår³ NןvBúѸdG*7Ý>°¢ˆ&°Âô`‰•µºGú=Â8m8Cñú¡iu A‡ŠÂ`å£ê¾™9™‘NR”%©Hfñ¢†L‘©L&á’#ÁXkŽ†ÒìŸ^D‘ûÝ­(š°ÜÑÕÎe†¦‚¨Kˆw#Âym # i±”4Ü<à/Óøh c‡ÄÎâÝÉ:»yסï¤Å#9³µË÷Å#â3~e+½µª7b!ëØ®‰ 9AŽ`¤s‡êlVŽÄàøƒ?*ñ"ÜÅ=Š„&ïÑ…ÜÔŽ ;KŒñ¨eã^û®VgI
+u׃ëwZↈ[…›f¾ÊS½îOuJÛ
+ ª?ŽŒLB‘U«uµi¶uæmC,‹LÆJC¶À
+G,¨JÃÛ´Rég±'a…
+ _USÕz¡ÓŒ Šódk˜Êb/I;u­z:ÐP*epMÅ«´31=!%5­ ”“ª–¼úM%sÑhü±Ñ¦6Ñ™í½Æ°Ï9frŒ„;¬
+g挓ª(Yy¥X–éÀîŸÀaFc× b¸<•äƒ)aþšî[ŸÆí¥ôQÕ÷É(V‰Ãkª¢]…¼Ý¤j\Îd^3.¸"ž,Ëã·ã×+SAþã%h«ñÜÔÚä)U°µ£DW¬Ò3þŸ¯ñm7,ù-k>4nvM`ð&Y@»$ÑôÂHûJ^’€¶âLÐk8žÒÈqb;Ÿb”ø–5/šÛâ¡=¸êºd{d*ݺ'sðø­ø² ¼ð¦Ô’áçV¤œŸÅ)ÖÑ'¥˜µ×ZÆåñµŽŸZ¨ðùbŠvïr´Òí_º;4 «Þ±5Œê¡2ø/œ,šþÙÄ5º~Ê—ÍÐ7ô [ÒÜ°’¦(ŇóQ­ÁÂÒþ4RjÆ^ÿz«Þ&¾pÂ<urÊ85Xóå es4ߌ½¿Sï2_Eë÷)/áÀõÛ¿;§ÔsS鳚ÚCi [“Ô4ì’aœ±ÍÊõ8V5eä!–Õ¯S=ä‚üî¹ Ï·*JÈ=D«­¹G [:…­R6[𞤎ð8ÂciWŒz}Ä1Ãoݳ‡èÉæ·äSØsúþUä‘þ&ºb¿ê~Äí÷ü°¨$ß裾ŒIÒöÎ÷‰Jò>å<Œîy&É+>/èì_ίÆf›ß™ß—¿ƒ¦qh"úH®e&x Qã³óÔŒ¡%©òiÆuŠ@6™UGX²y8’êAöØ;º²ä@ÿ
+lcLk¬ïg'%ùo5ÆSÒ&j»‘Q•¼%2Ø>`‰ü’û"¸°³Ü¾•¤›(€’cQ=<XÒÆ2{wËS„ïNÿܘ/Ð{£ª‹÷?==¥åÝ á<ë±'û’Æ…µ÷-xT/‰A)rD ßÃ
+ôSå·¡XɺÈiQ|DZ•ªã"¸‹˜ è48 ®l·í±iŽ%ödÆêTþêåO6òH*#2¸Ÿ®šjê̘¥¹T¹ð¯U™LÇœ ë&rŒô}×à‡¼}fz}òÑ¿þå:Èý/Q¼´?]ÿ÷‹«Dùè‡+Q¾8ÍÇ™¸ÔIz?€½ô s$ë}J˜†á²ÔÏõW £Æ-­—\öˆgi²wÞ jóÈ‹zãXñTyÕýþõ¯Áê:‘Lz>!7\ŽÕžŒ@‰¾ù¥vz”¨ðIÈ Õ+Ãåqú¤/ã"}òÕú[baîé Ô‘"ešü+w/¾~]Kî¸=à/ùöîBˆª\S=!æË;úÀ[q¬:®AÆŠ¾ßŸsŒ?¶ÇöùƒR½ù’·_õ¡\‘O§ò¹é~ò
+Ï.Ýuy/x{wÁÈS•'û Ÿö¼ú¶ÑoÂëô#D^Dþþ¼Ô3•ìë ®Œ æù-ø`$Ú@¾ƒ!TcŒ||Žá™|þµlmOC©”vs éNoüø‹ðøa‹ðøáñ/Âí \>ø錜g-Älcð!"ŒgG:ë+¨¿’T»‰Ÿ6¤onH¢âÈ°*\æ’êšVí£ú°"éç{Ž±“>~¸‰³Á~Ža–5Gà#Òˆfše3r¬&+G@¿È®k¨@*`JH%TâaCbåËaiCÓEìæ„· ¥i ©÷Šï÷§¡Œù7RàOßTž=~<{ü0yöø äÙãW}¨MƇÒqí瀪À&ŸÝ µhCE1›´²ÅIhDtxÇ)4ÀÎÁÛê4ø‰.o]“¢öÃÖ Ž‘¡+Àg¤-Tõ[ ¥ŒÜsq¸`Úw¦ÕY•È fWDŒ€Œ ¶Pøl¸ÄXtᇆ)vë¯ÍÊõ¬K‚u /…¼­Ú ðNc„d•@,Sg0rÚkmš\bé9‘O‡“=dÐnÚ%››±Y| ó0w¨6-ÛÈ5&ºkĘ U5Q¤oÀE¹­. ùû¡k¤¸$)Š`¬ù×±¯4QÁÖ½W˜ÜBR±ðW°÷.j“ñ-1‹”ÆÏWæ¸ØÃDl—µêê5‡ÊÊgv”wPu®±ë€d
+k$t.®EÚ×®?Êõt&4œ=êb++Œ0+OËÁpÆ–áé²0iâbÍ÷×™¼¬á¸¹ä ÖñÌ\|;<d§‡æ%«Cjdé"QHaJ@'¸SP†éMä X(:""è¾
+0ª¿·aI£+·–ç2ʺ×nñL 3"¥~Fðæ ¢r€f;‹VŠy¶BliSxÒ-=^pÝ.‹›©¼¬â¼¹æ ×ùÜd|Kd`§Çd»8;f°ÉXj&~@Kñ› š­)sS“®:“%èÄ2ò*Ê.ˆ;œ¿„ëTv$» l›¡+xUÆsw=n›âÛƒRX Ìæ¯è‚ÅßçE”R¥@pmÓ|ÊÔc’üÔ‹ó%3ªBN*jÀ×,ÛcCiÙÕW}°çíñ’Ûe4|ýðñzùP›ŒoƒüëäÜõÖ°¤D‚¦hàV¤¬rD$ŠpPÄa†ÃpM€UÚ°øgX4M£(Ó4Y̱‘\`×\841/•dª€xèÞµp5Í­ H'é´ÀOŠ®16=© éâZ{5CžÔo£9
+³ïù¯Ð[áy§ì` U®û
+Y®“y»Žêö
+
+Æ>ˆ!Í ¦Ê–„W¦é›€UtÀêtè^­&OKèBð”VÑåÖЊϖ2èŠ*bF†Ît+øL*ªbÀÈ„É÷¿†ŠŠ•¨
+tl(³ùʹ<¯bqåú‡×'j“ñíwžÊnk×iË0³¡“Ñ%.Œ¹ù™>¯„†²uײæûšµ›Ü*RAÙ°†ú@U•ÀY»bwÖ÷5šIp "Äk·€WNépÕš0¥¡¦ X&~ÕR›S6´q%±Ûƒ’§u >­Ñ”Á`VÛdë ÀèÆ$[‡®Z¶à­Ú:-Kð´†éÿoïÛv$¹®+¿ þ¡^xŠ>÷ËÌ“Ô–
+„"FzÞ>‡&´lz;6š±qžÆQ•¡QŠ%¦,©bôK”3y…ðÉÎ7`ž;¨qyö]¤r*.𢮜5~>õ/Ôø(–¿-æçE…‡ènÉÅ\½) %PýðâìÙG™øJÄŽêÓ-È %4´
+  ¡bZŠuDSÖߨ|¡ 5ÈOhÐåYz‹tãTÎô0«‘èðŽâX³SbP»µÌº”þú¢ËØÛ/pp’¯ãÏ ^ÂÑ¥÷Т2™c
+Jì¼?Ôw•=¶µeo4R©–}l¡)Öä*¡ÔèçHŃŠÆÛ˜¹i».3½ýz³pªq½ âIÅ/May:ê¬,„¤OLÕØåU…iDäx%Ür̆{ÇóÉ4í
+ŠŽ™„„â«QÈgÝ55zªìiÓeë £©¼Øy%¾«½û‹×ŽèÅ
+Q6¼è²x$ôb£XÇßÝ
+hԛ么ìfI;x_Ed&|õ".ùeY/è‰(š’¢%zVh…UÊõ¡•3He/ sÔ)+W†éù6’(Á©$m˜¤õ=×Ø!©ên³v,cZïb¸R½¼[BÓªbÈfWT{Ó¤h¦Çæ©z*7DI!'÷ܦ-A¯¬óZÞˆ ·ÜŠÔNžwÈÁÚ£ÙûÙÂÇÕ‚v¦­.œ£w:PŠ]ñ'«6®Ý”`*däEAZŸ€Äû•dÉšÑÌ bŠœvbµÛßÆ°]Ŭ’¤ú°nOa\ +Û@îšÐè¡än ¹ Õ‘4ê¤ó
+^O¾€a8HÌDÎZ+‚ч¦anOðI,G¯†­8ãÊû
+å¹€ƒ5Œ°¦[’/MÉ4Ì¢.:]¬‡e?<ó²MŽ Z»–tÌF±v*’ªÑí"Ã%^+×é$…Ÿ ±©ïÅf˲ÅÇ uÎ!ÜN³Ý¦1 õïÑ,.±Öc¸Mœ®8`ït҄ઠBpÑh8þDª„g‘<1íÅ$ ´Wx«]‹>k3<- ŠÝXóJO2?I6”u6{H«Ÿ??ö³"¹/Á´VÐÈ^Êj6YÑîql´k×O×·œJ¥;·`pP€X2%;~¥ÉJo¦8ãÊ
+ð21<²é»i-/V4Pöä1»Î w¬dÀ]5»OõQàPUûÙ.ù¢°ùé´÷{;ãœgO ˜ªÀÆ"N:
+¾Ó]t”[xÒò@=š?׬Ý~S‘ön˜ž}d… ?’ນö5£t÷·á†zÂ'½îäøãõF5hå¯Ëvž¦]åôù×µ`mØ»‚¼È°$c§nä…4ê{&RX‡LŒQëol–ÞdÏž"™ÿO§ÝP—E~üÞú{ê³þ7ÝërÅ»Îæ]ãºö›+;søÞá~dŒP´Z‘{‚Š«´é·)T')Ô >úþ|ìýùÈûóqwb|jdĵB×dÉ1—‘ Ê=T@„ÉXÝ°~\$sÇJŽ‘|xÉ^+¤PènÖ˜É@a{!K½Z×_°üEÇÈ°³–x“ȶÊ{šÙÒ°AU
+}3åp5Š8Ìóð«ú\‡›ÓÕœÂYðèQŸ"vº¾(K8±C€baB'>÷¯X‚ b’%|
+Ìã '|Iü)6@/ØéÀä}¸Tf(ï?é¢í›)"àÕc8†Ë´.¶‹¿¹ ×­­‹í·ÿè1_½g9|ÙþåîÚF\Ý®Ëm}uw}ûä1˜^Ý]Ý5h–Ç»p èÃ,]ÐD}÷(Õ ì^`÷Ýa÷óÓ¢àÊ­^
+ör\J.(јËĘ] ¡h Å¿×7h(¦h; Rb —“6OGvÈI˜
+áx<ïÛ×'TÀ©í®,É•…;-pµ¤
+ •›ËsÓìd“k€’¬â" h¯Òt¬-áœÄÑ4C%¸<hÚ‰¬ôõJ¨ËÖp¥ÂÑÔ+œDzƒáÌ.5‰é9RD™b¾žâUæü«r©F¾ìj®ªWã->€™£Þ1Ö—\'ø^xVeò7­x’³@Jò]×|*ôðõó›ÅÎÙùh“’¯\S¤¦{¼¾l¦é¾ =ëÉšŒY=öiN¹HQ‘}‘óxY‘¦ábË2d)M€æô=Ž(¨E›i%ÜQDŠö»°¾É ¼ØК\‘œÎi·1¯'a¹Ð,|k×˯~è*îÊ’\Y¸}«¸Þ–nA—5
+ªqìí¹dóšHâÇo"¿ÚíN`ž=àÕÂЀ*•ÐNÄ»9²Eß„A î2¾“W ¢lÅÉTHQäø£Æ°eϱ\“Ó8Y¨9o‘Æ[F îSî2‡~aŒ¢Þ09°wFÃ#ˆˆ5Ö™EdWNÌåñT.ÿE[=±¾lÏe =\ ="‹0k.}· 7Ì&–#@„*]J
+| HrUZjF“¿pî*«‚ï…3;<0Ž?elò«]VÙýa~nšaŽ5-:IƒÔž4ì͇”‡32Š\§_®fÿ:ÊŒ®)«F1¾Ú'ö‚ƒª&¸S® 0ÏJFxºpÇ0‚Ißí>÷Üù“tŠMfä°^íÆYƒÏ"žëAcÑx²Uð<·£k˜°)·‰R|Îúo™ö‹³&HOûùÕe[xM£ÈËzj5|ÑnÄûyº0¹ü@åQ(¬(a¤ˆî Eu˜·Âòˆ8ñ’·ŽÒ);ê¢àÀ»‘<¹œSZÚÎ÷Ú5b5uqr¦0y`$«<<Ó×ÕëPÞ8=ÛùÐé):<Q8[84*ø£äoˆ˜Õåp%•,âÝ›³4
+›åª¯jz&FB‹ÐD!„™!R'ËJÅJ _ˆ»äø¡Q4Tëòxq/7Wd^°þÄrø²Ý†8ôpÝ©òQ÷é“ôfo7qÝé…OµGÇÚ‹[[Zö—ý€¢—Ø…ëÍ×ÔSÑ*l.yè­{b¸n ÓüºÑÎR¤‰àl+H]"21ê1FÇ: B}ÊVÞ ~³’Wùž¶×öZÓ«£MÕœrJÀUÌ»OÄ'æÕƒÙ–c=áÉÊ-ìYç7÷éEÃ…,bÖ«Œ#~¼¼—ÛKî°__ _´ñ•žÂcÛï`ÏökÌØÚ)4Åâ!­$ü·ìæü´ùÛ8Â@Üq*ähÖDz]H|vÜ„ªÈ.L›æP71,WԄפIÌ¿´º·sê„+î÷°Î•S­˜šÇ=–
+C¤&‘QjØI OcÐŒý[+<…&D_j‘Õ8“Y?cˆä‡c6Ѳ¿ku¬ã稫-íyk³¼È¤?¹¶l7¢;=]x >âPGÃÃ(æÔm8­fw@Ò£Oµ­y¨6£ÅBQˆê6ÍæW¢ÑíS˜ZœëRÎ,¨%ÌH·‹õÚŒ ù ì3ÞDÁ4q«§WBÉÒëì!”‘Ä=
+Ë[F÷3ÞL5­Aoô+8ºâèp¥qÝÚ4Ë\øÐðsš]æ}=4Êy g¶2n¡½h)gŠ÷WV÷r{ÉDõ‚ö'—ÖíFl©'ÿšþŽv4_@¨qëD{oš²Šå*z5´NÅŽæ,ž
+ ‹ß€‡ñïAfY1À½Í覓išŽ8TØú1‰P—¡ŽoÇrª2QÛ²õ-Pcsi±OŒ0†¾Ë*àçÆU±¶kè]ì4ãI®þÀÜÜkí÷®—U2Æ"Ýa3ƒ9ïÙÀžµj¥Óš¾º—ÛË& ´?¹¶l·àZ=]•½¤õɼBôD1’d£›¨{nêµ NÈn1›è#Óm*<Ís–ýÈQ$½É í‰8v°4t{Y™ŠìÄÄ¢Xø‹$²Ö‡øš@#NUxÚ^¹ÚŒ_÷Áf’X†÷¦‰¾th{Õ1“ª€:»€ õ‚òU`}7dȨMw)eC{W¨æ¾Ï|všJWør{Ūô‚ö§–Öí/fj=yc½›×J3?Ô`Òn6f˜$x:%rú
+‰!=ŒeµÓˆÞtzÏÆ Z+âsÇ(hB¨J½ÁòÁ‚íUOCø¨¡§=7 ŽÓœìÍÀXÈCß3«y~\XDšåþ
+fnCb{þ)ÌLt,:ʨp„ÅÙ¥GXŠ‘É
+ÜR-«9¤*—ºãdßbŒ©Ø:lšw¨Œr¨éŸ=ñqª˜<?êw¯Úï©”N„K]‰âÒ܆ ÁPíµ!£±‰Í†Ai ã”Ô ¬ŠÃŽQ<
+¢“Ao1£®ˆÁ¶n/–䙻ƳÎ<0™«¸9ÞšQl®¡ú0£àÿÇöDãd¤áÈÚ"˜S¥?S.OÇ\¥QÛ{¤™FŸÖäµ³Æ}÷xyoÄyË’ó!1¹ ¹Ô˜èGÔ»R³§ªIcPК¢&!–l,ª<c²ùˆæ7 Ô±”¾à› Qöèy˜N¾k`ü‰2cXœ®FW,Ö÷¿i}’Þ—ü¼T8
+w†=d K¹öŠÕîxETkvÚÌäÄ5ËËH_œ-„ÛÛ
+Ì]m–W%3Z¯$ÒŽA²·½4ijÙÒAQ];+AµÕ­æõMòq·˜»üùÒ(äj^+õ›”0ìê¨udöKŒ’pÛ ìðØ’'•§Uñݪ®L™ÜTD½ªØѾc² _ ¦°”ËF¤zÓùQ/ªÑ¬óBž
+‹Ùâ(s·«ukt?oÖèÅÅÒPT@m`y²ªyÓ¸Ft î\k¡®÷†Äñê‰0çLGë:2wœ{Î] kÞ£¨§cl td V Áð—©ï¬Oqú—)“R¢>Ç)de3‘µ˜×ä6LØ,Œ€G[ ì‹;{õ™Æµ3-2ΫJ{B»Xk†rÞò9®5úVú)7€¸FŒ²äó"—Q¬ êŽ,qÁ ìÊQª¬[±ÂØyU|œì6”ÊÜ% Ž8zeD›/§ØàÒ±ò¢Ú.ÁÉ€Ã{Ç+ÊÚ]Ó¤Æ}l 3KÄm“j0|¡õ3Xà¡©Ä"š™Özå©nõüD,„S Ï^vUŒVŸëÖÕ¾<¶9¼Ê}ûÍC
+§5…Ïj·¾ö™6 ô…Zù{¥VV4P!B‘+ïzŒ-®
+ A¬Ï­Gð‹=~RpV“ï˜Ie> ;m'Ýêƒ0­òÚÉ by:³ÍæTFXð”gûg8G0’Ï¡·YO¢¶Wh,!|(μV˜
+Xd¢Ã<ý¢‹,Œ©ÐæúÜ~ó:‹Ë‡$g÷?†/8|ŸÁß«
+ÔpurÔü¬ƒÈïþÕÝQXllÙºVŠ—7/Á+3Ks;~¦ÛʬË,Éá×\¶ß”_hÝøÅýzç
+Ø2ýËÝÕ5¿²1éÊ=]Ùæ+`8CæÕÝu`]…ßãU¿çKÌ_bæ‚w÷»ñ½
+ÒKôÕ@×X½¡ óç
+¶1 †å¨‘øAü-kýkMžuÆHÔãTÐ#hQ$¦D=C¨Þ6Ï4D£9Ó⯘•–ƒæÿ*/
+Ø:ÝŒÕm¿nÊqYBld4}mÛÔƒ^¤5»Ï9§2pÌ&q¥!¹¦RdÉ&ÑPÓDOÕ5r‘úe$UÂ?
+V¨B¶Rós‚)d¦ênŽ´“—“§Þ'[ è묘KûBsòA[µRž†¦i¢ùâ7î:àüd,ŒøeQ&Œa¯ø\ éþñª]îYíGíÅ
+Ø:ÝŒ m¿n‡HãJÉA„b-ŠJq“X¢(íq„2Æ0½4ìÅI›W.^´bÄ4»Tá"%Oè639]uóMN{5 0
+ðt°½@fÆäÆ9q“<ËÀH=Zó|C·/Í‹Yå”UÚ»v?ðÛ[ÏnŒrÿx}/vבóáâûrlnCÁ¶_”äeîMiÊãU/ÝÖ<
+™K\ÏÚ7vXJ˜ìÙÆ°¨[J)¹9må”â².šúAÂ(I4Ö½« W¦ŠLl±§Ý.iCHfɴ٬⠪ÁŒdã'ÞQhiª›=ÎŒz¯˜gñtw²
+Ufï¥P˜‹°ŸK_•¤ ª»Ðfå ‡ŠVÆÞÕ ½Ë^o<ÍéÌæÞ>¨qJ‰“1üñÒ^li ­|Ø ¾\[§›1­í¡øˆ.5WÚ#k›BqOiCªÞµlo¡HDÆ®î[7FöSÑͬàHFßCsÕ[ƒ°]JYAºÚ†gŠ¦ öÜ^íË´¡ìí½’…çèf-°À×Ì÷HœÁBIÚ;ø2PN( 1“Fy&¡—6Ín,F¯Þ¡1‘67­£à ­‘¦¶ž‡Ëµ½ØÙí
+k­æ(†ìlYÆÛœz»Ï­Ds7ùp†w$Ëô¦Þ-‹9[·Rtý&쎕ë,“vv2.š"­Ê:©#ß?^Ù‹me Ù ìË°uº‹Ú~Ùc1ª!Ûl[æŹknf—ÔëÓRH´8t"J]°RFŽÎ¥Äs¨;°‡…H¶—?—ÕqK;;úÕZ³‰ÐK?Ø@öÌÑB$9s‹ëª}š HdûÔ)LO ¶cl„$:‡äBï²è„šM÷qµÍÔHÝdS%ÖÒÆ•œW÷bggK8¶/W@Ët+δcþÆÚM¡ Gk¶G'C;dä6%¾Bx¡´™îºÙ'Ã,Ð$ªMš,‡Nä2L³ÓÓnJÞE›—ÔqÆC1û"3Xiž6™1¥[=Êèv±>Š%Òûn±ÿZ‡bUŸ‰ÍA¶3A.~hÚ!ÆPØ™eóÕàÀ˜&VD¬Rœ@ÌJØò~&ˆÀnÓ÷vS&™å>O»mûrÂDöàÿ‡z(-€­ÒÍÈÕ>.êüTTí|eë=m&EdÃä >í·MªY´Ñt4;¤ùf(͉°/ˆŸv@(Fvxz):<{‘s/ÍÝCÿMð©TŠíû½+iñÖ4h—¦ƒ²úÝqo Øà£m)Tî|UxõGÍ AV†"=˜žc±8¼ò™o>Ë—Z#5¨´Ì® ¹,Ï€ìtò¾c=Á\¢.rÄx ±[1±í?ÄÉËV fb–ä6xgòî⊠–dæT[ ^¬Ùpʼ>áfå„€‘¥ÿ¶cÕœ €·™±Y' ÓÅW=yæ\I¤ž|+ÄD˹hpK¶É=ñ«Uf‘‡O†%yx
+Ûl¨%ÉV9L Ø–$<)ì®Ùž¤£ëÄi–G»­ÌobTüƒ(òäöU§Fœ"™«Èæsƒéë‰É1ÀŽ*KT÷¼XÍÔö#™°¤q ¶9~,øk¥_X/Ê­H׿ëÁ[3“k”xR€A2¯GEf›ŸrçA¦Õ žÚà#œõîæô<ê/_Ì``lܪ[F‹Îõƒiø#åöÁjJñf¼7J”ðk3šhÏ÷¡Œá £k¨š¡I˜†éòjÔYûbŠ©´Ê Ž
+
+‰¸#Š
+â¬*,âk}¥Ñ”{Àû ïéá9\¨sD¼ÀŸIQ´Ï›¬‹´Útõf‡°3ÌCÏ`¶S|‚€ù«§[y•Zõ<å“ÝþiGªš©‰Óô®|‚JàJi£ÿ®ˆ&ìj\¨ÞŽÓÌFõD~P¶…fkñÞö³,ÙXûjkVOhl`¨a
+ìZ£Pœ:¸ÝìgÃÑ˘àê0²U$¯!Ÿ`5Õäìg·ù‘ɹí ï:Ï¡æU{ØÌ“,¦Ϋv+'Г»zDÞôC0k·Î¸VÐŒï™?ºƒïuãS쩈OL6·vôê´PÌŒÎc„²g€—ÕõH):Ž%û»-±x¼´êö­Ù7sYŸó±ç¥ø ¸>·ÝâV1þ…£¾Xع®
+œ ¹bc˜£õ^f·Ò©ï-ñž“·7®®Í¼¬¦¡æ­{¶ÐÚ¦Bmº‘‘­K§xÊÄt#c+–fu[´5Í©˜jaÁ}ôÏy gV3=üªÙDûj³N’fÒ+T¤ßi€úç¬8²d/Ì=,î­Ø¹¬åGVc(‹¨BJ‘
0000000016 00000 n
-0000045654 00000 n
+0000045544 00000 n
0000000004 00000 f
0000000006 00000 f
-0000054890 00000 n
+0000055744 00000 n
0000000007 00000 f
0000000008 00000 f
0000000009 00000 f
@@ -4964,9 +4977,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000013 00000 f
0000000014 00000 f
0000000018 00000 f
-0000045705 00000 n
-0000054715 00000 n
-0000054746 00000 n
+0000045595 00000 n
+0000055567 00000 n
+0000055598 00000 n
0000000019 00000 f
0000000020 00000 f
0000000021 00000 f
@@ -4976,9 +4989,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000025 00000 f
0000000026 00000 f
0000000030 00000 f
-0000045774 00000 n
-0000054599 00000 n
-0000054630 00000 n
+0000045664 00000 n
+0000055451 00000 n
+0000055482 00000 n
0000000031 00000 f
0000000032 00000 f
0000000033 00000 f
@@ -4986,9 +4999,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000035 00000 f
0000000036 00000 f
0000000040 00000 f
-0000045845 00000 n
-0000054483 00000 n
-0000054514 00000 n
+0000045735 00000 n
+0000055335 00000 n
+0000055366 00000 n
0000000041 00000 f
0000000042 00000 f
0000000043 00000 f
@@ -5014,9 +5027,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000063 00000 f
0000000064 00000 f
0000000068 00000 f
-0000045915 00000 n
-0000054367 00000 n
-0000054398 00000 n
+0000045805 00000 n
+0000055219 00000 n
+0000055250 00000 n
0000000069 00000 f
0000000070 00000 f
0000000071 00000 f
@@ -5027,9 +5040,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000076 00000 f
0000000077 00000 f
0000000081 00000 f
-0000045984 00000 n
-0000054251 00000 n
-0000054282 00000 n
+0000045874 00000 n
+0000055103 00000 n
+0000055134 00000 n
0000000082 00000 f
0000000083 00000 f
0000000084 00000 f
@@ -5039,9 +5052,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000088 00000 f
0000000089 00000 f
0000000093 00000 f
-0000046055 00000 n
-0000054135 00000 n
-0000054166 00000 n
+0000045945 00000 n
+0000054987 00000 n
+0000055018 00000 n
0000000094 00000 f
0000000095 00000 f
0000000096 00000 f
@@ -5065,9 +5078,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000114 00000 f
0000000115 00000 f
0000000119 00000 f
-0000046125 00000 n
-0000054017 00000 n
-0000054049 00000 n
+0000046015 00000 n
+0000054869 00000 n
+0000054901 00000 n
0000000120 00000 f
0000000121 00000 f
0000000122 00000 f
@@ -5078,9 +5091,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000127 00000 f
0000000128 00000 f
0000000132 00000 f
-0000046197 00000 n
-0000053899 00000 n
-0000053931 00000 n
+0000046087 00000 n
+0000054751 00000 n
+0000054783 00000 n
0000000133 00000 f
0000000134 00000 f
0000000135 00000 f
@@ -5090,9 +5103,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000139 00000 f
0000000140 00000 f
0000000144 00000 f
-0000046271 00000 n
-0000053781 00000 n
-0000053813 00000 n
+0000046161 00000 n
+0000054633 00000 n
+0000054665 00000 n
0000000145 00000 f
0000000146 00000 f
0000000147 00000 f
@@ -5116,9 +5129,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000165 00000 f
0000000166 00000 f
0000000170 00000 f
-0000046344 00000 n
-0000053663 00000 n
-0000053695 00000 n
+0000046234 00000 n
+0000054515 00000 n
+0000054547 00000 n
0000000171 00000 f
0000000172 00000 f
0000000173 00000 f
@@ -5129,9 +5142,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000178 00000 f
0000000179 00000 f
0000000183 00000 f
-0000046416 00000 n
-0000053545 00000 n
-0000053577 00000 n
+0000046306 00000 n
+0000054397 00000 n
+0000054429 00000 n
0000000184 00000 f
0000000185 00000 f
0000000186 00000 f
@@ -5141,9 +5154,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000190 00000 f
0000000191 00000 f
0000000195 00000 f
-0000046490 00000 n
-0000053427 00000 n
-0000053459 00000 n
+0000046380 00000 n
+0000054279 00000 n
+0000054311 00000 n
0000000196 00000 f
0000000197 00000 f
0000000198 00000 f
@@ -5167,9 +5180,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000216 00000 f
0000000217 00000 f
0000000221 00000 f
-0000046563 00000 n
-0000053309 00000 n
-0000053341 00000 n
+0000046453 00000 n
+0000054161 00000 n
+0000054193 00000 n
0000000222 00000 f
0000000223 00000 f
0000000224 00000 f
@@ -5186,9 +5199,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000235 00000 f
0000000236 00000 f
0000000240 00000 f
-0000046635 00000 n
-0000053191 00000 n
-0000053223 00000 n
+0000046525 00000 n
+0000054043 00000 n
+0000054075 00000 n
0000000241 00000 f
0000000242 00000 f
0000000243 00000 f
@@ -5204,9 +5217,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000253 00000 f
0000000254 00000 f
0000000258 00000 f
-0000046709 00000 n
-0000053073 00000 n
-0000053105 00000 n
+0000046599 00000 n
+0000053925 00000 n
+0000053957 00000 n
0000000259 00000 f
0000000260 00000 f
0000000261 00000 f
@@ -5236,9 +5249,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000285 00000 f
0000000286 00000 f
0000000290 00000 f
-0000046782 00000 n
-0000052955 00000 n
-0000052987 00000 n
+0000046672 00000 n
+0000053807 00000 n
+0000053839 00000 n
0000000291 00000 f
0000000292 00000 f
0000000293 00000 f
@@ -5255,9 +5268,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000304 00000 f
0000000305 00000 f
0000000309 00000 f
-0000046854 00000 n
-0000052837 00000 n
-0000052869 00000 n
+0000046744 00000 n
+0000053689 00000 n
+0000053721 00000 n
0000000310 00000 f
0000000311 00000 f
0000000312 00000 f
@@ -5273,9 +5286,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000322 00000 f
0000000323 00000 f
0000000327 00000 f
-0000046928 00000 n
-0000052719 00000 n
-0000052751 00000 n
+0000046818 00000 n
+0000053571 00000 n
+0000053603 00000 n
0000000328 00000 f
0000000329 00000 f
0000000330 00000 f
@@ -5305,9 +5318,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000354 00000 f
0000000355 00000 f
0000000359 00000 f
-0000047001 00000 n
-0000052601 00000 n
-0000052633 00000 n
+0000046891 00000 n
+0000053453 00000 n
+0000053485 00000 n
0000000360 00000 f
0000000361 00000 f
0000000362 00000 f
@@ -5324,9 +5337,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000373 00000 f
0000000374 00000 f
0000000378 00000 f
-0000047073 00000 n
-0000052483 00000 n
-0000052515 00000 n
+0000046963 00000 n
+0000053335 00000 n
+0000053367 00000 n
0000000379 00000 f
0000000380 00000 f
0000000381 00000 f
@@ -5342,9 +5355,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000391 00000 f
0000000392 00000 f
0000000396 00000 f
-0000047147 00000 n
-0000052365 00000 n
-0000052397 00000 n
+0000047037 00000 n
+0000053217 00000 n
+0000053249 00000 n
0000000397 00000 f
0000000398 00000 f
0000000399 00000 f
@@ -5374,9 +5387,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000423 00000 f
0000000424 00000 f
0000000428 00000 f
-0000047220 00000 n
-0000052247 00000 n
-0000052279 00000 n
+0000047110 00000 n
+0000053099 00000 n
+0000053131 00000 n
0000000429 00000 f
0000000430 00000 f
0000000431 00000 f
@@ -5393,9 +5406,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000442 00000 f
0000000443 00000 f
0000000447 00000 f
-0000047292 00000 n
-0000052129 00000 n
-0000052161 00000 n
+0000047182 00000 n
+0000052981 00000 n
+0000053013 00000 n
0000000448 00000 f
0000000449 00000 f
0000000450 00000 f
@@ -5411,9 +5424,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000460 00000 f
0000000461 00000 f
0000000465 00000 f
-0000047364 00000 n
-0000052011 00000 n
-0000052043 00000 n
+0000047254 00000 n
+0000052863 00000 n
+0000052895 00000 n
0000000466 00000 f
0000000467 00000 f
0000000468 00000 f
@@ -5429,9 +5442,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000478 00000 f
0000000479 00000 f
0000000483 00000 f
-0000047438 00000 n
-0000051893 00000 n
-0000051925 00000 n
+0000047328 00000 n
+0000052745 00000 n
+0000052777 00000 n
0000000484 00000 f
0000000485 00000 f
0000000486 00000 f
@@ -5464,9 +5477,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000513 00000 f
0000000514 00000 f
0000000518 00000 f
-0000047511 00000 n
-0000051775 00000 n
-0000051807 00000 n
+0000047401 00000 n
+0000052627 00000 n
+0000052659 00000 n
0000000519 00000 f
0000000520 00000 f
0000000521 00000 f
@@ -5483,9 +5496,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000532 00000 f
0000000533 00000 f
0000000537 00000 f
-0000047583 00000 n
-0000051657 00000 n
-0000051689 00000 n
+0000047473 00000 n
+0000052509 00000 n
+0000052541 00000 n
0000000538 00000 f
0000000539 00000 f
0000000540 00000 f
@@ -5501,9 +5514,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000550 00000 f
0000000551 00000 f
0000000555 00000 f
-0000047655 00000 n
-0000051539 00000 n
-0000051571 00000 n
+0000047545 00000 n
+0000052391 00000 n
+0000052423 00000 n
0000000556 00000 f
0000000557 00000 f
0000000558 00000 f
@@ -5519,9 +5532,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000568 00000 f
0000000569 00000 f
0000000573 00000 f
-0000047729 00000 n
-0000051421 00000 n
-0000051453 00000 n
+0000047619 00000 n
+0000052273 00000 n
+0000052305 00000 n
0000000574 00000 f
0000000575 00000 f
0000000576 00000 f
@@ -5554,9 +5567,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000603 00000 f
0000000604 00000 f
0000000608 00000 f
-0000047802 00000 n
-0000051303 00000 n
-0000051335 00000 n
+0000047692 00000 n
+0000052155 00000 n
+0000052187 00000 n
0000000609 00000 f
0000000610 00000 f
0000000611 00000 f
@@ -5573,9 +5586,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000622 00000 f
0000000623 00000 f
0000000627 00000 f
-0000047874 00000 n
-0000051185 00000 n
-0000051217 00000 n
+0000047764 00000 n
+0000052037 00000 n
+0000052069 00000 n
0000000628 00000 f
0000000629 00000 f
0000000630 00000 f
@@ -5591,9 +5604,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000640 00000 f
0000000641 00000 f
0000000645 00000 f
-0000047946 00000 n
-0000051067 00000 n
-0000051099 00000 n
+0000047836 00000 n
+0000051919 00000 n
+0000051951 00000 n
0000000646 00000 f
0000000647 00000 f
0000000648 00000 f
@@ -5609,9 +5622,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000658 00000 f
0000000659 00000 f
0000000663 00000 f
-0000048020 00000 n
-0000050949 00000 n
-0000050981 00000 n
+0000047910 00000 n
+0000051801 00000 n
+0000051833 00000 n
0000000664 00000 f
0000000665 00000 f
0000000666 00000 f
@@ -5644,13 +5657,13 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000693 00000 f
0000000694 00000 f
0000000698 00000 f
-0000048093 00000 n
-0000050831 00000 n
-0000050863 00000 n
+0000047983 00000 n
+0000051683 00000 n
+0000051715 00000 n
0000000702 00000 f
-0000048164 00000 n
-0000050713 00000 n
-0000050745 00000 n
+0000048054 00000 n
+0000051565 00000 n
+0000051597 00000 n
0000000703 00000 f
0000000704 00000 f
0000000705 00000 f
@@ -5667,9 +5680,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000716 00000 f
0000000717 00000 f
0000000721 00000 f
-0000048236 00000 n
-0000050595 00000 n
-0000050627 00000 n
+0000048126 00000 n
+0000051447 00000 n
+0000051479 00000 n
0000000722 00000 f
0000000723 00000 f
0000000724 00000 f
@@ -5684,9 +5697,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000733 00000 f
0000000734 00000 f
0000000738 00000 f
-0000048308 00000 n
-0000050477 00000 n
-0000050509 00000 n
+0000048198 00000 n
+0000051329 00000 n
+0000051361 00000 n
0000000739 00000 f
0000000740 00000 f
0000000741 00000 f
@@ -5702,9 +5715,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000751 00000 f
0000000752 00000 f
0000000756 00000 f
-0000048382 00000 n
-0000050359 00000 n
-0000050391 00000 n
+0000048272 00000 n
+0000051211 00000 n
+0000051243 00000 n
0000000757 00000 f
0000000758 00000 f
0000000759 00000 f
@@ -5733,14 +5746,14 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000782 00000 f
0000000783 00000 f
0000000784 00000 f
-0000000788 00001 f
-0000048455 00000 n
-0000050241 00000 n
-0000050273 00000 n
+0000000788 00000 f
+0000048345 00000 n
+0000051093 00000 n
+0000051125 00000 n
0000000792 00000 f
-0000048526 00000 n
-0000050123 00000 n
-0000050155 00000 n
+0000048416 00000 n
+0000050975 00000 n
+0000051007 00000 n
0000000793 00000 f
0000000794 00000 f
0000000795 00000 f
@@ -5757,9 +5770,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000806 00000 f
0000000807 00000 f
0000000811 00000 f
-0000048598 00000 n
-0000050005 00000 n
-0000050037 00000 n
+0000048488 00000 n
+0000050857 00000 n
+0000050889 00000 n
0000000812 00000 f
0000000813 00000 f
0000000814 00000 f
@@ -5774,9 +5787,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000823 00000 f
0000000824 00000 f
0000000828 00000 f
-0000048670 00000 n
-0000049887 00000 n
-0000049919 00000 n
+0000048560 00000 n
+0000050739 00000 n
+0000050771 00000 n
0000000829 00000 f
0000000830 00000 f
0000000831 00000 f
@@ -5792,9 +5805,9 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000841 00000 f
0000000842 00000 f
0000000846 00000 f
-0000048744 00000 n
-0000049769 00000 n
-0000049801 00000 n
+0000048634 00000 n
+0000050621 00000 n
+0000050653 00000 n
0000000847 00000 f
0000000848 00000 f
0000000849 00000 f
@@ -5812,103 +5825,196 @@ RB5Q\9JRÉ¢qÏr¸%d…,ç…¼gÑPŠ€áƒl©7¶fïw1KG(–‹8µopéᘩúâC<fx QVá¦B§ÅtÙ¶Æä
0000000861 00000 f
0000000862 00000 f
0000000863 00000 f
-0000000864 00001 f
+0000000864 00000 f
0000000865 00000 f
0000000866 00000 f
0000000867 00000 f
0000000868 00000 f
+0000000869 00000 f
+0000000870 00000 f
+0000000871 00000 f
+0000000872 00000 f
+0000000873 00000 f
+0000000874 00000 f
+0000000875 00000 f
0000000876 00000 f
-0000173720 00000 n
-0000173796 00000 n
-0000174020 00000 n
-0000175035 00000 n
-0000182519 00000 n
-0000248108 00000 n
-0000313697 00000 n
+0000000877 00000 f
0000000881 00001 f
-0000054831 00000 n
-0000048817 00000 n
-0000049651 00000 n
-0000049683 00000 n
-0000000894 00001 f
-0000048888 00000 n
-0000049533 00000 n
-0000049565 00000 n
-0000057673 00000 n
-0000158692 00000 n
-0000159417 00000 n
-0000173093 00000 n
-0000059698 00000 n
-0000059735 00000 n
-0000159480 00000 n
-0000158755 00000 n
-0000062384 00000 n
-0000000904 00001 f
-0000146567 00000 n
-0000147323 00000 n
-0000158629 00000 n
-0000147386 00000 n
-0000146630 00000 n
-0000062878 00000 n
-0000048960 00000 n
-0000049415 00000 n
-0000049447 00000 n
-0000000911 00001 f
-0000131986 00000 n
-0000132736 00000 n
-0000146504 00000 n
-0000132799 00000 n
-0000132049 00000 n
-0000063362 00000 n
-0000000921 00001 f
-0000119816 00000 n
-0000120569 00000 n
-0000131923 00000 n
-0000120632 00000 n
-0000119879 00000 n
-0000063860 00000 n
-0000049032 00000 n
-0000049297 00000 n
-0000049329 00000 n
-0000000928 00001 f
-0000105212 00000 n
-0000105960 00000 n
-0000119753 00000 n
-0000106023 00000 n
-0000105275 00000 n
-0000064347 00000 n
-0000000929 00001 f
-0000000939 00001 f
-0000093039 00000 n
-0000093791 00000 n
-0000105149 00000 n
-0000093854 00000 n
-0000093102 00000 n
-0000064848 00000 n
-0000049106 00000 n
-0000049179 00000 n
-0000049211 00000 n
-0000000946 00001 f
-0000078414 00000 n
-0000079171 00000 n
-0000092976 00000 n
-0000079234 00000 n
-0000078477 00000 n
-0000065328 00000 n
+0000048707 00000 n
+0000050503 00000 n
+0000050535 00000 n
+0000000885 00000 f
+0000048778 00000 n
+0000050385 00000 n
+0000050417 00000 n
+0000000886 00000 f
+0000000887 00000 f
+0000000888 00000 f
+0000000889 00000 f
+0000000890 00000 f
+0000000891 00000 f
+0000000892 00000 f
+0000000893 00000 f
+0000000894 00000 f
+0000000895 00000 f
+0000000896 00000 f
+0000000897 00000 f
+0000000898 00000 f
+0000000899 00000 f
+0000000900 00000 f
+0000000904 00000 f
+0000048850 00000 n
+0000050267 00000 n
+0000050299 00000 n
+0000000905 00000 f
+0000000906 00000 f
+0000000907 00000 f
+0000000908 00000 f
+0000000909 00000 f
+0000000910 00000 f
+0000000911 00000 f
+0000000912 00000 f
+0000000913 00000 f
+0000000914 00000 f
+0000000915 00000 f
+0000000916 00000 f
+0000000917 00000 f
+0000000921 00000 f
+0000048922 00000 n
+0000050149 00000 n
+0000050181 00000 n
+0000000922 00000 f
+0000000923 00000 f
+0000000924 00000 f
+0000000925 00000 f
+0000000926 00000 f
+0000000927 00000 f
+0000000928 00000 f
+0000000929 00000 f
+0000000930 00000 f
+0000000931 00000 f
+0000000932 00000 f
+0000000933 00000 f
+0000000934 00000 f
+0000000935 00000 f
+0000000939 00000 f
+0000048996 00000 n
+0000050031 00000 n
+0000050063 00000 n
+0000000940 00000 f
+0000000941 00000 f
+0000000942 00000 f
+0000000943 00000 f
+0000000944 00000 f
+0000000945 00000 f
+0000000946 00000 f
+0000000947 00000 f
+0000000948 00000 f
+0000000949 00000 f
+0000000950 00000 f
+0000000951 00000 f
+0000000952 00000 f
+0000000953 00000 f
+0000000954 00000 f
+0000000955 00000 f
+0000000956 00000 f
+0000000957 00001 f
+0000000958 00000 f
+0000000959 00000 f
+0000000960 00000 f
+0000000961 00000 f
+0000000969 00000 f
+0000174447 00000 n
+0000174523 00000 n
+0000174747 00000 n
+0000175772 00000 n
+0000183336 00000 n
+0000248925 00000 n
+0000314514 00000 n
+0000000974 00001 f
+0000055683 00000 n
+0000049069 00000 n
+0000049913 00000 n
+0000049945 00000 n
+0000000987 00001 f
+0000049140 00000 n
+0000049795 00000 n
+0000049827 00000 n
+0000058541 00000 n
+0000159418 00000 n
+0000160143 00000 n
+0000173817 00000 n
+0000060510 00000 n
+0000060547 00000 n
+0000160206 00000 n
+0000159481 00000 n
+0000063196 00000 n
+0000000997 00001 f
+0000147299 00000 n
+0000148055 00000 n
+0000159355 00000 n
+0000148118 00000 n
+0000147362 00000 n
+0000063689 00000 n
+0000049212 00000 n
+0000049677 00000 n
+0000049709 00000 n
+0000001004 00001 f
+0000132732 00000 n
+0000133484 00000 n
+0000147235 00000 n
+0000133547 00000 n
+0000132795 00000 n
+0000064172 00000 n
+0000001014 00001 f
+0000120560 00000 n
+0000121317 00000 n
+0000132668 00000 n
+0000121381 00000 n
+0000120624 00000 n
+0000064671 00000 n
+0000049284 00000 n
+0000049557 00000 n
+0000049590 00000 n
+0000001021 00001 f
+0000106070 00000 n
+0000106822 00000 n
+0000120496 00000 n
+0000106886 00000 n
+0000106134 00000 n
+0000065160 00000 n
+0000001022 00001 f
+0000001032 00001 f
+0000093888 00000 n
+0000094644 00000 n
+0000106006 00000 n
+0000094708 00000 n
+0000093952 00000 n
+0000065664 00000 n
+0000049361 00000 n
+0000049437 00000 n
+0000049470 00000 n
+0000001039 00001 f
+0000079247 00000 n
+0000080008 00000 n
+0000093824 00000 n
+0000080072 00000 n
+0000079311 00000 n
+0000066147 00000 n
0000000000 00001 f
-0000066308 00000 n
-0000067065 00000 n
-0000078351 00000 n
-0000067128 00000 n
-0000066371 00000 n
-0000065829 00000 n
-0000057787 00000 n
-0000058077 00000 n
-0000055498 00000 n
-0000361937 00000 n
-0000058339 00000 n
-0000173156 00000 n
-0000173206 00000 n
-0000057517 00000 n
-0000000897 00000 n
-trailer <</Size 962/Root 1 0 R/Info 956 0 R/ID[<DFAD564605F549E3ABF1FC747EBA5A34><A151DA051B174F59A99D14D40A0E4378>]>> startxref 362074 %%EOF \ No newline at end of file
+0000067133 00000 n
+0000067894 00000 n
+0000079183 00000 n
+0000067958 00000 n
+0000067197 00000 n
+0000066651 00000 n
+0000058655 00000 n
+0000058947 00000 n
+0000056363 00000 n
+0000362622 00000 n
+0000059211 00000 n
+0000173880 00000 n
+0000173932 00000 n
+0000058383 00000 n
+0000000982 00000 n
+trailer <</Size 1055/Root 1 0 R/Info 1049 0 R/ID[<DFAD564605F549E3ABF1FC747EBA5A34><45AB28F93CAE4209BAB0B0278EBC9323>]>> startxref 362760 %%EOF \ No newline at end of file
diff --git a/src/compiler/scala/tools/nsc/doc/model/Entity.scala b/src/compiler/scala/tools/nsc/doc/model/Entity.scala
index 678702c7f1..b5f12d312d 100644
--- a/src/compiler/scala/tools/nsc/doc/model/Entity.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/Entity.scala
@@ -48,6 +48,7 @@ trait MemberEntity extends Entity {
def resultType: TypeEntity
def isDef: Boolean
def isVal: Boolean
+ def isLazyVal: Boolean
def isVar: Boolean
def isImplicit: Boolean
def isConstructor: Boolean
@@ -131,7 +132,7 @@ trait Constructor extends NonTemplateMemberEntity {
def valueParams : List[List[ValueParam]]
}
-/** A value (`val`) or variable (`var`) of a ''documentable'' class, trait or object. */
+/** A value (`val`), lazy val (`lazy val`) or variable (`var`) of a ''documentable'' class, trait or object. */
trait Val extends NonTemplateMemberEntity
/** An abstract type of a ''documentable'' class, trait or object. */
diff --git a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
index 9641bc9045..d7e1e2fe1a 100644
--- a/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/ModelFactory.scala
@@ -52,10 +52,6 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
def inTemplate = inTpl
def toRoot: List[EntityImpl] = this :: inTpl.toRoot
def qualifiedName = name
- override def equals(that: Any) = that match {
- case that: EntityImpl => this.sym == that.sym
- case _ => false
- }
}
/** Provides a default implementation for instances of the `WeakTemplateEntity` type. It must be instantiated as a
@@ -124,6 +120,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
def resultType = makeType(sym.tpe.finalResultType, inTemplate, sym)
def isDef = false
def isVal = false
+ def isLazyVal = false
def isVar = false
def isImplicit = sym.isImplicit
def isConstructor = false
@@ -336,11 +333,15 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
def makeMember(aSym: Symbol, inTpl: => DocTemplateImpl): List[MemberImpl] = {
def makeMember0(bSym: Symbol): Option[MemberImpl] = {
- if (bSym.isGetter && bSym.accessed.isMutable)
+ if (bSym.isGetter && bSym.isLazy)
+ Some(new NonTemplateMemberImpl(bSym, inTpl) with Val {
+ override def isLazyVal = true
+ })
+ else if (bSym.isGetter && bSym.accessed.isMutable)
Some(new NonTemplateMemberImpl(bSym, inTpl) with Val {
override def isVar = true
})
- else if (bSym.isMethod && !bSym.isGetterOrSetter && !bSym.isConstructor)
+ else if (bSym.isMethod && !bSym.isGetterOrSetter && !bSym.isConstructor && !bSym.isModule)
Some(new NonTemplateParamMemberImpl(bSym, inTpl) with Def {
override def isDef = true
def typeParams =
@@ -372,7 +373,7 @@ class ModelFactory(val global: Global, val settings: doc.Settings) extends Comme
None
}
- if ((!aSym.isPackage && aSym.sourceFile == null) || !localShouldDocument(aSym) || aSym.isModuleClass || aSym.isPackageObject || aSym.isMixinConstructor)
+ if (!localShouldDocument(aSym) || aSym.isModuleClass || aSym.isPackageObject || aSym.isMixinConstructor)
Nil
else {
val allSyms = useCases(aSym, inTpl.sym) map { case (bSym, bComment, bPos) =>
diff --git a/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala b/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala
index 7d2aee2d98..29e47fa578 100644
--- a/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/comment/Body.scala
@@ -9,10 +9,41 @@ import scala.collection._
import java.net.URL
-/** */
-final case class Body(blocks: Seq[Block])
+/** A body of text. A comment has a single body, which is composed of at least one block. Inside every body is exactly
+ * one summary (see [[scala.tools.nsc.doc.model.comment.Summary]]). */
+final case class Body(blocks: Seq[Block]) {
-/** */
+ /** The summary text of the comment body. */
+ lazy val summary: Option[Inline] = {
+ def summaryInBlock(block: Block): Seq[Inline] = block match {
+ case Title(text, _) => summaryInInline(text)
+ case Paragraph(text) => summaryInInline(text)
+ case UnorderedList(items) => items flatMap { summaryInBlock(_) }
+ case OrderedList(items, _) => items flatMap { summaryInBlock(_) }
+ case DefinitionList(items) => items.values.toSeq flatMap { summaryInBlock(_) }
+ case _ => Nil
+ }
+ def summaryInInline(text: Inline): Seq[Inline] = text match {
+ case Summary(text) => List(text)
+ case Chain(items) => items flatMap { summaryInInline(_) }
+ case Italic(text) => summaryInInline(text)
+ case Bold(text) => summaryInInline(text)
+ case Underline(text) => summaryInInline(text)
+ case Superscript(text) => summaryInInline(text)
+ case Subscript(text) => summaryInInline(text)
+ case Link(_, title) => summaryInInline(title)
+ case _ => Nil
+ }
+ (blocks flatMap { summaryInBlock(_) }).toList match {
+ case Nil => None
+ case inline :: Nil => Some(inline)
+ case inlines => Some(Chain(inlines))
+ }
+ }
+
+}
+
+/** A block-level element of text, such as a paragraph or code block. */
sealed abstract class Block
final case class Title(text: Inline, level: Int) extends Block
@@ -23,7 +54,7 @@ final case class OrderedList(items: Seq[Block], style: String) extends Block
final case class DefinitionList(items: SortedMap[Inline, Block]) extends Block
final case class HorizontalRule() extends Block
-/** */
+/** An section of text inside a block, possibly with formatting. */
sealed abstract class Inline
final case class Chain(items: Seq[Inline]) extends Inline
@@ -36,3 +67,6 @@ final case class Link(target: String, title: Inline) extends Inline
final case class EntityLink(target: TemplateEntity) extends Inline
final case class Monospace(text: String) extends Inline
final case class Text(text: String) extends Inline
+
+/** The summary of a comment, usually its first sentence. There must be exactly one summary per body. */
+final case class Summary(text: Inline) extends Inline
diff --git a/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala b/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala
index dba538046a..f067555cc3 100644
--- a/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala
+++ b/src/compiler/scala/tools/nsc/doc/model/comment/CommentFactory.scala
@@ -102,17 +102,15 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
* @param comment The raw comment string (including start and end markers) to be parsed.
* @param pos The position of the comment in source. */
protected def parse(comment: String, pos: Position): Comment = {
+
/** The cleaned raw comment as a list of lines. Cleaning removes comment start and end markers, line start markers
* and unnecessary whitespace. */
val cleaned: List[String] = {
def cleanLine(line: String): String = {
//replaceAll removes trailing whitespaces
line.replaceAll("""\s+$""", "") match {
- case "" => "" // Empty lines are require to keep paragraphs
case CleanCommentLine(ctl) => ctl
- case tl =>
- reporter.warning(pos, "Please re-check this line of the comment")
- tl
+ case tl => tl
}
}
val strippedComment = comment.trim.stripPrefix("/*").stripSuffix("*/")
@@ -221,20 +219,7 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
val deprecated = oneTag(SimpleTagKey("deprecated"))
val note = allTags(SimpleTagKey("note"))
val example = allTags(SimpleTagKey("example"))
- val short = {
- def findShort(blocks: Iterable[Block]): Inline =
- if (blocks.isEmpty) Text("")
- else blocks.head match {
- case Title(text, _) => text
- case Paragraph(text) => text
- case Code(data) => Monospace(data.lines.next)
- case UnorderedList(items) => findShort(items)
- case OrderedList(items, _) => findShort(items)
- case DefinitionList(items) => findShort(items.values)
- case HorizontalRule() => findShort(blocks.tail)
- }
- findShort(body.blocks)
- }
+ val short = body.summary getOrElse Text("no summary matey")
}
for ((key, _) <- bodyTags)
@@ -264,6 +249,8 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
* @author Gilles Dubochet */
protected final class WikiParser(val buffer: Array[Char], pos: Position) extends CharReader(buffer) { wiki =>
+ var summaryParsed = false
+
/** listStyle ::= '-' spc | '1.' spc | 'I.' spc | 'i.' spc | 'A.' spc | 'a.' spc
* Characters used to build lists and their constructors */
protected val listStyles = Map[String, (Seq[Block] => Block)]( // TODO Should this be defined at some list companion?
@@ -380,7 +367,16 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
/** {{{ para ::= inline '\n' }}} */
def para(): Block = {
- val p = Paragraph(inline(checkParaEnded()))
+ val p =
+ if (summaryParsed)
+ Paragraph(inline(false))
+ else {
+ val s = summary()
+ val r =
+ if (checkParaEnded) List(s) else List(s, inline(false))
+ summaryParsed = true
+ Paragraph(Chain(r))
+ }
while (char == endOfLine && char != endOfText)
nextChar()
p
@@ -388,34 +384,26 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
/* INLINES */
- def inline(isBlockEnd: => Boolean): Inline =
- inline(isBlockEnd, isBlockEnd)
+ def inline(isInlineEnd: => Boolean): Inline = {
- def inline(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
def inline0(): Inline = {
- if (check("'''"))
- bold(isInlineEnd, isBlockEnd)
- else if (check("''"))
- italic(isInlineEnd, isBlockEnd)
- else if (check("`"))
- monospace(isInlineEnd, isBlockEnd)
- else if (check("__"))
- underline(isInlineEnd, isBlockEnd)
- else if (check("^"))
- superscript(isInlineEnd, isBlockEnd)
- else if (check(",,"))
- subscript(isInlineEnd, isBlockEnd)
- else if (check("[["))
- link(isInlineEnd, isBlockEnd)
+ if (check("'''")) bold()
+ else if (check("''")) italic()
+ else if (check("`")) monospace()
+ else if (check("__")) underline()
+ else if (check("^")) superscript()
+ else if (check(",,")) subscript()
+ else if (check("[[")) link()
else {
- readUntil { check("''") || char == '`' || check("__") || char == '^' || check(",,") || check("[[") || isInlineEnd || isBlockEnd || char == endOfLine }
+ readUntil { check("''") || char == '`' || check("__") || char == '^' || check(",,") || check("[[") || isInlineEnd || checkParaEnded || char == endOfLine }
Text(getRead())
}
}
+
val inlines: List[Inline] = {
val iss = mutable.ListBuffer.empty[Inline]
iss += inline0()
- while(!isInlineEnd && !isBlockEnd && !checkParaEnded) {
+ while(!isInlineEnd && !checkParaEnded) {
if (char == endOfLine) nextChar()
val current = inline0()
(iss.last, current) match {
@@ -426,57 +414,66 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
}
iss.toList
}
+
inlines match {
case Nil => Text("")
case i :: Nil => i
- case i :: is => Chain(i :: is)
+ case is => Chain(is)
}
+
}
- def bold(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def bold(): Inline = {
jump("'''")
- val i = inline(check("'''"), isBlockEnd)
+ val i = inline(check("'''"))
jump("'''")
Bold(i)
}
- def italic(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def italic(): Inline = {
jump("''")
- val i = inline(check("''"), isBlockEnd)
+ val i = inline(check("''"))
jump("''")
Italic(i)
}
- def monospace(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def monospace(): Inline = {
jump("`")
readUntil { char == '`' }
jump("`")
Monospace(getRead())
}
- def underline(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def underline(): Inline = {
jump("__")
- val i = inline(check("__"), isBlockEnd)
+ val i = inline(check("__"))
jump("__")
Underline(i)
}
- def superscript(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def superscript(): Inline = {
jump("^")
- val i = inline(check("^"), isBlockEnd)
+ val i = inline(check("^"))
jump("^")
Superscript(i)
}
- def subscript(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def subscript(): Inline = {
jump(",,")
- val i = inline(check(",,"), isBlockEnd)
+ val i = inline(check(",,"))
jump(",,")
Subscript(i)
}
- protected val SchemeUri =
- new Regex("""([^:]+:.*)""")
+ def summary(): Inline = {
+ val i = inline(check("."))
+ Summary(
+ if (jump("."))
+ Chain(List(i, Text(".")))
+ else
+ i
+ )
+ }
def entityLink(query: String): Inline = findTemplate(query) match {
case Some(tpl) =>
@@ -485,14 +482,15 @@ trait CommentFactory { thisFactory: ModelFactory with CommentFactory =>
Text(query)
}
- def link(isInlineEnd: => Boolean, isBlockEnd: => Boolean): Inline = {
+ def link(): Inline = {
+ val SchemeUri = new Regex("""([^:]+:.*)""")
jump("[[")
readUntil { check("]]") || check(" ") }
val target = getRead()
val title =
if (!check("]]")) Some({
jump(" ")
- inline(check("]]"), isBlockEnd)
+ inline(check("]]"))
})
else None
jump("]]")
diff --git a/src/compiler/scala/tools/nsc/io/Path.scala b/src/compiler/scala/tools/nsc/io/Path.scala
index 6b88f3cfca..afef38be3c 100644
--- a/src/compiler/scala/tools/nsc/io/Path.scala
+++ b/src/compiler/scala/tools/nsc/io/Path.scala
@@ -9,9 +9,7 @@ import java.io.{
FileInputStream, FileOutputStream, BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter,
BufferedInputStream, BufferedOutputStream, RandomAccessFile, File => JFile }
import java.net.{ URI, URL }
-import collection.{ Seq, Traversable }
-import PartialFunction._
-import scala.util.Random.nextASCIIString
+import scala.util.Random.alphanumeric
/** An abstraction for filesystem paths. The differences between
* Path, File, and Directory are primarily to communicate intent.
@@ -71,7 +69,8 @@ object Path
else if (jfile.isDirectory) new Directory(jfile)
else new Path(jfile)
- private[io] def randomPrefix = nextASCIIString(6)
+ /** Avoiding any shell/path issues by only using alphanumerics. */
+ private[io] def randomPrefix = alphanumeric take 6 mkString
private[io] def fail(msg: String) = throw FileOperationException(msg)
}
import Path._
diff --git a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala
index 8012b9389b..b32796e829 100644
--- a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala
+++ b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala
@@ -95,10 +95,7 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal
): Option[List[String]] =
lookupSetting(cmd) match {
case None => errorFn("Parameter '" + cmd + "' is not recognised by Scalac.") ; None
- case Some(cmd) =>
- val res = setter(cmd)(args)
- cmd.postSetHook()
- res
+ case Some(cmd) => setter(cmd)(args)
}
// if arg is of form -Xfoo:bar,baz,quux
@@ -191,10 +188,15 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal
trait SettingValue extends AbsSettingValue {
protected var v: T
protected var setByUser: Boolean = false
+ def postSetHook(): Unit
def isDefault: Boolean = !setByUser
def value: T = v
- def value_=(arg: T) = { setByUser = true ; v = arg }
+ def value_=(arg: T) = {
+ setByUser = true
+ v = arg
+ postSetHook()
+ }
}
/** A class for holding mappings from source directories to
@@ -305,7 +307,7 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal
abstract class Setting(val name: String, val helpDescription: String) extends AbsSetting with SettingValue with Mutable {
/** Will be called after this Setting is set for any extra work. */
private var _postSetHook: this.type => Unit = (x: this.type) => ()
- def postSetHook() = { _postSetHook(this) ; this }
+ def postSetHook(): Unit = _postSetHook(this)
def withPostSetHook(f: this.type => Unit): this.type = { _postSetHook = f ; this }
/** The syntax defining this setting in a help string */
diff --git a/src/compiler/scala/tools/nsc/symtab/Symbols.scala b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
index 4c0c1ec739..9c6d6662e3 100644
--- a/src/compiler/scala/tools/nsc/symtab/Symbols.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Symbols.scala
@@ -1538,7 +1538,7 @@ trait Symbols extends reflect.generic.Symbols { self: SymbolTable =>
"package object "+owner.nameString
else
compose(List(kindString,
- if (isClassConstructor) owner.simpleName.decode+idString else nameString))
+ if (isClassConstructor) owner.simpleName+idString else nameString))
/** If owner is a package object, its owner, else the normal owner.
*/
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index 2cd690fbbf..863ad7bec4 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -3801,6 +3801,18 @@ A type's typeSymbol should never be inspected directly.
private def isUnifiable(pre1: Type, pre2: Type) =
(beginsWithTypeVarOrIsRefined(pre1) || beginsWithTypeVarOrIsRefined(pre2)) && (pre1 =:= pre2)
+ /** Returns true iff we are past phase specialize,
+ * sym1 and sym2 are two existential skolems with equal names and bounds,
+ * and pre1 and pre2 are equal prefixes
+ */
+ private def isSameSpecializedSkolem(sym1: Symbol, sym2: Symbol, pre1: Type, pre2: Type) = {
+ sym1.isExistentialSkolem && sym2.isExistentialSkolem &&
+ sym1.name == sym2.name &&
+ phase.specialized &&
+ sym1.info =:= sym2.info &&
+ pre1 =:= pre2
+ }
+
private def equalSymsAndPrefixes(sym1: Symbol, pre1: Type, sym2: Symbol, pre2: Type): Boolean =
if (sym1 == sym2) sym1.hasFlag(PACKAGE) || phase.erasedTypes || pre1 =:= pre2
else (sym1.name == sym2.name) && isUnifiable(pre1, pre2)
@@ -4264,8 +4276,9 @@ A type's typeSymbol should never be inspected directly.
val pre1 = tr1.pre
val pre2 = tr2.pre
(((if (sym1 == sym2) phase.erasedTypes || pre1 <:< pre2
- else (sym1.name == sym2.name && isUnifiable(pre1, pre2))) &&
- isSubArgs(tr1.args, tr2.args, sym1.typeParams))
+ else (sym1.name == sym2.name &&
+ (isUnifiable(pre1, pre2) || isSameSpecializedSkolem(sym1, sym2, pre1, pre2)))) &&
+ isSubArgs(tr1.args, tr2.args, sym1.typeParams))
||
sym2.isClass && {
val base = tr1 baseType sym2
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 3a8d93a7a7..c78664bc19 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -221,9 +221,14 @@ abstract class ClassfileParser {
val ownerTpe = getClassOrArrayType(in.getChar(start + 1))
if (settings.debug.value)
log("getMemberSymbol(static: " + static + "): owner type: " + ownerTpe + " " + ownerTpe.typeSymbol.originalName)
- val (name, tpe) = getNameAndType(in.getChar(start + 3), ownerTpe)
+ val (name0, tpe0) = getNameAndType(in.getChar(start + 3), ownerTpe)
if (settings.debug.value)
- log("getMemberSymbol: name and tpe: " + name + ": " + tpe)
+ log("getMemberSymbol: name and tpe: " + name0 + ": " + tpe0)
+
+ forceMangledName(tpe0.typeSymbol.name, false)
+ val (name, tpe) = getNameAndType(in.getChar(start + 3), ownerTpe)
+// println("new tpe: " + tpe + " at phase: " + phase)
+
if (name == nme.MODULE_INSTANCE_FIELD) {
val index = in.getChar(start + 1)
val name = getExternalName(in.getChar(starts(index) + 1))
@@ -240,9 +245,10 @@ abstract class ClassfileParser {
f = owner.info.member(newTermName(origName.toString + nme.LOCAL_SUFFIX)).suchThat(_.tpe =:= tpe)
if (f == NoSymbol) {
// if it's an impl class, try to find it's static member inside the class
- if (ownerTpe.typeSymbol.isImplClass)
+ if (ownerTpe.typeSymbol.isImplClass) {
+// println("impl class, member: " + owner.tpe.member(origName) + ": " + owner.tpe.member(origName).tpe)
f = ownerTpe.member(origName).suchThat(_.tpe =:= tpe)
- else {
+ } else {
log("Couldn't find " + name + ": " + tpe + " inside: \n" + ownerTpe)
f = if (tpe.isInstanceOf[MethodType]) owner.newMethod(owner.pos, name).setInfo(tpe)
else owner.newValue(owner.pos, name).setInfo(tpe).setFlag(MUTABLE)
@@ -384,11 +390,14 @@ abstract class ClassfileParser {
* flatten would not lift classes that were not referenced in the source code.
*/
def forceMangledName(name: Name, module: Boolean): Symbol = {
- val parts = name.toString.split(Array('.', '$'))
+ val parts = name.decode.toString.split(Array('.', '$'))
var sym: Symbol = definitions.RootClass
atPhase(currentRun.flattenPhase.prev) {
- for (part0 <- parts; val part = newTermName(part0)) {
- val sym1 = sym.info.decl(part.encode)//.suchThat(module == _.isModule)
+ for (part0 <- parts; if !(part0 == ""); val part = newTermName(part0)) {
+ val sym1 = atPhase(currentRun.icodePhase) {
+ sym.linkedClassOfClass.info
+ sym.info.decl(part.encode)
+ }//.suchThat(module == _.isModule)
if (sym1 == NoSymbol)
sym = sym.info.decl(part.encode.toTypeName)
else
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
index 92dfb3749a..e129737ebd 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ICodeReader.scala
@@ -99,26 +99,34 @@ abstract class ICodeReader extends ClassfileParser {
val owner = getOwner(jflags)
val dummySym = owner.newMethod(owner.pos, name).setFlag(javaToScalaFlags(jflags))
- var tpe = pool.getType(dummySym, in.nextChar)
-
- if ("<clinit>" == name.toString)
- (jflags, NoSymbol)
- else {
- val owner = getOwner(jflags)
- var sym = owner.info.member(name).suchThat(old => sameType(old.tpe, tpe));
- if (sym == NoSymbol)
- sym = owner.info.member(newTermName(name.toString + nme.LOCAL_SUFFIX)).suchThat(old => old.tpe =:= tpe);
- if (sym == NoSymbol) {
- log("Could not find symbol for " + name + ": " + tpe + " in " + owner.info.decls)
- log(owner.info.member(name).tpe + " : " + tpe)
- if (field)
- sym = owner.newValue(owner.pos, name).setInfo(tpe).setFlag(MUTABLE | javaToScalaFlags(jflags))
- else
- sym = dummySym.setInfo(tpe)
- owner.info.decls.enter(sym)
- log("added " + sym + ": " + sym.tpe)
+ try {
+ val ch = in.nextChar
+ var tpe = pool.getType(dummySym, ch)
+
+ if ("<clinit>" == name.toString)
+ (jflags, NoSymbol)
+ else {
+ val owner = getOwner(jflags)
+ var sym = owner.info.member(name).suchThat(old => sameType(old.tpe, tpe));
+ if (sym == NoSymbol)
+ sym = owner.info.member(newTermName(name.toString + nme.LOCAL_SUFFIX)).suchThat(old => old.tpe =:= tpe);
+ if (sym == NoSymbol) {
+ log("Could not find symbol for " + name + ": " + tpe + " in " + owner.info.decls)
+ log(owner.info.member(name).tpe + " : " + tpe)
+ if (name.toString() == "toMap")
+ tpe = pool.getType(dummySym, ch)
+ if (field)
+ sym = owner.newValue(owner.pos, name).setInfo(tpe).setFlag(MUTABLE | javaToScalaFlags(jflags))
+ else
+ sym = dummySym.setInfo(tpe)
+ owner.info.decls.enter(sym)
+ log("added " + sym + ": " + sym.tpe)
+ }
+ (jflags, sym)
}
- (jflags, sym)
+ } catch {
+ case e: MissingRequirementError =>
+ (jflags, NoSymbol)
}
}
@@ -149,18 +157,25 @@ abstract class ICodeReader extends ClassfileParser {
override def parseMethod() {
val (jflags, sym) = parseMember(false)
- if (sym != NoSymbol) {
- log("Parsing method " + sym.fullName + ": " + sym.tpe);
- this.method = new IMethod(sym);
- this.method.returnType = toTypeKind(sym.tpe.resultType)
- getCode(jflags).addMethod(this.method)
- if ((jflags & JAVA_ACC_NATIVE) != 0)
- this.method.native = true
- val attributeCount = in.nextChar
- for (i <- 0 until attributeCount) parseAttribute()
- } else {
- if (settings.debug.value) log("Skipping non-existent method.");
- skipAttributes();
+ var beginning = in.bp
+ try {
+ if (sym != NoSymbol) {
+ log("Parsing method " + sym.fullName + ": " + sym.tpe);
+ this.method = new IMethod(sym);
+ this.method.returnType = toTypeKind(sym.tpe.resultType)
+ getCode(jflags).addMethod(this.method)
+ if ((jflags & JAVA_ACC_NATIVE) != 0)
+ this.method.native = true
+ val attributeCount = in.nextChar
+ for (i <- 0 until attributeCount) parseAttribute()
+ } else {
+ if (settings.debug.value) log("Skipping non-existent method.");
+ skipAttributes();
+ }
+ } catch {
+ case e: MissingRequirementError =>
+ in.bp = beginning; skipAttributes
+ if (settings.debug.value) log("Skipping non-existent method. " + e.msg);
}
}
@@ -187,12 +202,15 @@ abstract class ICodeReader extends ClassfileParser {
definitions.getClass(name)
} else if (name.endsWith("$")) {
val sym = forceMangledName(name.subName(0, name.length -1).decode, true)
+// println("classNameToSymbol: " + name + " sym: " + sym)
+ if (name.toString == "scala.collection.immutable.Stream$$hash$colon$colon$")
+ print("")
if (sym == NoSymbol)
definitions.getModule(name.subName(0, name.length - 1))
else sym
} else {
forceMangledName(name, false)
- definitions.getClass(name)
+ atPhase(currentRun.flattenPhase.next)(definitions.getClass(name))
}
if (sym.isModule)
sym.moduleClass
diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
index 5ced187128..d5d7ca254e 100644
--- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
+++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
@@ -82,7 +82,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
}
/** For a given class and concrete type arguments, give its specialized class */
- val specializedClass: mutable.Map[(Symbol, TypeEnv), Symbol] = new mutable.HashMap
+ val specializedClass: mutable.Map[(Symbol, TypeEnv), Symbol] = new mutable.LinkedHashMap
/** Returns the generic class that was specialized to 'cls', or
* 'cls' itself if cls is not a specialized subclass.
@@ -712,6 +712,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
}
info(opc.overriding) = Forward(om)
log("typeEnv(om) = " + typeEnv(om))
+ om setPos opc.overriding.pos // set the position of the concrete, overriding member
}
overloads(opc.overriding) = Overload(om, env) :: overloads(opc.overriding)
oms += om
@@ -825,12 +826,13 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
val res = tpe match {
case PolyType(targs, ClassInfoType(base, decls, clazz)) =>
val parents = base map specializedType
+ log("transformInfo (poly) " + clazz + " with parents1: " + parents + " ph: " + phase)
PolyType(targs, ClassInfoType(parents, new Scope(specializeClass(clazz, typeEnv(clazz))), clazz))
case ClassInfoType(base, decls, clazz) if !clazz.isPackageClass =>
-// base.map(_.typeSymbol.info)
+ atPhase(phase.next)(base.map(_.typeSymbol.info))
val parents = base map specializedType
- log("transformInfo " + clazz + " with parents1: " + parents)
+ log("transformInfo " + clazz + " with parents1: " + parents + " ph: " + phase)
val res = ClassInfoType(base map specializedType, new Scope(specializeClass(clazz, typeEnv(clazz))), clazz)
res
@@ -993,7 +995,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
if (!env.isEmpty) {
val specMember = overload(symbol, env)
if (specMember.isDefined) {
- if (settings.debug.value) log("** routing " + tree + " to " + specMember.get.sym.fullName + " tree: " + Select(transform(qual), specMember.get.sym.name))
+ if (settings.debug.value) log("** routing " + tree + " to " + specMember.get.sym.fullName)
localTyper.typedOperator(atPos(tree.pos)(Select(transform(qual), specMember.get.sym.name)))
} else {
val qual1 = transform(qual)
@@ -1006,7 +1008,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
else
localTyper.typed(tree1)
} else
- super.transform(tree)
+ treeCopy.Select(tree, qual1, name)
}
} else
super.transform(tree)
@@ -1129,7 +1131,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
case Apply(sel @ Select(sup @ Super(qual, name), name1), args) =>
val res = localTyper.typed(
- Apply(Select(Super(qual, name) setPos sup.pos, name1) setPos sel.pos, args) setPos tree.pos)
+ Apply(Select(Super(qual, name) setPos sup.pos, name1) setPos sel.pos, transformTrees(args)) setPos tree.pos)
log("retyping call to super, from: " + symbol + " to " + res.symbol)
res
@@ -1200,9 +1202,11 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
override def transform(tree: Tree): Tree = tree match {
case Select(qual, name) =>
if (tree.symbol.hasFlag(PRIVATE | PROTECTED)) {
- log("changing private flag of " + tree.symbol)
+ log("changing private flag of " + tree.symbol + " privateWithin: " + tree.symbol.privateWithin)
// tree.symbol.resetFlag(PRIVATE).setFlag(PROTECTED)
- tree.symbol.resetFlag(PRIVATE | PROTECTED)
+ tree.symbol.makeNotPrivate(tree.symbol.owner)
+// tree.symbol.resetFlag(PRIVATE | PROTECTED)
+// tree.symbol.privateWithin = NoSymbol
}
super.transform(tree)
@@ -1277,9 +1281,10 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
mbrs += ValDef(acc, EmptyTree).setType(NoType).setPos(m.pos)
}
// ctor
- mbrs += DefDef(m, Modifiers(m.flags), List(vparams) map (_ map ValDef), EmptyTree)
- } else
- mbrs += DefDef(m, { paramss => EmptyTree })
+ mbrs += atPos(m.pos)(DefDef(m, Modifiers(m.flags), List(vparams) map (_ map ValDef), EmptyTree))
+ } else {
+ mbrs += atPos(m.pos)(DefDef(m, { paramss => EmptyTree }))
+ }
} else if (m.isValue) {
mbrs += ValDef(m, EmptyTree).setType(NoType).setPos(m.pos)
} else if (m.isClass) {
@@ -1293,7 +1298,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
}
/** Create specialized class definitions */
- def implSpecClasses(trees: List[Tree]): List[Tree] = {
+ def implSpecClasses(trees: List[Tree]): List[Tree] = {
val buf = new mutable.ListBuffer[Tree]
for (tree <- trees)
tree match {
diff --git a/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala b/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala
index 5ba52f5f06..6f432cc3c4 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Unapplies.scala
@@ -135,7 +135,7 @@ trait Unapplies extends ast.TreeDSL
*/
def caseModuleDef(cdef: ClassDef): ModuleDef = {
def inheritFromFun = !(cdef.mods hasFlag ABSTRACT) && cdef.tparams.isEmpty && constrParamss(cdef).length == 1
- def createFun = gen.scalaFunctionConstr(constrParamss(cdef).head map (_.tpt), toIdent(cdef))
+ def createFun = gen.scalaFunctionConstr(constrParamss(cdef).head map (_.tpt), toIdent(cdef), abstractFun = true)
def parents = if (inheritFromFun) List(createFun) else Nil
companionModuleDef(cdef, parents ::: List(gen.scalaScalaObjectConstr))
diff --git a/src/library/scala/Function0.scala b/src/library/scala/Function0.scala
index 74905d8af7..867c7bc536 100644
--- a/src/library/scala/Function0.scala
+++ b/src/library/scala/Function0.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with fancy comment)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment)
package scala
+
/** <p>
* Function with 0 parameters.
* </p>
@@ -35,7 +36,7 @@ package scala
* println(anonfun0())
* }</pre>
*/
-trait Function0[+R] extends AnyRef { self =>
+trait Function0[@specialized +R] extends AnyRef { self =>
def apply(): R
override def toString() = "<function0>"
diff --git a/src/library/scala/Function1.scala b/src/library/scala/Function1.scala
index afc19417a2..a5780f561a 100644
--- a/src/library/scala/Function1.scala
+++ b/src/library/scala/Function1.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) (with extra methods)
package scala
+
/** <p>
* Function with 1 parameter.
* </p>
@@ -35,7 +36,7 @@ package scala
* println(anonfun1(0))
* }</pre>
*/
-trait Function1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Int, Long, Double) +R] extends AnyRef { self =>
+trait Function1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Boolean, Int, Long, Double) +R] extends AnyRef { self =>
def apply(v1:T1): R
override def toString() = "<function1>"
diff --git a/src/library/scala/Function10.scala b/src/library/scala/Function10.scala
index 8eb6fad84e..967d58fa35 100644
--- a/src/library/scala/Function10.scala
+++ b/src/library/scala/Function10.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 10 parameters.
* </p>
diff --git a/src/library/scala/Function11.scala b/src/library/scala/Function11.scala
index 7e94c6d2ca..5d6065ea1c 100644
--- a/src/library/scala/Function11.scala
+++ b/src/library/scala/Function11.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 11 parameters.
* </p>
diff --git a/src/library/scala/Function12.scala b/src/library/scala/Function12.scala
index e14b95fc81..a262e2d8f7 100644
--- a/src/library/scala/Function12.scala
+++ b/src/library/scala/Function12.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 12 parameters.
* </p>
diff --git a/src/library/scala/Function13.scala b/src/library/scala/Function13.scala
index 2deeed8aa7..6b1d0788fb 100644
--- a/src/library/scala/Function13.scala
+++ b/src/library/scala/Function13.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 13 parameters.
* </p>
diff --git a/src/library/scala/Function14.scala b/src/library/scala/Function14.scala
index 596bbb25b8..75b0d25f5e 100644
--- a/src/library/scala/Function14.scala
+++ b/src/library/scala/Function14.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 14 parameters.
* </p>
diff --git a/src/library/scala/Function15.scala b/src/library/scala/Function15.scala
index 9942ab2015..c66015d2aa 100644
--- a/src/library/scala/Function15.scala
+++ b/src/library/scala/Function15.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 15 parameters.
* </p>
diff --git a/src/library/scala/Function16.scala b/src/library/scala/Function16.scala
index 5419b40f8d..5b6968c106 100644
--- a/src/library/scala/Function16.scala
+++ b/src/library/scala/Function16.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 16 parameters.
* </p>
diff --git a/src/library/scala/Function17.scala b/src/library/scala/Function17.scala
index 17caf47a02..74321b950b 100644
--- a/src/library/scala/Function17.scala
+++ b/src/library/scala/Function17.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 17 parameters.
* </p>
diff --git a/src/library/scala/Function18.scala b/src/library/scala/Function18.scala
index 338083ef17..4cb1540161 100644
--- a/src/library/scala/Function18.scala
+++ b/src/library/scala/Function18.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 18 parameters.
* </p>
diff --git a/src/library/scala/Function19.scala b/src/library/scala/Function19.scala
index 92eb2afa29..337b9c4837 100644
--- a/src/library/scala/Function19.scala
+++ b/src/library/scala/Function19.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 19 parameters.
* </p>
diff --git a/src/library/scala/Function2.scala b/src/library/scala/Function2.scala
index 46023a9b3b..44c4e358b8 100644
--- a/src/library/scala/Function2.scala
+++ b/src/library/scala/Function2.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with fancy comment) (with extra methods)
package scala
+
/** <p>
* Function with 2 parameters.
* </p>
@@ -35,9 +36,7 @@ package scala
* println(anonfun2(0, 1))
* }</pre>
*/
-trait Function2[@specialized(Int, Long, Double) -T1,
- @specialized(Int, Long, Double) -T2,
- @specialized(Unit, Int, Long, Double) +R] extends AnyRef { self =>
+trait Function2[@specialized(Int, Long, Double) -T1, @specialized(Int, Long, Double) -T2, @specialized(Unit, Boolean, Int, Long, Double) +R] extends AnyRef { self =>
def apply(v1:T1,v2:T2): R
override def toString() = "<function2>"
diff --git a/src/library/scala/Function20.scala b/src/library/scala/Function20.scala
index 45636a1b7d..d381d2d82e 100644
--- a/src/library/scala/Function20.scala
+++ b/src/library/scala/Function20.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 20 parameters.
* </p>
diff --git a/src/library/scala/Function21.scala b/src/library/scala/Function21.scala
index 4463866a55..b78fd96dd3 100644
--- a/src/library/scala/Function21.scala
+++ b/src/library/scala/Function21.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 21 parameters.
* </p>
diff --git a/src/library/scala/Function22.scala b/src/library/scala/Function22.scala
index c148144ef4..2322a24e9d 100644
--- a/src/library/scala/Function22.scala
+++ b/src/library/scala/Function22.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 22 parameters.
* </p>
diff --git a/src/library/scala/Function3.scala b/src/library/scala/Function3.scala
index 52c777fdc9..82858c356f 100644
--- a/src/library/scala/Function3.scala
+++ b/src/library/scala/Function3.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 3 parameters.
* </p>
diff --git a/src/library/scala/Function4.scala b/src/library/scala/Function4.scala
index 79e92dc4e3..c97c00eb0c 100644
--- a/src/library/scala/Function4.scala
+++ b/src/library/scala/Function4.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 4 parameters.
* </p>
diff --git a/src/library/scala/Function5.scala b/src/library/scala/Function5.scala
index af849300f4..fb798741ea 100644
--- a/src/library/scala/Function5.scala
+++ b/src/library/scala/Function5.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 5 parameters.
* </p>
diff --git a/src/library/scala/Function6.scala b/src/library/scala/Function6.scala
index 487c650fc9..02a2bd4fb7 100644
--- a/src/library/scala/Function6.scala
+++ b/src/library/scala/Function6.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 6 parameters.
* </p>
diff --git a/src/library/scala/Function7.scala b/src/library/scala/Function7.scala
index 76de5c185c..7973bcb87c 100644
--- a/src/library/scala/Function7.scala
+++ b/src/library/scala/Function7.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 7 parameters.
* </p>
diff --git a/src/library/scala/Function8.scala b/src/library/scala/Function8.scala
index c8ca675365..32929db9d6 100644
--- a/src/library/scala/Function8.scala
+++ b/src/library/scala/Function8.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 8 parameters.
* </p>
diff --git a/src/library/scala/Function9.scala b/src/library/scala/Function9.scala
index 338acbcae2..490e44c39b 100644
--- a/src/library/scala/Function9.scala
+++ b/src/library/scala/Function9.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
+
/** <p>
* Function with 9 parameters.
* </p>
diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala
index 0e93065e5a..af9a7eca20 100644
--- a/src/library/scala/Product1.scala
+++ b/src/library/scala/Product1.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product1 {
def unapply[T1](x: Product1[T1]): Option[Product1[T1]] =
Some(x)
diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala
index a63a1007fb..d6745d62ad 100644
--- a/src/library/scala/Product10.scala
+++ b/src/library/scala/Product10.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product10 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](x: Product10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Option[Product10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] =
Some(x)
diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala
index a33df77b64..83cf5f0e55 100644
--- a/src/library/scala/Product11.scala
+++ b/src/library/scala/Product11.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product11 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11](x: Product11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11]): Option[Product11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11]] =
Some(x)
diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala
index 24b16876a3..845bba720d 100644
--- a/src/library/scala/Product12.scala
+++ b/src/library/scala/Product12.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product12 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12](x: Product12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]): Option[Product12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]] =
Some(x)
diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala
index 1013561af6..374b457789 100644
--- a/src/library/scala/Product13.scala
+++ b/src/library/scala/Product13.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product13 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13](x: Product13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13]): Option[Product13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13]] =
Some(x)
diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala
index ddeccf7c98..93bb53339d 100644
--- a/src/library/scala/Product14.scala
+++ b/src/library/scala/Product14.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product14 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14](x: Product14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14]): Option[Product14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14]] =
Some(x)
diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala
index 0f25bda254..71cefbafc5 100644
--- a/src/library/scala/Product15.scala
+++ b/src/library/scala/Product15.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product15 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15](x: Product15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15]): Option[Product15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15]] =
Some(x)
diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala
index 1fcf2d192b..aa87c9f40b 100644
--- a/src/library/scala/Product16.scala
+++ b/src/library/scala/Product16.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product16 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16](x: Product16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16]): Option[Product16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16]] =
Some(x)
diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala
index 8c5efa9cc5..7caa99a578 100644
--- a/src/library/scala/Product17.scala
+++ b/src/library/scala/Product17.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product17 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17](x: Product17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17]): Option[Product17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17]] =
Some(x)
diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala
index 6ab150b1d1..ca0b168c83 100644
--- a/src/library/scala/Product18.scala
+++ b/src/library/scala/Product18.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product18 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18](x: Product18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18]): Option[Product18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18]] =
Some(x)
diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala
index 86fc2e43fb..88256c44fd 100644
--- a/src/library/scala/Product19.scala
+++ b/src/library/scala/Product19.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product19 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19](x: Product19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19]): Option[Product19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19]] =
Some(x)
diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala
index 436de41a01..6ce804fc89 100644
--- a/src/library/scala/Product2.scala
+++ b/src/library/scala/Product2.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product2 {
def unapply[T1, T2](x: Product2[T1, T2]): Option[Product2[T1, T2]] =
Some(x)
@@ -22,8 +23,7 @@ object Product2 {
*
* @since 2.3
*/
-trait Product2[@specialized(Int, Long, Double) +T1,
- @specialized(Int, Long, Double) +T2] extends Product {
+trait Product2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, Double) +T2] extends Product {
/**
* The arity of this product.
* @return 2
diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala
index cc398f7bb4..b9aab6988d 100644
--- a/src/library/scala/Product20.scala
+++ b/src/library/scala/Product20.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product20 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20](x: Product20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20]): Option[Product20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20]] =
Some(x)
diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala
index b215c466ae..9ab61d35ca 100644
--- a/src/library/scala/Product21.scala
+++ b/src/library/scala/Product21.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product21 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21](x: Product21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21]): Option[Product21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21]] =
Some(x)
diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala
index f7e10a2652..86fbaeca7f 100644
--- a/src/library/scala/Product22.scala
+++ b/src/library/scala/Product22.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
object Product22 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22](x: Product22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22]): Option[Product22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22]] =
Some(x)
diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala
index 0fbd855b86..09044716a4 100644
--- a/src/library/scala/Product3.scala
+++ b/src/library/scala/Product3.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product3 {
def unapply[T1, T2, T3](x: Product3[T1, T2, T3]): Option[Product3[T1, T2, T3]] =
Some(x)
diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala
index efeec3c601..c6a5c74bb5 100644
--- a/src/library/scala/Product4.scala
+++ b/src/library/scala/Product4.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product4 {
def unapply[T1, T2, T3, T4](x: Product4[T1, T2, T3, T4]): Option[Product4[T1, T2, T3, T4]] =
Some(x)
diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala
index 64e59b6b1d..147fb2d305 100644
--- a/src/library/scala/Product5.scala
+++ b/src/library/scala/Product5.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product5 {
def unapply[T1, T2, T3, T4, T5](x: Product5[T1, T2, T3, T4, T5]): Option[Product5[T1, T2, T3, T4, T5]] =
Some(x)
diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala
index a2a819ef51..f967992e5e 100644
--- a/src/library/scala/Product6.scala
+++ b/src/library/scala/Product6.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product6 {
def unapply[T1, T2, T3, T4, T5, T6](x: Product6[T1, T2, T3, T4, T5, T6]): Option[Product6[T1, T2, T3, T4, T5, T6]] =
Some(x)
diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala
index b9fa32bf00..c7a9baef98 100644
--- a/src/library/scala/Product7.scala
+++ b/src/library/scala/Product7.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product7 {
def unapply[T1, T2, T3, T4, T5, T6, T7](x: Product7[T1, T2, T3, T4, T5, T6, T7]): Option[Product7[T1, T2, T3, T4, T5, T6, T7]] =
Some(x)
diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala
index 0f5aa6100a..8663b0868b 100644
--- a/src/library/scala/Product8.scala
+++ b/src/library/scala/Product8.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product8 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8](x: Product8[T1, T2, T3, T4, T5, T6, T7, T8]): Option[Product8[T1, T2, T3, T4, T5, T6, T7, T8]] =
Some(x)
diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala
index 6adce6023f..8d2de090ab 100644
--- a/src/library/scala/Product9.scala
+++ b/src/library/scala/Product9.scala
@@ -8,11 +8,12 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:17 CEST 2010
package scala
+
object Product9 {
def unapply[T1, T2, T3, T4, T5, T6, T7, T8, T9](x: Product9[T1, T2, T3, T4, T5, T6, T7, T8, T9]): Option[Product9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] =
Some(x)
diff --git a/src/library/scala/Tuple1.scala b/src/library/scala/Tuple1.scala
index 5d25cc5abb..d8f8126f42 100644
--- a/src/library/scala/Tuple1.scala
+++ b/src/library/scala/Tuple1.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple1 is the canonical representation of a @see Product1
*
*/
diff --git a/src/library/scala/Tuple10.scala b/src/library/scala/Tuple10.scala
index c9e38eec29..11889b3485 100644
--- a/src/library/scala/Tuple10.scala
+++ b/src/library/scala/Tuple10.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple10 is the canonical representation of a @see Product10
*
*/
diff --git a/src/library/scala/Tuple11.scala b/src/library/scala/Tuple11.scala
index 546800f3af..b44141c1ee 100644
--- a/src/library/scala/Tuple11.scala
+++ b/src/library/scala/Tuple11.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple11 is the canonical representation of a @see Product11
*
*/
diff --git a/src/library/scala/Tuple12.scala b/src/library/scala/Tuple12.scala
index 0f2d4e9af0..37a172e74f 100644
--- a/src/library/scala/Tuple12.scala
+++ b/src/library/scala/Tuple12.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple12 is the canonical representation of a @see Product12
*
*/
diff --git a/src/library/scala/Tuple13.scala b/src/library/scala/Tuple13.scala
index d9d540d334..68d4a5aa8f 100644
--- a/src/library/scala/Tuple13.scala
+++ b/src/library/scala/Tuple13.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple13 is the canonical representation of a @see Product13
*
*/
diff --git a/src/library/scala/Tuple14.scala b/src/library/scala/Tuple14.scala
index 18ea35a9f4..424beb040e 100644
--- a/src/library/scala/Tuple14.scala
+++ b/src/library/scala/Tuple14.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple14 is the canonical representation of a @see Product14
*
*/
diff --git a/src/library/scala/Tuple15.scala b/src/library/scala/Tuple15.scala
index cb1742786c..944ff9d1b5 100644
--- a/src/library/scala/Tuple15.scala
+++ b/src/library/scala/Tuple15.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple15 is the canonical representation of a @see Product15
*
*/
diff --git a/src/library/scala/Tuple16.scala b/src/library/scala/Tuple16.scala
index 0af7feeb45..276220fbf5 100644
--- a/src/library/scala/Tuple16.scala
+++ b/src/library/scala/Tuple16.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple16 is the canonical representation of a @see Product16
*
*/
diff --git a/src/library/scala/Tuple17.scala b/src/library/scala/Tuple17.scala
index ef02d51fc6..d965ca8504 100644
--- a/src/library/scala/Tuple17.scala
+++ b/src/library/scala/Tuple17.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple17 is the canonical representation of a @see Product17
*
*/
diff --git a/src/library/scala/Tuple18.scala b/src/library/scala/Tuple18.scala
index 6f2489e41d..77cc635034 100644
--- a/src/library/scala/Tuple18.scala
+++ b/src/library/scala/Tuple18.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple18 is the canonical representation of a @see Product18
*
*/
diff --git a/src/library/scala/Tuple19.scala b/src/library/scala/Tuple19.scala
index ad69657e2c..540aaa3893 100644
--- a/src/library/scala/Tuple19.scala
+++ b/src/library/scala/Tuple19.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple19 is the canonical representation of a @see Product19
*
*/
diff --git a/src/library/scala/Tuple2.scala b/src/library/scala/Tuple2.scala
index 7fea22410d..ee2fe84482 100644
--- a/src/library/scala/Tuple2.scala
+++ b/src/library/scala/Tuple2.scala
@@ -8,7 +8,7 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010 (with extra methods)
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
@@ -16,11 +16,12 @@ import scala.collection.{TraversableLike, IterableLike}
import scala.collection.generic.CanBuildFrom
+
+
/** Tuple2 is the canonical representation of a @see Product2
*
*/
-case class Tuple2[@specialized(Int, Long, Double) +T1,
- @specialized(Int, Long, Double) +T2](_1:T1,_2:T2)
+case class Tuple2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, Double) +T2](_1:T1,_2:T2)
extends Product2[T1, T2]
{
override def toString() = "(" + _1 + "," + _2 + ")"
@@ -122,4 +123,5 @@ case class Tuple2[@specialized(Int, Long, Double) +T1,
f(el1, elems2.next)
}
}
+
}
diff --git a/src/library/scala/Tuple20.scala b/src/library/scala/Tuple20.scala
index 5f4d4b26e8..58e7018518 100644
--- a/src/library/scala/Tuple20.scala
+++ b/src/library/scala/Tuple20.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple20 is the canonical representation of a @see Product20
*
*/
diff --git a/src/library/scala/Tuple21.scala b/src/library/scala/Tuple21.scala
index 780cbd15ad..e302bfbd80 100644
--- a/src/library/scala/Tuple21.scala
+++ b/src/library/scala/Tuple21.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple21 is the canonical representation of a @see Product21
*
*/
diff --git a/src/library/scala/Tuple22.scala b/src/library/scala/Tuple22.scala
index f45cab85fa..2fd4fc7166 100644
--- a/src/library/scala/Tuple22.scala
+++ b/src/library/scala/Tuple22.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple22 is the canonical representation of a @see Product22
*
*/
diff --git a/src/library/scala/Tuple3.scala b/src/library/scala/Tuple3.scala
index a1fca95e4d..e6464cf52c 100644
--- a/src/library/scala/Tuple3.scala
+++ b/src/library/scala/Tuple3.scala
@@ -8,13 +8,16 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010 (with extra methods)
package scala
import scala.collection.{TraversableLike, IterableLike}
import scala.collection.generic.CanBuildFrom
+
+
+
/** Tuple3 is the canonical representation of a @see Product3
*
*/
@@ -136,4 +139,5 @@ case class Tuple3[+T1, +T2, +T3](_1:T1,_2:T2,_3:T3)
f(el1, elems2.next, elems3.next)
}
}
+
}
diff --git a/src/library/scala/Tuple4.scala b/src/library/scala/Tuple4.scala
index fbf5d341a4..55cfae2c03 100644
--- a/src/library/scala/Tuple4.scala
+++ b/src/library/scala/Tuple4.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple4 is the canonical representation of a @see Product4
*
*/
diff --git a/src/library/scala/Tuple5.scala b/src/library/scala/Tuple5.scala
index 033f26263d..ec52ee039e 100644
--- a/src/library/scala/Tuple5.scala
+++ b/src/library/scala/Tuple5.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple5 is the canonical representation of a @see Product5
*
*/
diff --git a/src/library/scala/Tuple6.scala b/src/library/scala/Tuple6.scala
index d360adad2a..5f41c1de2a 100644
--- a/src/library/scala/Tuple6.scala
+++ b/src/library/scala/Tuple6.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple6 is the canonical representation of a @see Product6
*
*/
diff --git a/src/library/scala/Tuple7.scala b/src/library/scala/Tuple7.scala
index 5a080c2e0e..0e2315c573 100644
--- a/src/library/scala/Tuple7.scala
+++ b/src/library/scala/Tuple7.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple7 is the canonical representation of a @see Product7
*
*/
diff --git a/src/library/scala/Tuple8.scala b/src/library/scala/Tuple8.scala
index 551c5e5d34..58b2e13af8 100644
--- a/src/library/scala/Tuple8.scala
+++ b/src/library/scala/Tuple8.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple8 is the canonical representation of a @see Product8
*
*/
diff --git a/src/library/scala/Tuple9.scala b/src/library/scala/Tuple9.scala
index 8098daaf40..360228cb68 100644
--- a/src/library/scala/Tuple9.scala
+++ b/src/library/scala/Tuple9.scala
@@ -8,12 +8,13 @@
// $Id$
-// generated by genprod on Sun Jan 17 19:38:09 PST 2010
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
package scala
+
/** Tuple9 is the canonical representation of a @see Product9
*
*/
diff --git a/src/library/scala/collection/BitSetLike.scala b/src/library/scala/collection/BitSetLike.scala
index 7c5e2fb269..3028cca6eb 100644
--- a/src/library/scala/collection/BitSetLike.scala
+++ b/src/library/scala/collection/BitSetLike.scala
@@ -41,7 +41,7 @@ trait BitSetLike[+This <: BitSetLike[This] with Set[Int]] extends SetLike[Int, T
protected def nwords: Int
/** The words at index `idx', or 0L if outside the range of the set
- * @note Requires `idx >= 0`
+ * '''Note:''' requires `idx >= 0`
*/
protected def word(idx: Int): Long
diff --git a/src/library/scala/collection/IndexedSeq.scala b/src/library/scala/collection/IndexedSeq.scala
index 72878a8ad6..78165cb242 100644
--- a/src/library/scala/collection/IndexedSeq.scala
+++ b/src/library/scala/collection/IndexedSeq.scala
@@ -24,6 +24,7 @@ trait IndexedSeq[+A] extends Seq[A]
}
/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
* @define coll indexed sequence
* @define Coll IndexedSeq
*/
diff --git a/src/library/scala/collection/IndexedSeqLike.scala b/src/library/scala/collection/IndexedSeqLike.scala
index 453b4384f7..7bfad167c6 100644
--- a/src/library/scala/collection/IndexedSeqLike.scala
+++ b/src/library/scala/collection/IndexedSeqLike.scala
@@ -66,13 +66,13 @@ trait IndexedSeqLike[+A, +Repr] extends SeqLike[A, Repr] { self =>
if (i < end) self(i) else Iterator.empty.next
/** $super
- * @note `drop` is overridden to enable fast searching in the middle of indexed sequences.
+ * '''Note:''' `drop` is overridden to enable fast searching in the middle of indexed sequences.
*/
override def drop(n: Int): Iterator[A] =
if (n > 0) new Elements(start + n, end) else this
/** $super
- * @note `take` is overridden to be symmetric to `drop`.
+ * '''Note:''' `take` is overridden to be symmetric to `drop`.
*/
override def take(n: Int): Iterator[A] =
if (n <= 0) Iterator.empty.buffered
diff --git a/src/library/scala/collection/Iterable.scala b/src/library/scala/collection/Iterable.scala
index 65d4dfcbe2..2baacec9f9 100644
--- a/src/library/scala/collection/Iterable.scala
+++ b/src/library/scala/collection/Iterable.scala
@@ -36,6 +36,7 @@ trait Iterable[+A] extends Traversable[A]
}
/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
* @define coll iterable collection
* @define Coll Iterable
*/
diff --git a/src/library/scala/collection/IterableView.scala b/src/library/scala/collection/IterableView.scala
index 436c000909..a6078bcdc8 100644
--- a/src/library/scala/collection/IterableView.scala
+++ b/src/library/scala/collection/IterableView.scala
@@ -14,14 +14,14 @@ package scala.collection
import generic._
import TraversableView.NoBuilder
-/** A base class for views of Iterables.
- *
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
+/** A base trait for non-strict views of `Iterable`s.
+ * $iterableViewInfo
*/
trait IterableView[+A, +Coll] extends IterableViewLike[A, Coll, IterableView[A, Coll]]
+/** An object containing the necessary implicit definitions to make
+ * `IterableView`s work. Its definitions are generally not accessed directly by clients.
+ */
object IterableView {
type Coll = TraversableView[_, C] forSome {type C <: Traversable[_]}
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, IterableView[A, Iterable[_]]] =
diff --git a/src/library/scala/collection/IterableViewLike.scala b/src/library/scala/collection/IterableViewLike.scala
index b8f0b65faf..49fcee842c 100644
--- a/src/library/scala/collection/IterableViewLike.scala
+++ b/src/library/scala/collection/IterableViewLike.scala
@@ -16,11 +16,11 @@ import collection.immutable.Stream
import TraversableView.NoBuilder
/** A template trait for non-strict views of iterable collections.
- * $iterableviewInfo
+ * $iterableViewInfo
*
- * @define iterableviewInfo
- * $viewinfo
- * All views for iterable collections are defined by creating a new `iterator` method.
+ * @define iterableViewInfo
+ * $viewInfo
+ * All views for iterable collections are defined by re-interpreting the `iterator` method.
*
* @author Martin Odersky
* @version 2.8
diff --git a/src/library/scala/collection/Iterator.scala b/src/library/scala/collection/Iterator.scala
index 2ee4e8056e..24c447b24b 100644
--- a/src/library/scala/collection/Iterator.scala
+++ b/src/library/scala/collection/Iterator.scala
@@ -32,10 +32,10 @@ object Iterator {
}
/** Creates an iterator which produces a single element.
+ * '''Note:''' Equivalent, but more efficient than Iterator(elem)
* @param elem the element
* @return An iterator which produces `elem` on the first call to `next`,
* and which has no further elements.
- * @note Equivalent, but more efficient than Iterator(elem)
*/
def single[A](elem: A) = new Iterator[A] {
private var hasnext = true
@@ -429,7 +429,7 @@ trait Iterator[+A] extends TraversableOnce[A] {
* satisfy the predicate `p`. The order of the elements
* is preserved.
*
- * @note `withFilter` is the same as `filter` on iterators. It exists so that
+ * '''Note:''' `withFilter` is the same as `filter` on iterators. It exists so that
* for-expressions with filters work over iterators.
*
* @param p the predicate used to test values.
@@ -1033,10 +1033,10 @@ trait Iterator[+A] extends TraversableOnce[A] {
* this sequence starting at position `start`. Like `copyToArray`,
* but designed to accomodate IO stream operations.
*
+ * '''Note:''' the array must be large enough to hold `sz` elements.
* @param xs the array to fill.
* @param start the starting index.
* @param sz the maximum number of elements to be read.
- * @note the array must be large enough to hold `sz` elements.
*/
@deprecated("use copyToArray instead")
def readInto[B >: A](xs: Array[B], start: Int, sz: Int) {
diff --git a/src/library/scala/collection/LinearSeq.scala b/src/library/scala/collection/LinearSeq.scala
index ef7d4c9390..ba0eb6a22d 100644
--- a/src/library/scala/collection/LinearSeq.scala
+++ b/src/library/scala/collection/LinearSeq.scala
@@ -24,6 +24,7 @@ trait LinearSeq[+A] extends Seq[A]
}
/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
* @define coll linear sequence
* @define Coll LinearSeq
*/
diff --git a/src/library/scala/collection/Map.scala b/src/library/scala/collection/Map.scala
index 9d44a950de..0722d55f03 100644
--- a/src/library/scala/collection/Map.scala
+++ b/src/library/scala/collection/Map.scala
@@ -13,43 +13,33 @@ package scala.collection
import generic._
-/** <p>
- * A map from keys of type <code>A</code> to values of type <code>B</code>.
- * To implement a concrete map, you need to provide implementations of the
- * following methods (where <code>This</code> is the type of the map in question):
- * </p><pre>
- * <b>def</b> get(key: A): Option[B]
- * <b>def</b> iterator: Iterator[(A, B)]
- * <b>def</b> + [B1 >: B](kv: (A, B1)): This
- * <b>def</b> -(key: A): This</pre>
- * <p>
- * If you wish that methods like `take`, `drop`, `filter` return the same kind
- * of map, you should also override:
- * </p><pre>
- * <b>def</b> empty: This</pre>
- * <p>
- * It might also be a good idea to override methods <code>foreach</code>
- * and <code>size</code> for efficiency.
- * </p>
+/**
+ * A map from keys of type `A` to values of type `B`.
*
- * @note If you do not have specific implementations for `add` and `-` in mind,
- * you might consider inheriting from <code>DefaultMap</code> instead.
+ * $mapnote
*
- * @note If your additions and mutations return the same kind of map as the map
- * you are defining, you should inherit from <code>MapLike</code> as well.
+ * '''Note:''' If you do not have specific implementations for `add` and `-` in mind,
+ * you might consider inheriting from `DefaultMap` instead.
*
- * @since 1
+ * '''Note:''' If your additions and mutations return the same kind of map as the map
+ * you are defining, you should inherit from `MapLike` as well.
+ *
+ * @tparam A the type of the keys in this map.
+ * @tparam B the type of the values associated with keys.
+ *
+ * @since 1
*/
trait Map[A, +B] extends Iterable[(A, B)] with MapLike[A, B, Map[A, B]] {
def empty: Map[A, B] = Map.empty
}
-/* Factory object for `Map` class
- *
- * @since 2.5
+/** $factoryInfo
+ * @define Coll Map
+ * @define coll map
*/
object Map extends MapFactory[Map] {
def empty[A, B]: immutable.Map[A, B] = immutable.Map.empty
+ /** $mapCanBuildFromInfo */
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), Map[A, B]] = new MapCanBuildFrom[A, B]
}
diff --git a/src/library/scala/collection/MapLike.scala b/src/library/scala/collection/MapLike.scala
index 057224a705..9bca2f09a0 100644
--- a/src/library/scala/collection/MapLike.scala
+++ b/src/library/scala/collection/MapLike.scala
@@ -15,20 +15,14 @@ import mutable.{Builder, StringBuilder, MapBuilder}
import annotation.migration
import PartialFunction._
-/** A template trait for maps of type `Map[A, B]` which associate keys of type `A`
- * with values of type `B`.
+/** A template trait for maps, which associate keys with values.
*
- * @tparam A the type of the keys.
- * @tparam B the type of associated values.
- * @tparam This the type of the map itself.
- *
- * $mapnote
+ * $mapNote
+ * $mapTags
+ * @since 2.8
*
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
- * $mapnote
- * @define $mapnote @note
+ * @define mapNote
+ * '''Implementation note:'''
* This trait provides most of the operations of a `Map` independently of its representation.
* It is typically inherited by concrete implementations of maps.
*
@@ -47,6 +41,15 @@ import PartialFunction._
* }}}
* It is also good idea to override methods `foreach` and
* `size` for efficiency.
+ *
+ * @define mapTags
+ * @tparam A the type of the keys.
+ * @tparam B the type of associated values.
+ * @tparam This the type of the map itself.
+ *
+ * @author Martin Odersky
+ * @version 2.8
+ *
* @define coll map
* @define Coll Map
* @define willNotTerminateInf
@@ -287,14 +290,15 @@ self =>
((repr: Map[A, B1]) /: xs) (_ + _)
/** Returns a new map with all key/value pairs for which the predicate
- * <code>p</code> returns <code>true</code>.
+ * `p` returns `true`.
*
- * @param p A predicate over key-value pairs
- * @note This method works by successively removing elements fro which the
+ * '''Note:''' This method works by successively removing elements fro which the
* predicate is false from this set.
* If removal is slow, or you expect that most elements of the set
- * will be removed, you might consider using <code>filter</code>
+ * will be removed, you might consider using `filter`
* with a negated predicate instead.
+ * @param p A predicate over key-value pairs
+ * @return A new map containing elements not satisfying the predicate.
*/
override def filterNot(p: ((A, B)) => Boolean): This = {
var res: This = repr
diff --git a/src/library/scala/collection/Seq.scala b/src/library/scala/collection/Seq.scala
index baf2c0031e..f6b89b67b8 100644
--- a/src/library/scala/collection/Seq.scala
+++ b/src/library/scala/collection/Seq.scala
@@ -25,6 +25,7 @@ trait Seq[+A] extends PartialFunction[Int, A]
}
/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
* @define coll sequence
* @define Coll Seq
*/
diff --git a/src/library/scala/collection/SeqView.scala b/src/library/scala/collection/SeqView.scala
index 9a0025bd81..68819e899d 100644
--- a/src/library/scala/collection/SeqView.scala
+++ b/src/library/scala/collection/SeqView.scala
@@ -14,16 +14,13 @@ package scala.collection
import generic._
import TraversableView.NoBuilder
-/** A non-strict projection of an iterable.
- * @author Sean McDirmid
- * @author Martin Odersky
- * @version 2.8
+/** A base trait for non-strict views of sequences.
+ * $seqViewInfo
*/
trait SeqView[+A, +Coll] extends SeqViewLike[A, Coll, SeqView[A, Coll]]
-/** $factoryInfo
- * @define coll sequence view
- * @define Coll SeqView
+/** An object containing the necessary implicit definitions to make
+ * `SeqView`s work. Its definitions are generally not accessed directly by clients.
*/
object SeqView {
type Coll = TraversableView[_, C] forSome {type C <: Traversable[_]}
diff --git a/src/library/scala/collection/SeqViewLike.scala b/src/library/scala/collection/SeqViewLike.scala
index 7014833a46..6f1f29f536 100644
--- a/src/library/scala/collection/SeqViewLike.scala
+++ b/src/library/scala/collection/SeqViewLike.scala
@@ -15,10 +15,19 @@ import generic._
import Seq.fill
import TraversableView.NoBuilder
-/** A template trait for a non-strict view of a sequence.
- * @author Sean McDirmid
- * @author Martin Odersky
- * @version 2.8
+/** A template trait for non-strict views of sequences.
+ * $seqViewInfo
+ *
+ * @define seqViewInfo
+ * $viewInfo
+ * All views for sequences are defined by re-interpreting the `length` and `apply` methods.
+ *
+ * @author Martin Odersky
+ * @version 2.8
+ * @since 2.8
+ * @tparam A the element type of the view
+ * @tparam Coll the type of the underlying collection containing the elements.
+ * @tparam This the type of the view itself
*/
trait SeqViewLike[+A,
+Coll,
diff --git a/src/library/scala/collection/Set.scala b/src/library/scala/collection/Set.scala
index 3a6313a187..034d9f1705 100644
--- a/src/library/scala/collection/Set.scala
+++ b/src/library/scala/collection/Set.scala
@@ -12,14 +12,16 @@ package scala.collection
import generic._
-/** <p>
- * A set is a collection that includes at most one of any object.
- * </p>
+/** A base trait for all sets, mutable as well as immutable.
*
- * @author Matthias Zenger
- * @author Martin Odersky
- * @version 2.8
- * @since 1
+ * $setNote
+ * $setNote2
+ * $setTags
+ * @since 1.0
+ * @author Matthias Zenger
+ * @define setNote2
+ * '''Implementation note:''' If your additions and mutations return the same kind of set as the set
+ * you are defining, you should inherit from `SetLike` as well.
*/
trait Set[A] extends (A => Boolean)
with Iterable[A]
@@ -28,11 +30,11 @@ trait Set[A] extends (A => Boolean)
override def companion: GenericCompanion[Set] = Set
}
-/** Factory object for <code>Set</code> class.
- *
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
+/** $factoryInfo
+ * The current default implementation of a $Coll is one of `EmptySet`, `Set1`, `Set2`, `Set3`, `Set4` in
+ * class `immutable.Set` for sets of sizes up to 4, and a `immutable.HashSet` for sets of larger sizes.
+ * @define coll set
+ * @define Coll Set
*/
object Set extends SetFactory[Set] {
override def empty[A]: Set[A] = immutable.Set.empty[A]
diff --git a/src/library/scala/collection/SetLike.scala b/src/library/scala/collection/SetLike.scala
index 44dac8e8fe..5a16b975df 100644
--- a/src/library/scala/collection/SetLike.scala
+++ b/src/library/scala/collection/SetLike.scala
@@ -14,20 +14,21 @@ import generic._
import mutable.{Builder, AddingBuilder}
import PartialFunction._
-/** A template trait for sets of type `Set[A]`.
+/** A template trait for sets.
*
- * This trait provides most of the operations of a `Set` independently of its representation.
- * It is typically inherited by concrete implementations of sets.
+ * $setNote
+ * $setTags
+ * @since 2.8
*
- * $setnote
+ * @define setNote
*
- * @tparam A the type of the elements of the set
- * @tparam This the type of the set itself.
+ * A set is a collection that contains no duplicate elements.
*
- * @author Martin Odersky
- * @version 2.8
- * @define setnote
- * To implement a concrete set, you need to provide implementations of the
+ * '''Implementation note:'''
+ * This trait provides most of the operations of a `Set` independently of its representation.
+ * It is typically inherited by concrete implementations of sets.
+ *
+ * To implement a concrete set, you need to provide implementations of the
* following methods:
* {{{
* def contains(key: A): Boolean
@@ -42,10 +43,18 @@ import PartialFunction._
* }}}
* It is also good idea to override methods `foreach` and
* `size` for efficiency.
- * @define coll set
- * @define Coll Set
- * @define willNotTerminateInf
- * @define mayNotTerminateInf
+ *
+ * @define setTags
+ * @tparam A the type of the elements of the set
+ * @tparam This the type of the set itself.
+ *
+ * @author Martin Odersky
+ * @version 2.8
+ *
+ * @define coll set
+ * @define Coll Set
+ * @define willNotTerminateInf
+ * @define mayNotTerminateInf
*/
trait SetLike[A, +This <: SetLike[A, This] with Set[A]]
extends IterableLike[A, This]
@@ -113,10 +122,10 @@ self =>
/** Computes the intersection between this set and another set.
*
+ * '''Note:''' Same as `intersect`.
* @param that the set to intersect with.
* @return a new set consisting of all elements that are both in this
* set and in the given set `that`.
- * @note Same as `intersect`.
*/
def &(that: Set[A]): This = intersect(that)
@@ -138,10 +147,10 @@ self =>
/** Computes the union between this set and another set.
*
+ * '''Note:''' Same as `union`.
* @param that the set to form the union with.
* @return a new set consisting of all elements that are in this
* set or in the given set `that`.
- * @note Same as `union`.
*/
def | (that: Set[A]): This = union(that)
@@ -155,10 +164,10 @@ self =>
/** The difference of this set and another set.
*
+ * '''Note:''' Same as `diff`.
* @param that the set of elements to exclude.
* @return a set containing those elements of this
* set that are not also contained in the given set `that`.
- * @note Same as `diff`.
*/
def &~(that: Set[A]): This = diff(that)
@@ -181,13 +190,13 @@ self =>
/** Compares this set with another object for equality.
*
- * @param that the other object
- * @return `true` if `that` is a set which contains the same elements
- * as this set.
- * @note This operation contains an unchecked cast: if `that`
+ * '''Note:''' This operation contains an unchecked cast: if `that`
* is a set, it will assume with an unchecked cast
* that it has the same element type as this set.
* Any subsequent ClassCastException is treated as a `false` result.
+ * @param that the other object
+ * @return `true` if `that` is a set which contains the same elements
+ * as this set.
*/
override def equals(that: Any): Boolean = that match {
case that: Set[_] =>
diff --git a/src/library/scala/collection/Traversable.scala b/src/library/scala/collection/Traversable.scala
index 4a1cd01af1..b3383ba802 100644
--- a/src/library/scala/collection/Traversable.scala
+++ b/src/library/scala/collection/Traversable.scala
@@ -83,6 +83,7 @@ trait Traversable[+A] extends TraversableLike[A, Traversable[A]]
}
/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
*/
object Traversable extends TraversableFactory[Traversable] { self =>
diff --git a/src/library/scala/collection/TraversableView.scala b/src/library/scala/collection/TraversableView.scala
index ccc33a495d..6d7fa70968 100644
--- a/src/library/scala/collection/TraversableView.scala
+++ b/src/library/scala/collection/TraversableView.scala
@@ -15,10 +15,14 @@ import generic._
import mutable.Builder
import TraversableView.NoBuilder
-/** $traversableviewinfo
+/** A base trait for non-strict views of traversable collections.
+ * $traversableViewInfo
*/
trait TraversableView[+A, +Coll] extends TraversableViewLike[A, Coll, TraversableView[A, Coll]]
+/** An object containing the necessary implicit definitions to make
+ * `TraversableView`s work. Its definitions are generally not accessed directly by clients.
+ */
object TraversableView {
class NoBuilder[A] extends Builder[A, Nothing] {
def +=(elem: A): this.type = this
diff --git a/src/library/scala/collection/generic/GenericCompanion.scala b/src/library/scala/collection/generic/GenericCompanion.scala
index 4332a1c936..2a87f8d913 100644
--- a/src/library/scala/collection/generic/GenericCompanion.scala
+++ b/src/library/scala/collection/generic/GenericCompanion.scala
@@ -28,13 +28,18 @@ abstract class GenericCompanion[+CC[X] <: Traversable[X]] {
/** The underlying collection type with unknown element type */
type Coll = CC[_]
- /** The default builder for $Coll objects. */
+ /** The default builder for `$Coll` objects.
+ * @tparam A the type of the ${coll}'s elements
+ */
def newBuilder[A]: Builder[A, CC[A]]
- /** The empty collection of type $Coll[A] */
+ /** An empty collection of type `$Coll[A]`
+ * @tparam A the type of the ${coll}'s elements
+ */
def empty[A]: CC[A] = newBuilder[A].result
/** Creates a $coll with the specified elements.
+ * @tparam A the type of the ${coll}'s elements
* @param elems the elements of the created $coll
* @return a new $coll with elements `elems`
*/
diff --git a/src/library/scala/collection/generic/ImmutableMapFactory.scala b/src/library/scala/collection/generic/ImmutableMapFactory.scala
index 2fd22e7f02..512014ba09 100644
--- a/src/library/scala/collection/generic/ImmutableMapFactory.scala
+++ b/src/library/scala/collection/generic/ImmutableMapFactory.scala
@@ -11,9 +11,9 @@
package scala.collection
package generic
-/** A template for companion objects of <code>immutable.Map</code> and
- * subclasses thereof.
- *
- * @since 2.8
+/** A template for companion objects of `immutable.Map` and subclasses thereof.
+ * @author Martin Odersky
+ * @version 2.8
+ * @since 2.8
*/
abstract class ImmutableMapFactory[CC[A, +B] <: immutable.Map[A, B] with immutable.MapLike[A, B, CC[A, B]]] extends MapFactory[CC]
diff --git a/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala b/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala
index d5c372ba74..d30f57f0ce 100644
--- a/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala
+++ b/src/library/scala/collection/generic/ImmutableSortedMapFactory.scala
@@ -12,8 +12,16 @@
package scala.collection
package generic
-/** A template for companion objects of immutable.Map and subclasses thereof.
+/** A template for companion objects of `SortedMap` and subclasses thereof.
*
* @since 2.8
+ * @define Coll SortedMap
+ * @define coll sorted map
+ * @define factoryInfo
+ * This object provides a set of operations needed to create sorted maps of type `$Coll`.
+ * @author Martin Odersky
+ * @version 2.8
+ * @define sortedMapCanBuildFromInfo
+ * The standard `CanBuildFrom` instance for sorted maps
*/
abstract class ImmutableSortedMapFactory[CC[A, B] <: immutable.SortedMap[A, B] with SortedMapLike[A, B, CC[A, B]]] extends SortedMapFactory[CC]
diff --git a/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala b/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala
index df5c2c7959..684e7c41f1 100644
--- a/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala
+++ b/src/library/scala/collection/generic/ImmutableSortedSetFactory.scala
@@ -12,8 +12,16 @@
package scala.collection
package generic
-/** A template for companion objects of mutable.Map and subclasses thereof.
+/** A template for companion objects of `SortedSet` and subclasses thereof.
*
* @since 2.8
+ * @define Coll immutable.SortedSet
+ * @define coll immutable sorted
+ * @define factoryInfo
+ * This object provides a set of operations needed to create sorted sets of type `$Coll`.
+ * @author Martin Odersky
+ * @version 2.8
+ * @define sortedSetCanBuildFromInfo
+ * The standard `CanBuildFrom` instance for sorted sets
*/
abstract class ImmutableSortedSetFactory[CC[A] <: immutable.SortedSet[A] with SortedSetLike[A, CC[A]]] extends SortedSetFactory[CC] \ No newline at end of file
diff --git a/src/library/scala/collection/generic/MapFactory.scala b/src/library/scala/collection/generic/MapFactory.scala
index fc04f28f26..163c289e23 100644
--- a/src/library/scala/collection/generic/MapFactory.scala
+++ b/src/library/scala/collection/generic/MapFactory.scala
@@ -22,6 +22,7 @@ import mutable.{Builder, MapBuilder}
* This object provides a set of operations needed to create `$Coll` values.
* @author Martin Odersky
* @version 2.8
+ * @since 2.8
* @define canBuildFromInfo
* The standard `CanBuildFrom` instance for `$Coll` objects.
* @see CanBuildFrom
@@ -33,14 +34,28 @@ import mutable.{Builder, MapBuilder}
*/
abstract class MapFactory[CC[A, B] <: Map[A, B] with MapLike[A, B, CC[A, B]]] {
+ /** The type constructor of the collection that can be built by this factory */
type Coll = CC[_, _]
+ /** An empty $Coll */
def empty[A, B]: CC[A, B]
+ /** A collection of type $Coll that contains given key/value bindings.
+ * @param elems the key/value pairs that make up the $coll
+ * @tparam A the type of the keys
+ * @tparam B the type of the associated values
+ * @return a new $coll consisting key/value pairs given by `elems`.
+ */
def apply[A, B](elems: (A, B)*): CC[A, B] = (newBuilder[A, B] ++= elems).result
+ /** The default builder for $Coll objects.
+ * @tparam A the type of the keys
+ * @tparam B the type of the associated values
+ */
def newBuilder[A, B]: Builder[(A, B), CC[A, B]] = new MapBuilder[A, B, CC[A, B]](empty[A, B])
+ /** The standard `CanBuildFrom` class for maps.
+ */
class MapCanBuildFrom[A, B] extends CanBuildFrom[Coll, (A, B), CC[A, B]] {
def apply(from: Coll) = newBuilder[A, B]
def apply() = newBuilder
diff --git a/src/library/scala/collection/generic/MutableMapFactory.scala b/src/library/scala/collection/generic/MutableMapFactory.scala
index 0f1608ee71..2fdb827d05 100644
--- a/src/library/scala/collection/generic/MutableMapFactory.scala
+++ b/src/library/scala/collection/generic/MutableMapFactory.scala
@@ -14,9 +14,10 @@ package generic
import mutable.MapBuilder
-/** A template for companion objects of `mutable.Map` and subclasses thereof.
- *
- * @since 2.8
+/** A template for companion objects of `immutable.Map` and subclasses thereof.
+ * @author Martin Odersky
+ * @version 2.8
+ * @since 2.8
*/
abstract class MutableMapFactory[CC[A, B] <: mutable.Map[A, B] with mutable.MapLike[A, B, CC[A, B]]]
extends MapFactory[CC]
diff --git a/src/library/scala/collection/generic/SetFactory.scala b/src/library/scala/collection/generic/SetFactory.scala
index 6a237d453c..1c4ec3e7e3 100644
--- a/src/library/scala/collection/generic/SetFactory.scala
+++ b/src/library/scala/collection/generic/SetFactory.scala
@@ -14,8 +14,7 @@ package generic
import mutable.{Builder, AddingBuilder}
-/** A template for companion objects of <code>Set</code> and subclasses
- * thereof.
+/** A template for companion objects of `Set` and subclasses thereof.
*
* @define coll set
* @define Coll Set
@@ -23,6 +22,7 @@ import mutable.{Builder, AddingBuilder}
* This object provides a set of operations needed to create `$Coll` values.
* @author Martin Odersky
* @version 2.8
+ * @since 2.8
* @define canBuildFromInfo
* The standard `CanBuildFrom` instance for `$Coll` objects.
* @see CanBuildFrom
@@ -36,6 +36,8 @@ abstract class SetFactory[CC[X] <: Set[X] with SetLike[X, CC[X]]]
def newBuilder[A]: Builder[A, CC[A]] = new AddingBuilder[A, CC[A]](empty[A])
+ /** $setCanBuildFromInfo
+ */
def setCanBuildFrom[A] = new CanBuildFrom[CC[_], A, CC[A]] {
def apply(from: CC[_]) = newBuilder[A]
def apply() = newBuilder[A]
diff --git a/src/library/scala/collection/immutable/BitSet.scala b/src/library/scala/collection/immutable/BitSet.scala
index 857b537904..9b801f26cb 100644
--- a/src/library/scala/collection/immutable/BitSet.scala
+++ b/src/library/scala/collection/immutable/BitSet.scala
@@ -17,6 +17,8 @@ import BitSetLike.{LogWL, updateArray}
/** A class for immutable bitsets.
* $bitsetinfo
+ * @define Coll immutable.BitSet
+ * @define coll immutable bitset
*/
@serializable @SerialVersionUID(1611436763290191562L)
abstract class BitSet extends Set[Int]
@@ -53,12 +55,16 @@ abstract class BitSet extends Set[Int]
}
}
-/** A factory object for bitsets */
+/** $factoryInfo
+ * @define Coll immutable.BitSet
+ * @define coll immutable bitset
+ */
object BitSet extends BitSetFactory[BitSet] {
/** The empty bitset */
val empty: BitSet = new BitSet1(0L)
+ /** $bitsetCanBuildFrom */
implicit def canBuildFrom: CanBuildFrom[BitSet, Int, BitSet] = bitsetCanBuildFrom
/** A bitset containing all the bits in an array */
diff --git a/src/library/scala/collection/immutable/DefaultMap.scala b/src/library/scala/collection/immutable/DefaultMap.scala
index a19b35aff0..667d86d352 100755
--- a/src/library/scala/collection/immutable/DefaultMap.scala
+++ b/src/library/scala/collection/immutable/DefaultMap.scala
@@ -14,22 +14,24 @@ package immutable
import generic._
-/** <p>
- * A default map which implements the <code>updated</code> and <code>-</code>
- * methods of maps.<br/>
- * Instances that inherit from <code>DefaultMap[A, B]</code> still have to
- * define:
- * </p>
- * <pre>
- * <b>def</b> get(key: A): Option[B]
- * <b>def</b> iterator: Iterator[(A, B)]</pre>
- * <p>
- * It refers back to the original map.
- * </p>
- * <p>
- * It might also be advisable to override <code>foreach</code> or
- * <code>size</code> if efficient implementations can be found.
- * </p>
+/** A default map which implements the `+` and `-`
+ * methods of maps. It does so using the default builder for
+ * maps defined in the `Map` object.
+ * Instances that inherit from `DefaultMap[A, B]` still have to
+ * define:
+ *
+ * {{{
+ * def get(key: A): Option[B]
+ * def iterator: Iterator[(A, B)]
+ * }}}
+ *
+ * It refers back to the original map.
+ *
+ * It might also be advisable to override `foreach` or
+ * `size` if efficient implementations can be found.
+ *
+ * @tparam A the type of the keys contained in this map.
+ * @tparam B the type of the values associated with the keys.
*
* @since 2.8
*/
@@ -52,3 +54,13 @@ trait DefaultMap[A, +B] extends Map[A, B] { self =>
b.result
}
}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/library/scala/collection/immutable/HashMap.scala b/src/library/scala/collection/immutable/HashMap.scala
index e0f801546c..b82e50ec06 100644
--- a/src/library/scala/collection/immutable/HashMap.scala
+++ b/src/library/scala/collection/immutable/HashMap.scala
@@ -15,17 +15,22 @@ package immutable
import generic._
import annotation.unchecked.uncheckedVariance
-/** <p>
- * This class implements immutable maps using a hash trie.
- * </p>
+/** This class implements immutable maps using a hash trie.
*
- * @note the builder of a hash map returns specialized representations EmptyMap,Map1,..., Map4
- * for maps of size <= 4.
+ * '''Note:''' the builder of a hash map returns specialized representations EmptyMap,Map1,..., Map4
+ * for maps of size <= 4.
+ *
+ * @tparam A the type of the keys contained in this hash map.
+ * @tparam B the type of the values associated with the keys.
*
* @author Martin Odersky
* @author Tiark Rompf
* @version 2.8
* @since 2.3
+ * @define Coll immutable.HashMap
+ * @define coll immutable hash map
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable @SerialVersionUID(2L)
class HashMap[A, +B] extends Map[A,B] with MapLike[A, B, HashMap[A, B]] {
@@ -70,20 +75,22 @@ class HashMap[A, +B] extends Map[A,B] with MapLike[A, B, HashMap[A, B]] {
protected def updated0[B1 >: B](key: A, hash: Int, level: Int, value: B1, kv: (A, B1)): HashMap[A, B1] =
new HashMap.HashMap1(key, hash, value, kv)
+ protected def removed0(key: A, hash: Int, level: Int): HashMap[A, B] = this
- protected def removed0(key: A, hash: Int, level: Int): HashMap[A, B] = this
+ protected def writeReplace(): AnyRef = new HashMap.SerializationProxy(this)
}
-/** A factory object for immutable HashMaps.
+/** $factoryInfo
+ * @define Coll immutable.HashMap
+ * @define coll immutable hash map
*
- * @author Martin Odersky
* @author Tiark Rompf
- * @version 2.8
* @since 2.3
*/
object HashMap extends ImmutableMapFactory[HashMap] {
+ /** $mapCanBuildFromInfo */
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), HashMap[A, B]] = new MapCanBuildFrom[A, B]
def empty[A, B]: HashMap[A, B] = EmptyHashMap.asInstanceOf[HashMap[A, B]]
@@ -108,14 +115,7 @@ object HashMap extends ImmutableMapFactory[HashMap] {
m.updated0(this.key, this.hash, level, this.value, this.kv).updated0(key, hash, level, value, kv)
} else {
// 32-bit hash collision (rare, but not impossible)
- // wrap this in a HashTrieMap if called with level == 0 (otherwise serialization won't work)
- if (level == 0) {
- val elems = new Array[HashMap[A,B1]](1)
- elems(0) = new HashMapCollision1(hash, ListMap.empty.updated(this.key,this.value).updated(key,value))
- new HashTrieMap[A,B1](1 << ((hash >>> level) & 0x1f), elems, 2)
- } else {
- new HashMapCollision1(hash, ListMap.empty.updated(this.key,this.value).updated(key,value))
- }
+ new HashMapCollision1(hash, ListMap.empty.updated(this.key,this.value).updated(key,value))
}
}
@@ -125,18 +125,6 @@ object HashMap extends ImmutableMapFactory[HashMap] {
override def iterator: Iterator[(A,B)] = Iterator(ensurePair)
override def foreach[U](f: ((A, B)) => U): Unit = f(ensurePair)
private[HashMap] def ensurePair: (A,B) = if (kv ne null) kv else { kv = (key, value); kv }
-
- private def writeObject(out: java.io.ObjectOutputStream) {
- out.writeObject(key)
- out.writeObject(value)
- }
-
- private def readObject(in: java.io.ObjectInputStream) {
- key = in.readObject().asInstanceOf[A]
- value = in.readObject().asInstanceOf[B]
- hash = computeHash(key)
- }
-
}
private class HashMapCollision1[A,+B](private[HashMap] var hash: Int, var kvs: ListMap[A,B @uncheckedVariance]) extends HashMap[A,B] {
@@ -166,22 +154,6 @@ object HashMap extends ImmutableMapFactory[HashMap] {
override def iterator: Iterator[(A,B)] = kvs.iterator
override def foreach[U](f: ((A, B)) => U): Unit = kvs.foreach(f)
-
- private def writeObject(out: java.io.ObjectOutputStream) {
- // this cannot work - reading things in might produce different
- // hash codes and remove the collision. however this is never called
- // because no references to this class are ever handed out to client code
- // and HashTrieMap serialization takes care of the situation
- error("cannot serialize an immutable.HashMap where all items have the same 32-bit hash code")
- //out.writeObject(kvs)
- }
-
- private def readObject(in: java.io.ObjectInputStream) {
- error("cannot deserialize an immutable.HashMap where all items have the same 32-bit hash code")
- //kvs = in.readObject().asInstanceOf[ListMap[A,B]]
- //hash = computeHash(kvs.)
- }
-
}
@@ -246,19 +218,27 @@ object HashMap extends ImmutableMapFactory[HashMap] {
val index = (hash >>> level) & 0x1f
val mask = (1 << index)
val offset = Integer.bitCount(bitmap & (mask-1))
- if (((bitmap >>> index) & 1) == 1) {
- val elemsNew = new Array[HashMap[A,B]](elems.length)
- Array.copy(elems, 0, elemsNew, 0, elems.length)
+ if ((bitmap & mask) != 0) {
val sub = elems(offset)
// TODO: might be worth checking if sub is HashTrieMap (-> monomorphic call site)
val subNew = sub.removed0(key, hash, level + 5)
- elemsNew(offset) = subNew
- // TODO: handle shrinking
- val sizeNew = size + (subNew.size - sub.size)
- if (sizeNew > 0)
- new HashTrieMap(bitmap, elemsNew, size + (subNew.size - sub.size))
- else
- HashMap.empty[A,B]
+ if (subNew.isEmpty) {
+ val bitmapNew = bitmap ^ mask
+ if (bitmapNew != 0) {
+ val elemsNew = new Array[HashMap[A,B]](elems.length - 1)
+ Array.copy(elems, 0, elemsNew, 0, offset)
+ Array.copy(elems, offset + 1, elemsNew, offset, elems.length - offset - 1)
+ val sizeNew = size - sub.size
+ new HashTrieMap(bitmapNew, elemsNew, sizeNew)
+ } else
+ HashMap.empty[A,B]
+ } else {
+ val elemsNew = new Array[HashMap[A,B]](elems.length)
+ Array.copy(elems, 0, elemsNew, 0, elems.length)
+ elemsNew(offset) = subNew
+ val sizeNew = size + (subNew.size - sub.size)
+ new HashTrieMap(bitmap, elemsNew, sizeNew)
+ }
} else {
this
}
@@ -367,31 +347,29 @@ time { mNew.iterator.foreach( p => ()) }
}
}
+ }
+ @serializable @SerialVersionUID(2L) private class SerializationProxy[A,B](@transient private var orig: HashMap[A, B]) {
private def writeObject(out: java.io.ObjectOutputStream) {
- // no out.defaultWriteObject()
- out.writeInt(size)
- foreach { p =>
- out.writeObject(p._1)
- out.writeObject(p._2)
+ val s = orig.size
+ out.writeInt(s)
+ for ((k,v) <- orig) {
+ out.writeObject(k)
+ out.writeObject(v)
}
}
private def readObject(in: java.io.ObjectInputStream) {
- val size = in.readInt
- var index = 0
- var m = HashMap.empty[A,B]
- while (index < size) {
- // TODO: optimize (use unsafe mutable update)
- m = m + ((in.readObject.asInstanceOf[A], in.readObject.asInstanceOf[B]))
- index += 1
+ orig = empty
+ val s = in.readInt()
+ for (i <- 0 until s) {
+ val key = in.readObject().asInstanceOf[A]
+ val value = in.readObject().asInstanceOf[B]
+ orig = orig.updated(key, value)
}
- var tm = m.asInstanceOf[HashTrieMap[A,B]]
- bitmap = tm.bitmap
- elems = tm.elems
- size0 = tm.size0
}
+ private def readResolve(): AnyRef = orig
}
}
diff --git a/src/library/scala/collection/immutable/HashSet.scala b/src/library/scala/collection/immutable/HashSet.scala
index e79b456a2f..68da0cef50 100644
--- a/src/library/scala/collection/immutable/HashSet.scala
+++ b/src/library/scala/collection/immutable/HashSet.scala
@@ -15,16 +15,19 @@ package immutable
import generic._
import annotation.unchecked.uncheckedVariance
-/**
- * This class implements immutable sets using a hash trie.
+/** This class implements immutable sets using a hash trie.
*
- * @note the builder of a hash set returns specialized representations `EmptySet`,`Set1`,..., `Set4`
- * for sets of `size <= 4`.
+ * '''Note:''' the builder of a hash set returns specialized representations `EmptySet`,`Set1`,..., `Set4`
+ * for sets of `size <= 4`.
+ *
+ * @tparam A the type of the elements contained in this hash set.
*
* @author Martin Odersky
* @author Tiark Rompf
* @version 2.8
* @since 2.3
+ * @define Coll immutable.HashSet
+ * @define coll immutable hash set
*/
@serializable @SerialVersionUID(2L)
class HashSet[A] extends Set[A]
@@ -69,28 +72,24 @@ class HashSet[A] extends Set[A]
protected def updated0(key: A, hash: Int, level: Int): HashSet[A] =
new HashSet.HashSet1(key, hash)
-
-
protected def removed0(key: A, hash: Int, level: Int): HashSet[A] = this
+ protected def writeReplace(): AnyRef = new HashSet.SerializationProxy(this)
}
-/*
-object HashSet extends SetFactory[HashSet] {
- implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, HashSet[A]] = setCanBuildFrom[A]
- override def empty[A]: HashSet[A] = new HashSet
-}
-*/
-
-
-/** A factory object for immutable HashSets.
+/** $factoryInfo
+ * @define Coll immutable.HashSet
+ * @define coll immutable hash set
*
- * @author Martin Odersky
* @author Tiark Rompf
- * @version 2.8
* @since 2.3
+ * @define Coll immutable.HashSet
+ * @define coll immutable hash set
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
object HashSet extends SetFactory[HashSet] {
+ /** $setCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, HashSet[A]] = setCanBuildFrom[A]
override def empty[A]: HashSet[A] = EmptyHashSet.asInstanceOf[HashSet[A]]
@@ -114,14 +113,7 @@ object HashSet extends SetFactory[HashSet] {
m.updated0(this.key, this.hash, level).updated0(key, hash, level)
} else {
// 32-bit hash collision (rare, but not impossible)
- // wrap this in a HashTrieSet if called with level == 0 (otherwise serialization won't work)
- if (level == 0) {
- val elems = new Array[HashSet[A]](1)
- elems(0) = new HashSetCollision1(hash, ListSet.empty + this.key + key)
- new HashTrieSet[A](1 << ((hash >>> level) & 0x1f), elems, 2)
- } else {
- new HashSetCollision1(hash, ListSet.empty + this.key + key)
- }
+ new HashSetCollision1(hash, ListSet.empty + this.key + key)
}
}
@@ -130,16 +122,6 @@ object HashSet extends SetFactory[HashSet] {
override def iterator: Iterator[A] = Iterator(key)
override def foreach[U](f: A => U): Unit = f(key)
-
- private def writeObject(out: java.io.ObjectOutputStream) {
- out.writeObject(key)
- }
-
- private def readObject(in: java.io.ObjectInputStream) {
- key = in.readObject().asInstanceOf[A]
- hash = computeHash(key)
- }
-
}
private class HashSetCollision1[A](private[HashSet] var hash: Int, var ks: ListSet[A]) extends HashSet[A] {
@@ -232,24 +214,33 @@ object HashSet extends SetFactory[HashSet] {
val index = (hash >>> level) & 0x1f
val mask = (1 << index)
val offset = Integer.bitCount(bitmap & (mask-1))
- if (((bitmap >>> index) & 1) == 1) {
- val elemsNew = new Array[HashSet[A]](elems.length)
- Array.copy(elems, 0, elemsNew, 0, elems.length)
+ if ((bitmap & mask) != 0) {
val sub = elems(offset)
- // TODO: might be worth checking if sub is HashTrieSet (-> monomorphic call site)
+ // TODO: might be worth checking if sub is HashTrieMap (-> monomorphic call site)
val subNew = sub.removed0(key, hash, level + 5)
- elemsNew(offset) = subNew
- // TODO: handle shrinking
- val sizeNew = size + (subNew.size - sub.size)
- if (sizeNew > 0)
- new HashTrieSet(bitmap, elemsNew, size + (subNew.size - sub.size))
- else
- HashSet.empty[A]
+ if (subNew.isEmpty) {
+ val bitmapNew = bitmap ^ mask
+ if (bitmapNew != 0) {
+ val elemsNew = new Array[HashSet[A]](elems.length - 1)
+ Array.copy(elems, 0, elemsNew, 0, offset)
+ Array.copy(elems, offset + 1, elemsNew, offset, elems.length - offset - 1)
+ val sizeNew = size - sub.size
+ new HashTrieSet(bitmapNew, elemsNew, sizeNew)
+ } else
+ HashSet.empty[A]
+ } else {
+ val elemsNew = new Array[HashSet[A]](elems.length)
+ Array.copy(elems, 0, elemsNew, 0, elems.length)
+ elemsNew(offset) = subNew
+ val sizeNew = size + (subNew.size - sub.size)
+ new HashTrieSet(bitmap, elemsNew, sizeNew)
+ }
} else {
this
}
}
+
override def iterator = new Iterator[A] {
private[this] var depth = 0
private[this] var arrayStack = new Array[Array[HashSet[A]]](6)
@@ -333,31 +324,27 @@ time { mNew.iterator.foreach( p => ()) }
i += 1
}
}
+ }
-
+ @serializable @SerialVersionUID(2L) private class SerializationProxy[A,B](@transient private var orig: HashSet[A]) {
private def writeObject(out: java.io.ObjectOutputStream) {
- // no out.defaultWriteObject()
- out.writeInt(size)
- foreach { e =>
+ val s = orig.size
+ out.writeInt(s)
+ for (e <- orig) {
out.writeObject(e)
}
}
private def readObject(in: java.io.ObjectInputStream) {
- val size = in.readInt
- var index = 0
- var m = HashSet.empty[A]
- while (index < size) {
- // TODO: optimize (use unsafe mutable update)
- m = m + in.readObject.asInstanceOf[A]
- index += 1
+ orig = empty
+ val s = in.readInt()
+ for (i <- 0 until s) {
+ val e = in.readObject().asInstanceOf[A]
+ orig = orig + e
}
- var tm = m.asInstanceOf[HashTrieSet[A]]
- bitmap = tm.bitmap
- elems = tm.elems
- size0 = tm.size0
}
+ private def readResolve(): AnyRef = orig
}
}
diff --git a/src/library/scala/collection/immutable/IndexedSeq.scala b/src/library/scala/collection/immutable/IndexedSeq.scala
index 268bd56a85..d3223fd106 100644
--- a/src/library/scala/collection/immutable/IndexedSeq.scala
+++ b/src/library/scala/collection/immutable/IndexedSeq.scala
@@ -14,7 +14,7 @@ package immutable
import generic._
import mutable.{ArrayBuffer, Builder}
-/** A subtrait of <code>collection.IndexedSeq</code> which represents indexed sequences
+/** A subtrait of `collection.IndexedSeq` which represents indexed sequences
* that are guaranteed immutable.
* $indexedSeqInfo
*/
@@ -26,6 +26,7 @@ trait IndexedSeq[+A] extends Seq[A]
}
/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
* @define coll indexed sequence
* @define Coll IndexedSeq
*/
diff --git a/src/library/scala/collection/immutable/IntMap.scala b/src/library/scala/collection/immutable/IntMap.scala
index 75a25e0223..90dfa541e3 100644
--- a/src/library/scala/collection/immutable/IntMap.scala
+++ b/src/library/scala/collection/immutable/IntMap.scala
@@ -12,8 +12,8 @@
package scala.collection
package immutable;
-/**
- * @author David MacIver
+/** Utility class for integer maps.
+ * @author David MacIver
*/
private[immutable] object IntMapUtils {
def zero(i : Int, mask : Int) = (i & mask) == 0;
@@ -50,8 +50,8 @@ private[immutable] object IntMapUtils {
import IntMapUtils._
-/**
- * @since 2.7
+/** A companion object for integer maps.
+ * @since 2.7
*/
object IntMap {
def empty[T] : IntMap[T] = IntMap.Nil;
@@ -146,15 +146,19 @@ private[immutable] class IntMapKeyIterator[V](it : IntMap[V]) extends IntMapIter
import IntMap._
-/**
- * Specialised immutable map structure for integer keys, based on
- * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Integer Maps</a>
- * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers.
+/** Specialised immutable map structure for integer keys, based on
+ * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Integer Maps</a>
+ * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers.
*
- * Note: This class is as of 2.8 largely superseded by HashMap.
+ * Note: This class is as of 2.8 largely superseded by HashMap.
*
- * @since 2.7
+ * @tparam T type of the values associated with integer keys.
*
+ * @since 2.7
+ * @define Coll immutable.IntMap
+ * @define coll immutable integer map
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
sealed abstract class IntMap[+T] extends Map[Int, T] with MapLike[Int, T, IntMap[T]] {
override def empty: IntMap[T] = IntMap.Nil;
diff --git a/src/library/scala/collection/immutable/Iterable.scala b/src/library/scala/collection/immutable/Iterable.scala
index 795fc2fa92..e0ef5ffcc1 100644
--- a/src/library/scala/collection/immutable/Iterable.scala
+++ b/src/library/scala/collection/immutable/Iterable.scala
@@ -17,6 +17,9 @@ import mutable.Builder
/** A base trait for iterable collections that are guaranteed immutable.
* $iterableInfo
+ *
+ * @define Coll immutable.Iterable
+ * @define coll immutable iterable collection
*/
trait Iterable[+A] extends Traversable[A]
with scala.collection.Iterable[A]
@@ -25,14 +28,11 @@ trait Iterable[+A] extends Traversable[A]
override def companion: GenericCompanion[Iterable] = Iterable
}
-/** A factory object for the trait <code>Iterable</code>.
- *
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
+/** $factoryInfo
+ * @define Coll immutable.Iterable
+ * @define coll immutable iterable collection
*/
object Iterable extends TraversableFactory[Iterable] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Iterable[A]] = new GenericCanBuildFrom[A]
def newBuilder[A]: Builder[A, Iterable[A]] = new mutable.ListBuffer
}
-
diff --git a/src/library/scala/collection/immutable/LinearSeq.scala b/src/library/scala/collection/immutable/LinearSeq.scala
index 9cb35dced5..180844ce79 100644
--- a/src/library/scala/collection/immutable/LinearSeq.scala
+++ b/src/library/scala/collection/immutable/LinearSeq.scala
@@ -15,7 +15,7 @@ package immutable
import generic._
import mutable.Builder
-/** A subtrait of <code>collection.LinearSeq</code> which represents sequences that
+/** A subtrait of `collection.LinearSeq` which represents sequences that
* are guaranteed immutable.
* $linearSeqInfo
*/
@@ -27,8 +27,9 @@ trait LinearSeq[+A] extends Seq[A]
}
/** $factoryInfo
- * @define coll linear sequence
- * @define Coll LinearSeq
+ * The current default implementation of a $Coll is a `List`.
+ * @define coll immutable linear sequence
+ * @define Coll immutable.LinearSeq
*/
object LinearSeq extends SeqFactory[LinearSeq] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, LinearSeq[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/immutable/ListMap.scala b/src/library/scala/collection/immutable/ListMap.scala
index 4342e54a9d..a88c3a52d5 100644
--- a/src/library/scala/collection/immutable/ListMap.scala
+++ b/src/library/scala/collection/immutable/ListMap.scala
@@ -14,25 +14,34 @@ package immutable
import generic._
-/** The canonical factory of <a href="ListMap.html">ListMap</a>'s.
- *
+/** $factoryInfo
* @since 1
+ * @define Coll immutable.ListMap
+ * @define coll immutable list map
*/
object ListMap extends ImmutableMapFactory[ListMap] {
+ /** $mapCanBuildFromInfo */
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), ListMap[A, B]] =
new MapCanBuildFrom[A, B]
def empty[A, B]: ListMap[A, B] = new ListMap
}
/** This class implements immutable maps using a list-based data
- * structure. Instances of <code>ListMap</code> represent
+ * structure. Instances of `ListMap` represent
* empty maps; they can be either created by calling the constructor
- * directly, or by applying the function <code>ListMap.empty</code>.
+ * directly, or by applying the function `ListMap.empty`.
+ *
+ * @tparam A the type of the keys in this list map.
+ * @tparam B the type of the values associated with the keys.
*
* @author Matthias Zenger
* @author Martin Odersky
* @version 2.0, 01/01/2007
* @since 1
+ * @define Coll immutable.ListMap
+ * @define coll immutable list map
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable @SerialVersionUID(301002838095710379L)
class ListMap[A, +B] extends Map[A, B] with MapLike[A, B, ListMap[A, B]] {
@@ -45,7 +54,7 @@ class ListMap[A, +B] extends Map[A, B] with MapLike[A, B, ListMap[A, B]] {
*/
override def size: Int = 0
- /** Checks if this map maps <code>key</code> to a value and return the
+ /** Checks if this map maps `key` to a value and return the
* value if it exists.
*
* @param key the key of the mapping of interest
diff --git a/src/library/scala/collection/immutable/ListSet.scala b/src/library/scala/collection/immutable/ListSet.scala
index f7b76d2317..2a202df9ef 100644
--- a/src/library/scala/collection/immutable/ListSet.scala
+++ b/src/library/scala/collection/immutable/ListSet.scala
@@ -14,24 +14,32 @@ package immutable
import generic._
-/** The canonical factory of <a href="ListSet.html">ListSet</a>'s
- *
+/** $factoryInfo
+ * @define Coll immutable.ListSet
+ * @define coll immutable list set
* @since 1
*/
object ListSet extends SetFactory[ListSet] {
+ /** setCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, ListSet[A]] = setCanBuildFrom[A]
override def empty[A] = new ListSet[A]
}
/** This class implements immutable sets using a list-based data
- * structure. Instances of <code>ListSet</code> represent
+ * structure. Instances of `ListSet` represent
* empty sets; they can be either created by calling the constructor
- * directly, or by applying the function <code>ListSet.empty</code>.
+ * directly, or by applying the function `ListSet.empty`.
+ *
+ * @tparam A the type of the elements contained in this list set.
*
* @author Matthias Zenger
* @version 1.0, 09/07/2003
* @since 1
+ * @define Coll immutable.ListSet
+ * @define coll immutable list set
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable
class ListSet[A] extends Set[A]
diff --git a/src/library/scala/collection/immutable/LongMap.scala b/src/library/scala/collection/immutable/LongMap.scala
index 24afb65b99..691a81d9f0 100644
--- a/src/library/scala/collection/immutable/LongMap.scala
+++ b/src/library/scala/collection/immutable/LongMap.scala
@@ -1,8 +1,8 @@
package scala.collection
package immutable
-/**
- * @author David MacIver
+/** Utility class for long maps.
+ * @author David MacIver
*/
private[immutable] object LongMapUtils{
def zero(i : Long, mask : Long) = (i & mask) == 0L;
@@ -40,8 +40,8 @@ private[immutable] object LongMapUtils{
import LongMapUtils._
-/**
- * @since 2.7
+/** A companion object for long maps.
+ * @since 2.7
*/
object LongMap{
def empty[T] : LongMap[T] = LongMap.Nil;
@@ -134,13 +134,19 @@ private[immutable] class LongMapKeyIterator[V](it : LongMap[V]) extends LongMapI
import LongMap._;
/**
- * Specialised immutable map structure for long keys, based on
- * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Long Maps</a>
- * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers.
+ * Specialised immutable map structure for long keys, based on
+ * <a href="http://citeseer.ist.psu.edu/okasaki98fast.html">Fast Mergeable Long Maps</a>
+ * by Okasaki and Gill. Essentially a trie based on binary digits of the the integers.
+ *
+ * Note: This class is as of 2.8 largely superseded by HashMap.
*
- * Note: This class is as of 2.8 largely superseded by HashMap.
+ * @tparam T type of the values associated with the long keys.
*
- * @since 2.7
+ * @since 2.7
+ * @define Coll immutable.LongMap
+ * @define coll immutable long integer map
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
sealed abstract class LongMap[+T] extends Map[Long, T] with MapLike[Long, T, LongMap[T]] {
override def empty: LongMap[T] = LongMap.Nil;
diff --git a/src/library/scala/collection/immutable/Map.scala b/src/library/scala/collection/immutable/Map.scala
index e3469099b8..74cf4a1715 100644
--- a/src/library/scala/collection/immutable/Map.scala
+++ b/src/library/scala/collection/immutable/Map.scala
@@ -48,12 +48,13 @@ trait Map[A, +B] extends Iterable[(A, B)]
def withDefaultValue[B1 >: B](d: B1): Map[A, B1] = new Map.WithDefault[A, B1](this, x => d)
}
-/**
- * A companion object for immutable maps.
- *
- * @since 1
+/** $factoryInfo
+ * @define Coll immutable.Map
+ * @define coll immutable map
*/
object Map extends ImmutableMapFactory[Map] {
+
+ /** $mapCanBuildFromInfo */
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), Map[A, B]] = new MapCanBuildFrom[A, B]
def empty[A, B]: Map[A, B] = EmptyMap.asInstanceOf[Map[A, B]]
diff --git a/src/library/scala/collection/immutable/MapLike.scala b/src/library/scala/collection/immutable/MapLike.scala
index 6f816ffa52..367ffadd43 100644
--- a/src/library/scala/collection/immutable/MapLike.scala
+++ b/src/library/scala/collection/immutable/MapLike.scala
@@ -14,32 +14,38 @@ package immutable
import generic._
-/** <p>
- * A generic template for immutable maps from keys of type <code>A</code>
- * to values of type <code>B</code>.<br/>
- * To implement a concrete map, you need to provide implementations of the
- * following methods (where <code>This</code> is the type of the map in
- * question):
- * </p>
- * <pre>
- * <b>def</b> get(key: A): Option[B]
- * <b>def</b> iterator: Iterator[(A, B)]
- * <b>def</b> + [B1 >: B](kv: (A, B)): Map[A, B1]
- * <b>def</b> - (key: A): This</pre>
- * <p>
- * If you wish that methods <code>like</code>, <code>take</code>, <code>drop</code>,
- * <code>filter</code> return the same kind of map, you should also override:
- * </p>
- * <pre>
- * <b>def</b> empty: This</pre>
- * <p>
- * It is also good idea to override methods <code>foreach</code> and
- * <code>size</code> for efficiency.
- * </p>
+/**
+ * A generic template for immutable maps from keys of type `A`
+ * to values of type `B`.
+ * To implement a concrete map, you need to provide implementations of the
+ * following methods (where `This` is the type of the actual map implementation):
+ *
+ * {{{
+ * def get(key: A): Option[B]
+ * def iterator: Iterator[(A, B)]
+ * def + [B1 >: B](kv: (A, B)): Map[A, B1]
+ * def - (key: A): This
+ * }}}
+ *
+ * If you wish that transformer methods like `take`, `drop`, `filter` return the
+ * same kind of map, you should also override:
+ *
+ * {{{
+ * def empty: This
+ * }}}
+ *
+ * It is also good idea to override methods `foreach` and
+ * `size` for efficiency.
+ *
+ * @param A the type of the keys contained in this collection.
+ * @param B the type of the values associated with the keys.
+ * @param This The type of the actual map implementation.
*
* @author Martin Odersky
* @version 2.8
* @since 2.8
+ * @define Coll immutable.Map
+ * @define coll immutable map
*/
trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]]
extends scala.collection.MapLike[A, B, This]
@@ -55,8 +61,8 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]]
override def updated [B1 >: B](key: A, value: B1): immutable.Map[A, B1] = this + ((key, value))
/** Add a key/value pair to this map, returning a new map.
- * @param kv the key/value pair
- * @return A new map with the new binding added to this map
+ * @param kv the key/value pair.
+ * @return A new map with the new binding added to this map.
*/
def + [B1 >: B] (kv: (A, B1)): immutable.Map[A, B1]
@@ -66,6 +72,7 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]]
* @param elem1 the first element to add.
* @param elem2 the second element to add.
* @param elems the remaining elements to add.
+ * @return A new map with the new bindings added to this map.
*/
override def + [B1 >: B] (elem1: (A, B1), elem2: (A, B1), elems: (A, B1) *): immutable.Map[A, B1] =
this + elem1 + elem2 ++ elems
@@ -73,7 +80,8 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]]
/** Adds a number of elements provided by a traversable object
* and returns a new collection with the added elements.
*
- * @param elems the traversable object.
+ * @param xs the traversable object consisting of key-value pairs.
+ * @return a new immutable map with the bindings of this map and those from `xs`.
*/
override def ++[B1 >: B](xs: TraversableOnce[(A, B1)]): immutable.Map[A, B1] =
((repr: immutable.Map[A, B1]) /: xs) (_ + _)
@@ -104,7 +112,7 @@ trait MapLike[A, +B, +This <: MapLike[A, B, This] with Map[A, B]]
}
/** This function transforms all the values of mappings contained
- * in this map with function <code>f</code>.
+ * in this map with function `f`.
*
* @param f A function over keys and values
* @return the updated map
diff --git a/src/library/scala/collection/immutable/MapProxy.scala b/src/library/scala/collection/immutable/MapProxy.scala
index 371af042e7..a511c6d145 100644
--- a/src/library/scala/collection/immutable/MapProxy.scala
+++ b/src/library/scala/collection/immutable/MapProxy.scala
@@ -12,14 +12,12 @@
package scala.collection
package immutable
-/** <p>
- * This is a simple wrapper class for <a href="Map.html"
- * target="contentFrame"><code>scala.collection.mutable.Map</code></a>.
- * </p>
- * <p>
- * It is most useful for assembling customized map abstractions
- * dynamically using object composition and forwarding.
- * </p>
+/**
+ * This is a simple wrapper class for <a href="Map.html"
+ * target="contentFrame">`scala.collection.immutable.Map`</a>.
+ *
+ * It is most useful for assembling customized map abstractions
+ * dynamically using object composition and forwarding.
*
* @author Matthias Zenger, Martin Odersky
* @version 2.0, 31/12/2006
diff --git a/src/library/scala/collection/immutable/NumericRange.scala b/src/library/scala/collection/immutable/NumericRange.scala
index 645c5fed24..67115f7184 100644
--- a/src/library/scala/collection/immutable/NumericRange.scala
+++ b/src/library/scala/collection/immutable/NumericRange.scala
@@ -14,24 +14,28 @@ package immutable
import mutable.{ Builder, ListBuffer }
import generic._
-/** <p>
- * <code>NumericRange</code> is a more generic version of the
- * <code>Range</code> class which works with arbitrary types.
- * It must be supplied with an `Integral` implementation of the
- * range type.
+/** `NumericRange` is a more generic version of the
+ * `Range` class which works with arbitrary types.
+ * It must be supplied with an `Integral` implementation of the
+ * range type.
*
- * Factories for likely types include `Range.BigInt`, `Range.Long`,
- * and `Range.BigDecimal`. `Range.Int` exists for completeness, but
- * the `Int`-based `scala.Range` should be more performant.
- * </p><pre>
- * <b>val</b> r1 = new Range(0, 100, 1)
- * <b>val</b> veryBig = Int.MaxValue.toLong + 1
- * <b>val</b> r2 = Range.Long(veryBig, veryBig + 100, 1)
+ * Factories for likely types include `Range.BigInt`, `Range.Long`,
+ * and `Range.BigDecimal`. `Range.Int` exists for completeness, but
+ * the `Int`-based `scala.Range` should be more performant.
+ *
+ * {{{
+ * val r1 = new Range(0, 100, 1)
+ * val veryBig = Int.MaxValue.toLong + 1
+ * val r2 = Range.Long(veryBig, veryBig + 100, 1)
* assert(r1 sameElements r2.map(_ - veryBig))
- * </pre>
+ * }}}
*
* @author Paul Phillips
* @version 2.8
+ * @define Coll NumericRange
+ * @define coll numeric range
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable
abstract class NumericRange[T]
@@ -68,7 +72,7 @@ extends IndexedSeq[T]
protected def underlying = collection.immutable.IndexedSeq.empty[T]
/** Create a new range with the start and end values of this range and
- * a new <code>step</code>.
+ * a new `step`.
*/
def by(newStep: T): NumericRange[T] = copy(start, end, newStep)
@@ -200,6 +204,8 @@ extends IndexedSeq[T]
}
}
+/** A companion object for numeric ranges.
+ */
object NumericRange {
class Inclusive[T](start: T, end: T, step: T)(implicit num: Integral[T])
extends NumericRange(start, end, step, true) {
diff --git a/src/library/scala/collection/immutable/PagedSeq.scala b/src/library/scala/collection/immutable/PagedSeq.scala
index bd12502520..2a1b3c110c 100644
--- a/src/library/scala/collection/immutable/PagedSeq.scala
+++ b/src/library/scala/collection/immutable/PagedSeq.scala
@@ -15,7 +15,7 @@ package immutable
import java.io._
import scala.util.matching.Regex
-/** The PagedSeq object defines a lazy implementations of
+/** The `PagedSeq` object defines a lazy implementations of
* a random access sequence.
*
* @since 2.7
@@ -108,8 +108,14 @@ import PagedSeq._
/** An implementation of lazily computed sequences, where elements are stored
* in ``pages'', i.e. arrays of fixed size.
*
- * @author Martin Odersky
- * @since 2.7
+ * @tparam T the type of the elements contained in this paged sequence, with a `ClassManifest` context bound.
+ *
+ * @author Martin Odersky
+ * @since 2.7
+ * @define Coll PagedSeq
+ * @define coll paged sequence
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
class PagedSeq[T: ClassManifest] protected(
more: (Array[T], Int, Int) => Int,
diff --git a/src/library/scala/collection/immutable/Queue.scala b/src/library/scala/collection/immutable/Queue.scala
index 02d344ceea..7a903cb201 100644
--- a/src/library/scala/collection/immutable/Queue.scala
+++ b/src/library/scala/collection/immutable/Queue.scala
@@ -15,12 +15,16 @@ package immutable
import generic._
import mutable.{ Builder, ListBuffer }
-/** <code>Queue</code> objects implement data structures that allow to
+/** `Queue` objects implement data structures that allow to
* insert and retrieve elements in a first-in-first-out (FIFO) manner.
*
* @author Erik Stenman
* @version 1.0, 08/07/2003
* @since 1
+ * @define Coll immutable.Queue
+ * @define coll immutable queue
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable
@SerialVersionUID(-7622936493364270175L)
@@ -31,11 +35,11 @@ class Queue[+A] protected(protected val in: List[A], protected val out: List[A])
override def companion: GenericCompanion[Queue] = Queue
- /** Returns the <code>n</code>-th element of this queue.
+ /** Returns the `n`-th element of this queue.
* The first element is at position 0.
*
* @param n index of the element to return
- * @return the element at position <code>n</code> in this queue.
+ * @return the element at position `n` in this queue.
* @throws Predef.NoSuchElementException if the queue is too short.
*/
def apply(n: Int): A = {
@@ -127,7 +131,12 @@ class Queue[+A] protected(protected val in: List[A], protected val out: List[A])
override def toString() = mkString("Queue(", ", ", ")")
}
+/** $factoryInfo
+ * @define Coll immutable.Queue
+ * @define coll immutable queue
+ */
object Queue extends SeqFactory[Queue] {
+ /** $genericCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Queue[A]] = new GenericCanBuildFrom[A]
def newBuilder[A]: Builder[A, Queue[A]] = new ListBuffer[A] mapResult (x => new Queue[A](Nil, x.toList))
override def empty[A]: Queue[A] = new Queue[A](Nil, Nil)
diff --git a/src/library/scala/collection/immutable/Range.scala b/src/library/scala/collection/immutable/Range.scala
index 5424a7afcb..8f1f7d58a6 100644
--- a/src/library/scala/collection/immutable/Range.scala
+++ b/src/library/scala/collection/immutable/Range.scala
@@ -10,20 +10,31 @@
package scala.collection.immutable
-/** <p>
- * The <code>Range</code> class represents integer values in range
- * <code>[start;end)</code> with non-zero step value <code>step</code>.
- * It's a special case of an indexed sequence.
- * For example:
- * </p><pre>
- * <b>val</b> r1 = 0 until 10
- * <b>val</b> r2 = r1.start until r1.end by r1.step + 1
+/** The `Range` class represents integer values in range
+ * ''[start;end)'' with non-zero step value `step`.
+ * It's a special case of an indexed sequence.
+ * For example:
+ *
+ * {{{
+ * val r1 = 0 until 10
+ * val r2 = r1.start until r1.end by r1.step + 1
* println(r2.length) // = 5
- * </pre>
+ * }}}
+ *
+ * @param start the start of this range.
+ * @param end the exclusive end of the range.
+ * @param step the step for the range.
*
* @author Martin Odersky
* @version 2.8
* @since 2.5
+ * @define Coll Range
+ * @define coll range
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
+ * @define doesNotUseBuilders
+ * '''Note:''' this method does not use builders to construct a new range,
+ * and its complexity is O(1).
*/
@serializable @SerialVersionUID(7618862778670199309L)
class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int] {
@@ -33,7 +44,9 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int]
protected def copy(start: Int, end: Int, step: Int): Range = new Range(start, end, step)
/** Create a new range with the `start` and `end` values of this range and
- * a new <code>step</code>.
+ * a new `step`.
+ *
+ * @return a new range with a different step
*/
def by(step: Int): Range = copy(start, end, step)
@@ -84,18 +97,46 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int]
start
}
+ /** Creates a new range containing the first `n` elements of this range.
+ *
+ * $doesNotUseBuilders
+ *
+ * @param n the number of elements to take.
+ * @return a new range consisting of `n` first elements.
+ */
final override def take(n: Int): Range = if (n > 0 && length > 0) {
Range(start, locationAfterN(n - 1), step).inclusive
} else {
Range(start, start, step)
}
+ /** Creates a new range containing all the elements of this range except the first `n` elements.
+ *
+ * $doesNotUseBuilders
+ *
+ * @param n the number of elements to drop.
+ * @return a new range consisting of all the elements of this range except `n` first elements.
+ */
final override def drop(n: Int): Range =
copy(locationAfterN(n), end, step)
+ /** Creates a new range containing all the elements of this range except the last one.
+ *
+ * $doesNotUseBuilders
+ *
+ * @return a new range consisting of all the elements of this range except the last one.
+ */
final override def init: Range =
take(length - 1)
+ /** Creates a new range contained in the specified slice of this range.
+ *
+ * $doesNotUseBuilders
+ *
+ * @param from the start of the slice.
+ * @param until the end of the slice.
+ * @return a new range consisting of all the elements of this range contained in the specified slice.
+ */
final override def slice(from: Int, until: Int): Range =
drop(from).take(until - from)
@@ -117,12 +158,29 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int]
(Range(start, split, step), copy(split, end, step))
}
+ /** Creates a pair of new ranges, first consisting of elements before `n`, and the second
+ * of elements after `n`.
+ *
+ * $doesNotUseBuilders
+ */
final override def splitAt(n: Int) = (take(n), drop(n))
+ /** Creates a new range consisting of the `length - n` last elements of the range.
+ *
+ * $doesNotUseBuilders
+ */
final override def takeRight(n: Int): Range = drop(length - n)
+ /** Creates a new range consisting of the initial `length - n` elements of the range.
+ *
+ * $doesNotUseBuilders
+ */
final override def dropRight(n: Int): Range = take(length - n)
+ /** Returns the reverse of this range.
+ *
+ * $doesNotUseBuilders
+ */
final override def reverse: Range = if (length > 0) new Range.Inclusive(last, start, -step) else this
/** Make range inclusive.
@@ -156,6 +214,8 @@ class Range(val start: Int, val end: Int, val step: Int) extends IndexedSeq[Int]
}
}
+/** A companion object for the `Range` class.
+ */
object Range {
private[immutable] val MAX_PRINT = 512 // some arbitrary value
diff --git a/src/library/scala/collection/immutable/RedBlack.scala b/src/library/scala/collection/immutable/RedBlack.scala
index ffa6194838..98a7d67d48 100644
--- a/src/library/scala/collection/immutable/RedBlack.scala
+++ b/src/library/scala/collection/immutable/RedBlack.scala
@@ -12,9 +12,9 @@
package scala.collection
package immutable
-/** A base class containing the implementations for TreeMaps and TreeSets
+/** A base class containing the implementations for `TreeMaps` and `TreeSets`.
*
- * @since 2.3
+ * @since 2.3
*/
@serializable @SerialVersionUID(8691885935445612921L)
abstract class RedBlack[A] {
diff --git a/src/library/scala/collection/immutable/Seq.scala b/src/library/scala/collection/immutable/Seq.scala
index de7804a95c..7e41ff7b94 100644
--- a/src/library/scala/collection/immutable/Seq.scala
+++ b/src/library/scala/collection/immutable/Seq.scala
@@ -19,6 +19,8 @@ import mutable.Builder
* that are guaranteed immutable.
*
* $seqInfo
+ * @define Coll immutable.Seq
+ * @define coll immutable sequence
*/
trait Seq[+A] extends Iterable[A]
with scala.collection.Seq[A]
@@ -27,10 +29,12 @@ trait Seq[+A] extends Iterable[A]
override def companion: GenericCompanion[Seq] = Seq
}
-/**
- * @since 2.8
+/** $factoryInfo
+ * @define Coll immutable.Seq
+ * @define coll immutable sequence
*/
object Seq extends SeqFactory[Seq] {
+ /** genericCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Seq[A]] = new GenericCanBuildFrom[A]
def newBuilder[A]: Builder[A, Seq[A]] = new mutable.ListBuffer
}
diff --git a/src/library/scala/collection/immutable/Set.scala b/src/library/scala/collection/immutable/Set.scala
index 77f16c0d14..769ee37f6b 100644
--- a/src/library/scala/collection/immutable/Set.scala
+++ b/src/library/scala/collection/immutable/Set.scala
@@ -14,23 +14,16 @@ package immutable
import generic._
-/** <p>
- * A generic trait for immutable sets. Concrete set implementations have
- * to provide functionality for the abstract methods in <code>Set</code>:
- * </p>
- * <pre>
- * <b>def</b> contains(elem: A): Boolean
- * <b>def</b> iterator: Iterator[A]
- * <b>def</b> + (elem: A): Self
- * <b>def</b> - (elem: A): Self</pre>
- * <p>
- * where <code>Self</code> is the type of the set.
- * </p>
+/** A generic trait for immutable sets.
+ *
+ * $setnote
*
* @author Matthias Zenger
* @author Martin Odersky
* @version 2.8
* @since 1
+ * @define Coll immutable.Set
+ * @define coll immutable set
*/
trait Set[A] extends Iterable[A]
with scala.collection.Set[A]
@@ -39,10 +32,12 @@ trait Set[A] extends Iterable[A]
override def companion: GenericCompanion[Set] = Set
}
-/**
- * A companion object for immutable sets.
+/** $factoryInfo
+ * @define Coll immutable.Set
+ * @define coll immutable set
*/
object Set extends SetFactory[Set] {
+ /** $setCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Set[A]] = setCanBuildFrom[A]
override def empty[A]: Set[A] = EmptySet.asInstanceOf[Set[A]]
diff --git a/src/library/scala/collection/immutable/SetProxy.scala b/src/library/scala/collection/immutable/SetProxy.scala
index 73c95652b3..d45b2059ff 100644
--- a/src/library/scala/collection/immutable/SetProxy.scala
+++ b/src/library/scala/collection/immutable/SetProxy.scala
@@ -12,14 +12,13 @@
package scala.collection
package immutable
-/** <p>
- * This is a simple wrapper class for <a href="Set.html"
- * target="contentFrame"><code>scala.collection.immutable.Set</code></a>.
- * </p>
- * <p>
- * It is most useful for assembling customized set abstractions
- * dynamically using object composition and forwarding.
- * </p>
+/** This is a simple wrapper class for <a href="Set.html"
+ * target="contentFrame">`scala.collection.immutable.Set`</a>.
+ *
+ * It is most useful for assembling customized set abstractions
+ * dynamically using object composition and forwarding.
+ *
+ * @tparam A type of the elements contained in this set proxy.
*
* @since 2.8
*/
diff --git a/src/library/scala/collection/immutable/SortedMap.scala b/src/library/scala/collection/immutable/SortedMap.scala
index 919b529a49..243636e107 100644
--- a/src/library/scala/collection/immutable/SortedMap.scala
+++ b/src/library/scala/collection/immutable/SortedMap.scala
@@ -18,10 +18,15 @@ import annotation.unchecked.uncheckedVariance
/** A map whose keys are sorted.
*
+ * @tparam A the type of the keys contained in this sorted map.
+ * @tparam B the type of the values associated with the keys.
+ *
* @author Sean McDirmid
* @author Martin Odersky
* @version 2.8
* @since 2.4
+ * @define Coll immutable.SortedMap
+ * @define coll immutable sorted map
*/
trait SortedMap[A, +B] extends Map[A, B]
with scala.collection.SortedMap[A, B]
@@ -62,10 +67,12 @@ trait SortedMap[A, +B] extends Map[A, B]
((repr: SortedMap[A, B1]) /: xs) (_ + _)
}
-/**
- * @since 2.4
+/** $factoryInfo
+ * @define Coll immutable.SortedMap
+ * @define coll immutable sorted map
*/
object SortedMap extends ImmutableSortedMapFactory[SortedMap] {
+ /** $sortedMapCanBuildFromInfo */
implicit def canBuildFrom[A, B](implicit ord: Ordering[A]): CanBuildFrom[Coll, (A, B), SortedMap[A, B]] = new SortedMapCanBuildFrom[A, B]
def empty[A, B](implicit ord: Ordering[A]): SortedMap[A, B] = TreeMap.empty[A, B]
}
diff --git a/src/library/scala/collection/immutable/SortedSet.scala b/src/library/scala/collection/immutable/SortedSet.scala
index 10ff466ff8..6c9433c30c 100644
--- a/src/library/scala/collection/immutable/SortedSet.scala
+++ b/src/library/scala/collection/immutable/SortedSet.scala
@@ -22,18 +22,20 @@ import mutable.Builder
* @author Martin Odersky
* @version 2.8
* @since 2.4
+ * @define Coll immutable.SortedSet
+ * @define coll immutable sorted set
*/
trait SortedSet[A] extends Set[A] with scala.collection.SortedSet[A] with SortedSetLike[A, SortedSet[A]] {
/** Needs to be overridden in subclasses. */
override def empty: SortedSet[A] = SortedSet.empty[A]
}
-/**
- * A companion object for immutable sorted sets.
- *
- * @since 2.4
+/** $factoryInfo
+ * @define Coll immutable.SortedSet
+ * @define coll immutable sorted set
*/
object SortedSet extends ImmutableSortedSetFactory[SortedSet] {
+ /** $sortedSetCanBuildFromInfo */
implicit def canBuildFrom[A](implicit ord: Ordering[A]): CanBuildFrom[Coll, A, SortedSet[A]] = new SortedSetCanBuildFrom[A]
def empty[A](implicit ord: Ordering[A]): SortedSet[A] = TreeSet.empty[A]
}
diff --git a/src/library/scala/collection/immutable/Stack.scala b/src/library/scala/collection/immutable/Stack.scala
index 7d3c8c040b..0323db7211 100644
--- a/src/library/scala/collection/immutable/Stack.scala
+++ b/src/library/scala/collection/immutable/Stack.scala
@@ -15,7 +15,12 @@ package immutable
import generic._
import mutable.{ ArrayBuffer, Builder }
+/** $factoryInfo
+ * @define Coll immutable.Stack
+ * @define coll immutable stack
+ */
object Stack extends SeqFactory[Stack] {
+ /** $genericCanBuildFromInfo */
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Stack[A]] = new GenericCanBuildFrom[A]
def newBuilder[A]: Builder[A, Stack[A]] = new ArrayBuffer[A] mapResult (buf => new Stack(buf.toList))
@@ -26,13 +31,21 @@ object Stack extends SeqFactory[Stack] {
/** This class implements immutable stacks using a list-based data
* structure.
*
- * @note This class exists only for historical reason and as an
- * analogue of mutable stacks
+ * '''Note:''' This class exists only for historical reason and as an
+ * analogue of mutable stacks.
* Instead of an immutable stack you can just use a list.
*
+ * @tparam A the type of the elements contained in this stack.
+ *
* @author Matthias Zenger
* @version 1.0, 10/07/2003
* @since 1
+ * @define Coll immutable.Stack
+ * @define coll immutable stack
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable @SerialVersionUID(1976480595012942526L)
class Stack[+A] protected (protected val elems: List[A]) extends LinearSeq[A]
diff --git a/src/library/scala/collection/immutable/Stream.scala b/src/library/scala/collection/immutable/Stream.scala
index 7f0b21050a..50fa07c2cf 100644
--- a/src/library/scala/collection/immutable/Stream.scala
+++ b/src/library/scala/collection/immutable/Stream.scala
@@ -16,27 +16,33 @@ import generic._
import mutable.{Builder, StringBuilder, LazyBuilder, ListBuffer}
import scala.annotation.tailrec
-/**
- * <p>The class <code>Stream</code> implements lazy lists where elements
- * are only evaluated when they are needed. Here is an example:</p>
- * <pre>
- * <b>object</b> Main <b>extends</b> Application {
+/** The class `Stream` implements lazy lists where elements
+ * are only evaluated when they are needed. Here is an example:
*
- * <b>def</b> from(n: Int): Stream[Int] =
- * Stream.cons(n, from(n + 1))
+ * {{{
+ * object Main extends Application {
*
- * <b>def</b> sieve(s: Stream[Int]): Stream[Int] =
- * Stream.cons(s.head, sieve(s.tail filter { _ % s.head != 0 }))
+ * def from(n: Int): Stream[Int] =
+ * Stream.cons(n, from(n + 1))
*
- * <b>def</b> primes = sieve(from(2))
+ * def sieve(s: Stream[Int]): Stream[Int] =
+ * Stream.cons(s.head, sieve(s.tail filter { _ % s.head != 0 }))
*
- * primes take 10 print
- * }
- * </pre>
+ * def primes = sieve(from(2))
*
- * @author Martin Odersky, Matthias Zenger
- * @version 1.1 08/08/03
- * @since 2.8
+ * primes take 10 print
+ * }
+ * }}}
+ *
+ * @tparam A the type of the elements contained in this stream.
+ *
+ * @author Martin Odersky, Matthias Zenger
+ * @version 1.1 08/08/03
+ * @since 2.8
+ * @define Coll Stream
+ * @define coll stream
+ * @define orderDependent
+ * @define orderDependentFold
*/
abstract class Stream[+A] extends LinearSeq[A]
with GenericTraversableTemplate[A, Stream]
@@ -68,6 +74,7 @@ self =>
/** The stream resulting from the concatenation of this stream with the argument stream.
* @param rest The stream that gets appended to this stream
+ * @return The stream containing elements of this stream and the traversable object.
*/
def append[B >: A](rest: => Traversable[B]): Stream[B] =
if (isEmpty) rest.toStream else new Stream.Cons(head, tail append rest)
@@ -82,7 +89,7 @@ self =>
/** Prints elements of this stream one by one, separated by commas. */
def print() { print(", ") }
- /** Prints elements of this stream one by one, separated by <code>sep</code>.
+ /** Prints elements of this stream one by one, separated by `sep`.
* @param sep The separator string printed between consecutive elements.
*/
def print(sep: String) {
@@ -138,7 +145,7 @@ self =>
)
/** Returns the stream resulting from applying the given function
- * <code>f</code> to each element of this stream.
+ * `f` to each element of this stream.
*
* @param f function to apply to each element.
* @return <code>f(a<sub>0</sub>), ..., f(a<sub>n</sub>)</code> if this
@@ -150,10 +157,11 @@ self =>
else new Stream.Cons(f(head), asStream[B](tail map f))
)
- /** Applies the given function <code>f</code> to each element of
+ /** Applies the given function `f` to each element of
* this stream, then concatenates the results.
*
- * @param f the function to apply on each element.
+ * @param f the function to apply on each element.
+ * @param bf $bfinfo
* @return <code>f(a<sub>0</sub>) ::: ... ::: f(a<sub>n</sub>)</code> if
* this stream is <code>[a<sub>0</sub>, ..., a<sub>n</sub>]</code>.
*/
diff --git a/src/library/scala/collection/immutable/StringLike.scala b/src/library/scala/collection/immutable/StringLike.scala
index 8068267dd2..f12ddebd08 100644
--- a/src/library/scala/collection/immutable/StringLike.scala
+++ b/src/library/scala/collection/immutable/StringLike.scala
@@ -17,8 +17,8 @@ import mutable.Builder
import scala.util.matching.Regex
import scala.math.ScalaNumber
-/**
- * @since 2.8
+/** A companion object for the `StringLike` containing some constants.
+ * @since 2.8
*/
object StringLike {
@@ -31,8 +31,17 @@ object StringLike {
import StringLike._
-/**
- * @since 2.8
+/** A trait describing stringlike collections.
+ *
+ * @tparam Repr The type of the actual collection inheriting `StringLike`.
+ *
+ * @since 2.8
+ * @define Coll String
+ * @define coll string
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
trait StringLike[+Repr] extends IndexedSeqOptimized[Char, Repr] with Ordered[String] {
self =>
@@ -62,15 +71,15 @@ self =>
private def isLineBreak(c: Char) = c == LF || c == FF
/**
- * Strip trailing line end character from this string if it has one.
+ * Strip trailing line end character from this string if it has one.
*
- * A line end character is one of
- * <ul style="list-style-type: none;">
- * <li>LF - line feed (0x0A hex)</li>
- * <li>FF - form feed (0x0C hex)</li>
- * </ul>
- * If a line feed character LF is preceded by a carriage return CR
- * (0x0D hex), the CR character is also stripped (Windows convention).
+ * A line end character is one of
+ * <ul style="list-style-type: none;">
+ * <li>LF - line feed (0x0A hex)</li>
+ * <li>FF - form feed (0x0C hex)</li>
+ * </ul>
+ * If a line feed character LF is preceded by a carriage return CR
+ * (0x0D hex), the CR character is also stripped (Windows convention).
*/
def stripLineEnd: String = {
val len = toString.length
@@ -112,15 +121,15 @@ self =>
}
/** Return all lines in this string in an iterator, excluding trailing line
- * end characters, i.e. apply <code>.stripLineEnd</code> to all lines
- * returned by <code>linesWithSeparators</code>.
+ * end characters, i.e. apply `.stripLineEnd` to all lines
+ * returned by `linesWithSeparators`.
*/
def lines: Iterator[String] =
linesWithSeparators map (line => new WrappedString(line).stripLineEnd)
/** Return all lines in this string in an iterator, excluding trailing line
- * end characters, i.e. apply <code>.stripLineEnd</code> to all lines
- * returned by <code>linesWithSeparators</code>.
+ * end characters, i.e. apply `.stripLineEnd` to all lines
+ * returned by `linesWithSeparators`.
*/
def linesIterator: Iterator[String] =
linesWithSeparators map (line => new WrappedString(line).stripLineEnd)
@@ -135,12 +144,12 @@ self =>
new String(chars)
}
- /** Returns this string with the given <code>prefix</code> stripped. */
+ /** Returns this string with the given `prefix` stripped. */
def stripPrefix(prefix: String) =
if (toString.startsWith(prefix)) toString.substring(prefix.length)
else toString
- /** Returns this string with the given <code>suffix</code> stripped. */
+ /** Returns this string with the given `suffix` stripped. */
def stripSuffix(suffix: String) =
if (toString.endsWith(suffix)) toString.substring(0, toString.length() - suffix.length)
else toString
@@ -150,7 +159,7 @@ self =>
*
* <blockquote>
* Strip a leading prefix consisting of blanks or control characters
- * followed by <code>marginChar</code> from the line.
+ * followed by `marginChar` from the line.
* </blockquote>
*/
def stripMargin(marginChar: Char): String = {
@@ -170,7 +179,7 @@ self =>
*
* <blockquote>
* Strip a leading prefix consisting of blanks or control characters
- * followed by <code>|</code> from the line.
+ * followed by `|` from the line.
* </blockquote>
*/
def stripMargin: String = stripMargin('|')
@@ -230,7 +239,7 @@ self =>
*
* The interpretation of the formatting patterns is described in
* <a href="" target="contentFrame" class="java/util/Formatter">
- * <code>java.util.Formatter</code></a>, with the addition that
+ * `java.util.Formatter`</a>, with the addition that
* classes deriving from `ScalaNumber` (such as `scala.BigInt` and
* `scala.BigDecimal`) are unwrapped to pass a type which `Formatter`
* understands.
@@ -249,7 +258,7 @@ self =>
*
* The interpretation of the formatting patterns is described in
* <a href="" target="contentFrame" class="java/util/Formatter">
- * <code>java.util.Formatter</code></a>, with the addition that
+ * `java.util.Formatter`</a>, with the addition that
* classes deriving from `ScalaNumber` (such as `scala.BigInt` and
* `scala.BigDecimal`) are unwrapped to pass a type which `Formatter`
* understands.
diff --git a/src/library/scala/collection/immutable/StringOps.scala b/src/library/scala/collection/immutable/StringOps.scala
index 4949eb7056..2bdbf672cd 100644
--- a/src/library/scala/collection/immutable/StringOps.scala
+++ b/src/library/scala/collection/immutable/StringOps.scala
@@ -15,15 +15,19 @@ package immutable
import mutable.StringBuilder
/**
- * This class serves as a wrapper providing `String`s with all the operations
- * found in indexed sequences. Where needed, instances of `String` object
- * are implicitly converted into this class.
+ * This class serves as a wrapper providing `String`s with all the operations
+ * found in indexed sequences. Where needed, instances of `String` object
+ * are implicitly converted into this class.
*
- * The difference between this class and `WrappedString` is that calling transformer
- * methods such as `filter` and `map` will yield a `String` object, whereas a
- * `WrappedString` will remain a `WrappedString`.
+ * The difference between this class and `WrappedString` is that calling transformer
+ * methods such as `filter` and `map` will yield a `String` object, whereas a
+ * `WrappedString` will remain a `WrappedString`.
*
- * @since 2.8
+ * @param repr the actual representation of this string operations object.
+ *
+ * @since 2.8
+ * @define Coll StringOps
+ * @define coll string
*/
final class StringOps(override val repr: String) extends StringLike[String] {
diff --git a/src/library/scala/collection/immutable/Traversable.scala b/src/library/scala/collection/immutable/Traversable.scala
index af7f6979c9..8fdb5c7568 100644
--- a/src/library/scala/collection/immutable/Traversable.scala
+++ b/src/library/scala/collection/immutable/Traversable.scala
@@ -26,11 +26,10 @@ trait Traversable[+A] extends scala.collection.Traversable[A]
override def companion: GenericCompanion[Traversable] = Traversable
}
-/** A factory object for the trait <code>Traversable</code>.
- *
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
+/** $factoryInfo
+ * The current default implementation of a $Coll is a `Vector`.
+ * @define coll immutable traversable collection
+ * @define Coll immutable.Traversable
*/
object Traversable extends TraversableFactory[Traversable] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Traversable[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/immutable/TreeMap.scala b/src/library/scala/collection/immutable/TreeMap.scala
index bd04b8d2e2..61cfe2e13b 100644
--- a/src/library/scala/collection/immutable/TreeMap.scala
+++ b/src/library/scala/collection/immutable/TreeMap.scala
@@ -15,22 +15,33 @@ package immutable
import generic._
import mutable.Builder
-/** The canonical factory of <a href="TreeMap.html">TreeMap</a>'s.
- *
- * @since 1
+/** $factoryInfo
+ * @define Coll immutable.TreeMap
+ * @define coll immutable tree map
*/
object TreeMap extends ImmutableSortedMapFactory[TreeMap] {
def empty[A, B](implicit ord: Ordering[A]) = new TreeMap[A, B]()(ord)
+ /** $sortedMapCanBuildFromInfo */
implicit def canBuildFrom[A, B](implicit ord: Ordering[A]): CanBuildFrom[Coll, (A, B), TreeMap[A, B]] = new SortedMapCanBuildFrom[A, B]
private def make[A, B](s: Int, t: RedBlack[A]#Tree[B])(implicit ord: Ordering[A]) = new TreeMap[A, B](s, t)(ord)
}
/** This class implements immutable maps using a tree.
*
+ * @tparam A the type of the keys contained in this tree map.
+ * @tparam B the type of the values associated with the keys.
+ * @param ordering the implicit ordering used to compare objects of type `A`.
+ *
* @author Erik Stenman
* @author Matthias Zenger
* @version 1.1, 03/05/2004
* @since 1
+ * @define Coll immutable.TreeMap
+ * @define coll immutable tree map
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable
class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit val ordering: Ordering[A])
@@ -65,18 +76,20 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va
* if key is <em>not</em> in the TreeMap, otherwise
* the key is updated with the new entry.
*
- * @param key ...
- * @param value ...
- * @return ...
+ * @tparam B1 type of the value of the new binding which is a supertype of `B`
+ * @param key the key that should be updated
+ * @param value the value to be associated with `key`
+ * @return a new $coll with the updated binding
*/
override def updated [B1 >: B](key: A, value: B1): TreeMap[A, B1] = {
val newsize = if (tree.lookup(key).isEmpty) size + 1 else size
TreeMap.make(newsize, tree.update(key, value))
}
- /** Add a key/value pair to this map.
- * @param kv the key/value pair
- * @return A new map with the new binding added to this map
+ /** Add a key/value pair to this map.
+ * @tparam B1 type of the value of the new binding, a supertype of `B`
+ * @param kv the key/value pair
+ * @return A new $coll with the new binding added to this map
*/
override def + [B1 >: B] (kv: (A, B1)): TreeMap[A, B1] = updated(kv._1, kv._2)
@@ -84,15 +97,22 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va
* either the collection itself (if it is mutable), or a new collection
* with the added elements.
*
+ * @tparam B1 type of the values of the new bindings, a supertype of `B`
* @param elem1 the first element to add.
* @param elem2 the second element to add.
* @param elems the remaining elements to add.
+ * @return a new $coll with the updated bindings
*/
override def + [B1 >: B] (elem1: (A, B1), elem2: (A, B1), elems: (A, B1) *): TreeMap[A, B1] =
this + elem1 + elem2 ++ elems
/** A new TreeMap with the entry added is returned,
* assuming that key is <em>not</em> in the TreeMap.
+ *
+ * @tparam B1 type of the values of the new bindings, a supertype of `B`
+ * @param key the key to be inserted
+ * @param value the value to be associated with `key`
+ * @return a new $coll with the inserted binding, if it wasn't present in the map
*/
def insert [B1 >: B](key: A, value: B1): TreeMap[A, B1] = {
assert(tree.lookup(key).isEmpty)
@@ -103,11 +123,11 @@ class TreeMap[A, +B](override val size: Int, t: RedBlack[A]#Tree[B])(implicit va
if (tree.lookup(key).isEmpty) this
else TreeMap.make(size - 1, tree.delete(key))
- /** Check if this map maps <code>key</code> to a value and return the
+ /** Check if this map maps `key` to a value and return the
* value if it exists.
*
* @param key the key of the mapping of interest
- * @return the value of the mapping, if it exists
+ * @return the value of the mapping, if it exists
*/
override def get(key: A): Option[B] = tree.lookup(key) match {
case n: NonEmpty[b] => Some(n.value)
diff --git a/src/library/scala/collection/immutable/TreeSet.scala b/src/library/scala/collection/immutable/TreeSet.scala
index 79e1a6b00b..7b1f71df5b 100644
--- a/src/library/scala/collection/immutable/TreeSet.scala
+++ b/src/library/scala/collection/immutable/TreeSet.scala
@@ -15,11 +15,11 @@ package immutable
import generic._
import mutable.{Builder, AddingBuilder}
-/** The canonical factory of <a href="TreeSet.html">TreeSet</a>'s.
- *
- * @since 1
+/** $factoryInfo
+ * @define Coll immutable.TreeSet
+ * @define coll immutable tree set
*/
-object TreeSet extends SortedSetFactory[TreeSet] {
+object TreeSet extends ImmutableSortedSetFactory[TreeSet] {
implicit def implicitBuilder[A](implicit ordering: Ordering[A]): Builder[A, TreeSet[A]] = newBuilder[A](ordering)
override def newBuilder[A](implicit ordering: Ordering[A]): Builder[A, TreeSet[A]] =
new AddingBuilder(empty[A](ordering))
@@ -31,9 +31,18 @@ object TreeSet extends SortedSetFactory[TreeSet] {
/** This class implements immutable sets using a tree.
*
+ * @tparam A the type of the elements contained in this tree set
+ * @param ordering the implicit ordering used to compare objects of type `A`
+ *
* @author Martin Odersky
* @version 2.0, 02/01/2007
* @since 1
+ * @define Coll immutable.TreeSet
+ * @define coll immutable tree set
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable @SerialVersionUID(-234066569443569402L)
class TreeSet[A](override val size: Int, t: RedBlack[A]#Tree[Unit])
@@ -54,29 +63,40 @@ class TreeSet[A](override val size: Int, t: RedBlack[A]#Tree[Unit])
*/
override def empty = TreeSet.empty
- /** A new TreeSet with the entry added is returned,
+ /** Creates a new `TreeSet` with the entry added.
+ *
+ * @param elem a new element to add.
+ * @return a new $coll containing `elem` and all the elements of this $coll.
*/
def + (elem: A): TreeSet[A] = {
val newsize = if (tree.lookup(elem).isEmpty) size + 1 else size
newSet(newsize, tree.update(elem, ()))
}
- /** A new TreeSet with the entry added is returned,
+ /** A new `TreeSet` with the entry added is returned,
* assuming that elem is <em>not</em> in the TreeSet.
+ *
+ * @param elem a new element to add.
+ * @return a new $coll containing `elem` and all the elements of this $coll.
*/
def insert(elem: A): TreeSet[A] = {
assert(tree.lookup(elem).isEmpty)
newSet(size + 1, tree.update(elem, ()))
}
+ /** Creates a new `TreeSet` with the entry removed.
+ *
+ * @param elem a new element to add.
+ * @return a new $coll containing all the elements of this $coll except `elem`.
+ */
def - (elem:A): TreeSet[A] =
if (tree.lookup(elem).isEmpty) this
else newSet(size - 1, tree delete elem)
- /** Checks if this set contains element <code>elem</code>.
+ /** Checks if this set contains element `elem`.
*
* @param elem the element to check for membership.
- * @return true, iff <code>elem</code> is contained in this set.
+ * @return true, iff `elem` is contained in this set.
*/
def contains(elem: A): Boolean = !tree.lookup(elem).isEmpty
diff --git a/src/library/scala/collection/immutable/WrappedString.scala b/src/library/scala/collection/immutable/WrappedString.scala
index cefbd96b5c..011774e10d 100644
--- a/src/library/scala/collection/immutable/WrappedString.scala
+++ b/src/library/scala/collection/immutable/WrappedString.scala
@@ -17,14 +17,18 @@ import mutable.{Builder, StringBuilder}
import scala.util.matching.Regex
/**
- * This class serves as a wrapper augmenting `String`s with all the operations
- * found in indexed sequences.
+ * This class serves as a wrapper augmenting `String`s with all the operations
+ * found in indexed sequences.
*
- * The difference between this class and `StringOps` is that calling transformer
- * methods such as `filter` and `map` will yield an object of type `WrappedString`
- * rather than a `String`.
+ * The difference between this class and `StringOps` is that calling transformer
+ * methods such as `filter` and `map` will yield an object of type `WrappedString`
+ * rather than a `String`.
*
- * @since 2.8
+ * @param self a string contained within this wrapped string
+ *
+ * @since 2.8
+ * @define Coll WrappedString
+ * @define coll wrapped string
*/
class WrappedString(override val self: String) extends IndexedSeq[Char] with StringLike[WrappedString] with Proxy {
@@ -38,8 +42,9 @@ class WrappedString(override val self: String) extends IndexedSeq[Char] with Str
new WrappedString(self.substring(from max 0, until min self.length))
}
-/**
- * @since 2.8
+/** A companion object for wrapped strings.
+ *
+ * @since 2.8
*/
object WrappedString {
def newBuilder: Builder[Char, WrappedString] = new StringBuilder() mapResult (new WrappedString(_))
diff --git a/src/library/scala/collection/mutable/ArrayBuffer.scala b/src/library/scala/collection/mutable/ArrayBuffer.scala
index bee531221f..ae656d4e09 100644
--- a/src/library/scala/collection/mutable/ArrayBuffer.scala
+++ b/src/library/scala/collection/mutable/ArrayBuffer.scala
@@ -177,8 +177,8 @@ class ArrayBuffer[A](override protected val initialSize: Int)
/** Factory object for the `ArrayBuffer` class.
*
* $factoryInfo
- * @define coll list
- * @define Coll List
+ * @define coll array buffer
+ * @define Coll ArrayBuffer
*/
object ArrayBuffer extends SeqFactory[ArrayBuffer] {
/** $genericCanBuildFromInfo */
diff --git a/src/library/scala/collection/mutable/ArrayLike.scala b/src/library/scala/collection/mutable/ArrayLike.scala
index b3bd0fbe25..15cafa6ee7 100644
--- a/src/library/scala/collection/mutable/ArrayLike.scala
+++ b/src/library/scala/collection/mutable/ArrayLike.scala
@@ -13,15 +13,15 @@ package scala.collection
package mutable
import generic._
-/** A subtrait of `collection.IndexedSeq` which represents sequences
- * that can be mutated.
- *
- * @since 2.8
+/** A common supertrait of `ArrayOps` and `WrappedArray` that factors out most
+ * operations on arrays and wrapped arrays.
*
* @tparam A type of the elements contained in the array like object.
* @tparam Repr the type of the actual collection containing the elements.
*
* @define Coll ArrayLike
+ * @version 2.8
+ * @since 2.8
*/
trait ArrayLike[A, +Repr] extends IndexedSeqOptimized[A, Repr] { self =>
diff --git a/src/library/scala/collection/mutable/IndexedSeq.scala b/src/library/scala/collection/mutable/IndexedSeq.scala
index 14ee5afc9b..06a6230c6b 100644
--- a/src/library/scala/collection/mutable/IndexedSeq.scala
+++ b/src/library/scala/collection/mutable/IndexedSeq.scala
@@ -27,8 +27,9 @@ trait IndexedSeq[A] extends Seq[A]
}
/** $factoryInfo
- * @define coll indexed sequence
- * @define Coll IndexedSeq
+ * The current default implementation of a $Coll is an `ArrayBuffer`.
+ * @define coll mutable indexed sequence
+ * @define Coll mutable.IndexedSeq
*/
object IndexedSeq extends SeqFactory[IndexedSeq] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, IndexedSeq[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/mutable/IndexedSeqView.scala b/src/library/scala/collection/mutable/IndexedSeqView.scala
index 9a0e7a4010..8d72ac2c49 100644
--- a/src/library/scala/collection/mutable/IndexedSeqView.scala
+++ b/src/library/scala/collection/mutable/IndexedSeqView.scala
@@ -16,14 +16,16 @@ import generic._
import TraversableView.NoBuilder
-/** A non-strict view of a mutable IndexedSeq.
- * This is a leaf class which mixes methods returning a plain IndexedSeq view
- * and methods returning a mutable IndexedSeq view.
- * There is no associated `Like' class.
- * @author Sean McDirmid
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
+/** A non-strict view of a mutable `IndexedSeq`.
+ * $viewinfo
+ * Some of the operations of this class will yield again a mutable indexed sequence,
+ * others will just yield a plain indexed sequence of type `collection.IndexedSeq`.
+ * Because this is a leaf class there is no associated `Like' class.
+ * @author Martin Odersky
+ * @version 2.8
+ * @since 2.8
+ * @tparam A the element type of the view
+ * @tparam Coll the type of the underlying collection containing the elements.
*/
trait IndexedSeqView[A, +Coll] extends IndexedSeq[A]
with IndexedSeqOptimized[A, IndexedSeqView[A, Coll]]
@@ -91,13 +93,13 @@ self =>
override def reverse: IndexedSeqView[A, Coll] = newReversed.asInstanceOf[IndexedSeqView[A, Coll]]
}
-/** $factoryInfo
- * @define coll indexed sequence view
- * @define Coll IndexedSeqView
- * Note that the canBuildFrom factories yield SeqViews, not IndexedSewqViews.
- * This is intentional, because not all operations yield again a mutable.IndexedSeqView.
- * For instance, map just gives a SeqView, which reflects the fact that
- * map cannot do its work and maintain a pointer into the original indexed sequence.
+/** An object containing the necessary implicit definitions to make
+ * `SeqView`s work. Its definitions are generally not accessed directly by clients.
+ *
+ * Note that the `canBuildFrom` factories yield `SeqView`s, not `IndexedSewqView`s.
+ * This is intentional, because not all operations yield again a `mutable.IndexedSeqView`.
+ * For instance, `map` just gives a `SeqView`, which reflects the fact that
+ * `map` cannot do its work and maintain a pointer into the original indexed sequence.
*/
object IndexedSeqView {
type Coll = TraversableView[_, C] forSome {type C <: Traversable[_]}
diff --git a/src/library/scala/collection/mutable/Iterable.scala b/src/library/scala/collection/mutable/Iterable.scala
index 85c6df6fb0..71143f74e3 100644
--- a/src/library/scala/collection/mutable/Iterable.scala
+++ b/src/library/scala/collection/mutable/Iterable.scala
@@ -21,8 +21,9 @@ trait Iterable[A] extends Traversable[A]
}
/** $factoryInfo
- * @define coll indexed sequence
- * @define Coll IndexedSeq
+ * The current default implementation of a $Coll is an `ArrayBuffer`.
+ * @define coll mutable iterable collection
+ * @define Coll mutable.Iterable
*/
object Iterable extends TraversableFactory[Iterable] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Iterable[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/mutable/LinearSeq.scala b/src/library/scala/collection/mutable/LinearSeq.scala
index 185b8c97a3..7567504890 100644
--- a/src/library/scala/collection/mutable/LinearSeq.scala
+++ b/src/library/scala/collection/mutable/LinearSeq.scala
@@ -29,8 +29,9 @@ trait LinearSeq[A] extends Seq[A]
}
/** $factoryInfo
- * @define coll linear sequence
- * @define Coll LinearSeq
+ * The current default implementation of a $Coll is a `MutableList`.
+ * @define coll mutable linear sequence
+ * @define Coll mutable.LinearSeq
*/
object LinearSeq extends SeqFactory[LinearSeq] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, LinearSeq[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/mutable/ListBuffer.scala b/src/library/scala/collection/mutable/ListBuffer.scala
index a2611a8c0f..7ebbf7b4da 100644
--- a/src/library/scala/collection/mutable/ListBuffer.scala
+++ b/src/library/scala/collection/mutable/ListBuffer.scala
@@ -246,7 +246,7 @@ final class ListBuffer[A]
// Overrides of methods in Buffer
/** Removes the element on a given index position. May take time linear in
- * the buffer size
+ * the buffer size.
*
* @param n the index which refers to the element to delete.
* @return n the element that was formerly at position `n`.
diff --git a/src/library/scala/collection/mutable/ListMap.scala b/src/library/scala/collection/mutable/ListMap.scala
index a4321d3818..09b0c6459b 100644
--- a/src/library/scala/collection/mutable/ListMap.scala
+++ b/src/library/scala/collection/mutable/ListMap.scala
@@ -59,8 +59,8 @@ class ListMap[A, B] extends Map[A, B] with MapLike[A, B, ListMap[A, B]] {
}
/** $factoryInfo
- * @define Coll ListMap
- * @define coll list map
+ * @define Coll mutable.ListMap
+ * @define coll mutable list map
*/
object ListMap extends MutableMapFactory[ListMap] {
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), ListMap[A, B]] = new MapCanBuildFrom[A, B]
diff --git a/src/library/scala/collection/mutable/Map.scala b/src/library/scala/collection/mutable/Map.scala
index 73688e3bee..6c42bad0e9 100644
--- a/src/library/scala/collection/mutable/Map.scala
+++ b/src/library/scala/collection/mutable/Map.scala
@@ -14,11 +14,11 @@ package mutable
import generic._
-/** This trait represents mutable maps.
- * All implementations od mutable maps inherit from it.
- *
- * @tparam A the type of the keys of the map.
- * @tparam B the type of associated values.
+/** A base trait for maps that can be mutated.
+ * $mapNote
+ * $mapTags
+ * @since 1.0
+ * @author Matthias Zenger
*/
trait Map[A, B]
extends Iterable[(A, B)]
@@ -40,11 +40,15 @@ trait Map[A, B]
*/
}
-/* The standard factory for mutable maps.
- * Currently this uses `HashMap` as the implementation class.
+/** $factoryInfo
+ * The current default implementation of a $Coll is a `HashMap`.
+ * @define coll mutable map
+ * @define Coll mutable.Map
*/
object Map extends MutableMapFactory[Map] {
+ /** $canBuildFromInfo */
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), Map[A, B]] = new MapCanBuildFrom[A, B]
+
def empty[A, B]: Map[A, B] = new HashMap[A, B]
}
diff --git a/src/library/scala/collection/mutable/MapBuilder.scala b/src/library/scala/collection/mutable/MapBuilder.scala
index 9ce3524d9e..75fb48abd6 100644
--- a/src/library/scala/collection/mutable/MapBuilder.scala
+++ b/src/library/scala/collection/mutable/MapBuilder.scala
@@ -14,6 +14,10 @@ package mutable
/** The canonical builder for immutable maps, working with the map's `+` method
* to add new elements.
* Collections are built from their `empty` element using this + method.
+ *
+ * @tparam A Type of the keys for the map this builder creates.
+ * @tparam B Type of the values for the map this builder creates.
+ * @tparam Coll The type of the actual collection this builder builds.
* @param empty The empty element of the collection.
*
* @since 2.8
diff --git a/src/library/scala/collection/mutable/MapLike.scala b/src/library/scala/collection/mutable/MapLike.scala
index 19e67a6731..676a325c9b 100644
--- a/src/library/scala/collection/mutable/MapLike.scala
+++ b/src/library/scala/collection/mutable/MapLike.scala
@@ -15,41 +15,10 @@ package mutable
import generic._
import annotation.migration
-/** A template trait for mutable maps of type `mutable.Map[A, B]` which
- * associate keys of type `A` with values of type `B`.
- *
- * @tparam A the type of the keys.
- * @tparam B the type of associated values.
- * @tparam This the type of the `Map` itself.
- *
- * $mapnote
- *
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
- * @define mapnote
- * To implement a concrete mutable map, you need to provide implementations
- * of the following methods:
- * {{{
- * def get(key: A): Option[B]
- * def iterator: Iterator[(A, B)]
- * def += (kv: (A, B)): this.type
- * def -= (key: A): this.type
- * }}}
- * If you wish that methods like `take`,
- * `drop`, `filter` return the same kind of map, you
- * should also override:
- * {{{
- * def empty: This
- * }}}
- * If you wish to avoid the unnecessary construction of an `Option`
- * object, you could also override `apply`, `update`,
- * and `delete`.
-
- * It is also good idea to override methods `foreach` and
- * `size` for efficiency.
- * @define coll mutable map
- * @define Coll mutable.Map
+/** A template trait for mutable maps.
+ * $mapNote
+ * $mapTags
+ * @since 2.8
*/
trait MapLike[A, B, +This <: MapLike[A, B, This] with Map[A, B]]
extends scala.collection.MapLike[A, B, This]
diff --git a/src/library/scala/collection/mutable/MapProxy.scala b/src/library/scala/collection/mutable/MapProxy.scala
index cb768f6778..7fbb016a57 100644
--- a/src/library/scala/collection/mutable/MapProxy.scala
+++ b/src/library/scala/collection/mutable/MapProxy.scala
@@ -12,20 +12,17 @@
package scala.collection
package mutable
-/** <p>
- * This is a simple wrapper class for <a href="Map.html"
- * target="contentFrame"><code>scala.collection.mutable.Map</code></a>.
- * </p>
- * <p>
- * It is most useful for assembling customized map abstractions
- * dynamically using object composition and forwarding.
- * </p>
+/**
+ * This trait implements a proxy for <a href="Map.html"
+ * target="contentFrame"><code>scala.collection.mutable.Map</code></a>.
+ *
+ * It is most useful for assembling customized map abstractions
+ * dynamically using object composition and forwarding.
*
* @author Matthias Zenger, Martin Odersky
* @version 2.0, 31/12/2006
* @since 1
*/
-
trait MapProxy[A, B] extends Map[A, B] with MapProxyLike[A, B, Map[A, B]]
{
private def newProxy[B1 >: B](newSelf: Map[A, B1]): MapProxy[A, B1] =
diff --git a/src/library/scala/collection/mutable/MutableList.scala b/src/library/scala/collection/mutable/MutableList.scala
index 4324fa7ef9..4b6d727c34 100644
--- a/src/library/scala/collection/mutable/MutableList.scala
+++ b/src/library/scala/collection/mutable/MutableList.scala
@@ -16,11 +16,10 @@ import generic._
import immutable.{List, Nil}
// !!! todo: convert to LinkedListBuffer?
-/** <p>
- * This class is used internally to represent mutable lists. It is the
- * basis for the implementation of the classes
- * <code>Stack</code>, and <code>Queue</code>.
- * </p>
+/**
+ * This class is used internally to represent mutable lists. It is the
+ * basis for the implementation of the classes
+ * `Stack`, and `Queue`.
*
* @author Matthias Zenger
* @author Martin Odersky
diff --git a/src/library/scala/collection/mutable/ObservableBuffer.scala b/src/library/scala/collection/mutable/ObservableBuffer.scala
index d3bf49a5b4..8881e78ebc 100644
--- a/src/library/scala/collection/mutable/ObservableBuffer.scala
+++ b/src/library/scala/collection/mutable/ObservableBuffer.scala
@@ -15,9 +15,9 @@ package mutable
import script._
/** This class is typically used as a mixin. It adds a subscription
- * mechanism to the <code>Buffer</code> class into which this abstract
- * class is mixed in. Class <code>ObservableBuffer</code> publishes
- * events of the type <code>Message</code>.
+ * mechanism to the `Buffer` class into which this abstract
+ * class is mixed in. Class `ObservableBuffer` publishes
+ * events of the type `Message`.
*
* @author Matthias Zenger
* @version 1.0, 08/07/2003
diff --git a/src/library/scala/collection/mutable/ObservableMap.scala b/src/library/scala/collection/mutable/ObservableMap.scala
index b15b2e54e9..0cde1b2288 100644
--- a/src/library/scala/collection/mutable/ObservableMap.scala
+++ b/src/library/scala/collection/mutable/ObservableMap.scala
@@ -16,9 +16,9 @@ import script._
/** This class is typically used as a mixin. It adds a subscription
- * mechanism to the <code>Map</code> class into which this abstract
- * class is mixed in. Class <code>ObservableMap</code> publishes
- * events of the type <code>Message</code>.
+ * mechanism to the `Map` class into which this abstract
+ * class is mixed in. Class `ObservableMap` publishes
+ * events of the type `Message`.
*
* @author Matthias Zenger
* @author Martin Odersky
diff --git a/src/library/scala/collection/mutable/ObservableSet.scala b/src/library/scala/collection/mutable/ObservableSet.scala
index 024c2415ce..1f2f1789f9 100644
--- a/src/library/scala/collection/mutable/ObservableSet.scala
+++ b/src/library/scala/collection/mutable/ObservableSet.scala
@@ -15,9 +15,9 @@ package mutable
import script._
/** This class is typically used as a mixin. It adds a subscription
- * mechanism to the <code>Set</code> class into which this abstract
- * class is mixed in. Class <code>ObservableSet</code> publishes
- * events of the type <code>Message</code>.
+ * mechanism to the `Set` class into which this abstract
+ * class is mixed in. Class `ObservableSet` publishes
+ * events of the type `Message`.
*
* @author Matthias Zenger
* @version 1.0, 08/07/2003
diff --git a/src/library/scala/collection/mutable/OpenHashMap.scala b/src/library/scala/collection/mutable/OpenHashMap.scala
index cbcc19c3e8..4ecfe0e762 100644
--- a/src/library/scala/collection/mutable/OpenHashMap.scala
+++ b/src/library/scala/collection/mutable/OpenHashMap.scala
@@ -12,8 +12,12 @@
package scala.collection
package mutable
+
/**
- * @since 2.7
+ * @define Coll OpenHashMap
+ * @define coll open hash map
+ *
+ * @since 2.7
*/
object OpenHashMap {
def apply[K, V](elems : (K, V)*) = {
@@ -42,17 +46,26 @@ object OpenHashMap {
private[mutable] def nextPowerOfTwo(i : Int) = highestOneBit(i) << 1;
}
-/**
- * A mutable hash map based on an open hashing scheme. The precise scheme is undefined,
- * but it should make a reasonable effort to ensure that an insert with consecutive hash
- * codes is not unneccessarily penalised. In particular, mappings of consecutive integer
- * keys should work without significant performance loss.
+/** A mutable hash map based on an open hashing scheme. The precise scheme is undefined,
+ * but it should make a reasonable effort to ensure that an insert with consecutive hash
+ * codes is not unneccessarily penalised. In particular, mappings of consecutive integer
+ * keys should work without significant performance loss.
+ *
+ * @tparam Key type of the keys in this map.
+ * @tparam Value type of the values in this map.
+ * @param initialSize the initial size of the internal hash table.
*
- * @author David MacIver
- * @since 2.7
+ * @author David MacIver
+ * @since 2.7
+ *
+ * @define Coll OpenHashMap
+ * @define coll open hash map
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
-class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value]
- with MapLike[Key, Value, OpenHashMap[Key, Value]] {
+class OpenHashMap[Key, Value](initialSize : Int)
+extends Map[Key, Value]
+ with MapLike[Key, Value, OpenHashMap[Key, Value]] {
import OpenHashMap.OpenEntry
type Entry = OpenEntry[Key, Value]
@@ -77,6 +90,7 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value]
override def size = _size;
private[this] def size_=(s : Int) = _size = s;
+ /** Returns a mangled hash code of the provided key. */
protected def hashOf(key : Key) = {
var h = key.hashCode;
h ^= ((h >>> 20) ^ (h >>> 12));
@@ -173,9 +187,10 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value]
None;
}
- /**
- * An iterator over the elements of this map. Use of this iterator follows the same
- * contract for concurrent modification as the foreach method.
+ /** An iterator over the elements of this map. Use of this iterator follows the same
+ * contract for concurrent modification as the foreach method.
+ *
+ * @return the iterator
*/
def iterator = new Iterator[(Key, Value)]{
var index = 0;
@@ -203,19 +218,20 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value]
}
/**
- * Loop over the key, value mappings of this map.
+ * Loop over the key, value mappings of this map.
*
- * The behaviour of modifying the map during an iteration is as follows:
+ * The behaviour of modifying the map during an iteration is as follows:
*
- * <ul>
- * <li>Deleting a mapping is always permitted.</li>
- * <li>Changing the value of mapping which is already present is permitted.</li>
- * <li>Anything else is not permitted. It will usually, but not always, throw an exception.</li>
- * </ul>
+ * <ul>
+ * <li>Deleting a mapping is always permitted.</li>
+ * <li>Changing the value of mapping which is already present is permitted.</li>
+ * <li>Anything else is not permitted. It will usually, but not always, throw an exception.</li>
+ * </ul>
*
- * @param f The function to apply to each key, value mapping.
+ * @tparam U The return type of the specified function `f`, return result of which is ignored.
+ * @param f The function to apply to each key, value mapping.
*/
- override def foreach[U](f : ((Key, Value)) => U) {
+ override def foreach[U](f : ((Key, Value)) => U) {
val startModCount = modCount;
foreachUndeletedEntry(entry => {
if (modCount != startModCount) error("Concurrent Modification")
@@ -226,6 +242,7 @@ class OpenHashMap[Key, Value](initialSize : Int) extends Map[Key, Value]
private[this] def foreachUndeletedEntry(f : Entry => Unit){
table.foreach(entry => if (entry != null && entry.value != None) f(entry));
}
+
override def transform(f : (Key, Value) => Value) = {
foreachUndeletedEntry(entry => entry.value = Some(f(entry.key, entry.value.get)));
this
diff --git a/src/library/scala/collection/mutable/PriorityQueue.scala b/src/library/scala/collection/mutable/PriorityQueue.scala
index eade376abe..37e1b0ccae 100644
--- a/src/library/scala/collection/mutable/PriorityQueue.scala
+++ b/src/library/scala/collection/mutable/PriorityQueue.scala
@@ -19,11 +19,20 @@ import annotation.migration
* To prioritize elements of type T there must be an implicit
* Ordering[T] available at creation.
*
+ * @tparam A type of the elements in this priority queue.
+ * @param ord implicit ordering used to compare the elements of type `A`.
+ *
* @author Matthias Zenger
* @version 1.0, 03/05/2004
* @since 1
+ *
+ * @define Coll PriorityQueue
+ * @define coll priority queue
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
-
@serializable @cloneable
class PriorityQueue[A](implicit ord: Ordering[A])
extends Seq[A]
@@ -98,6 +107,7 @@ class PriorityQueue[A](implicit ord: Ordering[A])
k = k / 2
}
}
+
protected def fixDown(as: Array[AnyRef], m: Int, n: Int): Unit = {
var k: Int = m
while (n >= 2 * k) {
@@ -134,7 +144,8 @@ class PriorityQueue[A](implicit ord: Ordering[A])
/** Inserts a single element into the priority queue.
*
- * @param elem the element to insert
+ * @param elem the element to insert.
+ * @return this $coll.
*/
def +=(elem: A): this.type = {
resarr.p_ensureSize(resarr.p_size0 + 1)
@@ -147,7 +158,8 @@ class PriorityQueue[A](implicit ord: Ordering[A])
/** Adds all elements provided by a `TraversableOnce` object
* into the priority queue.
*
- * @param xs an iterable object
+ * @param xs a traversable object.
+ * @return a new priority queue containing elements of both `xs` and `this`.
*/
def ++(xs: TraversableOnce[A]) = { this.clone() ++= xs }
@@ -203,19 +215,19 @@ class PriorityQueue[A](implicit ord: Ordering[A])
}
}
- /**
- * Returns the reverse of this queue. The priority queue that gets
- * returned will have an inversed ordering - if for some elements
- * `x` and `y` the original queue's ordering
- * had `compare` returning an integer ''w'', the new one will return ''-w'',
- * assuming the original ordering abides its contract.
+
+ /** Returns the reverse of this queue. The priority queue that gets
+ * returned will have an inversed ordering - if for some elements
+ * `x` and `y` the original queue's ordering
+ * had `compare` returning an integer ''w'', the new one will return ''-w'',
+ * assuming the original ordering abides its contract.
*
- * Note that the order of the elements will be reversed unless the
- * `compare` method returns 0. In this case, such elements
- * will be subsequent, but their corresponding subinterval may be inappropriately
- * reversed. However, due to the compare-equals contract, they will also be equal.
+ * Note that the order of the elements will be reversed unless the
+ * `compare` method returns 0. In this case, such elements
+ * will be subsequent, but their corresponding subinterval may be inappropriately
+ * reversed. However, due to the compare-equals contract, they will also be equal.
*
- * @return A reversed priority queue.
+ * @return A reversed priority queue.
*/
override def reverse = {
val revq = new PriorityQueue[A]()(new math.Ordering[A] {
diff --git a/src/library/scala/collection/mutable/PriorityQueueProxy.scala b/src/library/scala/collection/mutable/PriorityQueueProxy.scala
index 3f1ee5d217..f99755128f 100644
--- a/src/library/scala/collection/mutable/PriorityQueueProxy.scala
+++ b/src/library/scala/collection/mutable/PriorityQueueProxy.scala
@@ -13,7 +13,7 @@ package mutable
/** This class servers as a proxy for priority queues. The
* elements of the queue have to be ordered in terms of the
- * <code>Ordered[T]</code> class.
+ * `Ordered[T]` class.
*
* @author Matthias Zenger
* @version 1.0, 03/05/2004
@@ -22,7 +22,6 @@ package mutable
abstract class PriorityQueueProxy[A](implicit ord: Ordering[A]) extends PriorityQueue[A]
with Proxy
{
-
def self: PriorityQueue[A]
/** Creates a new iterator over all elements contained in this
diff --git a/src/library/scala/collection/mutable/Publisher.scala b/src/library/scala/collection/mutable/Publisher.scala
index 58e4394ef7..f91864f974 100644
--- a/src/library/scala/collection/mutable/Publisher.scala
+++ b/src/library/scala/collection/mutable/Publisher.scala
@@ -13,12 +13,14 @@ package scala.collection
package mutable
-/** <code>Publisher[A,This]</code> objects publish events of type <code>A</code>
+/** `Publisher[A,This]` objects publish events of type `A`
* to all registered subscribers. When subscribing, a subscriber may specify
* a filter which can be used to constrain the number of events sent to the
* subscriber. Subscribers may suspend their subscription, or reactivate a
- * suspended subscription. Class <code>Publisher</code> is typically used
- * as a mixin. The abstract type <code>Pub</code> models the type of the publisher itself.
+ * suspended subscription. Class `Publisher` is typically used
+ * as a mixin. The abstract type `Pub` models the type of the publisher itself.
+ *
+ * @tparam Evt type of the published event.
*
* @author Matthias Zenger
* @author Martin Odersky
diff --git a/src/library/scala/collection/mutable/Queue.scala b/src/library/scala/collection/mutable/Queue.scala
index 3754dbc3f2..3132e2f422 100644
--- a/src/library/scala/collection/mutable/Queue.scala
+++ b/src/library/scala/collection/mutable/Queue.scala
@@ -14,13 +14,20 @@ package mutable
import generic._
-/** <code>Queue</code> objects implement data structures that allow to
+/** `Queue` objects implement data structures that allow to
* insert and retrieve elements in a first-in-first-out (FIFO) manner.
*
* @author Matthias Zenger
* @author Martin Odersky
* @version 2.8
* @since 1
+ *
+ * @define Coll mutable.Queue
+ * @define coll mutable queue
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable @cloneable
class Queue[A] extends MutableList[A] with Cloneable[Queue[A]] {
diff --git a/src/library/scala/collection/mutable/QueueProxy.scala b/src/library/scala/collection/mutable/QueueProxy.scala
index b2548b26cc..6adb3d490b 100644
--- a/src/library/scala/collection/mutable/QueueProxy.scala
+++ b/src/library/scala/collection/mutable/QueueProxy.scala
@@ -12,9 +12,11 @@
package scala.collection
package mutable
-/** <code>Queue</code> objects implement data structures that allow to
+/** `Queue` objects implement data structures that allow to
* insert and retrieve elements in a first-in-first-out (FIFO) manner.
*
+ * @tparam A type of the elements in this queue proxy.
+ *
* @author Matthias Zenger
* @version 1.1, 03/05/2004
* @since 1
diff --git a/src/library/scala/collection/mutable/ResizableArray.scala b/src/library/scala/collection/mutable/ResizableArray.scala
index 80ab1cd559..96d24136cf 100644
--- a/src/library/scala/collection/mutable/ResizableArray.scala
+++ b/src/library/scala/collection/mutable/ResizableArray.scala
@@ -17,6 +17,8 @@ import generic._
/** This class is used internally to implement data structures that
* are based on resizable arrays.
*
+ * @tparam A type of the elements contained in this resizeable array.
+ *
* @author Matthias Zenger, Burak Emir
* @author Martin Odersky
* @version 2.8
diff --git a/src/library/scala/collection/mutable/RevertibleHistory.scala b/src/library/scala/collection/mutable/RevertibleHistory.scala
index 62e1efba2f..b16577486a 100644
--- a/src/library/scala/collection/mutable/RevertibleHistory.scala
+++ b/src/library/scala/collection/mutable/RevertibleHistory.scala
@@ -13,10 +13,13 @@ package scala.collection
package mutable
-/** A revertible history is a <code>History</code> object which supports
- * an undo operation. Type variable <code>A</code> refers to the type
- * of the published events, <code>B</code> denotes the publisher type.
- * Type <code>B</code> is typically a subtype of <code>Publisher</code>.
+/** A revertible history is a `History` object which supports
+ * an undo operation. Type variable `Evt` refers to the type
+ * of the published events, `Pub` denotes the publisher type.
+ * Type `Pub` is typically a subtype of `Publisher`.
+ *
+ * @tparam Evt type of the events
+ * @tparam Pub type of the publisher
*
* @author Matthias Zenger
* @version 1.0, 08/07/2003
diff --git a/src/library/scala/collection/mutable/Seq.scala b/src/library/scala/collection/mutable/Seq.scala
index 8d11e14063..679cc24389 100644
--- a/src/library/scala/collection/mutable/Seq.scala
+++ b/src/library/scala/collection/mutable/Seq.scala
@@ -14,12 +14,16 @@ package mutable
import generic._
-/** A subtrait of <code>collection.Seq</code> which represents sequences
+
+/** A subtrait of `collection.Seq` which represents sequences
* that can be mutated.
*
* $seqInfo
*
- * The class adds an <code>update</code> method to <code>collection.Seq</code>.
+ * The class adds an `update` method to `collection.Seq`.
+ *
+ * @define Coll mutable.Seq
+ * @define coll mutable sequence
*/
trait Seq[A] extends Iterable[A]
with scala.collection.Seq[A]
@@ -36,11 +40,10 @@ trait Seq[A] extends Iterable[A]
def update(idx: Int, elem: A)
}
-/** A factory object for the trait <code>Seq</code>.
- *
- * @author Martin Odersky
- * @version 2.8
- * @since 2.8
+/** $factoryInfo
+ * The current default implementation of a $Coll is an `ArrayBuffer`.
+ * @define coll mutable sequence
+ * @define Coll mutable.Seq
*/
object Seq extends SeqFactory[Seq] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Seq[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/mutable/Set.scala b/src/library/scala/collection/mutable/Set.scala
index cca592b5a0..2e7f1cbc6b 100644
--- a/src/library/scala/collection/mutable/Set.scala
+++ b/src/library/scala/collection/mutable/Set.scala
@@ -14,18 +14,11 @@ package mutable
import generic._
-/** A generic trait for mutable sets. Concrete set implementations
- * have to provide functionality for the abstract methods in Set:
- *
- * def contains(elem: A): Boolean
- * def iterator: Iterator[A]
- * def += (elem: A): this.type
- * def -= (elem: A): this.type
- *
+/** A base trait for sets that can be mutated.
+ * $setNote
+ * $setTags
+ * @since 1.0
* @author Matthias Zenger
- * @author Martin Odersky
- * @version 2.8
- * @since 1
*/
trait Set[A] extends Iterable[A]
with scala.collection.Set[A]
@@ -34,8 +27,10 @@ trait Set[A] extends Iterable[A]
override def companion: GenericCompanion[Set] = Set
}
-/** The canonical factory methods for <a href="Set.html">mutable sets</a>.
- * Currently this returns a HashSet.
+/** $factoryInfo
+ * The current default implementation of a $Coll is a `HashSet`.
+ * @define coll mutable set
+ * @define Coll mutable.Set
*/
object Set extends SetFactory[Set] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Set[A]] = setCanBuildFrom[A]
diff --git a/src/library/scala/collection/mutable/SetBuilder.scala b/src/library/scala/collection/mutable/SetBuilder.scala
index 450d76463c..b8903372bd 100644
--- a/src/library/scala/collection/mutable/SetBuilder.scala
+++ b/src/library/scala/collection/mutable/SetBuilder.scala
@@ -15,6 +15,8 @@ import generic._
/** The canonical builder for mutable Sets.
*
+ * @tparam A The type of the elements that will be contained in this set.
+ * @tparam Coll The type of the actual collection this set builds.
* @param empty The empty element of the collection.
* @since 2.8
*/
diff --git a/src/library/scala/collection/mutable/Stack.scala b/src/library/scala/collection/mutable/Stack.scala
index c224c030a4..72e2f928c8 100644
--- a/src/library/scala/collection/mutable/Stack.scala
+++ b/src/library/scala/collection/mutable/Stack.scala
@@ -20,10 +20,18 @@ import annotation.migration
/** A stack implements a data structure which allows to store and retrieve
* objects in a last-in-first-out (LIFO) fashion.
*
+ * @tparam A type of the elements contained in this stack.
+ *
* @author Matthias Zenger
* @author Martin Odersky
* @version 2.8
* @since 1
+ * @define Coll Stack
+ * @define coll stack
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
@serializable @cloneable
class Stack[A] private (var elems: List[A]) extends scala.collection.Seq[A] with Cloneable[Stack[A]] {
diff --git a/src/library/scala/collection/mutable/StackProxy.scala b/src/library/scala/collection/mutable/StackProxy.scala
index d3810dd158..740afdfd7d 100644
--- a/src/library/scala/collection/mutable/StackProxy.scala
+++ b/src/library/scala/collection/mutable/StackProxy.scala
@@ -12,9 +12,12 @@
package scala.collection
package mutable
+
/** A stack implements a data structure which allows to store and retrieve
* objects in a last-in-first-out (LIFO) fashion.
*
+ * @tparam A type of the elements in this stack proxy.
+ *
* @author Matthias Zenger
* @version 1.0, 10/05/2004
* @since 1
diff --git a/src/library/scala/collection/mutable/StringBuilder.scala b/src/library/scala/collection/mutable/StringBuilder.scala
index d622d15056..40e7e991ee 100644
--- a/src/library/scala/collection/mutable/StringBuilder.scala
+++ b/src/library/scala/collection/mutable/StringBuilder.scala
@@ -16,11 +16,8 @@ import generic._
import compat.Platform.arraycopy
import scala.reflect.Manifest
-/** <p>
- * A mutable sequence of characters. This class provides an API compatible
- * with <a class="java/lang/StringBuilder" href="" target="_top">
- * <code>java.lang.StringBuilder</code></a>.
- * </p>generic/
+/** A builder for mutable sequence of characters. This class provides an API compatible
+ * with <a class="java/lang/StringBuilder" href="" target="_top">`java.lang.StringBuilder`</a>.
*
* @author Stephane Micheloud
* @author Martin Odersky
diff --git a/src/library/scala/collection/mutable/SynchronizedBuffer.scala b/src/library/scala/collection/mutable/SynchronizedBuffer.scala
index 0fef1a6635..7bdbd5e520 100644
--- a/src/library/scala/collection/mutable/SynchronizedBuffer.scala
+++ b/src/library/scala/collection/mutable/SynchronizedBuffer.scala
@@ -14,12 +14,16 @@ package mutable
import script._
-/** This class should be used as a mixin. It synchronizes the <code>Buffer</code>
+/** This class should be used as a mixin. It synchronizes the `Buffer`
* methods of the class into which it is mixed in.
*
+ * @tparam A type of the elements contained in this buffer.
+ *
* @author Matthias Zenger
* @version 1.0, 08/07/2003
* @since 1
+ * @define Coll SynchronizedBuffer
+ * @define coll synchronized buffer
*/
trait SynchronizedBuffer[A] extends Buffer[A] {
diff --git a/src/library/scala/collection/mutable/SynchronizedMap.scala b/src/library/scala/collection/mutable/SynchronizedMap.scala
index dabcaa7e1c..08c370ce90 100644
--- a/src/library/scala/collection/mutable/SynchronizedMap.scala
+++ b/src/library/scala/collection/mutable/SynchronizedMap.scala
@@ -14,12 +14,17 @@ package mutable
import annotation.migration
-/** This class should be used as a mixin. It synchronizes the <code>Map</code>
+/** This class should be used as a mixin. It synchronizes the `Map`
* functions of the class into which it is mixed in.
*
+ * @tparam A type of the keys contained in this map.
+ * @tparam B type of the values associated with keys.
+ *
* @author Matthias Zenger, Martin Odersky
* @version 2.0, 31/12/2006
* @since 1
+ * @define Coll SynchronizedMap
+ * @define coll synchronized map
*/
trait SynchronizedMap[A, B] extends Map[A, B] {
diff --git a/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala b/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala
index 933b3b41a4..bc70e35993 100644
--- a/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala
+++ b/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala
@@ -13,12 +13,16 @@ package scala.collection
package mutable
/** This class implements synchronized priority queues using a binary heap.
- * The elements of the queue have to be ordered in terms of the
- * <code>Ordered[T]</code> class.
+ * The elements of the queue have to be ordered in terms of the `Ordered[T]` class.
+ *
+ * @tparam A type of the elements contained in this synchronized priority queue
+ * @param ord implicit ordering used to compared elements of type `A`
*
* @author Matthias Zenger
* @version 1.0, 03/05/2004
* @since 1
+ * @define Coll SynchronizedPriorityQueue
+ * @define coll synchronized priority queue
*/
class SynchronizedPriorityQueue[A](implicit ord: Ordering[A]) extends PriorityQueue[A] {
diff --git a/src/library/scala/collection/mutable/SynchronizedQueue.scala b/src/library/scala/collection/mutable/SynchronizedQueue.scala
index b09687a78e..7a0f9f5f6f 100644
--- a/src/library/scala/collection/mutable/SynchronizedQueue.scala
+++ b/src/library/scala/collection/mutable/SynchronizedQueue.scala
@@ -13,13 +13,17 @@ package scala.collection
package mutable
-/** This is a synchronized version of the <code>Queue[T]</code> class. It
+/** This is a synchronized version of the `Queue[T]` class. It
* implements a data structure that allows one to insert and retrieve
* elements in a first-in-first-out (FIFO) manner.
*
+ * @tparam A type of elements contained in this synchronized queue.
+ *
* @author Matthias Zenger
* @version 1.0, 03/05/2004
* @since 1
+ * @define Coll SynchronizedQueue
+ * @define coll synchronized queue
*/
class SynchronizedQueue[A] extends Queue[A] {
import scala.collection.Traversable
diff --git a/src/library/scala/collection/mutable/SynchronizedSet.scala b/src/library/scala/collection/mutable/SynchronizedSet.scala
index d3023b9136..904da541c2 100644
--- a/src/library/scala/collection/mutable/SynchronizedSet.scala
+++ b/src/library/scala/collection/mutable/SynchronizedSet.scala
@@ -13,12 +13,16 @@ package mutable
import script._
-/** This class should be used as a mixin. It synchronizes the <code>Set</code>
+/** This class should be used as a mixin. It synchronizes the `Set`
* functions of the class into which it is mixed in.
*
+ * @tparam A type of the elements contained in this synchronized set.
+ *
* @author Matthias Zenger
* @version 1.0, 08/07/2003
* @since 1
+ * @define Coll SynchronizedSet
+ * @define coll synchronized set
*/
trait SynchronizedSet[A] extends Set[A] {
import scala.collection.Traversable
diff --git a/src/library/scala/collection/mutable/SynchronizedStack.scala b/src/library/scala/collection/mutable/SynchronizedStack.scala
index 4940884302..9109d2ef5d 100644
--- a/src/library/scala/collection/mutable/SynchronizedStack.scala
+++ b/src/library/scala/collection/mutable/SynchronizedStack.scala
@@ -13,13 +13,17 @@ package scala.collection
package mutable
-/** This is a synchronized version of the <code>Stack[T]</code> class. It
+/** This is a synchronized version of the `Stack[T]` class. It
* implements a data structure which allows to store and retrieve
* objects in a last-in-first-out (LIFO) fashion.
*
+ * @tparam A type of the elements contained in this stack.
+ *
* @author Matthias Zenger
* @version 1.0, 03/05/2004
* @since 1
+ * @define Coll SynchronizedStack
+ * @define coll synchronized stack
*/
class SynchronizedStack[A] extends Stack[A] {
import scala.collection.Traversable
diff --git a/src/library/scala/collection/mutable/Traversable.scala b/src/library/scala/collection/mutable/Traversable.scala
index 89c8868314..871e3a825d 100644
--- a/src/library/scala/collection/mutable/Traversable.scala
+++ b/src/library/scala/collection/mutable/Traversable.scala
@@ -25,10 +25,10 @@ trait Traversable[A] extends scala.collection.Traversable[A]
override def companion: GenericCompanion[Traversable] = Traversable
}
-/** A factory object for the trait <code>Traversable</code>.
- *
- * @author Martin Odersky
- * @version 2.8
+/** $factoryInfo
+ * The current default implementation of a $Coll is an `ArrayBuffer`.
+ * @define coll mutable traversable collection
+ * @define Coll mutable.Traversable
*/
object Traversable extends TraversableFactory[Traversable] {
implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Traversable[A]] = new GenericCanBuildFrom[A]
diff --git a/src/library/scala/collection/mutable/Undoable.scala b/src/library/scala/collection/mutable/Undoable.scala
index 782e407843..45d3121bd3 100644
--- a/src/library/scala/collection/mutable/Undoable.scala
+++ b/src/library/scala/collection/mutable/Undoable.scala
@@ -13,8 +13,8 @@ package scala.collection
package mutable
-/** Classes that mix in the <code>Undoable</code> class provide an operation
- * <code>undo</code> which can be used to undo the last operation.
+/** Classes that mix in the `Undoable` class provide an operation
+ * `undo` which can be used to undo the last operation.
*
* @author Matthias Zenger
* @version 1.0, 08/07/2003
diff --git a/src/library/scala/collection/mutable/WeakHashMap.scala b/src/library/scala/collection/mutable/WeakHashMap.scala
index 8f496add1e..929c3f8fed 100644
--- a/src/library/scala/collection/mutable/WeakHashMap.scala
+++ b/src/library/scala/collection/mutable/WeakHashMap.scala
@@ -16,15 +16,35 @@ import JavaConversions._
import generic._
-/** A hash map with weak references to entries which are weakly reachable.
+/** A hash map with references to entries which are weakly reachable.
+ *
+ * @tparam A type of keys contained in this map
+ * @tparam B type of values associated with the keys
*
* @since 2.8
+ * @define Coll WeakHashMap
+ * @define coll weak hash map
+ * @define thatinfo the class of the returned collection. In the standard library configuration,
+ * `That` is always `WeakHashMap[A, B]` if the elements contained in the resulting collection are
+ * pairs of type `(A, B)`. This is because an implicit of type `CanBuildFrom[WeakHashMap, (A, B), WeakHashMap[A, B]]`
+ * is defined in object `WeakHashMap`. Otherwise, `That` resolves to the most specific type that doesn't have
+ * to contain pairs of type `(A, B)`, which is `Iterable`.
+ * @define $bfinfo an implicit value of class `CanBuildFrom` which determines the
+ * result class `That` from the current representation type `Repr`
+ * and the new element type `B`. This is usually the `canBuildFrom` value
+ * defined in object `WeakHashMap`.
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
class WeakHashMap[A, B] extends JMapWrapper[A, B](new java.util.WeakHashMap)
with JMapWrapperLike[A, B, WeakHashMap[A, B]] {
override def empty = new WeakHashMap[A, B]
}
+/** $factoryInfo
+ * @define Coll WeakHashMap
+ * @define coll weak hash map
+ */
object WeakHashMap extends MutableMapFactory[WeakHashMap] {
implicit def canBuildFrom[A, B]: CanBuildFrom[Coll, (A, B), WeakHashMap[A, B]] = new MapCanBuildFrom[A, B]
def empty[A, B]: WeakHashMap[A, B] = new WeakHashMap[A, B]
diff --git a/src/library/scala/collection/mutable/WrappedArray.scala b/src/library/scala/collection/mutable/WrappedArray.scala
index 10117a1086..b9e803d8dc 100644
--- a/src/library/scala/collection/mutable/WrappedArray.scala
+++ b/src/library/scala/collection/mutable/WrappedArray.scala
@@ -16,11 +16,19 @@ import scala.reflect.ClassManifest
import scala.collection.generic._
/**
- * <p>A class representing <code>Array[T]</code></p>
+ * A class representing `Array[T]`.
+ *
+ * @tparam T type of the elements in this wrapped array.
*
* @author Martin Odersky, Stephane Micheloud
* @version 1.0
* @since 2.8
+ * @define Coll WrappedArray
+ * @define coll wrapped array
+ * @define orderDependent
+ * @define orderDependentFold
+ * @define mayNotTerminateInf
+ * @define willNotTerminateInf
*/
abstract class WrappedArray[T] extends IndexedSeq[T] with ArrayLike[T, WrappedArray[T]] {
@@ -59,6 +67,8 @@ abstract class WrappedArray[T] extends IndexedSeq[T] with ArrayLike[T, WrappedAr
new WrappedArrayBuilder[T](elemManifest)
}
+/** A companion object used to create instances of `WrappedArray`.
+ */
object WrappedArray {
def make[T](x: AnyRef): WrappedArray[T] = x match {
case x: Array[AnyRef] => wrapRefArray[AnyRef](x).asInstanceOf[WrappedArray[T]]
diff --git a/src/library/scala/collection/mutable/WrappedArrayBuilder.scala b/src/library/scala/collection/mutable/WrappedArrayBuilder.scala
index 7f1e4b3254..012a0be862 100644
--- a/src/library/scala/collection/mutable/WrappedArrayBuilder.scala
+++ b/src/library/scala/collection/mutable/WrappedArrayBuilder.scala
@@ -15,7 +15,10 @@ package mutable
import generic._
import scala.reflect.ClassManifest
-/** A builder class for arrays
+/** A builder class for arrays.
+ *
+ * @tparam A type of elements that can be added to this builder.
+ * @param manifest class manifest for objects of type `A`.
*
* @since 2.8
*/
diff --git a/src/library/scala/math/BigDecimal.scala b/src/library/scala/math/BigDecimal.scala
index bb6965fcdc..c4cccd1f52 100644
--- a/src/library/scala/math/BigDecimal.scala
+++ b/src/library/scala/math/BigDecimal.scala
@@ -30,6 +30,9 @@ object BigDecimal
private val minCached = -512
private val maxCached = 512
+ val MinLong = BigDecimal(Long.MinValue)
+ val MaxLong = BigDecimal(Long.MaxValue)
+
/** Cache ony for defaultMathContext using BigDecimals in a small range. */
private lazy val cache = new Array[BigDecimal](maxCached - minCached + 1)
@@ -173,12 +176,11 @@ extends ScalaNumber with ScalaNumericConversions
else doubleValue.hashCode()
/** Compares this BigDecimal with the specified value for equality.
- * Will only claim equality with scala.BigDecimal and java.math.BigDecimal.
*/
override def equals (that: Any): Boolean = that match {
case that: BigDecimal => this equals that
case that: BigInt => this.toBigIntExact exists (that equals _)
- case x => unifiedPrimitiveEquals(x)
+ case x => (this <= BigDecimal.MaxLong && this >= BigDecimal.MinLong) && unifiedPrimitiveEquals(x)
}
protected[math] def isWhole = (this remainder 1) == BigDecimal(0)
diff --git a/src/library/scala/math/BigInt.scala b/src/library/scala/math/BigInt.scala
index 5267ad8b95..f0988f2934 100644
--- a/src/library/scala/math/BigInt.scala
+++ b/src/library/scala/math/BigInt.scala
@@ -124,7 +124,7 @@ class BigInt(val bigInteger: BigInteger) extends ScalaNumber with ScalaNumericCo
override def equals(that: Any): Boolean = that match {
case that: BigInt => this equals that
case that: BigDecimal => that.toBigIntExact exists (this equals _)
- case x => unifiedPrimitiveEquals(x)
+ case x => (this <= BigInt.MaxLong && this >= BigInt.MinLong) && unifiedPrimitiveEquals(x)
}
protected[math] def isWhole = true
diff --git a/src/library/scala/math/ScalaNumericConversions.scala b/src/library/scala/math/ScalaNumericConversions.scala
index d983595c17..2e754c2584 100644
--- a/src/library/scala/math/ScalaNumericConversions.scala
+++ b/src/library/scala/math/ScalaNumericConversions.scala
@@ -33,15 +33,28 @@ trait ScalaNumericConversions extends ScalaNumber {
else lv.hashCode
}
+ /** Should only be called after all known non-primitive
+ * types have been excluded. This method won't dispatch
+ * anywhere else after checking against the primitives
+ * to avoid infinite recursion between equals and this on
+ * unknown "Number" variants.
+ *
+ * Additionally, this should only be called if the numeric
+ * type is happy to be converted to Long, Float, and Double.
+ * If for instance a BigInt much larger than the Long range is
+ * sent here, it will claim equality with whatever Long is left
+ * in its lower 64 bits. Or a BigDecimal with more precision
+ * than Double can hold: same thing. There's no way given the
+ * interface available here to prevent this error.
+ */
protected def unifiedPrimitiveEquals(x: Any) = x match {
case x: Char => isValidChar && (toInt == x.toInt)
case x: Byte => isValidByte && (toByte == x)
case x: Short => isValidShort && (toShort == x)
case x: Int => isValidInt && (toInt == x)
- case x: Long => toLong == x // XXX
- case x: Float => toFloat == x // XXX
- case x: Double => toDouble == x // XXX
- case x: Number => this equals x
+ case x: Long => toLong == x
+ case x: Float => toFloat == x
+ case x: Double => toDouble == x
case _ => false
}
}
diff --git a/src/library/scala/runtime/AbstractFunction0.scala b/src/library/scala/runtime/AbstractFunction0.scala
index 2d7d613132..a9e564f6f8 100644
--- a/src/library/scala/runtime/AbstractFunction0.scala
+++ b/src/library/scala/runtime/AbstractFunction0.scala
@@ -6,31 +6,14 @@
** |/ **
\* */
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
package scala.runtime
-abstract class AbstractFunction0[@specialized(Unit, Int, Long, Double) +R] extends Function0[R] { }
-abstract class AbstractFunction1[@specialized(Int, Long, Double) -T1,
- @specialized(Unit, Int, Long, Double) +R] extends Function1[T1, R] { }
-abstract class AbstractFunction2[@specialized(Int, Long, Double) -T1,
- @specialized(Int, Long, Double) -T2,
- @specialized(Unit, Int, Long, Double) +R] extends Function2[T1, T2, R] { }
-abstract class AbstractFunction3[-T1, -T2, -T3, +R] extends Function3[T1, T2, T3, R] { }
-abstract class AbstractFunction4[-T1, -T2, -T3, -T4, +R] extends Function4[T1, T2, T3, T4, R] { }
-abstract class AbstractFunction5[-T1, -T2, -T3, -T4, -T5, +R] extends Function5[T1, T2, T3, T4, T5, R] { }
-abstract class AbstractFunction6[-T1, -T2, -T3, -T4, -T5, -T6, +R] extends Function6[T1, T2, T3, T4, T5, T6, R] { }
-abstract class AbstractFunction7[-T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends Function7[T1, T2, T3, T4, T5, T6, T7, R] { }
-abstract class AbstractFunction8[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends Function8[T1, T2, T3, T4, T5, T6, T7, T8, R] { }
-abstract class AbstractFunction9[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, +R] extends Function9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R] { }
-abstract class AbstractFunction10[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, +R] extends Function10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R] { }
-abstract class AbstractFunction11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +R] extends Function11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R] { }
-abstract class AbstractFunction12[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, +R] extends Function12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R] { }
-abstract class AbstractFunction13[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, +R] extends Function13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R] { }
-abstract class AbstractFunction14[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, +R] extends Function14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R] { }
-abstract class AbstractFunction15[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, +R] extends Function15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R] { }
-abstract class AbstractFunction16[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, +R] extends Function16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R] { }
-abstract class AbstractFunction17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, +R] extends Function17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R] { }
-abstract class AbstractFunction18[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, +R] extends Function18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R] { }
-abstract class AbstractFunction19[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, +R] extends Function19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R] { }
-abstract class AbstractFunction20[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, +R] extends Function20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R] { }
-abstract class AbstractFunction21[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, +R] extends Function21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, R] { }
-abstract class AbstractFunction22[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, -T22, +R] extends Function22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, R] { }
+
+
+abstract class AbstractFunction0[@specialized +R] extends Function0[R] {
+
+}
diff --git a/src/actors/scala/actors/AbstractReactor.scala b/src/library/scala/runtime/AbstractFunction1.scala
index d9dbd39c2b..0a8a754236 100644
--- a/src/actors/scala/actors/AbstractReactor.scala
+++ b/src/library/scala/runtime/AbstractFunction1.scala
@@ -1,6 +1,6 @@
/* __ *\
** ________ ___ / / ___ Scala API **
-** / __/ __// _ | / / / _ | (c) 2005-2010, LAMP/EPFL **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
@@ -8,19 +8,12 @@
// $Id$
-/**
- * The <code>AbstractReactor</code> trait.
- *
- * @author Philipp Haller
- */
-package scala.actors
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
-trait AbstractReactor[-T] {
+package scala.runtime
- /**
- * Sends <code>msg</code> to this
- * <code>AbstractReactor</code> (asynchronous).
- */
- def !(msg: T): Unit
+
+
+abstract class AbstractFunction1[@specialized(Int, Long, Double) -T1, @specialized(Unit, Boolean, Int, Long, Double) +R] extends Function1[T1, R] {
}
diff --git a/src/library/scala/runtime/AbstractFunction10.scala b/src/library/scala/runtime/AbstractFunction10.scala
new file mode 100644
index 0000000000..0830054e1a
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction10.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction10[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, +R] extends Function10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction11.scala b/src/library/scala/runtime/AbstractFunction11.scala
new file mode 100644
index 0000000000..6ee68126d5
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction11.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction11[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, +R] extends Function11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction12.scala b/src/library/scala/runtime/AbstractFunction12.scala
new file mode 100644
index 0000000000..cda522dd37
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction12.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction12[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, +R] extends Function12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction13.scala b/src/library/scala/runtime/AbstractFunction13.scala
new file mode 100644
index 0000000000..016bcd4a31
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction13.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction13[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, +R] extends Function13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction14.scala b/src/library/scala/runtime/AbstractFunction14.scala
new file mode 100644
index 0000000000..fc97bc8936
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction14.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction14[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, +R] extends Function14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction15.scala b/src/library/scala/runtime/AbstractFunction15.scala
new file mode 100644
index 0000000000..9dc7a75b36
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction15.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction15[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, +R] extends Function15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction16.scala b/src/library/scala/runtime/AbstractFunction16.scala
new file mode 100644
index 0000000000..3f8f19621a
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction16.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction16[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, +R] extends Function16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction17.scala b/src/library/scala/runtime/AbstractFunction17.scala
new file mode 100644
index 0000000000..1b8ea58c56
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction17.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction17[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, +R] extends Function17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction18.scala b/src/library/scala/runtime/AbstractFunction18.scala
new file mode 100644
index 0000000000..63aa6cf8d1
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction18.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction18[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, +R] extends Function18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction19.scala b/src/library/scala/runtime/AbstractFunction19.scala
new file mode 100644
index 0000000000..7a511ddd6e
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction19.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction19[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, +R] extends Function19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction2.scala b/src/library/scala/runtime/AbstractFunction2.scala
new file mode 100644
index 0000000000..0f75b2af87
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction2.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction2[@specialized(Int, Long, Double) -T1, @specialized(Int, Long, Double) -T2, @specialized(Unit, Boolean, Int, Long, Double) +R] extends Function2[T1, T2, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction20.scala b/src/library/scala/runtime/AbstractFunction20.scala
new file mode 100644
index 0000000000..6afb329503
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction20.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction20[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, +R] extends Function20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction21.scala b/src/library/scala/runtime/AbstractFunction21.scala
new file mode 100644
index 0000000000..8996f2f397
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction21.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction21[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, +R] extends Function21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction22.scala b/src/library/scala/runtime/AbstractFunction22.scala
new file mode 100644
index 0000000000..8b33534291
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction22.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction22[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, -T10, -T11, -T12, -T13, -T14, -T15, -T16, -T17, -T18, -T19, -T20, -T21, -T22, +R] extends Function22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction3.scala b/src/library/scala/runtime/AbstractFunction3.scala
new file mode 100644
index 0000000000..463d3d8a1d
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction3.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction3[-T1, -T2, -T3, +R] extends Function3[T1, T2, T3, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction4.scala b/src/library/scala/runtime/AbstractFunction4.scala
new file mode 100644
index 0000000000..f7bc7d12a9
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction4.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction4[-T1, -T2, -T3, -T4, +R] extends Function4[T1, T2, T3, T4, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction5.scala b/src/library/scala/runtime/AbstractFunction5.scala
new file mode 100644
index 0000000000..6642bb75bb
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction5.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction5[-T1, -T2, -T3, -T4, -T5, +R] extends Function5[T1, T2, T3, T4, T5, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction6.scala b/src/library/scala/runtime/AbstractFunction6.scala
new file mode 100644
index 0000000000..70944947e7
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction6.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction6[-T1, -T2, -T3, -T4, -T5, -T6, +R] extends Function6[T1, T2, T3, T4, T5, T6, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction7.scala b/src/library/scala/runtime/AbstractFunction7.scala
new file mode 100644
index 0000000000..ba4a35f743
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction7.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction7[-T1, -T2, -T3, -T4, -T5, -T6, -T7, +R] extends Function7[T1, T2, T3, T4, T5, T6, T7, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction8.scala b/src/library/scala/runtime/AbstractFunction8.scala
new file mode 100644
index 0000000000..c3a0f0f9e3
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction8.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction8[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, +R] extends Function8[T1, T2, T3, T4, T5, T6, T7, T8, R] {
+
+}
diff --git a/src/library/scala/runtime/AbstractFunction9.scala b/src/library/scala/runtime/AbstractFunction9.scala
new file mode 100644
index 0000000000..7e0541e246
--- /dev/null
+++ b/src/library/scala/runtime/AbstractFunction9.scala
@@ -0,0 +1,19 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id$
+
+// generated by genprod on Mon Apr 12 15:28:18 CEST 2010
+
+package scala.runtime
+
+
+
+abstract class AbstractFunction9[-T1, -T2, -T3, -T4, -T5, -T6, -T7, -T8, -T9, +R] extends Function9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R] {
+
+}
diff --git a/src/library/scala/util/Random.scala b/src/library/scala/util/Random.scala
index ffa248d638..cd9d5eed0e 100644
--- a/src/library/scala/util/Random.scala
+++ b/src/library/scala/util/Random.scala
@@ -89,14 +89,12 @@ class Random(val self: java.util.Random) {
List.fill(length)(safeChar()).mkString
}
- /** Returns a pseudorandomly generated String drawing upon
- * only ASCII characters between 33 and 126.
+ /** Returns the next pseudorandom, uniformly distributed value
+ * from the ASCII range 33-126.
*/
- def nextASCIIString(length: Int) = {
- val (min, max) = (33, 126)
- def nextDigit = nextInt(max - min) + min
-
- new String(Array.fill(length)(nextDigit.toByte), "ASCII")
+ def nextPrintableChar(): Char = {
+ val (low, high) = (33, 126)
+ (self.nextInt(high - low) + low).toChar
}
def setSeed(seed: Long) { self.setSeed(seed) }
@@ -111,6 +109,17 @@ object Random extends Random {
import collection.mutable.ArrayBuffer
import collection.generic.CanBuildFrom
+ /** Returns a Stream of pseudorandomly chosen alphanumeric characters,
+ * equally chosen from A-Z, a-z, and 0-9.
+ *
+ * @since 2.8
+ */
+ def alphanumeric: Stream[Char] = {
+ def isAlphaNum(c: Char) = (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')
+
+ Stream continually nextPrintableChar filter isAlphaNum
+ }
+
/** Returns a new collection of the same type in a randomly chosen order.
*
* @param coll the TraversableOnce to shuffle
diff --git a/src/partest/scala/tools/partest/Actions.scala b/src/partest/scala/tools/partest/Actions.scala
index 15351db2a7..ce554959eb 100644
--- a/src/partest/scala/tools/partest/Actions.scala
+++ b/src/partest/scala/tools/partest/Actions.scala
@@ -49,7 +49,7 @@ trait Actions {
protected def execAndLog(cmd: String): Boolean = {
var proc: Process = null
- val result = interruptMeIn(testTimeout) {
+ val result = interruptMeIn(cmd, testTimeout) {
loggingResult {
proc = Process.exec(toArgs(cmd), execEnv, execCwd.orNull, true)
proc.slurp()
@@ -123,6 +123,10 @@ trait Actions {
self: TestEntity =>
def checkFile: File = withExtension("check").toFile
+ def isCheckPresent = checkFile.isFile || {
+ warnAndLog("A checkFile at '%s' is mandatory.\n" format checkFile.path)
+ false
+ }
def normalizePaths(s: String) = {
/** This accomodates slash/backslash issues by noticing when a given
diff --git a/src/partest/scala/tools/partest/Alarms.scala b/src/partest/scala/tools/partest/Alarms.scala
index 72afc232e5..f38d8d6268 100644
--- a/src/partest/scala/tools/partest/Alarms.scala
+++ b/src/partest/scala/tools/partest/Alarms.scala
@@ -11,13 +11,14 @@ import java.util.{ Timer, TimerTask }
trait Alarms {
self: Universe =>
- def interruptMeIn[T](seconds: Int)(body: => T): Option[T] = {
+ def interruptMeIn[T](debugMsg: String, seconds: Int)(body: => T): Option[T] = {
val thisThread = currentThread
val alarm = new SimpleAlarm(seconds * 1000) set thisThread.interrupt()
+ debug("interruptMeIn(%d) '%s'".format(seconds, debugMsg))
try { Some(body) }
- catch { case _: InterruptedException => None }
- finally { alarm.cancel() ; Thread.interrupted() }
+ catch { case _: InterruptedException => debug("Received interrupted exception.") ; None }
+ finally { debug("Cancelling interruptMeIn '%s'" format debugMsg) ; alarm.cancel() ; Thread.interrupted() }
}
case class AlarmerAction(secs: Int, action: () => Unit) extends Runnable {
diff --git a/src/partest/scala/tools/partest/Categories.scala b/src/partest/scala/tools/partest/Categories.scala
index 1d5a21153f..c7a080dafe 100644
--- a/src/partest/scala/tools/partest/Categories.scala
+++ b/src/partest/scala/tools/partest/Categories.scala
@@ -55,10 +55,11 @@ trait Categories {
/** Standard actions. These can be overridden either on the
* Category level or by individual tests.
*/
- def compile: TestStep = (_: TestEntity).compile()
- def diff: TestStep = (_: TestEntity).diff()
- def run: TestStep = (_: TestEntity).run()
- def exec: TestStep = (_: TestEntity).exec()
+ def compile: TestStep = (_: TestEntity).compile()
+ def isCheckPresent: TestStep = (_: TestEntity).isCheckPresent
+ def diff: TestStep = (_: TestEntity).diff()
+ def run: TestStep = (_: TestEntity).run()
+ def exec: TestStep = (_: TestEntity).exec()
/** Combinators.
*/
diff --git a/src/partest/scala/tools/partest/Compilable.scala b/src/partest/scala/tools/partest/Compilable.scala
index d7365c1620..73dcdfce73 100644
--- a/src/partest/scala/tools/partest/Compilable.scala
+++ b/src/partest/scala/tools/partest/Compilable.scala
@@ -82,8 +82,12 @@ trait PartestCompilation {
def partestCompile(files: List[String], printSummary: Boolean): Boolean = {
try { new Run compile files }
catch {
- case FatalError(msg) => creporter.error(null, "fatal error: " + msg)
+ case FatalError(msg) => creporter.error(null, "fatal error: " + msg)
case ae: AssertionError => creporter.error(null, ""+ae)
+ case te: TypeError => creporter.error(null, ""+te)
+ case ex =>
+ creporter.error(null, ""+ex)
+ throw ex
}
if (printSummary)
diff --git a/src/partest/scala/tools/partest/Entities.scala b/src/partest/scala/tools/partest/Entities.scala
index 658cfdee12..2339250699 100644
--- a/src/partest/scala/tools/partest/Entities.scala
+++ b/src/partest/scala/tools/partest/Entities.scala
@@ -63,9 +63,7 @@ trait Entities {
/** The memoized result of the test run.
*/
private lazy val process = {
- def preCheck = precondition || returning(false)(_ => trace("precondition failed"))
- def allSteps = testSequence.actions forall (f => f(this))
- val outcome = runWrappers(preCheck && allSteps)
+ val outcome = runWrappers(testSequence.actions forall (f => f(this)))
// an empty outcome means we've been interrupted and are shutting down.
outcome getOrElse false
diff --git a/src/partest/scala/tools/partest/Partest.scala b/src/partest/scala/tools/partest/Partest.scala
index d6adcc6053..7efac63354 100644
--- a/src/partest/scala/tools/partest/Partest.scala
+++ b/src/partest/scala/tools/partest/Partest.scala
@@ -58,7 +58,16 @@ class Partest(args: List[String]) extends {
combinedFilter _
}
- def launchTestSuite() = runSelection(selectedCategories, filter)
+ def launchTestSuite() = {
+ def onTimeout() = {
+ warning("Partest test run timed out after " + timeout + " seconds.\n")
+ System.exit(-1)
+ }
+ val alarm = new Alarmer(AlarmerAction(timeout, () => onTimeout()))
+
+ try runSelection(selectedCategories, filter)
+ finally alarm.cancelAll()
+ }
}
object Partest {
diff --git a/src/partest/scala/tools/partest/PartestSpec.scala b/src/partest/scala/tools/partest/PartestSpec.scala
index 50c82fb783..a89c30a14d 100644
--- a/src/partest/scala/tools/partest/PartestSpec.scala
+++ b/src/partest/scala/tools/partest/PartestSpec.scala
@@ -70,7 +70,7 @@ trait PartestSpec extends Spec with Meta.StdOpts with Interpolation {
val isAnsi = "ansi" / "print output in color" --?
heading ("Other options:")
- val timeout = "timeout" / "Overall timeout in seconds" defaultTo 14400
+ val timeout = "timeout" / "Overall timeout in seconds" defaultTo 7200
val testWarning = "test-warning" / "Test warning in seconds" defaultTo 90
val testTimeout = "test-timeout" / "Test timeout in seconds" defaultTo 900
val isCleanup = "cleanup" / "delete all stale files and dirs before run" --?
diff --git a/src/partest/scala/tools/partest/Universe.scala b/src/partest/scala/tools/partest/Universe.scala
index 557d48fe54..942fc1a8be 100644
--- a/src/partest/scala/tools/partest/Universe.scala
+++ b/src/partest/scala/tools/partest/Universe.scala
@@ -75,11 +75,6 @@ abstract class Universe
def onException(x: Throwable): Unit
def testClasspath: String
- /** Any preconditions before running the test. Test fails
- * immediately if this returns false.
- */
- def precondition: Boolean = true
-
/** Most tests will use the sequence defined by the category,
* but the test can override and define a custom sequence.
*/
diff --git a/src/partest/scala/tools/partest/category/AllCategories.scala b/src/partest/scala/tools/partest/category/AllCategories.scala
index ce6573123a..ecf0737cbe 100644
--- a/src/partest/scala/tools/partest/category/AllCategories.scala
+++ b/src/partest/scala/tools/partest/category/AllCategories.scala
@@ -14,7 +14,7 @@ trait AllCategories extends Compiler with Analysis with Runner {
self: Universe =>
object Pos extends DirBasedCategory("pos") { lazy val testSequence: TestSequence = List(compile) }
- object Neg extends DirBasedCategory("neg") { lazy val testSequence: TestSequence = List(not(compile), diff) }
+ object Neg extends DirBasedCategory("neg") { lazy val testSequence: TestSequence = List(isCheckPresent, not(compile), diff) }
object Run extends DirBasedCategory("run") { lazy val testSequence: TestSequence = List(compile, run, diff) }
object Jvm extends DirBasedCategory("jvm") { lazy val testSequence: TestSequence = List(compile, run, diff) }
}
diff --git a/src/partest/scala/tools/partest/category/Analysis.scala b/src/partest/scala/tools/partest/category/Analysis.scala
index f2b43ebf6d..d05ee6bb21 100644
--- a/src/partest/scala/tools/partest/category/Analysis.scala
+++ b/src/partest/scala/tools/partest/category/Analysis.scala
@@ -32,7 +32,7 @@ trait Analysis {
self: Universe =>
object Scalap extends DirBasedCategory("scalap") {
- val testSequence: TestSequence = List(compile, run, diff)
+ val testSequence: TestSequence = List(isCheckPresent, compile, run, diff)
override def denotesTest(p: Path) = p.isDirectory && (p.toDirectory.files exists (_.name == "result.test"))
override def createTest(location: Path) = new ScalapTest(location)
@@ -43,7 +43,6 @@ trait Analysis {
override def classpathPaths = super.classpathPaths :+ build.scalap
override def checkFile = File(location / "result.test")
- override def precondition = checkFile.isFile && super.precondition
private def runnerURLs = build.classpathPaths ::: classpathPaths map (_.toURL)
private def createClassLoader = new PartestClassLoader(runnerURLs.toArray, this.getClass.getClassLoader)
diff --git a/src/partest/scala/tools/partest/category/Compiler.scala b/src/partest/scala/tools/partest/category/Compiler.scala
index 58fd8230e2..11112509cc 100644
--- a/src/partest/scala/tools/partest/category/Compiler.scala
+++ b/src/partest/scala/tools/partest/category/Compiler.scala
@@ -19,7 +19,7 @@ trait Compiler {
* $SCALAC -d dir.obj -Xresident -sourcepath . "$@"
*/
object Res extends DirBasedCategory("res") {
- lazy val testSequence: TestSequence = List(compile, diff)
+ lazy val testSequence: TestSequence = List(isCheckPresent, compile, diff)
override def denotesTest(p: Path) = p.isDirectory && resFile(p).isFile
override def createTest(location: Path) = new ResidentTest(location.toDirectory)
@@ -32,7 +32,6 @@ trait Compiler {
class ResidentTest(val location: Directory) extends TestEntity {
val category = Res
- override def precondition = checkFile.isFile && super.precondition
override def sourcesDir = categoryDir
override def acknowledges(p: Path) =
@@ -62,7 +61,7 @@ trait Compiler {
}
object BuildManager extends DirBasedCategory("buildmanager") {
- lazy val testSequence: TestSequence = List(compile, diff)
+ lazy val testSequence: TestSequence = List(isCheckPresent, compile, diff)
override def denotesTest(p: Path) = p.isDirectory && testFile(p).isFile
override def createTest(location: Path) = new BuildManagerTest(location.toDirectory)
@@ -100,7 +99,6 @@ trait Compiler {
override def sourcesDir = outDir
override def sourceFiles = Path onlyFiles (location walkFilter (_ != changesDir) filter isJavaOrScala toList)
override def checkFile = File(location / location.name addExtension "check")
- override def precondition = checkFile.isFile && super.precondition
override def acknowledges(p: Path) = super.acknowledges(p) || (p isSame testFile(location))
diff --git a/src/partest/scala/tools/partest/category/Runner.scala b/src/partest/scala/tools/partest/category/Runner.scala
index a7713d7dbe..10bf5794a9 100644
--- a/src/partest/scala/tools/partest/category/Runner.scala
+++ b/src/partest/scala/tools/partest/category/Runner.scala
@@ -75,7 +75,7 @@ trait Runner {
def allResults() =
for ((prop, res) <- result) yield {
- ScalacheckTest.this.trace("scalacheck result for %s: %s".format(prop, res))
+ ScalacheckTest.this.trace("%s: %s".format(prop, res))
res.asInstanceOf[ScalacheckResult].passed
}
diff --git a/src/partest/scala/tools/partest/io/Logging.scala b/src/partest/scala/tools/partest/io/Logging.scala
index 3667faaf3d..d244d58757 100644
--- a/src/partest/scala/tools/partest/io/Logging.scala
+++ b/src/partest/scala/tools/partest/io/Logging.scala
@@ -76,7 +76,7 @@ trait Logging {
try returning(true)(_ => logFile writeAll body)
catch {
case x: ControlThrowable => throw x
- case x: InterruptedException => normal(this + " received interrupt, failing.\n") ; false
+ case x: InterruptedException => debug(this + " received interrupt, failing.\n") ; false
case x: Throwable => logException(x)
}
@@ -86,12 +86,14 @@ trait Logging {
w.toString
}
- def warnAndLogException(msg: String, ex: Throwable) = {
- val str = msg + throwableToString(ex)
+ def warnAndLog(str: String) = {
warning(toStringTrunc(str, 800))
logWriter append str
}
+ def warnAndLogException(msg: String, ex: Throwable) =
+ warnAndLog(msg + throwableToString(ex))
+
def deleteLog(force: Boolean = false) =
if (universe.isNoCleanup && !force) debug("Not cleaning up " + logFile)
else logFile.deleteIfExists()
diff --git a/src/swing/scala/swing/Table.scala b/src/swing/scala/swing/Table.scala
index 8030c5043a..9370ea7eb1 100644
--- a/src/swing/scala/swing/Table.scala
+++ b/src/swing/scala/swing/Table.scala
@@ -124,7 +124,7 @@ class Table extends Component with Scrollable.Wrapper {
// TODO: use IndexedSeq[_ <: IndexedSeq[Any]], see ticket #2005
def this(rowData: Array[Array[Any]], columnNames: Seq[_]) = {
this()
- peer.setModel(new AbstractTableModel {
+ model = new AbstractTableModel {
override def getColumnName(column: Int) = columnNames(column).toString
def getRowCount() = rowData.length
def getColumnCount() = columnNames.length
@@ -134,7 +134,7 @@ class Table extends Component with Scrollable.Wrapper {
rowData(row)(col) = value
fireTableCellUpdated(row, col)
}
- })
+ }
}
def this(rows: Int, columns: Int) = {
this()
@@ -155,6 +155,7 @@ class Table extends Component with Scrollable.Wrapper {
def model = peer.getModel()
def model_=(x: TableModel) = {
peer.setModel(x)
+ model.removeTableModelListener(modelListener)
model.addTableModelListener(modelListener)
}
@@ -312,5 +313,4 @@ class Table extends Component with Scrollable.Wrapper {
}
)
}
- model.addTableModelListener(modelListener)
}
diff --git a/src/swing/scala/swing/test/UIDemo.scala b/src/swing/scala/swing/test/UIDemo.scala
index ce40fe2056..9207c82948 100644
--- a/src/swing/scala/swing/test/UIDemo.scala
+++ b/src/swing/scala/swing/test/UIDemo.scala
@@ -73,11 +73,7 @@ object UIDemo extends SimpleSwingApplication {
reactLive = live.selected
}
}
- contents += new Button("Center Frame") {
- reactions += {
- case ButtonClicked(_) => centerOnScreen()
- }
- }
+ contents += new Button(Action("Center Frame") { centerOnScreen() })
}
pages += new Page("Buttons", buttons)
pages += new Page("GridBag", GridBagDemo.ui)
diff --git a/test/files/run/spec-matrix.check b/test/disabled/run/spec-matrix.check
index 72e8ffc0db..72e8ffc0db 100644
--- a/test/files/run/spec-matrix.check
+++ b/test/disabled/run/spec-matrix.check
diff --git a/test/files/run/spec-matrix.scala b/test/disabled/run/spec-matrix.scala
index 81e3eaf212..81e3eaf212 100644
--- a/test/files/run/spec-matrix.scala
+++ b/test/disabled/run/spec-matrix.scala
diff --git a/test/files/jvm/actor-exceptions.scala b/test/files/jvm/actor-exceptions.scala
index 77bf05c048..384226d777 100644
--- a/test/files/jvm/actor-exceptions.scala
+++ b/test/files/jvm/actor-exceptions.scala
@@ -13,12 +13,17 @@ case class MyOtherException(text: String) extends Exception {
object Master extends Actor {
trapExit = true
def act() {
+ try {
link(Slave)
Slave.start()
for (i <- 0 until 10) Slave ! A
react {
case Exit(from, reason) =>
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -28,6 +33,7 @@ object Slave extends Actor {
case MyException(text) =>
}
def act() {
+ try {
var cnt = 0
loop {
react {
@@ -39,6 +45,10 @@ object Slave extends Actor {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-executor.scala b/test/files/jvm/actor-executor.scala
index 435c666fff..b1f9caebdd 100644
--- a/test/files/jvm/actor-executor.scala
+++ b/test/files/jvm/actor-executor.scala
@@ -9,6 +9,7 @@ trait AdaptedActor extends Actor {
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
var i = 0
loopWhile (i < 10000) {
@@ -22,11 +23,16 @@ object One extends AdaptedActor {
Test.executor.shutdown()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
var i = 0
loopWhile (i < 10000) {
i += 1
@@ -37,6 +43,10 @@ object Two extends AdaptedActor {
One ! 'MsgForOne
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-executor2.scala b/test/files/jvm/actor-executor2.scala
index 9e99e167aa..da64a7fc43 100644
--- a/test/files/jvm/actor-executor2.scala
+++ b/test/files/jvm/actor-executor2.scala
@@ -4,6 +4,7 @@ import java.util.concurrent.Executors
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
var i = 0
loopWhile (i < Test.NUM_MSG) {
@@ -15,11 +16,16 @@ object One extends AdaptedActor {
println("One: OK")
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
var i = 0
loopWhile (i < Test.NUM_MSG) {
i += 1
@@ -30,6 +36,10 @@ object Two extends AdaptedActor {
One ! 'MsgForOne
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -54,6 +64,7 @@ object Test {
}
def main(args: Array[String]) {
+ try {
self.trapExit = true
link(One)
One.start()
@@ -63,5 +74,9 @@ object Test {
println("One exited")
Test.executor.shutdown()
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-executor3.scala b/test/files/jvm/actor-executor3.scala
index bf060b8ac5..4fde2c6c5f 100644
--- a/test/files/jvm/actor-executor3.scala
+++ b/test/files/jvm/actor-executor3.scala
@@ -4,6 +4,7 @@ import java.util.concurrent.Executors
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
var i = 0
loopWhile (i < Test.NUM_MSG) {
@@ -15,11 +16,16 @@ object One extends AdaptedActor {
println("One: OK")
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
var i = 0
loopWhile (i < Test.NUM_MSG) {
i += 1
@@ -30,6 +36,10 @@ object Two extends AdaptedActor {
One ! 'MsgForOne
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-link-getstate.scala b/test/files/jvm/actor-link-getstate.scala
index ec01757883..c4c33ef752 100644
--- a/test/files/jvm/actor-link-getstate.scala
+++ b/test/files/jvm/actor-link-getstate.scala
@@ -7,6 +7,7 @@ case class MyException(text: String) extends Exception(text) {
object Slave extends Actor {
def act() {
+ try {
loop {
react {
case 'doWork =>
@@ -14,18 +15,27 @@ object Slave extends Actor {
reply('done)
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Master extends Actor {
override def toString = "Master"
def act() {
+ try {
link(Slave)
Slave ! 'doWork
react {
case 'done =>
throw new MyException("Master crashed")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -33,6 +43,7 @@ object Test {
def main(args: Array[String]) {
actor {
+ try {
self.trapExit = true
link(Slave)
Slave.start()
@@ -41,6 +52,10 @@ object Test {
case Exit(from, reason) if (from == Slave) =>
Console.err.println(Slave.getState)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-looping.scala b/test/files/jvm/actor-looping.scala
index 9599adbb2c..475d4754ce 100644
--- a/test/files/jvm/actor-looping.scala
+++ b/test/files/jvm/actor-looping.scala
@@ -6,6 +6,7 @@ object Test {
def main(args: Array[String]) {
val a = actor {
+ try {
var cnt = 0
loop {
react {
@@ -20,6 +21,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
for (i <- 0 until 10) a ! A
diff --git a/test/files/jvm/actor-normal-exit.scala b/test/files/jvm/actor-normal-exit.scala
index 40dc7b7da4..20863d5bb0 100644
--- a/test/files/jvm/actor-normal-exit.scala
+++ b/test/files/jvm/actor-normal-exit.scala
@@ -5,18 +5,28 @@ object Test {
object Master extends Actor {
trapExit = true
def act() {
+ try {
Slave.start()
react {
case Exit(from, reason) =>
println("slave exited for reason " + reason)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Slave extends Actor {
def act() {
+ try {
link(Master)
println("Done")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-termination.scala b/test/files/jvm/actor-termination.scala
index 19dfaf8e17..d8e44a2797 100644
--- a/test/files/jvm/actor-termination.scala
+++ b/test/files/jvm/actor-termination.scala
@@ -5,9 +5,14 @@ import scala.actors.Actor
object Test {
def main(args: Array[String]) {
Actor.actor {
+ try {
println("I'm going to make you wait.")
Thread.sleep(5000)
println("Ok, I'm done.")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
}
diff --git a/test/files/jvm/actor-uncaught-exception.scala b/test/files/jvm/actor-uncaught-exception.scala
index 9f64be26e1..9dbd36dd82 100644
--- a/test/files/jvm/actor-uncaught-exception.scala
+++ b/test/files/jvm/actor-uncaught-exception.scala
@@ -8,20 +8,32 @@ object Test {
case object StartError extends Actor {
def act() {
+ try {
throw new MyException("I don't want to run!")
+ } catch {
+ case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] &&
+ !e.isInstanceOf[MyException]) =>
+ e.printStackTrace()
+ }
}
}
case object MessageError extends Actor {
def act() {
+ try {
react {
case _ => throw new MyException("No message for me!")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
case object Supervisor extends Actor {
def act() {
+ try {
trapExit = true
link(StartError)
link(MessageError)
@@ -37,6 +49,10 @@ object Test {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/actor-uncaught-exception2.scala b/test/files/jvm/actor-uncaught-exception2.scala
index 973cfb370a..626ce5da92 100644
--- a/test/files/jvm/actor-uncaught-exception2.scala
+++ b/test/files/jvm/actor-uncaught-exception2.scala
@@ -8,20 +8,32 @@ object Test {
case object StartError extends Actor {
def act() {
+ try {
throw new MyException("I don't want to run!")
+ } catch {
+ case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] &&
+ !e.isInstanceOf[MyException]) =>
+ e.printStackTrace()
+ }
}
}
case object MessageError extends Actor {
def act() {
+ try {
react {
case _ => throw new MyException("No message for me!")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
case object Supervisor extends Actor {
def act() {
+ try {
trapExit = true
link(StartError)
link(MessageError)
@@ -38,6 +50,10 @@ object Test {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/daemon-actor-termination.scala b/test/files/jvm/daemon-actor-termination.scala
index 8e64749b1c..6ddfc3139d 100644
--- a/test/files/jvm/daemon-actor-termination.scala
+++ b/test/files/jvm/daemon-actor-termination.scala
@@ -5,6 +5,7 @@ object Test {
class MyDaemon extends DaemonActor {
def act() {
+ try {
react {
case 'hello =>
println("MSG1")
@@ -14,6 +15,10 @@ object Test {
println("done")
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,8 +26,13 @@ object Test {
val daemon = new MyDaemon
daemon.start()
Actor.actor {
+ try {
daemon !? 'hello
println("MSG2")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
}
diff --git a/test/files/jvm/future-alarm.scala b/test/files/jvm/future-alarm.scala
index 0dda492741..8ee902b5ea 100644
--- a/test/files/jvm/future-alarm.scala
+++ b/test/files/jvm/future-alarm.scala
@@ -2,6 +2,7 @@ import scala.actors.Futures
object Test {
def main(args: Array[String]) {
+ try {
for (i <- 1 to 100000) {
Futures.alarm(0)
if (i % 10000 == 0)
@@ -12,5 +13,9 @@ object Test {
ft()
println("OK")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/future-awaitall-zero.scala b/test/files/jvm/future-awaitall-zero.scala
index 125670d049..cd6ba172cc 100644
--- a/test/files/jvm/future-awaitall-zero.scala
+++ b/test/files/jvm/future-awaitall-zero.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
object Test {
def main(args: Array[String]) {
+ try {
val ft1 = future { reactWithin(10000) {
case _ => println("FAIL")
} }
@@ -13,5 +14,9 @@ object Test {
val res = awaitAll(0, ft1, ft2)
println("OK")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/future-termination.scala b/test/files/jvm/future-termination.scala
index c448a88aa7..688de60c3b 100644
--- a/test/files/jvm/future-termination.scala
+++ b/test/files/jvm/future-termination.scala
@@ -4,11 +4,16 @@ import scala.actors.Futures
object Test {
def main(args: Array[String]) {
+ try {
val meaningOfLife = Futures.future {
Thread.sleep(5000) // pretend this is a harder problem than it is
println("I have the answer!")
42
}
println("I can't wait that long, bye.")
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/reactor-exceptionOnSend.scala b/test/files/jvm/reactor-exceptionOnSend.scala
index c89aab334b..3d9a042131 100644
--- a/test/files/jvm/reactor-exceptionOnSend.scala
+++ b/test/files/jvm/reactor-exceptionOnSend.scala
@@ -19,6 +19,7 @@ object A extends Reactor[Any] {
var state = 0
def act() {
+ try {
loop {
react {
case 'hello if guard() =>
@@ -26,14 +27,24 @@ object A extends Reactor[Any] {
exit()
}
}
+ } catch {
+ case e: Throwable if (!e.isInstanceOf[scala.util.control.ControlThrowable] &&
+ !e.isInstanceOf[MyException]) =>
+ e.printStackTrace()
+ }
}
}
object B extends Reactor[Any] {
def act() {
+ try {
A.start()
A ! 'hello
A ! 'hello
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/reactor-producer-consumer.scala b/test/files/jvm/reactor-producer-consumer.scala
index 0d33043fc6..8a6b17c3ad 100644
--- a/test/files/jvm/reactor-producer-consumer.scala
+++ b/test/files/jvm/reactor-producer-consumer.scala
@@ -7,6 +7,7 @@ object Test {
class UnboundedBuffer extends Reactor[Any] {
def act() {
+ try {
react {
case Stop() =>
case Get(from) =>
@@ -17,11 +18,16 @@ object Test {
act()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
class Producer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor[Any]) extends Reactor[Any] {
def act() {
+ try {
var i = 0
while (i < n) {
i += 1
@@ -29,6 +35,10 @@ object Test {
buf ! Put(42)
}
parent ! Stop()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -36,6 +46,7 @@ object Test {
val step = n / 10
var i = 0
def act() {
+ try {
if (i < n) {
i += 1
if (delay > 0) Thread.sleep(delay)
@@ -49,12 +60,17 @@ object Test {
} else {
parent ! Stop()
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
def main(args: Array[String]) {
val parent = new Reactor[Any] {
def act() {
+ try {
val buffer = new UnboundedBuffer
buffer.start()
val producer = new Producer(buffer, 10000, 0, this)
@@ -68,6 +84,10 @@ object Test {
buffer ! Stop()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
parent.start()
diff --git a/test/files/jvm/reactor.scala b/test/files/jvm/reactor.scala
index 12d5c7c221..dbc9a6bdda 100644
--- a/test/files/jvm/reactor.scala
+++ b/test/files/jvm/reactor.scala
@@ -21,6 +21,7 @@ object Test {
class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] {
def act() {
+ try {
var pingsLeft = count - 1
pong ! Ping(this)
loop {
@@ -38,11 +39,16 @@ class PingActor(count: Int, pong: Reactor[Any]) extends Reactor[Any] {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
class PongActor extends Reactor[Any] {
def act() {
+ try {
var pongCount = 0
loop {
react {
@@ -56,5 +62,9 @@ class PongActor extends Reactor[Any] {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/replyablereactor.scala b/test/files/jvm/replyablereactor.scala
index 896a0bf440..e1fabc98da 100644
--- a/test/files/jvm/replyablereactor.scala
+++ b/test/files/jvm/replyablereactor.scala
@@ -2,6 +2,7 @@ import scala.actors.ReplyReactor
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -10,6 +11,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -20,6 +25,7 @@ object Test {
val b = new ReplyReactor {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -37,6 +43,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyablereactor2.scala b/test/files/jvm/replyablereactor2.scala
index 57b7cfe201..da9e0e269e 100644
--- a/test/files/jvm/replyablereactor2.scala
+++ b/test/files/jvm/replyablereactor2.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -11,6 +12,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,6 +26,7 @@ object Test {
val b = new Reactor[Any] {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -36,6 +42,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyablereactor3.scala b/test/files/jvm/replyablereactor3.scala
index b33db811e2..2c26b8a176 100644
--- a/test/files/jvm/replyablereactor3.scala
+++ b/test/files/jvm/replyablereactor3.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -11,6 +12,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,6 +26,7 @@ object Test {
val b = new Reactor[Any] {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -35,6 +41,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyablereactor4.scala b/test/files/jvm/replyablereactor4.scala
index dc24f5e88d..7679a5adf8 100644
--- a/test/files/jvm/replyablereactor4.scala
+++ b/test/files/jvm/replyablereactor4.scala
@@ -3,6 +3,7 @@ import scala.actors.Actor._
class MyActor extends ReplyReactor {
def act() {
+ try {
loop {
react {
case 'hello =>
@@ -11,6 +12,10 @@ class MyActor extends ReplyReactor {
exit()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -21,6 +26,7 @@ object Test {
val b = new Reactor[Any] {
def act() {
+ try {
react {
case r: MyActor =>
var i = 0
@@ -35,6 +41,10 @@ object Test {
}
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyreactor-react-sender.scala b/test/files/jvm/replyreactor-react-sender.scala
index 1127dfd0a5..c9884295f6 100644
--- a/test/files/jvm/replyreactor-react-sender.scala
+++ b/test/files/jvm/replyreactor-react-sender.scala
@@ -10,6 +10,7 @@ object Test {
val a = new ReplyReactor {
def act() {
+ try {
var i = 0
loopWhile (i < NUM) {
i += 1
@@ -20,12 +21,17 @@ object Test {
} andThen {
b ! 'ok
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
a.start()
b = new ReplyReactor {
def act() {
+ try {
for (_ <- 0 until NUM)
a ! 'hello
react {
@@ -33,6 +39,10 @@ object Test {
case 'ok => println("OK")
case other => println(other)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/replyreactor.scala b/test/files/jvm/replyreactor.scala
index fb915cf3f9..0cecf29ec7 100644
--- a/test/files/jvm/replyreactor.scala
+++ b/test/files/jvm/replyreactor.scala
@@ -4,16 +4,22 @@ object Test {
def main(args: Array[String]) {
val a = new ReplyReactor {
def act() {
+ try {
react {
case 'hello =>
sender ! 'hello
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
a.start()
val b = new ReplyReactor {
def act() {
+ try {
react {
case r: ReplyReactor =>
r ! 'hello
@@ -22,6 +28,10 @@ object Test {
println(any)
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
b.start()
diff --git a/test/files/jvm/scheduler-adapter.scala b/test/files/jvm/scheduler-adapter.scala
index 79c901f91e..d6a8a446a0 100644
--- a/test/files/jvm/scheduler-adapter.scala
+++ b/test/files/jvm/scheduler-adapter.scala
@@ -7,22 +7,32 @@ trait AdaptedActor extends Actor {
object One extends AdaptedActor {
def act() {
+ try {
Two.start()
Two ! 'MsgForTwo
react {
case 'MsgForOne =>
println("One: received msg")
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
object Two extends AdaptedActor {
def act() {
+ try {
react {
case 'MsgForTwo =>
println("Two: received msg")
One ! 'MsgForOne
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/t1449.scala b/test/files/jvm/t1449.scala
index 08c153afc0..3822cf7dd5 100644
--- a/test/files/jvm/t1449.scala
+++ b/test/files/jvm/t1449.scala
@@ -4,12 +4,22 @@ import scala.actors.Futures._
object Test {
def main(args: Array[String]) {
val a = actor {
+ try {
react {
case ft: Future[a] =>
println(ft())
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
+ try {
val ft = future { 42 }
a ! ft
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/t1600.scala b/test/files/jvm/t1600.scala
index 1cdcee8547..79391b7e76 100644
--- a/test/files/jvm/t1600.scala
+++ b/test/files/jvm/t1600.scala
@@ -12,11 +12,11 @@ object Test {
def elements = entries.map(_._1)
val maps = Seq[Map[Foo, Int]](new mutable.HashMap, new mutable.LinkedHashMap,
- new immutable.HashMap).map(_ ++ entries)
+ immutable.HashMap.empty).map(_ ++ entries)
test[Map[Foo, Int]](maps, entries.size, assertMap _)
val sets = Seq[Set[Foo]](new mutable.HashSet, new mutable.LinkedHashSet,
- new immutable.HashSet).map(_ ++ elements)
+ immutable.HashSet.empty).map(_ ++ elements)
test[Set[Foo]](sets, entries.size, assertSet _)
}
}
@@ -31,7 +31,7 @@ object Test {
assertFunction(deserializedCollection, expectedSize)
assert(deserializedCollection.getClass == collection.getClass,
- "collection class should remain the same after deserialization")
+ "collection class should remain the same after deserialization ("+deserializedCollection.getClass+" != "+collection.getClass+")")
Foo.hashCodeModifier = 0
}
}
diff --git a/test/files/jvm/t1948.scala b/test/files/jvm/t1948.scala
index fc1fedac1f..084c956398 100644
--- a/test/files/jvm/t1948.scala
+++ b/test/files/jvm/t1948.scala
@@ -4,9 +4,21 @@ import scala.actors.Actor._
object Test {
def main (args: Array[String]) {
- val actors = (1 to 1000).toList map { x => actor { loop { react {
- case x: Array[Int] => reply ("OK"); exit }}}}
+ val actors = (1 to 1000).toList map { x => actor {
+ try {
+ loop { react {
+ case x: Array[Int] => reply ("OK"); exit }}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
+ } }
+ try {
actors foreach { x => x !? new Array[Int] (1000000) }
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
diff --git a/test/files/jvm/t2359.scala b/test/files/jvm/t2359.scala
index 1b4d5e0a27..69c69d7b3b 100644
--- a/test/files/jvm/t2359.scala
+++ b/test/files/jvm/t2359.scala
@@ -3,19 +3,44 @@ import scala.actors.Futures._
object Test {
def main(args: Array[String]) {
val x = future {
+ try {
System.out.println(1)
future {
+ try {
System.out.println(2)
future {
+ try {
System.out.println(3)
future {
+ try {
System.out.println(4)
future {
+ try {
System.out.println(5)
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}()
}
}
diff --git a/test/files/jvm/t2530.scala b/test/files/jvm/t2530.scala
index 642fb05a5d..c2925a92d1 100644
--- a/test/files/jvm/t2530.scala
+++ b/test/files/jvm/t2530.scala
@@ -50,6 +50,7 @@ case class Matrix(numRows: Int, numCols: Int, values: Array[Double]) {
val rows = for (j <- 0 until m) yield {
Futures.future {
+ try {
val b_j = new Array[Double](n)
var k = 0
while (k < n) { // sadly, while loops are still faster than for loops
@@ -69,13 +70,22 @@ case class Matrix(numRows: Int, numCols: Int, values: Array[Double]) {
}
//printf("future %d of %d completed.%n", j, m)
j
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
// rows.foreach { x=> x() } // This appears to force sequential execution, so use:
// timeout is 10 years; see http://lampsvn.epfl.ch/trac/scala/ticket/2515
-
- val done = Futures.awaitAll(10*365*24*60*60*1000, rows.toArray : _*) // list to array, as varargs.
+ val done: List[Option[Any]] = try {
+ Futures.awaitAll(10*365*24*60*60*1000, rows.toArray : _*) // list to array, as varargs.
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ List()
+ }
if (done.contains(None))
None
diff --git a/test/files/jvm/t3102.scala b/test/files/jvm/t3102.scala
index ea3e720eca..fbcf2e60e6 100644
--- a/test/files/jvm/t3102.scala
+++ b/test/files/jvm/t3102.scala
@@ -4,13 +4,19 @@ import Actor._
object Test {
def main(args: Array[String]) {
val a = actor {
+ try {
react {
case 'hello =>
reply(42)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
val b = actor {
+ try {
self.trapExit = true
val ft = a !! 'hello
println(ft())
@@ -21,6 +27,10 @@ object Test {
case any =>
println(any)
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
}
diff --git a/test/disabled/run/Course-2002-10-msil.check b/test/files/run/Course-2002-10-msil.check
index bbd9414370..bbd9414370 100644
--- a/test/disabled/run/Course-2002-10-msil.check
+++ b/test/files/run/Course-2002-10-msil.check
diff --git a/test/disabled/run/Course-2002-10.check b/test/files/run/Course-2002-10.check
index 207b671f05..207b671f05 100644
--- a/test/disabled/run/Course-2002-10.check
+++ b/test/files/run/Course-2002-10.check
diff --git a/test/disabled/run/Course-2002-10.scala b/test/files/run/Course-2002-10.scala
index e978bc8258..e978bc8258 100644
--- a/test/disabled/run/Course-2002-10.scala
+++ b/test/files/run/Course-2002-10.scala
diff --git a/test/disabled/run/Course-2002-13.check b/test/files/run/Course-2002-13.check
index 7664f70576..7664f70576 100644
--- a/test/disabled/run/Course-2002-13.check
+++ b/test/files/run/Course-2002-13.check
diff --git a/test/disabled/run/Course-2002-13.scala b/test/files/run/Course-2002-13.scala
index c016d41a90..c016d41a90 100644
--- a/test/disabled/run/Course-2002-13.scala
+++ b/test/files/run/Course-2002-13.scala
diff --git a/test/files/run/json.scala b/test/files/run/json.scala.disabled
index ec0bad7ebe..2e7ee4aa4d 100644
--- a/test/files/run/json.scala
+++ b/test/files/run/json.scala.disabled
@@ -8,7 +8,7 @@ object Test extends Application {
printJSON("{\"name\": \"va1ue\"}") // ticket #136
printJSON("{\"name\": { \"name1\": \"va1ue1\", \"name2\": \"va1ue2\" } }")
printJSON("{\"name\": \"\\u0022\"}")
- printJSON("{\"age\": 0}")
+ printJSON("{\"age\": 0}")
println
// from http://en.wikipedia.org/wiki/JSON
@@ -63,7 +63,7 @@ object Test extends Application {
// from http://json.org/example.html
val sample3 = """
{"web-app": {
- "servlet": [
+ "servlet": [
{
"servlet-name": "cofaxCDS",
"servlet-class": "org.cofax.cds.CDSServlet",
@@ -119,7 +119,7 @@ object Test extends Application {
{
"servlet-name": "cofaxAdmin",
"servlet-class": "org.cofax.cds.AdminServlet"},
-
+
{
"servlet-name": "fileServlet",
"servlet-class": "org.cofax.cds.FileServlet"},
@@ -146,7 +146,7 @@ object Test extends Application {
"cofaxAdmin": "/admin/*",
"fileServlet": "/static/*",
"cofaxTools": "/tools/*"},
-
+
"taglib": {
"taglib-uri": "cofax.tld",
"taglib-location": "/WEB-INF/tlds/cofax.tld"}
diff --git a/test/files/run/numbereq.scala b/test/files/run/numbereq.scala
new file mode 100644
index 0000000000..52f32cc52a
--- /dev/null
+++ b/test/files/run/numbereq.scala
@@ -0,0 +1,41 @@
+object Test {
+ def mkNumbers(x: Int): List[AnyRef] = {
+ val base = List(
+ BigDecimal(x),
+ BigInt(x),
+ new java.lang.Double(x.toDouble),
+ new java.lang.Float(x.toFloat),
+ new java.lang.Long(x.toLong),
+ new java.lang.Integer(x)
+ )
+ val extras = List(
+ if (x >= Short.MinValue && x <= Short.MaxValue) List(new java.lang.Short(x.toShort)) else Nil,
+ if (x >= Byte.MinValue && x <= Byte.MaxValue) List(new java.lang.Byte(x.toByte)) else Nil,
+ if (x >= Char.MinValue && x <= Char.MaxValue) List(new java.lang.Character(x.toChar)) else Nil
+ ).flatten
+
+ base ::: extras
+ }
+
+
+ def main(args: Array[String]): Unit = {
+ val ints = (0 to 15).toList map (Short.MinValue >> _)
+ val ints2 = ints map (x => -x)
+ val ints3 = ints map (_ + 1)
+ val ints4 = ints2 map (_ - 1)
+
+ val setneg1 = ints map mkNumbers
+ val setneg2 = ints3 map mkNumbers
+ val setpos1 = ints2 map mkNumbers
+ val setpos2 = ints4 map mkNumbers
+ val zero = mkNumbers(0)
+
+ val sets = setneg1 ++ setneg2 ++ List(zero) ++ setpos1 ++ setpos2
+
+ for (set <- sets ; x <- set ; y <- set) {
+ println("'%s' == '%s' (%s == %s) (%s == %s)".format(x, y, x.hashCode, y.hashCode, x.##, y.##))
+ assert(x == y, "%s/%s != %s/%s".format(x, x.getClass, y, y.getClass))
+ assert(x.## == y.##, "%s != %s".format(x.getClass, y.getClass))
+ }
+ }
+} \ No newline at end of file
diff --git a/test/disabled/run/streamWithFilter.check b/test/files/run/streamWithFilter.check
index 6b0e91a147..6b0e91a147 100644
--- a/test/disabled/run/streamWithFilter.check
+++ b/test/files/run/streamWithFilter.check
diff --git a/test/disabled/run/streamWithFilter.scala b/test/files/run/streamWithFilter.scala
index cb919d4f55..cb919d4f55 100644
--- a/test/disabled/run/streamWithFilter.scala
+++ b/test/files/run/streamWithFilter.scala
diff --git a/test/files/run/t3241.check b/test/files/run/t3241.check
new file mode 100644
index 0000000000..348ebd9491
--- /dev/null
+++ b/test/files/run/t3241.check
@@ -0,0 +1 @@
+done \ No newline at end of file
diff --git a/test/files/run/t3241.scala b/test/files/run/t3241.scala
new file mode 100644
index 0000000000..40097a046f
--- /dev/null
+++ b/test/files/run/t3241.scala
@@ -0,0 +1,23 @@
+object Test {
+
+ def main(args : Array[String]) : Unit = {
+ recurse(Map(1->1, 2->2, 3->3, 4->4, 5->5, 6->6, 7->7))
+ recurse(Set(1,2,3,4,5,6,7))
+ println("done")
+ }
+
+ def recurse(map: collection.immutable.Map[Int, Int]): Unit = {
+ if (!map.isEmpty) {
+ val x = map.keys.head
+ recurse(map - x)
+ }
+ }
+
+ def recurse(set: collection.immutable.Set[Int]): Unit = {
+ if (!set.isEmpty) {
+ val x = set.toStream.head
+ recurse(set - x)
+ }
+ }
+
+}
diff --git a/test/files/scalacheck/redblack.scala b/test/files/scalacheck/redblack.scala
new file mode 100644
index 0000000000..0334c1218d
--- /dev/null
+++ b/test/files/scalacheck/redblack.scala
@@ -0,0 +1,157 @@
+import org.scalacheck._
+import Prop._
+import Gen._
+
+/*
+Properties of a Red & Black Tree:
+
+A node is either red or black.
+The root is black. (This rule is used in some definitions and not others. Since the
+root can always be changed from red to black but not necessarily vice-versa this
+rule has little effect on analysis.)
+All leaves are black.
+Both children of every red node are black.
+Every simple path from a given node to any of its descendant leaves contains the same number of black nodes.
+*/
+
+abstract class RedBlackTest extends Properties("RedBlack") {
+ object RedBlackTest extends scala.collection.immutable.RedBlack[Int] {
+ def isSmaller(x: Int, y: Int) = x < y
+ }
+
+ import RedBlackTest._
+
+ def rootIsBlack[A](t: Tree[A]) = t.isBlack
+
+ def areAllLeavesBlack[A](t: Tree[A]): Boolean = t match {
+ case Empty => t.isBlack
+ case ne: NonEmpty[_] => List(ne.left, ne.right) forall areAllLeavesBlack
+ }
+
+ def areRedNodeChildrenBlack[A](t: Tree[A]): Boolean = t match {
+ case RedTree(_, _, left, right) => List(left, right) forall (t => t.isBlack && areRedNodeChildrenBlack(t))
+ case BlackTree(_, _, left, right) => List(left, right) forall areRedNodeChildrenBlack
+ case Empty => true
+ }
+
+ def blackNodesToLeaves[A](t: Tree[A]): List[Int] = t match {
+ case Empty => List(1)
+ case BlackTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves map (_ + 1)
+ case RedTree(_, _, left, right) => List(left, right) flatMap blackNodesToLeaves
+ }
+
+ def areBlackNodesToLeavesEqual[A](t: Tree[A]): Boolean = t match {
+ case Empty => true
+ case ne: NonEmpty[_] =>
+ (
+ blackNodesToLeaves(ne).removeDuplicates.size == 1
+ && areBlackNodesToLeavesEqual(ne.left)
+ && areBlackNodesToLeavesEqual(ne.right)
+ )
+ }
+
+ def orderIsPreserved[A](t: Tree[A]): Boolean = t match {
+ case Empty => true
+ case ne: NonEmpty[_] =>
+ (
+ (ne.left.iterator map (_._1) forall (isSmaller(_, ne.key)))
+ && (ne.right.iterator map (_._1) forall (isSmaller(ne.key, _)))
+ && (List(ne.left, ne.right) forall orderIsPreserved)
+ )
+ }
+
+ def setup(l: List[Int], invariant: Tree[Unit] => Boolean): (Boolean, Tree[Unit])
+
+ def listNoRepetitions(size: Int) = for {
+ s <- Gen.choose(1, size)
+ l <- Gen.listOfN(size, Gen.choose(0, Int.MaxValue)) suchThat (l => l.size == l.removeDuplicates.size)
+ } yield l
+ def listFewRepetitions(size: Int) = for {
+ s <- Gen.choose(1, size)
+ l <- Gen.listOfN(s, Gen.choose(0, size * 4)) suchThat (l => l.size != l.removeDuplicates.size)
+ } yield l
+ def listManyRepetitions(size: Int) = for {
+ s <- Gen.choose(1, size)
+ l <- Gen.listOfN(s, Gen.choose(0, size)) suchThat (l => l.size != l.removeDuplicates.size)
+ } yield l
+ def listEvenRepetitions(size: Int) = listFewRepetitions(size) map (x =>
+ scala.util.Random.shuffle(x zip x flatMap { case (a, b) => List(a, b) })
+ )
+
+ // Arbitrarily weighted list distribution types
+ val seqType: Gen[Int => Gen[List[Int]]]
+
+ def myGen(sized: Int) = for {
+ size <- Gen.choose(0, sized)
+ seq <- seqType
+ list <- seq(size)
+ } yield list
+
+ property("root is black") = forAll(myGen(10)) { l =>
+ setup(l, rootIsBlack)._1 :| setup(l, rootIsBlack)._2.toString
+ }
+ property("all leaves are black") = forAll(myGen(50)) { l =>
+ setup(l, areAllLeavesBlack)._1 :| setup(l, areAllLeavesBlack)._2.toString
+ }
+ property("children of red nodes are black") = forAll(myGen(50)) { l =>
+ setup(l, areRedNodeChildrenBlack)._1 :| setup(l, areRedNodeChildrenBlack)._2.toString
+ }
+ property("Every path from a node to its descendant leaves contains the same number of black nodes") = forAll(myGen(50)) { l =>
+ setup(l, areBlackNodesToLeavesEqual)._1 :| setup(l, areBlackNodesToLeavesEqual)._2.toString
+ }
+ property("Ordering of keys is preserved") = forAll(myGen(50)) { l =>
+ setup(l, orderIsPreserved)._1 :| setup(l, orderIsPreserved)._2.toString
+ }
+}
+
+object TestInsertion extends RedBlackTest {
+ import RedBlackTest._
+ override val seqType = Gen.frequency(
+ (1, listNoRepetitions _),
+ (1, listManyRepetitions _)
+ )
+
+ property("update adds elements") = forAll(myGen(50)) { l =>
+ val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ()))
+ forAll(Gen.pick(1, l)) ( n => !(tree lookup n.head isEmpty) :| "Tree: "+tree+" N: "+n.head )
+ }
+
+ override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) {
+ case ((true, acc), n) =>
+ val newRoot = acc update (n, ())
+ (invariant(newRoot), newRoot)
+ case (failed, _) => failed
+ }
+}
+
+object TestDeletion extends RedBlackTest {
+ import RedBlackTest._
+ override val seqType = Gen.frequency(
+ (2, listFewRepetitions _),
+ (3, listManyRepetitions _),
+ (1, listEvenRepetitions _)
+ )
+
+ property("delete removes elements") = forAll(myGen(50)) { l =>
+ val tree = l.foldLeft(Empty: Tree[Unit])((acc, n) => acc update (n, ()))
+ forAll(Gen.choose(1, l.size)) { numberOfElementsToRemove =>
+ forAll(Gen.pick(numberOfElementsToRemove, l)) { elementsToRemove =>
+ val newTree = elementsToRemove.foldLeft(tree)((acc, n) => acc delete n)
+ (elementsToRemove forall (n => newTree lookup n isEmpty)) :| "Tree: "+tree+"New Tree: "+newTree+" Elements to Remove: "+elementsToRemove
+ }
+ }
+ }
+
+ override def setup(l: List[Int], invariant: Tree[Unit] => Boolean) = l.foldLeft((true, Empty: Tree[Unit])) {
+ case ((true, acc), n) =>
+ val newRoot = if (acc lookup n isEmpty) acc update (n, ()) else acc delete n
+ (invariant(newRoot), newRoot)
+ case (failed, _) => failed
+ }
+}
+
+object Test extends Properties("RedBlack") {
+ include(TestInsertion)
+ include(TestDeletion)
+}
+
diff --git a/test/partest-tests/jvm/actor-receivewithin.check b/test/partest-tests/jvm/actor-receivewithin.check
new file mode 100644
index 0000000000..a6a3e88c61
--- /dev/null
+++ b/test/partest-tests/jvm/actor-receivewithin.check
@@ -0,0 +1,16 @@
+'msg
+'msg
+'msg
+'msg
+'msg
+TIMEOUT
+TIMEOUT
+TIMEOUT
+TIMEOUT
+TIMEOUT
+'msg2
+'msg2
+'msg2
+'msg2
+'msg2
+TIMEOUT
diff --git a/test/partest-tests/jvm/actor-receivewithin.scala b/test/partest-tests/jvm/actor-receivewithin.scala
new file mode 100644
index 0000000000..a5c87c2722
--- /dev/null
+++ b/test/partest-tests/jvm/actor-receivewithin.scala
@@ -0,0 +1,69 @@
+import scala.actors.{Actor, TIMEOUT}
+
+object A extends Actor {
+ def act() {
+ receive {
+ case 'done =>
+ var cnt = 0
+ while (cnt < 500) {
+ cnt += 1
+ receiveWithin (0) {
+ case 'msg =>
+ if (cnt % 100 == 0)
+ println("'msg")
+ case TIMEOUT =>
+ // should not happen
+ println("FAIL1")
+ }
+ }
+ cnt = 0
+ while (cnt < 500) {
+ cnt += 1
+ receiveWithin (0) {
+ case 'msg =>
+ // should not happen
+ println("FAIL2")
+ case TIMEOUT =>
+ if (cnt % 100 == 0)
+ println("TIMEOUT")
+ }
+ }
+ B ! 'next
+ receive { case 'done => }
+ cnt = 0
+ while (cnt < 501) {
+ cnt += 1
+ receiveWithin (500) {
+ case 'msg2 =>
+ if (cnt % 100 == 0)
+ println("'msg2")
+ case TIMEOUT =>
+ println("TIMEOUT")
+ }
+ }
+ }
+ }
+}
+
+object B extends Actor {
+ def act() {
+ A.start()
+ for (_ <- 1 to 500) {
+ A ! 'msg
+ }
+ A ! 'done
+ receive {
+ case 'next =>
+ for (_ <- 1 to 500) {
+ A ! 'msg2
+ }
+ A ! 'done
+ }
+ }
+}
+
+object Test {
+ def main(args:Array[String]) {
+ B.start()
+ }
+}
diff --git a/test/partest-tests/run/crash.scala b/test/partest-tests/run/crash.scala
new file mode 100644
index 0000000000..1735cc444e
--- /dev/null
+++ b/test/partest-tests/run/crash.scala
@@ -0,0 +1,6 @@
+object Test {
+ def main(args: Array[String]): Unit = {
+ val t = new Throwable("DOOM")
+ throw t
+ }
+}
diff --git a/test/partest-tests/run/streamWithFilter.check b/test/partest-tests/run/streamWithFilter.check
new file mode 100644
index 0000000000..6b0e91a147
--- /dev/null
+++ b/test/partest-tests/run/streamWithFilter.check
@@ -0,0 +1,5 @@
+15
+30
+45
+60
+75
diff --git a/test/partest-tests/run/streamWithFilter.scala b/test/partest-tests/run/streamWithFilter.scala
new file mode 100644
index 0000000000..cb919d4f55
--- /dev/null
+++ b/test/partest-tests/run/streamWithFilter.scala
@@ -0,0 +1,11 @@
+object Test {
+ val nums = Stream.from(1)
+ def isFizz(x: Int) = x % 3 == 0
+ def isBuzz(x: Int) = x % 5 == 0
+ // next line will run forever if withFilter isn't doing its thing.
+ val fizzbuzzes = for (n <- nums ; if isFizz(n) ; if isBuzz(n)) yield n
+
+ def main(args: Array[String]): Unit = {
+ fizzbuzzes take 5 foreach println
+ }
+}
diff --git a/test/partest-tests/run/timeout.scala b/test/partest-tests/run/timeout.scala
new file mode 100644
index 0000000000..91417b39ab
--- /dev/null
+++ b/test/partest-tests/run/timeout.scala
@@ -0,0 +1,5 @@
+object Test {
+ def main(args: Array[String]): Unit = {
+ Thread.sleep(10000000)
+ }
+}