FUEL ZFUEL FLGlobalClassClusterFLHeader ByteString IdentitySet ByteSymbolFullBlockClosureIdentityDictionaryUndefinedObjectContextFLGlobalCompiledBlockClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:FLGlobalCompiledMethodClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:$FLHookPrimitiveClusterFLHookPrimitiveClusterImageVM TimestampFLHookPrimitiveClusterVM: unix - x86_64 - linux-gnu - CoInterpreter VMMaker-tonel.1 uuid: c117527c-9dd3-0d00-af1a-80730bccb44d Apr 29 2024 StackToRegisterMappingCogit VMMaker-tonel.1 uuid: c117527c-9dd3-0d00-af1a-80730bccb44d Apr 29 2024 d1bfe9e - Commit: d1bfe9e - Date: 2024-04-29 14:32:52 +0200 29 April 2024 4:41:01.156328 pmwImage: Pharo12.0.0PR [Build information: Pharo-12.0.0+PR.build.1.sha.17e5ada523c39297bfdfb15ccd027d0405626ff1 (64 Bit)]FLPositive8SmallIntegerClusterQFLFixedObjectClusterpreMaterializationActionsadditionalObjectspostMaterializationActionsFLContextClustersenderpcstackpmethod closureOrNilreceiverFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLDictionaryCollectionClusterFLSimpleCollectionClusterFLSubstitutionCluster      FLGlobalCompiledBlockCluster% HDTestReportrunAllTestCaserunCaseBasicCommandLineHandleractivateSubCommand: HDTestReportrunCase: BlockClosure newProcessTestExecutionEnvironmentrunTestCaseUnderWatchdog:TestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportrunCase: TestAsserterassertCollection:equals:RSXMarkerDecorationmaxTestExecutionEnvironmentrunTestCaseUnderWatchdog: HDTestReportrunBasicCommandLineHandleractivateCurrentExecutionEnvironment activate:for:TestExecutionEnvironment runTestCase:HDReport runPackages: HDTestReportrunBasicCommandLineHandleractivateTestCaserunCase HDTestReportrunCase: HDTestReport newLogDuring: HDTestReportrunAllTestExecutionEnvironmentrunTestCaseUnderWatchdog:TestCaserunCase TFTestCasetestParametersBasicCommandLineHandleractivateSubCommand:Setcollect:CurrentExecutionEnvironment activate:for:RSYMarkerDecorationmaxBasicCommandLineHandleractivate HDTestReportreportTestCase:runBlock: RBMethodNode initializeTestCaserunCase HDTestReportrun HDTestReportrunClasses:named: TFTestCasetestParametersTestExecutionEnvironment runTestCase:FLGlobalCompiledMethodClusterOrderedCollectionasArray SPoint translateBy:~SequenceableCollectioncollect:thenReject:WSequenceableCollection allButLastx+ Collection detectMax:&Symbol ascending.SequenceableCollectionfifth2 ScaledDecimalround:j Collectionadd:withOccurrences:Fractionround:sn SmallIntegereven Collection includesAny:StringendsWithAColonj Collection newFromArray:^)SequenceableCollectionidentityIndexOf:m|String endsWith:=qStringallRangesOfSubstring:p BlockClosuremicrosecondsToRunРString beginsWith:=NSPerlinNoise2 noise:y:z:4DateyyyymmddSequenceableCollectionselect:^Boolean==>3 ProtoObjectifNil:ifNotNil:ҹTruenot  BlockClosureon:do:BOrderedCollectionremoveDuplicates SequenceableCollectionat:incrementBy:wTestCase performTest-String>= Character isSeparator5 Collection removeAll:SequenceableCollection lastIndexOf:startingAt:ifAbsent:dOrderedCollection growAtLastsSequenceableCollectionfindBinaryIndex:do:ifNone:E`String isAllDigits5 DateAndTimesecondF Collectionremove:IntegerhexzSequenceableCollectionreplaceAll:with: Collection+ Collection copyWithout:y#IntegernumberOfCombinationsTaken:>PointisInsideRectangle:.SequenceableCollectionoverlappingPairsDo:‰ Collection allSatisfy: CollectionasBag CharacterisLetterp RBMethodNode initializeSequenceableCollection runningMax:SequenceableCollection%lastIndexOfAnyOf:startingAt:ifAbsent:4 Exceptionsignal:e Collection inject:into: Collection isNotEmptywDate monthIndexf RBScanneron:[}SequenceableCollection combinations!Intervalstop! Collection noneSatisfy:Stringkeywordsju CharacterisDashPunctuationpOrderedCollection growAtFirstInteger factorial<1 CollectionflatCollectAsSet:b|SequenceableCollection at:ifAbsent:_ Characterjoin:sTTestCaserun:LSequenceableCollectionwriteStreamDo:5SequenceableCollection indexOfAnyOf:S Collectionselect:thenCollect: HDTestReportreportTestCase:runBlock:/0 Collectionselect:thenDo:SequenceableCollection findLast:ѝPathprintPathOn:delimiter:1SequenceableCollection beginsWith: <String asFourCodegColor asHexStringjSTON toJsonString:p ProtoObject ifNotNil:.SequenceableCollectionargmaxkSequenceableCollectionpolynomialEval: HDTestReportrunAllSequenceableCollectionsorted CollectionoccurrencesOf:LISequenceableCollection runningMin:SequenceableCollectionsize.SequenceableCollectionisSortedSStringasValidSelectorTrueifTrue:ifFalse:}" CollectionaddIfNotPresent:[SequenceableCollectionreject:^BagasSetaIntegerstoreStringBase:length:padded:kF Collection detectMin:& CollectionadaptToCollection:andSend:xPackage isTestPackagezStringfindString:startingAt:Z CollectionaverageIfEmpty:[Stringmatch:K Collection asNewArray.NumbersecondsBooleanifTrue:L ByteString isByteString OrderedCollection add:after:pK CollectionselectEveryFirstSequenceableCollectionlast:Q Collection groupedBy:*SequenceableCollection with:collect:֟Trueand:}" BlockClosuresplit:indicesDo:F CollectionassociationsDo:/SequenceableCollection atAll:putAll:StringwithoutQuotingSOrderedCollectioncollect:SequenceableCollectioneighth2SymbolisUnaryFBSequenceableCollectionsixth2SequenceableCollectionreplace:SequenceableCollectionreject:thenCollect:[SequenceableCollectionoverlappingPairsWithIndexDo:S Collectionmedian6SymbolasSortFunctionSequenceableCollection swap:with:f RubTextEditorsurroundString:withCharacter: SmallIntegerprintOn:base:length:padded: CollectionifEmpty:¸STON listClass SequenceableCollectionatLast:ifAbsent:_Stringformat:NStringisAllAlphaNumericssTestExecutionEnvironment runTestCase:PointceilingxSTON fromStream:nNumberminutesSequenceableCollection atLast:put:Integer hexStringz BlockClosuremillisecondsToRunDPoint<ҪIntegerhumanReadableByteSizeStringz CollectionasOrderedDictionaryzNumberround:. CharacterisAlphaNumeric?Pointcorner:. SmallInteger bytesCountx CollectionidentityIncludes: Metaclass classSide 1FalseifFalse:ifTrue:}"Falseor:}"SequenceableCollectiondetectIndex:ifNone: CharacterisControlOtherp Collection flatCollect:aFalsenot SequenceableCollectionsplitOn:indicesDo:r?True asInteger5SequenceableCollectionpairsDo:Z CollectionprintElementsOn:+ TestAsserterassertCollection:equals: DateAndTimeasDateSequenceableCollectionfirst:xDateweekday.IntervallastdVariableBreakpointMockSubclass instVarWritesSTONmapClass ClassDescription instanceSide.BasicCommandLineHandleractivateSubCommand:TrueifFalse:ifTrue:s CollectionnegatedSequenceableCollectionjoin:* AsciiCharset toUppercase:؜SequenceableCollectionbefore:ClyLocalClassScopemetaLevelForHierarchyOf:L KeyboardKeyfromCharacter:ifNone:SequenceableCollectionstreamContents:sbPointfloorxSequenceableCollectionasDigitsToPower:do: DictionarynewFromKeys:andValues:aColor rgbTripletSequenceableCollection flatCollect:zSTrueifFalse:ATrueor: CollectionatRandom:weighting:o/BagcumulativeCounts CharacterisInitialQuotepUndefinedObject ifNotNil:Integer digitAt:base:Color fromString:EIBagsumSequenceableCollectionreduce:}{String asByteArrayLSequenceableCollectionatAll: TestAsserterassert:description:resumable: Exceptionsignal:VariableBreakpointMockClassv1KODatemmddyyyyzColorh:s:l:SequenceableCollectionanyOne.Numberminute. HDTestReportrunClasses:named: StringexpandMacrosWithArguments:YColorgreenObject>>>}{ Collection copyWith:_DSequenceableCollectionreplaceFrom:to:with:SequenceableCollectionbind:.BooleanifTrue:ifFalse:LColorh:s:v:SequenceableCollectionindexOf:ifAbsent:KColor colorFrom:PointxMBooleanifFalse:ifTrue:LArrayatWrap:2]STONassociationClass Set intersection:$ DateAndTimeminute8BagoccurrencesOf:/SequenceableCollectionwith:do:STON toString:p CharacterisEnclosingMarkp CollectioncopyWithoutAll:y# Character isCasedLetterpColorhex:u BlockClosure newProcess CollectionasCommaStringAnd!NumberradiansToDegreesw BlockClosurevalueWithPossibleArgs:Q Color h:s:v:alpha:N)Color hslSaturationString includesSubstring:caseSensitive:lPath printPathOn: CollectionremoveAllSuchThat:.VariableBreakpointMockClassv1:.zPointmax:SequenceableCollection!indexOfAnyOf:startingAt:ifAbsent:Integerprint:on:prefix:length:padded:= Collectionrange`Number truncateTo: StringendsWith:caseSensitive:SequenceableCollectionatPin:7SequenceableCollectioncollect:from:to:Point*cDate previous: CollectionincludesSubstringAnywhere: Collectionreject:thenCollect:PointscaleTo:U Collection withIndexDo:+FalseifTrue:ADateequals:;StringindexOf:startingAt: GeneratoronDo:y#String surroundedBy:*Falsexor:}"Booleanor:L CollectionasOrderedCollectionzSequenceableCollection withIndexDo:SequenceableCollection shuffleBy:>5CurrentExecutionEnvironment activate:for:SequenceableCollectiongroupsOf:atATimeCollect:?]SequenceableCollectionwithIndexSelect:NSequenceableCollectionafter:SequenceableCollectionninth2SequenceableCollection do:without: Collection ifNotEmpty:3Floatround:f+SequenceableCollectionbefore:ifAbsent:ŇSequenceableCollectioncloseTo:precision:SmallDictionarynewFromKeys:andValues:aSequenceableCollectionreverseWithIndexDo:qDate subtractDate: CollectionselectEverySecondTrueifTrue:}"StringnormalizeCamelCasebCurrentExecutionEnvironment runTestsBy:True|OrderedDictionaryat:at:ifAbsent:Number**}{Booleanand:LString asCamelCasebBagsortedElementsRSSequenceableCollectionsorted:sTStringcopyReplaceAll:with:y CollectionaddAll: Collection/SequenceableCollectionindexOf:startingAt:6 CollectionisEmpty>!SequenceableCollection,rString߈ CollectionasSortedCollectionz CollectionprintOn:delimiter: HDReport runPackages:} Collectioncollect:1 Collectionaverage0STONfromStreamWithComments:/ CollectionasSetBagsizeA TestAsserterassert:description:\IntegerdecimalDigitAt:m|PointsideOf:+Pointy! Collectionsum:m|NumberprintShowingDecimalPlaces:) ProtoObjectifNotNil:ifNil:.Boolean&L Collection reciprocalNumberprintStringBase:p CollectionmaxrSequenceableCollection detectIndex:CurrentExecutionEnvironment runTestCase:ClassDescriptionisInstanceSidew Collection-. Collection asByteArray SequenceableCollection findBinary:n Collectionsign Charactertokenish!RunArraynewFrom:ҕNumber milliSeconds CharacterisDecimalDigitpSequenceableCollectionseventh2 HDTestReportrun KeyboardKeynamed: String<=OrderedCollectionmakeRoomAtFirst MagnitudebeBetween:and:SequenceableCollection)indexOfSubCollection:startingAt:ifAbsent:SequenceableCollection pairsCollect:StringbeginsWith:caseSensitive:W%Stringrepeat:uInteger slowFactorialStringasHexSSequenceableCollectionatLast:f Collection emptyCheckSequenceableCollectionfindBinaryIndex:nBasicCommandLineHandlerhandleSubcommandStringincludesSubstring:at:#BooleanasBitLBooleaneqv:1SequenceableCollection allPairsDo:{ SmallIntegerlowBitӮ CharacterisDigitpSymbolasTestSelector>StringescapeCharacter:vString contractTo:% Magnitudemin:max:~ Collection sumNumbers)dSequenceableCollection allButFirstx+TestCaserunCaseSequenceableCollectionrunningAverage: RBMethodNodepharoDocCommentNodesbOrderedCollectionreversed Collectiondetect:SequenceableCollectionwithIndexCollect:- ByteArrayunzipped'Point isFloatPointT CollectionasSortedCollection:+SequenceableCollectionpermutationsDo:pSymbol descendingwSymbol asMutatorNClass instanceSide 1 Exceptionsignalȭ Collectiondo:separatedBy:IntegerprintOn:base:length:padded:1RSXMarkerDecorationmaxSequenceableCollectionatWrap:6 CollectionsumSTON fromString:Oh SmallIntegerprintStringBase:[SequenceableCollectionreject:thenDo:Ж Collection//</F rNze(m?G^: fd}+ lWWnJva $i;CZ6 Ib4y' :jF Yr] 'e7|?kV2^0 u#O{B Ya3_x "; 9R .Z ,q> QjU-]/ t7c|N*VmG=#:Q}Y+p3 xJ &vR$ixC6MyU'ltF "r-N  e(A ?2 I! uQ dh+pBJa=;.ZEqMd'l>FD]9 e 7|* =m0I \`#h:  B nY5a3x&RiE\d6 {>U1 D]/ t"  5NA mX`2w !:Q- @Y+Wp  _  1J &$= T\. o  s6{M)yU'lF "9eP|X*o2wI$%u 8h  W  )B5aL$xT Rk.sE!d@b}1]H tP |g* zoAI`<h:-YDpLc&Rk=iE \ 8 d6{>)  <Ul /Ht_"g9~A X 4`2w:%QD p[c5 z=T0\. s!M@lW/_1 v e~P,X*oI%<hSB[- r5 zL (TkE!8dO{W)nvH$ 7P"g  (4`K#wS  j-rD Lc?=i0\G sO{fn@ lH_"; g9~,XCKwbj< D [ 7 c 5z=(kG  Zs ^!f8  } @W3_ v$PCZb4`y,<:S /[ - Yr   aL?kV ^0   \u 8}6O+W )QUn1H $;gR~FLHookPrimitiveClusterFLHookPrimitiveCluster"ktestRemoveArgumentstestAccessingTempsVectorInBlock"test0FixtureRequirementsOfTAddTest testMoveTo&testStoreIntoTemporaryVariableBytecode#testFinalizationOfMultipleResourcesselectEveryFirstNewTools-SettingsBrowser atAllPut:testDiffWithLines testAtAll testMoving'testCreationByCommaWithMultipleContextstestFilterExtensionsindexOf:testChangeOfLayoutIsDetectedtestReadThenWrite"testRemovePropertySlotWithInstance"testFileOutSingleClassModification testIsPrimeexampleLiteralWideSymbol testCopyingtestMcWorkingCopytestColumnSpacing3testCaretInTheEndOfSecondWordHasSecondWordUpToCarettestNegativeZeroSigntestSearchForPatternCodetestCaseOfOtherwisetest4Bit testShuffleBy shuffleBy:testCreationFromBytes1testSelectedMethodVersionsSizeIntegertestModelForIttestASTbitXor: allButLastDo:testCenterEmptyColorstest0FixturePutTesttestBuilderSuperclasstestCanConsumeLine!testServiceExecutesStartUpOnStarttestTagsForMethodsRemovaltestExamplePrimitiveModuleErrortestChainBehaviorPutChildtestCommandOrGroupNamedtestIsAffectedByChangeOfSubclassMethodWhichOverridesSuperclasstestDefaultDebugAPI timesRepeat:KtestVariableByteClassWhenTraitCompositionChangedShouldAnnounceClassModified7testCollectionWithSingleManyElementsReturnsTheRequestedtestFutureOnDoSucceedsOnSuccess#testReadComputedSlotReflectiveNoArg Spec2-MorphictestPragmaAddingPropertytestBadKernelArgumentMorphic-Widgets-Tree testUnevenDoremoveAllFoundIn: Hiedra-TeststestExampleBooleanSlotCtestWhenOpenADirectoryShouldDisplayHisChildrenFilterByCurrentFiltertestAllLocalCallsOntestUnregisterTool-DependencyAnalyser-UI-TabtestCheckChildrenActionstestRemoveDuplicatestestTrivialMethodstestForceToPaddingStartWith beforeHookstestPragmaAfterBeforTemp asFourCodetestAdditionInIfAbsentPuttestNewLineBeforeEndBrackets testMultiline8testWordsAwareIteratorFiltersByASingleWordFindingNothingtestLayoutWithSlotsEqualstestSuperiorWithIntegertestHasTemporaryVariablesBlockdays'testMonospaceDoesNotTreatNestedElementstestPlaygroundWidenOnSelf&testFillingWithClassesFromOneHierarchy testPassingByReferenceAStructInCSystem-NumberPrintingtestIsAbsolutetestOnForkSplit*testIdentityKeyAtExistantValueReturnsOkKey testContinueDtestBestNodeForSecondInstanceVariableSelectionShouldBeSecondSlotNode'testANegativeIntegerCannotBeAPowerOfTwo addNoSort:Sindarin-Tests testByteAtnextestNestedStyles'findSubstring:in:startingAt:matchTable:testRowSpacingtestPointersToCycletestOneMBAllocationdayCount%testWriteInGivenContextShouldIgnoreIttestResponsibilityEval#testIdentityIndexOfIAbsentDuplicateeitestNotifyBreakpointAddedoddtestIsRegExpValidtestBasicGetLarge,testTerminationDuringNestedUnwindWithReturn2testRaisedToIntegerWithFloatstestNestedCommentstestLiteralCharactertestAndtestUTF8EncoderWidetestInitializeQueueWithJobs testReplacetestRepositoryUrl!testBlockWithParametersASTMappingtestDependentPackagesSizeUnifiedFFI-TeststestSimpleOneDelay subtractDate:FreeType-MorphictestUnifyTraittestRemoveLeaf2testBrowseRuletestKeywordOnTheSameLine2piCursor%testCopyForBehaviorDefinitionPostCopytestNilIfNotNilReturnsNil6testCallbackInSingleFunctionUsingSubclassOfFFICallbackbyteSizetestExampleWhileWithTemp KeyNameTabletestFutureExecutestestStylerDefaultDtestWorkerProcessInstancesAreCollectedAfterStartingAndStoppingWorkermergeSortFrom:to:src:dst:by:testImportAMethod Fuel-CoretestMaxLengthTruncatesText testMcPackage%(testIncludesIdentitySpecificComportement%testDifferenceWithNonNullIntersectiontestContinuationExample1testBuildClassTraitsAPI generatorfromCharacter: dayOfWeek:testPredecessorstestResignalAsUnwinds testAttachTotestDuplicateClassErrortestIsSeparator testWithRB8testSuspendForSnapshot testTraittestHiddenFilestestCreateBuilderWithNil testIntegerstestAsSlotCollectionoptionInlineMetaObject joinUsing:testJumpOnEndOfSourcetestAddTraitSettingPackage testNoLegendtestPushLiteralConstantBytecode"testCopyNonEmptyWithoutNotIncludedlastCuttestUnsubscribe twoArgBlock testPositionKtestBeginsWithFilterDoesNotFetchTwiceIfTheFilterIsARefinementOfPreviousTexttestDrawingWayOutside5Object+testSearchForExactCaseSensitiveStringSucess-testMergingNestedRectanglesReturnTheContainertestPipeEscape testInputfilewithIndexSelect:(testLoadNotExistingClassNameForRealValueAtestIsAffectedByChangeOfSuperclassMethodWhichIsAlreadyImplementedtestEmptyCollectionIsAtEnd&testOpenDefaultOnNonExistantFontFamily)Calypso-SystemPlugins-SUnit-Queries-Tests(testStoreAndPopTemporaryVariableBytecode oldSubstringstring OSWindow-SDL2testIsFirstElementNiltestIsImmediateObject/testInsideTriangleWithWithtestDecodePlusAsSpacetestMouseDownFromMorph&testRetrievesStateOfAllNavigationViews testModels*testCaretInBetweenTwoWordsHasNoWordAtCarettestEscapeTripleBoldMenuRegistrationtestArrayBindingsWriteGlobalstestSegmentFromPointstestComputeBandwidth testAllSlotstestSimpleReporttestFindContextSuchThat1testLookingForStoreDiskLowercaseReturnsThisMethodtestPrintingTallyUninitializedtestPresenterTakesRightHeight%testStoreIntoReceiverVariableBytecode characterBaselineOfRefactoringFreeTypetestPrioritySetAfterStarttestNestedLevelcopyWithoutAll:testBasicNewKernelDensity1testLogLocatorNumberOfTicksIsOkWithReversedDomaintestBuildVariableHeuristic2testConvertingWithNewBasisShouldKeepMetaLevelScopetestExtensionSelectorsForClasstestPrintBreakpointItem!testWhichSelectorsAccessFindSlotstestUnaryTooLongArgumentremoveAllSuchThat:testSwapStartAndEnd'testCanBeEnumeratedForGivenClassAndUser$testOrWithLeftTrueShortcircuitsRightrcvrtestInitialButtonDownIsDisabletestAtAtIfAbsentPut8testClassVariableDoesNotDuplicatesSubclassesOfSuperclass!testConvertingWithNewBasisObjectstestBreakpointInitializationtestLinearLocatorDataIsOkcapacity contractTo:split2testHeuristicBuilderForTwoHeuristicWrapsNonWrappertarget&testBestNodeWithValidSelectorMidSource)testDuplicateClassPreserveSharedVariables testRemoveOnem valueArray isOctetString-testConvertingToReducedScopeByExtraClassScopetestOldBackOnPosition1testResolveTempPathFromTMPNewTools-WelcomeBrowsertestIsBaselineNameCollections-Strings-TeststestIncludesAssociationNoValuesplit:testKeyUpFromMorph&testDefinedClassesAndDefinedClassNamestestPrimBitShiftworkingDirectorytestAstestConvertingToAsyncQuerytestReplacePresenter testPrimEqualtest05addBeforetestAnnouncerSuspendingtestMarshallingTrueReturnValue#testNoExtraSpaceArroundParenthesis2testIncludeInstancesFromAllAnnotatingMethodsOfAnyClassInSystem testclassThatDefinesInstVarNamed;testCustomizationWhenChangeCollectionOfPreviewerShouldBeSetpasHextestInBlockTempShadowingtestLocalVariableMetacello-TestsCoretodaytestAddBeforeAndRemovetestEndClosesCompletionContext.testInferVariablesWithNoInitializeFindsNoTypes#Calypso-SystemPlugins-Flags-BrowsertestCompileFulltestBehaviortNamedIndirect&testLastFilesForExtensionBrokenPatternNumberParser-TeststestConvexHullOntestBreakpointsForModeltestLiketestComposeMethodText nextIndexprintStringBase:nDigits:OpalCompiler-CoretestIncludeSelectorOfClassFFIMethodRegistry!Calypso-SystemPlugins-FFI-QueriesJtestSubstringFilterDoesNotFetchTwiceIfTheFilterIsARefinementOfPreviousTexttestTransformations postambles'testTruncatedToSizeResultHasCorrectSize'testComparisonOfFunctionsDefinedByBlocktestRemoveOneOfThree OmDeferrertestGpsExample2@testBestNodeWithInvalidPlaygroundIncompleteMidSourceThenBrackets3testIteratorOnACalculatedCollectionReturnsOnlyFirst argumentstestExtractSetupExample5 testMerge8testPngDecodingColors8testIsOfflineFalseprintShowingDecimalPlaces:*testWithoutClassesRemovesClassesFromSendertestIntegerHexisControlOthertestPrintWithDelimitertestClassWithClassSideImpacttestStepToImplicitReturnNewTools-SystemReportertestChangingPcAssociatedToMethodOrSequenceNodeKeepsStackAsItIstestKeywordOnMultipleLine12+testWithRightDoesNotProduceInvalidRectangleClap-CommandLine6testDoesNotApplyForMethodNodeInContextWithNoSuperclass<<testLogLocatorDataIsOk$testLogLocatorDataIsOkStartingAtZero indexArraytestOldDefinitionFile testBlue8testClassEnvironmenttestIncludeClass#testStringWithoutInitialCommentFrom testTempNamed testSkipToPCrightafter:testHasChildrentranslateToLowercaseMorphic-Widgets-ExtracopyReplaceAll:with:$testBuildVariableUndeclaredHeuristic testMatrixisSpaceSeparatortestUTF8EncoderAuto&testJumpOnIfTrueIfFalseAfterCompletiontestVeryDeepCopyWithtestIsNotAbstractSystem-Changes testGoodPathRemovingNonEmptyLeaf)testTabIndentIsNotAffectedByNumberOfSpace testPopToptestVennDiagramTwoSetstestCodeCreatesInnerText digitAt:base:testLinkItalicAPIToAccessText testAtWrap testFindLast growAtLast substringstestShouldAcceptFloat testComponent+testEnvironmentIsCreatedWhenTagDoesNotMatchtestPackagesOfClass*testIndexOfSubCollectionStartingAtIfAbsenttest4BitColors test02addLast5testFutureSuccessCallbackIsCalledAfterValueIsDeployedtestJoinArrayUsingChartestJustTheArguments_NoDefault0testAccessingArgOfOuterBlockFromAnotherDeepBlocktestUTF8EncoderIncompletetestBeforeIfAbsent lastValueMonticelloTonel-Tests testFileName.testBestNodeWithInvalidPlaygroundParsableErrortestPeriodAtEndOfMethode"testFalseOrAnythingReturnsAnythingSystem-Localization-TeststestAssignArgumentVariabletestSearchPath1testsourceCodeTemplateFortestContinuationExample2System-CommandLineHandlertestRechainPreserveListtestLeftTopAligned&testSerializationWithFuelMaintainProxytestCompileEmpty testReadFrom testTagOftestUsingClassesBaselineOfQualityAssistanttestMethodContextPrintDetailstestIsExecutedFromMultipleScopetestWithWithWithtestBoxPlotCreatedWithDatatestSteppingReturnSelfMethodtestHasBody_notinitializeRed:green:blue:range:AtestConfigureContextWithDoesNotUnderstandShouldMarkContextAsErrortestIfNotNilIfNil0ArgSpec2-Examples!testAnchorReferenceWithoutClosureoptionConstantBlockClosuretestJumpOnCascadetestEditClassScopeRemovingClassProfStef-Tests testHasBodytestHasNonDefaultValue_DefaulttestInexactSqrttestCopyFromToWithForSorted*testTrueIfTrueIfFalseReturnsTrueBlockValueSpec2-CommonWidgetstestSortedUsingBlocktestLoadNotFoundMicrodown(testWhenItOverridesSuperclassAnnotations*testBlockWithArgAndEnclosedBlockSourceNodeeqv:)testLogLocatorRaisesErrorWithNegativeData,test0FixtureAsSetForIdentityMultiplinessTest&testAccessingMultipleVariablesInVectortestDisplayStackSizePharoDocComment-TestsRefactoring-Critics-TeststestDetectSequencedtestInstantiationtestNoExtraSpaceAroundPeriodtestfindCyclesmapClasstestScanAllSystemDisabledtestGetMeanOfDatasetSizeOneszfindBinary:ifNone:sYtestMaxExactIntegertestRemoveProtocolAnnouncement2testFileOutSingleClassRemoval%testBecomeForwardDontCopyIdentityHashtestParsingFromVersionString=testWhenCustomizeFilterShouldFilterDropListPresenterIncludeIt Manifest-CorepeekBacktestInstanceVartestCopyEquals testCriticaltestCountBehaviortestCleardependencies testAsBagtest1BitDisplay)testParentResolutionWithAbsoluteReferenceRottenTestsFindertestCopyWithout6testReplaceTokenWithCaretOnEndOfWordReplacesEntireWordtestCreateNormalClassNamedtestColumnsWithChildrentest4BitDisplaytestTransformReturnASubAreatestSimpleTwoDelaystestReturnFalseBytecodetestalltestWithAllMissing+testLayoutChangeShouldAnnounceClassModifiedtestSpanColumn testPlusMinusLessThanGreaterThantestDuplicatedInstanceVariabletestFaultyScripttestAddProtocolAnnouncement2BeautifulComments!testTwoConsecutiveEscapeCharactertestConvertFromIntegertestHexDumponmax#testRetainBlankLinesBeforeComments3STON"testDoesContainReferenceFileSystempiecesCutWhere: listClasstestExtractSetupExample1#testLazyClassVarReadReflectiveBlockasOpenIntervaltest32BitDisplayEpiceaBrowsers-Tests testWithRB6 emptyCheck testUploadtestNonActiveBlockContextHome&test0FixtureSequencedElementAccessTest@testChangingPcInTheMiddleOfStatementSkipsTheBeginningOfStatementacctestCriticalIfError,testPostCopyMethodNeedsToBeInCopyingProtocoltestExtraIndentInParentheses testRemoveClassRemovesExtensions Jobs-TeststestRenamePackage asByteArraytestMergingOverlappingRects+testMissingPeriodSeparatorBetweenStatements!testEnsureDeleteNonEmptyDirectoryGlobalIdentifiertestNameWithDelimitertestEnvironmentFortestKeywordFormatReceiver2testStepOverFinishedExecutiontestDoDrTests-TestsProfiling-TeststestImportString>testMoveMethodFromExtensionToClassicProtocolAnnounceRepackagedseconds testIfCutDoWithCutAndUncutsNoCut testLabeledtestOnForkErrorReturnsNiltest32bitRoundingMode testSqrtFloortestNodeForBCOffsetTestFull"testCopyReplaceFromToWithInsertiontestOrganizationDefinition/testReadIntoStartingAtCountFromStreamWithOffsettestComposePromptWith5testGetShapesFromRectangleInCompositeWithChildOutsidetestBasicCollectThenDo testFileNamed,testIteratorOnACollectedCollectionIsFiltered#testShouldGetUnresolvedDependenciestestCanBeEnumeratedRottenTestsFinder-FakeTests+testSlotAdditionShouldAnnounceClassModifiedMicrodown-TeststestIncludesKeyLocalyDefinedtestIsExecutedFromEmptyScope(testConvertingWithoutExistingBasisObject+testNewScopeFromASinglePackageAndItsClassesisInsideRectangle: testSortUsingGofer-DeprecatedtestIsBuiltWhenItemsExisttestRemoveAllHaltsFromMethodtestIntersectionsWithPolygontestNoNewLineAfterCascade Athens-Core testPeekBack*testNewObjectCentricVariableBreakpointItemHermesUtestReplaceKeywordTokenWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWordtestNodesForEachAndLAyouttestIfNotNilIfNil1ArgAsVar/testSingleRemoteDifferentBlocksSameArgumentName testDigitSumtestNodeCoverage2$Calypso-SystemPlugins-Traits-Queries GreenShift!testFutureZipSuccessIfBothSuccesstestNonResumableOuterRoassal-Animation-Tests testCaption,Calypso-SystemQueries-Tests-PWithSingleClasskeyFromCharacterTable milliSecondstestEnvironmentStubseventestNewLineAfterTemporariesBaselineOfNumericScalestestCompiledMethodClasstestTraitNamed testSameModeltestIfModifiedSinceNotModifiedRefactoring-UItestHasMethodsAtestEvaluateWithBindingstestUpdateShape"testUnmatchedExpressionParenthesistestCoordinatestestSelectShapes initialize testAccessingTempsVectorInBlock3testSelectThenDoOnEmptyreversedtestBasicWithCallbackstestGetBindingsItemsForMatchtestAdoptQuerytestAddressesAndNamePairsIntestShapeHasShadow3testInstanceCreationMajorMinorSuffixBuildCommitHashtestMarkBlockPointBlocktestDefinitionWithSlotstestLazySlotPrinttestByteArrayEmptytestHeaderLevel1!testDoItRequestorReadRequestorVartestPrimDoWith"testSkipUpToNodeStopsOnReturnNodes,testLiteralsEvenTheOnesInTheInnerCleanBlocks testAssert(testBestNodeWithValidCascadeMidStatementaddAll:testIsChildOfPath!testClassNameWithInvalidCharactertestStoredSettingsIsNiltestCreateNormalClassSuperClass)testResetRestartsIterationOnTheCollection STON-TeststestShallowCopyEmptytestExpandedProtoObjectClasstestImmediateClassIsImmediatetestMultiplyByArray*testSearchForRegexpEndsWithCaseInsensitivetestLocalMethodstestBackwardCompatibility3testAddAlreadyThereDoesNotCount rejectBlock2testCancelCompletionInClassWithDynamicExtentLogsIt testParenttestExpressionReferencingSelffactortestStoredValueForSettingtake$testSearchingVeIncludesSaveAndSaveAstestColoredNodesForEach/testShallowCopyMethodNeedsToBeInCopyingProtocol9testHeuristicBuilderForSingleHeuristicLastIsNullHeuristic testCodeBlocktestHeaderWithItalic testToCount3testMethodPackageOfRemovedClasstestTrueIfTrueEvaluateBlocktestFromSingleClasstestFoldersOnly'testBuildVariableClassVariableHeuristictestAddProtocolat:put:testDegreeNumber Files-PrompttestAssociationsSelecttestReverseUnevenDotestAddAfterIndexjoinUsing:last: test0FixtureDictionaryAddingTesttestFocusRotationBackwardstestMultiProcessWaitOnSameDelaycombinations:atATimeDo:testNotTheSame isAllDigitstestKeywordOnMultipleLine8testIsMessageSend;testCreateUndefinedClassShouldCreateNewClassThatIsUndefinedSpec2-Adapters-Morphic>testMoveToNodeRaisesErrorWhenNodeIsNotIdenticalToANodeInMethodtestCalculationOfHighestUpdate'testSecondScriptShouldNotBeChildOfFirsttestAnnotationWithParameters testAverageYsurroundedBySingleQuotestestAllNamedIn7testDTTestCoverageResultTheSecondNodeSubResultsAreLeafstestPackagesDiffToDisplayBistestIfEmptyifNotEmptytestWriteAndRead printFormat:testHasZeroPriorityByDefault"testSingleQuoteBlockFollowedByList$InitializePackagesCommandLineHandler)testClassOrTraitNamedReturnsNilForGlobals arrayTypeDrTests-TestCoverage-TestsselectEverySecond testDebugAPI fromString:ifEmpty:testEqualBlockEqualitytest4ViolinsAnd2Clustersmerging:testDottedMajorMinorPatch*testNonOpenPresenterDoesNotRaiseBuiltEventTool-Profilers!testNextVersionAlphabeticFilename testWithRB93testWordsAwareIteratorFiltersByASequenceOfCamelCaseBaselineOfMisc Tool-BasetestIndexOfStartingAtDuplicatetestOneHitTwice testSelect#testWorkerPoolDoesNotExceedPoolSizetestAllButFirstNElementstestStylerSpineRed Tool-Registrytest3+testCreateSubclassOfNilCreatesSubclassOfNil isCasedLettertestUsedTraits testDigitAth:s:l:,testReturnsInstancesFromAllAnnotatingMethods testPrimAttestWithBottomtestIsDictionary key:value:testLiteralIntegertestDoItRequestorShadow!testFourBackQuotesOnMultipleLines testInstSizetestJumpOnSelfexampleNonSpecialLiteralIntegerBaselineOfBasicToolstestMessageText(testGettingSingleAnnotationUsingSelector Zodiac-Extra at:at:put:BaselineOfDrTests"testMakeRelativeFrom2RelativePathstestFormatBody$testCopyReplaceAllWithManyOccurrence byteIndexCollectionIsEmpty$testFileReferenceExtensionMethod_dirtestCanBeEnumeratedForGivenUserArithmeticErrortestOrdinalScaleRangeBands/testBroaderFilterCompletionShouldBroadenResultstestNewLinesAfterComment2overlappingPairsCollect:testBreakLinkOncetestAssociationAtIfPresent testNextShouldReturnFirstElementtestClassWithClassTrait testPeekLast/testDoesApplyForMethodNodeInContextWithNilclass testMergingOverlappingRectangles toUppercase:j-testFirstBcOffsetForNodeWhenMappedPcsAreEmptytestStripNTabstestHeaderLevel4WithBoldincludesSubstring:a1a1testCopySameClass reduceRight:testBaselineOrConfigurationNametestMoveDownInStack testSortBlock bytesymbolOtestMoveToNodeWhenNodeIsInBlockThatCreatesContextAndBlockHasBeenCreatedBackwardinstructionStream$System-BasicCommandLineHandler-Tests9testBuildPresentationWithFailureShouldReturnCodePresentertestHashBlockEqualitytestSumUnsignedShorttestAssociationAtError testWithRB4testBreakpointOnAllTempAccessestestSystemIntegrity&testBlockWithTempReturnsLastExpressiontestIsOfflineAndResourceFound0testBuildWidgetPresenterWillSetPresenterPropertystring2testProperRemovalProtocolIsUsedtestAddIncludesSizeReclaim,testClampReturnsSameNumberIfBetweenMinAndMaxtestReplaceWithSpaces2$testIsExecutedFromConcreteScopeClass-testFutureSuccessCallbackExecutesInNewProcesstestRepeatWithTempInBlock*testWhenDeclaringMethodNotReturnAnnotationtestContentsInsideSubFolder/testExplicitNotificationRaisesEventWithNewValuetestPositiveIntegerPrintingtestUnmatchedBraceArraytestExampleSimpleBlockArgument2testChar.testStClassProcessorIsRemovedAfterUpdatingTexttestFormatMultilineMessagetestInt8 substrings:testFirstBCOffsetTestItestAsFileLocatorOrReferenceReturnsALocatorWhenStringRefersToAKnownOrigin*testFutureCollectFailsOnFailingMapFunction+testClassOrTraitNamedReturnsClassForClassestestUnsignedInt8sixth!testCreateTraitWithoutOtherTraitstestUpTotestSpaceAroundPeriodxzwithSeparatorsCompactedtallyred!indexOfAnyOf:startingAt:ifAbsent:testMinimizeWindow testMaxSizetestNotSelectsNotFFIMethodKeymapping-SettingstestExampleTempNamedPutCopying3 testLimitHeuristicCompletion-TeststestLogLocatorNumberOfTicksIsOktestPngEncodingColors8printElementsOn:testAssignGlobalVariabletestExpressionNoAssociation2testAnonymousClassAndSelectorxa Text-Core asInteger:testBestNodeForClassVariableSelectionShouldBeClassSlotNodetestDefinedVariablestestSubclasses testPlainNextisSortedtestBadInstantiationtestAccessStrategytestBinaryMessageComments testCritiquestestSetErrorMargintestUpperPoint)testOnceParsedCurrentShouldBeTheRootblock testUpToAll testPragmas#testTerminationDuringNestedUnwindB1BaselineOfShoutv1 ZnLogEventtestOneMWordAllocationtestPrintingBold2'testLookingForStoreDiskReturnsDiskStore*testNoNewLineForBeginingOfATooLongArgumentZinc-Resource-Meta-CoretestOpenAllOnUnloadedFontFamilytestHugeIntegerCloseToxy4testTraitAliasTargetSelectorShouldBeExistingSelectortestUTF8OverlongtestResumableOutertestOpenAndClosePresenter testTAddTwice"testRevertingAllRedefinedInstances@testWorkerPoolDoesNotExceedPoolSizeWhenSchedulingTasksInParallelindex testWithPopuptestLiteralIsInLiteralFrametestDetectEncodingtestTwoArguments+testBlockParameterWhenTheLineWillBeTooLong2testScanAllSystemEnabledtestInsetRectangletestNoNewLineBeforeCascade#testOpenPresenterRaisesDisplayEventtestEmptyArraytestTwoEventHandlersAreAttachedyyyymmddwithAll:testWatchVariableWritesInClasstestRoottestReferencesToAClassInBlocktestIdentityIndexOfKeytestThreeHitSameOnetestGetMicrodownParsedText testHasIcon*testForbidCreationOnScopeWhichNotSupportIttestUnaryMessageCommentstestPrintPathOn!testAndWithLeftTrueEvaluatesRighttestPngWriteReadUsingFilestestRemoteTempInVectortestFullSpectrumtestSetMovieDirectorInvalidisBytes/testSmartQuoteSurroundsDoesNotEscapeDoubleQuotetestIsNotRelative6testOptimisedPlusSpecialSendsMessageDoesNotCaptureSend+testCommentOnMultipleLinesWithASingleMarkuptestAddingPackage$testAnyOneWhenAllContentsWasGarbaged|testSpaceBeforePeriod=testExplicitRequirementMethodsShouldBeImplementedInTheirUserstestSumNumberstestAnEmptyRectangleHasNoAreatestEmptyOnMultipleLines3testWithExtensionAddsExtensionNameContainsExtensiontest0FixturePrintTesttestTallyTreePrint,testFalseIfFalseIfTrueReturnsFalseBlockValueNautilusRefactoringtestFlatCollectAs testAtPin!testIntersectionsWithVerticalLine lastIndextestAllRunningProcessestestTwoArgBlock lastIndexOf:JenkinsTools-ExtraReports*testNotAffectedByChangeOfNotAbstractMethodoriginalContents testBasename asOctetString2testItalicsAndNestedBoldsWithClosureAfterOpenBolds!testDegreeCosForExceptionalValuestestSchedulerTerminationtestRemoveElementFromEmptytestStepToReturnWithHalttestEnableDisabledHalt testHasBindingThatBeginsWithSlottestStringExtensionMethodclasserror: lightness/testConvertingToIncreasedScopeByExtraClassScopetestFindGIFPreviewersignBittestInitializedSlotUpdateClass/testNewLineBeforeFirstKeywordDoesntAffectBinary*testNonDuplicatesRemoveDuplicatesWithThreebasenametestVerticalBar testBmp8BitasSymbol+testSubscribeBlockWithoutParametersIsCalled testInclusion SUnit-VisitortestSelectionStoptestVariableWordClassIsWordsNewTools-Inspector-Extensions aCharactertestUnaryNoExtraSpacesBeforetestWhileWithArgSystem-FileRegistrytestEqualBlockorangetestDeleteAllChildrentestBreakpointOnClassVarWritestestConstructedClassEnvironmenttestKeywordOnMultipleLine11Unix64.testInstallSimplePoint27testClassWithSlotHasInitializeMethodWithInitializeSlotstestSimpleCreatetestShouldQuitasOrderedCollectiontest2BittestNewTraitExlusiontestFillInTheBlanktestCulltestByteDecodingtestWriteSectionTitleOntest4BitReversed noneSatisfy: asCommaString testNumbers$testStoreShouldNotCloseBackingStreamspecies$testUndeclareSlotFixWhenSlotIsLoaded testAtWrapPuttestCompileSource contextClass testMetaclass&testFillingWithOnlyClassWhichHasTraits testBenchFortestMaxLengthIsNegative testSeparatortestGrowWhenNecessaryclosetestChildOfReference:testMessageSelectoraddLast:6testSingleLevelListStartingWithoutSpaceSplitParagraph2testHasTemporariestestFigureWithParametersBtestAcceptEntryLogsAverageTypedCharactersDoesNotAffectOtherIndexestestScaleLinearisFloatSpec2-Code-Diff!testFigureWithParametersWithBlanktestOnceBehaviortestStoreSettingNodeTwice testStoreIvartestPackageOrganizerCollections-Arithmetic"testCreateVariableByteClassWithAll-testIteratorWithSingleElementIsAtEndAfterNexttestRegisterSubRegister minElementtestHasEntryNamedtestReflectiveReadWriteBlockfoundIdx testOptionAtDebugPoints-TeststestPseudoVariableShadowing!testNoTraditionalBinaryPrecedencetestDoesNotDisplayEmptySlotstestBuildingGroupstestSign!testDoubleArraysHaveCorrectLayouttestChooseDirectory testPrimValue testDepthtestFalseIfTrueReturnsNiltestDeclareGlobaldetect:ifFound:ifNone:testKeysAndValuesDoEmptytestLazyClassVarCompiledtestAddBoxPlotsReturnsNewCharttestEnsureEndsWithHiedra-ExamplestestAddRemoveVariableBreakpoint2testAccessorInstanceVariableSlotGeneratesAccessorsisDecimalDigitSystem-LocalizationatWrap:testReadingFromContext testAliastestFillingWithTraitAndItsUsers MonticellotestLabeled04HasModel testGrouptestReadEvalPrint isIntegertestIndexOfIfAbsent>testWorkerInstancesAreCollectedAfterStartingAndStoppingServicetestExampleSlotWithFluidAPI-testBlockWithTwoArgumentReturnsLastExpressionvalues0Calypso-SystemPlugins-Reflectivity-Browser-Tests endsWith:testContainsLocator at:putNext:collect:from:to:testMethodTemptestPackageAdditiontestTraceForDisabledHalt associationtestMathBlockWithBadClosure,testSubscribeToChangeRaisesEventWithNewValuetestJumpAheadTo testImageCollections-Sequenceable-TeststestDefinesSlotNamedtestOneArgumentWithGC testArgumentstestCollectAsWithParenthesisnewFromKeys:andValues:testIfNilIfNotNil Epicea-TeststestSizeUnsignedLongWindows testFileOutMultipleMethodRemovaltestProperClassTagCasingtestAnnotationsWithoutClosure CPUWatcher%testFourBackQuotesClosedByThreeQuotesHtestReturnExtraSpacesInIndentWhenMultilneWithThreeSpacesAfterCaretSymboltestOriginalNametestPrintingRecursiveLimitedWriteStreamwith:with:with:with:testReadStreamDoifAbsentNotReflectivity-Examples2testHandlingWhenThereIsSomeExclusionButDontAppliestestDictionary asDictionarytestParseColorVariabletestEnvironmentWithCodeBlock testAtPutNilnextChar,testClassifyUnderExtensionFromTheSamePackagetestNoPackageNameEndsWithTest named:ifNone: testChildrentestWatchTwicepaddedWith:do: testIsFiletestEmptyClassWithMethods testPrimQuo&testAccessingVariablesInOptimizedBlocktestAllReferencesTo3testNarrowingReturnsSameElementsThatCallingDirectlytestCreatedClassWithAllElementstestSenderOfASelectorInBlocktestDataMatrixShouldNotBeEmpty*testPNGPreviewerCanBeUsedOnParameterStringtestTAddasSettestExtensionClasses#testNewWindowDefaultsIsNotMinimized testVariableDefintionScopeUpdatetestKeywordOnTheSameLineasBit Roassal-PietestOneNewLinesAfterSignature#testJoinArrayUsingOrderedCollection testIsPrime2HtestWorkerProcessInstancesAreCollectedAfterStartingAndStoppingWorkerPoolFonts-Abstract asCharactertestWithOutgoingLinestestSpawingNewParagraphtestEncompassingRectangletestSimpleEnsureTestWithUparrow testWithDotestNodeDistancesTotestChangeRemoveOnetestDiffFromTotestGrowDoublesCapacity testVisitHttpInput_WithReference Regex-CoretestPrintingBold(testBreakDebugPointOnClassVariableAccess7Calypso-SystemPlugins-InheritanceAnalysis-Queries-Tests repeatedWritetestSortedCounts testReadNodestestSuperclassChangeLayoutTypetestIntersectionsWithEllipsefold:testVisitFileImagetestSplitStringOnChartestCompatibilitytestDrawingWayOutsidehelloabtestnewSizeAfterUpdate.testMethodOverridingTraitMethodIsKnowByPackageasFloatMicrodown-RichTextComposertestGrowPreservesElements readWrite testBmp32BittestCanUnderstandInSubclassisPrime-testComparisonOfSimilarQueriesWithEqualScopestestSharedVariablestestCelltestAsStringOnDelimiterEmpty"testSearchTextChangeSelectedShapes!testNoUnusedInstanceVariablesLeft factorPoint4testBestNodeWithInvalidPlaygroundIncompleteMidSource secondKey.testWorkerExceptionIsHandledByExceptionHandlertestPushReceiverBytecode+testInstanceVariableNamesMetaclassInterface-testSearchForExactCaseInsensitiveStringSucess#testTempNamedTempCopyingNestedBlocktestInjectInto testBlack8testCostestCullCullCull System-ModeltestSelectNone testSendTomaxValBaselineOfMicrodowntestMathBlockOnMulitpleLinesOrderedDictionary2testMoveClassInPackageWithExtensionsOnClassAndBack#testInvalidNameFollowedByAValideOne$testMultiplyByArrayIdentityTransformtestEmptyCaseStatementtest16BitDisplay:testClassWithUndefinedSuperclassNameHasUndefinedSuperclasstestPushGlobalVariabletestInstallExceptiontestIsRelative testBitAttestSingleLevelListtestLoadErrorMicrodowntestDangerousClassesConditionstestConstruction"testTrueAndAnythingReturnsAnythingtestSetFontSize7testFixedLocatorNumberOfTicksIsOkWithCollectionTooLarge namedColor8testBeginsWithFilterReturnsValidResultsWithTheSameFilteralike:%testAnnotationWithParametersWithBlanktestRemovePasswordProtection.testSkipToPcDoesNotLoopWhenAimedPcIsAfterEndPctestTantestExpression%testClassModificationWithClassRemovedtestTraitPlainSimpletestBecomeHashoptionInlineTimesRepeattestHometestWithNullElement(testInBlockTempInstanceVariableShadowing testBmp4BittestWithParentsOnRootReturnRoot testSiblings6testCanStillExecuteWhenAimedNodePcIsBeforeInAnyContexttestSimpleDefinitionWithSlotstestAPIFromBlock1testRemoveMessageArgumentCommandIsProperlyStoreOntestExtensionDependenciestestRedundantProtocolAddition testNoChangeInClassSlotsDetectedtestPatchContentstestNotchBasictestHasRequiredResultByDefaulttestAddAllFirsttestCompletionAfterKeyword testMethod testGetNewTabtest0TSizeTestflatCollectAsSet:&testPrintPathOnDelimiterOnNetworkDrive8testNegatedFilterIsNotNarrowThanANegatedWithANonNarrowedtestOneRaisedToInteger findFirst:testSuperSendWithtestTenThreadSafetestCustomFocusOrdertestCopyWithSequenceable testIsRunningtestComparisonOfFunctionstestNewPackage'testRenamingProtocolToMakeItAnExtension%Calypso-SystemPlugins-FileOut-Browser testIsNotRoot,testChangingASharedPoolUpdatesCorrectlyUsers testGetQuartilesOfOddDatasetSizeRoassal-Mondrian,testClassDefFromLegacyStringHasClassNameNodetestWithAllChildrentestIndexOfBug1602 testHasNonDefaultValue_NoDefaulttestSpaceAfterComment*testDetectNoChangeBecauseLogFileWasDeletedcc: testWithWith8testDictionaryConcatenationWithCommonKeysDifferentValues testEntriesFileSystem-PathtestWriteStreamifPresenttestSelectsAbstractMethodtestSubclassInstVar testSelectAllRefactoring-Environment-Tests#testTryingToModifyReadOnlyInstancestestIsHiddenWithRealFilesystemDrTests-TestsRunnerKernel-CodeModel testNewPersonadaptToCollection:andSend:testExactNthRoot testNewSlotDebugger-Oups-Tests2testPackageOfNonExtensionMethodIsPackageOfTheTraitdtestServeStaticFile$testInstanceDefinitionIsInstanceSidetestExamplePrimitiveErrorCode aByteStringRing-OldChunkImporter test0FixtureAddForUniquenessTesttestMetaclassSuperclass*testFutureExecutesInSameLocalProcessRunnerbefore:testSequentialAnimationCreationleft-testNextNextShouldReturnSecondExpectedElementtestCreateImmediateClassWithAlltestwhenTextChangedDotestSystemWidetestExampleIfNotNilReturnNil)testRegisterPackageConflictWithPackageTag#testCreateClassWithTwoPropertySlots testAtPutDict'testEqualSignForSequenceableCollectionstestTraitAliasextensionDelimitertestResolveAbsolutetestSuperiorOrEquals testAsGLinetestAddTextPresenterDecoratortestSequencedTimesRepeat/testTypeCharacterWithoutResultsNarrowsSelection"testDeleteAllWindowToLeftOfAWindow testTheta testArcTan position:testCallbackInLooptestWriteTwicePolymorph-WidgetstestValueWithExitContinuetestRepositoryFallback"test32BitOpaqueBlackIsTotallyBlacktestPrintOnDelimiter!testMoveUpInStackFromFirstElement*testHashMethodNeedsToBeInComparingProtocolminimumtestSettingCompletionFromEditorHtestRemoveProtocolIfEmptyWithNonExistingProtocolDoesNotAnnounceAnything2testPushThisContexttestEnableDisabledBreakpointtestWithWithWithWithtestExampleEmptyMethod>testLocalProcessTaskRunnerExceptionIsHandledByExceptionHandler privateBlue testEqualsto:by:ColorPicker-Tests#testTerminationDuringNestedUnwindS2testDeepMultipleLookuptestPushConstantFalseBytecodecollect:thenReject::testMethodCategorizedInSameClassicProtocolDoesNotRepackage testWithTitle aSubstringMorphic-Widgets-FastTablethistestHasVersion testIfTrueoffset'testArrayedCollectionWithPoolDictionary**FreeTypeSettings"testMethodPackageFromObsoleteClass"testCanCreateFileRepositoryFromUrltestReceiverWithGC optimization)testEqualSignOfIdenticalCollectionObjects?testCaseSensitiveFilterIsNotNarrowWhenTheInternalAreNotNarrowed/testMessageSend_conditionBlockProducerMethodAST9testAddMethodByUsingATraitDoesNotAddTheMethodToThePackagetestWeakClassVariableIsWeak newLastIndex indexOfAnyOf:testBoxGraphHasScalesput:asJsonOnStream:testDoItContextReadIvar testBooleanAt-testInstallClassNameWithUnknownSuperclassNametestDigitLength*testNotSimilarToAnnotationOfDifferentClass5testFalseIfFalseReturnsBlockValueWithTempOutsideBlocktestNextOrNilSuchThattestNewVariableWordClasstestChainBehaviorHitWithContext testNamingtestVariableByteClassIsBytes&testRemovePropertySlotWithTwoInstancestestPushConstantNilBytecodeCollections-AbstracttestGifWriteReadUsingFilestestHasPasswordSettestWithEdges2testSliderMouseDownMakesItDragtestAsLowercaseBasicAsciiRangeNonInteractiveTranscripttestAddTestSlottestNewselect:thenDo: testFloorLog2testSelectIsNotShallowCopy5testClassWithClassTraitCompositionHasTraitComposition testIsRoot"testExampleMethodTempInNestedBlock testBlack16testRemoveTraitMethodtestFutureZipFailsIfFirstFailstestDetectIfNone"testHasNonDefaultValue_AndSomeArgs:testMoveToNodeWhenFromNonInlinedEmbeddedBlockToHomeContexttestReplaceFromToWithStartingAttestEscapeMonospace testsEndsWith testMerginguptestTokensInAsciitestPropertyValueAtPuttestContainsPointInComposite#testMultipleDocCommentsInOneCommenttest4testConvertingToInheritedScope8testLocalMethodsOfTheClassShouldNotBeRepeatedInItsTraitstestWhileTrueExecutesLeftBlocktestPathConsumptionNewTools-Inspector-Tests&testExtensionClassesWithCompiledMethodtestTransformingDeprecationtestNoStepIntoQuickMethod"testExampleWhileWithTempNotInlinedtestPushNewArray,testMoveToNodeWhenNodeIsInIfTrueIfFalseBlocktestNoExtraSpaceInsidebadVariableAndScopestestBreadcrumbs test2Classes testHeadCell#testSelectionInFontStyleListIsKept2testAllButFirstElementsnewFrom: testAtUpdate testEndPoint breakpoints UnifiedFFI1testChangeBorderWidthUpdatesEncompassingRectangle testAllNamed testCoveragetestSmalltalkPrintString1testMoveToNodeKeepsStackWhenAimedNodeIsMethodNode GeneratortestsBeginsWithtestClassifyUnderWithProtocol testBreakpointOnClassVarAccesses testFromErrortestSelectsOverrideMethodtestAddSelectedCompositeGraphics-Shapes*Calypso-SystemPlugins-ClassScripts-QueriestestChildFiles%testCopyNonEmptyWithoutAllNotIncludedexampleLiteralFloattestRelativeFromStringtestConvertFromDecimalFractiontestsBeginsWithEmptytestDefaultEnvironment0testLookingForStoreDiskWithSpaceReturnsDiskStore$testMinimumNegativeIntegerArithmeticdecimalDigitAt:day testAddMany+testValueWithArgumentsWithOrderedCollectionNewTools-Playground-TeststestReplaceAllWithZinc-Resource-Meta-TeststestParseResetVariable includes:testShouldSave testFractionAsFloatWithUnderflowtestUnresolveNametestMixedSignDigitLogic2testVariableDebugPointNoRemoveAfterSubclassRemovedfromStreamWithComments:testWaitAndWaitTimeoutTogether2testSpecialGestureOnOuterMorphPutsHaloInOuterMorph Slot-TestsOpalCompiler-Tests$testOFixtureReplacementSequencedTestlowtestVerticalAttachPointtestLoadSourceFiles asLowercasetestBuildCascadeHeuristictestAnchorReferenceUnevaluated*testAtIfAbsentPutWithGarbageCollectedValueCtestRefersToLiteralsReturnsFalseWhenLiteralNotInMethodPropertiesKey testChangeInSuperclassIsDetectedtestConstructionUsingWithtestUpdateShortStackForDisplay)testFigureWithBracketInsteadOfParenthesestestDescendantsexampleLiteralWideString testTabIndent testMethods-testFutureExecutesByDefaultInGlobalWorkerPoolreject:allSentMessagestestNumberOfMethodsndtestAutoRepulsetestBuildCreateCompositeShapestestFloatRounded&testModifyProtocolOfMethodyDoesNothingtestFindLastNotIntestInstanceVariablesStringtestIsAListPlustestClassAdded4testClassAddedToNewPackageShouldAnnouncePackageAddedBtestNotAffectedByChangeOfSubclassMethodWhichNotOverridesSuperclasstestUnsignedInt32lastByteabcd testClassSideMethodWithoutImpact runningMin: testIsRight$testLiteralsDoesNotContainMethodNameDatePragmaCollectorNewTools-FileBrowser-Tests;testCaseInsensitiveFilterIsNarrowWhenTheInternalAreNarrowedtestSystemAnnouncerClass sumNumbers testAddAftertestPackageTagOfUnpackagedClasstestCodePointStreams%test0FixtureCopyPartOfForMultiplinesstestDrawingWayOutside3testCanPerformtestConnections01printOn:format:]testMathBackslashNewTools-RewriterToolstestHasLiteralSuchThattestIsEmptyFromEmptyClassScopetestPushActiveContextBytecodeFileSystem-Disk-TeststestIsObservableSlotBtestBuildPresentationWithDoesNotUndertandShouldReturnCodePresentertestUnpackagedClasses testRootEntryMorphic-Widgets-WindowstestCleanBlockClosuretestWorkerPoolStopStopsWorkerstestNewTraitComposition testStepEvent between:and:ntestSingleLevelListWithStartestSelectedMethods;testRecategorizeClassRegisterTheClassMethodsInTheNewPackagetestIncompatibleBehaviorOtestReplaceTokenWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWord2(Calypso-SystemPlugins-Undeclared-BrowsertestExampleTempNamedTempVectortestReferenceDependenciestestCollisions testReference testDatabase sortBlock: testFloats testSindarinSessionInstantiationpeekLastcopytestInsettingByNumberShouldWork2testKeepChangeWhenMethodAdditionWithAbsentBehaviortestTallyTreePrintWithTab.testsingleRemoteTempVarWhileWithTempNotInlinedtestCartesianProductDoorigin$testNonExistingStoredSettingVariabletestClassifyUnderWithNilFtestRenameClassUpdateMetaclassExtensionSelectorsInTheExtendingPackagestestNoNewLineBeforeEndBracketsHermes-ExtensionsRubric-StylingtestBasicSpaceIndentSpec2-Morphic-ExamplestestAccessingPackage#testGettingExistingClassNameBindingtestWithWithWithWithWith testTwoTraits(testCopyMethodNeedsToBeInCopyingProtocolstoreStringBase:%testNilIfNotNilWithArgumentReturnsNiltestClassWithInheritedSlots!testOrWithLeftFalseEvaluatesRighttestAddRemoveBreakpointtestFlatCollectAsSet(testCreateClassWithPropertySlotAddSecondtestInstallCountertestKeywordNoExtraSpacesAfter&testMissingArgumentAfterABinaryMessage(testClassIsDisplayedWithCorrectAlignmenttestValidNameExpectSuccesstestScaleLinearColors)testFalseIfTrueIfFalseEvaluatesFalseBlocktestOverlappingFormat2testExampleBlockNestedtestIvalidReadFromAthens-Balloon testCreateNormalClassWithPackageXtestNotAffectedByChangeOfOverriddenMethodFromAnotherHierarchyWhenSameMethodExistsHereTooBaselineOfManifest decoration&testSubstringSearchNonExistingSelectoroneIndex,testWindowShouldBeSaveBeforeShutDownSaveRoottestRemoveClassWithBreakpointtestHasNullContextByDefaultmatch:testFinalizationtestRawsWithStrikeMonthtestSelectSometestFluidConfiguration,testButtonUpClickShouldModifiedArgumentsListRoassal-Spec-TeststestDeepLookuptestStreamContents delimitertestDoEvaluateAndGo&testClassTraitIfMetaclassAlreadyExistsBaselineOfOSWindow"testExampleTempNamedPutTempVector2readFrom:ifFail: testLabel2testSpecialGestureOnInnerMorphPutsHaloInInnerMorphAI-Algorithms-GraphtestCreateImmediateClassNamedEmergencyDebuggertestTimetestExtentIsCorrecttokenishdoBody-testAllGlobalNamesStartingWithDoCaseSensitivetestDefaultValuesPharoDocCommenttestFileOutSingleTraitAdditionFuzzyMatcher-TestsSystem-Utilities-Tests#testExamplePrimitiveErrorCodeModuletestLoadNotCorrectImagetestGetMedianOfOddDatasetSize testSendSupertestIfNilIfNotNil1Arg testPrimModtestSumUnsignedInt64/Calypso-SystemPlugins-Deprecation-Queries-Tests0Calypso-SystemPlugins-ClassScripts-Queries-Tests$testObjectCentricWatchOnceDebugPoint%testExtractTwoArgsWithAndWithoutMinustestIsTestPackagetestHeaderLevel4 denominatortestIsEvaluatingtestCopyWithoutFirsttestInspectionMetaaddDays:testModelsSizebetween:testPrimValueWith Network-Tests%testOnForkErrorTakesLessThanOneSecond#testSplitOrderedCollectionOnElementtestIncludesNilNtestStatementNodeContainingReturnsStatementNodeThatContainsTheIdenticalSubtreetestUTF16EncoderLittleEndiantestVisibleAreaInstrumentationtestRedundantProtocolRemovaltestNewPointerClassWithSlotstestValidNameAndUsedVariable>testEditClassOrPackageScopeRemovingClassAndBreakingFullPackage3testNegatedFilterIsNarrowWhenTheInternalAreNarrowed testClassesTools-CodeNavigation-TeststestRemoveClassSlotAndMigratestemAndNumericSuffixtest0FixtureRemoveByIndexTesttestPrimLessThantestInitialize test16BittestMultiPackageMerge3testClustersMargin$testReadInGivenContextShouldIgnoreIttestMultiLineMessageCtestBestNodeWithInvalidMethodIncompleteMidSourceNearPreviousMessage5testFromThreeMethodsWhenImplementorsCacheShouldBeUsedtestCanConsumeLineOtherBlockstestSingleUppercaseLetter3testMethodsAccessingPoolVariablesDoNotFindPoolUsersroundTo: testHeightoneBaselineOfIcebergtestColorsOutIntestBinaryStreamtestTagsForMethodsCollectiontestReplaceFromToWithtestPrintDoesNotUnderstand with:withAll:@testWhenAddingBookmarkOnIsolateBookmarksShouldBeAddToAllInstance"testInheritingExecutionEnvironment7testTransformReturnEmptyRectangleWhenNotPossibleToPlacetestAdditiveConflictlessMergetestRenameProtocolAsWithNil2testFillingWayOutside3testErrorPropagationtestNodeDistancesFrom4testConfigureContextWithHaltShouldMarkContextAsErrortestHeaderLasttestBasicCommandlineHandler$findString:startingAt:caseSensitive: testStepUntiltestNewPresenterIsNotDisplayed'testComparisonOfTwoDifferentAnnotationstestNilIfNilReturnsBlockValueCollections-Arithmetic-TestskeywordsStricttestIntegerParttestCopyWithAll Athens-Text"testServiceIsExecutedMultipleTimes badTokenstestCommaAddsExtensiontestReadFromContexttestDragtestExampleTempNamedPutCopying2RtestReplaceTokenAfterMovingCaretToMiddleOfWordWithFollowingWordsReplacesEntireWordBaselineOfPharo?testBestNodeWithInvalidMethodIncompleteMidSourceNearNextMessagetestIfNotNil1ArgAsVarmax:testNextNameForExtensiontestBasicCollectEmpty testCPathtestRootPrintStringtestWriteToContextxin$testInitializedClassVariableCompiledtestDoublePassOutertestSimpleUTF8ReadStreamtestSharedVariablesAsArraytestAsCommaStringOnetestWithEmptyUsesindexOf:startingAt:testParsingLogictestExternalLinktestFlatCollect2 testSkipWith testUnloadWithAdditionalTrackingMorphic-Widgets-ColorPicker privateRedtestPrimitiveIndexed2DrTests-CommentsToTests-TeststestDefaultDescriptiontestSintestNotEnvironmenttestDelayWaitTimeoutTimedOut testFromPointNewTools-CodeCritiques-Tests new:withAll: testNonAsciilengthThreadedFFI-UFFI5testMergingTwoStylesWithASameClassHasClassInBothSides newDictionarytestDebuggerTempAccesstestAllNamedFromToSortedUsingtestEmptyBlockArg testRotatedBy testSmartQuoteSurroundsSelection testSumUpTo"testNoExtraSpaceArroundParenthesistestIdentityIncludes&testKeyAtExistantValueCopyReturnsOkKey,testModifyExtensionProtocolUpdatesThePackagetestSingleArgBlocktestObjectCentricAPI)testExtractOneArgWithMinusThenArgsWithouttestInferiorOrEqual bytesCount4testMethodCategorizedInSameExtensionDoesNotRepackage rcvrElementtestDeclareClassVar testIsNotFile@testBestNodeForTraitCompositionSelectionShouldBeTraitComposition testDrag2testSignatureNotOnMultipleLines*testRemoveMethodRemoveMethodFromItsPackageMorphic-Widgets-FastTable-TestsCollections-UnorderedtestDefaultGraphCentertestSortingWithUndefinedtestSplitAnnotationtestOddCollectionSizetestAllowDebugBrokenAnnotations4testConvertingWithExtraBasisObjectIfItIsAlreadyBasisfade:testTimeoutWithZeroDurationtestExampleSimpleBlockLocalIftestBinsCollectionSubscriptOutOfBoundstestMethodAddition testPopulate testVersiontestErrorOrders testParseLineWithThreeCharacterstestFirstSecondThirdtestBuildDiffFor!testSizeWithGarbageCollectedValuesplitOn:indicesDo:BaselineOfCalypsotestNegativeZerotestDensityAreatestEmptyMethodReturnsReceivertestUTF8ReadStreamPositioningtestExternalLinkWithMonospace testAccessingTempsVectorInBlock2testSkipStepsMethodNodes(testClassAdditionWithClassAlreadyRemovedSpec2-Code-Commands ByteArray,testWeakOrderedCollectionAllGarbageCollected value:value:Spec2-Dialogs-TeststestFocitestAddMovieDirector'testKeepBlockInMessageNotMultilineSpacepharoDocCommentNodestestDrawingWayOutside6ProcessorSchedulertestStyleIsDisplayed Tool-FileListtestDoesntContainLocatorSystemCommands-MessageCommandstestContinuedFractionsasSortFunction.testAsIdentitySetWithoutIdentityEqualsElementstestHorizontalBlockscaleBy:testWithNullElementWithFixedtestindexOfStartingAttestSizeDouble testEdges testAddBeforetestAddingAnimationsSetsplitOn:STON-ExtensionstestRemoveClassInTagtestExpandedPoint)Calypso-SystemPlugins-Deprecation-BrowsertestNewMetaclassTraitTool-DependencyAnalysertestCycleAlreadyFoundBaselineOfFlashback3testUnoptimisedValueSpecialSendsMessageCapturesSend$testRemoveAllTextPresenterDecorators*testFourthByteArraysReturnTheCorrectValues;testChangingPcKeepsSameStateAndPushesCorrectElementsOnStack>testNonDuplicatesRemoveDuplicatesResetReturnsWithoutDuplicatestestRemoveAllShadowstestRawsWithMonospacetestMultiPackageMergetestComposeDisplayTexttestReadInContextCleantestDynamicVariabletestNewBehaviortestNewFromPairs testRemoveLastNElementsNElementstestIncludesNametestEnvironmenttestBasenameWithoutExtensiontestJumpOnBlockVariables'testComputeDensityCurveDataOnlyOneValuetestClassWithClassSlotsat:ifAbsentPut:ReflectionMirrors-Primitives DebugPointstestHandlePrefixTabsRing-Definitions-Core translateBy:testLocalMessagesminValue.testExampleTempNamedTempVectorInOptimizedBlocktestOpeningDelimitertestExpandedOnClassWithoutTag lerp:a:b:testCombineDependencies/testSupplyAnswerUsingTraditionalMatchOfQuestion>$testInitialArgumentListAutoSelectionDuration testPushSelftestTrueIfTrueReturnsBlockValue5testIsAffectedByChangeOfOwnMethodWhichIsNotOverriddentestWidgetExiststestNumberOfOutputstestStructureOfBoldSimpleText firstNonDigit*testSequenceReturnsTheSequenceOfAllResults.testBlockWithFourArgumentReturnsLastExpression testAsStringOnDelimiterLastEmptytestNextPutAllEmpty!testLineStartIsOkAfterWriteStringblacktestClassWithPluginEnabled0testPreferenceFilesNotCollideWithRealPreferences SUnit-TeststestLabeled03bisHasModeltestDoItExtraBindingstestUnrestrictedSlotsSimpletestMultDicAddSub"testResultIsADTCoverageResultClassexceptionBlock testRadius=testRemoveClassUnregisterTheClassDefinedMethodsFromItsPackagetestDependenciesTotestSortingChainedWithUndefinedtestResolvedNameOrNilMorphic-Widgets-List!testDTTestCoverageResultHas2NodestestTwoLinesAfterTemporariestestHasLabelFalse testMultipletestLastFilesForExtensionreverseWithIndexDo:testRejectNoRejecttestNothingToCovertestUnmatchedByteArrayBracketpeektestUnclosedStriketestXTickLabelstestBasicVennDiagramOpentestWriteAndReadReflectivetestNonOrientedAngleWithaddIfNotPresent:testCreationByMethod0testWhenAnnotationFailsCheckForForbiddenPropertytestPushThisProcesstestBasicCollecttestRemoveTrait testRawdatatestCommentSimple'testCompareWithIfLesserIfEqualIfGreatertestMicrodownImport isFractionendtestPngEncodingColors16testIsExternalZtestWhenClickAnBeforeHistoryButtonIfThereAreHistoryShouldComeBackToTheLastDirectoryVisited testPragmatestMissingBlockArgumentNametestSetLimitLimitBlocktestNoPackagesOverride testEscapetestMarkerSizetestRemoveOneElementtestClassCommentasSignedIntegertestUnsignedLongPointtestVariableByteSubclasstestCompileForIntestReadFromWithErrorlastDelimString testReadsRef isSortedBy: crossProduct:Rubric-SpecFindReplaceDialog readStreamDo:atRandom:weighting: testNewLineBeforeAndAfterCascadetestNewProcessIsPharoProcessSUnit-Visitor-TeststestPeek%testNextNameForExtensionBrokenPattern testIfEmptytestIsSelfEvaluating#testAsSortedCollectionWithSortBlockisInitialQuote:testReverseLinksDo nanoSecondstestAddAndRemoveActorstestInlineBlockCollectionLR2testUnifyMetaclass(testTraitAdditionWithTraitAlreadyRemovedtestConcatenationSearchtestRenameUpdateTheOrganizertestRemovePackage/testNewProcessTaskRunnerRunsNeverInLocalProcesstestCreatePlotWihtKernelDensitytestNestedLoopsExample1 DrTests-Tests=testWordsAwareIteratorFiltersByASequenceOfCamelCaseMixingCaseSystem-SourcesCondenserfirst;testIteratorOnACollectionReturnsTheFirstValueAndSecondValuetestNestedStructSizetestGetShapesFromRectanglexbtestHasUnknownScopeByDefault.testNonOpenPresenterDoesNotRaiseDisplayedEventtestMethodVersionAttestRedundantSeparatorsRoassal-ColorspermutationsDo:NewTools-Spotter-ExtensionstestMustInclude03 testOneHitCollections-Abstract-TestswithUnixLineEndings// testPrimAtPut Beacon-CoreMCGitBasedNetworkRepository,testMetaSuperclassShouldUseTheSuperclassName!testMonospacesWithDoubleBackSlash3testRectangleWithNegativeExtentShouldHaveZeroExtenttestNumberOfSpaces.testKeywordCommentsFormatCommentsWithStatementtestMatchesChanged&testItalicWrappedWithAccessAPIElementstestClassTrait testNoPopuptestRepeatExecutesBlock.testNotSelectsAbstractMethodWhichIsImplementedtestAllClassesImplementingtestAddWatchSameNode$testHigherThanLastBCOffsetAccessTest+testIdentityIncludesNonSpecificComportementtestForTiltedStickynesslast testRecompilelf*testBoxPlotCreatedWithCollectionOfDatasets!testIsOfflineTrueAndResourceFoundtestMetaclassNumberOfInstancestestModifyIvarToHistorytest0FixtureBeginsEndsWithTest>testEditClassOrPackageScopeAddingClassAndCompletingFullPackageFtestWhenCurrentDirectoryChangeshouldNewFileDialogOpenOnTheNewDirectory5testDoubleClickShouldNotTriggerIfClickedOutsideBounds%testWordCannotExtendPointerWithFieldstestInfiniteLoopRoassal-BaselineMaptestServiceRunsAfterStarttestWithComplexRecursion.testFixedLocatorRaisesErrorWithEmptyCollection"testTraitDefinitionNodeIsTraitNodetestNthRootTruncated#test0FixtureSubcollectionAccessTest/testRenamingExtensionProtocolToAnotherExtensiontestPackageOfUnpackagedClasstestClassRemovalWithClassAdded testIsHiddentestSimpleResignalAs#testOpenDefaultOnUnloadedFontFamilycontainsPoint:testAsPackageWithError isTestPackagetestBuildArrayHeuristic6testInstanceCreationMajorMinorSuffixBuildWithoutSuffixtestContainsReference5testTraitWithClassTraitCompositionHasTraitCompositiontestNoErrorCatchThreadedFFI-Graphics-ExtensionstestStrikesWithoutClosure0testLoadMicrodownResolvesUrlsRelativeToTheParentReflectivity-ToolstestSumSignedLongtestPrimitiveStringModuleyeartestGlobalVariablesCollection backspacetestVennDiagramOneSettest0FixtureConcatenationTest readStreamtestPrimitiveNamedErrorCode2testLhstestProtocolsForAllMethodstestRemoveKeyIfAbsent oldElementisAllAlphaNumericstestSetNameTexttestSelectSomeOther prevIndextestBoldAPIToAccessText LibGit-CoretestNoIndentsForKeywords testFlippedtestParentResolutionWithPathtestSimpleClassVariableClasstestStoreOnWithNegativeIntegertestallMethodsWritingSlotspecialCharacterNamestestOneArgumenttestMoveUpInStacktestAllAvailablePostOrdertestHasSelector+testFutureOnDoFailsOnTrappingWrongExceptiontestSmalltalkAsString@testWindowShouldBeOpenAfterStartupWithGoodMorphWhenNoMorphIsSavearcTan:#testConvertWindowMouseEventPositiontestMillisecondsToGoExpired RTree-Tests!testAddIntructionsBeforeFromLListSystem-Platforms-TeststestHumanReadableByteSizeStringtestPlotWithOneCollectiontestUTF8IllegalInputcontext indexOfSubCollection:startingAt:+testRemoveNonexistentSelectorsFromProtocolstestSetBaseClasstestKeywordOnMultipleLine7 testCaseOf)testBeHomogeneousWorksWhenExpandingWindow testBefore testNoTimeouttestMathBlockWithArguments/testTraitMethodClassBindingShouldBeClassBinding+testRenameProtocolAsWithNonExistingProtocolaCollectionClass&testDefaultImageDoesNotStoreAnySettingtestHasTemporaryVariablesMethodtestNotSelectsNotOverrideMethod$testClassVariableImplicitEnvironment.testSingleLevelListSplitWithMultipleEmptyLines Morphic-TeststestWrittenAfterClosedOver#testAdd3BoxPlotsReturnsClusterChart,testFutureSelectSuccessOnSatisfyingConditiontestRemoveClassUsingEnvironment asDateAndTime,testAndPackageEnvironmentAndClassEnvironmenttestVersionsForMethod6testChangingSlotCallsInitializeSlotOnInstanceMigrationtestUndefinedVariableFrontendtestPathStringtestSplitBlockLink RubTextEditortestJumpOnSecondKeywordtestCompileWithEnvironmenttestSiblingOfPath testToCount2testUniqueNamesfoundat:incrementBy: testIsNotRelativeFilePathWithUrl)testReturnExtraSpacesInIndentWhenMultilneisSequenceableisClosePunctuationtestInstanceVariableShadowing testSortOrder8testDeprecatedAliasesAreRemovedByClassRemovalSpecialCasebadExpressionstestBackwardCompatibility4testIfCutDoWithCutAndUncutsLastnegativealternativeBlocktestCumulativeCountstestDoItRequestorEvalErrortestStructureOfBoldNestedText%testRawParametersWithNotStringAtValuetest14removeIfAbsentraisedToFraction: factorialtestDefaultWithValuetestShortcutKeytestSimpleUTF8WriteStreamtestAtPutTwoValues0testIsEmptyForExplicitlyDefinedAbstractMetaclasstestIntegerReadsNotOkFromStringtestAssignClassVariable testPushConstantMinusOneBytecode testWatchVariablesWritesInObjecttestToDoInsideTempNotInlinedtestExampleiVarSpec2-Adapters-Morphic-Tests/testBlockWithThreeArgumentReturnsLastExpressiontestTerminateSessiontestBuildThisContextHeuristictestSeenPackages5testTraitCompositionMethodsArePackagedWithTheirTraitstestAllCallsOnNewTools-Inspector%testDeleteAWindowAndTaskBarActualized testAfter badScanner:testMultiplicationWithNonScaledDecimalDoesNotGainPrecision testAtRandom anIntegertestSubstraction'testStoreAndPopReceiverVariableBytecodetestImportAClassCategory,testSystemPackageIsAnsweredWithLoadedPackagewhiteitemtestIntegerReadsNotOkFromStreamtestFlipByCenterAttestPushConsArrayfive+testWorkerProcessDiesAfterWorkerIsCollectedtestRemoveLastNotPresent4testImplicitEnvironmentContentForMetaclassDefinitiontestValidTraitComposition endsWithDigitasDigitsAt:in:do:`testMoveToNodeWhenNodeIsInBlockThatCreatesContextAndBlockCreationIsFirstBytecodeInFirstStatementtestNewLineBeforeCascade2 allButFirst:%testFileOutMultipleMethodModification testExtent test13remove(Calypso-SystemPlugins-Monticello-Browser!testDuplicateClassPreserveMethodstestRemoveTagRemoveClassestestAlltestSelectsFFIMethod testClassSlotDuplicationConflict+testImportAClassCommentWithExclamationMarkstestDefaultResultText-testsingleRemoteTempVarWrittenAfterClosedOverSystem-Caching-TestsNewTools-MethodBrowsers3testDefaultSettingValueIsNotIncludedInTheStoredFiletestScalePolyLineartestIsWeakLayout testBasic039testExtraIndentationWhenMultilineResetTheIndentWhenFinishasSortedCollection testTypestestPrimBitAnd testMarkertestBoundaryContainsWhichOf atLast:put:keystestSlotNamedIfFoundIfNone,testMouseMoveWithoutDraggingDoesNotStartDragtestJumpAheadToIftestKeyForIdentitytestAnnotationPrintStringtestOneSystem-FinalizationaBooleantestRemoveCounterFromMethodtestFirstTagWithValue#testTraitAliasShouldBeFromAliasName testNormalizeexp"ReflectionMirrors-Primitives-Tests anySatisfy:%testComparisonWithAnotherKindOfResulttestExampleIfFalse testOutlierstestGroupsOfAtATimeCollecttestReadStreamNotFoundtestWatchVariableReadsInClass testHasChangedForPackageItemDifftestInstallFromStreamtestDifferencePreservesOrdertestPrivateReplaceFromToKernel-Tests-WithCompiler!testDegreeSinForExceptionalValuestestCreateWeakClassWithAllnexnexttestIsRootInEnvironmentsuffix!testCompletionBeforeKeywordColumntestSetInstanceVariables-testSettingLeftDoesNotProduceInvalidRectangletestExtensionSelectorsind testOneGrouptestKeywordOnMultipleLine3$testLowerThanFirstBCOffsetAccessTestsigntestReturnHasNoExtraSpacetestFindCloseEnoughMethodtestRemoveProtocolAnnouncementtestOpenInWorldtestEmbeddedOrderedtestRecompiledReturnFromClass?testRecategorizeClassUnregisterTheClassMethodsFromTheOldPackagetest5testNoneSatisfy&testFallbackReplaceFromToWithForStringtestNewMethodWithHalttestLoadNonExistingMicrodowntestFormatEachStatement$testStoreIntoLiteralVariableBytecodetestWhenClassHasNoAnnotations testSize2testSelectorEnvironmentyield:testCmdCtrlRighttestPointerCanExtendPointertestDefinedSelectorstestCreationOfDefinitionstestKeywordFormatParameter Files-Tests binaryBlock testComposite STON-Core testCounting beginsWith:#testObservableSlotWorksAsNormalSlottestSuccessors!Refactoring-Transformations-TeststestBehaviorNameChange asFractiontestMinimumSizeOfSearchStringtestKeywordFormatReceivertestAt(testClassDefFromLegacyStringHasClassName testCreateClassWithClassVariable testContains!testExtraIndentationWhenMultilinetestFormatReceivertestWatchVariablesWritesInClasstestMultiLogScaleInverttestSelectorsInProtocoltestItalicNestedInBoldtestThereAreTwoSettingstestAllReferencesToDo2test0FixtureDictionaryKeysValuesAssociationsAccess testCreateAs accessModetestPointerCanExtendVariabletestRemoveProtocolIfEmptytestIsVariableLayoutTool-ExternalBrowser-TeststestRemoveKeys shuffledBy:testPcsForNode testBecometestWithTilteAndLabels!Calypso-SystemPlugins-FFI-Browser(testInitializeShouldOnlySeeNotHiddenFiletestAsLayoutFrame#testTrueIfFalseDoesNotEvaluateBlocktestFormatMultilineMessage2,testChangeBorderUpdatesEncompassingRectangle testBottom'testBoxShouldBeInsideContainerRectangle testDiagonals Zodiac-CoretestCopyWithFirst'NewTools-DocumentBrowser-GitHubResourcetestParseBasicValueGraphics-CanvastestRenameArgumenttestNewCompiledMethodClass testAtEndtestNoTraceForEnabledBreakpointtestRaisedToErrorConditions actionBlock testAtPathtestVariableCannotExtendWord testBorders traitSourcetestBeBetweenAndGeometrytest09addAfter hasProperty:testCollectArgumentstestVariableCannotExtendByteLtestMoveToNodeKeepsStackWhenAimedNodeIsMethodNodeThatDoesNotHaveAssociatedPCBaselineOfLibGittestGetMedianOfEvenDatasetSizetestShowOlderMethodVersion BaselineOfIDEtestExternalLinkWithStriketestWidenOnBracketstestStylerRedTickInChart*Calypso-SystemPlugins-Traits-Queries-TeststestAutoLocatorIsDefault testInstallInSpecificEnvironmenttestMetaclassClass+testMultipleAssignmentHasNoExtraSpaceInsidetestRads Calypso-Ring!testExtractDatasetFromSingleArrayErrortestNaNisLiteraltestIntoWorldDeleteOutOfWorldstderr6testBuildPresentationWithHaltShouldReturnCodePresenter testBoldsAndCorrectNestedItalics5testWordsAwareIteratorFiltersLeftOutBecauseSecondWordweighttestNetworkPathWithParentstestIfNotNilIfNil1Arg testEnqueue testItalic testIsPrime39testBroadenFilterAfterFetchCompletionShouldBroadenResultstestIncludedPackages Clipboard testBinsStrat.testLiteralsDoNotConsiderTheInnerBlockLiteralstestRetrievesMethodQuery/testClassRepackagingShouldAnnounceClassModifiedtestSimultaneousModification-testPointerWithVariableExtensionIsNowVariable pairsCollect:'testNotEnvironmentWithClassEnvironmentstestCreationByNamedSystem-History-TeststestCompleteSuper'testMethodModificationWithMethodRemovedtestFirstNElements Zodiac-Tests testFileOutSingleProtocolRemoval,testInBlockArgumentInstanceVariableShadowingtestSubscriberClass(testLastFilesForExtensionNegativeTesting isClassSidecopyReplaceAll:with:asTokens:testBmpWriteReadUsingFiles testLeavesLtestRemoveClassUnregisterTheClassExtensionMethodsFromTheCorrespondingPackagetestReadsThisContexttestBuilderSharedPools3testTrueIfTrueReturnsBlockValueWithTempOutsideBlocktestDoubleRepeatedMergetestInvalidPatterntest0FixtureIterateTesttestValidTraitComposition2NewTools-Scopes-TestsSystem-Benchmark(testCompletionWithNoResultsShouldBeAtEndBaselineOfReferenceFinder testObjectCentricWatchDebugPoint addAllLast:Roassal-Interaction-Tests&Calypso-SystemQueries-Tests-P5WithTagstestFillingWayOutsidetestValidTraitComposition45testUnhandledWarningShouldBeProcessedAsUnhandledError+testJPGPPreviewerCanBeUsedOnParameterStringtestWhileFalseExecutesLeftBlock$NewTools-RewriterTools-Backend-Testsceiling"testIndirectCircularHierarchyErrortestEightNeighborstestAsScaledDecimaltestClassTraitstestRevertOverrideMethodfromHexString:;testIsAffectedByChangeOfAbstractMethodWhichIsNotImplemented.testExplicitCompletionEngineIgnoresGlobalClassIceberg-LibgittestAnchorRefernce$testInstanceCreationMajorMinorSuffixtestClassifyUnderSystem-Hashing DrTests-TestCoverage-Tests-MockstestAtPathIfAbsenttestByteStringClass testFormstestAddNodesAndEdgestestLatin1EncodertestDeleteAllHistorymaxDaysInMonth)testAssociationsWithGarbageCollectedValuetestclassVarNames escapingWriteanExtentcap7testSubscribeToExistentNonObservablePropertyRaisesErrortestCannotReturntestNaN3,testProtocolNamedIfAbsent0testIntersectionTwoSimilarElementsInIntersection#testMethodAdditionWithMethodRemovedcollect:thenSelect:surroundString:withCharacter:testInexactRaisedTo testAssignmentOfClassNameBindinghasInterned:ifTrue: testSlots'testDontRetainBlankLinesBeforeComments2testAddOneElementtestCyclesWithAtLeastStdio detectIndex:testRendering01 r:g:b:range: isFinalQuotetestExampleTempNamedCopying(testCollectionWithSingleElementReturnsIttestPrintHaltItemtestAnnouncementtestMin includesAny:testFileOutSingleClassAdditiontestAnchorIsAttachedToItsTargettestNewLineAfterCommenttestCreationByCommaNewTools-Scopes;testSequenceOfFormatstestMouseMoveAfterDoubleClick,testNoLeadingOrTrailingSpacesInCategoryNames%testARectangleDoesNotContainItsCornerkwdtestFirstItemIsSelectedIcebergtestDefaultValuestarttestBestNodeWithValidPlaygroundtestTraitNoSlotsNoUse lastIndexOf:startingAt:ifAbsent:sideGrowltestSyntaxErrortestWatchVariablesReadsInClass#testAllInstanceVariablesOwningClasstestUnresolveSuperclasstestStructureOfPlainText&testNotWrittenInMethodWhenItIsOnlyRead testAuthor+testDoesNotApplyForNonSuperMessageSendNodestestNoNewLineAfterTemporaries testCreateTheRightFootnoteObject"testHasBindingThatBeginsWithGlobal(testDropListChangeShouldChangeTableItemstestHierarchyRootstestLabeledOuterShapes01element$testDeprecatedAliasesOnExistingNamestestBehaviorAdded$testTempNamedTempCopyingNestedBlock2 OSEnvironmenttestClustersHorizontal testShadowAI-Algorithms-Graph-ComponentstestInitializePresenterstestNextObject testBuilderTraitsWithComposition/testProtocolsForAllMethodsForClassWithoutTraitstestAsSortedCollection Math-Operations-Extensions-Tests printStringtestComplexDefinition PerformMessageCommandLineHandlertestStoredSettings testReverseDotestFileOutSingleMethodRemoval testPackageOftestCopyAfterLast!testLineStartIsCorrectAfterIndenttestNotifyBreakpointRemovedSystem-CommandLine-TextSupporttestWhileWithTempIsNil System-Sound DateAndTimetestAnnotatedBlocktestNewGlobalVariable slowFactorial testVariableEnvironmentAddRemovetestNoPeriodInMethodSignature!testAutoLocatorNumberOfTicksIsOk2 testOpeningtestSizeSignedInttestLiteralSymboltestMarshallingStringArgument0testBestNodeWithValidPostionOnStatementPeriodEnd testMessagestestEnsureASpace*testTwoDebugPointsOnSameTargetBothActivategroupedBy:having:testEmptyListstestCompletionBeforeWordtestTooLongBlockBodytestHasNonDefaultArgumentstestRemovePackageWithBreakpointlastElmtestShuffleModifyTheReceivertestFutureZipFailsIfSecondFailstestOtherDictionaryEqualitytestSimpleResolutiontestMemoizedLRUCachetestCanExecuteOnArgumentNodetestPossibleVariablesFornewDay:month:year: testStoreOntestReplaceWithPatternCodetestIncludesIdentitytestAddEqualElementsassociationsDo:%testCompileClassifiedWithUnclassified AsciiCharsetShouttestRelativeFromStringParentNewTools-SettingsBrowser-TestsManifest-Tests!testAddBoxPlotsAddPlotsInTheChart0testSourceNodeExecutedWhenContextIsJustAtStartpcselect:thenCollect:testBlocksShareOuterVariablesstoreStringBase:length:padded:testMajorMinorVersion9testWorkerProcessDiesAfterWorkerAndAllFuturesAreCollected testMonospacetestAddBeforeLinkatLast:ifAbsent: characterSettestOptimizedBlockReadInBlockEpiceaBrowserstestBehaviorCommentModifiedtestConvertFromIntegerWithScaleNewTools-Debugger-Extensions)testFourBackQuotesOnMultipleLinesWithText Roassal-Menu lastBlank$testDiffIRecordsLastLineWhenMatching0testAssociationAtExistantKeyReturnsOkAssociationtestPopupWithoutMouseLeavetestModifyTraitComposition#testOpenWidgetPresenterAppliesStyletestReturnCoverageResulttestWhileTrueExecutesRightBlock'SystemCommands-RefactoringSupport-Tests testIndexOfisDecimalDigit:aSubCollectiontestLntestTwoViolinPlotsClustered testRawsHandleWellCurlyIfNotLasttestJumptestBoldtestPrimNotEqual,testEvaluateWithBindingsSelfSuperThisContext/testRenamingExtenstionProtocolToClassicProtocol testIndicatorRoassal-Spec-MorphictestWriteThenRead=testRefersToLiteralsReturnsTrueWhenLiteralIsInPragmaArgumentsNewTools-DocumentBrowser-Tests-testFileOutSingleMethodModificationOfProtocoltestIntoWorldCollapseOutOfWorldtestCallbacksInOtherThread)indexOfSubCollection:startingAt:ifAbsent:testHasNonLocalReturnReflectivity-Tools-Tests testCoerciontestMethod3forMocktestExtractSetupExample2 testSignalOfTheLowSpaceFromTheVMtestClosedTallytestStoreBooleanToStontestLastBCOffsetTesttestWatchVariableWritesInObject whileFalse:testGetMeanOfDatasetKtestBroadenFilterAfterFetchCompletionShouldBroadenResultsWhenCaseInsensitve%testSubstituteVariableAtIntervalBlocktestwhenSelectionChangedDoNewTools-Debugger-Fuel-TeststestSingleLowercaseLetter RectangletestShiftMinusOne1LeftThenRighttestLayoutNotEqualsDtestInsettingLargerThanRectangleExtentShouldNotProduceNegativeExtenttestPushTempTemptestMultiPartMixedsum.testMouseMoveWithoutDraggingDoesNotModifyValuetestBindingsWriteGlobals testIfExiststestNewFromKeysAndValues)testDictionaryPublicProtocolCompatibility testRaisedToNewTools-FindertestSignedInt64testWithCollectiontestNotifyDebugPointHittestSelectHandlersCodeLoadertestAssignmentHasNoExtraSpace testDotParent,testEncompassingRectangleContainsBorderWidthtestSelectsMethodWithFlagtestSmartCharactersOppositeOftestTestClassesShouldBeSingularAthens-ExamplestestMultiplicationtestPutAllNegativetestAddTagsToAClass!testTraitAdditionWithTraitRemovedtestSumSignedInt64testReferenceConfigPrintStringtestMultiRequirementOrdering*Calypso-SystemPlugins-Critic-Queries-Teststest0FixtureDictionaryKeyAccess0testFindThisMethodWithFullClassIsTheCorrectclassCommander2-UI-TeststestJoinArrayUsingStringtestDefaultWithNoValue3testWorkerPoolWorkersAreStoppedAfterPoolsCollectiontestUpdateDisplay noise:y:z: testUndefinedClassClassIsDefinedtestIncludeClassWithExtensionstestAcceptEntryLogsItsSize testBitStringtestIsEmptyFromEmptyMethodScopetestRedundantClassRemoval testNewTraittestClassesShadow7testFixedLocatorNumberOfTicksIsOkWithUnsortedCollection with:with:testInitialization testBigArray.testModifyProtocolToExtensionUpdatesThePackage selectEvery:testKeyAtIdentityValueIfAbsenttestAllInstVarNames dayOfWeekNametestCentralAngleaSortedCollectiontestDeadContextSourceNode testNoNilstestNotLoadedClassMethod$testLogLocatorSmallestIndexIsCorrect testWithUses testLabeled01testTraitCompositiontestAllSatisfyTFCallbackQueuetestStructureOfAnchorReferencetestRenameClasstestPositionOfSubCollection sizeLimit7testCreateNewPackageWithConflictRaisesConflictException testPredicatetestExampleTwoIvarSlotstestInvalidRadixtestExtensionClassNamestestBasicClassBuilding testBasicNewDrTests-TestCoveragetestPackageRenameWithExtensiontestNewNamedMethod"testSupplySpecificAnswerToQuestiontestVisitHttpInput testSingleRemoteReadNestedBlockstestReversedCyclenumberOfDigitsInBase:testHasSlotNamedtestCompileFromAnalysedASTtestSignatureWithArgumenttestDigitValue testScaleTotestExpressionSyntaxErrorMCMethodDefinitionSUnit-UI,testIsEmptyForExplicitlyDefinedAbstractClasstestCodePointEncodingDecodingtestLogBrowserOperationNewTools-DebugPointsBrowsertestExampleSimpleBlockArgument3testSuperclasscharBaselineOfMorphic>>eighth withIndexDo:testCopyNonEmptyWithout%testSliderMouseDownDoesNotModifyValueuEmergencyDebugger-TeststestDiffWithLinesRecordsDelete"testParagraphEnvironmentParagraph2testPrintShowingDecimalPlaces2testRaisedToInteger.testFixedLocatorDataIsOkWithCollectionTooLarge testNumeratortestReadComputedSlotCompiled testFibonaccitestIsCashingResourcesTruetestTooLongArgument2 testSorting01testResetUnwindtestStorePopIvar&testStringArgumentsAreReleasedIfNeededtestHandlerFromActionNumbertestOneSpaceIndenttestMaxMinValuestestIsRootDirectoryWindowsDrivetestWaitMaxMillisecondstestExtractAllKinds RBScannertestSelectionStart'testSmartCharacterWithEventAndSelection testWithRB3testAccessibleRealValues@testThatThereAreNoSelectorsRemainingThatAreSentButNotImplemented testBinSizetestNoCoverageCollections-Strings r:g:b:alpha:.testInitializationAllCheckBoxDictionarySetTrue!testNoChangeInSharedPoolsDetectedasStringtestMultiLogScaleScaleon:limit:limitBlock: testGroupingtestAsFormAtScale testAstScopeKeymapping-CorerelativeToReference:"testBorderDoUpdatesInvalidateShapeRoassal-Class-ExamplestestInstanceCreationtestArrayEvaluateWithBindings testSpanRow$testPlaygroundWidenOnErroneousSource testANewLineCreatesANewParagraph&,testPopularStringDoesReturnOnlyTwentyResultstestSumUnsignedInt Roassal-DSMtestImportFromReadStreamtestAddInstVarNamed$testObservableSlotAssignReturnsValuetestAsSetWithEqualsElements,testLastBcOffsetForNodeWhenMappedPcsAreEmptytestHandlingWithExclusiontestUnsignedInt testEmbeddedAnchorInTextAreDrawntestRetrievesQueryScopestestPushConstantTrueBytecode&testRehashDoesNotTransformAssociationsFileSystem-Core'testAccessingVariablesInOptimizedBlock2"testUsingMethodsFindsVariableUserstestHasProtocoltestBuilderWithTagtestHasEqualElements-testFutureSuccessCallbackExecutesInSameWorkertestIsProbablyPrime testDefaulttestInfinityCloseTotestLiteralSymbolstestSimplePass maxElementtestAddWithKeyAlreadyIntestFinalizationWithOnFork testDoubleLtestAddMethodInExtensionCategoryWithExactMatchAddMethodToTheExtendingPackagetestRelativeWithParentstestPropertyAtIfAbsent testLayoutsxor:PropertySortFunctiontestCopyUpToLastWithDuplicate@testRenameClassUpdateMetaclassDefinedSelectorsInTheParentPackage"testCreateVariableWordClassWithAlltestRelativeToReferencetestRedundantPackageTagAdditionreject:thenCollect:System-OSEnvironmentstestFigureInPresenceOfParagraphtestNoRemoteMethodTemptestTopAthens-SVG-PathConvertertestWriteStreamDoExiststestClassWithCommentAndStampEquals+testCannotCreateDictionaryRepositoryFromUrltestLastwindowIsNil FFIBackendsXtestChangeRemoveManyaRandomDtestIsAffectedByChangeOfMethodOfTargetClassWhichOverridesAbstractOnetestUndeclareSlottestCreateEphemeronClassWithAll7testSubstringFilterReturnsValidResultsWithTheSameFilter+testThoroughWhichMethodsReferToSpecialIndexBtestSkipUpToNodeStopsOnImplicitReturnIfAimedNodeCanStillBeExecuted testNegated.testObjectCentricBreakDebugPointOnVariableReadeachChartestNewTextStream'testSmartQuoteSurroundsEscapesSelectionSystem-DependenciesTeststestUTF32EncoderWidetestRemoveLeaf3aStringtestCommentWithImpacttestMaximizeWindow*testSelectorEnvironmentRemovesEmptyClassestestMiddleButtonOpenHalostestFormatMessagetestNewFutureIsNotFinishedoptionInlineCaseRenraku>testCanCreateBitBucketRepositoryFromUrlWithExplicitHostAndPorttestReadIntoLargertestIsNotAbsolute;testRenameClassUpdateOrganizerClassExtendingPackagesMappingSystem-OSEnvironments-Tests#testVersionNumberForComplexFileNametestIntersectionsWithArctestTwoSpacesInsideArray testAsFormtestProtocolEnvironmenttestMouseEnterDraggingFromMorphaSequenceableCollectionnilBlocktestAddTraitSettingPackageTagtestAlt&test0FixtureDictionaryIncludesIdentitytestSimpleEnsureTestWithErrortestInitialMethodVersion!testRemoveFromSystemRemoveAllTags"testClassSideDefinitionIsClassSide testIncludesSortedCollection7testUncorrectJSONMetaDataProducesDictionaryWithContentstestHasCaptiontestIsAListNumberedtestMakeRelative)testPackagesAvailableInTestCoveragePlugin&testStoredValueForSettingNoStoredValuetestReadWriteCompiledtestNAtestSpaceBetweenVarAndComment2testMakeDependentPackagesDifferentOnDifferentGraph/testWordsAwareIteratorFiltersByASequenceOfWordsisIntegerPoint)testOptimizedBlockWriteInNestedBlockCase2testResolveAbsoluteReferencetestLoadNotFoundImage(testRemovedDependentPackagesIncludesFrom/testConfidenceIntervalMaxIsGreaterThanQuartile3 testBuildWithoutLayoutRaiseErrortestTwoElements->GtestRemoveProtocolIfEmptyWithNonExistingProtocolDoesNotAnnounceAnythingBtestVariableByteClassWithTraitCreatedShouldntAnnounceClassModifiedDelaytestOneElement$testRefreshCacheWithoutScanAllSystemtestSlotDuplicationConflictMessageNotUnderstoodtestPairsCollect testVariableEnvironmentClassVarstestParameterAttestHasBindingThatBeginsWithtestObjectCentricObjectAPI testPagertestParentParenttestMoveToNodeWhenNodeIsNonInlinedAndEmbeddedInNonInlinedBlockCalypso-SystemTools-Core!testPrintSeparatedByEverySignedOn*testAnnotatedBlockOnTwoLinesWithFormatting:testRefersToLiteralsReturnsTrueWhenLiteralIsGlobalVariabletestTabtestPrintString_defaultValue>=testOnceBreakBehaviorTool-ImageCleaner-Tests!testAddInstVarNamedClassInterface subtractDays:testFromNamesWithEmptyDataBaselineOfBaseLibraries testMajorAxistestPrintStringBasetestSqrtErrorConditions)testCommentBetweenTemporariesAndStatement testAddLast$testButtonUpClickWithoutSelectOptiontestRemoveClassgroupsOf:atATimeDo:testDeclareTempAndPasteBlocktestAddIntructionstestBoldItalicAPIToAccessTextvalueWithArguments:copyReplaceFrom:to:with:last:0testFutureFirstCompleteOfFailsIfFirstFailsFastertestAsByteArraytestCoveragePercentForMock testWithWeirdValuesLineWithTickssqueezeOutNumber testAddWatch testFillingWithClassAndItsTraitstestEscapeCharacterInNestedCasetestBehaviortNamed)testTempNamedShouldFailGivenNameIsNotTemptestSizeUnsignedLongUnix Spec2-Code'testPasswordDoesNotStorePasswordInClear'testFutureFlatCollectFailsOnSelfFailure testReversedaSortBlockOrNiltestTallyInstructions&testSingleLevelListWithNormalNumbering'testNextIntegerOfSizeSignedBigEndianPuttestNoExtraSpaces'testEscapeCharacterWithNoCharacterAfter testSlotNamedCollections-Stack-TeststestStylerRedLabeltestSizeUnsignedInt16testBasicQuoteBlock2testBlockWithInstanceVariableReturnsLastExpressionOmStoreFactoryItestMoveToNodeWhenFromNonInlinedEmbeddedBlockToNodeThatIsNotInHomeContextblue"NewTools-SpTextPresenterDecoratorstestMethodSourceNodeAtPCtestClassRemovedFileSystem-Memory"testEqualsOtherOrderedDictionaries-testButtonDownClickShouldModifiedPreviewFinal(testWhenCanvasScaleChangedUpdatesShadowsScriptingExtensions:=testWritingOverflowtestSimpleMerge*testAssociationsDoGoesOverEntireDictionarytestUpperLimittestShapeIsPushedFronttestDontGrowWhenUnecessary h:s:l:alpha: ifNotNilBlocktestAddWithOccurrences&test32BitTranslucentPixelValueKeepsRGBtestRestartContextAtspan testDurationBaselineOfAIGraphAlgorithmstest2BitReversedordertestNonCodeChangeEventtestNonObsoleteClass to:by:do: testAsArraytestNotifyTempBreakpointHit test01add!testChangeInSharedPoolsIsDetected&testWhileTrueExecutesLeftBlockWithTempnodetestRealValueModificationStartupPreferencestestFullAlphabettestStSerializationRegex-Core-TestsSymboltestPrepareResultForExecutionallRangesOfSubstring: testCenterEmptyBasedOnPointPoint outputSet aSortFunctiontestActivateReturnValue testOfSize testRedirecttestLoadNotCorrectMicrodownTool-Finder-UI testMatchestestMinMaxValue Text-Editionwith:testCopyNonEmptyWithoutAlltestPushInstanceVariablebreakInContext:node:Zinc-Character-Encoding-Tests%testFamilyListCorrectAtInitializationtestInCriticalWaittestChangeSuperclasstestAddClassSettingPackageSystemCommands-MethodCommandstestConvencienceMethodstestRemoveLeaf1 testPowScale%testUTF8SurrogateCodePointsShouldFailtestStepIntoQuickMethodMetacello-Core#testCleanUnusedUnreferencedPackagesAtestSimilarToAnnotationOfSameClassWhenBothDoNotDefinedWithContexttestBasicViolinPlot0testCreateAndChangeWithoutCommentDoesNotAnnouncecumulativeCounts(test0FixtureIterateSequencedReadableTestexampleLiteralByteString!testHandlingWithSeveralExclusionsexpandMacrosWith:with:with:testNewLineAfterCascadetestInvalidPragma2testSupplyAnswerOfFillInTheBlankUsingDefaultAnswerSystem-HistorytestReadFromManyDigits%testAllInstanceVariablesDefiningClassround: testSNIPagetestReturnHasNoPeriodSpec2-Morphic-Backend-TeststestReadOnlyFileNamedremoveDuplicates&testSmartDoubleQuoteSurroundsSelectiontestSubtractiontestUndefinedVariabletestLazyClassVariablePrint6testRefersToLiteralsReturnsTrueWhenLiteralIsByteSymboltestSelectThenCollectOnEmptytestPushDownMethodDriverWhenAbstractClassExpectBreakingChanges testAllEasingfoo:bar:testRenamePackageToOwnTagNametestMarshallingSize_ttestExampleToDoOutsideTemp testSubtrees6testExplicitNotifyUnexistentPropertyChangedRaisesError testImportAMethodWithNoTimestampisClosePunctuation:testRehashPreservesCapacitySystemCommands-PackageCommandstestOrEnvironmenttestRemoveTaggedClassestestCopyUpToWithDuplicatetestMicInputfilePath testPrintHalttestAsFloatPoint#testConvertingWithExtraBasisObjectstestLastNElementstestOldPharoConfigurationtestPushLiteralVariableBytecodeRing-MonticellotestToDoArgument#testNewLineAfterBracesWhenMultiline)testSettingCompletionFromEditorToTextArea(testAllDependentPackagesFromSeenPackages"testSupplySameAnswerToAllQuestionsTool-ImageCleaner"testNewObjectCentricBreakpointItem4testCompletionWithNoElementsToFetchShouldNotHaveMoreMtestAndMakeSureSuperTearDownIsCalledAsLastMessageInTearDownMethodsOfTestCasesprintOn: allPairsDo:adaptToPoint:andSend:t&testSmartCharacterWithEventSelfClosingCollections-TeststestDisplayEmptySlotstestVisitHttpLinktestReentrantBlock LGitLibrarytestAsReferencetestGettingExistingClass,testWithBottomDoesNotProduceInvalidRectangle&testAsNumberNegatedWithoutDecimalPointtestLiteralVariableGlobale7testFutureFailureCallbackIsCalledAfterFailureIsDeployed#testInputFileOnOneLineWithJunkAfter+testSkipCannotSkipReturnIfItIsTheLastReturn KeyboardKeytestEmptyBlockTwoArgumentstestLastIndexOfStartingAttestSignedLongLongItestCollectionWithSingleWithALotOfElementsReturnsTheRequestedInCollectiontestExampleToDoValuetestInlineBlockCollectionSD1testExactMatchNewTools-Scopes-EditortestSqrt#testClickOnCanvasUnselectsAllShapestestAPIFromMessageSendReceivertestEnvironmentOfOrganization+testSearchingInvalidTextDoesNotReturnResulttestFloatTruncatedtestTransfersSingleClient$testExampleAccessOuterFromCleanBlocktestIsBytesLayout3testFutureSuccessCallbackExecutesInSameWorkerRunnertestParseLineWithOneCharacterpostestAllEntries ReflectivitytestNewVariableBreakpointItemtest0IndexAccessingTestFileSystem-Memory-TeststestBasedOnBasisObject testBasicGettestNoneSatisfyEmptyoptionOptimizeIRtestResumablePasstestBoldsAndNestedItalicstestCreateVariableClassNamedtestRenameProtocolAstestNewLineBeforeCascade%testMetaclassTraitImplicitEnvironment#testTerminationDuringNestedUnwindR2testAnnotatedBlockTextElementstestAllSatisfyEmptytestUnifyClassTraittestObjectAllSubclassesfirst: DictionaryMonticelloTonel-Tests-Mocks6testAnnouncementClassRemovedIsRaisedOnRemoveFromSystemtestStoreOnRoundTrip testAssignmentOfGlobalVarBinding2testGettingAllRedefinedInstancesShouldCleanGarbagetestBasedOnEmptyBasistestExampleTempNamedTempVector2!testVersionInImageHeaderIsCorrect"testConvertingToSomeHierarchyScopeThreadedFFI-TeststestExtractSetupExample3testUsingMethodsFFItestLessThanLessThan testBasicSizetestInitializeWidgetstestExistingClassWithClassSlotMorphic-Widgets-MenubartestShiftUpShortStack/testCaseInsensitiveFilterIsNotNarrowThanNegated testIsNilanItemtestDefaultMetaclasstestTranslateMiddleRightTotestAssignTemporaryVariable*testSelectShapesWithModelOnlyUsingCommandAtestHasNOCaptiontest04addBefore6testRestoredBrowserInstanceWithExpectedFlatQueryResult testIsLiteralprintOn:delimiter:)Calypso-SystemQueries-Tests-PExtendedByP1-testMonticelloInitializersAreEnabledByDefaultCalypso-SystemTools-FullBrowser$testBlockWithEnclosedBlockSourceNodetestExampleSimpleBlocktestMultipleSequenceFormats0testAssociationAtNonexistantKeyExecutesFailBlockNautilusRefactoring-TeststestRaisedTo02-testBestNodeWithValidPostionOnMethodPeriodEnd testStackAttestComposeStackTest!testNoEquivalentSuperclassMethodstestFindThisMethodWithFullClasstestAnonymousSubclasstestChainBehaviorResetChainCtestClassSideInitializeMethodNeedsToBeInClassInitializationProtocoltestReadInContexttestModifyingSuperclass testRandomtestClassWithInstanceSideImpactPtestWhenWeHaveTheRubTextFieldAreaInsideOtherMorphHasToHonorTheExtentAssignedToIt newStreamtestZoomToFitOnStart$testStopServiceStopsUnderlyingWorker Athens-CairotestWorkingDirectoryParenttestZeroElementContainstestChangeAddOne-testSmartDoubleQuoteSurroundsEscapesSelectiontestAddSlotAndMigratetestCopyCreatesNewObjecttestPointNearestTo0testHasEqualElementsOfIdenticalCollectionObjectstestIndexOfKey-testDeprecatedAliasesAreRemovedByClassRemoval lineEndingtestwhichSelectorsAccesstestWatchVariableReadsInObjecttestCanUnderstandtestCommentNotBasicFormat"testExtraIndentationWhenMultiline3testResizingClosingtestAncestorMergetestProtocolNamedtestAddInheritanceDependencies testEquals3testWithPackages"testNextManyShouldReturnCollection"testCaptureIfSignalledWhenSteppingtestStepIntoReturnSelfMethod testHasOptiontestBorderWidthHomogeneous#testEnvironmentWithAnyNestedElement#testNilIfNotNilDoesNotEvaluateBlocktestPrimitiveNumbertestSkipUpToNodetest0FixtureCloneTest#testKeyStrokeBackSpaceWithMaxLength"testPassingLongStructByCopyInPharo+testBehaviorDefinitionModifiedForSuperclassGraphics-PrimitivestestIndexOfStartingAtIfAbsent!testConvertFromNonDecimalFractiontestLasttestFormatCommentWithStatement$testFlatCollectAsWithEmptyCollection@testMoveToNodeInTheMiddleOfStatementSkipsTheBeginningOfStatementHtestDoesNotContainReferenceWhenUsingDifferentInstancesOfMemoryFileSystemtestCollectThenDoOnEmpty&testParseWindowsPathWithUnixDelimiterstestShouldShowCellLabelsIsTrueseparatorBlockSystem-CachingisCurrencySymbol:8testComparisonOfSameQueriesWithDifferentRequestedContenttestAddOneElementAndModifyClasstestInferiorWithFloat)testDontRetainBlankLinesBetweenStatementstestTestPackageNamestestConversionToTraittestMarkerShapetestExtractSetupExample4testDotDotParent testInstVarmrtestSizeLongLongaColor FileLocatortestDecreasedValueFromtestIsVariableBindingsecondtestIncludesAssociationtestCreateVariableClassWithAlltestDigitTooLargeForARadixtheOther"testAnnouncerSuspendingWithStoringtestTimesRepeatWithTempInBlockjoinTo:testKeyAtValuetestCopyEmptyMethodFonts-Infrastructure-TeststestRemoveProtocolAnnouncement38testIncludeForbiddenClassesAsSpecialForbiddenAnnotations0testBestNodeWithValidPostionOnReturningMethodEndtestDigitAtPuttestIsAssignmenttestSuperiorToMinimum"testTraitIfClassTraitAlreadyExistscompare:with:collated:sorttestThreadSafe%test0TSequencedStructuralEqualityTesttestUnorderedList Morphic-Base foundBlocktestSumSignedInt8testAllUnresolvedtestPrimeFactorstestCopySignTotestKeysAndValuesRemove#testHasSelectorSpecialSelectorIndexBaselineOfClassParserextensionWithDelimitertestComparisontestTraitImplicitEnvironmentor:/testConfidenceIntervalMinIsGreaterThanQuartile1+testClassRepackagedNotFiredAtAClassAdditiontestBreakpointOnTempWrites splitOn:do:BaselineOfColorPicker/testConvertingToAnotherScopeClassShouldKeepName testMainPage testRemovetestMorphInline testMinorAxis+testCreateTraitUsingAnotherTraitComposition+testAsIdentitySetWithIdentityEqualsElements findSelector pieceBlocknonEmptyStringtestDoItHaltBindingtestUpdatingSelectionsOnUpdate Roassal-Spectest10removeFirst9testMethodsOfTheClassShouldNotBeRepeatedInItsSuperclassestestNoUnusedClassVariablesLefttestAllButLastNElements appreciatetestZeroElementRectanglewrittentestFindThisMethod trueString,testDictionaryConcatenationWithoutCommonKeystestSetBandwidthorigin:corner: testNoSearchtestMultiPackageMerge2 testLabel2 difference:testOpenPresenterIsDisplayed(testAtIfPresentWithGarbageCollectedValue testVmBinary#testConvertingWithNewRequiredResultreader=testInitializeFilterDropListSelectedItemShouldBeDefaultFiltertestAllInstructionstestExampleSimpleBlockNested%testDetectIfFoundWhenSomethingIsFoundCommander-Spec2-CompatibilitytestCategoriestestOpenPresenterIsBuilttestOpenCanConsumeLinetestCompletionOpenOnUnderscore isKeywordtestDoublePragmatestBoldWrappedElements testPcInOuter*testSupplySeveralAnswersToSeveralQuestionsRoassal-Layouts-Util!testCreateWithCommentDoesAnnounce testSubstituteVariableAtIntervaltestUnclosedFigure#testCreateClassWithTwoClassVariable,testFutureOnDoFailsOnFailingExceptionHandlertestActiveHomeCleantestFutureFallbackToHasSecondValueIfFirstFailsAndSecondSuccess0Calypso-SystemPlugins-Reflectivity-Queries-TestsAtestPackageOfClassForClassesNotDefinedInPackageButJustExtendingItNtestOneCanProceedWhenIntroducingClasseVariablesBeginingWithLowerCaseCharacterstestAllByteEncoderDomains testIfNiltestNotNilIfNilReturnsReceivertestContainsPointInRTree reflection: testSlideBloc newCollectionhtestSourceNodeOptimizedBlocktestProtoObject includesSubstring:caseSensitive:encoder digitValue: testBehavior&testSubstringFilterReturnsValidResultsClassAnnotation-TeststestWatchVariableInClass#testTestCasesEndsWithTestOrTestCasetestMethodsAccessingSlot testDelayPi6testAcceptTwoEntriesAtDifferentIndexLogsSeparateCountsSystem-Object Events-TeststestDoubleWordClass+testEqualMethodNeedsToBeInComparingProtocol newSubstring testDequeuetestLargePrimesUpTotestWithIndexDotest testReadUpTotestUpperLimitsWithtestCacheDectivationtestBehaviorRepackagedChangetestHash2testSettingEnvValueDuringChangesValueInDuringBlocktestModifyLabeltestBadPathVariableIsusedtestByteCanExtendBytetestWriteStreamtestExclamationMarktestBaseAndExtensiontest2BitDisplaytestPrimGreaterOrEqual@testChangeRecordsForMethod"testCurlyBraceDoesNotLeadToProblemBaselineOfMonticellotestBuildMessageHeuristicKernel!testEmbeddedOrderedWithFormattingSettings-Graphics*testGoodPathClassIsUnusedEmptyNoSubclassestestThreeElementstestExampleToDoInsideTemp test5kClasses combinationtestInlineBlockCollectionLR1cornertestAfterIfAbsent!testCanCreateFtpRepositoryFromUrl*testRedundantPAckageTagRenameWithAbsentTag testisUsed=testCompletionCompositionNextManyShouldStopAfterEndOfElementsspace pathStringtestDynamicDescription&testAndWithLeftFalseShortcircuitsRightcrBaselineOfSpec2testForgettingAnnotationtestAddIconToTheme!testServiceExecutesTearDownOnStoptestAsAbsoluteIdentity"testLinearLocatorNumberOfTicksIsOktestTwoLevelListtestOneSpaceInsideArraytestScheduleExecutestestIfEqualIsTransitive)Calypso-SystemTools-OldToolCompatibillity&testRetainBlankLinesBetweenStatements3testExtractDatasetFromValuetestRedotestSemaphoreTimeouttestBasicStatisticalMeasures testInferior1testGlobalCounterReferenceAfterRemovingFromMethodAtestInsettingSmallerThanRectangleExtentShouldProduceCorrectExtentTool-MorphicProfilertestIsPowerOfTwo)Calypso-SystemQueries-Tests-PExtendedByP5testIsVisitedOrInStack isLowercasehuetestDisableEnableBreakpointtestDefaultImage0testComparisonOfTwoAnnotationsWithDifferentClass testWidth testIsReflex)testFalseIfFalseIfTrueEvaluatesFalseBlocktestAsIntegerPointtestLocalSelectors raisedTo:(testUpdateMethodAnnounceRecategorization(testEditClassOrPackageScopeRemovingClass testIfCutDoWithCutAndUncutsFirst/testNilIfNotNilWithArgumentDoesNotEvaluateBlock/testUndeclaredVariableWhenItIsAlreadyRegistered%testRemoveElementReallyRemovesElementunzip)testImplicitConversionFromClassProperties6testRemoveExtensionMethodDoesNotRemoveExtendingPackagetestIndexOfWithDuplicatestestCopyWithoutIndex Calypso-SystemTools-QueryBrowsertestIncludesAnyAllTheretestInferiorOrEqualsWithFloat UIManager truncatedtestChildDirectories currentIndextestReflectiveReadWritetestKeywordOnMultipleLine15OpalCompiler-UItestDoEvaluateDeclareGlobal testGhostTexttestRemoveAllExtensionMethodsRemoveTheClassFromExtendedClasses'testReturnsAsManyWaitsAsSignalsReceivedtestMedianForOddSizeCollectionHalfpi1testNotIncludeForbiddenClassesAsBrokenAnnotations$SystemCommands-PackageCommands-Tests+testOnlyOneMethodInMicrodownDefinesSettings testUTF16BackprimesUpTo:do:testAllButLastDoSpec2-Code-Diff-Tests'testAsNumberNegatedWithoutDecimalPoint2Kernel-CodeModel-Tests/testPackageScopeIncludesClassCreatedAPosterioritestMessageArguments#testKeyAtValueIfAbsentLocalyDefinedtestEmptyClassVariable testCycle01)testFigureWithParenthesesInsteadOfBrackettestNewLinesAfterGluedCommenttestXor9testWhenChangeDirectoryShouldFilesListContainsHisChildren thisValueIceberg-Metacello-Integration Kernel-Testsh:s:v:greentestBetatestMultipleExtensions aCollectiontestPointersTotestNotifyDebugPointAddedtestSimultaneousRemove testOnErrorDo"testAddNonEmptyGrowsWhenNewElement0testRenamePackageAlsoRenameAllExtensionProtocolstestHighlightAllShapestestJustTheArgumentstestAsNumberWithoutDecimalPoint%testEnvironmentWithBrokenMotherNested testBasicstestNoNewLineAfterCascade2possibleParenstestPrintRelativeWithParentItestPeriodAtEndOfMethodWithMultipleElementArrayShouldNotHavePointAtTheEnd Text-Scanning testInfinity1Native-BrowsertestAddExtensionProtocoltestResolveString6testRefersToLiteralsReturnsTrueWhenLiteralIsByteStringtestJumpOnCommentsNewTools-DocumentBrowsertestSplitJoinStringOnChar asWideStringtestSimpleDefinitionClassNodecloseTo:precision:testAsIdentitySet5testIsMessageSentInSystemWithTheSelectorInsideAnArrayBasicCommandLineHandlertestRelativeToBranchtestAnnotationBasictestWritesTemporaryVariabletestAnySatisfytestReturnTrueBytecode testMerge3testPrimIdentitytestWithSharedVariable)testExampleTempNamedTempVectorNestedBlockManifest-Resources-Tests testCompacttestKeywordOnMultipleLine10testBuilderWithSlots testCycle04 testBasic testContinueEncoutersAnExceptiontestReadStreamIfAbsent FFI-Kernel testBitXortestWriteComputedSlotCompiledtestRemoveLastNElements%testNoNilAssignmentInInitializeMethodnewSizetestShortStacktestPossiblyUsingClassestestEmptyCommentDoesNotAnnounce7testOptimisedValueSpecialSendsMessageDoesNotCaptureSend1testSharedSlotNodeArePolymorphicToRBVariableNodestestCompactClassTemplatetestCreateBuilder(testComparisonOfFunctionsDefinedBySymbol testSelector+testPackageTagRemovalWithPackageTagAdditiontestUpdateAllSettingstestAreEmptyForUnusedAnnotation,testRedundantMethodRemovalWithAbsentBehaviortestNewLineBetweenStatement testMathBlock=polynomialEval:testUnresolvedValue flatCollect: Ombu-TeststestInvalidPrimitiveKernel-ExtraUtilstestBasedOnSingleBasis*testConfidencePercentageIsCorrectlyChangedtestProtocolNamestestPharoVersionFileExists1testSplitBlockLinkWithBracketInsteadOfParenthesestestNextPutAlltestExampleTwoBooleanSlotsgroupsOf:atATimeCollect:testEmptyBlockZeroArgumentsBaselineOfFueltestRightRotatedtestResetShouldRestartGeneratorfindBinary:do:ifNone:testSplitJoinStringOnStringtestAddProtocolWithRealProtocoltestUnclosedMathtestBreakDebugPointtestBuildLiteralArrayHeuristic testLiteralVariableClassVariabletestDigitsAccesstestRemoveAllErrorisStringtestInstallMinimalMockClasstestExampleSlotWithState testTooLongBlockBodyWithArgumentouttestCompileSymboltestRemoveFirstNElementstestRedundantMethodAdditiontestHasNoArguments testReadsSelf)testDictionaryConcatenationWithCommonKeystestValueWithPossibleArgumenttestByteArrayBasetestIndexOfSearch testReceiver1testComparisonOfSimilarQueriesWithDifferentScopestestUnaryNoExtraSpacesAfter2isSymboltestRemoveFirstNotPresenttestBasicCoveragetestSizeUnsignedIntEnum testEqualityperform: caseSensitivefooFormatter-SettingstestMonospacesWithBackSlashtestAsFormWithExtentargstestAnimatedColorsOutIn#testNotNilIfNilDoesNotEvaluateBlocktestDefinitionWithClasstestGroupedUndo1testTallyMethodsBaselineOfMorphicCoretestPrintStringHex currentChartestRestoreWindowtestPositionErrorstestDependenciesFrom testAcceptEntryIncrementsAverage testBitShift testLookingSubstringShowsResultstestNotifyArgumentBreakpointHit testAsBit%testNoChangeInSharedVariablesDetected testBmp16BittestRenamePackageWithExtensionstestUnaryNoExtraSpacesAfter)testReadIntoStartingAtCountFromStreamWidetestLineStartStringContainingCR,testBadPathRemovingNonEmptySubWithSubclasses2testJPGPPreviewerCanBeUsedOnParameterFileReference testAreCachedtestHasPackageCaseInsensitivetestAssociation testIsEnabledtestEndPeriodInsidetestLinkCreatesInnerTextfoo:$SystemCommands-MessageCommands-TeststestHasPropertytestReturnNilBytecodeTranscript-CoretestMarshallingOOPIsSameObjecttestMigrateTestSlotkeysAndValuesDo:testJoinStringUsingStringBaselineOfRoassalisEnclosingMark:testReferenceConfigtestUTF32EncoderExampleFromD99testGlobasPathtestRemoveSelectorByAndAndNot testDoItHaltJtestPushDownMethodDriverWhenSubclassesReferToSelectorExpectBreakingChangestestPngDecodingColors16testSaveOneValueSmallDictionaryacceptUnknownClasses:testCreationByUnresolvedNamedtestCheckIfAnnotatesGivenClassIceberg-Plugin-MigrationtestTraitRemovalWithTraitAddedtestCustomWeight.testTrueIfTrueEvaluateBlockWithTempInsideBlocktestConvertingToInheritingScopeoptionInlineRepeattestStopRecordingRottenTestsFinder-Tests testNewFromstrtestRemoveProtocoltestEmptyIndexesArraytestPrimNewWith falseStringtestMonospaceUnevaluatedtestVariableClassWithTraitCreatedShouldntAnnounceClassModifiedtestWithSharedPooltestSimpleColumnMetacello-GitBasedRepositorytestPrintPaddedWithTotestSerializeStackFromContexttestOrderedListDuring testSetLabeladd:testWithRB10WithError%testMergeWithFontRemovePredefinedFont#testDynamicVariableBlockReturnValuetestEnvironmentWithArgumentsoptionInlineToDo+testGlobalCounterReferenceAfterInstallationPtestWhenAddACollectionOfBookmarkToCustomBookmarkShouldBeAddedToBookmarkTreeTable EventManager,testSupplyAnswerUsingOnlySubstringOfQuestion isUppercase9testBestNodeWithInvalidMethodIncompleteMidSourceOnMessagetestPushClassVariable testMinMaxtestSplitJoinOnSequenceisDigittestWithCollect.testButtonDownClickShouldModifiedArgumentsList"testSelectionInFontStyleListIsKeptsenderSpec2-Microdown placesDesiredtestUnrestrictedClassVariabletestPrintVariableBreakpointItemtestAllMethods*testBuildVariableInstanceVariableHeuristictestCreationOnBasisObjectstestRejectAllThenCollect testReject!testPackageNamedWithDifferentCaseSpec2-Morphic-Tests testLabeled02testValidTraitComposition3testCustomLineBreakingtestBindToEnvironmentstreamContents:limitedTo: CSSeparatorsDrTests-TestsProfiling%testNoNewLineBetweenVariableAndIfTrue groupedBy:testToDoWithTempOutsideBlockSystem-Settings-CoretestWeakClassIsWeaktestExternalLinkWithItalic testAddClasstestDeclareInstVarBlocktestCommentWithStyletestSumSignedShorttestLiteralBooleantestOnLimitLimitBlock&test0FixtureIndexAccessFotMultipliness testPalettesAnnouncements-Core-TeststestSelectedTabsWithoutBrowsertestPushTemporaryVariable(testSkipSkipsSuperSendBytecodesCorrectly testSpaceFillMonticelloFileTree-CoretestDoubleClickFromMorphtestMethod1forMocktestAsLargerPowerOfTwoifTokenstestSignedInt32 testCopyEmptyCommander-Activators-Mouse)testRemovedSelectorsWithMultipleSelectorstestWithFromTotestNestedTimesRepeattestRedundantMethodRemovalprint:testExamplePrimitiveErrorModuletestDensityPlotDefaultValuesprivateMaxComponent%testLastClickedMorphSetUponUpdateListMonticelloTonel-FileSystem7testChangeInSuperclassShouldNotAnnounceSubclassModifiedasScaledDecimal:testNumericTypestestMouseLeaveFromMorphprintStringHextestBorderWidthNotHomogeneoustestIncludesElementIsTheretestHasLiteraltestBasenameNoParenttestDraggingModifiesValue)testCreationByCommaWithCompatibleArgument&test0FixtureDictionaryAssocitionAccesstestBackWindowsAreShownCodeImportCommandLineHandlers"testFileOutSingleTraitModificationtestSimpleOuterNewValueHolder-Core"testFutureAndThenFailsIfFirstFailstestAsSortedArray(testSelf_conditionBlockProducerMethodASTtestAddIdenticalElements&testDontRetainBlankLinesBeforeComments-testWeakOrderedCollectionSomeGarbageCollectedtestKeywordOnMultipleLine63testChangingPcRaisesErrorWhenPcIsLowerThanInitialPCtestCullCullCullCulltestwhichSelectorsWritetestTagsForClassesCollectionNECompletion-Morphic8testAcceptEntryIncrementsAverageEvenIfAtDifferentIndexes#testConvertingWithNewCompositeScopetestExtraProvisionstestCompileStringtestThisContextSourceNodetestPlustestOnceBreakOnVariable Spec2-LayouttestAssignSuperVariabletestPrimPointY!testRefreshCacheWithScanAllSystemtestAsStringOnDelimiterLastOne$testClampReturnsMaxIfNumberIsOverMaxtestObsoleteClasses nextToLasttestSumUnsignedInt8.testConfidenceIntervalMaxIsLesserThanQuartile3RunArrayNewValueHolder-Tests/testBindingsWithUppercaseNameDoOverwriteGlobalsexpandMacrosWithArguments:FreeType-GraphicsSortFunctions-TeststestIsReadInMethoddeletetestReturningAnStruct testCircle!testIteratorWithEmptyBlockIsAtEndtestWatchVariablesInClass"testRetainBlankLinesBeforeCommentstestJoinStringUsingChar testResetpositiontestMultipleDocComments testRemoveTagLtestBreakDebugPointOnVariableDetectsNewVariableAccessAfterCompilingNewMethodcountifNotNil:ifNil:(testConvertingAsRestrictedByAnotherScopetestDemoteToRPackageNamedtestMethodContexttestSplitStringOnSubstringtestScaledDecimalLiteralstestStoreSettingNode0testBuildingClassesWithSlotsClassifiesItsMethodstestIntersectionsWithLineasDigitsToPower:do:pieces testOpenOnce?testServiceInstancesAreCollectedAfterStartingAndStoppingServicetestSelectThenDo$testObjectCentricBreakOnceOnVariabletestPutNegativeSourceFileArraytestRemovingExtensionProtocoltestLoadAndUnloadtestBinaryFormatReceivertestExampleBlockExternal2testHandleEventFromtestIfNotEmpty isFloatPoint-testLazyClassVariableReflectiveBlockParametertestFillShiftClassBuilder3testIncludeCopiesForEachSubclassOfOriginDeclaration$testPassingByParameterAStructInPharotestNoEmptyProtocolshextestRuleLoadsCorrectlytestParallelAnimationCreationtestSignalFromHandlerActionTest#testClassAdditionWithCommentChangedtestNullEncoderstrm(testContextSelectorForNonBuilderSelector$testNonResumableFallOffTheEndHandlertestDelayWaitTimeoutCompletedhighBitOfPositiveReceivertestPrimPointXtestAddSameWatchSameNodeFormCanvas-Tests'testVennDiagramConvertsBigSetInputToSettest0FixtureCreationWithTestaStreamtestWaitTimeoutMSecstestWriteSeparatorOnKeymapping-Pragmasminutes: asFloatPointelmsplitterquote testTransformBaselineOfMetacello#test0FixtureIncludeWithIdentityTest.testConfidenceIntervalMinIsLesserThanQuartile1testIncludesMethodtestPrintShowingDecimalPlaces3testLinkBoldAPIToAccessTexttestAsCommaStringEmpty-testFutureFailureCallbackExecutesInSameWorkertestTokensInUnicodeSystem-Supportboolean8AtOffset:!NewTools-Spotter-Processors-TeststestAtIfPresentIfAbsentPut testNextWordtestClassWithoutImpactBeacon-Core-Tests&testBuildClassWithSuperclassWithTraits!testHorizontalBlockFollowedByList1testRemoveSelectorDoesNotAnnounceRecategorizationtestIsCompiledMethodLayouttestLimitBlocktestSiblingBlocksTempShadowing sum:ifEmpty: testIsSortedtestDependencies testHexStringtestUnmatchedCommentQuote+testSkipCanSkipReturnIfItIsNotTheLastReturntestHistoryGreaterThanThreeoccurrencesOf:to:,testTerminationDuringNestedUnwindWithReturn1"test0FixtureDictionaryRemovingTest testBehaviornewnewShouldNotCrashtestPatternCodefindBinaryIndex:do:ifNone:(testTAddIfNotPresentWithElementAlreadyIntestHorizontal from:to:do: descendingtestMissingMessageAfterACascade Zinc-Tests testSetColor/testOtherInstancesOfSystemDictionaryPrintString testRedAreatestScaleExtensionHiedra&testCannotStartTwoServicesWithSameNametestTagsCollection#testContainsOnlyExtensionDependency:Calypso-SystemPlugins-Traits-Queries-Tests-PExtendingTrait"testTwoComplementBitLogicWithCarrytestSlotNodeBinding testIsObtuseasArray$testClassifyUnderAnnounceNewProtocol padWithZeroescol testOpenLog(testDetectOneChangeDetectedAndOneIgnoredtestForeignMethodModified)testHasProtocolWithProtocolFromOtherClassAthens-Cairo-Tests testDivisionelem*testInlinedBlockArgumentIsArgumentVariabletestDefinedClassIsUndefinedtestHeaderAPIToSetTexttestNoZoomToFitOnExtendChangedkkZnServerNSPerlinNoise2testIntervalStoreOn)Calypso-SystemPlugins-Deprecation-Queries:testUpdateNodesForVariableDebugPointAfterRecompilingMethodtestSelectWord*testReadIntoStartingAtCountFromStreamAtEndtestStepToReturnWithExceptiontest8BitDisplay4testArrayBindingsWithUppercaseNameDoOverwriteGlobalstestTempNamedPuttestReadStreamDoworldBtestBroaderFilterCompletionShouldBroadenResultsWhenCaseInsensitive testBuildVariableGlobalHeuristicthirdtestRetrievesActiveScopetestBreakOnAccesstestOneElementRectangle[testIncludesClasstestJumpOnAssignmentproperty:collatedWith:BaselineOfExternalProjectLoadertestIfCutDoWithCutAndUncutshumanReadableSISizeOn:atEnd3testMethodsAccessingPoolVariablesFindsVariableUserstestMigrateClassVartestGmailEncryptedtestAlphaCompositingSimulated%testThreeBackQuotesClosedByFourQuotestestRechainNilValue!testWriteTemporaryVariablesMethodText-Diff-Tests*testKeyAtNonexistantValueExecutesFailBlocktestMedianWithNumbers$testSearchingVeDoesNotIncludeIcebergCtestShouldFileLocatorBeBeforeSystemSettingsPersistenceInStartupListexponent testAddItem1)testSearchForRegexpStartWithCaseSensitivecorner: testIsIntegertestEqualityRelativeVsAbsolute!testWorkerRunsAlwaysInSameProcess'testFutureSelectFailsOnFailingPredicatetestSizeSignedShort ifNotNil:testUnclosedBold testLinksDo StrikeFont(testRevertCurrentMethodToSelectedVersiontestConfidenceIntervalIsOk'testTruncatedToSizeLargerThanCollectiontestBehaviorWithMethodTags collect:as: ReadStream testAddOnetestAddClassSettingPackageTag passArraytestInstanceCreationMajorMinorseed:testModifyingClassSideInstancestestUsingMethodstestStylerTitleLabel7testFutureFailureCallbackExecutesInSameNewProcessRunnertestUnaryFormatReceiver testLayouttestAsClassVariableCollectiontestBacktestServiceShouldHaveANametestNotifyDebugPointRemovedOtestAddMethodInExtensionCategoryNotRespectingCaseAddMethodToTheExtendingPackage testPrintOn allButLast#testRetainBlankLinesBeforeComments2+testNewScopeFromAPackageWithExtendedClasses#testDataMatrixShouldHaveTheSameSize3testIncludesKeyAnswerFalseForGarbageCollectedValuestestBlockAndContextSourceNode)testMergeWithPredefinedFontCanBeDecoratedtestAssignment allButFirsttestFractionPart testExactSqrt padLengthtestByteCannotExtendWord testEqual classNameKeySystem-Identification-Tests%testEscapeAsLastCharacterDoesNotBreak SharedRandomtestNewHaltItemtestTraitRemovaltestIntersectiontestTraitUsersAfterClassReshape smallSize Clap-Tests testTopStackexpectedLiteralValueSystem-Settings-Browser"testExtraIndentationWhenMultiline2#testRelativeFromStringNormalizationtestPremultiplytestRedefiningInstanceTwiceSystem-Settings-Tests test2DVectortestUnregisterPackage*test32BitFormBlackShouldStayBlackAfterSavetestVersionNumberForExtensiontestAsSortFunctiontestByteArrayParenthesistestNegatedSearch FuzzyMatchertestGet075QuantileInvertedCDF1test0FixtureCopyWithOrWithoutSpecificElementsTesttestDrawingWayOutside44testFilterCompletionAfterFetchingShouldNarrowResults#testTerminationDuringNestedUnwindB2testBackWindowsAreFindtestRawWitoutClosureRing-TraitsSupport testDeepCopytestSkiproundedtestDetectThreeChangesexampleLiteralBoxedFloattestAreasOutside1testMaxLengthIsSet1testNotIncludeInstancesAnnotatingForbiddenClassestestParseBogustestallMethodsAccessingSlotNewTools-Debugger-TeststestRedundantClassAdditionQtestAddMethodInExtensionCategoryNotExistingCreateANewPackageAndInstallsMethodInIttestSortResultArrayskipTo:testItalicsWithoutClosureat:BaselineOfGeometry allButLast:testSerializeContextToFileNamedtestWidenOnCommentstestFastPointersTo testLengthtestWatchDebugPoint NewTools-FueltestOccurrencesOf testSuperiortestIncludesKeytestSeriousBalance testSlotNodesHaveParentReference6testNewLineAfterFirstBracketWhenMultilineWithArgumentstestPackageNamedIfAbsent!testAnchorBlockFollowingEachOther6testPopularStringDoesReturnOnlyTwentyResultsForPackageextractBlockInTemp otherPoint.testIfNotNil0ArgtestTwoSingleParagraphs)testAtGarbageCollectedValueRaisesNotFoundtestExtractDatasetFromBlock$Calypso-SystemPlugins-Critic-BrowserKeymapping-TestsrunningAverage:&testButtonDownClickWithoutSelectOptiontestFullPrintOntestWriteAndReadCompiledtestMouseUpFromMorphMonticello-TeststestSimpleTableNoErrortestIdentityIndexOfKeyIfAbsenttestAccessesRef(testProperInstanceCreationProtocolIsUsed$testLineBetweenTemporariesAndComment'testProtocolAdditionWithProtocolRemoved IdentitySettestClassSideEmptyBaselineOfSlotkey Traits-TestsfillFrom:with:testNegativeZeroAbstestDifferentBases*testNextVersionAlphabeticVersionedFilename testNoChangeInSuperclassDetectedSequenceableCollectiontestChangingFormatKeepsMethodtestDisableCheckChildrenActionstestExtensionMethodModified*testMethodClassBindingShouldBeClassBindingtest0TStructuralEqualityTesttestSingleSlashDtestMethodDefinitionWithEmptyProtocolIsClassifiedAsAsYetUnclassified testLineStartIsInitializedToZerotestHighlightShapestestToDoInsideTemp#testKeywordFormatReceiverAssignmentSUnit-Support-UITesting-Tests"testBehaviorWithCategorizedMethodstestWindowsAbsolutePathName$testProtocolRemovalWithProtocolAddedfoo:: testCloseTotestOnDo testFactorialNumericInterpolatortestDoNotUseNiceLabeltestSelectedTabsWithoutOwnertestEnsureDeletetestRemovedSelectorstestErrorCatch,testAccessingBlockArgumentNoneOptimizedBlocktestLongSingleArgumenttestDependenciesSizeTotestHasFilesTypedtestCompileCharacterwrite Association testHasFiles roundUpTo:darker testPassingNestedStructByCopyInCtestPickedChangesdecimalDigitLength!testRegisteredNumberOfPackageIsOk#testNotNilIfNotNilReturnsBlockValuetestClassSideExamples testSingleLevelList2WithNoIndenttestNoChangeOfMetaclassDetectedtestEndsWithAnyOftestKeywordOnMultipleLine9testGifWriteReadInMemory Random-TestsVariablesLibrary*testRestoredBrowserInstanceWithQueryScopestestLogLocatorSmallestIndexIsCorrectAfterChangingSmallestPower3testSkipToPcDoesNotLoopWhenAimedPcIsBeforeCurrentPc put:onStream:(testPrimitiveMethodSourceNodeAtInitialPC*testDemoteToRPackageNamedMultilevelPackagetestAssignmentValuetestRevertToInContexttestMaxYValueIsOutlierunescapeCharacter:testByteEncoderFromUrltestEqualsSensitivitytestAtLastError testMerge7testBoxPlotWithOneBoxShape!Ring-Definitions-Tests-ContainerstestBuildLiteralHeuristicExternalProjectLoadertestAtLastIfAbsenttestRenameTargetExiststestAddTwoElementsHistoryReadraisedToInteger:testPath$testShouldAcceptIntegerWithoutMinMax testPercenttestTagtestFractionAsFloat2testCombinationsTakentestExampleIfTrueIfFalse BlueShifttestKeyAtValueIfAbsent!testConstPlaceInTransformedMethodtestCopyUpToEmpty.testFillingWithTwoClassWhichInheriteSameTraits testNextPutAllStartingAtToStreamnew:testDo2testIsConfigurationNameZinc-Character-Encoding-Core hslSaturationtestRemoveIfAbsentRefactoring-Critics myElementtestHugeFontIsHuge testFromToPutGraphics-Fonts numeratortestStepIntoQuickMethodBooleantestIsInternalv1:testPngDecodingColors32testLinkAPIToSetText/testAsOrderedCollectionReturnsOrderedCollectiontestUndoMorphic-Widgets-TaskbartestArgumentAt flattenedtestThreeRemoveFirststreamContents:(testDefinedClassesInstanceAndMetaSideAPItestSelectWordMarkPointtestInexactNthRoottestUnknownSlot*-testSizeSignedInt64testBreakpointOnClassVarReadsresettestTrueOrAnythingReturnsTruetestUnixAbsolutePathNametestFirstTagValuea>testCreateSubclassOfArbitraryExpressionReturningNilThrowsError*testMethodAdditionWithMethodAlreadyRemovedtestHasParameterstestBrowserEnvironment collectBlock testFileReferenceExtensionMethodDebugger-Model5testInferInstanceVariableNotUsedInInitializeHasNoType Spec2-Dialogs*testInitializedClassVariableReadReflectivetestAllSlotNamesFor&testChevronIsWorkingOnClassSideOnEmptyNewTools-Debugger-FueltestToDoWithTempInBlocktestParseFontVariable TaskIt-TeststestBuilderWithTraitstestMoveClassToTagInDefaultTagtestGoodPathVariableIsUnused intersection:testRemoveAllPreservesCapacitytestSignalWithTagNetwork-Protocols separators&test0FixtureCopyPartOfSequenceableTesttestRaws#testPackageOfClassForDefinedClasses)testBlockWithLiteralReturnsLastExpressiontestHasLabelTruetestConstantBlockClosure3testRemoveExtensionMethodRemoveMethodFromItsPackagetestSizeUnsignedLongLongtestSingleParagraphtestOptimizedBlockLocalNilling2!testSequenceOfMethodModifications testClearFlagtestRemoveMethodWithBreakpointexampleLiteralByteSymboltestClassMethodDefinitionotherCollectionBaselineOfSUnit uncapitalizedtestNestedNodestestPrintPathOnDelimitertestInstVarNamedPut*testClassDefFromLegacyStringHasSharedSlots testPharoCodetestComplexClassVariablesCascaetestThreeElementsContains,testModifyingClassKeepsOrganizationOfMethodstestOriginBasename!testAnnounceWhenShapesAreSelectedtestIsFloatPoint%aDictionaryOrCollectionOfAssociations!testEscapeCharacterTwoConsecutivetestSumUpToLimit1iCalypso-NavigationModel-Tests testSetTitletestWithAxisLabeltestClassVariablesString add:before:testCascadingUnresolvedBaselineOfGeneralTestsnumberOfCombinationsTaken:testCopyAfterLastEmptytestSingleLevelMixedListNetwork-Mail-TeststestExampleSimpleBlockArgument5testRemoveSlotAndMigrate)testMethodModificationWithProtocolChangedtestProperTestProtocolIsUsedtestBinstestWithAllUnresolvedRoassal-Layouts-Tests newObjecttestRootReferenceNewTools-Debugger-CommandstestRemoveFromMethodtestHeap$testExampleToDoOutsideTempNotInlined'testInitialCompletionEngineHasNoContexttestScopeOptimizedBlocktestKeywordOnMultipleLine5 testPrimBitOrtestComparisonWithSimilarResulttestEnabledHaltIsEnabled$testCanCreateGitHubRepositoryFromUrlfromCharacter:ifNone:testDescriptionTexttestDoubleBarPlotRawDatatestAllParametersIceberg-Libgit-Filetree-testMixingOrderedInsideUnorderedWithParagraphtestIntersectionsWithRayisCasedLetter:testEmbeddedUnordered badSemantictestNestedInsanity_UnpackagedPackage testAnchorIsAttachedToItsTarget2_:testBuildPragmaHeuristictestNoNewLinesAfterGluedCommenttestTraitAdditiontestCanonicalization testCachedtestInstVarNamedtestEmptyStreamtestBehaviorLocalyDefined testSpaces(testAcceptTwoEntriesAtSameIndexLogsCount!testFileOutMultipleMethodAddition%testHasNonDefaultArguments_nonDefault+testFindStClassProcessorTestWithPartialTexttestDoNotBreakSmalltalkVersiontestAttachmentelementAndIndexBlocktestAlphaCompositing2Collections-Stack testPaddingtestCannotBeRecompiledtestwhenTextStylerChangedDotestSumWithIntegerArray testAtAllPuttest8BitReversedtestSearchStringUpdateShadow*testBlockWithArgumentReturnsLastExpressiontestItalicAPIToSetText.testSelectsAbstractMethodWhichIsNotImplemented testExiststestWrappedElementOnBoldMicrodown-RichTextPresenter"Collections-DoubleLinkedList-Tests0testFutureOnDoSucceedsOnTrappingCorrectExceptiontestMoveClassToTagaa:testLabelShapeHeight!testAddPoolDictionaryDependencies2testHandlingSequenceOfBasicLinesProducesAParagraph!testTallyShouldNotContainsAReturnNtestReplaceTokenWithCaretInTheMiddleOfWordWithFollowingWordsReplacesEntireWord$testCreateAndUseStaticCompilerPlugintestInheritableVariabletest8BitColors3testGettingAllRedefiningInstancesShouldCleanGarbagetestExampleSimpleBlockLocalCalypso-Browser-TeststestOpenFolder=3{'d:#s\oEXkATFLPositive64SmallIntegerCluster ~ƀZz@ Ӟ#oHv Ӟ!ԥ ඳdT cEx] NrFLHookPrimitiveClusterQ?333333@??\(\7tJM7KƧ@N?陙@f |3!@ Q@lp@lVϪ? .1@Ul@aaao@ (\)?@L@@Yfffff?o[o\(\@$fff]`@l"h ԕ?XbM?گ%?گ%?ٙ@2t@$=p =?@@$?4֡a?mR$/@lp@$@ 333333?@?zG{@?ܒ5?ə@n@i@&P@$ffffff@ ?@$vN@7iBĿ?PbM?ڹY@ !n?.B9@@7tJM@7KƧ?tzG{?zQ@? 333333@^?yc@Y@&P{`@v@ Q?Q_@ .1?ffffffFLHookPrimitiveClusterFLHookPrimitiveCluster`"W:(FLNegative32SmallIntegerClusterFLNegative16SmallIntegerClusterFLHookPrimitiveCluster'T`abc1This should not happenshuffledBy: aRandom "Durstenfeld's version of the Fisher-Yates shuffle" "({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)" ^ self copy shuffleBy: aRandom.|a| a := #(1 2 3). a asNewArray == a >>> false*Return the minimum value of the collection03.1479b20020!'' expandMacros >>> String taba8reject: rejectBlock "Optimized version of Collection>>#reject:" "(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ stream nextPut: each ]]]d?asFloatPoint "Convert me to a float point transforming both of my coordinates to floats using #asFloat. If x and y are already represented by floats return myself, otherwise create a new Point instance." "((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)" self isFloatPoint ifTrue: [ ^ self ]. ^ x asFloat @ y asFloat #(aa:bb:cc#aa:bb:cc#cc==#== =#=)0XXaXX24abcdefgh *foo*zort-4130100112131116444455117004withIndexDo: elementAndIndexBlock "Just like do: except that the iteration index supplies the second argument to the block" "Support collection enumeration with a counter, even though not ordered" "|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 124" "|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)" | index | index := 0. self do: [:item | elementAndIndexBlock value: item value: (index := index+1)]abs "Absolute value of all elements in the collection" "#(1 -2 -4 0) abs >>> #(1 2 4 0)" "{1@ -2. -4@0} abs >>> {(1@2). (4@0)}" ^ self collect: [:a | a abs]howManyMatch: string "Count the number of characters in a substring that matches up in self and aString." "('ab ab ac de' howManyMatch: 'ab') >>> 2" "('abab ac de' howManyMatch: 'abab') >>> 4" "('ab ab ac de' howManyMatch: 'a') >>> 1" "('ab ab ac de' howManyMatch: 'z') >>> 0" | count shorterLength | count := 0. shorterLength := self size min: string size. 1 to: shorterLength do: [:index | (self at: index) = (string at: index ) ifTrue: [ count := count + 1 ]]. ^ count31RExecute the receiver with the correct number of arguments taken from the argument.20& aBoolean "Evaluating conjunction -- answer aBoolean since receiver is true." "true & true >>> true" "true & false >>> false" ^aBoolean9(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) 3epppp X c131That is false!1=([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops' 001002230{The material conditional, also known as the material implication or truth functional conditional. Correspond to not ... or ... and does not correspond to the English if...then... construction. known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication: p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T 210K('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'313030Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison.|Answer whether aPoint is within the receiver. Pay attention the self origin is considered less than but the corner is strict31040n X20010>{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)0n0Xn01Message pattern expected 21100eR((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)e book-result&ProtoObject class superclass >>> Class'('ab ab ac de' howManyMatch: 'a') >>> 1?Evaluating conjunction -- answer false since receiver is false.42?Optimized version of SequenceableCollection>>#withIndexSelect: 6foo ^ [ | a | a := 1. [ :a | a ] value: 10 + a ] value2::a.Results are not defined non-integer arguments.abcdefghSince the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line.1Details: recursively split the range to be sorted into two halves, mergesort each half, then merge the two halves together. An extra copy of the data is used as temporary storage and successive merge phases copy data back and forth between the receiver and this copy. The recursion is set up so that the final merge is performed into the receiver, resulting in the receiver being completely sorted.122223331instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self soleInstancef-('abcdefgh' includesSubstring: 'de') >>> true1AaBbCc2 self := self106102438diff: theOther "Returns a number between 0.0 and 1.0" "(Color red diff: Color red) >>> 0.0" "(Color white diff: Color black ) >>> 1.0" ^ ((self privateRed - theOther privateRed) abs + (self privateGreen - theOther privateGreen) abs + (self privateBlue - theOther privateBlue) abs) / 3.0 / ComponentMax3009b0vector0* 00000111000222000334443555333666330000 n s 157 test 101 1 hello: ZReturn an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.02[ | | x22222000011111piecesCutWhere: binaryBlock do: pieceBlock "Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements." "(Array streamContents: [:stream | #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]] do: [:each | stream nextPut: each size]]) >>> #(1 5 3)" | size lastCut this next | (size := self size) <= 1 ifTrue: [size = 1 ifTrue: [pieceBlock value: self]. ^self]. lastCut := 1. this := self at: 1. 2 to: size do: [:i| next := self at: i. (binaryBlock value: this value: next) ifTrue: [pieceBlock value: (self copyFrom: lastCut to: i - 1). lastCut := i]. this := next]. pieceBlock value: (self copyFrom: lastCut to: size)020xadefd-10NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection.EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil10102{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}2Zjoin: aCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "({Character space. Character space} join: #('Pharo' 'is' 'cool')) >>> {$P. $h. $a. $r. $o. Character space. Character space. $i. $s. Character space. Character space. $c. $o. $o. $l}" "NB: this implementation only works for Array, since WriteStreams only work for Arrays and Strings. (!) Overridden in OrderedCollection and SortedCollection." ^ self class streamContents: [:stream | aCollection do: [:each | each joinTo: stream] separatedBy: [stream nextPutAll: self]]1108%Point class classSide >>> Point class100z42.005%Answer 0 since the receiver is false.1071042pwn$(nil ifNotNil: [:o | o +3 ]) >>> nil0.98add: newObject "Include newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message." "({10. 20} asOrderedCollection add: 30) >>> 30" "({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollection" "({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollection" "({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet" "({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet" self subclassResponsibility20g${#a. #b. #z. #d} sort >>> #(a b d z)d2.0copyEmpty "Return a new empty collection based on the species" "{1@2} copyEmpty >>> #()" "'hello' copyEmpty >>> ''" "(1 to: 10) copyEmpty >>> #()" ^ self species new nnnnnnnuu215eAnswer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:200(true or: [false]) >>> true110false ==> [true] >>> true}>>> anObject "Return a pair. It is handy to support the tweaking of pharo doc expression. A pharo doc expression is a comment as the following one:" "4 + 3 >>> 7" "Pay attention when you write an executable comment for keyword-based method: surround with parentheses your expression because, otherwise the executable comment won't work as the message is binary." "(1 max: 1000) >>> 1000" "An executable comment must be in its own comment block (enclosed in double quotes) and can be multi-line for better readability. Code editor hint: you can double click on the inner side of a double quote to select the whole comment block, then Cmd+I to evaluate and inspect the whole executable comment." "Note: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement." "| rectangles | rectangles := OrderedCollection new add: (Rectangle left: 5 right: 10 top: 0 bottom: 15); add: (Rectangle left: 0 right: 15 top: 5 bottom: 10); yourself. (Rectangle merging: rectangles) >>> (Rectangle left: 0 right: 15 top: 0 bottom: 15)" ^ self -> anObject1dJ('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}6000002244454448889888B8877777777DDCCCE4433333333F #( #[ 0 1 2 )2[ :Object | Object + 1 ]2*kkkk sssssss 0 ^ n 0 ssssssss 0 ^ n 0. ^ n11Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection.400vector08Tests-unix-64-NewTools-Spotter-Processors-Tests-Test.xml [ :a || a b ](Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)3compare: aString "Answer a comparison code telling how the receiver sorts relative to aString: 1 - before 2 - equal 3 - after. The collation sequence is ascii with case differences ignored. To get the effect of a <= b, but ignoring case, use (a compare: b) <= 2." "('aa' compare: 'ab') >>> 1" "('aa' compare: 'aa') >>> 2" "('ab' compare: 'aa') >>> 3" ^self compare: aString caseSensitive: false00100042zmax "Answer a number that is the maximum of the x and y of the receiver." "(100@200) max >>> 200" ^ self x max: self y1Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true.sd(10.12345 round: 2) >>> 10.12 e:(10.12345 round: 2) >>> 10.12>( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)XXsuuu$('pharo' beginsWith: 'pha') >>> truePerform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. optimized version for single delimiters.1 100000000.01228abc13!'elvis ' lastSpacePosition >>> 7-(23 printShowingDecimalPlaces: 2) >>> '23.00'#$} isConnectorPunctuation >>> false3twode150(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 53342313(String streamContents: [:s | 'Pharo is cool' splitOn: Character space indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '40LAdd a new object at the end of the collection, and returns the object itselfColor red green >>> 0.0128119/(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 42r x1502100hel average "Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock" "#(2 6 7) average >>> 5 " "#(3 5 7 7) average >>> (11/2) " "{3@5. 7@ -4} average >>> (5@(1/2))" ^ self sum / self size413$(Color red asHexString) >>> 'FF0000'4foo#(Color red diff: Color red) >>> 0.01Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments.121020212334c142fred1{3} median >>> 3Returns the boolean the byte at index byteOffset of this ByteArray represents in the C convention ( A byte representing the 0 integer corresponds to false, while all other integers corresponds to true).01.0foo,Tests-unix-64-System-Settings-Tests-Test.xml-('foo*baz*zort' match: 'foobazort') >>> false-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 612100######5011abc3$a isLetter >>> truehelloeqv: aBoolean "Answer true if the receiver is equivalent to aBoolean." "(false eqv: true) >>> false" "((1 == 1) eqv: true) >>> true" "(( 1 > 2) eqv: false) >>> true" ^ self == aBoolean'' asLowercase >>> ''EWriting '<' character: To write '<', prepend it with a percent sign.9>asDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)" "{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)" "#() asDictionary >>> Dictionary new" ^ self as: Dictionary0141016r00AoAnswer whether the receiver sorts before aString. The collation order is simple ascii (with case differences). #[ 1 1.0 2 ]12403240 | a | ^ a255;EidentityIncludes: anObject "Answer whether anObject is one of the receiver's elements." "({#hello. #world} identityIncludes: #hello) >>> true" "({'hel','lo'. 'world'} identityIncludes: 'hello') >>> false" "({'hel','lo'. 'world'} includes: 'hello') >>> true" self do: [:each | anObject == each ifTrue: [^true]]. ^false>Tests-unix-64-SystemCommands-RefactoringSupport-Tests-Test.xml1300b103.145-20#(10 20 30) sum >>> 60JExecutes aBlock on each of the receiver's elements except for the last one--stage-name=Tests-unix-64124-32001-0.51(#(w x y z) atPin: 4) >>> #z23160111No Groupfoo:bar:1/Tests-unix-64-Metacello-TestsReference-Test.xmlabcdefgh1.92839012349023481' ' isEmpty >>> false)(STON fromString: 'Point[1,2]') >>> (1@2)WWWWW28 December 2018 first element4 slowFactorial >>> 243capitalized "Return a copy with the first letter capitalized" "'abc' capitalized >>> 'Abc'" | cap | self isEmpty ifTrue: [ ^self copy ]. cap := self copy. cap at: 1 put: (cap at: 1) asUppercase. ^ capAnswer the receiver's element immediately before target. Answer the result of evaluating the exceptionBlock if target is not an element of the receiver, or if there are no elements before it.151<(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'1000LAnswer whether any element of aCollection is one of the receiver's elements.12/({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)30nsn""" s nssssn""" s nssssnn""" n ssss;XsssXnot "Negation--answer false since the receiver is true." "true not >>> false" ^false3306511c1(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)kAnswer my element at index anInteger. at: is used by a knowledgeable client to access an existing element.d011split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. optimized version for single delimiters." "(String streamContents: [:s | Character space split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" | position oldPosition | position := 1. oldPosition := position. position := aSequenceableCollection indexOf: self startingAt: position. [ position > 0 ] whileTrue: [ aBlock value: oldPosition value: position - 1. position := position + 1. oldPosition := position. position := aSequenceableCollection indexOf: self startingAt: position. ]. aBlock value: oldPosition value: aSequenceableCollection size255 002a0Same as ifTrue:ifFalse:.a::foo2Answer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0.3+ arg "Answer a Point that is the sum of the receiver and arg." "((2@2) + (100@200)) >>> (102@202)" "((2@2) + 200) >>> (202@202)" arg isPoint ifTrue: [^ (x + arg x) @ (y + arg y)]. ^ arg adaptToPoint: self andSend: #+'on: aStream "Create a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens." "((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $(" | scanner | scanner := self new on: aStream. scanner step; stripSeparators. ^scanner7Answer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important.6[ | | ]20Answer the number of days between self and aDate28('*' match: 'zort') >>> trueWargmax "#(1 -3 5 1) argmax >>> 3" "#(1 1 1 1) argmax >>> 1" ^ self indexOf: self max25265$) isClosePunctuation >>> true1copyWith: newElement "Answer a new collection with newElement added (as last element if sequenceable)." "(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSet" "(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet" ^ self copy add: newElement; yourself10KExecutes aBlock on each of the receiver's elements except for the first oneB#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)3$' isSeparator >>> false101:(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false3lowBit " Answer the index of the low order one bit. First we skip bits in groups of 8, then do a lookup in a table. While not optimal, this is a good tradeoff; long integer #lowBit always invokes us with bytes." "2r00101000 lowBit >>> 4" "2r-00101000 lowBit >>> 4" | n result lastByte | n := self. n = 0 ifTrue: [ ^ 0 ]. result := 0. [(lastByte := n bitAnd: 16rFF) = 0] whileTrue: [ result := result + 8. n := n bitShift: -8 ]. "The low bits table can be obtained with: ((1 to: 8) inject: #[1] into: [:lowBits :rank | (lowBits copy at: 1 put: lowBits first + 1; yourself) , lowBits]) allButFirst." ^result + ( #[1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 7 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 8 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 7 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 6 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 5 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1] at: lastByte)25613303This statement is true! 3344435553W(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'pppp XXXX! pppp AAA pppp AAA ^ aaa s aaa . ppp < <<<>> #(1 2 3 4) asSet" "(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'" | col | col := OrderedCollection new: self size. self do: [ :each | col addAll: (aBlock value: each) ]. ^ aCollectionClass withAll: col4with: otherCollection collect: twoArgBlock "Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection." "(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)" | result | otherCollection size = self size ifFalse: [self errorSizeMismatch]. result := self species new: self size. 1 to: self size do: [:index | result at: index put: (twoArgBlock value: (self at: index) value: (otherCollection at: index))]. ^ resultReturn the receiver as a string with SI binary (International System of Units) file size, e.g. '50 KB'. It means that it takes 1000 and not 1024 as unit as humanReadableByteSizeString does.%'isSymbol' findSelector >>> #isSymbol(Array streamContents: [:stream | (0 to: 1) asDigitsToPower: 4 do: [:each | stream nextPut: each copy]]) >>> #(#(0 0 0 0) #(0 0 0 1) #(0 0 1 0) #(0 0 1 1) #(0 1 0 0) #(0 1 0 1) #(0 1 1 0) #(0 1 1 1) #(1 0 0 0) #(1 0 0 1) #(1 0 1 0) #(1 0 1 1) #(1 1 0 0) #(1 1 0 1) #(1 1 1 0) #(1 1 1 1))4e:*0011"""2"""3333"""1111"""111"""1#"""#3210011c{guarded "Return a positive nonzero extent." "(100@200) guarded >>> (100@200)" "(0@5) guarded >>> (1@5)" ^self max: 1@1addIfNotPresent: anObject "Include anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject." "({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 30" "({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)" "({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)" (self includes: anObject) ifFalse: [ self add: anObject ]. ^ anObject133211(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31)28[1][2]4lfromCharacter: aCharacter "For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)" "(KeyboardKey fromCharacter: $a) >>> KeyboardKey A" ^ self keyFromCharacterTable at: aCharacter ifAbsent: [ self named: aCharacter asString asUppercase ]1creciprocal "Returns the reciprocal of self. In case self is 0 the / signals ZeroDivide" "1/2 reciprocal >>> 2" "2 reciprocal >>> (1/2)" "1.25 reciprocal >>> 0.8" "-2 reciprocal >>> (-1/2)" ^1 / self0.8 XXXXXX110833!(2 ifNotNil: [ :o | o + 3]) >>> 5>Add each element of aCollection at my end. Answer aCollection.2310-3N(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'%(AsciiCharset toLowercase: $!) >>> $!classNameKey "Return the key that will be used to add a property with the class name when an unknown class is read and the option STONReader>>#acceptUnknownClasses: is true, by default #className. Such unknown classes are returned as generic maps." "((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBaz" ^ #className 10r89abcd3#between:and: isUnary >>> falseVNegation. Answer true if the receiver is false, answer false if the receiver is true.aObject := Object22230.0010 Point[1,2]groupedBy: aBlock having: aSelectionBlock "Like in SQL operation - Split the recievers contents into collections of elements for which keyBlock returns the same results, and return those collections allowed by selectBlock." "In the following example, the group `3->#(34)` is filtered out because there is not 2 elements." "(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionary" ^ (self groupedBy: aBlock) select: aSelectionBlocka'b991010(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4) between: 1202kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block1421012('Hello' detect: #isLowercase ifNone: [$X]) >>> $e224100.0detectIndex: aBlock "Return index of first element that satisfies aBlock. If no matching element is found, raise an error." "(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2" ^ self detectIndex: aBlock ifNone: [ self errorNotFound: aBlock ]119T(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSetisDecimalDigit "Return whether the receiver is a digit." "$1 isDecimalDigit >>> true" "$0 isDecimalDigit >>> true" ^ self characterSet isDecimalDigit: selfNTests-unix-64-Calypso-SystemPlugins-InheritanceAnalysis-Queries-Tests-Test.xml0 :BBBB | bbbb s n 0161 + 1. - a. - 1. - 1 "A"hello'' lastSpacePosition >>> 01pEvaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true. #(1 2 3) negated >>> #(-1 -2 -3)2 'def' < 'abc' >>> false31110Tests-unix-64-EnlumineurFormatter-Tests-Test.xml54463337228111900AA19202110411.5 rounded >>> 220199#( ( 0 1 2 ) ),Tests-unix-64-PharoDocComment-Tests-Test.xml"('action' alike: 'caption') >>> 5.0451.00 GBjA variant of #streamContents: where the initial or even final size is given to optimize memory consumption%1 minute printString >>> '0:00:01:00'117{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}xy!CCC 00DDD040777000888090BBB00 EEE0vector0019100action0.0select: selectBlock thenCollect: collectBlock "Optimized implementation" "(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4)" "('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'" | selectedItems | selectedItems := self copyEmpty. self do: [ :e | (selectBlock value: e) ifTrue: [ selectedItems add: (collectBlock value: e) ] ]. ^ selectedItems-8wasArray "Convert an OrderedCollection into an Array." "#(a b c) asOrderedCollection asArray >>> #(a b c)" "OrderedCollection new class >>> OrderedCollection" "OrderedCollection new asArray class >>> Array" "(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)" ^ (Array new: self size) replaceFrom: 1 to: self size with: array startingAt: firstIndexa253-({10. 20} asOrderedCollection add: 30) >>> 3015J (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 010510AAnswer how many of the receiver's elements are equal to anObject.asBag "Answer a Bag whose elements are the elements of the receiver." "{1. 2} asBag = {2. 1} asBag >>> true" "{1. 2} asBag = {1. 2. 2} asBag >>> false" "{1. 2} asBag = {1. 2. 3} asBag >>> false" "#() asBag = Bag new >>> true" ^ Bag withAll: self ( 1 ]. 2 )!"a" ( "b" ( "c" 1 "d" ) "e" ) "f"33a* arg "Answer a Point that is the product of the receiver and arg." "((2@2) * (100@200)) >>> (200@400)" "((2@2) * 200) >>> (400@400)" arg isPoint ifTrue: [^ (x * arg x) @ (y * arg y)]. ^ arg adaptToPoint: self andSend: #*groupsOf: n atATimeDo: aBlock "Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:" "(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70)" | passArray | passArray := (aBlock numArgs = 1). n to: self size by: n do: [:index | | args | args := (self copyFrom: index - n + 1 to: index) asArray. passArray ifTrue: [ aBlock value: args ] ifFalse: [ aBlock valueWithArguments: args ]]('ab' compare: 'aa') >>> 3O|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nil1 'abc' > 'def' >>> false(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 11'0abc' startsWithDigit >>> true01789&A clear but rather long-winded summary133Tests-unix-64-NewTools-CodeCritiques-Tests-Test.xml1923U000022333443355336633773388339933AA33BB33CC33DDD33EEE33FFF33GGG33HHH33III33JJJ333LL33(1923 roundDownTo: 10) >>> 19208('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'0hReturn element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element12FooBarBaz { #foo : 100 }5& aBoolean "Evaluating conjunction. Evaluate the argument. Then answer true if both the receiver and the argument are true." "true & true >>> true" "true & false >>> false" "false & true >>> false" "false & false >>> false" self subclassResponsibilityD(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true[ | 12218:(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 0"atLast: indexFromEnd ifAbsent: block "Return element at indexFromEnd from the last position. atLast: 1 ifAbsent: [] returns the last element" "(#(x y z) atLast: 1 ifAbsent: #a) >>> #z" "(#(x y z) atLast: 4 ifAbsent: #a) >>> #a" ^ self at: self size + 1 - indexFromEnd ifAbsent: block154nnn.nabcDefgh310 2222223333331('action' alike: 'name') >>> 0.I({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)2.03311113?(#(1 2 3) with: #(4 5 6) collect: [:a :b | a + b]) >>> #(5 7 9)G('ab cd ab ef ab' copyReplaceAll: 'ab' with: 'zk') >>> 'zk cd zk ef zk' ( 1 and: 4)32768 == (1 bitShift: 15)1"Point class instanceSide >>> Point0.9198435972629521.(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)x16Collection size and block argument count do not match. Xuuuuu 31133411005006670'((100@200) closeTo: (100@200)) >>> true+00BBBBBLLLCMMMDNNNEOOOFPPPGQQQHRRRISSSJTTT0y(#(1 5 21 28 34) groupedBy: [:x| x // 10] having: [:v| v size = 2]) >>> {0->#(1 5). 2->#(21 28)} asOrderedDictionaryXX (100@200) max >>> 2002#() size >>> 0201findBinaryIndex: aBlock do: actionBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the index as argument If no matching element is found, evaluate exceptionBlock, with the indexes of the 'bounding' elements as arguments. Warning: Might give invalid indexes, see examples below" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 5" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(0 1)'" "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' " | index low high test | low := 1. high := self size. [ index := high + low // 2. low > high ] whileFalse: [ test := aBlock value: (self at: index). test = 0 ifTrue: [ ^ actionBlock value: index ] ifFalse: [ test > 0 ifTrue: [ low := index + 1 ] ifFalse: [ high := index - 1 ] ] ]. ^ exceptionBlock cull: high cull: lowi(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'1300eSearch for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the found element as argument If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements or nil as arguments.000001111110335555554446100strings4Tests-unix-64-Zinc-Character-Encoding-Tests-Test.xml{} isEmpty >>> true42100cATests-unix-64-Calypso-SystemPlugins-Traits-Queries-Tests-Test.xml310itc11e30-2b(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'4({#hello. #world} identityIncludes: #hello) >>> true513toLowercase: aCharacter "(AsciiCharset toLowercase: $A) >>> $a." "(AsciiCharset toLowercase: $a) >>> $a." "(AsciiCharset toLowercase: $!) >>> $!" (aCharacter between: $A and: $Z) ifFalse: [ ^ aCharacter ]. ^ Character value: aCharacter asciiValue + $a asInteger - $A asInteger3 XX 00 n n n 01 between: -('Hello, World!' reject: #isLetter) >>> ', !'6[:a :b]223 September 20182((#(x y z) atLast: 4 ifAbsent: #a) >>> #a0vector0420.2ynewFromArray: anArray "Fast initialization with the items of a given array. This initializes elements faster that the generic withAll: or newFrom: methods. The main selling point is that dynamic arrays, like {1. 2. 3}, are really fast in Pharo. So other collections can be easily and efficiently initialized with `{1. 2. 3} asFoo` syntax. Important: Subclasses of Collection that redefine withAll: or newFrom: should also redefine this method either by having a proper implementation (specific to Arrays) or by calling the redefined versions of withAll:/newFrom:." "{ 1. 2. 3 } asSet >>> (Set new add: 1; add:2; add:3; yourself)" "{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself)" "{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)" "({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)" "({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)" "({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)" | newCollection size | size := anArray size. newCollection := self new: size. " This should be fast: 1. Integer>>to:do: is inlined in the bytecode (no block). 2. The Array>>at: callsite should be monomorph to a primitive method. " 1 to: size do: [ :i | newCollection add: (anArray at: i) ]. ^ newCollection11eone313#_ asMutator >>> #_:30'Tests-unix-64-Monticello-Tests-Test.xml #( 1 #+ 2 00111000444222230005566600 10(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42y3d$(200@200 scaleBy: 2@3) >>> (400@600)22315inde15%Tests-unix-64-Geometry-Tests-Test.xmlStore value into the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds. Answer value. x isSymbol:(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 7TThis is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. The receiver should include only numbers. Different from the sum implementation, the default value is zero. While sum is more general, sumNumbers is meant to support the most often encountered use case of dealing with numbers.93.000:B :B0a Not found1*printStringBase: base "Return a String representation of this number in base b." "(10 printStringBase: 10) >>> '10'" "(-10 printStringBase: 10) >>> '-10'" "(10 printStringBase: 2) >>> '1010'" "(10 printStringBase: 16) >>> 'A'" ^ String streamContents: [:strm | self printOn: strm base: base]1(false or: [true]) >>> true[ | a a | a := 10. a ](false or: [3]) >>> 3Hello731(#(a b c d) after: #b) >>> #c3'('hello' difference: 'aeiou') >>> 'hll'7:('pharo' endsWith: 'phuro' caseSensitive: false) >>> false:at: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ dictionary at: firstKey at: secondKey12c00111100044442222300556666a2000865 1 + . ^ 2200321a2,Answer the current capacity of the receiver.Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true7(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 3202331:3164('pharo' endsWith: '' caseSensitive: false) >>> true-Tests-unix-64-Kernel-CodeModel-Tests-Test.xml1Z(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14):a foozThis statement is false!5('hello' surroundedBy: ' abd ') >>> ' abd hello abd '-1920XX sss1($b > $c) asBit>>> 04('*foo*zort' match: 'afoodezortorfoo3zort') >>> true1233bfalse asBit >>> 0:(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)d100EPairwise quotient of two sequenceable collections of the same length.1101N(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'30e222222222220000111111111116;(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'032foo < bar: { 1 } > 0012023453#('' ifEmpty: ['(nil)']) >>> '(nil)'v(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'2def10000000000000 ]23020Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber.Hello6Return number that represents digit at given position.151.1 milliSecond printString >>> '0:00:00:00.001'3410!u u. X X X X X. X X1!#(a b c d e f g h i) ninth >>> #i0 over index: 7(true and: [ true ]) >>> true12040- arg "Pairwise difference of two sequenceable collections of the same length." "#(10 20 30) - #(0 1 2) >>> #(10 19 28)" "{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}" ^ arg adaptToCollection: self andSend: #- (10.156s round: 2) >>> 10.160s3 0vector0431XanyOne "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." "#(1 2 3) anyOne >>> 1" " ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' " ^ self firsta67202100000000000000053Answer whether the receiver is a letter or a digit.a3| 15C(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 12 a, b, c and d1 and 3f111322two'indexOf: aCharacter "Return the index starting at 1 of the argument in the receiver, zero if not present." "('abcdf' indexOf: $a) >>> 1" "('abddf' indexOf: $k) >>> 0" aCharacter isCharacter ifFalse: [^ 0]. ^ self class indexOfAscii: aCharacter asciiValue inString: self startingAt: 1'hello''| a | [ ^ a ]. a := 10abcabcd'Refer to the comment in Collection|do:.(Color red asColorref) >>> 255nsXn65('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()2030sorted: aSortBlockOrNil "Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison." "(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)" "('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'" "((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)" ^self asArray sort: aSortBlockOrNilXX XX n XX# n X1| aBoolean "Evaluating disjunction (OR) -- answer true since the receiver is true." "true | true >>> true" "true | false >>> true" ^self( /Tests-unix-64-NewTools-Inspector-Tests-Test.xml3Refer to the comment in Collection>>#select:thenDo:bAnswer the receiver's element immediately before target. Raise an error if target is not an element of the receiver, or if there are no elements before it (i.e. it is the first element).3630foo < bar: baz > 21c13100n ssss;10-5"(1 to: 5 by: 3) asArray >>> {1. 4}ab1 + 2 }15Evaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false.513Tests-unix-64-NewTools-RewriterTools-Tests-Test.xmlBAnswer the index of the high order bit of the receiver, or zero if the receiver is zero. Raise an error if the receiver is negative, since negative integers are defined to have an infinite number of leading 1's in 2's-complement arithmetic. Use >>highBitOfMagnitude if you want to get the highest bit of the magnitude.d4Special case for fraction power3bfalse & true >>> false1$A isLetter >>> true#( 1 + 270.01; ppp < < n< . #hello'a' asByteArray >>> #[97]3atLast: indexFromEnd "Return element at indexFromEnd from the last position. atLast: 1, returns the last element" "(#(x y z) atLast: 1) >>> #z" "(#(x y z) atLast: 2) >>> #y" ^ self atLast: indexFromEnd ifAbsent: [self error: 'index out of range']0must be exactly four characters14 00000000000003a000cJisConnectorPunctuation "Return whether the receiver is one of these characters: _" "$_ isConnectorPunctuation >>> true" "$( isConnectorPunctuation >>> false" "$) isConnectorPunctuation >>> false" "$> isConnectorPunctuation >>> false" "$} isConnectorPunctuation >>> false" ^ self characterSet isConnectorPunctuation: self1000425(10 to:1) size >>> 040((3 to: 9 by: 2) allSatisfy: #isPrime) >>> false*Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection. Note: the returned collection is of the same species. If this species does not accomdate the values of aBlock, look at collect:as:53(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'crBuild an instance of the receiver by writing elements to a stream. More specifically: blockWithArg will be given a WriteStream on an instance of the receiver. Inside blockWithArg you write elements to the stream to build up the collection. At the end, the contents of the stream up to that point will be returned. Note that the underlying collection grows as needed.+((100@200) translateBy: 5@10) >>> (105@210)19/#( aa:bb:cc #'aa:bb:cc' #cc #'==' #'==' #= #= )13 9 % -4 >>> -3factorial "Answer the factorial of the receiver." "The factorial on n is defined as: n * (n-1)*(n-2)*... while n>0. Factorial of 0 is 1. We also know Factorial of 1 and 2 are themselves. This implementation uses a 2-partition algorithm. For a recursive (but slower) implementation see 'slowFactorial' Without verbose detail: If'm an even number,some optimization can be applied: Instead of doing all multiplication we can halving the number of multiplication regrouping terms, so: n*(n-1)*(n-2)*....*3*2*1 can be rearranged as: (n*1)*((n-1)*2)*((n-2)*3)*... And the use the fact n is even to rewrite in a more efficient way. If I'm an odd number then compute for n-1 and multily by n. " "Example of usages:" "0 factorial >>> 1" "1 factorial >>> 1" "2 factorial >>> 2" "3 factorial >>> 6" "4 factorial >>> 24" "5 factorial >>> 120" "6 factorial >>> 720" | nex nexnext acc | "Guard for know cases (0,1,2,error)" self < 3 ifTrue: [ ^ self < 0 ifTrue: [ self error: 'Not valid for negative integers' ] ifFalse: [ self > 0 ifTrue: [ self ] ifFalse: [ 1 ] ] ]. acc := 2. nex := 2. nexnext := 10. self // 2 - 1 timesRepeat: [ nex := nex + nexnext. nexnext := nexnext + 8. acc := acc * nex ]. self odd ifTrue: [ acc := acc * self ]. ^ acc30REvaluates the argument with the read stream of the collection. Answers the result.// aNumber "Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division." "9//4 >>> 2" "-9//4 >>> -3" "-0.9//0.4 >>> -3" ^(self / aNumber) floor0.13aw((Color r: 0.5 g: 0.5 b: 1) hue >>> 240.020v225lAnswer the character position of the final space or other separator character in the receiver, and 0 if none3 00211510vector2D(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass00000011111033555554446between: #(11 15), 10103122^Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true.Example of usages:That is false!22033 1 foo: ; bar%1 second printString >>> '0:00:00:01'a salkjsdlkgfeeYCreate a dictionary from the keys and values arguments which should have the same length.5301associationsDo: aBlock "Evaluate aBlock for each of the receiver's elements (key/value associations). If any non-association is within, the error is not caught now, but later, when a key or value message is sent to it. The point of this method it to do the *right thing* on Dictionaries and related classes. " "(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'" "(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'" self do: aBlock22GPairwise difference of two sequenceable collections of the same length. 16r40000000e100 factorial >>> 1Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattenedEvaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock. If no element matches the criteria then do nothing. Always returns self to avoid misuse and a potential isNil check on the sender. 00000000003111111(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1)1 232b27104c7Parse and materialize the STON representation in string)(1.2 arcTan: -1.5) >>> 2.4668517113662407400d22200441.9283901234902349is error2/foo/barFileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]$a isCasedLetter >>> false2' ' asLowercase >>> ' '4keywords "Returns the keywords of the provided selector. Assumes the reciever is a valid keyword based selector (@reciever isKeyword > true). Prefer using Symbol>>#keywordsStrict if you're not sure if the reciever is keyword-based." "#foo: keywords >>> #('foo:')" "#foo:bar: keywords >>> #('foo:' 'bar:')" "#foo keywords >>> #('foo')" "Invalid input/output !" "#+ keywords >>> #('+')" "Invalid input/output !" | keywords | keywords := Array streamContents: [ :kwds | | kwd | kwd := (String new: 16) writeStream. self do: [ :char | kwd nextPut: char. char = $: ifTrue: [ kwds nextPut: kwd contents. kwd reset ] ]. kwd position = 0 ifFalse: [ kwds nextPut: kwd contents ] ]. ^ keywords 1b 00111111000444444222230055666666& aBoolean "Evaluating conjunction -- answer false since receiver is false." "false & true >>> false" "false & false >>> false" ^self|| a0#(#(1 2 3) polynomialEval: 2) >>> 1766 factorial >>> 720O( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)316esqueezeOutNumber "Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found" "'th is is29 a stRI4' squeezeOutNumber >>> 29" "'th is is2 9 a stRI4' squeezeOutNumber >>> 2" ^ Number squeezeNumberOutOfString: selfc1-4/'between:and:' findSelector >>> #'between:and:'4(OrderedCollection new add: 42; yourself) size >>> 1:(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 3100alwsecond "1 second printString >>> '0:00:00:01'" "(1 minute + 1 second) printString >>> '0:00:01:01'" ^ self seconds03.14100030.012020000003V( #('string1' #('string2' 'string3')) flattened ) >>> #('string1' 'string2' 'string3')3161655asTestSelector "Converts a method selector into a test selector in form of #testOriginalSelector" "#+ asTestSelector >>> #testPlus" "#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan" "#message asTestSelector >>> #testMessage" "#mySelector asTestSelector >>> #testMySelector" "#at:putNext: asTestSelector >>> #testAtPutNext" self isBinary ifTrue: [ ^ (#test, (self flatCollect: [ :each | (((Character specialCharacterNames at: each) copyReplaceAll: '-' with: ' ') substrings collect: #capitalized) joinUsing: ''])) asSymbol ]. ^ (#test, (((self copyReplaceAll: ':' with: ' ') substrings collect: #capitalized) joinUsing: '')) asSymbolnEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self.named: aString ifNone: aBlock "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString ifAbsent: aBlock#(10 20 30) anyOne >>> 10| | a2N1923 *0222FFF9999AAAAAAABBBBBBBBCCCCCCDAAAEA9220'FFF 00GGG044999464AAA4B0DDD000EEE00 HHH2242575-4cbe121(((100@200) max: (330@400)) >>> (330@400)1.10000.0galike: aString "Answer some indication of how alike the receiver is to the argument, 0 is no match, twice aString size is best score (but see example with 7). Case is ignored. This method is used to help find mistyped variable names in methods." "('abc' alike: 'abc') >>> 7." "('action' alike: 'actions') >>> 7." "('action' alike: 'caption') >>> 5." "('action' alike: 'name') >>> 0." | i j k minSize bonus | minSize := (j := self size) min: (k := aString size). bonus := (j - k) abs < 2 ifTrue: [ 1 ] ifFalse: [ 0 ]. i := 1. [(i <= minSize) and: [((self at: i) asInteger bitAnd: 16rDF) = ((aString at: i) asciiValue bitAnd: 16rDF)]] whileTrue: [ i := i + 1 ]. [(j > 0) and: [(k > 0) and: [((self at: j) asInteger bitAnd: 16rDF) = ((aString at: k) asciiValue bitAnd: 16rDF)]]] whileTrue: [ j := j - 1. k := k - 1. ]. ^ i - 1 + self size - j + bonus ^ n. n. ^ n <1s> vs <1p>12Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument.hope"Character tab isSeparator >>> true3110vector00pharoXstest te stringzz102540| a b323ABC74123(1923 roundUpTo: 10) >>> 1930{ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "If the receiver is true (i.e., the condition is true), then answer the value of the argument trueAlternativeBlock. If the receiver is false, answer the result of evaluating the argument falseAlternativeBlock. If the receiver is a nonBoolean then create an error notification. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'" "(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'" self subclassResponsibility,(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6| tmp | tmp := 1. ^ tmp9Tests-unix-64-Collections-DoubleLinkedList-Tests-Test.xml(1923 truncateTo: 10) >>> 1920(1@2) isFloatPoint >>> false"#(a b c d) allButLast >>> #(a b c)100.01=do: aBlock without: anItem "Enumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item" "(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030'" ^ self do: [ :each | anItem = each ifFalse: [ aBlock value: each ] ]2100000w2226131/(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4"0 :BBBBBBBBBBB | bbbbbbbbbbb s n 03-23Class structural inspection - Class/Metaclass shift33201(Tests-unix-64-BeautifulComments-Test.xml9last "Answer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below." "(1 to: 10 by: 2) last >>> 9" "(0 to: 10 by: 2) last >>> 10" ^stop - (stop - start \\ step)/| thisContext | thisContext := 1. ^ thisContext202223065! A shortcut method for raisedTo: &'a3123abc' isAllAlphaNumerics >>> true0216343>($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollectionfalse not >>> true'abc' startsWithDigit >>> false2For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)de7min: aPoint "Answer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint." "((100@200) min: (330@400)) >>> (100@200)" "((100@200) min: (30@400)) >>> (30@200)" ^ (x min: aPoint x) @ (y min: aPoint y)true | false >>> true10combinations: kk atATimeDo: aBlock "Take the items in the receiver, kk at a time, and evaluate the block for each combination. Hand in an array of elements of self as the block argument. Each combination only occurs once, and order of the elements does not matter. There are (self size take: kk) combinations." "(Array streamContents: [:stream | 'abcde' combinations: 3 atATimeDo: [:each | stream nextPut: each copy]]) >>> #(#($a $b $c) #($a $b $d) #($a $b $e) #($a $c $d) #($a $c $e) #($a $d $e) #($b $c $d) #($b $c $e) #($b $d $e) #($c $d $e))" | aCollection | aCollection := Array new: kk. self combinationsAt: 1 in: aCollection after: 0 do: aBlock10634-3 odd >>> true111102Five is {five}.(1 -> 'one') key >>> 11endsWithDigit "Answer whether the receiver's final character represents a digit." "'foo10' endsWithDigit >>> true" "'foo10foo' endsWithDigit >>> false" "'foo1' endsWithDigit >>> true" ^ self notEmpty and: [self last isDigit]2VAnswer a copy of the receiver that does not contain any elements equal to oldElement.*'displayStringOn:' endsWithAColon >>> true 9 % 4 >>> 1 hello world121one5Point classSide >>> Point class>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection" "(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection" "(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollection" ^ splitter split: selffoo2018PConverts a method selector into a test selector in form of #testOriginalSelector-Tests-unix-64-VariablesLibrary-Tests-Test.xml00 00 n n n 0 0foo&2 minutes printString >>> '0:00:02:00'4.0a := 4 '' size >>> 051%OrderedCollection new capacity >>> 10 Five is 5.0.0e0isEnclosingMark "Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/Me" "$' isEnclosingMark >>> false" ^ self characterSet isEnclosingMark: self9,Tests-unix-64-NewTools-Finder-Tests-Test.xml221-1b311Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.(1@2.2) isFloatPoint >>> false/Return a copy with the first letter capitalized0.538pharo!1.92839(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 021((#(x y z) atLast: 1 ifAbsent: #a) >>> #z0DDD 000EEE090FFF0AAA0GGG0BBBBBBCBBBBBB0JJJ00 KKK#foo: keywords >>> #('foo:'):62$(nil ifNotNil: [:o | o +3 ]) >>> nil3 slowFactorial >>> 6(1 to:10 by:2) size >>> 5 project-pharopharo%(#(a b c d) allButLast: 2) >>> #(a b)1930!'foo' asCommaString >>> 'f, o, o'3phuro7foozo3#Float pi radiansToDegrees >>> 180.03N({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}10cB('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''100"0 :B :B :B | | T t T | t s t s t 0:y "Answer the y coordinate." "(100@200) y >>> 200" ^ y10 0:B| ||b02555%(3.1479 truncateTo: 0.005) >>> 3.145139indexOfAnyOf: aCollection startingAt: start "Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index." "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4) >>> 0" ^self indexOfAnyOf: aCollection startingAt: start ifAbsent: [0]06Answer true if the receiver is equivalent to aBoolean.0)([:x :y | x + y] cull: 3 cull: 2) >>> 5 1 ('foo*' match: 'foozo') >>> true32e0vector03.1479150:00:00:00.000000001^This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects.Return a new interval representing the open version of the receiver. In other words, the new inteval does not contain the upper and lower boundaries of the receiver s:1 e:5 s:7 e:8 s:10 e:13 10!000001033555655585544444444AA999B001022033304550670880'a''b'3o (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 21au u. X X X. X X$ isLetter >>> true19[ : | 13Unitialized variableS#[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0] unzipped >>> #[1 2 3]7.5. pppp AAA ^ 0 1 2 3 aaa 3 2 s 2 3 n 3 2 1 0 . 1 goodby: my: 3h1;;00surroundString: aString withCharacter: aCharacter "Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them." "(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a'''" "(RubTextEditor new surroundString: 'a''b' withCharacter: $') >>> '''a''''b'''" | result stream | result := WriteStream with: ''. stream := ReadStream on: aString string. result nextPut: aCharacter. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peekBack = aCharacter ifTrue: [result nextPut: aCharacter]. result nextPut: aCharacter.]. stream peekBack = aCharacter ifTrue: [result nextPut: aCharacter]. ^result contents&(#(1 2 3 4) intersection: #()) >>> #()=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)122r-00101000 lowBit >>> 4ac31D(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray)620102({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))102000000025151#Fast initialization with the items of a given array. This initializes elements faster that the generic withAll: or newFrom: methods. The main selling point is that dynamic arrays, like {1. 2. 3}, are really fast in Pharo. So other collections can be easily and efficiently initialized with `{1. 2. 3} asFoo` syntax. Important: Subclasses of Collection that redefine withAll: or newFrom: should also redefine this method either by having a proper implementation (specific to Arrays) or by calling the redefined versions of withAll:/newFrom:.#02121de!(10 printStringBase: 10) >>> '10'23Class structural inspection - Class/Metaclass shift true := true1 one:1;two:2;collect: aBlock as: aClass "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into an instance of aClass. Answer the resulting collection." "(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSet" "('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)" ^(aClass new: self size) fillFrom: self with: aBlock2e3.1479 [ :a | | a ]h0vector0>> 7" "([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'" "sum works with objects that understands + and - messages, like Points" "{1@5. 2@3. 4@7} sum >>> (7@15)" "or even Collections" "#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6)" | sum sample | self emptyCheck. sample := self anyOne. sum := self inject: sample into: [ :accum :each | accum + each ]. ^ sum - sample2'12 'abc' = 'abc' >>> truecool2M(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'10+Tests-unix-64-System-Support-Tests-Test.xml((#(10 20 30) includesAny: #()) >>> false< aPoint "Answer whether the receiver is above and to the left of aPoint." "((100@200) < (330@400)) >>> true" "((100@200) < (330@100)) >>> false" ^ x < aPoint x and: [y < aPoint y]*Tests-unix-64-Commander2-UI-Tests-Test.xml10 toUppercase: aCharacter "(AsciiCharset toUppercase: $a) >>> $A." "(AsciiCharset toUppercase: $A) >>> $A." "(AsciiCharset toUppercase: $!) >>> $!" (aCharacter between: $a and: $z) ifFalse: [ ^ aCharacter ]. ^ Character value: aCharacter asciiValue - $a asInteger + $A asInteger4:x "Answer the x coordinate." "(100@200) x >>> 100" ^ xT(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)w& aCollection "Alias for intersection:" "#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)" ^ self intersection: aCollection| | . :a fred the beardeG(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -152121*-1 + 1--1 + 1- -11true asBit >>> 1010, 15, 20 and 25 [ :a ::b | ]1(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> true ppp < <<<>> 'This statement is true!'0-> anObject "Answer an Association between self and anObject" "The following example creates an association whose key is number 1 and value string 'one'." "(1 -> 'one') key >>> 1" "(1 -> 'one') value >>> 'one'" "Note that key and value can be ANY object." ^ Association key: self value: anObjectcollect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection. Note: the returned collection is of the same species. If this species does not accomdate the values of aBlock, look at collect:as:" "(#(10 20 30) collect: [:e | e+1]) >>> #(11 21 31)" "({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)" "('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'" "((1 to: 10) collect: [:i| i gcd: 6]) >>> #(1 2 3 2 1 6 1 2 3 2)" "(#() collect: [:x | x+1]) >>> #()" | newCollection | newCollection := self copyEmpty. self do: [:each | newCollection add: (aBlock value: each)]. ^ newCollection%000000111033BBB5555558887779AAAAAA220XXaXbXXcXXXdXX33 0000000000000000114-20vector01X(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')'10231001 foo: bar: 0Nonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument.[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'10 11200300445ereject: rejectBlock thenDo: aBlock "Refer to the comment in Collection>>#reject:thenDo:" "(Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)" | each | 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ aBlock value: each ]]Returns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space character71 000000002000003100nhue "Return the hue of this color, an angle in the range [0.0..360.0]." "Color red hue >>> 0.0" "(Color r: 0.5 g: 0.5 b: 1) hue >>> 240.0" | r g b max min span h | r := self privateRed. g := self privateGreen. b := self privateBlue. max := (r max: g) max: b. min := (r min: g) min: b. span := (max - min) asFloat. span = 0.0 ifTrue: [ ^ 0.0 ]. h := r = max ifTrue: [ (g - b) asFloat / span * 60.0 ] ifFalse: [ g = max ifTrue: [ 120.0 + ((b - r) asFloat / span * 60.0) ] ifFalse: [ 240.0 + ((r - g) asFloat / span * 60.0) ] ]. h < 0.0 ifTrue: [ h := 360.0 + h ]. ^ hc:. :aabcdefgh3ip Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0.(Array streamContents: [:stream | 'abcde' combinations: 3 atATimeDo: [:each | stream nextPut: each copy]]) >>> #(#($a $b $c) #($a $b $d) #($a $b $e) #($a $c $d) #($a $c $e) #($a $d $e) #($b $c $d) #($b $c $e) #($b $d $e) #($c $d $e))1#() isNotEmpty >>> falseCascade message expectedHello-3111(2)6000022444544499AABAAAECCCCDDAAF99888888777G4433333333H20/| TTTTTTTTTTT | ttttttttttt n. ^ tttttttttttPerform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter.53$_ isDashPunctuation >>> falserindexOfAnyOf: aCollection "Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index." "(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y z)) >>> 0" ^self indexOfAnyOf: aCollection startingAt: 1 ifAbsent: [0]32313Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true7 appreciate.In {1} you can escape { by prefixing it with \5 ==> aBlock "The material conditional, also known as the material implication or truth functional conditional. Correspond to not ... or ... and does not correspond to the English if...then... construction. known as: b if a a implies b if a then b b is a consequence of a a therefore b (but note: 'it is raining therefore it is cloudy' is implication; 'it is autumn therefore the leaves are falling' is equivalence). Here is the truth table for material implication: p | q | p ==> q -------|-------|------------- T | T | T T | F | F F | T | T F | F | T " "true ==> [true] >>> true" "true ==> [false] >>> false" "false ==> [true] >>> true" "false ==> [false] >>> true" ^ self not or: [ aBlock value ]002224]('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false2010-14%Character end isControlOther >>> true)Tests-unix-64-OpalCompiler-Tests-Test.xml10 #(10 20) emptyCheck >>> #(10 20)actionsToo many arguments3100th is is29 a stRI442abc200010003343500 #( #( 0 1 2 )10.123 factorial >>> 630vector06I(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 2 ) ] }205a203Answer an OrderedCollection whose elements are the elements of the receiver. The order in which elements are added depends on the order in which the receiver enumerates its elements. In the case of unordered collections, the ordering is not necessarily the same for multiple requests for the conversion.-301.234cAnswer the angle in radians. Implementation note: use sign in order to catch cases of negativeZeroAEvaluating conjunction -- answer aBoolean since receiver is true.#( 1 ). #( 2 )P(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 331(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'33(OrderedCollection new growAtLast; capacity) >>> 2012'hello' anyOne >>> $h:storeOn: aStream "Print inside string quotes, doubling inbedded quotes." "(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''" | x | aStream nextPut: $'. 1 to: self size do: [ :i | aStream nextPut: (x := self at: i). x = $' ifTrue: [ aStream nextPut: x ] ]. aStream nextPut: $'11600000000000000000011three1213Elvis23103h36Returns the instance of myself having aString as name.abc30n uuuuuuu Xuu n!#(a b c d e f g h i) third >>> #c0234+#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}30disByteString "Answer whether the receiver is a ByteString" "'abc' isByteString >>> true" ^ trueVConvert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase.40Point instanceSide >>> PointO('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'a330(Character space isControlOther >>> falsea := a. [ :a [ :a. a := a324$mergeSortFrom: startIndex to: stopIndex by: aBlock "Sort the given range of indices using the mergesort algorithm. Mergesort is a worst-case O(N log N) sorting algorithm that usually does only half as many comparisons as heapsort or quicksort." "Details: recursively split the range to be sorted into two halves, mergesort each half, then merge the two halves together. An extra copy of the data is used as temporary storage and successive merge phases copy data back and forth between the receiver and this copy. The recursion is set up so that the final merge is performed into the receiver, resulting in the receiver being completely sorted." "({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)" self size <= 1 ifTrue: [^ self]. "nothing to do" startIndex = stopIndex ifTrue: [^ self]. [startIndex >= 1 and: [startIndex < stopIndex]] assert. "bad start index" [stopIndex <= self size] assert. "bad stop index" self mergeSortFrom: startIndex to: stopIndex src: self copy dst: self by: aBlock2readStreamDo: aBlock "Evaluates the argument with the read stream of the collection. Answers the result." "(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)" ^ aBlock value: self readStream | Object | Object := 1. ^ Object#(-10 printStringBase: 10) >>> '-10'157.12112r100022324454162hello1!"a" [ "b" 1 "c" . "d" 2 "e" ] "f"6'2 between: 0 and: 4' findSelector >>> #'between:and:'zk410-4100000010()Character expectedb121+Tests-unix-64-NewValueHolder-Tests-Test.xmlremoveAllSuchThat: aBlock "Evaluate aBlock for each element and remove all that elements from the receiver for that aBlock evaluates to true. Use a copy to enumerate collections whose order changes when an element is removed (i.e. Sets)." "(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection" self copy do: [:each | (aBlock value: each) ifTrue: [self remove: each]]310200 XX n XXX n X$({} averageIfEmpty: [0@0]) >>> (0@0)22231(('Hello!' detectMin: #asciiValue) >>> $!2 Pharo is <1p>Evaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return false5\withIndexDo: elementAndIndexBlock "Just like do: except that the iteration index supplies the second argument to the block" "(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)" 1 to: self size do: [ :index | elementAndIndexBlock value: (self at: index) value: index ]13Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in descending order using the <=> method.61"A"true"B"false"C"nil"D"self"E"super"F"thisContext"G"b1,Refer to the comment in Collection|collect:.2middle "Answer the middle element of the receiver." "#(a b c d e) middle >>> #c" "#(a b c d) middle >>> #c" ^ self at: self size // 2 + 13#(a b c d e) middle >>> #c2hll1c0vector0eflatCollect: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. optimized version for Sequencable Collection and subclasses implementing #writeStream" "(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)" "(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)" self isEmpty ifTrue: [ ^ self copy ]. ^self species new: 0 streamContents: [ :stream | self do: [ :each | stream nextPutAll: (aBlock value: each) ] ]00123450z[:a:b]1e1 e141'Concatenate two Strings or Collections. 0002()DnextToLast "(#(1 2 3 4) nextToLast) >>> 3" ^self at: self size - 1042De20 000000002000000520YAnswer true if the receiver contains the substring str exactly at index, false otherwise.=(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 200.910deLiteral expecteduflattened "Flattens a collection of collections (no matter how many levels of collections exist). Strings are considered atoms and, as such, won't be flattened" "( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5)" "( #('string1' #('string2' 'string3')) flattened ) >>> #('string1' 'string2' 'string3')" ^ Array streamContents: [ :stream | self flattenOn: stream ]02[Answer the fifth element of the receiver. Raise an error if there are not enough elements.0[ 1findString: substring startingAt: start "Answer the index of the first substring within the receiver, starting at start. If the receiver does not contain substring, answer 0." "('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 12" "('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 0" "('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 2" ^self findString: substring startingAt: start caseSensitive: true330vector0 [ : | a: b ]2 000011112102-3.147910But use sum or sum: instead!300000111103355554446p(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3' hello world41Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.133WJust like do: except that the iteration index supplies the second argument to the block50ab55202001a1a1xy131deminutes "2 minutes printString >>> '0:00:02:00'" "(1 hour + 2 minutes) printString >>> '0:01:02:00'" ^ Duration minutes: self Phar...ool'' ''h'' ' withoutQuoting >>> ' ''h'' '2001)([:x | x + 1] cull: 13 cull: 12) >>> 14 cR(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)100PThe receiver is assumed to represent radians. Answer the conversion to degrees.5printShowingDecimalPlaces: placesDesired "Print the receiver showing precisely the given number of places desired. If placesDesired is positive, a decimal point and that many digits after the decimal point will always be shown. If placesDesired is zero, a whole number will be shown, without a decimal point. Here are some examples:" "(23 printShowingDecimalPlaces: 2) >>> '23.00'" "(23.5698 printShowingDecimalPlaces: 2) >>> '23.57'" "(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700'" "(23.4567 printShowingDecimalPlaces: 0) >>> '23'" "(-23.4567 printShowingDecimalPlaces: 0) >>> '-23'" "(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0'" "(0.98 printShowingDecimalPlaces: 5) >>> '0.98000'" "(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'" "(2.567 printShowingDecimalPlaces: 2) >>> '2.57'" "(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'" "(0 printShowingDecimalPlaces: 2) >>> '0.00'" ^String new: placesDesired + 10 streamContents: [:aStream | self printOn: aStream showingDecimalPlaces: placesDesired]122003 31 a1a140 ceiling "Answer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral." "(100@200) ceiling >>> (100@200)" "(100.1@200.9) ceiling >>> (101@201)" self isIntegerPoint ifTrue: [ ^ self ]. ^ x ceiling @ y ceiling0s:IParse and materialize the STON representation in the character readStream0110100findBinaryIndex: aBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments." "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' " "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' " ^ self findBinaryIndex: aBlock do: [ :found | found ] ifNone: exceptionBlock0.81XXXX7219Tests-unix-64-NewTools-SpTextPresenterDecorators-Test.xml16 0010002246 Hello, world!7(1 to: 10 by: 2) last >>> 97 ppp < < X 2.302900112002141-2104;Return whether the receiver is one of these characters: _U(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'$$#(10 20) size >>> 2Evaluate pieceBlock with substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements."{3@5. 7@ -4} average >>> (5@(1/2))ppp < <<<< n>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) fghi16e 'def' >= 'def' >>> trueoReturn index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock.althis string will be trimmed231093024'optimized version for single delimiters*Tests-unix-64-SortFunctions-Tests-Test.xml15{ 1. 2 }20!foo: x bar: y "d" "e" ^ x "f" "g"2350$] isClosePunctuation >>> true0nXn0sorted "Return a new sequenceable collection which contains the same elements as self but its elements are sorted" "#(3 1 4 2) sorted >>> #(1 2 3 4)" "'hello' sorted >>> 'ehllo'" "(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)" ^self asArray sorted3"foo: thisContext ^ thisContext + 110.070NConvert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bits0V{'one' -> 1. 'two' ->2} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)}Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments.d Xuuuuuu Xuu n28-4aeiou442LOLEPut anObject at every index specified by the elements of aCollection.0(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)2rx pharo-projectzInclude newObject as one of the receiver's elements. Answer newObject. ArrayedCollections cannot respond to this message.11(0@5) guarded >>> (1@5)10]select: selectBock thenDo: aBlock "Refer to the comment in Collection>>#select:thenDo:" "(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)" | each | 1 to: self size do: [ :index | (selectBock value: (each := self at: index)) ifTrue: [ aBlock value: each ]]3101:=22(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 08(Color r: 0.5 g: 0.5 b: 1) green >>> 0.500488758553274751123 ')' expected33'2 between: ( 1 and: 4)' findSelector >>> #between:c2223332)Count the occurrences of each bytecode during the execution of aBlock. Return a Array of associations using the byte as key and the occurrences as values sorted by the instruction opcode numeric values. This method uses the in-image bytecode interpreter to evaluate and count the instructions. | | . a: M(#( (2 -3) #((4 -5)) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 #(4 5) 6)020stop "Return the stop element of an interval. Pay attention this is not necessary the same as the last element." "(1 to: 10 by: 2) last >>> 9" "(1 to: 10 by: 2) stop >>> 10" ^ stop19300.0AAnswer whether the receiver's final character represents a digit.22This statement is false!c 1000000000001Return the reciever full of reciprocated elements_findFirstInByteString: aByteString startingAt: start "Find the index of first character starting at start in aByteString that is included in the receiver. Default is to use a naive algorithm. Subclasses might want to implement a more efficient scheme. Return 0 if not found." "('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2." "('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5." "('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0." start to: aByteString size do: [:index | (self includes: (aByteString at: index)) ifTrue: [^ index]]. ^ 0c| aBoolean "Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false." "false | true >>> true" "false | false >>> false" ^aBoolean$h$w20:B :XX0 'def' <= 'abc' >>> false1e4139removeAll "Remove each element from the receiver and leave it empty. ArrayedCollections cannot respond to this message. There are two good reasons why a subclass should override this message: 1) the subclass does not support being modified while being iterated 2) the subclass provides a much faster way than iterating through each element" "#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new" self do: [:each | self remove: each]2XXXXXXXXXXXXXX That is true!10addAll: aCollection "Include all the elements of aCollection as the receiver's elements. Answer aCollection. Actually, any object responding to #do: can be used as argument." "({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}) >>> {20. 30. 30. 40.}" "({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollection" "({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSet" aCollection do: [ :each | self add: each ]. ^ aCollection0vector02.foo "a" "b" "c" "d" "e" "f" "g" digitAt: anExponent base: base "Return number that represents digit at given position." "(42 digitAt: 2 base: 10) >>> 4" "(42 digitAt: 1 base: 10) >>> 2" "It is always a number or zero:" "(16rFF digitAt: 1 base: 16) >>> 15" "(1 digitAt: 2 base: 10) >>> 0" "Results are not defined for base smaller than 2 and non-integer arguments." ^ self // (base raisedToInteger: anExponent - 1) \\ base'h'6uu17frdthbr0&noise: xin y: yin z: zin "(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.13691995878400012" | x0 y0 z0 x y z u v w a aa ab b ba bb | x0 := xin floor & 255. y0 := yin floor & 255. z0 := zin floor & 255. x := xin - xin floor. y := yin - yin floor. z := zin - zin floor. u := self fade: x. v := self fade: y. w := self fade: z. a := (p at: x0)+y0. aa := (p at: a)+z0. ab := (p at: a+1)+z0. b := (p at: x0+1)+y0. ba := (p at: b) + z0. bb := (p at: b+1) + z0. "result will cover the range [-1,1]" ^ self lerp: w a: (self lerp: v a: (self lerp: u a: (self grad: (p at: aa) x: x y: y z: z) b: (self grad: (p at: ba) x: x-1 y: y z: z) ) b: (self lerp: u a: (self grad: (p at: ab) x: x y: y-1 z: z) b: (self grad: (p at: bb) x: x-1 y: y-1 z: z) ) ) b: (self lerp: v a: (self lerp: u a: (self grad: (p at: aa+1) x: x y: y z: z-1) b: (self grad: (p at: ba+1) x: x-1 y: y z: z-1) ) b: (self lerp: u a: (self grad: (p at: ab+1) x: x y: y-1 z: z-1) b: (self grad: (p at: bb+1) x: x-1 y: y-1 z: z-1) ) );(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -29[ "a""b""f" 1. "c" "d" 2 "e" ]904Negation -- answer true since the receiver is false.v( #('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b] ) >>> 'if it is to be it is up to me'NReturn the class of the couple class/metaclass. Useful to avoid explicit test.1success?Answer true if the receiver starts with the argument collection1#(1 2 3 4) selectEverySecond asArray >>> #(2 4) SReturns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPagedo: elementBlock separatedBy: separatorBlock "Evaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between." "(String streamContents: [:s | #(1 2 3) do: [:each | s << each asString] separatedBy: [s << ', ']]) >>> '1, 2, 3'" | beforeFirst | beforeFirst := true. self do: [:each | beforeFirst ifTrue: [beforeFirst := false] ifFalse: [separatorBlock value]. elementBlock value: each]0!foo: a ^ [ :a | a ] value: 10 + a#311112004445444778796AAAB4400ECCCCD-Tests-unix-64-UndefinedClasses-Tests-Test.xml001040-10/ """ pppp """ A """ pppp """ A """ ^ """ a """ Repeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations.0 n ssssXsss{ 1 + 23.123de12y#'?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 3 -513645724displayStringOn:400E({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan0 (1 sign);bar100055CCC6667DDD889EEEAAABBFFF0a(#(1 3 5 7 11 15 23) findBinary: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(nil 1)'elvis #+ asTestSelector >>> #testPlusXaX'foo1' endsWithDigit >>> true1 sign;1001#u u. 0 :B | X b b XX b 0. X X2bS ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' p Xsss 4-2.5674('foo' match: 'Foo') >>> true(10.199999999 round: 2) >>>10.2new: newSize streamContents: blockWithArg "A variant of #streamContents: where the initial or even final size is given to optimize memory consumption" "(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)" | stream | stream := WriteStream on: (self streamSpecies new: newSize). blockWithArg value: stream. "If the write position of stream is at the end of the internal buffer of stream (originalContents), we can return it directly instead of making a copy as contents would do" ^ stream position = stream originalContents size ifTrue: [ stream originalContents ] ifFalse: [ stream contents ]10Not valid for negative integers40kIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block3a2isLetter "Return whether the receiver is a letter." "$a isLetter >>> true" "$ isLetter >>> true" "$A isLetter >>> true" ^ self characterSet isLetter: self5elmer is number 3400'00000103366778777B9999AA77C66555555444D#() sumNumbers >>> 05aeiou 1000240.4995112414467253143doE(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'124001c(String streamContents: [:s | #(10 20 30) do: [:each | s << each asString] without: 20]) >>> '1030'classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self classXX X # X # X X${1@ -2. -4@0} abs >>> {(1@2). (4@0)}%(STON toString: 1@2) >>> 'Point[1,2]'@foo:5y1242310?Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error. |||| a4yAnswer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it.9Answer the set theoretic intersection of two collections.1|::a18bat: index ifAbsent: exceptionBlock "Answer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d) at: 3 ifAbsent: #z) >>> #c" "(#(a b c d) at: 5 ifAbsent: #z) >>> #z" (index between: 1 and: self size) ifTrue: [^ self at: index]. ^ exceptionBlock valuecCommandLine handler process210love30325544oEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item221e1e119foo1'hello' surroundedBySingleQuotes >>> '''hello'''a213 X 150vector01.2233020 #(#"A"##"B")&#(10 20 30) - #(0 1 2) >>> #(10 19 28)11 Hello, World!seperate$#( #':=' aa: #= #':=' #= cc: #'==' )01This statement is true!ax31910XX n n2(Answer the integer nearest the receiver.4$} isClosePunctuation >>> true hello world(median "Return the middle element, or as close as we can get." "{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 3" | size middle | size := self size. middle := (size + 1) // 2. ^ size even ifTrue: [ ((self at: middle) + (self at: middle + 1)) / 2 ] ifFalse: [ self at: middle ]b2018bbytesCount "Answer the number of indexable fields in the receiver. This value is the same as the largest legal subscript. Included so that a SmallInteger can behave like a LargePositiveInteger or LargeNegativeInteger." "32768 == (1 bitShift: 15)" "32768 bytesCount >>> 2" "65536 == (1 bitShift: 16)" "65536 bytesCount >>> 3" | value length | length := 1. value := self. value >= 0 ifTrue: [[value > 255] whileTrue: [value := value bitShift: -8. length := length + 1]] ifFalse: [[value < -255] whileTrue: [value := value bitShift: -8. length := length + 1]]. ^length10vector0 [:a| ||a]9numberOfCombinationsTaken: k "Return the number of combinations of (self) elements taken k at a time. It is calculated as C(n,k) = n! / (k! (n-k)!) For 6 numberOfCombinationsTaken: 3, this is 6*5*4 / (1*2*3)" "(6 numberOfCombinationsTaken: 3) >>> 20" | numerator denominator | k < 0 ifTrue: [^ 0]. k > self ifTrue: [^ 0]. numerator := 1. self to: (k max: self-k) + 1 by: -1 do: [ :factor | numerator := numerator * factor ]. denominator := 1. 1 to: (k min: self-k) do: [ :factor | denominator := denominator * factor ]. ^ numerator // denominator1Network00011121344151100afromHexString: aColorHex "Returns a color instance from HEX (6 element elements)." "(Color fromHexString: 'FFFFFF')>>> (Color white) " | green red blue alpha hexString | hexString := aColorHex withoutPrefix: '#'. red := (Integer readFrom: (hexString first: 2) base: 16) / 255. green := (Integer readFrom: (hexString copyFrom: 3 to: 4) base: 16) / 255. blue := (Integer readFrom: (hexString copyFrom: 5 to: 6) base: 16) / 255. alpha := hexString size = 8 ifFalse: [ 1.0 ] ifTrue: [ (Integer readFrom: (hexString copyFrom: 7 to: 8) base: 16) / 255 ]. ^ self r: red g: green b: blue alpha: alpha0.001{1 . 2 . 4 . 5} median >>> 3x20vector010pdetect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true." "({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)" "((104 to: 120) detect: #isPrime) >>> 107" "('Hello!' detect: #isLowercase) >>> $e" ^ self detect: aBlock ifNone: [ self errorNotFound: aBlock ]0({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)200t({10. 20} asOrderedCollection addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 20. 30. 30. 40.} asOrderedCollection##.(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red 'Return a new IdentitySet based on self.117!(3.1479 truncateTo: 0.1) >>> 3.1[(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'true ==> [true] >>> true3 XXXX""XXX""X201-(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> falseh3(1 minute + 2 seconds) printString >>> '0:00:01:02'0vector03Refer to the comment in Collection>>#reject:thenDo:atWrap: index "Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds." "(#(11 22 33) asOrderedCollection atWrap: 2) >>> 22" "(#(11 22 33) asOrderedCollection atWrap: 4) >>> 11" "(#(11 22 33) asOrderedCollection atWrap: 5) >>> 22" ^ self at: index - 1 \\ self size + 1b #hello#world1yAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.4foo: a a := 10. ^ a1.00 GB4be10100$fromStreamWithComments: readStream "Parse and materialize the STON representation in the character readStream, skipping C-style comments" "(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)" ^ (self reader on: (STONCStyleCommentsSkipStream on: readStream)) nextXnX nX;({'hel','lo'. 'world'} identityIncludes: 'hello') >>> false010Evaluate aBlock with each of the receiver's elements as the argument, starting with the last element and taking each in sequence up to the first. For SequenceableCollections, this is the reverse of the enumeration for do:.3 heLlo wOrLd655057)Tests-unix-64-Zinc-HTTP-Examples-Test.xml0.50fXsX0R(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)4TIterate over all the pairs of the receiver and apply the binaryBlock to each pair. def33058>isExtension "I return true if a method is an extension method. Which means that the methods is not packaged in the package of the class containing the method, but in another package." "(self >> #selector) isExtension >>> false" "(self >> #traitSource) isExtension >>> true" ^ self hasProperty: #extensionPackage1100+('Hello, World!' count: #isLowercase) >>> 81a100 over index: asInteger "Return the integer present in the receiver, or nil. In case of float, returns the integer part." "'1' asInteger >>> 1" "'-1' asInteger >>> -1" "'10' asInteger >>> 10" "'a' asInteger >>> nil" "'1.234' asInteger >>> 1" ^self asSignedInteger)((4 to: 9) anySatisfy: #isPrime) >>> true1n(Array streamContents: [:stream | #(1 2 3) with: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(5 7 9) 1 + 2 + 3100e-47100vector03.147965321oops#[ 1 23abc2100.1e$Tests-unix-64-Morphic-Tests-Test.xml9+ 1100010 Point[1,2]x+('hello' sorted: [:a :b| a>=b]) >>> 'ollhe'0vector003Tests-unix-64-NewTools-Debugger-Fuel-Tests-Test.xml363MReturn whether the receiver is https://www.compart.com/en/unicode/category/PiI return true if a method is an extension method. Which means that the methods is not packaged in the package of the class containing the method, but in another package.103<1detect: aBlock ifFound: foundBlock ifNone: exceptionBlock "Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock and answer the result of this evaluation. If none evaluate to true, then evaluate exceptionBlock." "(#(1 2) detect: #even ifFound: #negated ifNone: [0]) >>> -2" "(#(1 3) detect: #even ifFound: #negated ifNone: [0]) >>> 0" "('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $E" "('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X" self do: [ :each | (aBlock value: each) ifTrue: [ ^ foundBlock cull: each ] ]. ^ exceptionBlock valueor even Collections(String streamContents: [:s | [:c | c isSeparator ] split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '010M= aString "Answer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences)." " 'abc' = 'def' >>> false" " 'abc' = 'abc' >>> true" " 'def' = 'abc' >>> false" (aString isString and: [ self size = aString size ]) ifFalse: [ ^ false ]. ^ (self compare: self with: aString) = 0510'('Hello' detectMax: #asciiValue) >>> $o30(10 min: 20 max: 11) >>> 1110, between: 221X beBetween: minValue and: maxValue "Answer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValue" "(10 beBetween: 12 and: 20) >>> 12" "(10 beBetween: 20 and: 12) >>> 12" "(13 beBetween: 12 and: 20) >>> 13" "(12 beBetween: 12 and: 20) >>> 12" "(100 beBetween: 12 and: 20) >>> 20" ^ minValue <= maxValue ifTrue: [ (self min: maxValue) max: minValue ] ifFalse: [ (self min: minValue) max: maxValue ]b1 factorial >>> 11((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12&#(0 1 2) + #(10 20 30) >>> #(10 21 32)0^ . ^ 1Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter. 0001112131415abd"(100 beBetween: 12 and: 20) >>> 20abc2(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2} 2r. 3 salkjsdlkgfee32 (50 to: 10 by: -5) anyOne >>> 50isAlphaNumeric "Answer whether the receiver is a letter or a digit." "$a isAlphaNumeric >>> true" "$A isAlphaNumeric >>> true" "$' isAlphaNumeric >>> false" "$1 isAlphaNumeric >>> true" "Character space isAlphaNumeric >>> false" ^ self isLetter or: [ self isDigit ]pharo [ :a :b | y20183$A printStringHex >>> '41'0 Answer 1 since receiver is true.123includesAny: aCollection "Answer whether any element of aCollection is one of the receiver's elements." "(#(10 20 30) includesAny: #(30 40)) >>> true" "(#(10 20 30) includesAny: #(50 40)) >>> false" "(#(10 20 30) includesAny: #()) >>> false" "('hello' includesAny: 'hop') >>> true" "('hello' includesAny: 'pwn') >>> false" aCollection do: [:elem | (self includes: elem) ifTrue: [^ true]]. ^ false23301\\ arg "Pairwise integer modulo of two sequenceable collections of the same length." "#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0)" "{10@20. 30@0} \\ {1@3. 4.0@1} >>> {(0@2). (2.0@0)}" ^ arg adaptToCollection: self andSend: #\\'AA' asHex >>> '16r4116r41'100'h: hue s: saturation v: brightness "Create a color with the given hue, saturation, and brightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1) is pure red." "Note: By convention, brightness is abbreviated 'v' to to avoid confusion with blue." "(Color h: 0 s: 1 v: 1) >>> (Color r: 1 g: 0 b:0)" ^ self h: hue s: saturation v: brightness alpha: 1.01}Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.MReturns the hex digit part of the integer when printed in hexadecimal format.| aCollection "Return all the elements that appear in self or in aCollection. Alias of union:" "#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)" "'abc' | 'cbe' >>> 'bcea'" ^ self union: aCollectionxor: alternativeBlock "Nonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true." "(true xor: [true]) >>> false" "(true xor: [false]) >>> true" ^ alternativeBlock value not1tAnswer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray.0112 ((100@200) < (330@400)) >>> true752.onDo: aBlock "Helper to tranform any `do:`-like method into a generator." "|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11)" ^ self on: [ :generator | aBlock value: [ :arg | generator yield: arg ] ]3d0 ( 1 }. 2 )2(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))6;'test test ' withSeparatorsCompacted >>> 'test test ' XX n XX# n XEAnswer an instance of me containing the same elements as aCollection.pdetectMax: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the highest magnitude. If collection empty, return nil. This method might also be called elect:." "({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3)" "({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6)" "((10 to: 20) detectMax: [ :p | p gcd: 6 ]) >>> 12" "('Hello' detectMax: #asciiValue) >>> $o" | maxElement maxValue | self do: [:each | | val | maxValue == nil ifFalse: [ (val := aBlock value: each) > maxValue ifTrue: [ maxElement := each. maxValue := val]] ifTrue: ["first element" maxElement := each. maxValue := aBlock value: each]. "Note that there is no way to get the first element that works for all kinds of Collections. Must test every one."]. ^ maxElement3102abc116hello1#( 1 51 10 ) range >>> 501a := @1158reduce: aBlock "Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified." "( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)" "( #(1 2 3 4 5) asSet reduce: [ :a :b :c | a + b + c ] ) >>> (1 + 2 + 3 + 4 + 5)" "Maybe look at the related method Collection>>inject:into:" ^self asOrderedCollection reduce: aBlock255XXXXXXXX9(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2) >>> 3'abc' | 'cbe' >>> 'bcea'3017255000040.11$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ:Answer a Point translated by delta (an instance of Point).rounded "Answer the integer nearest the receiver." "1.4 rounded >>> 1" "1.5 rounded >>> 2" "2 rounded >>> 2" "-1.5 rounded >>> -2" ^(self + (self sign / 2)) truncated1a5+ arg "Pairwise sum of two sequenceable collections of the same length." "#(0 1 2) + #(10 20 30) >>> #(10 21 32)" "{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)}" ^ arg adaptToCollection: self andSend: #+0 { 1 ). 2 }610031-1981001,(#(10 20 30) includesAll: #(30 20)) >>> true1 That is true![ :a b0:B X032 abd 42@(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)1X u213333d1'hello'a 000100020!('*baz' match: 'mobazo') >>>false1[Answer the sixth element of the receiver. Raise an error if there are not enough elements.2Answer the index of the receiver's first element, such that that element equals the first element of sub, and the next elements equal the rest of the elements of sub. Begin the search at element start of the receiver. If no such match is found, answer the result of evaluating argument, exceptionBlock.e0.5.#mySelector asTestSelector >>> #testMySelectorn.foo:'n uuuu uuuuu uuu uuuu uuuuu uuuuuuuuuuu%Point class classSide >>> Point class0vector010si(('foo*baz' match: 'foo23bazo') >>> false11hello3Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. optimized version for Sequencable Collection and subclasses implementing #writeStreamisCurrencySymbol "Return whether the receiver is one of these characters: $ and euro" "$$ isCurrencySymbol >>> true" "Character euro isCurrencySymbol >>> true" "$} isControlOther >>> false" ^ self characterSet isCurrencySymbol: self016a000Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan0splitOn: splitter indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of the receiver element that have been identified by splitting the receiver using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(String streamContents: [:s | 'Pharo is cool' splitOn: Character space indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" ^ splitter split: self indicesDo: aBlock2001,((1 to: 10) select: #isPrime) >>> #(2 3 5 7) hello 24XX XX n XXXX n X X2XAnswer the result of evaluating aBlock with all of the overlapping pairs of my elements.21(Array streamContents: [:stream | #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]] do: [:each | stream nextPut: each size]]) >>> #(1 5 3)4.02 between: 1pharoRReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.191000,Tests-unix-64-ClassAnnotation-Tests-Test.xml XXXXXXXXXXXXbar5 222200001111[Answer the ninth element of the receiver. Raise an error if there are not enough elements.1identityIndexOf: anElement "Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) identityIndexOf: #c) >>> 3" "(#(a b c d e) identityIndexOf: #x) >>> 0" ^self identityIndexOf: anElement ifAbsent: [0]&(#(a b c d) at: 5 ifAbsent: #z) >>> #z`asDate "(Date year: 2018 month: 9 day: 28) asDate printString >>> '28 September 2018'" ^ selfX({ 1->2. 3->4 } as: Dictionary) >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)3>({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p x ]) >>> (10@ -3)10 9/28/2018970reduceRight: aBlock "Fold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments." "(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))" "(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> 2" "(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5))" "(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1" | arguments | self emptyCheck. arguments := Array new: aBlock argumentCount. (arguments size = 0 or: [ (self size + 1) \\ (arguments size - 1) > 0 ]) ifTrue: [ self error: 'Collection size and block argument count do not match.' ]. arguments at: arguments size put: self last. self size - arguments size + 1 to: 1 by: 1 - arguments size do: [ :index | arguments replaceFrom: 1 to: aBlock argumentCount - 1 with: self startingAt: index; at: arguments size put: (aBlock valueWithArguments: arguments) ]. ^ arguments last1 *- 1 + 1 -- 1 + 1 - -113153.14793007320200 foo||bar||2salkjsdlkgfeealpppp A pppp A ^ aVifNotNil: ifNotNilBlock ifNil: nilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42" "(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6" ^ nilBlock value3Signal CollectionIsEmpty if the collection is empty3worldA(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)1>(#(a b a d a) lastIndexOf: #a startingAt: 1 ifAbsent: 7) >>> 12 ** -1 >>> (1/2)6size "Answer how many elements the receiver contains." "#(10 20) size >>> 2" "#() size >>> 0" "#((())) size >>> 1" "'' size >>> 0" "' ' size >>> 2" "(1 to:10) size >>> 10 " "(1 to:10 by:2) size >>> 5" "(10 to:1) size >>> 0" | tally | tally := 0. self do: [:each | tally := tally + 1]. ^ tally Five is {1}.9 0:00:00:02averageIfEmpty: aBlock "This method return the average of the collection if it is not empty. In the other case, it return the value of the block. It means the user the user of this method decide of the return value." "(#(10) averageIfEmpty: [ 0 ]) >>> 10" "(#() averageIfEmpty: [ 0 ]) >>> 0" "({3@5. 7@ -4} averageIfEmpty: [0@0]) >>> (5@(1/2))" "({} averageIfEmpty: [0@0]) >>> (0@0)" self ifEmpty: [ ^ aBlock value ]. ^ self average#'hello41.9284Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method.!(10 beBetween: 12 and: 20) >>> 12oops 'hello''world02keysAndValuesDo: aBlock "Enumerate the receiver with all the keys (aka indices) and values." "(Array streamContents: [:stream | #(10 20 30) keysAndValuesDo: [:key :value | stream nextPut: (key * 2 + value)]]) >>> #(12 24 36)" 1 to: self size do: [:index | aBlock value: index value: (self at: index)]Add returns the object itself4It is always a number or zero: 89Ten a0X'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')08 (false or: [true]) >>> true4d1 | TTT | ttt n . ^ ttt . 42zzzz042100 test 2015between: #(5 6)xc3-3#(:="A"aa:="B":=="C"cc:=="D")5011 + 2 ) n ssss Xn3121111001216120&(AsciiCharset toLowercase: $a) >>> $a./foo "a" < "b" bar: "c" 1 "d" z: "e" 2 "f" > "g"xc1(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)uEvaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true. ppp <<<<>> (100@200)" "(100.1@200.9) floor >>> (100@200)" self isIntegerPoint ifTrue: [ ^ self ]. ^ x floor @ y flooraddMonths: monthCount "((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018'" |year month maxDaysInMonth day | year := self year + (monthCount + self monthIndex - 1 // 12). month := self monthIndex + monthCount - 1 \\ 12 + 1. maxDaysInMonth := Month daysInMonth: month forYear: year. day := self dayOfMonth min: maxDaysInMonth. ^ Date year: year month: month day: day0vector00!((100@200) < (330@100)) >>> false10100103select: selectBlock thenDo: doBlock "Utility method to improve readability. Do not create the intermediate collection." "|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 44" self do: [: each | ( selectBlock value: each ) ifTrue: [ doBlock value: each ] ]lastSpacePosition "Answer the character position of the final space or other separator character in the receiver, and 0 if none" "'fred the bear' lastSpacePosition >>> 9" "'ziggie' lastSpacePosition >>> 0" "'elvis ' lastSpacePosition >>> 6" "'elvis ' lastSpacePosition >>> 7" "'' lastSpacePosition >>> 0" self size to: 1 by: -1 do: [:i | ((self at: i) isSeparator) ifTrue: [^ i]]. ^ 02(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> falseabcBAD boy!ehlloRemove each element of aCollection which is present in the receiver from the receiver. Answer aCollection. No error is raised if an element isn't found. ArrayedCollections cannot respond to this message.11book-result|W01-Welcome9(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> true2Z(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'2"[ :a :a :b | | a a b | a + a + b ]abc1"'foo10foo' endsWithDigit >>> false546888333A9992BDDD111E0000FFHHHa 16r80000000test test 13We6Create a color with the given hue, saturation, and lightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and lightness are numbers in [0.0..1.0] where larger values are more saturated or lighter colors. The difference with brightness in the HSV coordinates is that colors go from black at lightness 0, through vivid hues at lightness 0.5, to white at lightness 1. For example, (Color h: 0 s: 1 l: 0.5) is pure red.316r1E413010100[:a :]3013031WReturns a symbol that is a valid selector by removing any space or forbidden charactersindexOf: anElement startingAt: start ifAbsent: exceptionBlock "Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOf: #c startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOf: #c startingAt: 4 ifAbsent: 7) >>> 7" start to: self size do: [:index | (self at: index) = anElement ifTrue: [^ index]]. ^ exceptionBlock value7({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z) 9//4 >>> 2000rx313Point isClassSide >>> false?({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e)0110vector04001 Pharo is cool6foo ^ [ :a | [ | a | a := 10. a ] value + a ] value: 1Hello!9(Character space asString, 'a') isAllSeparators >>> false12ABA!31111200445555555A888897766DBBBBCns5yTAdd new empty slots to the front of array, while keeping the empty slots at the end.4230 :B | XXXXXXX. b 07 XXXXXXXXXXXdo-1Print the receiver in standard U.S.A format mm/dd/yyyy. Note that the name here is slightly misleading -- the month and day numbers don't show leading zeros, so that for example February 1 1996 is 2/1/96f-('foo*baz*zort' match: 'foobazzort') >>> true2033-1411123te31(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2twoAnswer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.>> 'oops'10242ho'abc98' numericSuffix >>> 9813'""" 0 """ | """ T """ T """ | """ 0 """TInterpret the receiver pattern (<1p>, <1s>, ...) with argument passed in anArray. Point[1,2]311!('*baz*' match: 'mozo') >>> false "unfinishedFileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]9// arg "Pairwise integer quotient of two sequenceable collections of the same length." "#(10 20 30) // #(1 3 4.0) >>> #(10 6 7)" "{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)}" ^ arg adaptToCollection: self andSend: #//true | true >>> true12In strings you can escape { by prefixing it with \bworld220332GifNotEmpty: aBlock "Evaluate the given block with the receiver as argument, answering its value unless the receiver is empty, in which case answer the receiver." "(#(10 20) ifNotEmpty: [:x| x average]) >>> 15" "(#() ifNotEmpty: [:x| x average]) >>> #()" ^ self isEmpty ifTrue: [ self ] ifFalse: [ aBlock cull: self ]3Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations.34 pharo-projectasHex "'A' asHex >>> '16r41'" "'AA' asHex >>> '16r4116r41'" ^ self species new: self size * 4 streamContents: [ :stream | self do: [ :ch | stream nextPutAll: ch hex ]]eaBc/0000CCC08888888888888889888888888888A8888880III|odd " 0 odd >>> false" " 2 odd >>> false" "-2 odd >>> false" " 3 odd >>> true" "-3 odd >>> true" ^(self bitAnd: 1) = 1a671>> false'1' asInteger >>> 1true not >>> false0is'' isNotEmpty >>> falsedcollect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection." "(#(1 2 3) collect: [:each | each + 10]) >>> #(11 12 13) " | newCollection | newCollection := self species new: self size. 1 to: self size do: [:index | newCollection at: index put: (aBlock value: (self at: index))]. ^ newCollectionprintPathOn: aStream delimiter: aCharacter "Print the receiver's path on aStream (without 'Path' prepended)" "(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome'" (1 to: self size) do: [:index | aStream nextPutAll: (self at: index)] separatedBy: [aStream nextPut: aCharacter]((#(10 20 10 30) occurrencesOf: 10) >>> 2%(-3.1479 truncateTo: 0.01) >>> -3.1462#(10 storeStringBase: 16) >>> '16rA'2r. 322122foo1(KeyboardKey fromCharacter: $a) >>> KeyboardKey A%#(10 20 30) \ (0 to: 15) >>> #(20 30) #(3 1 4 2) sorted >>> #(1 2 3 4)+('hello!' noneSatisfy: #isLetter) >>> falsea2foo: arg bar: arr ^ arg + arr4030atWrap: index "Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds." "Optimized to go through the primitive if possible" "(#(11 22 33) atWrap: 3) >>> 33" "(#(11 22 33) atWrap: 2) >>> 22" "(#(11 22 33) atWrap: 4) >>> 11" ^ self at: index - 1 \\ self size + 1between: #(23 nil)2JRunning min. See the comment of self >> #running:of: for more information.auAnswer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements.1050afoo3zortthenfoo3zortyAnswer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line.b1 slowFactorial >>> 1between: #(0 1),(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 310202311112004455555766A88889ppp Xu withUnixLineEndings "Answer a new instance where all occurrences of CRLF and LF are substituted with LF." "(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lf" ^ self withLineEndings: String lf[newFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dict5Tests-unix-64-Coverage-Test.xml6(true ifFalse: [ 'This statement is false!' ]) >>> nil1141do0n0X02012d4kkkkk XX kkkkk2QAnswer a new collection with newElement added (as last element if sequenceable).10112 #( 0 1 r2 4 )nsn s nssssn s nssssnn11Subclasses should decide what meta level of given class should be used to retrieve/build hierarchy. For example superclass hierarchy of ProtoObject class can stop at it according to instance side hierarchyxy0.5#2 sorted "Return a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator." "#(8 5 3 9) sorted >>> #(3 5 8 9)" "#(a b z d) sorted >>> #(a b d z)" ^self sorted: [ :a :b| a <= b ]2021 ; 2256110 hex >>> '16rA'asDate "Convert the receiver in a date object." "(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString" ^ Date starting: selfEdetect: aBlock ifFound: foundBlock "Evaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock. If no element matches the criteria then do nothing. Always returns self to avoid misuse and a potential isNil check on the sender." "|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 20" "|s| (#(1 3) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> nil" self detect: aBlock ifFound: foundBlock ifNone: [ "Do nothing on purpose" ]21 {8. 5. 3. 9} sort >>> #(3 5 8 9)1test longone string00n0X0n0_Return the integer present in the receiver, or nil. In case of float, returns the integer part.1103(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)27(RPackage named: 'MockPackage') isTestPackage >>> false110sAnswer a Point that is the receiver's x and y ceiling. Answer the receiver if its coordinates are already integral.1550n sssss n0Xsss62expandMacrosWith: anObject "('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'" "('Pharo is <1p>' expandMacrosWith: 'cool') >>> 'Pharo is ''cool'''" ^self expandMacrosWithArguments: (Array with: anObject)1c2021abc101352120FEvaluating disjunction (OR) -- answer true since the receiver is true.%('abc' escapeCharacter: $X) >>> 'abc'Special case of exponent=01/2 reciprocal >>> 2%(false and: [Error signal]) >>> false12-3.1479L(String streamContents: [ :s | 'Foo''Bar' storeOn: s ]) >>> '''Foo''''Bar'''1121{1}{2}242b1< aString "Answer whether the receiver sorts before aString. The collation order is simple ascii (with case differences)." " 'abc' < 'def' >>> true" " 'abc' < 'abc' >>> false" " 'def' < 'abc' >>> false" ^ (self compare: self with: aString) < 05B([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'%(3.1479 roundDownTo: 0.005) >>> 3.1452041-OrderedCollection new asArray class >>> Array1tAnswer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements.tFold the result of the receiver from right to left into aBlock. The argument aBlock must take two or more arguments.uminute "1 minute printString >>> '0:00:01:00'" "(1 hour + 1 minute) printString >>> '0:01:01:00'" ^ self minutes4Answer a SortedCollection whose elements are the elements of the receiver. The sort order is the default less than or equal. Note that you should use #sorted if you don't really need a SortedCollection, but a sorted collection.da1joinUsing: joiner last: last "Append the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument." "(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'" (self size = 0) ifTrue: [ ^ '' ]. (self size = 1) ifTrue: [ ^ self first asString ]. ^ last join: (Array with: (joiner join: self allButLast) with: self last)150vector0+122132223 foo*baz*zorts:1 e:3 s:6 e:8 s:11 e:11 -17###'410abcshuffleBy: aRandom "Durstenfeld's version of the Fisher-Yates shuffle" "({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)" self size to: 2 by: -1 do: [ :i | self swap: i with: (aRandom nextInteger: i) ]4030* 0 0 :BBB : BBB | | TTT TTT | bbb . 0 0 . 9({10. 20} asSet add: 30; yourself) >>> {10. 20. 30} asSet3 'abc' >= 'def' >>> false2018[ | 150223humanReadableByteSizeString "Return the receiver as a string with the adequate file size identified, e.g. '50 KB'. The difference with humanReadableByteSISizeString is that the current one counts by 1024 and not 1000." "(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'" "(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'" "(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'" ^ self humanReadableByteSizeStringPrecision: 2[i1indexOf: anElement "Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) indexOf: #c) >>> 3" "(#(a b c d e) indexOf: #x) >>> 0" ^ self indexOf: anElement ifAbsent: 0zAnswer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences).abcdfggggggg sssssss ''''''''''''' a: :foo,444 10555000000AAA076BBB666HHH6ECIIICCCC JJJ20aEisAllSeparators "Returns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPage" "(Character space asString, Character space asString) isAllSeparators >>> true" "(Character space asString, 'a') isAllSeparators >>> false" self do: [ :c | c isSeparator ifFalse: [ ^false ] ]. ^truefoo: super ^ super + 112019isInstanceSide "Return true whether the receiver is a class (in a couple class/metaclass sense)." "Point isInstanceSide >>> true" "Point class isInstanceSide >>> false" ^ self isClassSide not0 ^ n. n. ^ n 0scaleBy: factorPoint "Answer a Point scaled by factor (an instance of Point)." "(200@200 scaleBy: 2@3) >>> (400@600)" ^(factorPoint x * x) @ (factorPoint y * y).(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2)01712p(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)(1/3.0s round: 4) >>> 0.3333s4 222221333444442!#(1 2 2 3 1 1 1) asBag size >>> 730.5charlie is number 23161.01eidentityIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 3" "(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 7" 1 to: self size do: [:i | (self at: i) == anElement ifTrue: [^ i]]. ^ exceptionBlock valueK(STON fromStreamWithComments: 'Point[1,/*comment*/2]' readStream) >>> (1@2)'('''''' unescapeCharacter: $') >>> ''''u s 000000024Put anObject at every one of the receiver's indices.0020initialize v1 := 0-' test ' withSeparatorsCompacted >>> ' test '30111n uuuuuuu Xuu (({#x .#y. #z} atAllPut: #a) >>> #(a a a)it* ( [ :aaa : bbb | | ccc ddd | aaa . ] ) . XXXXXXXXXA21 ('*baz' match: 'mobaz') >>> true1(( 1 > 2) eqv: false) >>> trueiReturn a new sequenceable collection which contains the same elements as self but its elements are sorted310313oneCAnswer a number that is the maximum of the x and y of the receiver.#>> isUnary >>> falsee3abc** exponent " A shortcut method for raisedTo: " "2 ** 8 >>> 256" "8 ** 2 >>> 64" "2 ** (1/12) >>> 1.0594630943592953" "2 ** -1 >>> (1/2)" ^ self raisedTo: exponent194.0 'hello1114211210-6DReturn whether the receiver is one of these characters: $ and euro3 XXX;#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 6-(Date today equals: Date yesterday) >>> falsehex "Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this." "$A hex >>> '16r41'" ^ self asInteger hex243<({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)53-1033End of statement expected220a:foo23.4567 That is true!21abc1s1s1c.(#(40 41 42) asOrderedCollection at: 3) >>> 42 -9//4 >>> -3021200 slowFactorial >>> 110.419groupByRuns: aBlock "Answer a new collection of the same species as the receiver with elements being collections (of the receiver species) containing those elements of the receiver for which the given block consecutively evaluates to the same object." "(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))" "(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))" "((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))" | str eStr r | str := Array new writeStream. r := nil. eStr := Array new writeStream. self do: [ :e | | t | (t := aBlock value: e) = r ifFalse: [ r := t. eStr isEmpty ifFalse: [ str nextPut: (eStr contents as: self species). eStr reset ] ]. eStr nextPut: e ]. eStr isEmpty ifFalse: [ str nextPut: (eStr contents as: self species) ]. ^ str contents as: self species1700(('hello' allSatisfy: #isLetter) >>> true1permutationsDo: aBlock "Repeatly value aBlock with a single copy of the receiver. Reorder the copy so that aBlock is presented all (self size factorial) possible permutations." "(Array streamContents: [:stream | (1 to: 3) permutationsDo: [:each | stream nextPut: each copy]]) >>> #(#(1 2 3) #(1 3 2) #(2 1 3) #(2 3 1) #(3 2 1) #(3 1 2))" self shallowCopy permutationsStartingAt: 1 do: aBlockE((Date year: 2018 month: 9 day: 28) subtractDate: '2018-09-27') >>> 1 X0### ###0aa!(-1929 truncateTo: 10) >>> -19200000000000000000T#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection42 nanoSeconds printString >>> '0:00:00:00.000000002'[ :a | b1[ ^ 1 ]|a:212062415C(NSPerlinNoise2 new noise: 3.14 y: 42 z: 7) >>> 0.13691995878400012A544057"(#(1 -2 4) sumNumbers: #abs) >>> 71pppp A pp A pp A X | t t t | t s t s t42allButFirst: n "Answer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements." "(#(a b c d) allButFirst: 2) >>> #(c d)" "(#(a b c d) allButFirst: 3) >>> #(d)" ^ self copyFrom: n + 1 to: self sizefourth "Answer the fourth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) fourth >>> #d" ^ self at: 4reject: rejectBlock thenCollect: collectBlock "Optimized version of Collection>>#reject:thenCollect:" "(#(1 2 3 4) reject: [:each | each = 3 ] thenCollect: [:each | each + 10 ]) >>> #(11 12 14)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (rejectBlock value: (each := self at: index)) ifFalse: [ stream nextPut: (collectBlock value: each) ]]]at: anInteger "Answer my element at index anInteger. at: is used by a knowledgeable client to access an existing element." "((OrderedCollection new add: 34; yourself) at: 1) >>> 34" "(#(40 41 42) asOrderedCollection at: 1) >>> 40" "(#(40 41 42) asOrderedCollection at: 2) >>> 41" "(#(40 41 42) asOrderedCollection at: 3) >>> 42" | index | anInteger < 1 ifTrue: [ self errorSubscriptBounds: anInteger ]. (index := anInteger + firstIndex - 1) > lastIndex ifTrue: [ self errorSubscriptBounds: anInteger ]. ^ array at: index100151[:a 1]5118('salkjsdlkgfeeal' findString: 'al' startingAt: 1) >>> 2findString: substring "Answer the index of the first substring within the receiver. If the receiver does not contain substring, answer 0." "('salkjsdlkgfee' findString: 'al') >>> 2" "('salkjsdlkgfeesd' findString: 'sd') >>> 6" ^self findString: substring startingAt: 165 1 sign; ; bar11('pharo' endsWith: '') >>> true.'displayStringOn:foo' endsWithAColon >>> false Xuuuuuu n uuu 9' hello ' surroundedBySingleQuotes >>> ''' hello '''2r00101000 highBit >>> 6105 slowFactorial >>> 1205 || am(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollection0(printOn: aStream base: base length: minimum padded: zeroFlag "Return a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set" "(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'" "(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'" | prefix | prefix := self negative ifTrue: ['-'] ifFalse: [ '' ]. self print: (self abs printStringBase: base) on: aStream prefix: prefix length: minimum padded: zeroFlag111laABf64013string2hellocbe/0777000000888030999000000III0A0JJJ0CCGGGCD0HHH05-(10 to: 1 by: -2) sorted >>> (2 to: 10 by: 2)1 631.42?(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 01S ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' (String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'2capacity "Answer the current capacity of the receiver." "OrderedCollection new capacity >>> 10" "(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 20" ^ array size30Otherwise use logarithmstest17+((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)80foo1(false xor: [true]) >>> true33XXXXXXXcanySatisfy: aBlock "Evaluate aBlock with the elements of the receiver. If aBlock returns true for any element return true. Otherwise return false." "(#(1 3) anySatisfy: [ :each | each even ]) >>> false" "(#(1 2) anySatisfy: [ :each | each even ]) >>> true" "('hello world!' anySatisfy: [ :each | each isLetter ]) >>> true" "('hello world!' anySatisfy: [ :each | each isDigit ]) >>> false" "((4 to: 9) anySatisfy: #isPrime) >>> true" "((4 to: 50 by: 2) anySatisfy: #isPrime) >>> false" "(#() anySatisfy: [ true ]) >>> false" self do: [ :each | (aBlock value: each) ifTrue: [ ^ true ] ]. ^ false11Durstenfeld's version of the Fisher-Yates shuffle0.13691995878400012105(false eqv: true) >>> false{} asSet = Set new >>> true310bAnswer substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements.43tcollect: aBlock from: firstIndex to: lastIndex "Refer to the comment in Collection|collect:." "(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) " | size result j | size := lastIndex - firstIndex + 1. result := self species new: size. j := firstIndex. 1 to: size do: [:i | result at: i put: (aBlock value: (self at: j)). j := j + 1]. ^ result0abc5{1@5. 10@ -4} max >>> (10@5)1Returns a new string with contents equals to aString surrounded by aCharacter. Escapes all occurrences of aCharacter within aString by doubling them.103HasCommaString "Return collection printed as 'a, b, c' " "#('a' 'b' 'c') asCommaString >>> 'a, b, c'" "#('a') asCommaString >>> 'a'" "#() asCommaString >>> ''" "'foo' asCommaString >>> 'f, o, o'" "(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25'" ^ String streamContents: [ :s | self asStringOn: s delimiter: ', ' ]+Concatenate the receiver with the argument.O( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSet04'a' asByteArray >>> #[97]10xa'#(10 20 30) // #(1 3 4.0) >>> #(10 6 7)28ppp X X#() isEmptyOrNil >>> trueExample of usages:111(1 sign: 2) ; bar24204333326110, 'hello' & $x103Class structural inspection - Class/Metaclass shiftSunday[ 1 + 2collatedBy: aSortFunction "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated iusing aSortFunction." "(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')" ^PropertySortFunction property: self collatedWith: aSortFunction asSortFunction 100000000Hello!35true asBit >>> 14toString: object "Return a String with the STON serialization of object" "(STON toString: 1@2) >>> 'Point[1,2]'" ^ String streamContents: [ :stream | self put: object onStream: stream ]42 test test2-220 """"""""" atLast: indexFromEnd put: obj "Set the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last element" "({#x .#y .#z} atLast: 2 put: #e; yourself) >>> #(x e z)" ^ self at: self size + 1 - indexFromEnd put: obj111!"a" { "b" 1 "c" . "d" 2 "e" } "f"-1(RuntimeSyntaxError signal: 'false error'|- 11010401060charlie4(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)2Tests-unix-64-Collections-Unordered-Tests-Test.xml0 | T t | t nn. t 01053Vsize "#(a b c d e) size >>> 5" "#(x y z) size >>> 3" ^ self subclassResponsibility Not foundhello30.01010vector0 'def' > 'def' >>> falsecollect: collectBlock thenSelect: selectBlock "Optimized version of Collection>>#collect:thenSelect:" "(#(1 2 3) collect: [:each | each + 10 ] thenSelect: [:each | each even]) >>> #(12)" | each | ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [:index | each := collectBlock value: (self at: index). (selectBlock value: each) ifTrue: [ stream nextPut: each ]]]0vector010/Tests-unix-64-Shift-ClassBuilder-Tests-Test.xml10010al11 | a | | a$' isInitialQuote >>> false1#new isUnary >>> true0.5(#(10 20 30) \\ #(1 3 4.0) >>> #(0 2 2.0) foo 2117-2 reciprocal >>> (-1/2)"'foo' asNewArray >>> 'foo' asArrayfoo: + 40012305asSortedCollection: aSortBlock "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Note that it is better to use #sorted if you don't really need a SortedCollection, but a sorted collection!!" "('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}." | aSortedCollection | aSortedCollection := SortedCollection new: self size. aSortedCollection sortBlock: aSortBlock. aSortedCollection addAll: self. ^ aSortedCollectiona20c"(16rFF digitAt: 1 base: 16) >>> 1502x1-3xincludesSubstring: aString caseSensitive: caseSensitive "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> true" "('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true" "('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> true" "('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> false" ^ (self findString: aString startingAt: 1 caseSensitive: caseSensitive) > 0$' isEnclosingMark >>> false12011foo: a x: a y: b [ :a :a :b | | a a b | a + a + b1 abd hello abd XXXXXXX### XXn XX nnX2usKNonevaluating conjunction -- answer with false since the receiver is false.roundDownTo: aNumber "Answer the next multiple of aNumber toward negative infinity that is nearest the receiver. Examples:" "(3.1479 roundDownTo: 0.01) >>> 3.14" "(3.1479 roundDownTo: 0.1) >>> 3.1" "(1923 roundDownTo: 10) >>> 1920" "(3.1479 roundDownTo: 0.005) >>> 3.145" "(-3.1479 roundDownTo: 0.01) >>> -3.15" ^(self / aNumber) floor * aNumber0vector030201a51 + 2112 (10 'hello')20vbetween: #(nil 1)foo: g131yGiven a collection returns in one pass two collections containing each odd and even elements in respective subcollections^ >> '0:00:00:00.002'" "(1 second + 2 milliSeconds) printString >>> '0:00:00:01.002'" ^ Duration milliSeconds: selfEReturn the HSL saturation of this color, a value between 0.0 and 1.0.<<<<30a0000222222266866555$Returns a number between 0.0 and 1.00150 between: 310 1, 2, 3 and 4-413U(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'422mcloseTo: aSequenceableCollection precision: aPrecision "Return true if all my elements are close to the elements of same index of the parameter with a certain precision" "(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true" self with: aSequenceableCollection do: [ :a :b | (a closeTo: b precision: aPrecision) ifFalse: [ ^ false ] ]. ^ true31c1(-2.567 printShowingDecimalPlaces: 2) >>> '-2.57'10.#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}13findBinary: aBlock do: actionBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the found element as argument If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements or nil as arguments." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 11" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(11 15)'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(nil 1)'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'" ^ self findBinaryIndex: aBlock do: [ :foundIndex | actionBlock value: (self at: foundIndex) ] ifNone: [ :prevIndex :nextIndex | exceptionBlock cull: (prevIndex > 0 ifTrue: [ self at: prevIndex ]) cull: (nextIndex <= self size ifTrue: [ self at: nextIndex ]) ]1W(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection8d110000'' isEmpty >>> true1@ foo: 5ca2!#(1 2 2 3 1 1 1) asBag sum >>> 11 That is true!gAnswer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semantics 0:00:01:00qendsWith: suffix caseSensitive: aBoolean "Answer whether the tail end of the receiver is the same as suffix" "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and suffix are bytes like. Otherwise, if self or suffix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)" "('pharo' endsWith: '' caseSensitive: false) >>> true" "('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> false" "('pharo' endsWith: 'phuro' caseSensitive: false) >>> false" "('pharo' endsWith: 'aRo' caseSensitive: false) >>> true" suffix ifEmpty: [ ^ true ]. aBoolean ifTrue: [ ^self endsWith: suffix ]. self size < suffix size ifTrue: [^ false]. (self class isBytes and: [suffix class isBytes]) ifTrue: [ "Optimized version based on primitive" ^ (self findSubstring: suffix in: self startingAt: self size - suffix size + 1 matchTable: CaseInsensitiveOrder) = (self size - suffix size + 1) ]. suffix withIndexDo: [ :each :index | (self at: self size - suffix size + index) asLowercase = each asLowercase ifFalse: [ ^false ] ]. ^trued4Ternary operator: An if-else string can be written with . The N-th argument must be a Boolean. Yes-string cannot contain colon ':', as it terminates the yes-string. No-string cannot contain closing angle bracket '>', as it terminates the no-string.1c1111Unmatched " in comment.46'('hello world' occurrencesOf: $l) >>> 31it'em1122 & 20This statement is false!D(OrderedCollection new addAll: (1 to: 15); yourself) capacity >>> 2011128hello!14 #[ 1 256 2 ]W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'P(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]' 10r89 abcd1082r11IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct1,(#(1 2 3) noneSatisfy: [:x|x odd]) >>> falseprintStringHex "Returns the hex digit part of the integer when printed in hexadecimal format." "30 printStringHex >>> '1E'" "30 hex >>> '16r1E'" ^ self printStringBase: 162y(false and: [true]) >>> false12336named: aString "Returns the instance of myself having aString as name." "(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)" ^ KeyNameTable at: aString1b is number xzrunningMin: aSubsetSize "Running min. See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningMin: 3) >>> {1 . 1 . 2 . 2}" ^ self running: [ :subset | subset min ] of: aSubsetSize103$A hex >>> '16r41' '>' expected10(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42a0vector050 51111144444215100000000000000dfirst "Answer the first element of the receiver" "#(a b c d e f g h ) first >>> #a" ^ self at: 110b113(1 to: 10) copyEmpty >>> #()101 sign; -3 3222222560.1(8 raisedTo: 2) >>> 642 1OrderedCollection new class >>> OrderedCollection2XsXXXX1 ; foo11-44(OrderedCollection new growAtFirst; capacity) >>> 202from: start to: stop do: aBlock "Evaluate aBlock for all elements between start and stop (inclusive)." "(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30)" start to: stop do: [:index | aBlock value: (self at: index)]Evaluate aBlock with my elements taken two at a time. If there's an odd number of items, ignore the last one. Allows use of a flattened array for things that naturally group into pairs. See also pairsCollect:3(#(10 20) asSet copyWith: 30) >>> #(10 20 30) asSetab20182abcwReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.310:Xsu02T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'1.51001Return the index of the argument in the receiver, only elements after the start of the element are considered zero if not present.20 00000000000032.3028"" abab ac dee$A isAlphaNumeric >>> true12#FFCCAA010qcollect: aBlock into: aCollection "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection." "({10. 20} collect: [:x|x+1] into: {'a'. 'b'. 'c'}) >>> {11. 21. 'c'.}" "('hello' collect: #asciiValue into: Set new) >>> #(104 101 108 111) asSet" ^aCollection fillFrom: self with: aBlock Point class isClassSide >>> trueXXXXXXXXXXXXXXXXXX(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)B('abcdefgh' includesSubstring: 'DE' caseSensitive: false) >>> true11a<<<<>> 3.210000000011211 - 1 - 1 abs - 1 - 1 max: -19(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 0# That is true!=Return true if the receiver is sorted by the given criterion.Answer whether the receiver contains any elements, or is nil. Useful in numerous situations where one wishes the same reaction to an empty collection or to nil20.(#(a b c d e) indexOf: #c startingAt: 2) >>> 3 test test 3ATry to match aColorHex with known named colors, case insensitive."(#() allSatisfy: [false]) >>> true1011111111100000000022222222222220400Add the argument, newObject, as an element of the receiver. Put it in the sequence just succeeding oldObject. Answer newObject. Raises an error if oldObject is not found210002345zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal422 appreciaten sss;X+(#(a b c d e) indexOfAnyOf: #(x y z)) >>> 0(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) c)Color black rgbTriplet >>> #(0.0 0.0 0.0)3Evaluate the given block with the receiver as argument, answering its value unless the receiver is empty, in which case answer the receiver.1.0141093over 23 #[ 1 -1 2 ]longone0022221031 frd th barReturn a new sequenceable collection which contains the same elements as self but its elements are sorted in ascending order using the #'<=' operator.four01"pppp AAAAAAAAAAA ^ aaaaaaaaaaa s n1401 'abc' <= 'def' >>> true7 'def' = 'abc' >>> falsebefore: target ifAbsent: exceptionBlock "Answer the receiver's element immediately before target. Answer the result of evaluating the exceptionBlock if target is not an element of the receiver, or if there are no elements before it." "(#(11 22 33) before: 22 ifAbsent: 55) >>> 11" "(#(11 22 33) before: 44 ifAbsent: 55) >>> 55" | index | index := self indexOf: target. ^ (index = 0 or: [index = 1]) ifTrue: [exceptionBlock value] ifFalse: [self at: index - 1]-3elmerfoo < bar ; baz. > 650.012compare: string1 with: string2 collated: order "'abc' = 'abc' asWideString >>> true" "'abc' asWideString = 'abc' >>> true" "(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> true" "('abc' sameAs: 'aBc' asWideString) >>> true" "('aBc' asWideString sameAs: 'abc') >>> true" "('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true" "((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false" "('a000' asWideString sameAs: (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> false" (string1 isByteString and: [ string2 isByteString ]) ifTrue: [ ^ string1 compareWith: string2 collated: order ]. "Primitive does not fail properly right now" ^ String compare: string1 with: string2 collated: order0000022222223265551010.5iahslSaturation "Return the HSL saturation of this color, a value between 0.0 and 1.0." "Color red hslSaturation >>> 1.0" "(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.0" | chroma | chroma := self chroma. "Chroma is zero for black and white, which are the two cases of division by zero below." chroma isZero ifTrue: [ ^ chroma ]. ^ chroma / (1.0 - (self lightness * 2.0 - 1.0) abs)2Answer the element at my position index. If I do not contain an element at index, answer the result of evaluating the argument, exceptionBlock.Extract a selector with keyword parts from the receiver. While this doesn't give a true parse, in most cases it does what we want, in where it doesn't, we're none the worse for it.instanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self subclassResponsibility12e2441{1)2}120Remove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message.255Cround: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal." "(10.156s round: 2) >>> 10.160s3 " "(1/3.0s round: 4) >>> 0.3333s4 " ^(super round: numberOfWishedDecimal) asScaledDecimal: (scale max: numberOfWishedDecimal)311 a132.2 . 'hello'Filed ###'hello''12d2-4265jasStringOn: aStream delimiter: delimString "Print elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:." "(String streamContents: [:s| 'abcd' asStringOn: s delimiter: '->']) >>> 'a->b->c->d'" self do: [ :elem | aStream nextPutAll: elem asString ] separatedBy: [ aStream nextPutAll: delimString ]0 :B | X b X X3foo10foo211LReturn a color for HTML color spec: #FFCCAA or white/black passed as string.x10 0:B|| |b03[ :super | super + 1 ]2004-02-29T13:33:12+02:00detectMin: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the lowest number. If collection empty, return nil." "({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p x ]) >>> (-4@3)" "({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)" "('Hello!' detectMin: #asciiValue) >>> $!" | minElement minValue | self do: [:each | | val | minValue == nil ifFalse: [ (val := aBlock value: each) < minValue ifTrue: [ minElement := each. minValue := val]] ifTrue: ["first element" minElement := each. minValue := aBlock value: each]. "Note that there is no way to get the first element that works for all kinds of Collections. Must test every one."]. ^ minElement17n s n X7813343Class structural inspection - Class/Metaclass shiftTAdd new empty slots to the end of array, while keeping the empty slots at the front.1022 ** 8 >>> 256hello3.141102X abcf(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(5 6)'&Character newPage isSeparator >>> true3$('hello' includesAll: 'ho') >>> true30611a := a. { [ :a }. a := a124241bqjoin: aCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz'" ^ self species new: (aCollection size * self size) streamContents: [:stream | aCollection do: [:each | stream nextPutAll: each asString] separatedBy: [stream nextPutAll: self]]21Perform an action specified as aBlock to each of the elements of the receiver that have been split using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.b0.005!(#() collect: [:x | x+1]) >>> #() 111110000+(#(a b c d e f g h ) first: 3) >>> #(a b c);({ 2@6 . -4@3 . 10@ -3 } detectMax: [ :p | p y ]) >>> (2@6) 'abc' < 'def' >>> trueb521C('aeiou' findFirstInByteString: 'hello world' startingAt: 1) >>> 2.0vector0100.07lo41, 2, 32222255*baz20 b4 W01-Welcomesalkjsdlkgfeesdrange "returns the difference between the max and min element, their positions notwithstanding" "#( 1 51 10 ) range >>> 50" "{1@50. 10@ -10. 5@5} range >>> (9@60)" ^ self max - self min 5(#(w x y z) atPin: 8) >>> #z(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str delimiter: $|]) >>> 'book-result|W01-Welcome'52 [ :a | a ]That is false!foo*11[descending "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in descending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de')" ^self asSortFunction reversed192({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3).*x1465505%Answer the factorial of the receiver.-"a" [ "b" : "c" x "d" : "e" y "f" | "g" ] "h"GcontractTo: smallSize "return myself or a copy shortened by ellipsis to smallSize" "('abcd' contractTo: 10) >>> 'abcd'" "('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'" "('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'" | leftSize | self size <= smallSize ifTrue: [^ self]. "short enough" smallSize < 5 ifTrue: [^ self copyFrom: 1 to: smallSize]. "First N characters" leftSize := smallSize-2//2. ^ self copyReplaceFrom: leftSize+1 "First N/2 ... last N/2" to: self size - (smallSize - leftSize - 3) with: '...'1000@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'2=Tests-unix-64-Calypso-SystemTools-QueryBrowser-Tests-Test.xml(String streamContents: [:s | Character space split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '9847!('pharo' beginsWith: '') >>> true0353a0vector02OReturn all the elements that appear in self or in aCollection. Alias of union:3(#(1 2) anySatisfy: [ :each | each even ]) >>> true3dcd50((#(a b c d e) identityIndexOf: #c) >>> 3|a:|1)#message asTestSelector >>> #testMessage X | t t t | t s t s tA(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si)?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)0.0052Answer whether the receiver contains any elements.0118-252286beginsWith: aSequenceableCollection "Answer true if the receiver starts with the argument collection" "(#(1 2 3 4 5) beginsWith: #()) >>> true" "(#(1 2 3) beginsWith: #(1 2 3 4 5)) >>> false" "(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false" "(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> true" aSequenceableCollection ifEmpty: [ ^true ]. self size < aSequenceableCollection size ifTrue: [^false]. aSequenceableCollection withIndexDo: [:each :index | (self at: index) ~= each ifTrue: [^false]]. ^true01oneeiAnswer the index of anElement within the receiver. If the receiver does not contain anElement, answer 0.00102000533334400667~Returns #left, #right or #center if the otherPoint lies to the left, right or on the line given by the vector from 0@0 to self Tests-unix-6415-2Variable or expression expectedhexString "Returns a string representation of the receiver as hexadecimal, prefixed with 16r." "Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true" "12 hexString >>> '16rC'" "10 hexString >>> '16rA'" "-10 hexString >>> '-16rA'" ^ self storeStringBase: 16(false xor: [false]) >>> false(false xor: [true]) >>> true1b [ :a | 1 ]10<('*' join: #('WWWWW' 'W EW' 'zzzz')) >>> 'WWWWW*W EW*zzzz'0001(Character space isAlphaNumeric >>> false93 "nothing" 1reject: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver only those elements for which aBlock evaluates to false. Answer the new collection." "(#(1 2 3 4 5) reject: #even) >>> #(1 3 5)" "('Hello, World!' reject: #isLetter) >>> ', !'" "((1 to: 8) reject: #isPrime) >>> #(1 4 6 8)" ^ self select: [ :element | (aBlock value: element) == false ]0pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set100foo7ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'" ^trueAlternativeBlock value#( #( 0 1 2 ) ) >= aString "Answer whether the receiver sorts after or equal to aString. The collation order is simple ascii (with case differences)." " 'def' >= 'abc' >>> true" " 'def' >= 'def' >>> true" " 'abc' >= 'def' >>> false" ^ (self compare: self with: aString) >= 05054001!(10 printStringBase: 10) >>> '10'~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.Return an instantiated color from parm. If parm is already a color, return it, else return the result of my performing it if it's a symbol or, if it is a list, it can either be an array of three numbers, which will be interpreted as RGB values, or a list of symbols, the first of which is sent to me and then the others of which are in turn sent to the prior result, thus allowing entries of the form #(blue darker). Else just return the thingisFloatPoint "Return true if both of my x and y coordinates are represented by float values, otherwise false" "(1@2) isFloatPoint >>> false" "(1@2.2) isFloatPoint >>> false" "(1.3@2.2) isFloatPoint >>> true" "((1/3)@(2/2)) isFloatPoint >>> false" ^ x isFloat and: [ y isFloat ]sixth "Answer the sixth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) sixth >>> #f" ^ self at: 612 startsWithDigit "Answer whether the receiver's first character represents a digit" "'abc' startsWithDigit >>> false" "'0abc' startsWithDigit >>> true" "'1abc' startsWithDigit >>> true" "'11abc' startsWithDigit >>> true" ^ self size > 0 and: [self first isDigit](2 raisedTo: -1) >>> (1/2)/Negated value of all elements in the collection 00000000000001121314111766685559 2r00101000|Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessary100-2#(5 -3.7 0) sign >>> #(1 -1 0)11010(100 @ -200) abs >>> (100@200)20vector01 31111220044520collect: collectBlock thenReject: rejectBlock "Optimized version of Collection>>#thenReject:" "(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)" | each | ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [:index | each := collectBlock value: (self at: index). (rejectBlock value: each) ifFalse: [ stream nextPut: each ]]]ppp < <<<<>> {57.1->1 . 85.7->2 . 100.0->3}" | s n | s := self size / 100.0. n := 0. ^ self sortedCounts asArray collect: [:a | n := n + a key. (n / s roundTo: 0.1) -> a value]36r1haltAnswer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections.-Optimized version of Collection>>#thenReject:-2 odd >>> false330 '}' expected/(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42abc6the20isSymbol2.lastIndexOf: anElement "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b a d a) lastIndexOf: #a) >>> 5" "(#(a b a d e) lastIndexOf: #a) >>> 3" ^ self lastIndexOf: anElement startingAt: self size ifAbsent: [0]32Faster than the superclass implementation when you hold many instances of the same value (which you probably do, otherwise you wouldn't be using a Bag).42044P({10. 20} asSet addAll: {20. 30. 30. 40.}; yourself) >>> {10. 20. 30. 40.} asSetW EW16111920p(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollection10:(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)7(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 72;'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2U(ByteArray with: 97 with: 0 with: 0 with: 0) asString ~= 'a000' asWideString >>> true13replaceFrom: start to: stop with: replacement "This destructively replaces elements from start to stop in the receiver. Answer the receiver itself. Use copyReplaceFrom:to:with: for insertion/deletion which may alter the size of the result." "({#a. #b. #c. #d. #e} replaceFrom: 3 to: 4 with: #(x y)) >>> #(a b x y e)" replacement size = (stop - start + 1) ifFalse: [self error: 'Size of replacement doesnt match']. ^self replaceFrom: start to: stop with: replacement startingAt: 1;#+-<> asTestSelector >>> #testPlusMinusLessThanGreaterThan2312018220vector020Variable name expectedz1(#(3 1 4 2) sorted: [:a :b| a>=b]) >>> #(4 3 2 1)E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 0u <appp <<<<< XX XX X< *[(#("a"("b"###("c"###["d"]#["e"]["f"]))))]1"'( 1 and: 4)' findSelector >>> nil1. := 2#(a b c) allButFirst >>> #(b c)2ze1@foo3065536 bytesCount >>> 3"(true or: [Error signal]) >>> true&atAll: indexArray putAll: valueArray "Store the elements of valueArray into the slots of this collection selected by indexArray." "({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)" indexArray with: valueArray do: [:index :value | self at: index put: value]. ^ valueArrayxb23.1$((1 to:9 by:2) includes: 3) >>> true20d016777215113whoeEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.1021122e32yAnswer my value constrained to the interval [minValue ; maxValue] I take care of the situation where minValue > maxValues:1 e:5 s:7 e:8 s:10 e:13 9previous: dayName "Answer the previous date whose weekday name is dayName." "((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'" | days | days := 7 + self weekdayIndex - (self class dayOfWeek: dayName) \\ 7. days = 0 ifTrue: [ days := 7 ]. ^ self subtractDays: days10AMan,APlan,ACanal,Panama1.0 fromString: aString "Return a color for HTML color spec: #FFCCAA or white/black passed as string." "(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) " "(Color fromString: 'orange') >>> Color orange" | aColorHex | aString isEmptyOrNil ifTrue: [ ^ self white ]. aColorHex := aString first = $# ifTrue: [ aString allButFirst ] ifFalse: [ aString ]. "Try to match aColorHex with known named colors, case insensitive." ^ self registeredColorNames detect: [ :each | each sameAs: aColorHex ] ifFound: [ :namedColor | self named: namedColor ] ifNone: [ (aColorHex size = 6 and: [ aColorHex allSatisfy: [ :character | '0123456789ABCDEFabcdef' includes: character ] ]) ifTrue: [ self fromHexString: aColorHex ] ifFalse: [ self white ] ]Foo'Bar3202[Answer the third element of the receiver. Raise an error if there are not enough elements.'2345' isAllDigits >>> true!#(a b c d e f g h ) fourth >>> #d00200@ foo: !'' expandMacros >>> String tab| T t | t nn. ^ t00000001511.012SHIFT_L1WReturn a string containing the path elements of the receiver, without the 'Path *' part039closeTo: aSequenceableCollection "Return true if all my elements are close to the elements of same index of the parameter" "(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> true" ^ self closeTo: aSequenceableCollection precision: Float defaultComparisonPrecision2200201020|escapeCharacter: aCharacter "Returns a copy of the string doubling all occurence of aCharacter." "See `unescapeCharacter:` for the opposite" "('abc' escapeCharacter: $X) >>> 'abc'" "('aXb' escapeCharacter: $X) >>> 'aXXb'" "('XaX' escapeCharacter: $X) >>> 'XXaXX'" "('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'" | result stream | result := WriteStream with: ''. stream := ReadStream on: self. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peekBack = aCharacter ifTrue: [ result nextPut: aCharacter. result nextPut: aCharacter ] ]. ^ result contents%({1@ -4. -10@1} sum: #abs) >>> (11@5)10vector0([ 12 ] cull: 13)>>> 12 0.#(aa:bb:"A"cc"B"#aa:bb:cc"C"#cc"D"++"E"#++"F")swap: oneIndex with: anotherIndex "Move the element at oneIndex to anotherIndex, and vice-versa." "({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)" | element | element := self at: oneIndex. self at: oneIndex put: (self at: anotherIndex). self at: anotherIndex put: element 'ziggie' lastSpacePosition >>> 013xzisClassSide "Return true whether the receiver is a metaclass (in a couple class/metaclass sense)." "Point isClassSide >>> false" "Point class isClassSide >>> true" ^self == self classSide{Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences).b&Tests-unix-64-Ring-Core-Tests-Test.xml10abcDefgh11011, !||negated "Negated value of all elements in the collection" "#(1 2 3) negated >>> #(-1 -2 -3)" "{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}" ^ self collect: [ :a | a negated ]10ifTrue: alternativeBlock "Answer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'" ^alternativeBlock valueFoo1iList elements betwen () and separated by spaces. Is used by printOn: and other related printing methods.6bind: aBlock "Extract items from the receiver and use them as arguments of aBlock. Signal an error (ArgumentsCountMismatch) when the arguments count of aBlock does not match the receiver size." "(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 6" ^ aBlock valueWithArguments: self12-(#(10 20 30) includesAll: #(30 40)) >>> false3Invalid input/output !0a A423Class structural inspection - Class/Metaclass shift0.56replaceAll: oldObject with: newObject "Replace all occurrences of oldObject with newObject" "({#a. #b. #a. #d. #a} replaceAll: #a with: #e) >>> #(e b e d e)" | index | index := self indexOf: oldObject startingAt: 1 ifAbsent: [0]. [index = 0] whileFalse: [self at: index put: newObject. index := self indexOf: oldObject startingAt: index + 1 ifAbsent: [0]]1longone285.7'2345.88' isAllDigits >>> false4245 . 5*#(1 2 3 4) unzip first asArray >>> #(1 3)10:00:00:00.0000000025sorted: aSortBlockOrNil "Return a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison." "(#(3 9 1) sorted: [:a :b | a <= b ]) >>> #(1 3 9)" "(#(3 9 1) sorted: [:a :b | a >= b ]) >>> #(9 3 1)" "(#(xa xc xz xb xy) sorted: #last ascending) >>> #(xa xb xc xy xz)" ^self copy sort: aSortBlockOrNilFind the index of first character starting at start in aByteString that is included in the receiver. Default is to use a naive algorithm. Subclasses might want to implement a more efficient scheme. Return 0 if not found.72i (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'00 bytestringkIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block4up0Absolute value of all elements in the collection1124&cull: anArg "Execute the receiver with one or zero arguments depending on the receiver" "([ 12 ] cull: 13)>>> 12 " "([:x | x + 12] cull: 3)>>> 15" ^numArgs = 0 ifTrue: [self value] ifFalse: [self value: anArg]5[((Date year: 2018 month: 9 day: 28) previous: 'Sunday') printString >>> '23 September 2018'0119Rwith: anObject withAll: aCollection "Creates an array with anObject followed by elements contained in aCollection." "(Array with: 1 withAll: #(2 3 4)) >>> #(1 2 3 4)" | newArray | newArray := self new: aCollection size + 1. newArray at: 1 put: anObject. newArray replaceFrom: 2 to: newArray size with: aCollection. ^newArray-8233042abc4def2201''fred the bear' lastSpacePosition >>> 9 3 odd >>> true'{1@2. 3@ -1} negated >>> {-1@ -2. -3@1}27Answer the previous date whose weekday name is dayName.M(Character space asString, Character space asString) isAllSeparators >>> truedpppp AAAAA ^ aaaaa s n101[{"foo":1},{"bar":2}]1XXsX#$) isConnectorPunctuation >>> false11-1-2140a66!""" 0 """ n """ . """ n """ 0 """6 Pharo is cool foo | tmp | tmp := 1 . ^ tmp . 1aVChroma is zero for black and white, which are the two cases of division by zero below.7a1: a1 a2: a2 a3: a3 a4: a4 a5: a5 a6: a6 a7: a7 a8: a8 a9: a9 a10: a10 a11: a11 a12: a12 a13: a13 a14: a14 a15: a15 a16: a16 ^ a1}Collect and return the result of evaluating twoArgBlock with corresponding elements from this collection and otherCollection.2U({10. 20} asOrderedCollection add: 30; yourself) >>> {10. 20. 30} asOrderedCollectiondnXXn-3001120030044500'he'llo'2100,select: aBlock "Optimized version of Collection>>#select:" "(#(1 2 3 4) select: [:each | each > 2 ]) >>> #(3 4)" | each | ^ self species new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (aBlock value: (each := self at: index)) ifTrue: [ stream nextPut: each ]]]10.160s3-1011>> false252100000000000003 This should be fast: 1. Integer>>to:do: is inlined in the bytecode (no block). 2. The Array>>at: callsite should be monomorph to a primitive method. :::aT{ 1->2. 3->4 } asDictionary >>> (Dictionary new at: 1 put: 2; at: 3 put:4; yourself)&('Hello!' detect: #isLowercase) >>> $e32133333161115d-198runningAverage: aSubsetSize "Running average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}" ^ self running: [ :subset | subset average ] of: aSubsetSize3 (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0)#(3 5 7 7) average >>> (11/2) b110301splitOn: splitter do: aBlock "Perform an action specified as aBlock to each of the elements of the receiver that have been split using the splitter argument. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object." "(String streamContents: [:s | 'Pharo is cool' splitOn: Character space do: [:each | s << each ]])>>>'Pharoiscool'" ^ splitter split: self do: aBlockadd: newObject "Add a new object at the end of the collection, and returns the object itself" "((OrderedCollection new add: 42; yourself) add: 43; yourself) asArray >>> #(42 43)" "Add returns the object itself" "(OrderedCollection new add: 42) >>> 42" "You may want to use yourself to return the collection itself" "(OrderedCollection new add: 42; yourself) class >>> OrderedCollection" "(OrderedCollection new add: 42; yourself) size >>> 1" ^self addLast: newObject&2 seconds printString >>> '0:00:00:02'.00######"""##"""#########"""###"""##"""###"""0X''''''2001420vector0PhsvSaturation "Return the HSV saturation of this color, a value between 0.0 and 1.0." "Color red hsvSaturation >>> 1.0" "(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.4995112414467253" | max | max := self privateMaxComponent. ^ max isZero ifTrue: [ 0.0 ] ifFalse: [ (max - self privateMinComponent) asFloat / max asFloat ]134 foo < + > >printOn: aStream delimiter: delimString "Print elements on a stream separated with a delimiter String like: 'a, b, c'" "(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ']) >>> '10, ''hello'', $x'" self do: [:elem | aStream print: elem] separatedBy: [aStream nextPutAll: delimString]31202Negation--answer false since the receiver is true.22300000100002000030555655755855599A9B9C999FEEEGDDDH55hello15Return the middle element, or as close as we can get.7oflatCollectAsSet: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "( #(1 2 3) flatCollectAsSet: [:each | { each. each+1 } ] ) >>> #(1 2 3 4) asSet" ^ self flatCollect: aBlock as: SetUnreachable statement(#(11 22 33) before: 33) >>> 22440after: target ifAbsent: exceptionBlock "Answer the element after target. Answer the result of evaluation the exceptionBlock if target is not in the receiver, or if there are no elements after it." "(#(a b c d) after: #b ifAbsent: #z) >>> #c" "(#(a b c d) after: #x ifAbsent: #z) >>> #z" | index | index := self indexOf: target. ^ (index = 0 or: [index = self size]) ifTrue: [exceptionBlock value] ifFalse: [self at: index + 1]lo0 [ :a : | ]cool 16r4116r41#(-10 printStringBase: 10) >>> '-10'R(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}2{10@20. 30@0} - {0@1. 2@3} >>> {(10@19). (28@ -3)}2260#(10 20 30) sum >>> 6013-""" 0 """ : """ B """ : """ B """ | """ 0 """3(#(1 5 10) detectIndex: [ :each | each > 3 ]) >>> 2translateBy: delta "Answer a Point translated by delta (an instance of Point)." "((100@200) translateBy: 5@10) >>> (105@210)" ^ (delta x + x) @ (delta y + y)50vector01bar0a := a. { [ :a | }. a := acharlie2 slowFactorial >>> 2ifFalse: alternativeBlock "Answer the value of alternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'" ^alternativeBlock valueabc23h42a'b100RUtility method to improve readability. Do not create the intermediate collection.V('Hello, world!' collect: [:e | e isLetter ifTrue: e ifFalse: $-]) >>> 'Hello--world-'Special case of self = 00 0001 beginsWith: prefix "Answer whether the receiver begins with the given prefix string. The comparison is case-sensitive." "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct" "('pharo' beginsWith: '') >>> true" "('pharo' beginsWith: 'pharo-project') >>> false" "('pharo' beginsWith: 'phuro') >>> false" "('pharo' beginsWith: 'pha') >>> true" prefix ifEmpty: [ ^true ]. (self class isBytes and: [ prefix class isBytes ]) ifFalse: [^super beginsWith: prefix]. self size < prefix size ifTrue: [^ false]. ^ (self findSubstring: prefix in: self startingAt: 1 matchTable: CaseSensitiveOrder) = 13 a: foo42Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey. Execute aZeroArgBlock in case one of the key is wrong.4ifFalse: alternativeBlock "If the receiver is true (i.e., the condition is true), then the value is the true alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'This statement is false!' ]) >>> 'This statement is false!'" "(true ifFalse: [ 'This statement is false!' ]) >>> nil" self subclassResponsibility:a:foo<(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28' Hello, World!foo*baz1-1 - 1abs-1 - 1max:-11#(1 2 3) anyOne >>> 1whatever3.14u u. 0 :B X 0. u u#1r0 goodby: my: 31orange[ [ ^ 1. 2. ^ 3 ]3&#(1 2 3 4) & #(1 2 4 6 7) >>> #(1 2 4)@{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'100isCasedLetter "We are sorry but this method is unclear and will probably be removed. This method only returning false." "$a isCasedLetter >>> false" "$A isCasedLetter >>> false" ^ self characterSet isCasedLetter: self(Tests-unix-64-Roassal-UML-Tests-Test.xml3ppp < <<<< n>> false" "(false and: [Error signal]) >>> false" ^selfcaption0:B :X674-1432111 hello world "com"1"ment"foo 12004314530\|a|a:= Array new: 3. #(10 20 30) withIndexDo: [:e :i| a at: 4-i put: e+1]. a >>> #(31 21 11)0104!""" 0 """ 1 """ n """ 1 """ 0 """0.01Sort the given range of indices using the mergesort algorithm. Mergesort is a worst-case O(N log N) sorting algorithm that usually does only half as many comparisons as heapsort or quicksort.That is false!1024aisUnary "Answer whether the receiver is an unary message selector." "#new isUnary >>> true" "#>> isUnary >>> false" "#between:and: isUnary >>> false" ^ self precedence = 1-888 00999000AAA030BBB000FFF0C0GGG000III00 JJJ That is true!2four6ppp ^ 0 | T | t n. 1 :B | b 1 ssssss nn s t 0 sssss00000000000000one ab ab ac deincludesAll: aCollection "Answer whether all the elements of aCollection are in the receiver." "(#(10 20 30) includesAll: #(30 20)) >>> true" "(#(10 20 30) includesAll: #(30 40)) >>> false" "(#(10 20 30) includesAll: #()) >>> true" "('hello' includesAll: 'ho') >>> true" "('hello' includesAll: 'hop') >>> false" aCollection do: [:elem | (self includes: elem) ifFalse: [^ false]]. ^ true0vector0100.012550#(1 -3 5 1) argmax >>> 342100vector033RReturn all the elements in self that are not in aCollection. Alias of difference:7('pharo' endsWith: 'aRo' caseSensitive: false) >>> truex-0.9//0.4 >>> -3 | | . a: | 1d0.0defAnswer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index.bK(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10)2(42 decimalDigitAt: 1) >>> 225120281012#(-3.1479 roundUpTo: 0.01) >>> -3.14Do nothing on purposeW(String streamContents: [:s| 'abcd' asStringOn: s delimiter: '->']) >>> 'a->b->c->d'410522[ ^ 1 ]. 2. ^ 3325141511 abs0(^1)Ufoo ^ [ :a1 :a2 :a3 :a4 :a5 :a6 :a7 :a8 :a9 :a10 :a11 :a12 :a13 :a14 :a15 :a16 | a1 ]#( 1 #']' 2 #'}' 3 )2i1$Character space isSeparator >>> truecand: alternativeBlock "Nonevaluating conjunction. If the receiver is true, answer the value of the argument, alternativeBlock; otherwise answer false without evaluating the argument." "(true and: [true]) >>> true" "(true and: [false]) >>> false" "(false and: [true]) >>> false" "(false and: [Error signal]) >>> false" self subclassResponsibility2X Answer the index of the receiver's first element, such that that element equals the first element of aSubCollection, and the next elements equal the rest of the elements of aSubCollection. Begin the search at element anIndex of the receiver. If no such match is found, answer 0.9y63002232428_(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollectionb20#('pharo' endsWith: 'aRo') >>> false0\Answer the second element of the receiver. Raise an error if there are not enough elements.b5-01012a250121aprintOn: aStream delimiter: delimString last: lastDelimString "Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'" "(String streamContents: [:s| { 10. 'hello'. $x } printOn: s delimiter: ', ' last: ' & ']) >>> '10, ''hello'' & $x'" "Note: Feel free to improve the code to detect the last element." | n sz | n := 1. sz := self size. self do: [:elem | n := n + 1. aStream print: elem] separatedBy: [ n = sz ifTrue: [aStream nextPutAll: lastDelimString] ifFalse: [aStream nextPutAll: delimString]]-1123 X X XZReplace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters$'3.123' isAllAlphaNumerics >>> false% aNumber "modulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber." "9 % 4 >>> 1" "-9 % 4 >>> 3" "9 % -4 >>> -3" ^ self \\ aNumberEvaluate aBlock with each of the receiver's elements as the argument. If some element evaluates aBlock to true, then cull this element into foundBlock and answer the result of this evaluation. If none evaluate to true, then evaluate exceptionBlock.2 0000222222230>> true" "nil isEmptyOrNil >>> true" "([0 isEmptyOrNil] on: MessageNotUnderstood do: ['oops']) >>> 'oops'" ^ self isEmpty1.2size "Answer how many elements the receiver contains." "#(1 2 2 3 1 1 1) asBag size >>> 7" | tally | tally := 0. contents do: [:each | tally := tally + each]. ^ tallye13000002,(#(11 22 33) before: 22 ifAbsent: 55) >>> 1111taz9((1 to: 10 by: 2) sorted: [:a :b| a>=b]) >>> #(9 7 5 3 1)aeParse and materialize the STON representation in the character readStream, skipping C-style comments;Message sending and code execution - Runtime and EvaluationOptimized implementation1122true | true >>> trued((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome'12x Pharo is coolasSet "Answer a set with the elements of the receiver." "#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSet" ^ contents keys asSet4('abcdefgh' includesSubstring: 'de' at: 1) >>> false(Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)-4 ( . ^ 1 )51c+ foo: b_In the following example, the group `3->#(34)` is filtered out because there is not 2 elements. 0:00:01:0210||Color red hsvSaturation >>> 1.021M(RubTextEditor new surroundString: 'a''b' withCharacter: $') >>> '''a''''b'''3256allButLast "Answer a copy of the receiver containing all but the last element. Raise an error if there are not enough elements." "#(a b c d) allButLast >>> #(a b c)" ^ self allButLast: 12foo*baz.(#(40 41 42) asOrderedCollection at: 1) >>> 401 000001122211155533334111667771106201811160vector212 [ :a | b ]#foo keywords >>> #('foo')hpharo3(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)10ag'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'234511,foo "a" "b" "c" "d" "e" "f" "g" 1Durstenfeld's version of the Fisher-Yates shuffle^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.xc10-23or: alternativeBlock "Nonevaluating disjunction -- answer true since the receiver is true." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" ^ self4'' expandMacros >>> OSPlatform current lineEnding3d(#(1 2 3 4 1 2 3 4 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4) #(1 2 3) #(4) #(5 6))d~reduceLeft: aBlock "Fold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments." "(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3)" "(#(1 2 3) reduceLeft: [ :a :b | a - b ]) >>> -4" "(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> ((1 + 3) - 5)" "(#(1 + 3 - 5) reduceLeft: [ :a :op :b | a perform: op with: b ]) >>> -1" | arguments | self emptyCheck. arguments := Array new: aBlock argumentCount. (arguments size = 0 or: [ (self size + 1) \\ (arguments size - 1) > 0 ]) ifTrue: [ self error: 'Collection size and block argument count do not match.' ]. arguments at: 1 put: self first. 2 to: self size by: arguments size - 1 do: [ :index | arguments replaceFrom: 2 to: arguments size with: self startingAt: index; at: 1 put: (aBlock valueWithArguments: arguments) ]. ^ arguments first33withIndexCollect: elementAndIndexBlock "Just like with:collect: except that the iteration index supplies the second argument to the block." "(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)" | result | result := self species new: self size. 1 to: self size do: [:index | result at: index put: (elementAndIndexBlock value: (self at: index) value: index)]. ^ result0001T(true ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is true!'0vector06470 a digit between 0 and 1 expected-16rAoops abcdf abcedf1031&((100@200) min: (30@400)) >>> (30@200)(Answer the first element of the receiver40010({1. 2} asSet = {1. 2. 3} asSet >>> falseOAnswer a Point whose x and y are the absolute values of the receiver's x and y.1S( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)fromRgbTriplet: list "Return a color from its RGB components (0 - 1.0 floats)" "(Color colorFrom: #(1.0 1.0 1.0)) >>> (Color white)" ^ self r: list first g: list second b: list last530findSelector "Extract a selector with keyword parts from the receiver. While this doesn't give a true parse, in most cases it does what we want, in where it doesn't, we're none the worse for it." "'isSymbol' findSelector >>> #isSymbol" "'x isSymbol' findSelector >>> nil" "'x isSymbol: 33' findSelector >>> #isSymbol:" "'between:and:' findSelector >>> #'between:and:'" "'2 between: 0 and: 4' findSelector >>> #'between:and:'" "'2 between: ( 1 and: 4)' findSelector >>> #between:" "'( 1 and: 4)' findSelector >>> nil" | sel possibleParens | sel := self trimBoth. sel := sel copyReplaceAll: '#' with: ''. sel := sel copyReplaceAll: '[' with: ' [ '. (sel includes: $:) ifTrue: [sel := sel copyReplaceAll: ':' with: ': '. "for the style (aa max:bb) with no space" possibleParens := sel findTokens: Character separators. sel := self species streamContents: [:s | | level | level := 0. possibleParens do: [:token | | n | (level = 0 and: [token endsWith: ':']) ifTrue: [s nextPutAll: token] ifFalse: [(n := token occurrencesOf: $( ) > 0 ifTrue: [level := level + n]. (n := token occurrencesOf: $[ ) > 0 ifTrue: [level := level + n]. (n := token occurrencesOf: $] ) > 0 ifTrue: [level := level - n]. (n := token occurrencesOf: $) ) > 0 ifTrue: [level := level - n]]]]]. sel isEmpty ifTrue: [^ nil]. sel isOctetString ifTrue: [sel := sel asOctetString]. Symbol hasInterned: sel ifTrue: [:aSymbol | ^ aSymbol]. ^ nilblue1/{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}VAnswer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. Note: it is user responsibility to provide aCollection that behaves relatevily fast when asked for includes: (like a Set)22'bar' asSortedCollection asArray >>> {$a. $b. $r}.3Replace all occurrences of oldObject with newObject 'abcd' asFourCode >>> -513645724'21Warning signal: 'false error'3even " 0 even >>> true" " 2 even >>> true" "-2 even >>> true" " 3 even >>> false" "-3 even >>> false" ^(self bitAnd: 1) = 0b1 abcabcabc5a. :foo1126(#(1 2 3 4) asSet intersection: #() asSet) >>> Set new#$> isConnectorPunctuation >>> false2+001"""1"""#"""#"""#"""#"""#"""#"""#"""#"""00 :. a: foo3asDigitsToPower: anInteger do: aBlock "Repeatedly value aBlock with a single Array. Adjust the collection so that aBlock is presented all (self size raisedTo: anInteger) possible combinations of the receiver's elements taken as digits of an anInteger long number." "(Array streamContents: [:stream | (0 to: 1) asDigitsToPower: 4 do: [:each | stream nextPut: each copy]]) >>> #(#(0 0 0 0) #(0 0 0 1) #(0 0 1 0) #(0 0 1 1) #(0 1 0 0) #(0 1 0 1) #(0 1 1 0) #(0 1 1 1) #(1 0 0 0) #(1 0 0 1) #(1 0 1 0) #(1 0 1 1) #(1 1 0 0) #(1 1 0 1) #(1 1 1 0) #(1 1 1 1))" | aCollection | aCollection := Array new: anInteger. self asDigitsAt: 1 in: aCollection do: aBlock((1 == 1) eqv: true) >>> trueWindexOf: anElement startingAt: start "Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer 0." "(#(a b c d e) indexOf: #c startingAt: 2) >>> 3" "(#(a b c d e) indexOf: #c startingAt: 4) >>> 0" ^self indexOf: anElement startingAt: start ifAbsent: 0| T | 0 t nn 0. ^ tnX3>Return number that represents digit at given decimal position. 2 even >>> true16d22,(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 7-3.15-9a?('<1?success:is error>' expandMacrosWith: false) >>> 'is error'520 foo < bar: 364corner: aPoint "Answer a Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle." "(10@10 corner: 100@100) >>> (10@10 corner: 100@100)" ^ Rectangle origin: self corner: aPoint(Return whether the receiver is a letter.0022300 Not found2XXXXu,'th is is2 9 a stRI4' squeezeOutNumber >>> 22 between: Unused variable5classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ selfppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA ppp AA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA pppp AAA ^ aaasSet "Answer a Set whose elements are the unique elements of the receiver." "{1. 2} asSet = {2. 1} asSet >>> true" "{1. 2} asSet = {1. 2. 2} asSet >>> true" "{1. 2} asSet = {1. 2. 3} asSet >>> false" "{} asSet = Set new >>> true" ^ Set withAll: self012Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.310xb1###'hello''world7e200320000111111222332210fromString: string "Parse and materialize the STON representation in string" "(STON fromString: 'Point[1,2]') >>> (1@2)" ^ self fromStream: string readStream16433y242_select elements from the receiver that the block evaluates true with the element and its index.1100 . :437ifTrue: trueAlternativeBlock ifFalse: falseAlternativeBlock "Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'" ^falseAlternativeBlock value113111&('foo*baz' match: 'foo23baz') >>> true-2.3561944901923452Unexpected block parameter->includes: anObject "Answer whether anObject is one of the receiver's elements." "(#(1 2 2 3 1 1 1) asBag includes: 5) >>> false" "(#(1 2 2 3 1 1 1) asBag includes: 1) >>> true" ^ contents includesKey: anObject3Use a proper symbol literal15a : foo770(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 7/(#(1 2 3 4) count: [ :each | each even ]) >>> 220`(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))b{1. 2} asByteArray >>> #[1 2]3includes: anObject "Answer whether anObject is one of the receiver's elements." "(#(10 20 30) includes: 20) >>> true" "(#(10 20 30) includes: 21) >>> false" "((1 to:9 by:2) includes: 3) >>> true" "((1 to:9 by:2) includes: 4) >>> false" "('Hello' includes: $l) >>> true" "('Hello' includes: $h) >>> false" "({'hello'. 'world'} includes: 'hello') >>> true" "({'hel','lo'. 'world'} includes: 'hello') >>> true" ^ self anySatisfy: [:each | each = anObject]21001an integer greater than 1 as valid radix expected10Alias of Collection>>reduce1a128'''h''' withoutQuoting >>> 'h'1"a" #[ "b" 1 "c" 2 "d" ] "e"0 X X X0"result will cover the range [-1,1]'(6 numberOfCombinationsTaken: 3) >>> 20330vector0X#####*(#(a b c d) after: #b ifAbsent: #z) >>> #cPoint[1,/*comment*/2]100c2('abddf' indexOf: $k) >>> 0-01020* """ | """ T """ | """ t """ """ n """ 4 953.67 MB>|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 60413042(#(w x y z) atPin: 2) >>> #xphuro1(Array streamContents: [ :stream | #(0 1 2 3) allPairsDo: [ :first :second | stream nextPut: { first . second } ] ]) >>> #(#(0 0) #(0 1) #(0 2) #(0 3) #(1 0) #(1 1) #(1 2) #(1 3) #(2 0) #(2 1) #(2 2) #(2 3) #(3 0) #(3 1) #(3 2) #(3 3))10.156sprintElementsOn: aStream "List elements betwen () and separated by spaces. Is used by printOn: and other related printing methods." "(String streamContents: [:s| {10. 'hello'} printElementsOn: s]) >>> '(10 ''hello'')'" "(String streamContents: [:s| #() printElementsOn: s]) >>> '()'" "Note: The original code used #skip:, but some streams do not support that, and we don't really need it." aStream nextPut: $(. self do: [:element | aStream print: element] separatedBy: [aStream space]. aStream nextPut: $)X(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)xAnswer the last element of the receiver. Pay attention, last is not equivalent to stop in certain situations. See below.ABCPharo is 'cool'253k66186' test test' withSeparatorsCompacted >>> ' test test'220=Answer whether the final character of the receiver is a colon59 \\ -4 >>> -32(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}cmilliSecond "1 milliSecond printString >>> '0:00:00:00.001'" "(1 second + 1 milliSecond) printString >>> '0:00:00:01.001'" ^ self milliSeconds12three + 10000000003"Point class instanceSide >>> PointFile asFile Files File's File32501Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil.#() asByteArray >>> #[]'Now is the time for all good people to come to the aid of the cause of world peace. It is just fine, even desirable, to love your country, if that means wanting it to play a beneficial role in the course of world events and be the best possible example of a good society. But if it means wanting dominion over the rest of the world, it is not love but defensiveness or self-glorification, and will lead only to oblivion.' piecesCutWhere: [:a :b| a = $. and: [b isSeparator]]100-0.98512#[ 1 ]. #[ 2 ]let10!('abc' repeat: 3) >>> 'abcabcabc'substrings "Answer an array of non-empty substrings from the receiver separated by one or more whitespace characters." "'let us make seperate strings' substrings >>> #('let' 'us' 'make' 'seperate' 'strings')" ^ self substrings: CSSeparators2(#(11 22 33) asOrderedCollection atWrap: 4) >>> 11Whitespace characters:wisControlOther "Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert" "Character delete isControlOther >>> true" "Character backspace isControlOther >>> true" "Character space isControlOther >>> false" "Character home isControlOther >>> true" "Character pageUp isControlOther >>> true" "Character arrowDown isControlOther >>> true" "Character end isControlOther >>> true" "$) isControlOther >>> false" "$> isControlOther >>> false" "$} isControlOther >>> false" ^ self characterSet isControlOther: self2200011053Returns whether the receiver contains the argument.10 r060Message expected0vector0f('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string'2: world121. "a" "b" "c" 2 "d"-Tests-'ab' asArray >>> {$a. $b} foobazzort1m({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary110a0vector0!(#(a b c d e) last: 2) >>> #(d e)0000 rx, 31$$ isCurrencySymbol >>> trueQ('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 71action150<<<<<2'''''abc3100two3202)See `unescapeCharacter:` for the opposite10210 storeStringHex >>> '16rA'b1-2001001(Color fromHexString: 'FFFFFF')>>> (Color white) (#(1 2) ifEmpty: [0]) >>> #(1 2)(true xor: [false]) >>> true-52or: alternativeBlock "Nonevaluating disjunction -- answer value of alternativeBlock." "(false or: [true]) >>> true" "(false or: [3]) >>> 3" ^alternativeBlock value1Look at Collection>>reduce: for a related method.detectIndex: aBlock ifNone: exceptionBlock "Return index of first element that satisfies aBlock. If no matching element is found, evaluate exceptionBlock." "(#(1 5 10) detectIndex: [ :each | each > 3 ] ifNone: ['Not found']) >>> 2" "(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found'" self doWithIndex: [:each :index | (aBlock value: each) ifTrue: [^ index]]. ^ exceptionBlock value1ayfindFirst: aBlock "Return the index of my first element for which aBlock evaluates as true. If no matching element is found, return 0" "(#(1 5 10) findFirst: [ :each | each > 3 ]) >>> 2" "(#(1 5 10) findFirst: [ :each | each > 15 ]) >>> 0" | index | index := 0. [(index := index + 1) <= self size] whileTrue: [(aBlock value: (self at: index)) ifTrue: [^index]]. ^ 0.00777777DDD88EEE999999999FFFAAAGGGBBHHHCCCIII0overlappingPairsCollect: aBlock "Answer the result of evaluating aBlock with all of the overlapping pairs of my elements." "(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)" | retval | retval := self species ofSize: self size - 1. 1 to: self size - 1 do: [:i | retval at: i put: (aBlock value: (self at: i) value: (self at: i + 1)) ]. ^retval2System1Answer the index of the first occurrence of anElement after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. 0010222303d411234 1 sign;;bara2c]Answer the seventh element of the receiver. Raise an error if there are not enough elements.u "00010020030004454647444A999B888C00d`ifNotNil: ifNotNilBlock ifNil: nilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42" "(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 6" ^ ifNotNilBlock cull: self6lastIndexOf: anElement ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOf: #a ifAbsent: 7) >>> 5" "(#(a b a d e) lastIndexOf: #c ifAbsent: 7) >>> 7" ^self lastIndexOf: anElement startingAt: self size ifAbsent: exceptionBlock#(1 2 3 4) combinations >>> #(#(1) #(2) #(3) #(4) #(1 2) #(1 3) #(1 4) #(2 3) #(2 4) #(3 4) #(1 2 3) #(1 2 4) #(1 3 4) #(2 3 4) #(1 2 3 4))0011000442222300665557"'78 92' initialIntegerOrNil >>> 784{1 . 2 . 3 . 4 . 5} asSortedCollection median >>> 3l110EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil150 [: a : b]10A('abcDefgh' includesSubstring: 'De' caseSensitive: true) >>> true40060 '' expandMacros >>> String cr10;Tests-unix-64-System-BasicCommandLineHandler-Tests-Test.xml-3 even >>> falseLIf the receiver is false (i.e., the condition is false), then the value is the false alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line.1 e1<(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'400$' isFinalQuote >>> false3cfoo < 421020a ^ 1. 2. ^ 331498aaa9b0({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)216r41421-61.0282204Unknown annotationpharo191 Pharo is cool02010610 0: B : B0 fred the bear-('hello!' noneSatisfy: #isUppercase) >>> true11(true xor: [true]) >>> false317( #() asSet intersection: #(1 2 3 4) asSet) >>> Set newabcdd #( # ## )1Perform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.0vector09e:1102[booleanAt: byteIndex "Returns the boolean the byte at index byteOffset of this ByteArray represents in the C convention ( A byte representing the 0 integer corresponds to false, while all other integers corresponds to true)." "(#[1 2 0 4] booleanAt: 2) >>> true." "(#[1 2 0 4] booleanAt: 3) >>> false." ^ self boolean8AtOffset: byteIndex - 12Returns the keywords of the provided selector. Assumes the reciever is a valid keyword based selector (@reciever isKeyword > true). Prefer using Symbol>>#keywordsStrict if you're not sure if the reciever is keyword-based.-1Return a pair. It is handy to support the tweaking of pharo doc expression. A pharo doc expression is a comment as the following one: That is true!0In {1} you can escape \{ by prefixing it with \\64(#(11 22 33) atWrap: 3) >>> 33min "Return the minimum value of the collection" "#(1 5 10 -4) min >>> -4" "{1@5. 10@ -4} min >>> (1@ -4)" ^ self inject: self anyOne into: [:min :each | min min: each]$Optimized version based on primitive0Abcd1 [1 , 2 , 3]0.015#(10 20 30) | (0 to: 15 by: 5) >>> #(0 15 5 30 20 10)11001+ -62('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'0vector02(23.5698 printShowingDecimalPlaces: 2) >>> '23.57' 28/9/2018decimalDigitLength "Answer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits." "1 decimalDigitLength >>> 1" "100000000 decimalDigitLength >>> 9" "SmallInteger maxVal decimalDigitLength >>> 19" ^self < 10000 ifTrue: [self < 100 ifTrue: [self < 10 ifTrue: [1] ifFalse: [2]] ifFalse: [self < 1000 ifTrue: [3] ifFalse: [4]]] ifFalse: [self < 100000000 ifTrue: [self < 1000000 ifTrue: [self < 100000 ifTrue: [5] ifFalse: [6]] ifFalse: [self < 10000000 ifTrue: [7] ifFalse: [8]]] ifFalse: [self < 1000000000000 ifTrue: [self < 10000000000 ifTrue: [self < 1000000000 ifTrue: [9] ifFalse: [10]] ifFalse: [self < 100000000000 ifTrue: [11] ifFalse: [12]]] ifFalse: [self < 10000000000000000 ifTrue: [self < 100000000000000 ifTrue: [self < 10000000000000 ifTrue: [13] ifFalse: [14]] ifFalse: [self < 1000000000000000 ifTrue: [15] ifFalse: [16]]] ifFalse: [self < 1000000000000000000 ifTrue: [self < 100000000000000000 ifTrue: [17] ifFalse: [18]] ifFalse: [self < 10000000000000000000 ifTrue: [19] ifFalse: [20]]]]]]24-0.9 Pharo is cool910Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed. 953.67 MB13.145@ foo61d [:a||||a]25This destructively replaces elements from start to stop in the receiver. Answer the receiver itself. Use copyReplaceFrom:to:with: for insertion/deletion which may alter the size of the result.-0.98 16r80000000100hellof test test+Answer whether the receiver is a ByteStringY({#a. #b. #z. #d. #i. #l} mergeSortFrom: 3 to: 5 by: [ :a :b | a<=b ]) >>> #(a b d i z l)TReturn the index starting at 1 of the argument in the receiver, zero if not present.213b3cJ((RBScanner on: 'Pharo (, { exist ]' readStream) next; next) value >>> $(Return a Point scalefactor for shrinking a thumbnail of the receiver's extent to fit within anExtent. self and anExtent are expected to have positive nonZero x and y.Pharo (, { exist ]23360{1@2} copyEmpty >>> #()1.01.Tests-unix-64-Roassal-Animation-Tests-Test.xml4.(#(40 41 42) asOrderedCollection at: 2) >>> 4101?('hello world!' anySatisfy: [ :each | each isDigit ]) >>> false}onPreviousMonth "(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'" ^ self addMonths: -1?Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error.#(a b c d e) last >>> #e11containsPoint: aPoint "Answer whether aPoint is within the receiver. Pay attention the self origin is considered less than but the corner is strict" "((0@0 corner: 100@100) containsPoint: 50@50) >>> true" "((0@0 corner: 100@100) containsPoint: 0@0) >>> true" "((0@0 corner: 100@100) containsPoint: 100@50) >>> false" "((0@0 corner: 100@100) containsPoint: 100@100) >>> false" ^origin <= aPoint and: [aPoint < corner]303032018fooReturn a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary)wReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.52si5(false ifTrue: [ 'This statement is true!' ]) >>> nil10120Ncollect: aBlock "Evaluate aBlock with each of my elements as the argument. Collect the resulting values into a collection that is like me. Answer the new collection. Override superclass in order to use addLast:, not at:put:." "(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)" "(#(1 2 3) asOrderedCollection collect: [ :v | 10 ]) asArray >>> #(10 10 10)" | newCollection | newCollection := self speciesForTransform new: self size. firstIndex to: lastIndex do: [ :index | newCollection addLast: (aBlock value: (array at: index)) ]. ^ newCollection3( 1. 2 )fred41100({10@20. 30@0} collect: [:e | e x]) >>> #(10 30)1pReturn a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set3$A isCasedLetter >>> falsefalse & true >>> false000000022111300(1)(2)%Point class classSide >>> Point class,(#(1 2 3 4 5) beginsWith: #(1 2 3)) >>> trueUnescape an escaped string. Assume the string has all occurrences of aCharacter are escaped. That is, they are in pairs. This method returns a copy of the string replacing all pairs of aCharacter by a single appearance of it.WJust like do: except that the iteration index supplies the second argument to the block#(100.1@200.9) ceiling >>> (101@201)love9=Answer a Bag whose elements are the elements of the receiver.1Tests-unix-64-DrTests-TestCoverage-Tests-Test.xml100#a := a. [ :a | | a a := a ]. a := a720jnewFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new: keys size. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dicts:44?({1. 2. 3. 4. 5} shuffleBy: (Random seed: 42)) >>> #(1 2 5 4 3)151000000000200000242[:a ::b] -9 \\ 4 >>> 3d20qAnswer a Point that is the receiver's x and y floor. Answer the receiver if its coordinates are already integral.*#( aa:bb: cc #'aa:bb:cc' #cc #'++' #'++' )G('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'02a$h. $w15Return a String with the STON serialization of objectexpandMacros "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" ^self expandMacrosWithArguments: #()3g210(1 to: 10 by: 2) stop >>> 10Nonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock.(Evaluate the block with the first two (or more) elements of the receiver, then with the result of the first evaluation and the next element, and so on. Answer the result of the final evaluation. If the receiver is empty, raise an error. If the receiver has a single element, answer that element.300102230010.0 That is true!,foo | a | a := 1. ^ [ :a | a ] value: 10 + a930 goodby: my: pharo420 11344[1}2]*909425string220030111ab40T(#(1 5 10) detectIndex: [ :each | each > 15 ] ifNone: ['Not found']) >>> 'Not found' [:a|| |a]max: aPoint "Answer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint." "((100@200) max: (330@400)) >>> (330@400)" "((100@200) max: (30@400)) >>> (100@400)" ^ (x max: aPoint x) @ (y max: aPoint y)2110*baz*#('a') asCommaString >>> 'a'1(#(x y z) atLast: 2) >>> #y#+ keywords >>> #('+')b2Answer with the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.allPairsDo: aBinaryBlock "Iterate over all the pairs of the receiver and apply the binaryBlock to each pair. " "(Array streamContents: [ :stream | #(0 1 2 3) allPairsDo: [ :first :second | stream nextPut: { first . second } ] ]) >>> #(#(0 0) #(0 1) #(0 2) #(0 3) #(1 0) #(1 1) #(1 2) #(1 3) #(2 0) #(2 1) #(2 2) #(2 3) #(3 0) #(3 1) #(3 2) #(3 3))" self do: [ :first | self do: [ :second | aBinaryBlock value: first value: second ] ]--junit-xml-outputzmin "Answer a number that is the minimum of the x and y of the receiver." "(100@200) min >>> 100" ^ self x min: self y2(10 to: 1) isEmpty >>> true#(().:;[]{}^#a)#Tests-unix-64-ReleaseTests-Test.xml${ tokenish >>> falsefoo11 {1 . 2 . 5 . 5} median >>> (7/2)r: r g: g b: b "Return a color with the given r, g, and b components in the range [0.0..1.0]." "(Color r: 1 g: 1 b: 1) >>> Color white" ^ self r: r g: g b: b alpha: 1.00Pay attention when you write an executable comment for keyword-based method: surround with parentheses your expression because, otherwise the executable comment won't work as the message is binary.0vector01Tests-unix-64-Refactoring-DataForTesting-Test.xml-10Xn. Xu. X n. X"""ncannot resolve fourcode013(#(16 17 17 16 18 17 18 19 19 19 18 19 19 20 19 20 19 20 20 20 19 20) groupsOf: 7 atATimeCollect: [ :x | x ]) >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20 19))1030;Message sending and code execution - Runtime and Evaluation101. 2aa(0 to: 10 by: 2) last >>> 10111 0:00:00:0140 ||Xu u1010X X X {1@5. 2@3. 4@7} sum >>> (7@15)(1. 2)2Answer whether the receiver contains any elements.2a #(a b c d e f g h ) fifth >>> #e#foo:: asMutator >>> #'foo::'r('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'trim "Trim separators from both sides of the receiving string." "' this string will be trimmed ' trim >>> 'this string will be trimmed'" ^ self trimBoth1:Answer whether anObject is one of the receiver's elements.;(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018'10Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true. If none evaluate to true, then evaluate the argument, exceptionBlock. (#(a b c d e) indexOf: #c) >>> 32012 nil. := nil10Graphical User Interface20#(1 1 1 1) argmax >>> 15D('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> false"00011111111111000444444444443335002 1000000000242'(1 to: 10) asOpenInterval >>> (2 to: 9)0%Tests-unix-64-Graphics-Tests-Test.xml'1234' asFourCode >>> 8253734921longonest longone stringax2at: index incrementBy: value "({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 5" "({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 4" ^self at: index put: (self at: index) + value[:a!(3.1479 roundUpTo: 0.01) >>> 3.15(#(1 2 3 4) nextToLast) >>> 310021G(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')243609 0{ }| | . 1-1B({ 1. 2. 3 } as: Set) >>> (Set new add: 1; add:2; add:3; yourself)first6colorFrom: parm "Return an instantiated color from parm. If parm is already a color, return it, else return the result of my performing it if it's a symbol or, if it is a list, it can either be an array of three numbers, which will be interpreted as RGB values, or a list of symbols, the first of which is sent to me and then the others of which are in turn sent to the prior result, thus allowing entries of the form #(blue darker). Else just return the thing" "(Color colorFrom: #(blue darker)) >>> (Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0) " "(Color colorFrom: Color blue darker)>>> ((Color r: 0.0 g: 0.0 b: 0.9198435972629521 alpha: 1.0))" "(Color colorFrom: #blue)>>> (Color blue)" "(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)" | aColor firstParm | (parm isKindOf: self) ifTrue: [ ^ parm ]. parm isSymbol ifTrue: [ ^ self perform: parm ]. parm isString ifTrue: [ ^ self fromString: parm ]. ((parm isKindOf: SequenceableCollection) and: [ parm isNotEmpty ]) ifTrue: [ firstParm := parm first. (firstParm isKindOf: Number) ifTrue: [ ^ self fromRgbTriplet: parm ]. aColor := self colorFrom: firstParm. parm doWithIndex: [ :sym :ind | ind > 1 ifTrue: [ aColor := aColor perform: sym ] ]. ^ aColor ]. ^ parmB'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'1| aBoolean "Evaluating disjunction (OR). Evaluate the argument. Then answer true if either the receiver or the argument is true." "true | true >>> true" "true | false >>> true" "false | true >>> true" "false | false >>> false" self subclassResponsibility1xc 0 even >>> true|:a|0vector0fromStream: readStream "Parse and materialize the STON representation in the character readStream" "(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)" "FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]" ^ (self reader on: readStream) next'a'11151 TestFailure Given Collections do not match. Got left := an IdentitySet(RBAssignmentNode(v1 := 0) RBAssignmentNode(v1 := anObject) RBVariableNode(v1)). instead of right :=an IdentitySet(RBVariableNode(v1) RBAssignmentNode(v1 := anObject) RBAssignmentNode(v1 := 4) RBVariableNode(v1) RBAssignmentNode(v1 := 0)). Collection size does not match: left=3 vs. right=5 Got 2 additional element(s) in the right collection: an Array(RBAssignmentNode(v1 := 4) RBVariableNode(v1)) VariableBreakpointTest(TestAsserter)>>assert:description:resumable: VariableBreakpointTest(TestAsserter)>>assert:description: VariableBreakpointTest(TestAsserter)>>assertCollection:equals: VariableBreakpointTest>>testWatchVariableInClass VariableBreakpointTest(TestCase)>>performTest 1231hellofrom: startIndex to: endIndex put: anObject "Put anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObject" "({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)" | written toWrite thisWrite | startIndex > endIndex ifTrue: [^self]. self at: startIndex put: anObject. written := 1. toWrite := endIndex - startIndex + 1. [written < toWrite] whileTrue: [ thisWrite := written min: toWrite - written. self replaceFrom: startIndex + written to: startIndex + written + thisWrite - 1 with: self startingAt: startIndex. written := written + thisWrite ]. ^anObject2019-08-17T13:33:00+02:00922141| | ddmmyyyy "Print the receiver in standard French format dd/mm/yyyy." "(Date year: 2018 month: 9 day: 28) ddmmyyyy >>> '28/9/2018'" ^ self printFormat: #(1 2 3 $/ 1 1)18831 XXXXXXXXXXXXX203H(('asa' , String cr , 'asa') withUnixLineEndings at: 4) >>> Character lf'1111' asFourCode >>> 82530744121020a1split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter." "(String streamContents: [:s | [:c | c isSeparator ] split: 'Pharo is cool' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:5 s:7 e:8 s:10 e:13 '" | position | position := 1. aSequenceableCollection withIndexDo: [:element :idx | (self value: element) ifTrue: [ aBlock value: position value: idx - 1. position := idx + 1 ]]. aBlock value: position value: aSequenceableCollection size1040 '' expandMacros >>> String lfstoreStringHex "Returns a string representation of the receiver in base 16 in a way that executing it will return the receiver." "10 storeStringHex >>> '16rA'" ^ self storeStringBase: 16x2(#(11 22 33) asOrderedCollection atWrap: 2) >>> 220 highBit >>> 0'foo10' endsWithDigit >>> true2 ; ; abc11160.03.1479foo: arg ^ arg + 1Like in SQL operation - Split the recievers contents into collections of elements for which keyBlock returns the same results, and return those collections allowed by selectBlock./(nil ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 42PnewFromKeys: keys andValues: values "Create a dictionary from the keys and values arguments which should have the same length." "(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself)" | dict | dict := self new. keys with: values do: [ :k :v | dict at: k put: v ]. ^ dictThe factorial on n is defined as: n * (n-1)*(n-2)*... while n>0. Factorial of 0 is 1. We also know Factorial of 1 and 2 are themselves. This implementation uses a 2-partition algorithm. For a recursive (but slower) implementation see 'slowFactorial' Without verbose detail: If'm an even number,some optimization can be applied: Instead of doing all multiplication we can halving the number of multiplication regrouping terms, so: n*(n-1)*(n-2)*....*3*2*1 can be rearranged as: (n*1)*((n-1)*2)*((n-2)*3)*... And the use the fact n is even to rewrite in a more efficient way. If I'm an odd number then compute for n-1 and multily by n. 1abcdefgh2712 X 4412mapClass "Return the class of STON maps, Dictionary, a system wide constant" "(STON fromString: '{ #foo : 1 , #bar : 2 }') class >>> STON mapClass" ^ DictionaryTake the items in the receiver, kk at a time, and evaluate the block for each combination. Hand in an array of elements of self as the block argument. Each combination only occurs once, and order of the elements does not matter. There are (self size take: kk) combinations.we"100000000 decimalDigitLength >>> 9327 September 2018#[ ]whlorde10110101422Tests-unix-64-Spec2-Morphic-Backend-Tests-Test.xml1foo2834Point classSide >>> Point classe5BEnumerate the receiver with all the keys (aka indices) and values.000111213441511420a :foo!""" 0 """ n """ """ n """ 0 """match: text "Answer whether text matches the pattern in this string. Matching ignores upper/lower case differences. Where this string contains #, text may contain any character. Where this string contains *, text may contain any sequence of characters." "('*' match: 'zort') >>> true" "('*baz' match: 'mobaz') >>> true" "('*baz' match: 'mobazo') >>>false" "('*baz*' match: 'mobazo') >>> true" "('*baz*' match: 'mozo') >>> false" "('foo*' match: 'foozo') >>> true" "('foo*' match: 'bozo') >>> false" "('foo*baz' match: 'foo23baz') >>> true" "('foo*baz' match: 'foobaz') >>> true" "('foo*baz' match: 'foo23bazo') >>> false" "('foo' match: 'Foo') >>> true" "('foo*baz*zort' match: 'foobazort') >>> false" "('foo*baz*zort' match: 'foobazzort') >>> true" "('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true" "('*foo*zort' match: 'afoodezortorfoo3zort') >>> true" ^ self startingAt: 1 match: text startingAt: 1noneSatisfy: aBlock "Evaluate aBlock with the elements of the receiver. If aBlock returns false for all elements return true. Otherwise return false" "(#(2 4 6) noneSatisfy: [:x|x odd]) >>> true" "(#(1 2 3) noneSatisfy: [:x|x odd]) >>> false" "('hello!' noneSatisfy: #isUppercase) >>> true" "('hello!' noneSatisfy: #isLetter) >>> false" "(#() noneSatisfy: ['oops']) >>> true" self do: [:item | (aBlock value: item) ifTrue: [^ false]]. ^ true2hello1723.5698\(Array new: 3 streamContents: [ :out | 3 timesRepeat: [ out nextPut: 42 ] ]) >>> #(42 42 42)10aSame aspect ratio14'' expandMacros >>> OSPlatform current lineEnding({1. 2} asBag = {1. 2. 3} asBag >>> falsepReturn true if all my elements are close to the elements of same index of the parameter with a certain precisionn(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> true#[1]#[2] #[ 1 } 2 ],(3 ifNotNil: [:o | o +3 ] ifNil: [42]) >>> 606*(#(1 2 3 4 5) reject: #even) >>> #(1 3 5)02018)(self >> #selector) isExtension >>> false1,'x isSymbol: 33' findSelector >>> #isSymbol:413>(1024 * 1024 * 1024) humanReadableByteSizeString >>> '1.00 GB'163.147900000BBB08888888888888880EEE09999999999999990HHH01allButLast: n "Answer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements." "(#(a b c d) allButLast: 2) >>> #(a b)" "(#(a b c d) allButLast: 3) >>> #(a)" ^ self copyFrom: 1 to: self size - n2arcTan: denominator "Answer the angle in radians. Implementation note: use sign in order to catch cases of negativeZero" "(-0.5 arcTan: -0.5) >>> -2.356194490192345" "(1.2 arcTan: 1.5) >>> 0.6747409422235526" "(1.2 arcTan: -1.5) >>> 2.4668517113662407" ^ self = 0.0 ifTrue: [denominator signBit = 0 ifTrue: [ 0 ] ifFalse: [ self signBit = 0 ifTrue: [ Pi ] ifFalse: [ Pi negated ]]] ifFalse: [denominator = 0.0 ifTrue: [self > 0.0 ifTrue: [ Halfpi ] ifFalse: [ Halfpi negated ]] ifFalse: [denominator > 0 ifTrue: [ (self / denominator) arcTan ] ifFalse: [self > 0 ifTrue: [ ((self / denominator) arcTan) + Pi ] ifFalse: [ ((self / denominator) arcTan) - Pi ]]]]22303d330intersection: aCollection "Answer the set theoretic intersection of two collections. Optimized version for Sets where no intermediate Set is necessary" "(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSet" "(#(1 2 3 4) asSet intersection: #() asSet) >>> Set new" "( #() asSet intersection: #(1 2 3 4) asSet) >>> Set new" | outputSet | outputSet := self class new. aCollection do: [ :each | (self includes: each) ifTrue: [ outputSet add: each ] ]. ^ outputSetReturn a new sequenceable collection which contains the same elements as self but its elements are sorted by aSortBlockOrNil. The block should take two arguments and return true if the first element should preceed the second one. If aSortBlock is nil then <= is used for comparison.23014-45'{1. 2} asSet = {1. 2. 2} asSet >>> trueCWrite the STON serialization of object to the character writeStream1.059463094359295350-3i(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollection-419n u n11$) isControlOther >>> false22312015003333323154011\\ aNumber "modulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber." "9 \\ 4 >>> 1" "-9 \\ 4 >>> 3" "9 \\ -4 >>> -3" ^self - (self // aNumber * aNumber)-#foo:bar: keywordsStrict >>> #('foo:' 'bar:'))('abab ac de' howManyMatch: 'abab') >>> 418E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3!(100.1@200.9) floor >>> (100@200)411120&(AsciiCharset toUppercase: $a) >>> $A.Wreturns the difference between the max and min element, their positions notwithstanding*Note that key and value can be ANY object.runningMax: aSubsetSize "Running max. See the comment of self >> #running:of: for more information." "(#(1 1 2 2 3 3) runningMax: 3) >>> {2 . 2 . 3 . 3}" ^ self running: [ :subset | subset max ] of: aSubsetSizedef(('hello' intersection: 'world') >>> 'ol'220-overlappingPairsDo: aBlock "Emit overlapping pairs of my elements into aBlock" "(Array streamContents: [:stream | #(1 2 3 4) overlappingPairsDo: [:first :second| stream nextPut: (first + second)]]) >>> #(3 5 7)" 1 to: self size - 1 do: [:i | aBlock value: (self at: i) value: (self at: i + 1)] a, b and c`Answer a copy of the receiver that does not contain any elements equal to those in aCollection.23with: otherCollection do: twoArgBlock "Evaluate twoArgBlock with corresponding elements from this collection and otherCollection." "(Array streamContents: [:stream | #(1 2 3) with: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(5 7 9)" otherCollection size = self size ifFalse: [self errorSizeMismatch]. 1 to: self size do: [:index | twoArgBlock value: (self at: index) value: (otherCollection at: index)]0{0@1. 2@3} + {10@20. 30@0} >>> {(10@21). (32@3)}4(100@200) ceiling >>> (100@200)001123456789AA014oEnumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item3(10@10 corner: 100@100) >>> (10@10 corner: 100@100)401100*(-0.5 arcTan: -0.5) >>> -2.35619449019234511320(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) &(#(a b c d) allButFirst: 2) >>> #(c d)p X2Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one.2def"fear is the little death that the.-2c1000213If the write position of stream is at the end of the internal buffer of stream (originalContents), we can return it directly instead of making a copy as contents would dofAnswer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed.0044603314(1 to: 10 by: 2) last >>> 9put: object onStream: writeStream "Write the STON serialization of object to the character writeStream" "(String streamContents: [ :out | STON put: 1@2 onStream: out ]) >>> 'Point[1,2]'" "FileLocator temp / ('{1}.ston' format: { Time millisecondClockValue }) in: [ :file | file writeStreamDo: [ :out | STON put: 1@2 onStream: out ]. file readStreamDo: [ :in | STON fromStream: in ] ]" (self writer on: writeStream) nextPut: object01109(STON fromString: '[1 , 2 , 3]') class >>> STON listClassd234-40""" 00 """ n """ ### """ 1 """ n """ 1 """ 0 """ ppp <<<<< X | | ufghib$sideOf: otherPoint "Returns #left, #right or #center if the otherPoint lies to the left, right or on the line given by the vector from 0@0 to self" "((0@0) sideOf: (100@100)) >>> #center" | side | side := (self crossProduct: otherPoint) sign. ^ { #right . #center . #left } at: side + 29Maybe look at the related method Collection>>inject:into:X X30>> 1" ^ (self start - aDate asDateAndTime) days*672.010 [ | a b | MPrint elements on a stream separated with a delimiter String like: 'a, b, c'xaabc$> isControlOther >>> falsezJ('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}.33[(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found'233('abcdf' indexOf: $a) >>> 1100025501200202-1abc200116rCnnnnXnn1*(#(a b c d) after: #x ifAbsent: #z) >>> #z12two50vector01IasBit "Answer 0 since the receiver is false." "false asBit >>> 0" ^ 05cfalse | false >>> falseProtoObject superclass >>> nil#(1)#(2)XXXsEMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNil135&('aXb' escapeCharacter: $X) >>> 'aXXb'!Character cr isSeparator >>> true3 cM('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 01Evaluate aBlock with each of my elements as the argument. Collect the resulting values into a collection that is like me. Answer the new collection. Override superclass in order to use addLast:, not at:put:.aPoint isInstanceSide >>> true50Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If found, evaluate actionBlock with the index as argument If no matching element is found, evaluate exceptionBlock, with the indexes of the 'bounding' elements as arguments. Warning: Might give invalid indexes, see examples belowsign "Answer 1 if the receiver is greater than 0, -1 if less than 0, else 0." "#(5 -3.7 0) sign >>> #(1 -1 0)" "{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}" ^ self collect: [ :each | each sign ]G(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)0wimpy7101ABA"(10 printStringBase: 2) >>> '1010'@. 54sum "Return the sum (+) of the elements held in the receiver." "Faster than the superclass implementation when you hold many instances of the same value (which you probably do, otherwise you wouldn't be using a Bag)." "#(1 2 2 3 1 1 1) asBag sum >>> 11" | sum first | first := true. contents keysAndValuesDo: [ :value :count | first ifTrue: [ sum := value * count. first := false ] ifFalse: [ sum := sum + (value * count) ] ]. first ifTrue: [ self errorEmptyCollection ]. ^ sum #( #[ 0 1 2 ]c2341asOrderedDictionary "Answers a Dictionary based on collection of Associations." "{'one' -> 1. 'two' ->2} asOrderedDictionary keys first >>> 'one'" ^ self as: OrderedDictionary6(Date year: 2018 month: 9 day: 28) weekday >>> #Friday30Evaluate aBlock for each element and remove all that elements from the receiver for that aBlock evaluates to true. Use a copy to enumerate collections whose order changes when an element is removed (i.e. Sets).221n(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)#(#(10 20 30) includes: 20) >>> true[ :a | a := 10. a ]4 00000000000SEvaluates the argument with the write stream of the collection. Answers the result. G(OrderedCollection new add: 42; add: 43; yourself) asArray >>> #(42 43)9DAnswer a Set whose elements are the unique elements of the receiver.g2/Answer an Association between self and anObject6ppp ^ 0 :B | 1 | T | t nn. t 1 sssss s b 0 ssssss nUnexpected negative weight0010020Optimized implementation741K(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')100c1;foo1 111111100#( 1 two #( 3 ) ) "z" foo "a" 1 "b". "c" ^ 2 "d" asByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" self subclassResponsibility2103c((#(1 2) detect: #even ifNone: [0]) >>> 2abs "Answer a Point whose x and y are the absolute values of the receiver's x and y." "(100 @ -200) abs >>> (100@200)" ^ x abs @ y abs Xuuuuuu n uuu n1002 XX n X n XiAnswer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstringUnmatched ' in string literal.3[ :self | self + 1 ]a1195| T |Xt353seconds "2 seconds printString >>> '0:00:00:02'" "(1 minute + 2 seconds) printString >>> '0:00:01:02'" ^ Duration seconds: self10#(a b c d) middle >>> #c progress.loga-3(42 digitAt: 1 base: 10) >>> 2Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer zero, which is an invalid index.Pha1^ 52-10-0.544Evaluate aBlock with each of the receiver's elements as the argument. This is the general foreach method, but for most standard needs there is often a more specific and simpler method.11-2]Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits).255abc00111110004444422223005566666234znak ::x43 ') _ : 2?Create a color with the given hue, saturation, and brightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1) is pure red.?((1 to: 10) collect: [:i| i gcd: 6]) >>> #(1 2 3 2 1 6 1 2 3 2)1.0false | true >>> true1110200-(#(1 2 2 3 1 1 1) asBag includes: 1) >>> true420pharo!-3.71[ | a b60240.0%OrderedCollection new capacity >>> 10 0:B| | |u0abc13H(#('abc' 'de' 'fghi') sorted: #size descending) >>> #('fghi' 'abc' 'de')pharoDocCommentNodes "Return a collection of pharo comment nodes: expressions following the pattern" "true >>> true" ^ self comments flatCollect: [:each | each pharoDocCommentNodes]265536 == (1 bitShift: 16)2Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds.Answer a new collection of the same species as the receiver with elements being collections (of the receiver species) containing those elements of the receiver for which the given block consecutively evaluates to the same object.0 ({Character space. Character space} join: #('Pharo' 'is' 'cool')) >>> {$P. $h. $a. $r. $o. Character space. Character space. $i. $s. Character space. Character space. $c. $o. $o. $l}'('XaX' escapeCharacter: $X) >>> 'XXaXX'1!#(a b c d e f g h i) sixth >>> #f9findLast: aBlock "Return the index of my last element for which aBlock evaluates as true. If no matching element is found, return 0" "(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 5" "(#(10 20 30 40 50) findLast: [ :each | each > 60 ]) >>> 0" | index | index := self size + 1. [(index := index - 1) >= 1] whileTrue: [(aBlock value: (self at: index)) ifTrue: [^index]]. ^ 0twoThis statement is true!This statement is true!4CasBit "Answer 1 since receiver is true." "true asBit >>> 1" ^ 13-2.57 (#(a b c d e) indexOf: #x) >>> 0}Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments.16rDF2""""" 02##() asDictionary >>> Dictionary newAnswer the element after target. Answer the result of evaluation the exceptionBlock if target is not in the receiver, or if there are no elements after it.0423(Date year: 2018 month: 9 day: 28) monthIndex >>> 9d#(:=aa:=:==bb:==#cc:==)>[ #( #( #( #[ ] #[ ] #'[' #']' ) ) ) "a" "b" "c" "d" "e" "f" ]12006('salkjsdlkgfee' findString: 'ee'startingAt: 3) >>> 122.5714Tests-unix-64-Tool-DependencyAnalyser-Tests-Test.xml101xb302.015Ab cd ef Ab cd201811020That is false!last: n "Answer the last n elements of the receiver. Raise an error if there are not enough elements." "(#(a b c d e) last: 2) >>> #(d e)" "(#(a b c d e) last: 3) >>> #(c d e)" | size | size := self size. ^ self copyFrom: size - n + 1 to: size.(#(a b c d e) indexOf: #c startingAt: 4) >>> 0"#(a b c d e f g h i) second >>> #b#(1 2 4) sumNumbers >>> 7pharo #( 0 1r2 4 )0r63ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Answer the value of trueAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'" ^trueAlternativeBlock value 222222222 4phacV{'two' ->2. 'one' -> 1} asDictionary >>> (Dictionary with: 'one' -> 1 with: 'two' ->2)2akeywordsStrict "Returns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned." "#foo: keywordsStrict >>> #('foo:')" "#foo:bar: keywordsStrict >>> #('foo:' 'bar:')" "#foo keywordsStrict >>> #()" "#+ keywordsStrict >>> #()" ^ self isKeyword ifTrue: [ self keywords ] ifFalse: [ #( ) ]1a001002200P(#(1 2 3) flatCollect: [:each | { each. each+1 } ] as: Set) >>> #(1 2 3 4) asSet0010002010417Tools writes the N-th argument, which should be a String, or a collection of printable objects. Note also important distinction for single-quotes inside the argument; with

they will be doubled.3243dEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into aCollection. Answer aCollection.10000010000200003055555555555556676869666CBBBDAAAEac({10. 20} asOrderedCollection addIfNotPresent: 30; yourself) >>> ({10. 20. 30} asOrderedCollection)22 'elvis ' lastSpacePosition >>> 6122Z(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'11SNote: By convention, brightness is abbreviated 'v' to to avoid confusion with blue.0'abc' isOctetString >>> true 100000000118-130 printStringHex >>> '1E'4-12#() asCommaStringAnd >>> ''23360b10, 15, 20, 25pppp A XXXXXXX. ^ a'"a" [ "b" | "c" x "d" y "e" | "f" ] "g".Tests-unix-64-EmergencyDebugger-Tests-Test.xml>(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)10b('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' cool('234Whoopie' initialIntegerOrNil >>> 2342210244(#(a b c d e) identityIndexOf: #c ifAbsent: 7) >>> 3Sunday=1, ... , Saturday=7NReturn the class of the couple class/metaclass. Useful to avoid explicit test.This statement is false!1300:00:00:00.001000001%Tests-unix-64-Sindarin-Tests-Test.xml11def1502.{ 'foo'. ('fo','o') } asIdentitySet size >>> 23#(#(a b c d e) last: 3) >>> #(c d e)dI(#(1 2 3) bind: [ :first :second :third | first + second + third ]) >>> 6*Answer the middle element of the receiver.15fear is2(#() ifEmpty: [0]) >>> 0 2018-09-28 0:01:01:00nAnswer whether the receiver sorts after aString. The collation order is simple ascii (with case differences)."(3.1479 roundUpTo: 0.005) >>> 3.15@Tests-unix-64-Calypso-SystemPlugins-Flags-Queries-Tests-Test.xml(1 -> 'one') value >>> 'one'AAnswer how many of the receiver's elements are equal to anObject.211{10@20. 30@0} // {1@3. 4.0@1} >>> {(10@6). (7@0)}1066M|s|s:=0. #(4 2 1) withIndexDo: [:e :i| s:=s + (e * (10 ** (i-1)))]. s >>> 124 a: 04Ab cd ef Ab cd532 between: 0 and: 4641f({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'This statement is true!202`(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')10.12345-31d501 'abc' <= 'abc' >>> true(1 to: 10) isEmpty >>> false3a^^111((2@2) - 200) >>> (-198@ -198) foo: arg ^ arg min: arg + 2; absIt is always a number or zero:163265 00######################### ###0 000102220300it'em vs 'it''em'D('LOL' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $X110-Tests-unix-64-Collections-Weak-Tests-Test.xmlea42#('a') asCommaStringAnd >>> 'a'^ a120(#(11 22 33) atWrap: 2) >>> 22minute "Answer a number that represents the number of complete minutes in the receiver' time part, after the number of complete hours has been removed." "(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 33" ^ self localSeconds // SecondsInMinute \\ 60-90' ' size >>> 2 foobazort#(1 5 10 -4) min >>> -4/001111111111100044444444444222230055666666666663Class structural inspection - Class/Metaclass shiftfoo23baz 825307441b2 0:01:02:0060.0Return whether the receiver is one of these characters: backspace, delete, escape, arrowUp, arrowLeft, arrowDown, arrowRight, pageUp, pageDown, end, home, nbsp, insert200This implementation is recursive and very canonical. This implementation is intended for demo purposes, but for better performance another version 'factorial' is provided.1abcda | 1 October 2018hello^Xn1'('pharo' beginsWith: 'phuro') >>> false100000000000000000A clear ...summary10, 'hello', $x94(#(1 3) anySatisfy: [ :each | each even ]) >>> false2 (true ifFalse: [ true ]) >>> nil-I(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'33'Return whether the receiver is a digit..('heLlo wOrLd' select: #isUppercase) >>> 'LOL' salkjsdlkgfee116 000011111110 2r39(#(1 2 3) reduceLeft: [ :a :b | a - b ])>>> ((1 - 2) - 3)223-10two(false and: [true]) >>> false5the1-911b1 Pharo is cool0(Color r: 0.5 g: 0.5 b: 1) hslSaturation >>> 1.00Invalid input/output !B('pharo' endsWith: 'project-pharo' caseSensitive: false) >>> falsebceabaRoword before index + foo: - !Return a positive nonzero extent.(100@200) min >>> 1003@501.010pharoprintOn: stream base: base length: minimumLength padded: padWithZeroes "Return a String representation of this number in base b with a minimum length and padded by 0 if zeroFlag is set" "(String streamContents: [ :s | 10 printOn: s base: 10 length: 4 padded: true] ) >>> '0010'" "(String streamContents: [ :s | -10 printOn: s base: 10 length: 4 padded: true] ) >>> '-010'" | n numberOfDigits totalLength divisor | self < 0 ifTrue: [ n := self negated. totalLength := 1 ] ifFalse: [ n := self. totalLength := 0 ]. numberOfDigits := n numberOfDigitsInBase: base. totalLength := totalLength + numberOfDigits. padWithZeroes ifFalse: [ [ totalLength < minimumLength ] whileTrue: [ stream space. totalLength := totalLength + 1 ] ]. n = self ifFalse: [ stream nextPut: $- ]. padWithZeroes ifTrue: [ [ totalLength < minimumLength ] whileTrue: [ stream nextPut: $0. totalLength := totalLength + 1 ] ]. divisor := (base raisedToInteger: numberOfDigits - 1). [ divisor > 0 ] whileTrue: [ | digit | digit := n // divisor. stream nextPut: ('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' at: digit + 1). n := n - (digit * divisor). divisor := divisor // base ]505B(String streamContents: [:s| #() printElementsOn: s]) >>> '()' ab ab ac de0001111000444433350010hnanoSeconds "2 nanoSeconds printString >>> '0:00:00:00.000000002'" "(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002'" ^ Duration nanoSeconds: selffred is number 11false | true >>> true!(#() averageIfEmpty: [ 0 ]) >>> 0Return the key that will be used to add a property with the class name when an unknown class is read and the option STONReader>>#acceptUnknownClasses: is true, by default #className. Such unknown classes are returned as generic maps.100000100000020445B 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones' G((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'3wRunning average (a.k.a. moving average, rolling average). See the comment of self >> #running:of: for more information.4111920200x10vector01#( #( 0 1r2 3 )'anyOne "Answer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections." "#(10 20 30) anyOne >>> 10" "'hello' anyOne >>> $h" "(50 to: 10 by: -5) anyOne >>> 50" " ([#() anyOne] on: SubscriptOutOfBounds do: [ :ex | 'whatever' ]) >>> 'whatever' " self emptyCheck. self do: [ :each | ^ each ]0vector0xy731082022xAnswer a copy of the receiver containing all but the first n elements. Raise an error if there are not enough elements.TReturn true whether the receiver is a metaclass (in a couple class/metaclass sense).21020reverseWith: aSequenceableCollection do: aBlock "Evaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. " "(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)" self size ~= aSequenceableCollection size ifTrue: [^ self errorSizeMismatch]. self size to: 1 by: -1 do: [:index | aBlock value: (self at: index) value: (aSequenceableCollection at: index)]00 11 n n n 1 00(-0.98 printShowingDecimalPlaces: 2) >>> '-0.98'0.06-10e% foo: arg ^ arg min: arg + 2 ; abs . 107-120-33100User255phuro78Trim separators from both sides of the receiving string.?('hello world!' anySatisfy: [ :each | each isLetter ]) >>> truez32768d16rAe0Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.9Alias for intersection:isDashPunctuation "Return whether the receiver is one of these characters: $-" "$- isDashPunctuation >>> true" "$_ isDashPunctuation >>> false" ^ self characterSet isDashPunctuation: self10023associationClass "Return the class of STON associations, Association, a system wide constant" "(STON fromString: '#foo : 100') class >>> STON associationClass" ^ Association(true xor: [true]) >>> false10002, asBit "convert myself to an Integer representing 1 for true and 0 for false" "($b > $c) asBit>>> 0" "true asBit >>> 1" "(#(true true false true) inject: 0 into: [ :sum :each | sum + each asBit]) >>> 3" self subclassResponsibilityYnot "Negation -- answer true since the receiver is false." "false not >>> true" ^true1Treat myself as the coeficients of a polynomial in X. Evaluate it with thisX. First element is the constant and last is the coeficient for the highest power. #(1 2 3) polynomialEval: 2 is 3*X^2 + 2*X + 1 with X = 211111110000000002222222222222I('hello' collect: #asciiValue into: Set new) >>> #(104 101 108 111) asSet1001001 [ 1 }. 2 ]1 kkkk XX kkkkXXsdef 2018-09-2710100192310418111602 #( #'^' 1 )28-431 nanoSecond printString >>> '0:00:00:00.000000001'84024*((30/3)@(2/2)) asFloatPoint >>> (10.0@1.0)#Tests-unix-64-TaskIt-Tests-Test.xml'a := a. [ :a | | a a | . := a ]. a := a3unzipped "Assuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data." "#[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0] unzipped >>> #[1 2 3]" ^ (GZipReadStream on: self) upToEnd[ :a :b1ifTrue: alternativeBlock "Since the condition is false, answer the value of the false alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." "(false ifTrue: [ 'This statement is true!' ]) >>> nil" ^nilfoo "z" "a" 1. "b" "c" ^ 2 "d"isOctetString "Answer whether the receiver can be represented as a byte string. This is different from asking whether the receiver *is* a ByteString (i.e., #isByteString)" "'abc' isOctetString >>> true" ^ true3la23CroundUpTo: aNumber "Answer the next multiple of aNumber toward infinity that is nearest the receiver." "(3.1479 roundUpTo: 0.01) >>> 3.15" "(3.1479 roundUpTo: 0.1) >>> 3.2" "(1923 roundUpTo: 10) >>> 1930" "(3.1479 roundUpTo: 0.005) >>> 3.15" "(-3.1479 roundUpTo: 0.01) >>> -3.14" ^(self / aNumber) ceiling * aNumber2A man, a plan, a canal, panamanot "Negation. Answer true if the receiver is false, answer false if the receiver is true." "true not >>> false" "false not >>> true" self subclassResponsibility21(100@200) guarded >>> (100@200)0vector01$a isAlphaNumeric >>> true9?(STON fromString: '#foo : 100') class >>> STON associationClassAReturn the hue of this color, an angle in the range [0.0..360.0].{1]2}3111120044667685999A4400DBBBBC'2' initialIntegerOrNil >>> 243That is false!b90.5| super | super := 1. ^ super20vector04<{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}abddff2003$1 isAlphaNumeric >>> true11222| a a | a := 10. ^ a100Answer the x coordinate.6(true or: [false]) >>> true19 Snick asFile Files Snick's Snick1x10#( # ## #ab # 10 # #'.' 10 )5Print inside string quotes, doubling inbedded quotes.1ee31test te stringDEabc131.009. foo: arg ^ ( ( ( ( arg ) ) + ( ( 1 ) ) ) ) . _(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollection9decimalDigitAt: anExponent "Return number that represents digit at given decimal position." "(42 decimalDigitAt: 2) >>> 4" "(42 decimalDigitAt: 1) >>> 2" "It is always a number or zero:" "(1 decimalDigitAt: 2) >>> 0" "Results are not defined non-integer arguments." ^ self digitAt: anExponent base: 1060#1 nnnnnuuuu#(1 2 3 0) isSorted >>> false(true and: [true]) >>> trueincludesSubstring: substring at: index "Answer true if the receiver contains the substring str exactly at index, false otherwise." "('abcdefgh' includesSubstring: 'de' at: 1) >>> false" "('abcdefgh' includesSubstring: 'de' at: 4) >>> true" | pos | pos := index - 1. ^ index > 0 & (self size - pos >= substring size) and: [ substring allSatisfy: [ :char | pos := pos + 1. (self at: pos) = char ] ]y | T | ^ t3paddedWith: otherCollection do: twoArgBlock "Evaluate twoArgBlock with corresponding elements from this collection and otherCollection. Missing elements from either will be passed as nil." "(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50 60) do: [:first :second | stream nextPut: (first + second)]]) >>> #(50 70 90) " "(Array streamContents: [:stream | #(10 20 30) paddedWith: #(40 50) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(30 nil)) " "(Array streamContents: [:stream | #(10 20) paddedWith: #(40 50 60) do: [:a :b | stream nextPut: {a. b} ]]) >>> #(#(10 40) #(20 50) #(nil 60))" 1 to: (self size max: otherCollection size) do: [:index | twoArgBlock value: (self at: index ifAbsent: []) value: (otherCollection at: index ifAbsent: [])]12(String streamContents: [:s| {'one'->1. 'two'->2} associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'-30001000533334422600XX#X#X4101006811\ aCollection "Return all the elements in self that are not in aCollection. Alias of difference:" "#(10 20 30) \ (0 to: 15) >>> #(20 30)" "'abc' \ 'cbe' >>> 'a'." ^ self difference: aCollection97265536;(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> (1 - (2 - 3))8122,Tests-unix-64-FileSystem-Core-Tests-Test.xml1022Snick0114250one1010abc13r: r g: g b: b range: range "Return a color with the given r, g, and b components specified as integers in the range [0..r]. This avoids the floating point arithmetic in the red:green:blue: message and is thus a bit faster for certain applications (such as computing a sequence of colors for a palette)." "(Color r: 31 g: 0 b: 0 range: 31) >>> (Color r: 1.0 g: 0 b: 0)" ^ self basicNew initializeRed: r green: g blue: b range: range; yourself11gc-4214000120.08Answer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring. ifTokens (valid for Strings only) specifies that the characters surrounding the replacement must not be alphanumeric (space). When ifTokens is set, it means that the replacement will not occur inside word.10nuun s nssn s ns nn3410$} isControlOther >>> false1oasStringOn: aStream delimiter: delimString last: lastDelimString "Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'. Uses #asString instead of #print: Note: Feel free to improve the code to detect the last element." "(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'" | n sz | n := 1. sz := self size. self do: [:elem | n := n + 1. aStream nextPutAll: elem asString] separatedBy: [ aStream nextPutAll: (n = sz ifTrue: [lastDelimString] ifFalse: [delimString])]abc<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'00010200vector03 0n ssss0XsssisEmpty "Answer whether the receiver contains any elements." "{} isEmpty >>> true" "{{}} isEmpty >>> false" "'' isEmpty >>> true" "' ' isEmpty >>> false" "(1 to: 10) isEmpty >>> false" "(10 to: 1) isEmpty >>> true" ^self size = 0isDigit "Return whether the receiver is a digit." "$1 isDigit >>> true" "$0 isDigit >>> true" ^ self characterSet isDigit: self110allSentMessagesfoo < bar: 1 + 1 > 1^Return whether the receiver is ... one of these https://www.compart.com/en/unicode/category/Mehello)Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified.10.12345+(#(2 4 6) noneSatisfy: [:x|x odd]) >>> truey1We10 this string will be trimmed 'hello' sorted >>> 'ehllo'00000a:c'0002345' isAllDigits >>> true4 That is true! [ :a :b | ]10@(#(1 2 3 4) asSet intersection: #(3 4 5) asSet) >>> #(3 4) asSettrue & true >>> true0vector0(((104 to: 120) detect: #isPrime) >>> 107 foo < + 1> 2R('A clear but rather long-winded summary' contractTo: 18) >>> 'A clear ...summary'23'{1. 2} asSet = {2. 1} asSet >>> true1dfghi050basa00 1 n n n 1 0110vector0 1 foo; . 2m(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)ZThe following example creates an association whose key is number 1 and value string 'one'.1Answer a dictionary whose keys are the result of evaluating aBlock for all my elements, and the value for each key is the selection of my elements that evaluated to that key. Uses species.2ppp | T | t n. ^ 0 | T | t nn. t 0 sssss s tn sss94 . #( foo bar )XXXXaXXbXXXXcXXXXXXdXXXX100000000222222232668555'A' asHex >>> '16r41'charactersExactlyMatching: aString "Do a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly." "('s' charactersExactlyMatching: 'abc') >>> 0" "('fear is the little death that the.' charactersExactlyMatching: 'the') >>> 0" "('fear is the little death that the.' charactersExactlyMatching: 'fear is') >>> 7" | count | count := self size min: aString size. 1 to: count do: [:i | (self at: i) = (aString at: i) ifFalse: [ ^ i - 1]]. ^ count That is true!1=atAllPut: anObject "Put anObject at every one of the receiver's indices." "({#x .#y. #z} atAllPut: #a) >>> #(a a a)" | size | (size := self size) > 26 "first method faster from 27 accesses and on" ifTrue: [self from: 1 to: size put: anObject] ifFalse: [1 to: size do: [:index | self at: index put: anObject]](2 raisedTo: 8) >>> 2561Dconvert myself to an Integer representing 1 for true and 0 for false12@Answer whether the receiver's first character represents a digit #[ 1 a 2 ]2oops0?Answer whether the receiver begins with the given prefix string10''hWe are sorry but this method is unclear and will probably be removed. This method only returning false.d101seventh "Answer the seventh element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) seventh >>> #g" ^ self at: 711242111110ccUnknown character4(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3)"Guard for know cases (0,1,2,error)103September 2018&('hello' includesAll: 'hop') >>> falsee-201KAnswer with a collection of cumulative percents covered by elements so far.c1200#Tests-unix-64-Kernel-Tests-Test.xml11.05946309435929533replace: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into self." "({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)" 1 to: self size do: [ :index | self at: index put: (aBlock value: (self at: index)) ]1104 project-pharo20X(#(5 6 7 8) asOrderedCollection removeAllSuchThat: #even) >>> #(5 7) asOrderedCollection000000205Tests-unix-64-Collections-Sequenceable-Tests-Test.xml600010200 'abc' < 'abc' >>> false4he'llo10.01Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.31string14( #(1 #(2 3) #(4 #(5))) flattened ) >>> #(1 2 3 4 5)d({1. 2} asBag = {1. 2. 2} asBag >>> false'1 true false nil self super thisContext2428-4IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct22#( #( 0 1 r2 3 ) )110 ^ n 0| rectangles | rectangles := OrderedCollection new add: (Rectangle left: 5 right: 10 top: 0 bottom: 15); add: (Rectangle left: 0 right: 15 top: 5 bottom: 10); yourself. (Rectangle merging: rectangles) >>> (Rectangle left: 0 right: 15 top: 0 bottom: 15)0!((2@2) * (100@200)) >>> (200@400)1030AcopyReplaceAll: oldSubstring with: newSubstring asTokens: ifTokens "Answer a copy of the receiver in which all occurrences of oldSubstring have been replaced by newSubstring. ifTokens (valid for Strings only) specifies that the characters surrounding the replacement must not be alphanumeric (space). When ifTokens is set, it means that the replacement will not occur inside word." "('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'" "('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: false) >>> 'longonest longone string'" | aString startSearch currentIndex endIndex | aString := self. startSearch := 1. [(currentIndex := aString indexOfSubCollection: oldSubstring startingAt: startSearch) > 0] whileTrue: [endIndex := currentIndex + oldSubstring size - 1. (ifTokens not or: [(currentIndex = 1 or: [(aString at: currentIndex-1) isAlphaNumeric not]) and: [endIndex = aString size or: [(aString at: endIndex+1) isAlphaNumeric not]]]) ifTrue: [aString := aString copyReplaceFrom: currentIndex to: endIndex with: newSubstring. startSearch := currentIndex + newSubstring size] ifFalse: [ ifTokens ifTrue: [startSearch := currentIndex + 1] ifFalse: [startSearch := currentIndex + newSubstring size]]]. ^ aStringaz281002reciprocal "Return the reciever full of reciprocated elements" "#(1 11 0.5) reciprocal >>> {1 . 1/11 . 2.0}" "{10@20. (1/2)@0.5} reciprocal >>> {((1/10)@(1/20)). (2@2.0)}" ^ self collect: [ :a | a reciprocal ] hellotheworld9$1 isDecimalDigit >>> trueHExecute the receiver with one or two arguments depending on the receiver11valueWithPossibleArgs: anArray "Execute the receiver with the correct number of arguments taken from the argument." "([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 " "([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 " "([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 " "([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 " ^numArgs = 0 ifTrue: [self value] ifFalse: [self valueWithArguments: (numArgs = anArray size ifTrue: [anArray] ifFalse: [numArgs > anArray size ifTrue: [anArray, (Array new: numArgs - anArray size)] ifFalse: [anArray copyFrom: 1 to: numArgs]])]192({'hel','lo'. 'world'} includes: 'hello') >>> true*true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]. ^ 318G(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 174.030000222222888884AA8(true and: [false]) >>> false73G(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')3g 100000000000to303N|s| (#(1 2) detect: [ :each | each even ] ifFound: [ :e | s:=e*10 ]). s >>> 2021[ 002111314/('pharo' beginsWith: 'pharo-project') >>> false5Optimized version of Collection>>#reject:thenCollect:^Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon.U({10. 20} asOrderedCollection add: 20; yourself) >>> {10. 20. 20} asOrderedCollection:(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25'1bbpharo~(DateAndTime fromString: '2019-08-17T13:33:00+02:00') asDate printString >>> (Date newDay: 17 month: 8 year: 2019) printString2504dAssuming the receiver contains GZIP compressed data, return a ByteArray with the decompressed data.10z(SmallDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (SmallDictionary new at: #x put: 3; at: #y put: 6 ;yourself)z2010'helloinstanceSide "Return the class of the couple class/metaclass. Useful to avoid explicit test." "Point instanceSide >>> Point" "Point class instanceSide >>> Point" ^ self720yyyymmdd "Format the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long.." "(Date year: 2018 month: 9 day: 28) yyyymmdd >>> '2018-09-28'" ^ String new: 10 streamContents: [ :aStream | self printOn: aStream format: #(3 2 1 $- 1 1 2) ]e34171:219278^Answer the first n elements of the receiver. Raise an error if there are not enough elements.over 10101001,(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet2#(1 2 3) isSorted >>> true@({10. 20} asOrderedCollection add: 30 withOccurrences: 2) >>> 30|:aPrint elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'1000.0Color red hslSaturation >>> 1.05110polynomialEval: thisX "Treat myself as the coeficients of a polynomial in X. Evaluate it with thisX. First element is the constant and last is the coeficient for the highest power. #(1 2 3) polynomialEval: 2 is 3*X^2 + 2*X + 1 with X = 2" "(#(1 2 3) polynomialEval: 2) >>> 17" | sum valToPower | sum := self first. valToPower := thisX. 2 to: self size do: [ :ind | sum := sum + ((self at: ind) * valToPower). valToPower := valToPower * thisX ]. ^ sum<0000224455655597777855CCDDEDDDHFFFFGGDDICCBBBBBBAAAJ443333331allButFirstDo: aBlock "Executes aBlock on each of the receiver's elements except for the first one" "(Array streamContents: [:stream | #(1 2 3) allButFirstDo: [:each | stream nextPut: (each + 10)]]) >>> #(12 13)" 2 to: self size do: [:index | aBlock value: (self at: index)]61Print elements on a stream separated with a delimiter between all the elements and with a special one before the last like: 'a, b and c'. Uses #asString instead of #print: Note: Feel free to improve the code to detect the last element.-Tests11111001630#[ nn1.1.1!'ABA' asByteArray >>> #[65 66 65]?Answer whether the receiver is above and to the left of aPoint.""" n """. """ n """0#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) aXb60.0aaAnswer a representative sample of the receiver. It raises an error when the collection is empty. This method can be helpful when needing to preinfer the nature of the contents of semi-homogeneous collections.2002220def0xb2.02 foo xn((1 to: 12) groupByRuns: [ :each | (each \\ 3) = 0]) >>> #(#(1 2) #(3) #(4 5) #(6) #(7 8) #(9) #(10 11) #(12))2between: #(7 8)3 1a, b, c13pppp A pp A pp A 0 :B :B :B | | T t T | t s t s t 01252r3>mmddyyyy "Print the receiver in standard U.S.A format mm/dd/yyyy. Note that the name here is slightly misleading -- the month and day numbers don't show leading zeros, so that for example February 1 1996 is 2/1/96" "(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'" ^ self printFormat: #(2 1 3 $/ 1 1)0nnumericSuffix "'abc98' numericSuffix >>> 98" "'98abc' numericSuffix >>> 0" ^ self stemAndNumericSuffix lastu XXXXX960011 333330444444cfoo <> 6Answer the receiver with leading and trailing aString.H#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)false not >>> true and e3e20+(self >> #traitSource) isExtension >>> true9Print the receiver in standard French format dd/mm/yyyy.WWWWW*W EW*zzzz$beginsWith: prefix caseSensitive: aBoolean "Answer whether the receiver begins with the given prefix string" "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self or prefix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)" "('pharo' beginsWith: '' caseSensitive: false) >>> true" "('pharo' beginsWith: 'pharo-project' caseSensitive: false) >>> false" "('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false" "('pharo' beginsWith: 'Pha' caseSensitive: false) >>> true" prefix ifEmpty: [ ^true ]. aBoolean ifTrue: [ ^self beginsWith: prefix ]. self size < prefix size ifTrue: [^ false]. (self class isBytes and: [prefix class isBytes]) ifTrue: [ "Optimized version based on primitive" ^ (self findSubstring: prefix in: self startingAt: 1 matchTable: CaseInsensitiveOrder) = 1 ]. prefix withIndexDo: [ :each :index | (self at: index) asLowercase = each asLowercase ifFalse: [ ^false ] ]. ^true0(('ab ab ac de' howManyMatch: 'ab') >>> 210.5The Rolling Stones,Tests-unix-64-Spec2-Code-Diff-Tests-Test.xml>Answer a Point that is the difference of the receiver and arg.yThis is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. aBlock is expected to return a number for every element in the collection. Different from the sum: implementation, the default value is zero. While sum: is more general, sumNumbers: is meant to support the most often encountered use case of dealing with numbers.sortedElements "Answer with a collection of elements with counts, sorted by element." "#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}" ^contents associations sort; yourself1#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c'after: target "Answer the element after target. Raise an error if target is not in the receiver, or if there are no elements after it." "(#(a b c d) after: #b) >>> #c" ^ self after: target ifAbsent: [self errorNotFound: target]10(1 hour + 1 minute) printString >>> '0:01:01:00'$: tokenish >>> true2f110hkEvaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block.112-198MAnswer the next multiple of aNumber toward zero that is nearest the receiver.120A4431111200445555555766A8888922'A' asByteArray >>> #[65]08312?reject: rejectBlock thenCollect: collectBlock "Optimized implementation" "(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)" | newCollection | newCollection := self copyEmpty. self do: [ :e | (rejectBlock value: e) ifFalse: [ newCollection add: (collectBlock value: e) ] ]. ^ newCollection.('word before index' wordBefore: 4) >>> 'word'10c120c2103@(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ]) >>> 5+first method faster from 27 accesses and on2212isTestPackage "1. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: " "(RPackage named: 'MockPackage-Tests') isTestPackage >>> true" "(RPackage named: 'MockPackage-tests') isTestPackage >>> true" "(RPackage named: 'MockPackage') isTestPackage >>> false" "(RPackage named: 'MockPackage-Tests-Package') isTestPackage >>> true" ^ (self name endsWith: '-Tests' caseSensitive: false) or: [ self name includesSubstring: '-Tests-' caseSensitive: false ]150a::5rAnswer the index of the first substring within the receiver. If the receiver does not contain substring, answer 0.10030-32Tests-unix-64-System-OSEnvironments-Tests-Test.xml [ #( #( 0 1r2 3 ) ))Optimized version of Collection>>#reject:71;(Date year: 2018 month: 9 day: 28) mmddyyyy >>> '9/28/2018'2k35c40foo:asHexString "Return a string representing the receiver in HEX (i.e., 6 elements in 16 basis)" "(Color red asHexString) >>> 'FF0000'" | s | s := '000000' copy. s at: 1 put: (Character digitValue: ((rgb bitShift: -6 - RedShift) bitAnd: 15)). s at: 2 put: (Character digitValue: ((rgb bitShift: -2 - RedShift) bitAnd: 15)). s at: 3 put: (Character digitValue: ((rgb bitShift: -6 - GreenShift) bitAnd: 15)). s at: 4 put: (Character digitValue: ((rgb bitShift: -2 - GreenShift) bitAnd: 15)). s at: 5 put: (Character digitValue: ((rgb bitShift: -6 - BlueShift) bitAnd: 15)). s at: 6 put: (Character digitValue: ((rgb bitShift: -2 - BlueShift) bitAnd: 15)). ^ semptyCheck "Signal CollectionIsEmpty if the collection is empty" "#(10 20) emptyCheck >>> #(10 20)" "([#() emptyCheck] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self isEmpty ifTrue: [self errorEmptyCollection]&Tests-unix-64-Microdown-Tests-Test.xml>Nonevaluating disjunction -- answer value of alternativeBlock. W01-WelcomeisAllDigits "Return whether the receiver is composed entirely of digits and has at least one digit" "'2345' isAllDigits >>> true" "'0002345' isAllDigits >>> true" "'2345.88' isAllDigits >>> false" self do: [:c | c isDigit ifFalse: [^ false]]. self ifEmpty: [^false]. ^ true#foo keywordsStrict >>> #()20sAnswer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substringawordBefore: anIndex "('word before index' wordBefore: 4) >>> 'word'" "('word before index' wordBefore: 16) >>> 'inde'" | sep tok | tok := false. sep := anIndex. [ sep > 0 and: [ (self at: sep) tokenish ] ] whileTrue: [ tok := true. sep := sep - 1 ]. ^ tok ifTrue: [ self copyFrom: sep + 1 to: anIndex ] ifFalse: [ String new ]XX0(#(10 20) asSet copyWith: 20) >>> #(10 20) asSet4 factorial >>> 24 0001023304003503#(()) isNotEmpty >>> truev (OrderedDictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2gabc| a b | ('foo*' match: 'bozo') >>> false23+Tests-unix-64-Tool-Profilers-Tests-Test.xmlte50 u nn. ^ u foo < bar name02q(String streamContents: [:s | 'Pharo is cool' splitOn: Character space do: [:each | s << each ]])>>>'Pharoiscool'1 foo;2]xor: alternativeBlock "Nonevaluating conjunction. If the receiver is true, answer the opposite of the the argument, alternativeBlock; otherwise answer the value of the alternativeBlock." "(true xor: [true]) >>> false" "(true xor: [false]) >>> true" "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" self subclassResponsibilitya2C('hello' collect: #asciiValue as: Array) >>> #(104 101 108 108 111)_(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection>({ 2@6 . -4@3 . 10@ -3 } detectMin: [ :p | p y ]) >>> (10@ -3)78 92 foo23bazo1315second "Answer a number that represents the number of complete seconds in the receiver's time part, after the number of complete minutes has been removed." "(DateAndTime fromString: '2004-02-29T13:33:12+02:00') second >>> 12" ^ self localSeconds \\ 60xa"a" 1 "b". "c" 2 "d"1<(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'1Z{ 1. 2. 3 } asOrderedCollection >>> (OrderedCollection new add: 1; add:2; add:3; yourself)20022138 XX n XX n X>('Pharo is <1s>' expandMacrosWith: 'cool') >>> 'Pharo is cool'Given Collections do not match. Got left := an IdentitySet(RBAssignmentNode(v1 := 0) RBAssignmentNode(v1 := anObject) RBVariableNode(v1)). instead of right :=an IdentitySet(RBVariableNode(v1) RBAssignmentNode(v1 := anObject) RBAssignmentNode(v1 := 4) RBVariableNode(v1) RBAssignmentNode(v1 := 0)). Collection size does not match: left=3 vs. right=5 Got 2 additional element(s) in the right collection: an Array(RBAssignmentNode(v1 := 4) RBVariableNode(v1)))({1 .2 .3 .4} at: 3 incrementBy: 2) >>> 510vector01 [ :a :a | a ]XXXXXXXXXXXXXXXXXXXXXXXXXXAnewFrom: aCollection "Answer an instance of me containing the same elements as aCollection." "(RunArray newFrom: {1. $a. $a. 3}) >>> ({1. $a. $a. 3} as: RunArray)" "({1. $a. $a. 3} as: RunArray) values >>> #(1 $a 3)" "({1. $a. $a. 3} as: RunArray) runs >>> #(1 2 1)" | runs values lastRun lastValue | runs := (Array new: aCollection size // 2) writeStream. values := (Array new: aCollection size // 2) writeStream. lastRun := 0. lastValue := Object new. aCollection do: [ :x | lastValue = x ifTrue: [ lastRun := lastRun + 1 ] ifFalse: [ lastRun > 0 ifTrue: [ runs nextPut: lastRun. values nextPut: lastValue ]. lastRun := 1. lastValue := x ] ]. lastRun > 0 ifTrue: [ runs nextPut: lastRun. values nextPut: lastValue ]. ^ self basicNew setRuns: runs contents setValues: values contents1Hello16rFF/ """ n """ ssss """ n """ ; """ ssss """ n """ 55b312(Color colorFrom: #(0.0 0.0 1.0)) >>> (Color blue)322222 603.11201$('foo*baz' match: 'foobaz') >>> true312|Integer quotient defined by division with truncation toward negative infinity. \\ answers the remainder from this division.zzAnswer a Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle.z[ :a a-115Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this.ZEvaluate aBlock with my elements taken two at a time, and return an Array with the resultsd ('Hello' includes: $h) >>> false131@foo:3,highBit is not defined for negative integers19cchello(Character delete isControlOther >>> true41.00indexOfSubCollection: aSubCollection startingAt: anIndex "Answer the index of the receiver's first element, such that that element equals the first element of aSubCollection, and the next elements equal the rest of the elements of aSubCollection. Begin the search at element anIndex of the receiver. If no such match is found, answer 0." "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2) >>> 3" "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4) >>> 0" ^self indexOfSubCollection: aSubCollection startingAt: anIndex ifAbsent: [0]2Extract items from the receiver and use them as arguments of aBlock. Signal an error (ArgumentsCountMismatch) when the arguments count of aBlock does not match the receiver size.12thirdX98abc33makeD('||' split: 'foo||bar||2')>>>#('foo' 'bar' '2') asOrderedCollection 2 odd >>> false4add: newObject before: oldObject "Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject." "(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)" ^ self insert: newObject before: (self find: oldObject)304'he''llo' surroundedBySingleQuotes >>> '''he''llo'''rcull: firstArg cull: secondArg "Execute the receiver with one or two arguments depending on the receiver" "([:x | x + 1] cull: 13 cull: 12) >>> 14 " "([:x :y | x + y] cull: 3 cull: 2) >>> 5 " ^numArgs < 2 ifTrue: [self cull: firstArg] ifFalse: [self value: firstArg value: secondArg]41(24 min: 20 max: 5) >>> 204201522.302949083493849Literal constant expectedZEvaluate twoArgBlock with corresponding elements from this collection and otherCollection.0.3333s4(((100@200) min: (330@400)) >>> (100@200)300451 max: 2 + 3 abs212abc98;([:x | x + 1] valueWithPossibleArgs: #( 13 12 15)) >>> 14 )Tests-unix-64-Network-Mail-Tests-Test.xml #name: asMutator >>> #name:0010;(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false3#(2 6 7) average >>> 5 , c71881 3r12. 345132+Tests-unix-64-Roassal-Global-Tests-Test.xml0210MCreates an array with anObject followed by elements contained in aCollection.isInitialQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pi" "$' isInitialQuote >>> false" ^ self characterSet isInitialQuote: self2 ||| a 'def' > 'abc' >>> truec13310;(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSet2is3 ######X#####reversed "Answer a copy of the receiver with element order reversed. " "#(2 3 4 'fred') asOrderedCollection reversed >>> #('fred' 4 3 2) asOrderedCollection" | newCol | newCol := self speciesForTransform new: self size. self reverseDo: [ :elem | newCol addLast: elem ]. ^ newCol030101500####################0(Array streamContents: [:stream | (1 to: 3) permutationsDo: [:each | stream nextPut: each copy]]) >>> #(#(1 2 3) #(1 3 2) #(2 1 3) #(2 3 1) #(3 2 1) #(3 1 2))ziggiefooThe low bits table can be obtained with: ((1 to: 8) inject: #[1] into: [:lowBits :rank | (lowBits copy at: 1 put: lowBits first + 1; yourself) , lowBits]) allButFirst.OCreate a color with the given hue, saturation, brightness, and alpha. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1 alpha: 1) is pure red.0('abcdf abcedf' indexOf: $a startingAt: 4) >>> 7100Calculate the average of a collection, return a CollectionIsEmpty exception if the collection is empty. Look averageIfEmpty: aBlock0vector411Optimized to go through the primitive if possibleOReturn a string representing the receiver in HEX (i.e., 6 elements in 16 basis)5 ab ab ac de%((1 to:9 by:2) includes: 4) >>> false2abd8((OrderedCollection new add: 34; yourself) at: 1) >>> 3410000*Return collection printed as 'a, b and c' ]((ByteArray with: 97 with: 0 with: 0 with: 0) asString sameAs: 'Abcd' asWideString) >>> false foo*baz*zort209712 X n40(10 to: 5) asArray >>> #()6lo#h: hue s: saturation v: brightness alpha: alpha "Create a color with the given hue, saturation, brightness, and alpha. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and brightness are numbers in [0.0..1.0] where larger values are more saturated or brighter colors. For example, (Color h: 0 s: 1 v: 1 alpha: 1) is pure red." "(Color h: 0 s: 1 v: 1 alpha: 1) >>> Color red " ^ self basicNew initializeHue: hue saturation: saturation brightness: brightness alpha: alpha ; yourself676666666865555cifFalse: alternativeBlock "Since the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." "(true ifFalse: [ true ]) >>> nil" ^nilincludesSubstring: substring "Returns whether the receiver contains the argument." "('abcdefgh' includesSubstring: 'de') >>> true" ^ substring isEmpty or: [ (self findString: substring startingAt: 1) > 0 ] surroundedBySingleQuotes "Answer the receiver with leading and trailing quotes." "'hello' surroundedBySingleQuotes >>> '''hello'''" "'he''llo' surroundedBySingleQuotes >>> '''he''llo'''" "' hello ' surroundedBySingleQuotes >>> ''' hello '''" ^ self surroundedBy: ($' asString) -234.5670014 0:B|||Xb0occurrencesOf: anObject "Answer how many of the receiver's elements are equal to anObject." "(#(1 2 2 3 1 1 1) asBag occurrencesOf: 1) >>> 4" ^ (self includes: anObject) ifTrue: [ contents at: anObject] ifFalse: [ 0 ]a00 X X15|piecesCutWhere: binaryBlock "Answer substrings of the receiver derived from cutting the receiver at points where binaryBlock answers true for adjacent elements." "( #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]]) asArray >>> #(#(1) #(2 3 1 6 1) #(2 3 4))" | pieces | pieces := OrderedCollection new. self piecesCutWhere: binaryBlock do: [ :piece | pieces add: piece ]. ^pieces "'Now is the time for all good people to come to the aid of the cause of world peace. It is just fine, even desirable, to love your country, if that means wanting it to play a beneficial role in the course of world events and be the best possible example of a good society. But if it means wanting dominion over the rest of the world, it is not love but defensiveness or self-glorification, and will lead only to oblivion.' piecesCutWhere: [:a :b| a = $. and: [b isSeparator]]"v1 ^v119410-111000000000000085charlie W01-Welcome@0foo ^ [ :a | [ :a | a ] value: 10 + a ] value: 1'pppp A ^ 0 | T | t nn. t 0 sssss s a1difference: aCollection "Answer the set theoretic difference of two collections. Pay attention that the difference is not commutative, hence the order is important." "(#(a b c d e f) difference: #(a b z k))>>> #(#c #d #e #f)" "(#(a b z k) difference: #(a b c d e f)) >>> #(#z #k)" "('hello' difference: 'aeiou') >>> 'hll'" | set | set := self asSet removeAllFoundIn: aCollection; yourself. ^ self species withAll: set asArray (10 printStringBase: 16) >>> 'A'1000000000000000000[Print the receiver's path on aStream (without 'Path' prepended) using the default delimiter2345.885200001'Tests-unix-64-CodeImport-Tests-Test.xml between: 2DAnswer with a collection of elements with counts, sorted by element.2003%printStringBase: b "Return a String representation of this number in base b. For SmallIntegers, it is more efficient to print directly in a String, rather than using a Stream like super." "(10 printStringBase: 10) >>> '10'" "(-10 printStringBase: 10) >>> '-10'" "(10 printStringBase: 2) >>> '1010'" "(10 printStringBase: 16) >>> 'A'" self < 0 ifTrue: [^ '-' , (self negated printStringBase: b)]. self < b ifTrue: [^ String with: (Character digitValue: self)]. ^ self printStringBase: b nDigits: (self numberOfDigitsInBase: b)2dreverseDo: aBlock "Evaluate aBlock with each of the receiver's elements as the argument, starting with the last element and taking each in sequence up to the first. For SequenceableCollections, this is the reverse of the enumeration for do:." "(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)" self size to: 1 by: -1 do: [:index | aBlock value: (self at: index)]120110ppp """ < """ <<< """ < """ < """ <<< """ < """ 0vector03action:({1. 2. 3. 4} replace: [:each | each + 1 ]) >>> #(2 3 4 5)1zort((200@200 scaleTo: 400@400) >>> (2.0@2.0)C(#(3 4 5) readStreamDo: [ :stream | stream contents ]) >>> #(3 4 5)120zwithSeparatorsCompacted "Returns a copy of the receiver with each sequence of whitespace (separator) characters replaced by a single space character" "' test ' withSeparatorsCompacted >>> ' test '" "' test test' withSeparatorsCompacted >>> ' test test'" "'test test ' withSeparatorsCompacted >>> 'test test '" self isEmpty ifTrue: [ ^ self ]. ^ self species new: self size streamContents: [:stream | | lastBlank | lastBlank := false. self do: [ :eachChar | lastBlank ifTrue: [ (lastBlank := eachChar isSeparator) ifFalse: [ stream nextPut: eachChar ] ] ifFalse: [ (lastBlank := eachChar isSeparator) ifTrue: [ stream nextPut: $ ] ifFalse: [ stream nextPut: eachChar ] ] ] ]30truncateTo: aNumber "Answer the next multiple of aNumber toward zero that is nearest the receiver." "(3.1479 truncateTo: 0.01) >>> 3.14" "(3.1479 truncateTo: 0.1) >>> 3.1" "(1923 truncateTo: 10) >>> 1920" "(1929 truncateTo: 10) >>> 1920" "(-1929 truncateTo: 10) >>> -1920" "(3.1479 truncateTo: 0.005) >>> 3.145" "(-3.1479 truncateTo: 0.01) >>> -3.14" ^(self quo: aNumber) * aNumber30 (#(1 -4 -10 1) sum: #abs) >>> 1617#(1 2 2 3 1 1 1) asBag asSet >>> #(1 2 2 3 1 1 1) asSet32iNote: The original code used #skip:, but some streams do not support that, and we don't really need it.+(2 raisedTo: (1/12)) >>> 1.05946309435929531.0313.14150010024*baz4021"2 ** (1/12) >>> 1.059463094359295301(String streamContents: [:s | '||' split: 'foo||bar||2' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:3 s:6 e:8 s:11 e:11 '1instVarReads ^v1 + v231231233nnnnnnnnwhatever100200vector21XX XX n XX# n X Xround: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(10.12345 round: 2) >>> 10.12" "(10.199999999 round: 2) >>>10.2" ^ self subclassResponsibility43#. 1 r0 true >>> true21c&(AsciiCharset toUppercase: $A) >>> $A.(#(11 22 33) before: 22) >>> 11round: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(1/3 round: 2) >>> (33/100) " "(111/100 round: 2) >>> (111/100) " ^self roundTo: (10 raisedTo: numberOfWishedDecimal negated)[ 21, aCollection "Concatenate the receiver with the argument." "#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)" ^self copy addAll: aCollection; yourselfCAnswer the name of the day of the week on which the receiver falls.green "Return the green component of this color, a float in the range [0.0..1.0]." "Color red green >>> 0.0" "(Color r: 0.5 g: 0.5 b: 1) green >>> 0.5004887585532747" ^ self privateGreen asFloat / ComponentMax1Tests-unix-64-Collections-Abstract-Tests-Test.xml0Tests-unix-64-Kernel-Tests-WithCompiler-Test.xml1*Primitive does not fail properly right now2F(#(1.9283 2.3029) closeTo: #(1.9284 2.3028) precision: 0.001) >>> true322241.Tests-unix-64-Roassal-Inspector-Tests-Test.xml4#(1 2 4) sum >>> 7403.1415910do: elementBlock separatedBy: separatorBlock "Evaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between." "(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] separatedBy: [ stream nextPut: 0 ]])) >>> #(11 0 12 0 13)" 1 to: self size do: [:index | index = 1 ifFalse: [separatorBlock value]. elementBlock value: (self at: index)]_Return true if both of my x and y coordinates are represented by float values, otherwise falsemobaz$Optimized version based on primitiveh(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)00002222222666555fold: binaryBlock "Alias of Collection>>reduce" "Evaluate the block with the first two (or more) elements of the receiver, then with the result of the first evaluation and the next element, and so on. Answer the result of the final evaluation. If the receiver is empty, raise an error. If the receiver has a single element, answer that element." "( #('if' 'it' 'is' 'to' 'be' 'it' 'is' 'up' 'to' 'me') fold: [:a :b | a, ' ', b] ) >>> 'if it is to be it is up to me'" ^self reduce: binaryBlock80vector02p(#(65 66 67) flatCollect: [:each | { each asCharacter. each asCharacter asLowercase } ] as: String) >>> 'AaBbCc'12super := super344 boy!Z(#(1 2 3 3 4 1 2 3 5 4 6) splitOn: 4) >>> #(#(1 2 3 3) #(1 2 3 5) #(6))asOrderedCollection129892radiansToDegrees "The receiver is assumed to represent radians. Answer the conversion to degrees." "Float pi radiansToDegrees >>> 180.0" ^self asFloat radiansToDegrees10001uNote that there is no way to get the first element that works for all kinds of Collections. Must test every one.019b3021133do: aBlock without: anItem "Enumerate all elements in the receiver. Execute aBlock for those elements that are not equal to the given item" "Refer to the comment in Collection|do:." "(Array streamContents: ([:stream | #(1 2 3) do: [:each | stream nextPut: (each + 10)] without: 2])) >>> #(11 13)" 1 to: self size do: [:index | anItem = (self at: index) ifFalse:[aBlock value: (self at: index)]]10#name asMutator >>> #name:ppp X 3012,Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:B(#(1 1 2 2 3 3) runningAverage: 2) >>> {1 . (3/2) . 2 . (5/2) . 3}8(-234.567 printShowingDecimalPlaces: 5) >>> '-234.56700'100601asArray "Answer an Array whose elements are the elements of the receiver. Implementation note: Cannot use ''Array withAll: self'' as that only works for SequenceableCollections which support the replacement primitive." "'ab' asArray >>> {$a. $b}" "(1 to: 5 by: 3) asArray >>> {1. 4}" "#(1 2) asArray == #(1 2) >>> true" "'' asArray >>> #()" "(10 to: 5) asArray >>> #()" | newArray index | newArray := Array new: self size. index := 0. self do: [ :each | newArray at: (index := index + 1) put: each ]. ^ newArray[ a: ]'hello'L('Hello, World!' select: #isLetter thenCollect: #uppercase) >>> 'HELLOWORLD'32292001$'3,123' isAllAlphaNumerics >>> false true. := true11eighth "Answer the eighth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) eighth >>> #h" ^ self at: 8000 r1119723(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'1.0a5({10. 20} asSet add: 20; yourself) >>> {10. 20} asSet12 hexString >>> '16rC'2.0JtallyInstructions: aBlock "Count the occurrences of each bytecode during the execution of aBlock. Return a Array of associations using the byte as key and the occurrences as values sorted by the instruction opcode numeric values. This method uses the in-image bytecode interpreter to evaluate and count the instructions." "(Context tallyInstructions: [3.14159 printString]) size >>> 120" | tallies | tallies := Bag new. thisContext sender runSimulated: aBlock contextAtEachStep: [:current | tallies add: current instructionStream peekByte ]. ^tallies sortedElements2 00000001 + foo < bar: 1 > 2810copyWithoutAll: aCollection "Answer a copy of the receiver that does not contain any elements equal to those in aCollection." "('fred the bear' copyWithoutAll: 'aeiou ') >>> 'frdthbr'" "(#(2 3 4 5 5 6 2) copyWithoutAll: (4 to: 10)) >>> #(2 3 2)" ^ self reject: [:each | aCollection includes: each]400223.147960000224455655597777855BBBCBBBEBBAAAAAAAAGGFFFH44333333fghi371G(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)1@(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 60n s n '' expandMacros >>> String cr2022$- isDashPunctuation >>> trueThis method return the average of the collection if it is not empty. In the other case, it return the value of the block. It means the user the user of this method decide of the return value.016Remove the copies of elements, but keep the same order{1@5. 10@ -4} min >>> (1@ -4)>([:x :y | x + y] valueWithPossibleArgs: #( 13 12 15)) >>> 25 6 2221333444142|Retrieve an element with a probability related to the weighting block. The block takes an element as argument and provides a positive number as result (the retative weight). An implicit normalization is performed on all weights. Multiple occurences of equal elements multiply the probability to be choosen. Warning: empty collections and negative weights will signal errors.sInclude anObject as one of the receiver's elements, but only if there is no such element already. Anwser anObject.rgbTriplet "Returns an array composed of the three color float components." "Color black rgbTriplet >>> #(0.0 0.0 0.0)" "Color red rgbTriplet >>> #(1.0 0.0 0.0)" ^ Array with: (self red roundTo: 0.01) with: (self green roundTo: 0.01) with: (self blue roundTo: 0.01)888 000999060AAA070BBB00 CCC0'Answer the last element of the receiver1!(3.1479 roundDownTo: 0.1) >>> 3.12Tests-unix-64-System-Identification-Tests-Test.xml3GReturn a ByteArray containing a GZIP compressed version of the receiver>#isInlineIfNil201820Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan1a := a. [ :a | [ :a | ]. a := a5###h(String streamContents: [:s| 'abcd' asStringOn: s delimiter: ', ' last: ' and ']) >>> 'a, b, c and d'-12233XX n # n43foo: a x: a y: b [ :a :a :b | | a a b | a + a + b ]-266102fredl(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'10.12'(#(10 20 30) includesAll: #()) >>> trueqPrint elements on a stream separated with a delimiter String like: 'a, b, c' Uses #asString instead of #print:.(42 digitAt: 2 base: 10) >>> 4142((Color white diff: Color black ) >>> 1.0+(#(a b c d e) indexOfAnyOf: #(x y c)) >>> 3121.0$(#() noneSatisfy: ['oops']) >>> true#( #( 0 1 r2 3 )20000First N characters-('pharo' endsWith: 'project-pharo') >>> false28classSide "Return the metaclass of the couple class/metaclass. Useful to avoid explicit test." "Point classSide >>> Point class" "Point class classSide >>> Point class" ^ self subclassResponsibilityEformat: collection "Format the receiver by interpolating elements from collection, as in the following examples:" "('Five is {1}.' format: { 1 + 4}) >>> 'Five is 5.'" "('Five is {five}.' format: (Dictionary with: #five -> 5)) >>> 'Five is 5.'" "('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' " "('In \{1\} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In {1} you can escape { by prefixing it with \' " ^ self species new: self size streamContents: [ :result | | stream | stream := self readStream. [ stream atEnd ] whileFalse: [ | currentChar | (currentChar := stream next) == ${ ifTrue: [ | expression index | expression := stream upTo: $}. index := Integer readFrom: expression ifFail: [ expression ]. result nextPutAll: (collection at: index) asString ] ifFalse: [ currentChar == $\ ifTrue: [ stream atEnd ifFalse: [ result nextPut: stream next ] ] ifFalse: [ result nextPut: currentChar ] ] ] ]*Tests-unix-64-Roassal-Chart-Tests-Test.xml!DDD 00EEE0548884449994A0CCC00 FFFfromStringWithComments: string "Parse and materialize the STON representation in string, skipping C-style comments" "(STON fromStringWithComments: 'Point[1,/*comment*/2]') >>> (1@2)" ^ self fromStreamWithComments: string readStream3Class structural inspection - Class/Metaclass shift21$(#(10 20 30) includes: 21) >>> false90vector0141 Not found(Array streamContents: [:stream | #(10 20 30 40 50) groupsOf: 2 atATimeDo: [:first :second | stream nextPut: (first + second)]]) >>> #(30 70)11Return a String representation of this number in base b. For SmallIntegers, it is more efficient to print directly in a String, rather than using a Stream like super.1+('aBc' asWideString sameAs: 'abc') >>> true3116r41 100000000000000000105333344226674020 short enough(('salkjsdlkgfee' findString: 'al') >>> 25('salkjsdlkgfee' findString: 'al'startingAt: 3) >>> 0 between: ~Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line.:Helper to tranform any `do:`-like method into a generator.4Tests-unix-64-Refactoring-Environment-Tests-Test.xml1231340| self | self := 1. ^ self0d4312(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 0.5 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(0 1)'517Tests-unix-64-DrTests-TestCoverage-Tests-Mocks-Test.xmlfoo:4bu u. 0 X X X XX X 0. X X2e*(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 605inject: thisValue into: binaryBlock "Accumulate a running value associated with evaluating the argument, binaryBlock, with the current value of the argument, thisValue, and the receiver as block arguments." "Look at Collection>>reduce: for a related method." "(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r1110" "(#(10 20 30) inject: 0 into: [ :sum :each | sum + each ]) >>> 60" "But use sum or sum: instead!" "#(10 20 30) sum >>> 60" "(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection" "But use collect: or collect:as: instead!" "(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31)" | nextValue | nextValue := thisValue. self do: [:each | nextValue := binaryBlock value: nextValue value: each]. ^nextValue222|isSorted "Return true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b]." "#(1 2 3) isSorted >>> true" "#(1 2 3 0) isSorted >>> false" | lastElm elm | self isEmpty ifTrue: [^ true]. lastElm := self first. 2 to: self size do: [:index | elm := self at: index. lastElm <= elm ifFalse: [^ false]. lastElm := elm]. ^ truee1327 #(8 5 3 9) sorted >>> #(3 5 8 9)207831c0vector0200100.1/ppp """ < """ <<<< """ n """ << """ n """ < """ (10 printStringBase: 16) >>> 'A'2round: numberOfWishedDecimal "Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal" "(10.12345 round: 2) >>> 10.12 " ^(self asFraction round: numberOfWishedDecimal) asFloat11411FcopyWithoutDuplicates "Answer a copy of the receiver without any duplicated elements" "(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSet" "(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')" "(#(#do #la #si #do #la) copyWithoutDuplicates) >>> #(#la #do #si)" ^ self asSet asArray20131&(Color white asColorref) >>> 167772152310Evaluate aBlock with the elements of the receiver. If aBlock returns false for any element return false. Otherwise return true.who """ ^ """ n """ 5Make some empty slots at the front of the array. If we have more than 50% free space, then just move the elements, so that the first 50% of the slots are free, otherwise add new free slots to the front by growing. Precondition: firstIndex = 1a166'10' asInteger >>> 10$Point class isInstanceSide >>> false%OrderedCollection new capacity >>> 105{Round the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal.438541dJust like reverseWith:do: except that the iteration index supplies the second argument to the block.1#(1]2}3)1 0000222226665('abc' alike: 'abc') >>> 7.A({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)}-234.567302130a3123abc1<('pharo' beginsWith: 'phuro' caseSensitive: false) >>> false12.#at:putNext: asTestSelector >>> #testAtPutNext121ygroupsOf: n atATimeCollect: aBlock "Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:" "(#(16 17 17 16 18 17 18 19 19 19 18 19 19 20 19 20 19 20 20 20 19 20) groupsOf: 7 atATimeCollect: [ :x | x ]) >>> #(#(16 17 17 16 18 17 18) #(19 19 19 18 19 19 20) #(19 20 19 20 20 20 19))" "(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300)" "(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))" | passArray | passArray := aBlock numArgs <= 1. ^ (n to: self size by: n) collect: [ :index | | args | args := (self copyFrom: index - n + 1 to: index) asArray. passArray ifTrue: [ aBlock value: args ] ifFalse: [ aBlock valueWithArguments: args ] ]I#(7 42 7 42 9) asOrderedCollection removeDuplicates asArray >>> #(7 42 9)SHIFT_L2018fReturn index of first element that satisfies aBlock. If no matching element is found, raise an error.12(((100@201) closeTo: (100@200)) >>> false1151715| TT | tt n. tt s nBSort this collection into ascending order using the '<=' operator.4*(100@200) reciprocal >>> ((1/100)@(1/200))10'|' or variable expected-((10 to: 13) copyWithout: 11) >>> #(10 12 13)1foo: self ^ self + 1 001111111122222222233344555067703102018hello34,000011211153333411668889888B8877777777DDCCCE3u u. X X X. X X1{endsWith: suffix "Answer whether the receiver ends with the given prefix string. The comparison is case-sensitive." "IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self is wide, then super outperforms, Otherwise, if prefix is wide, primitive is not correct" "('pharo' endsWith: '') >>> true" "('pharo' endsWith: 'project-pharo') >>> false" "('pharo' endsWith: 'phuro') >>> false" "('pharo' endsWith: 'aro') >>> true" "('pharo' endsWith: 'aRo') >>> false" | requiredStart | suffix ifEmpty: [ ^ true ]. (self class isBytes and: [ suffix class isBytes ]) ifFalse: [^super endsWith: suffix]. requiredStart := self size - suffix size + 1. requiredStart <= 0 ifTrue: [ ^false ]. ^ (self findSubstring: suffix in: self startingAt: requiredStart matchTable: CaseSensitiveOrder) = requiredStart0vector0(nil)dhighBit "Answer the index of the high order bit of the receiver, or zero if the receiver is zero. Raise an error if the receiver is negative, since negative integers are defined to have an infinite number of leading 1's in 2's-complement arithmetic. Use >>highBitOfMagnitude if you want to get the highest bit of the magnitude." "2r00101000 highBit >>> 6" "0 highBit >>> 0" self < 0 ifTrue: [^ self error: 'highBit is not defined for negative integers']. ^ self highBitOfPositiveReceiverd| Evaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the lowest number. If collection empty, return nil.4b-10EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNilnewFrom: aDictionaryOrCollectionOfAssociations "Answer an instance of me containing the same associations as the argument. If the same key appears twice, the last one enumerated will win" "(Dictionary newFrom: {1->#a. 2->#b. 3->#c}) >>> ({1->#a. 2->#b. 3->#c} asDictionary)" | newDictionary | newDictionary := self new: aDictionaryOrCollectionOfAssociations size. aDictionaryOrCollectionOfAssociations associationsDo: [:x |newDictionary add: x]. ^ newDictionaryu(#(10 20 30) inject: OrderedCollection new into: [ :a :e | a add: (e + 1). a ]) >>> #(11 21 31) asOrderedCollection<( #(1 2 3) asSet reduce: [ :a :b | a + b ] ) >>> (1 + 2 + 3)b$(#() anySatisfy: [ true ]) >>> false0100021asIdentitySet "Return a new IdentitySet based on self." "{ 2. 1+1 } asIdentitySet size >>> 1" "{ 'foo'. ('fo','o') } asIdentitySet size >>> 2" ^(IdentitySet new: self size) addAll: self; yourselfa({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4'y0vector0allButLastDo: block "Executes aBlock on each of the receiver's elements except for the last one" "(Array streamContents: [:stream | #(1 2 3) allButLastDo: [:each | stream nextPut: (each + 10)]]) >>> #(11 12)" 1 to: self size - 1 do: [:index | block value: (self at: index)]10241max "Return the maximum value of the collection" "#(1 5 10 -4) max >>> 10" "{1@5. 10@ -4} max >>> (10@5)" ^ self inject: self anyOne into: [ :max :each | max max: each ]rremove: oldObject "Remove oldObject from the receiver's elements. Answer oldObject unless no element is equal to oldObject, in which case, raise an error. ArrayedCollections cannot respond to this message." "(#(10 20 10) asOrderedCollection remove: 10; yourself) >>> #(20 10) asOrderedCollection" ^ self remove: oldObject ifAbsent: [self errorNotFound: oldObject]'({1. 2. 3} as: Set) >>> #( 1 2 3) asSet3`({10. 20} asOrderedCollection addIfNotPresent: 20; yourself) >>> ({10. 20.} asOrderedCollection)%[ "a""b""g" | x "c" "d" y "e" | "f" ]2.00000011103344445555555555544466666666644442200000 3Point instanceSide >>> Point((#(a b c d e) identityIndexOf: #x) >>> 0'A' asByteArray >>> #[65]JReturn the green component of this color, a float in the range [0.0..1.0].select: selectBlock thenCollect: collectBlock "Optimized version of Collection>>#select:thenCollect:" "(#(1 2 3 4) select: [:each | each > 2 ] thenCollect: [:each | each + 10 ]) >>> #(13 14)" | each | ^ self class new: self size streamContents: [ :stream| 1 to: self size do: [ :index | (selectBlock value: (each := self at: index)) ifTrue: [ stream nextPut: (collectBlock value: each) ]]]d2430 001022350200.93013*ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Same as ifTrue:ifFalse:." "(true ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is true!'" "(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'" self subclassResponsibility35hello1elvis y!'ABA' asByteArray >>> #[65 66 65]hFormat the date in ISO 8601 standard like '2002-10-22' The result is of fixed size 10 characters long..222W(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'0Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver only those elements for which aBlock evaluates to false. Answer the new collection.8asOpenInterval "Return a new interval representing the open version of the receiver. In other words, the new inteval does not contain the upper and lower boundaries of the receiver " "(1 to: 10) asOpenInterval >>> (2 to: 9)" "(10 to: 1 by: -1) asOpenInterval >>> (9 to: 2)" ^ start + step to: stop - stepc5 ' hello 'y10104224.00foo "a" < "b" bar "c" > "d" < "e" baz "f" > "g" 10e7Returns a color instance from HEX (6 element elements).a || 002231141155600(Array streamContents: [:stream | #(1 2 3 4) reject: [:each | each = 3 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(11 12 14)19926between: #(7 8)Esum works with objects that understands + and - messages, like Points | a'Tests-unix-64-Roassal-Mondrian-Test.xml30ifTrue: alternativeBlock "If the receiver is false (i.e., the condition is false), then the value is the false alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line." "(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'" "(false ifTrue: [ 'This statement is true!' ]) >>> nil" self subclassResponsibilityabc9Answers a Dictionary based on collection of Associations.foo*26020E'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> false3nil isEmptyOrNil >>> true311112004445484400B9999A Pharo is <1s>5/({'hello'. 'world'} includes: 'hello') >>> trueEvaluate aBlock with each of the receiver's elements, in reverse order, along with the corresponding element, also in reverse order, from aSequencableCollection. 3oops21nuuuu1-(#(1 2 3 4 5) beginsWith: #(0 1 2)) >>> false2333b10'abc' isByteString >>> true.(#(1 2 2 3 1 1 1) asBag includes: 5) >>> false111100displayStringOn:foo1)Optimized version of Collection>>#select:0.0S((Date year: 2018 month: 9 day: 28) addMonths: 3) printString>>> '28 December 2018' aa bb cc dd&Answer the receiver raised to aNumber.10basenameWithoutExtension: anExtension "Returns the basename without specified extension (if any) " "('/foo/gloops.taz' asPath basenameWithoutExtension: 'taz') >>> 'gloops'" | extensionWithDelimiter | extensionWithDelimiter := anExtension copyWithFirst: self extensionDelimiter. ^ (self basename endsWith: extensionWithDelimiter) ifTrue: [ self basename allButLast: extensionWithDelimiter size ] ifFalse: [ self basename ]20016Answer a ByteArray whose elements are the elements of the receiver. Implementation note: Cannot use ''ByteArray withAll: self'' as that only works for SequenceableCollections which support the replacement primitive.pharo 0100140indexOf: anElement ifAbsent: exceptionBlock "Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOf: #c ifAbsent: 7) >>> 3" "(#(a b c d e) indexOf: #x ifAbsent: 7) >>> 7" ^ self indexOf: anElement startingAt: 1 ifAbsent: exceptionBlock1flatCollect: aBlock "Evaluate aBlock for each of the receiver's elements and answer the list of all resulting values flatten one level. Assumes that aBlock returns some kind of collection for each element. Equivalent to the lisp's mapcan" "( #((3 4) (1 2)) flatCollect: [:each | each ] ) >>> #(3 4 1 2)" "( #(3 4 1 2) flatCollect: [:each | { each. each*10 } ] ) >>> #(3 30 4 40 1 10 2 20)" ^ self flatCollect: aBlock as: self species<#(1 2 2 3 1 1 1) asBag sortedElements >>> {1->4. 2->2. 3->1}660222222y!Tests-unix-64-Slot-Tests-Test.xml>> 1" "1 slowFactorial >>> 1" "2 slowFactorial >>> 2" "3 slowFactorial >>> 6" "4 slowFactorial >>> 24" "5 slowFactorial >>> 120" "6 slowFactorial >>> 720" self > 0 ifTrue: [ ^ self * (self - 1) slowFactorial ]. self = 0 ifTrue: [ ^ 1 ]. self error: 'Not valid for negative integers'@(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB' goodby: 2 my: 2@Add newObject anInteger times to the receiver. Answer newObject.520(1 decimalDigitAt: 2) >>> 0h(#(2 2 3 3 4 1 2 3 3 5) splitOn: [:each | each > 3])>>> #(#(2 2 3 3) #(1 2 3 3) #()) asOrderedCollectionc'98abc' numericSuffix >>> 0strings[ :aaa :bbb | | ccc ddd | aaa ]3r12345* 666 00777020888000III0F9HHH9999DDD9A EEE { ^ 1 }yh: hue s: saturation l: lightness "Create a color with the given hue, saturation, and lightness. Hue is given as the angle in degrees of the color on the color circle where red is zero degrees. Saturation and lightness are numbers in [0.0..1.0] where larger values are more saturated or lighter colors. The difference with brightness in the HSV coordinates is that colors go from black at lightness 0, through vivid hues at lightness 0.5, to white at lightness 1. For example, (Color h: 0 s: 1 l: 0.5) is pure red." " (Color h: 0 s: 1 l: 0.5) >>> (Color r: 1 g: 0 b:0)" ^ self h: hue s: saturation l: lightness alpha: 1.041fo0123456789ABCDEFabcdef20abc2;Convert to a ByteArray with the ascii values of the string.001211!(2 ifNotNil: [ :o | o + 3]) >>> 52 between: ( 1 and: 4)15Return whether the receiver is close to the argument aPoint. The precision for point holding floats is defined by Float >> #closeTo:precision:. For points holding integer, closeTo: corresponds to equalsTo:lastIndexOf: anElement startingAt: lastIndex ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOf: #a startingAt: 1 ifAbsent: 7) >>> 1" "(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 3" lastIndex to: 1 by: -1 do: [:index | (self at: index) = anElement ifTrue: [^ index]]. ^ exceptionBlock value5Unexpected token...10P(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'70vector0d(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x :y :z | x + y + z]) >>> #(3 30 300)d-23.4567 first element312323&(#(a b c d) at: 3 ifAbsent: #z) >>> #cX X1:Returns the basename without specified extension (if any) Size of replacement doesnt matchsplit: aSequenceableCollection "Split the argument using the receiver as a separator." "optimized version for single delimiters" "($/ split: '/foo/bar')>>>#('' 'foo' 'bar') asOrderedCollection" "([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollection" | result | result := OrderedCollection new: aSequenceableCollection size //2. self split: aSequenceableCollection do: [ :item | result add: item ]. ^ result(String streamContents: [:s| {'one'->1. 'two'->2} asOrderedDictionary associationsDo: [:a| s << a key << ':' << a value asString << ';']]) >>> 'one:1;two:2;'0MAnswer a String made up from the receiver whose characters are all lowercase.aEvaluate aBlock with each of the receiver's elements as the argument. Answer the element for which aBlock evaluates to the highest magnitude. If collection empty, return nil. This method might also be called elect:.110 ^ n n ^ n 01l(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))''1abc' startsWithDigit >>> trueasValidSelector "Returns a symbol that is a valid selector by removing any space or forbidden characters" "'234znak ::x43 '') _ : 2' asValidSelector >>> #'v234znak:x43:v2'" "'234znak ::x43 ) :2' asValidSelector >>> #v234znak:x43:v2" ^((( $: join: ( ( $: split: ( self select: [ :char | (char charCode < 128) and: [ char isAlphaNumeric or: [ char = $: ] ] ] ) ) select: [ :split | split isNotEmpty ] thenCollect: [ :nonEmptyString | nonEmptyString first isLetter ifTrue: [ nonEmptyString uncapitalized ] ifFalse: [ 'v' , nonEmptyString ] ] ) ) ifEmpty: [ 'v' ]), ((self isNotEmpty and: [ self last = $: ]) ifTrue: [ ':' ] ifFalse: [ #() ]) )asSymbola := a. [ :a a ]. a := appppXppp1000pairsDo: aBlock "Evaluate aBlock with my elements taken two at a time. If there's an odd number of items, ignore the last one. Allows use of a flattened array for things that naturally group into pairs. See also pairsCollect:" "(Array streamContents: [:s | #(1 'fred' 2 'charlie' 3 'elmer') pairsDo: [:a :b | s nextPut: b; nextPut: a]]) >>> #('fred' 1 'charlie' 2 'elmer' 3)" 1 to: self size // 2 do: [ :index | aBlock value: (self at: 2 * index - 1) value: (self at: 2 * index) ]1400Uppp ^ 0 :BB :BB :BB :BB :BB :BB :BB :BB :BB :BBB :BBB :BBB :BBB :BBB :BBB :BBB | bb 0((Color colorFrom: #blue)>>> (Color blue)2001mReturn true if the receiver is sorted by the given criterion. Optimization for isSortedBy: [:a :b | a <= b].16rA5hscaleTo: anExtent "Return a Point scalefactor for shrinking a thumbnail of the receiver's extent to fit within anExtent. self and anExtent are expected to have positive nonZero x and y." "(200@200 scaleTo: 400@400) >>> (2.0@2.0)" "(40@40 scaleTo: 400@400) >>> (10.0@10.0)" | factor sX sY | factor := 3.0 reciprocal. "EccentricityThreshhold reciprical" sX := anExtent x / self x asFloat. sY := anExtent y / self y asFloat. sX = sY ifTrue: [ ^ sX @ sY ]. "Same aspect ratio" ^ sX < sY ifTrue: [ sX @ (sX max: sY * factor) ] ifFalse: [ (sY max: sX * factor ) @ sY ]|Try to find a number somewhere in this string, as explained in Number>readFrom: this method returns the first number found0{ ^ 1. 2. ^ 3 }hello!0vector00index out of range11s(Array streamContents: [:stream | #(1 2 3 4) select: [:each | each > 2 ] thenDo: [:each | stream nextPut: each + 10]]) >>> #(13 14)' ' isNotEmpty >>> true10Missing opener for closer: }5sum: aBlock "This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects." "(#(1 -4 -10 1) sum: #abs) >>> 16" "({1@ -4. -10@1} sum: #abs) >>> (11@5)" "(#() sum: #abs) >>> 0" ^ self sum: aBlock ifEmpty: [ 0 ](#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' 0vector0isInsideRectangle: aRectangle "Answer true whether the receiver is inside the argument (following Rectangle>>#containsPoint: semantics" "(50@50 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> true" "(100@100 isInsideRectangle: (0@0 corner: 100@100))>>> false" "(100@90 isInsideRectangle: (0@0 corner: 100@100))>>> false" ^ aRectangle containsPoint: selfif$((1/3)@(2/2)) isFloatPoint >>> false110abcd251 12r89abcdThat is false!21#(3.1479 roundDownTo: 0.01) >>> 3.14295 1 foo: ^25200That is false!bozo2(1]2)442"#foo: keywordsStrict >>> #('foo:')433$( isClosePunctuation >>> false hello world!10000000000000000000 Xuuuuuu Xuu / HHH E1III111111AAA17CBBBCCCOOOCCCCCCMMMCJ NNN SgrowAtFirst "Add new empty slots to the front of array, while keeping the empty slots at the end." "OrderedCollection new capacity >>> 10" "(OrderedCollection new growAtFirst; capacity) >>> 20" | newArray newFirstIndex newLastIndex | newArray := self class arrayType new: (array size * 2 max: 1). newFirstIndex := newArray size - array size + firstIndex. newLastIndex := newFirstIndex + lastIndex - firstIndex. newArray replaceFrom: newFirstIndex to: newLastIndex with: array startingAt: firstIndex. array := newArray. firstIndex := newFirstIndex. lastIndex := newLastIndex013220-4525515320107ifFalse: falseAlternativeBlock ifTrue: trueAlternativeBlock "Answer the value of falseAlternativeBlock. Execution does not actually reach here because the expression is compiled in-line." "(false ifFalse: [ 'That is false!' ] ifTrue: [ 'That is true!' ]) >>> 'That is false!'" ^falseAlternativeBlock value'((100@200) max: (30@400)) >>> (100@400)ggggggggg sssssss '''''''''''''81FSupport collection enumeration with a counter, even though not ordered111and: alternativeBlock "Nonevaluating conjunction -- answer the value of alternativeBlock since the receiver is true." "(true and: [ false ]) >>> false" "(true and: [ true ]) >>> true" ^ alternativeBlock value#'a''b' isAllAlphaNumerics >>> false [:a| | |b]234znak ::x43 ) :23oops(1}2)a;Answer a Point that is the product of the receiver and arg.021[ 0.015iKasInteger "Answer 1 since receiver is true." "true asInteger >>> 1" ^ 1y101O(#(1 2 3) asOrderedCollection collect: [ :v | v * 10 ]) asArray >>> #(10 20 30)'1.234' asInteger >>> 120641s1 s10415b7({#a. #b. #c. #d. #e} swap: 5 with: 1) >>> #(e b c d a)100$Print the receiver showing precisely the given number of places desired. If placesDesired is positive, a decimal point and that many digits after the decimal point will always be shown. If placesDesired is zero, a whole number will be shown, without a decimal point. Here are some examples:1!a := a. { [ :a | a := a }. a := a!0000001110000002220446665557773301.07.5000r15((0@0 corner: 100@100) containsPoint: 50@50) >>> true3215^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.+Tests-unix-64-NewTools-FontChooser-Test.xml-(Color fromString: 'orange') >>> Color orangeisNotEmpty "Answer whether the receiver contains any elements." "#() isNotEmpty >>> false" "#(()) isNotEmpty >>> true" "'' isNotEmpty >>> false" "' ' isNotEmpty >>> true" ^ self isEmpty not293414333102546333877729111A0000BB1316rFF12gloopsdogD(#(2 3 4 4 5 6) copyWithoutDuplicates asSet) >>> #(2 3 4 5 6) asSeto book-result#() asBag = Bag new >>> true#('''' unescapeCharacter: $') >>> ''3192021000011213141100'foo: a ^ [ | a | a := 10. a ] value + a-SmallInteger maxVal decimalDigitLength >>> 196-Tests-unix-64-ThreadedFFI-UFFI-Tests-Test.xml37abab63MockPackage-Tests-1#(a b c) asOrderedCollection asArray >>> #(a b c)11000 Five is 5.EAnswer the value of the alternativeBlock since the receiver is false.blast "Answer the last element of the receiver" "#(a b c d e) last >>> #e" ^ self at: self sizea1.1. 1[:a b]3311112004444466676655B9999A20coola3/('hello' surroundedBy: 'abd') >>> 'abdhelloabd'1 foo 2dFF00000.51 [ | b | ] 0 odd >>> false281024{Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self.210121 max: 2@({1@3. 2@1. 3@6. 4@8} detect: [ :each | each x even ]) >>> (2@1)2('fred the bear' copyWithout: $e) >>> 'frd th bar'-1.5 rounded >>> -228 October 20181.00.51-Here 123should % be 6 the name6 of the method&' 89Ten ' initialIntegerOrNil >>> nilUintersection: aCollection "Answer the set theoretic intersection of two collections." "(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)" "(#(1 2 3 4) intersection: #()) >>> #()" "(#() intersection: #(1 2 3 4)) >>> #()" "('hello' intersection: 'world') >>> 'ol'" ^ self species withAll: (self asSet intersection: aCollection) asArray53313100world5$(#(a b a d e) lastIndexOf: #a) >>> 31-1"A" - 1abs-1"B" - 1max:-1"C"6A variant of #streamContents: with a strict size limit1(-23.4567 printShowingDecimalPlaces: 0) >>> '-23'110Sbefore: target "Answer the receiver's element immediately before target. Raise an error if target is not an element of the receiver, or if there are no elements before it (i.e. it is the first element)." "(#(11 22 33) before: 22) >>> 11" "(#(11 22 33) before: 33) >>> 22" ^ self before: target ifAbsent: [self errorNotFound: target]hel71202:metaLevelForHierarchyOf: aClass "Subclasses should decide what meta level of given class should be used to retrieve/build hierarchy. For example superclass hierarchy of ProtoObject class can stop at it according to instance side hierarchy" "ProtoObject superclass >>> nil" "Or it can follow full superclass chain which will ends at Object and ProtoObject" "ProtoObject class superclass >>> Class" "This method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchy" self subclassResponsibilityLadaptToCollection: rcvr andSend: selector "If I am involved in arithmetic with another Collection, return a Collection of the results of each element combined with the scalar in that expression. Is used to implement Collection>>+, Collection>>-, etc." "(#(10 20 30) adaptToCollection: #(0 1 2) andSend: #@) >>> {(0@10). (1@20). (2@30)}" (rcvr isSequenceable and: [ self isSequenceable ]) ifFalse: [self error: 'Only sequenceable collections may be combined arithmetically']. ^ rcvr with: self collect: [:rcvrElement :myElement | rcvrElement perform: selector with: myElement]second "Answer the second element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) second >>> #b" ^ self at: 2aab1 555 0066601 777 1&(AsciiCharset toLowercase: $A) >>> $a.100:00:00:01.0011136530$} isControlOther >>> false300000222C('bar' asSortedCollection: [:x :y| x>y ]) asArray >>> {$r. $b. $a}.*Return the maximum value of the collectionxAnswer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digitUwithoutQuoting "remove the initial and final quote marks (single quote for string, or double quotes for comments), if present (and if matches nesting quotes). Have a look at testWithoutQuoting. If you want to remove single/double quotes not in first and last positions of the strings, have a look at copyWithout: $' " "'''h''' withoutQuoting >>> 'h'" "' ''h'' ' withoutQuoting >>> ' ''h'' '" | quote | self size < 2 ifTrue: [ ^ self ]. quote := self first. ^ (quote = self last and: [ quote = $' or: [ quote = $" ] ]) ifTrue: [ self copyFrom: 2 to: self size - 1 ] ifFalse: [ self ]reciprocal "Answer a Point with coordinates that are the reciprocals of mine." "(100@200) reciprocal >>> ((1/100)@(1/200))" ^ x reciprocal @ y reciprocal2204015Split the argument using the receiver as a separator.1011a"fear is the little death that the.Pharo is really super cool0between: #(23 nil)731(KeyboardKey fromCharacter: $a) >>> KeyboardKey A304101.35A11Emit overlapping pairs of my elements into aBlock1.4 rounded >>> 1(#(1 3 5 7 11 15 23) findBinary: [ :arg | 12 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 'between: #(11 15)'bar_Evaluating disjunction (OR) -- answer with the argument, aBoolean, since the receiver is false.n ssss n10.0 'Foo''Bar'3('abcdefgh' includesSubstring: 'de' at: 4) >>> true34122pppp 1+Convert an OrderedCollection into an Array.31withIndexSelect: elementAndIndexBlock "Optimized version of SequenceableCollection>>#withIndexSelect: " "(#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')" | newCollection element | newCollection := self copyEmpty. firstIndex to: lastIndex do: [ :index | (elementAndIndexBlock value: (element := array at: index) value: index) ifTrue: [ newCollection addNoSort: element ] ]. ^ newCollection700000222222266766555100 hex: aFloat "Return an hexadecimal two-digits string between 00 and FF for a float between 0.0 and 1.0" "(Color hex: 0.2) >>> '33'" | str | str := (aFloat * 255) asInteger printStringHex asLowercase. ^ str size = 1 ifTrue: [ '0' , str ] ifFalse: [ str ]x+Tests-unix-64-System-Caching-Tests-Test.xmlx40xy210 565555554444716((#(1 3) detect: #even ifNone: [0]) >>> 0def10115*#('a' 'b' 'c') asCommaString >>> 'a, b, c'03.1479Answer a SortedCollection whose elements are the elements of the receiver. The sort order is defined by the argument, aSortBlock. Note that it is better to use #sorted if you don't really need a SortedCollection, but a sorted collection!!10/(2.567 printShowingDecimalPlaces: 2) >>> '2.57'c,#((1 5 1) (2 3 3) (4 7 2)) sum >>> #(7 15 6) """ ppp """ n """. """ ^ n """ aRo612211:. :MReturn a color with the given r, g, and b components in the range [0.0..1.0].2-(#(10 20) ifNotEmpty: [:x| x average]) >>> 15Answer an instance of me containing the same associations as the argument. If the same key appears twice, the last one enumerated will win0IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and prefix are bytes like. Otherwise, if self or prefix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)*({1 .2 .3 .4} at: 2 incrementBy: 2) >>> 4c2 nil := nil2pppp AAAA ^ aaaa s n13(1111111111111111110000000002222222222222,(#(10 20 30) includesAny: #(30 40)) >>> true 000000000IIf the receiver is true (i.e., the condition is true), then the value is the true alternative, which is nil. Otherwise answer the result of evaluating the argument, alternativeBlock. Create an error notification if the receiver is nonBoolean. Execution does not actually reach here because the expression is compiled in-line.1* arg "Pairwise product of two sequenceable collections of the same length." "#(0 1 2) * #(10 20 30) >>> #(0 20 60)" "{0@1. 2@3} * {10@20. 30@0} >>> {(0@20). (60@0)}" ^ arg adaptToCollection: self andSend: #*51411foobaz100tFold the result of the receiver from left to right into aBlock. The argument aBlock must take two or more arguments.zb102Answer the set theoretic union of two collections. 2312E(OrderedCollection new add: 42; yourself) class >>> OrderedCollection!#(1 2) asArray == #(1 2) >>> true,ppp | T | t n. ^ 0 :B | b 0 ssssss nn s tbad start index20$(#(10) averageIfEmpty: [ 0 ]) >>> 1010is0032224print: positiveNumberString on: aStream prefix: prefix length: minimum padded: zeroFlag "Return a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length." "(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10'" | padLength | padLength := minimum - positiveNumberString size - prefix size. padLength > 0 ifTrue: [zeroFlag ifTrue: [aStream nextPutAll: prefix; nextPutAll: (String new: padLength withAll: $0)] ifFalse: [aStream nextPutAll: (String new: padLength withAll: Character space); nextPutAll: prefix]] ifFalse: [aStream nextPutAll: prefix]. aStream nextPutAll: positiveNumberString4tunescapeCharacter: aCharacter "Unescape an escaped string. Assume the string has all occurrences of aCharacter are escaped. That is, they are in pairs. This method returns a copy of the string replacing all pairs of aCharacter by a single appearance of it." "See `escapeCharacter:` for the opposite" "('''''' unescapeCharacter: $') >>> ''''" "('''' unescapeCharacter: $') >>> ''" | result stream | result := WriteStream with: ''. stream := ReadStream on: self. [ stream atEnd ] whileFalse: [ result nextPutAll: (stream upTo: aCharacter). stream peek ifNotNil: [result nextPut: stream next]]. ^result contents0(#(10 20 30) collect: [:e| e+1]) >>> #(11 21 31)foo10306Returns the instance of myself having aString as name.2112union: aCollection "Answer the set theoretic union of two collections." "(#(1 2 3) union: #(4 5 6 2)) asSet >>> #(1 2 3 4 5 6) asSet" "('hello' union: 'world') >>> 'whlorde' " | set | set := self asSet addAll: aCollection; yourself. ^ self species withAll: set asArray-14220000112111533334116699AABAAAECCCCDDAAF99888888777GDPairwise product of two sequenceable collections of the same length.110.008copyWithout: oldElement "Answer a copy of the receiver that does not contain any elements equal to oldElement." "('fred the bear' copyWithout: $e) >>> 'frd th bar'" "(#(2 3 4 5 5 6) copyWithout: 5) >>> #(2 3 4 6)" "((10 to: 13) copyWithout: 11) >>> #(10 12 13)" ^ self reject: [:each | each = oldElement]gReturns whether the receiver is composed entirely of separators i.e., a space, tab, lf, cr, and newPageisSortedBy: aBlock "Return true if the receiver is sorted by the given criterion." "(#(1 2 3) isSortedBy: [:a :b | a <= b ]) >>> true" "(#(1 2 3) isSortedBy: [:a :b | a >= b ]) >>> false" "(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false" "(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true" | lastElm elm | self isEmpty ifTrue: [^ true]. lastElm := self first. 2 to: self size do: [:index | elm := self at: index. (aBlock value: lastElm value: elm) ifFalse: [^ false]. lastElm := elm]. ^ true!777 00888000999000AAA000BBB00 CCCF('Hello' detect: #isLowercase ifFound: #uppercase ifNone: [$X]) >>> $E11.511200(#(1 'fred' 2 'charlie' 3 'elmer') pairsCollect: [:a :b | b, ' is number ', a printString]) >>> #('fred is number 1' 'charlie is number 2' 'elmer is number 3')!'x isSymbol' findSelector >>> nil1G(#( (2 -3) (4 -5) #(-6)) flatCollect: [ :e | e abs ]) >>> #(2 3 4 5 6)102$(#[1 2 0 4] booleanAt: 3) >>> false.32 factorial >>> 2mobazoa#[ 1 2 ]20vector21we>(#(e b a d e) lastIndexOf: #a startingAt: 4 ifAbsent: 7) >>> 3'(#(1 2 3 4 5) beginsWith: #()) >>> trueX XdAnswer whether text matches the pattern in this string. Matching ignores upper/lower case differences. Where this string contains #, text may contain any character. Where this string contains *, text may contain any sequence of characters.1addAll: aCollection "Add each element of aCollection at my end. Answer aCollection." "(OrderedCollection new addAll: #(41 42); yourself) asArray >>> #(41 42)" ^ self addAllLast: aCollectionf,Tests-unix-64-NewTools-Scopes-Tests-Test.xmlth is is2 9 a stRI4`pathString "Return a string containing the path elements of the receiver, without the 'Path *' part" "((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) pathString >>> 'book-result/W01-Welcome'" ^String streamContents: [ :stream | self printPathOn: stream delimiter: self delimiter ]1~normalizeCamelCase " 'TheRollingStones' normalizeCamelCase >>> 'The Rolling Stones' " ^ self class streamContents: [ : stream | self do: [ : char | (char isUppercase and: [ (stream position > 0 and: [ stream peekLast isUppercase not ]) and: [ stream peekLast isSpaceSeparator not ] ]) ifTrue: [ stream nextPut: Character space ]. stream nextPut: char ] ]1011Negative numbers can't be raised to float powers.YCreate a dictionary from the keys and values arguments which should have the same length.0.06xor: alternativeBlock "Answer the value of the alternativeBlock since the receiver is false." "(false xor: [true]) >>> true" "(false xor: [false]) >>> false" ^ alternativeBlock value3-isClosePunctuation "Return whether the receiver is one of these characters: )]}" "$a isClosePunctuation >>> false" "$( isClosePunctuation >>> false" "$) isClosePunctuation >>> true" "$] isClosePunctuation >>> true" "$} isClosePunctuation >>> true" ^ self characterSet isClosePunctuation: self100asa20!(12 beBetween: 12 and: 20) >>> 12942ab10/Answer a set with the elements of the receiver.1false & false >>> false book-result255KReturns the reciprocal of self. In case self is 0 the / signals ZeroDivideb7113.0lau u. X 0 :B 0. X X232%#[1 2] asByteArray == #[1 2] >>> true('aa' compare: 'aa') >>> 21116rAMasOrderedCollection "Answer an OrderedCollection whose elements are the elements of the receiver. The order in which elements are added depends on the order in which the receiver enumerates its elements. In the case of unordered collections, the ordering is not necessarily the same for multiple requests for the conversion." "(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollection" "'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true" "'foo' asOrderedCollection = #($o $o $f) asOrderedCollection >>> false" ^ self as: OrderedCollection pppp Xppp oops10e305xb100.03211.250k(Array streamContents: [:stream | #(1 2 3) reverseDo: [:each | stream nextPut: each + 10]]) >>> #(13 12 11)&(Color r: 1 g: 1 b: 1) >>> Color whitewriteStreamDo: aBlock "Evaluates the argument with the write stream of the collection. Answers the result." "(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}" ^ aBlock value: self writeStream3asFourCode "'abcd' asFourCode >>> -513645724" "'1111' asFourCode >>> 825307441" "'1234' asFourCode >>> 825373492" | result | self size = 4 ifFalse: [^self error: 'must be exactly four characters']. result := self inject: 0 into: [:val :each | 256 * val + each asciiValue ]. (result bitAnd: 16r80000000) = 0 ifFalse: [ Error signal: 'cannot resolve fourcode' ]. (result bitAnd: 16r40000000) = 0 ifFalse: [ ^ result - 16r80000000 ]. ^ resultb102=Answer a copy of the receiver without any duplicated elements+Character backspace isControlOther >>> truep( #(1 2 3 1 6 1 2 3 4) piecesCutWhere: [ :a :b | a = 1 and: [ b = 2]]) asArray >>> #(#(1) #(2 3 1 6 1) #(2 3 4))a := a. [ | a a := a ]. a := a2^ u20$' isAlphaNumeric >>> falsenXsssDo a character-by-character comparison between the receiver and aString. Return the index of the final character that matched exactly.4"btrue | false >>> true1,"a" 1 "b" max: "c" 2 "d" + "e" 3 "f" abs "g"('Hello' includes: $l) >>> trueReturn a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method.)Evaluate aBlock with my elements taken n at a time. Ignore any leftovers at the end. Allows use of a flattened array for things that naturally group into groups of n. If aBlock has a single argument, pass it an array of n items, otherwise, pass the items as separate arguments. See also pairsDo:[ | b ]pReturns the keywords of the provided selector. If the receiver is not keyword-based, an empty array is returned.11abc22 XX XX n n n X-3.1497%Answer the factorial of the receiver.IMPLEMENTATION NOTE: following algorithm is optimized in primitive only in case self and suffix are bytes like. Otherwise, if self or suffix are wide strings, then slow version with asLowercase convertation, (primitive is not correct for wide strings)1-16rA60=(KeyboardKey named: 'SHIFT_L') >>> (KeyboardKey value: 65505)11018'Tests-unix-64-Commander2-Tests-Test.xml23/(#(1 2 3) reduceRight: [ :a :b | a - b ]) >>> 2'See `escapeCharacter:` for the oppositeto X25(#(x y z) atLast: 1) >>> #z1xEvaluate aBlock with each of the receiver's elements as the argument. Answer the number of elements that answered true.abckIf the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block00100022445220086666772001FAnswer 1 if the receiver is greater than 0, -1 if less than 0, else 0.hello foofoofoo303 | tmp | tmp := 1 . ^ tmp . 0!pppp A ^ 0 :B | b 0 ssssss nn s a#(#(a b c d) allButLast: 3) >>> #(a)112%(false and: [Error signal]) >>> false#'hello''worldX n s n-3zk cd zk ef zk2<(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A'0 :BBBBBB | bbbbbb s n 02(42 decimalDigitAt: 2) >>> 4d2Split a collection of objects based on a splitter. splitter - can be a subsequence, a Block or a Regex (String receiver only). Any other object used as a splitter is treated as an Array containing that object.0indexOf: aCharacter startingAt: start "Return the index of the argument in the receiver, only elements after the start of the element are considered zero if not present." "('abcdf abcedf' indexOf: $a startingAt: 4) >>> 7" "('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 0" (aCharacter isCharacter) ifFalse: [^ 0]. ^ self class indexOfAscii: aCharacter asciiValue inString: self startingAt: start5RReturns a string representation of the receiver as hexadecimal, prefixed with 16r.:Tests-unix-64-NewTools-Debugger-Breakpoints-Tools-Test.xml11u(Array streamContents: [:stream | #(1 2 3) reverseWith: #(4 5 6) do: [:a :b | stream nextPut: (a + b)]]) >>> #(9 7 5)(#('We' 'love' 'pharo!') asOrderedCollection withIndexSelect: [:value :index | value size - 1 <= index]) >>> (OrderedCollection with: 'We')04(#(1 2) allSatisfy: [ :each | each even ]) >>> falses:-14h3104223XXXua-498Preduce: aBlock "Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified." "(#(1 2 3) reduce: [ :a :b | a + b ]) >>> 6" "1 + 2 + 3" "(#(1 2 3) reduce: [ :a :b | a + b ]) >>> (1 + 2 + 3)" "(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15" "(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> (1 + 2 + 3 + 4 + 5)" ^ self reduceLeft: aBlockK(Color fromString: '#FFCCAA')>>> (Color r: 1.0 g: 0.8 b: 0.667 alpha: 1.0) ###'helloH('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em'''41040a := a. [ :a | [ :a | a := a2eEvaluate the elementBlock for all elements in the receiver, and evaluate the separatorBlock between.string1e22CAnswer a number that is the minimum of the x and y of the receiver.20foo: 1asLowercase "Answer a String made up from the receiver whose characters are all lowercase." "'PhaRo' asLowercase >>> 'pharo'" "'' asLowercase >>> ''" "' ' asLowercase >>> ' '" ^ self copy asString translateToLowercasefghidetect: aBlock ifNone: exceptionBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the first element for which aBlock evaluates to true. If none evaluate to true, then evaluate the argument, exceptionBlock." "(#(1 2) detect: #even ifNone: [0]) >>> 2" "(#(1 3) detect: #even ifNone: [0]) >>> 0" "('Hello' detect: #isLowercase ifNone: [$X]) >>> $e" "('LOL' detect: #isLowercase ifNone: [$X]) >>> $X" ^ self detect: aBlock ifFound: [ :element | element ] ifNone: exceptionBlock122 00010220300)(#() ifNotEmpty: [:x| x average]) >>> #()20100 X Xsss X 43@Pairwise sum of two sequenceable collections of the same length.nnnuu1+^2XXXXXXXXXXXXXXXX11c11beYCreate a dictionary from the keys and values arguments which should have the same length.IExecute the receiver with one or zero arguments depending on the receiver(#() writeStreamDo: [ :stream | stream nextPut: '4'; space; nextPutAll: '34'. stream contents ]) >>> {'4'. Character space. $3. $4}aro69BBB888877777777666666555555544444444DDD00000000000EEE27/Tests-unix-64-Collections-Native-Tests-Test.xml2allButFirst "Answer a copy of the receiver containing all but the first element. Raise an error if there are not enough elements." "#(a b c) allButFirst >>> #(b c)" ^ self allButFirst: 12422102- arg "Answer a Point that is the difference of the receiver and arg." "((2@2) - (100@200)) >>> (-98@ -198)" "((2@2) - 200) >>> (-198@ -198)" arg isPoint ifTrue: [^ (x - arg x) @ (y - arg y)]. ^ arg adaptToPoint: self andSend: #-e ppp < <<<<<[ :a | axca1156isSeparator "Returns whether the receiver is a separator i.e., a space, tab, lf, cr, and newPage" "Character space isSeparator >>> true" "Character lf isSeparator >>> true" "Character cr isSeparator >>> true" "Character newPage isSeparator >>> true" "Character tab isSeparator >>> true" "$' isSeparator >>> false" | in | ^ (in := self asInteger) == 32 or: [ in == 13 or: [ in == 9 or: [ in == 10 or: [ in == 12 ] ] ] ] [ 1 ]. [ 2 ]This method adds such decision to concrete kind of local scope which allows to use scopes to restrict visibility of class hierarchy0.5004887585532747c21015X X elmer 8 ** 2 >>> 64bad stop index7raisedTo: aNumber "Answer the receiver raised to aNumber." "(2 raisedTo: 8) >>> 256" "(8 raisedTo: 2) >>> 64" "(2 raisedTo: (1/12)) >>> 1.0594630943592953" "(2 raisedTo: -1) >>> (1/2)" aNumber isInteger ifTrue: [ "Do the special case of integer power" ^ self raisedToInteger: aNumber]. aNumber isFraction ifTrue: [ "Special case for fraction power" ^ self raisedToFraction: aNumber]. self < 0 ifTrue: [ ^ ArithmeticError signal: 'Negative numbers can''t be raised to float powers.' ]. 0 = aNumber ifTrue: [^ self class one]. "Special case of exponent=0" 1 = aNumber ifTrue: [^ self]. "Special case of exponent=1" 0 = self ifTrue: [ "Special case of self = 0" ^ aNumber < 0 ifTrue: [ (ZeroDivide dividend: 1) signal] ifFalse: [ self]]. ^ (aNumber * self ln) exp "Otherwise use logarithms"323.57false & false >>> falseabcDNonevaluating disjunction -- answer true since the receiver is true.pharo128Tests-unix-64-MetacelloCommandLineHandler-Tests-Test.xml11>Tests-unix-64-Calypso-SystemPlugins-FFI-Queries-Tests-Test.xml^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.21901E(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 72000:ifNotNil: ifNotNilBlock "Evaluate the block, unless I'm == nil (q.v.). If the receiver is not nil, pass it as argument to the block." "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(2 ifNotNil: [ :o | o + 3]) >>> 5" "(nil ifNotNil: [:o | o +3 ]) >>> nil" ^ ifNotNilBlock cull: self18JTake the minimum between self and maxValue, then the maximum with minValue0 Xs Xg(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{"foo":1},{"bar":2}]'3&Character home isControlOther >>> trueabcde2(false or: [3]) >>> 343 00001111102B({#x .#y .#z} atAll: #(1 3) putAll: #(a e); yourself) >>> #(a y e)foo | tmp | tmp := 1. ^ tmpfoo < bar: [ 1 ] > 32768 bytesCount >>> 2 0001020300b Pharo is coolsecond4(1 max: 1000) >>> 10002That is false!40028 September 2018320MReturn a collection of pharo comment nodes: expressions following the pattern2253 0 :B :B | b 00(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'over index: ', a printString ]) >>> 'over index: 7' 1e 10.199999999:(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 60 a: . :1-1.5^ Grepeat: aNumber "Returns a new string concatenated by itself repeated n times" "('abc' repeat: 3) >>> 'abcabcabc'" aNumber < 0 ifTrue: [ self error: 'aNumber cannot be negative' ]. ^ self species new: self size * aNumber streamContents: [ :stringStream | 1 to: aNumber do: [ :idx | stringStream nextPutAll: self ] ]string3##(a b c d e f g h i) seventh >>> #g100128 2r001010005$+('abc' sameAs: 'aBc' asWideString) >>> true0.0053u u. X X . X X2(1 minute + 1 second) printString >>> '0:00:01:01'11#'abc' asWideString = 'abc' >>> true21107(0@0 isInsideRectangle: (0@0 corner: 100@100)) >>> true3 0DDD00000EEE04377733888399A0CCC0(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73)0elmer!(10 storeStringBase: 10) >>> '10' one:1;two:2;1(#() sum: #abs) >>> 0humanReadableSISizeString "Return the receiver as a string with SI binary (International System of Units) file size, e.g. '50 KB'. It means that it takes 1000 and not 1024 as unit as humanReadableByteSizeString does." "(1000 * 1000 * 1000) humanReadableSISizeString >>> '1.00 GB'" "(1000 * 1000 * 1000) humanReadableByteSizeString >>> '953.67 MB'" "(1024 * 1024 * 1024) humanReadableSISizeString >>> '1.07 GB'" ^ String streamContents: [ :s| self humanReadableSISizeOn: s ]1501019291;({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)10!(10 beBetween: 20 and: 12) >>> 12522c^(#(1 2 3 4 4 1 2 3 5 6 ) groupByRuns: [ :each | each = 4]) >>> #(#(1 2 3) #(4 4) #(1 2 3 5 6))1'hello' copyEmpty >>> ''do: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. This is the general foreach method, but for most standard needs there is often a more specific and simpler method." "|s| s:=0. #(10 20 30) do: [:each | s := s + each]. s >>> 60" "but use sum or inject:into: instead" "(#(10 20 30) inject: 0 into: [:s :each| s + each ]) >>> 60" "#(10 20 30) sum >>> 60" " (String streamContents: [:s | #('hello' 'the' 'world') do: [:each | s << each]]) >>> 'hellotheworld'" self subclassResponsibility121024Missing opener for closer: ]z10113 'Number': 5!((2@2) + (100@200)) >>> (102@202)Jequals: aDate "Perform a time zone independent comparison of the dates, i.e. only compare day, month and year. To compare with time zones, use #=" "(Date today equals: Date yesterday) >>> false" ^self year = aDate year and: [ self monthIndex = aDate monthIndex and: [ self dayOfMonth = aDate dayOfMonth ] ]1'abc' capitalized >>> 'Abc'1-10 hexString >>> '-16rA'14QAnswer the next multiple of aNumber toward infinity that is nearest the receiver.00001100000220000033000004400000550000066000007700000880000099000000AAA000000BBB000000CCC000000DDD000000EEE000000FFF000000GGG0IIJJ54863defC(#(10 15 22 789) collect: [:x | x//10] as: Set) >>> #(1 2 78) asSetpharo&[ :x "a""b""c""d" :y "e""f" | "g""h" ]21.25 reciprocal >>> 0.8h?Print the receiver's path on aStream (without 'Path' prepended)20182003H(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> -1-1 between: split: aSequenceableCollection indicesDo: aBlock "Perform an action specified as aBlock (with a start and end argument) to each of the indices of aSequenceableCollection that have been identified by taking the receiver as a splitter." "('||' split: 'foo||bar||2')>>>#('foo' 'bar' '2') asOrderedCollection" "(String streamContents: [:s | '||' split: 'foo||bar||2' indicesDo: [ :start :end | s << 's:' << start asString << ' ' << 'e:' << end asString << ' ' ]]) >>> 's:1 e:3 s:6 e:8 s:11 e:11 '" | position oldPosition | position := 1. oldPosition := position. position := aSequenceableCollection indexOfSubCollection: self startingAt: position. [ position > 0 ] whileTrue: [ aBlock value: oldPosition value: position - 1. position := position + self size. oldPosition := position. position := aSequenceableCollection indexOfSubCollection: self startingAt: position. ]. aBlock value: oldPosition value: aSequenceableCollection size5!(111/100 round: 2) >>> (111/100) 730aBc%(AsciiCharset toUppercase: $!) >>> $!41 5111114444('In {1} you can escape \{ by prefixing it with \\' format: {'strings'}) >>> 'In strings you can escape { by prefixing it with \' 1224AAasCamelCase "Convert to CamelCase, i.e, remove spaces, and convert starting lowercase to uppercase." "'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama'" "'Here 123should % be 6 the name6 of the method' asCamelCase >>> 'Here123should%Be6TheName6OfTheMethod'" ^ self species streamContents: [:stream | self substrings do: [:sub | stream nextPutAll: sub capitalized]]2(#(11 22 33) asOrderedCollection atWrap: 5) >>> 22AAnswer a Point with coordinates that are the reciprocals of mine.2.2131.01hello0.01002;'#foo:bar: keywords >>> #('foo:' 'bar:')1508-bit integer expected323.15e:6Return a color with the given r, g, and b components specified as integers in the range [0..r]. This avoids the floating point arithmetic in the red:green:blue: message and is thus a bit faster for certain applications (such as computing a sequence of colors for a palette).PhaRo3Returns whether the receiver contains the argument.pharo* "a" | "b" x "c" | "d" x "e" := "f" 5 "g" := #(1 -2 -4 0) abs >>> #(1 2 4 0)'(#(1 2 3 4 5) select: #even) >>> #(2 4)221:41d10 'h' 23130214(STON fromStream: 'Point[1,2]' readStream) >>> (1@2)7100WePoint[1,/*comment*/2]5:('<1?success:error>' expandMacrosWith: true) >>> 'success'UReturn whether the receiver is composed entirely of digits and has at least one digita := a. [ :a [ :a ]. a := a(1 to:10) size >>> 10 60.080('LOL' detect: #isLowercase ifNone: [$X]) >>> $X0vector0do0Tests-unix-64-NautilusRefactoring-Tests-Test.xml3163333332004-02-29T13:33:00+02:00\Answer the fourth element of the receiver. Raise an error if there are not enough elements.200422abc~(Array streamContents: [:stream| #(11 22 13) withIndexDo: [ :each :i | stream nextPut: (each * each + i)]]) >>> #(122 486 172)12subtractDays: dayCount "((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'" ^ (self asDateAndTime - (dayCount days)) asDate HELLOWORLD1020.09\at: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ self at: firstKey at: secondKey ifAbsent: [ self errorKeyNotFound: secondKey ]e1('aa' compare: 'ab') >>> 1"""E(RubTextEditor new surroundString: 'a' withCharacter: $') >>> '''a'''QmonthIndex "(Date year: 2018 month: 9 day: 28) monthIndex >>> 9" ^ super month2(Tests-unix-64-DebugPoints-Tests-Test.xml5-8c10 <1p>: <2p>[ :a | | a b | ]105f230jAnswer an array of non-empty substrings from the receiver separated by one or more whitespace characters.1004removeAll: aCollection "Remove each element of aCollection from the receiver. If successful for each, answer aCollection. Otherwise create an error notification. ArrayedCollections cannot respond to this message." "(#(10 20 10 30 10) asOrderedCollection removeAll: #(10 10 20); yourself) >>> #(30 10) asOrderedCollection" aCollection == self ifTrue: [^self removeAll]. aCollection do: [:each | self remove: each]. ^ aCollectionone6b#(# ## #ab #10 #. 10)1apharoNote: to be syntactically valid as an executable comment, there should be exactly one single triple > message send, and it should be the last statement.52e100.1b5Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.Color red hue >>> 0.0unzip "Given a collection returns in one pass two collections containing each odd and even elements in respective subcollections" "#(1 2 3 4) unzip first asArray >>> #(1 3)" "#(1 2 3 4) unzip second asArray >>> #(2 4)" | odd even s | s := self size // 2. odd := OrderedCollection new: s. even := OrderedCollection new: s. 1 to: self size do: [ :i | (i \\ 2) = 0 ifTrue: [ even add: (self at: i) ] ifFalse: [ odd add: (self at: i) ] ]. ^ { odd . even }atRandom: aRandom weighting: aBlock "Retrieve an element with a probability related to the weighting block. The block takes an element as argument and provides a positive number as result (the retative weight). An implicit normalization is performed on all weights. Multiple occurences of equal elements multiply the probability to be choosen. Warning: empty collections and negative weights will signal errors." "({'1'. '2'. '3'. '4'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '4'" "({'1'. '1'. '2'. '1'. '1'} atRandom: (Random seed: -42) weighting: [ :each | each asInteger ]) >>> '1'" | sum | self emptyCheck. sum := self sum: aBlock. sum := sum * aRandom next. self do: [ :each | | weight | weight := aBlock value: each. weight < 0 ifTrue: [ self error: 'Unexpected negative weight' ]. sum := sum - weight. sum <= 0 ifTrue: [ ^ each ] ]. self error: 'This should not happen'a100"[ :thisContext | thisContext + 1 ]00102163PReturn true whether the receiver is a class (in a couple class/metaclass sense). Point[1,2]7790oReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.5('*foo#zort' match: 'afoo3zortthenfoo3zort') >>> true0011222344566677888899020<1?success:is error>50fred000111111000444444333500-45 9 \\ 4 >>> 13042(100@200) x >>> 100eAppend the elements of the receiver separating them with the joiner argument and handle the last elment separation using the last argument.010cSet the element at indexFromEnd from the last position. atLast: 1 put: obj, sets the last element9Answers a Dictionary based on collection of Associations.B(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'31304:= 25b8Return the sum (+) of the elements held in the receiver.e(#('abc' 'de' 'fghi') sorted: (#size collatedBy: [:e|e bitAnd: 1]) , #size) >>> #( 'de' 'fghi' 'abc')&(OrderedCollection new add: 42) >>> 4220%1{ #foo : 1 , #bar : 2 }$a isClosePunctuation >>> false17 abddf bcdef0abchAnswer the upper left corner of the rectangle uniquely defined by the receiver and the argument, aPoint.11xz1 max: 2; "e"min: 3rasCommaStringAnd "Return collection printed as 'a, b and c' " "#( 'a' 'b' 'c') asCommaStringAnd >>> 'a, b and c'" "#('a') asCommaStringAnd >>> 'a'" "#() asCommaStringAnd >>> ''" "'foo' asCommaStringAnd >>> 'f, o and o'" "(10 to: 25 by: 5) asCommaStringAnd >>> '10, 15, 20 and 25'" ^String streamContents: [:s | self asStringOn: s delimiter: ', ' last: ' and ']61030011##########020ppp < <<<<>> 0.6747409422235526231estringsc100+Tests-unix-64-Refactoring-UI-Tests-Test.xml120<(RPackage named: 'MockPackage-Tests') isTestPackage >>> true7Return a color from its RGB components (0 - 1.0 floats)003122r00101000 lowBit >>> 4322221410vector0true not >>> false0-1.5r(#(1 1 1 10 10 10 100 100 100) groupsOf: 3 atATimeCollect: [ :x | x ]) >>> #(#(1 1 1) #(10 10 10) #(100 100 100))1indexOfAnyOf: aCollection startingAt: start ifAbsent: exceptionBlock "Answer the index of the first occurrence of any element included in aCollection after start within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock. Note: it is user responsibility to provide aCollection that behaves relatevily fast when asked for includes: (like a Set)" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y c) startingAt: 4 ifAbsent: 7) >>> 7" start to: self size do: [:index | (aCollection includes: (self at: index)) ifTrue: [^ index]]. ^ exceptionBlock value100XXXXXXAnswer an Array whose elements are the elements of the receiver. Implementation note: Cannot use ''Array withAll: self'' as that only works for SequenceableCollections which support the replacement primitive.1Pcount: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Answer the number of elements that answered true." "(#(1 2 3 4) count: [ :each | each even ]) >>> 2" "('Hello, World!' count: #isLowercase) >>> 8" | sum | sum := 0. self do: [ :each | (aBlock value: each) ifTrue: [ sum := sum + 1 ] ]. ^ sum11sort "Sort this collection into ascending order using the '<=' operator." "{8. 5. 3. 9} sort >>> #(3 5 8 9)" "{#a. #b. #z. #d} sort >>> #(a b d z)" self sort: [:a :b | a <= b]1d#Tests-unix-64-Deprecated12-Test.xml1fghi3"Evaluate aBlock for each of the receiver's elements (key/value associations). If any non-association is within, the error is not caught now, but later, when a key or value message is sent to it. The point of this method it to do the *right thing* on Dictionaries and related classes. / arg "Pairwise quotient of two sequenceable collections of the same length." "#(10 20 30) / #(1 3 4.0) >>> {10. (20/3). 7.5}" "{10@20. 30@0} / {1@3. 4.0@1} >>> {(10@(20/3)). (7.5@0)}" ^ arg adaptToCollection: self andSend: #/7810b:23fghi0An executable comment must be in its own comment block (enclosed in double quotes) and can be multi-line for better readability. Code editor hint: you can double click on the inner side of a double quote to select the whole comment block, then Cmd+I to evaluate and inspect the whole executable comment.L(10 to: 25 by: 5) asOrderedCollection >>> #(10 15 20 25) asOrderedCollectione=Return the class of STON lists, Array, a system wide constant41aeiouu XXXXnanoSecond "1 nanoSecond printString >>> '0:00:00:00.000000001'" "(1 milliSecond + 1 nanoSecond) printString >>> '0:00:00:00.001000001'" ^ self nanoSeconds/newFrom: aCollection "Answer an instance of me containing the same elements as aCollection." "(Set newFrom: {1. 2. 3}) >>> #( 1 2 3) asSet" "({1. 2. 3} as: Set) >>> #( 1 2 3) asSet" | newCollection | newCollection := self new: aCollection size. newCollection addAll: aCollection. ^ newCollection0.6675(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 625603d0vector0word before index10WReturn true if all my elements are close to the elements of same index of the parameter5foo: Object ^ Object + 1.Tests-unix-64-System-Installers-Tests-Test.xml23922 -3foo < bar: 1 1 > (#() select: [true]) >>> #()pairsCollect: aBlock "Evaluate aBlock with my elements taken two at a time, and return an Array with the results" "(#(1 'fred' 2 'charlie' 3 'elmer') pairsCollect: [:a :b | b, ' is number ', a printString]) >>> #('fred is number 1' 'charlie is number 2' 'elmer is number 3')" ^ (1 to: self size // 2) collect: [ :index | aBlock value: (self at: 2 * index - 1) value: (self at: 2 * index) ]| TTTTT | ttttt n. ^ ttttt31 Hello, World!15 factorial >>> 1206555 106660077708 AAA02C#(10 20 10) asOrderedCollection removeAll >>> OrderedCollection new333{ 12>> false" "(#(2 4) allSatisfy: [ :each | each even ]) >>> true" "('hello' allSatisfy: #isLetter) >>> true" "('hello!' allSatisfy: #isLetter) >>> false" "((3 to: 8 by: 2) allSatisfy: #isPrime) >>> true" "((3 to: 9 by: 2) allSatisfy: #isPrime) >>> false" "(#() allSatisfy: [false]) >>> true" self do: [ :each | (aBlock value: each) ifFalse: [ ^ false ] ]. ^ truecadd: newObject withOccurrences: anInteger "Add newObject anInteger times to the receiver. Answer newObject." "({10. 20} asOrderedCollection add: 30 withOccurrences: 2) >>> 30" "({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollection" anInteger timesRepeat: [ self add: newObject ]. ^ newObject4a := a. [ :a | a ]. a := a2a11 goodby: my: 2b90d+#(1 2 3) asOrderedCollection capacity >>> 31. Test package ends with suffix -Tests. Suffix is case sensitive. 2. Or test package contains '-Tests-' in middle. Some examples: 0b33*('hello!' allSatisfy: #isLetter) >>> false5aXXb230d34141TheRollingStones1Xsuuu That is true!abc3.0s5fifth "Answer the fifth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h ) fifth >>> #e" ^ self at: 54224Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated iusing aSortFunction.11023sReturn the index of my first element for which aBlock evaluates as true. If no matching element is found, return 064Return a String based on concatenation of positiveNumberString with prefix then padded by 0 is zeroFlag is set for a minimum length.01 between: 00355544666010:(100000000 printShowingDecimalPlaces: 1) >>> '100000000.0'66;11205cmonth "(Date year: 2018 month: 9 day: 28) month printString >>> 'September 2018'" ^ self asMonth101000#(#[1 2 0 4] booleanAt: 2) >>> true.131032#hello. #world 'h' 2d 12r89ab cde includes:/Answer how many elements the receiver contains. 001000223*('salkjsdlkgfeesd' findString: 'sd') >>> 6d~(OrderedDictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (OrderedDictionary new at: #x put: 3; at: #y put: 6 ;yourself)0s:1 e:5 s:7 e:8 s:10 e:13 41042 MockPackagesumNumbers "This is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. The receiver should include only numbers. Different from the sum implementation, the default value is zero. While sum is more general, sumNumbers is meant to support the most often encountered use case of dealing with numbers." "#(1 2 4) sumNumbers >>> 7" "#() sumNumbers >>> 0" ^ self inject: 0 into: [ :sum :each | sum + each ]oneKPairwise integer modulo of two sequenceable collections of the same length.25625zpharo ||X u41(Character euro isCurrencySymbol >>> truexazRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimalc(#(1.9283901234902349 2.302949083493849) closeTo: #(1.9283901234902348 2.302949083493899)) >>> trueyx isSymbol: 33EMight be compiled inline for speed, see RBMessageNode>>#isInlineIfNilbarBEvaluate the given block, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its receiver in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: (myProtocol ifEmpty: [ Protocol unclassified ])AAnswer whether the tail end of the receiver is the same as suffix> aString "Answer whether the receiver sorts after aString. The collation order is simple ascii (with case differences)." " 'def' > 'abc' >>> true" " 'def' > 'def' >>> false" " 'abc' > 'def' >>> false" ^ (self compare: self with: aString) > 0a13d(String streamContents: [:s | 10 print: '10' on: s prefix: 'zz' length: 4 padded: true] ) >>> 'zz10'3131 decimalDigitLength >>> 123/ "a" foo: "b" x "c" bar: "d" y "e" ^ "f" x "g" 1atAll: aCollection put: anObject "Put anObject at every index specified by the elements of aCollection." "({#x .#y .#z} atAll: #(1 3) put: #e; yourself) >>> #(e y e)" aCollection do: [:index | self at: index put: anObject]. ^ anObject { 1 }. { 2 }Return the receiver as a string with the adequate file size identified, e.g. '50 KB'. The difference with humanReadableByteSISizeString is that the current one counts by 1024 and not 1000. Xuuuuu n(But use collect: or collect:as: instead!0 ; foo*baz3301/('word before index' wordBefore: 16) >>> 'inde'Answer the number of indexable fields in the receiver. This value is the same as the largest legal subscript. Included so that a SmallInteger can behave like a LargePositiveInteger or LargeNegativeInteger.673Special case of exponent=1p(Array streamContents: [:stream | #(10 20 30 40) from: 2 to: 3 do: [:each | stream nextPut: each]]) >>> #(20 30)0-Tests-unix-64-System-Benchmark-Tests-Test.xml61toverlappingPairsWithIndexDo: aBlock "Emit overlapping pairs of my elements into aBlock, along with an index." "(Array streamContents: [:stream | #(10 20 30 40) overlappingPairsWithIndexDo: [:first :second :index| stream nextPut: (first + second + index)]]) >>> #(31 52 73)" 1 to: self size - 1 do: [:i | aBlock value: (self at: i) value: (self at: i + 1) value: i ]22a2Add the argument, newObject, as an element of the receiver. Put it in the sequence just preceding oldObject. Answer newObject.+Character arrowDown isControlOther >>> true40vector0301Ymodulo. Remainder defined in terms of //. Answer a Number with the same sign as aNumber./#( #':=' aa: #= #':=' #= bb: #'==' #cc: #'==' )(1 digitAt: 2 base: 10) >>> 071453H' this string will be trimmed ' trim >>> 'this string will be trimmed'0-10 hex >>> '-16rA'L writes the N-th argument using #printString, but without trancating it.#( )5pcloseTo: aPoint "Return whether the receiver is close to the argument aPoint. The precision for point holding floats is defined by Float >> #closeTo:precision:. For points holding integer, closeTo: corresponds to equalsTo:" "((100@200) closeTo: (100@200)) >>> true" "((100@201) closeTo: (100@200)) >>> false" ^ (x closeTo: aPoint x) and: [ y closeTo: aPoint y ]defThat is false!-(#(10 20 30) includesAny: #(50 40)) >>> false2(gggggggggggggggggg sssssss '''''''''''''asNewArray "Like asArray: but return a copy if self is already an Array. This ensures that the result is always a new Array" "'foo' asNewArray >>> 'foo' asArray" "|a| a := #(1 2 3). a asNewArray == a >>> false" ^ self asArraygd922foo1032whateverjoin: aSequenceableCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'" ^ (Array with: self) join: aSequenceableCollection'2N' initialIntegerOrNil >>> 26 slowFactorial >>> 72096'{1. 2} asBag = {2. 1} asBag >>> true016mozofalse := false n uuuuuu asByteArray "Convert to a ByteArray with the ascii values of the string." "'a' asByteArray >>> #[97]" "'A' asByteArray >>> #[65]" "'ABA' asByteArray >>> #[65 66 65]" | b | b := ByteArray new: self byteSize. 1 to: self size * 4 do: [:i | b at: i put: (self byteAt: i)]. ^ b101002/Answer how many elements the receiver contains.43xz1c2018I(#('do' 'la' 'si' 'do' 'la') copyWithoutDuplicates) >>> #('la' 'do' 'si')%('pharo' endsWith: 'phuro') >>> false-42B(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'?(#(1 2 3 4 5) select: #even thenCollect: #negated) >>> #(-2 -4)+surroundedBy: aString "Answer the receiver with leading and trailing aString." "('hello' surroundedBy: 'abd') >>> 'abdhelloabd'" "('hello' surroundedBy: ' abd ') >>> ' abd hello abd '" ^ self species streamContents: [ :s| s nextPutAll: aString. s nextPutAll: self. s nextPutAll: aString ]1 zipped "Return a ByteArray containing a GZIP compressed version of the receiver" "#[ 1 2 3 ] zipped >>> #[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0]" ^ ByteArray streamContents: [ :out | (GZipWriteStream on: out) nextPutAll: self; close ]110XX X n X22152197Answer a Point that is the sum of the receiver and arg.3(1)22222220000111111bar:22an OrderedDictionary(true->#(1 3 5) false->#(2 4))112'Return collection printed as 'a, b, c' 0223.00 "a" ^ "b" 5 "c" 11e4bJust like with:collect: except that the iteration index supplies the second argument to the block.100%((0@0) sideOf: (100@100)) >>> #center[:a|||a]1(1 sign: 2);bar2a28-421-3.143230Answer the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds.2zacombinations "Return all the combinations of elements of the receiver. Note that combinations does not include the empty element contrary to the mathematical definition of combinations." "#(1 2 3 4) combinations >>> #(#(1) #(2) #(3) #(4) #(1 2) #(1 3) #(1 4) #(2 3) #(2 4) #(3 4) #(1 2 3) #(1 2 4) #(1 3 4) #(2 3 4) #(1 2 3 4))" ^ Array streamContents: [ :stream | 1 to: self size do: [ :take | self combinations: take atATimeDo: [ :combination | stream nextPut: combination copy ] ] ]false ==> [false] >>> true', otherCollection "Concatenate two Strings or Collections." "#(2 4 6 8) , #(who do we appreciate) >>> #(2 4 6 8 who do we appreciate)" "((2989 storeStringBase: 16) copyFrom: 4 to: 6) , ' boy!' >>> 'BAD boy!'" ^ self copyReplaceFrom: self size + 1 to: self size with: otherCollectionSParse and materialize the STON representation in string, skipping C-style comments230b111([:x | x + 12] cull: 3)>>> 157Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver, only those elements for which aBlock evaluates to true. Answer the new collection. | | . :a | 102('abddf bcdef' indexOf: $a startingAt: 100 ) >>> 040.03Tests-unix-64-Spec2-Adapters-Morphic-Tests-Test.xml312Repeatedly value aBlock with a single Array. Adjust the collection so that aBlock is presented all (self size raisedTo: anInteger) possible combinations of the receiver's elements taken as digits of an anInteger long number.findBinaryIndex: aBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error." "(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ]) >>> 5" ^ self findBinaryIndex: aBlock do: [ :found | found ] ifNone: [ self errorNotFound: aBlock ]3102 + 2#( #[ 0 1000 2 ] )FFFFFF242R(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)3(true and: [ false ]) >>> false02$Do the special case of integer powerone[ ]"(10 printStringBase: 2) >>> '1010'asColorref "Convert the receiver into a colorref, i.e, a number embedding r,g,b on 24 bits" "(Color red asColorref) >>> 255" "(Color white asColorref) >>> 16777215" ^(self red * 255) asInteger + ((self green * 255) asInteger << 8) + ((self blue * 255) asInteger << 16)309230iReturn the stop element of an interval. Pay attention this is not necessary the same as the last element.bMockPackage-Tests-Package5{5@0. -3@8. 0@ -1.} sign >>> {(1@0). (-1@1). (0@ -1)}0Tests-unix-64-Collections-Streams-Tests-Test.xml3findBinary: aBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, raise an error." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 11 - arg ]) >>> 11 " ^ self findBinary: aBlock do: [ :found | found ] ifNone: [ self errorNotFound: aBlock ]2100060p(Dictionary newFromKeys: #(#x #y) andValues: #(3 6)) >>> (Dictionary new at: #x put: 3; at: #y put: 6 ;yourself)3.151((4 to: 50 by: 2) anySatisfy: #isPrime) >>> false1jIf the receiver is true (i.e., the condition is true), then answer the value of the argument trueAlternativeBlock. If the receiver is false, answer the result of evaluating the argument falseAlternativeBlock. If the receiver is a nonBoolean then create an error notification. Execution does not actually reach here because the expression is compiled in-line.101let us make seperate strings5 abdhelloabd97(Tests-unix-64-Zinc-Zodiac-Tests-Test.xmlaNumber cannot be negative373064sasMutator "Return a setter message from a getter message. Return self if it is already a setter. Pay attention the implementation should be improved to return valid selector." "#name asMutator >>> #name:" "#name: asMutator >>> #name:" "#_ asMutator >>> #_:" "#foo:: asMutator >>> #'foo::'" self endsWithAColon ifTrue:[ ^ self ]. ^ (self copyWith: $:) asSymbol016rDFaeioucc, 44(10 min: 20 max: 5) >>> 10indexOfAnyOf: aCollection ifAbsent: exceptionBlock "Answer the index of the first occurrence of any element included in aCollection within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b c d e) indexOfAnyOf: #(x y c) ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfAnyOf: #(x y z) ifAbsent: 7) >>> 7" ^self indexOfAnyOf: aCollection startingAt: 1 ifAbsent: exceptionBlockG({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)'atWrap: index put: value "Store value into the index'th element of the receiver. If index is out of bounds, let it wrap around from the end to the beginning until it is in bounds. Answer value." "(#(11 22 33) asOrderedCollection atWrap: 2 put: 0; yourself) >>> #(11 0 33) asOrderedCollection" "(#(11 22 33) asOrderedCollection atWrap: 4 put: 0; yourself) >>> #(0 22 33) asOrderedCollection" "(#(11 22 33) asOrderedCollection atWrap: 6 put: 0; yourself) >>> #(11 22 0) asOrderedCollection" ^ self at: index - 1 \\ self size + 1 put: valuefirst: n "Answer the first n elements of the receiver. Raise an error if there are not enough elements." "(#(a b c d e f g h ) first: 3) >>> #(a b c)" ^ self copyFrom: 1 to: n#{ 2. 1+1 } asIdentitySet size >>> 11 00002222222F(#(1 2 3 4) collect: [:each | each + 10] from: 2 to: 3) >>> #(12 13) 1300460077900AEEEC"'3.1415' initialIntegerOrNil >>> 310 hexString >>> '16rA'1122311004005567%(-3.1479 roundDownTo: 0.01) >>> -3.1596Tests-unix-64-Transcript-NonInteractive-Tests-Test.xml hello: de3d(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5) f, o and o33, 42#(a b c d e) size >>> 5(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)uonNextMonth "(Date year: 2018 month: 9 day: 28) onNextMonth printString >>> '28 October 2018'" ^ self addMonths: 1312101(false xor: [false]) >>> false[ :a | Answer some indication of how alike the receiver is to the argument, 0 is no match, twice aString size is best score (but see example with 7). Case is ignored. This method is used to help find mistyped variable names in methods. abc2Return a new empty collection based on the species43333411>('Pharo is really super cool' contractTo: 10) >>> 'Phar...ool'/Tests-unix-64-Reflectivity-Tools-Tests-Test.xmlcAnswer whether the receiver begins with the given prefix string. The comparison is case-sensitive.0:00:00:00.0011\Format the receiver by interpolating elements from collection, as in the following examples:31 0 :B |X b X XstoreStringBase: base "Returns a string representation of the receiver in base 16 in a way that executing it will return the receiver." "(10 storeStringBase: 16) >>> '16rA'" "(10 storeStringBase: 10) >>> '10'" ^ String streamContents: [:strm | self storeOn: strm base: base]200groupedBy: aBlock "Answer a dictionary whose keys are the result of evaluating aBlock for all my elements, and the value for each key is the selection of my elements that evaluated to that key. Uses species." "(#(1 2 3 4 5) groupedBy: [ :v | v odd ]) asString >>> 'an OrderedDictionary(true->#(1 3 5) false->#(2 4))'" | groups | groups := OrderedDictionary new. self do: [ :each | (groups at: (aBlock value: each) ifAbsentPut: [ OrderedCollection new ]) add: each ]. self species ~~ OrderedCollection ifTrue: [ groups associationsDo: [ :association | association value: (self species withAll: association value) ]]. ^ groups6n"""uuuu uuuuu uuu uuuu"""uuuuu"""uuuuuuuuuuu"""830c1 1'PhaRo' asLowercase >>> 'pharo'3202350c41Answer a comparison code telling how the receiver sorts relative to aString: 1 - before 2 - equal 3 - after. The collation sequence is ascii with case differences ignored. To get the effect of a <= b, but ignoring case, use (a compare: b) <= 2.alselect: aBlock "Evaluate aBlock with each of the receiver's elements as the argument. Collect into a new collection like the receiver, only those elements for which aBlock evaluates to true. Answer the new collection." "(#(1 2 3 4 5) select: #even) >>> #(2 4)" "({1@2. 6@3. 2@ -1.} select: [:e| e x > e y]) >>> {(6@3). (2@ -1)}" "('heLlo wOrLd' select: #isUppercase) >>> 'LOL'" "((1 to: 10) select: #isPrime) >>> #(2 3 5 7)" "(#() select: [true]) >>> #()" | newCollection | newCollection := self copyEmpty. self do: [ :each | (aBlock value: each) ifTrue: [ newCollection add: each ] ]. ^ newCollectionctoJsonString: object "Return a String with the JSON serialization of object. Note that the object graph can only contain lists (Array) and maps (Dictionary)" "(STON toJsonString: { { #foo->1 } asDictionary. { #bar->2 } asDictionary }) >>> '[{""foo"":1},{""bar"":2}]'" ^ String streamContents: [ :stream | self put: object asJsonOnStream: stream ]0hello0phuro9({10. 20} asOrderedCollection addIfNotPresent: 30) >>> 30hello3a2hello1(1 hour + 2 minutes) printString >>> '0:01:02:00'122:Tests-unix-64-SystemCommands-MethodCommands-Tests-Test.xml381000mobazo100$1 isDigit >>> true3640,('s' charactersExactlyMatching: 'abc') >>> 010519(#(10 20 30 40 50) findLast: [ :each | each > 10 ]) >>> 5:return myself or a copy shortened by ellipsis to smallSize1 }a07de37332r111014zRound the decimal part of the receiver to be limited to the number of wished decimal. Only leave a fixed amount of decimal(#(11 22 33) atWrap: 4) >>> 112K(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 321 foo. 26132.302949083493899#((())) size >>> 1^This is implemented using a variant of the normal inject:into: pattern. The reason for this is that it is not known whether we're in the normal number line, i.e. whether 0 is a good initial value for the sum. Consider a collection of measurement objects, 0 would be the unitless value and would not be appropriate to add with the unit-ed objects. a->b->c->dworldfromCharacter: aCharacter ifNone: aBlock "For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)" "(KeyboardKey fromCharacter: $a) >>> KeyboardKey A" ^ self keyFromCharacterTable at: aCharacter ifAbsent: [ self named: aCharacter asString asUppercase ifNone: aBlock ]01.0First N/2 ... last N/2"('action' alike: 'actions') >>> 7.1'('hello' union: 'world') >>> 'whlorde' 00 01is"(true or: [Error signal]) >>> true30Tests-unix-64-NumericInterpolator-Tests-Test.xml10^({ 1. 2. 3 } as: OrderedCollection) >>> (OrderedCollection new add: 1; add:2; add:3; yourself)0vector013a0.91984359726295217reverseWithIndexDo: elementAndIndexBlock "Just like reverseWith:do: except that the iteration index supplies the second argument to the block." "(Array streamContents: [:stream | #(10 20 30) reverseWithIndexDo: [:each :index | stream nextPut: each + index]]) >>> #(33 22 11)" self size to: 1 by: -1 do: [:index | elementAndIndexBlock value: (self at: index) value: index]3#$( isConnectorPunctuation >>> false3-11Name already defined013LOLP((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'+Tests-unix-64-EpiceaBrowsers-Tests-Test.xmlAnswer the y coordinate.19422e1000a000 #[ 1 ) 2 ]205X([:c| c isSeparator] split: 'aa bb cc dd')>>> #('aa' 'bb' 'cc' 'dd') asOrderedCollection0:00:00:00.002101.07 GB #(foo bar)202 hello: 2201 ppp | TTT | ttt n . ^ ttt . 9('pharo' beginsWith: 'Pha' caseSensitive: false) >>> true16z [ 1 ). 2 ]Return a setter message from a getter message. Return self if it is already a setter. Pay attention the implementation should be improved to return valid selector.(1/3 round: 2) >>> (33/100) 4'Return whether the receiver is a digit.#hello431C('aeiou' findFirstInByteString: 'hello world' startingAt: 9) >>> 0.true & false >>> falseS(#(1 2 3 4) overlappingPairsCollect: [:first :second| first + second]) >>> #(3 5 7)7010201xbar230"a" #( "b" 1 "c" two "d" ( "e" 3 "f" ) "g" ) "h"2-1022Answer whether the receiver can be represented as a byte string. This is different from asking whether the receiver *is* a ByteString (i.e., #isByteString)0We12730a2r171000XReturn the middle element, or as close as we can get. The collection must not be empty.#( #[ 0 1 2 ] )hello1!Character lf isSeparator >>> true30|| u10311K(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 7 0:00:02:003SprintStringHex "$A printStringHex >>> '41'" ^ self asInteger printStringBase: 16 | | . - 1110042XifNil: nilBlock ifNotNil: ifNotNilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42" "(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6" ^ nilBlock value020 15NReturn the class of the couple class/metaclass. Useful to avoid explicit test.Point instanceSide >>> Point*streamContents: blockWithArg "Build an instance of the receiver by writing elements to a stream. More specifically: blockWithArg will be given a WriteStream on an instance of the receiver. Inside blockWithArg you write elements to the stream to build up the collection. At the end, the contents of the stream up to that point will be returned. Note that the underlying collection grows as needed." "(Array streamContents: [ :out | out nextPut: 1; nextPutAll: #(2 3 4); nextPut: 5 ]) >>> #(1 2 3 4 5)" ^ self new: 100 streamContents: blockWithArgollhe031For backwards compatibility mainly. Return the key that should correspond to some character. Handle normal ascii characters and special control keys only (enter, tab space...)s:10600dThis statement is true!0vector0world#(^1)1| T | 0 ^ t 0. t nn hello world22801iAnswer the lower right corner of the rectangle uniquely defined by the receiver and the argument, aPoint.0/(23.4567 printShowingDecimalPlaces: 0) >>> '23' instVarWrites v1 := 4. v2 := 25(#(1 2 3 4) reject: [:each | each = 3 ]) >>> #(1 2 4)::zz(nil)1192304101abc 1 sign ; bar2l({10. 20} asOrderedCollection add: 30 withOccurrences: 2; yourself) >>> {10. 20. 30. 30} asOrderedCollection3\Return element at indexFromEnd from the last position. atLast: 1, returns the last element22111Uor: alternativeBlock "Nonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument." "(true or: [Error signal]) >>> true" "(true or: [false]) >>> true" "(false or: [true]) >>> true" "(false or: [3]) >>> 3" self subclassResponsibility65aIf I am involved in arithmetic with another Collection, return a Collection of the results of each element combined with the scalar in that expression. Is used to implement Collection>>+, Collection>>-, etc.#+ keywordsStrict >>> #()a1200011111000444443335001#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' )QfindBinary: aBlock ifNone: exceptionBlock "Search for an element in the receiver using binary search. The argument aBlock is a one-element block returning 0 - if the element is the one searched for <0 - if the search should continue in the first half >0 - if the search should continue in the second half If no matching element is found, evaluate exceptionBlock, with the 'bounding' elements as optional arguments." "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: ['Not found']) >>> 'Not found'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 24 - arg ] ifNone: [:a :b | 'over ', a printString]) >>> 'over 23'" "(#(1 3 5 7 11 15 23) findBinary: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(23 nil)'" ^ self findBinary: aBlock do: [ :found | found ] ifNone: exceptionBlock4-471'('ab ab ac de' howManyMatch: 'z') >>> 0Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock.w50F(1 milliSecond + 2 nanoSeconds) printString >>> '0:00:00:00.001000002' -9 % 4 >>> 320240.0listClass "Return the class of STON lists, Array, a system wide constant" "(STON fromString: '[1 , 2 , 3]') class >>> STON listClass" ^ Array001024%{1@50. 10@ -10. 5@5} range >>> (9@60)$(#(a b a d a) lastIndexOf: #a) >>> 530 0001002000400ninth "Answer the ninth element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) ninth >>> #i" ^ self at: 934yhex "Returns a string representation of the receiver as hex, prefixed with 16r. DO NOT CHANGE THIS! The Cog VMMaker depends on this." "Consider using any of printStringHex printStringBase: 16 printStringBase: 16 length: 8 padded: true storeStringHex storeStringBase: 16 storeStringBase: 16 length: 11 padded: true" "12 hex >>> '16rC'" "10 hex >>> '16rA'" "-10 hex >>> '-16rA'" ^ self storeStringBase: 16hop11 0b #(a b z d) sorted >>> #(a b d z)41one-323U(#(1 2 3) collect: [:each | each + 10 ] thenReject: [:each | each even]) >>> #(11 13)/foo/gloops.taz11|generator| generator := Generator onDo: [ :doBody | Integer primesUpTo: 10000000 do: doBody ]. (generator next: 5) asArray >>> #(2 3 5 7 11)22X((Date year: 2018 month: 9 day: 28) subtractDays: 1) printString >>> '27 September 2018'20-1416dasSortFunction "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')" ^PropertySortFunction property: selfme0"Character space tokenish >>> false18-5removeDuplicates "Remove the copies of elements, but keep the same order" "#(7 42 7 42 9) asOrderedCollection removeDuplicates asArray >>> #(7 42 9)" "#(1 2 3) asOrderedCollection removeDuplicates asArray >>> #(1 2 3)" | iterator seen | self ifEmpty: [ ^ self ]. iterator := 1. seen := Set new. [ iterator <= self size ] whileTrue: [ | each | each := self at: iterator. (seen includes: each) ifTrue: [ self removeAt: iterator ] ifFalse: [ seen add: each. iterator := iterator + 1. ]. ](Tests-unix-64-ClassParser-Tests-Test.xml10vector010817pharoab10bstring3012110000233333334-2RCount the number of characters in a substring that matches up in self and aString.3yb^ @:Answer whether anObject is one of the receiver's elements.03 1000000004121true & false >>> false60:B|||b0pLike asArray: but return a copy if self is already an Array. This ensures that the result is always a new ArrayCodeError signal: 'false error'4-46Undeclared variable | | . :. :a0XX n11d400100allRangesOfSubstring: aSubstring "('Ab cd ef Ab cd' allRangesOfSubstring: 'cd') >>> {(4 to: 5). (13 to: 14)}" "('Ab cd ef Ab cd' allRangesOfSubstring: 'zz') >>> #()" ^ Array streamContents: [:s | | start subSize | start := 1. subSize := aSubstring size. [start isZero] whileFalse: [ start := self findString: aSubstring startingAt: start. start > 0 ifTrue: [s nextPut: (start to: start + subSize - 1). start := start + subSize]]]1<(RPackage named: 'MockPackage-tests') isTestPackage >>> true30.0]Answer the last n elements of the receiver. Raise an error if there are not enough elements.130#(3.1479 truncateTo: 0.01) >>> 3.141Tests-unix-64-NewTools-FileBrowser-Tests-Test.xmlwithIndexSelect: elementAndIndexBlock "select elements from the receiver that the block evaluates true with the element and its index." "(#('We' 'love' 'pharo!') withIndexSelect: [:value :index | value size - 1 <= index]) >>> #('We')" ^ self class new: self size streamContents: [ :stream | 1 to: self size do: [ :index | | each | (elementAndIndexBlock value: (each := self at: index) value: index) ifTrue: [ stream nextPut: each ] ] ]4qselectEveryFirst "#(1 2 3 4) selectEveryFirst asArray >>> #(1 3) " ^ self selectEvery: [ :i | (i+1 \\ 2) = 0 ]variable expected in assigment131 Pharoiscoolfalse | false >>> false16FTests-unix-64-Calypso-SystemPlugins-Deprecation-Queries-Tests-Test.xml[ | ]That is false!201512/2 milliSeconds printString >>> '0:00:00:00.002' 2r-001010003isFinalQuote "Return whether the receiver is https://www.compart.com/en/unicode/category/Pf" "$' isFinalQuote >>> false" ^ self characterSet isFinalQuote: selfea1c101s&(#() intersection: #(1 2 3 4)) >>> #()join: aSequenceableCollection "Append the elements of the argument, aSequenceableCollection, separating them by the receiver." "(Character space join: #('Pharo' 'is' 'cool')) >>> 'Pharo is cool'" ^ self asString join: aSequenceableCollectionbaeiou3 $abc'a' asInteger >>> nil1016rC>> 'zk cd zk ef zk'" | idx | self = oldSubstring ifTrue: [ ^ newSubstring copy ]. oldSubstring isEmpty ifTrue: [ ^ self copy ]. idx := 1. ^ self species new: self size streamContents: [ :stream | | foundIdx | [ (foundIdx := self findString: oldSubstring startingAt: idx) isZero ] whileFalse: [ stream next: (foundIdx - idx) putAll: self startingAt: idx; nextPutAll: newSubstring. idx := foundIdx + oldSubstring size ]. idx <= self size ifTrue: [ stream next: (self size - idx + 1) putAll: self startingAt: idx ] ]12weekday "Answer the name of the day of the week on which the receiver falls." "(Date year: 2018 month: 9 day: 28) weekday >>> #Friday" ^ self dayOfWeekNameoops-109Answer whether the receiver is an unary message selector. and 30 hex >>> '16r1E'2009(#(xa xc xz xb xy) isSortedBy: #last ascending) >>> false0ppp ^ 0 :B | 1 :B | b 1 ssssss nn s b 0 ssssss n101endsWithAColon "Answer whether the final character of the receiver is a colon" "'displayStringOn:' endsWithAColon >>> true" "'displayStringOn:foo' endsWithAColon >>> false" ^ self notEmpty and: [ self last == $: ]nprintPathOn: aStream "Print the receiver's path on aStream (without 'Path' prepended) using the default delimiter" "(String streamContents: [ :str| ((FileSystem workingDirectory / 'book-result' / 'W01-Welcome') relativeToReference: FileSystem workingDirectory) printPathOn: str]) >>> 'book-result/W01-Welcome'" self printPathOn: aStream delimiter: self delimiter06(#(1 2 3 4 5) reduce: [ :a :b :c | a + b + c ]) >>> 15XX XX # X # X X11C(#(1 2 3 4 5) reject: #even thenCollect: [:x|x*10]) >>> #(10 30 50)4#( #( ) #'.' #':' #';' #'[' #']' #'{' #'}' #'^' #a )85W('a000' asWideString ~= (ByteArray with: 97 with: 0 with: 0 with: 0) asString) >>> true a := 10. ^ aNcopyReplaceTokens: oldSubstring with: newSubstring "Replace all occurrences of oldSubstring that are surrounded by non-alphanumeric characters" "('File asFile Files File''s File' copyReplaceTokens: 'File' with: 'Snick') >>> 'Snick asFile Files Snick''s Snick'" ^ self copyReplaceAll: oldSubstring with: newSubstring asTokens: true{{}} isEmpty >>> false0 0BReturns a copy of the string doubling all occurence of aCharacter.00011121314110012244430ztrue asInteger >>> 11001000 between:and:(100@200) y >>> 2002Nonevaluating disjunction. If the receiver is false, answer the value of the argument, alternativeBlock; otherwise answer true without evaluating the argument.| TTTT | tttt n. ^ tttt1000 0231$$X$(Character pageUp isControlOther >>> trueNot valid for negative integers#but use sum or inject:into: instead1116rA10rNonevaluating conjunction. Answer the opposite of the the argument, alternativeBlock; since the receiver is true.GEmit overlapping pairs of my elements into aBlock, along with an index.4(10 to: 25 by: 5) asCommaString >>> '10, 15, 20, 25'LRemove each element from the receiver and leave it empty. ArrayedCollections cannot respond to this message. There are two good reasons why a subclass should override this message: 1) the subclass does not support being modified while being iterated 2) the subclass provides a much faster way than iterating through each element1[Store the elements of valueArray into the slots of this collection selected by indexArray.@|s| s:=0. #(11 22 33) select: #odd thenDo: [:x|s:=s+x]. s >>> 44C(DateAndTime fromString: '2004-02-29T13:33:00+02:00') minute >>> 3311554511darkerhelloS(Date year: 2018 month: 9 day: 28) onPreviousMonth printString >>> '28 August 2018'JResults are not defined for base smaller than 2 and non-integer arguments.''foo' asCommaStringAnd >>> 'f, o and o'4Convert me to a float point transforming both of my coordinates to floats using #asFloat. If x and y are already represented by floats return myself, otherwise create a new Point instance.S(#(2r101 2r11 2r1000) inject: 0 into: [ :acc :each | acc bitXor: each ]) >>> 2r11100vector0thisContext := thisContext"('*baz*' match: 'mobazo') >>> true1atAll: indexArray "Answer a new collection like the receiver which contains all elements of the receiver at the indices of indexArray." "(#('one' 'two' 'three' 'four') atAll: #(3 2 4)) >>> #('three' 'two' 'four')" | newCollection | newCollection := self species ofSize: indexArray size. 1 to: indexArray size do: [:index | newCollection at: index put: (self at: (indexArray at: index))]. ^ newCollection1 | TTTTTT | tttttt n. ^ tttttt1332"0000011111111111033555555555554446E([:x :y :z | x + y + z] valueWithPossibleArgs: #( 13 12 15)) >>> 40 ifNotNil: aBlock "If the receiver is not nil, pass it as argument to the block." "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(2 ifNotNil: [ :o | o + 3]) >>> 5" "(nil ifNotNil: [:o | o +3 ]) >>> nil" ^ self,remove the initial and final quote marks (single quote for string, or double quotes for comments), if present (and if matches nesting quotes). Have a look at testWithoutQuoting. If you want to remove single/double quotes not in first and last positions of the strings, have a look at copyWithout: $' wat: firstKey at: secondKey ifAbsent: aZeroArgBlock "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey. Execute aZeroArgBlock in case one of the key is wrong." " (OrderedDictionary new at: #top at: #below1 ifAbsent: [ 1 ]) >>> 1 " ^ dictionary at: firstKey at: secondKey ifAbsent: aZeroArgBlock C('aeiou' findFirstInByteString: 'hello world' startingAt: 3) >>> 5.2;atPin: index "Return the index'th element of me if possible. Return the first or last element if index is out of bounds." "(#(w x y z) atPin: 2) >>> #x" "(#(w x y z) atPin: 4) >>> #z" "(#(w x y z) atPin: 8) >>> #z" index < 1 ifTrue: [^ self first]. index > self size ifTrue: [^ self last]. ^ self at: index1223\Answer the eighth element of the receiver. Raise an error if there are not enough elements.12011d-100#n001(100@200) floor >>> (100@200)d3BoccurrencesOf: anObject "Answer how many of the receiver's elements are equal to anObject." "(#(10 20 10 30) occurrencesOf: 10) >>> 2" "('hello world' occurrencesOf: $l) >>> 3" "('hello world' occurrencesOf: 10) >>> 0" | tally | tally := 0. self do: [:each | anObject = each ifTrue: [tally := tally + 1]]. ^tally102-14oReturns a string representation of the receiver in base 16 in a way that executing it will return the receiver.if it is to be it is up to me20MReturn whether the receiver is https://www.compart.com/en/unicode/category/Pf1104.0YmakeRoomAtFirst "Make some empty slots at the front of the array. If we have more than 50% free space, then just move the elements, so that the first 50% of the slots are free, otherwise add new free slots to the front by growing. Precondition: firstIndex = 1" "#(1 2 3) asOrderedCollection capacity >>> 3" "#(1 2 3) asOrderedCollection makeRoomAtFirst capacity >>> 6" | tally newFirstIndex newLastIndex | tally := self size. tally * 2 >= array size ifTrue: [ ^self growAtFirst ]. tally = 0 ifTrue: [ ^self resetTo: array size + 1 ]. newFirstIndex := array size // 2 + 1. newLastIndex := newFirstIndex - firstIndex + lastIndex. 0 to: tally - 1 do: [ :offset | array at: newLastIndex - offset put: (array at: lastIndex - offset) ]. array from: firstIndex to: newFirstIndex - 1 put: nil. firstIndex := newFirstIndex. lastIndex := newLastIndex0 3 even >>> falsed*baz*3-6[1)2]11524-3sort: aSortBlock "Sort this array using aSortBlock. The block should take two arguments and return true if the first element should preceed the second one." "({3. 9. 1} sort: [:a :b | a <= b ]) >>> #(1 3 9)" "({3. 9. 1} sort: [:a :b | a >= b ]) >>> #(9 3 1)" "({#xa. #xc. #xz. #xb. #xy} sort: #last ascending) >>> #(xa xb xc xy xz)" self mergeSortFrom: 1 to: self size by: aSortBlockworldPharoa2423245440Tests-unix-64-System-Finalization-Tests-Test.xml12011301"('pharo' endsWith: 'aro') >>> trueLOL4v1: anObject v1 := anObjectfghi"#(a b c d e f g h ) eighth >>> #h1 + 2 ]book-result/W01-Welcome10.67474094222355261J#(1 2 2 3 1 1 1) asBag cumulativeCounts >>> {57.1->1 . 85.7->2 . 100.0->3}115(false ifTrue: [ 'This statement is true!' ]) >>> nil"$_ isConnectorPunctuation >>> true2 reciprocal >>> (1/2)37Answer a Point scaled by factor (an instance of Point).oselectEverySecond "#(1 2 3 4) selectEverySecond asArray >>> #(2 4) " ^ self selectEvery: [ :i | i \\ 2 = 0 ]10000000aThat is false!1.00 GB | T | X tb((40@40 scaleTo: 400@400) >>> (10.0@10.0)130300z200a11bar:15Answer the receiver with leading and trailing quotes.101a:^Append the elements of the argument, aSequenceableCollection, separating them by the receiver.310/ "a" 1 "b" max: "c" 2 "d" ; "e" min: "f" 3 "g" 78(#(xa xb xc xy xz) isSortedBy: #last ascending) >>> true8((0@0 corner: 100@100) containsPoint: 100@100) >>> false'-1' asInteger >>> -1wAnswer a copy of the receiver containing all but the last n elements. Raise an error if there are not enough elements.12>(#(1 2 3 4) joinUsing: ', ' last: ' and ') >>> '1, 2, 3 and 4'whatever#( 00.0(| x "a" "b" "c" | "d" x := 5 "e" "f" "g"Answer the index of the first occurrence of anElement within the receiver. If the receiver does not contain anElement, answer 0.cool100310%#(0 1 2) * #(10 20 30) >>> #(0 20 60)fillFrom: aCollection with: aBlock "Evaluate aBlock with each of aCollections's elements as the argument. Collect the resulting values into self. Answer self." "(#(10 20) asOrderedCollection fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asOrderedCollection" "(#(10 20) asSet fillFrom: 'ABC' with: [:x|x asciiValue]) >>> #(10 20 65 66 67) asSet" "({64->$@} asDictionary fillFrom: 'AB' with: [:x|x asciiValue -> x]) >>> {64->$@. 65->$A. 66->$B} asDictionary" aCollection do: [ :each | self add: (aBlock value: each) ]word#((2@2) - (100@200)) >>> (-98@ -198)'('hello world' occurrencesOf: 10) >>> 0| a ||a-60Tests-unix-64-Roassal-Interaction-Tests-Test.xml43ifEmpty: aBlock "Evaluate the given block, answering its value if the receiver is empty, otherwise answer the receiver. Note that the fact that this method returns its receiver in case the receiver is not empty allows one to write expressions like the following ones: self classifyMethodAs: (myProtocol ifEmpty: [ Protocol unclassified ])" "(#(1 2) ifEmpty: [0]) >>> #(1 2)" "(#() ifEmpty: [0]) >>> 0" "('' ifEmpty: ['(nil)']) >>> '(nil)'" ^ self isEmpty ifTrue: [ aBlock value ] ifFalse: [ self ]$0 isDecimalDigit >>> true172'Color red rgbTriplet >>> #(1.0 0.0 0.0)0010002264444552200778:-1929book-result/W01-Welcome1B('abcdefgh' includesSubstring: 'de' caseSensitive: false) >>> true1014!(13 beBetween: 12 and: 20) >>> 13RReturn the metaclass of the couple class/metaclass. Useful to avoid explicit test.(1929 truncateTo: 10) >>> 1920 234Whoopiex12124twoyAnswer the number of digits printed out in base 10. Note that this only works for positive SmallIntegers up to 64-bits.J(true ifTrue: [ 'This statement is true!' ]) >>> 'This statement is true!'10002(1.3@2.2) isFloatPoint >>> trueone0vector03(#(2 4) allSatisfy: [ :each | each even ]) >>> true0Tests-unix-64-HeuristicCompletion-Tests-Test.xml20CAnswer whether all the elements of aCollection are in the receiver.20012 0010022230d10AReturn the class of STON maps, Dictionary, a system wide constant101021d2 rounded >>> 2 3111120044444666666A88889 ']' expected52105 """""n""""""1211B('abcDefgh' includesSubstring: 'DE' caseSensitive: true) >>> false4S(#(10 20 30) withIndexCollect: [:each :index | each + (index * 2)]) >>> #(12 24 36)42nXn0 {1 . 2 . 3 . 4 . 5} median >>> 3<1?success:error>c*2222111111111335563311111111117799A7700BBC2102.4668517113662407 fred the bear1530142foo | a | a := 1. ^ [ | a | a := 10. a ] value + ahello!112 #foo : 100 Not foundn uuuuuuu n uuu ea=If the receiver is not nil, pass it as argument to the block.40360.0a12Since the condition is false, answer the value of the false alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line.0:00:00:01.0022d{ ^ 1 }. 2. ^ 3 'def' >= 'abc' >>> true5Optimized version of Collection>>#collect:thenSelect:417add: newObject after: oldObject "Add the argument, newObject, as an element of the receiver. Put it in the sequence just succeeding oldObject. Answer newObject. Raises an error if oldObject is not found" "(OrderedCollection new add: 41; add: 42 after: 41; yourself) asArray >>> #(41 42)" "(OrderedCollection new add: 41; add: 42 after: 41; add: 43 after: 41; yourself) asArray >>> #(41 43 42)" ^self insert: newObject before: (self find: oldObject) + 1220:00:00:00.001000002z1016-311040sAnswer whether the receiver sorts equally as aString. The collation order is simple ascii (with case differences).1$'foo' asByteArray >>> #[102 111 111]30200rReturn the index of my last element for which aBlock evaluates as true. If no matching element is found, return 0.(#(1 2 3 4) intersection: #(3 4 5)) >>> #(3 4)8Return a String representation of this number in base b.180.01038(0@10 isInsideRectangle: (0@0 corner: 100@100)) >>> true#'wimpy' initialIntegerOrNil >>> nil((STON reader acceptUnknownClasses: true; on: 'FooBarBaz { #foo : 100 }' readStream; next) at: STON classNameKey) >>> #FooBarBaz255is8234{ [ ( ,(#(11 22 33) before: 44 ifAbsent: 55) >>> 55addDays: dayCount "((Date year: 2018 month: 9 day: 28) addDays: 3) printString >>> '1 October 2018'" ^ (self asDateAndTime + (dayCount days)) asDate10XnXnX10pppp AAAAAA ^ aaaaaa s n1uNote that there is no way to get the first element that works for all kinds of Collections. Must test every one. Answer 1 since receiver is true.36('pharo' beginsWith: '' caseSensitive: false) >>> true1two4211011#Tests-unix-64-Rubric-Tests-Test.xml036Collection size and block argument count do not match.22;Convert to a ByteArray with the ascii values of the string.This statement is false!11abc5#(x y z) size >>> 3yisAllAlphaNumerics "Returns whether the receiver is composed entirely of alphanumerics (i.e., letters or digits)." "'3.123' isAllAlphaNumerics >>> false" "'a3123abc' isAllAlphaNumerics >>> true" "'3123' isAllAlphaNumerics >>> true" "'3,123' isAllAlphaNumerics >>> false" "'a''b' isAllAlphaNumerics >>> false" self do: [:c | c isAlphaNumeric ifFalse: [^ false]]. ^ true810initialIntegerOrNil "Answer the integer represented by the leading digits of the receiver, or nil if the receiver does not begin with a digit" "'234Whoopie' initialIntegerOrNil >>> 234" "'wimpy' initialIntegerOrNil >>> nil" "'234' initialIntegerOrNil >>> 234" "'2N' initialIntegerOrNil >>> 2" "'2' initialIntegerOrNil >>> 2" "' 89Ten ' initialIntegerOrNil >>> nil" "'78 92' initialIntegerOrNil >>> 78" "'3.1415' initialIntegerOrNil >>> 3" | firstNonDigit | (self size = 0 or: [ self first isDigit not ]) ifTrue: [ ^ nil ]. firstNonDigit := (self findFirst: [ :m | m isDigit not ]). firstNonDigit = 0 ifTrue: [ firstNonDigit := self size + 1 ]. ^ (self copyFrom: 1 to: (firstNonDigit - 1)) asNumber11!sumNumbers: aBlock "This is implemented using a variant of the normal inject:into: pattern that is specific to handling numbers. aBlock is expected to return a number for every element in the collection. Different from the sum: implementation, the default value is zero. While sum: is more general, sumNumbers: is meant to support the most often encountered use case of dealing with numbers." "(#(1 -2 4) sumNumbers: #abs) >>> 7" "(#() sumNumbers: #abs) >>> 0" ^ self inject: 0 into: [ :sum :each | sum + (aBlock value: each) ]1342'|' or parameter expected11EEvaluate aBlock with each of the receiver's elements as the argument. Collect the resulting values into a collection like the receiver. Answer the new collection.728Point classSide >>> Point class229903((0@0 corner: 100@100) containsPoint: 0@0) >>> true0"'3123' isAllAlphaNumerics >>> true162r101111foo:1030120i23includesSubstringAnywhere: testString "Answer whether the receiver includes, anywhere in its nested structure, a string that has testString as a substring" "(#(first (second third) ((allSentMessages ('Elvis' includes:)))) includesSubstringAnywhere: 'lvi') >>> true" self do: [:element | (element isString) ifTrue: [(element includesSubstring: testString) ifTrue: [^ true]]. (element isCollection) ifTrue: [(element includesSubstringAnywhere: testString) ifTrue: [^ true]]]. ^ false2132abc(Color hex: 0.2) >>> '33'\(#(1 2 3 3 4 1 2 3 3 5 6) splitOn: #(3 3)) >>> #(#(1 2) #(4 1 2) #(5 6)) asOrderedCollection10streamContents: blockWithArg limitedTo: sizeLimit "A variant of #streamContents: with a strict size limit" "(String streamContents: [:s | 10 timesRepeat: [s nextPutAll: 'foo']] limitedTo: 9) >>> 'foofoofoo'" | stream | stream := LimitedWriteStream on: (self streamSpecies new: (100 min: sizeLimit)) limit: sizeLimit limitBlock: [ ^ stream contents ]. blockWithArg value: stream. ^ stream contents2052101S(#(1 + 3 - 5) reduceRight: [ :a :op :b | a perform: op with: b ]) >>> (1 + (3 - 5))3930estoreStringBase: base length: minimum padded: zeroFlag "(10 storeStringBase: 16 length: 6 padded: true) >>> '16r00A'" ^ String streamContents: [:s| self storeOn: s base: base length: minimum padded: zeroFlag ]n sss X7efoo < 0.5xz30 :BBBBB | bbbbb s n 0,'th is is29 a stRI4' squeezeOutNumber >>> 2913655650de( 1 + 21d-1foo: a bar: a ^ a16rDF-2 even >>> true051.0173$0 isDigit >>> true 0001112131411((2@2) * 200) >>> (400@400)c2303vweekdayIndex "Sunday=1, ... , Saturday=7" "(Date year: 2018 month: 9 day: 28) weekdayIndex >>> 6" ^ self dayOfWeek*#(1 2 3 4) unzip second asArray >>> #(2 4)22031 #(a b c d e f g h ) first >>> #a30W(false ifTrue: [ 'That is true!' ] ifFalse: [ 'That is false!' ]) >>> 'That is false!'asSortedCollection "Answer a SortedCollection whose elements are the elements of the receiver. The sort order is the default less than or equal. Note that you should use #sorted if you don't really need a SortedCollection, but a sorted collection." "'bar' asSortedCollection asArray >>> {$a. $b. $r}." "('bar' asSortedCollection add: $c; yourself) asArray >>> {$a. $b. $c. $r}." ^ self as: SortedCollection0vector0321Pharou uu 520b0X"('abcd' contractTo: 10) >>> 'abcd'30 hello world!c11o (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 230false. := false2005'%' expandMacros >>> ''003$(#(a b c d) allButFirst: 3) >>> #(d)0vector0234(#(a b c d e) identityIndexOf: #x ifAbsent: 7) >>> 720Zat: firstKey at: secondKey "Return the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey." " (Dictionary new at: #top at: #below1 put: 1; at: #top at: #below1 put: 2; at: #top at: #below1) >>> 2" ^ self at: firstKey at: secondKey ifAbsent: [self errorKeyNotFound: secondKey]200120ol433,1232In \{1\} you can escape \{ by prefixing it with \\ 222213334444g8Tests-unix-64-Microdown-RichTextPresenter-Tests-Test.xmlb100&Tests-unix-64-PharoDocComment-Test.xmlawReturn the object stored in the second dictionary at secondKey. The second dictionary is accessed via the key firstKey.-(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6S#[ 1 2 3 ] zipped >>> #[31 139 8 0 0 0 0 0 0 0 99 100 98 6 0 29 128 188 85 3 0 0 0]true & true >>> true2b000000002204hello1023#(1 5 10 -4) max >>> 102421011+Tests-unix-64-System-History-Tests-Test.xml(true xor: [false]) >>> true1 goodby: 2 my: 3'655555444444333322222111111000000000000abc1hello0vector4530x10-255:. :. :a4D'foo' asOrderedCollection = #($f $o $o) asOrderedCollection >>> true1282#. 120indexOfSubCollection: sub startingAt: start ifAbsent: exceptionBlock "Answer the index of the receiver's first element, such that that element equals the first element of sub, and the next elements equal the rest of the elements of sub. Begin the search at element start of the receiver. If no such match is found, answer the result of evaluating argument, exceptionBlock." "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 2 ifAbsent: 7) >>> 3" "(#(a b c d e) indexOfSubCollection: #(c d) startingAt: 4 ifAbsent: 7) >>> 7" | first index | sub isEmpty ifTrue: [^ exceptionBlock value]. first := sub first. start to: self size - sub size + 1 do: [:startIndex | (self at: startIndex) = first ifTrue: [index := 1. [(self at: startIndex+index-1) = (sub at: index)] whileTrue: [index = sub size ifTrue: [^startIndex]. index := index+1]]]. ^ exceptionBlock value13328 August 2018511004K'A man, a plan, a canal, panama' asCamelCase >>> 'AMan,APlan,ACanal,Panama' *foo#zort11 <= aString "Answer whether the receiver sorts before or equal to aString. The collation order is simple ascii (with case differences)." " 'abc' <= 'def' >>> true" " 'abc' <= 'abc' >>> true" " 'def' <= 'abc' >>> false" ^ (self compare: self with: aString) <= 01330 [ :a :a :b | | a a b | a + a + bXXnX10000002111975!EccentricityThreshhold recipricallastIndexOfAnyOf: aCollection startingAt: lastIndex ifAbsent: exceptionBlock "Answer the index of the last occurrence of anElement within the receiver. If the receiver does not contain anElement, answer the result of evaluating the argument, exceptionBlock." "(#(a b a d a) lastIndexOfAnyOf: #(a b) startingAt: 1 ifAbsent: 7) >>> 1" lastIndex to: 1 by: -1 do: [:index | (aCollection includes: (self at: index)) ifTrue: [^ index]]. ^ exceptionBlock valuetrue ==> [false] >>> false+1. -a. - 1. -"A"1| a | [ a := 10 ]. ^ afoo < bar ; baz > 111((2@2) + 200) >>> (202@202)MPairwise integer quotient of two sequenceable collections of the same length.JReturn the class of STON associations, Association, a system wide constant040025111 kkk XX kkkX X X XEReturn the HSV saturation of this color, a value between 0.0 and 1.0.20-3.1479Missing opener for closer: )MockPackage-testsOascending "Return a SortFunction around the receiver, where the receiver will be used as a unary message to send to both a and b during sorting, and then the result of said send will be collated in ascending order using the <=> method." "(#('abc' 'de' 'fghi') sorted: #size ascending) >>> #('de' 'abc' 'fghi')" ^self asSortFunction1"a := a. [ | a a | . := a ]. a := a410212, <1s>, ...) with argument passed in anArray." " writes the N-th argument using #printString, but without trancating it." "('<1p>: <2p>' expandMacrosWith: 'Number' with: 5 with: nil) >>> '''Number'': 5'" " writes the N-th argument, which should be a String, or a collection of printable objects. Note also important distinction for single-quotes inside the argument; with

they will be doubled." "('<1s> vs <1p>' expandMacrosWith: 'it''em') >>> 'it''em vs ''it''''em'''" "Whitespace characters:" "'' expandMacros >>> String tab" "'' expandMacros >>> String cr" "'' expandMacros >>> OSPlatform current lineEnding" "'' expandMacros >>> String lf" "Writing '<' character: To write '<', prepend it with a percent sign." "'%' expandMacros >>> ''" "Ternary operator: An if-else string can be written with . The N-th argument must be a Boolean. Yes-string cannot contain colon ':', as it terminates the yes-string. No-string cannot contain closing angle bracket '>', as it terminates the no-string." "('<1?success:error>' expandMacrosWith: true) >>> 'success'" "('<1?success:is error>' expandMacrosWith: false) >>> 'is error'" | readStream char index | ^ self species new: self size streamContents: [ :newStream | readStream := self readStream. [ readStream atEnd ] whileFalse: [ char := readStream next. char == $< ifTrue: [ | nextChar | nextChar := readStream next asUppercase. nextChar == $R ifTrue: [ newStream cr ]. nextChar == $L ifTrue: [ newStream lf ]. nextChar == $T ifTrue: [ newStream tab ]. nextChar == $N ifTrue: [ newStream nextPutAll: OSPlatform current lineEnding ]. nextChar isDigit ifTrue: [ index := nextChar digitValue. [ readStream atEnd or: [ (nextChar := readStream next asUppercase) isDigit not ] ] whileFalse: [ index := index * 10 + nextChar digitValue ] ]. nextChar == $? ifTrue: [ | trueString falseString | trueString := readStream upTo: $:. falseString := readStream upTo: $>. readStream position: readStream position - 1. newStream nextPutAll: ((anArray at: index) ifTrue: [ trueString ] ifFalse: [ falseString ]) ]. nextChar == $P ifTrue: [ (anArray at: index) printOn: newStream ]. nextChar == $S ifTrue: [ newStream nextPutAll: (anArray at: index) ]. readStream skipTo: $> ] ifFalse: [ newStream nextPut: (char == $% ifTrue: [ readStream next ] ifFalse: [ char ]) ] ] ]+(0 printShowingDecimalPlaces: 2) >>> '0.00'(#() sumNumbers: #abs) >>> 03.2401hel1 goodby: 2 my: 30Pharo>Returns an array composed of the three color float components.onehfoo1cE('XXaXbXXcXXXdXX' escapeCharacter: $X) >>> 'XXXXaXXbXXXXcXXXXXXdXXXX'1110120oops"Point class instanceSide >>> Point001133 nothing to do5Optimized version of Collection>>#select:thenCollect:13Class structural inspection - Class/Metaclass shift12""" 00 """ n """ n """ 0 """ '11abc' startsWithDigit >>> true931.0JRunning max. See the comment of self >> #running:of: for more information.kCreate a scanner stream of program tokens on the argument. Users can then use stream API to consume tokens. foo||bar||2'abc' \ 'cbe' >>> 'a'.310.2third "Answer the third element of the receiver. Raise an error if there are not enough elements." "#(a b c d e f g h i) third >>> #c" ^ self at: 3720%('hello' includesAny: 'hop') >>> true(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 11 - arg ] do: [ :found | found ] ifNone: [ :a :b | 'between: ', {a. b} printString ]) >>> 5bifNil: nilBlock ifNotNil: ifNotNilBlock "If the receiver is not nil, pass it as argument to the ifNotNilBlock block. else execute the nilBlock block" "Might be compiled inline for speed, see RBMessageNode>>#isInlineIfNil" "(nil ifNil: [42] ifNotNil: [:o | o +3 ] ) >>> 42" "(3 ifNil: [42] ifNotNil: [:o | o +3 ]) >>> 6" ^ ifNotNilBlock cull: self5aPut anObject in all indexes between startIndex and endIndex. Very fast. Faster than to:do: for more than 26 positions. Answer anObject11024!'234' initialIntegerOrNil >>> 234POr it can follow full superclass chain which will ends at Object and ProtoObject?(Context tallyInstructions: [3.14159 printString]) size >>> 12012 hex >>> '16rC'0.01R(OrderedCollection new add: 42; add: 41 before: 42; yourself) asArray >>> #(41 42)2({'hel','lo'. 'world'} includes: 'hello') >>> true&Convert the receiver in a date object.32.567G({#a. #b. #c. #d. #e} from: 3 to: 4 put: #x; yourself) >>> #(a b x x e)Return the number of combinations of (self) elements taken k at a time. It is calculated as C(n,k) = n! / (k! (n-k)!) For 6 numberOfCombinationsTaken: 3, this is 6*5*4 / (1*2*3)f, o, ofred Assignment to read-only variable )ab cd ab ef ab30Abc1#() asCommaString >>> ''0001112133331411001002 4 + 3 >>> 7de)Fold the result of the receiver into aBlock. The argument aBlock must take two or more arguments. It applies the argument, binaryBlock cumulatively to the elements of the receiver. For sequenceable collections the elements will be used in order, for unordered collections the order is unspecified.growAtLast "Add new empty slots to the end of array, while keeping the empty slots at the front." "OrderedCollection new capacity >>> 10" "(OrderedCollection new growAtLast; capacity) >>> 20" | newArray | newArray := self class arrayType new: (array size * 2 max: 1). newArray replaceFrom: firstIndex to: lastIndex with: array startingAt: firstIndex. array := newArray3e0 ^ n 0. n. ^ n"also unfinished""9([#() sum] on: CollectionIsEmpty do: ['oops']) >>> 'oops'afoodezortorfoo3zort1EAnswer an instance of me containing the same elements as aCollection.$Here123should%Be6TheName6OfTheMethod `('test te string' copyReplaceAll: 'te' with: 'longone' asTokens: true) >>> 'test longone string'0&#(1 2 3) , #(4 5 6) >>> #(1 2 3 4 5 6)Umedian "Return the middle element, or as close as we can get. The collection must not be empty." "{1 . 2 . 3 . 4 . 5} median >>> 3" "{1 . 2 . 4 . 5} median >>> 3" "{1 . 2 . 5 . 5} median >>> (7/2)" "{3} median >>> 3" "([{} median] on: CollectionIsEmpty do: [ 'oops' ]) >>> 'oops'" self emptyCheck. ^ self asSortedCollection mediandeDEvaluate aBlock for all elements between start and stop (inclusive).eRemove oldObject from the receiver's elements. Answer oldObject unless no element is equal to oldObject, in which case, raise an error. ArrayedCollections cannot respond to this message.0vector0=Move the element at oneIndex to anotherIndex, and vice-versa.010[ :a | | a b ]01y55023117 'abc' = 'def' >>> falseabcd/((3 to: 8 by: 2) allSatisfy: #isPrime) >>> truepharo171,""" n """ ssss """ n """ s """ n """ sss """+#(("A")"B"."C":"D";"E"["F"]"G"{"H"}"I"^"J")122110000000000000000:Answer whether anObject is one of the receiver's elements.2317342X u10 11000004420000011:adef10kReturn the index'th element of me if possible. Return the first or last element if index is out of bounds.12#'abc' = 'abc' asWideString >>> true 0001003343500?(Color r: 0.5 g: 0.5 b: 1) hsvSaturation >>> 0.49951124144672531 0:00:01:01$' tokenish >>> false5#[ ^ 1 ]1%tokenish "Answer whether the receiver is a valid token-character -- letter, digit, underscore, or colon." "$' tokenish >>> false" "$: tokenish >>> true" "${ tokenish >>> false" "Character space tokenish >>> false" ^ self isLetter or: [ self isDigit or: [ self = $_ or: [ self = $: ] ] ]132'' asArray >>> #()b3128210min: maxValue max: minValue "Take the minimum between self and maxValue, then the maximum with minValue" "(10 min: 20 max: 5) >>> 10" "(10 min: 20 max: 11) >>> 11" "(24 min: 20 max: 5) >>> 20" ^ (self min: maxValue) max: minValue700n#n#n0asByteArray "Answer a ByteArray whose elements are the elements of the receiver. Implementation note: Cannot use ''ByteArray withAll: self'' as that only works for SequenceableCollections which support the replacement primitive." "{1. 2} asByteArray >>> #[1 2]" "#[1 2] asByteArray == #[1 2] >>> true" "'foo' asByteArray >>> #[102 111 111]" "#() asByteArray >>> #[]" | array index | array := ByteArray new: self size. index := 0. self do: [:each | array at: (index := index + 1) put: each]. ^ array0vector023391200removeAllFoundIn: aCollection "Remove each element of aCollection which is present in the receiver from the receiver. Answer aCollection. No error is raised if an element isn't found. ArrayedCollections cannot respond to this message." "(#(10 20 10 10) asOrderedCollection removeAllFoundIn: #(10 20 30); yourself) >>> #(10 10) asOrderedCollection" aCollection do: [:each | self remove: each ifAbsent: []]. ^ aCollection1100DE100300.01(#(1 3 5 7 11 15 23) findBinaryIndex: [ :arg | 25 - arg ] ifNone: [ :a :b | 'between: ',{a. b} printString ]) >>> 'between: #(7 8)' 122 Hello--world-aaFLNegative8SmallIntegerCluster  *(bFLPositive8SmallIntegerClustertY>#|aF+؄iN3qV; y^C( ՁfK0݉nS8v[@% ~cH-چkP5sX="{`E*׃hM2ߋpU:x]B' ԀeJ/܈mR7uZ?$ }bG,مjO4rWwidthstylepaintFLFixedObjectClusterj testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFailslineFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster ! testSelector expectedFailsparserFLFixedObjectClusterXexecutionEnvironment isEnabled testFailuresshouldSuspendBackgroundFailuresshouldFailTestLeavingProcessesshouldTerminateProcessesFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectCluster ^ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterS xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster,$ testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFails vennDiagramFLFixedObjectCluster p testSelector expectedFailsFLFixedObjectClustername environmentFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterdomainrange interpolate uninterpolatelinearFLFixedObjectCluster] testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLContextClustersenderpcstackpmethod closureOrNilreceiverFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassinstanceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterT testSelector expectedFailsresolverFLFixedObjectCluster 0 testSelector expectedFailsparametersToUsescaleFLFixedObjectClustername environmentFLFixedObjectCluster testSelector expectedFails searchPanelFLFixedObjectClusterl testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster.FLFixedObjectClusterA testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLVariableObjectClusterL testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsmodel environmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFailsFLFixedObjectClusterL testSelector expectedFailsFLFixedObjectClustertermcap outStreamcurrentBackground currentColorlightblinkFLFixedObjectClusterQ testSelector expectedFailsresultbuilderFLFixedObjectCluster  testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails presenterFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails environmentbrowsernavigationStateFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectCluster}tnameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFailseditorstringFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentcollectionWithElementotherCollectionnonEmptyempty elementNotIn collectResultexpectedElementByDetect speciesClasselementTwiceIndoWithoutNumberelementexpectedSizeAfterRejectcollectionNotIncluded!nonEmpty5ElementsWithoutDuplicatesameAtEndAndBeginingnonEmpty1Element indexArray subCollectionduplicateElementcollectionWithDuplicateElementcollectionWith4ElementsstringCollectionFLFixedObjectCluster testSelector expectedFailschartFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterv testSelector expectedFailspackageAaPDPackageDependencyWrapperFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLGlobalClassVariableCluster #.)XU%*Q)U' z FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster + testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparserFLFixedObjectClusters testSelector expectedFailstestingEnvironmentFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectClusterlGarray firstIndex lastIndex sortBlockFLFixedObjectCluster' testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster8 testSelector expectedFailsmethodNameEditorFLFixedObjectCluster testSelector expectedFails breakpointclspreviousBreakpointsobserveroldSystemAnnouncerFLFixedObjectCluster messageTextnodeFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsparsersubjectFLFixedObjectClusterp testSelector expectedFailstestingEnvironmenttestEnvironmenta1t1t2xPackageyPackagezPackageFLFixedObjectCluster$ testSelector expectedFails nonEmptyDictFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationFLFixedObjectCluster 9parent propertiesselectorkeywordsPositions argumentsleftrightpragmaFLFixedObjectCluster  testSelector expectedFailscircleFLFixedObjectCluster testSelector expectedFails filesystememptyFilesystemFLFixedObjectCluster sourceNode bytecodeIndexsequenceindexFLFixedObjectCluster testSelector expectedFailscritiqueToolbarFLFixedObjectCluster testSelector expectedFailsreaderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterH testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailstriangleFLFixedObjectClusterx testSelector expectedFailstestingEnvironmentFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompilerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsemptybFLFixedObjectCluster7M testSelector expectedFails controllereditorFLFixedObjectCluster testSelector expectedFailsaStringFLFixedObjectClusterparent properties parenthesesnamevariablestartFLFixedObjectClusterexponentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterK testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFails rulesHelperFLFixedObjectClustere testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster R testSelector expectedFailsFLFixedObjectClusterw testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster ! testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterz testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster, testSelector expectedFails breakpoint1 breakpoint2instance inspection breakpoint3 breakpoint4FLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustero testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogFLFixedObjectCluster) testSelector expectedFailsclassDefinitionFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustertallyarrayFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailsedsessiondebugAPImockDisplayAPIcurrentDebuggingAPIFLFixedObjectClusterCE testSelector expectedFailsnonIdentityOrderedAssociationsidentityOrderedAssociationsFLFixedObjectCluster5 testSelector expectedFailsxyplotFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectClusterK testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsanalyzerFLFixedObjectCluster#R dictionary orderedKeysFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterU sourceNode bytecodeIndexsequenceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClusterf testSelector expectedFailsparsersubjectFLFixedObjectCluster? testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster  testSelector expectedFailstestingEnvironment workingCopyrepositoryGroupversions versions2FLFixedObjectClusterinvertedFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectClusterS testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster _ testSelector expectedFailsFLFixedObjectCluster0filehandleforWrite semaphoresemaphoreIndex peekBufferFLFixedObjectCluster testSelector expectedFails presenterpresenterModelpreviousLogSettingFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectClusterf testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster  testSelector expectedFailsellipseFLFixedObjectCluster4 testSelector expectedFailsemptyRectangle rectangle1FLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectClusterl testSelector expectedFailsparametersToUseFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterV testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster' testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster)] testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterdomainrange interpolate uninterpolateconstantlinearFLFixedObjectClusterZ testSelector expectedFailswindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsexpressionFinderFLFixedObjectCluster  testSelector expectedFailsparametersToUsecanvasanimationClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailstestingEnvironmentFLFixedObjectClusterE testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustername priorityListsFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectCluster F testSelector expectedFailsshapesconsearchcanvasFLFixedObjectClusterM testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterk6options environmentproductionEnvironment parserClasssemanticAnalyzerClassastTranslatorClassbytecodeGeneratorClass encoderClassastTransformPluginsastParseTransformPluginsrequestorScopeClassbindingscompiledMethodClass semanticScopeFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUse decorationFLFixedObjectCluster Z testSelector expectedFails identifier preferencesFLFixedObjectClustere testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectClustersxshxxshysyyFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterrgb cachedDepthcachedBitPatternalphaFLFixedObjectCluster =startstopstepFLFixedObjectCluster}sourcenodecachedExpressionNodeFLFixedObjectCluster  testSelector expectedFailspluginpackagepluginConfigurationFLFixedObjectCluster) testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster sourceNode bytecodeIndexsequenceselectorsuperOfFLFixedObjectCluster 5 testSelector expectedFailstestingEnvironmentstreamwriterFLFixedObjectCluster. testSelector expectedFailsobj1obj2wpobj3obj4observer testClass testSubclassFLFixedObjectCluster testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectClusterC testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClustero testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterF testSelector expectedFailspointFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterH testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringkeysdictFLFixedObjectCluster testSelector expectedFailsivarForTestingFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherFLFixedObjectClusterw xScaleyScalechartstyler masterShape markerColorgetRelevantValueBlocklines formatStringFLFixedObjectCluster[3 parent properties parenthesesleftrightcolons argumentsbarbodyscope bcToASTCacheFLFixedObjectCluster testSelector expectedFailsmanagerwindowFLFixedObjectCluster testSelector expectedFailscachecompiledMethodFLFixedObjectClusterL testSelector expectedFailsbrowserFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster4 testSelector expectedFailstallyFLFixedObjectClusterM testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster^ testSelector expectedFailsbackendForTest application presenterFLFixedObjectClusterdomainrange interpolate uninterpolatelinearbasepositiveFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLVariableObjectCluster outerContext compiledBlocknumArgsreceiverFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterW collectionposition readLimit writeLimitstreamcrlfprevious lineEndingFLFixedObjectCluster  testSelector expectedFailsinstancebackendFLFixedObjectClusterV testSelector expectedFailsFLFixedObjectClustera testSelector expectedFailsdpnodeobserverFLFixedObjectCluster testSelector expectedFailsfunctionFLFixedObjectCluster8 testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectClusterw testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster> testSelector expectedFailsFLFixedObjectCluster*m testSelector expectedFailsFLFixedObjectCluster~ testSelector expectedFailscanvascameraFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectClusternanossecondsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster nextLinksuspendedContextprioritymyListnameenveffectiveProcess terminatinglevel errorHandlerFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster v testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster : testSelector expectedFailstestingEnvironmentemptynonEmptyone elementIn elementNotInsubCollectionNotIncollectionOfFloatanotherCollectionnonEmpty1Element subCollectioncollectionWithSubCollectionsubCollectionInNonEmptycollectionWithoutNil collectResultcollectionOfLargeIntegerscollectionWith5ElementsFLFixedObjectCluster# testSelector expectedFailsFLFixedObjectClustere suitestream suitePosition suiteTime suiteFailures suiteErrorsnodeName stageNameprogressFileNameprogressStreamshouldSerializeErrorFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterE testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsoldRelationGraphnewRelationGraphpackageRelationGraphDiffpackageApackageBFLFixedObjectCluster? testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentuniversalEnvironmentFLFixedObjectClustergnameescapingindexscopeusage originalVarFLFixedObjectCluster testSelector expectedFailstestingEnvironment workingCopyFLFixedObjectCluster announcer propertiespaintpathborderparentisFixedencompassingRectanglemodelisDirty entryIndex baseRectanglematrixconnectedLinesshouldUpdateLines cornerRadiusFLFixedObjectClusterFLFixedObjectClusterR testSelector expectedFailsforkvalueFLFixedObjectCluster. testSelector expectedFailsparserFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterkT outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectCluster,7 testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectClustera testSelector expectedFailssycRefactoringPreviewFLFixedObjectCluster  testSelector expectedFailspreviousBreakpointsclsoldSystemAnnouncerFLFixedObjectCluster  testSelector expectedFails classFactory impactFilterFLFixedObjectClusterb testSelector expectedFailsparsersubject splitterClasslinkFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster0 testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster/ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails coordinatesFLFixedObjectClusterVp parent propertiesscopeselectorkeywordsPositionsbodysource argumentspragmas replacementsnodeReplacementscompilationContext bcToASTCacheFLFixedObjectCluster  testSelector expectedFailsbaseUrlofflineSettingFLWordObjectClustereHtes 2>iteP"&/suit~ViteFxNsuit4f%nodeS!geNa֩"essFprog(}eJamsiali"_FLFiM@tClu2 @ testSelector expectedFailscompletionClasssystemNavigation completion mockFilterFLFixedObjectCluster testSelector expectedFailsc1c2FLFixedObjectClusterkparent properties parenthesesleftright statementsperiodsFLFixedObjectCluster  testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFailscurrentCompilerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusteri testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster  testSelector expectedFails inspectorFLFixedObjectCluster" testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster] testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster/ testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailslabel1morph1label2morph2panelFLFixedObjectClusterz testSelector expectedFailsFLFixedObjectCluster+ testSelector expectedFailsdpnodecontextdp2cls testClass testSubclassFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsaClassFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClustert testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2FLFixedObjectCluster)m testSelector expectedFailsclassFLFixedObjectCluster testSelector expectedFails decoratoradapterwidgetFLFixedObjectClusterO testSelector expectedFailsclassDefinitionFLFixedObjectCluster ) testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsvarFLFixedObjectCluster0 testSelector expectedFailseditortextAreaFLFixedObjectClusterhq testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20otherCollectionindexCollectioncollectionWithElementcollectionOfFloat elementNotIn indexArraywithoutEqualElementsduplicateElementcollectionWithDuplicateElementcollection5ElementscollectionWith4ElementscollectionOfCollectionsOfInts collectionOfCollectionsOfStringswithCharacterssimpleCollectioncollectionOfStringcollectionWithSameBeginingEndFLFixedObjectCluster[ testSelector expectedFailsticksFLFixedObjectClustern testSelector expectedFailsFLFixedObjectClusterC testSelector expectedFailsmockObjFLFixedObjectCluster y testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster properties breakpointnodesFLFixedObjectCluster   testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailspackageCollectionAbstractpackageCollectionsSequenceable packageKernelpackageRegexCorepackageStringsaPackageRelationGraphpackagePackageDependenciespackageApackageBpackageCpackageDpackageMorphicBasepackageTextCoreFLFixedObjectCluster 7 testSelector expectedFailstestingEnvironmentFLFixedObjectClusterd testSelector expectedFailsparametersToUse ffiLibraryFLWeakVariableObjectClusterSaFLFixedObjectClustert testSelector expectedFailsFLFixedObjectClusterZ arguments conditionconditionArgumentscontrollevel metaObjectnodesselectoroptionsFLFixedObjectClusterU testSelector expectedFailsFLFixedObjectClustertestCasemaxTimeForTest testCompletedservicesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster : testSelector expectedFailscountercounter2nodenode2FLFixedObjectCluster- testSelector expectedFailsmonitor classFactory logBuilder chunkExporter chunkImporterFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterg testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentnumberOfAnnouncementsFLFixedObjectClusterDselectorvaluableFLFixedObjectClustere testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment errorMessage errorLocation errorSourcetext interactiveFLFixedObjectClusterH testSelector expectedFailsmergerFLFixedObjectCluster2 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusters testSelector expectedFailsempty withItemsfiredFLFixedObjectCluster testSelector expectedFails prototypesFLFixedObjectCluster[ testSelector expectedFailsFLFixedObjectCluster, testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustercacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster< testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassFLFixedObjectCluster Wdomainrange interpolate uninterpolateiuFLFixedObjectCluster  testSelector expectedFailsmorphhandeventFLFixedObjectCluster6 testSelector expectedFailsFLFixedObjectCluster{ testSelector expectedFailstreeFLFixedObjectClusteri testSelector expectedFailsFLFixedObjectCluster M testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsresolverFLFixedObjectCluster5 registeredClassNameFLFixedObjectClusterr numerator denominatorscaleFLFixedObjectCluster- testSelector expectedFails replacePanelFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster* testSelector expectedFailsresultleftrightFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster( testSelector expectedFails filesystemguidevisitedFLFixedObjectCluster testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLWordObjectClusterl ZI Ys= c4DOW 2z-{ )! ep-1,:% &T )4U NlJ  % Agt;!.F~\EK,D(,0f% 3$7C\2  LS4"H   06Gv e #<G} )* )  *>(+7</a4 (:(% XB&?T` > 3r!kuOZ#F1.O)JY3`W <?xe,8 %*."'/aTZP$ ,}1%   1^$ 53A /  bDb/,*Pfou m.; "f-#(-7&+0b,7  3 :\s 45 $GUe:KY2, % $ %X~-{5$=: (%|+ 0 ,"{*:~z   %S\3&'E-WC&T"%";l*_m0m"&8;, ">/!" hc> .^.s> 25WD60l1  k !K S\1"'^$ P" FW]b% 'g"U;R.,`,/V1 ; )"A0.MJ1 $ GMf %/- )7+ u Z  3cNV   ? `?z5v0>o%., 8>o<  FjM % OtzEQ##z5K%h{h " !(P @-Sx5 z=,2oDX E%vT</2 Y`d?D#3^< , :&$ H#5 ,0Gj  :=18?U  $.GOY`.J&]!   e/1D B)l56GT3&}17t,<^-8 r  n)8H`@ R# 4x!-OI\bgmvjy  e}','-m 7, %,*_grw$-5= 1t[ "(  $6L'B$ +  . =[ .M \o=M"eV(+1 Y.5<R   3 IOZ-k( C4Y1(8Y0qH4V y1gi - /g<  -  :@ *GR#;R/?u+_%_$l+;H[]lH ;DP  A$%1=!!X2 <uu2P) )G;%Z<K dVk #$ > 0 )H .J>Q!$s8 ,PY-EEt U\5$ZG / +  3 8J,2G/F0aG>9lQ r"%&-WNikAC nw $#Ma '  0(>&o  /ae,BB(B-Oj  R W=|-,!)C,8(C6' cf;+)'r #F *nC#, $l 3$$ '+ 8l .qA3-x.l M,[" 1-n ^x$*&d <.7Ji! /+(#2|.Q?Ui W'y 5 &-"> \. :#E(Ni`&. @?8V     5Go9HVbU-3 )   M@ %&X 0'+L? "x &QLJQU)!Yoxl@ A!)%) .&$*1 +R0-CD":R@!6J&!)@#71"  ,L{7 F  6lq  %w 0L  ~ ==D &"C* 9d)==(&B1Wt *S4 7>  #  w 6 )07@^,61Z % PW"!/3+ D&-7==/73ik`Cd%!B  C (!%6. #= @   =" (?t#d2;"+YH3 Z5AU"hV] 0R tl5 L *aCI; <S$4/\   /G  &$  / D3nN;O%;Q ./ :>!a)7 4 .@_m$/8B*O@ 1- (L,DP4=I"N0e3bj`?E#<1~4.@  >S2  #",!; '#uh.$Tvs.9 m|< j o>Xf* -JK z"-/Y  69P]cd #n #8 *4m#!!  z oHQapdML    =/._ %S_}g^:G(.Ob83+= %  63+Viz 3-Pb!J ,K8 $o#PEl-93G#4"g 11 %7  3 EX % 0'Pcq"  /l   T() (4c ):Kv Rb7 &X40. *%0 |4  )): d ((R e_m!K v' {.DR (&1=l 4<e%&> *4. :JX%K" * %,,#-8 % s5)$<(X! +3" /_ q&$  G?*s  ,% = /:9[F, "8Pp z?Z   ":6-$kz/`17_} 3+  wmx6.+/D 5 %6jZp$ I*9'\c~v(w (;M./9P .<op 9 k25&&,?R@ -#<q~< 4Sm $66G 4([sEr= [ -,02!m  B,UK7F!GX01-i4b32-\9to# ( $1* )PmA?>  p B!(P#KTh* [1- '0:/R }<#&, nm *9Mb)$"  E $% F+U$ 6:Y?6 (8Z/Hv::-     %t#+ # r\0>;T7NC Z!.0.oyk0| r#;  T';unG )/'p?+M yGcw4A= < %9A  !(-&-Z]Sq0C"-(oYo;!$3|>ja ##.7AT}Z ( 1&VSrF*:#Q. @O{+Mv!0@4=IX EA>|$  )"v /{" .B % % NQud 1&-!d" 6IH*8bRF4. O@&4+ n!")7,Z &|O--8=T+ 7? U   J /jw% 5N[ j&EkZ F0@W7,:3jBy3 $ #Hn9C $O8 V1?^E B z Z ,R)2Pcc! (+ N   89>l  (+ 35<{\w~ +7T_h[ 3, 1.   x$Y"; #34;  "=%H+J o=w.1GL({+]0I#>ENVf*&!)j !& &09>X  YQ<\  {~!p6}=rkH#28!-bs / !8}Nq$3&-'`$`;RF u}H !5 u530   &RL $#]I)^ *MY!4 m^$>N ]C?IY"8&4  / $H&) N* .$7Ngney. ='M #O 7O$ `H.r j} 5 4 @Zr 5;&%     5  ,d ; $   L&6e#;&U%B%8$(*?)k,Cs$UW&$ :-!&[} B B-*R$1 .'*x 1? 9 &`kak v4&%1tX +*y<x.4@s1c3  L 150~$R H b*2`=KR :A  yT[$O$II06v+G7g ?KL1(p~GV fJ j+3y=% <D # BD*V1   ?SkB  2%t *"%.M^ !z v1J "$. (.% >? -Ze $H,*]kKQ&,8%Q d H:!/x0?;M v\%' D4`<'#/!. U(I"  ()*   2@*z hZqsDO] 6M.X_3= !)"D$,/Km&" + @&  ) 4 s$#Q%*y._ &.7 #/=$A\ .Z =$\w KW$9&  5gs55`E7p^zb{j&>)2:B SDZ$;Sp6<6;= /%2b !:*/`  <z(*$2n  &.  B4 #INi/ # qCO8( n}^dk.90n &p9bF! n('5E 2:@ atn%':TG(11.<_&) +{i |%4s=(33]g3'Ru j[ Y!y6f}DB J#BNJsJ",/c4: %,$)38di~I E  rZc,V! %mBl?5#AOi/$3 7A..5:o5P&n|2,  l>6e-,811 Yt'b("%4#.7A,  7 /H  9C?AR_ 2)#  &No:@9-FLof* )$&F%-Sb % *I'55ew &w  *g'51Qx#,5 H/pVWx-6k6MO 7 c35L"2(I0+5 $ R b #@)  !'= !eln4'Z-=2@*! %&HC^ 7Kf2   ,CVX5C| wV ) .AI$FDS :,!$c4vE9JF 0&2*B,f[N< ld0Wf tD!DW z 2 :H!(r#)?SL=  ,;-  *-u """j0  ",j*5"Qapq $!e;%@L D~*%|:$*+&S&C$H< =z W-E-8d(""l-g j^!$ (6VE4)1N-";C&)",2qf; (@  AU!4#"3e., 0X 1 ,b!(71 !-M y +-8" 0d P K_zL4?ON7:N$%/Q$  .]<G(b^  24   >'&# 3T-@cj ?/4M]\'`V' '.[ # NA"CC9hE:&EKR[z ! [>G<,j *J3G :!3 K".4AK2F =)CM +  2~fE&J  (<4?$-#&qFB5|a$/8BbT$D P>%#%,3 #'; 0EdP0   >Y/G&VA&"6. $3A TO G+'$U)65  Mv:)D6*j[/4m' JZAV '.30*71J1  P%) 6MIyA'6=8; A/4 y ;)P b [$ -bM  +;H %x`%@$r " k 256`D 9+ 8  Bc ( ,K n  %K&Y,;)y)9 6w< Ss.,` $9'k [_#C?&"ER` 'M iE%%">SY>AY8   VoFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterN testSelector expectedFails slotDisplayFLFixedObjectClusterN testSelector expectedFailseditorFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterO testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster  testSelector expectedFailsaPDPackageCyclepackageApackageBpackageCFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryoldExceptionHandlerFLFixedObjectCluster7 dictionary orderedKeysFLFixedObjectCluster" testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsatPragmaanotherAtPragmayetAnotherAtPragma atPutPragmaFLFixedObjectCluster( testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClustersname breakpointsFLFixedObjectCluster testSelector expectedFailstestingEnvironment repositorydictFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClusterV- outerScope targetClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster; testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster @ testSelector expectedFails presenterpresenterModelFLFixedObjectCluster testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalfloatCollectionFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster w testSelector expectedFailsinstVarForTestFLFixedObjectClusterr testSelector expectedFailsmatrixFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusteru testSelector expectedFailsFLFixedObjectCluster!G testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFailsbFLFixedObjectClusterD testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFailsFLFixedObjectCluster1 testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsfinalizationRegistryfinalizationCountfinalizerThatCounts waitSemaphorefinalizedObjectfinalizerThatRaisesError finalizerfailedFLFixedObjectCluster p testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLVariableObjectClusterpg testSelector expectedFails filesystemFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterI testSelector expectedFailsrewriteBasicEditorFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectClusterc testSelector expectedFailsclientserverFLByteObjectCluster+5j V5j@U5jp5j`FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsmockuiWaitingSemaphoreFLFixedObjectClusterd testSelector expectedFails filesystemFLFixedObjectClusterP testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster  testSelector expectedFailscacheFLFixedObjectCluster argumentsFLFixedObjectClusterTcurrentSession categories guiCategory toolsCategorynetworkCategorysystemCategory userCategoryFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailsFLFixedObjectClusterf testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailscanvasshapesFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster j testSelector expectedFailsFLFixedObjectCluster f testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsareapositioneventFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster testSelector expectedFailsplotxyFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterr testSelector expectedFailsFLFixedObjectCluster. testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFails debugSessionsindarinSessionFLByteObjectClusterb#NJFLFixedObjectClusterksource isScripting isParseFaultyisFaultyisFaultyMinusUndeclarednoticesvaluehasValue formattedCode skippedTestsraisemessageNotUnderstoodnumberOfCritiquesgroupdefault nodePositions styledPatternFLFixedObjectCluster% testSelector expectedFailstestingEnvironmentFLFixedObjectClusternameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClustername owningClass definingClassindexFLFixedObjectCluster h testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectCluster| testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFails historyListFLPointClusterFLFixedObjectClustertagFLFixedObjectClusterparent propertiescontentsstartstopFLFixedObjectClusterG testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster(} testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster sourceNode bytecodeIndexsequenceindexFLFixedObjectCluster, testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailssegmentFLFixedObjectClusterJ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusteretests resourcesname announcerrandomGeneratorFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster c testSelector expectedFailscompletionClasssystemNavigation completionFLFixedObjectCluster streamencoderFLFixedObjectClusterG testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails outerMorph innerMorphFLFixedObjectCluster  testSelector expectedFails collectionFLFixedObjectCluster 6 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectClusterX testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster_parent properties parenthesesstartstopvalue sourceTextFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailsFLFixedObjectCluster= testSelector expectedFailsparametersToUseshapeCollectionshapeCollectionClasscanvasFLFixedObjectCluster+ testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectClusterX testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFails presenteradapterFLFixedObjectCluster testSelector expectedFailssourcedestFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterL testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterD testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails presenterwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2numberOfAnnouncementsnewTraitFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails decoratorFLFixedObjectCluster  testSelector expectedFailsclassDefinitionFLFixedObjectCluster [ testSelector expectedFailscollectionWith5ElementsFLFixedObjectClusterP testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailsaCompiledMethod aReceiveraMethodContextaSenderinstVarForTestLookupSymbolnonActiveBlockContext anArgumentFLFixedObjectCluster41 testSelector expectedFailsparametersToUserunnerFLFixedObjectClusterFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentnonEmptyelementExistsTwiceempty collectResultnonEmpty1ElementcollectionOfFloataccessCollection elementNoteInoldSubcollectionwithoutEqualElementscollectionOfFloatWithDuplicatecollectionIncludedcollectionNotIncludedcollectionWithoutNilduplicateFloatnonEmpty5ElementscollectionWith4ElementscollectionOfString"stringCollectionSameEndAndBeginingFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterK testSelector expectedFailsforkvalueFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster& testSelector expectedFailsaPackageaSecondPackagepackageApackageBpackageCFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectCluster` testSelector expectedFailstestingEnvironmentstreamexpecteddiffFLVariableObjectClusterA                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       I                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           FLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentsnapshotFLFixedObjectClusterq testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster sourceNode bytecodeIndexsequenceindexFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterg testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5FLFixedObjectCluster> testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterH testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsarcFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsfactorybuilderFLFixedObjectCluster: testSelector expectedFailstestingEnvironmentinstVarFLFixedObjectClustername environmentFLFixedObjectClusterk testSelector expectedFailssystemSettingsmemorypreferencesFileFLFixedObjectCluster3 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster: testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFails prototypesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster3b testSelector expectedFailsFLFixedObjectClusterX testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsinspectionClass presenterFLFixedObjectClusterBparent properties parenthesesstartstop isByteArraycontents openerSizeFLFixedObjectClusterdomainrange interpolate uninterpolateclampinputoutputFLFixedObjectCluster4 testSelector expectedFailsFLFixedObjectCluster_ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustero testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassclassFLFixedObjectCluster, testSelector expectedFailsresolveroriginalUserLocalDirFLFixedObjectCluster testSelector expectedFailscommandFLFixedObjectClusterc testSelector expectedFailsscopeSelectorPresenterFLFixedObjectClustery testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClustera testSelector expectedFails filesystemguidevisitedFLFixedObjectClusterL testSelector expectedFailstext candidatescontext processorstream backWindow1 backWindow2 topMostWindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFailscanvasshape interactionFLFixedObjectCluster ( testSelector expectedFailsresultbuilderFLFixedObjectCluster testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster= sourceNode startSequencenumArgs propertiestempMappragmasadditionalLiteralscompiledMethodcompilationContext irPrimitiveFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustern testSelector expectedFailsexistingstoredmergerFLFixedObjectCluster  testSelector expectedFails slotDisplayFLFixedObjectCluster= testSelector expectedFailssource selectioncurrentCompletionFLFixedObjectClusterM* testSelector expectedFailstestingEnvironmentexample1 literalArrayselfEvaluatingArray nonSEArray1 nonSEarray2example2empty collectResultwithoutEqualElementswithEqualElementswithCharactersunsortedCollection sortedInAscendingOrderCollectioncollectionNotIncludedremovedCollectionelementInForCopyelementNotInForCopy firstIndex secondIndexreplacementCollection indexArray valueArraynonEmptyMoreThan1ElementsubCollectionNotInreplacementCollectionSameSizeoldSubCollectionnonEmpty1ElementcollectionOfCollection"collectionOfFloatWithEqualElementscollectionWithoutNilduplicateElementcollection5ElementscollectionWith4Elements collectionOfCollectionsOfStringscollectionOfCollectionsOfIntssimpleCollection%stringCollectionWithSameBeginingAnEndcollectionOfFloatrecursiveArrayFLFixedObjectCluster8 commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailspasswordManagerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster @ testSelector expectedFailsaPackageDependencyanInternalPackageDependencypackageApackageBFLFixedObjectCluster_parent properties parenthesesreceiverselectorkeywordsPositions argumentssuperOfFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster` testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterItallyarrayflagFLWordObjectClusterY!YFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster< testSelector expectedFailstestingEnvironment repository directoryFLFixedObjectCluster messageTexttagsignaler signalContexthandlerContext outerContextFLFixedObjectCluster( testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsmethodNameEditorFLFixedObjectClustermanagerdeferredStartupActions propertiesFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterB testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster@ testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailsangleFLFixedObjectCluster` testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsrulesSelectorPresenterrules rulesByGroupFLFixedObjectCluster testSelector expectedFailscshapesfFLFixedObjectCluster testSelector expectedFailssettingBrowserFLFixedObjectClusterE testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterPv1v2FLFixedObjectCluster testSelector expectedFails rectangleFLFixedObjectCluster D testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster{ testSelector expectedFailsFLFixedObjectClusters testSelector expectedFailsFLSimpleCollectionCluster\ {  Y3 e I"  Wb  v   1!A0t B       6 ?   /  + $ H n.$ d l _  U$J Fr  m  e$4.7 FLDictionaryCollectionCluster#ab    FLSimpleCollectionClusteruN e       FLSimpleCollectionClusterFLDictionaryCollectionClusterl FLSubstitutionClusterKL(JT:+=,#% #LI% ]o|7%*4! MS;! F`C(0'X3bF$;iG *:{\%9!%CC+|б+wD `N(+ 1'G1?1>+1g/15C1˞11{1Jc)1/R1+Pt1WJD1%16R1GF1E1g0N1V%*1O>M1/31'1qH11E1U1LX1+1Q)X1͚1Y1119G1lO1\ 1MW-15u11N1]=1Y1Eh)p1C1T(1+1rXO1ST1ʂV11ϻ1'15x11ߠ1011{91C143101,2N1"S1`1[/1,wL1JA1L1#1V19R`1<  1i-11:VUB1֎M11-p&%1ܣ1Ay11;+1N11: 1%R1Գ:j1\X%1114@1 D1Y1Cd$1"1۹D15>115?11W11P1b1Z%1P[1Q~1@X11EV1Ev1GqI1Fb1Co1K1$h11V 12)`1&21W?f1Ƿ1<;1I1 11}&C1281M12*1 310N1P'P1E91-+1.)1Q81Ȃ;161r41Xٻ111<1ͨ1&N1!171KO1y&1ˀ1I}1ى 1ٺ1[;1-g1܏11[1M=1;11+/1ZM-1!ƞ1b1O1H1JŽ1޺1 V1I81n1P.1|?}11&\1111g1Q031 1u1V191111%1Ml6 1F1a1*h91~15_[ 1ݎ1lÏ1[ 1t1Y1S1J%1K41ED1Y1 O?1#Q1y&1!7?1h1 1ǡ1V1@1L+H1m@1$b +151(1Z1 1D/1F)1'81G1K(191̀,1I;.<1+ T1t11&`1t19118o10G1?1! 11՜1 &1111&1Km1Lt1X՛1=1TJ1 21#.181fH1Ǭ1@Y&1:1Fb1 14g15f1g1 ɲ1;j1C#1)z61D3 1G13 P1X.]1k1T1ث1V151͙$(1Pi1:11l1X18v1C11;1"3_1 "1[M81 111D1N +1&۸1Ω 11!1"1Q1o'1I 71ug1c1Q1I&d1N-1t101$Y1ZU1]111(#U1!11ِ1;"117'B1SW1 4$1U7#31-1!1 Ae18F21Y161 O1A;1KԬ1Lm1YJv1ڸ1MV1<P1=1S1³1471K111!<1 1Y#1*0Z9`)35U'kB+  ^,VX!> %[S).3#|N#Z&xJ@s1(e"*Pi+ ~Z(wE  D""'CmR$C- fODzA ( q!@>&L&-"<**L"z/,,O)QR='N=V !Al,#-2W O8$p 9!-$F#@+;Ҳ"N280n  $/K:i)#I"_!$wSwy ,J-D?-ʕ>-f´-KB&N-A(] *$$ LUXNW (pd3!n+U[Wq' 0R &Jy. Rė M! `-$`00/0X)X)X)X)X)//X)X)X)X)X)X)X)ŵ 1C  { ~6!y  -'M .'."}F4C`$0H>!=Kn$V,=)HI7/W/I",;-K##;d+UĨDr% D$wy,#t%D,Dy%"#+ю(]3$g=5.\J-&+'tϣk''LP#;x"'Y1׵+N/L )D#$ #WO*D3"Rt#9f) C[D~ ."<,"x,M*N=)fAk')bS;*4:1g.M)X($#;'Zg 5.R3XVPe; i} (cH +E KD JJpU(-"t (.(1+<?j@bu4U r(F B=)j)Ջ A'&,-%* `#KPHQAbE-/Ü!DXUQ$osS+F -P|.7`F'(>v$'*.T'J5m*Q' DL *CJI-71+Q0T#5"<$ӡ! R s';t# j|+ B*%"%#^8>$<;M&=)"!.Po&'@$   k\5#f&;"{` 5$.P(f=* J!P)%// *&JKZ ͧR)|!oG's"n.kcJ(aZ;7A&)ar%l-"&[&9( Q¼*H ))(c+{,',(h)N7& &,=D,>*I*'=")8,~,MX}%kT->n{R.,5- p++L!7- $v).=# 6#Q".$% a%B0#V(w /?%P1.ɰ#'   Y$#,# -9+˵%hM+m:#!??j-,XUif*?+L_"X%J-y۷E%[ $y/ ? D,(2>2 w 7" c &}0#R*! bV) Bo",Ҭ4rA,T# ]*>&,B?,Q K.5)4#%9.c YWR-W-I l',X% **~y$*B-?(HU#]#}b7כ!{ .0K%$&Y_ʯ"J+9[39 '.4Zw=b|}+W?@RR)*=)8!F-<K@"a. |?MM> 7%<3r(LYV#!D-1(yTl% Z6M#'N^+x-{PZE8( *h(""F>@e-M"Z -c1U,(K:- l$RMxA'_$(ʞ"fPGX-:$q&-*d5 JD. v%2j(4'G. \aC'O,++lLb8( $R-E!l!Qr@$O'QTT -k-[s L-$o0////////////F'69('!V @"j>,,>yF m,VF$<,<T,Kaw ,$Kg,J$/#I^#%#*%,)Ո&/'* 2_WWw+,EG+ + >V0(؛!5'0QXM"ck*ЂK !#.''GU["Z\ &y~R eCe,œ.d/!LPU*<0h )G$2s)b{/Y'*;*YGrLL){;Ty-m C*Q.e ?A4X)abX%Q-k(? &zRI$L`wWWuWWvWW++`  6 'xK%"H$J9G-?#(,M+" *REB:+4!*##O+N΅TR$kӯ**<&*1$]{&+%#Kz,R!_<ZrA!*E*l%hÌ*P$IR% 1Q90  Wڭ.CX7]  0,7-4G$H'M,Q-)%7%B6D"&;`4 .*(2'=N)Y {-FAM$* B!{W+%.Y&$`^k9yDZ ' &Y$- ec|x(z$E  "K=%> w2%,P7='6&R$0e$w@!j)9h,*1AF-օ!KcVj-.%*HC&=&V1(@.O[=T E?&,$P4Ee1!.|   y1TE;LN uBL+0p2+)|,X&څ?.$A#K) FG+4!D"Z&/H9 Bb @'* w#N.07H$ ~!p|*-K", As&F*/"9*~ET#*D.0p*Io R&#&q $8  (f'3*&k+_ (w$.}$'̛"2Q+θ*^-L+]%x HJJ.ͦ o[bD>X|%%\' u">{b.>AN> z-VX k@&~# /-P"X'#;3jG*+,Jߌ&!`PX.+&'HNd"i? 6B;rF&Z b#J Ȭ#L",;w>J !' %52*!7*o'>g5(,v$Cc*;K+wD #/}NF&K'].L/#c*/'O 8ޏ%*,^4y%~>*RY D6@ $)9&RyZd3  mXdWRzX'RR2W^x]o"X_ eUzXPY0 U~ SeX]S|dZdW WX@U) I S[\B !S 25gp <SWS) Ar8ntU / ~ \" }W W 4U69] \\* mY T7eiX  0S /TEQ kTb |[ RM  XXZdWT4^'W RR "X R[ZZ  R% X `Ws $WUX. W0 j2TBIZ .RE \aX  Y:XMSGZ9 ~Ry  |f \$VxI :\ P Z9 Wh hx W8Xm CW*  Xn T_Q \+UX`W9#XP]X ZX) V # } YY -X FVW vX]Q[WM LU/S oZ/J FW>XcWS `Z Y  Vxa  JQWkZs RhEWr% W46\z]+XPW AVWYX< YD X6WV9 $ MY  WXWY "T }QT+ fU n"X3xSj1W4[, 9 BY Z ZWi? \[} mn"< Z9dW> ZDZP;(EWA h]fW_W[I vXqXb4\ UWUh MWWR QZcmnW ;Y}yWZz {kX Y  Tf{vTT JVS <=Tp ?T cZtWH 8] 7Ur ^;\*"6]o5gW[( e Re  @l YVRI W*WYZ\HgI!X ATPLVh R K tl  ZdMhRu\R 9hlVkF l[\d U SRZU B/]5 U\W RD( ,\U=f `\aXH]6vWZ\zsT Se }TW  \- WdW Y.$\ R Y*X=Zc SeXGZ z  TRe hZgS{#W[,  T, m}Wh uWh QWg RrXZG T0X7WWWGXO]XKVR @U? M:z:W]6WX[XI  7\ .XRWYDW}Z\ IT R% JV9@ X WWMS>YXQW)SeA RmT<1QF Dr2 Se RXmVR> Y ]- <\k |\Q QX Y - VQW0V-iX}T ] T<7/ |Sw  TWnZZGZ{  UWrZ 4Y PD\ JE\ VxMY"w ~U1z QT, % Z# Z \$_=T \ [ WW(S? \L WA= 9[ Xy Yh sr\+ \.t 2R.EW6X[ZX7WW8XlL /S)8[\ :TMXlTbSsXW rTlV-iWbUW[ fR[sYZy  ;W  \.IZ9uT, X  Z$ [, UtmW8X iYyBP\ V?XJWJ iTWW ~V9 ;U6 }SnZPS9T \XXM;\[U  |yzSZ  VZ -] [W)]o5 9YD/X3\2  \W WwUX Z o V9 ZD[ZX L(  U#W YZoK }JZgs] Wk fX9X<Wk1 Y= WX4WMR$ [ G[yS [OWzq] JV[jXeVUWS P}WMdT-\ oT<U }WlfWXU= H\HW_a [)Ri_Xe5T Zm  ju[. nSB gW& ;YV ~Z Z  |F :\~ c VIXy\KXFZ9<X)W/0X)WX)X)WX)W//X)WX)00 ԙE0j',0*eX*) *@:)J߃98H-# P)(*Z  9,) %"D.$)#/_/v/Z//^/a/R/7/ /u/;/:/E /]/?/j/+/m/)/t/~/= /G/y/-//N//B/h/n/x/K///l/9///F/P/X/3&/M/4/w/C/i/D/r///o/W/L/p/z"/$/c/8/* /5/U/.!//g/>/O$/q/%/A/{/Q/'/1/I/b/V /(/`/f/S/T/6/Y/s/d/[/!/2//}/H//"/|/&/k/@ / /J+ aG($QYb. Ydz z}%Sm ,#zv_'G%GGGGGGGGGIkI aX)*S!SNS(6 @h( p[k,}%`#k*Ph$A-"t".JT,)8.I\$wZ<y'#2h#H2d3t+)#@L+FBl'* tGI *j4'-,~)?C3#"z-K$$̓%pۃ#'/ NT L/#q4;>5 A%Y "$)/M, C(EYN"4"P.Θ-? .-є (#ص'|) UlIL8/- #> (@Q$&(.V i 3 ߕg!jX+3;(F(cJ Kȴ(qF9X)b`'X)b]X)b^0X)b_k|X)ba$E $!/AC(ϖ S\($/.FmL(;`*6.7Zj<7B$1 )ڷHLHEbI1ZEbR>RMUKYKEbJINT17EbPSEbEbEbEb9J<^UEb?/Y4EbLEbFaEbS 3EbOEb2/2EbEbEbEbEbN3IfEbEbREbF.PIOEbEb2EbEbEbEb2rT.GEbJEbEb4K&EbPmEEbI?CCEbEbEbEbEbEbH1EbKxT$UIF EbVYNEbEbEb9LXO_7SEbEbEbEbEbEbB8HEbEbFEbEb02=EbEbEbEbEbEbEb2VnEbR_U(4Eb6[D,EbS!5Eb <#Vy*),͋ :,DGxB$’@$7ʲ#.W#<V#9P-D O*բ"k%>"-U(+C:A%(xc2|g(G@ l%#0s(W[xT("-M J l*C 1&W\a9 ZB (">{XOad`?1X ab1lWae1XOab_LbXkafWX ae&XX)adWTX)afX X ad1ø" .Y.*; g8 aZ'XQ5~(@V31 *:Y $.՘,HS“HYoE1YtGEGEmHz# E >F3HC;(C E>DND D*CP(G AEMH/.H8IADFHF>DDFSF(ӭEKCH;GJFHGpD!CG;.CG2EDٴEgG~-EzD>OG(ETME6E*GqGQDYR-D%;ES%?Fo0}DLHp7GFNHY=hDPGG@kE;tD C=CCEyEH էFǙDHJEDxEG CFZ;FEEJF|EiGEoCDD^,DHozD.EGSCF"C,E8E/cF1FGzRD'IE:KEZH#GK|Ee D4ADBըD)uGFEPFD pD9DPC(DDhZF|!*F%ޮF!.E4DnE~E HI HZFF"CHEA<Ef4CFF FH\جG!DRC\H<DeF5`HME^YHNQGʗHuȓG^6H9G}E& Ht?G CCQGH2EEFLG[`E*)5HsDIFE?FmF\D!GADUF=TFÉGOG} .F)5nGP5EDJH(?Eb<GEBGeEOFuFUTwDCGHG:G %GoA]F/CBDTΣFhN E GWWEWHP5eF[*dDdWGrFOE[jCʹC GaH[CH%DG5DܞDaEdEVE|Fk7H !H}gCFR܁DGG2"EG-IENlDGlC2H  UEsyFW:D=#F{(H7XEE4EDEEߥD#DLF"E'G@vC'F5NmEI.ADޜE""GFJD9CːDUIgF7FH%FDgF:EH5fH]EHGGWEfDlER)DcEp<DND H2EF-EnCGwHOӕFHG >UHZD}J3F۪CFvEXDE9S=FEY FMF9*E)GF8ED[8HHmC=DF8}EEӖDCD.C yD?GvWFE!G`F:CHr«Gc.EgF@F$4FExEkGRF7ƀGG #HW#DGGϊEDFNHA.MD,CG)Ew/DWD%G$EdGD|FUG3@CDgHKGSHFD'G:WGD#CG:D:݋D(EPJG{aFCνG,FTF*GlC+gEDLG6QETFEYEEF Hy=C4EZELD6;QCF^D!DmF,IE]MZE3C#F1FDF;ʇD4/=DE.F^2CEAzGLEH- UFSDG-HxD&_G#zD(HD$F+ D£HXP-EH:F4GG<F#F<}FLG(EHU.TH C3DFDDcTC& GH%E12D C$FlNEQD%EEdDS GG2HKD| ;D8FKG=ED,D9=-FHF.EVrEGD2G@EUCWD M;GDyGAD><HG;DiG9%HFP.EE GTD*HpCDoGOF-$FGh#HmE:HAEK0CG"G3D?DDE'GFTRFDMH3H<<DODEGFDFĸH^EA7C.C&FCH4DEC;FF!C8E+-G! D&1DքFY@C7D*DGD=HQDwD:XGOSHKF9YF0?OHvH LVGFdH`HB%FDS8D."F&DCG`E<E=/MDX'GNNYG-UEJДE[G=C CKFHFQ˂D_G1إDFQE0F<_E5AD/EEDqH, E{ FN\FEF3&FWFEοF5sHRUF GH ƣFa+FbFT9C E"77HkQHDsG0kEL GQGGOF~Fj?HFDEOD>EEPGGD#6)EWHWEGG E)EQ8HL(E9DE|Ex 8E3QDDE;)GGHG FEoFG RDLtEE~EGF Fu?FF?DhGxDH1DC^DE=LEԺGVGEETtEv@2FLF CF$GF4G=H"GD0:(FE(WE#FaGTBECZFcZG'DPXDFKJĜG? HdH5&G4.FRE\UVG%1Fg9LG.KFq@E+PCxDUGE3oDtFtwEmD KE#|H$DLEGHF:>DHcDSEE<EVE}H)CCFVF^C&2G(HZӸD2D#EEuUCВD<GG$AgH6DEGғGFKEE߁F#3D;D/H|"|H>eC'F8GSFXCN|ElG8H_E6C׆C˦D{SD H>DCG5FG`7!GE GtEOLDAD GI>C2F!E!OFYH@EC|GMG+Ga,C#HgEGdHD+DLDF1DѥFf,GX'CF4[DbځD]FGFHWECO>E:EGC UGKG `HG\DH LENTBE/uDfGCHH WD@DF9GG9F)G0D 7HFFFHxH0WCEG HT,G0GY1HQ8G GLF)G)TCE"lFDCBFFFFLGC3D*"HeRDGAD`6DƏGOCDK5DEGiUGEǹDFNCkG|2DlG+FxENE2yDF8HcHVUDJ/YF G7.CQiFF|G/ HbtDgEnE˯DMF_+rGyDFGuBC.F& H'XDFE cGjFKFGDC7GDUG^GH*C֞Hi Hj!!F !#GD2GG6Dj+uG_EXE@ D  FCErGsGNCKGZ DVD0Fs"qH.!EփFDEZUH~`EJG&VEF"NHÕG=\GDE+FEJGmEGn9F:Gk=DHaqElH[[FY\HD FJH!rEQFF>!FE'CG5E82FDQvE-,FKGdGGGK7CYG#E7&FGbXE ECCDt1:FdAE?HDE/oCDvEc3Ej6HqWCHFD+IDIEF/G zGU#FpNGG3)GG>WzECEKFEeE$:CJXDs&(ELG5.GEZJFACD#gCDHӜG+GEyC}Hw E'CVFFϾG"aD=5H{SDֈFD5ED/E/H F]Dx$F5H&Hf HջDvG**sCͩH[F{EaLFz HG GRGZE;G EF8G@D65GO0CDXCIGFӎDIFH#FiHBvC4D3.+F)F CE EGDrD?F#F2E\FC4E[8GYGFkGEMSEXGGיDREV@]CHFSE|FāFyDoOE *EH4FFQEE((CF*+CDD`GUFGE%DDEtFe6EGG]=[EDDaG xE,D-/FF Fw{FVCG>G>:HnFNCGAD61F1=&F(fDWHEDPEKH=PH/CEbDDm)F"DuEAHւFJxDkVBEqG!GDOHETCDFtDQ:D80H!FC>sFr+EF}CD GD\FOEGlX0D$ F- GvD!C+CYF,<HlMFnTD!CEBFCC!EG^D\7C "FDF9ICFF'cGrHE1GSFEVG1GSF:*tG;HGHH4FBGBHGfDDDH?MTG=F$EECG$GLHhBCHIvG$eD1&?C?Gg@DnF GCRCZGGDpGHDE9F2 D/uG EQERDN GME>C8CVGD8GNGްE޳C'/F:DZH) [ǿ8*ɱ$axJѭ7Vݪ'K7%$W/ݪ(r ݪ iݪ!)!b'$.D rD<6!Ҁ6@6 6.̷6qƝ6566#6!Z>6R6/ q6o86 L6),5666 6]B6I6"m6:+G6֘6*[6I6-I6)U 6>6g6 L?6'ֲ6)6 a6'K{6(<6|9F6W@6&; 6-616- g6!W-6qF6 y6P)6$6"Ř6(t6&}6*6M6+6-M"6%`V6 J6,U6, 6s6* 6 6!{6(V6.6k96'N6IΗ6!c76,ca6(6C6&F}6X6*S`6CW6FK]6-a6$V6J~6*Բ6Z6!76+z66KW1/4X)RX)Ȧ?X)ڲX)ZX)8X)'NX)Z8X)s%X)&,X)k#X)  X)Gu(X)(dX)/X)}X)<X)C`2X)[O_X)/WX)&X) 7+X)|QX)# W)L׸X)=TX)]X)VWWۆX)W$X) I5X)X)W:hX)3AWAZWԒR?X) X)ѷW -ZX){JX)>X)^X)D%X)X)DX)+|2X)ě”WX)ԞX)wX),/@W?rWIfW X9X)$W\5|X)Sg1X)9BW^S'X)G+X)A,W5,.WK#W.X)~/X)$%X)NS/X)'X)+X)/OW'X)ǰĚX),%W X)FѯWjX)AoWX) X)E X)u.X)WVX)W(SX)!X)cX)%X) ;W~X)Q`X)'X)(WLX)#IxWX) hX)6A=X)WJW0VW>TX)YWX) W!o*X) ,X)5(X)HӬX)PX)6JX)P4X)VX)TX),X)=zX)MX)WX)8X)N)'X){JX): WGX)[HX)02MX)ѺWX)B.X)C}W2aX)OgWZNX)M7W@WxX)U&X)ýW҅4X)#_7W̴X)¿bX)I%dW0ZX)X)!PRX)t0WʾNX)΁X)R5X)8H3WȈLOX)EX)PWGX)5X);/HX)ȭBX)n X)6B X)NMX)ǒ&WbWX)MPX).jX)WW,X)KX) 1X)?X)yƛW8WbϝWF0X)7X)ڠ;X)h#X)&WR܉X)U|X)uW-X)- X)pX)T^.X),>X)QO&X)A9W X), X)(=X)R*BX)%wKyX)7X)'YX){"WNX). X)TWVWW-'X) |WIYX)?WtgW>W@(OX)SX)ʐWX);ϞX)d7X)DW X)AXWI`mX)[X)"ݙX)W[ X)X)"WJX)! WSXYX)MRcX)LN>X)U<ZX)0ȞX) X) R WyX)5<8WxNQX)*X)%X)?X)=W!WESX)8"X)DX)'X)'WX)Jf7X) X)GHCX)Y9X)/00WQWV|X)/"W&TX)rX)X) X)ߣX)E!WXX)O X)C X)ÇX)qW9NWʆNX)4X)W:X)-kX)5zTqX) /X)$X)@cEX)/mtW&HX)<WHW27EWX)ɅX)l)GX)Hm:"WS X)97W(-X)6"X)X:$WW'{yW8pX)QeWSǞX)u#nX) #qX)PAUDWSW0M@WQX)RX)X)C(bX){X)9TX)/IX)+ZWK X)uX) W3W*X)GEX)W6X)XJ;X)ԧ+DX)*#LsX)AX)E/WU'WYX)܂X)X)pX)JW.WWJ{NW:X)2mX)BX)SX) &X) Y&W2.W2X)0WâX))PX)?6 WX)}5 X)!dWRxX)W}W@aWW"JW]W3[X)qWaX)4 WWW^GCX)=g W4+X)&U;X)TK:W_X)UWUW~0WX)Y'X)ֹX)X)*bX)O"X) X)@WLJ@X)QX)'X)1'W,X)UX)$X)BhEW X) =W4`X)2X)/X)9?X)[P X)PX)7X)+ZX)7kMX),WZIX)sX)tX)JBX)T3X)bX) ivX)wX)(X)M"X)O"X)OX)SX)\X)!b8X)JZ(X)HR xW)DX)nR'W1-BX)U>X)*<X);X)W<#X)'7W2X)JdWQLX)UW"K=X)>lX)UHX)1W2X)KX)9W8X)\W$eX)$X)UX)UWdX)UW)QX)#1X)SrAW= X)WGuX)ߒ%X)=WX)X)s?!X)0X)O*WEDnXO8@X)WW ZWa5aX) SX)lWX)+lW)X)KX)#T7X)ШX)X)TeWIf3X)+X) V@W!KX) 9X)/[9Wr28X),ҸW.Wۚ5X)!;W[GX)[GX)XWGW3X)UX)? X)<X)MWgX)nIiX)X)TpX)?RX)pX)X)X)Z 8AX)zX)X):X)LQX)QX)X)-7 xX)%+X)֒̀X)X X)[!X)0X)DW_X)XیXkh&X)PX)PX)$PX)+X)DjX)9$^X)|$_X)+zBW4WPX)VAX)EVCX)X)F-WX) nJWqX)>[~X)FX)X)[ԷX)QX)GsX)'ZW(dWeX)zX)ZX) %-WwX)}5X)U5X)70 X) W4AX)%EEWHX) WP3OX)ǐےX)4hX) X)W8kX)PX)7X)7 X)W(X) 4W X)X)=EX)BIX)N8X)&JX)ZX)4(4W4)5WVCX)aWRW  ~X)M'EX)TPX)#X)SX)KԼW(X)W݌X):X)X)9X)6X)ҭX@X)/X)m3UX)CX)<WW,X)1#uWG0X).X)%X) F5-X)6EX)0b W-WX)]-jX)X)8X)PʃX)SX)//:WX)0X)4bX)*X)X)۟S-X)X)* X)ʪX)i7;X)!X)OnX)W;uW)m+X)X)X)Ի>W<NW 3X)!X)"AX)VCfX)X)TSX)ˋ X)n¡X)>X)jX) MWI=.X)3&X)VX)W҈X)"PX)L W4X){WmX)O rX)1 tX)Q+X)E5X)MX)MX)pX)"fWeX)NQW.X).?5X)X)'X)%X)IDWJX)AX)IX)X)PԉX)fԌX)>X)'2X)X)IX)/iX)܊X)8X)dWǚX)G)W_"W*ӺX)G/X),X)#SP~X)-X)HX)YW@X)tX)E?W X)!īX)ޓN Wf)X)0^)3X) QX)4[SWzX)OX)XmX)0VX)ʟU.W_X)@WjX)>_WWKX)X))X)X);G2WEƢX)"X)ӊCX)MCX);P+(X).X)OW@iWYX) X)X)TX)X)-,WFUX)+~"X)? X)>RցW>X)X)DX):WW ۮX)EX)THWLCdžWs@yX)#@zX)XtX))WamX)isX)մWoWޤX)iWE8X)9?W64ϧW0X)xDX)1UX)UWX) X).((X)X)GO5X)Y O6X)ۗ &W$W%X)*2<X) X)uBX)&X)2X)'WwW+5X)#X)Mq--X)=WpX)X)ɢHX)Fw X)FdW H W%*X)?WX);7X)Э41X)(W[X)sW۲X)"BpX),X)9X)X) lpX)JQTX)(6kW(AEW18X)^8WWR( `W…?X)}1X)AWD X)цW*X)(=W3'X)"%X)6'X)qWk2W4jC9X)<SWFX)+ X)W7X) X)iX)K X)/W*X)HXOV0!5XkfX)8JWX)"?X) AoW,PLX) ?X)yqX)0X)$X)EBX)[(WOD6*W .X)3FX)&]dW6mX)3W/X)oX) X)oX)0X)XTпX) ;WZNX)[W \X)ݵWrWX)v X)~X)'@X)W;X)jW'jX)"X)TX)X)0X)Z rX)a@X)J=OX)0"=QWMX)*X)WX)ݏW /ҥWR? W>7ZWUX)#*X)AX)(UWgÙX)1+X) ,W3X)dX)-X)TX)g%X)X)W,52X)`2X)D X)S X)@;W>X) X)'YX)Eo0WIX)4NX)=NX)#-5X)?ŔX)a!W̍2#X)2$W2&X)SW@5:X)wWrW X) X)UU/X)N@3X)'JYW,yCX) X)S̊X)$KX)tE]X)EcX)!ՄX)%AX)'RuXk [pW^%X)6|W6 mX)(mW1.X)Q?YW, X)R xX)SzX)#WV[X)ʌeX)[IDX).{WXԢX)(oX),9dX)-gX)8)5X)5WZsX)*X)%:X) 0HX)3@X)@aCX)XX) XWTWvWqTX)Q}'X)8X).8X)X)|X)/ ՂX)/$ՆX)aN'W 8X)CJX)'xX)$X)CX)9mX)sX)?X)A7W"X)OnԣX) <X)X3MWMHX)9^WX)/(qX)?~X)WTWBNX)ܜ&/X)ܝ&1X)4X)X)!<X)—=W9X)eYX)nX)S=Wܨ=X)TFqX)LX)2wX)Aq2xX)SW!<X)@=X)@X)O X)BГW,4X)+WtW VX)I&WU!X)Qj[WïX)GLX)WYi W=X)AyZWɴPX)FWDX)pX)ƌWEX)ЗWWIW6ɛW#WcX)X)֝X)<aX)D5X)"t6W;9X)9,cWPX)X)-sW-vW8X)=9I,W  WYHhX)iW jX)F&X)ޢW5ިX)ţX)9:|WȇX)ڐSX)ءWZX)PX):nPWWX)HiX)FL 7W@\,WX)(X)<!LW[c*X)=,W>1WZX)X) X),X)z&zX)2!X)X):X)1AX)_LX)X)X)QX)<%X)W1X)J X)ӞX)-QW>-RX);e%X)dQX)GSX)@%WDFX)&jX)ƒWUg?WCMˆX)(a;X)! X)3X)'DX)(X)s.X)u1WfmX)* 8WMX)]{W?}X) ]W9W(ݽWޱ5rX)5uX)X)F|VX)%X)fuX)|wX)תX)6 W+W[yX) $X)WעX))YX) X)ER7X)\W)"W6J>X)W&6JWzX)U*X)(WX*W$5X)!DyW"[X).G|X)/}X)Y bX)%!X);-W->HX)^X)q)Xk!-X)L:WT3 W?"X)/vW8GX)/xWH@X)BW&oX),'X)8PX)HWWX) WnJ=W9BW6oX)8OX) OWBGW#LX)׿X)_DxX):yWX)B̨X) W.W٬X)WX)%NWoX) 6X)LX)X)\X)3 X)QS X)"X)+TEWX)OVX)X)HWN<X);A0X)WxMX)HX),͕X)Ӊ W2jW" X)4 tX)WXKpW7}W+X)<WFVLX)AVQW՝X)<1xX)WX)ߨX)$X)ڤ)lWX)SJX)*3rX)(X)X)"X)X)VXX)=r+X);X) #X)3:W*=X)WwX)kX)l9~X)KLZX)X) W.wX)9\.W@*<X)WG3\X)JFX)O'X)mZX)O X)VNX)X)/.X) X)b'X)+UpWX)9MhX)اeX)X)<KW7geX) !X)X)1W6u. X)OW"CX)$ZX)BvX))0X)[WS^X)I8X);X);uAX)M W٨X)KW06X)QFX)X)X)ަX)DX)2X)"#7X)H4X)H6X);{Y/X)xX)z X)<5:X)X)$! W WτX),h=X)N/?W,JX)X)VWW_WUX)EX)&v NX) #W`X)4mWĠoWrX)s(X)9X)F9X)>9WXX)`X) X)ִW0kX)x>X) W" WKWKX)#X)8WTX)iWH~?X)UX) G0$W&rX)mX)MX)5ZWW aNX)6X)?:X)4[W"JX)Z(X)?X)|?X)P;W8 (X)7X)?-W=<WX)T2 X)SX)WX)-X)>X)X)!d X)eX)ÁX)HX)CX)- X)OAX)R\X)Sd &X)oHWݛFW5 WH"PX)CtX)T1X)28X)$X) %X)qYX)ռQxX)H,X)=:X)WX)ü X)X)BX)wWX)/VW0 X)@W̋W4X)!irW>WX)$}$2X) W>VWķX)QR^X)2pW X)6fX)2WX)#X)9oYW{fWX)6X)@X)OWuOW;%WW%X)L 5X)YFX)qW7cX) }X)FWdX))ΏXOPΓX) gX)2/X)O[fW P;W|X)IX)X'X)+X)aW4X)ȔĶX)ϟĺW,X)X)1X)ͻW? X)UX) 2^X)X)6BX)Js.W)&Wg&X)ǎX)WpDX)jX)W X))2XX))6ZX)>ZX) X)8 X)2B)X)3>jX)X): X) TjWL+2X)cX)n'WܟX)X)=_W1X)Y W@X) gX)*X)NX)F]W6"*X)WIX)4:2bW̓*XX):*YX)8lWV^X)XX)PX)X) )<X)$X)hX)3iWN9VqX)E1X)5X)/&WƵX)GX)$h/ X) W[JWU+9X)&4W$7X)$ 8X)ߞ X)VANX) X)FW<(X)(X)X)W@5X)!X)- X)o 3W'kX)PDX)LhGX)vHX)W/X)APWؙЀX)X)ZX)HW1EW<VpX) $-;W-zX)H% X):gX)P[X)$2W P2X):WqX)5X)@?X)B?X)PX)W64<X)0%X)WJMX)B+MX);ZݭWģWAiX)ZX)X)X)8.-X)RO@X)B!W7 W0oX)TLX);X)2X)L'X)&Wo8WBnWQ7Z%W lWAWCW}=W=X)X)*lX)@X)S1X)WlWX) @X) "X)U=X)IݰX)`X)k!<X)֐X).X)NX)^X)BW3X)2tXlWX)S?WRxW- X)TN+X)X)W1WX)X)F) X)hJWиoX)6{kX)-9X)M !X)?W  }X)GYKWG#5X)#9W//3W0=X)ϰQBX)X)%_X)()WdX)7m9X)9 WٔW@ ٗX)Y15\X)Y35]W>7X)WXW@m\X))X)X).X)}ӋW/eX)ΠEX)7wPVX)85X).YX)$saX)$ W5X)"&X)W@!W2TҮX)\X)?X)k&WI3W'7aW߶WX)FXWd#6X)páWW X)̙X)xX)X)X)P\WBX)QW=+X)`ӍX)<;X)]YX)+W4",X)TX)X mX)DZ6WBX)9=XX)%#X)!X)c!X)*2/X)2X)KWX)";X)ۅX)*GX)šX)^X)3X)ZX)X)M X)͡:X)X)X):/X)#]ڼWErX);X)=X):1+X)\X)#X)4W*X)^X)E#LX)2GX)sX)wVX)0W ŤW]WSOX)1%TX) TW5cWQWdX)Q\gXkؤ_X)BX)X@CX)5tPX)"HW?X)ȅWEgX)X)7X)6?WX)IqX)#/J|X)W:*X)LھX)?Wڊ rW.X)[T|X)B/)X) 4X) X) X)ԭWIIX)ZX)BAX)X)]RWX)[^-X)J$OX) X)X)X)]W:'X)=W(8W%vX)vX)dCX)SWKX)W)&WrX)RDZWVMUX)RX)/$W5*VX)R]X):)X)=)X):BWWAW&+[X)<ܾWS(4VWEX)$!Xk/UWTX)FNX)X)wFzX)WwWiX) W5WX)_߈X)*zX)"KWPX).UX))rW*JD7W=WV+W7~/X)lW>@WQX) <X)pI9X)'X)Z?W@gX)lX)Z4>X):t޶W$:W':X)K[X)wW#W*[V#C@VC W ?*++%R: 8'  Kt-<!d"J) :,"-t+6;$N%_ s'c3'`> "?);1+~'Vd$[5*q>.ug,+!Aq/,e$&%!-%q"[X,Y 90E('f&@+S(!-S!( !ky7.(j'$F }XMX,y$F,:l,9#:l,($F::l$F]yySM%,)X,X,$F$F̞0$FOk0p2,2,0$FMX2,=w#w )г$-8My)yy %l)Q,5&0Aɥ jLWHWHWH%"0$գ'xZRHE-@ .Q  Ec 7º) )7>+I*%=OK|-_ER&>&r: »  `+3-=J*,^5Q.$ua.d IAR$b0 0 N0 ?&!])|CA(-bT> &Cc,z"!p!^*;Pza,73 D- &N$,R'ի :LS;,X!*[)R*@!0-Kм+m#.k-$42$F -|nԠQ*I%h E!4Y2#o"KB8&"(ܭ^V%B"&qVXZ/\#!ď+ {%  ])s-F8W"'.:@yJ- +,Q+ &Lk$D15T$w8~ w+D+!2\,($k,"*$'!{ո%JEZ *Ȫ["MEs"*B&VArZm&**2*H2)V w  ȇW#!$*|V/$- -W$ܺ#=cN+$֡s,8.<,(fd' (w*4+OW @V"7$**~"9 g*,S+Mk&jQ' (.0CBW-T H}'=ة,>1:QU>>tӯ:Y4o>>@L:[#<>>Yό:TBe>>q;:]^KT>>>&ѐ:RB>>Z:VF>>x:XK>>:U7A>> K:[A+>>kR:Z#P>>I:TW4>>qςB:ZF">>c:\H>>W:VO>>:VH<>>:RzH[>>ѿ:T2:7>>[V:[5>>m B:WC>>YΜ:XF>>mќ:TH>>4{:R0>>^e1^:[I>>o:[Cw>>q :TO>>Ѳ:\@\>>e:\<>>f:RS>>VL:X9 >>Ε:Y>$:R7>>kw:U:BY>>@:XQJ>>a`:[*1c>>c/:[Bb>>:\R>>=:X\Lo>>D:YH>>И:Z7E>>H1:Y9r>>r:UN>>(1:W2>>]=:[E>>F:[19>>[|:W3>>M:TU.>>Ζg:[;Dp>>F=:WR6>>!Өl:\cT >>$bv:ZGA>>͕:[=S>>i :SC>>!:U#Jn>>bx:XGC>>d:USF>>FP:ZNw>>2 :X<H>>'" :\NW>>qͺf:R:a>>4:U;>>0X:[>>>:W@m>>-зh:\<3>>63:ZlC>>KP:XEL>>Q:]L= >>S:WL#>>ϓ:T#L>>A~:S96a>>J:Q1{>>ҋU:TIs>>AF:WD>>r:SiT>>:ZQ>>(:T33(>>jAr:V8>>}:W=>>ѣ:SA>>c:V:j>>4̼:X1z>>2P):YQ>>c':R3 >>`Ӟ:Rn;t>>qn:UV$>>;͹:SMP>>K:RR>>CϬ:WbF>>9:Z @>>E?:WyW>>Ig:Y5">>oMҹ:Z(7l>>*ͮ:SzE>>W:U6>>oP(:UN>>$:YL>>%):Va8N>>&oϞ`:W;?>>G:SU>>:R0Ct>>'<:XP>>ϳ:RPh>>&Ή::ZrF>>`ҦF:[Q(>>͠G:[T>>͡Y:V3>>Ϙ:TT>>s:XfQ>>:Z'M">>a5<U:X,5>>b6=:U$F>> :U>>>9UӼ:ZVA>>n7:XF>>GZэ:T8>>Q:ZQ!>>:TD>>^lӢ:W6>>+[Ш:S:>>!QR:YO3R>>i:R 2>>:\C>>&Ѭ$:U}F>>uJ:U5I>>͉:[>>>~:TXBV>>Ӭ(:]ZQ>>>5~:Y4R>>V:ZE>>̦:[ 1>>2 Q:UG~>>fY:[3>>y:RwRL>>J:S+E>>Hm :S3/>>Е:]m3k>>JB:WR>>-:Y98>>:S-=Q>>eP:S7>>:UF>>xC:ZQ>>[:S@>>π:WI >>7Ӈc:Y8>>8ӈq:YP]>>|:X4S9>>v:S;>>MΒ:TuRg>>#^:UE>>єf:Y:>>]):XI/>>A7e:YK>>mK:\4>>͔:XNl>>q:[5>>^:Q8>>_:Y4>>ḩ:S;Lt>>V`:SN>>Ҭ:X5>>tb:SKFe>>vc:ZU>>w|Ϛ:W2>>EvΛ:UK>>C :QQ>>}_[:R53>>d|:UR>>:VrJ>>Їx:V?(>>~I:WM>>L5:[S>>x#:U;>>(5:SORT>>3yh:TNU>>,D:\3>>-E:[TS>>B[:UB>> B:\hUC>> C:R^8@>>;Q:WK>>Ӧ:\8>>n:W;>>0:TU4>>h:S R>>jnG:TA>>koH:ZyA>>Ͷ*:\2>>@9:]JH">>+:QJ >>zT:Z4>> :TV>>sk:TY=>>e7l:T[4>>f8E:V;>>~΃:QN>>:SJ>>m/0:VH>>\@:ZP>>yX:VDA>>Ϗ=:VE9>>ϐ:QQ>>aК:S"C>>j:TUE>>%:V=T>>2:V9>>:T*I>>&Ы1:U8I>>^D]:[I&>> :V4>>=:TzRe>>Q:RR>>?:Q<>>.\:Y8`>>OҀe:ZWx>>L̺d:X@y>>QЏM:S1G>>}Q:[3>>0{:VJ5>>:YH>>U:R{6>>:[V\>>;q:UG>>:С:ZQ>>a:SQ2>>6:VL=>>@0:VJ>>yX:\4L>>k:V69>>1j:S:;U>>:VL>>ҵ:V9>>0:\0k>>MM:\J>>NW:T$>:>>Ξ:V\K>> :W4M>>\6`:R0t>>A2l:UJp>>_Ά:R:>>]:YAL>>ЎG:ZW6>>!@:UJ>>L{t:TJ(>>EFr:V*I>>*W:R?>>Q\:VsJ>>Я":SR>>:S>>>Ђ:X0>>8iK:SVE>>v)̿:[ F>>} :X3>>=:[8>>$ӟ:]@K>>t:]BP>>u:QS>>O)$:ZO>>OY:T\Sf>>H:X<>>и:W2V>>B:]2>>LҼ?:Xq5>>ι:[@#>>i:ZDI >>sT:S3TQ>>ҍ:W>r>>:J#:ZO>>а:VA>>w:X8O>>5c$::\fF >>[b:X2%>>)3:]_G>>l̾:SjMk>>v:VE>> :YHz>>y$:Xb2f>>`:XcAQ>>a:Q2k>>+:].G>>'-:[V>>Sѩ:VN>>nZ:ToC*>>:ZD!>>:Y::>>v":TA>>?V:\IX>>olҙH:RI>>l:Y;IE>>D4:WV>>}:]2=>>.Nx:\wM*>>:XIt>>uJӐ:X"0>>vKӑ(:S=~>>kчx:SM >>6 :SS >>7A:R@>>A:UEM>>3ї:[S>>.:RQD>>p[΁P:\64>> Y':X8>>+(:XD>>,G:SB>>(γ:RDH>>:Y F7>>$NѼz:ZE,>>́:[D>>)yҘ:\<5>>K:]A9>>͑:R5+>>~:XR:>>qu :S9>>X0=:YPA>>\ρ:Z;V>>(E?:T <>>|$:\:>>M:UH>>DͲ:VnD>>&:Xz7>>6:[^@w>>=|:WNK>>p:RH>>0:\vLc>>I:U>Ү7:]PF>> ϋ:Z[DM>>ONF:RG>>ѽ:X>EЗ;:U_A >>P@d:Z;>>:[Ea>>eb0:ZH9>>E\.<:]#>>>:Y6>>xά:TR>>&Ѱ:VL >> hd:WB~>>:SM>>hi:]SI>>:VF >>cf:R2 >>b:XCi>>)i9:W'3>>};:XS>>U:Wa: >>zIl:W{S->>&Q:UQ3>> g:[=K>>zh:Y45>>s\:SC>>RG:V@>>K:UxV>>K":RC3>>L#:RU>>ϒ:UgC>>sH:UCU>>6G,:WA>>Γ:Q>,>>CͅG:UiV>>iH:\L>>qy:RC>>^ϧ:\8>>_Ϩ:U5>>@<:U8>>,6:X51>>lYί:\3a>>@D:RK>>?:RB>>Uѵ=:V=>>Ό3:]K=o>>V:T~R>>):] 3p>>OjJO:W<>>>~vӜb:SQf>>R>:ZJc>>Zmғ:Q7>>b:T;>>:VY5>>[w :[I>>:SKs>>!Fζ:R&4?>>Zͩ:[MG>>"4:\C>>MΡ:\??>>a~N:TL>> Y:U2>>ln:YDT>>:WQC0>>FѶ:S8>>A(:SO>>d D:TIY>><ΘE:TF>>=Ι:[P5>>Ns:V2F3>>:[DJ>>I:Z1 >>Т:ZK>>|:WK>>]w:R:1>>*&:\=Fn>>eϽ:VL>>Ӻ;:V}V>>-[Ύ:V4B>>Aͪ:T=]>>zi :R53>>?::\|WS>>0:ZD>>ѡ:[ B>>k!:X4>>Q :[@e>>"v\:RP >>:W6>>·K:R@c>>ELb:]1>>NфJ:T> >>:RP>>:[74>>F:ZYU>> ͇:\JHC>>і:V2>>P H:]f0,>>{:V NP>>d:T@>>3J:V K>>:TO>>4K:T;3>>t:We:v>>nq:WP>>o&:VV>>ӄ:R Bh>>Y:YE>>=I:WT>>+ψ:YMn>>FΏA:\5X>>=":]P>>>#t:\7>>D~:TI>>O:XOCA>>ϝ@:[`O >>B:\QIc>>e:RU$>>z:Z0>>:@:RDB>>TΪ:R6>>-!:UT>>dу:]"4>>rJ:ULG>>S:]lDY>>3g:Z16>>͈/:\1E&>> o+:QL>>]':RT>>`/:Z;>>'j::U>9$>>-|:R`P>> g:RaJ>> iL:YUe>>:~:X>Q>>'S:Z@=>>}:S4>>Ns:R9?>>C8:[H>>':WWN>>%>:Z=)>>\ё:\9>>T:WJg>>R5 :TKk>> :U]B>>9:RmPj>>W|:XrUX>>R:Y>>>>S t:[HHO>>P":W#6>>YcӒ):YeD>>м:QH>>9_:W6+>>::YrU>>:ZKf>>F:YS>>Yϙt:W\O>>g͋>:S,C>>ј:S7>>Q\e:SO>>1z:YP>>:\;>> A:TQ>>L:[?[>>MrύZ:]i33>>tӿa:ZKF>>A:Yx4>>C:ZwA>>}Am:TR^>>1t:\A>>ӥ:V11>>7 :TB>>eC,:W2}>>; e:V_O!>>ή:RHT>>:\GFA>>4ѳR:ZL@>>::RF>>W:UT,>>X\:WP%>>{8,:Y8}>>2p+:V1>>`:UU!>>c:QV>>Ϲ:SU>>Ҳ:[Nu>>9G:TS:>>U:T=>>V:[34>>ͥ:\t1">>U:SPR>>&q2:VVi>>͝:TW>>xC:U=>>*q;u:Y:>>p:[o4>>:X.>j>>;A:Y!9>>ͳ]:R;0>>\4:[vD>>d:TIu>>{:SA$>>͖:[5>>tϸ:\E>>F:R3Wa>>Wv:Yg:e>>oҳ:UL>>+%:\4;>>G-:US>>ng:YA>>~W:QL>>46:Y)>>>kUџR:ZC>> W!:\,2>>%Gt:[;>>D:Y>>>|:YY1>>:R>>>N:S2>>%:XT{>>DK:Ym>>> F:YP>>><:X E>>]:Y@>>*:SG>>Ӫo:UL>>{7:QB6>>6:U<>>6:U0>> :Ta3S>>:V@>>Tϛx:VO7>>@~ͻV:R4>>1/Ҕ:XT>>)Ф^:VL{>>Y]:TJ>>I|:W5T#>>7:XIO>>xh:X9>>=,:[MAU>>:\P4>>:WS|>>r+:S0Jt>>8K:V5Y>>5̢:WE>>:RO">>ӎX:YE>>%͢P:[K>> SГ:R<>>C+:Q9q>>Z!:]CC>>*:\;>>UУ:T1>>TV:\#:2>>:WK>>]:Yk6>>̭:Y_G&>>] 4w:Y`K_>>^!5L:W>>> :Y;>>=һ:URJ>>zϠ;:USPP>>{ϡe:Zt1>>l:WL>.k:RLI>>:XsN+>>m:\C>>xz:XFB>>,H:[WCk>>;X:W;>>!6a:\xO>>^-:\=>>0 :Rf:*>>_pӍ:V?H>>",:W> >>U"x:[;4>>99-:[F>>:ӭ :WKP>>"':\{@>>βD:]VV>>B:R2D>>3R҆:Y5>>Z6:[PE>> is:VQ>> je:RSTk>>f=P:RUT>>g>:Y|>>>r :R:u>>&Ӵ0:T&Td>>zѮ/:VTZ>>H ':R18>>n4:T6PM>>  :Wp0N>>M>:[>>>D:Z]>p>>;:VU>><:]=0>>qРh:T5>>5͊:ZC>>uv:SK%>>}Υ:TqL>>Xn:VUB>> ru:RT?>>2=:SyD>>yzv:U >>>Go:U>>>mϷ:\L0>>ͤ:\E >>d8:Y Fl>>o:RI_>>7:S>>>8z:V73>>%:X22>>2ZT:[e2G>>fOk:[<2>>"(:[=R/>>#:RF^>>Rj:V 4>>T^:\=e>>:W|?$>>\:XUH>>Ӊ:Z*D>>}:WNP>>0D:VD>>RaV:[O>>4:XQ>>|8:SMB>>:Sa47>>1m̨:WJf>>ӷv:UG>>tC:Xi4>>BYs:X6>>0:T1>>Ғ:[F>>O3f:W2>>hV35:[K3:>>]:ZA?>>uD:\oJ>>{:U7&>>ε:ZE4>>C_:RK8>>4:\1>>Q:\Kt>>Z/3:\:x>>[04f:S;>>Э:ZmG>>r:Zn>>>t:ZHM>>:TD>>:\?L">>R:S<Gy>> τ:S(T>>,SM:X1>>0|:YS>>O>:W:>>_ӛ:Xo? >>4ӱ:X{=?>>#PѨ<:UF$>>mж:SlF->>m.:\M>>:UTF>>+Ϳ:]]L>>X|i::SI:>>zs;:SL8>>.:Z9T>>ϱB:R}@>> :\8>>*:UY9A>>j:SC>>C^i:S?H>>@ϫp:[k1>>1:V1>>͗:UMT>>1:YC5>>H:W27>>Ҷ/:WW>>e :XH>>yhͦ:XQ>>zjͧ:]w9V>>ыW:YU>g:XSH>>]T:S6u>>TN:TGH>>J:U D>>Ϝ:VC>>:V7>>:]e5>> '5:WmJ!>>ezΟ:XCl>>-ҕ1:YI>>:UQ>>8iO:[M>>:[m2>>:ZV(>>N#:V6>> {:\p>>>GoАN:R ?>>HpБ:U\5>>:[7<>>UyO:V3>>Z:]2v>>n:YN>>:ZU>>Ҟ:U;>>?%:YMV>>X:VU;>>(:W:w>>T:S`4>>2Ӡ:[L%>>n3S:T?>>dv:]nPD>>Җ:\I>>|:QI>>E͏:QN>>77:Ue6O>>N:\06>>yӳI:YN>>"dϕF:U<L>>^Lx:Y-3>># :U95>>r:[FC>>L*:V&B5>>:Q:>>s5.:S2WY>>d:ZH >>=*+Y:ZR>>wq:R6>>x[:X9>>$W:UBK>>Ѫ:\?>>(c:YHM>> :R=>>Αe:RG>>[8:ZV>>Fӕ:VMo>>hM:T9>>tY:U N>>΢:X!;>>u<}!:YEe>>v=~:[2X>>,͒:Rk8 >>HѤ:UA>>|S&:U;s>>U:XlG>>b%:XAK>>x:SBOz>>cB :ZkO$>>a:SC5>>dD :S2j>>J`U:WcC>>.Zx:ZxA>>QW:TR>>:S4>>C͚:Sm<>>7H:[Qo>>:QB>>k:Z D>>яW:SSG>>>,7:Rc4>>k$:R1L>>z:S<>>B*B:YB>>w#̷:[OZ>>J 8:VzE>>K^:U.04>>AҐ :]aS>>L:VN|>>M:[U>>| :[C>>jw:]QJ>>!::W?>>{/ :XE>>|0:ScGY>>:SI>>ѥ:XB>>/A:R @>>0:[?O>>XgJ:RX@>>O0:VC>>W F:\8'>>fns:SN>>A:TB>>i:[5R>>+ :VV>>YG:RCz>>Њ:R:b>>Ћ:ZJ>>l:UE>>hѕm:X;W>>ZFv:XM>>G1C:[2>>Χ:WuH'>>):Zb;>>)Y:W1>>1:V@>>r:WJ>> ΍8:UU>>M>Ұj:U7>>N?ұ:UGT>>x3:Vt1>>5:\9>>6:Z6>>:U>>>H8:Y 5 >>EFX:UPJ>>:\VI>>?2:]<VA>>η`:ZFE>>g:Z5>>:\O>>):UJEz>>͆:RYD>>O:W:>>S_:S5>>_ϩ:YR>>>V:Z,@>>:ZC>>5]:]F9R>>6:Y2?x>>|@?C:\94A>>h:U6A>>rѷ:UE >>W҃|:T3B>>3d<7:SQ>>a_R#:ZA>>:U!L>>L2:Y<>>:WGc>>/rT:WQ>>0sh:Xj8->>xoQ:T`:>>"}!:U`R>>1:] Hn>>je:]12>>ͬ:W6L>>:S&1>>B:UNL>>Юc:ZIS>>&m:W`S>>:ZG>>=Ѹ:Tc9|>>:SA<>>c:T2>>В:UM>>g\(r:R;x>>HV!:V8b>>t,:R,5D>>[ӝ.:Q7>>:Q6e>>:Um;B>>fͷZ:V;A>>]f:RKR;>>0::Y>>>qHZ:X<>>rI :UsV>>:X%5\>>Ҡ:T'O3>>DWL:S6H]>>:R;N>>Ͼ:X0>>:T2(>>3:U5>>kҸ:\3>>"Y:TIT>>ӓ:TL@">>Ӕy:TU>> <:W?D>>O3ͫA:Z;/>>:YAU>>^:[J>>#Ѣ@:V7>>Q:\A>>kк:\RN>><%:R1D>>x:\SS>>}Ҏ:UIR>>E:V!D>>:]t8>>::Y7>>B:[+Ta>>:RVF >>_':YA>><;:UM>>>ΰG:UUk>>J:W S>>o:VRN>>$w:RB>>%:]D0]>>>aJ:[T>>?b:W?v>>~:XXP>>E;:X2>>\ѫ:UZ:>> Έ:Z2;>>b:Z>>>̳:SX7>>:S'J>>=u:R*<>>"a:S~K>>.6~:\D>>m:WC>>s :\r0>>̥:YU>>?jҫU:RiA>>k:Xm4b>>.:W(6>>VΚ :]!O>>qfg:R<W >>}:WO3h>>MYn:Y6.>>Ч:]rO>>:\63>>m:])8(>>@Ϋ:S14%>>[:XO>>:YQ>>j:T(B>>y_c\:VND>>V-:TWV>>}G]:YJ>>TͰ:Z?>>(l:R5H>>Σi:X91>>:W-I>>-[:\@8>>:X5>>=϶:Q=k>>:Y?{>>D:RB4>>)΋:]T>>ͣ:T5s>>P9O:\T^>>R:P:\MO>>{g/:RG=4>>d/:T:M>>J':YN>>6Tx/:VT>>(љr:Wq0>>YMr:X0>>y:W]@B>>n:YDV>>Ϯ8:ZGK>>(":R5e>>)#:TQ->>:WC>>[g:Zp8">>|u.:V):`>>:\R>>ώ:S>Bl>>:Yi6>>:R(A>>Ъ:YM?>>*p":UqO>>r͓X:\R>>?Sq:T@>>>Ѐ:]<>>9g:[xE>> R}:R 5>>yy:Z3A!>>Qm:VfN>> ':RS>> 4:XE>>h:YB>>e:TKL>>`͌:ZN4>>P.:\`I>>q:X/2>>^Ӱ:QN>>kѧ:YFM>>΂:Z0>>pB:SJHq>>$c-:U0q>>d:SB0>>e:W=>>8Z:ZC>>W҉:[6G>> 2:ZE+>>+Ν:Ys7>>R:ZA=&>>s:[B4>>|`:VO>>H":VKH>>nϰ-:[-;>>ӊ:ZD>>e:WXH>>c̹:SG>>|O:]MB>>*:X9>>s:TTD>>K:Z)5>>Np4:[2*>>vϪ:ZXO>>u-:Z7;>>)Ӂ:W$:>>:W%L>> B:\5P>>V:W7>>KѦE:\;>>  :WJ>>B7.:VE>>:p:\X4K>>f:TV>>VS:S?!>>Sz:\E?>>b$:YM>>ihk:X1N>>S:YL>>i:YBn>><ҌS:UQ>>j:U?>>ku:WjFh>>x:T0u>>Fӂ:Z=7q>>G @:[2i>>T:\ 4>>8:WK >>ZA:YA>>::U7@>>9ѹ:V;>>Hk:W7S>>|Y#:SD>>:U V6>>3:YR>> ͼ:VhU>>1{a:\bNz>> :[M>>͎:X&Hw>>H:UfV>> A}:SDP>>8z:S8/>>}::V>G>>̱5:T K>> Z:W@>> 6:S?S>>7:T G*>>Cͯb:W 1>>R:RU,>>:TeJ>> :[8>>:WUV<>>s:TiH>>ny:ZCM>>qi(!:Y 0>>`l":WE>>UҨ:VT3>>+ A:]yIn>>/c_:W>!>>Q}̽:Z;>>:[:m>>-9:QO>>g:WR>>v:XeVo>>'c:S9o>>;:[E>>K:[3 >>Y:QA>>>kӅ:XI^>>{8:Z8>>y:[J>L>>^:VC>>G:RlKK>>_:[4J>>?̯~:YI>>@̰:[RE2>>x6:T=>>7:T@>>:]3V>>5/:Q9>>7 :\?>>R:ZQJK>>ӵ}:Q@>>_:XuFL>>Lm :\82>>5:XE>>T+:UJ>>nTλ:YBM>>w<:VK>>}J:VU9>>~Ky:SrUg>>*N:X?;H>>!-:Y2>>ӮU:[(F/>>b:R2To>>/h=:S8>>`:VV*>>o Є:\ V>>WӽM:\W>>XӾ:\D|>><:XJO >>CZѻC:U>R>>_,ю:XS?>>?:UFS>>9:]:$>> X:TP>>z:WK>>8:W;`>>I:\KF>>gy:Q?>>-:R<>>zl:S8J>>@:S2u>>gn:];S >>5W:[7,>>f:\W>>g#:VT5>><:QA>>DӶ:UH9(>>Sц":SRE>>[M:WV]>> :VL>>{:V:B>>:V;0X>>:Q;>>.DE:TQ>>mӚ6:W8>>VTͱ8:Y{V>>K:UD>>p:]{A0>>Qv:WV^>>Go:\T>>t@:[3Q>>?:WM>>):WL>>*:X(3 >>:ZqO>>4E:YtN>>ipD:[aV>>^BZ:S5>>t&1:UF>>/:XdE>>0Bm>:[D>>:WtR>>i?:SO>>:YJ}>>Yc:Z57v>> I:S>>>f:]5a>>7ѯ.:RBX>>̵:X+UH>>]!:YK>>0:UMv>>:W<>>6n:WS>>~vE:SC>> ϥ:\1>> rt:Y3>>z:V>k/:VS>>:WOJ>>>+P:Y3;>>":W+8>>}:RQ>>:Td?>>U#Ӳ:]Y?>>3:X:i>>F:RK >>΄:R2>>p:S4=0>>U':Y31>>k":Yp<{>>?s3:\>5>>p:]*F)>>Ty:SfF>>UzB:YKD>>V:ZWHi>>2j:Z7>>jQ3:]4N>> VT:XO>>υ~:VA>>U\:T4Z>>fп:Z7>>lο:XO>>m:RLg>>F͍y:T}F>>{:Z^I>>fu:]|9>>|:]UR>>O:[fL>>A:[?>>,}:\>O>>-ϑT:V/O>>]&:XMI>>{zО:WNt>>ip:SLa>>.&:]4>>'{:S4{>>_:[.8 >>u:S0>>Cy:RW>>>*9:R2g>>F:TQ3G>>D:S\Q>>?j:XB7>>L  :T|2>>:VU>>b\:[C>>R>Ѓj:ZAF>>ҷ:U4>>,=:U2>>$:\%LP>>:T?w>>~:VE>>:V8Z>>Lj::U[5N>>s`:\5>>%:S>-ϲ:SP>>[^:WU>>^3{:\9>>&=:V1m>>(R:XSG>>~+:TVN>>|*Hl:[7U>> :WGT>>b%U:V< >>BS:S0>>D%΀:T)F>>IW3:X?g>>uf9:[Cb>>/C:VM>>:Y6DG>>JX:\)9>>~!:Rp3>>_:WDu>>{>:VCA>> m::T5>>@:W;7>>:RG>>t:Y? >> hO:S8>>:[VQ>>9:VAa>><XIo:[]F>>h1:VA.>>Yh:WEx>>0+ҿ :XD?>>nӘ:XV3+>>V$:]%<>>-:YCI>>B,:Z8&>>8ӫ^:[ DQ>>vl:[4>>:VZS>>c:RN>>aF:S T>>7&:V?>>:\H>>χw:Z`@o>>:\H>> Дk:]72>>>V.:ZSm>>n :RV>>Ц:XNM>>F:YO>>!Zu:RFGS>>:[5>>Ͽ:UkS>>7{:R+D2>>ӖH:V;>>$%:RO>>W#:UQ}>>Jk:[n>7>>uT[:RLs>>vUO:Z|>k>>o:SG>>W:[1>>d:XV>>|]k:WG>>m\ϵ):WM>>O:S_N'>> ҩ:[L>>5VN:V8O5>>(:U&P>>, :\CE>>":UP>>Ѕh0$U*)_t,,3"X)&7F)GC&1|("b!BK7  {'w-ej'U##T(g*B9)'A'pM' y|,* +]V,5%@(6#Sb- %(e"; 8[LJ* C  d+$6) ,^{U!$Ļ,CIc( zYE%ʨ9&U@ G ja g_ڈ-| Ki!L+ ,$HGyS.m,Q'qp[д3~S-&D)#2R qխZf*V' '`HYB"01^ rZ$I+!(s-E&/-_XrWsXrWsJXrWXrWXrWrXrWs XrWXrWrXrWtXrWuXrWXrWr+XrWvXrWvlXrWXrWtXrWsXrWsSXrWt.XrWrKXrWsXrWqXrWvbXrWuXrWrXrWu`yXCXktpXrWrXrWsXrWv1XrWs{XiW dXrWrXrWuXrW"XrWvSXrWr|XrWvXrWXrW8XrWl|WWXrWZXrWuXrWrXrWs,XrWuXrWuXrWv'XrWuBXrWrsXrWt\XrWXrWLXrWuXrWsXrWtXrWtvXrWsXrWsXrWqXrWXrW'XrWtsXrWrXrWt%XrWtrXrWsXrWrXrWt;XrWu6XrWXrWuXrWsXrWuXrWu#XrWtXrW(XrWXrWs:XrWu;XrWqXrWtXrWvcXrWtiXrWXrWfXrWsXrWu(XrWrXrWtaXrWrOXrWuXrWu3XrWqXrWgXrW XrWXrW@XrWwXrWuXrW?XrWXrWqXrWtXrWtLXrWuXrWs?XrWut}wWW,PQXrW{{WX XrWtfXrWXrWuXrWv+XrWXrWXrWufXrWXrWqXrWv=XrWXrWXrWrBXrWrXrWtXrWu XrWtXrWXrWvZXrWsXrWtXrWt8XrWqXrWuVXrWtXrWu[XrWsXrWuvXrWXrWtXrWvXrWuXrWstXrWrXrWr/XrWvvXrWXrWr8XrWsWXrWhXrWXrWsXrWqXrWqyXWXrW[XrWBXrWvdXrWXrWXrWrrXrWsEXrWsXrWXrWsXrWtXrWXrWrXrWtGXrWtXrWXrWsXrWuXrWvXrWtXrWsx]WX)XrWXrW XrWsKXrWrXrWXrWuXrWsXrWqXrWXrWsXrW XrWXrWXrWzxWX)XrWu\XrWrXrWqXrWrRXrWXrWswyXW" N3XrWXrWXrWXrWXrW~WX).XrWqXrWyWX FXrWr5XrWtXrW/XrWtXrWvXrWrXrWuXrWv^XrWvXrWs8XrWsXrWvXrWs7XrWqXrWtXrWszXrWXrWvJXrWu)XrWsXrWgXrWrXrWuXrWXrWuOXrWsXrWtuXrW1XrWvXrWrXrWqXrWrXrWr,XrWuqXrWuXrWr:XrWXrWXrWaXrWrXrWmXrWr2XrWXrWuYXrWXrWXrWtXrW1XrWrXrWsXrWtXrWtXrWtXrWvXrWqXrWhXrWuuXrW=XrWtXrWseXrWXrWqzXjW?4>XrWtHXrWXrWv$XrWvMXrWsXrWXrWsNXrWXrWXrWrXrWexWX)8d;XrWtXrWu-XrWulXrWuXrWHXrWvsXrWrXrWrXrWrXrWtFXrWrLXrWrEXrWvXrWt}XrWt~XrWreXrWtXrW|XrWlXrWtXrWrUXrW~XrWsXrW#XrWXrWsXrWtXrWGXrWtXrWsXrWu5XrWXrWsXrWr!XrWtXrWtXrWvIy!WX)IXrWrw}X'X)XrWXrWtXrWSXrWvfXrWsXrWuKXrWRXrWtlXrWuXrWXrWtyXrWt/~ XOUXrWuXrWuXrWuXrWrXrWqXrWrXrWqXrWqXrWsXrWrXrWu1XrWuXrWsXrWXrWqXrWsXrWtXrWXrWtXrWOXrWqXrWqXrWaXrWXrWrXrWs3XrWsdXrWXrWsXrWuXrWs>XrWuXrWqXrWtXrWuXrWsXrWs;XrWsFXrWvDXrWv?XrWrXrWXrWkXrWqXrWXrWsCXrWtXrWXrWsXNWX8XrWXrWsXrWswXrWsXrWXrW@XrWrXrWsXrWWW1XrWrXrWthXrWXrWuXrWsXrW7XrWv XrWv XrWXrWqXrWuXrWu_XrWXrWtXrWrXrWuXrWsXrWqXrWunXrWrXrWu<XrWusXrWr0XrWXrWtXrWuXrWvUXrWuXrW$XrWXrWs!XrWu}~DX`X K1  PX)XrWvPXrWsXrWqXrWvtwWWXrWXrWBXrWXrWXrWrXrWtXrWqXrWXrWrnXrWsXrWrXrWsXrWvXrWuDXrWXrWsrXrWuXrWvzXrWtzXrWsgXrWtXrWtXrWuXrWu XrWqXrW;XrWrXrWXrWsXrWsXrWXrWXrWsRXrWqXrWuAXrWXrWsXrWXrWXrWrhXrWs&XrWs XrWt?XrWqXrWXrWt XrW*XrWqXrW\XrWqXrWrvXrWq{WWN N3 NIXrWtXrWs~XrWt#XrWr`XrW*XrWqXrW{GWWRdXrWXrWqXrWrXrWXrWt}WX -XrWtXrWsXrWuXrWt:XrWXrWqXrWXrWsXrWs XrWrXrWuXrWtXrWtXrWXrWvXrWrXrWXrWsaXrWtXrWqXrWXrWrw&WX XrWqXrW,XrWrXrWXyWW-bXrWXrWs=wWWN N3 NIXrW}XrWuyPXjW?&uXrWvXrWvTXrWu?XrWcXrWPXrWqXrWXrWuXrWXrWuWXrWtXrWXrWqXrWsXrW>XrWXrWXrWXrWXrWqXrWuXrWrXrWYXrWtXrW`XrWtXrWtXrWXrWuHXrWqwWX)bXrWv/XrWtXrWuXrWsXrWXrWXrWs6XrWXrWvyXrWtXrWsXrWvOzXWX)ZXrW{XrWv XrWXrWtcXrWv!XrWlXrW}XrWXrWXrWjXrWXrWqXrWsXrWsmXrWuXrWrCXrWr>XrWr#XrWvXrWt XrWtbXrW2XrW#XrWXrWtXrWqXrWsoXrWuXrWXrWt&XrWIXrWvXrWqXrWrXrWXrWtXrWwXrWjXrWtXrWsLXrWXrWJXrWjXrWsnXrWsXrWXrWXrWt4XrWsXrWsuXrWuXrWueXrWvaXrWXrW XrWuQXrWtXrWXrWsXrWuXrWXrWvXrWXrWr6XrWsXrWXrWsXrWXrWvgyXWXrWrjXrWXrWXrWrXrWuXrWsXrWXrWuxX`X) 4bXrWt!w5X|X)7/XrWu4XrWu XrWswWX)bXrWuXrWr{= hX Z8}IXiWQd XrWGXrWXrWu&XrWrXrWXrWuXrWXrWuFXrWr}XrWXrWrXrWvXrWvXrWs4XrWrXrWXrWNXrWqXrWgXrWXrWqXrWdXrWvXrWrXrWsXrWXrWXrWXrWtXrWrkXrWumXrWrXrWsXrWqXrWs*XrWXrW'XrWXrWXrWrXrWtXrWXrWQXrWvXrWtKXrWs{XrW5XrWsMXrWXrWtXrWXrWuXrW^XrWvXrWr7XrWcXrWqXrWqXrWXrWtXrWXrWXrWXrWu@XrWuTXrWuXrWtXrWXrWXrWvXrWXrWvGXrWXrWXrWuXrWvLXrWCXrWs XrW=yXW XrWv.XrWr-XrWyXrWqXrWtXrWXrWtgXrWv`XrWXrWuJXrWsGXrWt+XrWXrWv8XrWr_XrWt,XrWuXrWtXrWr XrWrXrWroXrWtmXrWtz.XX)OdIXrWtXrWuUXrWXrWrXrWXrWXrWrXrWXrW XrWqXNWwqXrWvXrWujXrWuXrWvXrWuXrWrxXrWrXrWrXrWr XrW9XrWsBXrWr$XrWXrWtZXrWuXrWrXrWrgxWX)IXrWu,XrWt9XrW%XrWs+XrWXrWXrWuXrWuwXrWtXrWXrWuXrWu/XrWsXrWrXrWq}WX)4d8XrWrXrWrXrW&XrWqXrWrQXrW|XrWrXrW/XrWt"XrWtSXrWqXrWv[XrWuXrWrtXrWrXrWuXrWuXrWtXrWXrWv<XrWXrWv6XrWAXrWmXrWr\}DX|X)7Z/XrWmXrWsyXrWtXrWtXrWXrWXrWrXrWuXrW_XrWsXrWtXrWqXrWtXrWCXrWvXrWXrWXrWXrWqXrWu:XrWv;XrWXrWsXrWnXrWtXrWXrWXrWsXrWt2XrWvXrWuyWX)XrWXrWr;XrWXrWtXrWXrWtXrWqXrWrZXrWtXrWrXrWqXrW(XrWvXrWtXrWXrWv&~}X|X)XrWXrWurXrWqXrWy$WX)&XrWsXrWscXrWXrWXrWfXrWr'XrWqXrWXrWvBXrWfXrWrXrWuGXrWtXrWt XrWtXrWvXrWXrWXrWqXrWtXrWrzXrWuoXrWsxNXX)OdIXrWsXrWrYXrWsXrWrXrWsXrWt}XX)bXrWvRXrWXrWtXrWXrWs]XrWhXrWu]XrWt[XrWsXrWMXrWrJXrWrXrWXrWtXrWtXrWtXrWu{XrWXrWrmXrWeXrWv5XrWv{XrWrXrWv>XrWs9XrWXrWtjXrWtBXrWvAXrWqXrWvXrWuIz>XjW?baXrW?XrWsXrWrXrWv|XrWXrWzXrWs|XrWSXrWXrWrXrWXrWsXrWv"XrW>XrWXrWXrWu~XrWsUXrWu^XrWt*XrWsXrWrTXrWqXrWrXrWXrWtXrW[XrWsXrWv\XrWvXXrW;yWX XrW.XrWt'XrWcXrWtXrWvXrW!XrWrXrWsXrWsXrWDXrWXrWXrW^XrWqXrWXrWuXrWu0XrWuXrWtXrWr)XrW|WWXrWsXrWqXrWsXrWuXrWu+XrWuXrWsHXrWs5XrWsXrWtXrWXrWrXrWtnXrWXrWqXrWqXrWs"XrWrXrWuXrWr(XrWuXrWqXrWu$XrWXrWrXrW.XrWu7XrWsXrWtXrWuXrWUXrWsXrWXrWXrWs\XrWuXrWuXrWrGXrWXrWvYXrWuXrW2XrWsXrWrXrWXrWtXrWt0XrWvCXrWv XrWrXrWuXrWtYXrWs%XrWpXrWs XrWu~MWX)XrWrXrWsjXrWXrWr*XrWXrWtXrWXrWtXrWrXw+XjW?RXrWXrWuXrWXrW5XrW)XrWqXrWugXrWtXrWr.XrWpXrWs XrWrXrWtXrWXrWuXrWtJXrWXrWuXrWXrWqXrWttXrWpXrWtXrWNXrWuXrWXrWuXrWt3XrWuRXrWr XrWLXrWXrWuXrWubXrWUXrWqXrWs(XrWtUXrWvXrWsXrWuXrWuXrWu9XrWuXrWuXrWXrWuyWdXrWXrWrXrWTXrWtXrWuXrWuXrWsQXrWsqxWWLXrWOXrWXrWvXrWtXrWXrWr%XrWsXrWrXrWXrWtXrW4XrWvXrW XrWbXrWiXrWXrWrXrWrIXrWXrWuXrWsbXrWrXrWXrWrXrWtIXrW_WW XrWvXrWXrWsIXrWXrWqXrWXrWu XrWsXrWr XrWxXrWQXrWXrWtXrWZXrWXrWXrW0XrWv@XrWsXrWXrWXrWuXrWt5XrWsXrWu~XW" N3XrWuXrW3XrWXrWqXrWs^XrWsXrWXrWqXrWqXrWrAXrWvXrWtXrWqXrWsAXrWuXrWXrWXrWXrWqXrWtXrWsXrWt{XrWtXrWXrWXrWvWXrWr<XrWt-XrWuXrWXrWuZXrWt|zWWtdXrWsXrWyXWZ8XrWqXrWvXrWrXrWsXrWvXrWvXrWtXrWXrW~XrW]XrWrXrWuXrWvXrWXrWvXrWtAXrWrXrWsXrWrXrWv_XrWWmXrW6XrWt6XrWtOXrWr4XrWvNXrWXrWtXrWXrWs_XrW)XrWsXrWXrWrXrWrXrWrXrWvEXrWuPXrWsXrWt XrW&XrWr]XrWXrWqXrWXrWtCXrW$XrWXrWXrWtRXrWtXrWXrWtXrWt(XrWXrW @XOUXrWsXrWrXrWs[XrWv:XrWH|qWX ppXrWXrW-XrWvXrWtXrWsZXrWrXrWsXrWXrWXrWrbXrWrXrWuXrWtXrWXrWsXrWrFXrWt XrWrSXrWuXrW\XrWqXrWXrWrMXrWuXrW0XrWtEXrWtXrWudXrWXrWuXrWuXrWuXrWXrWsXrWYXrWrXrWXrWuXrWXrWs'XrWuXrWtVXrWuXrWXrWuXrWsXrWrXrWvkXrWIXrWqXrWrdXrW XrWv#XrWqXrWXrWsXrWqXrWt]XrWviXrWsXrWs)XrWvxXrWsXrWu"XrWrXrWsXrWqXrWuXrWsXrWrXrWoXrWuXrW|XrWrXrWtqXrWyXrWuXrWuXrWtXrWWXrWssXrWrXrWuXrWt<XrWrXrWXrW~XCWgXrWXrWt7XrWtXrWuXrWrXrWJXrWuxXrWv0XrWXrWqXrWsvXrWPXrWXrWs2XrWuXrWr9XrWqXrWwXrWXrWsXrWXrWuXrW XrWtXrWuXrWqXrWvqXrWqXrWsYXrWrXrWsXrWtXrWrXrWrc~WWBXrWsiXrWqXrWXrWXrWtoXrWuXrWqXrW XrWrXrWXrWt1XrWsXrWqXrWrXrWtdXrWsXrWvXrWuXrWXrWv2XrWqXrWu*XrWvXrWtXrWXrWXrWwWX X#WX)XrWveXrWXrWEXrWu>XrWqXrWuXrWtXrWXrWrVXrWsXrWupXrWXrWuXrWrXrW1XrWslXrW{XrWtkXrWtXrWXrWs#XrWTXrWXrWs0XrWXrWXrWtXrWrXrWvXrWuiXrWsXrWu'XrWu XrWXrWsXrWtWXrWXrWv4XrWXrWuXrWvXrWsXrW~XrWsXrWuXrWv7XrWvXrWrXrWrXrWXrWr~|WW;XrWrXrWtXrWXrWrXrWsXrWvXrWtXrWXrWsXrWXrWsXrWtXrWMXrWrXrW zX'X)bd8XrWrPXrWXrWu XrWtNXrWvXrWuXrWs{WX ;wwXrWXXrWuXrWXrWuLXrWuNXrWXrWKXrWvXrWuXrWrHXrWvKXrWXrWrXrWrXrWvXrWt@XrWRXrWqXrWXrWXrW%XrWdXrWrXrWuEXrWrXrWsOXrWXrWXrWXrWuXrWuXrWsXrWtPXrWtXrWXrWXrWrpXrWr XrWXrWVXrWuXrWsVXrWr&XrWXrWv,XrWrXrWuXrWrXrWrXrWvXrWvXrW6XrWtTXrWqXrWqXrWqXrWXrWXrWxXrWriXrWqXrWspXrWtxXrWtXrWrXrWXrWuMXrWtXrWsXrWtXrWs{WWZXrWuXrWt$XrWu.XrWu|X X)8fXrWs/XrWu=XrWXrWsXrWuXrWrXrWWXrWXrWsXrWsfXrWXrWtXrWuXrWvrXrWrXrWsXrWt^XrWXrWsPXrWraXrWrXrWrXrWuXrWXrWXrWv(XrWr@XrWXrWXrWrXrWr=XrWrXrW XrWtXrWvVXrWDXrWEXrWXrWrXrWucXrWt_XrWsXrWXrWvXrW|WW1XrWvXrWrXrWFXrWXrWsXrWu|XrWrXrWXrWvFXrWsyCX8XkbXrWoXrWrXrWsXrWuXrWtXrWvXrWu8XrWsXrWv9XrWshXrWKXrWvhXrWx(XX)Zd\XrWs1XrWsXrWsXrW4XrWt)XrWtXrWsXrWuXrWuCXrW!XrWXrW<XrWiXrWtXrWrXrW9XrWXrWvuXrWXrWuXrWuXrW`XrWvwXrWuXrWtXrWuXrW]XrWXrWrXrWvXrWrXrW:XrWsXrWtXrWr?XrWXrWqXrWuXrWsXrWtXrWrXrWrXrWrWXrWtXrWsXrWtXrWtXrWuXrWqXrWqXrWvoXrWtwXrWsxXrWXrWuXrWqXrWuwX'X)%FbXrWtXrWXrWtXrWXrWXrWXrWrXrWt`XrWvjXrWtXrWv)XrWqXrWsXrWsXrWrXrWXrWxXrWrlXrWukXrWqXrWuXrWsXrWvXrWtxXDX 1QQXrWt=XrWs@XrWrXrWvHXrWsXrWrXrW XrWtXrWnXrWrXrWXrWXrWtXrWuXrWFXrWuXrWtXrWrXrWrXrWvXrWXrWs}XrWXrWqXrWsXrWuXrWqXrW:XrWuaXrWXrWuhXrWuXrWsXrWeXrW+XrWv XrWqXrWqXrWtXrWtXrWs`XrWrXrWv%w{XsWXrWXrWXrWsxWW,PQXrWu2XrWrXrWXrWuXrWt |X'X)XrWsXXrWtMXrWdXrWXrWXrWu%XrWs.XrWsDXrWtXXrWrNXrWuSXrWXrWzXrWvmXrWryXrWt>XrW3XrWvpXrWrXrW<XrWrXrWtXrWXrWXrWteXrWqXrWtXrWXrWXrWsXrWqXrWrqXrWuXrWrDXrWs$XrWrXrWXrWtXrWrXrWXrWsXrWtDzXWQXrWvQXrWzXrWv XrWv]XrWrXrWuXrWqXrWv}~X1X)XrWuXrWtXrWvXrWXrWXrWsXrWtXrWr[XrWuXrWsXrWXrWsXrWuXrWv-XrWXrWkXrWr3XrWXrWr XrWXrWVXrWrXrWyXrWtXrWv~XrWqXrWqXrWskXrWuXXrWrXrWqXrWv*XrWAXrWsXrWsXrWsXrWvnXrWuXrWsXrWXrWrXrWiXrWqXrWqXrWqXrWr^XrW"yWWd XrWtpXrWbXrWtXrWuXrWtXrWtXrWtXrWXrWr{XrWtQXrWuXrWr1XrWu!XrWXrWsXrWvXrWuXrWnXrW+XrWrfXrW,XrW-XrWXrW1XrWXrWuXrWXrWXrWqXrWXrWruXrWtXrWXrW8XrWuXrWXrWzX:W XrWsXrWvXrWsXrWs<XrWtXrWXrWv3XrWrXrW}XrWzXX)bXrWr"XrWrXrWrXrWtXrWsTXrW7XrWsXrWtXrWtXrWkXrWuXrWsXrWXrWrXrWs-xPXrX)XrWXrWoXrWrXrWsXrWrXrWuzXrWXrWqXrWXrWtXrWXrWq(-KS$w"QK yF$N o~g'nj})jR#09R,x+OH$K"l.*8k Rsd*%Pxx twX1'-&9fˍ&Lb%73!ex:(!e;(::!eIBN!e::P(u:UvN!ey(u:x0$!K*g_%E3(cY+!g3ht K5.  h i*V[)%Ng( K.*(!C/M+@g$8!(+&T@N^N JGk-'UNS'/%= = h)-ai {+ω~3BӲ# U\^ о#.~ T.Q@,)N(Ǣ,%TLv\#&-L'@,_<#/*U9/$+/2 P(6 M7'5 3fG,l5UC?#4! G_ZOS^>%r*@.P'OY*TA#j'+'*/9(u K+Q{(: G+5K,'NM.#NVfWW N NfWW N NfWW N NfWW N NaM kd!To+@)nT1.& Ko ۠I-X'> @m%K*?55C"+o 2(ǀ(c K7 3 i+g[@ &v'[.HV|.-)QQE W!JH.14 hcZ- ??W"<, ,$)F#&(h E*b+G#&U#H?!<'N#;<%3%)EMTKWQTbؠ &3'&?J-'" N-' NK -')&?-'* N-'y NK-'y NJ-'.R NJ-' N-'v Nw NP-'$ N-'%6 N-'' NK-'' NI-'+1 NJ)-')E NK-'w NP-')\ N, N}-' NJk-'&?-' NJ-'y NK-'C NI-'$@ NI-' NI-'W NI-'&X NJ5-'- NJz-' NJ-'.R NJA-'&?KI-' NJ-'"x N-' NO-'.R NI-'&X NJ&-'y NI-')\ No-'%&?-' NJ^-' NI-' NJJ-' N-' N-' N-'y NJ-'.R NJg-'&?J-'w NPh-', N*-' NO_-' NKk-''! N-' N$-''&?K-' N-'y NJ-'v N-'X N-',@ N-'-&?-' N-' ( N-'y NJ-'y NI-'' NK$-' NJ -'&?-' N-'y NJ-'] NJ-'w NJ-'y NJ(-' NS-'i NK-'w NP/-' NK3-'&?-'y NJ-'w NNj-'&?I-' N-'y NI-' N-' NJ-'- NKN-')\ N-'"x N{-' N5-' N-'&?I-' NJ-'X NK6-'&?J-'Q N-'w NP-'&?-'% N -'&X NI-' N-'w NI-'$@ NJ2-'y NJl-') NJw-'.R NJ-'y NI-'X N -'+ N-'v NS-'i NJI-' N9-'*&?,-'&?-' Nh-' N-'.R NJF-'] NK`-' NJ-'X NI-'$X N-' NW-'C Nt-'$ NA-'&?-' NJ-''! N5-' NI-'X NJ-' N-' N}-'w NN-' ( N -' NW-' N1-'f NK-'y NI-' N -'$D N*-'.R NK-'( N-'&?I-'v N N]-' NKA-'y NJP-'&?4-'&?-'.W&?-'v N&?-'M N9-'y NJ-'.R NJ-' N7-'&?J-'C N-'y NJ-'&?-''! NP-')E NJ-'* N -'- NK -'w NOP-'.R NI-' N-' NK-'X&?-'y NJ-' NJ-' N-'i NKT-', N-' NJ-' Nw NO-'A NI-'.R NJ-'" N-'$ N_-'v N-'$@ NJ`-'y NK-' N-'+ N-'y NJ-''! N -' N]-'' NJ-'w NO0-',K N-' Nu-'&?a-'X NK-' N-'.R NI-'.R NJ^-'*&?2-'i NKz-'. NJ-'y NJ-' N-'- NJ-'w NO -' ( N%-'X N-'. NJv-' N"-'$ N-' &?_-'w NJ-'  NK N~-'- NIy NI-'y NJ -'&?I-'y NI-' NJ-'' N_-' N-'+F NJ--' ( N-'"Y Nr-'&?JQ-' NJ-'Y NW-'. NO-' N$-'&?-'X N%-' NK-'$&?K'-'-&?-' N-' N-'y NI-'y NJ-'w NP-' N-' N N%-'y NI-'C NJ}-'.R NI-'$@ NJ-' N-''&?J7-')\ Nw N.-' N-') N-' N-'.R NJ-' < N#-'< N -'! NN-'.&? -' N_-'.R NJ-' NJ-''! No-' < N-' NP-' NI-'.R NI-' N-' NJ9-''V N-'y NI-'S NO-' NR-'&X NJF-'y NJ-' N-'w N9-'x N-' V NU-' NJ-'. NK-' V N-'y NJ-'$ NJ-'&?J-'&?,-'.R NJ-', N-' N.-'C N-' NI-' N-' NO2-' NV-'&?d-'&?I-' NJAC NN-'x NJ-''&?K-'y NJ-'.W&?-'.R NJ-'y NJ-' N-'y NK-' NI-' NN-'w NPx-'X NK]-'. NN-'y NK>-' N-'8 N*-' NK-'. Nn-' NI-''&?-' N-' N-'w NK@-'* NJ-'y NK!-'f NK"-'.R NI-'w NO-' Nd-' NKR-' NK-' NO-'W NJ-'y NI-'w NPS-'&X NJZ-' N-'' N-' NI-'* N-'&?J-' NI-'+6 N-'X NI-' NJ2-'y NJ-'y NI-' NJ&?-'. N-'y NJ-'* N-'" N-'.R NKW-'y NK^-'y NJ-' NP6-'.R NJ-' N-' NJh-''&?J-'.R NJ-'y NKs-'.R NJ;-'. N-'&?K-'$ N-'.R NJH-'% N-' NJ-' N-' Nf-' N-'y NK-'X NJ!-' N-'y NJ-'i NK\-'#' N4 NJx-' N-'C N,-''&?J4-' N-'&? -'.R NJ-' NK:-'C N-'X NX-'y NJv-' NJ:-'A NI-'* N-' = N.R NJ-' N-''! N-' NJ6-'y NI-'y NK-'.R NKU-' N-'. NP-'( N-'!&?-'0 N-'% N-'&?-'w NJ-'"Y N>-'' NK -' N-' NKO-'i NK-'&?-' N-''! N-'v N+) Ni-' NJ]-'$-&?-'W NI-'i NKC-'f NI-' NN-' N-''! Nl-'v Nv N)E NI-'w NO-';&?-'* N-'&?-' NJ-'y NKl-'y NK,-'.R NJ-')&?-'&?I-' ( Nw-'- NKQ-'.R NI-'w NO)-'y NK4-'*&?-' NN-''! N-' N -'X N-' N &?I-'&?J-' NI-' NKn-' &?,-' N-'& NW-'&X NJ-'.R NKk-'.R NJ-' NJ$-' NKQ-'&?K=-' NK -'+1 NI-'' NJ/-'' NJ-' N-' N -'.R NK3-'"x N-', N-' NJ;-' NP-'.R NK{-' NO=-'&?-' N"-'w NN-' = N{ NN-' N-' Ny NJ-'&?+-'y NI-' N,-'"&?-'&?I-'i NJ-' Np-' N2-' NI-'Y N-' ( N-'. NP -'&?KV-'v NQX NI-'y NJ-' N-'. N-'&X NJ=-'.R NI-' NI-' < N -'&?-' N-' N-'w NJ-' NK+-'C N-' = N-'. NN-'y NJ-' N-'&?T-'. NO`-'y NJ-'' NJ-'C N-' NQ-' NJ^-' NJ-'. NJ=-' N'! N -' NI-'&?*-' NJ>-' NJ-'C Nl-' < N?-'y NI-' NJ-' NP*-'y NK -') Na-'*&?&-'X NJ-' NKU-'y NKD-' NKr-')&?i-'&?K-'% N-' N-' NK -'y NK#-'$@ NJ-'y NJw-' NN-' Ni-' NJ-'w NPZ-'(G NI-''!&?-' NJ-''! N-' N}-'w NN-'&?I-'* NK-'&X NJC-'w NO-' Ni-'w NO-''!&?{-'C N-' Ni-' N-'w N-' NK-' NJ-'X NJ -' N-'.z N-' NN-' NJ-' N-' N-'' NJ-'&?I-''&?J-'* N-'( N!, N,-'X&?h-'' NJj-'X N-' N-''! Nq-'.6 NI-'w NO-'#' No-'X NJ-'' NJ-'X N -'y NJ3-' NKl-' Nl-' < N"-'y NKH-' NJ-'y NK0-'w NJ-'.R NK-'. NY-' NK-' NI-'# NI-', N -'y NJ-'(G NKk-'&?I-'; Np-'w NI-'#3 NK%-'X NJ8-' N1-' ( N-' N9-'"x N N-'&X NI-' NJ}-' N-' NN-' Np-'&?-'.R NI-' N " NI-'.R NJ-'  N-'#&?@-'# N -'i N-' N-' N-' NI-' NI-'- NI-' &?-'. Ni NJR-' < NH-' ( N-' NJ1-'y NJ-') N-'  NI N-'% N-' N-'+1 NJ-' NKv-'X N-' N-'* N-'&?-'] NK-' Np-'C NK-'w NP-'X N-'% NQ-' NQ-'w NP;-' < N`-'+1 NK-'&X NJ-'w NKF-'i NJq-'H N-'w NOB-' N-'&?K1-''! N-'i NJm-' &?&-'&?-'' NK-''! N-' NI-'% N9-' NJ\-'b N-'y NKL-' N-'Y N-' NJ-'y NJ-'w N&-' N'-'w N-'' NJ-' NI-'- NJ-' NL-'&?-'  Nd-' N-'y NJ-' NI-'#' NA-'.R NJ-' N-'.R NJ-'&?#-'" N-'' NJ-'.z N-' N-' Nk-'+ NI-' NKG-' NJH-' N-'&?-'&?K-' NOl-'w NPd-''&?KM-'& N-' ( N-'. NP-' N$-'&?I-' N-' N-'w NO-' NN-'&?-'"x N NJ-' NJ-' N{-' N-'y NJi-' NJ[-'f NKY-' NI-'! N-'%&?2-'y NJ-'w NJ-'w NO-'y NK-'&?i-' NKN-'w NJ-'y NJz-' NKW-'w NJ-' < N-'w NO-'X&?6-'&?-' NI-'y NK--'y NJ-'% N<-' ( N-'+^ N2-'.R NJ-'&?L-'&?-'0 Nf-' NO-' N-'y NI-'(G NKA-'% N-'. NO-', N-') N-'y NK-'y NI-'& NK7-'&?K[-'. N-' N-' NJ-'.R NJk-'$@ NJ--'-&?-' N-'&?-'y NKB-'X N-' NK7-' N-' &?-'y NK-'X N-'w NOW-'&?_-'&X NI-'- NKt-'&X NI-'v N-' N&X NJU-'&?6-'&?S-''! N&-' N-''! N-'y NI-' N-'$r NKy-' N+-''! N-' NJ-'- N-''!&?}-'y NJ-'*B&?-'& N-' NK.-' N-' NJ-'w NN-'&X NJ-'m N-'# NR-'" N\-'" N-'.R NI-'.R NI-'+1 NJB-'* NJ1-'y NJ|-'y NKo-' N-'&?2-'&?Q-'&?-'' NKK-' NJ-', N-'' NKm-'&?K<-'.R NK;-')\ N NI-', N-'y NK(-')E NK`-''&?Jp-''! N-' NK-'' NJ-'.R NI-' NM-' N-'X N-'&?S-'w NJW-' NI-'' NJ-'' NI-'+1 NJE-' NKX-' ( N-' NJ-'y NI-'' NJ-'.R NKA-' &?-'w NO,-'C Nn-'y NJY-'. N-' ( N-' NJ-'' NJK-'y NJL-' &?J-'y NK.-', N-'-&?-'9 NI-' NKE-')\ N &?K-'y NJ-''! N-', N-' ( N-'% NJ-'.&?\-''&?-'y NK_-' N8-' N5-'+1 NJO-' N-' NJY-' NK-' NK|-'y NI-' N-'( N-'$ N-'C NI-'X N -'y NJ-'. NO-''! N-' N-'y NJs-'' NK~-'. N-' < N-'0 N]-'X N-'&?<-'.W&?-'&?Ju-'v N-'y NJr-'.R NI-'w NI-'&?-' NN-'i NK&-' = N-'. NJ-'&X NI-' N-'.R NJ-'&?J'-'v NA NKp-' Nr-' N*-'y NI-'' NK8-'&?J-'.R NJ-'*j N-'* N1-' NJ-' Nf-' NI-' NJ-'X&?-' N-'y NJb-'y NKu-'! N-' NJ-' NJg-'. NJo-' No+ NJ-'X NL-' N-'&?K-' NK-'y NJ.' NJ-'y NKe-'&?K-' N-'#< N-'* NI-' N-' NJ -'w NO{-'X N-' NI-'. NJT-'% N-', N$-'y NJ-'n NK-'.W&?-' N -' NI-'%6 N-'y NJ-'R N-'  N-'v N-' NI-'.W&?-'y NI-'W NK}-' NKa-''! N-'X NS-', N--'$q N-'. NP>-'&?@-''&?Kg-' NJ`-' NA-' N-'.W&?-'. NJC-' < N-'w NPv-'& N-'X NI-'.z Nr-'N&?@-'i NA-'w NI-' NJ-'y NJ-'w NI-'f NI-' N,-'' NK-' NK)-'.z N-'(G NI-'&?I-' NK-'X NI-'&?o-'*&?-'W NKt-'w N -''&?K*-'- NI-''! N-'&?-' NJe-'$X&?-' NN-' (&?-' NZ-'y NJt-'X NJ-' NKw-' NI-' NP-', N-' NK9-'w N+-'&X NJ-' NK{-'A NJ0-' N-' Nn-' N-' N!-'.R NI-'y NJ-' NK5-'y NJ-',K N?-' NI-'. NP-'&?a-' N N-'&?a-'y NJ-''&?J{-'.R NKG-' NI-'$- N,-'X NX)-'y NJ-'.R NJh-'( NR-'y NK@-'- NO])E NJe-'$@ NJ-' N-'y NJ?-' N%-'.R NI-' NJn-' N-' N-' &?2-'< N-' N' NKb-'y NKR-',K NZ-'<&?i-' N-'x NY-''! Nt-' N -'y NKn-')D N-'. NN-''! N-'&?u-' &?-'. NN{-' NK`-'$@ NK-'. NO-' N-'&?-'&?f-'$ N-') Ni-'&?-' NJ-' NJ--'&?-'&?N-'#' N-'*&?[-'X NJ -'.R NK-'v N N-'y NJ@-' NJ-')E NJ\-' N-' N-'y NKj-'&?-' N-'w NP9-'w NJ@-'. N-''! Nm-' N-'* NK-'.R NK-'w NO-' NJ-' NE-' N-'' NJ-'&?I-'y NJ-' NJ-'[ N-' Nz-' N*-'.R NI-' N-' NJ-'w NNo-'.H1+< !w*%- /6_)4.0L1-5+,(K%&$*S&'<$I>YD% R-|(ʝ!b QA, c!(wtt -$,BD,Wc&qCR*I@+D7 +!{&@&0-X ANSl,B 9{)S&}Y%*8(<-RP* K!{%$ E &]" &>(f-n& i#U52B u1"R *yF*M,A#$)|@ʧPQ'&+-*X:-.4 )Ȁc&:5$"KD1$wŽ.3&"r 4?/G:-KFHj5D*~k C&*S H;'=5_*+x%,)Sr#:9*Hـ +!^",!x~Qz@ $o&V ^Lj$T  &$B~%h;!#$k̜#+&p[x 8%y# Sz* &>5o)1--lN> DC,İ$wI-KM4yZvұ <Mf"e &[& .)I 8Lo#[{D-`r߻.hk*Hs@-4,Nr >l~ G,+LM L%".=%h-đ)t&/M$Z+*5*F($0SQ<!$ AB t)V&'* 88 0FAY0F,0F0FVU0F20Fq0FY!0F$&F=0Fp0F1L0F,y 0F0F+AG0F!0F'A0F!qZ0F-Z0F-U0F'M0F/0F0F,~0F 10F ;0F#0F?0FL0F <*0F(0F&u '%nw:A[!{+ZxK.}A"!#E-B&  ui!"Uӿ&,,3h#K@,@ = FaR;A`J\ qB)9@07!3#%Z QYM!n  <#P >L(%6&S$X Ɉ-&ߍ _'+[!!:+kHXHdʋ)dV#&RK'5׻9/weWafWadWabtX)W=X)WfX)W_X)W=X)WMX)WX)WX)W{X)WvX)WA*X)WyA+X)WDX)WeX)WIBX)WX)W;X)WX)WX)W&X)WEX)WX)W-X)W`X)WX)W]X)WX)W,X)WNX)WDX)W#ўX)WYX)WPX)WqKX)WxX)W0X)WX)W X)WX)W!X)W$X)WxX)WJX)WCX)WKX)WYMX)WL 3X)W7OiX)W,'X)WųX)W]X)WX9X)WX<X)W|X)WX)W2mX)WT.X)W[&X)WX)WpX)WUX)W6zX)W.X)WI@X)W X)W&X)WX)WCX)W5-X)WX)WtX)WEX)W@X)W0~X)WMX)W0SX)WӔX)WX)WqX)WfX)WH-X)W7DX)W+X)W"0X)WDX)WX)W)X)WRX)WX)WX)Wi:\X)Wp4X)W4X)WRZX)WR[X)W}%TX)WjX)WSX)W=EX)WEX)W)X)WX)W>X)W( X)W`X)WbX)WX)W!X)WgX)WX)W)ZX)W*RX)WX)WxX)WυX)WX)WeX)WX)WX)W6X)W X)W X)WN X)W`OX)WX)W: dX)WQIX)WX)WR:X)WOX)W<X)WM*X)Wh<2X)W<6X)WߜX)WiX)WtX)WTgX)WgNX)Wx8X)WA'-X)WX)WqAX)WlCX)W X)WQX)W޿X)W͸X)WfUX)W+X)WZX)W-GX)Wm[X)WX)WX)WqX)WFAX)WX)WX)WrCX)WX)Ws_X)WaX)WX)WDX)WX)W?QX)W]X)WX)WrX)WX)W6X)WX)W13X)W!X)WX)WZX)WX)WX)W X)W!<X)W X)WmX)WOX)W>2X)WJX)WjxX)WX)W)X)W} X)W%OX)WYX)W SX)WBX)WyBX)Wg-X)W[ X)WDkX)W_YX)WX)W\X)WҦX)Wl)X)W\X)WX)WXX)WFX)WgX)WX)W<X)W 8X)WZ;X)WCX)W2CX)WX)WTX)W qX)W~tX)WX)WX)WJ1X)WX)WX)W4X)WjX)W<kX)WHX)Wz1X)W:êX)W?IaX)WX)WTX)WX)W NX)WUX)W)X)W!6X)WX)WX)W%X)WX)WCX)W4X)Wm cX)WUKX)WX)WzX)WmX)W X)WX)WRX)W<4X)WΤX)WDX)WCJX)W}4X)W[X)W(X)WhX)W *X)WʹX)W(X)WbX)WYX)WX)W.BzX)WԦX)W\DX)WhX)WtX)W-DX)W6X)W!-JX)W .X)W8X)WX)WJ5X)W6X)W2 X)W O]X)W 9X)W& X)W^X)W]:X)W.`X)W4X)W ZX)WwT!X)W=yX)WlX)WX)WO(PX)WX)WWTX)WX)WN$X)WQX)WLSHX)WZX)W#<X)W>/X)WX)W>7X)W[X)W.X)W #X)WX)WVA\X)W*X)W%X)WHX)WIX)WBX)WeϱX)W~X)W6X)WDjX)W.3NX)W3PX)W`X)W)X)WңX)W"SX)W|LX)WqX)WX)W@X)W X)WN:X)W\:X)W J.X)WX)W7X)W3X)W<X)W3X)W*1X)WWQbX)WlQfX)WKX)W#QX)W<X)WǸX)W X)W('ZX)W"X)W(X)WtmX)W8nX)WX)WX)W|X)WUJX)W0 X)W X)WC|X)WW}X)WY:X)W$X)W~>X)W@1X)WX)W2XnX)W@GX)WAX)WX)WqΜX)W)X)W,X)WX)WY6X)WdX)WwQX)W*X)WX)WsX)WpX)WSGX)W81oX)W{ X)W%I-X)W:X)W3X)WƎX)W:3X)W"X)WI_X)WS|X)WX)Wn>cX)WVX)W?X)W?X)Wi)?X)W$ X)WRX)W X)W++*X)WHYX)WX)WJX)Wo,eX)W,gX)WWX)WX)WX)WEX)WSX)WG)X)WYX)WX)WX)WX)WЉX)W%JeX)WlX)W~X)WX)WHX)WX)WMX)WX)WX)WڂX)W~"X)WvX)W? X)W X)WOX)WX)W'X)WE X)W"QX)WnX)WPX)W#X)W X)Wy*X)W X)WBN6X)WpUwX)WˬX)W{WX)W:X)Wf7X)W)X)W;X)W=X)WiX)W/AX)W0X)WX)WX)WwX)WX)WX)W><X)WsBX)WuX)WyX)WjX)WX)WX)W&7X)WbpX)W WX)W^IX)WX)WbX)WQ#X)W?؉X)W X)W#X)WM6X)W ߓX)WdߔX)WX)WX)WnX)WNX)W)X)WNX)WyېX)WX)W X)W5P.X)WX)WX)W X)W X)W*X)W@X)W-X)W<ͬX)WwX)W+X)W9ZX)W;UX)WVX)WEXX)WE\X)WFX)W[0X)WFX)WX)WX)W?*X)W9*X)WqfX)WX)WX)WuX)WxX)W/X)WX)WZKX)WX)W4X)W,9X)WX)WaX)WrX)W X)W;X)WX)W PX)W6X)WA X)W1 X)WNqX)WWX)WX)W^#&X)WOX)WDX)W;X)Wa5X)W}8X)W X)W6TX)WTX)WX)W2X)WK?X)W?X)W:NX)Ws:OX)WX)WX)X)W#X)W{X)WX)W X)WTX)W`RQX)WoRRX)W:X)W?X)WbX)WX)W>X)W+X)W#(X)W˫X)W@X)W8ҜX)WLX)Wn X)WHOX)W(X)WHX)WX)WC,X)WվX)WX)W-X)WX)WnؽX)WBX)WuX)WUVX)W1X)WX)WX)W$8X)WX)WiX)W-X)WX)W[NX)WX)W>8X)W[X)W>X)WX)WVX)W!VX)WX)WE@%X)W:X)WB|X)WfX)WX)WAX)WW*X)W*X)W %X)W],X)WX)WJX)WX)WX)WyJX)WMX)W+X)W-X)Wq\X)W4E[X)WX)WX)WX)WL1X)W L2X)W06X)WA,X)WX)W:X)W|X)WX)W X)WQKMX)W#X)W=X)W ?X)W=oX)W+=uX)W&X)W!X)WX)WVbX)WX)WdLX)WQX)WX)WXX)WCX)W/X)W=X)WT~X)WkX)WvX)WX)WX)W\X)WYX)WBX)WX)WOϨX)WBϩX)W]X)WQwX)WxX)WKX)W(!X)W֓X)WX)WKX)WX)W{X)WX)WٕX)WX)WX)Wd{X)WzX)WX)W,X)W"X)W X)W$jX)W X)W2X)WQX)W"X)W/ X)WX)WuHX)W;X)WPX)W*X)W*,YX)WX)W3,^X)WUUX)W{(DX)WmX)WX)WX)W/X)W7)X)WX)W|X)WX)W4X)W8X)WI=X)WAX)WfX)W>X)W-X)W0X)WX)W6X)WX)WX)W4X)Wv|X)W~X)WLX)WLX)W;X)WX)WȋX)WX)W?X)W!YX)WU X)WܲX)WܴX)WAˢX)WiX)W X)WW X)WQRX)WX)WwX)WS߼X)WS%X)W=X)WK,X)W<^X)WHX)WѿX)WWX)WX)WV;X)WQX)WX)WX)W2X)WX)WvpX)WX)W#X)WX)Wj3 X)WX)WX)WJX)WWJX)W=X)WX)W> SX)WX)W"X)WQX)WFX)WQX)W1 X)WKX)W`X)WMX)WeX)Wi%X)W]X)W HX)W[X)WVTPX)WrTQX)W'X)WP$X)W?<X)W#TX)W;X)W$X)W*X)Wl2X)WX)W+X)WSX)WTX)W-X)WX)W4KX)W%X)WX)W&xX)W%X)X)WX)W0tX)W]X)W`X)WSX)WHJX)W1X)WX)WjIX)WIX)W-X)W8X)WrX)WMPX)W X)WX)WX)W2X)WX)WT!X)W7X)Ww9X)Wt?X)WX)WwX)W X)WWOX)W>X)WV[X)WPX)W]#X)W X)WWX)WX)WX)WX)W*vX)W%<X)WFX)W8YX)WSX)W9SX)W)X)W,#X)WbX)WcX)WX)W-X)WX)WKX)W:0X)W0X)WS+)X)WsX)WծX)WBX)W_X)W"JX)WvDX)WoXX)WPX)W?X)W1X)W1X)W2?X)WCX)W tX)W X)WÒX)WCX)W 8X)WyX)WgNX)WIOX)WIPX)WCX)WnX)W4|X)W4~X)WpX)WcX)WSX)WMX)WktX)WX)W"X)W0"X)WhX)WVVX)WVVX)W*QX)WKX)WyX)WX)WqX)WtRX)WKAX)WX)W*X)W{X)W^X)WKX)W)C:X)W=X)W X)WdDX)W(X)WW~X)W!/X)W ͟X)WX)W/|X)W\@X)W"IX)WCX)W2X)W3X)WN.X)WBX)WtX)WX)W.X)WڪX)W X)W X)WKWX)W_ X)WX)WX)WeX)WC 6X)WTX)WT X)WJX)WYX)WwX)WAX)W5$X)WyX)W@X)WcXX)W&X)WcTX)WX)WQCX)WoX)WFX)WhTX)WjX)WX)WFX)WceX)Wp1X)WeX)W^X)WjKX)W`X)WNX)WUG<X)Ws6?X)WjX)Wp X)W3X)WX)WB3X)W3X)WZX)W&رX)W^X)W%X)Wg%X)WWX)WNX)W۽X)W.X)W,X)WWX)WE X)WreX)WRX)WA X)W`X)WOX)W*7X)W:X)WX)WX)WLX)WYIX)WqX)WyX)WX)WPaX)WX)WX)WX)WX)WI~X)W2)fX)WXSX)W|X)W:X)W;X)W/^X)W0X)WkFX)WX)W7X)W6X)W[2X)WrX)W9!X)W9X)WE׏X)WבX)WuX)W{#X)Wh$X)WlX)WMX)W X)W;X)W X)WTX)WVX)W X)W6X)W))X)W8X)WX)WIX)W&X)WGX)WX)WoUX)W{X)W-X)WX)WX)WW>X)W@X)W/X)WZX)WX)WX)W/B(X)W1X)WX)WX)WCX)WP2X)WTX)WFX)WX)W:X)WX)WGX)WiX)W X)WJ8X)WL8X)WHX)W[_X)WPX)W_X)W(X)WX)WX)W"X)W`X)WaX)W X)WEX)WoX)WBZ"X)WChX)W=X)W,X)WѴX)WX)W_FPX)W X)W0X)W0X)W2X)WX)W]vX)WLX)W1X)WX)W/+X)WYX)WhX)W,X)WkX)W9X)W4uX)W|X)Wp"X)WX)W5X)W3LYX)WX)WX)W420X)W KX)WJyX)WIX)WnnX)WX)WIX)WXKvX)W_X)WjX)W: uX)W8CX)W X)WxX)W~X)W5!X)W!X)WGrX)W X)W!@X)W;IX)W)X)WX)W#X)W&FX)WZX)W TX)WX)W@#X)W%X)WtECX)W+X)W?X)W),X)W̟X)WFX)WXX)W^A|X)W*X)W1X)WaX)W1X)W[$X)WַX)W X)WEX)WxX)WҿX)WX)WN6qX)W1X)WX)WX)WN^X)WHX)W9X)WX)W;X)W#X)W X)WrX)WboX)W'rX)WX)Ww X)W(X)WQX)WX)WZȃX)WU X)WX)WUhX)WZ5X)WX)WX)W)X)WXX)WWX)W"G+X)W GX)WX)W5X)WX)WX)WLX)WxX)W5PX)WX)W6X)W.X)WX)WV%X)Wv X)WIIX)W93X)W ,X)W'X)WX)WX)WYX)W X)W5X)WX)W7X)W7X)W IX)W|U(X)W%xX)W.zX)WRX)W'X)W%:X)WX)WeX)W iX)W$AX)WoC+X)W=X)W,X)W,X)W[PX)W'DX)WX$FX)W X)W[oX)WX)W4)X)W}X)W͎X)W'͐X)WvvX)WCX)WCX)WX)WX)WjX)WX)WڣX)W X)WuX)W)7X)W\IX)W3X)W X)WAX)W/PX)W$PX)WX)WX)W|X)WL;X)W%jX)W=^X)WX)W,AX)WĴX)WUX)WrX)WpX)WX)Wi#X)WeX)Wn HX)W IX)W@X)W)X)W+$X)WUmX)WS*X)WOX)WX)WX)Wr,X)WVMX)WX)WR?X)W.X)WI.X)WX)W*kX)WYxX)WgX)WLX)Wy,X)WpX)WksX)WlRX)WJX)W/RX)W҂X)W2X)W3X)WX)W63X)WaفX)WX)W X)WåX)W'J X)W69bX)W "X)WMX)WNX)W X)WKX)W5X)W5MX)WPX)W6߮X)W2X)W۰X)Wx(X)WC (X)WhX)W: X)W2X)WkTX)W X)WTAX)W*,X)WFX)Wc]X)WY=X)WzgX)W+X)W!X)WDX)W7X)WX)WVX)W$X)WnX)W/ X)WUPX)WKX)WFX)W}X)W{,X)WX)WVX)WX)WGX)W(DX)W +X)WX)WX)WX)W9mX)W nX)WtX)Wb X)WPX)WP X)WX)WJX)Wq4;X)WELX)W#X)W;AX)W$X)W4X)W<X)W3X)W'X)W6VX)WIX)WKX)WX)W?X)W#X)W,*X)W#X)WD .X)WRkX)WY*X)WȰX)WYX)WYX)WX)WE=\X)WX)Wm&X)WBqX)WX)W1-X)W>5X)WX)WX)W@X)W)X)WNX)WPsX)W+YX)WkX)WUX)WX)WWX)WHX)W"lX)WX)WbX)W/X)W5X)WFHX)W7X)W\OX)WX)W^8X)W^ ]X)WJX)WX)W}X)WX)W7X)W-X)WZ }X)W9^X)WX)Wh"X)WVX)WQ=X)W@NX)WX)WGX)WSXX)WkVX)W0uX)W4X)WMX)W/X)WQX)W&X)W{X)WX)W<X)W=BX)W1X)W1X)WWX)WOX)WoX)WX)W/X)W9X)WcLMX)WFX)WŸX)WX)W+1X)W! X)W+X)WL9$X)W0"X)W"X)W  X)W*X)WX)W$X)WX)W~X)W%X)WX)WSX)W kX)WET8X)WZpX)WzjX)WUX)WX)WX)W(cX)W X)W<X)W)5X)W>@X)Wb'X)WVX)WNHX)W)E9X)WX)W10]X)WX)W&X)WzX)WMmX)WIX)WX)W-X)WX)W"@X)W*X)W/X)W4X)WGmX)W3X)WMX)WRX)W -X)WYX)W 7X)Wz2X)WE X)W8X)WX)W$X)W5X)WX)WSX)W X)WXX)WX)WYX)WzVX)WxX)W R&X)WR+X)WX)W*cX)WX)WX)W,X)WX)WU_X)W>X)W'X)WQX)W/FX)WUX)W1X)W{X)W%ηX)Wm\X)WHX)WX)WX)W"ŶX)WGhX)WKX)W/X)W(X)WX)WX)W X)WX)W X)WLX)W2X)W:X)Wf8X)W14hX)W#rX)WƦX)WƨX)W_5X)Wd5X)W@$X)WMX)W;]X)Wc&hX)WX)WAUX)W>tX)WqX)WTX)WŷX)W@ X)W.eX)W8$X)WXX)W2X)W*X)WxX)W|X)W4<X)WlrX)W|X)WX)WC!X)WX)WX)WWoX)WhFX)W/KX)WIX)W.X)WaX)WNuX)WsӠX)WX)WX)W~1X)WX)WX)WT֭X)W\ŃX)Wh X)WsX)W X)WX)W;X)WX)WSX)WX)W+!}X)WYX)W5X)WUX)W(UX)W>X)W9X)W >X)WD]X)W:X)W}$X)WnX)WeXX)WXX)WSX)WLX)W;X)WgX)W|X)W*> X)WS,X)WX)WHEX)WX)W[X)WZX)WAIhX)WD3(X)WX)WuX)WaX)WX)W3~X)WX)W{X)W]X)W OX)WܑX)WؗX)W$CX)WM X)W  X)WRX)WX)WM3X)W@ aX)W X)WX X)WH X)WmۥX)WۦX)WX)W& X)W !X)WMX)WBX)W X)WiY-X)W.SX)W>rX)WDRX)WXXX)W,aX)WHX)W_X)WFX)WX)WX)WX)W?6X)W=HX)W(C"X)W#X)WX)W=X)WMX)W)X)W;X)WX)WX)WQjX)W X)WX)W3X)WhgX)W%X)WlNX)W|X)W9X)WX)W$X)WJX)WOX)WSNX)WfSQX)W<.X)WlX)WIX)W X)WTX)WO7X)WX)W'X)W"X)W$"]X)WX)W5?X)Wm?X)W/X)W;)X)W X)W;X)WTX)W;X)W*X)W<X)WȥX)W6X)WX)WtSX)WRX)WV?X)W0X)WDX)WX)WX)W X)Ws,X)WKX)W5yX)WMX)W X)W X)W7X)WM X)WT" X)WgX)WsX)W RX)W!X)WX)WX)W%!X)WPSX)WX)W7X)WPX)W!@X)W'OX)W>X)WX)WX)W X)W@=X)W@>X)W$AX)W$DX)WQ X)WX)W+X)W}+X)Wf?X)WCWX)W[tX)W[uX)Wg.LX)W)X)WX)W^X)W,+X)WGX)W2X)WF~X)WdSX)WX)W{JX)WRX)WרX)WX)W ~X)W%X)WHcX)Wz7X)W!X)W.X)WX)WŰX)WX)W%X)W`nX)WtX)W~<X)W'pX)WX)Wd@X)WX)W7xX)W80X)W'X)WX)W X)WX)W mX)WyQX)WauX)W@vX)W-X)W+X)WuZ{X)WZ}X)W~X)W-X)WIX)WZЖX)WX)W>X)W?X)W)X)WWX)WAfX)WN4X)W,;X)W3X)W֧X)WX)W}X)WK"X)WX)WWX)WGX)WX)WXX)WOX)WHJCX)WGX)Wc9X)WsX)W%X)Wn-X)W3.X)W),:Q-Y;:*(Z-zH]*lf ' K&i KNEDvm $V M$0W T((%(TC~(I"M-Xԕ,./ #:,%Y*N!v$0X*>h  OD * )̏X4 W6"A:\ +9"m(P+n' [5M5M5M{5M5M=M'[ cG +T'W (5!!&#v$-ϐ޷- &R& I*~K_]-?"sP# 8$]!o+>-+C#tXg.֟z&wB{.g-+Z3'$kK,R7-F<ӥAEJÆ'~+EcZ.q)0..-d} D%;Y*$2%Rt'**FQ\%yX.WN$%WXgN+%izoX.WN-9%X4WN,F%X.WN(I%kWXPN&v%4}p$ N'%oWXPN)%r+VX.WN.%|~WXPN*%~yW N%`_ Az*f E>6 %)ESs&IvSlC."س)j,p.t U@6#.>"h.XL(.!&X)aeX)WacWX)acX)($.. D'N,$a$?'EO HL$Q 'xI+j%",$) V&C E@e(R/y)P=$w#-Kb+V,+ -@+'I Y 7O#Q< 7T*O-b.lM[XX [1#߳)`"^ )T'A ,CSv$a=A&Tk+r$,uo++UyM *~&x$@ iJI[0xH)Np, )U)%B'1" MN,gzC̭_&s"° o U-I 4S>'M'#!;( b,4BV\F[,0 $= ) &QE.xQ*M1EF!UA`"F) -02#O6   ."j/ #9( pQ&Z )2$,mp(4',( )%m$.N,H ?G #W,"`W{-5E-E-?(J#X~^7w$7IK}(M0% c XEiXN^yW.WW!: D`N 0 .0W0w{.RW &J 0?#WyXv"xXtZ% k`{X) , %"],X~  SWX)'Xi wp il_X0WX5iX.w %w,  X) X' 0di d0Weyi &XX 0 0 b0XeX [W fn [&XXVa,q OXt9J0WSW 0  X _!VX*iZ_wKw : - O`.3W $@XZZw]#002VyXNqXW_*a 9XX_w]# 0 Wwey  3  %WO 0 yXN[0WX>.RXN R0 ^_s(  .*Ad &X4X'XWXkG]WxkX;'X'Xy,fW&XWYv 8 )EpX?_%3 "[y] L'. T0%NW!XyryX'.RX.U   40Wy%W:XXu07fnLa]% ]OX3wWQW "0W.RW 0 X2X)@.RW[W  <YaW #3 t},fW_  0 /  #  0 *a$I `  WCs .RWL t w r&W0X *(yXCfX;XEq'#X -Ze K" *W[DV90Pw-J a_H  r%^Xf 0? ^XZY   0 a 00/L 0$|_ <;Xt:Xz*XXv+XO0.0 X $XO.XE'X( 90W& 0X[&q:Ww 0 _ W (-0 *_$]" +WXNU.XYb&$f0 w0  T&Jk %>X)R+FqXM0X"kXN 0x c`" 0  y@ r h0 M e 2 J} ^X;4 W QXyX~l0XA.RWE.zZWPF T] |0WW]W_<"  (XpMnC]&YQyX|#0XP&W0W d0W t XaoxW"#GWeWg,fW$X  20Wy0 0XWT </W 0W_U]  *0 WIXsX7 2AD 8WWXjW ^XN_T&K _` y W Xt.RW0s0 ,WIwY 0Xl&W\$|mSX&XW*W%Xj_f- o b $ .v~(GW_]% %DbW0 c'.WnWm)0X.W*w*W`&W_y _%X) q)0XXW`7&WSww] IYvOXa,fWk* 'X Wy{X` %O- 7/ X(^X90| ! r_#]$ @CWW>&KX,_)0 XyK0Xu%zX2 0  $ X 0XXjM+1 a?0 FJ$@X sw wW[&X._P. $!&X 0 y IX_yM$k0W(^ W%XcoiX1iX0  &X) _$X530X70 a0-]BWm.$ZwL r0%t"Ys W   O  b W 0 yXaO H tXXq'PW_02` * `8 o+1 0$Z qX& K t '0W ] y %' sW8 Sv'W`XNW AXD uW Y}GXe0 Oy  =2W#0&Xj0W q,fW0 )Ep W~yJ -w <;.:bX '!X} X)" /y   ( C]& WkwP mXQ} PW;U ) AD 0 ]' ,f h ,fWa'YX 0 _y1(v9.#W' 0  p KX2_-w '!W W oyXR, D <Ww W,fW<05 (GX<6(# VLi W[+10 Y_'](WT,W_,fW_''](WR0I_! p Z)_( vn0 #W3]X%V0 &X2Tb 9_$~T^.RXJYWW"X)F*j@W,jW".X-W-~] X.,fWyr y az'! 4y `**['!3W wSvz\ i9XXWW6 If d.RW_yF6.R8W"X -XPW0v)X\ 9Wp }_A]- 0 q+XRX}eX 0%-WXO+&WMC]`-w ^+*% 1,fWv g u Y(W_" 0  W, X)7*BX'  H+1W 0X60 qy L00 0PW) @ r']W%lX`oyW0W0 #.R-W_C _W:V 3L)0;q20X{$g.RMX_m&X[XEvwIX2.*YWL%EV.RMX&_6 ( LbyXK_ $]" 'VXO<$DXBWW4"W0  yuW,fWqXW z%2 9Z WXRX0XQ Fd 0Ry&xMy Bz{l'!3`<L0XcXwyWXW &.RW( :0X,KRWL (+/X2 *5 =0 ZY.O0 .}X0 0_jw Fp" _ Q_T/y*W)EW  ('!N  (r s )EpWiX R0 9 0WQ.10 Xy9WA!:WX-Wv"W yi yW RX9)Eu X S qX\"q rt0 X' I0  J!J 9!yM )E4W*Wt$`X(_-  0 eMj'yIWXW!,lX#0 ;" W_  al.RE eW!.RX%_i} oW$| DK"], w" Cg_X 0W_P\ Xm{,K )>.RXraCX9C'XwAQW0X[ PyW #0W$w%F0(0[0 0V LV+]W%  09  0X=0 Q0W%'!WyWy*~3D'W.[b0 ^,WdwQ Xj` _rW{W'XWGWX+10 oWW XN0X7 0 - a_**Qw]/yXN!+]W fmP_d#+ *]%u.RW_b&0W2)X Cp  / aX 0W0 bW XA 0 T VWyM 0vW Xk y0  -X3 s% c0 (#<YWX$XPWO r0 i_E']X XaX,w] E0  3yX .RX iX ~Y/ +0 @8X]]* +X  yf 0 D'!XyWGW ( e Nj'! XXZ"], 0 Q0  B1^0W~W_] 1_u W rW_$ 30Xw ,W(yWLA]-p$s K  W_.RMX ]'V } M  \ Ry1Xg' hN/ /*NXX! _$]1-X2W-,f 0X*}WY :0 ._y w]k{M0 0S X$-X :w %2 XWv .XU:] %yDNe(GXNs0 wC>DX: 00hM@0Q 0 0 01_ .RW /C ; {AWWXWqyX w? bA _V T!yl(W\W +XV!J"; CXP0W~ (WzW}'XnX w0D ww !.RX8e00W+ . n$]"v2WW0 ! .W MH0P.\w  "],  &XXuyX|7O ?. ! Z X:  t / &X4XE.RWX#X _y@ 0Xl (_e5c_] "L80W C0XQx)WX& { ".X )_0W?(#W&W]#!CsXw U <W&+1!  yW S XMsX2 o#  w  mWy 0W \0 0 8 <%WXt2'Xw)Eu"}0X_l*] [0 5$ /Z9r MPXW): i  mA Zw 4W_w -:0XE X)X 9 P] _;w] 0W X^X ?'W_ wni`0* %|*W.QS0~6W^'oCY j0.C^X-u V) F`; lVW(WKW2%X1) S' Y*]+P_kftWxX\0 _*p_o'@.z d] a0_* 3o].yW~)0Xc00XQo00 0 }Zw] f  0 [x Zg%WQ.RXCW = 4X&WR0 W4wP XpZA]- cK0q"xXt0  f)])\`"W X *.$W_+ %)\*Q.X3 /y PX'0#WXC]&W0 FyX 6yX{w (+1WXQ0 V9}]20 _.z Q)EpW gfW!W  9'X'$ %.RWXER$%E XXR0[0 uW 0 @  0`;P "8,fW0WXz%yWyXW:w5XX4eV 4fX`zWs0X]y)Euy&W 0Xvxv<XO!Jx.MWfX:   !w* hCyW &W,X&XX|0yWW 8* 3lw7 JwGW HXXV)W 0 yW10 )Eu x'X: dY'NW.XXyW.0 E.bXVX*W>"| 00vlX"^ t (] W-0~whpzCXX -_ewpB$quwXy Z.zWyMXX %E x&Jjw. -k ($h0 '0WP0W.h r.0X$TW.RVXt W",UX%6  Y 9Xw] G }dyX?/W_(  g jX X;I/y JyXhwI`/'W *w 8+Xk{wW dR+1C,fWlW V)X  @0W0&fQ']WX2_K W q S|w J/, W50 s ,t ^)]) _P{~ 1i] *_-@ C_g$s "w]  &C CW#,lX VW%'W(X2}#XWfn /`']W^$]1^XXX;l &W0W0 \F $ &W~0$,f 0  MY_ $]11 $XXh (XkX"|XB &XsA0   z%WCW0 R X`y 0p *5 j 0m0WFW,f fX:. &Z <Mg0 0W $@IX0%,W XW * (0 K X> X (GXD0W_z$]1 izWM u XMF0XKC]W_w] Q@0XulW'W.W(W(0ywX<A0 qW1XBhWfLW W ki].T<- 8W f__ $C 0W cBW0.z </0WG)E4WlyX XF q0W y ^.RX80WW0X'!Wb0XasNW[0X\/>  70XmyMX'0XRwXyX ` `L.z y ]_w] B;fn }Xd Q _Y'!NXE0XNX&X .RW`:* GXEyX ~.zXkR gQ\&XX&j.RE 7TWM w  DyXj!X80X0 &iX#z0A0 9'X'ky y 0 .{ k+1 /yX' <G?#<YX~W #<YW,W{W0W]%Xk >#'X.RX !Wp.zy$*( C`)X0 9?%6 .RXZZdW_,] m 0M*" &ZXRjX[Xs 0 0 D.)+W4 !w yV }A]-  cyXhYD W!J LMw 'UYT P] z; Xt`mXq ] 'Ow _]0 -{W 0WM  XB1yW0 "c (X kQ0W#0XB'<X' p #'*X:0lML0XTxW] 0 j0 r{.W)W- ; CX<.R-XaYy]!Xe0    '!P CW 0 0 d..R[%_`" X)W-X-'dWXW`,XECX 8 0X~)EpWMO %D( X2 m] D'!>'! W yFX /yXj0 ~ D  e0 `4C]&Ys}]Uo% 0 h.R6XEfwX: <_ 0X,yBX:%w = WaWji]. hrX;, KYv *W }Wm'!=X,$| f0 ] Xa .RX&SX))\X2`M Q 5/yE'#W_} jSepW*) n#<YWwC 0W-W *I Lw yL3w ^XW$Xa`  9 SC]$WJ+^X .RWS0cyXaSy@ X'g.:[+  eX2&+zW   I w7 @Xj)0W XX.Rz_ g MM+Xs k*>X ! W0W0W]5} ]]6*XIN0 H)_yW00W#WW X50Xv&W,fW7$-h4.RW 0 yR# `(#W0)0WbW yX=PYv  ,WXP WD&Ww Yv3z X|+% ^   >yXj'!X;`DWXa0 mX=<$sR0VyX&,  (` R(]* 0Dk w sS qXN`1%E_BY #W/#* XX} `&  XXB.W u.RX2 ywXDXO 0 @.RW_0X]j0_F e%-Q W5X94 T0~ _% iA9 s_C%qW d.lX V H&W |~ XtZ+p` C]X 0W - L#%N _%y   c 0 B0 9 $@XK  .R]XrxyWn 0B xXn*~ <0q 6N$P3&XW !   WqXlI0XGy j 'W.WPw.RWgXsWm]_qwz , XW_wf 0X?WM '!X $]1  X)a0 Y \X*,fW#XXXWz0XjXj  XzZ9C `'JX'^.XO  U AhW!yWYZ -0 Dv)Eu U( 4)0 3" XFK{ 0_] W4 gX`   Y XW X']% J:W,fW ^UID zyWymX//!yYyX`& Xt!J yW f'Xk0^X0W_O0 JN 0 YD X])0 Q9' , xvHX2y X0 0EW$Qz0WW! pWK)0 Qy] 7_.z `0 =qWc#'W+&XX @X1DW<QWw i 0 , )0X] s -XM  W0( k0 r`*iz ('} jy W_p <y<  1VC]Ww _] &WX%XgVXi0% _\ Xh,@W K K fnMX ! vX+W0X= .RgX'  }0W~$-5X e1 <W;0 \0_'_%2 0  z$WG'](WW](%  ^ AX0 W%bX^yuW0X*. D_B  . 0c$VX'm . .X  fn  .W3  . $XXEXC_Yv? 1.X}*W E#' /X:Su%-)W&XWD)0 Y+s _)EuW*AWGfn ycW($ AuX))EXs  " W DX`R]W$@W:WO0PXWhC <D'!8 oftWl%qW  \X  0 {'W0 U*%W\'!m nyXWvC20)l!%WK!J # (GW 0Wz A _#- cfWX) w ^W[*BH   <  M'X_=(]*V0 .RX0W'R`) Mw] V0 }]3+ 0WyHW6y 6. ;P  0WV'!WGWT N/WW: ( .0Xvz.RXn 0" P] =yw Cww H&XXWCXnR!)W (rX"YsX2 \$@cLU%)EpW t^W,fWc0 ,f/0cN0X&XX`0Ryw] 0  0c0 X>`0  X#w-X>V9 ,f  X! /uW0W_]X+)3 GYv20 _W WIXW+1! _i]. (,KX ]yLO0 (w h6 VWw X:r <Ww QXEK0  i3Wf&XX _$| X )`<Yv 0 Q.RTWw r'WhC)Xq W'! }0.vW* fH*XF=&W4 r0 XWW[5xMWq0 .RXW.WXW,] f;XET <XcW`MWuyWE'!1XkMs 2 X;ty]0Wc0 $_']WL%3 ~ !Xc`0/ y%X`WAyIX |#]$ ^.RKXJ'](W W0X3'/y 0 0X>_G \ !J *'W.W ( Xk_WCX.W.W)7X_ (  sW% 'X " y S)$]1_$|. W _C @$DWW .z R.R-W )EpXm WyWX{w ) "x 4j*WvX)0Xug!8X)U0 &XG0 J s0DWyW0 0 _"| - C 0l E0 _+s _WdyWU W'XD X N_/.z^Wb-W_Q*] m  =W09  W X  $ ^jW~0W WyX=w0 A aXF'XQX1\.yX\0& XMw0h w i ,s >X'X^L,Xg -@t +*%_ /%0 _Z*P -BwWVW(0Xnw +8WW0+ rcWf8W'y P ( @AyWg(W Pc,fW 9 <% 0C0WyFW>"F ?0.XW\ ^a1_LnftW m ,X W yDW0 =wyXeU'W.)+ (Q#'WU #0W. $Y&Wy 8WXaWC-  0W[ |c0g RXr wk_+s _~ . .W a%6hX; wn! p ,X;_yXWu OW>.WWv=Wfy  w j_P W90 HWU6gq'XX w A_7Q$$ rC b'U #0  `] AW0XGM 0XM`+]  0W0 Y*]%(wX?10W#'SWX  0 X{+6       )\X2XX!* &`w] j/ z}%X;0X<`( }^q cs'F]. } "xh$XWwvXO 50 }_+ m] I X  (W^XXV  kYD Q  m 0 z! )w.(LcX .0Wh$  / 0XI \W"| 'NY8"xhXt. D0  w  W40 qWr < M-X2 +0 aLMq8 c H D0X 'X 0XWA!X* 0G^] %6hX mW{XT$`W 0  Q _'< k (^W / 0 _XD 7;&fX W].RMWK0X3+1X,XQ``8 ]_'.sw?X> w.[ Zz E] Y. t |5XE_@']Xs70W  U] X7=0  Xk ^wzX,[)])FyNw IyBvX2! 0W >rW 0X/0 ESXkHCXN ZYv RzXkG'W`0 r'+X0q q9 W ,fq.*  w ]*] c  .   (.}XD0Xh [W7yW&$r <H[']W 0XlC0XX #/W0X"r(  _M` !W~xW c&XXNX2f,tXX_\ gX)1W .R?WX) m] MX2 r]  .R!WCX`%w -'G  Wo{WE0 wL b #Ww?. R`, 0 0W'!"],XNWC 94 <  ^ <~3XUW_.w ] 0X =W,fWa*% X20 0L( i )Ep %YZ W ^.RlX# .h MnuftW " Pd)EpXb0  0 ,f  X7W)0 p'X_}] D% r/y)EW_LnXWX(#'SXDWDyXN0  kWK  yX&  ['1 n  'XO  ''X'*5 R}yXA CM0X_k] E X "X2&XXDw)L $quXN W0E'c  0/0WJA4XN0GXk"W0W.RWo$ 0&X)y@ n)0; DW^.RW'X &0W:)\W QW'! 4 f.O] ,fWn--i l x W&0 00yv] vW`-]Tb #W |0 Seb&WLZW XNw Nuy N0 XXWyWv W:]+ F- 6 0Xy$0W !ZW0 P<Wt0,fX |IXR'!X_%bW`*)EpX.)EpXBfn .RX10)0 A K0W0 0X>w Xk d k{{$@W0 =i1 } v'!=Xk`i]. X2 0 t mq w0X <WWu q0 } pX&$DR (gG <0 bVxQ$ !l%yEW X r-.z Wy _"YZ I G'!X#T W 0W *    0 "xX. s WW.W7w} *WXN"],_ d WPXs%X>,@ 6W0XH %6 9XWWD00 {W  +)30 .zXW_0y,XN mX6`)]0 _! 0-7yW 50  8X)XT[wX`!%6_` KXXtR.: '!; U~#6< QXjSeDXQw &X);$d $h/yXF y D509w]70  BXZ0<{WV0 yWy :E.RXN < Q0 ZWMkL e2%a  z3WY*] sX o0  PX r]f.RW_} y 0+-  W X`)yW (W$@X rW 0 B\+s{0Xd'&WX}*  0 $Wn0  kXkX  <M0 C rD X<0WP.y 0X_pX^C]o0XPYv0 0 6X240 DDX'yW['! JXcN0  0 #]$ iwyW0 '.e@0XmX) 0 XJ X~aWq0W#X ^w EL!JF,fX01  XXLC.x`AX4& l.RWW &W %3ky"Xh XT`5wX. (`X;n0Xv y,X0nw jWK\W\*]:0  >Wb#$GWS  Wwn w_Xw'XXpt.Ir+LX2Z0  0Xu_$<] '!3W_]  K.zZ 9 8  0W0 w.RWX .RlW0 -kL  W_,fW Xw2 XyWw (y<YX .RX:~0XO0k W`3] 0 ] / S0W[0Xk' h + 0XAyW w} 0`!XnR0X EEX;^.RX#0W Xt T<\;bAWaW+1b  x ,fPX1DWXw[ Y%}wX20UW^* EZhzy: lX $XsR*~ 80ymW ;XXR%'<y,W X'U*B rXV,$GXd.$- 0V0 p m  Aw7p_-] F^W0W0 ;'WC]X4 a )EW0X]0W  "X w8K$.XX 0P X XeXm.RW`}( e P> fWM. mX ?0WSU X= i }6A 0G' ]NiX ~0 P #3 _J, 0X mXH fy A,XX=.WeW50WHW_yr i u0X xW@)0 ]p &J n)\W x   W_) a.RWXTRW hqXNW2i.W  XW6Dk *5 y4%W$W0Xu" .[W|0  W. W0Xg` ,X"9 W\H0 NZ j_*dw W[%3W40X0Xgx.#W|yW XC(GW0 %|*A B " WI&K h$Xa @0 .%'vX{  0 ,Lv]0 %g Ey1Xj*&W 0X5g E,l (#XTw WWU yXwW0Z &W &J }.zM U'!.[ 0 Qd 5. $r$r   ?y Z  a$| (GW }0wh k0_']W'W  K . _e N oW ( mX+`I.: dW0 }  ]]0c' P1']X9-iW_y]Wy~X&% > \ ;6_WW(]* 0 '!rX}WXsXk$_I)]) A0Xle >WZc ~0 /0 K}WqyXs0N.v -XYKXM0 `BYP(X25&XW ?0& -0X\,W Xj''F`G] 0 $GX0 0m] /z'!;Wa o*X:_.R[_]% .M~ Xj&4Z0 CQ Y0_ 0 Xkw | `E P]  A+Wd)EuS$~T WQ%Xp0  Y^iX"yWz&X1~rW  e,fW h-J 4 X +)3X ^[0 RS$s T Lw}+LX 7W] W0 _F,W0 5. 7.c'W($ M]]9)DW0 0 }0WXRw  " r0&XaxWF'<W!']X9Y_%GI W^a0!y ) Hk s0 -_ l0X> ,fv8XOwC w yW\* JnW" 0 3yx h.hz Xk-   ~)\WNwO0W9  zm0 I 0 YdXsXg)W#0WTW mW l'!WXyX G (XPXtg0  @ ^X1<0 hWwQ!J _N0 }0X  DU0XW0$Iy nmW XzW*] &]W'!WF XzXe O ;JXgX (IcWQ)WWp L   =,fWRwXv WX200 40 0X'NS'eXmw O06d ;W)EuXf0 00M+X SPS0 SXV_.R]X >0 {'!uvXX  EX kW  ']W] XW (X ( h 0f'!W~0 U?. K0* &W(] &X1o X2X 5W  =2CwXA.VvW #Xa X)0X7` }~UUi3W\U'!) :& X2_X)g.R8X a0 'X']'WZca _y]/Xu0Wy sWW X#_r | $WI X$)X\-@6S% #n)VDW " 90_3p~`Q&4W Xk> W?e WXvi]. _ A+1b _2C0 I`8)WT' Mc. ,X)\y<Z*.PWh0W&XWXW0W0Xxz'XR0 M0W0 XEEX~'!PWy  >|XC` : h /y .fn CW 4X 1 lX)_Y$W 0W# I0W N01yM .R XW : eMv\+ s'XP0WW9]W;X)0 {u`0h. F0 0WOy&W 0W/W 'WU0(tW`2wrQ$`s j_ |XEX0 `PXL% m_WP  R WoXX,(] o,bXXLXWWQv/%NG- .R6W rW_hy]$hX'RWF- oy <W'YW0 +.`X\d >w70X ~wL[ELW0 0 x0W%?W *%( W 0 KL<)EpX ^'! !( X>\&4Xl0+.zX(jrW^XmH#W ? $ Vx'F L&WM]+y{XC -LW+H4: j0$]" H {X;xW+.W|WX"W0.0 kLj   #0.0|,KX;t<X ZQ 0 ) (Xk &'X/\5'Xl0W <WL l0$@W%W0#W}+6Wv0y #W*5XN`0WDe .R!Xi090 i0 .zZX0 uxWM*  %!W-^W~C cWwG  HrXj i0X0XD,@X.z|\!X}0 D,fW'!r iw0 gWNXiX (XYw7  S P0X~o$@W 0 A'W'PXx0WXWw;X)#XNXE0 _ g 1C)W.R\XW 1'p VX\q0X.RX-^XyW&Xj HXF`Cw /> T<  O/Ww. }h0 ` W'XWd@n3(vW@XsSeWm DC K*.RW&XW^' $| D0 0 wW`.y] )q Xt_ J'X_"g AC0 " X X=-XiyRXX  ]L  W =0W@wX8DY xwd s/ ( K%2z-_cTy]'X,?&)A9 #]$ d[ X-}W0XFZ%GI  n P*WX#=- {N"], v0XI NcXazw]yf8X:t0 XM &X'y<^.RW  W0X,=0X$5  DYv M.RX YD'!W0 -0 \. _ %uS0 w /y  _a ( OF0WW/CW 0 '!i zLG W6 y;a J0 0PnW50XI \ W V0 kWyXM0 0GX-o X  (WpX 4w 0  W* w<-F x IYv c&X)  W  (Si{W!W  `AYDW'".W fn^w _'X].RW )EpzvX5.RW 0 @W#!0Ty]X@*DG0W:W ,iW WXkW)1X"D%h.RE -{0 }W C_w7 FCX0XpRjWR pXtfW .3,fW* . K%q$+ 90W 0'!XT<.%(GXD . 4!J Xj,fW% X;k 6 'X %? f[a0 &0X4y %yXN: s@0Xw; aX kX$ tX z3X+XW[0X ) * 4_. y"| 0 k  0 aWfX RWz Xw  X|( &_:%K0 0~C'XhWW)'d i.W_t]+ 8 mX dQ$ XXt"FXEyX 0 jWh([!W0  Q!,=0X<A"], WC)Ep:WR.' O.zWH+1(e f_'X+ Q m 0  ]  M+ AzDX A   t $%bp0 9 0X\ }d_w]0Q X.W `*.\pcwW (W0  20 Gq- y WXt0WZc&J e$ <~XX0YW!y1-Xt Xa ?.0W! ( XXW DkX +Wd-3 _!  % 0W *0 / :'!N k 0 0WUy]X .iWTXt0X.e.R Xj.Xzp (IX' 0X[ EX O,Wl  x EwZ_5H \ F)ykWW0 N<I'( `XT_X<_>$<] 0WUw _*_.yW/> ]<% D0X RjWL W (W.w RXB iWWr" _* __a 0 L-]X] 9- c;Cg W Ww] :_"],<ykX0X)^.yWK0OXsW #6<'F 60 ~ k0l0 0Ww .6 yXayWT,'.d.RX_kWndX|DW /,fW/%U10XcK' ^ 0  W)0 0 q w|}<0X-0X= 0: - o <'! Xkl0 wWo)\ pW  )^.RX _'> .W0 % W m] H4 y_ $H_#J AXk.0W+ w `'V ] ' iA 9 7*j@ 0 )Eu j WKX5hD ^a O2 <~ 0l] yW0W0u0W0 a XC]6X@.RW ".W0\ } 0 %4%Y :M0 b00 0n+ aIWpW/W^WWhYXWdWw7 _C'X,f $$X+sk0WdBo(vWl ^* zX&0YvXL% P mW;0_] .<XE0 0 0I_0 m] o,  4  0X<0 )\X2`=-  =0 q)E>Wy]! I0 _{.z / 0 h XP0 I  ) 0  ]3 OW 0  Z  mM)0 \y\W; xd]y  0 XN. - [W`>X wm] .RXX1R0W $0 0~XW . ],fWw2 W$qu (.KOq h`R`8/WLW 0WW&) AWqyV _n]_,]  ^.RX/0 $`d'!.&YWW0WW mW"V &X @.RWSe"gW#W Y  0 0WU m -o0 0X 0 hZc ( :X}XF$XiX*]+#+ R XV0 XWi  z (gX `0 $|  0X 20W'W  0X0W>WyW \ *0 ZXj* W$00X( `Xk0l (WX)0 0W a#* _URW0W t{(yW= ; G0&XjU,X;W90W]W_*a XN W.R[WlW6 9/yXpS'w  X  0nmXa " Wg*B2*AW0 f0 $5i{WW2XN XX@*W_ W5tW0WV <WW W   XI W_ W0 EY0 .RW'!WK.R\Xj| DQWX{ >(^W 2XWm0X~.z cWXW-LXN0W uX; JA W )0Wlwh#KXX W2% ^) 0 dKvX.Xk _%( - u.  Wy #'!1X6) Iv) 4tX"Y*  mW_( v.XMo0 .z 90 ~ MyoX 0_W.RW[X+Xk Xy]' f'1 K ;*a_ g  0 "xpXF'XG ($WT'  y"W'!X2&XX[X)'! q_d X% _'!) ^`" ]O0X&X $Xu%0 `}]/`$$]1 }s%-X,  vX s X2  fS% y P.RXfyB 0Xm_] [($ JJ'YX80WRR+*%$s 0WplX \ AG0 T ' P_)Xfn AKXWL0XZ0 0= Xk5yjW  L4] (W-] QQ$ E_ e &W$dWwL*. / WXA]- !`]GndW# *%2 ,fWcwX2$@W0Z'X XTyWS |W:W_X  hu qXiWL0X*yyXj0 u0 j  $r yW #J :0  =0W.3&J  X`J d  i+p RW#JW, a.R?Wyi 0  T(]* ,40 yW N0 3 P mW]b s0X3Z03"XW X' ) 0 CWh!JX*w "x0XfWwG W! o08W _'F fB0P'+X $.R X9EyWXWw r'! _] \wYy]/Wh0 t_f4XYgWXi%'!  k  0 K.XOXXYX WI0W  bGSw L   0XbM0 KAX)_  d+FqW^yXs-i9X X)0_$U 0Xb \02 ^0PyW z}]9 |&WrYX.XO sW_aGXn_b.RX.RFX |+[`Oy]! Yv WYXWDXW 0  wGX,iW8]xv+X$Zd$W.*ZXbn0 u0Y 0 q%>X)w. m6Xu.RW0WyW +O v0 W.R-W60- R _) %T,.zU0 }V0 /y P6'! VBy] Xn X}X|W'!X ) <% /_O Y 0 ["yWv<X@  R]yXyX02 ( 3 uf (.RXKw &WCM Gm oW /y O  _[] Xw*$)  0 hv{ I_i   .R[ Z`F%WBXW0X"JAW[0wW-r ;RV d.wd0 0 yr0W'kX%XI pWX;0W,WSe'W*5 Gyu DxW  L W `0P  o FyX3 x /(W| PW0W^#6< s;&XXD'X[)z0 (yXTb wGk{ U0 (\0W_C]Wwf  Cy _8 0XQ 30[0s[0 ?XXk_1* 'JWmX+0X[09 ![['I X`$W7wW&XWX < Xw] s0GyDXH0W A,@ $qw ~@~WS?']W 0cXbyW`"- o}^X- D ^)X?l;WX WX)nYcXt{W0W_(]W*X@W  9: < Y}] 0X#` " #-0.XOI\WU,  X'oX2'w  0Xy_CW a0 6,fWL0d ($W 0 D iXsW;yEX+W KX: &]WelXE.X X _w/y   d>X2 <.h _$`W0 X2%,  o*S*a W W#WYy  y >W .RXMdAh(vW)+Xy X7nwUy  ec0XKW7 4W~y  0 { 0 J 0X-\ ] K0I#  XWp!WT LI,lX7liZ 48.RW F[ QX#WX2gCW%yX!}.W]zi7W0X.0 4\X)W00G0 M\$<] +ZdWU-]X*j@WUW x $X>  0 |^$@WTEZLP!   wX@WT.z W$` y< w]# -.zeLW0X'N0X.RX$+O : NW"*%W0Wv-XR4XF\}$]" $)   yXX'X'_'!)  B` tPf'!NWw _w `Z :XN wpX < M)]) ( B  y{WW W*0 .RX50  </X*'p.RW W 0U0Xb 0 V/y%WYv`#0PQ_) r?.Wc -a0W* 4X>4 "mX_? X<0 440W_&k{,O0 '! -08X)9 M3 m\0GXXk HE VRC]WI W <^!W0 WtXXk9'X F] (W0 ".bX^.RXaLxw D_X0 0(w )EXN_Xyw*W30$W80XcMXKW6 0,fWw|6XzXk X) W?0Wy:u(8W Xm'!Xt[`yQW 0mS.RX_  F p ^,X _|/> |7&?Xj X0X,X'Xk 0Wyu  .RW#6<  `v)_Yi0fn-w) XS0W F$| Kw HW# WWX<w t 0W%!:MWw2x W ,fW 0 L/A;&Wr(WK / XUW%aX;<XWwp L.W`H    y1O  DW^PH( RWV, hnWjy  yyW_Rw] R']W'J"], % VXXT<" 0P)E>W#X)! u_.* C' 0+WKyW_&J  )Eu&W^XZi1 $0W0 0 i0' Y)0 50 RX` t 'X:|*W Xf`6W  h.RTX''6W]:W p   t t  XO`CX zCXX`?kKftW0X{uX, ;.RVXwx'!8X2wX(hXsXX ,  "],;_m. _X|  (W*V2z bZWCXBjw.%X1_0 O/y0 v0 Lw  70  0W_CW^wh U cGVw d0XX)0  S < , QXj#WD0  }] v'X0  H$DWW^ m )wW, " Wn Xk/0*XO?0W0 M. / *yWL%6( X)&X O Wg0X0W0 0 \$ (8qXWW0z`  WHXobX-XVLt$<] 'XX~,yT+"a' s_#]$ Z %'](XiX%qX@BCW_cy]XbW&*WXW Ue +w %- Xs0$8 }02*~ .y0 /_*. q.z  e  ZZ/ K0F.R WQ.z s-6 YX:>#Xs, 7EY X  jy] W |0W_D] 8X`00M( _.RX1 vHWQ  Q^)0 0GyXq0^'g&)EW 4 c XX  &W (% P* h$W b0Xl.WSW6 X6 X_^.:^}X3 h ^ w |0 "g0Xm e0  &XW/w z'! 0W &XX&0{].RW}W/W "W ..6   4 30X7"Y*X2y]/ 0 w BC X0X(i  W0W KyJ 19   yuXU&W{y WyX d !X9X& 0XaX$wm ]* .R Y0XhW]0 }D0 ZyXsAD1 " P D'XL H " -10 D'W& a0  0XL$]1_ X^]$qu }N$WX^.RX8kX0`@?. t# 0WwX< W Y]Y )D W2\Xu.RWw *P,fW- `( r&4 )X; L'!*WHW`*XM 0$ (L'! FWW C 0 .RKX W8(#X\VX'6.RX  ] XCK'!8 Xt^w X% Xa0GG EW Vx,]" W`w yX0 G0yW A&X[W0 `t0Wyw0X_ W Z /y C'=W0 u*5cwL i0$~&XWG O W#X Rq *B Kf'Wp&Xk $C J?30XcM0  wd[dxW  ( X(# <X y ~0WX"X)M'  %yQXMV*Xq.: C`0kL q:$]1*  QP)WSyMXl _0 X_wh1fX'yHX9_vCy!?]yW t  0  = S&W_kL6U  WW X5*".XkRPvX2#W 4fwW0Wx0Xr  tyX:c&W ]'Xa.R$0  C0 ']X&Up'< f.RW4wWA*ZXw iw  .W_  J<0WMo* W`  F w 0 UE U . 0W_C]W0 ^& dqX8c0wn 70YDW ".X-0K(GXNKw iw)GW" 0 4 i Z9`8 ;'!W3'=X'  X2 nX2YD)W W I0W.XO,fW00 m7 ] vW0VSZ}(WC0Wy 4.RgWL;%2 UW\y\<-  W'RXXNb mX_4&KW'!Xk^] Q p L 1 0WRu%2C 0,y,Wt)W ])0 k R0)0KWD LGXNI!/0 ?`]+p 0W-@ y cWX BXX0WX)r?. 4{,KWH4 $@IX  o AW#' W X'WmyjXXv] 0 |0 Kwp R%$~T 'x _ 0  ;[ P`W 0WWWv0X^0WWW`,C]&Xu {*%X,"], Y)0  ~UyX0 _  `)0; p0Xu 5wU6] ROLCy _x#+ h ,RX6H{2&J 0 L&- XO; _"X*eXO0 .$\}]0  4 VwXWG-X3:0  W$J0W "$ $y mXvF WYX W yMWrW )\0 dI'X wX$W%6W'!Wt'[W`w5 - 0E}WO.3W}+p wXDKw$Fy\Xi w5Xu" G 0WhX i08L0 IiX`>03x >_(X< ) XUE0 IG W__S *B C0 a_9']XOD'cBy] R) 0&~ CxQ0 0 #WZd Xq0 0T- o _")1XH.RFXD"$]1 *_) ,fWkvlXO   WWR0WW % )Eu&X) W_'_~ y )Y($WP0W_d,]VP#J &X C[w X2 +O !y  @0X. )EW0 8WQ0dy]!_V!: I,b.RX1L*0XdZ+i 80 Z:!J XVk'-'!2^0qUX.RW'X'Wfn XFX}gy~W_}]"|XW0  Z/y %+^W_*B w ,fXt -M0X] w  . .0XH  X_&*_# WcW! p S+s m!W$@XhM}X$R'X_y%}Xy $0[ &X1 [~ %wd b0&W2|{-X2W0XI#0 X$]1 39 v Y g X)XY_%NXgDX+&`Kw]#  ,KRXCXf`g B X NX~Go XW<Xs'!XXA N00 00X 0 ;@WW '#XNX^ WW"], y%3.RW;%b RiXA)EpXP  ?x - F J(  fA0 `9% BYy)0;X0)0Wb&W.Y&i7W *>ycX10 bW 0WW v$W'XH :W  !W  '!  sO W<WW W` P] .RX9^Xw . AD w. 0 9`Rw W*BR X) 60W w0 0C:WzWSW _'  !: DwW`  $@x 0 wW Y !J 0B0XI o 4E -0:.MW/0 0 $l.R -O0 XtT&W  5t  g0Y ']W~ WWWVIW ) - (0 0u0 0 0    L& 4"W/y V)EW^V Ww)  &  0WP,fWXX` + P0W G0X/yX 9Xj%0W %GI Z~'X0Xs$@W`.z M0XudXV#We0Q#0-XQV9]1&XX`!3W 0 ]X -] w-] *v)XOZyXiXr1+WVji?Ww_X( 6XX@% $X XEXC. fn e&0Xf.RXNVXX m% 6)EpX= y 0XV_\.RX1VX gX)[Uv aXw7 _w&4 EC h-]   K0X^ \ ~Wy,W C#W 2byX  (ID-6 |&X}`Z#]$X'i?WW_y]'4H4W$ 9 0 0W 0W0XRWL#W_A'NWf0 :0 X;&XWM!WW8)1X6XX1NX)wC  ) f`a T0XO;00 ;yX_DW.`W #'3.W0X[^KX-"yoW* 5,W)+$<] 0X0X"d0y ho'W0 &W+*%  P,f  R <_)_ 0, !8_k{ `  &X)LJ. X)X)*v;$tD)zd#a7c;q#?;+a, 0'RH P ]D-K{0@B%YM"$w#+LR&9 M6E*"1 &%4  .X 6X i V͆ d(c9 KE%8K(g$6+<3 L#$} !22#8ZuQCU2'N7^:}+} o J-%G 2Qs'NNiP@&w3l #S,G.r+-;.)gH /23e1h$32V K+ L%(cBqV Y iǪ.) !g(<%j\>*V%T_ Z'WDWBWZWFtWGxo\*3! !T 'Wގ"-66,s>-ER&\ j #.+k[: oE!ED 0RI#w*S R8VsO:+ B#Wg!E^8 *l(5F YT,`%B#&6w[i39D6*X |+!GZ$!x $HOiu0.*+5/-K4]*6!Na&'tC.*i$**p?$A[,7#+8T, ͘,Ru-*>%EB+DR%(-"lB.*$] -Ni #6: E Maǵ-F(=Z  |T6%'Nߟ"al(yAt+x^' .%<)  MN,&Zv(("J lC* l>Z 3Y TB ދ-MG(  '0[#h7PYc(z%g)F<,{-@z "җw)<%(1m!H* (ҿC_*+n–/0/2G\P'#$%    B'KC'Lժ8ʞcHjxYû&qsrx>E?EUМ DН EО F7 b,MM8<Ƒ^ު(ޫ(Ӷ9ӷ9Z!T!V!X`8c=e>=B1 2 3 S$58 9 : ; ِ~z|.JRETFU§OZ¨O\@>7)?7*A71GXѾl+״o# ~3զʙ `ʛ hTT'<l.'/)0,}+;<=LL  I4I6ښZ@ڛZBJeƌAg[ޤR<ަRB   Ȏѳ.Lqo_1N!\#_%*-/26WּRFֽ˹W˻rsz"4{"7}"8~"9~22bSy cSz gShSܦHѹ*O; kK<lK=?ˠAˡB˥ 'H 'OO?Ǹ88:HiHl,YnYpYs0UؑztػQd CͿ%)*QTڕږ]=(Hg M];^<`?b@:=%F'F(F>Vݬlݭ!U߃BԌS)\]˱)˲)˳)˴):>0@1y P7,7- 7.!72TiGXX56Ä(7//ЯJKPxu f-+ɏ=ΓR@ΔRADEGaѱł)(cѵݫ: r82p[Gq[J%%%6T6U6VX: D; Fʰ̐GR**U;۝ЫЭG#UH#Wp3-;s3.=8ґD7û9ÿ:DԀFԂƤ(޾0T,3@ȥQc$Ձ(B(C99s9;ٟH:I>Ώٵΐٷ@A 5}F\]^ĎēܹܺNNNܼN { ΂ӓ:Ӕ:dK!eK$պf P׍3<U׎3OeQf̌C̍C-01%&R#L//$^%_*#ˆPw+&ګ`ڬaڭbڮcϯ ϱ%ϲ&8_W 8bƠHю#xC$R4~E:o ĞğZbN ͠ ͢¹ F͓: JGs[Eu[Fgܵ!hڋڍ2KaBbB2xS{KZ B Cӊ]^a .I?2;_JJLK&֌G֍GXX€ b#VO3T 2U#*þ,ԁԄԆ<< 2 5̰̱̳ݾ̵ ` aLJ9:@ԗZԘZԙZpq~ٲٳٶBLBM@C͍F-q--0>Nd{}-yE& ß΀G&ۺ6G!XX X ƒƕݎƙƚ=3?3@3A3ɤ WCɥ dTOևCӦDӧˀ+Eӫ;`K$)'j,܈.܋8]8^"8`#ٶH[FH [Kő0Œ0œ0Ŕ0|ݵA9~ݷA=Q#QF kRߐ1lU,,=xim{G:%9;%:=%>_5`5!a5ʿIW2W4ת׫x{DG2J2LMpBqBÚ4sB۳ ۴  7[*@]*C݇;=z݉;\QROZۤƲ&Ƴ&ƴ&]ۧ^۩./71@ȹXȺXy{!/"/@iʄ@jPPX Z S U$M&z"$q^aEbEdEVZBդեde]ӤB_`GtCvGKפ:RLjk̝J|~[uiFvjHwkJmN6 G G"G$5; –XھƓXƘ2?wb܋ưO܌ƱO܍ ܎ њ ћ ќ ϘϜO+!Ȳ3ȴ6CG%LLՊՋՌ6#7%ʁ8'%TDUDYrUx"G ͥA;QQz-}/(9)HZӟnӡrwx-5FNFQW3b|Ÿdɽy3O%֝35O*6O-7O.֞:ˑ ˒ ˓ ”V`;Ͼ7Ͽ8DT`EU:<܆"=܇">3D4D 5D ũ`5a67://.0/ǘ@l}ߨP b{i|k]؞Z Q͠Ȝ͡ȝu5$m6$n7$p58/4stuEEw V\ V] V_ VaX-*==\*#{Ҹ)tT:PɷfhJɹiɼjiJ8:֚!֛!ˋ2ˍ2Uˎ2V  ZY< [\\^= y\..kϚlϛ'ی1ŧ7БAH?HA1ߣbߤc"D  0U{O,Xo<~p<0Mn1Mu)S*T+UB׷3ݝ̺(هIU'o!+Jn1KݚBg! # O$ 4{dM6~7q..>>=?SO+T&WՠZʓmG|XQ34XU6X[kmnor"s"ׇׅαfγj2Dhcieۅ 0ۈ 4Ў.+T<)U<,ľĿ~c;eƈ'Ɖ'ޟ8ޠ8 [0l7Y!׵A̵R & (~w+H-(q !1="5NOAIJ¡'Kz6u-F.F/F0F2FƼWܝhƾWܟlѳ;xC,JX0*"f;fh;g#%-/* Y8Y< YAļ0,0-=G>Iޜӯй<<MpMsr$ݚݜ$5D$E%E˨SE˩VFžpBiRRpDTqFUrGsHѰ:ѱ: .0`[a[b[Žſ&VE,+XV XZ(Ɉ׃ɉׄɊ׈g?PBsftgPEر.f 2ص2͵zB+}ڌ?<-ڎϊFϋGVLXLύN5F9LT#U#j4qk4rEU8j|},/0fAwR |ԁԂOv֭(֯(Q{ְ)ˢ952J J q[lɼ^ab6F W W zֽ+.gź?ۚOyOzФO{WZ߷ߡ߸ߢҋ*ҍ*ԻԽ";hopqrvq"#$ DWDY9Ê(8ж(ݦINcZZ]4Z_ 5b{s|t}wEE` 1a 3B01-~E>%ձF>'ʥ Nʦ}QT׈J̅)̆):FJHJC[ۙʖР"U=2>2#.eCfC$1%2&3µ¸+lƗ/PƘ/Qް?޲?ӽP@ӿPC8#HIKP9H:Iٓح?#ٔد\4p^4tΊ(*-=FĂĄ~bӄJ P[Q[S[ʠ!{2B`6^7aA$ @Iؾ?'Ox(,z^ڡ'&ڢ)GƒXфu# Ӹ#$#%7383:3ȕș<3TTTu fNË++<LVW̅(ª,؆9 ¬2Z`Zaܫ1Kܭ1M^كѿA)Up @ 0-GoHt>$U=N@P|1E2F>%?%ɚɛɜ6sWWW{ϝ `TϞ ϟ Ϡ aTKbLc$·m~;;с; L34EX] _ߋYߌYԑԒcخvwQA1 \T"̓̈́ ͅ ,V]"% hÏÐÑÒÓ۪F!деWжŋTǹDz!z݀! Ҝ2ҝ2Ҟ23BBSBCSCDSEESFGSGHSIT'Ҡs:`acW(&7O7PMΛH/Miň@&ʼn@'ݮPrw=x>W+X+߆ݏQE BDX5GA-Ff.Fhʌ8WU`!֑b!ٷbb2ic2lٹef2nٻg}B] >^ ?rЁ*[Ђ*\Ѓ*_Є*a$;0KKmuĭwİz9e:<=i  |7$}7%ӪYUȅǝWYZ[~,//a@bQ R ̥m ̦ЇЈ,*u#,-><d.M?MAA$B$™rvyEEeaV{ghhiikܕ+Ʒѩ ?1]qR-`ՍՏ@:m:p':q:r):u[J^[zn&'(66 ͬX*ͮX+ ƾħ/Ĩ/???P .*/.wL M acޕϸӥQ+CӧUwx_O#ܪDDUU<6˙ $˚ (00nAVLџIѡIѣI<ZQɌRɎ#Vɏ$Ų%`h&ų%aŴ%cFd9FiǞWQ߲߰߱Ա֕Բ֖>Ƀd>XYOL[g =)h @Yͧux*^;;-<;3UځV;π=*"+";-"ô\D"]D$^D%÷_D'TT PxTzVݢ/Ҿ@ɾ{ɿ|~o'wЌ֠8E(F)Z)[*!"Z)&kȹA$bV|GG#EH&Vx? Vy@ -C-Hκ=p===!=ۓ~ŭNpК^GЛ_K8a)Ǜޛߩ߫ԦԧJJ$[%[~`" a2b2 UCL vS   9~׺/GH?P ُî}϶+VtHXSeVݡY^ҺX؀Y؁@4BvVD: ====?M@Mդեէʚo Jz({(ݶ{9|9}9ζI5Z6Zێ!E9ɐ%2B#$ Ҁҁ    fhj#213344ޥOJާOMȍ&p77x7Gr^S׸Xw׹Xz79<."ןנ13xً33zQD#vwyTQMR+=}npmeC)D)ٜ \ \  ʳ ʶ·B¸D CT C3T;KĉĊܶ:`?yP_zPdӈKӉL_ ` մ'}ն'~eHH׉Y׊YIȧ5Kd̉7$4JKE3UU zċρL‚MƒO=fکMMMUqƙrƚ́stъ)ы)޵ 9-3@J0Ȟ M[5j29w z{}D;Sf=Sh@ *..?&؍O7͌&ą7ho߾pĆ7nć7pܰGܱGܲGܳGXXXX]hD#BF#CӅ] ^ U` CkDnFq8+9+lB<C<ɢ!ɣ"ֆ(,Dˁ(09&{'}+JZ~ڤLZϩ R1k-ٟ/٢0٣!lB$norхR Q R T.=ŕ- ݶ>B %66־G jklWHƁI؇<"s^3k l T4T6m `a+Ӓ +  + 8;ÛNÜPY'wuZ'yv\'|y݈8D݊8F݋8GҤH08Y9Y6:YP4ɝS8ɟT<[\0ցA%ւA&0|Q<= ,#,$,%,=c=de%M({~ ٲ͂ٳ̈́5ΥT0pōWŎW yݱŨe!!D2;cBҷx*)C:b4Kb5KhYBZCH&ۑף7ij̜G̞Gop̟GilmnXÔ!Õ"lfÖ'^ۭ/з@Iи@Kк@M UP݁< ҡVҢWp67K<UƮMVƯM)̡̠ȳEEzOV>VEVFʀ FV1nٱLΞ3Ο4Ol)am)d !v:<J]7_8%6 }̮WӠ~vy!.z$qrʹ?hO\E c̗ό̘ώ+ + b);e.4L;2#•zDں~ڻNƪԸirȯVMQȱY^^__#!}9x/1%*m%,55؟W͢ũ-f.|,}-ĝ>Ğ>OOv#$ މGފI:ӞX:Kars KdKeKg)A+Hۍ\Cɸkɺmɻn./ˌ/@H@O@P@R‘gePYڳOڵU]A]8H܂HєYԏ1ȍ$Z$[$\Ŧ4Ũ4E~V?* ǔǕǖ -ߢՓ - -=wH[ؙe؜fTy'([p!q!2 2çè  k.l.m.'ҳON7>,ˉY Ǻ:4W5x&DDD; 5Ե,HԹίfΰhβjM[ۆSۇTۉXŠCЍ!݊,(-(Ǐ~IZZZ`u!cv!+,IR  .7/<-״>?̶O̷OpD6GnB#C%үs3M1CƽT#9:M+dP+e<LLՖl՗mʏRʐV'g8kHlHέYc Be C/Ȏ+%,&ЊAx ЋA} *Q  Ļx` F~WvU#װ̰֬s!|#2}%2zs&Ck Vl [ ?*K<&Y'\ܙ'ѯ7FH.y3OF3G4*%Q,'Q%gХ&'hЩ,G~EFGH,K+G<M\M]ز?س@شAͳ $ʹڍĵEόV6B7C/8Dޙޚl1BPӫӬBTȇ9|9;d)oJ [!ʅ֬&G֮&JA!GlGoš mPSm?n?IMѫ  Ѭ B[i,+iŻ<./LL/3B1f߶߹Լ"E UUWm Dn Eo Fةa0b0ثحخAuοR^S_φ(χ(Tb0939QIûüe[ f[ ýI2E6GݥFWt .S.XrְKuLv֨Oh2*oߐ K K KE#F#ξD?%T'TŶv6?0d@Ǥ҆Q ҇Q҈QԴɄ'*Ц>D8JM\ZL{|=q5(6fE 1ø-fٕٖ>Ή>yN2N3NV~\3]4^5_6`7)޽),:]^pFJGJ[[y}[zH">I"B(Cg ի լ ʟTʡ/<ׅ?׆?̃P/λ?s'Rt'SAh~19Y{:Y}c/4_4`4c4d&z: KƓUY ӹ=/ȖȗȘȚvw׼K׽M((6979΂΄,!eɧ-!fɪɭGHU2©D«FXBS1S4 (  )B҃ܪ.Vܬ.W<>qJ&&&VʜGʝG>q?rׁ9ׂ:~́3789 T: oT; s9:;ڜϛϜqMNsth'ƍƎިр8т8 I=ӳӴI?ȏ0ZI1ZJ2ZKȑDtbc hRJRMRNRPRT/ 5ѻ6Ѽ7ѽTR˼>˽>˾>N=@؀q%͆>%i|FܧWܨWܩWWzѻK~!"?Q#"@RmnSC SF ž¢QS9*:* !8L9L:L ɕɖ˪˭˰HؼDt8u8VYzXY|E^ؖϘ0_ϙ0`Ϛ0c!I@xy0|3*?@ABuG$vH$5߅55ԍԎF_`ֻVmnp14xyRBS2U)"҄8::K-K.JÆ É:Êۣۥа&]б& nL76M7: q rvGǶ>ҙX/607@MPwP}#oepi4 q2++<`Ca`>bݐNҩҪҫ&CΊYɧ6Zɨ6[\eG,f ֈX4։X˂ƠH "33+C,CMk TYT[T\1Ӽ;ٸXٺZLZL[_/sݹܓݺܔݻܕ%8iHHǂdIHJHDŽgߒQߓRߔSߗWU n0|ADJQ?~Z!׬N .̧%Bͮ%Ht(۷FT۸FV۹FWW8W:W<#^ҦS2X<BSSU 'ƶ!Ƹ%2*KB;K Kf&ՎX'$ۭʆ&۳7շV/W/X/  Ħ,e fĩ,Ī,M1"#ޔ̻$|ӦbEnȀqʼVeʾVhצհM N ̡lenPR_ab˜X܏6ܐ6ѠG*ѢG-ѤG3 =X>XȵdSƥȶjTƧUƩg7.i;.j<( ʂOʃO:W>++X@YAZB+.[C+/wOLW#"#آ###ͦܒ43DDڀe 'ρV, uI0v[A@ސޒQQӣv {  /3s(HIJIeZgZhZx%G֟59 : W=ijlڽ.$>>aO8܈܉܊ј6`*I7a8b9cNv ;b>ŬKc@$&3""&Ǚ۬ 3gǚ۱!3hߪ߬TԨԩ`/S@wT@xؠͣͤ8np1sF IJ(IAZíC ݠVi  ҹһVկWձZյthui֜,BQˏ)})~ނރބޅ)֙fg:YzG{JB"WC5ۏeېkۑl3?4?^OߥϤԥ'"y7P#rlsm#tn2O4/42DD-?C D ̼#̽$̾%̿*,cوىيٌٍê<xz^(uS(ݛݢT(ݝݣ&IP8Zys!4@1  R   ա;Xʕ. >uj73xۋG6z7{8}ЏXb%0"Xה""nD : <T/ޡӰnoJ̸z8{8)I-Zـ/ZقJȤr bKȧ%0EAFA3£LRMR¤  т3)ܠ=ƿHܡ=ѶNZ J-M2%%6$՘FՙF՛F:՝FKpMrʒW1DmqC6S.f;mͺ;qͻϑ?' B'$V7ƅX7rHMޞ "06g@h@i@j@WQ3At ,d'_ַ<˪MzˬM{ˮM}YŸ$r $EE\ܚKܛLѲ1R4N5R7SI)-:Ǯǰ J)[*[+[,[Ɍʤ(9u7iGjGkGضmGͶ XdXeͷ CDEF@גώ?;PM  9 Amno+<5ŀL;VŁLVXF#4}i4E E"xUԆRSֳsִuf cg e!A#A$AуфQ) ч&@J[#[&|ۛ%żhХ6!Ч6#@FkWߺ߻߼߽ҏ#Ծ.q%ɇ? O wc**߰*?;oKK:<K=K3 3ٛþD^ÿD_D`ٝDbUÓ×:Xݧ2Q2cҠQ6t~((^M9 fdIZ3Zhղ$ճ$յ$ʨ5Kʩ5N}E : ?̈N-Iu>0LMx>3DEFТg')i !,[@"\ƛʥ޳'22޴,C:; C!Cȝȟ z!#i/Xk/Z;=<PNA=B>_΋'k`a58+78-WHbYTW#/غ0ػ1ؿHIJ eUUU\pv>,=PVWʢʣ_ʤĒׇJ["ACE22 if SP|,ڣ ڥ ڦ ҤҧҨƔkƕnެ/afmxGyGgX~O#+8=>XYZֿDc[U ÐX^­+؈T¯+؉W؊Y؋Z<{<|͊M~Ā_ܮ̌ (- (*9+9W;X>rZiӀZjK M W1TX1WيY1YٌZ1[\1]ǾzAAǿ~Y]5Rr@ <ɞy-ؽV}N%%%ڝ6zGHڟ6ڠ6ϡFϢFbcϤFdϧGOW&PW'ik6CŋTH ŌTJ K sݯݰv *{ *}Ӏ;&L&L'ߍ<L(L+ԓf˿]^D8*؁5؂7؄8͈ j0~ZA[A)QQ d%M f&O g>й=Mл=SVMWMǺhǻl5555JəF-LMWW|ő(ŕրŖSU"*QR:UKIٰmKOΜ0Ν24NPn&s7Vt7Xu7Yw7\x7_GR?XzUZM[N\Q^SqP A  V[\Sמ444ÌE`c9ÍEad:ÎEbWXYۨV+NՀ3 QՃSՅw*61Vx+y-71\ Rj RlRnRq2AR)Rƫ$:%%:'&:+6Jn7Jo8Jp9JqȮZ[nȰ\S Uڰ|6~~66}QWRW lQiRjSlٯ0Η.n opL?VfOhO uwz=>UVL)#}#~އ\ވ_ӝgտUTp!ʶWB0̓[]A< Q Q QACY Z  K[ ]S(m09`*I1Z’ڴiڶmHϹ%Ϻ%܀F+܁F,܃F. ѓW /Ő0ŒINJPՃNՄNՆN !"(y)+ * *L/:KB::/0"ؘyؚz؛{CC͞CYėĚ/y:@-mnoRPSPTPށQUPә>n'i8k8TH@YVuWvX|ɵ$B  ֖E_ wxz|Œ,V,ڱ=ϳN%9:<4яKёM)SFCş[lV!! 2u!2vڱ"2yǐC;Ԡ h.GOؖHOl͛u%& >mHnHY YY4Ǥ5ǧN8ä#wå#xæ#{4"'DDfUS# gUWhUXݗݘݙHHIJ<<<JNKP]ɯMJɲMMo;-/pB8 ֑֒N(lO(n9]9eIT4U6q!0B;ή dY(}-śЉ>{OPߜ&0ԝ6Ԟ62X1QRE\3>! 8ױ:̯̱+N<y{۽G۾JۿL;<aܰݒݔݖEl] -(y)z` 0h0 IJՓ,Ք,N)bFptW]uW^wW_(BxWbLkıCIJCijCĴCqd ES ?~ƀ'*mޘ KȆ~~G׭̨̩̪Y ǥvae0B>@@%8PDБИk<l<";ܗML$$$Z|ȼ5Ƚ5ErEՐV0vʇ1^111_!B:_R) k%)&تج:yͰīxڇڈψ&7ω&81626NGKyOGQPGRRGTȁ/Ȃ/#ȃ/%1?3A4B5C{?|?}?6[^+Phl< ֤Lw֥Lx֦Lz֧L|˜H˝I˞K ##gDhDDiUKqLsܑD .ܒ0Ad AeX&Q(QkOŵlRŷ)(*(+(<9>9ǣǥ ߳ߴԳɔԵɕԶəɅ%k52إ ]Wdzͪͫ5jڃ>ڄ>ςOTJKù*n;:;<;B`0CݤF#\_TTZx]_a]0˔˘'@)@*@PDЕJ8 6 7 8 9BI0 <Z5 "`ŮKŰPűR/34 ǜ߭-P߯-TԬ=ԭ=Ԯ=NxɀNyɁN{'9gWc'd(wK".L"/׻yM"0 2 2CXCYðSñSóSّ΀ ΁ ΃ ΅ ‡Ά FwW?ҼPҽPk'CCϿikmWYh #؊fg 3 5 6~CD׀F,̀θ=mM:nM;oMГ(Е,QЖ.И/TЙ1(((9`ɖɚ61B B BSӵSȐ rs.>t.COUَ&x4S~U߀|7#)GNXPX¦F#שׯ':S++T U!gcNwdNzƋ(eN}zT{VޣӲ%)ާF\9]:}2*+,-M 9;˶‰˷‹w¥;}v˙w˚x˝ܢ2ܤ6ѷ/Ѹ0NHb8Yg9Yjy<0H؈=0JǷh4QU5QV 4( 9*+ɐ,ɑ,ɒ,y=XZxMع35mNݻ5p5qOBڔEϓVϔVDfEgFh~Y!JZ!K!Q[#stuSSSSŅKK~\߁\ԋY&yֹJֺMZ&{i7"!=G%'*Xtu!t׫׭_@ OPmPPoQPpRPr3۠G<N>NYesftºv)::LčK"}""" 3 cGdHeN{]Ӎӎӏ Ӑ$չʪӟJ/pO/y׋ŰVN'G8MH8O!I8R"J8UH(C)D„n†pڪ$Ϭ4Ϯ4uUƝ ޶E޸Gэĕ,|l͑m͓ 9??:C؎؏´B͎M͐P 5Ĉܴle..O^R/Ow@IBCӇ&IY7xZ7y\7zbGcGdGGXDEF#JHɦ3ɩ3֊U֋U ˃ñvwx˄ôr,u,, `"a#ڨMϪmLnM%(:&(<oTцT90чW9327 Z> ?ŖL ݸ٦ 1z 1{ݼ٭B  R RǃDžߑ ]ߕ ^7ߖ aԖ$o-}>ItKN>͋&bu6/ Ɗ,+"~۵C۶C TF݌ӝҥ@ҧC;WV_`a փ~քA8Q~ H HY\;Y^?If0i0*A/SQٴ ΦIΧJq=q{MݳE͒ߎ5gh:>zű !En!!7;2C['\*]-ʽSp ץҾ**5,*8קר-*;ש̠p̢r; oSØOۮ ۯ `A۱  &нۘпۛ &ۜX67v݄z݆}X+P,P-P    ȷz$f$gW̪VNsUtVuX΢Ev[RVO$41u R1yB@QBVĤR`A4:G:H:IJޏޑ[Ӣu[={m|n@ʻFGGGIGfX̚ NQg.8 [?n\?p]?qO 48ϑڼ+4ƭ##љ#4 UqUtՇ Ո2pt"0xUQlq,((( (!(9IIIIgğĠġĢx5y5%F@&FB'FC>W%?W'@W(BW)CW*DW+mt>8:<=,.Y Z[C*:aOde+Kq12ː "“DhڷTڸTϼ*Ͻ.^C,9/܅@[і@^ї2zKZ\',HZZǗZߦ+x4\VK ؝q՞͟-!3S=4T=zN?,R{N@r!;m)i)j<q=ré:FZ]Ja1o?2ݜҴC#ҵQRSe ɶPf g rM֗֘OOOX'$&*=H28@H7δ#š-Ţ.ۊDť1АUu/ VWYߟ<ߠ< x yԡMd {ԢMeԣMfac d-*.-(WݐYݑZݕ((KLNmnZhl׶@1A1BZB[B^B`Rف CE#. $. D>jG>H>NO ұM&O;XI,Qz""\3]՚C4W7\9^՜D %ʑT+qinop0y1{~.ۀ1-\ۃ5ۄ688 H HHSyĽZ{}ȕ Q0)A*AƄƆޝRȉ--"*VN>XNA׳̲u̳vw}6EFGYW| W}.02tS+ dܜQ;WGcKwՕc6H'ʎ.7de!H8ޖY,ijY,0!.0#;<?AQ  ЬĺNR:Mc&Ƃƃӭ53Ӯ54ݓݗȈEV:Vf:L!TpqB]Ba#RRֱֲֵˣDˤG:::J[[nʍʑR&PJ6K6L6ѮD XL^_u/HYZ]2?^CP4T]DP<ǩ &Ǫ '߾߿#oԿ+sɆ<"<pmqn@د#ذ#@ډU;ڋUU RSghiQRRiknqv7(JsuvNOR֩Q֪R֫TVbFcF  4WpGָk.b>> >} e f ߙ**v;Xw;[СУ#hǦ3Ǩ3ߵDHԷTԸTԹTԺT-C?}EFij0 @_Q~Q"Q$>ЮKIEIF(-ٗú|~456n658{GaV.`-tJs>,.:խJծJʎνT @ B D ۔^ە`ۗaۘdB/E ?;*<+P6!P9"P:#҄$&'Yrs)8;Hx<Hz=H{ޭ=Yޮ@ޯAӺ8ӻ;Ӽ?ț#آ׾ S T Wbcde,ْ=8/1YZ®(°( 9J}[[DEܯɸ2 2 2BS<s S>Ӂ IըҍթҎJLN[.a3Oo׃4Opׄ!& =7F>7G<G=GXXAi#ڞ3ϣDIϥDNϦDP yƏ?Ɛ@ީ+5ȒLȓLȔLFGIab ( d!0IG4IHZTZV191>1@AA؃I͇ '͉ )X>Y>ѼFѽG$tV>'u?JSW"L"O2ɗCqɘCv {¨}ª X~­ \v]w_xbye;;L LY)Z,ڙfS} HyY  Y  Y+,-/C0l@Quy X߇߈Ԑ,rM˸sM˺tMuMQ|%̀5́5͂5dVeVfV$%&?@2ËB;ۧS:гOґPҒRҕK9ҚUқWK<1ɓɔeQ&S&jyuqG:G;GrK=X>P@RSUD/\@oٮA6dLŇeLgLnop$+x$3T%߂EN߄EP[ĵjkknlo1<?,+-,վRYOʵʷ)>ט]יdJZ[\à \=^@ۢڟ6d6g6i+F,FWXҖ,... Ʀ /c0dZ1gȫ*Ȭ*;ՅLx#d˺#e˻3KMMP٥D٦DLRMTNVΑU9k#l& F bԐ¿0i0jm7@@A9$:%;'Ę7ę8ě:(YpZހzނZ.ӘTm%ջʮʯʱj5ʲד yה zו |ז ~̑D--- > V>kNNONPN)QN*+'č*).Z[ƣ"ƥ"޼3$ѐh޽3*C*vCȦTiU<W@ta#/x@yPPG:PH<nG&5g'8sH»Y¼Y½Y͙͚$,$1ďĐđĒlEJܻVfbgdhh|,Ӓ=*fN)@=8>9PWɭJW,-ɮJYɰJ\.ɱJ^[ZBBcm‰SŠSR TS Urϰst3.X4.5.1?F2?IOOB&D&Q7 XXXNj%ߝ#h&U:U= STFԓ͑<͒<͔<(I)Jrtv9ijgl9K0w1{9M9OJYâIL\ãI$2!1bݑB&ݓݕD wF xX^Aɪ_Bɫg-i-֎֏IN˅ˆ/N6lG:+'Ʈ(ư)Ʋ+ƶټ"ٽ"Hپ"Iٿ"Ϊ3%*+`CaCvTdŗ Ř ݽݿЅІ&+6dž;Lj;lj;ߘLcnsotpuߙLdߚLfߛLg7;Ԛ6 #&'8n8q8rHAsBtc^d_" `b1AJ2AL3AM׮Q̫̬  Ý9Þ=wf==ݍC͵ͷҨ%Rͺ2>5 V!XbWGcWKƹ03!!Ȼ2` [B( 0ՑS* 6ʈ+ʉ,*U*W;&\]ٵK`Ψk{kΩoY.Z/\1*`&&}7ЀXGiIjMĬǏ/$xz{{|Өy<z<!`M<P̣$̤$5 ku|rEcVm=V" >w?x@ysB,WRcYd[Ƶ)ܓѥѦѧJȸ[WYm,& ;6ʅ=6?6XY X!\vƳƴ]yƺx/JLy/ %? أ ؤ ͨϯͩ+4H+5+;ĥTڂ;σLe  ޓ48p}U~Uu2]^  0iAPlQ}QQ;(֡:֢;֣>˕˖˗99I—ZڿɂcdeɄ}%N~%SI5AF\WEWHѝ WLў :;P..ůXd>e>f>&O=L'OB4 / 15 5#$ǝ߮*SnqԪ;$ԫ;%ɂKKM0VۼW۾Xء3n:~F2{ |~///EFGïPYòPv} 'u.8vIIZZ![l$m$=CEDEXVnYVsտ^=_=a=uF=; η:cι:e{ے[ŪQūRДaЗb562_ߧS z3}65/7/ ? ?^_ORP.707ëtìw{49*DLp q r OUs #QUݞݟҶ,nҷ,oU=9;<=jM=A((9 IբZ>k!9ʖɃ1ButBxuB|wySSzεۍ>>В*>Z[\ 7 l!GƊI1Xqޢ.טxvyDpT̹+| ̻+~<@كLلLمLنL0LsNOtPu&RILOPQI "Z%5 jܣIܥMAARh i z՞3՟6>-8N=6Ne7Nfjl)<p q r 0 123t%4623Fx/W0W1Wz"ͼ"ͽ"2ړC@ | ϕS&Cj'GoƇ*Ȋ#ȋ˃˄=ˆˈˊ',k'0'2Z[ 7xHQyYQYR)*,ָsI0:@˯X˰ZQ@s su,mi^=`=ܞIeѴ"H$I$d5Y2ݯ4ݳ8V9V/ DZ!=dz!?1$.B{ɎSZ)͸K͹KH[[IJKڏʩڐʫϏ4<CGXp /b/fPU E G Jl z+{+Ԉ?WOYOt ~  1 2) 4ߵΎ;|;K=KZݨ#7g˅ dDhԀßN_Pbe6@F@Q>Q?QAQCոHI('׌p̊G!yْO${٘EEE!V"Vj ҉-Ҋ-Ҍ- .NƜAƞƟBg޷[%&'Ƞ:ȡ:{["d"g"h33>G@IAJBK٘T'ٙT,ٚT/Ό9ӌ/a /d±?²?³?dFµ?PW  CEHHY_]ӆ$կX4հ[4aE'ʧ n p q:GF=`GMw~99ڧJ!ϫ[/!!!SƖ2,ppޱBшrщs6ӾSZS]S_:ȜҰ .|hyuv/]7bXXX،333ānDiăbUcU àäY+Z+[+t<u<CӂMӃM ORTU(%(&99IbɠZoɡZp 1cօٖ1d1e1fؿARvRwRz] D_ JϨg-h-)>8Q+>;j`kcуZ%96;6ŏŐݲݴWsvǀ"eǁ"jߏ3ԔCԕCgT-y}***Fӈ؅;6.8192  \h+'q]k868788(BH×YA(B)ÙY۰)м0оAǼQ݂݃ǽQ݅Vң oN,O,X=]Y=_*Mzq?x[5(FF6_W#ŠΠBΡBΣBΤBQSYoŊAv{KT|KU}KV~KYCz߉;ߊ=%*-bۄ&dۇeۈ7`B`0[2^XX3cUVWX_/ʺןנ'Pסע(P̙ ̛ JMOf+h+۩۫۬Z<M |{$N|$O9̗}$P~$Q$R:̚9ҟ4;D4EpFV6IV8Ƭ <41a=<>A%R|R}Չ$JyTΘ&Ι(Κ)%%jk66GqG sWW tWwY.ģ?^?_?`?at ~ދzρތ~ςσލގu;XDל#ם#^g_i`j̖4u@CaU`Ԯ.Z4e5hIڹQ ϻU(z(_Ƨ9jƨ9l܄ѕȭPLt[% ]%"z{-F5ŜŞN_O- X Y [ \#O O δζ9MT""#s3IރCVWޅC\oqm(/V/@?@A@BPPZ^P[` FHN-8ˊŽȄȆϵϸ\>Ek?Em6V27V48V7| } ~ +---.- Տ9G=H=ţ=XN.Ť?ZN1"$%&Ǒ)Wǒ)Z[Ǔ)\sߞ:0ߡ:3ԤJzLM!Xڽ2JؗCM͜S'8?c6O9PwQy7$Hi$$H#%H$&H(ǯҰҲDzL#ɴ-c4֔ <U]Rˈ,@ԯd<5f6g8iJv6w9N3݃(}9i|<fZ=gZQہRۂWŝ!ЌBD+njRQRz | -t--O UV 8+6N"G]ײ<X;̴dfghj|3FmCnCoCT c@eGHGL*[,_jƺDl m!ƻG788L8{Y0 81 ;2 <3 >ʍ00AmQάT--)=|ЈN0 r5ĶWķYv6ĸZĹ\FyF{uWjHWkIJWmWnWpƁޛ!joS N OSeDSׯ*w!""xfMgOCxD}jU:;=7›H&œH'FYgjooC#0$0%0ܘ,QѭQQQ C E ȾН\]ȿРs,=t,>;v,A=1<ՒCʊ ʋa$c$a5d5e5!$݅|E'&ͱ1Ͳ1BEBHڊRĮtįv,)42ޗJө[Ȅ}cGZG[n bk??@?P#P%˟CˠFˡGj+Xu<vwzMLf(NLOLj+ܔ%GSH[ܖ(Ѩ#Ѫ#@4SA4T ܿ)nUoUŸŹpU 6A  : =ǧ0&( ](VX9klئI^اIبI`ͭZ}ͯ[ɣɤ7%sڅ98%tچ:τ<υ?`bd֢.I>>Cea*|q;G^N_Q˛#3+-/mD6fTik0 0 CμQۖПП:ǟZ=ǠZ>ǡZAǢZC҂҃҅ԯf$԰j(5"VVe f Z[y-^3N4NN[O]׿rPeQf.))޵)))õö·JΈJ.[0[tvy"5ݣ2[ G yW)>+N+,[H-Kn$wf8YD?ΰ*$&"3y'rO+(0 *S,6,6%AT6$3J6*6A*O6*p6a6w5R6'd;D6$&:6 |6+ϔ6"?>68<6(;6#(WX2addAWaddBXOaed@WabSX2ab-#XA$[O'O$7V~ @(ܘ%|s(S9 / :%"}(J&q$x!KD', s6De#Jt%W*1x!ՠ]~'+;"ܢ$Sa"7fMV(6!V&IKn8Kn/ Kn"ZKn)NKnjםKnr<Kn"dOKn(+Kn.HKn Kn/2@KnKn'BXjKn.n*KnKn-ڹKn! N$ $t"r0/#-&&6Xm47i N N N!' (%ON] 5(-7**c%&ʱ#W*9B<+nPV?^"+VjK!w"U"^*Xi}VIT6I'#VM*Ta$0 a"0 +C 9"'!A;" N, G)*6%-F/'(DJH$"-Kͥ$Hm*!pթb 4&Z,9D &T*8!.iB0U  [*~$[¹ 2a?S eN &)*lA","'(S$,} M X{WQ EP%h$n- "K%KiIۓ|?i,Q$& 3V'$w=H0$**Q(fy"$ _+V: wI ɮ*8 'Y~!&˳ &qT @Z-"* S-P( =L]*۴.*E%B[ +/)*I(">*H"8% C;&a&R##$$n)`Ҫ!  R]#R#>""#*'=X5-Z I&;5#$]a,7Uީ9S*^&/z{+V w+y.08W+ &Vb%O!-#^$7+0&EZ*Â._2$ABW5$k -%3,,0Ǔ* %V!q-Ps!Vt)|P,(&*@'-<&*[7 ,RKE[Wʭ&J(![1@!{=,XR%#PV:!c8X=-(wF}r@cB6N%"@$8lHDW'x.CTxx"<CQ/  7-LEQ9&Ul>C  E&""$m`z.&:@SKR"*J)UbS.O$<(ZR&~( (g.6"/>%#,"L)T e%I ?D# E $0R)&+U,Tx"",)y(&  0,P>[ uZe*>3֌HT(ךrX- &)1Zu-UK 9 &V,W'5&*ND.!z%'_O`S-2TW%qſXA7)k Z)%.C&f&.p 8J/ UL?+$ZU;#D$(V/?ܛ(45$;z  {  vOK% $A AKY3X$E?Z$!{ (&]>X /"!z9x+tw?>E. Ty4lZ-[2L.\#4B*3)(و*9 ݨ#UYlK[&pX,6)),l"?Y%9/WLK,NI)#m'9'`"L+G/$(sR)8& ޒ%6>y3*=,d%a*Ec 4{ >-+Y"-*z,lD,$w(|=M@-K')5$i8Jo < &|* A W `$}`ۢ)q|DDoBS.!!J-V-r-aX)aIB,*.2|$w%@q<(E ZC.@E(se*@w%.O-C W6+A =%:%%GA% ='Nš%'N =! ='N;A!%!A%U~AkץO' $w,W_j-K*S &)@ 8y[,">i!U'`)NDg C¶EF;8BC~L!;a.U#2"m}ĦI>Z ! B-?w&!r/$#>#)CB1 ^SR )&< !yEɊf)f`< $G*(Y#]n$5&.*"%[4 'N( ] B& #pO'E)D+ %)/U!y*<'aT?$'$'LK']T& +ΐ8').^ ~% _&B+p, +WK}y?w}s{r}~A|i}2}&"}Zg#uP}!"}om!v}tZ}}R}s}#a}I}}}#!/}X;}~D}}}q#}u7}ep!\}o}z6 }r{d!$}*(2 }w}$g}b ;7}"8} }~l#0}p9", }u>yG}zcB}g}q=k}UQ}lj}b^j}g<%"}#?T"lJa}rsm"Ni}{}pKu}k! }}x!yB}}z#W}f!E}w"}r"}|}c}{DW}{G }!}wv"}}V!}z]!}G Q}y R}{ }r!B;}rl"<}|Ec}_}n#}n# }a8}u}`S}n D%}x/"/3}" 4}"@}E2A}D"}#k[J}Qqv#}sQjV}~b}j }#{} &}#BQ}}}7"w}Rl !S3}y|}p"}~}>@#T}Z"}\$}<}~ }o}uf}oP#p}oQ}V!}#}# ;}xZ!}k%}uxi} }"0}o#M}Bj }zs!s}Kn`}u!W}3-}R#m.}~r}2"}@| |9}(,!(}h}M`T}Hd!=}N:{},#A}= }}R#/G}h H}iu}3s}gtv`#\}_}=m{^}lG} X}K1}3!NY}Q9{}me <}w 7}J}|b K|}}v}9,}S}~!E}l"}+}6@}wWaB}w]b}o } }sRz|!,}e"3}}J R}'M}n<}uuC}#YI}E!J}G!O}}T }R#}$b}.[}>#})}xR+}o"'}}QnE!P}No}S!o,} z}w-}# }jYr"]2}8f!#}yQ8c}|  }tG!}D} A|}i[l}4J}!-S}sM}} n}z="r}D{T Q}yz#R}^} !}h@w}kx}k!c}jm}r{}F}J!}P } # }"kF}}E} }f}h"(}h4 c}zA<}}pq#%}!U}~}}/Z"Q"}u B}"x }F }Jr}k }B} hF}ty/}vBb}yfw}{#`}Z! }" >}r0"?}]"q} >}Y"=b}OO} }Dk_}wt{}k"F8}|J!q}xe} }|."l}hBX}dY}e}x }wP}n }#Z}m\ }}G}H}r"e}#J+}p!8}g0}#k}#lA}yrqg}+p!}Aq }Y }nqc"<!}^}w\ vP} v}i"}j"L}j$i#x}"}y~q[s}W~t}[!Z}~ [}~]}!R}u|#4}m'}yVU}~~}jh}fv i}fv }y}~~_c}[}L!}pj F}G"f}h}Fr}%}E"T}/1r}gzt}s#}N}&#}"#}>)F}q iF}n!Q}53}u!}gt}x}r}|g }T,}l"t$}" -})#}"?}{n"~}A9}?e}r7"}S ^O}}"a9}b}mr"JK}(A}p};q}<}^q"o}#!}mq`}"}#5.}hhv}G"}}ihr,<} w}+"}/"}[#}R}xS %}xU '}#}}}kq=}iq}iq}]!f}v6 M}o{r}s"}g? }}}l!}xW }o6 }i7}\5}}~Kkg!} !1}}?!}Hy}xu}t"v}~# }<ZgA}9^}?!k}&"W}w}n &}>"#}"p}y N`}_!e}rl"} fm}. 3}!}!q} 7}uJ#V}ii}BD}@"E} }}F"&}z}#C}3vqF }or}i|"k}p{>^}{-5}F&!} 6}H}-!}5 0}6 1(} # )}!f}"}{*}v/K5}!:}cp_"L}d#j}qy h}z#}Rp!4$}^!}mlL"8}  }h8!}h=!C}rAyL 8{}q8U}~!k}aDQ}R}H}ru"I}sv"}?}M7}ed2}!Z;}sE} t~a}yA!}Z(}|!h} }Z}}t }!n}y }"}6 t}oi!}}m"!c}#t}#}%"!}(""}W}Y}  }I!}tZ!z}qO" }4}T'!w}~|"sN}ezc }k }phK6}K!} >"6}!7}!}}#}#]}uu]^}uu_[}l }\~"+}~#H]}@!ol}lv"m}p;}(g}o"S}Qys s}#}#[S}p}Do$" }^+}x C}X}!n} }j"}qZ:}q!x}hs!5}g }`"}r [}BjqY} B}"}"'}%N}{r f}m}#&})b'}c#(}e#+}wer#4}x!`}{!?}L{"DM}a }E d})e}*]H} #e}l!"}Tb}|0 }is}H}vy}}uT}oE{"}}tK>}Y}n#y}%kR!})y }{}!}Ca"}^e$}j &}N}yToZ"Y}t}pHzJ"}fuYH}o#3}PC}t! }yn}k}ka}~I,}kS; t}pL"u}pN"}gB0'}ui}oRG}lWE}"|S}(R}w !"C$}'}g^}}zmv!q}W"}gIrJ#g}gKrN#hp}3}}#}s#}|!9]}m8}'}bCz }H}a!})#^}}"}gZ}Y#}r?}}hDpd,}m? }k }xR}w.8} 5f}|8k!D}i_}43}x#"} a4}x&lU}Qyn}!m}!}~"gK}/"%} 0}|j}7}9}su o}Q .,}Uk}:tC}_}"A} ~W}f|}x(}Xi}[!f}"9}!} y}L#F}P"x}u"}=}D!|}d}t!ba}~}b|}c|!} }yT#r}H!}}zf}L]"1}l }k E}h2}us ;}pu}"}|#8}<}0 :}o!J}}W}Uy!&d}6"'P}oq&|)}f H }lt`}l k}t!}vtqQ} 2}u=s}: `}^-[}Cz}[p}-}m _}g=}g>l}^ m}b }!g}vq}eoI}N}hup}}#k}-pl}/q/}#}#}=!}h} }}=@!0}o "}|s0!eo}y"^p}y}}v 9}hW}.r"}hI }d}3}j"}#}wo}wo&} }]#}'#R5}%!}|w|@}\f6F}7}mi .}=!<}v,}@}}n1}n`he9}xnb_<} Ie}9m0" %}os9 J }&!VF}(w}k":}.Fx }i!}*#d}sg"_}ZqZ#w}Io}t }}z!n} } "p}}ji#$}tf}#z}I]P}NL } }ym)#b} oW}~ n}p#Q} [} v!z}g S}~Uz0!]5}j~S}R#o}|w}3}{> }#} t}xzG}p)}a"-}k^~T"(}:#I}g!q}g!r}"n} I}}gHp}%ue!C}t}z$.K}f u}zv#}p&}g `} stC}m"}"!O}~J|?}.!@}/!j}l`} *}v;}{j(}v;!{}v?"|}$}},$} ,W}r}g }l|a"}hZ:}#|}KF}hN} }-*Z} {}|}#Ui}P}"}}s/]"}v5 3}\|M}`?Q} }^ } } 9"}l!"i9/}t"1}x[}P}j.l#n}}y#}%I?}}9D}o E/} [}d#\}f# }zZM+} p,} qj}}Q(}w}<y}V4 }~k}[n"}jvN}Yy"O}[y"}oxc I}Tg}(K!}t/#!}l}mN}R"K}kj"};}ka*}}|"U}I}z}z}u#6}chzy}n:}q}@U}s@"H}I}!J}!}g{"%4}li["i}E"X}<}&}w"}"}g4}h&}n}<lK"}H^} J}h}L}h }x7}m~h"J} }k!}k}1 }L }n!}h% }w m}#u!}M}rt}|zm}"j}   }|~h}"4}6k#O}j>!u}xf@ }u!X} !}x!; }&i!gM}`!}njy6}nK"}to!'}=#~}6`!}sW")}uX"*}1 ] }#+1}}h2}}l#/}S"R}Oo}-}~\x"yZ}wB U}UU|}}#s:}x}oS<"}s" }j}'}X}!Y}zT}u }u }p }!o!}pW!})#G:}'uQ}(}F}["}v<">}uo#?}uo} }1u!}h"C} }}|}v"f$} B}{}<" `}xa}xh}lf $}Y2}w:C">} Y}"G}"H&}"}i;  4}}hg!}&#3w}b"X_}#'}}s} !}'F}l!*}<}M}qh1N}qj2}}g.}r}#q }DA}(}gV}ifv }~#cc}a!J}"W}op"}V^!}f""I}yj!}s!ME}put!.}P"}t& "_}x!+}~}z {}W";}k5#{}kN|}nO}= 4} }oD}gn#@}v#}}}}|}1!}v7},} } }m}m} }gmj#"}rs|!7#}rs}!84}l 4};v!}#<E}h}8iC[n}{}g!L}" }rr}}D}q}}m|}6}|gO!O}v"Zw}K{}*i }b"}"g#}$g"g}nm#}!l}p1}}H1 }"#N}&}! T} O}SFO}gC"V}Z},{}s}}j}tW&i}}F}!x}oU#DG}`}q ";}J}s!2(}3x'}`@}j> }}}~}"w} }Rn/#q}Ul!6}tl }"}#d}2} iA} uKB}!wLz}hro~}tC B}8}qs} iow@}TVB}X[#}un#Q}"~}@l#}},{}fI}8 !}H!}l"P}lZ"}ra!}re!} }q>}:) }hSo"}u1Z}!.}{Gy"M}=k}#.}y!}v }{yP" }hW~}wky}v}M!&}|Dx}("D}gMr}i"}}r,-}oY}#1}<nYP}zt!H}O5Y}+g"Z}.iR}"B} }):}xjCf}!i/}10}6j}s<"c}m"}"}^M}l!}j.}n *}sW"9}K"}Nw#}l}o}!}}Yy}v9}r5} }\}l##}g}wI"}A } m<}0Q =}2S A}t!} }{#:}p}}<%}k(z'"S}_ T}f }g l{g}l10b}uv}ky{ }o"7}v  }{ f"}j"z^}jd#  }la!@!}le!A}'}t C}!!>} P}{`}]p}X"}Y_A}>}hk}"}E}F!}t|}u!6}q};" }Uu}SUt}vo $E}{#;#}}h}r"}wr} }h}1a!#}~}"}#' }w  }w qK}7!pL}8}s B>}s D"}v }mv!}L}Qe}!a}7]}wz }+}i}A!}xy|B=}&}". }jh{#L}Wg6!R}mB~}|"}4v"}b}s@#W}x \}x ]]}jwg#} }#}Sl}D}9#zC}qr}xp}}tmZ"$}p~Z}v "{}5!} }u\}]9#i} }VU U}c#y}&3}~}~!+}<}yh}kjf{4}#=} }p]0}; >=}#}}osH}-=e}5 K}~} O}L!2}t'"}M-"}pfr {&} v!}}!f}|#}+}"hM}5}3N}u }T{T}(}-v-}.w.}y#.X}g_8t8} m}v!:}}} ?}}|gb!}lR"},}h{}q#}{h}R} V}d*"}g#V}rf}S},"}0}r[pD}j"\}% 6}|vK"}wG !}s:]}'h }k'!n1}rH$}l3}  (?} }tn! "}b"izy}g[ PU}y4*}G "}}}}!}a}$s u}W}Yy#*}_}nn}jy'*}0ph}|g}a 9}teh}oz}wh}V}6O}k?}"}g }n|#u}!}}z"a}h>"2}`n2 k}dn6+}tm }}M}F }|}~mQ}"Q!}k-B }rv}l6w,}""*}-}{$}`l }q!}o*}np}\}zS0}1 }4 T}  s}l<d}l_}%7}[G}@H}A9}mu]}{ @h}h K}g!L}g!}rR}Gya"J}\}l7}l85}6,&~};D!k}N }Zo}L}y}|U}jyV}jz}}wi"Y}i6}=#]}?}!}~}|ce}M#%}hsF }~" }~$ w}X=}#S}o  }:}}z!}}}VB}xC!};}#}{!a}whj"d}j };g"}wnf 5}Kr t}i!}x}<}&!1}s@ +c}0L/}xg";}tuF}v!j}|( }; }e!%}!P6}o"}ofK<}}#}>'!t}NN}~#s} T}@!^_}l r}uj X}2 <z}fV"I }t~[}~t`}pp}u]#C}~1}Am-} "{}d#}k#-}qko!C}h}%x<"}8!k}g}\;} 6} j}gdi>"}qo-! }t"[}#} } }Q>}$A}$}%m}%X}gh"G}X}sg"`}&; =}>"V}%"}l gr}ma#.}i7+5}d}rm }#>}w"z}p{}sQ}v>"}C/i}|^ V}Kf}1U})}l#k}#r$!}x9"}r}v{ $}  }|<}}^J }`})}7kn}v.}sE#}{}}{<k} $}y3}g"C}sm!}~7sEf}#R}T}}4}#Pv}o%}"uI}~b}y5xk"s}k, c}y8xnT};t}j!}N@}fBy} m}+}Y!t~}~~}a L}m}|}:}}(Tg},}vidcr}ZMD}h"}i!}}u F~}#}v8}zvj"O}l}| }| }g-{6}Z!"}%}"%}#0}g}} /}\mN}]m  }lS!}lT_}(}v$ o}o#>}F"}1#}whD}  m}kn,}dq")}l}}h"}h"=} 4 >}5s}{+ )f}h!y#}~ }Pt!:};lF W<}?lH"}!F\} $}m bF}wf#}>}p!F}1u #P }"}y }"}+o}Sap}\b}_  }}8"9}x~Y}AnQ}ty#}D }Fl}T"bK}iw"}E}s~!(}"<}"}j!)}m}s"}og}ol7}j"7}z}jwJ">}!?}}>}F!D}iE} N}t!}e<}J^} _} I}4}uG}1}9r}^{^%E}R!.}}t!3}"5} lm}ytK}pk\L}pm^}i"S}o}/g}zx}w}}t?!}tE}f;}h=l}mVd} #*}k!Kx}TM}#vv}9{!<}t=}uv}L"}u{V d}gcg"uv}zp?#j]} q2"} }I""}ro r}u}# j}P}!=}!>}p]}p_}gf}u! }E\}"}#!j}7jv}l|t!}~!}m/}}1}}})#,V}^!uW}`!v:}&)}g}C"}E1?}x%#9'}X }jf } Q!}U!(}-v}hbf`} e}BpG}u}!0t}Y}|!}|! }}n!_-}h2}}>!8}!}i}i} }G} K}am}}!}lU}c}v'}sM'q}jE"}o"n}~^ x}a z}#}Fl} Z}#} }~=v!$}~?z!%5}2|}x" 3}kI)}T#f7}yv8}yvp}n^}!}}Kz o}O}~B7 }~C8!Z}*}nrS}&*Xq}3x#}Q!+}k8}k=#Kv}t"T}} w} y})!~}y}1!#}j"}n'l}M }` D}m>}h#d}h#e}}v)!}v!-}{ }#X}g }}_wV}`xW}w" }o#(}q#)}w }md!3}mf}_# }r(l2}p!0}rh}A };0}gx?}@#\x}v=}l*h}ip5 i}lp8m@}HaL}y}i }V}c"} s} #-k}"1}t}jt`"@}Y"}ZXD}t#}zf}n!q}Q-#E}or }x#}!T}L"6}j/-}8-"}"[}?w}4!}"}"}]<}~n!C}l}Rxxx} }o}zq}_ }mn(M}C.s}( }* \}o|!G]}p|!H}ka5}{Dl}8h}zu3 G}q#[}Mw"U}.p}#2-}$QW}ufg}gO}/#x}b}!y}}Bpq}vsZg}qv})}lY}N\}{}!}3}vaD"(}>#_}D."} j}rg=}S}F}}h X}h#}#7 }T}}v!d}}vU#v0}hk !I}Ny } :%}j }"}}tcX}zs;Y}{s="}B-}09d&}xB$![L}i`}?!}s 4} } R}x!)G}}2~}8\}xN" q}_}}F[~}T-kt.֚%$$!pXNp4A.Q&a4a&0.QN.Q&нp?a.Qa4ͳp(WM# ls&(0? x #0 NT  lZu(19-M*X )&X U>4j>("H//////////////////*)Nӽ6+V8, cLD>z#0;)wSWWSX( WRX(/,WTX(X)WX)X)WX)WWX)X)X:X)X)WX)X_X%X)X)XEX)X)XX)X)WX)XWX|X)X)WX)WX9X)XWX)WWX) UX)X`XhX)X)XjX)X)X4X)X)X&X)X)X}X)RX)X)WX) FX)X< X)WXDX)X)X2X)X)X|X)X)X%X) * X)X)X:X)X)WX) NX) X)X)WX)X)XX) X)X)WX)X)XX)X)XaX)X)XMX)X)X)WX)X)WX) t X)X)WX)X)WX) -X)X)XAX)WXVX)X)WX) ^X)X$WX)X)X`X)X)WX)X)XsX)X)WX)X)WX)X)WX)X)WX) 6X)X)WX)X)WX) z@X) X)WXbX)WWX)WX)X)WX)X)XEX)X)WX)X)WX)X)XWX)X)WX)WX X)  X)X)X0X) uX)X)X}X)XEXNX).X)X)X1X)X9WX)X)X'X)X)WX) )X)X)WX) jX) QX)X)WX)X)X:X) & X)X)X:X)X)X1X)XEXNX)X)WX)X)XX) 9 DX) - X)WWX)A cX)XkWX)X)X)XiX) X)X)X X) ( X) 0X)X)XrX)WWX)v )X)X)WX)X)XX)X)X1X) ) X)XwWX)XNWX)X XX)X)X|X)QX)X)WX)X)WX)X)X1X)WX;X)X)XCX)X)XX)XWX)X)WX)X)XaX)X)X)XX)X)X;X)X)XsX)X) a AX)X)XjX)X)WX)WWX)XX'X)X)X X) X)X)XX)X)XX)X)WX)X)XrX)XmWX)P rX) X)X)WX)WXX) X)X)X)X}X)WX1X)~X)X)WX)X)XX)X)XsX)WWX)X)WX)X)X}X)XX]X)I ZX)X]WX) X)X)XNX)X)XX) X)X)X;X)X)WX)X)XX)X)WX)X)X|X)XY @X) 0 X) X) hX)X)WX) ; X)X0XSX)X)X}X)X)WX)X)WX)X)XEX) UX)X'WX)X)WX)X)WX)X)X8X)X)WX)XXhX) JX)WX}X)X)WX)X)XX) %X)X)X}X)X)X X)X4XTX)XNX+X)X)WX)WWX)X)XX)X)XhX)X>XX) QX)X)XX)X)XjX)XjWX)X)X)WX)X)X}X)WX.X)X)XX)X)XX)X)XX)WXX)WWX) ( X)X)XrX)WXtX)X)XWX)  [X) )X) QX)X)X&X) Z X)  X)WWX)X)WX)X)WX) X)X)XNX)XeWX)X)XjX) X)X)WX)r #X)X)XMX)X)XX) jX) C X)X3X)WXNX) X)X)XaX)X)WX)XXX)X)XEX)dX)X1WX)X)WX)X)XX)X)X)XNX)X)WX)X)X|X)X)XX)X)WX)X< rX)X)WX)X)X'X)X)X0X))X)1qX)X)XjX)X)X'X)X)WX)X)X X) 8X)X)WX)X)XsX)WWX)X)WX)X)WX)X)X`X)X)WX)X0X{X) f X)X)XhX)X)WX)X)WX)X)XX)X)X)X}X)X)WX)X)WX)  X)X)WX)XNXX)WXUX)WWX)XXqX) X) } \X)X'WX)X)WX)X)WX)X)WX)X)WX)X)WX)X)XEX)X)XX)XXXaX)WX|X)WWX)X)XX)X)WX)X)WX)X)XXX) X)WXjX) 0 X)X)X2X)WWX)X}XX)X)WX) X)XjWX)X)XX)X)XNX) X)X)WX)X)WX)X)X X)X)WX) X)X)X&X)X)WX)WWX)WWX)X)X;X) X)W X) .X)WXaX)X)XX)X)WX)X)WX) .~X) Q AX)X4WX)WXCX)X)XXX)XyWX)X)WX)X1WX)X)XX)X)WX)X)WX)X)WX5X)X)WX) /X)X)X}X)X)XX)WX`X)X)X;X)X)X1X)X)XX)X)X'X)X)X)WX) ZX)X X) ~X) a X)XXNX)X)X2X)WXOX)WXEX)X)XNX)X)WX) X)X)XX)WWX)>X) -X)X)X1X)X)XX)X)XEX)X)XsX)WWX) DX) dRX)XWX)X)WX) /X)X)WX)X'X1X)X WX)X)XX)X)WX) ) X)X)X&X)X)X1X)X)XEX)X)XX)X)WX) X)C X)XXrX)X)XX)X)XX) X)X)WX)X)WX)X)XMX)X)XX) $X) X)X)XMX) A X)XsWX)X)XWX)X)WX)X)XNX)WX`X)WXOX)WWX)X)X-X)X)WX) r 7X)X)WX)X)WX)X)WX)X)WX)X+X7X)XWX)X)XDX)X)WX)X)WX)X)WX) J X)WX/X)WX'X)X;WX)X)WX)X)WX)X)WX) J X) X)X)XX)X)WX)X}XjX)X)X|X)X)XaX)mX)X)X}X) /FX)X)WX) RX) X)X)WX)X)X1X) 9X) X)Xc X)X1WX) X)X)X|X)X)WX)XsX|X)XWX)WWX)X)WX)X)WX)X)WX) X)X)XX)X)WX)WXYX)XEWX)X)WX) Q X)X)X'X)X)WX)X)XxX) X)XrWX)X)X:X)XWWX) t FX) IX)X)XX)X)XEX)XnWX)X)WX)X)WX)X)XDX)X)XEX)X)XX)X)XjX)X)WX) @ X)X)XaX)  mX) .X)X)XiX)X)WX)X)X%X)X)WX)X)X'X)X)WX)X)XWX)XXgX)X)WX) <X)XaXjX)X)XaX) ,X)X)XEX) H X)X)XX)X)XCX)X)WX)X)WX)X)XX)X)XX) QX)X)WX)W X)X)WX)WX)X)X)WX)X XX)X)WX)X)XX)X)XX){ X)X)X2X)X)WX)X)WX)X)XX)X)WX)X)WX)WXaX) ~X)X)WX)W 1X)WXOX)X)XX)X)X0X)X)XX)X)XiX)X)WX)WXXX)X)WX) X)WX2X)XkXX) ^ jX)WWX)XXXaX)X)X X) X)X)WX)X)X+X)X)X;X) < ]X)XiWX) X)X)XX)X)X X)X)X:X)X)XX) X)X)XrX)X)X}X)X:WX)W X)W X) X)X*XX)X)XNX)WX)X)WX)X)WX)X)WX) JX)WWX)X)WX)X)X}X)  X)X)XjX)X)XXX)X)WX)X)X)WX)WXOX)X)WX)X)WX)X&XrX)WWX)X)XDX)X)WX)X)X|X)X)WX) <X) X)X)WX)X}XX)X#WX)X)XX)X)WX)X)X'X)X)WX)X)WX)X)WX)W -X) m X) X)X)X`X)X)WX)X+WX) HX)WXX) ;8X)2 X)X<PX)X)WX)X)X}X)X)X&X)X)XX)XEXVX) X)X)WX)WWX)~ X) qX)X)XX)X)X:X) X)X)WX)$X)X)XX)X)XX)X)WX)X)X1X)X)WX)X:X`X) X) o+X)X)X:X)XNXhX)X)XMX)s X)X)X|X) X)WXXX)X)XX)X)WX)X)X2X)X)XX)X)XX) {X) W X)  X)X)XX) 7X)XX X) X)WWX) X) X)X)WX)X)WX)X)XX)X)WX)WXX)X)WX)X)WX)X)XX)WWX)  X)X)XX)X)WX)X2WX)WXWX)X)WX)X)XX)XMWX)X)XjX)XMXAX)X)XX)WWX)X WX)WWX)X)XX)WWX)X)X;X) X)X)WX).X)GX)X)X}X)X)WX) X)X)XsX)X1X|X)X)XEX)X)XNX)  DX)X)X?X)X)XX) X)X)XNX)X)WX) X)X)XaX)X)X'X)XwXYX)XGPX) 0X)X)XDX)X)WX) X)X)X1X)WXX)X)WX)X}WX)  JX)X)XxX)XEXjX) M X)X)XMX)X)XEX)XnWX) X)X)WX) X)X X)X)XEX)8 }X)X)XDX)X)WX)X)XNX)  X)c X)X)X X)X)WX)X)WX)W X)X)X X)X)XDX)X) .uX)X)XX)WXXX) s X)X)XUXX)X)X2X)XF X) X) Z X)X)X9X)X)WX) &X)X)WX) X)X)XX) j X)WX%X)W X)X)X1X)XEXNX) X)X)X}X)X)XaX)X)XNX)X)X2X) X)X)WX)X1XWX)X)XX)X)XNX) X)X)WX)X|XDX)X,WX)X)WX) j X)X)WX)O7X)X)XrX)X)X X)X)XsX)X)X1X)X)XX) C X)X XX)XkXhX)X)XX)X)XjX)X)XX)X)XaX)X)X2X)WX X)%X) r DX) aX)X)XX)X)XX)X)X`X)X)WX)WWX)Z oX)X4WX)X)WX)X)XMX)X)WX)X)XDX)X)WX)X)X;X) IX)X)X:X)X)X X)X)XaX)X)XCX)WXX)X)WX) X)X)WX)XX:X)X)XjX)XWX)X)WX)X)X|X) ; X)WWX) J X)X)XrX)pQX)X)WX)X)WX)X)XEX)X)X)XX)X)WX) X)X)WX)XkWX)X)XX)X)X2X)WWX)X)X) X) .X)XXX)WWX)X)WX)X)X1X)WXWX) RX)X)XX)X)X`X)X)WX)% X)WXaX)X)WX)X)WX)X)XWX)WX"X)X)X}X)X)X)WX) X)X)XX)u-X)WXVX)X)WX)X)XX)WX:X)WWX)X)WX)m mX)X)WX)X)XX)X)X:X)WWX)X)X'X)X)XX) +X)X)WX)X)XX) g 8X)WX;X)X)X#X) X)& X)WXX)X)WX) l X)X)WX)XRXlX)X)X9X) X)WX{X)X)X X)X)XX)X)X_X)X)XX)X)WX)X'WX){%X) X)X)XMX) X) X)X)WX)X_XX) t[X)X)WX)X)X'X) X)WXnX) X)X)WX)X)XX)X)WX)X)X2X)X)XNX)XkXX)X)XaX)XQXBX)X)XX)WX`X) WX)X)WX)X)WX)X)XX)X)WX)X)WX)8X)WWX)X* X) [X) 7X) % X)X)XaX)X XsX)WXWX)  X)X)XsX)WX3X) B jX)X)XsX)X)WX)X)X|X) X)X)WX)XXX)X)XsX) J X) o8X)WXJX)WXaX)X)XCX)X)XX) KX) rX) HX)X)XWX)WWX)X)X)WX)X)WX)X)XNX) AX)X)X$X)X)WX)X)XNX)X)XNX)X)XjX)X)XDX) JX)X)WX) X)WX&X)X)X`X)X)WX)X)XX)WXX)X)WX)X)XX)X?WX)X)WX)X)WX)HX)X)WX)X)WX)XOXtX)WWX)X) X) $X) %X)X)XEX) cX)X* X) X)X)X;X)XNX+X)WX)XNXX) /X)* YX)X)WX)X)WX)X)X:X)WXtX)X)WX)X)WX)X)WX)X)X X)X)X&X)X)X:X)XWX)X)WX)X)X X)X)WX) .X)YqX)XjX{X)X)XX)W @X)X)WX)XfWX)WX-X)X)WX)X)WX)X)WX) X)X)X)XiX)X)XjX)dX)  X)X)X`X)XBWX)X9XX)X)WX)WWX)X)XjX)X)X|X)  X) M X) ]X)WXOX) NX) X)X)X'X) X)WX'X) I X)XXeX)X)X X)X)WX)X)WX)X)XWX)X)WX) 9 X) ~ X)X)XX)XhWX)X)X X)X)WX)9 X)X)X:X) -X)XEWX)XDWX)X)X1X)X)WX)X)XjX)X)WX)X)XX)X)WX) 7X)X)X`X)X)X:X)X)X X)X)WX)X)X2X)  <X)XXhX)X)WX)X)XX)X)WX)X)XX) BX)X)XX)X)XsX)WX`X)X|XDX) cYX)X)WX)XaWX)X)XDX)X)WX)X)XX)X)XaX)WWX)X)XiX)X)WX) LX)X)WX)X)XjX)X)WX) ~X)XVX{X)X)WX)X)WX)X9WX) F X)X)WX) X)X)WX)1X)hGX).X)X)XX)X)WX) X)XXZX)MX)WWX) P 9X)X)WX)X)X`X)X)X X)X)WX)WWX)X)XrX)X)WX)X)WX) /X)X)WX)WXaX)X)XiX)X)WX)X)XaX)X)XX)X)XX)XX X)X)WX)X)WX)X)X|X)X)XX)XNXX)X)XX)X)X;X)X)XAX)X)WX)WXX)X XX)WWX)eX)X2WX)X)X X)X)WX)X)WX)X)WX)X)XX)WXX)d !X)X)X|X)X)WX)WXX) RX)WWX)XfWX)X1WX)WWX)X)WX)X)WX)X)X1X)X)XEX)X)X X)X>XPX)X)X:X)X)X&X)X;XEX) X)cX)X)XX)X)X_X)X)WX)WWX)X)WX)X)WX)X)XNX)X)XsX)X)WX) / X) s 'X)X)XWX) X)X;XEX)X)XX)X)WX)X)WX)WXiX)X)X1X)X)X}X)Xb X)WGX)X)XMX)X)WX)X)WX)X)XMX)X) 0X) 9 X)X)WX)X)X X)X)WX)WWX)X)XrX)X)XX)X)WX)X&XMX)X)WX)X)XsX)X)XjX)X)WX)X)X X)X)XX)WWX)X)XX)X)XWX)X)WX)X)XiX)X)WX)WXOX)X)X9X)WX;X)X)XVX)X)XjX)XkX^X)X;WX)X)XX)X)X9X) X)X)XjX)X)WX) /X) ZX)WWX) %X)X)WX)X)X?X)X)XAX)X WX)XF X)X)XjX) 7X)X)WX)X)XiX)XDX X)X)WX) X) X)X)WX)X)WX)X)WX)X)WX) A X)X)WX)X)  \X) $ X)WWX)X)WX)WXDX)WX8X) X)XnX X)X)WX)X)WX)X)WX)X)X1X)X)XaX)XKWX)X)X/X)X)WX)X)WX)X)WX)X)XCX)2X)O X)X)X|X)mX)X)XDX)X)WWX)X)XiX)X)XMX)X)XjX)X)WX) YX)XXX)X)WX)X)XX)X)XX)X)XX)X)WX)WWX)X)WX) X)X)WX)X)XiX)X)XDX)X)WX)X)WX)XNXsX)X&WX)yX)X)XjX) mX) Q X)WWX) X) IX) 2X)WXX)X)XX)~ rX)X)WX)X)WX)I X)X)WX)X8WX)X)WX)X)XX)Y }X)XlPX)(X)WWX)WWX)X)WX)X) X) ZX)' X)X)XX)X)X}X)XWX) ( X)X)XWX)n X)XMXrX)X)X1X)XWX)X)WX)XXMX)X)XX)WXOX)X)X'X)X)WX)X)XaX)X)WX)X)XBX)X)WX)X)WX)WXtX)X XX)X)XX)X)WX)X)XrX)WXOX)X)X`X)X)X X)X)WX)WWX)WWX)X)WX)XWWX) X)WWX) X)XnX X)X)XX)X>WX)XHWX)WWX) 2X) [ uX)X)WX)X)WX)WX+X)X)XaX)WWX)X)WX)WXSX)X)XEX)X)WX)WWX)WX)X)XX)X)X|X)X)WX) tX)WXX)X)XaX)WWX)WXVX)X)XiX)X)WX)w )X) 6X)X)WX) Y BX) /X)WWX)WWX)X)WX) +X)WXX)X&WX)X)X0X)X)WX) X)X)WX)) X)WWX)X)XX)X)XjX)XMWX)X)XEX)X)WX)QX) X) <X)WWX)X)XsX)X)WX) < QX)X)WX)X)WX) X) X)X)XX)X)XWX) X) X)XPXbX)X) 9X)X)XX)X)XaX)XDXMX)X)WX)X)X X)WXJX)WX/X) X)X)XX)  CX) 9X)X)X|X)X)XNX)X)XEX)X)WX)X)WX)X)X X)XX*X)X)X'X)WX`X)X)XX)X)WX)X)WX)X)WX)WX0X)X)X;X) X)X)WX)X)XiX)XsX&X)WWX)X)WX)X)XX) zHX)WWX)X)WX)X)WX) 6X)WWX)X)XX)X)WX)X)WX)XQWX)WXlX)X)X|X)WWX)XX3X)X)WX)X)X0X)WWX))X)X)XNX)X)WX) 0X)X)XMX)X)XaX)X)WX)X)X`X)X)XX)XoWX)X WX)X)WX)X)X2X)WWX)WX2X)X)XX)X)XWX)X)XrX)WWX) ~RX)XXX}X)X)WWX)X)XX)X}XX)X1XX)X)WX)X'WX)X)WX) +X)XkX^X)X)WX)X)XjX)X)WX)X)WX)WWX)X&WX)X)XX) .ZX) X) IX)X)WX)X)X}X)X)X`X)LcF@r8/H;u@GFsUgG*u3DviUXFsa3Fr?wEvSEEvT3GqFGq5G?tQRgDr:vGs6PGs7F-Ft5FFq?OCtNFsZGGrVEs2GtNGq9Dt9D8t6D9tAH6uIDvy:Ft1OHv:GouLCu:$HeuFEvs6Crf19FqqTGDsOU%D3qVAHtUDIrNEr)PGqF/CuELGWqB7DvK9rFqSCr5AErr<DBsT5FuQEqV6Du8Ev!CDr8CsJFq7E>sFSG$u=EqLgFv7RNFSuBFTu7HvLsHvHH t2iCuAF7rEH`uV$GqLCrp18DsH"HrFkDvQ-EQuRExD.vuAFt;sFtQHriHCDjs.DTCsG*Hu8ErDErFMFukODs? DLvoSFsj@eDs%M>Fu5DXtTHBs;7lGqCHrTHiGTv/MVEtc=]Ds;Fs1Ct$5D@s9oDOu2FAvQ2Hvs/>pDsUDs=0Gv(KDs73Hmt?(E:r3=Et~OF u-:EuHErLEuFDt8Du>CtND0u;Dt2kFr3Cs CHrsl6uF|tL8GPuUkH*uJHrs5Gu@>Gq<Dt4FuvRGs?[Fsr9|Gt<Gt?GXu;QoDtF7F&rRHSvQ(GqTGqQfEsF^Dt 4Dt 0uEHuB6FsPCvGAHLqDMFr>GtZ?Gt[;HGu>>Gksb8-H)tSEtN|EtAGu*7G7rSCuREv;EDr=FrCDs< DvaDG v >G)s4Dt":mDu;Edr67qD,u8&EvzT FqBDqJDsPPDsF3EYsEEGudE CtTD^sHJtFPsF"HJqDVGuONLD/t5EuDGu2>DEvGDVtL8Ht:>E3rGEvn2 Fr2G~qRTD;r7O5Dv9qDs>Ct69HtrnUEBu4G'suBhDs9FCqEFsJFu#HCu>EvGJDtPGbsoP]F$r74Ds,BEtBGu7;G1r0EvF9TGZt;5sEuET^EuFToHuF ErHGsf6+Gsg?FFthTDt.SGr5NFvVNKGhrNzD'uTE~sJHOuT?Es1Fr OZFt;Ds;EwtEeExt8@Er=:7HCqPCs+;CuNEv~OFau5QFbu6PMENs4KEuBDr8}Fs?Et|DGrCGGuSGYDt6Fu,OF6uTQCr5Eu`LErEE[r K8H't#8`Dr_VoCuE&HasM>G3qBGu0XGuNlFr$VDu2Fv'T#FsLE t1E`vEEKsHGQt@?Hu>rGrTFv`NEWrMU,DuOFsD2EvQDvq7Cu 6.Hu0SH>qE+Egus>GsVEH5rKEtRGAu\;3D s5@Fr2}Cs{JKCuNwGlqE?F1uIFr3Ft^;DcvMoEt9Gr@cD2s(7,D>uWD?u<Fvx3hFu/@Ct1Et0GuL;HRt'1Dt9Fu~DFtrLHsNDGItN0DKs?{GuBCCqKG@u%RDt:Fr<CvKEtsBlF,uWLGv<:Fzr MH}t>GrBYH:qJcFpsNuHs=eECt ?$EDt5D rd3ErH<Dq8Fq4%HEu4NDvW6Dr{4FuC2CuKGt{HOH"scPGsCF_t>LE/uKKE0uPCtU.Dq6Fs=~G[rNWGqBVG"rGcCtQCt7vGv:GKs=GLsTSFr:3 Hdq;UEro9CuJnGq4HsW:eHsGEsJGyHt-4bG9u+CDu@wFr5DPrDHQs@FqFAGs~LDosQ>ErHzGr7Ct6eCt?Gfv#WaFs3:Ct1cHbq8 G|tAFu;Hsp5DsS9Fr2HXr?E%u5FvU!Cs4ZHfv4KPDs4Es$;EuyDt=DrJ4DrK<DtEDqRFkr19HrD!GrGDt:Det2Fr-UCu0EksE2Fs3Erc6OHutm<G rQCu47Eet>Ds5XEs=PEs>7ADRqIHlu>3GFuvI=&GduuGF vIFsJCuO$GtDD`uS-F9rQHKsqHEqVCr7;Eu@FtLEtHqGumQ}FIv9F-sNFuJ2GEt1GDvrbOCu1:GsPGvY>QDsURHtx6Hty=TDrVIFrNCv17Fut>HFsI^EuOzFWt;Fer@5FXtFEEt5Et@Hu]>:EqrtCGr=)Cs[<D]tUGvMACu QEr1Ds)LFs4LErmAErDA>Du9Cs:Dt91E7sAG;sIErY2FvLL%CtgKsFsDEt7Du>OHv>TdE,sI/GHr!QGv"4H sFGvc;H/u 6HHr@E tUDq4{GvD4AEt;WETt= HqJDuKHFKuxBF]s#LE v>GpsEH+u_TDvVEt;GtbRD r4Ezu27D\tEIXHGrR^DswIEsN4Fug0FEu3aF(rI_Dt>DtTFwtLCtp<Fu^4EtMDlrv1Fmu0D tV*EvuRDuSEv}9DrqVFu@\Emq<EnqCG^tsEFuK Hv&A?DZt<H\u$;4G+sKFD-u?Evv2*FCuNGv^SFDq;FrL<D5t]7D!q0H%ulFDv PCqFGr=Eu@FuBDtRFrBAFrC4F/r#MEvLEvVGvCzEt:bEtMDwu7D)v0UHCvGEivEF?u:CrCDmq0,E(s0HGEv=?Dt3DGu8CHrEaGrrA+F3q3BDtRFYrGGt5+DrQEu?Eu6EsL33DssR6Cq7Gu>EtEGqV<FuS|H4sTCuKKtDTt%:xDUt&CiHpr7E"smHGrHHyu{9VCtI5 EtWDsMnFs<JGtDGHqvg;E#qJEt B~DrU;Dtd8"HuT2ErjREuEF=sQF>s@Fu=HsAFtBCrU$EysDOGvH'F2t3pH[rVFdsLE8tPF#u5Fr%8Fr&:FsryKE-uU9E.uUEuKD6vVFv04HItFDrCE<tO7E=tP;G!rVEuVCrWVCu93CrFLE^u5Gs1Dv)HDsY2vCt_PhHcq>!G5uFhFu:uGsUeE sTCEt9REtNGubSGuc6Hq>RFVuAaHhvr1HPsGDt(>Et)8EqHGreDCu<F r??H!s KGuO3DtIGs@IGYrX6EsdHnFt1zCq?Dv=VGJs8BeEqBHt2GrAGrQ9GrRBGzt2D:uJgF<s]E,Cr0HsuMS?E$uODsnH[Fq@Cr9Cv[RGtSDgu@FUu?xG8tEFtFEosT,EpsOGuwSD[v?HwtEHxt8Er4JG-uIG.u8Du7HsSmH.v2EuH]FZtRDr =GupFnGs>DvOGeu34D"sBH&r;UCH(r<I Gr8Gr9(FRu;BFt2FjrEOFr51Gr53HVr0OCv2JG6tGGRrhSFtID=tTV^Dv4CtKEru>,Gr64EErLFs8FuBGutIDtkOFfr;tDqHwHuTZFsOFqEGs:LCsMCvfL DrrMFQuBbEqREqBXEv? F[t2IuCs;CsIcEsCCtDqMDdt}M"Hq5HqViDsICv@CCr8Cr>GsDFuKDEOv.@FuICv9IEDprUF^s-@G0tVFtCkGxsNH1ujSFv3GuQDvJJHr27Gr@CsSE_t0DpDqV(DatXJpErxJGuAUD<sD|Fu3(Eq4HZvP6E'tnRD+q0kErr1DsyLaDvBKFsSCs:wEXteEH s2uE{u9Ev:0Gq3;Dv <FhqJERu:A$Ds1EtHEqJHrN:*CsNEt`DBF)sFEFGv O EuQDtqOE2sk2DG2sBGu}ACqCG{s FDrNtCvA6EtYLtGr(7F\s?OFnvALGBrz8D u?DuGvj9FrW2DsHMFt*;Gu;G:sPJ!EtRMEVt6CG_tTF s}0qH]unB0H^uoLE+s>Gs2Ft R/Ft UHTvZ;xG tKTGqP5Cs5E\s8ND#q7F u"0FtWSFs!PGuSDrClDtSHGvUHAr?SHWuO!Ds|8 E vECAGsAW4F`qTELuD;FuCCvNQGtEGuIYGvsFGws2FtG>H,t>Du!HCsKGr.CD}uq>G>r@BDuNNDtK CuIF'r> H?s*<Ds0DsQ!Cq0D_s1mDsv\J HzrGA E1rQDDrMG]tKD7r;7HvmHGqKErPErOFytPGmsRJGnsSOD(v?WEq2(Gt3DqCFu'AFDvOLG uOFr1 Cs4DStJF%r|LoGqU4GyrAI Fr6GtVHorBG#s:Dtu5Dv+8Ft=2CtVGis8DFvpIsF.q0Du(WEtFFE4q6CuXAEUsxPjG(s`1GUt1"FsGDt: Cr@His2OHjs46Cq@#Er7UDv_UH r,QH#tVEt<Fr^@GsDHuzP Cs&MGHs 3 GvUEG4rURLDr0FrOE@u[NPG%s1KG&s3MDr46Gas'GD4s:jF!q3DrW Du.FFst>Cs5EtrMGv;/EuUEu)3 GuLPCvRGHEItMFE]qSfGgrM?D$uZ>jFs@oHvADtBE|sz5\F;t7&Flt!N'Cv1EutB=KCr;H~u@EMsND*tPEluJ}Fv?GrSEfv8(F5u3=SFqJfFtGEr=GsV>GGuKLE9ufUEqLEt8=kDuAACvkFlCt3EZqFH$sVFrMGvL"Gt,8H{uKDsIFqCwFqMDku9FJs\JF{r1DEu 4Dfv|AGsvCEq5DGt1HsBDue8CrQDYr/3/CrNEr>D|s9$FsQK%Gs6aFq4Cr[ReCr\IF:tjUH2r83H3r9MDu8bFtJCu5HF0u<CbDveREr> Dxs4GsITEqCEt?KFuA.Cvt3SEs4oGqSGE)v]?GsX5Ft\2Eaui5Gsv @Et<=oDrLEqKfFBsi98Er12FtPGvF EuA!Eua5"FNqTGu@"GuQGrSKkFis^3ESr 2XDDtSF*u ;Es;B;.;A6;1;-;';!!;;;5; #; ǃ,q6[,Q[Y#nQ,qQ| 8QQAc|#n#CQ#H$aN&F+&Ud*̸*4$a*d@Wab"Xkac([dBWae"dAWad") #N139.y }&CB6y 'yWB#/;"R.MBq\$f&0./"R$ ")*9?4B$kT 6x(d+H.]؅L&(Jە ! %Et]>f91]=f:!O5 J!D=(oɟ-A ? qz'`TJ+*V&IL,1D'70,Z,e4$X E(74!1."-1);F," N(Y v$!-.wP.s,8!I.*N'o+`(;C:(ϓ> yN 8;. ;',#i>?L+d^R;+W v9<=|F'ٱ ;V&|#<S.!:%  .#A7?L&*?',)q  !ϗ  v4&+5F&>?L&Gl viּ*?L#"y ,?L!/| GZ^ YG?L^L|>N,(^'"i6 X&?L'F%&X.!?L<~ i.4 ,P+J|<F9. OI%.Xs?L$)?L+*?L<Q,:%? vP\?L| vF0@.$ . v|'M# t$B|2 (0'5+b#FH, 68.^{;>/9?L'|;.R?] kB.&>%(.'6|ؕ#"0c(:#5%.|;/F%S', 3|>;#"^  7!5F'*G.^`.#"T?L+#"bF v. &G׎ m?L(LkZ|<h.$^F>;k|i#)?L|u< UF'(. Z?LG;5?L#:^v(|$F |; k3< K 8~F'='C !.,3 v0$%h%HF,S.;.2 F$ ':x?L< +]Z2 #  #"|kYf!&G#.if.!;&G|<?LDvip#":.(?L&8#H|;>E|+#"|<A.>#!| ̦F<?L .%0|>r *k@YFC v'>.&G);KFi>T  /B% L|^?L%"?L&G.!+k 83.%&Gԏ>c'C< &G/F,ۺ,HF;(!.+B.$U&G ?Lzk:a& |'I&F&G Ai/|!Uk ?L(.x (;yF'($$K'T&?L'F=W ?L$qF  k   k#,|'WFp &G<#"Y&Q  v*r  LAU| gF,;>.#"D4k> )!4$4Y*J,P$3-+9+9u,'Y)*W!.[k>yt.GK2?:B,&=pG#& 1^6 $*{&;#&9$+SBH /9<]2+&&U)+ٸ,R, @X- *NP8&VI!s 9*:-".*C1%  )S"<.Lr+M-KU #'"ZbW -8$.-Fs'%h4 1\E#Ϲ'=U)|2*'<yu'S$]\ ?'.$?(W!U![һ,f /N;ǽD @*I(wʈ&&((&!14A);#**). E$&D΍'Q%0,"k$HP*"!B'sL!S,''!{&a(f*ш&*,7@4 w* *~*o&v wk  .0 nY e?-7*l6+^Z*H3",G$R8!$$ :%_ -/] #4#|y*,Q=!p1-0&R*6ZWiA.: -w g YP+#i&q>n,X'T#G>+X#+<(PX %BrN$"h% c};Rr#;*$A.$A$k5!F7$BD ,D"K%H~F& 0$w;J -&0E'xR=NHH4%"[$Z E!%=S~E *JT-BN@d.L^QDtUYK&!w[` 7-3 J'r  )+XxOv M$9))s&?M> <j6c! 5**M+R.(*. &ؒDB iѸڒ;T$5*l4 `$.*H",-+f,R& H$PN+(Vci(I$ [sȢ,ݡ 6׊%A&n, 4x:*&Z/+#t-> $f!{""*~N"(w2r @(fj,%e_"&VZ0B],X:wA].:) @0K)٤$M.#F''1h$wX&F>+@U ,Q&&**+k*I)l$ ^:wRV$AF$*b%B Q"K#b&>fX!ZB!*D2$HQ-.0O9@}$k93k" ;,"&# *&<|Aoy%h$M E&S!P f"Hf2o#=*&;;*%3#@!ٰPs#&c !CŴPȘ T). Z!T~ -$*[,75>+-K[$]v'=E.**!*˾-:4?K%!"+C-WN6$*N!p#R#)|_-c% 5 +|G'P*$J$% yL8%&rWW e x- w,D wO&q"-F*H,F[E.vsQh5$*$v 4=VG 2P%$NGX%CK\%9&@`HcXEW|X'R_IWpXGYOB 0 f\OX}WtXXJV  x3XJ RoPyX WjNXsRJX|W)SqOXjXAXVJ ^% eUPXEXVX'TmJ  GYPX=WrQPHXc -Sg2WWJ  Q\KP7 WNgXYqJE  r"TOX%WWR6IH}K[ZOWWl.XNYI 9SPf{ $glz\Np TyNWXWWQK>WW SWRJ  ~[}PJ1XEW oWVKM $c\HN sX mW\ O` M#keTOt #  ,zY P"  }d\O(vROY }\N( 2ZK XDWdXiYIPX0WLX9\K- rSXyPNt MxxRJWXDWYjJ XVW X%[I WXWXNSKIkWX-XNZJ (TO2XX0.XWIWXE9VKWXWRJ}r h fZNu D t}SGOu# ) 4oarTO, QscZO s pUPRWWWVlK[X WZKXjWxakWTJs[TP:WX%hX UK~ R Mh\O JnMYZeK  ;VbOX/WX8RNJC ]NOD ]OO xTO qgoWOR WXNr\NWXX>VJM &jS@O-XEWy8W[pJ{ 0yTP) n vY"IWXWWYIhj  b[hR ]NXtX;WvJ gw ZO% d L \KWW;UPO%WWfXROBTP] .\;OPJ TPOWWUO Z yZUO 7XRJN[  ]WOp' )>}ZNWX?WYJ; / "fSYKIWX}uw5ZNI+ lSkN f` QJXEXSaX'W Jp bQQ 4[J  `qMZSP  GWW1WT>JZ 6 %p)[Op c   7W~O H 5 WOS pY8SN E w$UuNz @ K{UO+ VP?WWBXOZKE0 jD VJT OQX WFXr[Ks oe[O} P q [rPS8XEX$}seWQK*e m\oROp{ XkP;Q X J  Jo ZMPJWXk@X [J X;X{XWRJ-7X0WWX5JR8 8 }cXO{ <j\NY%Q~ bZ4JW  ( ={QNi r XOc \OxXEXXjTIX XNhY]8KWXANoW[IWW'xXHPI XEXW(XjXhKr,x WJ Y'PWX`7TWJ, ~ ~l 0XI@ Rl,VNWXIy XZK+XW,9X^Ja [jmU1N ;;0Z NX[ oXROd LwRNv;WX&(ZJJWXmKWZ$J  vieTCOm ?XX}3UdP AX, "WXK XXi}aX|VeIXXL"WRrJXWohY9O4xWWX ]qJ|WX~4pZI6XEXXjYJj [WWWTJAWWoYO X XxLXWJ/XX/pBXiVFJ WzE"WN nyT?Pq;WX;WTJ  wR RJAX}WfYVJ 8X J WwzJWQPdq]EKQwWXE\/I=  *[DNW uW\JB  Dz \K#QXXro9W\EJU/WWp-XN[Ju7X/WrQX8[0I  2p ]uI DxQN sXPRX}WEWYJK3 )@Z"PX_XUaWSNI WXNuZXX7K  h -bWfN!/hlWN < LJ]:OGX'W:nWVdJ\~WX T7NDXWSK? WWtW\:K){XX;yrWJ_O ,E%YPe @R[Oa{ _bRvOD cWXznSPA WWwwW[K;o u (WVOWXD{r3XW\]J XX{xGWZ JC  4 l>WOkWXw c~t~W]HJ X:X0wTN o{OUI -h[P l '  oSI Ftu UzNXWWRKUYW 9j/XUPx  /iVN   Mzt]?O bh%[QOWW!XEXpIXXXmUwPfm UO  vVYO Nlv~SPO  b %fnZNk a 6}mVkJyXDWXiXJ TNX'Xn~rjW[&O$YOyzHXEWW[JWW(Z.JDWX8=qXNVI.WXDi]XWWKXGMZ8K i ZK01WW{_U'J 3P\jP ]oH\kP  MtEy0\lP l[QO^ p G XnIZWWujX2TMJej so XIXWlXSdJ V BY\P3\XY "zT+PXtWr[Kc5XrW{WWIz "e|]vK 1w=lPUP5WX}DZJ<WW(XHYJXFPqUtOWXDXWV[J8HAX O&(NQZKp*X`WU KqWW nAXNTJXWu@X VJ 3v]P X`X 4W]J3 WX{DtdX&S=Kn1  -RJ WXWWZK^hWn@UPXEWXj[K8  JxH!YP Qi8mWoP I ,o ]I5 fJxYNz Aq{RJ~ uCXSI]WXXVOS lm6UpOFk z`XPD @SOec KPZNuX1X~2"SN E m2n{\P}dX&Wp[JX yl 3YO  ']OWX0YLIWWEWUJvWWvlWS Jf Y%N if>V4P WXDkXWQJ,k' 6Z\O  6QP %uWJN%/WJO jhrZKx X&X{XwOM vV5P BYQO| ;x.[OWXKmEXTN  < TP  VPH ~>N 4WPPZ O Blf?\O5 <r\zPXX nkX|]TI W ~FXJS8 J iQP;  {nZfUPCWWv}$WWK lx+YlOSXXodJXN XEXpX \JH  vYNP2XX{WXIXWWXZJ < xr]jN@ ~}Bq[OU e9r ZKLx ~hXONXXW~]X}Z<N  g5\ZO Nm\[OX%Wm9W\aJskz DPPZPJ%RP   gV0P[Xnz#XwUJXEXLwzYWTJJK i oTKJLK ]E RAJXgXqWP; '3U*O nXWy;xqUOI O K <UNr  G hWN AWX,WWI 9 Du SN}!XVWx/WUI VO Q h[YN [9 t},[9O4(RK S]qRO  B iE \K}TQ FybWOW|o XP/b Fx ]+J&  )8qXPdXVXxX_VMJbXX9ot[XDWJWX"WVwIWW|!Y,J{ 8qATjP~> lOnZNjWXD XWW J  K~[N 6XXi~8XX`JP} T]$O:WXWWVJ Ba ~YKO'WXX[K`WXSJXb "sWNk\NH . tg\OwWX;TJy_ VPGdj/SOXX{OWWVJr  F ' [1OZWWWWI ElqVJ% 2cTpO 0 n\.P  Iu UI }UN vWOWWWX3I  U[P$ sn \PWWXWnJWX| XT.KXXxXW}J ?EsR7O  o1hC3YSJ:{bq\P V K UK'WW $XCR"KWI % WO3XWgz;WWKK9\ S I+ j ZPo WXUiXNV,IY: ^>|VO% }VKd DgIRKej SO VX:Xq*XUI~>ASN "QJrhT_NXX|@W\WJ  t~W[PP Bql\IP! %XYO8 WWX1VK(/X i~W[uKVOXX$X\J Qg[2N Y m*fr WKI[O$  n\-PP WWtQ\O!X'WkXWWKAXsWol%W]IJ`/ kZO F n fh@ShNX b `P\iJ9   -*[Jm &TO   DgR#P^WWqX ZIXXXEWR=PiXJWlBWVHK XXtRP  WldSPH=. *x\TIX'X gWY5O_(WWLx1X}TJ hRPr <cp[Os XiXMtu YJ,WWczXEZJD efh uYJ?T 6QOi( w xleVXP   Ln*],P 3w~]-P rRIP1DK{g:RPh ]1 _XO r $ZIT 9]oO  } z RI v7 ]S)KgQ vX YJWX/ZXN\JT oTN. t  UO ]~vo~\P8W ~ RK|s[[O{WX`|WT;KGG )cWlIV` }/TOpX`WRJfnXXEXjWI Q drm %WNmucVNssSPQ r)jzR?KS !WdOXEW"?WSJ# (ly~+ Z&I WXWsT/JJ - QjFXP9XXiX|XIjX WbWUUJqSWXwWTI X0WnWY^JI u UTRP2 @o$UJ/ XXX}p<J[KZ U H{Z} VP ^ / r]hP| mnW[Nh]XEX,X'[:JWXX\nNVNXEX:{pfXN[K_WXWSJ_ ogYV>PsWWfLX\Jm5X gWOYWXXp XOSLKvv P ?VOXXlomQZPF WX-tTXNYKW(bfXRK KY B+SJ16 ~e WKDX}WuWSJ U~RtO)  sIYuOf  YvOgn pl XJWW6UNC QN WXICXXK WX0h[N H |5kVN1YO  y.oFHRIWWUXRJ nROI t[RO ,WWm{RJ( WJ xG\3PX W{W]zKC'WX_vXXVVjKT   TAJEXuX~.QP X Us @TID WO]RWWJXNWI8  Z+K\  \.UJc{zZ-Oq 'm HQOT sU4O oVUI  `UNYWWz8SxO: X WsWSJl Z{O WXf|X]K@aYNyXEWXjSK$3 7 DCR%O z WSNWXD%XWWxJ X&Wp!X TIXXc *X.WPmum[ Nt e uZzP, XcW{)@TN7[ZNT t^UO3<XY//XRK >V3NX&XAWSJ/  VJi , 51mRhPX|Xr;XD\IXEWnWX:KXX0DzX\KkXX;go|\(PWXEWaWYJ9J ~UO   KulXO&WWl}nXNUKX:X9VWRKo WXz~X'X[J xG so Y+J[ y DlzTZOEQ   9ZKRWX9sYXMUJ)WX3vXsSsJ=rX 9rJWRJw -2\FPP ~UO SOc ;{Y7P+ "XX&WXK5C rA(W,Nj1 ;h4QP#X%WmsWYIXP>3yW Oz Y ~ hX J!X=X5gkBZOp //v ATOwF;[!PpB |nStNCWXj+fWW IHWXKuX^TK X:X0ZOd L ~ oVPWXU%OX N X*Kz GX;X|kYO}  zSPWWXN[Kw~YNN $ ~OS%P i 'k JVyI E cSoOW noTP4 'X\Wk ZjO QQWZ>IWWT J" |4TPVf ( ?SWNwoX;X1lUoYN[WWZX'RJ4  B:U;PYXXpX=XJYgXEX%oX'UK%WWo0XNUhJy qU"O@WXUvXTlKuXXisoX|TJ P EwZO } uU{P d_|s_ sVIPXEXuLq0XjVKmXX W]I[ }8U)OX vR](PHWW[|ZXWZ!J>WXHMXq\IX;X1lWIPU&WXNjkXV^Il R-XNh[[hN ;[3WPke jRP`  s S.N l o <VKyX1XtqXPDX}WDXXBI WX~TNgXXXNTJ  : \J6 I#s cXKP>5 G \mOXWBX:]XI6 dK 8TwI8WX^~wXNVmI PkRO6 vh XJ F pXPXEWn8pWVJxWWWuX2XIc ~ \OKc k|ZP XaWKXER@JT hWW7X_YJ2 OWX`\gTOIWWVoOn  SnK7 }W)N zXP_ \URN X/W bX8U-IWW?XN\K  gXPqQ SOW u_ /SJWWW]'JH0WXPq!\!O /XEXLktWZJ7WWFwRO5 }RyZ\_I G?XKwXRXPPYK/LWX'h[J= (gj^TPPt bTO6z J $~ %VWK vN YK< okuSO tzgVO. ~ [IPb9e VXOY7\ _cC\2O Y ||/T%JVf sUNK. XtX;j[N.WXHyWV+J HXXfJX8SKXbz)$UOXjXqmXsRI/ $8T^J]3WXVTl-WCO4Kp#dWJJ  } 6,\NG 8ZOW XjWj|XW[JWXYROO@XXW\KB9WXiWXK oREOLXXifXZJ  nR/I 9}~\Oc ?}+Y]N)S)QPXe}^WWJ  ~m#XN D =VK  XX;g#zRN  -BSEN  }`VPP wmyb TISWzUO qXEWX WK ] ZnV~O*jWXn[@NXWWYGJ _'{yNXP&WXbm_U,O< &X`X 3|W\sKX W`UJ Lj ]/Ic7nRdPg j yUN P SOL :WW*WSYKYa qu4RQIXXsX QNXW4X RK!WWg[WRK" e\ P.; As*ASPc >zS4R~PXT t] ;[yI\XIWhY N spqSNXWWSJ  % {0zYKFL .+ \NI H j2jvROh &x\PW -k}X>\AO  f  SKl DcdVJe ^k/"TPf TP be>ZO .YNX< .AXVJ>]I1TkJWX;|<kXKfJvnYO WX5yWOX XxlzXSK{=  @kZP Xvz XJ  up ZJx gP VLK B tYO vrsThPlXX.]{WT5Jz KC[P(WX9}]XMS}K   iwYcP<( x[N~W0QXF\J P WJc h"\JMmY<No wTWO  kUXI  3E~\N  nzQS{N ]bOyWXW {WVPJ WW}2YO?Rp~ Z_P6WX^>'XN\IXaXWoWZiI  5XPW   }ySVO   ZRN U JmSJPY[O Rmp\O' /  gT4Ob xqXP = ZlVJs  UJ.X0Wi`GW\ Jm ; JKXOV|XjXvoyXsX$IdUO  ,~F[wN  ISNXWX SJFX|Xrq1XDSK"XXrX RJ5f fWNP kX'OXWtWZIJkRtkXOJ ]I |hAZ O _WX%X9YK,HUN ] t$ZO/Z-l[N ) oPXPXXsX SI WXXO  ETN P=x0 XIN U)HZO &XzXfZI  ) g${ZOCWW{$WSJ) uW*Pi 6 > \*I hr[J f dXtJWWu.lkVQO  & b5?SO9X+X"<Xv] JWXKJ3WW^J Y~[LN   dpzRTOA } I VJ)jXYXT]NmXXs/vX VKNfXyW[JWP{= FxZFP WX5PQNc np[O[en[O\X&W|WUTJ 7ZON h{V Oo  tY1Jp pVKb  gYO9YOXEX/0X'\YJF  9YJnxjU@OcrWOWXNvzRX[I,ZO  YwKwWWrz\NXtWkUP mnRO4k TNX[mGVGO usjRO} Rz97XO~oX|W#hV]N~XEWGW\I'WWggmhXWZJ   ] qTO1 : [,O2XX5zXW1J mmR-OH  JV\PXWW]KjWW+qyWYhJo 5\OXXi}VnX|]&I VX XNuU(IWXuX YKHWWf[?P c gr oV"J'WXW\ J( tU?][O, XNs WWX;JWWenXCX@I^WXpuWZIXtW.VP" WXXNRqK1aX0XUwW[zKXX;wWNWW TvJ .m}UN MyZNmo  fUP+ /uZO= d "4 rC]gP` a% 0X|N{WWx]N|XEX:,XNXWJ`n VIWW*l"VI>XXspX S/KrX WBXYK n+SP  uY R.JnC   hMTOWXX{W2K 0P&QJ7  kSO8 % IS O ) 3QKt ~ROWXj^oX|UOJ@mXWs(R\PdXEWswXNSK4 TUDN t \6P=  )T aYIN [XXiYX|V'K6  qYVJWW|yX[J w g)$ZPvfc lZ JlWXX;whpiVpIX WUI ; Kru YP9 P 7kXOXWX,Z:J  L{XN X Wr|YK XXwVYP@ 0WWk=W[J,MSNXWXJv-WRKXXXYIR\+VO  6VVO ;WX;WTI  ip#ROM Ir+l5ZOOZO Y1[Kh,gWEO OWXpUoI ]i: S#K%  q rTfKPGfZN 8vpSTJ W Dn\X@\JM6 WWOXEWbuX'THJ- p?UPw  \yyU/O   s[OXXXCv\eNxXXXaMpRJG w% Rp=KXN_XEWlX'SK    TJt *+$[PXXXTxJ 2SYN < $W3K: {)$ .XJ wgeTO#X'W}{LWTI.WX^WSJ L WSNAWXUX XJJXWZuP,W cz*XbZ%N $ZvP i4RKi + ZrpQP , b2cx VgP^WX:s\OXXnX\VK R;[NG z~z\PnWXJ XNWFJ'; QgDWwJ< ZvSuN A.sT9O uZsNWW0XOSJ-: -UjO;~ <zg ZaJQ=WXvns[UJXsWZRZJ_ ^ tz*YfO T=PL eXEXVKfWTJ O VSO_XEX?WSbK_ ~V{O7 KRO -gxvc[Pj  L \qK $ ?]RP S]N  }\DJd YwcSO  kmAzT8N~ RZOrX+rWZJ0 yorVOU j uo~UO klSPv[ )BzNWzPB[ r |i\N]XtX;\NWX+XNVK=vW s@XYPWWZN [O sZhO=WXDXWWiK]xWW4WWJ LK| SJ+ $ |]9O U3SPT 'XX|=WWDJ^]XX5XTFJ qI UJ L nZO+ y 4XO,EX0X^WVJWXUyLWTK4 2H[\OXaWsWUJ(WWx6RP"  UPC #SPi !qTK2WXUxXVYMJ!WXy|QN BxZI YP-Ly &YPMB gUyN L !y[O) % DSN Y{>8ZJ ehnSOi A KET-P  \Nn zqB1YN XYgWS^JzWWvr\gJWXWywWUJ X -SO>  v}YK XEWfWYI1 =i L]5J:a / jwy] P$\/@TI s Nm>& ZTI t  ![NXXwKvSgOK%+a]P [I Xb szR K9 PXVWE|WWI 6JnUNq] ([N^ 6[NWW0tSO""W Xy\J   E jhTDPi% dCTO5 B8DqZK&X;X|5[>N- U~SN E"Z/PEX w{2X [XI  U Pa=  SNXWX TJ$u ViPm  K /`:TrN,WXjOX'[J 3 Dl=SFJ% \ |m\+PM mU0OjWW:V#J Z [N tMlXTNP bq]pPKE - bX RKN K\O P ] ZP\ C _W"Ov 8 EZgOWX0>V$P $WX:y+kASPzRX WmXsTK X W=WSJ$7XXioJX|YWI GUlP%AWWu-AWV%KaXaWsqUJ  < FkW!KJ.WWNXVK  FRJ  qz QJK u`RN%G q.XONXW X'SJ| y 3nXN* 8 tTO0 WW1k[J*XX4X V.JgE DSORXX~tXjY=JHX WkpWRJ4 ee $VI6 [8NlY 8VOXWn!XXJws$\O ^ cVP t j_ZOzXjW KWZ}JWXXXLOlXXXEzMWYP* SWXXJ#WW,WRK  IWNjX WnnXTJhXXW{~&X}TPW:XVcO ,pUPyXCWXS7J Z GvX=P'1Z(ZKiWWyiXUvIXjxz[sIWXhX'V(IL b a4RDOO 9kpUcO u \Jd %SO 7 7uXaOgWX6WVqKhWWt(cXN[qJi QSO WXNkeTO  sRsNWXPpZP0 0)MX]Oo$ wv}\TPu X{XAqW[)IX{WyXY8KPys\OTWWmR)PkR qTI Sw9\$PFmU' * A4Hb~%;݈%#Y-p ˗Iފ8M ,nQ#*`'N{PY&@ o3i(*e*#*[+!%+b {"CU?* DD(QT- .&!a/9aW0 #^؎. <#w*ZF-Qu'NH0Y,I Ns 5E'h81?-l!w} Wy WsMx# WsN| Wy_ Wu{ WsI|g Wuy1 Wq}) Wv,~ Wtw- Wux Wx Wrny W} WqzU WA{ W.ys W}r Wt_~L Wv}wp Wu{] Wp| Wv} WyQ W{z Wr_~ Wua{ W{ Wt-~@ Wrwe Wr| Wv4~ Wsw Wx Wtz WvA} WsOx Wz= Wq{ Ws{ Wy^ Wsmz{ Ww. W"xr Wqy? Wtz W} Wt@w Wsx Wqy} Ws{ Ws^| WtwT Wux Wq} WuCxd Wqy4 Wx Wz( Wr$z Ws{ WyF Wu~! WsD~DX)Qx Wwy WPQ| Wu} W{ Wuz W{r Wu9|. Wq| Wu} W~ Wsx WzX)b{ Wtx Wqzc Wtw Wy Wv{g W| Wsy%Wbz Wrz Wq{ W~~P Wvwv Wu{` Wux W| Wr} Ws~ Ww Wv| Wq} Wvhz Wtz WxW WR|] Wu}" Wr w% Wu`x WazK Wu{ Wswl W y Wum| Ws~ W+yI Wz Wv`{ Wb} Wrw Wtu| Wy WuQ}a W~7 Ws|k Wr| Wt{# WUxx Wsd| W{ Wt|G Ws} W%w Ws7z7 Wt~0 Wx+ Wulx W*zw Wu{@ W| WuP| W} W<xj Wsy7 W|: W} Wt~ Wqw Wyw Wt| Wq}J Ws/z WtgwL Wrx WvMy W{7 Wu| Wz W{x W|2 W0| WX} Wtz WrZ~ Wux Wv z Wt'w Ws}= WrwC Wsx Wy Wu {0 Wr} Wu8~b WVy) WPy Wq{k Wq| WrPz Wz W~ Ww6 WZx Wtx Wuy Wz\ Wt~ W{* WrG| WrxG Wu5y W,z WuG| Wt} Wtw WsKz Wroz Ww Ws|e Wy}( W{ W| Wq}m WDy W~ WtMz Ws{Z Ww Wsx WsFyO WvOz W{ W} Wsw WrzF W/{ W{ Wtwc Ws{ Wu y Wqy W{O Wt| W} Wu~ Wx| Ws>wX)yE Wt{ W|L Wrd} WuEw Ws| Ws{ WsAx Wsz WtmwW Wu#{ Wy Ws4~~ Wtpxo Wy= W`y Wu} WvHw Wty{ Wj~W1~' Wvmx& Wrx W\x W} Wt~u W{ Wtw Wu[xa Wrz Wt[} WuN} Wr~ Wox Wz Wv}C Ws~ Wy Wuw WrBxS WSz Wrx/ Wrz Wujz WvX~ Wu2x Wuz` Wu~Z Wuw Wv+y W|$ Wrya Wr>z Wtz Wt*w Wt|i WW}, Wr~ W| Wr{Wwr WxD WGy W} Wux Wrz Wz{ W~ Ww! Wqx Wr:zJ Wv[{ Wq{ W| Wwh Wux< Wty Ws w Wrry Wz Wv} Ww Wx Ws!|# Wrb{ W}+ Wuy Wz| Wt{I Wu| W$| Wv} Wz We} Wqy Wx Wr| Wu~+ Wvpx Ws~{ Wr{ Wuxg Wrz Ws{ WuyH W}G Wu.y Wr{ Wt| Ws~j WuXy- W}^ Wry Wu@{u W|0 WrM} Wt`~ Wtw WrRx Wsyl Wuw W~ Wt w@ Wx W=x Wzf WC{ W6} Wu~_ Ww Wufy% Wvz Wx Wt| Wt} Wq~ Wv3x W{=W{ Ww3 W8x Wr} Wq{& W| Wsww Ws?xF Wsz W| Wt} Wrw Wx WsC| WrVyX Wz Wr |` Wo}% Wuw' Wrx Wmy WzO Wu{ Wu{ Wqwm Wx@ W#y Wu| Ws~ W,w WsyL Wvy} Ws{ W|S Wt]} Ws}x Wvty WzB Wq{ WsHz Wz Wrw` Wtiy Wvz Wr{K W5| W| Wu } WuzY Wmw Wqy Wr-z Wv>yWZ8} Ww Wrw Wtz8 W{ Wq| Wq}X Wrx- WH| Wt zN Wu{Wy9 Wu}k Wty W} Wr} Wt=~ Wx Wtyy Wz/ Wu,{ WuwN Wtrx" Wy Wr}{8 WtYw Wr| Wu~q Wsy0 Wy W{z WT|3 WtEy Ws} Wv)z# Wr~ Wuz Wc{ Wv@|v Wr}? WuMy Wszi W{1 W| W~d Wyw Wz Ws| W~ Wrx Wsyf W2z Wqz W[|m Wt<x Wtzy Wrz] W{, WvY{ W| Ws} WxH W| WwwM Wt%|" W} Wt~ Wsy\ Wqz WsUy W~ Wqx W}p Wr~J Wuy Wr~ Ww Wr{ WtOw Wv={ Wsb|X Wsw WrKx Wrx Wr| Wsi}f W~> Wx; Wl| W| W} W]w WBy Wq|O Wqx Wuz< WrxX)8~5 Wy WN{F WrXy WC} Wv} W ~ Wqw Wvy| Wsn{ W}P WW~( Wryx Wrvzs W{> WrzH WtS{ Wxc Wry3 W>{{ Wt|6 W} Wxz Wvz' WsB{ W|| WsvwG Wsx Wx Ws{ WvNy Wt| Wv} W~ W7x Wryj Wq} Wz Wvz W;~ Ww> Wrsx Wuu~\ Ww Wy# Wuy W^|& Wt} Wtww Ws{ Wryb Wr#z Ws~ Ws`x Wv{! Wt{ Wwt Wty Wtz Wf| W-}Wbw WuyU Wv!w Wt{ Wr|[ Wsw$ Wrz Wbx W{ Wrwj Wqz W{V Wuz WuIw Wv{f WLx WvPz@ Wr} Wvo{ Wtw] Wqx3 WrL| W| Wu'} Wu~ Wr{w Whxw Ws3z Wr{ Wv} Wrw Ww Wvx Wr0y Wt4w Ws}T W~. Wrz Wx Wr`{? Wsj| W~z Wqz Wr} WrH} Wv~ Wrw Wz, Wr{ Wt5x Ws| Wr9z>X)d8wK Wtsx Wt?{6 Wrw WuO| Wup~m Wv*{ Wuw WvZx[ Wtyy. WuW{v Wuy|1 Wuw Wx W7z" Wrxz W.yB Wq~ WsXwB Wux Wse~a WxM WvIz Wt{j WU| Wr~ Wx W@z Wr}1 WtT~ Wv%x Wsr} Wu} Ws{( Wu{ Wr| Wqy WtK| Wr} Ws~ Wx Wtz Wrz W>{ Wv|c Wr~ Wv w) Wv1{ Wu$y Wt| Wv7} Wsw WyM Wtz Wt+{ Wry( Wc} Wqw Wsx WzD W|z Wwb Wfx7 Wt~y Wz Wq{N Wug| W} Wvw~ Wu!{' Ws\yD Wv/y Wy|K Wqy Wrx WvUy Wuz9 Wu{ Wt}Y Ws~2 Wtez Wv"x W| Wr]| W} W9w Wrxn Wty; WY{~ WsQ|> Ww Wt| WHx Wryz WJ| Wz Wq| W}N WuwQ Wt;x$ Wx W*w Wt{< Wu| W1~s Wuw Wqx_ Wu|4 Wt} WuL} Ws~ Wr|y Wv0}A Wsx Wqx WuA~e WtxQ Wz WrY{p Wu| Wu } Ww Wz Wv\{ Wx|o W}5 Ww; Wux Wv{ WtA{ W3y Wy W| Ws} Wu{; Ws w Wy` WrC~r Wvn}* Wrz Wu]x Wsy WvgzV Wm{ Wvz$ Wrwq W?yWb| Wr} Wq~ Ww WtGx Wv?yR Wv z Wv|y Ws{ Wq~A Wwf Wtaz W{R Ws x Wt| WyG Ws~W Wsz Wqw~ Wu{ W4} WFw Wuw Wu| Wr{ Ws| Wsw[ Ws:x W{H W| Wr} Wvu~ Wtw Wr/xs Wqy@ Wy W={ WO} WRw WsJw Wuz5 Wu~* W3{ Wr| Wt~x Wqw Wxe Wq|7 Wu} WKy Wt|#W~ Wv|~ W~" WtXwH Wq|Q Wsy Wzl Wu:{4 WvC| Wt~i Wsk{ WqxX Wtlz Wt{s Wu} Ww Wr{ WZ}: Wsp~ Wu{Wx W;y Wt!zd Wq{- Wu} Woy Wr7| W} Ww Wqyc Wv}. Wv~ Wr{$ Ws}x Wv~Q Wy Wvz Wq| W} Wtw Wtx WqyW W}z Ws|^ Ws}# Wx WrzL Wrt{ W}i Wry Wry Wr| Ws[| W~} Wv~ Wrfw WsE{. W2yJ Ws6z WuJz W?{ Wi} Wvw Wvlw W1{ Ws}b W~8 Wqx4 WrEy Wdz Wt~ WtQ| Wt1{ W|H Wr} Wdw Ws }V WuwV Wux, Wux Wq} Wiw Wty8 Wq{| Wu|; Ws} Wz Wz Wx W{ Ws_x Wq} Wsw Wty/ Wty Wt{y Wr| Wuw&Ww Ws~ Wd~c Wry* Wqz Wuo{l Ws(~ Wr"ye Wtbxk W}2 Wq~ Ww7 Wu} WvK{ Wu| Wtd}} Wu|~T Wtwz W{y Wr{c Wt3|! WyZ Wj~o Wsz Wx WuYzS W{ Wr| W }n WE~H Wv]z Wsc{\ Wttw Wtx WvDz Wv8|V Ws)} Wuw WsS{m WtUw Wuq{ W}d Wr@~< Ws$wd Wu(x9 Wtz W({P Wr.| Ws} Wtw W[z W|M W w Wgz: Wu/}Z Wt^wX Wty Wrzz Wr;| W~ Wbxp Wty WvLz Wt} Ws~ Wt{w Wd{[ Wq~ Wx Wqw Wr,{ Ws| W{} Wsxb Wqz Ws|5 Wud~ Wr{!Wx Wqyu Wwz W!{ Ws|z W}E Wu~ Wu%x W{ Wr4| WE~g Wqw WrxT Wvfy W} Wt{D Ww Wx Wz Wu{ W}8 Wrix Wu { Ws| Wv2} WvFxK Wty" W}y Wuz Wt {e Wr yWb} Wqx Wsz WuU{ W~ Wtw0 Wr|zW Wr\{ Wt}t W~N Wuz W{^ Wt~ Wx WyT Wtcz Ws|} Wz Ws~ WsT{ Ws"}h Wr=~C WtDwi Wu3x= WrU}7 Wxw= WuB{T Wt| Wr{ W } W} Wu|% Wux Wu}y W} Wqz? Wr{ Wu{ W}_ Wrw\ Wu;x1 Wrx Wry Wqz} W| W| Wui~ Wtxu Wz Wv5{ W|D Wu} Ww Ws8x Wu<y Wz6 Wuww Wt| Wq~, WrwU Wsx Wt#y Wrw" Wvb{ WvE| Ws#xh Wu1|9 Wu} Wvw Wz* WtZwI Wx Ws&y Wzn W~k Wrw WtxZ Wy WuT~ Wtyn Wt&|t Wtx Wt|C WtVx Ws{/ Wsw Wv| Wv} Wt~` Wr w Wy& WvTz Wq{h Wu| WM} Wu~ Wr~y Wq}/ Wvx Wsx WuD}z WFz WvB{a W} WrW~ W8yY W|a Wu~ Wew( Wsx Wr2zP Wt| Wtoym W|s Wt7y Wqz Wq{X W| Wu} W:z Ww Wqx WzC WrQ| Wr~: Wux6 Wt}y Wu{L W)| Wt~ Wr1xz Wsz Ws9|I Wvk} Wrw Wszx Wty Wsux. Wvs}& WsVy Wv~ Wszy W{B Wy Wr6} Wtw Wuxm Ws|< WYy Wt} Wrz Wurz0 Wt9z W{ Wu| W}L W~% W{9 Ws%} W4~ Wsyr Wrz Wt|w WJx WsRzj W}Wb{ Wr){ WrA~1 W{o Ws} Wt~ Wrz Ws|n Wr}3 Wqw9 Ws,y Wuz^ W{ Wv| Wv~V Wuw| WtfxI Wsy WXy W5wO Ws~ Ws<w Wry] Wsz Wu^|f Wu~ Wqw, Wrx Wy Ws{ Wr}q Wuc~K Wqwo Wwy W} Wr?{2 Wtw+X)dx Wu{ Wtn{ Wr<| Wqz X)q~? Wty W~ Wsz Wt} Ww Wvdx~ Wqy Wtz WtB{ Wt|P W} Wrw Wrx W$y Wue}\ WsPwZ W| W| Wt~ Wuy> Wty Ws z Wu{xB Ws|A Ws'w Wrz4 Wz Wu0{ Wq| W }Q W~) Wt>x' We} W:zt Ws~w Wiw Wuv{ WvWz WMy Ws} W} Wrlw Wx Wu_yv Wj|} WPy WGzk Wq} WK~h Wqw Wu xV WuKy+ Wy Wz WvR|- W\w Wu\x Wthz! Wu}9 Wqw? Wt\y Wuzb Ws{ W| Wqz Wv|' W| Wt} Wsxx Wswz Wz WrT{ Wqw2 Wx Wty W{" Wu}v Wwu WtLy Wty WQz Wr'{_ WN~ Wtx WkyV Wlz Wuz Wr{ WtI|\ Wq}! Wrp~ Wu|, Wux Wt{ Wr(yPW| Wwk Wg|r W{W WtJ~ Wn{ Wv_~] Wk} Wrz Wtw Wsx Wsy W }` Wuw^ Wty Wt| WtRw W} Wy W} Ww Wr| Wvq}U Wt~/ Wtx* Wu-zv Wv| Ws0} W{ Wuy6 Wz W~ Wuzw Wqz- Wrgx Wqy Wuzp Wn} Ws1~n WAx\ Wt/y Wu} Wvj~ Wkw+Wdyp Wv{ Wx Wy Wu4zg Wv{ Wt6| Wy Wsz Wrz|) WrF| W w Wyd Wt } W!z[ Wt}| Wswx Wuty Wqy Ws{z Wr{b Wu| Wr~ Ww W x Ww* Wsy WzR Wv<| Wu~G Wv y Ws*{Y Wu~ WyN Ws{ WrI|U Ws} WuzE Wr{ Ws| Wrcx8 Wrey Ws| Wt({) Wuw Wqx{ Wu~S Ws{ Wrw Wu){ W{ Wq|d Wtq{C Wtx Wy< Wt|? Wu} Wrw W/x Wuz W| Wu}O Wr~& WzwR Wu6x% Wx Wq~t Wsw WuVx` Wuy W} Ws~ Ws-z% Wr }B Wt~ WwF WsyWb{3 Wt0~f Wv~w W~3 Wqz Ws|* Wt | WtN~ Wtw Wyh W{ WQ}6 Ww< Wv'x Wqx Wty Ws{ Wr| W~Y WsxJ Wr!y Ws=y Wtz Wt{d WuR| Wv~ Wtw Wux W| Wslw/ WvSx Wr{ Wu7{ Wv}s WsxC Wty Wsay W'z W~ Wq| WyS Wz W{ WrxR Wt|Y Wu"} Wtw Wsy WuzI Wq}g Wr~B Wswg WrOz Wv&{S Wr| Ws| Wuw W~X W{ Wvw Wy Wva}] Wra~6 Wx0 Wr|h Wtx Wqy Wg| WtC~ Wtw WvvyA WuHz Wrm|B Wu} Wtw Wv^x Wuny~ W{ Wu{ Ws}R Ws} WtPy Wzu Wt2| Wy5 Wy WvGz WrJ|8 Wu} Wuk~ Wsz) W~ Wu| Ws2}F Wt$~# WrNx Wv$x Wrhy Wu&zm Wv;{ W| WxY Wuy, Wuy W{t Wu|/ W| Wsy Wq} Wrw Wqx WuzX)yk Wso{ Wxt Wa}; Wtxx Wrze Wt| Wu*} Wr~^ Wr3| Ws} Wux Wsxf Ws{% W{ W]}y Wr~R WxE Wt| Wv| Wr~} Wrw Wsx W|_ Wr}$ WVy Wy WvzM Wr}j W ~E WvQx? Wsy Ws} WryK Wz Ws} Ww Wvy Wt| Wt}c Wv(~9 Wrqw_ Wvcx5 Wvy Wt{J Wx $W1xy Wy Wv.{ Wr%w Ww Wqx W{ Wt{ Wq{ W_y Wv{A Wr*| Ws~{ Wr^w Wvxl Wq{} Wuyx WsL{ Ws}K Wu=z WsG~$ WuSx! Wsx Wt y WuFzq Wt} WszA W&~p Wsw Wt8z Ws]x Wv yq Wq}> WwD Wtx Wzh Wz>Wd8} WsxO Wrw}W Wvr{n Wvw Wsz W z Wt{ Wr w8 Wrx Wvz{+ W{ Wv~U Wr[|qW~ Wvy[ Wz Wtz Wu~yPX)zT Wv6{"W}o W~I Wr{ W0xA Wy W} Wt~ Wuw Ww Wq{ Wu|W Wvx} Wsy Wq} Wqw Wt.zG Wt"{ Wr}e W~= Wr{ Wsx: W|y Wy W{Q Wp| WtW} Wux} Wu}~ Wrz Wtj|N Wv#} Wuz; Ws~ Ws| Wr}[ W~4 WtwY W(y W{E Wt| Wq~ Wt{ Wsxq WOz Wt|@ Wy Wv} Wr~ Wx Wsz3 Wz WuwS W{ W| Wtk} Wu~v Wrw Ws} Ww Wx Wuz& W9z Wr|{ Wq~ Ws.x WtHy Wr| Wu>} WshxU Wsz Wt{q Wu|+ WrSyi Wt|p W~ Wr{ Wsqx Why Wza W_{ Wr} Wsz2 Ws+~[ Wv-~ W|j Wss}- Wrw1 Wvx WsyWy Wrj{ Ws}u Wv~O Wtws Wqy Wr~ Wruw Wz Wt,z WS|Z Wr} W~ Wuhw# Wux Wy W{ Wt|x> W~|qWy Wrk{U W| Wv} Wrx Wu|R Wq} W} Wtw Wr+{ Wu+{ Wqx2 WtFy Wz Wq| Ws~ Ww WsWxv Wrz Wv{|F Wu} Wnw Ww Ws| Wx Wus{ W}S Wsf~- W<x) Wt| WT{ WuZxi Wu} Wuw Wz+ Wuz WD| Wu}H WuwJ W'x Ws zo Ws{5 Wv { W~l Wqw Wz~ Wtyo WIw Wr8|u Wu}< WtwA WL|E Wx Ws| WxL Wty' Wu?y Wc{i Wub|( Ws~ W}|l Wu}0 W6w4 Wlx Wtx WzZ Wsy}{ Wy Wz Wf| WsZ} Wt~ Wu|b W|}' Wr&~ W+x Wqy WszQ W{ Wq{ Wv}l WvV~F Wzwn W@z W| Wv:~ W-x Ws;| Wt} Wvz Wr|T Wvi} Wu} Ww Wx WB{ Ws5{ Wt{~; WrDwa Wy Wt:y Wr{M Wq} W`{ Ws|J WIy Wq} Wtw Wtw WvJx Wu{ Wv| WsY| W&} Wr~| W"y: Wry Wz Wt|= Wr} Ws@w Wr5z1 W%z W^| Ws}M WswP Wrzr W{: Wp{ W)| Wr} Wt)x^ Wuy2 Wsy Wvz Wh| W~ Wyt Wt|x Wux}@ WtwE Wtvx Wqw W| Wve} Wv9z Wsw W yg W#z Wvw Wst}4 Wqw: Wux Wtx Wsgz_ Wr| Wu* ̯*,) `Ǘ,.$5$w8yC+Z.n?(S'iE#Bt-4P-KZ9> c ?b+?!#///D//R<//C3//> TSE8Aa ˓K`  w)!b'#[$>+[,#A%.`&:I&uM% Kj,%&2+D38 6$ (c\. KrV#7-t i% 368g_( %'LΒ!5qp'|"&[!'в!~-(3 d' -Q7fW-L&BX*l7D(9,"լBZe+="D* &V$)^<OQ.. (,/'lzN.@%*F,V!_*i` @X  6>T$K 6] [P|&R#q+(TΪJ:KzaYWWV  ( 3 K g~ .j +J(cB5 ih')+W7b N!,[ .!X-q'("1WA$TQfU}ߩKE-]L* [.Sx%Eq+3ES+?ʁ,>"o$# P( !N:M*+ $URF",7C->,WONΆ%h"TT$Ӱ21&|+&(K{ժ&` 6# D"T8!<, ,0-A_9)WE"-K*Í,R#IS% 1R=1$ Gڮ(?TE!8 +B0*4H&VNS*€"K$ -s6FDW#a*4 &(3 6Y |&B@M +9 Y-9W (%/Kk!۔.0Z,Q$a?jm &*~Z(3X' H1ezWI)|8>2+Q *7?L#82S%,X&.,0f5 @~k.k):%BZ+#"*I$%  S "XR&q )AHֆK$Vk.&8!C=rD,=c1!R7&+/"Ob=V*l"@ #$#$*P.4EfR3.*z#} U%"3-+X7F$L!O&v' N!o-0|r#}ުiS-W+چ%L- +yO"*"Z-0*/ Bd&E_[rÃ-yN%.#2!7Js , ! X&A89F)/&:"EU$y$wD+-"1 3-*=1Er(fǔp$ R%&$$'%k($ w8  '4l&l+ bE|\& .~.$A'=-Q+(V;[+md,ι=_$M+_**HA.V,z zW [WW>eEbb0 X WW>eEb0 XWWW>eEb0 WWWW>eEbQ0 W WW>eEbg0 oWXOWW>eEb_0 $UXWW>eEb0 hW (WW>eEb0 :XZWWW>eEb0 XGWW>eEb0 WX+ GWW>eEb0 6W WW>eEb0 X\WWW>eEb?0 WX)WW>eEb\0 WWWW>eEbK0 pX!WW>eEb0 XvWW>eEb0 1XHWW>eEb0 X? WW>eEb0 HWX)WW>eEbN0 XHXGWW>eEbs0 "X!WW>eEb0 W WW>eEbV0 WxWW>eEb0 #0WWWW>eEb0 XHX,WW>eEb0 RWX2WW>eEb90 XXOWW>eEb0 XQ WW>eEbl0 SXmWWW>eEbf0 AX!WWW>eEb0 WWWW>eEb0 XWW>eEb0  5WXkWW>eEb0 *X\WW>eEb0 XX!XkWW>eEb0 W=WW>eEb{0 W5WW>eEb-0 W WW>eEbi0 X+WWW>eEb0 pWWWW>eEb0 W WW>eEb0 `X\WWW>eEb0  X\XDWW>eEb0 JW WW>eEb0 W 4WW>eEb@0 W WW>eEbL0 XdXWWW>eEb0 vXHX}WW>eEb)0 ]WWWW>eEb}0 xXHX)WW>eEb0 /W WW>eEb0 WWW>eEb40 XBX2WW>eEbj0 XmX WW>eEb0 XWWW>eEbC0 FWWW>eEb0 X\WW>eEbG0 ,X?WW>eEb0 XdWW>eEb0 yWX|WW>eEbe0 X?WW>eEbE0 W WW>eEbc0 WWWW>eEb.0 7XvWWW>eEb0 W XX)W>eEb0 2WX)WW>eEb0 WWWW>eEb0 X4XWW>eEb0 W WW>eEb[0 W sWW>eEb0 dW WW>eEbO0 XH BWW>eEbw0 X\ WW>eEb=0 Xx WW>eEb0  kXdWWW>eEb0 XHWWW>eEbM0 XX WW>eEbP0 !;WbWW>eEb0 tW |WW>eEb0 X WW>eEb0  WYWW>eEb^0 YXX WW>eEb0 XX7WW>eEbr0 qWXWW>eEb0 BXm WW>eEb|0 X!X WW>eEb0 DXWW>eEbn0 W/WW>eEbI0  mXQWWW>eEba0 XQWWW>eEb~0 X!WW>eEb0 XQXkWW>eEbu0 >WWW>eEb0  TX+ }WW>eEb80 W WW>eEb0 Xd#WW>eEb0 XHXEWW>eEb0 ZX! WW>eEb+0 X+WW>eEb0 XdXcWW>eEb0 #BeۣnKk-,,| )UԪ"7Ԫ-ԪԪ5rԪ#T=Ԫ -Ԫ%vԪԪL;!Ԫ,1ԪLԪF:ԪԪZYԪ+ԪYԪ BKԪ'-<Ԫr)6(^W' Pɝ~   I!5? VO,F,F9g-Hg ":&e JLT!!>H.V v&M'GA cj#v̝Y +D]"+&m"<,g :[^Z1 E!=B"( |g&)X*&?a-'3q NOAA8~ NO*&?O-'Y&?K[-'&?K-'!Q NNb&?-'&?PD-'3q NA? NKt09 NI +s&?,W% NOc'&?J-'&?J-'(&?I-'K NJE&?-'&?I-'W&?@-'wA N5&?I-'.W&?O-'e(&?J,*Q&?6,0&?I,i?&?O|,2 NPA NO5.W&?N-'( &?O/-'Vv NN:&?I-'z&?-'oG NPA NP5*&?PT-'Y&?-'B%&?,x)0&?K ,8i N&?JW-'.W&?K9-'&?a-'T*&?Jc-'&?I-'X&?h-'N NKgO#6&?,#&?@-' )&?-'G&?J-'>9 NI9&?P-'0 NQ&?K-'WS N &?I-'T'&?Pn-'*&?I-'&?O-'T&?-'&?O-' &?I-'&?-'.R&?,'!&?-'G NPa0&?,i.&?\-'&?J-'H'&?N-'x&?N-'T.&?I-'N&?O-'&?J-'&?-'('&?K-'&?PC,+s&?J,-&?K9-'}&?J],&?K-'K NOTE&?J-'&?O-'%&?J-'.W&?-'eA NI50&?O,i&?J,&?,,=PQ N &?-'> NO&?J-'&?o-'&?P^-' &?J!-'0 NIY-&?O-'}&?J0-'%&?PV,x.R&?JC,&?K0-'w &?PQ-'X'&?J-''&?-'&?P?-'A NP5?&?N, &?OO-'&?I-'!&?-';*&?[-''&?-'%&?K,#<\ NI? &?_-'e&?Kw-'o&?-'N&?N-'&?I-'*B&?-' &?,&?J-';&?J3-'&?J-'j*B&?K-'&?_-'&?P-'T&?J-'!&?J-'%%&?O>,.W&?J[-'(&?I-'&?J-'&?K-'*&?&-': N_Z#6&?K%,Q&?OR,%&?O-'#&?K0-' 8~ NK7G NO&?J-'2 NJ1'&?K*-')&?-'&?-'y7` NJi&?T-'&?#-'W/&?Jl,H*&?Kh-'&?PJ-'C NOk;'&?K-'GQ NP^^A NO5&?I-'&?Kt-'&?I-'H.W&?Oh-'nD NO&?Ks-'?&?I,&?J>-'&<\ NO ?&?, &?O-'? NPJ0 &?&-': &?K-'&?J-'z3q NOAW% NIcJ` NJ.&?I-'%&?J:-'z)&?i-' &?K/-'$&?N-'|'!&?I-'(&?,*&?-'2.W&?J-')&?O-'T&?JB,,/&?,HB NN}U'&?J-'&?I-';&?-'@X&?K-'&?J-''&?J-'G N6)&?K-'0&?P,i"&?K,/&?-''!&?J-'P NIS NJ&?Ku-'RC N;&?N-')&?J-'G.W&?OP-'n&?J-' &?-'*&?K-''&?Ko-''&?PH-'&?KK-')0&?,&?J-'*&?-'> NJt &?P,"&?J-'y@ NN-&?-'&?I-'2.W&?-'("&?o,/G NP%&?J,G NJ&'&?I-'e&? -'0 NJQ.&?Pd-'9 Nd X&?J-';&?N-'T&?J-'$&?I-'|&?I-'y8 Nu'&?KM-'eX&?-';'&?J}-'&?K<-'&?I-'t<&?i-'J NJ&?J-'/&?J-'&?J-'%&?2-'z&?N,G&?K<-'n&?L-'&?N-'7` N$&?I-'B'&?Kg-'x &?,-'XD NOwA NPM5&?I-'&?I-'&?-'&?I-'n$-&?Jt-'5 &?J~-':&?I,2J ND'&?,2*&?I-'N&?K-'R&?P6-'H&?-'&?KR-'N*&?JE-'&?I-'*&?J)-'Y.&? -'<\ NJ ?.W&?K|-'n<&?KK-'*&?,-'$&?K'-'|'&?Jp-'*&?J,&?J-'/&?i-'?&?K',&?J-'O&?a,R&?I-'%&?N-'z.W&?-'|&?-'*&?O -'&?I-'&?Js-'&?J-'&?S-'8 NOoO&?J,R-&?K|-'A NN5&?I-'lN NIO'&?K;-'&?d-'0&?Pa,i7 NS<\ NO ?%&?,#'&?6,&?O-'$-&?N-'5Wk NOh&?J+-'GQ N^&?I-'lN NPtO$&?O|-'|"&?P-'y+s&?J,N NPO&?J'-'7&?O-'&?O-'&?4-'&.&?J-'&?-'Q NJ[b&?I-'/&?I-'&?J -'&?J-'*C NO/;'&?J&,&?P]-'J` N%&?N-'&?*-' &?-' &?J-'&?Kj-'&?KP-' &?Pa,$-&?-'5&?I-'&?KW-''&?J4-' &?O-'&?K-'b*&?J~-'&?-'&?I-'&?O,'.&?Kg,&?J2-'&?K-'*W% NTc0 NKPYD NJ>C NO;&?-'(&?O,*&?N,*&?K}-'Q&?P,2 NP1X&?-'F&?J-'/&?Kx-'&?J<-'&&?K-'lK NE&?J-'&?,,)0&?],J Ni&?J-'>W% NOc&?J-'&?Ju-'*+s&?a,B NhUA NO5-&?-'&?I-'!&?-'%&?-''.W&?-')N&?@-'O&?OS,R&?-' &?-'2J NOUD&?-'&?N-'(A NOO5&?J-''&?I-'x;&?K-'@'&?J,2&?2-'&?J,G&?I-'%&?O-'z5 NIf&?a-'&?J-' (&?J-'A NO5&?,&?K-'&?P`-'&?O-'&?-'a&?<-'(0 N,Y&?6-'&?K@-'7%&?I,xA NN5&?2, &?O,6 NJ*&?,9 N9&?JQ-'t+*&?J,N&?J-' &?J9-' &?KP-'XQ NOb8~ NWk NK|'!&?}-'&&?Ji,&?I-'7-&?-'.W&?O>-'|.W&?-'n@ NI-GQ NO^&?Py-'&?I-'j&?I-''.&?,A NP55 N9f&?-''&?I-'*&?KP-' &?O-'&?-'&?KI-'&?J-''&?J7-'X&?6-'&?J&-'&?f-'&?O-'>D NIG N*&?2-'Y.W&?-' &?KO,&?-'&?K=-'`&&?$,&?I-': NJZ'&?K-'-&?-'? N0 &??,GQ NP`^&?I-'&?I-'T&?J-'U&?-'n8~ NP&?J-'b&?-'&&?,G&?J-'`X&?I-'F&?K-''&?I-'GQ NJ^2J NKpD&?S-'&?J-'T &?Kh-'&?-'PQ NK('&?OR,&?O-'&&?KP,=G NO.W&?O-'(&?K1-'7 &?K -'e@ NI-&?J-'&?J-''&?I-''!&?J-')&?KK-''&?I-'&?O,"&?-'y &?PT-'N NOOB NKU&?P-'A NN5&?I,&?I-'&?Q-'$X&?J-'X&?Ke-'&?J-'C NJ;*&?KF-'N&?K-'W&?u-'&?O-'-&?J-''&?I-')0&?KN,Q Nb8i NJl &?O-'P N2+*&?, &?N-'7 NJ=S&?I-'v&?JQ-'y&?J[-'(!&?O-'%Vv NI:'&?P,'&?J-'&?N-'w@ NO-)0&?KQ,%&?-'-&?-'} &?J-'*&?-'N'&?J{-'&?Jt-'a&?-'D N&?KV-')0&?f,&?+-'v-&?J-'$X&?-'&?I-'K NOEWk N-&?OP-' &?I-'&?KL-'&?-'/A NO5 (&?-'>D N *&?I-'Y&?J-'N NO}O.W&?J>-'e'&?O,%&?,&?J-'G NI&?,-'Q&?O,> N.W&?J-'|.W&?O-'&?JN-''6 N&?I-'UW% NOc &?I,"&?O,/&?J-'&?O-'8 NI.W&?O-')&?Jv-''&?K#-'3q NK9A&?-'/Q&?J&,'.&?O,N NOO&?J, &?2-''!&?{-'P NJ)$X&?PP-'Wk NOP&?I-'2 N&?J-'&?I-''&?K,-'+-YP+>I\ N0 \70 I\ N0 \90 I\ N0 \80 $T[O!6#yD:$6P7"=! WtMgW!XWsG.WqF W! Wr{Wr!}cWv!N* Wug{ RWFƠWWRGg­W#-ȯ# Ws!dWu VDWtP%{WLŸşWx ZWv"JpIWvP!$WEWq&MW9W bVpWt!0z^Wv^"|jWrpЈWr!GWvS#!Wt.tW}WrG6W"/FlWvmkWr!}XWu!nWSr kuWrM"Ws~#*WrvYWv5zuWs!Pv Wty"Wq *¿WsWǶcW0"r-Wt#iWtzWu!9+XWy «Wq WvYĄ+W9 ł(WuWr :WsiW~jWt)",3)Wt *eWre#B%WtUWv\ W SWs!Ws3O0Wr!uWsf"3Wu# 9 WuoWr% 6)WtlBWt 'rPWtODDWq <GWv~}Wr[#RWvg;WlŏXW B;BWs#E*Wtn uWrohW&D+ (W\\9W*bWSFW^Hg}W"mpn@WuvW"vWttWC"vWuĂėWqsW3³W/_;W1uSWun!OWujr4Wv dW#WvU#uWWr #XWviLWr=r&W"1W"Ka}Wr@0bWkWs#<WvPicWu@M,W}#gLWt #3Wv 5=WrK4W fpƽWsq?"cW'#HEWtaéWbêWq""<Wq lWu I[Ws HŕWrX]W\MWg!iWQL!WuW Wt DWu!KWr#! Wvk%Wm{W#2#/WtD9Wu%> WW{!}WvY" JWs\|WrNĊKœWtZkWtvWjMW`1WuWTWq #Wv=rW55PW!=Wv": WvA!?Wr4#5eWuE#dKWr ȢWsICW#_Wr"R"Wr6!<3Wra ȉW~W!+zWuJ"îWq!2Wse ǁWs.0Wu"džWr `Wu9 ']Wu:<WuKq-WsGW&6WJ"vWvd ."W 3WtR" (Wu?Ǭ-YW0yŅWuP"mq(Wu"ȝiWs!"WqMȺWg!5WrWslWq k. Wu ")PWWs=!@WqH~9Wt7;Wv W -{`Ws}dWr#BWr!]&WqPrW"lWr" Wt#x Wr,QW"&´Wv[W!/šWr #oWt-/%Wu"Wv?Wu*"8SWq"gyNWt"e.Ws!eFnjWr3Wuq WtzhW 1Wt?NWN ,wWtq#ƦgWTXnWi"`wWr V^Wt KBW !gWr`! 3Wt'pEW*"$""Ws2W#PRWu7 {yZWrJ |{[WrK WswoW!:pWs WXWvB"Üo7Wty!_?\]WuL"ć-Wu]a^W"7@aWslWU ^OWu!; Wr!CWua#/pWu"lWs WsRpWV _Wv!BWupd WdWjj)HW!+JWq;W  CWr"ǢWs@ *Wv [gWu!\iWq oWq 8I7ÍWr} Wu Wq!WsWr e:WsOWWrm#=A{ WsH!!Wt5Wv;!tWta IǻWr ~sWrMɚWt]NWs ;NɛWrK5ýW,9W][qWv“W"jigWuR# WsYJW:WR";WuWIZWu"J[Wq=Wt !Wr""aǸWr+#'ŭWs#Wr']Wt *bWv8 /Ws/iHWv!jIW  XWrytW"tQXWs$dWv$4f;7W"|WtœW!vZWt"!MYFWsIWȬWo ĦW! WsL+ Ê4W"Ë5WvzCwWevC WN?RWH (m\Wq!( Wvf ƹKWqdaZWvPhPW SaWt VbWv/ SWu!ȆWvWs"{Wr[W")Wu"Xyl Wr/hr`WrŝW`#W##*?WrP" WvEWrVqZZWs [[Wr"3$Wv<"%Wr!ǐWqdp.WWsxWq6QWuH Ws!: Wu6Wb c,WrWb_Wu:#s]Wtu rWtb#[~Wuk#Wt"z=WuWq"%O2Wq"TWtX!Ws} t^WryWs.@FqeW`AWs*~W!Y.Wu{WK WucWrWs]wÛW#b{W+ ?jWq"^ĀWt!Wr"WvY<Wm%WWt S9qWrb(WE RTuWr!)S-WqMWv5W(v+W"cWr"ǞWtť]W#piWq+W({W8!kJWr"ȇOWr"ŷTWsfƀWv!8¤WsCx|Wu"%Wr wjWt!9oWuNxf>W)QÂW WsxWNW"#|WuO"^9YWvr"k:ZWu>#Wvv y4Wt3/W!w;Wv"H(WrxHW/WvW!Y;tDWr kWr!K*W" 'Ws"BNJWs{#1CWs#ckOWv#flSWsP!,P=ɊWrOy)WoɖWt"WñĔWv+jKWGaWr7 Ws"0)Wt lWtZU0WuWrDąWt:Wt4"ǘe8WqjKW"5'Wr"pWu^W"bWt<!a8YWt!x|eWuC-WuWtp zW"WuƊWW`:Ws*";WqgW`<WGWWo)Q>W@ WslW!Wr+0 W!Ex&Wuz*Wq{+WsyWu#O Wq u-#WqW" V(Wu? .nKWv4~W %OvWt BƴW#ptèWrw¨]WCI8W{Wq#~Wra%Ws Wq 5X$Wq!^Wr8!E_Wu=!bO:sWvK!T?vWu!_WqraW!RhŔWq 6Wvs!WvwW Wr~QWt"xWs?"Wu $Ws!dWs"MƌWqNgNWr#T#WsoďWw9WsWV"_6Wu&Wƾ,W"Z_Wrh14W>"!}BWu  ^WsWWM?nWr0uWW|XWrCW aWq}qW9 i${Wt\HJW"+K]WuC^WrQQnW#aȜWs xiWu"MWtHCW0jWs"}7yWu3 WuG {Ws[ `WuB "bWti :WtKVz2Ww!@Wt}Wr"yWt¸üWq#0@WtE#bJXOWu8AWt0 )WvcW!gWq"eWv!=$Wr [wGWs<#rkWsȦWsW W)oW& K0Wr"P.Wq!i/WrjewyW![ȏjWuvW M Wq"[zWs"r^Ws vWuY M'W# M%W9v`!sWu"]ÙWs]3Ws6NW L"WtR{Wx WWt!/@WurnnWq!`'Wr-xcW"<WrqA2W "[ WuEƅWv""Wt GWsv"ôW"YjCWt \.4Ws"dIWq-Wq.WS$6Wq %7WuWP"W1!l3Wtt=1bWt%#zɅWuZXɆWq#Vm"WrAƨW#ƫWrd!?Wq!ǗWr;#XWs v{Wq#4Wr[0W\~|WlWA )tWr"{V9Wv!X;Wul[W /]WqWW:" ȘAWv&oW]Wux"Ã0Wq!Wq"$(pWt X,WsW!—WtMhWO!4zWr"5{Wq FħWu)!T0Wu!5WrD!D4ɀWsIzS{W#PWu xWu"pJ6Wu# Wspf_W"id>Wv"e@Wt=6VW!6uWtEtW)eWsK gɣVWt8ğŨWq!~Ws^YWrv1ȋWKWj2ȌWr!W4ȎWtuW/ .+qWs0#Z}Ws~Wr(Wh `zvWs3SĺWW`E Wr=(W%[35WW<!|]ŁWq .WsS#FWr)3oWtQ aWvk#Wrm?4W W"ÈWtY{8DWo~Ws>Wv@3Wu#*=UWr9WMWTcWc\w"W! PWuy7+(WWuH 'Ws"hWĝW.CUW s\WudtgW(AWKiWrUWWMNWr%WvV"sWsZWr!rH_WrR"u$Ws ".W{AWsB ^Wr!W!MHWu#NKWs#OLWs\Wq]Wq#+/QWv^_:7WsuW:Wqf8W"QWt/#.Ws "<JWt^scWÞW 7Wsg(Wa#j@Wt(0W'WB!WWtJ )cWsCW TWoW <Ws*#W#aWsQnWZ#1/YWq"(fWst2N Wu ms'cWt}"wixZWq"B\Wr"2WzFWt A<Wr Wt@WvO!WvWv|= IJWt:aWt`kWtKW4sfW%Wt &Ws",WsnW iWtYFwPWiWtq#qWu v!WrHW"Wq!UWu`WudeW[ dW Ws#b>WuQ+W=¾@Wsi5mWa WWu!WuU>AWve~_W_W#ÚWsj!Wvm"WuLIWL"?DZWr:dlWWrcW^#,5*Wt,ƈ*:Wr"]=Wru~Wt!AWtŒWu;cWr"ƛXWu ƜYWs<eWvt+âW"QWtV"!RWtW#&puWq qwWv!Wu% /_Wu'VWs_W! SWqe4W@Wv, *!WtMrWUWbW _NWr{UWrrVW#MUWs!Wrs4UBWqBlWr W jvWuWsWs"=;@!Wv7!`wWtUqpSWzW1 GwWu!ŜfWsb#GWuAĩXWDC¶LW#\tWrEW"`Ŷ"Wsm!Ź%Wt!&ź&Wr\Wr&!Wt@0CWw#DTWrR UWJ`WIWe"FJlWt~ WWb"UWsh!lWs|Wu!GWvhrW!tWt5 W!;Wt+!Z WrWWrXIWtj"hWWr X Wt(6}Wp Wu|kWtc"Wu}LWu6"GUWv dKtUWvvƭW#)D\0Wu!E:WtaōjWB,W uWt"JKWty W Wtf+0WrF5WQ"@`HWsgymWv W;2 Wuu!^WsÕ^W'!cǚWuJDWr_!md"Wu#6Wu XWs!@GWs7pW7+'iWs# bWt!f;ăWv! oWv)I"Wr:NWv( _g:WsQȗ6Wr$pHŰWn#fWs3qW5ȧũWqǙOW WY[ȓWufVWI =Wu-!fiWu "wWt#9KWui &XWr NWv  =PWt aį1WuS ?|Wt!<:Wr#DWvF)W  O,Wt JWt] N$D!Wq &F$Wr#l$ƢWtH#LEWrTɄ9Wu@Wi\W!P$Wv* FgWt"<Wr">Ws# W!$'TWs#h[Wt [!WvI W@\o&'W|_WXI1WsKqWt#vtWv ?W#ƳKWv 2W ;uWrTiW!²Wu#NWu#OWu!xHWu uWfvH U|WsQWÐWu"? lWv\W2-WTTEWsF"UGWu#"SyWr#WtuWoTWEWq"\Wr#Wu!/'WtohuD·WwWsypbW"?YYWuG W  @`9WttWr ĴǨWr>]ypW!nWu!ţĜWtKtW6MɝW^nW!rWt#iZEWr <[FWsst+W Wt"9O]WrZ^RWtW # Wuwº#W[xĐW #Wt!yđWs2#yWs|Wr ! $þWuT#MWt<Wt xWt#UcDWv kWv_b,W."29WsWc #WuiWs7!ÅOWuM#WtKWsx"Wv"uĻWu 1i–Ws'Ws"AWu[W!3Wv#7WsvVWG"ƵWr W!J1KWs#?Ws"_'WsɐWq#.M2WrI3Wn T`Wt",Ws iWs"Wu WJ#] gWuFnx Wl Ƙ(Ws#N2WrX]pW#]/Wv{}W! WuÁuhW*WvXt1@Wr",Wue#SWs:#?Wu2k=W!Ws E0Wtr#DW^"nJWv>LWY!\Wt(TWu!;:2Wu ;WtO8=WRW #eȮWq }0Wr! ,ã Wt<WµWvJ!HfWvTWt2 \Wvu JWu"`UǹWq6GhWc!1*oXWv|EW 4Wq_WqxYWOW!DuWtd;UWoN#W# bWu#;ųWq!*ŵWt"Wr"!Wr*"WsWtx<Wt"VWr#mWr"ſ}WvMiW4 Wt!|R_WvZɌƱWu5"\`Ws 0Wth!,sWu!V{Wua+Wq #,Wt#8Wq!Ć/äWs!' \Wtd"r RWs! CšWt!V|#Wr"GWu z5Wq!}7Ws4 'Wt#5Wt#JWrWŒ0Wu. WsR3YWtm$W"2WvR'!W< ,;Wu{núWrcW+ZWW!p=WtC#n:~Wu Wsa44Wns7WAWuLWt!uxWs"#Wu!|Wuh yKWt~$ɠWrcnW!DWr >.Wu Ē3Ws 0Wu!={Wv!%>|Wq G÷Wu4:VnW]Wt#(Wu [W"5AWs‰ZW WrU!QƖWuW"DdWusxW ^Ws ƯW!1Wr28W)!@:Wu_wW2PQWRSWvL^ȶW Ws ^Wt"aYWWuI oWr. Wtk"*Ws>"#2gWu"3hWt"o$WsŋhW!12Wt#3Wr!5Wq"79WvmƆW|fWy\Ws(^W Q&?Wv}"4oWs!9%Ws$!'Wu[#GRAWuO®W$"AHWt \1Ws7RWr8SWr!OQWqDW#3ƩWugdWY Wu#WvFWsM WrA WrYNRW!qoWv%Pe-Wt$_mWtmGjW 9WqWtOW"$ EWt9!zWr9 ɟWr!kJWuFWswVWyg,Wr| Wi 4WBdŦW6UW3WrLȹWtlWr{"5Wr"ɕPWv#vɗQWsJ 9lQWs(!_WsT!p`WrbhW =UWs!CEgWslHƬWr]"yRWv]wxW !'WrH"QWu"|RWt {Wrt!qMWrQ5ǴaW"~Wt"HWv |O#Wu8 ]cWtvSW= hLWvjhq”WsR W aVWs) 3@Wswx9W6z!Wt TW#?j_Ws!]@Wq8?*WH..Wt?01W C14Wrx eljWt`ïWu"Wt #WtA $fgWr>)WZ"WsX/#WmmW"IOG…Ws!WvtWs ]Wv8#];MWu!7lhWtZ"LLjWt"VWr"fhWq UȡWt IWr!S-Wu#@pdWvN nNWvxÎkWu"%2WuWr5>W/moWuiWW)W>Wt" ƼWu!+WqnSW!`=WuWxWs#4 Wu,WuaxW W;fHnW[epWs¯W 9N}W0 Wt7 ptWsJ$6W"PQWv mWu"nWt*")Wr^#QY"Wu^|Ws qmWr#t(v WsO W Wv2q@WV2vWuo!P(WsN NȻWtrqTWs¥\W)!D§]Wq gGWu "<Wq]7oW  Wu!"hWr'!FWt_<<VW;"E,WvW" nWr0ɈmW!L_PWr%W YrWu; W# m6W4Wk#I]WuV n9rWsVWv#QWv: 2`W8"'>!aWvw@$eWtȀ9Wj cRWu0W<WP" fWq$WcV[OW;<W# Wv!ǼlWr !^Wsz"15ĎWrLo`WWs&#$TWv9eWrS"*1Wsr3WW +ȑWq!Ws/ WMW".>`WtWd īWu BWt8Wr gWtGl(W, 9ńWt!"Ws, WEWu,fW"~7Wu@WsD" hWr1WXWQ_W~}Wr#~ǧWs"pWv$rWu!°WrmW>%W5!FWr9"AWri0(Ws+!vWs"wWt3"žCWsAjyWv8vW' Wl4Wrk!5WsUO/W J-BWt"b8Wrn!yWu"]NWtWs9# !Wq!tWr"WsZ"xņWvķW#/Ws%!AdWt1ZWPW!fKWs5"s[tWu;"W0etWȿFW!vW!! FWq}TǺWh,1PW|L W$!>Wv 0rdWstFW?#jWs1 +Wu/!~Wu"Wrc|Wu"jWu\JWucoWb Wr!QĸWt śWt">VWv)#:?WWsW[W  wWrOQW"BWvy#^@C9Wt6 ĵWs"UWt$y/WbɍƲWWrLWs|>W#.E-WsfWt vWtve WcWq!4ŚWrgWuaČWr\yWv \4Wro7DW"&RWs"$ŻWv.!5Ws#epWs!sSWu"cȫY7WvI-dzWq".ǵWrkW"Wu{mWr#yƒWszƓWX!8Wt[#FWvp XHfWq8WtM-W s^‘Wvbrf2Wc~b$yWqWW3dWt MAWs "CWt?NjWpW3PŌkWu!}/Wq!vc2Wsg!gWqȭZWu">Ws.LWvn3X)W"<ZIWtxzW" z}Wu.4& WWx ǖģhWroZWWI9:Wz" WubTW=TW:ŃW_ 4@7~Wu]^s~W ]=Wsd:Wsc#nWsoWtiűW Wr3"&'WuBZWsE!ěWv[†>YWsaWq}@TWA#AsWshWU/WG"C ƮOWr>ȱWu:Ɨ'WLWWb!,WWrB>JWd! xWt >Wsu>8W?#w[WsKȂWvCDWA0-Wum!ɜhWuX#~%Ws]XWa}W-!FWs.DocW"YiHWvgƋW#YAWsi!q)nWs` fWqCWtN"^M*Ws `P-Wt!.U #WtcsW7W WqB!W"$Wtl#)Wu"0!E5Wt#%}Wt,#Wu#GWtuWgW{W"?WsWu~h//WPptW N"rWuFWS#kkWtG#6 mWr1#K!nWr ǮLWt;C)Wq"Wu}sW G;Wt# w0Wt!Wv#DWK :W_ mWq^ǀWĮW"'F<Wt=&aWxWt>#Wr"SlWtƝWq!#sWu Wr"Wu9SW!l6OWs!nWsy"(ÀWsIWrLWD +WeWur!ǪWr}MWWr 'ǛWt& WWvpS>Wv0 KőWtI!lIWqWuU |WrzWq oWsnrW#JWuD6WtB£W!*5Wq0GWq!0]Wva! ƃŲWu<#wWt V+bWv!{A2Wv}hWt(!#DWu!oSWq :1WtoVYWjWU#PzWs"OXQƥWrkW$ QW!jWu HWy4iWq!ydD^WtW~ɤ^WuDW"ǷWsŴWwWDĈWz5NWu"U+Wr!+ǫWqSPWw2Wv'Ws!Wu+AWv-#WtdWv6XnȠW~)W}! 2VWr5WWr# p]Ws^lWr#ŇWqwÿWr,!zJWrƤWq_"nWFshWf"dmWrl!enWs.W[%-WrT!.Wq!!mJWrC"&Wu_ss[ W@Ws7Wh{3WWmZL #WqW!jWt |¹Wsd`-ċW ùW!IɉWu  4ASWs8"Wuc!k\%WteeWM!‚WrELW WsxWfcNW#~$WtF#}CRWrr !WtT LW!/Wv1WuNgW &ż)Wt;Wtm0zWuW%*Wu ;Wvl!mjWs W<Wq#8d[WquƶWt1#>vƸWr ƻWtdW!hJWu"IWriWrW#`_¬4Ws-!eWu"WswW?[mWteRWr#"-~CWq"@Wt WWWrWz!Ws WWWtL#?Wrf!čbWrzWt{FŮaWu\"Wtx1CW|IWju%W#SYWs!SAWv{H5WaWtÒW5 PBƷWu#e7?WrJWrPWsW- ƏE:Wuuňu/WUq tWruWt "w*-WtW WrȵBEW#ǏnWu0SqW?B8WlN Wy#CȣWtsSGWg"q6%WskW>!UqWs YWp[WraWvGs*ȐcWtyW"Wr ! Wu&"Wv3kL&sWfȥ!W#Wg>Wvo F>WufFW@bWv#j;WWqtWsLW>}Wt&#Wu1W# gWr#{aWr?ŘVWuQřWWt#MWHW}`w%W#!RWs-uAWZ"bWr!Ws' Y9Wtg#gFWq#ozWvq|DWu^"6evWtEƐFW{k W!Wv\3WM?OWvn!Ǥ-WtTWt|!KWuU`W!W*"~kWtD!;=WtV:Wr";Wrg|eWRmǯW"Wu$nW"  WsqWz\RW!Ĥl<Wr< ZWu Yȸ Wk4WvQW WuW qWs"WrI!6?Ws "ƚWv" fWtS!=WrǽW!CWr[:W&hW Wt Wuz|&WWu1"CÇWr PmWsxW'zSW!Wr~%WE "|Wu";ȾEWs Wt"UWu(! OWt5ðWu!-sWvD"UēĉWu%yòUWe ö<Wt"N+>CWs"~=UWut"()pWu#kWttWKzWvCN 8Wu cWrFhɑWWt"WWu6[W-?Ws\zW 7Wu#9RŎWs b:<WaWh İWqW 2khWtw"IWuWTq">WD#jɒWs;v)5~(=|(TMv4;-z4,yzd)-K(1 QN*Si'Q"ZO*? ԍ!vCm6FY Vb7Hd >:*^(Z&iE$0 C1-1.Rӏ$*>$TK,4@1)Q]4&]uL'"I =*9& f֫2#`6.wt",½F+8(&|*M ' k8_!$U 7^((X6%:' |1"§u2d*sXP |0O0d$x&˟&@0g f'&HI%:_͛$x%:B§*s HH;KIDI(0g26XPH0§ H%:sXP0d |0+IMmu[*su X&($x |#_%:Q+d9&>3%:DT0"T˿ |2d3n3HO_&=3*sc1"u  |30jXPLnNk0#e$xלXP*sĐd%:;Hu"%:0g |CA$XP25duEwO§I$x*s*&HH I |I[O0>*sμ02[O*sF_0PH |@HУ0gu2$x*s7%:&I<0g&*sK+3&u<_u6\0-dHuVH8[O*s!§HNH*s[O=*sd0K~3H&$x0THc3&ž&3eHII5uoXP |O20g5J_ |%HN&8' |Y&2§%:GH N0gV&3%:4_%:(kIu""XP[O | $x40MF" |$3*s+T{[O\PH*s0gRϼ_3Y7*sC |NuH)[O0 |ZH&8*s$x0buc_ |HHXPu1H6HdḨ§l_&OH |ƇW$duM[OY&$c=30,%:d0Un0g0R§u #3%:X&dI%:"*sEI&g"uM@l"§*s9HuOlߘ"%:&[OB0g |N"%:ҌH"$)uL 0gO0gHuI§09IHiH$x [O>" |PXP$xI%:0&>6_%:$x ^[O6§§/I0_*s4 "%_d XP&I[O&XP%:I33u-YI#9zcF/(=:] ^ V!x),%%-+E9-!;!&%++06n Ah&#RV>k5 ps["5i>0гk#$@y\I|>>i%+FkUrV>> ҈nd"!TGJ>>#Cnkn]d:I> oЩjowyUH>>6έn[O}.U+Au>n_|?UCs>@+o/&hU6=S>Zh(mXxC>>.J̓m$p'Y(Ql>>tGlN(EYD">Tmҝj#qWZI>>:Uk~*XENhl>̩o oY}Do>1jm l;[:gv>jY@N>bj+)_m]B<>Pъk#x;Q:~yRl Y8>.ii/'\U>>Ќo? q[L>ЍjQ {[Mh>w\o!?lS!= &>o)m/%}tX_?_>k|s\VA>>lx$sX)7x>xjm(At~[dVZ>̬o.pB]x0G>>Ro.=6ST>nW|/SQ2r>j]C&Y:>]͟iw&jY1>>b&juX7c[>R nR[vXD>>u'm $Sk1UP>>jl4zY8>2m!i]>>>hkiK[bL>eӻhY<[>2yj|Se8>| Zn!7jZ3u>>!o?u}Z~E>>NoI(ZY?q]>n+'W2R>>lo UVT'>>*i}(ZoD7>hIj2(}Zd9)>JXk{aU3>͘j-o([B>>͙i$ciN['S >ωnT KT<4sk>~hwWkE>ϟh u1UIp~r>_mӣk4"jYJ>E,k\L@>>Ίj|V8>q>8d9iwTL>>>l!g] Q>>hX6>9;hL&%oYoLF>Zn$a{ZQ>2iHiAY*E >>.hdrTPy>њkE(ZQv4> 4j8YBP>Ңl"oTQ3>E͛h{ nTKQ>x)nk~VAPe{>om l} tVB;{>pn m"!]1>XҚjx%~Z@>>YΤoOs,YHf>>(Ӏn9h0U7>pnM[%P}2>: iu%WrRP>u nUh UM:>>Sщi$hX0+s>salrWsC>S ;j(7CZ0M(> ipWS5J>>Xm}a'tzt\K>Nn$zT9>>q2m_VMW>>i[_}X[NJ/>oѓio#GjYnRj;>Dσobq'Z5>>>jD'{XJ>>j.y[I>͵n%{Y>N>>qґk7!o\yEG>>iE%o WK>>i ϼm,Hh}[>|>δnj%\V>>pIlgjFU06 >{m3 Y5>>3l n%R$5yF>&j>sU3>(l9Z"u,WAS>>'ЬmV[,Es]`G;>>Pҁn* 4UF9wpZ>+j<o.fwWrDhw>~Rk%\:UnKW>op Q>w>ʹl,k)Z?'S>rj+mq_YzW]>>ti%Sv7>>m*V|BSr>jzPkXQ >k u[_Q>>Лi,&kX~Rv>>ck z4V=1mx>^hgylZcH`q$>#hzX61F>B3 m\3*|c]>Sp>>7R oSTL'>^c9mOF\L>>7|i!oCSC>>w*lD1wW7QS%>5oWn\2w;>h΅i.$c,[B:>sOi=+aVVA6>> l(\BN>Mҽo,H{YA>-m,EnZG >>2o_{(m+XV_>}҄lY<>pV>ll%\ tlRLw>lio#t-\?>;*nP2xSKu>glyV<;>&i@tbRg4>1|m'gpTHk>znp Z8U>>SGhyXL1v>9riR,lZ8}Z>mM ,n?S[Wq>o9dKT9.>>@kVvmZOp>>3iZ1_>`l>R;>gLjz_R0i>l|i{V`TD>A>j%0KnTD>>j>'irRx6{>Qi%AwV L|>1ϣl(hvZ:>>{jA"XK}>/iwXR0֮>W/<n)EtaYE5%>>rvmN zS|=z>wj(u[~U>!:mgftYaJ;>>m?1&OnpZ1>>o!iS4 >l(kV8/>1cmY nWT~R>p-j\r\&4as>҇o3OWRIM>>En-RTcum> m{{eWRU>>ϯoNu^SV>Љm& \Y=>X̶o@!(JU=>t w*kLtRAy>WuoNijVRC[>(hkkATAh>>үksuVIJ>>mL5UCd >yoCS,`m6W<4>G5ol*|Y<>>7m-(nLWN>}h('kX9>>g қn.x!\Sv>ml;}mT3>>l!lYWM>z@]i2"{E[gKXfy>!i5u[Rq>LΠjUq`]0>>]9ӌoixWhFK>G̻l"Zg]6K>>w'i.C~SH6>>naVxVD;>ҟo1\yZ;(>>Bvom)[TJWf>pUXiugh\?j>)l+u+W>)>>̪m"C0S2e>nl,uUVB>>jm&%tR:>>IPn?n\?=~>~lCYC&>̡lk$+'RyJ>>lMq TN`>͞n ]vN\3>"m==:Z;.>ϖl5BY#Jj>>2`o'nY$K>>3alvTS>IO:o)2{TB:>ͽkf gWJ:>fn 9l.UN>>akmkq<U@>>biu\PAG>T{m.jnR8k>MMl.wZ6EM>>j_l,>h\?>>uo=\ UT%>o$RrUA=>4ia*TyY.Rm>kU"9XP_6>vwҪl%%xRV60>>LiB+gtYO>im!F Y?e\:iv(Y&6?u3>Mm[&+qRTJ+> j5 YD< f>tmd^ sTgG>>C\iu(#[6s>>&h!qnUKN84>)h*T{Z0> m(7}Yd7>>en VW=2{3>uiqa({?SW >>tbi.uJRD>Gqшo(vVuDu>\νiV\~SYb7>g\gcl}|XBA> mti+rR;>urXm*k"IgVE>$ϭo2URZ;d> еm*-y_T0{K>u?j({z*W88 >>Hl(ZRuRm>$lQ8U> ђmy&mW1>n=hpzS7.v>~ht"y]\J≯mBtfV6:6;>;n\~[|Q>>n`XZ?Q >[i rSU6_>tдk>}XwQ=>`2nYl\^:Az{>mu,$|XJw>am m[?k>'o&{z%T@K>>ѝk,(haT1>>ўhU;,>oo41r*Y0>[h*-zS?>ziip_hWK[9>dojYLrtSU+>g4l0SluXQ"]>/mj=\\4>>#n+#[G82`>_sҤk.l[ T8>>sljV-S>>(Xj t&XQu>өos}WV+>>7i&\C\>.oA#v]UWRl>j4[L>>s"i-i1WR0>>jVZ=>hk ntQN>>xh|W7kn>I{̮j-[i[O2g>=θhwz2\Hk>Iϔi.SNV>TN]m lT@TL>>Kjd-qXUqR>XliV U>k]x^Z2>;m ~qZ4_>>nlb;lcT!R>bmU,xX@/I>.yoWq*o^YS>><ҺhfCtYyDh>ҧo\W>W>>`qӏh}Z+pQ?>>LoY\U4>5Co&wVM!k>Cҏn*|\9kO>Vhr [O>zLHk.FvUS}->αo"h|U>>>Cj&Uq4RLZF>ΐkRRWJ>'$l@"iST{>kbAzVWg{>̀mA'hJRe8u>XWi'h%X6> nxR>wJ> ;jwX-<>>-m;)(5lWK >>x j2mGWE>>Kl*u\AEy}>yѭlnT"OC>>kwiX~4T0g>хn.QkRG>>mlwV?@>%viR mnx\D,>Mn)j[CTXi>1<lI+m\7D^w>.i7J&t>T{I{b(jj%+{W:he>+o,<Z@>ϊi#tV[JZ>el (hwYFi>> j+pW=2t>h /lfW0NTx>E̴mnB"0UP>>MЈlXvT1E>>rk"uwv[Jl$>5%ЁkW,Ly[c@T=>оoHb&h`X5>> Жj&ja\IV>ik$w[5B>dlqqW8n># o\.m\M>>, j#,T=>>uIlR{SuS*3v>>5̈́mpoXM>>l +-&WTJ>> m 2Xg4<>ipV:>>*n(MvfQH>>f~o)k"[t;>>k9hl[SJ0>>f#woR"5y[4>~1w>lk#'<S<>tJki%mW5W>Мn@=Q>>>,mCqxQBU>;#$o piER4E>>j*Fl]cL>l[EgR4{>PmZiR|@ }>iP(UU:>>ӹhq(ncYX0>Z Нop\}8{>Win nQM>.җjpsW;G>>]\k=/kZf=Po>йk2nl\'E%>>xрh *yX 08>>m}R>S>>aj8 lTH5R>6Gm,%QnbY9)>jWFTUIm>ARnJw TF>>ej&onWHlu>_j<YD`>҅ntZ9T>>ewi*mZVl>{OPnX<S IR>>lm Sw0F{9>8o,HnS4j>j$@tVvM>>dMҾoHi\O>]M>NjmP_l9[KJ>rПk/{XC;l>%^̤l"NiG[E4F>>K)l2*<z UG>>l;V%nrVW/P>>Pho&W7_A>#iEZB4>> m9 y\Tg>p)qKVR9s>>IΨk x5]G@>`l yS1>sn[$yuUJJ8>/Rnz(+ohYZLi>\_jH-lSYQ >>k1$g=\?d>TnUk]TE9[>ph'yT<[><μhc]uqSL>>hr}U?W>o &OuTsT>Ѕm'$xTt<">Іj`.maSpE_>>͂lT2\BOgS;>@Uo% ~ZP>sӤiRM@%>>l%o(T@=>cjC~ XI>>km.fqXM>j )hlqYRh>\Φi<"{T;>>kovRI4>>Ѿm ImT<7>wl r-T N>ңp msV[$;>wѱj _w{RB?p>>$nQsS3 >`jk1qT1>>'o)+i<TOa>>>m+orKT5y;>pk n]kJ6><mw8rQ>>>leLmxu\C>;icN,EuPX1>>k ]~S; |>$hn"mR]2^>><]o< +UU"x>h[Gz>c͜hhTb1>>Δk6zVx;>,ҜhMwZOE|>tKn+p [l2x>%jIw6[O7Z>>ypi^Oqd\"L\>gnj[%nX<U>0k_nOU<>>i n]01>>Ҋikf{RA>>0o t(iXG5-g/>iI"%}KW>)>aφi iZ? G>j Z~[5>j!7tBY?F>>Ij v9WG3>>P mrSNj>g͸oB_o\Mn>l|\Qg>`̫i(~,ZG@>9dk%p[TW>>]lspu[{D>>ьl-!W@2>>P4ͭmn"{Rj7O>Vo kR0Tf>n-rU?u>sn*d-[rAUa8iY>fk iWBB>>KoZS> jlm-a[G.>>#kkS(vnWH?>Rns y:W1><`n rT5m>`DnAnYFN>ӡogo#[H>>jfM~V;><o*-tQG >pm2}~YSZ48>>әklAZ4>>w2ϗk$@{Z4Q>>jb0{XF >%n% \nV:K>>Om(nSU>>qnhU2|FE>pXm Z0H>(?бi"2|Y0QY>o,ig.3R=>>li p~T0I$>Po%}R3oJ4>+3o^f'Rb4>*ҡj2!W@> h+wG\1>>6`k(mVJ.n>jQi5)?XPA u>нn{hUTIn>poDtiWZH>>4dip(X9S>>^CnP+\8>>ӆoZC*i\u;u>>n!sW&6r>r-n![HD>ϤluY/UF>lowU?Eh>kpV9Ip>S$ j" xUG >oKyT>>ϻk.DzSQ6>>ҴijU3R.>>Ѡm-xRP8>>qhj~)Mt]sDn5>?liBs[/IN>>ӋmX!v5UN>>XѴh)x[O>}PnqRJ4>68zi!}ZZWj>>w/hpkS$Q>><vl{X#O>S[Ϻi (r5VH>Hfh-xbV@Pk>>i6x_U2Ay>;Йn!)p`V@>>Q\kv)Ui9Y~1J>>oX^>RG>>Nh(iUA pl>'ni\; >o{V3m$>&cҥl$pvdT,A(>>&ij$sDRA>>lo RUr>mvyVT>>HӃhX~X0T@>#i)S!iZV2d>xkM)uAU>z(o'\M>>F9qhhr_wVGk> Y~l([pwY8>7l%.p[U)Ei&nIYP>>nFif'i|V7L>Ϣk"m\Hw_>vl>nR:>QiWUk[8_>>%:̣n,qY7D>> jo"n1YT=>Fl=-~[i>>Sn lEU|6\k'>bo-+[>}i>Gne<|VVKl>k jX;@ >aDhaoXV#>>l@o4vW8y>Di,,WYM)>%κop+vX2>ht+qX@>>dsl2V5>>lw$F|pW:L>8вl2[*u\6>>Ѻkth+m'XT}>oe ax[?>ћlQ&A|hTOo>yI[hnX([hU1U>o}oY[3>>!ϦnlS87>b6h}[AN>>/:gnz&Ute]?9>hq)sT9Q>TmlEwYP>ҭjoY2P>o*oT8>>{ξi *PkW9U>JiT,pXv=w>lugX>Ay>>ro*uvZO>>`k))L$Y<0>woJzXIj>;ӧkWMP }>5ӸjpVG >>MSl +aklU^A[>҂hK+gxXT>Tm,kU6G>;(lS4-o]1Cr>>yih+t`TJ4>kVk&yW_R>>co,vbWG8>8En#w9Q5H>hnz]C>/'i\gRAf>qmmy[?J>sΗny(`pX7">o(8yWgM>> Bho<[D<>[nkz~U9;>?aͨo uZA%2>->l)6xX}C{> wm'fmW8">? jsgh+\~:G>>dkE6yR8QT>>Kk*p\L>>+jсk |UXC>'o{XX6>>4H_l*Z0>>>o WxR!H >tj}xWL>!Ul.j] C >Ki zBU95>Aj,#hU=Cp>g͐jxi[j?,>%9jwY2u> amjfrW.Ra>=YJm^,OkM\:y>̲ih'Z9>^тllUb>i>>o::RS>>j yX>4i>xj V1Y}>ubn%& iXO|O>,/k \dC<>>eEi&amU5s&>Хn$cvSQAq>4ΩibQ&U8XG1j8>ӗnsB]3&I>Si(oUSv>QVn)oXS>>}^miwTn?7>>KjY\6j >lZϴjsU~J>Kлm| kpRR1>`WkE wTLE>Nl jT;>>O#1Ңl ._F,p4hsn bSFv57$9x#F!>pJ!TJ,#&h)Qz*]LJ)طj@? +I0'">8 Ӛ{h<!?F($V_#8B-?'N@.8tFa*Jk,H u2HT7,%"-d'x>D$F6.0)E1+:)B&+ćF m%XqvyMKB/b<[)O>mdg@m`dr_JZYpi /} Kx) llslU+ vyt Xhn"]YSk pMQwkfj yh)>j Ft2S j V~[vk}8cWhw4(lm~1gpILNgoQEXnSv9n{Ydx}l  uMjxz<soX~!j8Ksw` Pr_0^q IfiEwfrL|#~Fv|!dYL_1t\y(ixn8 |3X; lSyG%7J(9x&x (I) &0# ., ?=&  )x7,$w49)eH*"D|(!$J#{ -. 'w"$/%=x0a,-K=a(/+3'e#!*=ѢK+'TNG e,kM<B%:+!WkU-IJ%#"RR_n(  #_B#.sZ$,%ZˌZw -'E-%<!R,&< Hu&)Y+n[Yy$Ld(Q3)c?)=#5=(*C,PR-ȁ)@! \3 #*%b${",O-dDXڜ.&[*xE$D(ɞ%R'Y @OGWq)q'~m>WrY:a"h'pX>2q>R'xx>\w,z\x /ut+Ms Z;17| j`}3'1qj2N?z'x{Mo/m hla3{r iR\06 W4Qi>WF_ +}|>I}y>O~(yqS z't1Yq[y4nkw`N[/M>`J0^#k ?l >P'&_q> MX8wD>05jt B+: o3t}\Q.nx@=sN+3g='{\1wn>>U9ysY*8 r_z5, [T >xs>Q Y6!v{)t9[4e[U-lM~}G('ll *Kmg>Y{.V'*|k W9fɡh5>Z_6kS!R.(%Z )Bx 4y9^.s> t?r} N&n.h>.n>_=i'.K]P:-jO>R680{z<kU[8<w%#%q>%>X4[fW;ii\&W-7|&Wn:o> 1>T)}߉\}*ho %]!,prX (x&_>xm 12qE>cu^ I1n~{Z?|[.SU'=cm}V0`y/ /xD9[(?hk 7jQP5Ookn>F>su3>`9r4nrYg%o-Yh ?zu.w=h>We)n} ={>^)pN<[ =q> b`=v4$x`/zyjUOs9q^2zS -/z &.m\5r <^7KPqZ,'X /3hzXwX(yb1Ff5scV{(or^@z>:^@> +/sZ>8>L)en' w><Ej&n1'W p-ti9X98uR=]+,@}}.)w>_s5pN2y>pWaM-gyl"a3~>5f%7x qT.A1Y,sa>~2Y&t <,~>  7oX :6zOm|.yx>W:'wVo<w V/7kD6x>U6`hH":V/:w2L-]XE@~j> ':>  +BrS_q5nr.*Y':•M&>9} 0W!& w*T+>=o@^9i~RP@y|}T%h~ (m>^i3mm 8ehVˤZCS0xuZD~+4x3zV''G8`Q,H3x>+p>!@xX`L5@w> \mlR1ync=xp> ,4>i=yl>`5.8n0W#_;2z#6p>]n-.k-8y>=8r>Z?nwP[)u gT/@sqR$:[l$L7&0>f'm{  u(oy}>zea3W~S17m l 2guL>B*{-_ >{->H.:l7[X+E|>M=w5vD>;V 3mpUf2s)^T6RhtDZ2pZ(ssfqV 3xT:0(qj]_ ?ZG[C5H^%:p* > ;w)8x$w}GQ(F|>8\{^`2Bu$>p;hW`4|3D`C0jJ_(7kZI?mj(6`>*r?hzE+ fl9qX s>yX1+0n{}+}/y;<}R+{ z^G= r>Yr [5z _/wl 7_@Fs>+k,is1(Y3u7lsT}oG7m{X8So8$>9z>%R9uFK(!m>^s*)*[m9MFZ_6v8Y5ne:j #j7>? pqy)g3VyG>) /wmMr.sw!Y 'y @ <qWV--bPC_~<l>T.2vRo?+t>L5y7x4l.zS#~*uo6\)yM)/E-}>i3~S5z>u(w.k^@}h> --A>^.>uI :x[%D(p|;;s^8x|>[w5kwM&xq>:xkˣU  ?\t7&:sk9z;>R ;~\LyJikc d=s_&Qz9=a=2r{+> ~>^=l6Iz5>Q?{>Sx%q7z ->_:->^?>Z,Su]k.k>c_0<o>\'w>LO&iR5u*v /16%_n'Qh\>W2wo4}:ju9L&+t!r'(o>3=t*yO>Zf2~TK%6dj `66fvfpLnC-g\O 2ilhyT:zW=u>\65Xn>,i>_7s' ;?Ki>%^? h1& m`> 6hA> 9,Uu/Ty(|dW:e0qiNL:wS673Tz;7{b[*=&T.i3W9y>.R8c 9n;>N9/mnHU1<HUa>~Av2?zKn/`65C}/n*Xh>N-*Y|>Um_*Zw_>a2utR>X)un.)r>V4w]N+o>u8/VL'xo >|>^}4i7Ģ[1.$Y\Q*l, S1a;s\R4,MB+W~>D+XzA>_.no0_;m0\,>T{.n,xv.x `6>S= u"4S/mX\(6s4>^~H9FX)+Z.wI>Y=+w~ab:p2c:vE:p |;.nl  /mj  -0o fe6y29j>Th3U,?<z,U-:bk!9vM>`*ppoR9-?fڎJ&p<>[ /7=h2t>L7)oF"^;GT# 7prY{K3}5Q'}rS^P0`Z<w>Vs:jlPUs+%os7 X{+S/m;HW5}\8JyZ 'rFwV?z>Y;6Kx>h8$v>e#/i_'; s _<zY9s, *([u}yI_+odBU 1M(yX(u9_@0m>z~@n S'sgLJ/j M;WnzM;XmzZY5,(Eq`){j>8=~?cW)|s>_1(qIv n)"4I3hzc>>3 R*es X \:2|5L5p><5{>\V;.1\W?p}1x$1 {  6k>V!,A=\7.9[ 9({jS m1v.m.-Z@im>P g7|p>To=~)|\;A}MGG.hgXN'3|Ɨ&?)m^3~> '_g3 2+#ui>](w-u}p_(9?|? *|>YW;iNG5zu+G( }4mGR1zd"0seLP[T12qsgZ *)JnQ 5>Zd- A5p>5na>_F?>k^50}.w>W=X|W /i4_22k->hx&:s Q:$p7> 8=hItKkh>x 2mO5q=BLm2nsQoB-On,I_p,j/W]`G*sVD%y&MVE6=kN_G(t_.ieT.r[\O4{i8^,*j>L6i,DC>~/4kt>l1~GZ r>hFK+r>F6p0> q6 w>Zwk6~ Wl'vjU3X'uW5;_8.{ Ujw,/x0-N]> iH=A&yq>[n'j5M/t YIq(Y|c]5*;V 6yi`(0l>^'n> LI+(yp_/j2Y>k!^^8Th8ZK_;}>T2*[ ;n`Li)9 d;yaT5-*\mc e>}7wL(&i8_1vHG.p[ 2tTXL(n_n_;<>Ma2wW q:s/ "ar>q]>[ K;xq8L)P:}D\;yj/R +~O\<yki\G4q" \?z~>xl'j)0Wq~ ?>X%{|km@&0i_3+ajL4Os2M)-{S:uM+{@Rr$XH8ho>\4.$rY40h4_=vp8_=wk4 '`s>i,+NJB1j>U&-H~C` a@ mv@_*y>[4n_f99iPB'9:tBVn>AiE s4gr>[U'IrU+3}Ft4\_/1B.\`2v?:M[5 h5|T>`0x8A7}>+ 'oS'T7q&  /?mS^8z>YP&k X ?sX a /qxZXY+i[_'?9v >W%(zq(x>W/kz=+r+"W]S(5T99t{fY/,*rX7xlY>-zv>zW8t%cR=,}oZ,~[LX*{}_c&.kS=4zQQRQ /oDM(U{Y<1v}Nnj13jO:0!v7IU9EU,u> ?T>M\p*tuWu5Aj !@ Ss8 w*AL/Lr:\'>ub;Q t0r`q%v>kGT&>lKx/el8>6v3aM/C~XCTE-k6 803>X`,vx ~?:t; :p">M2%9u.;us> F^3kP^)U{R-jqF31;k8W1j8T.]wu ?~A_N <m.SI,?|EZ u. j>|7}>q7l{>L3-sk>r5hV5 RXr<nL(^qJ>_] 9+xaH@6@h[J5k^U4D&tNUo9i")h <mU>\a*Lp\b*Myv)s_:=5&k}3:QY8?=WX*/S`_ 50ryU (-y4R C'u2R'p2Q'9i \q(1v#p4m~>Sz;v\rR+8hC0 /u{[W{.5 `E0DqkKW|'5vv  P @d>=03-y -,,jt_P./lUx'>hq[^,-j )h.X3lWM>|i3.)i6WC4h}e' 0>>v8=fUD);wlf( s"4RG24yF\+{qG@)+oY?.:4q>r 'k3J08s3LhU2j4'U^0;s_4*;><5x8SA/Kmd_416xr=[p(> b~*r0>M4?-{[?zo?ilRY%jY,ZT;qu_~7F}l?xj5*4yrSNb'N^/kkl-q>SO 9sPM8Mqi] 5h{\Y^>+Z`/lHM+6mMz7{K>`/7>MWy*|+7)j>_+0%>u9:c| OYG-kk2nYH?|j0W'~|WE/YtDRU8 5P{o ^1y>e;c>_2qN>~oh2ys]eAvNa0vhM0 Gn.`)<k'&x{R>u>R/4N`O6~z`C@rq>6`U-+~>L/@a?m>SV3oh&Zx>Q1omh0b>X G,}58a 'zm^$@lw<*7=|mS):-vM -yd?;l}> Y,(la'Xr 1{m3n>W1r'Vup,v<wZ>TI6Lv;uRITL_'mTM,%y3<zH[1|c4t[n9`)wi[&hFȟX<{p>Z<l rEl0kx`S+r>5y>,*$_2)kzL]?r>\O+zjUSS ~+T{&ST l,>] t7&}>.we> ?np>X_(vt_.{=L.vh>T5hw60>W%>o I6i(&W,m{_;8BxM>y_/8E >R_^* n:>_':)>9#y[` 1op(i?>W66zTkU:s6w09S2jC> 2s{"L @!uev [;R B.Fo";{>[6{0Z|=)C-l +<o>Z}O=+jC/^13h Y <16 jL`' xr!)hz v5uzjXk :&nGl5-'t>W,{>SU=qh i6i>';' <.| Y9'MR4<n_o;,o U6nZ> 8w*Ts .sQ)w\Q)~8rj>{`8s>84mY:3pn>X>&~|}c@s-0.m|9h1> v'z<>UN1Ry@h`,k ZT <lgK1{>_-(k}>LD-QiXu)}R(8^y ,]=.+Ixz}Vz=UlWSx0}Mr j4>S0qMt-%O`1<&|>Y.wvg5A_+@h?> hr<r2?gu>&uU?i}&>@?l\>U=Kt/> '.x>S:sjK/}rYU!+htq^.o%/yo|Y2t>{/rM* l>/xy]V,-L,xY"&`\_8*}6*X;"G{`*ya\)v>W";pT2Pz/Ni`8R >xd)?7v>MU.;vkY7DvX.*m p?kR2rtG47n>/As>&q>&}Y>KB8mT<m)E7^nX,0<>\3zZY&z3]2 pm>Xz5u+9x>TV.pv E+?h}<^k<h1=6op>X [5Ko9Y3id}}Y \5Lre4p>S` !/Twɽ^,Xn7j\ng&U%\p,Yq%Z+iy\Z1N=hN6U!/ri>X * rz '&2&ln>R:^&>~3=~ ;hT7_f+*&pgY.r:qY]3j0;w+YUB9{ :El>U=urUC#(gaw :w( :Gx> N9j(z|a ;h> Qn?{3|A&*~@af)9h> |;hUm+u~3v,\|>L=nY>R 7s}GDXL*,g>87z.U<*ghU 5q[n0n  !N1jqp}\2l"Q,:t]#:yk:O-w>_7=o>_0}>:^&7i>`58}} V/&fl}z(^>jh0$}q}:qw [5X]05>RY%<a6Q;l~nF 2(k ;t>^5pzx^> )>}$L3u}f5B_z&rVk8*|x>}=2k>%zT^4Ji*!a2>l:Hk M1;7/k]F 1C2Mxl~4|2>,.z`>q/hvr %4T{>s+s>M6 j>K2m!hmT)  5{>;9{,E?@+}v(&cB>7>_:mMQ0v| a.>^-r[94Iu~S)uc~[L<>L2o>\K+wzY%Q8MuXp^5l/Zt)uv`*Rw>Xq_;H}3Vt'{ I,|)>U R11bvOHR.H lh 4z-|q{5x>y 9Jx;jzxt*)zV452v!>6p>`(j&4p+>T 5Buwr/4|[n9skX$K_8Om >J5b,V)SjW\>.Um =G.`)U1>^g<}R^E6py 65=hpxYg,n(Lo:!vsi&<k>_.*<l>*#jB>O= y ,s*Qsy[59vr[_$+y}>-1r8>Y*=k   }?m> F$.^l~,^*0.h" `9oSXM5\h >R.Gu> a6i`hV =nV:u[S =.}(LH'zv>X'{k>_Q9i>Rs0y{Q S,5t*ߧ 2_j7T [7oG['x>Z _}4DuX1k*>W5(zm,mUM7(}#! _*iyw(*nwSR(uxR^(|# 39y|4%z!>G<3r>Xt"<i|lMd:8W?8Hy `,.zz>Nx?XX7.}>?{?2qa%w>S\;IQ@2lu x'Bh>T..~Rp(@>T56hSH,Fg Rc1 2K>}jX/uf,_]8h_;}&;qP>&M$)q>=yP 2n"0Te't@K 6C3wo>LX(@wr]U 05lV^+!qG>Y5}/7m'Rr_=4s>W 3|s'W6r)>la=uJn_)1smyZA6hC^3m^V (v=iX7>S2-vo8x[>kt7xL;_ (vh<>0y>;>w`P4tC@8kF. 1yFM;}S(W 0S~`;h*>Y+H9^H?iY  3_m<>Ww7z5~p> jL7%r2L_44Tbi(MX =,tsQ_6zm>;< ^Y_-|& 0))Dn,Z6*g2qL[-x.>_!{8nL|8 i}Ul4n_(r3Q88vM01W{ ga7rr> ry7tm]>V-zWe ,o+F%T*~T*v1 N9 i]ň_7)k> *v1>W5z]$W1B ;mS1[k@jDl0 l&`p  ?ypp5r^4p2u&R c=~l&  @K~K>W7y>Z_,7v>ZHR9v6GZ6^o OT,+CwT1|/TT;:swY?:r~>\C1x{PW "5|#s-2&{|Z3^v:|3Xlx>S?{#'v̇W='{[4 9`u4>~!>U -EZT\:Qr"1R+N6 tSw=Wu@ '9ZkA PE@q_A<y kc&at!&pG#!/iRd4}mM8 n\D]?x7%8m%>fV&'LL@7"wjo9z,M01ly-}Wj +DloJiX/qL[f_F9>Rn>j:Ju;h>\,2Kr%2LX%\:gڬK/\uy<W*oWFnaZ/8~ 6pS o>?kcUtp=kDCXi))|E[K6|^|naM;o;iOn2hU~:*omSY/qt$_>( kn&ZPg,)L!V0B~>p:8k%R 7XD? 7{y*RG+$ ULQ9k>;z>_Y'PnuH^%<W[=zG$<h&>2l2>b<~>)4_|>D'#~jV? 7M,>]rb>T`<km,BL'w L=v>R28n[;r[=5$j^U )o[>5%~`VK2{M@}p2y%R4;}%Sh.Yt>T7/ ~8z>U19sv '3b{ 5_/p>9z>d`4{e2|;N (}]>71$y> u(m>;-{Z >5p:Z @(5uX 0X3q_;qH~42u>S3+v]gj0hy>!on>`+_h>h)>k}l=|>W+kJN<~k@]2MY8s/Gx(qv*s+='Vq|>#d/su>n%tR_)za\0rU>W`0hQ$;|S=}!,mV|5}a[`B8loug=sG> ^<)t3L/z 72}"  8wo9D`1{{HWN=bn:! -x4> ,;VQ8(l>^_4@^|>^_7h>Y7yS2kF/_}u>Wt /wS j-1Eh ~X\='6|I.Z%s*X3x>7ktK3k>W _9{O: -!xMo)TD +Z~>S7ftn[ah-#wJ/m~>z7N m2fGT~(r6+`_(wn&>>U <qA4u}+/tR|5}#4S I98|vw7>%=D Z/,tr>^,8"|ԟ {0mrQa,qH{:z8>`(}>_E)'pt(9^.4S>y*ISj&rfd=}Z_ 1q:7u;4p\>M6Dl32W*+  K<'kcK>+,j\o2GvtDZl@ gCy3hDv 6p2I@Yi=>F 5o-Y5x-"7o~>U 1+Nz/[x>Sr.oZ9h4UqhL6)l|&&]&='}ΟZ9<ijr>lw(9sg΢c&T~>a>&{F&k(/h>$> z\X-@ `?UjMUv`2">S37p1U\A.|{)\V;w>3jv>U m; 7GrH=V]@iK+BK(7Pix[{1uyLq(Cy>Y{8?m@p^-`|ܤ|@)}'>j_2n S2Rkg+^&~>0~>6oAWV98.zn]T 1iUAYT 1jfA^^5n+`:l/X}/}g35g>Ui1}sw= ^26>r7*8 &}*q[mp.u%bLB+u> .5|>zg #5QDLD %r <XQ/mVL+wt~n0k" 8vy> 2W'u>B^:&>Yt1}C_Z4vfZ6oT'|fa1d`>R1fz>V(wt>718U~5nwPv@oga><>VIn-zn$F+}> p,/,"1r8n?[]?y^?-WPY5D;m i 2)S<3o_W \' x%v~Њg,m?>S9Cw/+l.2>]<5n$&"s@> :)&%t>Zb )ph#^1zhXFI@\v@&x\3@]ul %k> %7>_0p:>VH3xyzVe*fw 5 e&kT=3|wR><:j 05rjg7*{W} :tl];9]kS&2xR=}j '[j\x=hb[qa]4kKLU4lzi^;*r|)s )y>Y:~cIYs7%ls_ @z^j+{+o.v>U&w&7w9g5yNY , P 9[T> 9\v>\.t^ ; R:5vQ+ARy^.t|xM}4\*5x&>\M,7;:l>^,|LtF5yX3r>K5yS>Ov$ܦ_T?vwY:<~f_m5g x.gL>na(r4.im> zl5j;x/zlS.|v'U-oQ[G=i#Ze8hMj4U{v^8nj9_34{Ca*{j(y(~}cV ':>9T9hIQ'lL'O.o?Z&[>j`2wB> `*~q>[L*{O_\*mC6lZ#*s֏:@6{L!+mL>\3nofm-&wW; l+eOKy6>%qhtz&/ptpy,kRF<"y[l2o*`){R<>jylqJ)-sVf0VR8$'kv&>S{N/pAS}7d>S~>o>R >wk3vW+y[ '77X:rd{_\9~>Yv<,tT < yC2Z|U>9:p>R3tS/g88?w-Z`) q3{>M8u i\-qasO_K,dwgsPTb+8M_(~ZQ>J-RW&0nI(\*Z*[fP)mcYAS?I}t.jNn`/{DȺ-|>iZc;Pus8t 5M!10k xb-j>S;q%Zk(je0A>0> e3= ?E&qs ==U`:?.T)/=?b:q>8N0gm> j:}>\i= rq4>kM8 ;Vz[q[, H_W)>.mWx)u<:o'Tu u.clAWy.dp:sUu0)/~o>Vk(=z&xNQ?mY"J g3p>5r4za>*Y>{Ba6y,Rk\>M[)&y`|>SaJ+~>s-x(>L(vtm['l/`'}Z,{WY -qmtY1Oi$u:;|gP_ j; P3nn;Bh`BA&p,>Ui1,|US72{y>Vn>;q Sa%qrk/vn^/rSMf)m|u\(mvH[L:kr>S'pXi0)j>%,Lt:JxWRE9n|4C_7o'4F)AiZ)vUw=(z>X 05wl^8=*q >XQ,lL<Vf;h[u *}~>S@Jh,'}>Q 77 *UxM^;E}>n@">U7H5uD9F4r*&/l>~5J2iZ&^m>L'4lu]E.i\K2kmZZr =s%ɍY s2 ~1U0fu> m8x>/szp8yuC>h9q6T1^*}Tmp.WssQc0lt 9x>Y>2O{f.9L&X(QkW}=q;>_)={P>U| +z& z?9~:P<^5w`"|<|s>H:jK{o+q(>r\(9me5{c>RI(pyף\0-L'|j| m7hXo*n R (6p> @8>p!8I~ >_-;r_~M=rZ\ -+j^gUY&ugVLp%kkgX 7vak@_qY=.tzX7~ 09>W<m8YGe)k& ^??k 3'lo8R0,8w`1;| >\]2uI$;t>R8@ ] &rnE <ob>Z!@@zZ+Z>iz^*t>X5u>5uX>YM(=~YNT){Y&vѠW5%k-F-w6lr>[2(y8~X`6:tq[3:%XV.qޖQ 8zf>Xk34xhooV>:}mr_.jw[:0l"$r*E> f:mQ> ^;dsS>+K|z3}+l>B'VtQ+z>N/*xn|_r(sL,rO> 5pd> w3rt :K ,~ >\'l%Y S(AlVHY1Py%>a*{V/F{LnOVy/psE,0i}R n+ @[%?t5T_01[*sk1lsU -|"jU -qnU8w}R)k_?>z>_ ;ubE-t>X , t u(S?+G-x>8t> @E|>]Rz/n~>a@Gj >]m0ti2akyN+q:M?69r D+&w>p6a|y_b(m>R 2htB;`uBʵR:o}>[x4|XR|(>c;s:>SEq:jm?h ==>\ O9~פ_)~ r)ku8gwP^Yl3i74iH>V%r QRS?sl+>>RU?tzG+- n+znk2m{6X>a7{>#^@r<>K)~g[=ja4cpS,Y9@}>p(=FqCF?R1m"]C :9yL- 4&lh>[&@4i\A'oB>R5jWA 1I A=1n>\h -qryR/Z-2&w:Xa3)>"3*g> 4m> aV4~>T -a{J/f4he> ZS+}_,4xh>B:JovY5l$sW< j&_@@B/>$/}uCUK:7x/ /tmR4.rW=:hWu=jLS &Gj /S/Dt>}uI-+Snmo _(n\:xI-xL?)t.U'3rTRo)x{R'I>\K/h|)MC?m<|_j3dlfTs'En'<*+z `;vkq>Q4>Q }4i3\q+h"']2r)LTT1u,X?kn_?l{)V,xu 5;s?T 3o\M:4)u0B\ 0wy@\S3t\-Ju@Y 3jQMY 1vLjs'hLsq,=~(/Ly=mK V=?(1TX56sd9's^9l* 'm>R* 9s Ij[+7-N_7x[=rZ4{Y Q@Y 1?5-I);uW>e;p>Sb>qSc>~s|;I{M>c2u>j7)hmQ!<q> U1|@)CmNM^'~1%3t:&h?> =p{We'u2UG7iK.~9>SS5Y]S6b\..xLʴLb/F2 G`)oVs6c} z^98 '+1l`>U)&q  u6k91PzL>-mJ~^(y]>W +dPb^*}>87qjTi{ 4W*>3't Xo6rZi7wh+~+X[6Ls4#lI`! 8XI.S?Hxw>\O;rDZ& }> X3[lX(~7M8m>8q,Č g=n `0|~>M-e2R03gM)t%prW1>^2>_7|1:tU>M:vY>lu@Nj6{tB4jZY6u ZM3w8!R<9{U>X'<qy>h>_5O>Tjs R( m~`(2{.T@Y.Ye57.,;m`,q>_6>JsU%9%y{>K.{nh8Qs>^|'ei_|9&x#"(Pyr n@~>K<(rI7j*&i>\0dY,DpCu?W+h^:q$>Y --qzDs!2Il>_&;sU<n>Tu)a+] R,jr!&8pQ9< O,h/ m5EM_1=fM "A1_4yg>+R_'j3(.**pC.Ip>S&J~iE5z#Z89w]2:uWz5qgnwE@p Hr%~(A}`s)rCB[^'p , W)hmt#MJ5xx."u+:y,Qh|"*IocK9}AhZ@:(l_"5xf>V#-6?mT'}/ $,+>t\u2v0\; 9<z.w0C,Enf>\<U1"W=Hu0j3:rvCU17~>UTO6m6V27l> p)q ^V6i5\3Muoӓy7yh@>z&Xv9a_<F<'~wei#/3s ]N.?pM> o,`.N )~>(H<o>ZU (w=\U;OwoX>;?n!5d)myS_(~ [-rA(^-jA,_+y X7hR u^G&Chc!H&Dzj%54n5 ^,~F>V'v8Zq1)n _q2[|7b=7~EK6"|g >%q)7L}>W96s2:t>2v>v};qF_<45H1ja5:":> w(=x9L579Me;p>S[-BkZF/3v> =Jj>_4l>4}[> <>Wk3kFV+<{>^5(HsKcZ=u\!W6x WA?S~WQ 3Hq?G 7>f{4u$Kt=zdw / v0>,&bmi.)Mo>RX@3tL,sI2z>Y5kq+ r*l$]U W8vs̢M)5|zLE&<uY>]@vCo-<s>YZh *yQX7?r)Q-Ry'0Lt7djV>.hr>M=u 5p>`/j@l8xKBL O/tg>M :i~Z@6er\X :z)b`a0Jmh>*`m5 'i>q*Nx:}0>4C<wo{>'tY! )s&N3%>N  %{R.nW 4dt> I44kw3X2->iU 94w,6u> Rv4qhύYv=<u_7'=>wF8Y*r^+qY;M-yB(nL<Fj}$3h9WX(diL=Z%g_9jMgU\ .t~L R<?}iz?m@46o{Z'4r|XU0YJK'(hk>V/;u%1U#1p-Խ_1<2lR3 q`R?r cZa4;SY  -ioa^9~(was>(p>u+gr>>3b?k>M;:,~I>;y5v.j>\4x.WL %t>}y.yW@>+=5.V+{c>=/>_;5.rP(q>;9mrU[O4NwRj .x*(U0uU_ uV2xfR>D 59ys_@,>xO3> 8_8VwT ;4yLkT8pkT 7zj_ 1p}kP4p>iv ,~~\+o~\L,v8,>Y|6k$@L6X}>^6Zn]>w:l[K<n\^S3iLd@c>3@uo?_ '/2_7}>d/c+>S*r t1D,g&~>//2r@ xM9,> p<y NV;<$;(q>s(>U),6>nxPU*,}xTx 4x%'[m?tE|Y&1yV@ W7;D~  Y2JhVO":Y}P- %zՖ>}:`5)v`>95IXag%mF_. oUq30x} t.o>';~n:;Rv@1z3JRw F7,yJS+/Pi^S\a}--n3 -sA> 'mO!W6*o<`'pU6&m>J0{>a<8i%>]([> p:pL>t2zt /,6i)8))t4>U0o ^3*>R=rEi*@)]v>>Rz*mc7_=z)>(={t>^h;'hH/X<(v-T,s{ǻ >, u3>[4j%,re6@|o3w|@ak>L &{S_7n>,~SS*&r> u7\i>[e?fM^@^2pr]g'l>n2Fwc[ /6y#Ii=-~-U $5sh_D8)(l?>v;lX>k;rL>U3zY>5mx3h>^>6p1T' 'BSe<6>*On. 9;z\>>'`*~/tVN-~>Wgr@v}Q}q+|~V=p-Wwr+}z}T m9mE>^89s>S1?xdL7$ >;&v>W6+uB4*ka?X*2~$6_ 3rz6&-S>^/r?GpT~8cjXC]p9qY0"yY>>}umLf1s[9uzwV[?~r.` :x>_F2hv3T;k> !4j U E.|T s_`N&&u~ 4Go>5 >h>Tg3^(T8j9*Qo.MxU_+-q>I|-Sx $?>-$k><#,u7Wo> ^&Vh(>^/&(o Gl=a~0P9A{,9'H'i:$n-qjJXl<{}X:    0+eV 6r`M:*x}r_pj@o@b1i>^3 y>\ &~;8vl><v>_1<{>=5z{S*A>C Q4rw>_4t>V 2|o2V>jMUz+z}^3v \S8 v.{z ^Z-65tSe?Bt ":}~p^W't|~qO0 j>8@h>8Am>K-"~QT27|f_'f _1oS8!m_t;14>v_H15}~>6`p0pZ^*'wYU(vU"'{e*n>U:eu0|^[;byY#Mz43DnǼ[ ,=n@[ -={@X=g}}_>7>.,lh^1qT*yФ_7AnTj?i|U6So}[3sv<+6h>Li>Cn%&>Wo/ngQ&KjE\@u_4*VZ0y <YJ'N0W4=t#;1wb>Z 8dd 2{>\2j}*?>:+>S:zq>\U:yU~2`j>2boP>L)o> |TN(wntZ`<#l>Uh/k}U9 2tpR";!~\_%=y>Y*ayuY _,z>,kb>R,l>T (GgT%{GiL)4o 5f?} m#8=p8>\J?h |?pJ}6 [6#ldm x@ql>"|?k0L/v>  '%t>Q`S2tb5&m>)a*yiiZ]y1?+;t9<~>\  ($}g_@e} i@fW<.k[[5  (8t. ^0*lOb  8j U++y gA ;)>~a43>M;+m>=zi> -t#L}3y@> _<u=htg>K=i%>[\1iZF?mzQ<g0 Xh:~e\a1&Y;s[QM0I2~{ ,qn_r*4{s{&r>ba1hwK')m1&~>Z&i,>^0>[r:IvZ1i0ROa6{dTE:pX-sR4w^,V6oZɫV9q5%}E @*:kf%~82\w>K&%~R3'sT,esRe3|>-omW{<0i\WP+:hvWU2iTv-imq>sdS,kxOe*>^3}=1h> 9J,uN>[,q@z,w?1o$a$'6X7u>SD 8\R K+Bf\S +k|Z\T 3uT^ vr'~wyN(nyVi,j6;TSS7o u1Bv8 J)>E_)w> ]:D>_)u> i8(~G,(Ze]?%gi]@&j8]B&n804l>Zh`%;oJKZi4hLXL`0yX9vAZNV53qknV5= 7}9>L-du>_ )^! Z, & WG`:>~w  N512&h>_,B1~M&2{>0{5>\3 iV2nW? 4>t޼ ^)c|L>1vG>3F>b*o2>MTy4 o;2p>^6pyvW(6v  Xh/jZVl_`;mI`X:iS^%o[Z4{;pui;~UQ -|j>"t@o">x_:>Q_-2>R'h] 45Fl-|L;Mr As2{w_/ ']qXA> iB b8|t>1kkؘb0+~v_SU:6jsMw<lqa!<jH|=6k'Y1ZyyW 2mw L]GK8l=C  =Dn_<6h[Zm&)[}Zn()\rY0>j(>W z;gV[43o*a`!<lWX=rhIT.?~{(A>~U73j>V74u&>i<'*-uɩX"2s!hS6 )pHS+cv;B\d0nAL$*h 'Ck8>Xl)P*,8~#V9}>1Cv>Zq(qZ(fi5_(mm>RHL9dyOdaG7m=\=jyh_6=s#L@[xrsT+?qsW &@{ߑU3{E+l> j/krs^_;9uu  +5m]:)7;|5~Rm];@+l][ 1ema:?j>KL4DAi.Xv j Tj0zu8w$8k>1ej'R5hqV(iI J,z/qR[ 2*lz<9l{@>^17x(M(.p'2U>\-^i- a`:>L; {7Mx3*nv)s>]I<4ApA]J?A@*oA<leL].m_[0'smROM=i@?> pa>ZyQ1CL:+J}<>XTO8tLF2/'(j|XU<l !M:3x-j>``>{2uN,p{}T6 }-y-i,t>L,u>[|&ElxLC6g`w?_> At8Kn>_:d|=L,&n:޻ |\6hO{Mk0pS^6l޾S:v-l!TS';s>Q7+rW>U|2>Yd2S m*xB>/[={kS_ <^u>N.(uks 8[x3 u|kt v[)v>Z}7nF*_c9inu7h%r[;W*i_ d:.unL 6zfRL3cqp`"@p|ˮ*=-(jp^/)u?˱]=7y_< Z.<k>0 iVHq .=s>U 4R;Zng-d?yؚ|]' x>Mc7v>X1wQmW(9yj &>bN0>\*:9y:w}>_#d&!sM.v{R,57qS!+Hy>MT4l{]Q.zFv-m;[:a92=Bh >B/r3T6u>2jR9{=BRg'q&\|}=| 5}HS/b 6w|>^f5S3 ~90ndX+9i)U6*{; &pr>]+&[| L :oYj:}>^3u7<WJO;/hFC :M}R>])f{@16>WF/Uz6.-:u.?~PY?}_,uQ/W?O ;?pM5(l_ ;@N4r>U+GD{3#u Mi 4x>R# 9Gks#^4^,qx?|5t>^-z\f4rZ*g8iR|-{& #0~`> {#)Em)FT'wy[vL_3wO B<j[vc8~AMJz;+U>l5hwYѾt2}>R2oy> 9B6|:S2n&:]Z^/ nJP W^4jp>^pj>~;6{R1_FrO 7@u[*g3sl* L  4uH^^/y6>;+j4.UQ:|T5`x> F/SK6se'ik>s9+p (xPX'zb>V>)~UY&/w`+(b1>S^?jyboj.q@7s#^Z5 3WJ8jE K,S>~wz1Qvl*TWQ1S|,l+U1wR'-vnԋ >"h>Yj=1=Z90q+pi89v +W <="P=$jU<,|~'T=hDjU?,l5h`6z>R[:CsJ7v-o,Z4PsI1n*Pj&kW%C<T=ljٽv](wxRl:)o^) 9>+p5 pOi&goL{Ls4_U/z1Wo/ ;Y1p%vUEp=sl5[d!)R~%_4\y>s1Xj>[H=-iYN@hr.T,T>|z{Vq%/~rVr*j>)*z)Z=}>5.>z_V+wT<861?T?Lwh>ZK<g"ZL "*vq"=.St>_{8ul>ll.Tj]>;u3 _ 8y CSQ+;hc9p>Z8PjE?v9x>(9}>R9|R>WUz@2~jWVR@3gkV7bj@ r'1>^1qo>M04r0*:ox> U2xh5> 5I|8gW?uU=-piV)u=Yd+[j>]H -yd D5'%>t.n/H_4`*h, /ho>]&q=3w4_8tZ<5&~Ul\7ji>K1yZ=5(~M%,?u`ku*)zh _+;v.L+<oV/9r;qV+6U]ͯS*uQ'|4L0[vW=Z8hWV>z!R?0op0_>k!_9wUI@2Hvژ $\j7 pC^*vDJM.~1 <k<>\*ocy'dM6 ]e3epiSe3fuG.& KN!'i n;|</IY+~2XSu0x7g8r=|>/ ?"h%y%rSY8n#8M0n>>?ZoN0l$>2$m>a2%nS>Z/%<^9Pw8>BM>6{>.4R^*t+P ^@~r>+nSq2D~T4>Ooy`\5no s`=^ T+,rioC@'>/{>ZP9In>(_>4iu/&r\>M4HzFja&qT>MNo08G>V.yt:V  9nV:8.>`b'k]}T'mvoS9n-0e>,13,o,t(nB>:Z>3\~&^{*΋Sb+lG.Sh(uG/La5NS !>2}#S:?;ty_?__ơy>v>16Jw>U E4"jxU0s" S@nmRTZX: .}K`7ShU~b0z>4p6c(nQ'00Ty>#a0Uqi>_H?v8f#2tKWb D)pxf[%X_*}>w;p>t</-]t=Q|t>)~Tlj)s hL5hs t>j>R<&j 1:R{=`>t~>Yo*U?&)sͫU2]%D?qM>7q>&|m>Sm>oO57`>N 2@Hi[3={A 0+/ugO@=^i>]%0t FXV( 2>~!V)*Pw!T7N_?,NE_M4vaA>;>WN .V-;[yW> o1uo;X3o_;hYQ4f;,}4> 34@>g5|9p4Y-5ۯ>5pC>V>7Wh=hfV`;2V~DV>r7t_-w|N>pm_l-hR&17JnX[c*<|ta`&O{[*tDžZ[8s/N`7uw ^&I> x/z6n>[=5stk _0Qj>ax8ii>].uQW=0vvAxk:X|M,_99t>v}0>QP= g_I5k[RiJ)n̼j11$zMA?)!qC\^1q A3<u>gB@UjZ/~#OZ_*7o5>Wq&`@?#n vHS6}C U4=v"M -4t.%5f;>_X&|f[F%3}B5gut>^&vj t9$u'a!)u9w[t9b?5m6`M2;lz3]*:J\+o-'j k*lV1Q&|O&M{3T0K:T{K/mdG1Kf9cV_2xJ>^8q6+bB`%v;xfYs2sƤa:~l.<)uZ>U4}?^4x?W\5SvC+j{G>z3r|hQ_u1k_-3s;T_5mSU 6pKM<2M_ P(Iz@L\[?ug_3:m#\71*}#wt[-X4.Z`^-Zu40\B'^wx>:|U)0pl Z4zU0Z 4${0[A4~3vt4|(>@|)ACWm>|p >xf8/s<rWn /k h_:*iRq_8zhs\/5}g ?+s>ZG1tiM6$,rH )nL,u>.xO>/lsQ6n@[ &>uW:x%>Ld?()j;U*6t.! &N@t}<_@jl>>[+tZ>|WgZRp/hn>4;wp[U)GkC`-kL~j@:h>Z(t~"Z"8iDZ?ok"*xEG_*)>>Z/sqC{@M2 |2,n/49r~,Q~_>RR9kSw-_61X>R`/;ok_7tL>&11mDF 4wsJ/9q>`_)m2Z w)pzxL;uhxe  (2 *bl0r4~VfaA7|\`G9_x;}>MmM+l;w>_.z7s^3}"hJS=&u)|*4h>n5)8Aށ]i 2,j:[[9v| `[R @*v"JM)7z bW1Nw4" r9x<kyZ 7ar> 0v$uSz-o|oC88S]3'<S_(33>^&|@tX5+v)Vu%]S~1{|U.^(u-Tb8v=\y>Kl9JmK'm nB >p>I^?l7 > >s6,t8>E6-p>`-wKxQ6p.UTi{/uZUK6h_.q>U9j>U:zqVSY.;rZVT0r\VU2v_`.{9oqqmT$_&}hc$8o> d*,tO]#K?~a([ 9~|{-si_?[-gI" )_> Vy2|zeY&wo.*so/ s3?g>jQ3@n >9^({T>Ut3Ar>R{=As2|xS0+q1X) 6hCx\8*{n(>Z>{RM8s^>|R60|X:7Mq2#l h {,!qX>>li>4Kp>]m ?/l@>[W;2xO4[+}+[X.w+s}b/irhM/].r> >3'oPU"9t7#W3owS'jkGSW7yb_n3GB +]mZ?_%[>+^_%p_>0d{>[>m}`0ht:iI(9'ns> )*p> -#70kk)3TS@$h^;=s> C>hrotUe;mt4zj>ha78>!j\:sq5 +>V9 =lM_g.{V?lIeW7'kv>_(SD.vm7Ez+n[EVZ9o#-k(kE4}sQR7Nx%])0-1[/iDS &k(9vJr5rwF(w>T5Ivm;RqF,u:S4:q6%vi2|D{eJ><> .k,2_V?k> ;ks3 v _(}lL+P}t H 6k>m0u@`F'{~|U3};sl,ujR p>sa>mNU/{>_jG3m'# Gy3k'%VF 07b_9gi>MU(i 9:.|_T 4 >9LqnDM4xyh+N>Uk n4Cit@0l o`0  S9-~uQ{5svu>X#_.tg_)0m=\*9o5L^5y"je>o[ *=ݤZwR:t'EW l) w'2o>WA=iW 00% a /vj>V`Q71llMo9j!3N a'r].*wy1S ,ah'M],w_k.Ps:o>K.Qlj_ "@ju* >x$*.tq r-4qQ~(;w>! :3i-=,9 QlYt59u>X?2h6ʢM5VRh`6x >L1t~^3p\p=< H69m >Uo - 4?^7mp^a5s(+ /Bl>/+h+p_3(jl>71xD)7xU<3V. {HSP+.yW%}Ik^`2uz}Z&41^+{8m ,L2m Wq>iV L1qyUV f=yU @9qL1/pr=7v>u +r9nM<_9p)uYQS6n>.,4}=> ]IF81mu11XgRM6 v> @rq>$6rn\ .rB9[*sf}~+iJJY =%w'F t _n5}}l',u['C >@W<%^: >M:zWu+h=j(j.r'u0:+v/v\;akOXR/~!\03p]߯[ 66rv>:l< 10CypoY?0zppW3ihpU8k{3g_&tz^8lv3 4nDaMy>j"M/+vB` w0~lQ5awN5]zM,k -re9Z)-qF9Y?z}A^*l>Q 3ً\09w$YW/S\[-v> ;u5%s>i1+%M',vV_%icVU<7* \-8}>]-9w>Y 2m>*0j{*>Xa4Vw?hr/ b/z0S?)a+8}|mi:#~sJY?*_{:ltgu1x> k 45[^6Wv[V0@k ʣg'k( @=z>SJz3CM*T>0+yT0-iT _?|0.}sT"B,f'MbR:|<X ++uK>wL5Y>V(p% 7lKb-fr>iS5>N[?|`>4ka78uE>`V=8zij[k+r?YD0x#'iU8`pH01i> e(hk'm>_ & wmS[* 9vؼ^9xؾY0sV?\T-pe cT+.kjU;ntE>A_t;ro>\t8&\iW,tb`;%>Z2 4i =KW}Q@V~ |  6xcg&{s7oko=^5w> Q^5z>_*=v >Z*Z9.5Mp>/5N{x>X18Lhy:~W`:!R>o2%\54u*O8pQ>_&f3 zBZ/{TSR^&/i}X+njX8rkXk8ukXl)9"p{8:l4 xX'EtTD1zv2>W>&tXqS+-sY.u =4/rq(s> Z<q_1xm4@^;Cg>[;kr6 Ha:q>V0l+MG -q*>mx߱T>xQ߲U ,]kB7])ru>SP@>/G^<7pt>]|?tIX)atEK<zln6nL((6ywX 0} #,X]1p9 ,g/uql 3-i>T 0{(_=,{r>a7]zp?h>? n>@'*.%r>Y@w+|57uW1~4&s9uLW&PsW+.Q0t* U*/y!>_/~>Zu@&uSZv6v0V_8?rIW>c;~>T33BZgR,Pmx%^&W14Xwxa))>Z:L3> _3={>M @?~;7=n*>$ >p{$} `#?Ez> W<,5a;.0!jV.1}$Yc)X.2mN-} { ak >=u{R+}6K@S{>Zh6yFY'mn7s>Kt$6F6Gh /S7>q9ov>!z&h>n0 gTN I/2|!9>_;93v\":s!>((>Xc:}M)wjV>R({?4pN2j =s|>G"=z>KKu0:nz5d;y8/7qH B:0mj!X~,x-%m69 & *>n_o@t>y&k>L*jjS*.|eP~0w~>\ &wv>Z9X9z[7 =ot .a8{>Y9nJ_@+2by7[;rM"-@~ QIv+hT8M*&ngLs)q2g 7c-hg_<u'>`%pm_7}m%?t&^.(~{+^)n(|'d+Wb5|WP31q>_6( oU}Z1i p6lv=t>\>4}2!Q<,;vW-vjh6Bu>[i6Cs>_, wHPK@Os1> k@Pi>_7y>\7ugKHJS+xTT?-m7R"3u?|%Z[@E; SMB?[#1oXX/aRVy@:j[3Zr> r (*\0py;X l**lH>}z8~iZ'u<+oTZ$,?h>Z(*7j],W4p;+X9>zk+Xy5w>+q>Tck+>`K,iMi@||>L5yf>/k>YV-li+7&?rp>?<;|1U=}EV( 0y>yX0 >[)T?&wj\/vzj.jo1m )=r}`7>\|P}W*ju4[*lD*_x>i&o=R97D0x9T1)ڳQ9q-rzV>Z/"F>*pg>w'YwUL9h w&?w>SZ0?XM+zM\,IrO\3w%s;>X{ ?{{V} ;f9}Z,SU/!v; 6)`L*X*x1gX \6$)g +\yg =(w >02p>L ^/mT G7h6`@rS $v<qURQ%W=o~.Lq9ml8^}0ex"]9tM,XL9tK_#-Dv>T*!|>v*"s? T)-pNRh(|pnEx7t=>J1s{?QvX><S.i>O@};&>WD ;,iq |1+ju,0 q>S/*kC_<y$Z9B{`5Z 3rR5[%%bYC2c} 5H.*Fsm#T2>{_*/z=vz:zv2}(> 3&/q>&/`xs>P(Oq46v>_9q=SvLV0 75wέXj> {_U:=v3 ,K KKX7{2Yq+twsO ^?,y >L+'n, %s >T4!r_ 6Y,WvCZa)ok k,| "/}>(oNV0v,wS?FpN@.R-'y~N ,;& >t@qi7thT//h| 0\|\7|_!3k4>\vu)wkZ74~$JX%8g4b^@C " .,y>X& n@D~4 %u3l<<\nnCRpN06r{%r2>WN_U3o4/j/_o'p`H?>G{ {5}}NS u>Hq&v>G1> 1!t>[M6uf $6zi 8(1~>U  1k[!M13nA c_8u"TJ:on)h>_4?kI[ 620xS ga^4Fs^8sh~/yk+W -\*|q> _e0~er^?%}> W4j6>e^4t>] 'j_Nt}?(k>`4(jJ}>t>~>iM>X>k> @{>85,Q7}>8:X'Opc|HU]8;n7Zh7R.'~}#yTa<i]Nd.%p]Oe.&ww,h[-3n(Ԥ6(sOԥ`<z>M-s\M4k2g13<v >N)yN)=pM=rz_"=tkZ>;.xy9ZI1q(p =u>XY-syM`Ct6Nt_>)s~I|6Pof>9?/meoRt02C[97sWhs/h4_/]{:>Z X,w 1W:uvR&>U_9'>S,*WmWS *o0[Z&u-\b,n-/Q~JT 2{_:>Y)>,~w 2'|J>U8;0&3a&v;o+.z{R2~ 6{y+yA E+tC[b+)jFY 6i  `4->U?n)4os6>.k~f+C;u4Q6'm> %&>v}>Y>C@ zP M7x>q -Uk> 50k5+J>q7d-VV>_@?=mHxS)3xLy O;mi/2UqIE7SY_;mQb.ܵX-kAܷ5-pzb:\ze>^,w~x8Rx6l`]i*jB+j/7l0r -gm)Vi>R:*rr[<(r{x[=3ko}Lz,4Mt ?r<qb>#reu`l9|K9}R-<t  ,s><}^>Z2&v)V_>hj>E>s>X*/X/*S =N&ApVLH(hEh$s /hsh&T5pm 1^&:og%nK??s>[_5jE{I8:>WL Q(]nCAW/Hr j+*'kW`Wo7*.lm>%>C"%jmLMD(?D *?yn]l+?|oL92mC2wLZ948{YtU6&l~dd32r>>&]\J(stK _`8<tM>ZX<n|?i@fY0zX? ;E+vC>  <_F8)sLyU1iJ u?+|55mN>~*9hTQf0n5l>v?4mY Z4spY  }@nhrYl-mX3>ohǦ i~;ghǨV+>zwTz%B#_Z&u5,jK.oj$>&R%>`%o/>Z 7wА?07xvsT U)oz[T -4D^1m>U''w>M;jK+kX>~&+~]^ i .`)rj2u> J<s>I.hVk%pvtStM<ylMe>3s>\aC5<8>0k+l>R0uvF;<u[V.8ocRV/5-|\RV,z|kM@u8k 6{ >?1n>%> @k=>M0}[UZm2~x Y<sz..y/rc>Aq3r\+o|6Z'/sGJ/nY24mb ^(eu> w`5 zCwO 6|wQ[m9r3\??rjzh9trYk+~N>Y*8x '@x8#iNU:rl+M]04L{U*shg4`?~>Y..loe> n@mo>`I5qU\%B_&#^z) w&$~u_*rrWD.m30u7jU @9y<xTq6(af&tu+xts+7vf^:kV>f%/5j}g%{9!>hW  >~^E/^0T 0p{&8oU +.@[:]ɗR<q)5/i>6p1-nxM5-x|,~;>ZQ*DnE5W2w[ *{<4,Vs> =zWaTH'-R>vKRR =e{i.Bu'2v|mv-y>  8v>L 9h =!/oI>X8lChU%9Wn=>^9'!L/1 oLw=yV[s>q fb.i]w :3yt0p> a)r>Y)k>L> <o>{[4^y3~U_2x>R9n2H,mT `5;i:>g3Gl>`=g> /@h|%>7pb1>,>VM?,">_D8e # ,gvwyQ-sLO(}i[H1~jA}_QJ1udV6?!~0N-k>Wp]5 |8 -l>^N){8 8a}5aj<l&)m/>v=~i C8>u#B6yQ`6qXUG:nv<EE4*} F^22>)l1>RB&|.RC&},$1z>[*>-SY;KuI=b-T(uk$<q1>YD3Gh4:{X G+uX8#;oJV82ni[V;DgLW6yH39 7u>LL)yk_:kMZ:>Rn_>uoeZX*oiV4,*kai(a}kfU`6h!M-0,{>\G/|i?_a})br>Z`]: u>[^: >ZC9|rV?$wry1lD>Af%|TfF%||<tP7kl/;}j=;lup[ 1HlW_\(oa*~t|>F-4>lX,}nVY&N!gxv7|'w\z)x_<-ljnP-)t[&i_Z8[pE17c~> #_x,Jx[=LR;g^5pMS.<ug\4 ovq\>''?{SS\?@}W< j/x]>^-&lVZ>i+Oy_z*jysxa.ltP 'rx>V?sQ!i]`r>r^M;-oGe6wj!M;?DsB/.nBMl/0t `W*k>co?VU'0RUy9p& R -R-S@+i>g>lva7Tq~^(;j$Ys)v_P8m.sZV.q>ZW*u>V?B'l1VU>H7-}N>-x>7:ovC5vAo8z$"_G8}ma'5h_ J_]2w{V)Qh׮K&nY7s$\Q(,wP_x2!n`2x'=t>)&i_;e|> w_1>h>naT;f}k>o><x"XZ7wbY _-T~V 3lU"l/m$= <};>qs{)t)\]5}_;k' 5k>L7 ^;]' +shVV<-[r>W`D,h;>Y,i1.mzAV/zObr6s>TM<i.Uy3m'L/>"9.>-aM+ vZN+  `+1 l>T9utl`?&Muh]p*&?|]q8=%Q+fv-W 9jo W 2e|)<.m>|.j# &3r,| x=z>M(Xm |ma&zo6y`>TI9x* o%y> '/nnW~ .h6tz>q/o~78{ N5>i  E. > i0n4Wiq>v}b'8}{>M&)>{&>J:5wLB'+dvWa (n0>_5+~MCp-YhXZ(ynXy'n: (J|>^?ml |X)l]>R*>NQT[2;]m( :Zt :wo{,&3k>W7nrXR9wvxy1&Z&,>',h>V^6-R9Rl[|0~)>k>[0|6qV5?r\-hGF]-zS9w4}iec'i!>L|?{j7Mp4rZj/J>XZ){O:n>Ga7r.S 6hBE(#w>8lq; p/ :2w>2tx>[^i.v!Y68%n93lK_Y>[jR.5aQ:ppX(g7H4 s&TwXq6rq>(9ijTo/u/q_0r9@zqB>RB,{@T,*o/xzH>Lj/yg>[E(wy\_,)=].wsX1~s^80pb+Mk-8w>M^(Dt>[;w'y>P'0>M 00`W7v;ko4",,^j,TxO4jjX+>XXB.[qUF; }Vb=R!6}%/+~Sy,~R4/-u>j9 v}gy'h7tX5T|!?Ws*}W(s.JBI&`>_(Q=S@0|F%+Qh= =qSM%yڀ6p6KZ9Vr6O `:{}|>Q)t222 yH>B#<<}S8&5mwg4r%]{ 'zsRN<>.X5k=mo[a -u:i_1(L}wY;b:k (~vW_&v~M &x} p>j>v6~d>}>nC<s3i-=qf>T@An2?|A>Yq*K-.le>Y;8sT?%yuVg*~ S,w.8@S$)rG)S-{.t @:^1x9>Lfb<h)?m>)@v> 9;nZ P* Mce/|s1>K>tW<5h92 `{3&H> *rN> F)Hq& =F>[m.l2_-*o \G=E XuaL:mi  h,q>m41>+0}lBK+k3>-ko>Mr6ij11Mx*H|\B 25r5>>R ;^ng?U>R 6q3'-~>K/n-&lk>F],h^/#q5 !6sI>a|U`8>U9qK6x Vk'Ux{O*qvA1~C>L 2NoiTE0>q4:}rS,:xop|^;yy;oCu`9;O6/m:^y<u>YB/Z}x#{7x:<W) 3]s_"S+(_%? p/rR.{/tR/{/wL,>R{>[(@;Y[={i~YC<]r VX%=js7 zg>VY Y0z T*3 J?Ii.> T& |>_U?CrQ(w3b& >Me.Os> ?jDt\o0Y )xnWi:u4 X`0@onWz8&|'u> />oL>{/T<:q\;z(t:> P6~g'_8q[4-{%> =vh 21Z'k F 21qr{1W 9 t9Xj 38s=<X~ $.&UAj=Rs&aB5>^g=uz [?RI'~!]9},so6o>_h)jx+y$.>t*/jy&.wOR 0w`#'Kql>;8m ]/pm /w> o 1L{>8ai?wn.;a?Po/ m{;>5^.H"1tf40|kG })3>u-iLY n3n> p< kZ>W7ts^k Q(tU ?,2hwU,3)W{\R}2-pfRg33m|/aDzY ?yiu_(2w=,svk>ZK?u#W .~rf, .LhZ> ^.N|>'=zh;nURD&FvR-{>[a5-z7=jt^5"]f_5#z (ks̫_X'ul[ Q9xs>)6oV91~2ibZn)8iS-0jq5 ':w<>E <jw,L92r2qwN>/26RL 3z _S?_Z?~jj`57{t)_C=9omK@x>_r& z(goKXin>ly?qL>8yT:qg(8|Ƌ@YnTE:Vt>_:W{> w9l,~L a@,KLBcc7ZhYO3tF5;pIpB8K* x4Lh*s>E4܀6{4R(u{Q8SmY^'\}8 qm?|`q_0>|1>]M=iVZ{g8#k?>`j!AXW8+nB~@T|y>T7a0i ,9QA2ghO9StCO/W>PTt7k 0>Vn \{1sFo'_8k"&H} >_M/l|=p tOB&{V9o1|==:q%^1k`=n$FDV,>$~Ak_&'-;> 3i>\ *>4u >^.tB^6E>S)p5>q|V>:h`2 [ F5s5s %g I?m>U75tyP*Y1+_&.u>X>P+_w?z&'r7{0q>L{q:S|>;(V e7Uw^p'K7gun V@(|.To0r)T/$k,l;>\(|B> >x(Y`B;Us>2~>z1:jsiL^?Mi7A0o_m4+oR>aq<]S=5>]TP6zI4fuM^ @3ig)>/o>`&qg[;'oYv5j$dX\?p̩^5Vg":yzVh 09wpQ?sH>^<|~_>sW }8l  ~8s}9_y W%n:(0Li> 0NnT>V&2ooT`=;Piz1lw>;4>mQ^.qZYm+m:CW3U}}X~?xoy;-s>2>_9{RV@.pmz_-.sNr-=~yOZ_r>e>%_>jq>UY8pX-IvR> E[=k> ,6kƉ0 5a|*> 5bq>o>qmS)%ymg7z]j;x Lr5ols-#7j^MI)yaX9~mx&{>S9oV*oLN;#p+\j]7Mrk>\k)g?;5/h> )hh;\l6l;Ls'j?>X!@'(l(> @rgax^6y7/`8;Q}> ) 2l> W;u >T).{Ca4:x>Zw8oR Y\V)> )v>:zz8|>^U9Hnrc)q^5~_->cc.$})Z @kxmXiA<}o' ,kY>Vl5is@>|{Vma1nq}HYv5m#s =hXXR1y96Aqj/ig>W)m%4Zl8{&(pWU&w5T >@ZMq(w>>"(}O>0n>M;jl0rq6qYp e6m>T&xn \-:Un*4\ &m*6Rg+zD{\8t{L+0o>Zx<bYw5l;Z?RdhX(c}b<`22vpJ_?2Snf48f\h'`8{fM%&%`}6|->TY4{"T[4"R,{0hkd3[jc`8 rxy6[k>Mt ;$|\Mu6\jw>6]u>[_-jDBn>76z[-n8tW[.*r|[/ X%_Y$9g@g^>T_-5o}9h>Sd;h~R"/+/Z5H9wqPX$?uT%y8ZZ*3=|Z<39j @+bl>UH,:q4 s2`@bj1R!L9yI]a&o! W C.\qMC6.~6>-}>_&k:R>:p;^&s> /k#> h9qZO9Ol>M7&l=>X3b0w>V44v&WA_<74_ ~.uk{[ p0q>:gm>Yx:%OC TF3r>7<lGT,@(+xk>bfo- jt`'4r'V=#G>n4~MM?(j~f'yOV,}_V,s{,jU!,"j>6}>R3 @xV7]L7C}$([ /<5rH5[<Y12vY?d~Yp8{RY+W-u~Ua)w(_;#T(`v1Si^:wC\y8s>X(4oj  2+y>^f<wV0lu/x_*l>h87vz`&-vM49}ULz4L|9 V^+>/r[Pt2o6!\:,o#Z H96l)fK>@v\/.nC5k> L-\z?>>=IsU .'SgRTS(sCU /'WgR5p> [@0~. :zFW|,_y$>0#o> B>shT@L~]81sP>TN,{_~8hTM+lja9Eia{ ~)6tMNd1 k-]/(i.Vf1"iX/SE^0Zzw`P;wb\%k2.3ZA%k_s(iX4>>|> h&/7~{m,Y`L-z>1,?s&>68h5z>R0rh-<#h7Ym>W?yq>7.nNLo9w0]{_>Br_7l y'j>Za0k`V%1mqv>UU:q S`00Bf +1mjMWC>ZpjN <}>U2h(p+CS.hXK_9}LW.eoXU&tO`O5i&h<L%hZ99zuH[V,/j%LA5ko_d6mRL3>qv|%lv>YU>s2_7>v}2M~1~>6'.\(tj>_;_p>;7wJtZ&jymtQ1y>*;(>Z:.hy~sY 0RzKX'{K1*hWUc)x<p^T^@ky y6qsEV`3p>L1y+L 1mfX4h k_5v+U`1tv_/n:S.m\]R=r)~iv@_.|>a55Q^0q_}.5vv}R A:i2< /&>E9|+'h6ogZG&6kJ49epY>3'q +t;q`'~qbV /=y55V,a:~zV=pA57V 0=r5;Q-x\@4u7Mnl_)B>W*w V10JW'Di 2d-+i6xS'LR#=l#> 2{<;:r<\2yM>pZ/hIn.ri>`[24w|@s}t>>:@|rz^'*{>`)jY2}6N"1riDN#2}F z;pkT%j_*W G/nGtXB>W{ 9>|f> !;3k 0}?> ,0u>r'rm_7y[@6q?]: >Y|@}P8Qi_,$h3iz> +nt<>Rm,y(+tS"H2 jpZ+p8L"->q^l-@*?}`+qs!6p>Tpt?JyS)vzw[/qU[JT,h]Y";tH@<w>2Y761zlwUX1nm`^/?u>Rs4]~A#Wa,}L^K&oz xF={d z(r>-}lj$-~yk@2^w5> -*s | ,iQV38v D[:vz>*2>T<.pt2 }c>)iu>[ z4_)1>mlU(**>S ?*W{z,0j)>]u:u\6 w>}6lj &_(::y|rR1*j Y8i;V>k`%2h\ A&en!>X<L9<@`V0kn>U0lzR> ou 5 pe 6 L;xGVJ 5 m9h7 t/bm7!oAd 28s>29~">DQ'q>L#5Uyxc]3;vyM.*[ 8qmoDM rx.#hhtR(GmM(|$ 1<x@>,Zj>^;~nZ$@~^1|5i{!QaF-h>Tw 1wnm!5z>/=oa>[w)#qZR[y)$pTZS`))l%dY 4pSx6|vn 8q>S 5yi_28h[T.6n'j >k*.{[2y>V '0~=>r;>'/mV`g;P>~3Ii> 3Jx>0)| >Cj* >_1Ythh|;op>_"2$.HlKz&sr\N,:s8r {`.Ko9r/U+jU_ 6(Jck>x>_@6w(J% :,m[S6i>( KMSZ6l Zp>{k^=uCy "au5ztTd*k 'i>_ .i~XR0l:1:Bl>L=O 18umi%+@?oVP1i>Sk~+|]s}1|p>y@i|L(+&t |]"+'pqZ 6{6(t">[*BpHw=3z'j;Y'q937v< U47s+`^D@ئ  <|G>+_4(q>@5`W1{0lsL4n)|2Tt`;J%Y.sU)z(q|o:j[2j!u_61G>&/ly(vL>*o]>R/q&h1cvjN''jt[=yW4S>Xv0y >Li>3^+xl>S/}zPP7qS=.{  5J>LK6iw>\jA7|,hwG_u.Bh^> 8{v>o`4yd[/{A3>kQ_+{0 | =G3+}VV_-*~D_R?q(ÀVW96k1 j>"t_;xpu*^<k/>T87l(T(2l(  +-m&S27>i(\q*<t^5wf>M_3uy5>_+4j,m>_<1FxC}Dnn.j<-P6~x,>pM0F}j o7U>W7}>L9Th WD@Wp#-uR%.rP Sw1@h>S9UxH]7o6<t/(>_).7svTb0pHr` ,wr:3"~%XA2y,VC5Y3:w ^s=T4:kT2W1<`i>Et1Jw`)is>M>h"MMH/|=wp,7oM <=~> 0'k_ Z\=|yz>_b*Jl¬S?,`yT[e(Ksu \S&=cZ7 v0~=}L?4r&pM@Q~>8Uj8NR0DOR@(4e 1 j>&t>MP@l q Y9rm 9qe>K0hn>_N(rZ M0q}9mh ){1>Q 5QsoAQ)> h1nQw j<0~>2q >6n^4hsW3}m;x>VH&RoV &Y,L b3Y!>T'@j2/Y?~BR2n6=;I5>2kT;4==].E~H\EQ1<=\ 8~q| g/6vn>N 6wm>N 3wt_\6}{`k@>RK\'sVU$*ttB ky+q_R7O^=yW06r$K'q7Rj6Hs~*VG2IS77lT-jm ^1a o3wY >s7E.^=n)2mGUm%7hX212]o/lVx?&} Z5A>X6mv?r,>Y#> w&Bs>[ 4hag'jylV 8}J (*nH>B`x+yVa6 `9.}-Er>:`h[X\ ?tko[i&~.#y7}1>[w3s%k0G5?.n>W$a3tA6e &t>W%:6hl w.|_ 7vn}.:+*ktx+Ur4?Exu3p?G ;xp-@XJ7sTs5}K3-t>T,Oq)[a0I*~;x'_, h>X8NoR%.1q|LQJ>h#>Vg(t +iV+{V9s`}(,{p\$2qz%xw-z3h `.8_t9ht7DB A_=,hX&=q A^&<z>)&=>W)Lwyw|1) n^L_O0@pE>+%t>I=O .o@[ _(tv@M`^(jI0X[*(z#=0wU,qV'U&mhdsM ?8u6.T>1z9N[ -^}6y[ -_} G^7so 4o4g!(sXRU0*w@R1F6g`7hYV_C.!v1<ńLh4o^/gwSN 26}7N#6nP>\`:?tor8\(;r{ 0~>W(u2}n:W9;Fi-}//>.xNK:[';L>:hK>T<oT(<*ur? ~2zj>r)u6^[/p[*/[+ \+}/.3~R>U <={Zc6YM=5tJ>S)?h>0ih,n5>Z6np=lx1v].j> 8Y> s@$*]/oH>K u7>u x7> H7m> `7mC>\12m(4jV -1Tg>n}_7+{]7 .|`7y^)j.RJ:p>Ly.j" dk%6| .2Q>ua2lh3^_8m z$38>Y'jGͶ |a'zXq5<m>W224$7<>To:}j:5Wk> 9&l+SM 89)}/>3z pY=l[_Z&r#oR$@%moT +v2_ q/R&|T68&k.> 3+ w1\ /{V>YC +"M.7u(>W- '1p4?D6'X}d?HUh*z{=0q>Zp+)p Zq3E]6f&q^4X f43o >0wn!T'oz9Ǒ/3l}> =~3)IZ4(*>tY;?[yEW:U?r_<vh^8v_*p6S71guh1//t9paq:xJi.u>R'xG0*q.rx-r>L_5Zu qNyh&q-7m>RJ/)p>?_#9=zV\2) t^@N(Wi>wY(pf:w7>Xm T.p WY%3M("xB' xJ1^kL\< t>X;x>X.r1CK;>6vVV k*]-4>M'AlN6 ?`C*|>4w>,tl>]q2 R9{uZ:{F/<t&!_g;;s6Wh 13^@Xo>V 7~Z* 7k>S+o`T 7r>T3XW')m\#3(zEq,@|0M?A7V>YK / um"]9$r> ;:3+ef;m{C,gTc_0Xw)>M~=@Uu2\=+}]K 7v+7)ym>r\)zs>x[1}\> J3i~;n>T05yp^3s'[*p>^4{> 4~> Ks5*vq_V6E|uY*tjSHjM(}HWJ5tY[(h,YV -~ \5qAS<m._GS*m0TtaN?GoS=X02r=_!&3j AKZ- ta 4&v4wa Ep?z>S-Gkcg%=|s8v>S0>S3i3S^3~&\ <jN7't>]'kN> })g5ft;o >. xR2hvWJR/xUX6|m=r;* >_)6<v[b2j mZ9k9Y+֋D'y1WG'wU,)B,K>Pw_ ;u <x>^}=;3 2,2>!kSX;4q 4SY>o>\b)0/`")p^tXt'Fx{!I>~,u>nW01q{T_>uf FZ-l]u39~&V_.t>r*/n->/p>S<n0s /|*v)7x8C09p>V3}9 ;m>L6|M8siIaJ=4o=YmusL27>T >oQsN`'e@iJ w7|iL o4il>it)s{Gp4 x>X,I<uTp>n8qPQ0/Q m(scf+?^}>Yk.u.jsx>WK\>q vSY.19{vTT 901_S 91nt188}V>Sa&|^L)n~Z6u Yd:Z8h`+Vjt@M9j5>_6'Hx"U&q /Mp:f *l}m8;w;]AP9m 2u;>[$\7^?yeS^<wz>Y7<x=y_X4nk`7[pRVW6zJ6K&j5T9+ G;T3q0>\_ 6bi N?x >Xn6Oq/ikE_~9l.+x>*sf Qrv)N:^g4bkM, x 'bi>a8o>U%1_x>N&z>qq:{g(R3p<z^#S=nt#R9Yw>R+ \0E^ܡP:l>Xf(ioTC)m?U>~V)h~e)h>>IXa9auU4k>RI7eMv #:AiZi5cxk>^Z5ds>M5el> `+5|>K>kPpM 2E~(+)t{I<,)>SL %si<oM5:hu/\<H a~.fn>KG&pO9*E6hxA>Z:O}-Lc;}o:V 7v%MWP= njxV&hS%Q:fxZ%-{TT't>S'gn\ 5z:WM["9hY |;jPmI'nD?W/1VyQ֊MY0oY> 72y>a 2s>\(~zS7{O]D .q ,^^23r> #)f3nrhl<yarkx)|b>J; t{Y:/{vOM#)qh{S=)> z.;^dR V,{+fR;) vUn+rf3.|3] "@l" a@8<yKZ:>3mw>t>V8bxH 3~zT163ofD@6o>}&z>L@pou~&i> vba^;vVS|*|XWU7nwg.puU %hl\*(+Ay^9Ё]`2Ysr> _3{.G6~p)h>Ku:g<>Y <p>L1zraW  ,1vȳTF1rg$;#>=_+49>w=lP>R c-0pMR,(lv>V4h<gT_2@I)owEO4i>N0,q>h_$0Hh~x B<k@)<L #*vV2 v:}2-:T>+L=5^{ZvQ:^yCNd*1cv|@ix6>-\>MJ5u! /d}>-/fz}>Yw,nq_.ajK{iV1vW)/lb>N[<<n9jhVxr+eXe a,pm20j>X(q}2-yCET:<r>S'"  3twQ>3vv[>H_3xs>[1;J> j+3{>L 9Db\8x a<h9><{>4y> xn@j{iD] !0vT'1>_A*}Wu`9kSTK =xX61mWnHS3m  -7t9o(DT,-N@-r}Uo;_&if,qSA1y,t_6& (0 Mu5:k9g3Cq->T6(>uJ-,moW'qtTQ @|(R :<y9B.|9#k@&tqU<{q>` >p>W1hTɆ o>Bl>N-iO>*{~7`wT>p.h>L=8t7^'rtwW^5w#~ /+.A_.;l&C2zY^9s>Tc?kXoS{('wrm_=3/pL5a?'tcT,w H 4v%>`+hf>_. g+k'>L ) W\=NaX>8pL ^&qV!K,b}V"i3pr z-pF\8)t `NYiW8]rIt'~O^=Tx8'7s>XP:?xUQ-P;Ȯ 1rJ>UR0pȱUS ,(.uȲ9k>Wh)oE?O)(|>{_(t>2n><*xtO>M|;}~UW&ё&wђ\Z0OqqtX -{  %+s_>W-c~\"?8z{l?>9bmTn&r7FQN>l W7pwZ2k{O.91>z_7BsM'wX ``(l k0=j`T50}q!}Rf">swS(j>W3n 5q ^8 m `4~uS+tF:{{>S9{oqTm+@?fWh:ps&5/ ~G[I7z V4ol> <*;>x<-j>K;\j-@Z}) W 7oHSW?=yUQ*k x;uZwC?,nISn8}A^4qw0;^,vJ>%_,x8>Yh?sJ?~5>V*< V ;t\u6: iiR}=GeR~z?Ytg`/{>'3m>-zM9>H,/rWO 1Ulda<nquU0aqO$YL@iR`U0t>`3&xZu^*syw o(B>m9q{(E{B>2ki>>tlVH 2A~>s|6To$F1WQ;y>=p>o-{,hWZ] 'vYL`1zT*1|L@`&9yZlp79KK@k> !6;ye> 8n|> YY>f&ep B>gr&f 7B:NwyY+y6Ug?{ Uh`:8hPj*@z 6{G1rW>Z,#/t?jbK[(i>:zu>V,l^PX -3<%{>^-) CF)ljc> 93QP>:3RiF>!!7p@<=Y}8~3Si>H5m|>W ^(U1~7gP=;i>_-|C,8}>ZM=|r)Y{_ &nE*g_9kE,6>YQ.|77>it_-vv nn6i7kl>'.|A:Lk^R WW`+"3:i>S 'sp2J5p>9\J2tN ds:+x\'(kc\=}\7ly]t6{EJ%K;m,[1m/[.Dan?NF C;k>[=k|onX +t$ *`-xwJ=lsj>3%3>lR:FmV-zXDe4u.z0q-O>q^'-, OSf]>_{M*htB?r:3 z*Y^&K>X 3 x*~?^.|$8xOo `7.z>T,KK{_=S%0}g8>M/{ff?tpv\1?ˉa(07p>L'~z Z=M} U3*{ %:,Cmn*8zlQb3Nz>3mTu'h ã[1`l2>Y'5?n)Y4~8>Ws<tP> {&v'{)n<+U{)q#M4Yny>4Z>]/?@z``A>Qs>  ?alRo@zj>k ?csl 7ic>VRJ7|H]/-qnK-?>B&l0 7s5Zg5lQ3S;S6_l>9^4:~NM'xFhx3$i>Y8-qr`R2p}>YY=j+>+.p:Q (p![_' l[[`' w"[XIL,=|3.(Nu# _ ?p>W3hTn(T(k`*Sj>M}_/bz1 3ikpc0oX')z/`XH`GH'Jni>S4r sZj8( W 1~o4X'kW,G ",HwV ;|kx 4~&wYx1\ygi&)1~C2|> aP(o>2=g(RDL(txX8C4[%} pjn8DqqWA>2]3SD0zuU^E0yEUogW5nK0Uh- nĀUT-  Ă]+}=Y@qZT .k4BgV:d5DV; O52p_&vi>1A~-~%r>z^%lT>[*n[J#_+oY!-ve[-``S>j\B(zo2n_0oC\2XyR8]|S4jS\Z 5u~< Z9 2<>V)|> -+> =diR;8mPO>o>Z3o>3>W>R@8i_83R>?*?k&"+O>d-m> th:.uL >0lXM@yh7e Rf,#>*$,xP>_N=mpSl'jos4iy _#<pX\+Nnz T&\<i[X]$6td? Y%t>M*o _/z>^7hhk3Yt4`k U9}>^/|> tW9m>]-E1s9 /)(l`\&y+da 0o>g0|>=(R>W?(T}U> `)igaz<t>[d5poEW .J, `!7tZq 3&nv-+zU8n8n6vّK)/xKx5{4E1pdg7>x}>[h=_tRyiF 5!xv];ot! g)"5RsS {-{>&&6|-|'}:\X 'xga n&q>[>m_ zL`8nrL!m(x+ '76 o+Ll>W,r*oB:VC3az>R 7o> ~/Xp3,p$>Y;){gӆ@^?w>XOQ,w=;(|FV\(L4 @w>4a[-(y)p_t&px^?6s /s7>Xh,<}i8:Y>TqM#(xF1My3V/r>W~C4vmB6a3/ h>$'swVu @)Xr Ru6IzWL])w/Q7z5nM:t>\/4 uaM'qT2l@)O|&>S ):r(8]s0oM/+ >M:r}A32@>]6)Zz>1 T_&q92&8oMY4j8sM_)8sMd*|$gU +<wAqU!-mwdy+ %}B{'`/}F4\* u*M-'_c'y-Z_/Rk;>L>v<>ii"R <:v +7xa ,>oRL8m>Rj5: kOtV5GS`(<wKZ[o3L[pi@xSp%M`;{lbZx@/yc/Y %4ip6w>>d>>ij>>-k>U;.{M?r}*za8Gl ?k|_8i > &4>W2/N;/x_S8-wM [}- 2'k>>Y$a?ojgG=oKE1yvq'S;j?}$TM 1vI>'!>`?{s)Kx>s.5|V5%9%s^"Vy/slS 8 =284|s=` (3Pq5\ : jBY90lZW"8WujjW<4lGVW#_*kH!r>,u7>k9!q}R!=f  ) m0H^-i> <}6X>[vX@`zz//6~>.o%VN9j%`a7 ynڿ6u>L.3`|lR7:1z`L'>[*cyW;|KF ):q> )p>V@pVUo^9z>4#S(/E~ (~>\7y _<f;+=>U=75rYRj,z'X>T*X>v*YS>Ky.|P82w;>R(v3|RT|&~hL5RC%v2W8j}l>b|(>>g x2/wE\<j#[=zx\8n#O=~ > 1=DXZ?n>Ve9A~U\ ~?a,t,W@,c}>T;{)?l? 6z>]4 V8'z`$.bu>^3DF5xiY~1qjS '+~yQL<?.}@xmkL ;^Z,i`:1j^ye[),xWSB.3({SC9|( 61t>_9\>Z ~5|I(nr>_(r>_2oo2>la.r+` /8m. ")|a>b.Cqe_j.Dm)h:5`+i>gk+=im(W'9vŢ^2'inbU.1yjW#-}>\w('`-x'>v>-j> ^=wM>SE?>_,u>^9*v: O.i ]a@wrMTk'$4 :_k:#(0zOL6}KSY/>x2o7C"L &j>9N>0n(\n >ks*?]l^QH(i\;%xb[u,[yuG[x@#|Zv1Kq/r2Wk>MX@ =W9pT}:;tiPX3(iSW5[>R:jH[7lJIL'{|Xb%oHXc%kHXe W'psHWK8|c_74a|!^3o5 .Z>*?z >Q`'x)8,> _$-w1> 1y0~EjRU-68^*vm T:wl1%L>Mg2<0v1 m`FN; h1_`G83kV}5.zWMq=Zw)X_++k {Nfb7:O]\3h$G{=lp>MC7p^+p>W+j2l{,U5*xڻZ =|yDR|'=3T~2}M,Mw>/(;k1 ,6+>|k7{;>K (>#:Z 7nM> 6Vpt2@-r>3U?bv~iR;Y|Q~kQe?OQ+oOQ!-&(OMO'mi#[ U8u;&p>/-8L>u7*Cm:ru4x|O( q>Z-hv# :ws)4[#4v>1ll@,yiC>y,+6MpO 4F>Z6QsM>Y@.h] 84pMS>>K,~~d-s)>_0=rZ/^n>?rX>g&(|zAqi,t8x9ki^= wCL8lBQ_/0_|:>W&c\Z*4od}i__95vZZ)r>I;{>XV4mrM;mj5i;^ j>zN1:1N=V[>MD.6yK>Hg*c>x*R1tYh YB4u{b>g7`+3m4rHYy.oW35m&rL2)vpWMa=:v{U9:PqU: >>yv>~`3n w6nS5Z>0q^Q  <~N 4 yIc5%'{W3D'7#pD>v.o)>TH)mZ_ &T[2{+kOk`$>}`-<8}`+Z_O>=n W 9z>Vi+{L5D:1'o V M1~>>U :jQzd *i>Z4|'*qz >Mt8t{inUJ=`},k)(0}7\:wnLu>qb>U +vr\ 920(+x>^*VApXs*djQpaE:i6v^ ?i>!?{9> 'fr2zZ )kjBd&Sn>6o>6.uO>[-q>=9.z78pn{>=LhxqL'hs>L"6ooTH'ZmZ%7ItMX ;34t(2*|Z>gT*sK!^*k>S&{'2~S2~>R`+keiRa+yyl^+e>z8%m[k2M -Ko[k3M2mta/>o>sl36m^?eu>d(2iZ-n{>zM;j}'Vc='| 'hbVd?Vt7T:3H \a.x_R8t 'qc>[J/z->b1> '+1>_g1#>0Wx?hV-L/@-MG@ ;v9w>U ;z{,{M3}iSA37r S3wQ<О842s\Z;ZipMG_<uM>k&,o|S{* x>1v^S w*Gy\)u\3Om5 {8wzv=p=>U 1}>[.qvdTT2G_^8nr>_P.x8o|>P^=pnV5rs_9x>m?3t?tL_i2.h~S^(hiL])h= 8_8:tuVV(:h>V['rSW6}ms6S@r64 kJ>TW4>[s64jY^+\33vYY+`0?`o.>U=-F~d`+N,h3>S(4zP*]Y@ n'w%<(jr@ox>`/q~k>]1/q>g^)|UZE@4Q= jv0>B2yA>_,y*l+><^(b ?)?hu 726t>\)u 9)m>y )2x~oW1lS9@(9ok\ &j_v14xt69My6w>Lw5o: .,o7>X| A)xV~'c&ɠU>zUp+k?yoOS2ZXX&i֤T&֥Sa+}@> 0?zR?vh4w\s+w];(p3O`Z 8/uhZ3=| QZ{?Aj|AX)zw )dp>q3>V:|*y^4;i>;+Y;F0Mpi3Ksb>Rk&)ik\)&,wL[z;xf x=/>Y_;jXPY`2khS .8oGW? ~t> ~C< hD8W/GlS-xi>[Dd*$tQuw4g*%|Hu{/-BN_@> C^&ow> m*RR4Et 0wW>KN6|nsY\.'_.8>W$8h2|i:1-}|*N'5qw8B25q> tI(1sz >iX=zrn |?C3uux`z+v>X #:{EYt 9x;pl6(u* 7,Trs>U[<x\+ t>_-j*>8y)L>|$33RU&ray^u9::w~LVf2m-~T/tpyor߂(97M , N+( ;   *gh (*{ &.dQ^!#)je_!%l%gx'3$s{:8'N&;$H.e,C!$L"ؐNB'O+.$VY${y{&**$a;.&&1+?K&%]%(N'2'6%A,)*"$wc,-H$9 hHWQy#+ ~$\T"*Ri*ԡ#*4 ?,#Pk4L@,Y(+x%I#C52,*)d&,"-KCn V[+J&N,}2X)G-O4 "9Y(Z) >U!LFY5y".^-3j,ͤY[ 9 i*%I@(Q$~-3i$bY* G o$4K|>)@ Z[O8*(ϴ-U "ҵ( z'Kv;&C*(T&im *4: -o$X-z$0GC u(F1!v,0/!Y"Ys v$u GDEdK2gıI M5.Z+N_V3(-(cҳ i< K֩W Uf#GWWWWW$M#"w*$M)q _ "q" 2u!iI%=mGPs;! 'N[a +x XR (D3)gކ.] i K1GUO+<(cJ"V H* 7 E3; "@g.E.f+i_B0g!i!S*T؞CA+6+ܮ($!O$*t#~$9[G)&")p E& *;!$E*'",V7WyE+<5.I**,Y4$d+l!Q]/i WWO%'n*UME Y.?-M".-4Yq$]uTS,F !)/}.7$HX+F(>x(%BT J6 n-F# !0 Q$A!x#*lL+,7D(J-ÛO ڶ$J*+S+0-6*T>-,RM.*=%ӣ^R"lu*$E!0p&tjz.A&-H7y$w N,Q(K+U(.-KҫYɇ;ʓNU"!m%U2 ?u )U( -&mvz&0":~!(",3+(8m#KT/w&OPr"?k) vވ)O#"Cb$k I w4?: W=}^DB+G&!pv Vb&) w(OQ.л5+N Zc*"8%$AYkA%hF*a&%*&+"=&;,RR-0( < 'P >$+.* n#S-K9-& +͇,Q+4#$9z(w!' )<-1BV!|#%  +Cm*I¥r؝.~s,#9 A_8&*&T`[]]Q*0E P#/9U$*$ @7&VM-F<8 W&*:-" 'n j",=U#*M$wp)|Bn:2$ E)TFI*>'2z;$Fs,Z7#`!{q#I-$'='F l&("K\.0R$H*lӢ-Y2E:!;!0W:K?rX%ϕI uH:,BcGw%BL$R'&q;_!K$0($*~IK*7I*D*H,X!5"=&-;*\w *Z+Є}y  eO->~&&2= ,7lcMZv*&.&g%$]H A f,)^!'%lT T6%:(fR, nG.Z:bJ %%6n' D k hM=!.Fm([? +([+ o'-f  'I(M'{&8 & ([Yr 9$n[ ""CS,Hw\&Ux:$c8TU'U*+L+Q+,e j H!gB "2\ '9@ &UiQ) p%e99%99! ! fm[g)[%![h)1%1!:; ( Bc)6  S   Z%'yY  B?K)+,k5"2߄q߅߇  A7/ XB# u׷(wK~Tki)j ))+8: 8 'fZ<4# '%k([1*$AN(RC)",`+'ѲN I>/> J> N]4r([$.b.+''t!)5-&U޲U) ,;Fs([7W"p w)i Z2j) |'$c %˜ 2'fL.Fu4%O h.q([8 ='f< Q= Hk Zh"2J$w%0Rku (([p,H%%e) Cg gg s g ZA h+q !e!V) Zq 3 ,s1B+ V.Fm<%B?Bu&{S"([ &Ut U'@%{,;: #( +)=/d$n .F ")Iw~o)׶@ + eJ,Hi%$,E,,H|yT%<\ "}LSq pq 4+zz+V N%W1Pl 6)Eĝq([% 1)&U'$ v y Z~(3 $jy c(7Yt(Ѷ +G,}xm),H![Cn3I)y* p X)YAF'f\ -@ AB .N+Q?1) #+u !Q_J!|:A%; x(` eK A'i-. ([$cp 1'gz'<)6D+&U  ^&Ul!urԅ!r^;)6 iq & Da,H '7+ +'" }#v ^&Ux$*-x.FD %V(-"m '!pU/ 'rw v -jN U~%[)%Q\)))!)~U([:/   ?"2"%h +.FkӨA)$i#%' %8a}([H$':Yh,-7u&nYe!I '7)$ k([V Ĝm([ġb,t*-y%͞1 e*:   /s \ ;ڌu2H%%2I&;%ڏ,"5Sx[+kO?04& 9X3([[(%\([;N0q  1)D7,H ,e )U$U%H4@!Tùú ,%<8< 6C) Z)('̲ X Z"+'(F\9<B,HL5'yD IyEA([MoQ#D,@B!Re&UO "5@j4t3M1)h}-,H}k"g-%~+([N% v.F }G#"2F,E {%X 'f*-m GAr,C |'TL([)ө O~ ([N ([O?('ac&p+'!% +l'<\ C$0<'fHlC\m!7]+K W n*x-1.F<0 T*,;A:{ *(Z-./j,E .F.," c,={ uNn"6|q9<@`>ͣCFOK- % źvtU!u%!8I)Jd KE-SyE )kKLt%Kw;$cQSu 3J$/p2$7&%7()7* !~X4&9} 'f 'f7IPV%gu 'f<) !~a(A ) IWFq8$q9%$o+aq<%.q? (%[ +K&A)%WCY!FD 0([1.F )+UIR rR> %A H,nD+t0@,,`{, E,H9 k*rX,H(8{X ,.) `4$  U'fϙ:2+# <"G"EZ.-( c#&)p)R'f. I([ 0'f0 ,al+'Qj/('s$cMb}Sx%Z ;Zo)&U%= FMVW0,H`+~2>H %>/KO(, n  Y,Hr\'r]R+AV !FV<&Uy- )3/v$@@n+e '+)Z]+|*-Hj'yn nF([ f(iy"2(Zo7-) \^U==f%NK%NP ([NR  ZadJ"qF/+3?+ _ ]'KU_ Mt|(' SM"2 &Ud G(~y .)O*'f*- H W)# ~+aq )6s J,; y<a,[ ,\Moj*-g2 (ݞUݟ $e.F7+o+c (vj} -.)=,Hz.f([!N.FtjV$.  UO')O)DO,c|d WvfLmu"!./?)T "2T7`>(_=<+)hL)L&U2 .= 'U8 8&U&o% ZkȠ%4 0k!0H)h}Q, q"2 FjW0Oj= ,;6 NL)NN9):( hE&Xq %% fWW`<?u־%ֿ,Hv([a %S +kF([]$Su6F]'!y%77L,;  b  =!9n? ^,HwH'lQ,T> b'fз23 g)qlY$e&U= T%W;!,/(Zvu!1+&UNL)z.F thR ,H} 2~y_) -` +c(`{"2|)~g  %&X!J)6# 7uXW]XX~C k?%e&h 1)v{ Es %tk} L J w.!<'f?k([l, &"5E gUr$q i#$u)-k,H([ M)A$&U@e%%b%,H+Q0+CX% %_ ,Hmn_-p)F+*  m^c+m_*), Z ]v>'fOw AVh B%X r([*buߤm ,Hc* 9K *-t "peP3k ZD[ TX+"(l&a0&Uu   6@ T([[.Fsv9  _eZ^+Q $x )|"2$)$a5C?$2zD a?- Z9 $cr ([Sv,HG*-{:R)2S,;2 !m"([+-!UC*+{8-¶t I.u([\,!!"$,Hif,H!-"sk'b ,;./)8!!7~, + B)Y CY EY-G  d $# 4v!*+'E`!- U#tf *- O  <+"/{ ,@E&U qn=&Uq)!((( \uyk9O)ɾ ɿ!$ %%'l+ : P%m&  2)ҝG([ҞT"G~.  m%.FOd"2)V1vu&7N{7Rߦi& j%sqw 3##,H3 +gÈ1(,;5L7Lgv, +' dq}"qq Q̃ %'9Wa99 )IM M&U $Rn8%4([1Jw)ق- Q{,;Re&ht([-|q +! )N% )Pn%QO%U)F - 1$p+':)e),e%C&U&!TG!T([  ~<e ,Hkh*kn ,E;([G#)L (&Up%&![:'a !%+,H'f'f   1%$8 Q p!b' f,f}56+g1,E% 6% n!7f^${ #5!hF$- V!  !|z'8.Ft,Hy @'f: ([JS)b%+8KB ,f V"2+ ?+]y8&&r 7M7QmEr(Gs({Ht!I!@$%'3v (Ux)P   +LnLLKz &48)4.f 7/ V ((Bb('[ c&U^# *- Z1O1P+'6 (Z w$c!'Rb5t))k %*<Jh-([n2e6o  Z6p(&UU6F%5S+' `  wU&U&w  j=)d:r([*}*,L|CK&e,-+L $)1# "G%Y,EW Y(z,)D)D- -AN0s  Z@0uU"2O)A+$j j"0u(`$ }4+jK&U  %%5k./# & 2( &ʼn PGE(%N "GΡ %Υ$+ .FKA!|! ) * .FH306qi'iHC`CC$cS Tr ([Ts WFR.F:y~pz$~&U)+T& lG b%8x !8y&(H &U]./' /} +'Yd('d%o 4l,xS+.Fhq &U()H2] 6"o,u  Z(4k _%.d@k "J,HS d& )&Wo"57 &H> *?!F, Y|"2-.)D \`,HOUI1  -[l7)ԛB,, 9&UMBVq-I-%"4)1j o8.F2dF+HJ + ;-Df-,?D-[A9"r&{9)X( +(J & (m%,)Q)",&UwL:(37 ,Z 5 *<}Fu@ i*; *<;+Vp&UM)'k$8z /.F.F5([e(YY([h) " .nn709_bQ<j5h)  ^+sV(NE;P "r!T NW&oQB@ ('5@)Fg֔CaFZ+OeBH*r\j(k#4&U_)u ,HF,HpB \g ^! zy 3& Sy/3@&U3, (i%Ћ )$./AC]"2 z>E}+.a/D J1,>.  e%)B3"!B4\B6R*Q([Jj( )[?3M :oB b*y/  6)GB/ $] Z4k?(  +rT5'/Y./z\xsl.|!5(Zf 9`- ' $GG+PZQv&U )H %K0+suE%%LI g4+x Z(P,H[\'y`WS'f.6jHB$Y,;Z_ < "2*]z );2)T  p): (p@"""pF!3w3{&o~ a Rk6.Fk % uo~e/ ) [([P(5P r}#';&(8)(,HbAȸ>X C  T,H m*<"T&UbI%Vz +,HvZ?-K%-X+a j4%  %ޙ*-{w Iޝ('J 3[(Y%[e\ =({a &Uk>+ot&([> 'f/{v, ZP&Uh,Hi+r ZϷ)7,xfb6"5H\VWY`p 1([# R!I$(h#)$G m *8 %;),|G Mg^&Ug' I-G.F]'f Z'f1F!$#1 )" A./x'f v%.7 ..8F$,;b([(&N+g ]h+)&q^+7Vy+!Xxmx+q '&Um'f"3u'fD* 'T .([T *-Dk Rd~p :\ y^-'8)p!R%,H}#' vG wT x1 n11o*- z1%R, D$M) AїUUZ4-= <)H 2) ޔ )ޕޗ )EޘP{qޚ{s )ޞ"u6C,Hmn([U"%-"&25('2= $cRCO   *([ S w xr/,;= ;ck F+'K'e mp{ *u2770&YW $S nR}0C@kec"]"W EYt+i +u +v.fH,xJ,z([lq w /!p + .Fq~ "wqK5cw`L([V\o >!nso([5B ?,&S ~'fi,[!g .F~ /\)7&U3%G*([ !Xva$@g([Xy mW m סW?(&mPc%}iz./ P+L!S4'fP&U6,EE69,;1+'č 4v u V 1A !7 }uFsa^))9 9"'f[7[:i'foxu %%%'yD-6@  - ) *-> t,V$'-?# dAl"J%Y-([; )K   U3(_3(,1"5z+l &$;,H4` qe  t,Hs_s7!nm()y!7z ,M%Rٝ$D#١E%$(%n5b,}y!$) Y{KVlm-I>>)>A>C)6*'fcdg)z<{ #  'f)*\\ !ʷ ?aXy C4!S "+T2T5([ < SN;.(h'z8B -H,H':Y&h7k9 ; ,Hx'( v+6, q R # y&U$ <)&UC)W'fX% Z#&U !y!Yu2:BSe$L)E#+t!Z([ҹt%Һa.Wca?? D?" n  +$w&Ur)& )./rx7lmu (w sx%%#)Ed "yCq+sèlO,;o l<W.+.,zF$ 9++% !) ZE+a3$ ?&Un)1m ' ٠q'Q)L(,Eq"N*p%j+- .  &b>%-' >?~,'2klY% !G-6 G WW S4S)V))"o c(["r  d Z"u v)26wUS-9 "T:P.Fk u$,;= f"g/&U*z@+zB"$},H+%J 5 +n'f6:,"!([] {+sAsGsB,"2C, =eBF.:Bggu 5 u([/ ['"O+ +vW!2x,L *-  !0:)Kf_,HfG3a8%7r !*k qd$n  R  (`w/w$/./ >!(([!$% !F4)vi~(`m) &+([S+".M !q/c%K@(N %E}!E&+R Ւ Ք Օ -[v7 Y! )BK)R+"21G-CS5g+ 2')c#a:: }b:=#j'f[+1k[  \% &Q& D6V "CKG Go,Wc ]d |RmQ#L!Ƃ+o.,H7%O<!>.p*reϋ7%+ P);L:.F:(n  |4?jw{-<)!7o $GAA) \q``",&Us@9w<%i%ZyoG,b|x([al %F:F;  gAi>-&Uv-B >(`h&)L([ ([ξ)rTk***V :n:K_w)K`!$p'!y([ۏ!3S&! (`uR"2%%&L#@J@Q +_I*-!8&U&U&U' Hj&U: P+n  ,4,(7't~Ey )v- )HPq^u{cT)eS)J*aU/"2[;)$FQyK\%HI_}J`"0K 'f?g `!Z-R%OMVi' ' r)'|X('f.F|YRy+y)6([Y"%.n4  Z#%24DE(D'/d i!u+a m_pW 2$z*!2T0!,;1BRS/UXR:)w:U1(`tU"j  n.F}I,Hs M ([ rR(`+{ !{  F&o{*-W*Gj ZUXA %! ("3p+/R m!w%}$ %L.FA$c a )i Fg= g$ N/+pZ't$%8F>(?S X$n -\t JAv ,;  9< Q!Q%N7&Uh7.Fq%6 ;+w (S ([Wu|(hR,HmS"!%!! %2 C=>wS Y +F)!k6#3K+f(#[-&'> Z' -[b Y!N0)MO$0%R 6*-(  ([$cs`R"sbT([Ч<)Ъ),JIeN $c$p5)5+@%@V'f! !+([1BO9([pkRJ2ex./G :J~W,`l&E$cBQ(6u*"2  XBW.!m,H  ?e?EP0s&UiWQ>r L(`XY#s'A+]'m  ZU"(`!IoQ++jH z 3I c +xPk%{\$F%Q)+hHx% F'fߎ.*)]f,Ha-ff%^! ^+ *- ZwWF{ k.! o&-+i +'8)EI@ g)g+_ ZM ]m&$*-z$x3UB t8Vl!jb &U [%>,;* )Y&U"H+  e)J([J { ! i Z[<%2/)Cj} Yp/ R|[([V_!/; ?N+g (km(iT 3! Hr$1,; &U %*4^ 4ay&Ut+P.F Z| $U,H  &U %UX L!Zk% R=2 &U-=4 g ('Jw& l`9I.FoW)JmJ S0 ([ !%ct#st$9g([.Y> )D>eZI&AFr&H+'&| "| rG.Y-,EX.F XmmB$w([# 3%D@DB ^47&Uu D c8"2LN "I qZq);(['4!7'w,; ; %K DgQAF)Tr>-gs+Q-h&w>(h_d"(([0 %;n([6_C .F{I %|N"Ci N !kr([Qp}*~ ;);   x @%L  f(+f&Uz+'F=([HqI !}Hs3&Und.!+%,UM!Qlv{ [!Qn %Qo,@X([, "}'v,)=0s=3 t&U @5!g )u1 (z!cCh ,;+t-҇\҉'f: *+&U: k> #IKWEp_([`"o79'f@U/r1./;)6-$XB'[&Uk*-׾ &$@`-E +H.+J  pi[!s!7&{+8)+S !F*-q([%4u Z4*y('*%ĩv ^  ,ApA%u &U}|{o? ,)b1 N([ڔb([%y)Eښ =ڛ)2*6^ d-([F;Ff'f I'f NJ%v?;= %O &Zo,H7([.08;x;-%L!l+p&'fD@E,UD @)u)E",{BND0a+*!>@ 2QkP /.Fju&Uj-(M> 9B k "r)IXs$@I Uq*@Zm+a]%5 l? uV+g-.Fv~>^>`!J );hxr1 (h ./{ )&'&([H>%6^3! C? A)C )9 $cEZF%T]"0('ӶYHi- m*-I^P n iu([  o-i)', '$c '+ S4-& % cĮZ G@,* (7!  7 e-(: y)4,H{@)8t2K,L8 ./9- !6 2V F,HH-I%B])H" ") J'--([().1 .,Hw?7?9i %OR*-v&  g7"2H tX Lj V#`&Uw#a+u0k,/<.)3'fM2"5-?^   Mu(R,np9C'H Zl) ټپS"R ` r+t67> .F) p"C-IN Z& Y([G4*-8%./D>:"H  n(`D Vk$_+!+,T"gӹW(lJuLXA (g%  + JU(T O*-nX$0+x5{([AB5aAE|[{+a}Y$S?UNh%C **_W9`+% &U % 5+3 5([D>(<! %SS h#*H_*M -~Q*uh)d %j!&U&U !6 j!g2([H ([X'*D \@{Po%^ ) B`! $@| Zg([""22@nzE:Ur%M 'fE tKevIm!'%nR!$X.'$l }N "0O,;)([([J ,He[ [YoVV&X5R X)./m)Eh) +ly)?z$? 6([ ~nG&Ϧ >'f=p>([;; ,6'fܐ I"5c!lV ) #!0 ([AA Z!F(%4TJZ+h'fZ P+E!z.p  m m7 $%.YD>q"2>  @\ kC7([GeC r([KXf"3fvu=? G(Zbv&U~P([ ([u)P%N ,Eu#!8 8<)ENI \ u+IV$y ', k- (2P!Vg,t+':,;ղy=)NXN].B )8:Z[+eD F +hST (['! 3"2ϥ-E~'f78)?([MW HI G xYK-)nF)#94-G([DI"5D'f= D+'Uw%&%u ,;,i+*#bM|]g ] "Sݥ'^([9 L9=([_ %` |5 .R30 ,;jN() >._"2 &Ur`d .!+$Xf # ,m" א ]$FnT ;  =$S>I H&U O+QL {lI -z   s)'<n q$r d@../R !jR ( d)ss-.y-/-0'fC I. J0 *|% 0-[q*~nuހ F \"G & ZW |,EE K1v\"   < &UkOM!O Z* w%&%q~{.F ;r P)/l R)kK"9f ;'fae7\HN([YJ?%/%{04%j 6}Q4C&( &syF],f,j"z "=%$Zz e/%*%^Bo)Ew7 'fO}!j'W:[e[[ux'ʡ )&` = a': )Xa  $@+n SPI`DPO:i ik':) %&U,; ]gM UA('G-$ %z([4\| v  O$l  "uu  d *-sD)?%n0UAR%X'f)&%}K!?3%[% X% ])%^L&_x6&26( !0t u"2 'f.p > .t(zOB%O!oa([)h$%  *O,E*6-gJ%;p;*-ij;v(K|o$3)E  ZUkÖ 0#+ X505 .FY%@ 4(\)93&d6$} %i-qR%>}\ *ruٍ,- g Z5O%Z () 9  =&UvvG>.ZND([:PJJ!y+-<R!,U([('$,E9):'f-)'PK <8.%R[([W*Y$*-  !x4 EU " hU l l&U,p4-?(7,v <  (#K$!mMv!j!qrOA|*J%[) D.z! 'f!r"22"+y+ QaSTk6 m':P  Zp=3\>5!hX% - r e&5& 7WxGzT "23"53'3'&Un 3PD] c, % Ô %Ø+OU)+{+uPV  +!)Lg{(! kq",;̎h.7L9 IV  ~ Rk([}8'fA e*P(q*([[1)ERmBRpK$$C,;^)k  v@X! +8 $:,6} f&U$ s m|)m J"[ ([ *-~t'fC,L/ }%y u0 ~ *-*$cz/ z7=%8, ~j4H!/9$ ع&U*-x*7AxF=k:l)h&Uj %R([,%,:)=R([.F|g !%P%%5PF*'f, t%% *$p!} 4)SOUMV%  SS kC)k + **Gu:-~8h KN%:%AfU >"  = "2G)v&+|F P([@/ @4z&UZ> -iL1ik  *s1 7/ |>~& 4Ϋ'fά*V1+ :e3./p F3A 9%| .)oVW4 7)$  !x!+ Y0& ii D&U@)He*-"F([Y&U3 'fs %$I Y(4g!% % , ,F\/2)$W kUX'tqt([vE L L:&%l.@ L( Jr"2[m K+ C)!! "ڴ(CM) $C :+~i%A=jD=F@ ([ ,E.  k\([v &7g_*-~&ǣS' W);< P,HI=$cJ ([4 & ,%w('E@!FV(,JV+uuMG).@K0q.fO  +  szE(z%+z 'fr$I027':B8Dz$o66 ]|)_i'Ui[ -!$f,U NH(&4C&5 ],H9)-).aGM%GNGP u  x)  H *-?([([[3= Q"2@+VEW8%T}&UauB+L ~~./0,H 2)P,Hoz^ $c &U&ܶ ,`;([H5+^7+d,.DY}t@.F d ,H+@  %x+ =+ f-^P&%N(([+q(!U "4"25eFk([ 7&Us`֛&UGc&UaA';;;=j;>;?0K([K mm-f ([{,f&-7 WUV3"4U&YY n)!aP%+Q $OV'f"2MIMK?V)$ ]z u5_.FfqFmsU|l Q3([!],v[ !<&M)B<0>l yj./|j)&U}&U} JJW)[[ 4+h&6.":,;)GS"2 ./r ;c+K _6"5<-cF) pܱ M,;4L)|{)].F"G_eUU "5A ] %G-T_ +w %P_r$c0,`oJ0.hFo ||$ ).?)+'֜0$vx(pN2%+h %ryL)VF([K"2kDpJ $ -#MH3I p#N oFy +ay&UyL)u([Uc#'f ) x@ /p +%)8 )1}I."'fZ6$x"5_*2f$c5v\} ' *-h\ DuU2""gޣޥ;H]  %iV$w#x )2)#S$&U „kb-Š&.|E%G t.F /!F} -P PSU*V)z`*-r(|z\U'fj !{V+ &)nK {! ~([ji*-d&U.Nc UDlc, r$S(h MJBzK~k-:Ubݼw( ,O%}!Nɜ 1"2+$@0,F}L) !%).@gyh ,Hrt O! Nu'f7G.XX@ װGpױM,H ! T2 Vh)T\'f^%!l\`p"5# !%$"؋&@ {*7dQYw= ={x=([W%}g{Tuݾ \+ݿ ([EIEC'fMV$T,Hm jv%!R 1b(M K'f!,jot R%)=/~>",E\([]%\ @./7_[j%G1(`)$/sz([׬ w,i)$X YiA([ f+L(  LX)EuQo b&U 5 8%E7w"2UxU(`v R) ~ b1#u:N+'xR3 R6'f  $%) +tA+&h}%A )J< J?C JAN)k[>!([%ڄ +6N L W+ + "27$P' %*- T, q xK2[KR.f,HpG#MM3 # "3DwH(2 ('ó/v1/+p E0Kd)_@".  (7 (`},-٧+  Z٫r*m(.)V# )-2([-Cr%"tv%%x) Z:,-+ TDK%0ʿ)"K,O(3C+6XC#$_k-&*T>[ @ #u&!eBDF%  (:Pn $3! +ui'ga RHqjl)A)4 y +UX+%&U+l!,k(=s)M Mk"2)5, -+()!A! C!2Bڃ n, YFNj 49!jk BZ'f.w([. k.",+.s0UE !&SG)_|0 2zG@& 7)G'f'f&Uw+)j*y+'+9,`lGò%z%QF,E([& (8 N)O PPR!)1v+ !٩)B B  )R+aUR 'y3r%'f&t. -0+'([ ,nQ(9h$O;&v "w5-{U*-{$R'iK'(["H) a  !W 8TD'"i(`DE BT([&"  zF܃+$ ([8T%,H@*#U 5$@)0*-u"2QQX%n?&U}Ec!&$ch([(%2)2q 7͍e͏ u$9q͖ )F?HE+ "N  \Ef2A([9FF2DW)BR([,ut ,1*99&~E5,HQN)? () )ۖ,;7| &U)'fw "2|l,H./U2h/@_+uP|'f<]'f "| j &U9([<K,n'fMA)M _+F([ %+44z)6 mDn Uc,H([S B y =)58 t*}:D x)IsE%>)[._6 !G &O  (UX)ƍ*M,;.([.c+b t.F+|_\%z 7? XLA$ "`$4!DD *-B)z%A1#A3 AA4. j*Z( (./D  }D3.FL eV5.D+< 'fFA%Ųt!v&UJ l&( O D d > i_!C({ {([aC&UD(%cz.F%f./_ (f"&%D5E : *!@`@bv1w 'f>)] $i^ (['./s>(D&U8 -C$n,HxV -+xX-A- EVPmy՟f-p-B= sT({NB 7(([<@m c2%34%oX F[0%_=5 )[ )[ F2E%\'f S>J - ,[!R?m )OmJ^ r}'f#6Y.+B#'<n9$n<#%[k#gE+h )/l([Dn+ uXh!u,P "0.3u#v$%w)b( L]*-q_ +p%EݖJ([IJ-d!Z!!!7! o&!" B_R   z(At^m u([u. z+Z !c %"2M"26N 6 )f%,5)-+~ \{[4U+z'f/%q 8&Uc$' *< -}H{A)w+R %% q"jP+ s na)ENC$o* +"&F (cu gF $| \(7`V%w+'! ! '  4;Y;\$ yZMu\+ o! !lm%yfJ&UW A.F lH3 (8Y) )Y* Y2 &U'n; O O@`*Q20k3vVi(`fb,Q L"G z"2P |tk+"!Mg.F$ݔV+';  N m vk1/mI -j)B\&UkRN$j+j aJF)XJ +V-oJ k-o)j%([$ %6H Gv-%XK Z2'| "2?'^P5({[P= +i^} c<$L9 5o'>/ # (sE $u=)0e+is,nA([bjRAjSn'( Z+ JPoYUo[ɵAɶ &UyjS .3U63>FQ-  ֵ _.^ֶ ` ._-vP>"~Oq ([O)hQXcg.Fr;U+!#([|}&Ub[)y:&3 -( q%IH)DLIkDO Ok.NQ Q! ЯD} mQ)%*&Uh&Ur+n2(`)x 59.FlU-qF([-r('f> ('> jX%N w"I))k BJ J)"Ib2  (yz&Cx}&U! #) . $c|_u,%f'f/D[/IE([?+"9$c&b |([ DeDMU; -x 4mx 0([E ()U  I=? /(M%FM "g@Tj-p b (  R9 )|([JI["2!p|!q%o\!s!Fo`  T *-*-~m!%Qj .FO!jҐ~&dF%.cq!>T M)Om2h]$ߛiG0^d? \-m([ # t DJ T $'f x &Uz/ {!BE"!  s q,([i&Uz'!o  iZQ,Hg ,@y i1;lwD (j':: ;!*<&U+us"N-hg?? Fe6c<2)F;+ ,EIW 2 %*< Cr  &*~d$'k.F 'f !({))LU.%HvK' /"cFnw%أoa  Q;,He,H#,g-q}/1 Z=>3=@, Ms([..F ,;V YF5 #G!VVdV~ ł$p!(!t*!v"'.2 Y%Q kS?) _&U#"5:&U~'QkCr\K;@X ,Hfx a  *"hpy{ Zi )7B7C@./t x G)G S*mu!/ P  s'2'is*% &  >"TQ'  Ĺ +  + -%m  ,%1?''y2([./t),%cKJVJ]R%[[([[] -!% ڢT(`'fV)o :'fp2Y ])/([,;P '&Ui; &,L LL Np Upg˼ )˽ p-$=([PD)6D%!([ 1 ԑ 3 ZԔ@%(O (X Z9I%~o 0 t'f _,m,Hv)-b)6 % ?([>m*<!P( h hE- E(Zr;h*))c%! %",;w)J$)&$ $g~i@< &iP $)%)p1%q u-i**%QRe" )\02+x:3 RI('fER) "'fl z'e-)&h G? ([ !,H$c{CV,;)A$c L&[Y $%)2o N)'f!+'! O$ ([2a&r4B]$c/` V")'([e)7w7 ! &U&([#f "# ([3)  "IJ&U=FG$FU;a!H)   l/&U7+a8C,&;M "<;JM CM=w  G.f/%%(W1+'(Z s&{U.FN&U1% l(O m%  +'8- {Ed(ZtCF(["0-%>l R! yFN+r<g'X L">>C'i W'f Th!W.Fu8'f9./C$( LzV9" h#S !""Vn$"naPAO) +, Nzh hCI'f͹>%U)3([5!Y )v/([։,(YK+'N\+ ])k %#3'fO ;'o(^R)?;.l,H@n _&\&ۿ" FM,&N |:@3,;@4@Nii '-[sJ %<([ ^< M: )$-z2zvL$pvxnuyezH(# .9սZp  Zz)Rm!R jYZVY([W )!([J[(\ao-[y^qyc'f&"o"2  !j X+F# $+m $pƯ kƱ)zƷ#kKi%( $g) d!j%W  v !D,;# O(lEDF!nd+Ru /.flXkEux!k a/-&>%(Q9<Z5o8 #g x55*-W&Uv$ > o*<J([M$y6&Umk &UP U*/fo%p,\4'&o T "yd"e&%*@@,H U>tgi  ii }(dBnD"J:O'f8sW | 'Z# Z$(^>*-n(`xl4J5C([E Z E  . ,u({={oEr hU,;Y>;?   (5)T([ތe):b %w!cW)y+Cn%[&Ukf*<2 F:'fCA%,CD=&U Z! k%p VMYh.F~ DZwr([p(iBgmϮ)'.-&U|l H&U}7  'fYS% 7)9Rv}&UG6{&V "0 1% k},rM"0g A ݮ ݲ"s UITXq!!>de+:R"G* 3"tt%2+Q  +B)> )(n)OE;)h6!"0&i Z&j &UV[H$pGk$mR'f +P{Dz(D'fTZ  + O,H~  ([W|@v,QDq'f (h ,@,p ,s $m?B$F'fMH!!$a!z%ݬ 5[%ݱ;%EDNE([(,;&Ul !:)!;ZV)61}Bw'fBy%&U+%'f 5+ ([]` $cy-y 87c.Fy 9)8EY]GG$cn D([:?%wq/g&U? PTC-ip F./ixnF "+(`"+<>'f(ea)H r,;_[+n%*_  9x$G4o+'4la E+/UA~ l 7?=Z./XM S([ *q$q$+{$ `!{&f+%99"',HO([ ([2-m{+'21nlpn65 "H$*|S`gү8?n.DO!? ) &([04([& ,;&  Z&| %7d./=G T!7JG))['#8M#33   E #N\3k$c&U$<(*#U ~ U -U.f+ 0aOg~-i̕M̘J)E!jq(([-" m Vz + pFyzٓ A 7$)"B+at"-a}<-c%-;!b6%6 W"$% "c /k%T*&.Fk (D$2;3+;i'L3-=  ~&))% l)':o+ O89.F4)E\A,HE'Q)%Q ,,jT%Fs4F4Uih([:{u%,+ M  M:M3%s}C>q?([z 5))+/"F3&'fS[ -m+&+-q:r#,;w<}=!> X>>8  )2Q )'h`X&Uwo_ ( `G <%M  ,HX%rs̖ NEi.= QEl./> @H-l &Uv,1`1b({> 3#&YR{A+ )++'  a#  "2 'f+]|0[([6(+_ u([9. .d$@ +S -&O .O+3F*!+ 0;)L6X-YmD r Fe"fA ([Q q.FS!<U9hb%9n9q ZIX(./x&UO &U&Je !& 'fO }!%A&h!ε ${%QQRKm-KX (U 3G&OTTf-uM @@ PH(^ )KX=s3-s5J*T+-G([ I$ "2$S V5& 'fV31'l' Վ>-o([: bq*->@ FA)% h&uS<+')[[&U([r([t[&ULrt '.I4o%'fCz  (~f ([.O.FNO{Ek3H! ([H)L+5 eY& % aw * mY'4 D)E9mD s+] +Y[!^y,O_g7ah)zd"2݄(|݆(~s\z  O )! <,;^b&BG R([t3]([a,HtN} pu-u(7-+,;O}{9'{ 'f6G_"gUi$ID3H&T~ Z   4xT.Fsl(M<\<3T?U  \a8]u"e,zc +f H PYe%|QCT^0e)R(Z-'A.j$_&U&+h0 h3,H]e*Xi,P  ZI !6U֦Q+MbNkbC M/2tp A*xq)*{ ;ES)6~j*<K.Hr)=W"L ,b )&]uH"YYJ oel-D+p( i (|- |,?!Aze<'-D!"%c 5%E}lQfm"2! C:?q- )RR,;u ):'f)'JJ# #'f &= ([&>(['f#%G` j y%/1/3eM>?CuP&XA "2 r,@`)b+\Xu<kyZ.< 9# L)k#ܽ $zf 'zg4U+'4W(@)P l.!0?e ,HjG ( 'f(UUsv9 @9j# (7Z  ^u(%uK,; / 6)>([Fxf !e֣% v )s+'O^*m % &U [&Uh}r})| ߆8.F ?+H.Fo.N)R%3 y )3(D5|"gmt 'fh \p !0  ! !sZ,Ls^'He_.F` egn!xY++a\VL'  8-[r-\g+_ia.&p(>c([w !0$([޴+U|qU[8[[$| 2XV,X)I2ٜ&[|)P@ckcNJ9*э2,̉'NYb:.#+6Ie`A~"R,u2Zҩ,)X9LT*"$ obqp)Ld,@vK"M5)QC') '-K)yZ,$w'Gk7$Ў>4=)ݍ) Ht<,G()7; [&*&Ma9kPZ)I()cV-//9Q \I3!YUWs  ..V3$# R3 T"*Ɵ(J k&DBp"&++%1!|m GTb~BP G'5G"C MQVV$w,)v-K"yOu:k_P) z ~ ,(@%JU,%s%+&2._96 BG.#=uO-5/Oc{&C$jQ|t)H!$  $26'Λ-K,) &і9e+:9)7, p+$w  O# *,%Uo,,}*yu! & ! 'S% &+w+^5K'W(2\gY:iO 8 X$ن,\-GGi W#''Fl ,+$n\FH>o ƫcg =(Eα$$ M!z!%I$BO-$%@)^#:܇(>[4" #L(8 @.m9.*)TOj07v5 Fr3 <' ; ?s#$i",'%e3v6*O:6%&?(#2'm-?*)*Go  A  , ;/#|)!A#q "!Dъm3-!,K#F**4)r1 L )($L.W S.0'O W K (X.V+ i37.+(cZ gg5 !Y@f),'y&&| o,<![j$<{^ D"$.d m!#do##%  (Nb#!f[N'L'.cH xvHr Hfc"Z-<,6'162 b3<+-8#CMR%yK^,4OfN5',FE*,."td:$NN'%};8d"`&*6?Ł5,1VloO!F&,98[K(3M <7+ K.T&&S<- .k\ڇ&3 Is%+"[8Z%G̮=2P &.%kh9$" ! + *Qs(.W%&V Yh) (%,=B +y  cTlǕ%B% ]$y-5*@*~>Z&R-@&V r"9,^1.0K  P(w?#x.)|Id|ٚ 0-sM,tB$*!g&c(:h!\D%(5!"[z*.--9]κT)wY,MW&"R)@l5%,)d#4Z U8ߋ 4* 5#}8Ho.*RG*I0[[D 7*, &qC"Xc-ǂ %X,' E$#)yvO1#ZC3#a*=$р-y'=.e b.l"? =M(fB$I D%! W(_SrTz) nY9 6*_) #S*HBA$S1*l/.85kV w.PgU|8U.,í)$U٥"y3|H͉i!o1s Ŭ",Kl%h[-W J!'ȑ&N U9R%# 0%if$ʊ&^+[M.T.L(&> 6"E؟ @$wD&*$);#c_2HiWNj!{RQ/ &H-Kh w  #BsR$ $ z08)s #d*,C+<5$ř$"@9!P!Ռ.Ju" p.#7,QQ(&,9<w+&Fu$%EV 4O,XZ3,ެ l4ns'Tx(F#0//\(WJ(ϵ }TP*y  F>&X("`-MϭZDXk l&4- . )w+}@"$)ClT78ljb+0 ϲ)QF&HN.‚xژ["}Tޱ7۵ ~ݘPQHBd3PL݀  ۝6DډV=32ܻ5bXځpSp(݁qޘEۜݱ= iEڦ--YFY܏=r9ޥUhڞ#ތ*۹bGQN7uܬ]}S݆HGWJLݬ68?^H*hݡڳhݲKjswU!ܾ<ި0<% iT*۪vے/KTڪ3Wk3lޟ3uI@0n_1YUޕ_ۚ6ܔ&<:"W9?gU޺q&]އێ܃ܩzRcU]Pބܺ%;ܢ42 Xڒۥx޼ܨw7|klzݪ[<Dۦۧ6&ڃmS*5ޚSڼz^۳@Ds'' ލ6:Aܟݻ܅PR.vI/R`ۢ"-ݴ/Jbܒ'ܿ}ږTw /ڴ<ܹ ?a6ڽPl2#x _^akQ)}*چJ  ݢ.Lc\&1܇ګzjZWܘwCުN"(ۮrܦޖt`~ݯC#tڈYbMOmoܰXbcCW`7޵\1SP$rOV۷ۃjTމG(Y޿tܫeu݅ޜcܖ܀*3ޤviNzn-z*>mOoc޾HLstl܌܍|݄U B\?Kۑ;ݜ))5#ڸ=@*ݔ4ݕN Y,_^ܴܵ<=ۆ]}݋af{ ݾ*!Fޭ(2`ޝ tݖ$LyNtR\]ݮ:/(#!GImtu;y08ޞڑv!_do]]$ڭ{|ڋ I޷A, dۈ1`F1mQM.% )xޠDyۍ+F.zQ?݂'ۇڙښ>$#ەp'ܼ/BKHܚJܛ@ݸ ݹOڂyۺ ܕdehjH܄d ,B^b܁.mU+6T9pufEڕsې+#6_cޅH&%۫%&Cx^Xۘ7D (ڔqM|څn. |ܷ}ܸ*JbhH7wIZ[ 4 ܑw\7DE=Rީj #$ހ;݌sݍZj PXg8_ۣ6ܗHiVS~ڍI;@ڗڇCݤwFuCLM9 %\܈'~2"jv-9@vnfڜڝܣK RݟKS(@U3ܮܯx_TbWވܝsOۏ8ݙ+{SVkEEFޣAgxlGۂl޶ ۨB'Fg޽GpkKގq܋,+xڱ9ۻ9ޛܳ ۟lQvgڧ.0 3ݫdeܽS;ܤQ܊XX-ڲn8+{q`*^$U/ojڏڐYݵ6ݑ*I+K-k 9|_k l n,J$(.ܓ:8v0Fs[۰)<20܎ ށ۽Od9ecKLz,5#݉aAfM1ݷpیڢfۯbWܧV[[ ><xDrI`XuLEA-aܙ!%gzڀ8܉cGڰf۸ޗڎۛPIݰ|ںHR4% TXڶ:?ދ<ݠ4W$oܱܲۄړJh۩c,e58ۡoFA&YDPnڊZܐۅJ65prFqrڄ4:Y۠f@  ޮޑB7UoiW _'uޏ`aD޳)Z5-ܶ ) (ފ!5  ݝ"ک1VWv]ކQe"BKAfBھݗ]N}ޔڌ޸޹Bޡ<!Vmܡ+ݿJFuO1S#޴݈ݶBe @qAmd^C۶oۙ;9Zw`SU/sn0۲ݣ]^{ۉf ޢO~ݞZQ}ڮ{7ܜE޻JR*\ޙ\wm۞[ނqރqM~L>Vڛ.e/f#ސݩ=4W4;>CڿPc4!݃=Yڻ"d ?qۖ ݧ ݨX3ۿ?CVW 7k)ݺ+ݛL.@ݳOk^۬[~8݊y[zNg7XfQc3|\ ޯ'1 ޒoۋec^܂Sr!TZۼ&>C^ݎ ݏ1kJ Y%&Aj۴hbܭۀہ?]L#$ڠڡ~ܥ`aO 4=Y,o<Ssiݦ2`0+ۤNj޲wAB/yX  ޫpVڥݥ/acۊJhۓ;gTX)گ}ygTܞݚެfܪ{=~Fhm-r ۗm5ڷyTDEE۔rZgG܆sy 01Zz[a_1ݓ5ۭ%M;[amhܠGHIڨ~ ,݇Dsݒަާڟ(ޓ\ݭP@e >\ݼݽAVxP۾MQ yްnڬ te2Nڹn(lڣڤ۱tڵ:7{piݐ e>&){b)0 a0 a0 a0 a0 a0 b 0 b!0 a0 a0 a0 a0 a0 a0 a0 a0 a0 a0 bC0 a0 b0 a0 a0 bL0 b20 a0 a0 b$0 b,0 b"0 b 0 a0 b?0 a0 a0 b0 b0 a0 b0 a0 b0 b 0 a%0 a0 a0 a0 a0 a0 bA0 b0 a0 a0 a0 b40 bM0 bG0 b0 a0 a0 a0 a0 b(0 a0 bN0 a0 b@0 b90 b<0 b 0 bJ0 b0 a0 a0 a0 a0 b/0 a0 a0 b:0 b-0 a0 b.0 a0 a0 bE0 a0 a0 b0 a0 b0 b 0 a0 b%0 b30 a0 b10 a0 a0 b0 bF0 a0 a0 a0 b50 b0 a0 b0 b0 a0 a0 b#0 a0 b>0 b60 a0 a0 a0 a0 a0 a0 b=0 b0 b0 a0 a0 a0 a0 a0 a0 bK0 a0 a0 a0 b80 b0 a0 bH0 a0 b0 b0 a0 b0 b0 b00 b 0 a0 b*0 a0 a0 a0 a0 b0 b70 a0 b0 a'0 a0 a0 a0 a0 a0 a0 a0 b;0 a0 a0 a0 a0 a0 b0 a0 a0 a0 a0 b0 a0 b&0 a0 a0 a0 b'0 a0 a0 a0 a0 a0 a0 a0 a0 a0 b0 bD0 a0 b+0 a0 bB0 bI0 b0 a0 a0 a0 a0 # "JB J*K  E2 ER .,7*ŏ,.(0(=$ S.<*&n*$ [,Z7,[*!  O'NQZ%)(e7%J).9XWZ$Z_c" X)#iX)HBXkj3LqJX){I_WPCTWQ7RXk+bX)ƧX)yEkTX)X)+8X)7X)F;X)X5 RW-}YX)PG(We|*X)K(W` X)LeX)>X)IbPXkEGX)*I!XkÉX)6eX)&X)GGcrX)KAXkJʼn1X)9;X)CgW3fjWX))fbX)zKɇWa^@lEX)X)bsX)IOTXkv".X)/-iX)U{ƍWJW4X)!902ĥW\r#a@X) X),ɂXkNwX)}X)w)X)0UX) xØ9X)IǑBWz*zX ƉȒX)d|X)IJ4Ş>~W2~W.TVX)P%±W*CL)X)õ X)D~X)Kg}MXk-lX)ZbX)g,kX)T !X)@/3X)NW X)|W%X)pBFX)JQ*iLXk8X)e`N×X);L3XkJ'W!X)KMtWqfX)9X){#ɘX)bQX)VX)2ȃWIIN W5<PX)YNiX),@X)K'#W/)UJX)eSȳX)7X)hXOŧX)"ŠX)WKX)*XȅX)9FQ3XkW=JWzwX)A|X)COS7WX eX)xK<WkIX)~uX)?NX)xȖX)rvX)`i&W ĿWVB6X)IbWX)=KWO;-IX)#J~fWJW^IȷX):lƿ5X)jX)qJŽW$X)o4X)X)VBX)yX)*TX)SXk8/X)(LJX) bW QX)6wX)z0X),9X),ĠX)cr$X)vfX)pX)Bǎ|X)KL1WbOM,X)w DĽX)tX)WP8X)60wX)]\X)#X)22X)R3hN}X)eJqXk X)<7C%X)8ƺX),lX)KVp=WìX)K[WJcW.oX){4X)5i#'oXkjX)V\X)']ǟW2~X),<3Xk4x5X)X)WOX)3ȍX)yyHX)tWlX)]X)FiX)X)H(LX)3R'pX)X);xWCX) X)p X)qtX)E-X)L)2X)M;,X)BWFIWPh XkZ~X)|kX)ǥX)SX)WALåX)}^X)<%.X)SyX)O X)/X) ?½gW&X)j)dX)1kX)[TW.SnǰX)ı4X)X)1DŐX)f%VXkw$sX)G>ɏX)X)8`oX)kW-\{zX)bn5ȁX)x X)EW^WJXkkdX)iRX)IWEɢ}WX8AX) @`X)X)O~ƎX)},IX)bK*-xWg&)W8ÔaXk_wX)taTX)]J0AWoSlX)>/:X)6!X)W6X)rIWX)<P6Xk(IvX)Nd@X){W5Aƣ(X)F&X)D Xk#3W\dX)0X)BX)GaX) +X)?X) [RɃ7X) X)'i X)/X)&-X)&yHX)X)drmX)CX)SX)IÑX) I`_X)~9X)X)&& X)cX)$KIJWX)ZX)3LX)F`tX)DŽ`X) X)& 2DX)mEX)@o>X)?'[kX)QJ\qXkKy4X)hX)_ŀ"X)7X)8OX)yX)hX)&mX)`{{X)rX) SCXO_K=&y\W{L+~BX)+ |X)aJW1X)Bi X)qqhX)MȈX)X)d|6X)(X)X):\X)GWX)o=#X)7BQX)[GŤX)9XW3X)UlX)DKX):Wk_X)YxXkJĶ[yXOKw{;X)m X)AFX)X)%J4dWZ-X)x.XkK1oX)laX)+*bX)\X)ęX)X)HKWSX)r'X)6X)əRX)<cX)$@YX)#/WF%TX)fAWHazX)I<WX)AkXkuBarW X)16X)H;X) ɡX)fX)<J7WjRX)P.X)!X)^X J{2DWi X)RWaX)Ju¦XWZX) X)f6R[X)obqX)KȽ'uWrX)X)ZiX)_X)ZX)u]?X)s?-yX)X)PvX)J{àXkhVX)K}WP5X)IW]X)*xX)]&hX)[qX)VfqX)ȨX6X)+Wo’X)E*gX){X);X)~->X)X)X)7y^X)FX)9.wX)f-X)=X)X)qX)F¡X)?lX)J_W;.X)]H=X)J>X)@FƑX)}`X)O¢X)`X)X)\X)]TX)OtĨWhWkX)3 X)4'WJpWW,X)mBX) @X)PX)K1Q?rW7FŢ[X)?"-X)2=W&(W^X)=?X)CnOX)vX)|ŗX)bZX)\iAdX) 4X)f\Ǧ_X)SfSX)O?X),_YQWX)9bX)UrXkW'X)tǾX)JN W-c5X)BX)|X)guçX)mN(UYX)-ȄX)9ȊX)1UX)GX)X)ZW^r7YX) NĖ X 6X)X)OȔWOW*pæWKzeX w:`X)KbQX)KUX)»'X)/JJ\WQOUW)ƒX)*tVX)ITMW7X)KjW=ǣX) QIX)gNLWN*eƂ~W"X)lB.Xk ZS]X)[qX)~X)qeFWd2X)nH%yQX)+HX)D<?WrX)<BX) j7X)hU4X)~BX)X)J-X)Z)X)"IPJWjX):RX)}+lX) 1X)dǩsrW4)2&P.A, W%LE *''-^ ,j"Ob#hZWY& X7T xWVXg\73X S{R ZSJ S]9 QTWXWUa S\& XZ]W WxZX>R? \D (XCXPQqS$1X U2 eTt X[_ AWSZ> U ] U [Q 7\X; 0Y> PR8W[j XXX3XWWThWT4 eS UkX V WRQ o X{ Wb 9\WQUrXHT@ WTGWO U3 X$YWY R T1 UMYb)WX XCZ~XpW9 TW\ XROWS]V @W= W[XQ 4\WXXCWS1\!WWWW9Q %Y rXX.WZXCWUX@R4$XrY Wr ]h lR W^S[V]X*Rd pYDd[ [X>XxS{X!T< WR8WXQ Y}X\- rQ \FdW Q\{YyP 4QWTX5UnW\O+ Z9XwWWs{TG ]j >UX V><X  [g1 [h U U U \BDWT0E 7Z ~Y^ X\QYFX$R1 YUWTJW[XUW\| Vm Q .W 9X SGXv6XWZjWUARWTqW] X Ru YEWW/Y[ R'X7\^ VW[^XJVG ;SXK\ b[ XuVB xXZlWYnWTYW\W\" RT X `Y HYeT ] .VQW [R-XyRWR \wSgyXIS WH.X3UK$WUp SWW_[WSZWW V| b\xXWSM)][[#X Vx SV HY/ YWZWWXXUX[I RYu UW[\\3i -\}Se V U [NX!Y(W]0zXZ X S* X7S jR" ZRE W JV= YEXlY@WR$W X XXQWZo WRXA\ W1 TQ cXE Z nXWTs TtQY!Z@ hUX{TM TZ][%O RW@LWU?  9Zcz TBX$T> RZX"[l|WW  WzXgT- aQrXZ,V%RWZXZ T X VWTXo\ WU WS [XJY XZ-X?T&XYTW\ WXY{[k>[X]Ub\PPRWY.} X}5XHWXwTV ]AX"VWVI [ RR ]dX[\] WU^kXG[9; SmX]S m Tk3 [@XZR X+ R| t[Y QWY bX*[EW[ SX3RyO W AXSZWXXv]b]cY ]xXXU 8[ \C W& *VWUX T WVW Z|GTb}~X=WRX$[ X YxSv<W\[X|T yWRM DXSCTEHXG V 3XSW8WZ 6VXUT{J S ZT"_X7[t =WYX X3UVWUf ZXW[XJZ8 4ZXdSVZWZ% Z<XlV"X S\k YWReYnT }V rTc]GIWVR0 Z6WTWTKl Y 2WZ- Z.X\T)QZd YW]X^R7 FZBMWTW[ U WY"WXO i\ T]=WZ; YWWY0WV9 XL\ W TW\P[b [c(TgX4Zfz>T! WX X^UWV@WY Tn^W\Z V iXW'XRRa 4VWXSXWRS ]v W! q[ GW\hWXuWRPXu[! \dWXXlX \WWV cX4SHW\ HS [iw\ WU2ZS| .Z0GR W Qz~R]XQz [4X*[~ ]>WW:?UX?ViSF Xx 7X+V VXWBXA]\ WX'U1XYTZ{Y X# )S IY#TY$U DYzXcZ W X5TRl nX6 WV7 [Y~1WXZuhX- Wg]k [TY&WX= |WdT>\'XvUt R> WWM X Q RY0oWWW [OXTW RX>[ W Z IUq]1X^V6WYan&X TRx~ [S X(SpWR.WZQ|W\ wU{^T9X.WYQcXZXA[\KV( XWU XoVX9QXZY; Y* <W.5\u WVHX{TGX+[[- XM JRbX5YQ TUK [Y[wU@x t[AMXgGWX~x SZ[ QVX3Q Z WVvX+XP Z#qTWRR (VxX[] TWRgX[Uz Y U` \~iWV/ rWf zS!WW ZHWZXH[G YXIV KYp]6 ZUX@YvWT|XKUl [w YXe[ WV<t$T0XUb [d Tj,Y WkQZX U VA TX]X_ t QXH\ S5X+U~ 0R V Q r\\#Xe\ DTr T,[\IS9X@ %R\ \ YLhUpX3R X3Z ZY V?W\ 4WY [|f sVA $UFsc[KXm[L j\[OYd XU DV V YX3Z?X,YZe eSW\VWW X0TWTXmYo = 7UVUWXZRj^$[{MX9Z ZZ< U 9XzXqXHVP[ XU/WU0 %f%-%8I%4Q%s%%%%>%S%"=!$FL&-&I˩$F*pX!LH*p h2-Oh!OTX$F;*pF$F7h*p"8˩*p2->X*pGf&"OH!˩"&4&"Q !Xh-:!ZH"߬h4HXQ"X8L˩$F\H$F! !*&"=7-!h--˩*p˩$FXh*p-H:&-?H$F+˩i.ZXt0 Oa a=W NPZX)^0 NjBW NJDWk N YW0 '.%X)$ Nl6X)0 55fX)N NO-/W6 NiWv N1*X) N_W? N:TW> NO+W NZcXky N!X) N?vCW80 NXdX}7 N©X)0 ªX) NKë|Wy N<Wo NBCX) NP"X0 6ÌfW0 I<W NNfW NOW NGGX)3 NK'X  NLSX)C N8X Nwm7X)M0 i™rW NI*W| NNcX > NX) NOkXk NJ[,W%0 NectXO N_Z2X)h N&ȕ8X)S NO\W NX) NM X) NO*W NqdW NPW NnȞX)0 O^13X E0 OŬW NgX ` N W\X) NY_X) NnX)B NX) NZ?W N W N)X)W NJPBW0 KL`āW NJ0sXO NX)h Nr!X) NOhs6Xk N% W N]TX) NQ^UW NOa X2 NO;X} NijW NPrKXX NiXO NǒX) NOYaXkf Np4X)> NwW NX O N"#X) NXKX) NzXk0 OW< NNX) NX) NN*IXkc NOaXEB N&EX)0 )'FX) NPBXt NnAX)0 bwXO N GX) NNgGW0 ,X) NKS<W NP<fW N~]x+X)0 W0 NkX  NƁW NMIX) NNigq_X; NF(/WT N&Xk0 NI`WL NIXO NJWp NkpW[W? NzX)F N bYW NN2WG NNƔX  NW 0 Xtd NOW NKW;Xk NK0"WZ NL7WA NO$X)S NOWT NPcXkh N8nW; NOjX v Nt}X)_0 3X) NP<iXk NOX;? NW7 N%X 8 NOX :w N<X)P0 3&X) NNpWk NJ:óW0 H=W NOv.X1 NDX)z NNgJX1 NZhKXk20 V!X) NOmoXW NA X)% NOAXO NO‹XX NNW6 NNW NJtoLXk NIX) NN{KW N 0X) N7X)z NK9CWn0 OVXk N]TW N>WZ N^*X) NP~CW NO8W N RX)" NIDMW N/2X)0 NmW: NO zyXk NN ļW N%-KW0 IX ; NN$ X2 NV}_mX)t NPRmsW NJ,vEX2 NIWa N1X)1 Nb=IXk NIɋxW$ NJ>:W0 "ZuWy0 K{ W NiJX) NO05W NO Xk NJ!W N}f[HX)0 OvlXN6 NJ @HdW0 AX) N.X)9 NPcQ_X  N"&X)0 |mrW NW]W(0 ZW(0 X)X NsvX)0 O;hJX  NZW NYX)0 Pw2W| NN W NJX =0 qXWd0 sWr NwX s0 *AWC N8X) Ni+;ZX)W NStX) NOX  NP( Xk NP8XM NøX)4 N ^Xk0 rX) NZX)0 J%*(W) NqțX) NX) NOlXkQ N8TX):0 g>X)F NNW N9'/X)T NO W; NX  NNXku N_X)u NvX)9 N4W NsIX)0 J1ɓWO0 L@W[ NI|Xk0 K|kVW0 }4W NPXky Na/Xk NOoeXk N8X)e NPnXk. NE(X)0 a=X)k NkW NaX) NNXkXOX0 zZlXkY NJ9ŠXk+0 X) N|ĘW NǝLX)U0 {W N3W) NOEX  NWWi NPfXX= NNrXk NPOsW NOPǂ=Xk N*&&UXt NWXkJ NJsXO Nk;~X)r N ƙVXXO0 f~X) NIW\ N \X) NO}X /0 W NLX) NOĚuWV NNo`2Wi NOxWR NO2Xk NE#X) N(X) NG-=X)p NEj<X)0 IHXkQ NPiNcX2m NOJDzOdWn0 PEMW NOOe8W N_f9X)0 NGůWB NN7JWd NJt jW NKyŖXO NW NOX Y N{Xkj0 _sX)c N)QX)& NPW^ NJ:k Xk0 +W N%+X)0 i'W}W N˜X): NW NȟW NJ1HX  NuW0 IX J NIcRĹW" NN /sXk N} QW N1HX) NJq/W0 YDX)u NNyP^XkD N|$ }X)m N$v'X)k NIǕ,W NP8bBX2 N6>gÏX  NȲ?BW NNÄNX NNXkP N}LX) NPdXkv NP;Ww NODžbX2! NJXkl NIXk N ,X) NhX)} NP{X A NPH>W NpX) NpǓWI0 r2X) Nbf‡!Wg NX) N,_X)O0 jX) NJE7W0 NbiJX) NP8#)kW NY$*lX)0 %X) NOOdjX  NJsXk0 P)eġXks NPzW_ NO{W`0 O7TW[ N$rX)0 ?!W NzvW N)SUX)d0 *HX2C N%e&XO NNiyWt NNneXk N;vÆXO0 X  NJH"W NI'GXk NǠX)j NX)0 N2Xk0 OYW NƕW NJ*W0 ĪW NNqiX)< NX)y0 OEW N&áW N<]zX)L NNnW N`W NƇXkd0 Ox[X  NOz]Xk0 OÓ*W NI X  NPeɞWK NWx NJ:W NOZXk Nzp[X) NX)a NjGƪW@ NX)l NNFÖW NAWi NBWj NPk@Xkr NPGľX  NJOŸ$Wc NOIW: NiJǭXk NX){ NnX)' NZX  N IX 1 NpX)70 P^:5XkS NKPPKXkf NWXk0 OJXk0 NjXk N=X)0 ijt6X) NN|Wg N;)X)N NPsoXtR NqX)0 J9W NNuXs N#EiX)0 |ȚX) NNfFWv NNW NQ X j NOW NPcWqXj NN~{W0 ûWT NOuW- N] X)0 ISHIXk NX)% NX)q NQX)? NJwW0 P4yW NN8X  NO!X2H NN X2K0 iȼ$X)M NflX)0 DX)i NS6X)E N+xkX)L NNX'cXa NNZ(dW NInWl NO06ȩŪXkT N8ȪūX)U0 P,lXkm NKwYmW Npc X) NJ&TVW_ NO"X - NjXkY NJX  NW| NOj:W NPoW~ NKXX)s NcW\ NNșoXk@ N!ɔXk0 |X) Nhw X)0 uX) NJ1ǔXk NS Xk NOkW NNJ{X)t NO0X# NI(W 0 PvXkG NNHW Nv,W0 IǃWp NX)0 .X) NU!W N.X)0 P!W NVX) NCtX) NPRW NJßW NSp6W< NiÝX @ NX) N~-X) NIX  N„=XX) NKt¼HǍWR N6mX N NO<ȰXt NI+VW0 O+6X ^ N%_(X  NJ#W NKPX  NeXO NW0 IǜO,X  NOtX) NIZơ]Wx NX)# NZQW0 P:<X'| N,,íX)V0 >gFWn NKyĬWQ NJsXk NJIW N;W NJX  NOX B N%zqXk NNMW NJTW0 P?1XO NĢX) N5W NnuX)0 O8/XO; NCX) N}W NN+\W0 %EWE NIp7W NX) NOWe NNmFXk N|4YXk0 OuBXk NPW NO$W NTW0 W0 \Z#X)0 Sz9X > NR<ȤX)U NN)WU N]{eX) NP)LLX @ NGX) NJ& @WW NO9Wz0 @W40 PoWI NS~Wo NPZW NRX)0 J1ƄW NǿXk NJmW NiW0 Jn,bW N\h•X)x NI`XOH N_W*0 HbWD NJ=X) NJ%vW N>X)P N X)50 O,W NdtX)0 NQW NJ€^Xk N_X) NO6XOB NJMW Nȴ9X)a0 aX) NK7RWX NO#ŊhX NJ[W) NMRX)>0 X) NNGW NO 5>XO NrX)0 Ph%Wn NưPX)0 `ǡX) NG›X) NJ0Ɂ,PXk2 NJĕZX)s NPBAXXH N % <X20 & =X) NMX)} NJWY NqX) N(;AX) NOW NP^-W0 FVX) N,Žƞ?X)[ NNžƟAW\ NPĭXOV NIz )X  Np} *X)0 N~+W NO7XO N .X) NdɎW# NHW2 NM+E#mY !uIC''s =6Nr! !(1B?'^@#-`&> *gCas!\])Py`%h3+D-ԇ[8dMM,,X!,LQ#;! jO0%[",=.;!{!/ G~(t"5H*#E*l E[$.i$&;'e&=H,7X- # %Bf lQ_%Z!YǠ*nB7Tܫ'V}|"!T Z.$B+ z-FU9ì!% $A(f7.*%-4&:?*I )+$7-)$HXD"XT"8$k|*}(w '=G5'J2D,c erȩ+-E"KJ&;YA->4 *2 wA82$w2(*IU &q̐W&*#-V&',=)N*,6<r 4M!OV*N&S7%$]A% V(>"(X !p @0)+WWf 3*~S!,RMj*HQ&I%T &H|$*ب*:}|t| _r>s{u|PAnau;h0]gyrSy:sf|s~r[!tlk:dtXF i~Nk| qgpzuAvwm{z1Wul sBcYtuZqfQs+)~ ughu%gzrqFr&qIk?5juszuX)XkkBquAyqsJusNvfujuapQzr{!4Eu twuxn^x ds t{VqouIqsib_ssnfvQuh+TKQpqvrM~tkt rGr*j{t{t})Z[~lwr^o'o( ! 8Oxtvty{Hmh,t s9t4ri rt[rim,trm.tNm/t _Wu}mTmVtCrChoYlr&s5w#vSm}#mn?Q|6rhSvsi+Dsi-u`C XSWYx krs (2@: k ~^H!s<iq?;uYLz}!n3u$n6vtu`x L ]"g:qgmMtnEmud"vsx4$s J!hprpsXttpss}D<u.nVu)u*~'k]|r;v$x/uCoy5ro{8Swqtg,{5vFuHZs}[#i_%iyrtosFufwu>B,j u@AG0Mp ~:?sT;[s\uysvGkMtBtvzvPfXr=u ?!9vQ=sR1w<sS6wA-Zx@tfwkfwk7FsknkvHzu*hnB:tC;uAns`mqn>zzrVvily}RM2T;D6M jG=5}rqB?$ ;2hrqX)XXyrfu~ILQt<rfrfcsJ:t~\EJwsFO{*-rPLulSBrvisAt sBv7#v~=kq;Ohia;slDI~{_qr!rCuWGgeivt1vlx+sZVr09Tmqleqk k,!kDyqqi2xuc{pQXvU|c0BEDty[vg! lQs(rq]s(l9Q+l;rwZsibLXj}Lurw|eo|~^ht{L*XpXhs+f{ g}ICike i`v"j3y0zwzJs,-rigsusysp>u x}U}XUFQXx[sD[x^sX!ty#>rxQl"ivBm.qo4hFteq8gvHX)Xk{`jis(0q<sGwowos&yEqqhtsOkt`OEijxi4rxi5jl}mIt{txhI ;mcp n~zv&yJRryMU>xrp30{stgjq5 ~t#jq9v'u<w_stGd|hgqtub`Khr];upkHq4kLq6u<kMq7vnEsH J x_uQzuEqhtjsWXHq\XYX^hrylM5u-Mmiv?6kq@}r^maFkp\v"vu-Wv0\r|tgfpdr)XyqszmGk pt'qtttqKgg5v(< /js+lk~9utm~;vuo|@jrBje}{corTV8%|#G|%q{~t}u#oZt.  Mh5pxerzislrtl~swtuu4xtvQy]r|Lv(i%t[|s{uocqe roivr(s%Lnt-Qv/UyuWt@X)Xk|xsrtrtxtxu}!wgphHwZyi_}whist9GumCGlr+X |Vtsr7ssnturj]vun_nt*x|+x}UWWf$}"yxu"j j"! R ; {x vJ|y}H&N/viftfty rk~wXtw^~ NXHX.]v-z1lny}cqoxrg!lt5ttv~suy@uzunobW{|fte&C~/5zr tzPe4CBms`oq*#y QpC{yu%yvD''9agwp[q~~`)p^qtLYz\z tu~bwjuu"xUpj%qpj'vyfzr zr ClCJx{X ~}sWqm-/JuPrduvB#'pi~vFSnt?x=x4x>xF~}ve![hsj5yA+rsmvpxJ&zjrluIwts.,/-rO~-R~0rqtft)Xrv"vrvu%q t X&Yuq{ntEivb>R9;$t:{cgsnmk)Au!qW{srr<y3gMj;|dmtv4?y9t{y!vDmu"vEmv}|`rhq-vXr1Xrv Y?gmss#vz&WWwpWrgJpb|m[sNNr.4@l''Al)*=ujm9* mp}2th^orm03m3"#rNv v?3p,(rbq{  }sn|(5|)6|*7 Nku:sg@*r}l <j&u- xYr@ou|}Wn`z`SPX*Wiori>v%viAv&vY"N2 sn}Is@ fB TPj'to| xtrrCu~M~Oo>}9uoC}<yJwt AxEhF$Jv4_gs jovSuKgt,TrU9jcU Idq.ITXTXYRjswKpwpwR_Tq>xgrtWjw u;suLt}0Qu7 ~vc/,rXp?{R S l#uFuNV-+XQX2x?zD qq*)sfR1vmqv'LuIpu{Fxa g?p{=@{,3mHuNrg(=k$+Rgut;qSy  +I Kg}lwup!Bq#Cur8lvqSzsQvI}v+Jsv0Lum4lTiv^ow'Nwr?rJTrKrqyCS|+L~tt7ms$w -(trrv#ouz]m:=m;_tg.upjz[{|CWsx~Irw* psspRFVoOru%xrJmDOr\rx\vLv8|pGr/wuntMx]y=sy@x ndj#xwx uf%XyX@\vrAs{osn=yl~}`4uR8 B9`sxqS~oioit+[nGwpj)Qs,w+_(wuutw*"ortvuVX}~|Z~[XzXAQgWXRgfi?gs*k nq|sIR^qKS`s5h+q d~sGuEu yrtr}x]qGtqHo{tNxkm~*rRmyuz[qkk<psMzOzshjJ USxzdVVx~IKr{1~6 rCl!jgswjsu]fszf*q g|~nq>mts*wqWtzs#~uYyws2Us4Vqlfspp~sqp$=zP _ug0qfs^thDkjvlmq=GIqg'Xzt~u9OQsv,ft.isqW-xYjlt|l tq# DbkquaIhoAmu~@;rI |=WXes|ygK5|.r~V t?jk5Ozu6Pz:Tzi(vQllWXyiet|jvqum}r.m}tNcou*S|ItU|Luhv3sWylitwtwv&r8n,@ t|prmJ umN"6.|XwcrtUf<fBnN|.|psvs]v,2miBCi tmi-sqqg}klvl}\n{fVwj,t\wo0j|2(.)0t6z' mJRKW?nUzs1nW{trg+y uoulrYGtr8qzP| tpssosQ"kP:qeqcX7&4jVt{rmr}y ozt%yuj[uoK.tg&'?rsJ0|-tCtSr~ryVo]zsyWo^{syXo_}ZU/. 3i5% ~Nt>guo'vVht\t"7s_k}rr~r!txO uQm} zItmuO~ugF=roLgoMgrzOn vfrY}twv3j&pM ;{.36u[fhtbn&m+P6~eWjYr6kqxIvfp(e{r{7l 8gs7t!tb,grr@wOtw,w)ZO3w+\Ph{2+Eqhvt%qhGp2WWR-v.WX<T2r6Kt|{Yt{[{]zki.rB`w1pogfzCsnlBsnlEtka1u C2@6Am}COy9PozlgLTu3{Zi1op70q9t7{ffM[}r|@j(Xr;[ls8zj|rl|vUt!O1rQ22~3slqykGsot4i~h6un~q~E{Uqz.v ouorwht}iDuok7ok< tCttR si) o rqy\} qtE~wrxswZbtyW-XoX.Ir muqp etKnguTXuV[lusn3;}UWO '4wis}lsm'ziB\w/k({n0_rV"wUrhkm<Vwxpks zaiv~2@zji;ulqhXuEm=>Ous9;hN9=jtT{ssX)Xtu}RsHlYWX?pr1.k90k;#qvPftvpqyV=vwv[u?w5`q_.irse][gvab2zrV0lfoSqw{XKt\my$t>s1?hms3ArtOtPs/m jZ^zkty(xks8lo+omU3~veswooV+!bsInvu>0|t sCmUuMFv~OIvKwm/nTxZxtt~h|t|`uUr~wifXepUei9_gp[f({v?0}nK@sy;ys EsH}_PRFq^n=xv(]; ropulullvf n\haesaJdshMX,WNvkqYrQvrRvolj` XX.ErdaT,B g+iXtY!u8|sySmnkLx WWuutuwszM<P?5 s7v} {'/ruSoh^ EZos|oNgym'qaq~ tyyYry\rqubpKUm~Vz2u~Yz3E~Zz4'j~  z,Tmgor rovpstr2trIo tynE5~y~y  .rM}}tuNh`snto7o9tdo;rW>uqVfrz#k}tk}uuiuvjsiBnllvTlvtl ssqrlrn IXyWXyq(tY$ l\}isl]} lLWWNu=v3uKh!@tB%A7wu/w{grw-jw2nqqlWhnl*mXOrL1olwvMuww8vUr|=qn "Zoqfujprqlphrz_>jm{t^yv\V)r`%tsjg>r#Nvdqn=rv R|r4rkn%z_HrA>Cdp hp ua+ q{~u q~Ioc" @u is t7rO_zGfDsq#qsq1~jAvlFh ,h shsj8rpp{?oota utj0`or3FzUBr};vr-62:ux:vvkkV>n~!UQQpAr}jl(z~xqDs'I$t4<fBtqQ(:SUt=jgT1t5st7vfsr5r[{[@u]Aspwz}mqLq$&tg"xkfw3u8g`qv;gPyqkgwLaG]uOi7Uudnm h3srfsDnX8WQo|;. ~OyDvu /lPzVvFs'Vz>v|}#tFv*XWi|L59u}\f.Rksdkum|um~7|v{%rOEu,y[.LH[v!{fp^:eu>Z.[0h NqtrmUrv'usQstpu|zjLWWkD}X[XuBo)q\ gsn]fB|m<{WWt|pusjdhsqghWW{+Ixd= ?nZw+x1v`X)Xk)s|%i%\oxhs<?llt#u/KV0 hIsVwkinuodpesZmou{Ny[kh3 kN dsk#kQuNX)XkvOsctsrrrlqj}PnCtx-s6o{twu eVPoT=Ru7z  1lmtR+w-y5tkqo3skZ|juLypEnqvtj{$hU$wn<ltEqlxIbQrOutRvtq:krruTtk|gNtEyr> qmulnfQv5;=epTrusvpr@t{fq*uTvZ@vrfqXs]tlgfk_uZs7uouJw tuX,X>KiuvvjgTZe A rq+krjljTxs]mhxrgsrF'qrG*yrI+uhr[wlsn', 9wb(vimsSzFvsvqu~ir4i"t w>msrvvmwpherhjt}~rv* u'qr}&l tee]5_M i4,?puBrri@~y|nsxq{iqk'ig lgvAs{mrWX7Kcir djt vurs!]}.Py_)Is q|lYm1nzs;-2!uxkB$DplsGplu}*vx{g+toqs`tk{"r/r-o s4ugjtupkj~6vq^tv2tz8sph!~(rpvw x|sg^|LzMzPyt1m6szc%uSzg&\dOWXFiPX X3g}%kzp4>hv% txOujv]zhpmrgts;j((bmrpasMuQrIuvg u@JxJ%p,Fq XWtxmuxr9ffujsziL+gqttqr}vHT|k)/V|q-tAkuEk7v{ h~ u p"lgmi$vP|qq^l"!s/%iuiFv(V|u.9tR0r|fo*SyBrr:u=;J'qwm|hKum}isr2-t %wPvvO{l:qYsztwu7j}8s#gu5i kyrev@uLv{hsA}j{1WXY`,qiLrl9oM|t|vw@ijusp1nsss0cuRqET>zh2wOn| @Yn}ExF-r60r71v \u<4qxs}Dx|}Fjptv)tN[klh#tkoh*u+tip*t2In!rn)sa5tCsXKfhuu~) OOx}?mj^jran,t3wtowM"kNbQXyMGs&ut)u>Owt:t}zb%tFr!u\n}sUGa<qxjZxmrtFy{r$y{v6D}uuDWZg8 kkRrHbudpa4rqxCrqxE'waq0ud2vxA|s}Xi5}ks$6Ru~6 TH kg|vCmvm$8WtaqtqWW|q~cwr*g nu8fls.!X$[t/tpwq  %R h I}RtljfW|64Xqd[{jv%pgqWWX)xvGWauMu/Wpv(\,^t{;lv2#v]Cg~j]>tJtzbSqo&yiVvKv9hyratXom*rGWXGYS|{<mu||tKbtShX~g3c~uvdtM_Koj: u'dtGtstHvsryrs6r<f:vh<v `r{tr4wNybiz^xiI|~uiJ|tiK|niqs~s,^j2?tr=\l}d{{(n#i|ui|"q4 Tunl %kdqYkhPjhZsg iMtKwXF `r}vu5MNu6Os|wz y/\;}tv_R`S%VlbrX)XktHW.ut0uttuyh]grz `tTe^^qQx%aqTxuewF Y|t|h]|tb~qqjzqShprwtreb]qXoWAwksykpus(Bv})Cv~G| :{]p7nk&z&\sc  x6jrSTVtq|-5h !q9)q  ]Wzmztw v)r np2tvg~\{f zArfb|rzko*nTh>uWlAuXn *wtziuul4xsvyZl{<WW1m9v t}vs vm0{D{_njaanjrf~trrQQymxts\oxaocsJtJy|{qmX||sw| ub|Wi/ms{s{o1FlWv Awx}se|Q&sxuX<`josy%^nsmpsUev*rH5}sh.utb{vTppg||su>I4zWX(CN:u*us|rX"WlMr\HrswuBe mv*s-=z*2tooihy7urzhmG{sn(D}tr3[r9r'iosj nsA<QL2iq5i^|uZxyst}vqsstp]uk#P YI+:~gs:q~hsr^:mEs<ltwj*`gp-j~i t0&u8V~3syzKn :z;sDyro X"Wp l8u?K9Hu:j rjr1;r_jBuf{XGXYh?1ou<uJ7-H.Ju}]WX1tFqtGM0@<ra}$htFs:w1jmpw6pw7uO i\ ias-CuA~vuhuuzaTx,qasu+u)Z{/l;pBvusTS{x\+viQft`-sbvRsoqfq)u&v_vM]&4vP^'vQ_(u0{M q5vommtfwDNlAKtDt+z#'v.vh{yQr "r"c(cqri0tcufTq*8k9wFtqr^pEzHr Yv uwH 6hWsx4qpXrovCnGCtr^ul|fu~p.'N7tk/kuY:n3T( _px2}=nVr w}Ol 6?t~zk|t~~1tayHu;s$Kjy-kCwiTe o0syh mtc q?y1z^eSqfTiU~3$Yp$Lql\qo]uit_th9.-z ]}ten7Y/0bw1@f*wssLrXu ^uaq?QwavG81{Piq{Qk!N~2k&SrEkhk*:uUuk.Eu[vigTosVm=nuuq.z(Juirjt"sVmuPXzrih;8{Xvasth,sh-2Xp:dmtl*uul%kDq7/zg]qiv/kugs-F . Jiwr{osfJ{tspsl[}v94u _vm ultg (DXWj+U}szU|oSc vj]"vj_uMmt Omqw]t(hzt)hr|uT{v|qxexhsYM}zpO}psvtArDQ@R6^vqwivt;C|b}xtwq|m\8cWXsn=(  i kworHfptXhqr}xhi;jVrmu x(p`rti}s"UR|9i=>r`} =U}vfstxjt`[sQum3lUq}vg:Avsrv5Fr>{k| vzror,BbJs}%t2w Wkv1xgqt[tAwSqj Jp!txHnui|'@|,D9 nu!yg@z si_#c sjS{k(yN#tr,ycjftjvOs[{n~%WXKkdbvdtaokSy\}"hywu gu>'mqGt*o )u1)dwcrifUuqg .usyv0ftj t@mJUz-wBtwpn[z ;kzp>k{"g]g^$uq}u mrloOpfsEnpkjr{sz~%s}*r!w}1ug{L]t~LQ si  lE|g*hk-giiAsP jt<0&tr r s[<xpF@xprPqpuz{Ewyq(Otgm]qmbqtlQzlRzsrrZxN6r6|F|J?v{jdl rj r ks#{brmb  zurm.qXBXK`4rgq qrrbu8zrdw9q|[q|] "r5puts fLtKv{hgEes?mRdWWznhFqp9 }-x; kpx?uo}:xqz{TuPmsUmuyGvvE HvB!Kv{iSf'v2Et3kifzurqt]xg#k\y}p&Dv2Pqz~t )t ->x@yR}Ayiw uvN=it/l:ts?cqscx)j:unltvPdHsu<L@Psj6:ouS}y2|t\x8vqts$jA&j!|}pKy= Ey~~KvsWl0r}3unOsBv iv=oiQojR|tAtfDbv<s FTy t>Uy t?d*k<tAyw htWPvv)ms}zbx]pf{n@q*s#x71$x8u_q- GhJhOSnLRqM~Yeg1{:k!"tG!~S7gmj8gpXmq3wD rZ;r% qEqJaCrwh lAAvLoM!J ' x]shxt=v|pX7srcPa2[k]q^t9lCs\s%qEwzXvHo{puMyv_tsmfXssWu v Kt9Xj@>wnYjAMpPnToj|suN3Rix_ixcus~j>}fsYf'}eyZ.rugs9sXb 6HqXe(vhPvNws;}%)&d*(f`Bqmyd> se ]ohkUDt}[pv=|rD"tqnJus@qB[swhQmqyBlY3LwrMxrs)rP{tog0qOWqPZsjvqt|\{\o5r:opRxvPk0AjrfnhtvvtuyxhatpjZms-ny  cl9*sjuSsup| ruszkr4rc5ouk~Ut|8ruSgQfhBptHqs,j?zsjfV tVyMkYWWnnrfwuvepvj\&vjbr 7z{tr}J}K~P uhT2WW pxq{mx $ }}rrwvt|HlnulpDuzi6UEt-qorprpzWktbvvWzvYzt=Wt$ @yn5yqpdnMuV.Jws7r,Xgfiqu~qur   !  ^j1;+sVq%uKvRqwj0i)\L:k1vhI trcI s slsVlsW%sx#tn?sMqgS|N$u%'ps)pu nvumFtmHmI PqSs5jav+hcst,hfsu?v#|x wNYrs~zT|\hzs.vfGhiputiuG.mFz sHlv{sK&/QsC&8l u *:lu qauc} DcuA[{ag iiUljiVlbs9|zW>~~xwdruh^{k}"$u nqzoj?~rs'g'r<g*m55.71;5i iqiiut %)tZiiyt8u(t;y|szr 6y:vnrsr bsdX9 s^gs!8l <3Jzyhuk0s?yCz|& 0UR$gnu&(WWi} -rs=Js'+/_.r"u,<%{ N T%g0yxL1h yP7u!q}~&fg^oI-vWA`-x!r.x"s<?vqsgx}@s url)t%J.q_t&N1v tihuvSvvU_{s~?({sBn^YrDraWW,u2v-)r9TnsxiG|hw!s q%u\e&GIuLKsvtu Do4p[u"jrm{;j }vr*uTgRwAZmgrImt|r:Uzfv>./1ypLO F3H:rJ0:,tfAqkp64ivAouFuD0rEnPs\!$i!;r?~sN"x<2;Rt6fp}|p/DyPSjukux}IKuHtjGvltcuzl7[spDOVIWs24N4ui|nzH xMv[xa\]c^p~p-qsq#t oqNujeyHtnHr#Ts=s>xC~uo}M6HhrvCq $ |WuDo^u^6w-yUty"]N<w-5_jur(otGozP7=.Hth pt_j2rxutPTx{}7~}JrpydMuYs)hvkrK^t=mw8WXpqu-sn-vsIy:r~:v{vx1jz{ExK4[67u3p v,zs "h.W\rCla{RdAmPKw!vrqx fu/v1l k4, fhpMWWOvdn1 kwglCugqItH{<sUk<(r=)r-jtMrC,s{[}uwP{wtCwT-4frrFfrr|qvZu}4kivP{g9wR|g;rjTpt:u,lirr uYr"uv;VsIgLhv$~rw sQzyt8rn}uqjVr>jt:nenihthtQ!ths0X)Xknt?3:ss|pSdRsksKimr HtiHjIkJjKlN}i i$m^u1i AruDxx "GltIb}5 u&6vKv:G- z,!V{7)BVu)pAr7. RQ![B$!B##+M"E @. gT+m.": ;)//J./%I]T#1 ޸! w ,*S&,!2Ps&0%4$.0'f[L$% 1$X_%$kW"&_?-߫-FT,7(*I.i&Vw$*A Ŏ)|+ ><+"5WYD'$P$  ./",'.+'&8&-KYd ؄()AE)o!p$v,+m --  @Jp: "1(j!AB)7!5+U-.\>T*(w¦+ A% wWW^*J'=@,X&D"KNܙ:_UyI-&qS*Xh+,a  &'o&*H$W7*~,<MP*Hy _*ܹWf֠&;Q$%B?##UXI!6Y&x L*$H &D"i*'| 5w!9öTI E $,!c*(IL-%F$w|V3>#M#W*l e$!{;L(frj#ͽ*_"* #@!)-,Q=T"CG 8_ZH E.v%h+ <$]-Ŧ+*%2,RPՑ.*3LC*J N4*~X$A*#&Wa+wߊ-!& %($ kWX2w XX1 WWbXsX`7XWX)XesWW) PWWz}"sX}WfsLX)Wk_|,WWXFh k X)Wq0X)XX$fX)W4 ZX`Wa|WWlLXXWWWGjWX2IWX2jX)W{WDX)W WWmkX)WtX0X{pbX#XJ\X;W\WX%Kl vWW6zWW}WXa} XX& LWWXX1XD WWkr= GWX}s WW}^WXO?WWMWWZWWI'X'W6  WW$k\X)XtmWX2 vWWoA]WX91}^WXM6 WX{-X)X}WW WWWWyjrWX:WX;3X)XO4X)XX)XgYXNW !X)Xk7X)W}`XWX"eWWEWXaO WW56XjX|XeX)Wu<WX2q)X}Wzi X)XO/iWW}WWfX)X}gWX2WX :WW5WXsawWXkw[fXXWn_hdX)XfbWX2#XXNuL%C X)XOxX)Xt&WX2})X)Wi<  FWX&o,p WXExX{WppGWX|V X X{5WWrX)XOMOX)WWXWWWWoXkX X)XOiXWWXE&sGXJXoqfXXrwk WXgrX)WylX)X8WWxWWf0WWuX)Wy WWXEWjWXfm'X)W*WWiO/WWJn9XjW'iWX2y0 WX2kmh(#WXXWmVWWTXX`YXXrjFWX`2tX)XWWk WWWX2n{ qXhWm=X)WlXX-i$lWXM;WX_!WXkuWX2~9WWvTX)X}t, WX}t-NX{WrWWs8'XaWuJWW WXXWWWX2|WWWXX&XxX1XkxX)X~pX)XO}qWWntWX\VWXe|A\X)X 0PWX1%WWZyXXr9P X)XOf+X;X'IX X=_WX2WWp WWip X)WooWX2WXaYRrX1X iwFWWm!uX)W0 WX{X1XWW XXN  WX`!vWX2mWWWxWW7WWqn WW% X)Wr vX)WaWWyPXX&"WXh}pX)Wzq\XEXW0ٛS[{3? j))[;J8/)ьN-* W[P"h.tԚc,'%l#) 'Nǖn7 LlL$+./*J$;U$k+ T#A(1 gӑ!*&ZK+S$;S r l-P&uP#^S7#*dq  Jd*1+!'$O!N ZW$I$'-,Iu.y9 "QIe&2-iCQU, 0\$w<XJC4B j-KT|D,[.0N% ,@<..#<&L!1$7s N f;O[ S6*}9!)Wr.q(NGI!3--~- @JEA͜8%D *,["+ Dl>(I"+;G  !T?4!!O'A !'}>z*-O)%XHbI"PH#Bj.-("|/?@(3-?  \T$)- R%ۊ +.O|W  K/ # V"g&(cM3  i>( ?,M&.eT%StJb"Hy*,2Q-% !4fb@~'N6l 3:+*1( X% ت&L%?><Q#%["(%AgKFCT +v*/9* Pf&]*=_.v-ZU5.$-Bf'Z't|#CI%f'{! &75"O9I~/G,3W7j*(mD _ dPI.5"%OXZB-Qt-,:S(պ+..>WR C$4-;U['o= o>(QO,,C 3܌Y.=V(cg' iF \(I+94 K#*WDlY%7HC5JSKZ3:QYz7w O%""_&a,[C!<'-q!3}Ɔ"W#H>p~ Y1!+ZhTgVm8@Ge .v@v$^"#/l+'E.PG_.>mA*(p@7}9'6(.F"'NG(1 *"$oX,#2G(X.+6Z-sM"@[L.-K>Y.,=~=X+mBQ !]$w-)xS&*i2$&} 6,r@:5$y9+! 5,>)*.4G)sS&W$*;@:)-P-@+){.U&g7!nE#}({'R$e Fm9t/-@$#$.k('ZZ$-LH^, /&17",.QP Q5i_ʻ*HPf!!$͈$hR|ƅ!+*#)|;.s(] b -q+H$U&~$ M/ "+_J! ?#e"9xDF.0N$"D-9Cn+S6iL! %!ZM$EFIJ('=: wO&VԎ8I &#xCӾ%ip$3,7 H NJ(M6! l-Ƭ+1+k8G5FZF F))/46ZhF =6_އ)# Br&Z&6-&W$V#,.+E&%[++OB#2".@T%ӄ$')(fY-0 YsX7G&+M! ^&W9c*Q$F0.W  wXՊ;?\GOW#β% 8% - EB27ǫ1GV!< |%*=М$%$/)c$I(&>(w!(tѫy ;#K%B )$#O 4(ٯ d8( <; "K1*l-LG%.8+l {,.:IVD8I*&D,Q$w!&-WDP!= ʒ,D&> NXKj$"X* A' *IK"`T!{>,X$7&,ԗ&{&\$3&q,;*E" r*~ϳ #%" .1y1QG(:)wI-y'J#<,Uh Ӑ!I%X,%h!24AҴ*_d#s1i#7*x0cۋ Y!oO#(&Uc.\ "> =*"xP ,S*H+<->BL%< %k֪!2Т$*. *wֻJ6  OV,U,R$%(FEu . -ȉvM? 1-n' )h)l9?("x>&&RQ3STƑe*huN%R+2 8#5 !!#e8\ډB?") &in=D  r '5"=&3k$.+bioI[}+$_">%5'$):4]'R7% 8.LeF }0e*i# O3(sc+ с!HH!)f.oy  Mot1V!PjîD3 'W3R, T(>+b%)=H&$N, 9e b<'P+Jw n&^U,:Fv(EV LQ1P' $L'>V<'by&H}(׋! +3*Hc %V -x&n5;^$x,>w-ƄsYK#!dZWHO"9/ +R"MC<!Mi ƻ.' L ,AԱ.B>&²* *MeEo,T$aRX$ 1q1E1TX$OXbxxxxxxxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+\+RfظN8q/-r1P"'"42A˧ ?K 29.#-2< *-.6`='&,8')_<@$s~>&.f Nk7ն5-CI*3;oHV%)}hR18L.B 3jMڨ D a't2*-r=I=P(E^.C&5G )D4_֗!ֱ-j`|+ F'U:((NJ}#* &#Hhz/~ĉ* ]b",xvL(CuLI8,x"wL("7y Nr(FI@NH z |BeC* Lu uNGcl |98'^NH,xT(LNH,x!r7K",xĉ,x$8A  ,x: z* NH* Tn#(/8({,xQ8Y8uޑNH]* =c*s6=8,x#,xNH(c*ĉr,x| (Zy](z,xL]*  rc*sA# uV=r!C.3 |Gec׍z(  |L(=+ |F  |B]*suJMzCG(*s_NH~r( L*sL6*sTzu ^Cub*s4zĉ |Q1#u>+ĉu"(T#,x*sr* (4r* HB#"+8* zx8*s  |* k8 |HruP* C(Dĉĉ |NH,xH |HH*s%#ɳH*sBC0*c* <(QsCGLuH |(HuFL:#* %ĉ] |!z,xչC,xc- 9" |) |b"*sO"* Ý"]u3]"H*s$]* r |ĉ*s c*syH*s69cLu#$NHuJ _!#$eJ/ <)@L d-әBY#"Z7(" 4ZOXZA" " " Z7(" Z7(" +" " " Z"  N" " `" Z+" GZ>Z>" " h" B" " %" " c" " &" Z>" z" >Z" +#Z>" " + N" A" k" WZF" Z>'7Z " P-" eZ7(" " %/="  +N" Z@" " $" |" ZOu" " %"" I%"ZaZF" >ZP3" _"  " " )$+" A" *" P8" " #," ZF"  J" +W" MZOX+/" ,+ N%"" " (" R" : %/" " ;" " <$*" Z>" t"  0 " ?%"%"" 4" 8" JZF" mZ7(" T" d"  J" @" $" " " b" " "  Z7(" Y" }" "  " Z*"  Z7(" 3" + Na'7+" f" '7" Z>" jZ7(" ]Z7(" q" ZOu N" 2" " F" /" g J" 'Z>" Z" " E" " rZRZR" " D," " /ZF" v" C" M" " '7+ N'7%"" '7" %"ZOuZ>" $ " H 0 ZOX" " '7"  J" " d" " 6" " y 0 " " oZ7(" x JZ>" B" '7" " " g" "  J-2" K'7" e" P" '" 8" U+!" ~" b"  " S" Z7(" ]" ["  JZA" Z>" " i+B%"" " " " p" 0" !Z*" " " " " *" " -[%"" 9" " "  ZF" Z7("  Z>" T" +0 " " H" +0 +0 ZJ" "Z"+" X"  " " Za$.x+0 " 5" # N" +" c'7Z7(" 6" " " -Z"" " +0 " F" R" `" "" " V" Z7(" .+ NZ" L" "  N" " ," " U" =" ;" ZRZ>" +0 " Q" 7 0 " "  " " + NZ+?^%"ZRZ>$ cZOX" "  J" Z7($" Z@ZOX" " O" "  " 2 " " ZRZ7(" " ^" " \" " " \" )" K" " N" " " '7` " " G" +0 " ." PZ" " nZP3" " " L%"" + NZ7(" iZR$)K" %" NZID" ZJZOuZ7(" " " " 5" " Z+'7" 0" " !Z7(" +/" " aZOu" " [" " (Z>" &Z"" s" " " " 9" u" f" Z>" {" + N" " 1'7" @" :" $" ZID$"" " C" ^" J" $"  " I" " _" %"" a%""  N" VZ>$KZ7(" %+0 " '7" Pq" " DZ>" Z>" YZ"" Z7(Z>" " X+ N" " E"  0 " +0 " 7"  Z>" " Q" 1" jZOX" ZOu" " " " -" W 0 %"%" NZ>" <'7Za" " S" 3" v+0!'7Za" "  J" =Z7("  " " " " ?" " #95^,~&(:E2 j[+KG-REICw![5W'^6$'"^0X;@% NƜ&>(/R+h p$LQI5(%)p B'k[I% HVf#)g"z$;(b$&9E#$W?'|;2 f! x#)"Qŗ!)Mb}$J.T Br.%)[zV.Ζ'q`%A|)>a(WK[K԰aZ#,Ѭ*$#ș9`Ss oFh7"ŭu˶WB$*"E[+L/h:  B )"ż,@p%&6!)&# *I*C$ɒ5$*s`:j(v<& !)|? %h""v[rJ"H)< j-'܅E*<(#4m%*HJa@ Eh(frYU#G.0 M'TE,&U'xX%%";e $ HU-,&>JT R$Ä `I+qC~% $ L%$l%Y'G]%8?''B}%*) S -t.j./!"/+,&$W,0zR@**NhK-)-+&9O/'=^Ō  +{@ u$44 :T Q#.&)$En Vw Z'J*ڞY }!tJu1&'+y A #?` I~ލI Sj`VZSI j`UZZOj`XZ90oj`YZ0o9j`WZ jsj`TZ02j`\Zs jj`SZOZj`[Z02j`ZZ( 3*M7A&4c* %( }!) 'Q|-") M/%W B ^8$D p;.`L+I +OR${"l&Q   YQFB%*,C 8$Xy9 Ѯ$w;Q_&$":-Kl+U#A(+c1KRI*iF% NL L0q,)k5%E&H)2J+l!& %,?V%\#OJ)N =^h-0&-/(  |(B&&%x+-1%+7wV!"+j*"e!$='"*5(veqg![z ]94*!J#&Sz, t '?:XXEXkXkX)X) NXXkX)X)WiX ,8R ^".#SV,kgELB|'fS8ޠg%1~X^2>-K3(,P , 8 Fg K,_  i6v3[hdW(c +*BV*o*=(.YR-\8%+r&Z$}#M#0U*F6'1q[.ݧ KQ#YOy 4j± 3q%'Na L6."\8#)0#3>WV W(cG(;+Л KѪ CAg= i#.BJ,JO'9@-( z'z7m* " *;:-4&3(\$B>*$*2d_ s0'4=' |#('NUfP. e ֙H _QȚ":&.5%}-#\T@u. f& 9'\ZlE˸+1Rb\z.#!& g8!"6  "H $(Q((&iA* *#)(&v,!v,TU:K".$07-YI(T'?-_C\ 7@5)"-zS R-4*u'Tm:~'Y/5,d, ":+W',O}j& :>VG< XBI2D*7^?Կ?(B?N?" ,x!&G-1M$C2iߺߺj'C3ȶߺ&I0ACIlߺ w CC2C&Iߺj9|ߺ3C wZߺe%2-#:$w -*^$%1,$&K''rՇ/&y)+D*o>}1-K&   (.C"%_"MY!w+Rj"]<D;.GbD;1sdj!|J T-B$N!s\-mXLTQ_@r%D.UO\ ] 1L-z)!vP$ 4(,-Y@)5&i *6'5h(ƃ*nJvv(S5* $0OC-" [*#0ӁmI,h (T: >-V0#R؜$V UN'f(i4M_,%Z\ .6&m$!Y+!"F's)v 'M? 4Қ+ |VuUCu+*s |4+.*s ++/;+~{Vll4Vl{4l{l14;1ll;{A`;{1=`l11F;;{lUGV{UP/N{l+/1b{1r=FpJ;l;;;4;;{{lP;{l;l~1l{;{F=;.m }Q*hI $"B+(-|'L)7@ *!I'A]a0\ 47AG5%"T lv'4T: I[A_'JB ?!3"(Z% ?, Af* _ ($E+,+X )V%"NEQ= qGcT&(\ +`8%hI!B(wT&0y ,"% 2NB$ Ż2@o!*H4"[!-K, Ee!{#1&} '=к,4ߪ! h*l&,A * Jj,4- C*  <<%!$kr85'WX$ɑ [&E*~$$*ItcHr,(W!s3$*rjJ*&hD 1"y&K-ui+A%6+3"K"u&WV&*y@_vv*D*2[+, <շ"U&V  !K >*Zl)&!*'&V-)[q[IH$w}.4MO#! ^$< #c(Q&qU(fGh@B&*h- &"܄.0E&,<&9F%4k:$)(A>",)|M!W,&J_**!,X-v ,Q@-- )g$+=&"WYT$#G LU ^u ť+ՐC$I",N3 w'x( 4$$?%"HP2J# 73 ZK* B+w-  W!,w(x<&ʜ?-EN` #\%k)8Ryo  =V$wP۵/S,}"zCP-KF~\YL)m#‘&_="!&0Ę- A8,]/-!!(w,E0A|%U[T/V #uUPn9$d)  ,X0+y(WT(=n++&;+2*1 SQ!*Su .%H):[V *7$0,*LCf(!a,!ln&!h"L-I J  rݘ5S$xr3+FK)Z2O&D03c#W+eX9#(_?"W( %$.L# ؃ 15j+y=k%B!1rOO%*R"O *}!m4"J#Y7"!%H=rK yl *-O&#g#J:)i(J)a%9s .ZZ  PM&b-wt%"LW474X(P!XH)};# ˖,މ"n؏.D(#>y"*(!>,+ZHNSQ'Q$C3m2(.'k&)Q+ 51JS9M91 Af5V&Gf?$,C]+Puhȣt${UtFF:)O*OOt<% dD-Q+d;[y(< y(@'"$wŧԈ !2![v!P'(,P6% ߭ 7,T..M%  7`%ew G}"3ޡ 2+ק.SnG R,_9+"%'P v #,(, 8˷0($T#;);#(Mc4^C.#2+!F&! Oh-Q&k+@\G4D &F9 d)*o* >\k 3d/A%iF  -"*VU iB.7"}w#$ b*"C X\2=(K1)$ *+ >'?vׂy6$w?\R(5 c%usD -K ';,%Mu(f+ . k $1,.O-x?%@F)^"(VJ--< .#^45%ЃFK J-k,LQ)9%6A} __*=0#TUfdrpOPRSQ-}.',RA-% )RU5"+3-'Q' 1!TZ($ *W.&SI.Ԗ*4,$b<)&(l='Nj,i0h&3. <1%,6 O!OP  #@m%FP( KG+S ?  @3!ze-=QX)<Ty#@8*I$6&!S $%l 6# @ Y& =#W(W(w ,; Z ?t#Z@"5*l,U<R׀88*;bU!Å_,2*ҙ^%+.il)-K?$:n. ԘΙ(!f 2fH,(0&c" .04%3s$S#ѕ(f$I\*2e%hĈ7c#>*=(a$U L99",&:7)||-.I +6F*?  (9I#[' T-W8a(%,3&V 1.$y6[%iF*-yP{&ħ O$*->[%B)=$ $*%rp#x-s"'= S$'Bk)R%  r.[*_ #}9D bC&ض"XK*!6#7P!p-} Ψ8+* sGH%kܯ- C*g&B!$x,'ѣ"%˕#,ʼ?J7 w " )s7t,L ,J![;Umvsc8&qS$wBXE&,Q%+%&!` /@$!oOb}8CZR%9 W$$&#?A3>h_$#.A! \.!-B"" :`2rx5 =".kT-9M"%.8ы**H., +$ O3Ӆ|Y)wyM*̒,1_r '=ہ8  wi!{:~B'",8&H!&X8,XL/ e))/, *~#! &"M |'$Ň/-Cb6 "aU-{޹›M܎(L:U'NX`M'g&H(yp$6oL%< |+xT@3lD.C>*#3CK"% w-MIJZzZ*<T;>Џ(" ( lYO -&YOuXm! +'KX acMWae,w&$ 'N<(U%1t!y=9y-Dy%Y!$>}0 N N NQH0 >}TgFW0 0 0 0 WTvN90 N N ND2X 0 9lBQ5$40 0 0 0 IbP:TR 0 0 0 0  C6c:I0 0 0 0  ? JB$0 0 0 0 ,aUIE0 0 0 0 D@V; 0 0 0 0 4[; 8600 N0 0 S0X)O9N9K3W0 0 0 0 +3WzTvNR0 N N NR,UDDy@0 0 0 0 C@QV@< N0 0 0 0 @<wAx>O40 0 0 0 \O4N5;QMO0 0 0 0  JLvA`6@0 N N NX)0 6@O4;T@;0 N N NX)0 RJhHU`30 N N NKW0 3O0D0 N0 0 #BTm<W0 7OT=C0 0 0 0  C7=0lK,0 0 0 0 \K,N5;Q@ N0 0 0 K@wD7W)0 0 0 0 WPPs5=Q0 0 0 0 QUI2`0 N N NX)0 RhNk@EA0 0 0 0 UA@DDL0 0 0 0 VDLOEQL0 N N NaX)0 L?L30 0 0 0 03C=Ho0 N N NX)0 HoUn0K0 N N NHW0 @6|Wi: N N N NXt0 :OHVU0 N N NX)0 PohMI0 N N N 0 GB&Q N N N NX)0 7 fh;70{0 0 0 0 D=5319 0 0 0 0 !_;@WG@ 0 N N Na@ LO;-70 0 0 0 6="H3C0 N N N>0 COTe2~0 0 0 0  %9D:TWM0 0 0 0 WMRIWP0 N N NNW0 POC488 N N0 0 88OKoFH N0 0 0 OHwM:9 N N N NhXt0 9O5E830 0 0 0 2=\K;E0 0 0 0 -z:IZ8V N0 0 0 c=wHu1RS0 N N NRSOTeS50 0 0 0 -NS5;DQ;0 N N N;A]HZR0 N N NW0 EiyhMK6N0 N N NX)0 7n}hKZ?T0 0 0 0 TC=00 N N NW0 0OPO70 0 0 0 TTJ6I~0 N N NW0 BlNhQ*HF0 0 0 0 KQD63EU0 N N N W0 EUOF2 A0 N N N(0 NhK!VJG N N N N.Xt0 JGO0TT20 N N NGE:2B-0 N N NB-B-B-A0 0 0 0 A;?H0 0 0 0 NVIWO 0 0 0 0 O @Q7\60 N N N6JLm=0 N N NW0 =OSV70 N N N6%oLvOPT0 0 0 0 US=1T71P0 0 0 0 1PF\6`50 0 0 0 5V2N0 0 0 0 mMA]AV0 0 0 0 YVC,U}V0 0 0 0 2#RC50 0 0 0 ,5UI00 0 0 0 0CQ>M0 0 0 0 S8@fP?@~0 N N NXk0 @~2WCu0 N N N0 T_DPTb0 N0 N)TbO>IiAq0 0 0 0 }Aq;ORCU0 0 0 0 :G1T70  NN0 N N NW0 Ih;%W;5J0 0 0 0 p5JH=89x0 0 0 0 u9x?;0 0 O0 N N NX)0 429@0 N N NW0 =dMb:Qk N0 0 0 Nt?RwKI:30 0 0 0 V:3hE/:I70 0 0 0 O38L2<0 N N NQH0 >}MtGK= N N N N2K=l?HP20 N N NW0 UhLASc0 N N N0 ScTg4:^0 0 0 0 4P7 N0 Q N0 0 0 Q w=@(@0 N N NX)0 @JG70 0 0 0 SN G<@0 N N N) 0 7 Gh2ID:@0 0 0 0 @=F7V0 0 0 0 DVHOG N0 0 0 GwH6L0 0 0 0  >L6;80 N N NX)0 >$0Y5(CL0 0 0 0 CL5MK N N N NΑW0 KO6N010 0 0 0 ;$==+;0 0 0 0 ,a;UIH0 0 0 0 W:n:140 0 0 0 I!4KRBP;0 0 0 0 گX)0 >n7}9 Qh0 0 0 0 QUII0 0 0 0 LW3QLJ N N N NA hD\J_M0 0 0 0 Y9=$90 N N NIEFP0 0 0 0 8?QFP0 0 0 0 P>qT>u0 N N N>u hE<=N.0 0 0 0 LCOKVFf0 N0 N"=FfOANIj N0 0 0 0 IjwR50 0 1+?SB N0 0 0 Nt3wPVADK0 0 0 0 ;A6H:H0 0 0 0 <HR=3K N0 0 0 QQ3KwN>? N0 0 0 0 ?wO6=H0 N N N=Hs.hQ=HBu0 N N N7X)0 Bu54tM 0 0 0 0 2_DU? N N0 0 =?OOAgV0 N N NVOU/AHT0 N0 0  TA<JF0 N0 0 JFU86m0 N N NHPO\R@0 0 0 0 YACTh0GF0 0 0 0 BVK7M/0 0 0 0 !8DU10 0 0 0  Oq4j0lF0 0 0 0 9EJ?TD N0 0 0 TDwFNC$0 0 0 0 aG,l7{70y N N N NXt0 0yOK@PM0 0 0 0 RPVOj0 0 0 0 POj5hNM0 N N NW0 MVM090 N N N0 3KF[BK0 0 0 0 6;=16:0 0 0 0 ÎO9lUZOOQ0 0 0 0 A3@3D$0 N N N&0 D$8S40 N N NMX)0 4OFo5L0 0 0 0 nQ5lLd@5m0 0 0 0 "5mUI0 0 30 0 0 0 I:BAI@ N N0 0 @O2tL8!0 0 0 0 B8!RIWW[0 0 0 0 W[HBR80 N N N=.R>:30 0 0 0 e3R=0 0 0 0 ,aUIGO0 N N NWX)0 GOOEuQ#00 0 0 0 JPsWUR8x N0 0 0 0 8xwPD0 0 0 0 DSTgT[T0 N0 0 3;TX)O3EIW<0 N N NFև0 S2AA70 0 0 0 .7HO>30 N N NPh@L?R0 0 0 0 R?@H0 0 0 0 VHOEQ0  NCI N N N NVXt0 CIOKNM70 N0 0 ;<S=WS0 N N NB90 G#3LT5 N0 0 0 0 5w4N;P0 N N NaX)0 L0;5T0 0 0 0 "nD RIW5Q0 0 0 0 #G5Q?6*Gx N N N NW0 DL5P>0 N N Nӱ?0 E4g190 0 0 0  BLvA`0 N N Ndl0 H=1==0 0 0 0 ,N=OIIP30 0 0 0 CP3O230 0 0 0 H3Va8;0 0 0 0 B#@ 5QO0 N N NW0 BWK;0 0 0 0 0;FOxLN0 0 0 0 1LNJV1V0 0 0 0 JVl>>PRH0 0 0 0 ^RHW 9<Q00 0 0 0  Q0CP=@0 0 0 0  J3O.L0 N N NQx&ED0J0 0 0 0 JHOJ N0 0 0 Nt=wS?R0 0 0 0 VRJ2A40 N N NA4&OG;#50 0 0 0  7CLpUj4c0 N0 N40 N N N0 >VaJO0 0 0 0 (UOUIR0 0 0 0 P,RTvN10 N0 0  s1X)OR OR0 N N Ndk0 OK7F N0 0 0 (j8w;;r3 N0 0 0  3wJP;0 0 0 0 )%7@3G60 0 0 0 E60o@V N N N NZPX)0 VOF9j90 0 0 0 H0 ?E@1<0 N N NXk0 <UDKPi0 0 0 0 [Pi^hO130 0 0 0 2CFD=0 0 0 0 ?l:KW0 0 0 0 CpWih6=RT/0 0 0 0 1? J7R0 N N NX)0 >$CET 0  N%^7R0 0 0 0 XC9K:Tz0 0 0 0 λMt7U&0 0 0 0 0 N N Ng0 T>RH;) N N N N7W0 ;)O3?}M+0 N0 NOt@UPEG|0 0 0 0 "VVIWP0 0 0 0 Gk5A<Mu N N N N2Xt0 MuO7JHRG0 0 0 0 -NRG1J&T0 N N NTO=qM#!0 N0 N;!R7fC0 0 0 0 <5JR=?0 0 0 0 ?lI5GL0 0 0 0 ;I0DU0 0 0 0 *UL 2Q0 N N N>0 Q8S7z N N N NZPXt0 7zO5@O;0 0 0 0 ;5h9MK0 0 0 0 ϏMKl93f30 N N N9W0 3ONS:8p0 0 0 0 p8pG8G_0 N N NSW0 G_O>c? ;0 N N NMB,LvOPV N0 0 0  0 VwWLJF N N N NX)0 FT5K/N0 0 0 0 VlGGK0 N N N/0 R680 N0 0 8JP>U 0 0 0 0 1F8R4E0 N N Na0 QPJ I0 0 0 0 pOj@LSR0 N N N[0 EEKh5 D< N0 0 0 /A<lE;G N N N NGw63G/0 0 0 0 8?@Q0 0 0 0 UV>O;5:H0 0 0 0 DHH=P00 0 0 0 ZG08ND90 0 0 0 A;9Q AX N0 0 0 0 AXw@Oi< N0 0 0 H0 <wGMEB0 0 0 0 I=,RN90 0 0 0 9C=EF N N N NW0 G2hONQ N N N N1W0 QO2U=0 0 0 0 =E/:1t N0 0 0 0 5wVaLOB N0 0 0 H0 OBw4Y1S0 0 0 0 K*N$VIWC0 0 0 0 cR9TEB N0 0 0 0 BwR5E!0 0 0 0 E!V2Uw N N N NSLXt0 UwONcGO N0 0 0 QQOw<>B0 0 0 0 5}L,J30 N N.U0 0 0 0 UVCJ0 0 0 0 GXJTm070 0 0 0 07RIWS^0 0 0 0 WS^RIWI0 N N NNX)0 IOSOIWL0 0 0 0 2CCP=50 N N N9\.K20GK~0 N N NbX)0 K~O3TrVq0 0 0 0 -NVq5EN?&0 N N N0 C4B@?M0 N N NW0 =d91U0 N N NX)0 URWF}0 0 0 0 F}Tm;CH0 N N NX)0 M4280 0 0 0 %8474=0 N0 N ]G}Cc0 N N NX)0 >$BF=0 0 0 0 2 N &??,#J N,$ N2," N},#6&?,7` N$)0&?],$ NiG NU Np)0&?,- N ,* N' N,&&?$, N,w N_ N,  N,a N, \ N,) NJ,- N,D N+s&?,J` N Ni,2 ND N, N2,)0&?f,C NJ(# N, Nb, A N", N, Nb,* N") N,"| Nb,-@ N,+s&?a,% Nn,.: N' NJ,* Nw, Nz, NS N J Ni N  N, N,D NNh) Nk, NC N,  NJ,' N,+ N , NN,.R N, Nb, Nb,>D N  N,' NJ,- Nb, N,W Nn N, N2,'&?6,e Nb,w N$| Nw Ni,PQ N N. N,&?O, Np8 Nu?&?K', N Ny N N N,Q&?6, N N,) NI,* NP N&?, N,6 N&?2, Ng, N,% Npw NN,.R&?,$` N,] N,& N ,p Ni,% Nb, N, N,'.&?, ( NG N,H N, N,) N,w NN"g N,% NY,! NZ N, N,. N 8~ N8i N+*&?,) N,%b N,G N6, Nq,Y NO( Ni'! N,Wk N N,*&?,9 Nda N N2," N , N] NI,, N, N;, NV, N Nz, N%,% N], Nw N' NO &?,!: NZ,P N2 N,&?,%&?,' N, N-, N>,` N,%&?, Nb, N,b N, N;} N,'! N,(&?,# NJ&,&?,@ NI* N"&?o,? N) N,'&?,% N,& N,A N% N,w Np` N,9 NVv NNC N' NO&?,,/ N<\ NIy NN3q N* N,W N,2J NK N N,&?,/&?,%G N,& N& N,k Ny N' N,N NKg N0 NO&?a,7 N$~ NOB Nh NI,  Nz, Ni0 N,: N_.R N, N  P N;GQ N) N], N* NQ NW% NT N, N,5 N9 Nw N,0&?,:D=Xk,=W X)fX) PW)EWXk-X)C=X)f4X)%WY{W{Xk X)/{X)rXkX)X)m ""+TGC ͊[(C"F#Ś&T$  HK' #[Q-,l(;.o\ !VK@-4' VN+VY#k!Ė-VV y!} 9.Qߝ*,\φ*s  4  |) uK 1WabXkaeZWad)RH: .'2G(* D0 WWXzXzWWXzXzWWXzXzbWOXXqmQWzS>XWEm{;XIWAX;XCEfX'X[;o< g =n'IX X{.kWXvX$lhw2WW|l1 A BRM1WXV*<WW|nQ: } iF) dwj6Q  _4WWmn|1XWUhR J}PWX#1T WW$lWaq-m"CX`X+KGX|X=m5XXHWmmPX X-lJF/WW6 ~!BXtXPxjvBX Z 8D5WXj0 )86X'WBlE+WW9>WWZTOWXVoL{WX4:XW3XWjOXAX\?<XX?mCWW9GXXU?XOXii :vWWp8X;XUNWXm,AQ k IXxWmRSWWoy5X:WPyWXxnUW hdT@nGYXBX@jOXJ =j6 k:7XVXdh<5WXSy5W 4kPBXXisDWl:W hEjUWXPXX2Wo2X< CmAXHXj9;/WhCiWX!iIXmXKKWWxnMq)l^3XX^TXW>XtWgm<A.X 7l@"WXhkBW r&i4UWWl > rllA.Vlm9WXILk;7WXrm>J| SFxX;Xo:4X%X6m51XvX>mEaX WTmI 3 nMWXeTqXXRWWi+=TWX?WXKmF  [E;!WX!DW~k>LXdXTR1XNX-.Q[ j3XUW;EWXTWXR3XtWZjW SjVD| K 6 XaXSkCX^X!o?XtXmOXB3WXonKFXX3jHn ~61XXXAXWk^F J 1HmFWWl5XVXj'HWWn:$Xuo~WW *j3 8 /boQJX.WeDX2XZHjXNXA]k<AXAXek;z 9 HWX7WXqH WX,OWX^hV<WX\hKD  7uXsW m2vWWj=EX^Wk9XVWnDXX<mMXX<jN2% r OAKXjXoTX6XSlD S %km?X\X7jVoWWk0% m1 kuHW Or GL}XWi3WXxLj2uX~ HXtWh~0t  f?WXzoMXiWTXsW_\=nmzVXWklA @n<NWX=RizNuXYloM hmNTX6X@iF ' ~n=kWX3oD2X8X\,lFWW jp;~ )k33BWWmmGXvXIoRXdX7X/X\TH#  CBWW7X:nD F j DXjXx8WWL9XX-lh=)WX=I7rWWjkVWXgmGWX l6XF -LjtMWWW&X1X8GjQ>XBX@OYXXWN %iM>X|X00WX|=iEWWbAWXja;NXW@WX ?zXX_l>XX4=iWXpKk*AWXLXXXnMT5WW<m<X> k Sm -QXhXvJWW?XX& +Q`X/XnV]X Xo> .C}WQa>dWWo:Y u.BWWksKWWiOW 8XW8j5sWX*mh`7UWXGMhEXgX(}kc8X 7g6X}XzTk?V *RiW p6X|W*lUHXWo6XAWF@)> /I0XZX,9{XWCi|8XdWj5H'Yj2GX?WFU:XXUl:V(XDX a:XXkDWXhAFXAX!"hI/ h8}  8A,X9 }m3aXXW:XXQiQN 7 M&XxXIjE;B Go2UP jKtW$j:x1 iT_n5 AW"WX^hJcX?XBEWow6p <<WXzmQO % q7Wn7XmX~VX|WT5lXE NX;WUJXpW7W iELX IKWPWWo>QXu GlX}X{=oEX ChFWWm?X^W*n O$WX5iC1"XiX=K)XXJn EWXrGi@X r5WW]VWW;lN *oPWX[lEWW7NXXWFlPAW(lDM  k4xXX_l1Kk( lK el; mCX#X7ai(KWWkAWX(OOX2Xiw9 j9WWjSWWB9lXXXQWWlBX-XgmGSWXphy193 4 BX2XvEXWW k4bXXb8igU)/;pX}W o6?  Ei*LWXFj2f  A 9X1RX;Xi%nv@m Q=nA 0 lN3hX^WnS-W IahTFXyXRo7WW0ZW Rk7; ; jQXjWVnUCl/1WX+)i; Il7X W?:CWX]jI 9~Sj;7x j>kWWk<X @h_Ic n;XW88PXXk>GXwPX:4X=j-BWX>F%X2XDjKB [3iLWX_ UBWWB;Wm B |ji1 4XEXv,J JX ;8WWi1 l7XW2WWj9VW$hNLQWX#lFXW8jXK r6FXOX!k:  MXDWzhQXXH1mD>WXlCWW<WXMfoKHWX(LjRXpWoJfX"WlCO!X J|MXjWhCX?XKiL4XJW"lVXbPnVWXohU!X%X.kFH[ mF7 ^ 1KX}XhLhe=W hUR6XoXQl8' - i8WXf(nAW YNn9AWp,l=]WWhLX4Xp?WXj5NWW-UX}X,kCXAWkW XWlNXAXmk?QXxW=hI o?(WW>X2W\mEEXWkpVXw RQW mMXvX"mDX WxnKGH >CkQX3 Ln9W Vn:j UWX E4WXmMGXXZNX;Xdk46Xv(rmM D ABXW8oK 9iBOWWm2WXERXWm4X?XVhU;WWE LWW/k-R GUWX!njCDXHWk@2WXl$iO7XWCn(CzWXnn):bWW0oN ;i$CWG0WX@}@kX|X<VnI nCwWWlRWX]ALWWhEXw mL"WWVIXaXzyh0qWWqkRLW VWWi2(X0Wl2iXyX5m?-WWoGXcP jD!XpXw5m27X_Wi@ s &iM* ~n8WXl(BWX,k7X~>LQ{WX&BmJ:XAWj7 Q #hFXXwTWWEX`bDIXiWVn;W K#WX(jR8 )jSD{kmI8  &m4WWh=WX&hJXVWE;WX{/lB~W ao:aXfWOWXCmIu  )nB@XXdnI&XaW/m]UX(;lQf ikOWWNo2XrX IWXdP-Xj 7:-WXShX#WmIs qjTWX.SiO A?ngBVW 4;XX2WRm`DV  1WXL!hCl);kM6 1 iSDG f*jgR d Uk1 D A@x Q cn4oWW9OWXzIPXWdj<WWxnU ) !=X2X=SiQ m1LX/WoJA 0 Sl@IWWN(X`Wl@eWWn8Nz hGWXKP@XlhEOXWjlW ql6inIMWEn>pWXT_kOWX6iUIn ;n?WXZvl>XdXI@W%EWX*hA>W 9PX XKGiJtWX=Eo6XWCi<{WW8CXX~mhQWW EXX7XjWJMXWnmFWX%j]J PjGIXSXBj/G>XXCjO %oIWWmhJXWGW iIXsW"o}:`SkSG ] .SkL R H13XW#GX; }8WW!j}SWWfm6+X^Wh=X 1XaX Kk1mWX]IknAWWnc8 #6XXM1kJF"X+Wk; Q hT0WWn7l m=? #B _m3XHXK l`;20jLLW.jAXnX~9-Xa USXtX}o;3GWWn18%hO9XWFLXXXPj45WWoKfGdTWXm 2kWWo|T,WWh5 rCSbX2X8iCkWW1IUWWylQ EXaXFo+5WWxo`R s P3XXA0jM9q @ 3X;XRm6B i GX%X^n1IY On2FXW7X'WkR^WWyIXOX!mJgWW!hNXRXphmCWW:l>RWXhOG amOWXmBl l?X.WjZ2*XWJ XX0m8-XQXeDWX IW[miFW \lKWXKS2CX:Wbh^CAXXpl3 K %Zo7XWlF@Wz$RX Xvhf4WW%n&?wXX%mF^ 9 ]oaT^XW2nWVWX@ @XtWCCW %nDQW(Wm>XUX\DX2W?_WWlfDc HoOZXX<Lj :qy1X;WxOXXl,mZ5 .n#DXWA:XWnLRTX=Xen7XhWm4WXjWx ; o#JXW1XaX9k2X%WKWXNmCtWXcg:XaXrk2j e r|oLNXfX?i6ToWXDjOU$XW0XXWkRNXSXv|N6X' j:"XaXAl;4WX iCXvWiJWWmaPWXDkgA$ @ Uj9o /NCWWRX;Wvm7X^XjD>> a ooIWX@=X Yn9rX6Wky8 UMWX_PA@GWXkRg Rm0WX&l@WX,k@wXb CnEeXWmYTkWWjEW }0KXNWAm1W rh5X" %n5MXOX X@XLnR xn^K "TXQWXn\m%?W iB7X.XnSXXAmL } xmJWk~F7W FWWlKNW /nRXzXo)3WqL0XX6DD 01~ ^ujy?XX,-kCXhW.kJpWWhZHCWW|Ew mLgY l]8X;X:RiNX Ci0XW IHiK 9iU9W DqX1WjTM WXm!>WX,jUS WWk}7q a dmBnWXSi RXQWkUgX+X*jj<XWk4A$iJ( 0 iAo53X^WVieOX, @MWW~5WW`k9XUW+oP@yWXF'HWXC o3WW oIXXi :XBX5i L [u-kQLWXn7GXZXc*hHWWXnRWX ;lF o4%X>z lnAWwuosTWWTj1{XW<o:X!X.k 64XRnW ; -nn<X,X~dh<W hlRXUXx@0Wk?xWXC9WX"1kBWXH4WX; }na3WX-l3R kB PofAX$Wo?$WWlaHX}XVhvIXcw:XXWl57,X%XA_n 2WX>#kK Q Amk=XHX$}l>!X lU,X/X-gm3 >mWEXo kZ<XWh]GX@Wj=XDWmSF uPXX4X2Xn`T?XyXT4$WXm'C hFW mTSX"W.P <PXC uj;XXU1X'W"hi7XZX]o5h> .WUWW44X" J\PX;X8IkS|WWFk3SWhjQWXR8WX `D?X -FX;Xi9JVcoIM"WWShE ji32WWnPWWj2XW lQoXl RWWLV j4WWCBXaWwoV lAWXhHx h|2DX2XlZ<WWkD :XXWi25WWFzX Wh3WX^!kGWXn iR 0 j9XJW"lV9XoXvC3]WW6 WXCJs dAWX`6pX`Wi4X'XRiI9WXNW 3>X2XCXjUWXlBEWWmQ! n3WWO@XOX>FX;WjO3X^XTk4XmXNXX @hS2XfWMnFP n;tWW\o.HwFmU %6lWXHXtXAE7XXWk`@ jilISXWj74WWblDWWjADWXokQWW$m85DW Rh> JWXf.n=O)%i\M>W Dl8( m@#X W!k@ } n< WXRpm(CbX )oLXXXU kTC ZnGWX*lIWXqTh9TSlFA ~.lv?! d }ei83WXlmR4LP.OW$XX54XXW iNGXWmcFXWj J A 4m5X2XLRn6O ek+:WX@LX}X+nN<WX^AmQWX j?{X6XnnEX@ 9>WWoF )n~O PHIW WAWWhrTWW=XEWjTQXXNEXaX{oMVX7X*lL5aX8WrJWWm9XX@SjNW $hBWWUXXX>bWXnqPP thaO ]oLPXX*o QWW<WX9y9XyX[m5WXor2W jALXX:.5<XX'kMX%X\4kL QMkNPX=kKXhXJNWWNdX2W|h> D 5/WX9lVXAX7SnfH<X~ "lN4XWj2 XoXgbR[WWHEXr iv@c ]Vl$8&X+W;MIW Sl T{ d_iWSX`X /DX}WZC;X}X{qn?z m:XXJk3 ^8XXXykC0WWOh@oX\WNWW!iG5 W i'8" t o0W :OWXClCX#XpDWXHmOWXn}4 \k; $9i29|WXexiL R SmIWXkEXTWnHwWWoTDWXe#o(OXXiG~XvXypkjWWkHXJXTi:w =>W liSX( 9lCXvX]hFSWX+KTXXCl2X~ nO GT XXXx*i; " yoNK ) =3WXlo=WXSh04E~MhE Yk;XXWiMnXRWm;G FiN Y rn:E WX-i5XeW j 3;WX:WXkouOXUXm9( :-UWWo5X4WQ kRXXNWWAXW<XDXniKXMX8m02XWl2> 0>4WWl0WW>j6uX&X%tNXsX;hS 1XOXl8Gy2 TX;Wf4XsXo{VWWqSX:X(B]WX0xWWMo6a [4XXW kHEx S"X WMn5e a2nN'WW3[XWGi=&X/WRWXJhJX5XYQWW< O .h[O P YPWXCkUe. t$j3G$AmK DiyHXiXym+TX 2=WXBK(X2X8KiWX@oM>WXJMTWXxjPXMXCo7CWWmTX-W8#X;XiU6X1Wl;WXXK58WW|QWXkUWXuiNWW<k]Hq ,k14WWm:eX6XQmV^WWo-;XX+ui"0W3X+Xyk!B0WWRWW:AXaWl=QWWAm2X* ":WWkaEX^XHnF5 nGFeXX4_oOXP 3WkKXWjO5 < 0n1W  O{ b {nEX8X6Gmo0,XWMWWl 1WX/h8WWS2W h3WX3xojFXmX]lOzWXhSl5 un,@X%Wk;W DRlVXX!j_1WWkDYp ~lTXZXG@3}X;WoP 3 yoLWWgm2XXGX;XWnwUX8X\P0X WPPXXXo>WWj);WXnEX m?OXgWo05WX!jhI {=WX8kEX@XyVWXylAWXjC*XXdC!X2X9oA0X 9m:X0WlDHWXnGo nOC "1lHL%XAW@XM Dml8 XXl?vWWhTXuUXWIXXJkwItX, AA\XtXDo?X< k.T XAWoQ(oTWWr2XM kDWX!OXX%PWWHXtX&ErWWn6.XVX0GXX5xmrUX@WUiP]XX(UDjW jNw )PKXXXz`F? -imA0WX|=XaWn>FWWHXtWiG*X5XFon8@WWykU4K N%X;XU!jP% YvhuK ,j8NXG|hlOG9jQX\Wdi]:iWWn=WX[3XaWiZ6X6XRHoV  VjQ> nR/ $kAU "o=lVl1WWJTX;WmEX5XPhkIXAWnIXW_h>WW!?A Q Vj1 OFUWX"1kIDJX=dlU%WX =WX7oE34 lj1GX\X4l3kXZX]JWq9WWn]J}XLXSiI XW=iLe m6XWTkS ,NAWXdiLtXhW*3X IBXaW,l4XnWj63WWTX;Y7%WWjSXY 9kKX7W`A/WXqk{98 t9kCBhWXA3Wo ;PmIEX lPWW o8 h}l0NX]Wll0WWjMWXCWWidJX7X5mFEWWki~= WX4CWXQ4`WWZ6'X;W<K3XX~F,XWkRWWmN\WXLj=0X+Wbk6WX+To0k LSE(X'W"BW xmKMPWW<X;X\kX2VWWcSXXXBiXoRXDW{j:4WWML\WXj|8WX-TWXGkF3XXkN@WWiTV6WWiAX 9$PXtXoxSX\Xg7?X'h81WWm~PX\W*oQD D 01WXphL4WWHXtXAj5Y nJKXIX %kY4X X8 nK8mBXbjkViXWnSSWWj!:XWOn<W c@n>rX"WhCXTW,mF-XwX~hGCX8WlVWWmvV 4&kDWXrn9R I QnG&WXrnK_WX=|i:7XLX1OXWAi1DX&X_Po2> $blCWW4W )YjnKX%X6d2]WXqBXX]|:WXhk0FnWX ixDpWWo';U h&oJXuoAX(=TfXjW+iXQW <oP WXGm53 B Uj7vXWk_L ^nhSHXXnFX r~oG1 ]NWQkh\> DoI WXrhE&XX!m8` }^:gh{D iPX @XsW_jTa }2>yX0Xp<jS?WW0-XOX`lL & k\QXmWj@W h1XwWCWWSAWXLyX;WGWWGaX W"o5WX~ym@PX>Gm#9WWChbKHXWrn"7/FWWk;Q 0vWXnMWXri;UEWXl:XXv!j.U @<W m-C *KXaX4hDXb jIWX-9WXunVPhGXrWlAQ- F8lG6AX (FXXWk1 $Ul4wo$La oDuX h7wXXX8KwWWi!NWW0WWn6WXCEoWWHXV i-4?XwjHWXjCT QmhF$W -l2xXX+PXOX0: XtX>l|KWXgo,3() 9WXAQWSXWml4X?XglOWX,8kS9mNW oE2X rHWWi@XWN6WXeIWWOXXUB1XEXk2S XX4D hoCX iFHWWCi12XRXxn? toReWX<mSXEXJ8kePW J Mn0KLX> *mq5"XUWn4Mo jL#X7XFHWXnle;Y amH;WBWWZm5YX_Xd>oHMX$XAnmAP v8XWWX Xw(5WXZRkH]X9WoI_W nCWW#kH" c.i>Jn yiV KX X}jPB5XLWnN M=hWW:WW]<WX\2m7OJW hQWWo8/WWhTX @UKXXUSKX ~NX;X\CjqUkWXLXXXqTX2Wj?  4LhXWkq5\W krO"XW=i0:XmXynY:wXoX4koE,XhXLkLB 7RXWWKii2WXOlLWXGoNX~ n@WX7jw1XXcmFXWn=~ rk6>jWX=kzK  F(ip;HXBX5iPWXmbVX_Wv4WWll5XWnLX+Xy<=xX Xvi`>XhWMl7WXx0cWXQHoc= od4X=WnHCX 0AlWXl8X n6PJ  kHWXH"kQWWmn 7WX kBAaXXYLnE WkB R 4jWX0WAX|X@1WWjEzXyXRm:2 .L?WX #iD4X2X o<XwX2'WWj7P BXXUPXXC]iV$XTXceo[73X"X<{j&6WXe0W lUF  2VWWnF( 4.NWWnH An5HXCXzhDTWXlm2 9 mTWWkDWW|:RXs"7GWX%k8bXX~j^L a$m0WWki15WLXtWWXX OXjW@lOGAWWm$E 4jeIXWWPDX:W0~X'WRX} mAX%WjIOXXg<l@X!WoV 8N*WQmf? $%k >X hNXoXyn: l2 ."1XWhHW IZm;`WXonHzW DRl1WXumoNWWlG j9XKWo??XX"meSfXHWR=WX8hxE Y 7nBbW Qno; .kBXW'm3/X?X]5=X;X=oF5X-W hYV oN6X#W6hXaWhRWWnSWW=CWXK nP mNtW kDGX@ @X2W9hQOXIW}UWW=jN+X_Xo#nHX0X!oz>XTXCX1WmoFLWXeoEWWKS  iGXX7m;3W cq=tWXR8jCc mU4WW>h4ZX@bX;XziC5X^W<6WWm0]XKXiFWWVi4WWiV*X 7BWWUWXWm2WX Vn;T#X^Xi:uXGk&8XNWvi>OX,WAWX!CX{W0bW Blt5WX^nSXVXSV 9 A\hJ9 >TWWiUX/W3n/:*WWRW jh?[ iSGWXpMWX#lcKWldPX_X8lB6 qnb0WX@LO;XXQj6WW<Ji HirSWXH lpA!WWmO; mRWX{7pXOWntMkWW?bXOX&lPMX=WjDWX=B.XzWUXXKW nJ0WX(LiK%XeWVWX_ mEWW!F  ~l'KKWWQXXFoiA a ZxMXaWH,X}XUiY3WWui{A?XW o>?gXCXKlBeXDX ;mM jV<W j3+XAWjNl Bo@\X2WEE }Go<XqWT~ UXXnFX;XdHTX6 nBXWkOXiWzhJX+Wl8 CR< XjW#l~K  0|2WWNiWXSjB4{ @ ;jJ  om@ HWWEWX>XX}LMXWFo0X?XK1dXX85lUXWWobJYY*jW6 aiM?X5XPX6XEWiUX#X*oVFWW!kP Q FiI^WXSalUWW j$MvX[i>Wo;s D)6m)=XWij\Q}WWanRWWPWqo J i@IXoXT n9RW j9WmSLoXIX<w6X 4oWYX#W 9X9 hX>,WWnV\JXXW4m=4X#W9>X1WhWDW "l? 7iQijrKsWWjP4WWlh7XTXb~RBW "n$NX jm0uXIXuoHOWWQ?WWk9 jVWWkO8ZX"Wl7Ac9nN eQ^XX!iEXwX<lmTGXFhRm4Jh @XWhN| _k89XRK0WXz@WX{i2 Y _{V  k? WX_kMWWn2g 8 Ll<BYXXo*h=o KoqP5WiLXqW6WXzNj<XJW!hsKXBX5l#MWX!iHXX3X1Wia8) l{8XdX$LXX"9WXziA+WXKNoTdWXfiL=X @j=KWW#8c{ \7)WXHoUPjW hk9H E o]RW IWWQWX&o)@ Ck/PXWLXXn3XWFj4X8X\l3pWWQWX^m:5XX:X}X-CF0WXqkLcX5WumSWWm4  VXWA fi>7XG SVWX.m SWW KWX+jHiXMXLm5WX9n8  QkAWX@LNWWOiOWWov9WX+;l0 ;k[<XX^i6e bQm4WX%kKT i 'iJ8WWoGCU j?0W r$Q Ho8L  1#kTZ9hNCWW]n?SX?XpNi1zWWmnVI DX jKWX4nx?XxWhzJWWPWX!lJ X7xj~VWP DE jSoDBXWh4XAWNlFMWWkAWXHUX}Wo?8XXxXnPDX^WLWWkhBXVXqnrN$ l_D kdSX8Xyj11 ;jV 8 WhM47XXTk:mXW@WX+go5WWZly1XSXv[lzOWXUhR;xW h33XWh3  m:WX\>X'WjNX8Wl*W4WXZjc2  ;&iPWW.IX;X$S{WWA s1$XsWGVWWl6IXu SX|Wl!1c $ jSW |i=SXhWKvWW7XEWi? WX`mj3MXX4j=eW @>WWMXNXLoMWWi0WWk6WX;_XOX@X2Wy51A"XOWIWX9j@W!:XaX_iJ!&kGO WWj2: rJL UlYFh Y c<oD=X^X?C3WXS9U WXxO0|X*lBX W_oKX 2h@X/XSjRX8X$V[WXQn{J8HWX#TmGC jT  ~hEXkAF XzXCoWX"G WWClWDWXdnSXZW`(V o">WYE0WXotL8XXu6XEX WmGcX?W lr;X_Wj;X"WQWXBinQWWkm2XqWk5WX,V<WX!3 l)2} kxT K 8X;XU ; #Kr  %vn9 X~ 4h4B  5m_MX&X{VX}WitUX nEJWX jF1WWUn+BXPEEwWpl.FlWWG1WX3g1WX$xmsQ nZ;XX OXXsX%z1(t..4?" z"-(+;%%''0ZI$)@'`!"O~ s0uBX.T F+[(Ob6!<' 7 PGaJ6S6/.`&JV #&.`!RX 6/ B = RX W*U,b.`B 6/.`6/.`- -eJG 'QJ B*U : )O& BJ b*UJ"GRX*UMRX*U2*UVB &RX GJ&  *U݂6/*UM&.`J% ˁ.` .`*YVW >-:'h"B=J+KI-c?l+r#g_WafX)_X afW -",*s*&qE=,XK"K!*~0%@#.$]D'X]+}#%TW e$L$H)*J EJ +T)(-Fم*.*H$k _&*D_ō&J$$= V",R9X,H)8{ &"MD!;6*l@2) ]-3|'!Ybs؂!I 1!A^R0F-2pmZK*Hh)(fyI!$'B$k!p %  .0E!Ui&. wȐ,7BU yE*U&.ZT(¤*A%)Qp 8c$A&H)|Y%N, &ܗ;|Ϫ*#(wI!{D!R$*`?'m+H &SV"86'=$Z3B&Y,Qw$w6We'  w?*517$L  -5v9)$,$õ$/+C&;THY+XrwX[)o :J+/K-K S-^V&:D?-#*o  Z&*B#V#%B%*i*ͼ%h? ?,9&V @CF*I?"G4#E-.Ć.(*h"$"m -'yWG!+*$:$P%?d(3J2Q $I:H%"HRW'x.H&5++%d%*%=5EV@Չ E/( . 7)G?K)K- ɯ)( &P~8TP%m3:h!kIYMx)jx<><1 x)$9sO3ŀ?K6!E#`W{`!`C:L`;n`lq``r{+``xu-`e[`{xq`Bz>`fm%`~ ``},`yo=(`pI{i`#``i-6`W``r'`}](`{y``kW?*`,`8+`hHp`uhp> 5`z &```g(H`z#`m `6H`L`{}q`xb N`i?`|I'`$`x2 `i%`(`(L`g*`p`in.b`)`{4>`v$'`25*`li`wop+`co`xi,`&`g)`~<`{X"h`+M``zo`.`zr`{ `~0x`}7"`~`f`#`z)`]``rq`xG9`z!`.`Sb`lo[``xd!0`xy"`N|`}f$` N`(|`vPz`R` `lIA`g`-Y`gG.`-`kf!D`N4`t++!۶-t4N%^`9|&9ɦ*H*l-Ki$SI+1 <^,*)B&U+.ٹ#,|OP(fc9Iu\"!,: ;)"[C2 UG&q*v,XB$S -];?9U&9$%.,Q?) wU-F$Ҽg!40'N<TǾ(wFA ʉ#N$16C&;$A,~0$''Ύ-',RG60!)!-l w% #QɀW""'_M S!'(!)&b,7:щ%h,,J eAZ4( $+I\(IC$w Eq.0w$*m*~$  o*I'!8%8!'"Z3+r8&GR9#",< ;&Z* )0$H/#&;4$%Bz=1$0 R 6W-C&* &*hY% "%!{6k!p P+#j>o)|&+'--G@++=+sP i @~Ss=*/*A!5]E$D*H^G&V ;L(&*0E.*ʀMG8JSQO @6,&$+X)U/{T++D7ʰ#WB`c<+m"V)o+UfKH:IP<I[HHHIIHID;I}IWH1HFHIQLI^HI0vH[HHJHI*H%HHfHII9I kHH I\I]H+HIHH2IHHHHSI'I$I_I-II|HI@IsI2I I;I+HI5*HPH{H`I=AHWIHI4,IBlHH6I HuHHI(IHHIHI!H?IINHhIEHHXHIH HI#IUHII~I^ HNItIZHHHmIJwHI"HHTHOI:9IIFoHIYI<>HcI`nI HHGH3IU H.I>II/=HIOILIAIcIHgH7HqH$I.HH_IIHMHHQI?dHH4H8IaIaIHHIGHHI@rIHI8VISDI)KH0I%BIKIV'IT"I!-HIRHjHbI,(H I6I3RH&HiIbHCI7I eHIXIdHHICI 5HI1ZHyH\H#IY]HzHHxHHII&pH HIE/IM)HI^-W;ggk%(Y$'u#V+-M#E1(l(~.p- ;6RDpj&XAݩf@;-&M%%=&d .X?8(44IS -![߹$+-)n!Uڥ*, /7")Qs+~4.~SaWWW9jXW1}axX;X;%6%WW 8_XsXsAAWWXk5LX)XjRl_( X)=XaXWK_WWX A{dWX'X;WWRj_WWWNXWF_(WWX)6+WWX)5`X2WXjLY^XkX WA ^WXt/} r; WXX8 `LXkXkX)=c_X;X;%?WWXN(YWWXO=WXt0  XWXWX)8 WX._pWXtA lIaTXkXkWNNX{X{W6aMWWWF^X}X N@XDX&0 L W8 ~WX``XWWVM WRZWWXkP@ X)3XWA XXWK  XXX)B=_sWWW9/TOWXN_tX WWM_WWWRWXQWX43 W4\ XaXW4DX2WXE2T`IWXWXt?4`X'W WWW2XNXNX2N_WWXEX'0 0%aWWX D18 Z ZX)SUX1WXjN[" FZXXW N_fXrXXO`WWX)1_#WW_WWX >gXXX 9;uX=[iXjXjW4aX WWH ]%M 0 X)WSWWX)C_#WWgXWW=`X2X2BWW #7`WWX)V/pX)W)F_XNXNX)50X|X|X)49_KX=X=WAwX^W)EpWXaWG) XdWP$`XX&XH`pX X X)1oWX;XzE@ XtW/5X}Xj&mWXOLWWVO_XQWX}LQYf 8 8X 3rg WKUPXWGK^WWW5X'X 0 7XXG9X WPH7X}X}WG] WWWQE ^X)X)WI3_WWXkA_( y yX):%WWW= WXkWA&WX@W4]X)WK`WWXtO `=XaW/4 XjW`WWXkRa7WWXkV-X)X)W9?GX1X1XkRI B BX);_/XWXW07`XOWX5_XsXsWQ+`XtXtX Q _WX AT_( X)@`bWW]O_WWX:=XWX0WEX)W7d`WXVXMBd {XWWDWXMXtTXWWNaX W0 XEWEX)W/[>X}X:3.``X X .RIqXNW]` X}X}XkHTX;X H_(W2 `X"X"X)3A_X_XW5dWWW9Y_XtXt&XQy XX0 WXNoX1XsK`^X:WX=LXiXiW>#^WWXk2^X0WXj@XEX P XEW/5X1X1W5.^XaXaWMKWX}0 X)T*_XVXVWAX W0 `lXOXO4`FWWX)FQ^WW]S< XtXtWWhX|W/MiWXD% WXiXjJmz\\X)KaWWWMR_WWWSWXjXWQaWWX)@g^WWW<_XsXsX 3O`WWW1) XX:X:XO8^XXXXXO@ WWW0 AWW 54eWW0$IWW< WXtW}TXEXEX)FWWWC3WX;EaXOXOWI`X2X2TanWWWS,`XXXX(NX}XWGUXaWEWX1XtO^WWX)S_XOXOWbKWX XzP"XX0`WXfXjC^XXW1b_TWWWN_WX`WXX;& ?  X)TJmWXs0 WXO/BZWWGU_iX X 8zWWX)CWXWH`WWWMtXW)EaWXsWQ_QWWXkS^WWXkG^XtXtW4 [ X)1_( X);`WWXzP{XaXaW7a*XXX)FK_( X)I ^WW_dX X .REaOX6X??PXMX00 SXEXEX)P  X)26 X X X AaWWWKXWB_WWXkFauXOXOFs_(  W4*nWWW@_( - -X)CXXW _(X)<_XkXkX)Ta X2X2P<_wXNWWSa XWXWX)Hi K KX)S:XOW/=^XOXOWE`XX&XH(a]WWX T`5WW4: X1X1X 9 WX;WE~XX NaSX|X|X)3?$WXO N_WXW2;_TWX}X6"*WWWT-XNWP`XOXOXkM XPXPW9WX0  n nX)M WWXO?I_XOWXC2XOXOX VY&_ WXH/WXPX)WI#XXWT X)R XkXkWIX)Xk=(X)H_X6X6WNXX N^XkX .R`EXOXOWDXkXkWCnXW0> _QX/X/W: gXkXkX)V hWXkWO7RAddW6X W)XXWIa7XXXk6 aWWXkO}>W9?WWXkWc _WWXkQ. WWWHXWWW3XNX10 QWX1)L%%W4OWWXkUmX)W1En WDo_,WWXApWX7/FWXN NGX X W1RaWWId 8W5 WXNX'VXXXG:_DXXXO1 CWXj/_( XkS^WWWB X'XjTXOXOX)8fX @_( XO2%XXX ; lX`X/(XEXEX2GB3WWXk>@WWW;WWX)@RWWCH-X|X`6PaBWWBaWWW8T_ XlX /arWWX4X`WWXt?cWXN.)X)W/]WWB@WXtWJ?WXOG`hXEXEX)>_XXW64WX XzR*WW0 DA` X;X;X)G WX;>>xX0X0X <_( WU)WW92WXW NqWX:t ! !X)I_( N NWH^WWXkFWXsWD_( C CX)W\WXXIa_SX*X*X)P8WWW:p^WWX0^WWXD *XXaXXX)<2XaWXzT`X X .RTa~WWX)114X;WW2\_( X)Sl`WW]>XkXkX)Wr_X X XkQ XX(X5_WW4aWWX):qSX'X'XkH4_jXXXk1^XkX W8<amXWXt2t X)HF\X R}uWWW5^X X X):*WW<'XX'WT_WWIGX)T`MXXWFZL_ NXaW NWWWC7a8X WXrV   X)IkWX]cXXaW:a2WWWJOm  X)QZ4X|XW}=/5X W.R`,WWW@_WW3aNX2X2X G_3WWW0 WX1M WXO3UhXjW NWWXkO WWWJ`3XOXOMFWWWG IWFXGXGX)9aWW/ X)L eX;X;X)IWX%=^\WW0 XrX_P`XW/WWWF_( X)O`X X .R3vmXX0 _WX2WNaFX&X&X)=_:WW?XaXW8  < <W9aaXOXOWMa7WWXkIeXXX)3*WP'`MWWX D_FWXEW: M WE`XXWWCSL /aBXkXk.RK^XXW7a_ WXG/^XDWW0f4X)WIOX WXVcX:X:WPXNX10 BWWX)2E WX/@i_(BBX)K aX X X)GXkXkWLH_=XXX G@WXt2^X:X:X2Q`WW/R  zXMB X(MeeX)WW5`2WXtXNV`/WXsW<8aXkXk.R;' ZhhX)2X}X'FqWWVudAj WW1 . WUsM 0 WX`&aWWX)NEXX'XtTBXjXN8EXX N`X X Gha{XjXjW6_(ssX @z_(WWX)3dWWWRP_yXsXsWIC`#XkXkX)TX2WXjP1WW3PPX)0XEW/AXiX W;w2X W NaWWW4B (/`jXXWPn^XjXj:_X2X #4qXWFa&XqXqXkDf X/X/W?`WWX)?"XNW/N,WXV NX)X 0 XXX ?` WW5^ D/GXX8WWX 6XX1X1WQ(WWX)1*WWWI=XaXE0 `XkXkXk:GX)X 0 MWW_( WL;`}XOXO8 _XVXV Vz %WXt?1`XXWJOPPW:oa^X X X)AjaOWW=XsXWLG[ [/BX,WWSs_WWXkSX1W/_( { {Xk;YYX}X}X)DX)XNG^PPX)0`XOXO>^WWXz<_ WXaWK`WW:]aX X WV ^WXXz8]XXXk1 EXWW8_WWW6.WXWL|_( WBlXEXEW:_WWRWXhB^X;WXD8 `XXX; POWXrW:+WX)W/XXXkJU%WW0 _(  W8_yX1X1XO4  X)HPWWXkG_'XDXDX T&aXOXOWHy N NX)GyXtW/`]XDXi10 : WSt  /V:XXW3^WWX)Vp &XaXaX)B\WWX)SXX'XjXVla(WXXjTiL^ NaX WXtO`WXsW<``WWXX@WXEXH {XXEXz> X)<\X]X=^WWWK6X;WWHQWX>oWX22NXaWXzGa<WXtW?X)MJ!XNW6 jWX}0 aWXX>WWWI_9XtX]WWQK tQ0 qX4X4X27X2X0 ^XW/ WW0 `sX WXtCyaXOXOX)B &XKXKX)DwXvWRq %XDX&0 `XtXtX)@WX(X(W<XX XO/PZWX`XjRV XkW1TWXNU ;L_WWX)<XFXFWQX)X4WXXtV_XXXXXON!WX29X}W_X1X1WN`XkXkX)@8XXa=s_( X)?_ X X X)97WXYWCWW0 >WXkWK}WWW=r`WWWB  X)BWWWBr`iXVX7_( p pXk@ /2`kXkX WND XiX XMQ_7XjW9_WW5^a WW1^  r6rXEW/_X X H^WWX JX1WW;jzX{X{X @`WXXtQi`WXDXJ% WW0  XEXEX20`|WXX1WW_X:WWE*MR 0 WXRX)X)W=baWXOW2_XkX X 3`5XXXDaXWXtFWXXz=A_ WWWF_X2X2NWWW@CWXVXIT$X[W!uX`XD0 _vX X X)>(`WWX7C_>WXXAo PWWW2)_(X)K_1WX-W0jpX:XD`XOXO6X_X)X)W:`X)W16oX)WE0WX2WBX)X)WH:X)W/_XNXN)E7nX=W;aJWXKaeXWo:`WWDe.X1X0  !WWW3aXsXs.R7UX1X1W;`WWX 1 - cXzHWXBma+XOWX3!_XOXOW=X)X)X SWW._XxXxW2{_WWX)D*DWWX)< VX W \. WA_WW3WW0 `OXX&X3DXXWS(xWX; N_WWW=X)X5 ;XaXaXkQ^WWF `GXjX Xj9_WW 2nacXNXNX)M6X)W([_WW(0XDXDW4qWW0 X)WLw`WWW=8XsX`FutXX041uWWWFaXOXOWHWWW1L % N`XyXyX)V_X WW3`WXEWU'eXX=_q " "W4NaGWWXkSJX)WwXW0 X0X0W:} ; ;X)6  H_X6WXL`_WXLXj:}WWUr_WWX)D 6WWG4X)X 0  i/^WWXkAXNW%P  X)HaxX2X22`WWWB XNW0AR\X;XWE_X{XW2WWWWPI*WX`X1%aWW4 XNXNWPM  0 aXjX XOK  /_XjXjJVVVX)T^WX|XK^XX.RR^WWXO:kXXWJ_2WWT`XrXrWP#`WXtXtX)T D EWPo`XeXeX)D XX'XMaX WWC_XXW5^ } }X)W+aIWWX >`X2X2W>  /MX)XkI eXEWW;<a9X4X4X)4`BXMWXSX}X"gX)W N`WWWS_>X:WXjL.WWW@|WWWJ~XXX; >_$WXMXCTWWWTuX)WQ^XDXDX)6ZafXOXOXkA_WWX ><X;X;W>`XX.RP..X)4Ht WS_WWXk<WWWHWW0 DWW3\ XXW3a|WX+WD_X X X)R_( WK-auWW<`?k(X}X}WFnWWW1]oWX3 WW/9Ba+X2WXj<YX}WOX)X 0 `XWXt=U XEX''XXWXz2_( WQ:_XXW8S_WWX U X WWAzaX X X);WX1V}X)Xk/=@_X X 2_oXWM4WXt0&B3?X)W N  WC|WX0XFgWWW8`UX W1 `BWX X0 uWXs0 _( X)?i X)WQVX)W5aX X X)=X)X)W?XaXWFWWW5`2X WXtD _fWXMW?8aBWW7<_WWWQ,zX2WW_rX X H4 % 65XkXQMX'W.R d/< W=_WX9W1_^WWXDWWXk@! X)K^WXD_DXXW7XkWXz9FXXi0 ^WWX)9 {X7W/ WX W1iWWWO]\m WC@_( F FW5a!WWQ=`  " "X)IDWWX J_`WWWG^XXXk3 ,XCXCW8YXXSX1WWL~X)W/_(X M X}X NXXX 1.DWW&^WWXkO_!XiX W1a XOXONX'X'X 0X X W;S+WXNXt7 / X)W0WX}CVpWW0  XWWV 0 0X)V;`|WW=`WXg/WXORaWXtXj4aWWCX)W9XW0 MWW;aDWWW7aaXXWEZ`WTXWX"WXkWVgXX'W}O05WW/?`WWX)0m_\WXtWK_X1X1]I`WW/WX/X)X LFXrXV0  "/XXX PaXUWX 8 X}WLWX Bc QWAMa]XWXWXkI. W:X}Xj2WW8_( Y YWId`HWWX)Ln^WWWUO r rWVXNWQQaWWW@^XOXOWTFXXX)K0WW@`WWXkGJ`WXiX}J< uWW 52sXjW W6_(Xk5 X X{H&XW9_DX:X:X)<`vXiXiWU\`XOXO)E7a WWW0WXN IXtW;}WWXk3`OXOXOLqX)P_XOXOWD<X)X N X;W NX)32^WX2WF,WWX)Kd` X|X|Xk=m WX>1_XNWX8O1WW0 `XXX21I_*XkXkX)VXtXtX)4XXW7wWW'X)XtWT6^X`X/_XDXDXO5 aX X X)A | J JX)GZ_WW0V5 /4_WW/EuX X X)Sr X)4naWX/XtF:WXEXDsWX{GaWWX0X)I`XRXRWI_X2X2KX;Wa_WWX)@}X2WXE4aWWX)3aWW4G^X`XXjE)X X WFDWWX)U`rWW`XhXh.=_WWX)MaX X X)1WW04SWXO NaXEXEXk<_gXXXXX)E|a2X`X`X 1 ~WQ WWX)7`WWXkUX W0 _WWI`)XOXOJaWX;W@^`WWWOa5XOXOW?? W94`\WWWRA0 D N WWWP X)X)X)2`WXtXjPaqWW:^XkX W1WWWN)_WWW6DZXW Na^XWXtUWWW?Y_%XLWWJ XjXjX)NWWXk4WXS.X#X#W4XiXiX)2FXXXXW6 RXkXkX);_( X)?T*XDXMS0+X2W N`XX&X0P_WXtW}DvGWWXkRa7WWW>6XXXk@_WW]0_X;WW3`X1WW2WW05|X)WL[_XDXW@DWX _WWXO>^XkXkX)9 _(  Xk0O`XX!XIh]WWQP`XXW;aFXiXiWLaX R~`#WWX)6XtXtWIWWX 4aXX&XUWWWA^WWX)1eXjXNI'_aWX-XSWy`WXWXK_bXkXk.R@ X)TaXkX W6WW0 `iWXIWWX M\_(]]X)O_WWWAeaWWW1XNX10 =XGX(>;WXr0 !WW7!XtW?pXjX WRKX X WG9W8s[X-X-X)1: WWWHV XaX'R@WW&5 1X)XkO/_(WA-X)8XEXNW^X2X2W<_WW3xX WWC`WXsW5_(W7`KWXVW=WWHg`WWWE`XWX}B^WXt] X);`WWXkP dW7 ^WXWXV3^WWX B\WWFBa8X'WXAXtXtX)?`XkXk.RR-Y,XMW/WWW71WW3^XWXW8`2  X)BxXDWWMTWWWR7_XX&XPsXWKm WW DS_XW_X9WXjDlaXXX5 WWXOBTaX WS0XNWX'@s=XjXN6>XNWW1 WWWI_%XhX X =WWWO^XOXOWR2_XVXVWL39X{W<!WWWt`@WX\X1AYXWWX)PWX} O`XX&XM6WW0 _X X X VaeXiX S<TWWW7B`=WWX)HaKXWXt6`fWWXkB(WWW:%`aXDX-KaWWWG"WW@`cX WXr1 X)X2JN`HWWXkEJWXXVWXj9naXXQ $$X)F*XX NWWX)FR`XOXOVW,WWC^WWW5i_BWWX JWXQWW?X:W7^WW]HWW0 X&X&WVWXWX:aWWW?`WWX G_>WXWX@X)WXjRt^WWXX0 }WX:X&4^_WWXk5_(  XkNu iWB0WWXk@aM N`X]X5u \X)X)XO0a XX&X56+XNW/FwWXs]XX0$?WXEX=`WWWP&RWX'W:!eC GGX)1 WWXk2aXOXOM X)X2=w_WWWLXX N`aWXi/: WWWK_X1Xs/4r WXEXQj WXLE_X X W<`X X .RHaCWWWG^WWWHXEX'0 cWW;" hXXWRmXW0 `jXEXEXk6`XtXt&XK_WWX)3WWX);^X X Xk3_( X)9*X}WXz;}WXkWBf^WWXk1_WWXkM-WXW?WWXONR ( (WE /=_XOXOXk;qa+XkX WTxX)WW|AS_cX%X%XkA\XW NX X WRWX2WGWX6W; NWWX)Q pWWXzHdY7 WTX)X 0   , ,X)7  o /0EWW"_xXtW$@O^XkW MXWW;`X6X6WH?`X X X)I_7XOXOWQ\`X2WXjA_WXWWOn_WWX6`WWWPu^WXkWVk jWX Xz0aXiXiX 4&ZWX1WPWWWUUmWW6XEW/\X;X;X)8`X~X~X)KMWWM^X2X2X)3WX99_WWXOMwalXiX 9aWX2WQ2WX'W6_3WXN X|X|X)34WXaWQ!X;X0 "WX}?:$X;X;W:&_WXtW3wXNWX'HR +WWW;Z^X'X'W=z8WX>8RXXWB`~WXAXtRaWWX EX Xs +WXaXN6WW >O^WX7/^XXXXXkM}SXXa ;X0WXjJk  /aWWW4`)XX.REcWW0H3_>WXtAPLQ% NWWXOP? X)HK_(WJ_XXX 4 E/PN_AXjX XjU /X X W@zzX)76`WWEX W/U^XiX XtGSWWXkVD  W50WWW<_ X:X:.R5FX)7aX}WXz9mXW/\X;XW1`X X &X5{`XOXOX)1_XOXOWC^WW8XEWXt;iXEX'0  WX=XOWWMX}XENaWWW:FXjWWD3X)W4^XXG_ddX)U _(eeXk1a$X X X)BWX /MWX`XjCK^XXXXXkMp DXqXUR|`XBXBX)9`WWJD_'WXMWEI^WWVfWX`XEDT XXX;0 X)WW5a:WWW1n X)X 0 `nWWX)K@VXX0 WW:9_( X);L_dWWEK WF XWXWWNiX1W N`#X2X2X)?jWWXkGXWWX)7aXWX3xWX;>Q_WWXk1dX]X4aX0X0XOFY`WWWW9aX'XjX5,_X X Cm`XkXkX)H _AXsXW:|a[X X X)C:wWXOEta*WWW?PX1X1W; / WK[WWX)Q_( L LW@|_XOXOW> ZWCXW0>WXkW?F_( ! !X @5_XWXWW@N_XXX 1g`X2X0 `%XOXOW;vaXXiW! *XLWW= -WX ZX/W3XWX4 XXaXzAX2WWNWXO NaX_X_Xk>t`jX X X2R_}XXWI_WWX)A8WWX)0^WW0 ^X)WG_WWWC+aWWW8G WXkXH aVWXXWH WXOTE X)PXXXk`X X X): WWX)N#_X X X)?_WWWX D_*WWXkQr>XNW6(WWX)<a|WXW:X`X2X2X 4/aWX0WMX WWXkP~WX.RaJX WD`iXXAaeXMWN^XXX)1 rX'X 0 `XOXOXkBWWAWW0/WWQX4X4XOF_WW(;_XNXNI_XXW:M N} BWEWX2WP_/XX5!X}WP`XkX WG`X2X2Xk<3_XXX)6F  a aWQGWWWCXW0 X%WWSZXWXNB_OWW0WX`X<<_oWWW3_jWWWJ_|XWXWWE]`pXOXOWLX WB XaW>{"WW6^X X X UWXXD aOWWKC(XXWJ` X)U3`XOXOWKN_WWSWX /JWXOH&NfWXW5!WW7iKWX NXXW5`zWWWJ pWXE0O / z/JLXEWXC_WWWXkJa<WWX I"WXONXXsW9^XxX/WX;XHaWX0XKIWWXO6oWWXzPFXjX X5pWX06_X X HS`XX'X}; XAXAW4_\WWX2@_UX WWU_ WX+/WXs0 WXO=9_( $ $X)Pg_ ` X:X:X)JaxWW(Pv [0:  Z ZW;_3WWXOWW3_{WWX)2JWWX)UX)X 9L w `XFXFWABX2X2XkU`6XOXOW6v WXkW0e^X^WU)X%WWPaaXOXOWCaXWW07X)XkgWXO/8t_WWWE_WWB WXNX'@_WW/ X X W6 WWQ  iXWH9` WWX2B`/WWXWBIWW0 eWWW8aXaXaXO6fWW0 XOXOW<WX`Xt@`WXjXjT% O/_UWWX>"X)WI^XVXV NX1X/CGacWWX H XXWVyYX&XrKeXNWfX)W/ L !XRx`WXWS$a]XXW7]8WWWSiXXXXW=jXXWN9X1WXjUt_(X)5&`}WW:_WW)EL7`WXXWPWXO NWX;Xz2_mXOWX?^WWXa;aWWFWXOXAtX W?WX-EWWK_( X)V`WXrW<pWX2/LX)Gd`,XXW:c_(  XOQ^WXtXN3#9WW/El dWXB* &X?X4: )X1W N\ X)BUXXX;0 _9XtXt&XO=_8XtX_WWXk=_X X X)G XtWX; PW?lWWX)1l`ZWWG^XTWX}3`[WXzWO 8WX2< OWWWN  /P!aXNXsR  WW0 XW/XUWJRXX']^WWW3WX/1SWX/:X2X2WHv_( X)RaXkX WUpq ;WC^WXtXND" -IWXIkRXsX/X}X}W?yXaXaWWaX&WX8By sWWX)M`qXfXfXk7aWWXk2_( & &X)Lx_WWX};e^X WWI-  WTt%%WU_.WWX)Eh^WXMXFC`XiX WSzXNXNWHx^WWW4 `WXs/ EWX W~TNaoXXX)VWXs NX)W/XWX4m_ B BW7_WWX <_WWX)ObWXt1wWWX)8[ WWXkN2a XVWXtT_XOXOWE'XNW N eWXOX(ITWX:W>nWXXF_(  X)<#_$X0WXAWX)W/Lk0 WX}0 {WW0 _(Xk8DWXN5_(KKWR_(X)=WWW:(XXWFXXX TWIX}WQ ffX)M[WWXkRX1WWI:_WX_WXW6G`YWXvX P_WX:XjJaWWWE^WX./WWXO>\GWX1X)W7WWWO^WWWTXsXXXDm*X'X 21fccWUvX)W/^WWWU X)WSOZX W;{ WW/LY Q QW9XXEWWW@MaEu0 `WWW6CX%X 0 `;WXWX>DWWEXXW<FXXa X`XD0 _( * *X)1aXOXO?WX Na~/WXMHWWWAXkWXzAWW0@ X2X #9I^XkX WS WWW>WX1M~^WXWTaXvXvX)>_XkXkW:~XrXN&WXW2o^XtX]`EWWXkGWXtW}S_( X)S_WWXkLi_( , ,X NU^XMXMX 2@_XXWB%XiXiW@_( WHWWWP[_W3e $WWX)D-]XXWDRWWEvXX (7UX0X{aWXWX5^WW:;KXOWWWp`]WWX ?q`WXtXN2ZX}X/\gX<X<W?]aWX;XI\ WXXJ^WWX)N XXUA^X WXt8$X'X'X)0`CWXtWCZaXOXOW@7WW<WX}HWWWFamX8WW:\(WW0 _( 0 0X)SWX;4aXXW1`lWWH `WWGmWX:WQ_( d dX)O WWW;^XnX/_WWW@ XXX)2WW0 7I/WWJy_X X .R1`WWT<^XAXXzR8W5U_OXkXk.RR TWWX;KaUWXiWF c /#9_&WWWSWX2WNDWWX)J^`XOXOX 1`XOXOWA_``WW4)XWW WW0 RWWgAWX|!^XW/_XWXrM`WX;WO^WWL`+X{XXN4_ WX*/a$XXX)H+adXNXNW@_ZWWX)V WX1 NX;X;X)G^WWXPXtXtX)1j_(,,X)K{_XX.R9_pWWHXX`WR$a WWXk;NWWW:_( WR ^WWX)TR)XWTWX'>`_( W7SWWXk6`  Y YX)0L2 P_2XWXWX)= `EX X X)E^WWW>)XOXOXOCRWWW@n_( M MX)UaWWX)EWXOD`XWX3`aWX9$z5WX  XsW N_WWX)SJ WWXkP`XXWWZ_OXtXt&XVuX)Xka|WWX;=WW@`WWXkQ]jWWXkDkX!XP+XXXk8 WWX)>C DW>XS / /X)B_WWXORWWW1^XtXtX)?_( X)G`WW3WXjWPZUW<X`X`W1 wWX XzS'_FXX'WSjX'W.R`XXX U8^WWX)V_XXWM_WWXWdWWA_l [ [X)@_XlXlX)UX2X2WR_OX2X2L(XaX'5`WWX 2`WXtXNA|?XXWA :XaXX:M `X_X_XOKXaXE0 _(kkX)J_XXX)8a^WWXkV X2X2X22`WWW4`@WXxW6<_WX/F_#XWObp jXM1q_WX`XE_XXW9ZXXX; 8 X1X0 ^  WPa`X>X>Xk2UXzXzW:WWChBX:X:XkCazX&X&XkI<WWXk:_X_X_Xk=WWW0.`XdXW;`WWE"^WWXaRGX?X?WFkYWX)EXX * WX;XU?@WW69XkX XjH_`<WWX)9iWXjWQ_( X)FX}X}W>Ea$WWX 9_(X)JX)WW>$WWX)B SWXi@{X9X9XkB+_XWXWX 8dBkWW1aWX09 X}WN?}XGXGX)DXNWWSeWX2WIfWX._3XtXtX)C+WXV X{X_0 a$WWXk3s XXdSX^WWX)9 \ 8 8W0WXXKWWUT^XX NacWWW;6X)W N_WW(: XjXjX J=`XXW36WXiW}4k<WWXk:_X2X2W;La A0 WX7^WWWPb_( X)1XWXWX)TaXWXj0BXsXWKaWWXOaWWPR_(NNX)?KWWXk7/a#XNXN)ESa$XXWT_ WWI+WX& N_5XLWW:X)X 0 P^WWX)KuWWW;0WWWGXX<.aXrWPX}Xj:.eXkWXz2MWXaWRuXXX;0 O X W0_vXMXMWMrXkXkXkF`WXtXjT"=X)8DXtXtX)A XjX Xt=`rXXW4`XVWX}S`XWXWWV.^XNWW;XEXEW:atXsXsX MX<X<X)OX&X&WHr11X)Ua XaXaWBB_XOXO([GX:X:W4>WWXkM_( ' 'XkM`XXWI;X)WIvX);_( < <W2a;X X U= `X|X|XkI XW NWX' NWXN X`W05O`XsXsWPE`UX'WDP'X WWD`4WWH`WWW>akX2X2XkFWX)XOaX X X)SXXX)9] WXBE iWX: WWWQ_( WMSo X)EX1Xs5]_(X)=XEWW3'X1XW@X1WWPX1X0   .3`WXdXjPx LX2X #LkWWX)BWWSX0X0 _WX;XDBX X XkDd WX}X3mXWXWWKWWW=N^X X 2MX7XyX(N_ r rX)UdX)W NqqX)UV^WX@OWX}XjJ 1WWW: WX}XtK{{X)?`WX/WXXW<_LXWXjW^WWXkHy`X)7+`XOWW}0@CXuXuX)S XtWXz@WXj N aWWB X)EWWW0 `X8WX'<WXWVLn oP`WWX)E`WWWS: X)6WW #SaV W>^ XDX/T_WXDWULWW0 WX9W2_(WKU XX'=M_WWXO;X)Xk?DX}W`\XWXWXk?1WWW@[Le [,: 3 < 7XfXfXOJ)WXM N`@WWXDXIXIX)8_#X;XEC\^XWXjDg$XdXdW9aXDXD&X8u_WXDX JBXXWPlfXX0 `XUXUXkN{^X;X;WL^ WWW@XXXXW:zQXfXfW>a)WWWL)ZNXXW N_X X .R9^WWWG`WWX L*=WWW8?X2W NaXXi1WXO?r`X X X)>/ WXN0'30XXs9v_XWXtD  % %WK/WXX8EvX]X]X)KgXX/8^6X1X0 WXEVW?`WXrXAbXsWWE#R/ c cWO_2X`X`WAP_WWX6X3Xu9f[WW0 `HXXX2EY_0X X X)@XW=LWX}C`WXWWXa NX2WXj9a`WWXkNaVWWXULXWW N nWW0 WWMWW 0_(  X)D`)WWQaXsXsW1-WX 1XXWB`rWWXk9^X2X2X ;^WW5`X&WOXXWUXWW3_'WXVXjJTvX WXULg 0 yX)X 4d_jWWWP6_KXXX);h`WWX)I < <W1KWX NXW NXXXk= xWWX)I_WWWOWWWEjWXWTP`WXtW}6Sa5WWW3TXNXNWM_iWWOWX N_9X2X2?| WX` NWXkWS@XrX9"/W@cX}X/;WXrW7-`LWWWRX`XXaM_(X)H6Y9WXXWD+XOXOXOP, WXNXjSgWWW4L  90 (X)W/ XW=[ WI'WW0Ka"WW1XjXN<XX0W/2 <XaX'Ry^XXWL:WWX P*WXXaXaWJ6 WW` XEXEWG X1W/ dWX_M`WX2X2XkVHOX9WXX@>aXWXxXtVmX)X)X)M`X|X|X J /`GXX'XE c cX)>_( X I_eXWS  WK9^WWXkP`WWBpX X X)<aWX;o2H`* < <X)6_XkXkW3_WWXOR_%WWX)M4WXF_11W9_}XIXIW=>`:X}XXN6aWWX)=<X1X1X)O xX'X 0 WWWA: zX}X N_( v vXkBatWWXOFvX;W N`WWX)A_qXSXSW>WW"'X)WXKy^XXWNqWWW9c^XOXOWI1K X)G a|X6WWL ,iXsXWN`XkXkX)S _( { {WC[`OWWR WW=I_EWWW2XsX/PPWR I 0* -W2!_XXXXX M_XkX2F_8X}X&X^XWWO+^WW/=GaMWWX C_WWW8JX WMzaWWXk?WWBX2X0 _XhX Xr= XXaWXz5_wX1WWP)a WWWQ WW4_(  X)@t}WWW?_XCXCWQAWWXO?_TWWWOWX>=f^WWXT1 WWTBa'X X .RU`WXXWO_XrXr&XS&`UWXWQdWX XfC_ 3XsXsW4WX0L-X1X1W>_#X}X&X `X)W/_lX X X)0P /#BWXXX EXEXEWU_WWXkLbWW&5_XX%X9X}X}Xk:XXW6WWCXW/_( " "X)6x`OWWDvWXaJ9WWX)D_cWWX)=WWXkRZWX./d@oWW_L. i W_XXXkR_9WW:XXW/15`WX|XI*_(X)T;`WWW>_:XXX O`WWX)F_( R RX)6< WV_( B BWCsasWWWBaWXNW3n!WXt5qX)WWOaXOXOX2G`IWX:WPCXW NWXOW9XPXPX)BX)W;a:WWXO:/WW*7oWW@0`XW,D XaXaW;_( Xk=;^X2X2B .WWX)S_WXiM_( X)KaX X X)H XaXaWL^WWHX`X`W?WX}WLE^X X 0_6XkX WOe_( ` `XkC=XXW:.XNX0;WXi N WXW~L_WWXk6_X4WX}S#WXO NX)Xk>_qWWX 7*X`X`X)GXNW S_ XWXWK=X)WJw^X|X|Xk@@ . WU $: WW0 WX1 N`WW;^WWXF WWW8g X}X}XkIxWXkXW._( y yX)DU#XXL2 a,WWWIIX)WRWXkWD)^X2X2Xk7WWXkRa*WWXk9^_X X X)=a_WWX)3 WXtDagX X X)HYWXj/_AWXX2 (WX2WEXLX/&5_WWWN^X&WAaWXtXjA'PPWK_XWXWXkQWWWU_XWXWXk<7X:WXjUaQXXWAcWWW:lxX2WW7^_( X)G]X|X(WXNX'D/ u 5_( X)=_XWXSX1WWLOWWX)8W  W8 XWW NX}X B W3Y  WF&WXO NXX'X8>;_X X X)<XHXXWW3WW9i`XWXtAaWWWS_XOXOW@`WWWE'WXc^WX/XjBX)WJCFWWW5 8WW*7XX0 ^X X .R:#h WMC WXkW24  X)5E W8X W/WXO7_(//X)D X}WXz>5+XjXjX)C_X2WXjTXX'WA WWL]^WWXk<3XWX:>JU; |XX6^XXX 1aWXtXNQ/WXsWCe WX`E XEXEX)D P9aWX9Xa8qWXk/`hX X X 1^WWXkO-XaXXj5_WXr/_WWXk;z_OX;X;%I WWW@ WWWDzXDXDX);>aQWWX B`WXN XaX17( WXj]_( 8 8X)2,WX:Xt2_WWVdX)XkW~EkYWX5 < NX)XXTnXWWX)W wWX XzB4WWW@^WWW02` -/ 40 X)WN`WW0RX)W/_( W7H^XXWXOWW?aWWWB l  X)1y|WWX)0UPXXW0^WWXk0^`<WWX)O`WWMj^X2X2XkUXXa08X2W;WWWVXXWWS XjXjX)2"X:X:X)3l2XXX2DxKX;X0 _( X)U_(__W3 T%WS3  X)1uWWX)C^WWXkJ^XWI2Xk>HaXX 8_XX`WI (XkWXzH WWWI_X W/WWX)8_WWX6X)W2{X_X_WS WW/pWXjQX)XO2axWW4#X)Xt&j`-X X0M XUXz4`.WXtXjSWWW0 _( X)CWW.aWWX 9WWX):CWXqO%_-X WXtOS@WX@fX W)`aWWXO?WX:R]_WX|XjV=&X&WWG`!XkX WJXhXL0  ,WXOSWXtXj1\X2X2W7X`X%[WW0 X)X 0 a1XXX)@aX&X&XkR'_-WWXa40WW ^XgXgX)N WWW2XEX'0   l lWIlaXWXrV _(X)A;XsXsX)@_eWW2_( X)1@`X X D WWW9b >WWXkD" ?WXs N  X)9a0X WW1aX X W8_?XXW7>_TXOXOXkCX)W N`X X X)PXWW?oWWWTwX;X} fHX1W/X|X|XkI_WXtXj;^XX%X8+ X XN/IXkXkX)CWWX)B _(66X)LaWWXk<MXmWE1a XXWNZLWWX):_\WWWN WXkWC ^X2X2XkW_XX{X_?_*XkX YWX&< ~XWX:0 WWXO8^WWX)`WXrXMC  X)E`PWX!aWW7P_XXX)K WWWMaX`XXG^X X X)8XWX"^XkWR_8XkX .R`XiXiXO91 WXkWAn_XsXsW2X)W N_X0WX;? X)=a1X>X>WR^WWSaWWXk?_(aaX):aXkXkX)EC_(WU]uWX} #4T_( X)JaAWWWA&WXO N`XOXOKWWX E=SWWXOBWX 0VWXXXXXk6tX}WF WW0  WXtXKq^WWXWK^X6W/^XtXtXk2WX1X&IqX}X NYX W/ XjXN/P*_@WXNXV&`:WXXXtU+X'WW1_(X)Kb_X2X2XkIXNW]~XXX)KXtXXL`WW(D iWWW;^XW/| W@ WW/R=WX NWWX)8V XkX WQ_a]WWX)K^WW=6WX2W8WXkW5 WXO N X;X;WPWXaWGt_( f fX ?*xxWF`X8X8XOQ)^X;X;X)J "WXsaX%X%WV]WX ,WWQ`XXXX(I X)XO<X)W N_(X)L^X X W>bXX5B_wXjX W6R^WWX VPX;X;XkmL[ 0 WWWWWNG^WWWEPdXWWTsWWX)6aLWW.R@mXWXWX D7 /aWWWOfWWWJ^X)WXO9WW/1k_ WWXk?@XNXNWH ] - WH)X;XaQ`3WWUWX)X 0 _WWWBWX W0WWWR_WW`XWX}?jaXOXOWJX^XkXkX)V X)CQ X X W@aWWX 8O!XDW NWW7E[w iXKX)W/K( N sX)X )`WWX)OmX.X.X)PaXX&X2X2WX<X):`XNXN)ELaWXsW= WWX ?^WXsW1M^X X X)Iy  / / XXX)6d`XOXOP`X'XjXz9WXB5x_MX}W;aXPXPXk8)TWX;W@[XW0 `WX/WXVXWTaWWWOGBWX;GqX0WXMJWWW<4&WX 5aWWX)2WX2JbBXEXEXk:D_)XjX W>X0X0XkJ`=XXXkL`WX9Xr8k`WWX)N^WWX :'iWWW1jWXEWHWWWQ :WX1X&6_XkXkX)5SoX}WXzNXEWX: <XkWM[XEXEX2CX1WXSL XWWI>^XOXOX2WnaX X X)JWX0? /`WWWQX)W;  . NX|X|W8M^X}X.R`WWX)0AaX0X0WO`XjXjWJ5XWW NXX 7t^WWXk?`XW/Mi_XOXtW`  X)<aWX:Xj3 WXO?NXDXDXk;]cWWO^WWWS^WWX)5X;X0 (XXWD4`#WWX)O_\WXOWCXDWa^WWX)I^WWX)AWX0 WX}A XOFv_k s sX)D X)R%XkXkWOXXWO WWX)T_XNXNW>ANWW0 a6WX ,T_(WI `pWWXkBSX1WW7WXORRYYWTaWWI(_XOXOWQ6_jXOXOX)Bk_KWWX)H2WX WWXXR`XXWKWWQ&)X`XXtV`X X X)KjWWWL^XNXN)EA}RX W0$9Lh H HX)HayXWWM`XiXrO<X)W/iWW/V^WX.X}9HaX4X4XkKBWXO " "X)0`XWXWXkSoWX' NXXW3BX)X /NzX WW9X X WI8r R RWK]_( P PW>aqWW.RBt_WWW>8WWS)WW0 _DX X WDMBWWW5_WX;WENB _WXNXEX2X>aX X XO;(X)XM WWXzOWW 5G^WWX)IkWXt0 _XXEo`XOXOA7[XW>_,XkX WU^_3X}X&XX;X}>aWWX)S_XkXkX)W:XWO[FWX'WB/XNW NX}WWKWXtQXWWF?WX;X<WW0 `WWW;[WX2aEX W/40`WX-W4`X X X)5q_XWW=!` WWXS6_( X)?`}X X .R8\_XXIXLXLX)L5aFWXMWPaXNWW8h_=XOXOWUxXW:)X)W/XW0NX)X2#l_(X)R`}XX&X>a WWX)0XW0 _WWXkBaX X X);WX2W3_0 Z NWWWRWX}0 N WH0 XX^WX)W=^XW` WWXkG7vWWX)N1^X WXt: X)2+WW:_(WS2aX X Xk;;_XWXjU,XaW N_WWA_(jjXkPaX X =WWX 9XX_UY^WWXkM^-WXsSaXXWVwarX WWE`XW0"7 WWA X WX V'WWXk31XXCoXFXFW8`]X0X0WR! X)X)X2J/HX)X)X)FX)X)Xk> xXaXW2W_vWWXkGo^WXNXBagWWW8%[X}X NaAWX}XS  WV~WX2W>oWWWK`X X X)K$XWWSa WWVUXEX1&X/WXQg^XkX .RXXW9T X;U\X9WWN ~ WTXDXiLj y 8 8WQXNWX'<`vX&X&X E`WW(3a XOXOX)U^XOXOWJ_XkXkX);T_!XX&XS WKa5XXXXX);XDX&0  N 6/H}`WWXaN!_XOXOWC WXLWGXkXkX)KWWD X)4X'WWM`rX X X)IW W0a"WW&XHaWX:Xj8XWW/V`XW/X0X0WUo`_WX Xf; 4XrX9"}X)X2/0T`WXPXkWXzW  @ UCWWW~F_=X2X2XkJ`WWXO< X)WCg_:XOXOWL<`WW.RFcWWC'WXOXH pWX1W PPX)LaWWX QWXSyXDXDXO3X&X&Xk2X;WWNa`XXX)Vs X)WWX.W/WWX)0_ kX)X)W2U  XkE`WXtX;;1aUWXMXVNaWWW:^XXX)ApL0 Na XXXXXk:BWWH WX/?H^WWXkF=_vWWWM`WWXk:/nXkXkX)?XtWXzJ=WW8X W/R&^XXWDaWWXkG4 (WXW2a'WWRaWWKWWXkP`zX!X!XkMY^WXk.R }WX1 XkWW6 WI _(IIWOHXaXaWIa WW(GV[X)0 WWWNa@WXT_(__Xk3XDW NQX W0 _=XkXkX)PWX _X X .R;WW0Na&WXUXj9^WW0MNWXOX4WXMWW=#WW0 `XkXk.R2c` WXtXjR_7XaX'>`qWWX)TaXaXaX)6YXX NX{X{X)U4WXtW}DnWW4WX:XzAfWWW~CaXWXW?WXtXUtX|X|XkOWXBWBMI C0 XXWX AWWJ"   ; #Rc BWX;XzC#`X}X}.M8!X)X 0 \X;X =gXXS`6WWX 87a@X WVs`X2X2G WX1.RXOF6HWXa NWWW3"X;X1BeX2X2XkF`^XWWWIXaXXaSU XXW/No_/X_XXjK+XXW=EX)W NaXOXOW7 WXOXRxWX;WB8X)WQ^X)< $XXXk8^XXWK WXi N WWW7a=WWWGcWWK\ 1ddX)E$ZWX7/M7 J%0  WWX)S^XOW/XW {X%WW9|WWWVWX1_XOXOQ;5XNXNXOQWWM.4WWXkF WW0 _( \ \X)BaX{XXN8`X WWA_( X DWWXMG{_(  X)JhXWWXzB_hX|X|W=DWWW4WWWR^XkXkX)S`XsXsXk2`KWXrXM`X&X&Xk>B_X1X1XOQ`XkXkX)Uc`XW]_XOXOW;TWX;WFyX2X2X)7UX}WA`wXkXkX)8 X W/` X WW9W0XXXW~F_XkXk.R6aX|X|XOH[ eXM^XkX W4` WXsW6WWX24,X)W/WXb/^WXM/^XW/`XWW>fGWX2/GtXjXNGn`XXX >WXkW7XXF_(W2pXXWLXXj0   @ @X)R9XOXOXk5 XWW2_WWXSx`X X X)=B_WWX)3gVXEX'0 ;WWWSBWXh<CWWXO6eXaXE/M6_9X2X2W;D hI^XzcWWWEq_WWXkA! Q QX)G[XXXkE9XtXtWG"^XkX W?0`WW0WWX)7 XsX&R <_WW@_XXX);_WWWV2_XWB anWWWS_H W6q WWWWDawXX#W?_[WW.R:y`XX&W;_WXWWJWX}WK>^XtX.R WX`A_3WWX)4vWWX);VWWFX)X2#lWW=lWWWV  W8a)WWX)S WX N WW0 `XWXWXkIa=WWX)JMXXWSNXrXMm`WWXk4C_FXjX WG 0 0WMWXWWB^WWJ1XaXWG_(X)?_X?X?W9WX Xz6 XW/SX1X1X F:^XWWWG^XiXiWMa`(X X X)3EXaXWUX)W8;X)WCxO X);_fWX0Xj2wWXX@jyXW X)HXWWW1WXN NX)W/WX N_(X)9p_X X X)M=avWWX 0=eX)XkM_( W7pXaW/=^WW7   X)E_X X .R>alXX&E^WWX  tWWX); XsX`D`9WWV bX:WW@`  - -W8`WXX6Y_QXhXhX)<^X X X)IyXsW2^WWX P| XXW@Y3X;X;WA`XOXOWVbWX=X(8_X0X0)E: tX X W: vX'W/_`XsXsW4_XXX22^X;X;X);lWXt0>`WW/_7XXX L^XkX aWWV9_{WXOW?X&W/;X0W/`XaW/Hs  X)Q8_XXX)U^XW/U(WWW8XWWXk7_WWWLWX /@XtXW}7 WXiWURbWX` N_(X)R``WWJ-_XVXVX)<_WWWLfX*Xl`WXK/WWX)N=kXX NXOWXJ\sWX?M W_XXW3^WWX I_ X|X|< {XtXX._:WWG_( o oXO>`}WWQw_WW&X;?_WXd;:WWWD@`WXWWJ = K/3V_WWXkV`XOXOXk6`X WG`"XWXGX'X 0=WWWP`WX5X;X0 aAWWWRsUWWW0:_WWW?h_3XkX .R WWXkI]ZWWXk:_WW]QWX'WUWXO N_( B BWA_XNXN3<AX0WC X)DX)WP/aKX X X)K_7X2X2Xk8WXW7_( R RX)NWWX)C`X X X)R%WW0 _( W@X`X}WXzOLX)W9X)X)WU WW0 a#WW]Ua$XaXaXO;YWX& N^X2WWC`xX X X)1XXWNg)WWWIFTXtWXzN@WXkWOWXjXtSatX1X1X)>  X)FH mWXkWA 'WX g?`XX&X:H`XNXNXk@ XXE7NXjXjW:<_~XOXOXO6`XOXO=aWXXXXX En_(X)@  XXX)0X1X1XkT_=XNXNXk4XXWAWW0 ]XaXE0 `XX.R=VWXD N^X2X2X)7V@XrXCO`WX}XLakWWX)M_X+W NtX`WB  /MM`WWX DX)W/aLXX.R?`WWM8XW]_,XiXiX >_NWWXOPaXVXVWC^ @ @X)Q_WXVW7X)XaM,^XX%/aWWX)PX2X #MWX} #JXX`W/U`XNXNW2K_eXXNa!XX&XAspWX./`XrXrXk6;_WX1XMB_( * *X)3t 6XEX'&5_(rrXkIy`XxXxWG`XOXOXk< RXXWW:aX WWHaWW;WWX2Q . .WR+`WWBZ_WWXkMQa9WWXkHWWXk@ }X X WB  WS_WWX)L_(X)F`mX X &X6`XkX WOX)W/aWWXk=X2X0 M$ M N   X)K_%WWW:<X:X:X)6RWW0 .XVk ZX(=aOWWXkMWX`XW4`WWX2F`X;X;%5~_WWXkFX|X007a}XsXsX)G_XQXQXk=XNXNX)9RXXWJ WXjW6X)X 0 anXWXtA<`X WW3@aX X .RB{WXkNmLWW0 ^WWW;~gX1X0 _X X X)M^X&WWWf^XOXOW4^XMWX5c WWX2CY  WP/X);\aWW9aXOXOW7[^XkXkX)GyWWWP^X}X. X`WJEqX)XkEV`LWWXk;\WWXzMHa2XXXkCD1WWWG_WX:Xj4 X)Xk8axX}X}.5WWW4 XEXEX28X{X{Xk38WXGQX1W/  /X);WW0 X9WWP XaXXaRX W/NfSWW7_DXMXMXkL2_WXt/X1W NjWX3"WXm1WWW:`WXtXN1X)WW<;`X2X2Xk6$WXk/`WWX>^WWX24XW.RX'XjWTRR/ '/ X);^XkXkX)N7_X WWRX)XOV`WXHWSI_(X IWWXz>z^XXWLkVXjWTcXaWEg`WWWCO " "WI6`WW]3- WWWG P/`yXEXE.RMX;X}XUX'XR2XX'XjR3xX{X_0 `XX0 _( & &X)G aWFV|X)Xk;-//X)W=X X WR`  X)5k%X;X;W9_XX4W/ XXXXX)>nXWX`:S^XWWJz WWC WWWT_(||X)PAWWXkE_X?X?WSwX}X}X R<X|X|WQ\XkX WCaXXWAb_WWXkH^WWW:s_WX XR^XXXk2+ZXNX10 `WWX DW XaXaW6_( Xk8_WWW7.WX1_( X)=XEXEXkD_WWX)2 WXD=PPWE_^WWXkSj k XO7e_( 6 6WJr^XXW:XW/Os`;X|XW0XtXtX)J8`WWXkW_0WWWQWWW6WWSWX aWWX)K   W?^WX}XQ  X)Jd`vWWW@}`X X X)U7a(WXhWV_BXrXrXk2`X WXtLaWWWA@aWWOXjXN0 WWX)>WWG`_XNWXf^X X X)1#_GWW.R8_!WXDWT)aW8aX X205WW/4^XWXC VW1?_XXXXWS^WXjXj2XEW/aWX IL X:W&X`XXW7IWW/TX'X'W;WW/VaXX&XN_(@@WO7WWWR-WWSdY X2J  < <X)> XX]X(EsWXsX}H_zXWXtC_(X)N:  X)6aXJXJWQa`X%WXt9WXE \eWWXkQ$,X)XkKh XqXX;H`WXVXV`X X X)A3a-XX:5_WW/3_X1XA1_X WXr1XnXR/VjWXaXMN`XXVX9VKWW0  fXEX'0 !X)W([_( X)5`aOXXW= GXVXVWAX WWNxXtW9XaXW@X X W4: 8 8W9`jWWWIaX|XW6WWWQ_(X)2h`X7X7X)B XMW;^"WWWRWX2WC]$XXW5_^ X)< XSX60 X)W//XWN_XWW/^XkXkX)F~XUW:_X2X2JYaXDXDXk5_WWW8`X!WX2yXiXiXk:`X}Xa7aXWXWXk4eWX|W@]atWWWGX)WG:XiXiXk<_:XOXOPM 1!X)X)WM$XXX DWWHqWWWX Xz5 MWWXk7_WX:WE}WXNALWWBz^WWW3P_X W9_X:X:W={_XSW/ J/HWW0 WXsWM< GX;W N`vWWXk1aWWCa X X X)M %X0WX:7`XOXOWFa7XOXOW5[fWWX RbWW5WX0D`X|X/_XkXkX)C`WWW;WXX@:aXEWX MWWFX'W/XzXzX)U`WX}XUaWWX)4aX1X1W3iX W0 X^X#" XaWA_WWXkNWX1XMFaPWWX1(# ^ 3XEh b/WXOEaSWWX)5_XaXaWB#`9X X .R10 HZJX`X8oaOWWX)VmXEW N_WX|W5fXWW NX`X`WDN1XXWB9 cWXqW= dXXWD_ /XXX)U_WX&XUWX2UxJ /`WXxW9_XkX W@>>>X)FWWXk0yX0X0 _WXXW0|WX2W4WWXk1 z zX)2'WW/6 0XaXaX TWWOWXO N^X}X}Xk=%XtXtWD  ; ;X)>*_oXNW4aCWWX)=`XXXXX)U3XjWWA_WWXk<`WW$z=|_XsW/F_X WWV e eX)F{_( W WX)T WWWM XWWLrXtXW}@ XjW?E_WWX ;WXO N^WWXT` WXWXV XDWWFX)T /WXO?`X X X)T;X X X)= XOXOXOLTCWXW3-WX~WLWW&5`WWXk3I`WX`XtOU^XWXW&XPnXDXDXkU_X?X?WIroXjX WS_SXlXlWDc`WWUm X2X? W4WWWD`X W0 BWXXF`tXhXhX)IFWXM1NWWXkD~`WWH|XNW02`X_XW:MWXN NXsXsW?a3WWIX;X;XO9`8XkW<`WWLY MaX X .R6lX`X`WF1WWX)1A::W?%J Q/N WW@WWW; aX'X'X K_WX /KOaX WXt<aWXXW6^WXMUmWWI +WWXzGM N|X)W/azXiXiX BQQWJ`,XkXkX)9P_DWWX)UN_(X)2pWW0 `iXCXLP`kXOWXMCXX0 DXWU|FXMW4WXj NX)XO@aAX X X)Ua WWW?XkWXz@$aWX /;=*X;WaGXXX)G ^WXe/7X;X;X)D WNr`WWXO&X9WXM@XWW N5XzWKA /3zX X X)4_'XXW<aWX2W= X'X'X):XXWF<`?X X .RSaX;X;W4'WWW6WWX)4_WWX ?WW3ahWWW3^XOXOX Uh,WX)EXkWXz1<eX)Xk0;  m(X;X}XzJ WWR^X X X):1^XiX WUWW0  /=X X03X}XjU{ jX(7`WWXkM`WWXaNaWXsWG`&XDXD 8|qWXN/qqW<^XkX W4_X X X)6a0WWW}PXLX/&5aX WC iWWFzWWWE W=XXX 7<X)XO:=WXN_SWWX)KTXX0 eWW/:_zXOXOXkQCX1W N`X WXt>X2X SWWWVj^WWXWQL^XOXOWFa}WWW1XWWIWX%Ac_&X X W3`WWXOF5`WWWH _XXX)?2_WXgX<( `WWWA)WXC XXWAX W<WX)`X2XtW~?X.X.X)4WWX)HX'XjX(F_]XOXOX 2WXEW=UXOE_(  X O'a9XvXvW`X X .RDD WXO0#U1^X)X)W@`|WXa6_XWX Jv^WW)EWX:WR YWWX)? 9WWWV@_X2X2X <`lX X .REXXX)< WW0 `ZWXz;^X7WX3`[WX^WB&WXNX'SaXOXOR\_WW<X!Xd6_X X X)2^X2X2W1^WWW6_WWA`X X .RVWWW6   X)M_X WW<,]WW0 |XXW6^XW/ ?XsXsXkJV_X X X)TWW:WXNW=WW"XWWX,?tcX2X2X)J`WWX)3``WW7aWWWXO? mWXX@S_{WWWLWXjWC.5XaXW9RWX1W9_( XkFWWX :X)XOL XOWWDXW? VX;Wa_XXWUi_XXX)?_( XkNHXDXMTWXNX'O_WXWX47WX9Mh^WXW4WvXW NRX;X;WUT . .X)3^X WXt@^P X\WO_WXVXj1aX XO/`WWXLX)W/^WW2aWWQIXX'WU jWXDPW JX:W N D DX)H.aXXX Q_5XWW=`MWWXk3 WWWHWWWG<XXWC?_WW.RQ X)O_>WWOk_XOXO <`XjX X}> 9XkXkXkR?LX1W/`eWXSXN5WW09`WXaWL`|X W@R XtXWEd  //D _XWWXtT/X\X\WUL u K N_kXMXMT X XN`WWXVJ^X WXj68`WWXkD_(44WKWWXkV_WX^WWX>_3XkXkX)B`XkXk.RR"!XaXER`WWKWXX1BxWWX 0E XaXaWGWWXkRYX:X:WF_0WWX C(cXtW/M_X WWJ XEX'0  WWJe`WWW? XWRaWWW7MX)WBOXX9eXW2zPXaXaX)WXO0_XX&X2aWX} #3XjXN_XoX/}WWXkL0_(WJ_WWWa X}X}.UXqX _XOXO83WXU/ <XWX:SaWWWH\WXtX>XdXvLUX^WX; N_WW.R:WXE_WW7a7XXX MD`XXWK XWX'W6XXj0 M 0 `WXXJiX|X|WR !WWX)N_(??WKB_*XtX] WP _0XOXOWN&^XOXOWCXXX2H SX X Xk9WX9W4_XXW/_X|X|X)C_( X)C_WWXkTX'Xj?C_VX X X)Na?XW/dBoWW&`WWL  aWXW/UqX)X)X2CW )XWW:_XkXk.R=5`GWXEW8mWWM^WX/`&XX)EG`XXWG_XWXWXk4UWX2WO*hX Xs>WW5`WWNanX X X)2 UWX /:W`WWUQaXX]F_XXXk>_( WWl+WWX);_( X ; } }X)< X)UWWX)N\XX0JanWX}XNX)2[WX(G1[WXNX'JnX2WWREvX1XWF_XOXOXkQwXOWWD^WXE/_hWWX Ve^XkX +WWXOHA`XkX WB mXjWGWWXkQXOWXz8dWWWXXsSnaGX X X)5`3X X .R3~_X;X;%F`MX X X)8^XkX WC XjXjWL `WWX)@_\XkXkW?XWX3`XXX)2:_WWX 4. WWWEaPX WWMX X W4 XW<WW0 WWXkHJ X:XO~`WXMX?_kXX&X> WWM{a$XOXOWGX2X0 `BXDXX>XX /eFrXDXOWXrW?X:X:WO`WWWW3_WWQWX>WXE ^WWXkJWWWS WWX)Aa~X2X2WDaWWXaW>X)Xk@J_(WF`XNXN)EK X X X)K_0WWX)W188W4(WW @`XkXkW22^XkXkXkAJWWW8mX XD?UalXMWoF_WWXk;8XW N  X)J[qXDXDX)7*`AWWHL  XkBo X'X'WVG_/WX{XK2WXO9LXXXXX)F2  X)TXXXkU _qWWXkRvWW>_( Y YX)HXWaX2WXjL+a|WXHX;@kX1X1XkNlXNW/B_'X9WW=^X WW<_eWXsS WQ@_WWXkK G GX)8n_XOXOW=uXNWX'G$X'W/`X WWI_WXWXNO?XXX):\B`WXtW<_SWWW9 WX} #L LX'X 0 _X;X;X)U_)X1WX'B^XsX:6L "XX 4_pWXXoN WWXkU }WXNX'HcKWX:XtUyaEXX/I`_XEXWN WXaW1h X;WWTUsWX:WMM P 0 ^WW1aX X Xk5 WXO NWWX)NVXNXaoWWXkRrVWX'W9g WX:XzD^XOXOWOpWXWWX7^X&X&Xk2qaX2X2C1`WW%P`X WWCaWWWG6 X2X2W7^XWX:XjXN0 `X WWNaX2WXj2,WWW>6VoWW7JX1XsX)X)W= 0B`WW@`X X W9=WWX)J_~X X W;XjXN0 _(Xk7_XNXNX A__X)QX W N 1XXX)Q'^WXWXS 3XXWJ AWWFm BX}WXzG1X)X 0  WWBa'XX&XLLWWWPOWWH`\WWX Uf XX^?  X)0Ca|WXdWHp`WX2WH^  X):<WW >WXOWKpakWWWN-^X2X2X 5a XXXkVaCXWXWXkQ`WX\XXJ2M b/tWW4RRWI  X)P^XCXCX S_(  X)<`,WWXkAD4XEW5a dT}IIX)6MawWXAX9JX)W<9aXWX?XXRnWWWAWWW3WX|7$`WXhWM^WXV/ X)5_aXoW O_bWWGL,WWX)2`WW8WWWX)Se @XWWW8$WXOXP`7XkX W`XWX@X)WIWWXkE_XOXOWJ{_UWXtXjV [X'X'WRO_XkX WU X)9 ]X(1VaXtXtWOX)XOPaDWWXkRaaWWX SC_XXXkG- XXX)W2X X W2`WWXkMX_W:WX:Xt>QWWXk9WX N?X2WXj6/_( J JW=a WWD`WXjWSu yX%WXr3^XXX)3a&WW 0_WWXkHt_WWXk6@WX6wWX2<2XXWEX}X}X)Cj^X}X/_( X)=SWXsW7^WXNWMX)W6 aXXWD_(XkC_XXXO@_IWW.R2SXXLXLWRX:X|Xz6 WW;+ XiXRaXWX\XU>WWWWI XkXkWS`XOXOWCX)X P_(  XkV"_XkXkX)CaXOXOWL_(WH> XWT+_`WWX)BWXOW}8fX)XkW~ST^XXW<:WXO N`"X6WX43WX'XzC  X)E{_XX.RBLWX0 WWX)2 `WXNWCa+X)X)W6WW9tXW0 _( X)9_XXX)V_ WX:Xj3XsWW0 XOXOXO0WX|WJ` Q QWT UWW0 ddX)7a5WWXkFXWXFJ_WWO^WWXM%WWX)L/WXi N_2X X .R?WW0D[_[WWW<|~X)W-_(  X)DWWX2=V$XW@M X)J@ /X)X)X)JTXX /\:YxWXNW@_eWWH~`X WXtV #X)WNiWX; N_WWQ^XkXk.RM0WWXkC_&XMXMX O6_WWXkCX;X0 `WWX <-WWXkI[TWX2 H HX)J]aWX:XjN``XOXO=_X2X2:fX1W N WXJGfaoWWXk>]X&X&W?f`X X .RJ5_( l lX CT,XXX): XWX:0  [X)WD. WXtW}D_(W<aX|XWG( X2W N WXNW5`NWWXkR [ [X)Ea^WWWPXDXDX)JIWXkW=WW LWWX)A_XMWX1X)WE WXtUF X(5)X  X)9anWWW2`EWI`WWX2 _(WOb`XNXN)EG`?XOXOOVWX2/FF_WWWMaX}X}X)=`^X W/XOWWJn X)M%a3WWK.pX'X F_WX1/HGWWW=*`eXxXXtGWWX)W^_( X)BD_8WW XWX|U#WXE NWW0 _7XXX1|IWXW3`X X .RCX W.RiXXW28_NXXWTpjWWW4_XtXt&XQ_>WX`Xj3_XEXEX)CX)W/_X X .RC81WXXzB La:XaXaWU>XMW2_( X)U`WWWN>X|X`0 ^WX//  L X|X|XkA5_KWWX)1pa X9WXaI_WWXkTxa3X`XDMTWWX)A WX&UX&W N WX:X7a$WWXkQJF E/_~WWWK_X:X:X)V_XAXAW3y]WWXzPX)WJ^XOXOXkG WWW>?_9XkX _X;X;%O( XX N^ - -W2l_X X X)WoWWX29uWXO0_(}}X)6IWXsWKJWXkWD&_yXNWW2`DWWV0`WWWO>`X X X)8aWXX:WWWP`{WWW=' X)N_$XX;_PX}X}X 2oWWG _( W1a,XWXtJX)W N_jXXXXXk3AX2X2X2B|`CX WWCWXkW5 aWWV`_5X1Xs7 WX1 NL.0  jX9XH }XXW;`WWXCqWW/2GWWW1`WXDW3^zzX)a~XkXkXk?EX2WW}G^WWWH^WWWI2WW0 _WWXkA4X9X 9 a WW9a;XOXO)EW,XWW NzWWX)P }XEXEX28wQWS XsXX7_6WWXF_LX;WX:U^XXWRWX8OYWWX)9X;W0DrXX/@W`7XOWXC_( * *X)Gg`aX:X:WMgEWXkWH ~XXa_XkXk >._( X)JZWWWSBWXs:X X WEWWXkKXWWDtjWWWAi$X)X)X)?_mXkX WPSX)W')X W N`XOXOV4axWWC>*X}Xa #G_XkXkX)O`cXEWXrS_WWW1#WXaXMRd$WWX)F WW0 _=X X WQv 4 4X)L\WXXP`FXUXUXkA^X X X)NeXkXkX)DaUWXW8 X X X)?_XVWWW(`5X XOUXXWK FXXX)0)mWXXOa^XOXOXkAmXXW1>`cX'WXK_(  X)2 ~/?WWX)7gWX0 kX)X 0 _XVXVWP?D }W2QE ~ ~X)N^WW4u^WWWS aWX' N`XXWV|_(uuX)LXNW0s XW2BaXOXOXkVaXEX/2`wWWX =y%WWW=7XEW.R_(X)OWWX)WHXzXzXk3b_XjXjWE6`WW.R>CH c cX)V_aWX6WU-_bWW1aWW6yWX 0JL r I NX)X)W<&( ! !W>x X)OF`?WWFIXoXWXWUWW(7WXNXU_xWXa+FI5XjXWXWH WX CVXrXrX)9X)W/WXjXaUVWXM]>1^WX| N_BX0X0WR_WWXk5XcX([ WWX)Ll^WWXOH_0XOXOWUz p W> lWW9+`WW1 mWWX)T_WWWR`%X X X)V{_:XX&XOWaXOXOX2C Y X)D?WWWUWX2WPa3XXiH mWWWL^X WWB XXW:\LWWWGPWWT_WWPp  WNX)W9_( X)L_^X/X/X SVWW3XkWVeXUW2rXW0 _( y yX)CRX1W Na XXX CaWWXaQ_WW::`X X .RR WW"XWWO8aWWXk2_(  X)WQ`fXMXMX)G0WW0 4WXt0 WWKaWWX22SqWW;^XkXkX)TXLWF^WWWLSWWXk:$WWX 3 >WXDC_( Xk3_WW.R=X|X|XkE\_8WWX JXkXkWNsXaXW}<zWW0 _( l lXOS;VXXE9}S WI_XrXrXkR ~X>WW;o X'W N`WXtXjE' XX N_(X)0^WWXkM_X2X #Qn^X9W/`+XVWXtM'WX2WJU_(X)@^XOWaWXD X)2.WXO8Q^X X X)3_X2X2F#axXkXk.RE WWX)<"_WXDX3Z XkXkX)Q X)J|^XOXOW0<EXNWWHFX`W8:GX=WWX X WD WXa5X X/8z X)X)WL "XsXW0  XXWR XEXEXkU*`WWX2U^XOXOWC^XtX]*WXEW:_WWW9e`XXW55a7XaXaWPWW&5WW<+`X{XXK? X)W/X)W7XNWXz0a'WWS  f fX)1[_XXGCaX X X)9WWX)<_WWX)52WXNFYWXjXW=^WWWS`aXWXWXk1_(WG\_X X WUa:XXX <_XXW:WXa N`WWWU| WKcWWWB,{XXX 5?XXE/;fXX`9`XX S_"X WWH^_( X)<$WWXkDRX)X 0 L/ 0 -WX;WX WW7 /X WA X:X:WALXYW NaWWXkFNXVXVWJXkWXzVX_XtXt&XT9`XEXEX)MX{X{XOBX)WVR nWWT`(WWXkDXX|XW0WX9_WWX?:XjX &X_XXW1'_X1X1X)2_hX:X:XkWEWXRfXOXOX SMWWB`WX}X1_QXqXqXO9 WWPX X/I X2WXjH XX NXNWS  /_(88X);_WX`> X'X'X)D{a^WWWLBWXkWQeX_XLRXXX Q4 WX&9hWW2$aWWWM `1WWP WX:WTAX}XW:ZbWWWW*aX|X|W29^WW?>X)W/aWWXzNWXXzB)aWWK~X)W/`X%X%0^WWWD^WXtXjTXXWO`WW.RBdWWWFU H/WWIWWW>_-WXtXN1 X9X G X;X;W2[WWX)NIWXkWB\TX|W0V gWXB iWW!^WWWW-aKWWWI5`XOXOW?_EX7W/aWWXkT` W8WWB_XYXYX)KIyXEXEX)1zWX`W? X X WBMX)X @4_EXTW/%X'W/^W;m 6WW"CWW?aXkXkW8XX NLr * NX)X)X)E>aXMXMW?_(X K LWW #D_WX{XS+WWWEH[--X)?NXNW X)TWWXkI_( 2 2X)59+X)W N`WWXk4$X2WO{X)W/&X)W/H h / XfXfWJS WX9W0 <W2_XDXMQzd . .X)> XEXEX2El ' ;8_XaXaX 7 XXW2w_XMXMW:_XXXXXkMXkXkX)@qaX X .ROl_*X2X2X :WWF+_2WWW1/X)X)X2HhXXX`X`X)GfWWWK`XX&XF5WXkWP=$X)WGT&X'WWXWGW DXXW N\ X}1`WWX)W8} I@MWW0 _X-X-X RWW0 WXWWS/XjW N`(WWX 6QX{X{W4WXO/KWW0 pXWVd_(44X)SWWW2_(  XkM_ % %W>-WXN +XtXtW2`XOWXIZ.XtXX0 `-WWUaXOXOT`.WWXN'XNW N_XXW3WWX)DWWM`~WXzW7WXNX'1_( X)>aWWXBsWWXkOX^X^WRX`W9X`WWXOH_TWWW:_ pWW0D^X_X_XkKzX)X)X2LR_WWX)T!WWWWW@_( W;y^WWX)P8 X)H_( I IW2XNWVaTWWX =X)WL6a!X X .R3`WWX @3_DWWWHeXkX W9&_=WWX BW=`X0X0WNWXWV?*X)XOHa X X .RL{XVWWW0 _(X)<_2WWX)BWW K1`WW]6}T/WX; NXjWXz5WWW;TWWW0i -++X)Sk_WW7 .XzX=XWW?5CWWX T`YWXZXDOcWWWDk_"WXtWH$ XJWWMs_WWW5WW/O` WCuWXiW;nWWX E `XNWX'1< WAWWK`WW/1xXiXM0 _VXOXOWF(a?WX/0XWU_2XOXON]X'XjW6 WWX)H`WXtW_XOXOWC^XkX W0_( WNy`QXhXhWE_&XXX)9 X)0DWWX)>v`X X WM3^WWW>`SWX}XD`X X X)OXaXE0 h  DWWW0 R\WXXWOcWWX)1WXEpXsXsW2YWX2WB<WWX);krXXW N X}X}X)C^WWXk3YLWWX)RaMX X XkJ`PXdXXML_xWW;aX X X)Q BWW0 _(  XkQBllWQ_XOXOWOUXjWWXO N^WW/X}WXzJHX)X)X2>s:XDX&0 aXtW/6 ::X)Bw_W> WWX)TV_3WWX);^WXtWU^WWX)K$XW0 XX'W2Z`<XQXQW=WX`XE1_ < <X)M(^XOXOWP{XX NWWWFGWX/X}XWQm^X]XVbX)X)X)EXXWJ9X<X<X):XXX; =7; 0 `7X2WW6#X W N`;WXsWR:_QWWW0_oWXJ^XOXOW>WWX)Q^X2X2X)8,hWW0  +WWWB X)WP X)WDGWWW9MWWXzG+WXsXXX)K`XrXXV^WXX}5IM  N XaXaW7j_X X X)2mIX)WD> X X XOBP XzPX X WI^ o oX):WXs0 `XHWWK_=WWWV^WX1XjI_WW/0`XOXOWM^WW@aTX2XXC `XaXWE XEW/KEYWXN3aKWX}X8WWW4-T= t tW;aXyXyW>^WX: WWF XNWX:[^XOXOW8_WWX<`WWWM_zWWWFX)W/apX1W)E_OWW(BXOXOW0zX X X)>V& & &X)3~XjXsD%aiWXtXj6)- :WN_( W2zzX)P`WXfWQpM  0 IXaXX? X):8XaW7X2WX@v WWWOWX N`X WW>aX1WX:`XOXOS_,WWWQV_NXWXWXkV3XcXcX)GzX;WXI  WI_( c cX)=- XXWAaX9WW?~_( W8XWW]WWX)W?X X W4  iWW KBXW N X W?6a<X WWIK_XOXOB1^WWXO6J WXj N^X!X!W0`WWW2TA 7WPUXW N  / /W>^X WW7 XXW7 WXM]8F_WXs/^X X X)Gi=XiXiW>YX XNW6-_( 4 4WG`DWWNR_WW.RJ_X;X;%5R_X X X N;IXXF'`WWEWW 4 WXkWS`iWW<WWW>" XDXM89WXkWNQ_gXXX P:^WWXHN /7LXWA XXX27WW0; WWW@_(  X)FWXM0 8aTWWXkT`hXNXNW3_X X W4(_WWHNWWWW'_3WWWF_XVXVX)Na7X X WC XCWXj7 XtXW}HS WX9O`WWWH  XkQWX`Xt@9 WX;XzWuWW>WX XzQ^XdXdWP`WX}X7 WX XzHX)R_*WWWOdX}WG`XXW6a,XOXOXk4aAXWXt:~XNXsQF_WW_XXXkI_XXXOT)XCXCXk2_kWW&X=JWX/;9^WXEJ WW0 _XaXU_>X WSQX)WWC !X:X|00 X0X%F_WWX ?PVXXW6 `WWXaD}^XOXOX)I_XsX)E_WX XzG`_WW< _W0_XXW>Z^XX5WWW>XXX)=X'W.Ra6WW"gA)   W>WW0 ZXWJWL\WXa N_EXpX/>WWX);JUWX; N WWBWWX 25aoX`X`W<YWX:W7 <WX;F;cXsXsX)=WXkWA~`XX&XOhWWW5^XRW/ WK_XXXXWT`WWW7aWWXk5_zX X X)=.GWWWA`WW=g -0PUWX' NX'X'W03YWWXk1cWX N^XXWUdWXDX?^XXX FX`W0<YXXX;0  00`qX#X#WS%'XaXE/WwWWX)@aWWWN-XaXj(7GWWWVWXOGsWW4XaW,aXWXj82WXz:P iWWWT4X)X)XOA-X'X 0  X)XOF|WXOG_WXE_WWX H8_XLWW<X1X1X)P`: X)GXXX):0WXOH`WWX)=`XXXk1oXXfKuXWX:0 _X:X6!_XkX WDWW_cWWW1 PWX}0 XW^XXXXX V WX:XE8X WW>g`^XWW;aXtXt&X9_WXsWAaWWXk0_WXXWD`WWWTaDX%X%WPaX7X7WD=XXX)SY` X2X2X2RWaBX2X2TX X|R`X WWDZVwXWWH7`yX X ]>SX)WE^WW&XD3_(::W4+`NX X X)6BX1X0 WX0=%`$WWWK__ X)D^WWWWF_ZWWWF&XEXEX2>+ %WWGraWX2WJ NXEXEXkH X9X9X)J_(  X T$WXkW6WXa NaWW6a X;X;%V^WW/`CWWXWQaX X X)A_DXDXDX)0S`WWX 2a,WX}XWB 6XXX)Rh_WWX 7"aWWX)Vt`(XOXOWV%g /F`WWX)H *X)WLXiXiXk7 WWX GIsX)W'XaX5_( L LX):_XOXOWP7`WWX)B XzWQc)WWXk;_:XkXkX)BWD` X-X-W3X WXEAXWWA`]WWXkR Y/WWXkJqX4X4Xk1 +W?^X X X)0aX{XX T`XXX NWWWEjBX|X=`X:WW2X WgQRWW0 axXtXt&XFb gXXXO4^XXXXX)BXjW5;WX1 N^XOXOX2GwXJX3jcWX; WX fC%_XOXOXk9XaXaWL^X3X0 aWWX0hWW9_X X X)T2 LWW>@WWWO-X}X}X)<*HWWX)J WXUl_WW3 1XXWXzR`BWXW4"_5XhX W0waXvXvX)O  X(U`XOXO@WWX2:5_XOXO([`xWWXkS_"WWX4,X1W NWX;5^X X X)9) S - -X)?a"XjXjHXWX /"WXNX?> IWWWU_(X)GXjW;R JX}W/Pc_6X X X)J_X X X)Q%XiXiWRwBWX}XjS\_ WXW@  X)X /BX)W NWWWB WFwX)XEvaWWWOw_WWXk4 2WXpW6_ WWXk5{XrXrXk3N`XtXt&X4z_-WWSaXOXOFaWXtXj<_( WJ = /a[XOXOWDaWWW?_  I0 `9XOXO00 WWWMS[WWXk5^X#X#X2P_XEXEXk8l_WXXXjV)_5X/WWNb_WWX R<bXEW NXWX W/_tWBa_9WW6`X WWFIXaXXN; . .X)2-<X;X0 ZX|WMX)W N /WWW9Ca{WWX)KXXj0 _OWWI``X2X2X HjX)WWGcWWXk> Z/_DWWXkMWWWNWX1WNWW0 X_X_XkJXPXFLaWXtXj>iWW/BWWXO=X X W7uX)W_mX2WXj0` WX1 N_WWT`bWW)E<@X X W?_XtXtX):_( # #Xk?*  4_8XXXk@'_XWX}RWXO N_WXQWX}B'aX X X2Va7XXXXX)?WWM`XOXO=_XtXt&X8eWX Xz3=SWXW/ X)21X;X}Xz8a5WWX)7WX| NWWWRbXNXNX)8_|WWX)7^WWX)T\zXMX0I_WXtXj9aWW3aXsXsX)D'`X WX;2WX;XP^`6WWXkJ X)W>XXV?|X&X&WV aXrWOD_;XOXO)E8 WWX MZ`WWW1WWW0_ XmX/ WW<WWWz X)X2P>iXEX'0 aX WWT=^XXXkET`X W/`FWWX Aa2WWX)E@WWXk9_WWXkM]^XtXtX27mWWW7aKWWW?V_( A AW@XX'TaWXtXj7-WWPr_XX&X2`XOXOWCWX XzVaWWL6WW0 aX X X)<_XUXUX)8VWX WX W N_X`X`Xk9_0XXXXW3|aqXOXO> WXO X1WXjB_XkXkX)TyaWXWX9 X&WW=   X)6^XkW< X)W N'X:X|/Ey ,WX&WWX)S_WWXkRDBX;X}WPY_XLWXL_iXNXN)EL`XOXOXkG^wwX)4^WWXk=X)X 0 XXXXW<XEW N`WXXXjM`!XOWXT_(  X)5_WXOXtBWWXkOaXMXMWUM_WW(8KWW`uX9X9X >0_( WHWWX :E_zWWW5jWXiXX1L^XDXDBH2WWW: X)QN`yXXR4`WWX 3JWWX)4WW0 M  ~0 a1WWWC X)UuX;W N_?WWX)LWWaWWX Bx\WXtW6k H^XWXWX):5WX|0 X>XX(1_X W=aXNXN)EM;a7WWXkS WWHWXE`~WX^XQ1$X X W5^XXXXW75WXNX'R#X)WUWWW4i`X X .R;3X:X0  NWW1 QX'X Mq_(  WAr`3 / N`dWW.R@&WWX)I)`X2XG5X;XXX;0 aXXW;_$X&WW<]_(Xk37`aXXWFK /Lz_X9WW62aGXOXOW=1;WW;+WW0 ^XOXOS`XX&XRXWXsW7#`$XkXkX)Jo_WWX 7_WWE5X}X}X)6I_WWXODO_WW #1^WWWFXaWX/2O`wWWW0_(X):8^XXX)8`WWV_OWWE _,X&X&XkSD_NWWX KWWX TadX X X)D]^X'W/ X1W NWX:XE@pWXP`WW7a)X{X{X WX;o6`WWX}5XkWXzWsX:W%[L  X2Ge_X X X)EaXOXOWCX}X}X)5agWWWD_X X X)23l3XvXW4WX;W6`%WWXk5a[WWXkD0WX;/9_XkXkWA2X`WF]<X`XXa7WW0 _WWWEK d NX`XMF*X)Q^XOWWT3asWWXk8q^XXW:_XXWO nX;XTWWW?_WWW3M#WWX)4_ XOXOWCaXWWN`WWWL`WWWAVWWX)G@aXOXOWI_/XVWWPq: ~X@_(X)DF_WWXkU lXWW8B_XHWXt0WWXk9` WX:WDXXMXMWUbX'X 0V_(LLX)<`QX%X%X)N"^WWX)T`SWWW@V_WWKCWW=_#XtX`sWXtXN;|aWXtWTGXsXsX)V* < <X)5X)K[WWW;_88X)1_XOW/XaXXVXnXXI"^WX,/HXOWW}M_XXX)< XkWN`6X X X)CaWWXkO)`WXWXAX0X0WN 4WWWN]^XrXrXkRMXW0 a WW<uX)W/_WWXk8X|X`/6C`9XX&X@_WWFWWW6_XkXk.RCLX)X)WSPrXXX)E_(WWR _ X)K*tWXDF`X X @dWWX LaWW= XWXMG!XiXM0 aWWXkBa-WWJ_XXWRWWX2G`XOWX< k 8 8WI{`XtXX'>[ QWXODX'W.R`zXdXdX)R `WWX2BaXXWK"^XjW0 9zaMXOXOX)Mc`XX&XDa=XkXkW?\pX)N_X2XX7_X|X|XkT_XhX WUaX:X:X);*aX X .R2Ll N`X2WXjR)_ WC QWXL>%WW_WX1 WX: N_X X WPwXWWMA T`WX;W=`1XkXk.RC X)0WWW058bX`W/JuaWWW@_WXtWM`_pWX;A?+_( & &X QU;WWWCX^WW&XPf XOWW96$ 0%V}`YWX=X{MWEeWW?G o UWWWRX)WQ`WWX)90 gXOXOWL hX2X2X)@XtWNXaXWEWX0 NWWWRWWB WW/LI_XXXXW?MX)XO,_XEX/Gu\WSK%WWH`lWWA xxX)_|XXXkPTXXR`{XkXkX)35XQWC_WWW9:_{XkXkX)>'`eWX6XaU`XXXkT7WWX E.M^ u I NcU/KnalX0WA= X)X 0 X W.RX)W/  W=`XOXO@^XWWW9!XWXH/`WWWX)1&XEXEWE<L WB_X)G_WX_WJ'dX0WWCfaXXaI WXO N_XX&XF_3X2X2Xk7:`X W:X1WW?3XaX_XXWSW_X/WW@2`WWUXkXkWImcXEXEX)2&_7XkXkX)P_.WWXk;bXsWXz?cWX/I^X0WXjI WWXzPX WBWWX)?ZWW0 XXWL`X WXt4}fX)WW|F X)X)X Kc_(X):N_IX1X1F$!!X)0J`WWWU`XXW:_(X)NXoXoX)9 +WWX)9WWVS  X)A iXEXEX2Q_WWXk=X X W<M W7XXX2C_(WQ_dWWAN^WWX)R_wwWWh_WW)E@`XNWX}O_WWX IX\X\WKAbXEXEXk@6XkXkW8A_WW(=XkX WF`WW0 WX:X'UX)4MagXOXOXk9mX W0 \  XkVQXWXWX)IWWW0_1XoXWD[WW BL  A  NX)WD_WWE`)WW.RS(XJWWMaXXW@ZWWFaHXqXUPG_XJXJW0 WWX0 _WXX}IGXX0 WWW7 WW0 XEXEWI`X{XX=j_XjW/N_( WI_WWXk7`XHWX/7o WX /7^XOXOXkH%XDX&WW ;^WWXk7_WWP_WXsWF_WW.R:LmWWXkIH_XOXOTA`)X X .RUPXNWXtNp rWX0 _X'X'X)OWXj]`XOXOW5WWS~^XOXOWRF_pX WSI}WXE NWW4P*WWW4%XjXNU&WX} V'X9X{/= WN/XXWSZ_WW]NBWWWWF`XXW;a XtXt&XW# X2WXEQ yWXL/XaW03vWX2L 2 ;/WL` WX/TWWXME!WWXk@`_ WXsWPtaWWX)7s_?XDXDX 3c_:X2X2XkSQX X WP_WW)EQ_2WWR{WWX)<::X)0XNW NXW9mWX|XWQKX W3HXsXsX)C_XX:U^WWXk1C X)3^^XWXWW6iSXXDH_XOXOB}KXhW NCb [/_=WWX)W `mWW)ETXNW>?na1WWX)P3WWX)U5a|XWX;;WX`XW=`WWW5oX;X0 WX:W@^XkXkW>_XXXXW=Z_(W:@XsWW01yWX/M)WWWKVX|X N_$XWXW<WXAXXW<} pX:X|XzL`WWX;8^WWX0LoWXO NaAWWWB"X}WnWWX G`mXX&XU~`uX{X{WT_XnXnW=_WXCW8y_ WXWXIXW43WW0 `WXrX:-XVWV`XXXXXk9U`X X .R:^WX3WWX)A8XW0 IWX Xz5#XaW>`aX|X|X 7 XNWSYX}X:U :XXWAu_XOXO@+_LXXWWT XXXXX)SE,X}WIw_8XAXAWS4 XtXX KlX)X)Xk;[ XEX'&5_X X .RVZ_'WWXO3F`aWXM,NX)WF>``XX&X=M a`X;X;%8.`;WX:Xj3CXjX W3XaXE. RWWXkK'2 XzG_X X X)U XXW?WWW?mX"X"WDh WM2~WWX)T]X X X 1`WXkXkX)?`{WWXk<WW6aWWX <6WWW2?`X:X:W46r WG^XWXtMtX`XW0`XOXOW@`XDXDWHXXX; KdXOWXz1X)W3{_<XOXOP`WX_XO`XkWN~ ( 7_XXXXX)I^XtW+C^WX|/aWX08r_;X X <~IXOWW?[?WXN@H_sWWWSSWXOW4_tWWX@rX W) B BX)@   X)?)`WXhW4  X)Q_kWWPAXkXkX >`3WWBN_gWWXk2b <X2XJ*^XOXO)E2a%WXaWB_>XDWWU^X|X|&X4L 0  XWX9aWX2WLKa-WWT X)6EWX2X,<cWXtW}=_xQ NWW X X W0_;WW]Hb_3XtX X{X{X 8X1W/`tWWWC r rX)J_6XOXOWRJ`WXtXjFXsXsX)UWWWJIXW?_(""Xk9dXaXW:X2X @I`WWX)N X)< XXWLXsXsW9_#XkX .RvWW6gwX)X)WJn@@X)1XXX <'^WWX)5w WXEX=^WX`Xj;IjX)W^WW^XX&XK_WW]R,ayX/WWSiWWXk1 X W?X W0 XPXPX 5`XOXO([_TXWXtJ^XX.RQWW>& %WWX22W01WX}WJ$`rXOXO([rWWWC-!WXt0 _e X)HXX;WXN_]WW<-XsXXW6WXV/_]X X WR(sXkXkW6faQX X X)>lWWX)B  WWXk0d_( W WX)GpWX`XENqXNW/1`r WWe_WWRzX&X&XkV WXiLC_WWXkBv_ @ @W@u 3 (`WWX>KX)W/_( X 4('150-:F 9!O$[ 6+'_[,Z=C!ç%r+![ ^[%rj[[9>,[[Nv,Z(5[!- ^SB[ [2'$<$+,[L-zӮ$0m O*;5):'"Sj$'DC'H(v DH 1*)@(Q%#(=* (Tn-!vOF&ix1 V9 T(]%қ-Ḱy-D$w  '",D `Q,˘lʽ# +$;-:4)&ҁ.#6V#M%3@$PE $>L.#x%* NCZcM) G DI,T'\(g S#>\d(L/?"-? .-8"P5Y.>g}#/+%TV(.an4 g) +, (3  KO(c:VŅ.K= iJ  N)((-(;Yk$AmQ @"!J2*Q7-($+`Yv #YH0z (i.7nZ$BQ_'(8'NOxt+*3tfǭiLQ U** h ) K&(*'[4X K).!R Ú+%ڵ(5>70n#+߷3&EE M?;7D+m->LPJ 6 $#)NeN)?#&, /, .;@(&F5$%^!"Uf׽5,hV+A̺* A.V*D./7.*.fz"S@Z &!G9"K%\ %$%)g%z%SvX';%)g/X% /%XLUXX.LX"X"TΚ%zNXLɋ%"T4X"b%.L8@%!=AX=%F%"bGX.r(%%BX+f6XOX-YG%$<X.rIX$;%+,X+f,%)]9[%'tX@)%P%@X$;XFXPX"A%3%-rX!=WC%-U%X+3%)]84X-XS ™#d=)&',QW .@,#)*~d[ĥ8[M( ! YI{23|#!X(wbǁ)| ";*܍&A>EW6 <*EA+-eeG?|",m%kMw,V Z$*$I8r3D\"Y' *yY&"KP&)M-W=!@HX/L#( % +"&uצ/ %*T"!)+E"@3%hC.0'&G;,-"M& % #I,dO&)$ 2T$,LG F"X8_=4e!*H[ $yߖ(f -=6%]M-y!kX)w(\$ :IG>8uH,X[D$$5#K(/$5 c~%J& !{-ȵ Xr **_K&Dmt.8T0./%[+[*IjI&q'"1$R'^%"'NP5 5!6"]s.7)V<'.ۀ'z j5)Wb("v,Ipx6!Nh,AB 'p7 q.-N  J7WWye TX,1!,1!%F|XrW ckWX7,1!),1!X.$X OXS 'M^FIXWw 7XA`YywcW$@W #<\W,1!v|DWi.k!lJKMnG2WeNXG?,1! (XkWd;ja 2$nW~lCETXtFG22_W ~F,1!W?Ej S&Bqy 2-$@e2A Wc @X|WX2EXOaX)XtX)WXGVWFXNG2DG'!XjQ].KVNS2-WX\XOWXOS2,1!y bX'2*=8~eGXaWjWXXCKuۂSWW2XW TWWHm`d6{V'Xe5deyD8W",1!5qXXs2FWX`XU[ r{AD: W_dw WѰN  BD/WH2IWK]M}WE&X`CXyF5X; D,1!WWFWWW2FuzWWXX=&"6GHX}ehdXG9CXF2XRPX 7XWWXIKXXXaE72WWW>h,1!HW`fYZ  F'WW>GkW22DW'" 7X 2,1!,1!E )E]ywwe^D2WX@8$@F1VjWbWFdw*%,1!2=%F;ED%M]iXa_WY4`22W5xGT#k F H+k2XI7U Z !W!Zed,1!WENWS#22WcW,1,1!W,1!,1!WJD4WXL6X}WW+/&E 7XXXAdF=RzXB2FT n2ed,1!Xk$*X',1!FW-,1!R@ FnTXXX:WGHXXDWXa+c W2EFCF`,1!W WWK#E;DV,1!,1!d dedC2ĤF,1!WW$?W %CPX eeeA%,@ (* Xp[DW2W,2W^.RGdpXG] w\D:e ,1!HtX22XXteY ew2WY^2^XO2,1!X: ,1!W# KoW ,1!hX X X P(2XrW2GB doXgDDE{U'',1!220P20QHG{X)W.RX `oXMTd e2de>2(H2OX Iw cXkX($XoXa5{3 (`L3,C8m] e<]?X ZXt ,1!`X8W2,1!&X.2-Wk.WW!H*.R  ,KX}DDW_,1X1K&2WBWX)\ XaW"-y }.RXWCXjW>)XcyXkW2X$^Ӥe\X2XX,1!SXx BW${\v!".W2WWXkA_[0WX'cC|,1!EXX DV)GGXE 2F X4`4r4WcęTXaE[XeXkX`W3XaXtWXtIe XC)+GXi2}X`X`X`5MX2D:(XEWX XX`XkWX)WWOD jC$`XX|de5epcCX2WX2 E *XYxW2X`|X@h,,1!W2 ]de*dmcVvCFQaWD_2 d'G^WG2X`zXsWWsg@2W D.R2gX$X;X2B2ԃ 2>/j'X:WXW2XX%&XX|WWW'(G(I_yWgItW X W XXEXkWXkA <\X&,1! V1BW.>D17eHIXaXtXNRB2A:q 2XjXIWW29d2G 0NF 2X)WX)B΃XkXOXkSWXsWWo2GZXsHvy XW2SXX2R$WW.X WXnX2yXXMX X2cWXsFD@NE<#Ӫ2X;XM5X GQ'W2.R22W 02d e dd|D .Y,1!X'W#',1! ,1!HXX Xve_0X0<'fXN,1!2XX}X>h2X  O0N#GX X@Xd. WWWT( XEW JX'XCX ͝WED~XI 2 W1zac`HCne MXX9(r>D2XOHW2 X` QXD/7WKuW XPFb+s2,1ۨ' 2We"X~.^GyWXaX;EZPd X:Xy2X`XW >EH?X+,1W2F Dvy  (WeCXXsFXaV`2X`22 j  y..bXBHzRWC,1!2 4)vfe0'D"gbd deeXWJXWF>N WWWA''. XLzO WX'2DD8,1!X)WW;}=H:2e!CƖYdV.0 ^XtG/?x  GP2Cd .R&XXX2EW| XtFCX`2F B17%f4%|,1!_D3 CX2G2mUz2XsEE2`B,1!2 dTWzG!EE2;eusy^,1!2WXhX vJyDXc22' XjF 22dn,1X@) Eh,1! WSbE2.W.e.2>CXNWWe  P2W WX<,1!XXFX'y,1!*~.z  /WVXt_2WWa222CD Xt@2HW2CNW`\]U22"p.'f"p'f!)) 2<2Dd ,1!2WF%?GXXXa:I2WXtWK)52ȡW GLw,1XC(Xte2W W2EsF=2,e>զ ENMy,1!Hf'HvW,1!GFzF2)\ ^.REJ .#,2* I?Ed.2 XADC* Xj A2X X2WX}VWWCX>X2,1!W,1! F0)0?y#?zXj pL 2X ,1! ,1!w7W7XH@_2XWeY:Y;~2,1!eXOWXOS2d',1!DS FX|dX ="x22xXN2AWUy2!d=cd<22H,1!:n-R,1!FOWb2>dWG}2 L.W X;X;X;AdXwW2qvWC_($w2R Ed}{XReU/eX)X)W6de*e-d X:y2,1!2W,1!.2WXaXXGUV_`2 4P,1!,1!,1!?7ddd_,1!dd`X! 2HXmk*de5ddP:L,]B$5E2E;XWuyXs2FK@Xk2GvX GwI2<3 C?țy2Cea2W X) W,1!WWWAdXx o`0W-&F W=WNJ6Xw!&E 7ߗ!wyEX W222Hr<';?y&#,1!2XX2XaC.XOWXO>hZpXtyGD2K &XRWY'!Xs XF2exX: F',1!5HB X %Y>2,1!X)WXdiy)aE_2W.RxX'X ` 8D)FWWT2 2E,1!X2222eecXV$2XXU _A5GXEeGX}2 dE+1X8 y2 WWX'G W ('Xj X1WR\Xj2XXEXXX}I)2F2X|Xt22ZXtXQXd decd/ 26H5GXk xEWG[XR &H BW!22GX1X}^,1!20CU5|3Sw+{'y2Xa HW XEEW##W#*2XeedX:U (D!2f 7X}l2  C%aD22d=ee,1!EX`Xk R\WXsX}WX}>h`VJ[ c2WXs^\G7W%=(0lDJ9 JdEkF 7X)WA 217:%OsG  oj],1!XOWXO>X1 (_X,2WHw3SR (  FlDߗ1773PWHWaSXXdH[#6XkWXk>2,1!WENw,1!dS0/w2 7d:j2,1!XE@X'222SX XXG 2 n2W GX$*5FWWWW5MT X:A,1!C8~ 22XrEK{ )2RWC :pEW%'D3*f UK"V6WW2C|).R(GXXt|hLX;!XXW.R2XOWXOP(p'C  wG2Xs(6WWWWAdd(edA pW0 ,1!2X! 7,1!F#ذ4sG U{X:EHbzW-eEFe,zD='N'.WW1/2 XXWWX 2X|WX22X X,1!22DXWJ 2W '!~d*D22,1!2XiS@EleX&AFt,1! (. "-jOX1 %2WdWX)X)WBW2W !1 (&dd(ee9 @2W,1!--_Xk)0 .22WXX;C H@"U/ Y W3W2DVWTWWX|,1!GZedcXHo 71G,1!لAXdWRaX W /G W2XOAXi_fXN;nW_dL~c+XsH)2yNW,1!2Lr2X2XX2P(CW DSWDX|"KXC-2-,$x$-4-42dd(edYWw2WWWSX} 4GX_T2G|dOdeeD,1!GX 4;T Xt22''"2Mz'c()'dWy0 /9TXWWWWWAdXXXX2W,1!DeDu;F7 r,1!H;W#i&W2WW,1!2M2ddWXXWT(c\dedEc,1!%eEXNF#o,1!X.R@X!"F ~d!&F. 2T2G2 WWe5dcW2EdWWz2,1!W :X9W&C ! 7 ,1!7SeX+*,1!XXGG o WXD,edWEX:Qk2WE.DXAWX'X,1!WWWS$:,1!R'=UFW DWWW? J`W,1! E$1N2dX:2)JWFG2Cx%.:Jg2.fw2,1!25d,2E6rI>+:+J#H-j _o22WX`W)Wz{W#*OX}2XX o\WD HEW;tG[^`V^X}. LuXkD,1!yDV' rWWXW%,1!22EX{WWEB20 XtWXU[G\CX`]ee,1!E9SW,1!)!XX}HX9O TWwyX)XOX)WlDOXkWXkUIyW2I3qP X'XO hIW2LNX$,1! )EemdeW222,1!2_ de*dmeB2GG2X;j>X}e+2ZXtDiXXXA hhD.RFX_;A'!2EuWXDTvCX@X2,1!W,1!,2XF.P,1!%6)Fd@X:Xo2XN2,1!^X2XkXkXkT X\WWW5M2,,1!X22F$<WW2G '!WF,X)X X)T(W%WV(EIXG@ <C*W2 -2 ~22,1!XtXj,1!2! 6,1!7کCDeWX`WX2  \6W aG qD^ yE4oX X)WX)0nc X`W WX2 vW7 %eduW,1!XE X'+sWDPUX'WX1WiCWX)W52.2X,.2DWG02r CWc2 ;U(])(#Xjw.R,1!* I!2X WX`FFp,1!Xl G,,1! ~2W WW,1!WgX2W$:yX|XX)WX)T2GX ,1!P<O2&XDeYyW,1!,1!$,1W%22p(+".z w[GXj 4)aOX1 (, XX2XW2,1!XaW22'!WKW XWwM2m,1!WFJX2 We;D2_FWW }2XXXXNjF" X 2WXOW792~icb^GWA[XU,1!D2 7*n`2eP'X1X}eE"WX E2X; A>Xf XEC2Fe_2WRHqW2CF2F,,1!*Xt (!F_+WFc,1!WG,1!qX2y g ;,2dy.z 2,1!X`2 2W2euXpD#k22HE(e2 PFX^X X X AXs/5}XFWW,1!W%WXNWXaWX hXt2/2`_2WDX?u X|WMeWF)2C`X 2wX? 2WXOX;222wFG>A22WW,1!GX}&',1! PXt_XeGWGDOWWX^,1!#6VƼXryXxW0= ;WV2?&g.'.X 2m,1!,1!22~X ?WX)W0n2cX} G0#X'WWy#DjQWWF8eeoCX^yG{XWWX X17Nj W22'!,AZX X X TX,1!XxW,1!W`X!WWX'Wy 22I2W ZYX Wv$?CW22a  WCX X2X S2Ko>]DWWWSXXWXXP(2 D,1!Xa,1!;.}F$q) P;1iQ;4y27ZG2ywWXDyXX_%3yD&D)WW [tXjW X_2WX W>hGX1 7eXkX _2FHe<WX9!yW$&q(GI'X2WWXXYq5 2FX?'2%yF WWW AXX`CwX1-_%WX}XQ,1!E,1! X1W> ,1!L%',1!XOX2XOSXtXtXtAdX^sX_eg,1!XX2X},-.WWkWC,1!) WX:Jy2D_W'8G 0)0':!XOXOWAGjXEX{XEE,1!WcXNX&dde'vyYa m2HMX!&2'2]Xa2,1!D2XHD;WXE-.WM 7 hpie2g,1!DyX X'_LXXXEWU[X,1!WWiWZX21',1!2X'XV29$XB XddEk,KF>^7dUXWCWWWSaH,,1!X WXXU[`e*X5CXa,1!C2Wd>2eXt`2HyWX0C 7A2  H=GD(RI.JWXkWWK (}E+222Xj2 22Xk,1!H U2WX F [Ds_IXXJWEDX1 yE2Xa '!Z-\dkd=edl,1! yGX*Bce5epdG w XNXaѝeQ G E% 7NnW3LWX2WIXto,1!XW,1!G\WX2WzEc,1!Z2X'262B_|xS:*FlCN*2W W .%WeD*dNwXH&HmX XOkˑ2+'9*dzW*/8iX1X;2nX9 0WXkr (5w'XXaWy2WXFemddg)WXE D<PX2 & 2XkWWXX|,1!XtXeWWMX_Xq;^$2X-.W(W,1!EA,1!5gDzYXb,1![XM>X: 2,1!,1!FIw2WX dX`S { pX)WX)>hWk,X}X)X)X)T:y2XD:K K2WH WWWXux2ʺFNW,1!X&t%mDGG_X:A X WWV,1!222XDX)XOX)B2 'WdBeH2WC ^+w-2XtX;XW2^ FW4XjX X X AyU8y@ sN1 W,1!W Y X,1,1!A Xwddd 4љWW 7dH2:2p%XjXC DXWD 7XtX:YjW2XGEDCEAWEoX;Fy2 ) ' ,,1!DrC/2X ^2qW2 QW?'2f'OWd eecW WW *+1DM*96Nx;~2.>D.R2KHX;2X'Wd239&h,1! KDrX1cX1 mWFkFXs,1!WX;W Ec6WWO,1!f^XXDde|FM,1! FX|1WF+WWWWLW HA-.W(hX)WW79A,1!X&WE 2d e2ddFn2.2-DE t 7dy2  _ D2iW'X,a 2 WX:<X?HX ,1!2XaW:WCDX 22qd22 %WXX`XG2d2XD? 2,1! I?$?Wq;uX)XtX<XXD{WS 7XkHEF%Z2X&22GI#2GXtWX;KHcWFfĊ> 2N2 e{$MGX& E2X~2FD2WxXWeed 2ydFjX'`XWyG3G2W ewXEX:X']~]~]~TdK 2WE _2IXtC9WFuD$Wt2`8~Q2X 7ESWXj_'H\X lX5 X1+xW+W2 :GXMWWX 2F2,1!WWWTMX(.Re c2NZ|dHGr)1l4W X'!PXMd deeX W X1XNk'WCXEWo~X{e2G WDWfWWOI$WA"p2,1!Xi22deeiXEd W,1!XmCWXV)WX(WX)W>h;;MD DXk;'XaWXaV,1 .X':'uI;#ߗHWWW.XW*2XFWWDTDUf2(X2WQXr 2W wCXE`XJxM.22 Wd,1!W,1!MXWH"X}X22d<XXO,1!2b4FWy 7d e2ee(E|!JV#G2Xa2FH>X'WW \W2WGWWpW)FXs5uWWW5MW2&,1! &X_2WFy7quX yXz2,1!W2D 2.RWa'QG/2WXH2EE"  ^ Iy+@ W<XX` (Xj2WTVD H 2)2(*@W wXXXsI7U WXN՗ n2X}dA?$.E2W 7X2X2X2TX2WW%2W22W.2W -,1!F2e2X322z6W)02]]]^WX)WWLX,1!DX|dZ }WXk  2WX)WX)B'2XE =WWXe,1!yWmiXsy,1!,D 7XE \,1!CE23G =EXtXtXt5MԶVWX&Ծ2JXXXXZWDWXDA'&X.I}2GQa6XAX1XAEMXVt9vH2^e,1!IX&XsEbX|WFX2XtXtXtSCwzX;X;X;AW'XXW6detdfXakXHXXkUXrWW!X1K$(2,1!eCC*+eE:EX XFX:}~X2CێW Q+*X)WWES_2ExHUT.LopA 2X "x =WXtWXEU[,1!,1!PP 2.q8HP*FGt_WDW=E2X} 2#'YWWWH!X9Ȍ:X} WXkX ADo.wG22  <VD%K,1!X`2*+2,,1!Ld e ceF9XkW)X`XM`vXOX ,1!y=2dE17",1! &X1X{de*dmcWWF),1!,1,1! %Ced Er( euX2!HJ jWGXjXU22XWX deewGgXWX%,1!$@w reldfG+W2,12 2X ,1!d e ceL2 l2sXXt,1!X XOX T.RW`B (Q2#2XhdXtaCW  F W X}2J`d2EWP E{222m=2(-.?TWWXSXX a,1!XsGkIXX ,1!W AFW EWeJ 2d c2H2WMH4 W9W2d XJhX}WLHWX)WWVd=ccF[WWD2W*?2.: 2,1!X 5WXx7YBzX)X)X)H!ȊM0,1!-0ede*e-eXX,1!> CWd P*,1!WWWSF ,1!X}W=e5dd(5X' X%2W,1!%|F? (W2WwmQ{:(bFWX1F{DW$X; 8X WW2y2GXV*W% EXRWiX EW^,1!]WWWX2X2X25MW I3EGx` W 0&7dde .2W2eKWWEj'X2X  2dee4,1!G1X2+sX dE$?X|RGX1O2 Dd>+:+J#H-j.RF,1!BQWXXR .R'!,1!17:W;.RW ="xW X)XkX ;}>'22 WwWʄ* P`XsH 7,1!WGhW 7,1!22 eZo,1!RW?NUXLWXWd W. <*kE&7`|e2WXOW0nXh 7GGE W E~W2Cy2y XXXbdde*e-dGX7WQWQm,1!FRWXaWX/edG2! 2WH^,1!id ed:e7-",1!F XD<2aW2  D^eVWe.U%#yW,1!K>P,1!^WWXj ] ,1!.RL,1!WX E;Ro5cKXj^[jX,1!X FXCXWFEaW*0 aRUX7UsEW ,1!WX@GQWX;LAW,1!$~'2GZXtdd(edXYWXOXOLX2XXXjAfasXXXtdNOyW)WW;Fk2W,1!B3 .RX;'!D[W^XJ2X}p t:FWFX),1!Xg.RXSWJXs22[WWXt=X>d=eduDXNe2 _.Sߗ CFxXEXEXESKT,1!F"2dWW2d X|&XG WW WX|GYy`ZXW`[WD.X .KX'X;2,1!,1!XXXWX-Xt2F XDFX1lG +1WIXDD.W22 XtGNEXk2@X'ɬ,1! 2X<&XCB)D 72,1!2WCX}I9aS1(yLpHX}WX2W= X :$2E12W s_OfXO.RW &/0d?78X12GK y_XpH{XX WX SCdW2 cP!Xa2 '$C2'XTVWWXkWXkS',1C+1X}2XW+Xj,1!WB=e X L,1!X;W8 NX+ ,1!Xa )\W$CX\X9W2XDc2^2XHEW z <dW{U=Q2W,1!Wa8wWX,1!2 J2W.9 2FD'X1%.W @X2X|FXW22\5G;"XB.R2Ci,1!SHTX M C 7-DW,1!WELWGXXW"2XsXX2 W0Gl H3!XAWhF,1!&CX'X'X'5MX2`FHX Ws,1!21Xe  X2XEWU[,1! /=1X  X|2MDX M2X|_$O55WWX;6X22VWX;W>hvX  7E! !gW,1!2H/^$j'!FZ GW;WX1,1! VX WWK/NX'/-3XOX F2csWW<5X<,1!X2DXWm  /2WX;XX;T(XWXs_PF mhX+,1!:X8 56;<D,1!EF 2XX eX ,1!2C2X'!&p2rWCd e dd7 D+6'!aL`Xk8~XtWU2?}XO   '10EH^$W  '2 GpH?iX8D+X_,1)X[QDdd(ecB2od+drF 2 ]dXfXkWW MXz$X'.RX!M2WWX263 }#WXEd,1! VWDW;,1!XDL2XMWEW2  QX:kekfWDm2Dq2WGDGW2.WD %DH[X  72D 'WW|22wcOXfX2(L2WgW wXNdHX;BX},1!,1!E2Hvdb` ` 2'2D\)52d22ac2 *X| qEw{90GIXD-2W2->dN,1!X)WX2U[x WX1W QΉXaW": <*k 0HG F8WWFWXW.XOo="xAW%X{'dW /X:Xs X22UXEX8HNR?XB[D!hX2XWX L LYXOXXOT( XE2c5Fr_7/8iEB XkV27U[ WXk,-Wk.W2D]E#X"fX ,1!FSͪ{ +eXjT|D3O2X&pW AXXWX ڕ.dqB W %*j (a& mJW_\,1!:WH2lgW<-F@`YX9#GdX} EXMiXe  WvWx2ejS2X+,1!h [jDWH]XX,1!2,1!2WX1FE(ԊWX>WWWWS 2DXiWH.,1!̿ +Dx9@22',1!9Dk1R2T&FF^DX Xs21BXI.RXWC2&X#)X eSWGya9XNWWWAAXcNEXjy,1!NWXX  <E\ XXk,1!WWO;CC,<cTVHd e2eeWC%2&&+JӴӻ|X&;,1!2W* 2 ,1!-,1!W2X;XaXEX2X228h2xx$))'f'fGH=WWWG&XW) 2Xk_EX WX)X WU[IW#6Wd=edFg$2D ,Xw2X Xs2TD2XSkWXW2GW52WX X OdO1+*R{XqX1X 7c,1!XiW/d"FXtW,1!2,1! X2XWXXW>hXs (&yfD c22_kXF;vE3W2 ;WXtXtFX`EYXN* H,1!H}EWX ,1!WXF2WXO,1+^29 ,1!D>4^,WWXaX7 Y<XEM0XsWa{W̽2Fd9WWj*)<opX'^2Md XtWDCW .]X0OWw2ww2XFemdeG2Xi*'WX WU J2HH.R2FB {X}X)XkXkO,1!dtW-D,1!G0#,1!w&|S,1!X'AVX GdWX282XWG[EU~W/q ^#,1!  CXEϢ2 0WWXT 2XjX'XO_"XkXkWWF,1!CWWWAXa,X(["+enDo~5ܖ.RXWWU TEW22W4\x>2FX#FPO;D-2DgXIdd(ee2 W X)XtXBYh}-XDWW,1!WoX 2  <pW XEր,1!KG$X\ tg $2X6 F'*LXXkWXkS22%E z;Fs,1!B.XWWWL$2cEt" 2*'!C 'DDGXX2X2X2H!2MPce#S dXWP FFL D C3XEWdEX1 A2xX(rXxH 22 rG^X1Wd ed:e3`.WQ${Xj)GM+1X'e,1!E>WvXj.RX;*  \a'ճ>=/ N[ /,1!2 d$a&WXtXD7,1!XtXO  7F22*WX WX S{22X`13,1!,1!XD22C2g'h " X:Xh,1!G Oe ,1! .2'&X:XtGh9E,1!,1!cW3X@ EWxWGXX 7F.R,1!4,WBD|,1   o WWd^c dd(eeF X}yXMWIXj9)X '!> $-WWXE]WWWTTF~WF.R,1!,1!~ 7eecWX+~WpX 2cWXD"XB-(.W.'DD.#X E/uGeRSedX-"X,1!,1!X;22X{F|Q2~S׌`oWWX 2&.LW2C X',1!mW2e2XW=?yDm%.W ?;dXXX C4E,1!WWF ȨW,1! 9djWWHF*,12CXA=WXa2,1!X}.R0dX3VXt}2n9X'2Ed,1!WFFdd5d FI %GW22X^9\C7ES WyXr XEX19DeK?'2X|HL,1!dC4<H`=2,1!2XXkP@ODd'Q0'deXX,1!,1!U $-> WE<XbWXtX=GR #v,1!EVX&2+sX2,1!XtWXt>h VX2Dwed eedBm.RE-,1!RW0XW2.))+)($,1!,1! &yFv* W,1![ I 7D.Wʠy,1!2D&^Xj 67WW -Xc@ XEF}|SQ2XX,1!ד"~|W da*TqWWXk6WX)W (E0X2AXt+X:!2+X22 X XOXOXOP(XH'WXOW6e2X'FHD XDE@EWe%D?eb,12%E,1!ia+.RWX3XOa"X( )EDHCE$W 2W2,1!Y)  H'X)XVXdD(WyZWSEm,1!X WEnWWW5M'!2 }XW:(XGW.s(W'QXX2,1!C2yw  Ocb,1!WlX&*[X1;n2_  WjX4A2e.cX WFQnWW(.WX9X2,1!DdLTXs\ ,1!2W W,1!2JWG&XXG6'd@X X;2E^WXkXkOXNX XW3q.W-,1!9WD5IUWHi6WHDX $DYW%GQCWW2cXOGO4_&<,1!2?>1;,1!X:E&XXNX X WH ^2Xc2c2W8,1!82T^F"t2Wwz2`WD)<WWd`WGF,1!X`j 'l_(GoWX;X:2Y2Y#2#2]rXkWF_2XXg+KW6W,2dVXkDXY}2WX,XE,1!q_MFC,1! VIXtI̥,1!,1!XjJCHXa17e!cX2E2wXBWW2X;XV,1!2:D .`l<*/aX ,1TWXWXtH/,1!O`,1!X{2,1!gk2XO.XkXkXkLXvyX}XXXXT# :X|XEd ed:eXW22Y DN,1!#.DXu 7*BWXX  XN 2,1!ÑWeJX}D6222X} 222CW2WT+XNX2XX'U[ WD2,1! IXrXiEyZkFW d,1! G(WW& DZI>wX AXk;WQemec 4W2X;g2CX)WXOK{GDX; =D='QGn2E)N2^ =XW (%WF,1!DXK Y6XE 7JmtCxNW,1!-Q#WX}VvF_D9T,1!W2w¾X@x9 2EX2KX;XVSWF%XX)WX U[`iF-FFWD8*W2d e2ed{W 2EaWW,1!XX\,1!.RF XW'c0~,1!X  iQe]ce]R& j2XO2,MX:H >)jVd(2XWWWO2)22XDeX)WXk6eddXi Z_) ",1!v2 2WW/X  WdoX1X 7.RCX)WXO;}DjFWX W>7[]eV7WXam X 2JNPQXD,1X=)02PYW(2d deeXUWd=cdCX9Xa+,1!DW22LX |,1!CWEeD 2204,1!DW'N.W-3qW,1!F'1Z/FS:$+PX)XOW;}( 2)P %N'E,1!:* 2זFIJm'!CWO fYX[oCW.W%(2DDf#3,1!WC% 17{RZ=uU 1̥ f2,1!XX(`NXkW'6evC_WW'!X0uWyeEFbemWX)XOWU[22ZX,1!WWX1e0$XN4 t+C(of/26X- 2D2HBDAAEDaGW)<2Rd dedqC2WHX`W` HXF>Wd e2de6W2 XOWXO>XWWWP(eWJW[2Wi cOOGXkXkWK>}_wX  mX ^X2eC,1!XN&XvXWXWXW5MX2*X1F,1!X*2,1! E22<\XM 2 [2WWXt 2WXOW=E:X XjJPxXa2.3W)D#2WW8}2)<,1!_9X WH:(dXWXXF$EWDWdhXWyEaXtWX;;}AV) c 'G2X /W.WXt0N#N$A,1!Gm FvgxXmVJl2q`IW2XC8m ieYX2C X)XOW> 6SSCXOXOXO?2WX_,1!_d?Wwh[ <,1!ECX~ @OX ,1!KXXWa GeF<W2X2wXWWWLE~ǩWe/yWX:Xkek X 2W0Zh yXFF 2DXtWW2WX\X,1! (re~ B9_%9a 9ceYX'X1.$HJ,1!wGOH2G-eWdWW,1!WREGXa)Wd 2'Xz 7XtWeE2WX}ήFί*22WWLX2 FyXXG* ]e,XO2 3?2Xy]X X X H!AT~yT' & <|< Wex 1XtL~\FqEEXaRUWe ,1WXtX&ܳWX WW,1!W7D2 H2e`W XtE-G 2QXEX}X}X}A V^,1!XJN&gCC 'WWWTW2%l%mu_ W[hWX 0~X; $22!`eei2'X x  Foc2 XE>WX'WHR=yX|XOW, dX2,1!XE^2 FDkCevW ;'aXNGX1v A))\ dbX.cXaW; DX C?*2X'Й )\22WX/ 2WXjX`  XkF'D$IXMW2,1!WEoC'W,1!HgEJWy! 7WXsjX)B=X R`yW < w @ * 0FSE5WX ,1!FWa2G,1!'!iWWDAGBE DIXsNE ,1!H87 7_W,1!W*WX}'4%g+O) L}X2#GF_G4KXa2#'^XkWWKWXXXK,1XE W^2GQXW22WXoAh2 7 vXf2i}#',1(X)XkX < _cIHHv WX0c,1XD.EX-/2XtWXtSdX;YXrX6G2X P_?WmWDXaXD}aXVX EP2XtX)WX)AW2WX1F2DXVXW;@G'I2WX WDlX)X)WESR|[XhGWdQCW f,1!ie22X'< X7W. 7SXOXa F5 .eGw2ȿy2DXO2,1!F c 65,1!52022,C2X:Dw7s@W-MGXt 72W,1!,1!Zg22X2WX2>2:zWXs/JXpW.[/F'X Wy2 X<CFwW.XFWaXNXXk K\p2iwG5DDD?Xs?HsW EP`H9ZWXϽD ! PW!,1!Ha X XXXS$6WWD;#}.RWWDSeL,1!,1!3q.W-U ;C2Fh2*Wddd(edW 7* ,1!"p.'f"p'f)XyXNXNXNSD!X&G$<2 ,1!2'!F2XG$,1!X7ɘ1`17ABX XkX >hDWX1Ei DEv22  tnXaXEXaT(2Wd *%G,1! Ww 0 WX&D.RXsd\XXWE  (X;,1!WX)WX279X X 2WWHZXkb,1!XVd22]]]22d e ccD`mG2e= L2rJ̥8I]I/W < XA,1!WX'X},1!'W72zG#X2LAXsW2XtWXtB7~b]7GѧWyFj=84 2Xt+1EEXE172X2GO,1!2 XfWXEX2WXE>WFeW rW2W82H]WX 2e)tD h`*z,XcWe+-X},1!F4WG{Hk'Xv_pX2W@Wy ;2˛022^2.W ;"2X8X0)ytzX؆0IWi2w@e2 +FcGHXWX0D*, qF*W,1!WW qm2^5X92XGS de*dmd2dHl* 7X2,1!i$1rWWDXWaH2 ed e cdrsXW $WXk22XtdJW2:UX`dW^F^2Dh2dv7\X7 .R EX}2,1!O,1!XNWX8XkXkX 6PlPq  (y XN0X`,1!d q PWXseE'\2cDBPmd0X XWX`@X)X)W6We:WX ӛXXe[D@@Xk X2XXAXVc2.F2X d,1!X7d!HSX}Xq2W2yP+5[($a4_XX.Xj,1!w,1! !'XWXiW X LXVWX)WX;ESXMH#2,1! .RW'͔/ e@Xj(D 9R9W%Xi WfWXN2 72!C.WXa XX;X;X;S2Q.WbSoSq 'ET* {qcORKG )$?eNX2,1!H1OcFFWuDCX)X2WES2W,1!'2XXXT#IX1,1!XXX:|XX=  Xr{q2<a22X z4̥!WB_! 7(;je}R%6\X'ImC,,InPXWXE^,1!GACXNAZ D-Rw,1!PQW2(2CD,1!WM=2,1!X0EkFWWW?XW& WWWW5W,162 GGdHu?X'WWAƈ,1!A,1!X| dd[Wd]W,1!_9TCTGW2^deG2wWH-+xXXD;2WWX;WX;>hX5,*<+W^''2WX)W8N,1!WW Y@;'202WX)X\X)5WQQXb<2E2v2XOdFX4WE8=t2d,1!`c,1!WXNXkWXkTWF(D!2f 72'X XMlCXmXXtXI 7G4  q,1!G2 X Prb_X{X dL.R(G<\X}W WKr+WXOXOXOA,1!X^nW ۙEX F2XE22yWw/.RX ,1!GX%CELWP2XkWXkSD&X_ ~,1!dDFW,D<E<XWW W24GJDE G2E2&X2FXZyXAX'-2V21|iwXt* )0 FR?AW,1!)k2DCdI2'! 0W E[E;rd- W;Q.RW wy,1!D22X)XkX AGed\.?oWWyWH6|W eϒXyeFWX*,1!)E'+,1!2'w22JtWF6PuvX^DbWxHj 5Wv2XtUr22W1,1!W2W'!k.,1!2X $%X'W (_aWcwyW2XDXX% XkX RXX2X -XaXkWXk5%3WW2WWXO A`X6(X X  &E2WXOXOVwX XWX&Xa2W`~XW hGX1L,2F2wEXE ; HW2WW* 2 W$DC2XOW2'!,HVvXMuWX}W2W_1).W%XEXXEAd'PuWWCX) 8 u;2XOXV,1!L,1! 2QHeWDaFW0XsXWF%,1!X y@XjGQ$i WpX/W@G.REW&X;,-Xa&X2X2.R(G=WX 2XH& DH(c92 2,1!X)WXXESX;G"sFU2 D QD 7F qWeXI 1z2C<ef:>WeWXGX y% lzE,1!aX 232 ?%,1!XtOW2W' d=cdD!'2yX 26XN2 Y0 ~XW 7\XDGDWd2aWX)X)X)L,1!UsX) kW22X;,1!2G,1!X Xs<MaXMbW'!OH)1t2GE E&XW_,1!2 XE W<2X)XkXkL,1! FJMn9k12XX_2R ,1!_2,1!DW <Wa c,1!,1!&NWXAysWWWSyw*LR X EM,1!}2v3^J00e X,KXU )XXXdceF X}eGGXO22.W,1!de*e-d2f//XtXX32'Ew,1!,1!HXXXF^. Wy2 Q^X2`WWX X VemediGqW.R^2wk+X'XsD$'D2XtXcW22dX}CX1Xk%"XtXBGYWyWW6WWW^,1!2) zW CXOXOXOTWX WT(W <FXX.R22G6g57WRc1uBXLTzUTXc^SM7'_{,]2)zLsQ VI#_T<pDwEH #FS N!Sl*9-@jY599d?\DF0!V>hzfk+-) @]W[/~4i9bD}.%6!hcBWFWXX WGQ'ERXjW|` WE* 22 c;]D'^dX|U9bVW2̥dx IXNWH~WvyeWd2_E^Q2WTyEWX[Wа2D2X}<%M2.R`aXsRWWWL,1!$W2ݒWU W2XLX & b2W:! !|2,1! ',1!,1!2922X  X:JAE-VE.WE!$@+FtCWCXWy 56emdes&WX}Xb(0 XFOH)1t2WWX2WX2S XD22DL/C/G_y" $EWey2Xt22vWXEkWGpXj aXT2XX4iaXA\ W` oWCX`2$rXsWcX2X)X WES(y D.XXWXX>heG#X| X0* h J'X8)X}W2W_,1!,1!+^ɷXkXtX <\vde8daeR[X.Rd$X 7,1!>2oX'W2X}X}X}T,1!,1!WXkXkVX;ߚy,1!e$@ eSCXNG gX|3X2 AXD3dyD2yYX}W32WXi %WGeDX ,1!2WX 2X9( Jm2RX;XEXKEQ>z2&XF,1!2H^M{yW2X;KEWFm9>2XoG'GG  ,1!W2Xr,1!NX,1!GX DFYXi PXW3X`X12H HHw'[2[X)WXX792/ZʏGG<iXG.W*CwX XWX©X'® ,1!xWX'XQI0,P7F\'WX'X.$d eee 2r82,1!XDW#dd2WEWJdee,1!WXs c22WeO, XsW eXa EW.62SWW%22^XkF,1!WWWA ,2XO b(W.RZE,1![WH,1w%8OwX}ed22X^NWu`.`WheeWXXXXXXSWX02WHh2W X)WXOU[^-2X2WX2>hXWGQX DI{P {X2'X"Wgl WU' XWX}aX)WXk;}WDKEXYT2WZ22W2?lW2w.zW+22X 2W c / 7qXjX~XaWFX.( `]d~r  e2Da,1!decX CW2 2F=18X% 1=z!-@XwWF2WX}WbXy2W26W,12 @WEW6bXs,1!FpCX9yX}1d decJFC22 Xr }WX W5CsCuXG e,1!Xj2t.*2XOW2odXLWL  ,1!d e de ˹$,1!Xte:X |'XDn`X 42C$G{XWd"FVXD%2,1!WXIWWnx GqWX)W%_,1!YWX)WX)WXt8bG x ,1!A g?F0dXO2W,1!H^X}D|W ,1!WWW/=&XdhWX#,1!WXTWe.R(G,1! jWWWAҏX Ҕ2ҖeEX_22X|W/,1!W2,1!_?AYC:2'!yX2H| 7X;XEE2X^XtX  X'deI,KEeemee,1!,1!F $.Q,1!$0W2 X)X)XkKELsXa2G'EfWXEXELA2%K!, /6W2W W!W |^2:G'X8J[ ,1!qX'wFX} X ڝDde2tOGf[cFFw2do oF. uWX`X0H7X s2H4X|XA,1!XH`2w,1!.RMyXSW`2 2$XXXXA JX2LXd3 aW eGCW eG d2WG=XX X)X)WKGhiXH=GA )#2G,1!c2 TXN9JFWC5DqDWEe,1!'XXRXiXX2Xa  XXXAXW ;2XOeTWG XXX2WG*Wy,1!W )E]20K5K8 H+ atX)WX 792Y jC,1!,1!X 3yyWXXDR2'V%CWX ?W*>WdVE9G'yD,1!2.'E28o,1!eWWW^ rCWW,1!_5$/c eX;WEMEOW 9 KW,1!D2 ;$@X22 eddn)<1T6_Nd2}V"2)2RfWFc`XbXkFXtX)X)W;}2]7ڡX}DcB}BX;nAX NwW I2Xa WWWXr2W.RWbXNWXOX 8 .Rdv,1!WǍ X! #*W d3GX;9lXk-X)WXk79#JXOXtXOSWW6,1! w2WWp[;wU%X'CcHD'.K,1!_J] WY- }Wd deeWN%WZH %212GWXB*DX uWXXHP,1!X| C-,1!XaXtWId=eelF:$-2erWWE*  Y'Hxc2* IW2DEƹbDF2F2W,DF2 W XsCWXW+8+:`WqvX.WWk,C82WF$XDd4CEE@ܠE 2WXY2W'Q2W2W2XAQWwXEWXWAd%,1!yW y2X22W,,WX0WX X'.W2%PfmGXU,1!,1!,1!W|Hpy,1!.Xded#X!WGQV) ,1!,1!W_y GXOF,1!SWX*T^dMX GHdX}WCXs *&X X,X4W WX1X'DK,1!ysDqzGG,1!d2XP,1!X)X)W79XW XI  2 ,$eX}<E2 Ga B,1!W,1!X[,1!XVWWWT.W}WVoE 4XaE  EVD WWWX1HK2 sFD)]H$2 7XFWX&JHHKuDwiX1oWr1Xa'Xk,1!$-Dt,1!XG=$@ %XnƸCX2WX>ُ/2::?X1Xk* W,1!2ede?eG,1!5Xi2d ed:c 5{#2X)WXkeP*2XsddeLGnW,1!UW\XmEX 7FWX#'A0dU0 G#HCfEvaDDf@2X3'3X 72:K XO 71W2ɁCXN%LWEgD`FX1XkXkXkAdX)XXWESedeqXOXk X},1!jC `_2Wd e2ee2D'!y 7X)WW79  2xOA{dNEXXXXAXNWy).z *V",1H X)X)W<-EiF 7WX2W>h2X1F2WEyHYDWGWYeYHؔPyWLZee$/#/|X XWXhXX_E,1!X_%6CX)WXNU[jj}taqCXhI#@Hav3*WWG 0F&$J5 u!@/ 4  'a e,1EX_XWX:XX- oX 7=2W w2W92W.ed2.oJ)W2:d&7`HX WF2XX1X|,1!2GW2XOXkFyEFE6t_GXXi=&XaXj'XE,1!d@X ,1!W ajD1X;2XDqWz%W2ZF_X2 73U8ww"=_X)WX2ES G07Xk(D!2f 72GKXM2 G~2,1!f,1!&#g.&gW^!AW;doWWX&X[A M,1!WW' 7WWWV.,a>GW,1!XtWXt>W 2W&g2X)WXkES,1!X1X]pX',Lc20)0FEXkWXkSW`XDDVGJEWFdWW,1! WC22WyxGC)ܻV<:XXE2d=ce/awX XXX S2XMEX;2 7X}Fd}2AXk?al I.EW i5lȯ0X X^XtWWWSߗ,1!DMXjXtEeWEJ2m2WяI+2X X022XXWW,1!DWpWc2W) '!WkH%"`K X'XbW229) CCy2?+Vv%F]*XsXGW2cdQ.W_ W2+1W y  *wGiD!FW,1!`>X)W-Xk X_FX,1!XXW'!(2Re5epeM ,2d e2ddW VEXt ^f4# 7c' HXsY@ݫyEabX &` FWG!8 ,1!W2X;dG2Wde*dmeEHOX)WW[, pHd̥k,1!,1!_h'XEGc[A W*2WGX_f2'22bX)GXX)WXkAy=X>eiX) IX& 9,1!WXkWXk>h(W2Wa0ed`2,1!WX2WX2I %yU.W-_X'EXOXOXOL12,1!W[WWF/tcnX EѐE2" J OW. d22R'F,-"|%W2,X X2WX2AWWWTX,1!d,1! $`eXE$X2 a2a&XkXkXkAW,1!WX(DWX2DW 7deEX` ,1!W X;`TWXtC22WfWYؔPyDf2X'Ez^U" \GWNH_/^GX)WXkU[E?tWQ;X;K2X)X X)WcX;Wp'een@WXOW>hXOBZtW2)0&"h#yg%!V(i,")!0 v,Y ]):*V$" #-,!(-9%$-"L*}'Q.%'%*%`, *#-J( 5(+e*7&72%K($"1cWc,%.p:i ~v9!(&`M)%'q+& !D)-+'!'X++$[q".-+N -$zR)ZT'|(H,'3*m)W-'I!_[% $  'c)I+: qA T"o> N,-g!],*(]#*&w#IA.5$u$ .)$'v.Y$)#uxW(P#i!#%(3P.Ho.23 *&&+),I$_";y(}!"=li[.b-Q.9 ?'8N, *$. H& *.' Fa,a""-6'..,h-9 V1' & +-.',!(}+%' )._,O(O#z ,")-J ns k-Eo.B#'1 M&%8+ 0  . h)u%!^&s n5%5%#)- ) +(]%" 1?,#  (*(OZq%+l'>%c&.+-k##%w),~g-- 2,2s*R'&B+yB)-B]%!'..A$-i+Y.$W"Uc!())),'pH&W(!H5}# *<6*+,*f2"l-v*F&{()j%R#Z@.[G*a'/?'j(/!% '#! f+#$!N,v A" #<".t8E/(""kP -*w$nI.Y*As5&q j"A+/ f*K"a$(1] %&.i%G(@C$h+;) !4"7*o)< !#)+"K%"`)-&J&[  {.[F^'l#2 %&n %-+ sU).{#M).)8.L$Jd!$ ,3)I7*'+-)l"~+#V*(*-_ "qZ(-O Z +d.'!rE,d #U W  EGV,1!2XXFn-X)XtXESW,1 0-W^ W#<m%b  )E]-H.R#J! .WXWXX,1!GW$H XEyWHyXaWXXECc"a"bX2j < WX 7W,1!2Xzv2aPY2`FGNf ^%WC ;,1!W,1!y 7XX"E`XuE)XO2 7 2eWXsWW dXH!XKWsW`t2W Dw,1!.@2x _dFaX f #WWX'kW*2 ]B^WXOW5W %Y. 2QSW?GX%?H0W3O)0dE'R&X,1!-228`D XXXF,1!XWFWW]^X`CH=2gWG'2XtX)X W;}U WÞ2z+W2X<X)WW>lWy,1!X22w(WX|d e de{XX:GyWX1FW2 EqX}X|?WXXaKH'ُd)X2d"x =R~ CWFbWd EQ-+WEB,1!^C 7%X`FXW2X2X2X2ADG"XBGQGj2 GW( .RX tXC2GDJ"kX7T)WYXX %X2X2WA2+G,1! ]XNXNXNAdu &,1!X 1G8aD,1! +2XX2XNW>n.WXsGb(X'`@EXC0C0G ,1!eQWX2X)WX]KX>,X1D}e_X NWXT,1!XWDXjd2.R22Ne W2ŝ 2ş,1!EpX;.RW F,2*X *2 X EOW,1!S^X WX'*!RF3e$RX FM E2d,1!$-12W$0|Xy2ad eecYZ2o]WWWES2`XzEXl,1!_&GH<WXX2)SH2Xtc'7 XD0 E W~XX8WWWW>hX8,1! 7X)WW>hEnX0V1X#) 2,1C  7Ս,1!,1!,1!X }WX#A2WWGuXsO2W}GD,1!XMX)X)WA,1W DE*9tX?2-yds'!X_XV2G7`e X1fV'!Ql2DGW v 2 7{s,1!XOX2_Y2W';Xgdde2e1X)XkX)T(W:%yWX}f1pba2_wX|,8{;) @,1!DyE 2X@CW,1!XD9XFWX* Wd_aZ2C YXb6WFX}9pWXXE D*` WG.R2X}2X)2DW.R2 EHn ,1!%m&X [ )\;'ߗXX)X X)Bl hWWvd,X'EX 2 2W%FPv,1! rX2KRWXa2-"{] 72XkXOWU[E=C 3E XNXNXNA*B'!2 22 C{2X|X2,1!.[V+sXWWG'Gs82 .RX?GW2X)X)Xk>F#,W  7XW2X:4WEbX}Ec,1! Q2X)WWU[IXt2$,1!.XW- ;W ~F 7XOH%C:XpX'(XrEG2d :2XKW*2XXu.WQyXXt2X1 C22WHQ2cW,1!,1! v6JWCW 7GE5WX0 X2 .  &D7B*X122eYb2Xaxk29DQ 7,1!GE]yf -U^H2lX`Xԫ2 )E\_GXHHXE,KZXXtXXt2eX}2r(y,1!XWGzW 2\W],1!eWG  MNVUHC'WX}D]X)WX2BBB2XO HHL K# ee WROW! 7WX)WR*w O O 1 (2 C2W)3G\PW2eJXkX XkAddd&,1!"WHOWX+sW(s2FXt0 XaX ,1!XW'XXXkyC2BhTXWWWAF"Y2WX X'7X2E}H ,1!Dp,1!eW +Xn,1! #'!EFi 2NyDg (XXX}G|\2indwWlHF * WWWWW,D22nWWWWA2y!*qX;XX &wXP* 2'!"K (WXXOXXX}dw wF!,1!,1! <ǮW XXXS2Wdddd(edeD22WW.yKX;2 )E]F` 0X  W7UX GEXmWWXkXkLcND_278d{S2e&emee'WWe5epdWWX22 X W2W3XW eXtP SWJE,2XN,1![/0+ ( H2XkXX2W!!:XWWWS,1!! X$|/  %)C/.WW6=3eP)D'X:T Xr222}V/'tW,1!E2X LH'`X u#',1!WWWS# WW 4RWWC2$@z2`2 - XWAnW J @1aq/K2 Qd W5xN;W W!WD5 (XL2D0,6py DW"Aw.HG>['!%2$i2Xb2X82''!BX;N *u2W2W 2OXtXt&Cgd12 22'!X;W2'X|,dmVpAu`dRW0XhGX'X;GW)_',1de*e-ez82YWXD22 6 MF(5 7[XOL X`GX`XXWX-]XN W (XkXOXkA5XliX}ENaW2XXXDXM2ޯG)2DN"D W+ X)mH45XeWW2G:X| *'َ}%Z,%}.'G7e.+'*F!]#ȫ)'X^, %S2!w "Cz()B G,&WC\-"L8e, BB6ƭ |?( |H=->#$3_P" W"F"BFP-;cP0>*sE |5*sSA &5-%5"Z>Z8e |ƭ"%\uz8ePTCX |CxC7l>"7 @FCPUeud"ψ$ *sM8eC: Gƭ"5;N5u5׼" |$5"VC.-V8e5̹C8e*s!5"du@t-u  |  |bƭ |>uVB#>*s$$u/>~ | |CB1CuCP-W[u$-/*s |"`Ci$uF"2ƭ*s5u*-9B BCBNu*s@XB |-^"CAC.E>-Ы *s*sACJ>uU8  |9H8e,$-G8CECƭϬD*sm-8*sK u8e*sz*s>u/]-I]$  -Nƭ | l5-Xu8e*s:ƭ |(wP*sP" P"C?5u@ƭ_LWabX)`?WadX)?#9jP QC!-;!Qg*k 5:*24sڑw^-, e)*&,XH&h!{^*HM۫",h"ݠ$6 ׉+4w,Qx%$k/! r) #s<c !"N!.02q)/i%h"h$^)K#:v*u*ItWK*(#E--X& F<@SDP&+ w8!*+j#+)k8 vRUe% L $F a%* P#>e*Y'=,+ͱB &1,P)|?O!3j&" +HP# .v!<'A6*~&}$L-K "K %o"@rP-e,Hen$w=#@&V$%,Q&.$&T tA" + (f[u&:4[?J_:N$U$*SM&qW)!3${*lX"yy%(L7(w %$.4W w"T&9u,Q+$5#$ S'xHWK}%"$B2,'wL ++ 7@7FR_E(*.&;K  EN%dH.-JD&*'M8Xʮ!(V5I PF((&NRg']-&/5ma:&!KU!gG!aN !$#̬C%A5z@d&Y4$]K: H*X;}%L$ z `*+p$V.4-U&w÷ S-""6Jׁ%4o #l'4bNp2g %K  X'F%) &NѹR$)T\ H BhP%"k#"6yz@X*Q(k "'D!n*:'4#?B Uv#XWsX  q" 5("G"6Y,_!j J ` ;h)E74*-m% 'aU4 L>KERIJ`M69!G:A݇#`Q.':#$*iX:`" !*HO 8&%hϺ Pr .0! E())&*#Ͳ)|S *O C !*IY,@)$* "v(#j-y%(fX$&Q"vs!F8&C*T0#+wޟ#6Wk%%,=\'x=*%"!`$;H%,%Ph'.6!`o, #1ӂ)3,..$2+]Ts 5 ސO8%V-"6#??S%Hp-S k$ړ.#o5JG[B.( E#D>ɓ,] 1-~-7u.R{;,[-h&){- O<*, y1!PS%EB%Whwfz'N22`tSS>%%,uY{sQ #P #X'W NwWAWX` NWaWXp NWWX9 NWZWX2 N~W X&Xr N~W X)W NW X}W N}WiXNW NWX)X NWWW NW 0WX NWSX'XN NWXWW N{ W2WX% N!WX1Xs NWXDX0 NWWX2 NjtWWW NtWEWW Nt W`XzW NWkWX NWWX Nw W WX2 NW2XkX NWXMW NW XEW N}%WaX( NW?X:X& NWWW NWX)Xk NnWWW NWHWX NW X^W N|7WGXXa NnWYX)W NWWX: NWKXW N=W_X$XK NWWX2 NW Y N:WaIWW N<W`XKX" Nw?W WW0 WWW NnWXkXa N}MWWX NW\WX N>W`WX NW2WXE NWabXIW NnW NX)XO NCWa h NW_X)W NW jWX NQW WX2 Nw@WX)W NuWXDXr NuW }WX1 NWabWX N6Wa>XX& NhWWX NfWWW NmWaWW N~W_AWW NX)WX NdWa\XkX2 NhX) WW NWaWX NGWWW NnWXjW N{aWWX2 NW\X)W NWaWW N[W_XrW NW_X W NgX)WW NtfWWW N^WcXXH N{WWW NW_WW NWSXaXj NkW_WXC NWXMX9 NrWWWX NWWXt NBWX|W NnWIXW NjW`XX N~Wa/XkX NlX)WX2 NW X)X} NkGW XW NkJWaXPW NiW7X W NsuWabXcW N~WWX2 NWabXdW NWWX% NWWX` NnW VWW N}W XX1 N`WXX` NW_WW NWX)W NW_WWX; NWWW NW WW NWXNW NsWa>XX9 N{W GWW NW_XX{ NWWW NyWwWX N3WrX}W NW XWW NWWXt Nz+WX)Xk NsW5WW NW'WW N'W {WX NW`AWX1 N}WWW NWgX%Xq NW XDX0 N?WaXXi Nv#W 0 1HWX'Xs N}W5X)W NWX1Xs NWWW NDWyWX N5W XaX NW pWW NW,WXt N$W_YXJW NkW2WXt N)W{X)W NxAWXW NlWDX%Xq N WWW NW XX1 N;W`WXf NW cX)X NW pWW N1WWX2 N}W WW NhWcXX1 NUW WW NIW6X|W NWXW NWiWX NW!WXV NqW{WX NWWSWX0 NyWabX.Xy NLWYXaW NWtWW NW X)W Nn'WUWW NWWX0 cW{WW NW=XXa NPW X;Xa NgWWX| Nz]WX)X} NW{X;W Nj6W_X%X NoBWRWX NdWaXcX NW9WX NoW WX NW]WX2 NiWXNW NYWabWX= NWXXH NWyXOXt NW&XW NkYWmX)XX NWWW NW_WW NW`TWW NsW hX1W NWWW NWaX)W NW%X_W0 WWXt NWXkX NvW#XiW NurWLWW N^W|WX` N}W YWX1 NWWW NWIXDX0 NW SWW NW TX)Xt NuWWX NgWX W Nq}WWW NZW_XXx N+W0WXt NW_XdW NW*WX2 NW WX NWaWXr NrWX'Xs N6WaWX NX)X X NWWX NW X)Xt NWWW N,W_WW NWWXt NW CWW N+W EX%W N/WWW NWWWX1 NW_YWW NWWW NW X)X N'WWW NhWWW NWWW Nq,WKXjX NWWW NW>WW NjWQ N+W XW NWX Xs NWWX NW`TXX{ NWBWW NWWX NWabXJW NWX)W N#W X)W Np+WWW NyW .X)W NW WX NPWjWX N"W`WX\ NiW WXE NMWWX\ N]WWW N&W%X)X} NW2WW NW XkW NWWW NuW_WXd NuWWX NWyWXt NxW_X W NVWWX2 NWaWW NW?WW NWT  a NLW WXt NYW_WX N4WWX NW)WX; NUW_XCX% NW_XXz NkW`XCW N*W_X,XR NrW nWW NW_WX NzmWWXE0 HWX)W N<WXMX9 NvWWW NjW_XfW N|WX)W0 0WX)Xt NWWX` NpW WX2 N}W!XEXs NW 8WX NW_WW NZWpXW NqW^WX\ NoWgWX; N_WWX{ NhWXSW NWWW NrW BX)Xt NWQX)XO NxW>X)W NW/WW NzWWW N[W_WX# NW1WX2 NW WXt NWWX: NW@XjW NWjWXt NWWX NoXWWW NWWX2 N]WWW NW_X|X` NW}XNW NwWXEXs NuW!WXt NWXX' NWaYXXX} NxX)XiXh NW_WX! NWX'W NsWTWW NWWX NWVXrW NwW X1W NW{WX2 NWPXEXN N W_XkXO NsX)AWX NW'X)X NWX'XW NWWXt NyW WW NwW XaX NW_X)W N|W WW NlWsWX- NWWW NWWX NWX)W0 ˲W_WW Nl&W`XtW NX)JWX NWWW N%W X)Xt N/W`WW NX) WW NWvXW NqW_WW NFW_WW N~MW RX_Xq N~PWX)X} N7WX1W N3WX)X NHWWX{ NW[X^W NzWXrX{ N}WWX NFW JWW N:WaWX] NpWWX NW_WW NWWXt Nx3W*WW NW qX)W NWWW NqWa  NWWX` NfWWW Np7WWW NW *WW NWX)W NWgWW NWWX NmW WW NWXWX| NIWX1X: No2WPWX NxW_WW NxWX)W NrfWWW NW`WW NWX)W NWaXEX0 NhX)X)W NWKWW NWWX NWKWX NWX)Xt NoW_YWX\ N^WX)W NWX)XO0 WnWX2 NjWXX& NW_WX# NwWWXt NxWWW NSWqXW N~ W@XW NhWX)W NWWW NWWX NW'WX NHW(WX NW X)W NqWIWX NfWWW N}WXNX1 NzWX)W NWqWXt NtsWRX)Xt NeWX)XO NoW WW NW VXtW NW PWW NWaWXv NWWXE NWXXW NWBWXt N{WWW N}WnXkW NWX|W N~W6WX NilWWW NWWX2 NW^WXz NyWXaW NhWXWW NWIXsW N$W_XW N6WXWW NWX)W NW ~WW N&WWX2 NmWWW NW^WW NW`TWXL NWX)Xk NW WX NWWXz Nn}WWW NWWW NWX)W NW`WW NWWW N7WXX NWWW NWXX| NWXW NnWXsX` NWXX10 +W WW NBWWW Nq!W WXt N#W XXN0 UWzXNXs N#WXoW N*W_X X0 NWXkW NkW XW N2WWW NxDW:XW NWNX)W NxHWWXt NlWXDW NYW`WW N@W)WX' N|KW WXt NqUW`WX NzWWW N]W :WX NW ,X%XL NW`WX N_WEX`X NiW X)W NhWxWX2 NTWXW NW`WX NWX)W NoWWXj NW-WW NnWWW NcWWXt NWWWW NXWoWW NZW. 9 N~bW,WX' NLWX)Xk N|WaWXI NWXWX| N}W WW NoW7WX N{WWX N|}W8X)W NTW LWXE0 4JW X|Xi NWWX' Nj<WabWX NWWXt0 WWX N{W`TWW NlWWX NW $WX% N}WWX NW WX NWW_WW NWX)Xt NWAWX NoWXX'0 hWWXE NWWX NW_XCXh N{W YWW NxW XNW NjWX)W N~WX|W NWLWXO NhWXW NWWX NruWWX1 NfWjWX NxW&WX NW>XXX1 N WaWW N WX&W N2WXW NsWWX2 NWWX: NWX0X N}W vWW NWabWW N-WWXX NWFWW NWaWX5 NWX{W NWX)XX NW2X1XW N W^XJW N1WX)Xt N/WXkXX N1WaX<W NxW WW NW WX N7W WW NW_WX Nu(WXEX N0WX)Xt N6WWX2 N*WWW NWX_W NWDWX2 NW`WW NX)X|W N*W_WXV NWX)Xk N4WjWW NW-XW NWRXkW NGW!WX/ NkWkWX# N2WWXN NW YWW NWWW N9W XjW N8WoX W Nv=WWX N*W+X)W N}WWW NWX)X NFWWW N8WWXt0  W_AXaW NzGWbX)Xk NzIWWXWXD NHW WX1 N9WWX NhWnX)W NrYW [WX N>WWX; NWWX Np/WWW NCWWX N|W1XhX N0WWX NTWWWW Nv:W WW NWWW N+WXXJ N,W fWW NkWzWW NWWW NWWX NWWX N@W WX1 NpWcWX NWWXD N^WvWXt NWX?W NHW 0X)X N`W XW NnWWX2 NmWXWW NW XXz NmW^XX; NtX)-WW NWdX)X NdWXkX N WX0XV N|WWW NWa\XtX; NX)`WX2 NX)WW NWGXW0 WXW NrWXLW NnW.WW NWJWW NW.XiW NkWiWX NtWOX XW NWXW NW/XW NWjWW NWWW NW_X)X NW XOXt N~WWXa NWdWW NnrWWW Nx WQWXt NlrW|WW NWrWXC NjWWX NhWWW NWWXt NwWWX2 NWWX N!WvXEW N/W2WW N WRXW N!WiWX N"W XDX9 NWWW NW XkW NW }WW Nj WX'W NWWX1 Nf|W 6WW Nf}W^X}X NWoX/Xz N|WWW NWZWX N/WyXrX NtW`XHW NoWX)Xt N"WWX NrWUWW N|@W_XWX: N)WX)W NWWX0 NGWaXwX N{WaXWXD Nf~W XXV NpW X)Xk NEW wWX; NiWX}W NWHWX NW XXN0 W eWXZ NnWZWX NHWWX2 NW -WX NxW=X)W N.WWW NWabWX! NWWW NW WX N$W:X)W NW@WW NyWX_W NsIWoWW NvOWWW NtW WX2 N9W X/W NW`XXXa NWWW NW.WX NWWW NWW&WXt NWfWW NWXJXm NriWWX2 Np;WWW NuiW X XN N:W:WX NqW&X)W NNW:WW NWWW NxoW XX} NWWW NEW_AXX NoW WX NWWX2 N|nWoX)W NWWX: NwW'WX NAWXW NwW_WX NkW 'WW NW^XXP NlW%X Xs NWXW NW kX&X9 NWpWW NW WX NWWX: N WIWX NWkXXE NWXkW NW X`Xr N W_WX^ N.W=WX NXWaWX NWX Xs NirWWW NW/WX2 NW XjXs NW )WW NWWXt NW`TWXq N WX^W NwW _X)X NW`WX8 NlWWX NWXaX NW`WW NW &X1W NhWX)W NwWWX NW_XhW NjWHXW N+WNWXt N{W.XW N2WXNXs N3W WX9 N WWW NWRWX2 N:WWX; NWWX0 N6WuX)X NWtXkW NWrWXE0 ̔W9WXE0 W_X]X NWJWW NAWWX NWWW NyGW}WP NW_XMXr NWWXt NW X}W NW`WXZ NRWWX NjW_XcW NoW_X1X NhWWX NfW WX1 NW_XXXE NiW X)Xk NMW=WW Nh/WWX; NWX1X& NWWW NW WW NaWWX NqYWWW NW WX9 NWWW NxWaXW NW WX N4WWX NWXiX{ NWyWW NgWa\X}XE NX) WX}W NW sX1W NYW X)Xt Nh2W:WW N^WWX2 NpWXMW NW`XJW N]W^WW NX)WX% NWgWW N}WX)Xk NoWa>XiW NRWGX)W NW_X4XZ NlhWXDX9 N|WWW NWWX& NmW_WW NWZX)X NvW_WX Nr|WSWW NWWX2 NW GWW NWhWW NW X)Xt NoW X)W NypWs jj Nff0o9j NffZOj Nff02j NffSI j Nff=.eۡ(n-($vhn*!J h%>()li *Y&,'"* &N~ -2 o"0m/ #s*ʬ(Q )j,Wg.f$N%-K"{#Ůy_$w OQQI {O'=,A+$, '-C=.nπ gO i?#%P(&_Z $ա"R"-+D--/%I^=DoV.+-^= QI8(& K{+ i0.5V=(c,g͗3ADQ (  B-(Ǵ7+# 2"'% -*U!A!i "qjL3/"u6"nSU! y0=60xU }jE/=&YEH&@5Ta!D)V X. H ia(c%JV`+@nA ;(([3  KGg$acWjd~ adW۲~aeWކ{PabX)̭#veafW]1 ޫ"=`J##(  E ,8_+ ,/s )&.)= ɉ%8=)@YF9Z..'E2&DK5lQ͌T"Hbś%ޭs%NDdU"P / I*8m C2=!L,# 1,Q'7E2_'5.S.,?! $MǶ6!+-$"#dJ5L''&&[@&c!I/ e#. R2 +L 3}/+6 ,mbL3#(AAb 0 " %BE#xU 3 ZE*(&׺t-sE>$I"9. kM-SJ& / 9:T.%iϡD%h'-,HF+)~6&!@+-W)/T_8| wه%s"H"X$o a*/ *zy,.8.9Y(wΧ>#s8|cS2 ,1  &GG Q$y;7yd%)$?->5 )|Ƚ+*u(ݹL!nF(3(˔*_q~$UK#]i*)z+J$ 2D* Du!&, [q.T>Ә7,#=j&K-.0̤I$6P,-9ū!o/,՚[ON ,XUk()r[Y!!C#7BW&qL-Wx)Q%E 4$%j$* #|2/  ҋ!"KQq*:4$ !% HY""B@,&$w6" %XxVr$\|ϫ#+%**.D#I b-3  C,, wJ*-S$$+C& l%k&'C),&V!s:NL-0]r5 Y(v|=n6-AjfK'  VfZ8#׳8 -yE )cK(fQ! Y$S.&.'U!IrZ$C9IY*F#XWB *x&G#s$#۞24C:L0(9! r1'8ȗ& <'aaLA& T&A.,;`)s#:%J,Q?,ZZ#}L .*I_BW,BĽ$'!{f)we@(1cQ! ]'=?CFZG'2= R n$ "*=)4 *9.ki+mC-K5 l*l'(6z $Es:)_?e_Qr&di  + ,2 6,C#*H*~X>",L$?# )ed@B!'NA#4$tJWJs( К"V,bB֨Fc+K(:^$&S:^C:^ <ش:^,:^g:^':^M`:^-:^#:^Y4:^V@7:^(݀:^,#:^\:^:^/:^q:^6:^,y:^ ;:^:^ L:^!q:^''t:^1w:^:^?:^@:^A!:^.< +"3EEE' x1C_Ln1+CS`?o-'&nl<bX[ʔ[$[<[)m [(ij,qݴ[jijd!ij#n/[ }<[!\J[|wijd #['ij }ij*[!\ijb ij([#bKij y[#bO[|[)mijJijȒij,qij ^ij'La[#n)ij+ijv. GEVI|FWbxX$j.-A*0 i)H6P^W, H<  U\T%X@Db 1!s!|_L$A-.=-m7I{y$mV-z [*f 9&8S(X):ClD$3'$0*-YT#-q+,(T;)#O <( v1}*(8:&i!vQ, f"Go22!H1gۉ- 3*>)΄( N\0 )('US d"A, O"m 6+,*Ohg~fd?Av̈+4  yV~ xԨ!%a3 ('N.`Z.qľ&;'! 1pBN!,)y,!m.+L:#!r)K s -5)+#Zn_ 6>E^ >1=.O^%܆ %W.t((z=ɺC}>.O'VC}Y%P=.OO=((v$%æ$>,'v  yC}& ((gC}Z{C} C}> TC} ^((4\t>@$ =((U X.O(($.O'$%)C}1St&$ R=((1^ Y^8%&>9. Q^ )%^ht t[>t.Oc .O 7 =E$%?^=t.Ot Dg (((x $ v<-I[ܸ ""X#p(Hn :#S%IVH%'"+&JS+&TוE4&+0ɹ"!He.V8(j%&Y (L())i!5/1pݦ/KP'O, .¯&@3p%e G0N-`C<S($X6 .}UZ:ty(M&EU 3ZD$*׹#!8* i(fS}&/:S'Ϡ!-+HD*+ ,@%/S.069%9E<T&A*l6$6QH [%"I'x݁WWWW(<FE->Uj&& EA*/0B)*.*>"('˴y>$wE-K[,&-$5 9%Wr\(-/[#/(5$V ! K3?39 djI1%@ ,#r$",'V-I0Li] sWWW 5ev8!MWzzLC؛  4D  V > MzWX]/_37 ٣`zY F X4 K }dmvqyXy)XW ~X WWz-z 7;z'FLz8 y Xy WWժWM`7 E   ٳGU @GL>?KBCN=HFJAMIDEd.d$d(d%d5dddd)d#dddd!d,d+d/d-d1d3dd*d&d'd dd2d4d0d"CrCsCtCubIbCbDbGbHbEbAbBbFh%hFh h=h h)hBh>ghGhhhh4hh&h1h h$hhChh#hh/h.ghgh5hh+hAhh;h'hh*ghhhh?hhJh6hh9hh0hgh:hh(h2gh h,gh@h7hhDhhHhhhh-h hh3hIh!hEh<h8hgh"hh t߆{xy~߀߂|s߃߅}߇߁߈zvߊu߉w߄IeIf  \\\\\\\ɾɿɼɹɽɺɻ-+%$*').&0,(/X Xx[LM@Rzz \ԕzp}_s>zW ".zzzz W9\`M M zׁzzLX1Q  W z 3zWzXkXOX2z1  iy^z ;z zMpp p-ppp.p pp'p p*pp(p!pppppp&p"ppp$pp pp p#ppppppp+p)p%p,p Ngc ccccc cccccc c cc ccGBCAH?@EDF]C]?]A]@]BjibdfochmlY[k^`g]_Z\ane#z H K=WXtWz'XPX:zY\\QPROd7d:d<d;d9d>d=d6d8d? bbbbbbbbbbbbbbbbbbbbbbbbbbbbNXORKu WzWXd؅eW zzW#Bzz) t  0zXJMْ XnWQRzzN6zhmF1 zWX1 X|X ^/ W֒W'zԟW@q [ q"UXeX  zq_$z_ LIzWJ3~~~~~~~~~~_______a3a2MNLKAAAAAqZZZyzxggg`h׳z״zXhXUWXOz Xt8zX nz, Lf zԉz1 2 z+zzL=}z( / zz Qu)I ق}B~ WW'zVZHMAq nlijhmopk}V #ؽz fetzIMrX ԔhMW9HzHzXXsX:X;X;&^_/L(W 4z 0 _`ASLWWֽٜ־ֿ`_ L_zYM-z M^^d2X;  P RrzzXNXW1ML   I `WX;6N  4ԵGmXr FzZ ;X6zֆXWX_`XRԏXWX W I$ X1\WdWZMzA[#{ jzZ_ _fNgWWWXvX'XiX1X:X: NMUՈ8@W " bX`WSX__[K X _W^WX~z/_nXDXM0_o{?CXO  XkX2hA{qC 5zzzR LX Wp TcefZRYgUd[]^VQ`\SWXhaj_ibP hLm&aUzW k 3Bcz%/; CWzo QXkoz_`;zKM Xa^_^_~M! (,z?ٮLHXX WQFGחMO jzWW   Jفp xكXOjX XtkziXNXX2؍8z gn"'zq S5U z1 qXcX3Lz !6.J lzI GNz9ԦzWXO Zezԃ WWXYZ9L7WWWMz zXt  "֥ }q_sqXNv~ wbzX؁ BW %XD W zSX9L{Sz  <zz ef zzNMՇ_9 Չwg3P R|)zԘe53476VWSRTUvtsurZUZWZYZZZVZXZZZZqprstJKEIL=N6?AMPF8:B>@;CH9O7DG5<ggggggggggggggggggggggggb-b/b2b0b.b1VWYZ[XUXjXNW2}XOWz;Wmuz.WQ6  XWXbbdZ1WXz| fefffifdfcfbf`fhfjfafgXaxWyM X2zLsYz TtW)zW M֙P34bzԯK`TiU$jzwzpzWzm   -X2+ = WWWX]9IIWizjh_`wXX_֮=XOLzWWWWW،7z * ?@"XEWzzz_cIIII~IIII234bbbbbbbbbbbbbbbbbbbbbbbbbbbdvdu\\]\]\]\]jd]ckgi`a^flhe\mb_ux}z|{wsr~yvt]?DCHEJL=B@A>:KMI<FG8N9;ddddddddddddddddfNf6ff"f.f*f-f%f1f<f fEff2f;fRf&fKf8f?fPfLffSf)f3ffFff=fDf'f:f+fQf#f9f7fCfBff,ffGf!fAfOf4fJf>f/f@fff0f5fMf$fTfHf(fIf~}KRTJLSIVUNWOXQPMcccc c%cc$c#c"ccccc!\.\,\'\/\&\+\-\)\2\0\1\*\(]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]p>p6p;p?p<p:p4p2p0p5p7p1p/p8p3p=p9pppppppppPPPPPPP324tsvupqr]K]I]J]H]F]D]E]N]G]L]M%$()*'&]]]]^^^^^^^^^{|zy$$eUede[e_eMeeePeOeWeYeReceSe^ebeVe]eXeNeTe\eZeae`eQfXfVfZfWfYf^bz!M4 zWLMz h IL CTdzXE_o_g_m_i_l_p_f_k_n_j_e_h^^^^-```WXjWWXWze ՝g1X z L  yXWWWz^J z&uzzM XcX3zzz; WWWXzdX WXXLX/iWiWXgzX67z Y t`Lz* r,WW@$cL SH f rIzLD;z "ˮ˲˰˯˭˴˳˱˵fffffffffffffffffffffffvvvvvvvvvv_a___`$%&#"'``````@@@@@@@@@@@@@@@@@@pqoZJZSZOZPZTZGZNZFZIZLZMZHZQZRZK  OSPMNRQLggg aaaaaaaaaaaaaaaaaawwww w w wwwww____________fl`````65AGADAFAHAE+*./,-ZZZZZZZFDKGIHCEJLggWzzm  zz J   _|_ VLWzWM8 !zpm֘W ԅ C XWXp X FzKג1 !!zFi_,zFpzWWX|X&XrWX;zO X3XMWzW!K([XhWMN XOW# p z0ٗFW  JW E faXS-n.Bz W6KW7iXz WXNX 8ZW%LgzWXCWXLWXUXW_  jzl՞ ewWB  x zr< 'ԱWWWح_6_X2|XXuX s x D>A6jeXe bٰWWK(ZL z@zz LWXt___`Qav`W ;] zzCZzzW^4`*yWWWWeWJ$`Uz X;K XaXXCZ MNXLX/X}W_>zX*z bԩl zuM{ X}yQ: ;{O 8 6 ! A_Wj$٧ .6X2XWZBduww LMgW lX}WWzggigvgpg|gzg_gdggXgUgqgbg^gsgwggkgjz@z   xXEdzWNձ :;=85>293<476_ X W!F z '  s_AwzYzXtE@WXaXjXsW X2zzLxz2zԝLXWj 0lzzgg]gogggh!MCD8zXW3LawWw9 zzIXOzQaz٢XX ׇ׈zWX3zXOG_ Na|_^Nz.y zcgygazL,WOzzzXX|hXWX| :N zJ:X|9M0a z WP LcXhXB#KOjXf0AؑX +QAQzsXG6 I^M[WzgYtNwd eyPQ k oRU$TOv%aWr b hS~ijZq"#usXm{n[&| \zfp]`!cMx^}Vl_^*^A^4^^^K^1^^)^=^L^7^"^^ ^;^3^I^>^,^.^/^H^9^F^0^?^-^J^^!^@^8^%^M^:^B^E^2^&^6^$^5^'^D^G^#^C^<^+^( ^{_l6CDaeF5J.};GBiHnp> o|jI]~=t2NPMh V Ox4gQvc qdwR?r97S/m`fUY:\@0kWsy1KzubXLA8E<[TZ3pq+qlqqBppppqKq*ppq5qOq`qpqpqpq\ppqWq<ppppppq@pqTppq>qhpqiq^q qpq"qAq pqSqpq]q,qZpppq=qFq0qmppqcppqHq3qqNppqqRq;ppq.pqqbppqJq pq-qrpqDppq pq(pqgqappppppqq9qqjqGpq:q6qnpq_qpq!qoppqqqLqkqpppqqpqMqppq#ppq/q4ppqUpqq7q'q2qqCqeq ppqEqdpqpqXpppppq&qIqpqqfpqq[q)pqqYqVpppq1ppqppqPppq8ppqq?qQpqppq%pqpq ppqpppq$ppRQffzff|ffffifffrf}ff{fyfufffffsfpfmffqf~ffnffxftfvfffkfffffjffhfffflfofwff]]^O^d^v^]^3]^%]^s]]^l^V^]]]]]^Z]^i]]^X]]]^u^4^'^^5^[^^^g^*]^t^B^q]]]^W^^^F]]]^w^]^_^K^ ^c]]]]]]^^C^^]]^,^^ ^U]]]]]]^L]]]^M^>]]]^J]]^ ^^.^?]^)^!^<^]]]]^A]]^&^#^a]^]]]]]^b]]^6]]^E^N]]^j^^$^Q^;^I^/^\^y^]^ ^]^x]^0]^m]]]^]^:^`^]^]]^2^r^=]^(^p^k]]^ ^G^ ]^"]]^e]]^T]^^^Y^f]^-^]^9]^]^^]^+]]^^7]^]]^D]^H]^h^R^@]^1^S]]^n]]]^P^^o^8Xczնzշ%zM׀zO^"  zJz,zpqW  8 W/0\^M( $Ԫe z OzWW ] fX;c z 0u=z@WX*>OE2 s9 {XX z 1֨z W QzzMq]XEzW  Xkzz s/< MAW<zَ  X2XXWWWXCWXp 8z  o } -M {| m (Od3(WWWX WzX zWLDy_1 [eSM^q$՗W ; M6 c}zW>vg>ch0jX2 ]kl֞=>^zW zzXk`@ s ) J YX:WzWKWX;We%W/efHoXz;X}XWXW ]WW z YzWzFiXWXBY+"%ק2WWW~z  BX `Qzrz]dAzWX`W@XWNZz[ zWX< Zտ -WWmz^_ij'kyA.1XqXUX|XXX3ա BznW*N   O N zk*v+SROPQ j XtWXVWz @X XtWAcX2\Ez *zzLٵWe^au zWH4sT' XX2LWWE" XOW+ z^`  KmLzWz; t<zdhdistrbbbbbbbbbbbb$$$     dddd}d{d~ddzdd|ddwdydxdggggggggggggߝߠߟߜߞߚߛI}kl\f^f_f[f\f]^ab_`c\\\ \\pppߦߧߪߩߥ߫ߨ߬߭IIIIIIII]] <;>=XaXMWW }zdddddddddddddddddddddddddd!$# "Y\Z[]ccccccccccc\3\4p\pap^pXpjpep_pZp`pipbp[p]pfpdpYpgpcph<$,351&0- +#(2"7/%9*46.;8'!):PPPPPP]i]S]f]U]n]W]j]r]q]^]k]_]p]b]g]Q]l]d]a]c]e]`]Y]O][]\]T]X]R]V]o]h]m]P]]]s]ZW&GeWXmb\  X\zz]6:RyeyzWWXS^XtXX`!MzXaXSXYLzzXXMNX5zW~W J Kz e z}6X/XX WWX&X0WM ^֊La``_a`am`'WWW < ` z__-zs  . XM2 4P}|Xz^ՏՐWzzֻX2X&zWXt A W  XOXxXWX4m zXM J_LS XWWPA7BMzz] !MWzM_z`6XH׋WXzGpzXXs_MzWZ . $z\z- Tz Wz Q G cWLXE'XX WXWWX;  tP# 'c [(`a ՄWzWWֲzz jVxXEG _iu=,>/WWXؔIGgW*X2 zz i X}z?xc KzgVgeL M   [WXkX2c)zL   {N)4Wz WX&7Ԯz|hAzXH"z _F___Y__d_yLPzSWOa zz2 3M H  X WX.= oz_^W(M ;_4I_TWWzz֬zWp@Wz L@dTUm%eX:XVt XWzz WXן D_MV XXWZX{\:zX2gzWXL e LVL֔zXX F SWXT ԤXEjoM}Jzb $ n{o_sMz5z n  WAWz LXExWX [zM-~X z~Nyט_K~:XKcXX;PLdWWXWX8 XkXOzz8gFVGzWzzWXXX zzzjK_+ z^WXTWX;tlgLXDWX{zz׫XcWzXtzzzLhMyWzxL'Xaz zzizfLKW$D\] K WWWz_CO)WW!LsQzW XEX'ԸԹzXX:  LL MKWW   We&jXX   (zWN uzWXq fzz|6   .ٔ+1WW}I|5|/&P'Vz8  +Wz wUHFEGbWb^b_b[bYbZb\b]bX̛̝̟̠̜̙̞̚B!B1BBBB$BB,B*B0B"BBBB B%B(B&BB.BBB-BB BBBBB)B B+BB/BB#BB2BBBB BB'BB BB @@@@@~bHCDB`C`T`H`F`Q`Y`@`L`W`^`Z`O```_`J`N`c`\`e`G`f`V`M`B`b`P`a`?`]`E`D`X`U`d`R`I`K`S`[`g`AZdZwZnZsZoZ`Z[ZiZaZcZkZuZmZbZrZgZtZ]Z^ZqZ\ZvZfZ_ZeZpZlZhZj[[[10```````````````````````````````p}|nuimwyhvkrsj{oqgzl~tfxbbbbbb~bbbbbbbbbb/-65,(*0'3.)4+12ChCpCmCeCdCgCoCjCiCkCnCqCcCbClCf\\\\\\\\\\\\\\\\3/1.0857<4:26;-9d%"# $!n{dhvwbupx_|T]cgjieyz\mWlo[sXq^U}k`YfZa~Vtrw{yvz|s~}txug3g/g7g"g>g%g9g=g:g*g2g-g,g?g8g0g.g+g6g#g!g&g$g'g)g4g@g;g<g5g1g(bbnbjbsb[bWbbKbMbvbJbUblbkbbbfbbbNbpbRbbbbbbbhbbbubbrbbXbObTbobb^bbSbibqb]bbbzbbgbcb}bVbbb{bwbdbPbxbbb`bmbLbQbtbZbYbeb|bb_bybb~bbbbb\babaaaaaaaaaaaaaaa~~~~~~~~~~~~~~~~~~~byb~bzbb|bxb}bbb{bbbbbbbߌߋHHHHKJLGFIME\ɸ____________________________"#dmdsdpdndtdodqdrSZWQ\RYUTVX[     {zy|a a a#aa"aaaaa aaaaaa!aa aaa aaaaaaaa$aaaa aaaa@HBAG8?D7;9F=<CE>:bbbbbbAOA`AMASALA[AZAIAdAPAbA]A_AcAKARAWAYAQAaAJAeAUATA\AVAXA^AN@92<367154;8:0?=>ZZZZZZZZZZZZZZZZZZZZRQXOWNUVPTSzWXջ ;X Xzz*<[Xjcz MׄPz`2 zWz'X2; o_EMz^qzP ,ukzM"_!MHZ_ FzJzN8Lz cXiW DXtz(NL6N zhX؎ q ubMzjz֌9OWX zz ck\y   / y D <z7YMFX~K^Mza MԧWwؠzxvbzzKQ%X \i/Ez \ WzX@ ] z 7z  RL_WWz rL֧z z W;&XO_KaMzXW+6L5)szG#{|}zW zzz zW nX W\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\zb[L[MFEbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbAEF?@HBCGD``` r; ؿQKXzMYz 4zֵzkz>`M2P X"WW hp zؖXXؗ8 ! )L<WLwWzV zX  R D v EG@DAFB?C  }ׅvZZZZZZZZZZ{|}~    gggggb3b4b598:```````````:9aakoqnmlpAAAAAAAAAAAAAAszzgXF_`FL<=fLq(԰wz{p *X}fW dLVը1 I2 zWzXZzKX:zXw .zZ< I~> QO?_Kzz9^zMMz  P [U zXt^~ jCz PnE <,zvQzU~z_ z  s Ywi1YX2 JqSVW\zx6) `$WX2WX; Jz=zz  O.k &zs:Vzzh:1"HXa  " Zby&' WXM$ךlX]+X  `IEmzs0WWvlo$MDzzvXt azM%ԚR_WXsfW.U]z zHzWKWW FWz qٟ/ XtGr Xs`Vzzzz <f֛29: c&$  EMGfJ_^q_ Lz-X~9p >=@?<z K j  z$<qW^RzTX P`qa_`za*anXtWWWX<ԒO is q:X>WWa5bW WXb  X2 _;(/RJ yLg q [W Tz?zIKzJ   ԁzսQWX}X'oz0U }RAWz .p\ ~'q% 9= jwAԌX WXq1ZmX}WzWzٲ XWz__X}WWX'wMRX  S9zzz  IvWXwX~UpX zddzX~`j`i`hIJ( wzWMzXbX(XMXaW(k AXhzXEvX0WfS`_`P8zMzXe :e   %MzXkXOX2W *+M9LHzDO]z XWXh ]KP zXX|AzWWX`Lr7.XNWzX;~`  xy֪1KWW#szb ;2XzLzGXtz K!Wz  O&MՎzXֺ zW - dؚz4 'WKzzzWXW~ D N0?$o)W^XXX:MzR yWW-zL\  mXuP z&LWqT\ _`a)*$X < u 8WKlWXPXOXtWW{iMWW WX WKj>?zu zְa] zT ),-[izX$XWkWl]]]]]]]MKLJ#######=HzeYzzuWWBXjXNW &ٚy }M K;c % /`u@QX2  `dԫ ["I% z.^ .zL#_K 8WX: & mqzgxgtgug`gngc!MzD{bF   z5 zX XWzqp|#X;} 5X2&KdL LtW5#z4`azzWW_ _MzMT  6 d ZL}0z 9 Ez )zzzzz fz-`!PL_k` .XvzMgz__W*>FWW  >WWXa QaYWFWX? A  zX}WWzWzWXzzxXEzXWz td*XOW _Wzq=zg{zM!IggmgzWuzXWzWM1Q 12.31746-$8#'(*%5+,&/)0ahaakamayaaxaoaqaraga}auapa~aialazava|ata{awajanas`zmz_X(zz zؼz  }!fdf;e3ed4dcfdRef/eccfGc5ebfcedugIebfce cNeicAe+gbgfcg}degcc?fbeAdcbechf"dfd+ccdKbcfeUfiedZbcbc%cdadfgNef g#fegg,g9ec&f7ffydeccPdec ecbecf~bfxe ddeegdxcdf^ddffc<g_c3gugcddee~f}eWfccegbf+f0dgZfbg dcc fgfed fepdfvee{cgedc2fbcgdhbgbcJfJdcfXegKdddredGeedHcffdd'geHfrfffqg4fgdQfUd}ddggffedbeeVdgecc8egcfddAceTc_cfcjcOcgg;e5bfac,cDff,ddd~feecofIeg{dnbeed/g\cdXdgee,fKdmc.eqeegedePbgc^fdccefSfcgcd#e#c7ccbd]cdcg[d!ege2cgxggSf{dfdcfHcczd@cebded8f*f_cf!eeeNcfcd_cdedec cgvcdfggVdMbcffcedde1deec)ffcggEffdwd\eg-feEbdf>fbbfgbgHd cg>ddfg0f<dec eKdDgg(fe0ff eddvdef\fefbgeggcydcc:fdcRcdfRdcgbbe!d>ggg?fggdfdec edzggMddUee%cmcUdqf|e>ebbf8fe}g c9f cg8dgcf gGfsed|cKeegUdcbcg`ebfe(dddbe-gddfobgeeJcgwf4cdyef`bedfcecdfddfgedWgeDcdd.cqcfDd exe&fc(d,fgcdc'etc!bdec;ffZfQdbcbecFdcdccd0ffgaftgjeeZegocudeIeXdVg7e<fcfcXe`bddc-efcEevf-fMfggOdc>egg cdlefg&cxdefAdecedg bcgesffe/ffcifCgfdceyddCebff9cfeef)dEe=cd ddbekfbd"ggdedgef:gAezfcd-f=g|cffkecd[dfece'ecfBcceecfgedcddfe|d:e g^ff#dcbc=e6dfdpge7ffbbeccc+fe_bc[bcg+dcQdcwdLfze\be ehf[dgffbbegPgdgeeceg"c`ff2egckgybe.eLdc}cgefdsebdgbfce8fcd(cccecpcccYeSffFeeMdOf$deeCbgffLgdTejdccddfTeGdFffbgcg3fgg:egddgegmdgfd$eecef5dgXbgWg'fcVffcfg=beeeedcfgeeegdIgDgdcced=fledfcfbdf3ffccMgemgpfegrcCdcd%gcbgbf]gtce4dfeeFecsefe;gLd7dPf eeocgdc{ggCeeed6fere@g!gFgRfdogcffpfeafccfge[cZd fmfOdcWded`fg/gqdSc/ge"cg~dg2ctceglbdtfbg<cfwf1dYbgf(de$e)fccd&cd?cccd9cSdcGeg5ed^gcgffcTffc~ccvbfde gdfPcnbc gegg edceOgcgJe cefenf.cdkgebdfgg]gzggQbbggecgfe:cc6cdf'c*fndfgde^cedcee*ffeReefYelebeg)g.cdgkd{fhgcgdccfeccc4cfufc"c]dgecLfbc#crf?fdfceYg$c1fdeedbeBd1dcIbdbfg1dBfbdgsdgfd)fedddebewggbffeQeefffdecdjgccgfNc|cefee?fdNf%efcgdgd5dd<fdcdf&dfedfdgBff@c\efcdgndd2ccdcf bddeugTcaccded ddJg ceffWcleegfbcdf6fgiccd;gfffc@ffdeffdgfefg%ee9cdbdghg@cggdg6cbecdiefe]bdc0fbecBeebbg*cHd3d*cddc$efjgdgYbeddfVfEcdfbbbbbbbbbbbb Yz} (zzsxp- WXsXKQ7Z M\C |zm fz F !mzzz WEdWXWLWM%WVzap_X XiW 9W_pM*zWj WX}X'WWzX{X_zzO zz׍[zp0GvI\QG AgaN_AmAnAlAjApAqAoAk_____b AAAAAAAAAAAz|tvy{x}~wuZZZZZZZZZ &`DUVz (f`zօ }zX;WqqTvzsuԎ3MWWX1zz9 z3(zX Xz~ziZz0___________________________________________ ;[WِّX Brkz j;- ^Mz Lz!D~W zz/0(bMXsWW hz 0KWWWL LX;  "zq _LfQMffMNzWWX1z YXrXtW f ?LWXCzz VWzz/{ـLZYWWW   a/=aTV?z:`>_z5Ek<zKz XW E؝EGlOWEYPzzzzz WW&*eM׎X WX Jz{#~ 4 nozWaԴz؀W3X| gzzXX2y:[Q  zzx  WzGDXXsz__XM_ _WXXW %7:9=;<68r%WԗWWXawzLB& kW HW<M zW(ׯtIDEGHBFCA`d```^`]`a`c`e`_`b@@@@@@@@@2710/6385<:94;_L_M_B_N_J_G_H_F_K_I_C_D_EgfgfavZ_|_t_x_v_u_{_w_y_z`fff^a^`A!A$A"A&A#A%3 X Wz 9LzkX~dMJYzWz hz.WWWXB]z7bWz^aY`KzzX2v4Ma$S~զz 8U٬YzXX!oz ?غ4rf[zzz Vi\p?:KWzWz4@ 3L w^MDעX2pz`_o^d& XkW___]__`+` _#_5___``J__PL1$zT `8MQ  ElME+z=,0=E zz֕WWz%zX;We CjLLGzMztWWXaXa  ;Cq1e>-zK՚LWWSTWXpLozXV@?$zZM\dWX WX2z ?XEi 8֣<pq_e`Kz Mzz/ zh*zWXzX 8MzXXs9n1zad-PهX Xs Bdfdgdedddc #'"!%&$  gggggbbbbbbbbbbbߙWWb    z z֍T$zWr?XT_>  WXA0WXazzٝzrzlbc1_izWvxzam->%s _IpzWWM  rzbZz4zWX'եWXtu._ _LtW.WWW&W8z  X"z P WWWz a  LX#xFW`H_z!zՍWXX2XDWX{WXOKzL`/Wؘz J>VIX23z c4+V~ռz   K Lz @z"! XNXW ՛՜C  s`_z 3  RzجwM~X2_9-z8udbzz%`g bbjpnoqhmrikl L MXa"pz,\WWWizLzzXWWWX!WKC%؏X|z7BW& } Dcd}: D uPmXX MGX WWWIbzWzW^zC. Nzxz+ }~X#zKefXbX(Xa &X' )zWz|XkXtz   c?zzzV"z  Xk`4zWWzz@ Y<XU^zqrz_%%xXaXz QxtoWX1k '  zLCX= o XYX oWN"$ {GY UWX}WXCWXLWXX6WX?WWXKWXT٠ Y`Q Mz"XX9   =z r׆+q ,rzX1WWWr *QioWWXaWK\ /gX}BWWXMe<Xq^7^X`,Mn)z  ~Xz 'aWb CWX O^zz@XX _WXV K m`oz Hz Jz >MQON?XNW8ؐzzXt WM@4Y W 4  z/> Izwz_b`"ٙWXLW#^8sLX2zBxWX;W_hHzzWXX& $ z%zX~Xcea5a8a7a6a49r_I <y!b~0 >WM=Wz!Mz*@z cWXrWX{X;z AhWWWXYQ>WWKz 9 d 2z ;]OX Xo.eFeHeLeEeGeBeDeIe;eKe7e=e?eJe6eCe8e9e@e<e>e:eA]]]]]]]]]]]]]]]]kmhqiopjnlg[^]a`Y\XbZ_/:D>7?048;51B6A.@32=<C9pppppp|p}pppppzpyp~p{,"-+.! *%#$'()&$$$$$$$$$$$$$$$$$QQQQQQQQQQQQQfHf?fEfDf>f@f<f=fFfBfCfGf;fAa]b`cd^_59 ~ 4Gm+z/g;zz%Xb$X XqX֑z _XX9M&`"NO Rz= OՕ_BW` _*XtՖW hz!Mz V  z jzt[ JpWXXX}WXEz> r֜XL;z-(z(zc8 zrtKWW_\_^_Z_[_]!  zP4 %  z_CDԼ E}6L zLPLQXt7 1Iz` sKM#R+z` d>MSY z KHzWXIX XT >XaWX%zWczKW{uXtXE)WzXwBzX_WXhMiX_Yzz0nIW XJTz XZz:}XWWX:X` iXwzWX:X<wq'M#W!MzXX- b>zz*lWK[F4^3tpq VWz nz12 fbdbcbbbaXqXU{. XzXXXWXPLdWXtz}zK%apzaLS:&G y &4z5 zy+Mfz/WX}M_PK%X # NqzXb X+M:XؤQإئmBRVz Y׺Cz 7s]LL oDzz pߢzz  =zWXsוMXrW_75%z Lazr{|*KTw^Mr2d n~zX HW pYzKzL0 >zWX}zٿMzzT{ 3 z_JL^Ԡmԡ zzW|X WWXX;YFzWHXtX`WX0X  @zWGzX1:UK5"zL mpkuvlorstqjnzKXz{׉Pz׊ VwEMKrfb zX+XBXXXXEzXOzM, WXNXWzXRzX   X:XqKK z6m6\]_ [Lu X}Xa6rsr WXR g (_'P/KWzzֱ *  ~ X zz :}( w`bR tz ajBdazcez%)zX:Xzz530zW Qz/X|LJ WnEuYtz)M zeoenep  \W 4Lr  z  W`K XtWzWKzPHNIQOKTPSJRML؆ 9$ .zz m nj-2#' "*!.+1(%)$,0/&\ddddddddddddddddddddddddddddddddddddddddQ   KWWoIղ"WM>Mٓ)"+# (!,&%$'*[ [ [[ [[[ [[[[[[[ [[Xmb_kifl\Z^VYW`hdc[Ugeaj]dd <:?A8>=@;9kmnrloqpbnbbblbebgbjbdbfbobcbhbmbibkWUYXV#$\~\o\w\\v\u\r\}\y\\{\p\m\k\z\n\x\\l\|\t\q\s```}``~```|``{```b!b$b%b7b3b(b"b4b8bb0b+b2b'b1b,bbb&bb5b/b-b#b)b.b b6b*b9edbrbibkbjbhbpbobmbqbsbnblbtz uGzIR74!a֓^51 q`zWzX gK >zS^[׵WzL*z Rv'79%]"z՘$    lWWXs Lz D }Wlz*XcWWX4LbaW SzXs|Q WX;`4WWXPWzb$1) } D EF  WXVXz8zzl-WznLvX}XԾALR-zJCWWԖvztzQz X;L"h- )z*W C !  08~XED- HWz /FbzzW  ؟zz m^zWXjz' __M+.XLX^X{WXEWNzz Sw`\zzzzգz XOWTh   +X;  G_#XE6:IACJ6@M8=>7EG;<NL5D9OKF?PBH`Cpz  _IzW /E^zzzKWQ:z@~z[X2 l^z1Պ_z2XXWW *`7 :L hBl$t_~- zwzo*ABACAA!ZZZBggggggb bb_LU3 _sM{RhS~{OBhWX2WX;zM׃KzSwX^WTy#KK###ehemefeielegekejJIK~L fX(zMWX}X' X2  zB}B uzOsW׾zQVXMB z[qZ{z j%$^ Bwk|_n,^   XX0XWzkHGbH hWbzbL2  XeXWWXcWX1}2A T o AWX2b=b<b;b:a ~ t \G HP#M) bhHL8}M٤ Tzk !9zKzWWXzMX0X2XEzzr_&8WuԶxSUy@AXaWX [XXEz`- MZ jXX +Az W Xzz  WX} c d UWjzX}X: 6@  }BqW8;jGzXWXX Xzz}zzzX}| jznwz_3 zzzijz6X1zzXtXWH } zt zXX AVWWd'2 }X|W=׿ IoGXէ/MXOzz , [z___s_a`^_aa_}__a`aaXtXD_ LXENXOY[MFyMzzG< 1L? M>  _ O Wzzz X2zzBCW45~UQdCL9ALW1BlX =Yzz \  HKmMd~ 8׶`_WWX+׷WWr4՟z(Xp | .DE AAAZZ  AAAAA@@AAA @@AAAAA AAA @AAAAAAA AAA AA AAAAA- $'"  ,+# */(& !%).0gTgRgSgb,MQLOPNaaaaaab~~~M|jB  M< -  z!6WWWXXD^L> ? __BzzA CT,< TWXy@_ծzzv igy.WXs ~ ^ _MXKtv֎WW+N3%ԙu `zz /[ zz 5IW WH4W @z zٞzXX Wszc X:W  zZ֚Pz zXN1\X5X>Cq1e>-zKK! SLzW_W_aa.__`f^_`_^____q_m z!I JzWXXOzzWLW!MzPWzF zWX'  4 K    zg^ zz WXLzJzX_W SAףWW?z q }DXXf3~zTz2zLXz WzzUz3zzXDX0XCdX_YUyz(_ClK,_ 0%zl , BzC |z?[Q[S[P[`[e[N[V[T[\[^[d[[[X[][U[R[c[g[h[_[f[O[Z[Y[a[b[Wes } OzWqzt c vAeWe4_ 2zz bXYLe!M_/ՁՂXkm OWWWs nU{VqWWXEX'Xcz $ X}uz]{]}]z]|ofWzXX9zfWXgX hC   X&WR.X;JK`D Ka_L Ք tz9.  XzXO ) o9 VLWXLXUWW  e = HNz WzX'X z WcOz2W@XuWX:Xzf`QMMzl+F sLz)rW{ X2zzXEz Zz U @XC _a?_ _X`_E^^`_ z~L.z`&B } jW]zXWWzuY$%*AzgBz Lf $ WWWzWX0XVzָs]FlLMkz`/Mx WX$X z TDTzW B2# $ )GzW"u Q WX XhjzkY_QIWKWzXW  oWd@ rY Sz?z!cWe=zXOX2wWKqXEWzթWWX.{ dX -hc zz71iٱ !Ks<DN  ػ . `c ;zkwbzzz z tXY! /zzXXW wz jE KT}"z(rW"OP }b*7^qzb WWWXZYmzzP@dOPz zzzWصHX=^( 3sC_zzz+Wy(q Q[8PWXz8z zzw9WM`WX} KWX|XDXrWK?LTzM  7`-zXXW|qXX @LEX/6]]]]]ppppppppp$$$$$$$$$fSfRfKfJfUfTfQfIfMfLfOfNfP10/]~]]]]]]}]]]]]^m^s^^v^x^~^u^w^n^t^z^^|^^^i^{^^o^^^j^^h^^k^r^^}^^l^q^^^^p^y^^^^^_oUpibqPWmuQkd]xeEgKHwRtIZhNfc^GlOv[XTrYjLVFa\`JsSMn TzPzWX&zJWX XIWzz  d$%>?z_  WzX;   M1zz?M z )WX`WWXtWp u >$ ?DQzdz WXsXD zz_Kpob z5zV ezzL_X`X& ֋X1Xi .Q W Xs]fI5zXO zj \ zXX1XWXzX'WX1WW 4+6 ?WXzXr XX:X  ;xXlzWX ;XaXXs=ML֖]XO IM)X Wz WXEz 8XkQtz(#z WXMփzw -WF XXXEdWVWXgX@Wz1z  fzX&Lzכv:9zzz$a`^`<^^```a1_S_`^` ^ NpwWqx)Wfz  U_. WzX2XX-zza-CfX0Xh {]j_ LKXs^&zXOXqXUcz_Lyz  zFLK  9 >W%  M~ WWWf5sOnz׻׼WI zqRD>x4)`?z__f+L6&WWW  ^z @^yMs_X W zL vX    XXWW#zu vN!h  -  t z_z Cz{_>Wzzzs zPM 4^zKzJz/z O ,z' qz t X9X_ DLXY9WB^X WԲM.ԳWzW+& [KhiWX WtXj]eHJgLy{WW z^bX \ $_LLؾBsE0Le /j"_L<f_`#`_DKM0izWWX XlhW׬/~___________a1a0IAtAsArJKHIZZZ WW (tXj / Xzz__t+^z5z W:zRrA#Tzw 8 Fy`DWz EX2 z, zWz* XQPSRVYUTW pc* `LX1WTB_W؈W 2LYM rXM  W4zWWiٕ )z  izh#9X rQL"`*D&zzz:9X<>Lz%zC.#' zX Wi{rzHsx_TzzlzPXdn֠֡Ԋ ~XLI`z`XJ_ _:W*WW -WXkG $xG 1 7, %  zلLx q ;7zPvdz^`aWX WA]_` QbzwXWlTz KXz{z?zWzWWXtWX}vz#X4zlzdWVfffff ff f f ffffff ]]]]z.L>WzzCdX ^ AZdzgM b'8 z% ! 5X'L OzMX9K@z @zz3b XlWX}X'zXyWHI M]z N`MZZzX2{IP~gzz 'zL  +dddddddddddddddddd   bbcנ/mL!W_ k 0V NnILWL rzs 1W lij :W lWXE, H u_ 6 #9 )_2XkWW JLzzzz,$  d sTz0&z ?  q<{i z S5I\X'W Qd .  +v>mW"z lzX'M K SיX;kz?~szDمz$_ fXE 8M/ dX;WXXszWXsXDa  M Da:zzM$W > ^W )zJrzDWW  uW `zf3X1 pX_`_BLAzW@Wzz h 9OlKNK0 6Y-DXuz7>WW '  Ev aLzz #MoXE 9zTw% Oֈ`zXWJXsQX$WR& &@ZW :z zWWWW UՌ MzXK WzZmfpzX2)9  <?zװz z.WE`(__v N zXUXX@zz7 W   ; pw0Wzzz nD`:UM` {vac  zW\  ;~ rDC rz3_KT  zgYgfg EV Xtz XXWXP .KWzPWX:X zfMt[Mu\Viz ` ^^^^^^^' 9zץy WzX մzAX2zLlMz zzLs K[ X  zW  -#  z-N Wr*Ra+k`? _._`Wa: zTX2z\WWWX [_Mدذ~W  )z < Fzz>^z؂ k؃ W zX zbozX :ًYL|z+3P"X zPX0Z[֐za6 SWXK S  &nM N2z_M] !X}Xaz \ WNX:WX2pKz X~ WMW ^XXzzzzv##XXXXXXXXXXXXXXXXX_s_r_q,```f/f0f-f.f+f,  TSfffff^N^R^O^P^Q " !#@@@@@@@@@@@@@@@@@@@@fffffZ}ZxZZZ|ZZ{Z~ZzZZZyqtqwqq|q}qsqvqyqzq{qxq~qu&/+4025*61(3)-.',gCgKgHgIgNgOgQgLgFgAgBgMgDgPgEgJgGaaaa~~~~~~~~~~~~~~~~~~~~('01-/)34*,2+.^z^{^|^^__vW` L9Rz 2 )t^z^3 2h^W= 9 $?zX2!MMgzs[zW  6 XX{Wc_ٽOz>  bL"WWLh ozzz`w1\Xz S GQK Ԃs WWWU M'XNW i6Hzz1Xt^WX; sWzR3~3 r Kkz WW  :2 ;z} BW<XtPk& !l.M>xXz (n]zeO3zX ^p` \ 1{_X6_p_Nvz.XXijWLzW{LXEM  MH_ zMRXXsJPufg  czWzM|W  X2!} XWWXW's-z3H+G٩z٪ jbbߣ8X 3Gzzg}4B2 7 MW dB32I}1{zWX<h 8 u L&zzzzc-AyzWW bp , _ zWN87C(My Wzz=7_WL#WWXl `Q`__w`<^u&zBK~ 3  vXLX/zײz;XMzW @z}M XL]vz +r Sa&(sX1zX zWX2WX;Xzz&WXL{?EngzhKRXVX{ zX} O% MX}{ZRz H=;<>`` `! <;=?B@A>gbUbObRbPbQbTbSbV{su|y}wxrvtz~AAAAAAAAAAAAb;b9b6b:b<b=b7b8zzzW Kpؒz z fzWXWW_Mר&a7)) )nzx* zٛXWX zW8 / aYz$lWdDXTSWX2WX;WfWa1 X1@X>WW]MLI!M{z84g`\z Az V*WX2(NN zY9zao_v^ XDX&Xzط}LX:WL֫z5 u  ؄1Y gzz L/IWXJ=zh^$L~zzz_LzW1M zzg _U,]WzXEWX}WB><?z )y<WXx WzYLzG Xt|HW`+zzhbX` S #9|z:szXQXvX&X* wVX2L<|Xc @WWW4zz #X1Wz }KzG z63|zzlm&  9 zy|}{~wx#W XX___L7   MzMzzoz6`GMd o zgR y.  XF YשX .*z B S_*LkX|zWW7jkz Nz P؞L  Bz J XtzXXA`1LWW]׏uz)MXh ] 7> %  / <W5 hWXrz'WX* X XlWظz .MbzM Hz]57X-8Xٷ)zXzםW=n,C-E30+7)1<F5DB?/H6*=:8';G49.A>@2(<7BDE;6:F8C=?@95A>]]]]]]]]]]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ˊ˚˓˝ˍ˒ˎˣ˄}˦˕ˋˁ~˥ˇ˛˘˞˜ˠˡ˅˗ːˑˆˀˏ˙˟ˤˢ˔˃ˈ˂ˌˉ˖dde e%ee,eeeededeee#eeeeedddde'de$dee ddde dee*ee"deeee!ee(e)ee e+ddee e e&eeedeed]2]4]3    $$$$$$$$$$$$$$$$$$$$$$$$$ n'zJ1$?4 |EqA~ *e+u% /fCM{ht7.rb8g =-_@wlB3F&#(a5KyIvL 60;kc)}pj:DG"d^2<>9`H!iosxm,tznyrqovu{}s~|wpxpGpDpCpApLp@pSpVpQpIpBpHpOpNpPpTpUpWpKpEpFpJpMpRfkUQSPORVTwa'b-z5Th<49=3  xn% j.t,W ^y> !\)fc (GL$7*;H F~02/o6eKum[s8 NB{#}OCP:E`|gS_"RiJ ZpqX l&IYD?V ]@1Qdr+AvUkM]x]y]v]w]uNDN\NTNKNBN=NYN?NONLN/N6NXN;N`N_N2NCNVNfNHNFN1NJNINdN0NZN8N:NNNQNbN@N]NAN^N9N[N>N3N5NcNeN7NGNRNWNPN4NEN<NUNSNaNMzx}~{w|y+470-.13,269:5/8cctcicc<cczcfccc.cQc=cccLcJcMc>cNcmcccHcSc@c6c)cwcuccccCccUcBcxccc+cc/c1ccccpcec0c9c,coccEc:c]cgcc[cWcdc3cccchcc*cZcXcOcccccc~cccc7cjcrcc(ccGcYcccnc^c{ccVccAc}c4c`cccc2c&c?c5cqcFcccclc|cDcKcac_cscc8ckcccc-ccccvccIcRcyc'c\c;ccbccPccTc\\S\c\\N\6\\o\s\?\\~\k\\a\\\\:\\\z\P\\e\\\`\\G\\\u\\\\\v\\\\j\\\w\Y\\_\\=\U\A\\\\}\\\{\Z\M\F\>\\^\\\W\r\B\R\\\<\x\\O\l\m\I\\X\i\\\;\\Q\\\n\7\|\\\8\C\\\\\\\H\p\\\\\\\J\y\b\[\\\d\T\\\\@\\D\E\]\\\\\\\9\5\V\K\h\t\\g\f\q\L\ffffffff^^^^}^^p^^^^k^^t^x^^^^z^^^w^^r^^^n^{^i^^^l^j^q^o^~^^u^^v^^^|^^^m^y^^^^^s^vv_Q_O_U_P_S_V_T_R     `g`f`l`i`n`k`t`r`p`j`s`h`m`o`q@@@@@@@@dYbT\SehJ]XMfZ^aUOWLVP`cK_[RQgNZZ-Z"ZZ&ZZ0Z!Z*ZZ+Z)ZZZZZ#ZZZ%ZZ/Z(ZZ'ZZ,Z.Z Z$ZfafWfcf_fZfXf]f\f[f^fUfefVf`fdfbfY>=@BEIGHFDAC?ggaavvvvvvvvvvvvv_}_~````]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]##### !"A*A'A)A(     Ն=' >XXPYWX9Wk & CM1 Kwz>`;MzTz uXE 3 tWX9XCWWzX[X1  F}a]^zeRKKKKKKKK]:]9]8]5];]6]<]7zKXRXGGFd WX_`CzX1zcAتX4hw+(W< zizO{ eWWiXOXtWWW*zZWM\$]k٭X1XWXWzזWLeWWX  A D֭_?M \;XX_ZXAWXx h .eqerNOMLPfgff^^^^^^ ^^ ^^^^^^^^^^ ^^^^ ^^ ^^؊؋4zW bzzMzzW zSaճzjlzbN"N#XNtp0OMovX?Wxz _XTXn hzԥ W$JAAAAAAAAAAAZZZZZZZZ\Y]d^Z[a`Xb_cuvw\E~M5F \X HWW"! z#*TzOZFzWXW$W`"X / WXU q+ X9_4zy mggggggggggggggggggggggggggggggggggggߍߖߕߔߘߏߑߐߒߓߗߎdHdbd^dRdTdQdadKdOdWdUd\d_dJd[d]dVdSdIdMdNd`dLdPdZdYdCdDdXdFdGdE()bbbbbbIjIrIgImIzIiIqIsIlI|IvI{IpInIxIkIhIyIwItIoIuXWW]֤pCXnXSzz? dCWWCXs dz; FzczAAzAvAAAwA{A~AAAuAAAA}AAA|AxAAAAAAAykelicgjhfaombdn[Z[ZZZZZZZZZZZZZZ[Z! JCFINL@BEPOAMKDGHggggggggggggggggb+b#b*bb!b'bb$b b"b&b%b)b(bbSPLQVNWTRKMOUb`[1[G[A[<[%[B[&[D[,[)[$[2["[*[9[E[/[C[@[=[([H[0[#[:[7[5[ [8[F[-[6['[?[;[>[+[![4[.[I[J[K[3`````` ` ` ``` ` ````B:B4B9B3B;B6B7B8B5faZaSaQa_aTaVaPa^aWaRa\aYaUaXa]a[AAAAAAAAAAAAAAAAbWbTbYb[bObSbQbRbPbMbZb\bXbNbUbVig\^a[Z]hf`cd_be `o`q`v`x`t`z`l`r`n`p`m`s`u`k`w`y +MI WWMbլX8Qk'vխLzXEXE :zczXRMCc`L=_\L # Mz 'iX'WX` <&MwX W`aW W  X zWUXQX$K$Wy M zMz;  8   Rez H֗ 7WXXW9za@zW zW`LL.xcznNWTXtUzWXs WOzMz6z Nz L_zWYhWZ56]L>X<(zXz~MXz5X'XyL^z%zY  pkkX8M=y  3 zNX2X Ol_Gd yPRt5SYzL)MUL+Wg~'XLpzb 10Wt<5 o  Q= W"zWzXX b\bbߤe N P  QB,1\MQ(X Xz2Qوz)   #Apr -J_aL $zWLX&[XX^z_Uz 0Wozl1 mՒEW_A_G^L% 8F ' R0]b_n\oz/KzL8Ԅ:.QizKzPzz78 :M XWz_( rK /X XtWzF  W zz.Xk։Mz 8 FzXCX89    $. X2XXX} !Nz RWz MYzWzWX9 4 i  zXtz`RzWJؙ y^_i@zzz MW  Gz_L6zWzFzWX<3sz*#z%K&kWXN v 98M iXN;NM~ RWXH$X:G n* zUczXR Q{( Ax1XfWw 99z5$Wٯ} QPX XiXrpՀz X.`zWzSkfgQ WWzjjt d \DYMNEZOQWziX  "WK3ՑwՓ cG-UJeԨ -mX|Mz]XWz,9_H`E_L-JX5 `:zg[gWgZgO rjJ#dCD`8`7`&`9`3`:`#`)`/`6`<`4`+`2`0`%`$`.`(`,`5`'`>`1`*`"`-`;`=aMaLbGbBbAbCb?bEbDbFb>b@edAADCsrZZ̖̘̗̄̅̓̊̔̋̎̒́̐̍̏̑̌̇̀̈̉̃̆̂̕ABBB[[[[[[[[[[z aDL +בzffffff^^^^vvvvv_W_Y_X`@@@@@miklnjZBZEZ2Z;Z4Z6Z=Z?Z3Z5ZCZ7Z9Z@Z<Z>Z:ZAZDZ8 KJgg ggg g gg ggggggggggg gggggggaaaaaavvvvwvvvvvvvvvvvvv_ rzVpT zv X|WX VFW_MW_ԺzZ[\__$LO Axy2*pX mD  F  ^A j=WXaXOW~zEٺFzz"zz y? \N/5}'\yW9zz 8W/KLm[\XkXOWWXt {LCdn4%4e z %7% zP #mM<#WX uQ+n L[ykuA"zWXFfkvWzwPb@b?b>{   o{W*, 3JW dP`K aza zS R C $t8zzzLbzz __uKXWWn )u$BYWzza"$W0zXm_0X W zCD"XtFzo _  3- ``9Mzz zz_t &pX;EXEX'Wx: X  tW&ՠzWzX~NXiX2hWX:X |L`zrW%AcGW ~ WKSiWWWX+W^0WX{? Y `zXOXEL-ٌKzzz zl˨˩˧˫˪ˬ$$$$$$$&+(1 0!  ,.2#"  ) 4%6-3*/'$5XX^^^vvv_b_c_d    (*)+```fffff@@@@@@@@@yw|xz{};`^`J-l<  bWLzz&$^&z zWXDMD/0     $ W  AWWHWX WzWXz١;:/WWWW 1 w[sXOاz>gAuz !_`JjCz֝z=}yzz  e  M *z_ATklzW f~z n:}~WWWWrW#7[W\  zh X$WWWXz+@ WXWzzzO} _ t_S`_`RzV14_' d uXEXaWXjXX)zNX*`ELPz?9zMzXWWzz.X&zz!MX}Xa" Stzz 4WONff\\XX   z  81Lزسشz1 > ?WBLGKWXHm z L akX2 } uՃz<XXWW| ٍ !WqLqzz=:t'zXzz2vf t 9& t <L4zr XXX1X0X &  Wz MIWX zWV}^_ L(z$z XiWn ԭxzb  |=rXbԈ WzWXE.KX:+/W0RSz z`n`_8zXsWXDzz tTz Xt6U?{4eMW$ `)_zX@Xz_NXO\zqX;rzUWWW WE8  ~z z___7bVLjXr`M_ON<3X=6zXE_D?LFz@X   QzLL&-@~z<zzzIX& E IzzHWXtzW-z eX9 zWXX2XX_@E<>DF=CA?:B;\\\\\\\\C{CwC}CCCzCvCyCCxC~C|ɯɰɨɦɳɮɧɩɬɶɴɥɲɷɵɫɭɱɪ     XEzրցP9ւz_x` WW Hnb %WW zzqٴzWDXt W W& ?) cg!XWMvWX zX=XKX7XI`S'f<תz V|zxXtWL3,z}_qLWX(__:WZh uz IzzG zzXn!MzԬ6>_ c! sdWf5WzN>WM[ \դ   zQ`PL z<X  @W t nعz~ a XWXPz5L7XIX47z؇z X( z:z o yCW r XOWM_^_Q q c D 2@*Wczz Ff  +z|~1() @ԢX XtWԣivWLHRtnXMgglgrgg!M2rzT<=% W ffffffff^^^_.MM"!LxWw_R X֟A5Z5[ -XaWX%K8h{`) 5  &, Rzի/\CXtg.z^____Lw raX[Zo_ j .SM _ xz v<WW zeiz 6,ezzWzz <% z JzM{z!Mz_gTz` JzWX|XXzJ }L__L<47$_ay^  W:vX2zzzW  yMz zW Xmt+W -Է YX'X ',ևzzXfW_ zz d= zWԐzzS6IHG w_ e RW`KVz 0_ M)XWX3XW` מ|`:`0_1H hY3z e  WzYWXsmpؕzzWX/WWkt2mD L WWX WXW <T %XOWN l=W` <Kz^}5 zUX:Xՙe!M7zzhdzXDX0Xmzz M;-z^LM{~zXtjazU^^^XXXXXXXXXXXXXXXXXXXXffffffffvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvDX XJV  X\z`5zMP!M\WXX5WX( 1Y J 2  yLz<62+XaXg cLN#rz^ _{__/.Y  1 fK &98Br B tXd!z  4@ z LHWzczWXW P 3 z (3[}4z! ar3אz3 Z |X:WX|XXWX_s ^֦> zW: 8&EFzzX8Fz 8?  H ID ] z JzKz,c4LzX*հ8Q<W ,`XXzzٸ$M(kXX zXtWՋXXXWֳִXX aXz*zzjLL7 `n9|}X zz6 4^ 7 9z:X zlWz`qz zzWmX2EFzLvMl zo rX @z   Rq J]k]a\]5]]]v]\] ]]]E\\\\\\]=]y]e]i]>]1\\\]<\\]\]"]2]x]]]/\\]o\\]4\\]]]K]]]]`]f\]_]c]L]^]h])\\]7]?]q\]R]]]A].];]$]G]Z]\]]H]Y\]&\]T]g\\]\]-]J] \]][]z](]X]0\]]W]S]t]r]]8]\]]l\]M\]b]D]j] ]]F]N\]!\\],\]]u]]\]]d\] ]*]m] \\]6\]9\]O]B]3]n]']C\\]U\\\]@] ]V]+\\]s]#\]]P]w]:\\\]I]%]p]Q]>La g[nMrd~esCOP hkQBU=GRNpSuwI vqTcHz@WYVo _X}AmZ{i xj|\JyED]?tfl^`FbKpkpmplPQXQQ]QQxQiQRPQ?QjPQQQQPQgQ+QQEPPPQ<PQ Q{PQ`PPPQrQ>PQ|Q0Q4Q5PQcQQ9Q}Q3PPPQQaQPQqQQQ=Q QTQQIQQPPQQuQ,QPQ Q$PQyQ QQPQwQPQQQUQKQ*QVQzQ@Q(QQMPQQdQPPPQvQQhQQ PQQ6QQQmQDQPPPQPPQ&QeQAQ:PQQNQBQ/QtPPQPQQQnPPPQoQ^QQ%QQlPQQ1Q'QOQ_PQLQFQ[Q)QPPQQbPQQJQGQQQ;PPQQPQQPQWQQ#QfQpPQQQ2QHQsQZQkQPQ~QQCQQ.QQQ!QQQ QPQQQ-Q"QYQQ7QQ8QPQSQQ\0XFoDU.{HO}'Z8eNS>YKaG-n1p4yj^z 52&wId [ ?r]MQRtVPs(\+k%f3J9)@*: lgEm_Chux,T/~c  $Bv`WibL!6";=q<A7|#e.e0e/e3e5e-e2e1e475,/1@.4<:F%9(*2')G&+>06AC-3H8;D?B=EURPQST =| Jk()?M7{"V4nc$.ep9G-28'B#TW raP>b }_%~E:uZj<v+01\5w/z[i;QH m&sqRI!St@L]ox`3yfD^A6NC*lghXd,OYKFU ef eeeefeeeeeeef eeeeef feef*eefffefe}eeefe{eeeeueeeeeffeeee~eeezfeeexeteeef eeeeef"eefeeeff#eeeefeeeeeeeeeeeeeeef efef%ffeefeeeveeefeewfeeeeeef'efeeefeef(eeeefeef)eeeeesfeefeyeeefefeeeeef!eeeeeef&ee|eef$eeeef fe$[${$E$0#$R##$g#$##$y$~$k#$##$>$#$p$J#$#$###$.$h$F$A##$T$H$6$x$$$$$!$#$q###$r$c$"$-$$o$$$8$/$V$d#$Q$K$a$2$'#$ $ $f$$$O$M##$B##$#####$\$ $*$j$s#$#$:$N$t$`$n$W$|#$I$ $5$}#$($X$##$$$$4$)$_#$?$ $@##$Z#$b$%$P####$9$l$7$$L#$ #$#$w#$<$D$z#$$U$1$$^$$C#$G$3$$S##$=$]#$;$$$i$&$m$+#$u$e#$Y$v$$,#^]]^]^!]^<]]]^4]^]]^V]]]^g^6]]^'^,^-]^Y]^1]^+]]]]^W]]^f]]^5^^L]^A^ ]]]]]^"^ ]]^]]^]^]]]]]]^M^C^ ^N]^7^]^F]]^Z]]]]]]^^]^]]^.^]^b^;]]]]]]]^^[^8^2]]^G^9^%]]]^ ]^^^c]]]^d^T^^^ ^a]]^(^^H^U]^E^=^R^^]]]^X]^ ^B^?]]^3]]]]]]]]^O]^^\^e]^]^*^@]^Q^`^I]]^:]^$]]^^J^]]^^^#^^P]^/]^0]]^K]^S^^D]]]]^)^_^&]^>]^]^|QʆT_ʭ ʰʔʴʀʠʉʮaOʋPʧkʯ%lʩʣʒʦdʗʳʬʱZʎeʌ!ʁfʑʟʲjʙYpy vʊʵt]ʚʐbrʥ`}ʷ~x cqʝw"uʸʍʕ^hNʃʓziUoʹʤʽʂʞʈ#ʨ{\ʺʶʻVʫʖʜWSʼʪʡʿ ʾ mʇʘʅʏnʄʛ$Xʢs [Rg .XE`*_^G90z  XE  XK/ xDz_ LX4WXG/ԑ z]^Npzr nFL@J[CBEפ|O(PN_MZ Zoz  @XOXtWW M WWZ X~mD b`O HGWBWW, z X:n_@ Wu GWl׸zW_zLq5zz ٥e12zFb_c]X`a[Z^\YB]BBC2BNBfBBBCOC:BBC"BCBHBByCFBBC!B_BnCBBB{BBCBBOBGBcBBBBBtCC7CBPCDBzC9C4BYBBCBBrC BZBBC/B\C;BvCGBJBBbCPCCCLCSCACBCC)BCBBBsBLBkBC-BCBgBBBC C<BCBBBBmC8CBBBBMBC'CBBBIBUBB~BuBBCTBBC BBC C BBC#BC(B}C*BBBTCBCC3CBaB^BBC%BBBBBC1B<B@C,BBBCIC5BCNB=BCBCXBBwBC>C?BC=CBlCHB`BBBxBBBBBB?BBBBBBBBoBCBiCBqBCQB[CUBCBCBBCBBjBKBACRC0BBpBBBdBCVBWBBBBCMBCBQBBBFBBBhBC$CCJBBSC.CBBC@BBBCECWBBC6BBBCBEBBBBBVBBC+C&BBDBeBB>BBBRC B|BBBCCBXCKb*$<`N+S4 L5gX7P &;M(Eh@d{G|)m%0VO~jx^qUn/}:8[f WcyQF 9oRZtpr]HwCK6D'J=k2z,_a#B\ .e"i1vY!>-T3 IAs?ulbgbfbe (A) z zXWX|X&Xrzz0XXVzWXayXXDz06 e9 !EG- Wkctկ ي N s _XG WXjWzzLX WXW_dzM֏,I,.WWK9Z2 zWXz t WXkz7zzztz M  ) jXulCzXaXELZ XazzoWX: nU8nGur dzz 1WW`^  $zHZ_z_ (XaX&W  E /zMJXOQ X2WXCf[M`0OzzWXp zr__________________  aGaBa=aHa<a@a;aDaCa9aKa>aIaEaFaJa:a?aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU`^aW]V_TZ\[cYbX^a_2 WX2WX;XE|=h^Mټ zNz%zX WWWzXX9w.C4v< LY :OԀq j ;zc~V0!zVyzm6o)7 *O ozL]_PQ WXs}خWi7Fzzb`K __ԋ?/z5z%  Uz NWC: X WMى֯i 7.X;XN LKJ],%*()+-&'$$%A%%]$$%$$%"%%1$%z%%$$%s$%%$$%r%(%%%,%F%J%)$%M%n%*%x%I%%% %0%%%%%~$$$%g%%P%%=%G%%9%$$$$%w%%\%[$%&$$%m%5%@%t$%4%$% %!$%Q%a%%$%$%H$$%%_%#$%;%k%K$$%d%^$%e%L%h%$%%%X%o%N$%B%/$$%$%%S$%%<$%%%i%v%7%%$$% %%Y%R%l%$$$%|%%+%%Z%:%%.%'%b$%O$%y%%c%%%$%f%2%%>%U$%j%C%8%?%D%6% $%%$% $$%{%V%q$%%%%p$$%%%3$%$%$%u%-% $$%%W$%%%$%T%`$%%}%$%E%$%^^^^^^^^^^^˹˽˼˿˻˺˸˾˶˷WXXtX|WXMX%__NzyLWXrW-K{ # $ X7Xz\FR#gb  z L&_)W  jLlXEO ZM - IWWLWX}X'p  9XXqrWz\Wz7M 7WX]@LW X٨ fzQ 3 gFX'WX`k#WWXt  _% zMz [X|a__. d ]    {H#\_z3 1 WXtzDX'X1XMczWWX`X2XX#  :8ٻ+Xt vzzֹԞ6kAj^M3~g7FW 7 zzױMCEzXNWzz zzWP>  h_1`"_ XXN) zz@WWzSz1{R DfM X0XXzX' IX r\S4~w)tWWX uV ԓWzL^WXp_<%KjXXzBycXNdL 4X5-,XaXX 45[ zzziոz-Lz %zWXtXe%WzOcVOd zz.zzgg\HWXE>YZog5wzz  {oբW=! DCz 7 LN M>NYضI_z  ֩eIXwKJ ~znoX!M x*Wz,m 69,4+2"= ):$5(*#8</7'%1!;30-&>.ccbccccbbc\#\%\!\"\$pߵ߰ߴ߮߿߳߶߽߸߯߱ߺ߹߲߷߻߾߼KKKKKKKKKKKK_mHX2WWdddddddd=nXDWCFz LzzP/[  Cx_Lzizz  q ! `zP`/zz AX_Ek;y8z`.WWX}pzXa k`UzW `02+4-1*3./,) ZZZZZ?>A=@zMMz~DK .AM}WzzM  z@]XW2x3v&X} w zpf XhWX"RZ ]r| zWW kz4WX12ԽPzM@XtX[XlXM`X WX;X" XM!noiDXt`Vmv , W[XzAz%czWWXX1UM4z WWXxG}zXJCzYMA W , 5-! $WzW Jz_ {`gggggbbbbbbb6547_  aO@/X 6 ^zWWW W -u%_`=_- LXa/MX2ք JXr QWW0z{e  ԍfp| P KzٶXOXie(MלՅW_l )ُ zzzMz2mZ bXz zzyN/L IzXkXOX2L5XtչzlzziQ  fff^c^g^f^h^d^eBz[e_z "pL)Sb% ]t\bbߡf eR KuWبzة ^+ pLXmXB. M`MeIVQWMPYLZSXKJONU[TR]]]]|]]}]{]~pvpwpqprptpxpupsYXY^XYZ YY5YYBXZY%XXYXXXXYZXY)XYYYYXY}XY\YY:YY]YYY!YYXY Y Y9YYYXY/YXXYYY-YeZYZZ XYYbYYXYYHXYzXYYmYYY@YnYYXYrYY[XYAXYyXY6Y0YJYY Y4YZY&YYYYwY_XYXYYYYYiYYNYUYaY<YYYXXY YdYYYYGYYPYY2XYY=YY1YYY"YsYYYtYYXYFYZ YCYOXYlZY.YY~YYYXYYXYpYYgY'XYYY|XYYYQYY YYYKYYYIXYXYYYYY+XYYY YuYfYXXY{YYcYkYXY?YYXYZ YEXXYXZXXYYYYXYXXZYY3XYxYoXYY7XYSY(YWYYhXYTZYYXYYY$XYYYYY>YXYYYXYXYYXYYYqYYYvYYVYXYXY;YXYYXYRYDYYYYYYYXYXXYYYYXXYLXYYMYYY#XYYXY*YXYY8YXYYZ XZYjXYYXXYYXZYYYYXY,Y`YYYYXZYY42+1"',$!#%   0(.5-3 / ) &*576QQQQQQQQ]]]]]]]]########(+)*'&,-%%%%f7f3f4f1f5f2f6f8[UXZW\VYfffffffffff^~^}#& "!%'($^T^U^\^]^X^W^Z^S^[^Y^Vqqqqqqqq^^^^^^^^^^^^^^^^^^^^^^^7:9;8V4_#L;L^MW٫ @AaSXOW7dzzZXXRhWWW؉z X1;zXOXjXGWS ]q66XyzLiX Wzzּ  Jzz. %K؜LzMWcbbcccpccccidcbbcbcbbcccbcDbbccIccccccc"bbbcgcccc bccc}ccccRc cXcZccbbcccYcfcScc!c<cchccc ccccmc^bc'c*cc&cOcccbcbbc1bbcbbcc(ccccbcLd cccccccbcc+cxcbc`ccGbbc[cHcwcbcccc-cbccbcc\cbbcccccc.cbcVcc>bcbcccdcJcclc0cc4cccctc8cbcccbccUc2cc]ccddccbccc#cebc_cFc3ccbcc%cccccvdc cc7c/c5ccbdcccbcbcd cccc6bccKc cbbccQccEccabbc9bcccnccNcycdcPbcocdbc;bbccccdcc~bccbcbc=bcdd cbcTcbccWbccbc?ccCbcbc{cccc$bccccc@c:cjcAcqcscc,c ccccrczckccBcMcc|ccc)cccccucKMJb*}-2S,/+4Lk;au(Nr'i]"3e^qjzO{)C&f%!?=tsP6d[.5w_nRV~@oZ0Ey7vcTgl8Hm#h\Ux$IF>GpAYQW:|91<DX `B^u3"rjNRfP|}t4$5Sa'sDoOWHv YP]Ez)MQR?N+@&=C#[~\6GSg!I<L.UxVw0k;Z y2q>%niI_LQ`*9( 7FJbJA1KlT m8,cKX/dO ehMTp-B:{[{\$\[[\[[[[\ [[}[[[[\W\H\!\X[\;\[\K[[\g[[[[[|[[i[[[[\1\[[q\A[[[[[[[\\h\=\5[[\M\?\'[z[[\[\ \[r[[[[s\b\ \\[o[[\)\\O\c[\J\B\`\ \[[[\f[\\G\D[[\6[[[[[[[[\Y[\\j[t[\[\+\F[v\_[m\R[[\@[\&[[\\T[[[\[\%\\^[\2[\3[[\V[\a\\I[[[[\*[j\([\C[\ [[[[y[\-\8[~[\\N\[\\[\7[\>\"[\L[[\0\Z[\,\ [\i\[k\[[w\d[\U[x[\[\[[[u\.[\[[[[\P[\#[[[l[[[[\S[[\4\:\<[[p[\E[\9[[[[[n\[[[[\Q\\e[\]\[[[[[\/aa5aaa+`a`aaJ`aacaa b aab `aa`aa8a `aaea'a/```aaa-a aa``a`agaGakaa;a"a`aaaRaaaa`ahabaaiaa`aXa1a7``aaa`ajaaab`aVaabaaaAapas`aoaaa`aaa!a2aza a)`aa6b aqa``aFa`aa`b`b`aaata`aabaaa3aaaab`aavaaaZba `aaaaaMaKa`aawaa=a`aa$`a9aa``aaaayba}aaOaaaaa*a^ab a>aaa{`a`a```a@b`alaaaaa|`aabana`aLbafa`aS`aaxa~`baD`aaaaB`a,a`aaIa]a``aaU`aaba`abaaa?aa`aaaWaaaH`aaaad`a%aa&a`ba``baa ba[a`aaaCaP```a0aaNaaa``baaaaaa.a\a<a`b aama#`ba`aaaaaa`auaQaY``aaa`aaaa``arbb`aaa_aa`aabbaa(aa:aTaa4aE     tnrvw~{uq|zsox}py84N|, [T(l@~A6!^51QW HV9iF`Lq> }vX]teBKYJRI\h)<:-Z=w30+omaM _pSzb"d ./{n%rg&fU'ky*s2GCc?uj#; OPE$7xD_ \ bWWz @Kc KzLN׌zuKX ֢ |@SX M$GU*z Kmv.zX:Wa#WY!M+v^MI   LzMB  GU ^VMXEXOXtWz~zzn jM!Mh_M  ׭ TT#zzպ  yoz z WWׂzI v\'WXWPduzLA\6z4AhAiAgAfBFGDCEAZZZZ^\Y[Z]gggga,a/a(a)a'a-a&a%a+a*a.bbbbMjzz /*4"&3/.+$(-#1)2,%06'75   !zzXE~zVXW׽KbVW.$&'(%A3A;A<A8A=A:A?A7A5A9A2A4A@A6A>gZZZZ87<9;:b b bb b z ` _&_Z67-?XMzEM?W XrWX{X  .a `K WzWX*-W/;_(1)`_0XWWX&W OLzWסMW z  n h bbbbbbbٖW2XTWi M;W :1 DzWIz&}^z`^` Mh Q BCXWD UfWgW' *zXQz&zLnU rXX IzL^zFh:L GWz_=_ *zzXOXtW>za6 JzX<W*z[z 23Lzu)XX9 juԿ r'& XvF tXW X;X (MzXz^aIX3XrzzW`azKx$ETWWz  XW   ׮5C XE [  u  QK ء W]_`_ pMz XOW*0X1Mk3+ ]z6XfU X( X'zWXnXszWX'z<0  4 JnXWXY XOWzWWzWzCJ 8KLcMX WXzzL\XW WzmzzEWXXֶ S 5 aַz (!MzX{X_CC>@t  z z=]--XVKzz  Qz?onXah(X zzzz_? @> zrzث W LNtF0}TWz X"WzzXr-I.,z ) W   KL e z& n VWXXh_u7w8  نzl*RfbLbKbJbIONdz) $zzz_E)iSzK " R S$Ok gW_zz_Y Q jW W kb  :zXO !WW_@ W__V a" X W2M6 UM7zآWWwP׹W9 5Wx ZzWWGzXXW٦ v$8W ^ $ MzC_ V %NX2XXWMXXz *=h XEX'X !z 3  zzZzz. )/ ( P QoX!KWoXNXW: za`a%zٹz2n* W!ST"z8z1   i <WWԜ  KXOA zX hV; r d r W Lz'&XJ E=X/MX1Wz <<zXzeW`z x zzzzWWXEND^ zMXr 1%q97)*+-(,/&'.brbsbwbpbubtbvbq``````````b|bwbvb{bxbubybzb}"#!& %$CaC^C`CZC]C[CYC_C\ '_K  Z H1WWWXF63XIX>zzM5 ,0G"HMINX'zPz  M z X1Qf|ZfWoXFX s_P@zzzյ٘ O__>_  aWX:Z_ &CaK> M.XtXW>z EXEWWXaL#Wzzzb=zpt6__ W Qt_5WNرWXWn YLzGbX'2OMpPczKz WXXWz;MSWX1x,^ L5zzW ԛ z5dMes@zXNX1X2 6z!q<z<L' lEz z fXFX( _vWWWSqXz gzLԇzz3Z`xMm kW$ lWXz1zX2#XaדcX6WOX MXzzT`@XA ~zz z \z0c IzgzzLAfyklپzzzWצ```````A.A,A-A0A/A+A1ZZZZZZZZZZZZ\W =4 }6WX0<-C? B"z XUz"zV-վ Y  cXCXtWb.56X<xmKXP2vzL~|S_! L0#  zX@OzAMaG qWX1 _`Nz VzzzvWX:W,zz  4XWDWX{X2MX|_"`LL-64z6zeؓz$eXaWX%   z~h[%2XEX'X  fgW H _gL )`B z`39KzN    g_i ]  ^B T sWJXaCأWsXz) JԆMUBX1uQ213```"! a`aajhigL: &X;Xz} 7&;zהzz A _PWz_WW%d Ի0zc]_KzW6zzXsw`& ;.Wzzj  )WXCzb.L$m R-"ywC]X1X'.WWkI, CXzoWty<Q Cx ([~.R gGO0B7C .6Z W!A/ Nf&X[ ,KXNw.''!i&X$X.%3XPy#6<%y '! <Ab#9A(G.R\XCf%2Vv+W.%'<. 'oJ].WcD9-8y$@Iy]!yX J`'! wE&X.7 +sX7$-> 3q )\ *]  X*=($H4%"[P*ai k"X^.RXw$@/yy)6^Q'.yy'$dC'p<\ X.RX7_-Jj:.R )YQ E.W3%NX.WQ!O Ayyy.Rg$-H i*iy]'C' g. '*X*|yR.R G+L2''].W6-\3qb.W&-<Wk.H )Eu.R[#<Y#J ]m! p-%b$-&Xv2 *C].XRV-] '!HA'Y y*#Pj d%bC q$~T'<n G&vH}(gyM(Xy si1y]/ %'!wmC]&w](#.W-=' G.0 *0!yD-6.R6 |w>yXz)/k}'#wp.zCx+O'.#wGQ  ''F 'N \a!l' W& (w]"],A]-%# </ '6W-^:Q$'FG8~)\ X uy.R']yww.yoXU ;&YRPz-B- ZB-4t6% ?u$:jvl5( yM7_.R8A.?T> jX!]8%EyNQymGQyv*L%z) <'ym)\ N>0'6wC] ('=;4 @)E,@*''Jy> ,K$@$G(G.R5<\)])y")w  ';i,bx%as2J'!w"F- o %61N.W-BWkl-y.bwXB.R'.\w&X )E>$Xk'2~Q'A9$XY]w}]]XX) C*IPw k.$RjWCL * 'PQZ+^YB^.RK_w# e*A9.  Ow9Cy C$` l%Cx.Ra$-5!:!*]y.R*Byw'!'X'*N28i4/'yTw*v8-y#''!)+6XT.R*)<F(.W('!1[ ,]@'xRi].] 7`&.R-  "[k{*o < E)E4] *Y"X)$quP g'!)0S"$X ,KR pv *f0vXM+%?&XU$-h> S "!,tyrwdD' (I*nd'!CQR'MX#y 4 <~ykyI*.%GI A\.yV K)00&y 0B'd CwX *' ="x.cew n.R.}&X: (G(]* <%$0'!.R'7'.z'. (y]')X9*B''vyu.R =q"x .w:O.$K.Rv)%y*B =2"xPQh (.R!D.R'X\XBy n G0Pw)0y,.R"xh'!$sycGXsy%#6/ m]"'y.MX.W-}9y\~+'X$.[ &fbA&.We+1!&K`"&4t#*Cr.R](''!' yw.X'Y _.R $@'i.2J]5vw5kL* <X ^)*!wp8^t]+]%X.R- {Awy'k ZGP0%.RXz}wU% w`W)01NVr (X;'!+1$?zyfw.R&Xw7(U%;,&X4.R.Rf8*9w}x !,y**X XzJy (Cyi7y )E] '!.WU-p3qW- w e*8Aw#+&X)>)%#2JyE'!k&J  ( {%a *j@$]"]0Xwh P5w'!  $|Xd!y/>)_% O O'2*+,-%,W (g" .R#' Xz)\ D.W-33q @0HyWy,. *~)\ By]#)00&'W%?ywX'!N&'X|y@ G0eM AF'o'.'ao,w|zy h*P$y-" * .R&X1Vv, KAd*5f+f,<.'@&'.e)<e.WLDw:'U),  ',W%wGW'!rkW%y)9yy s'"Y*w,wCy\)']8~ y&X.RyH'+1 ' A w.vyDn.RVA.yYD .RAy0.R.&X'6 S )E]'&XJ" ] y] @Eywft% C`8wyU~Vy$i.R &AyC.R y -2T :.zw*ZS!+[<\%'q*A}+syby,i{$@' GQK.WQv'S (.W-(*.W)-$]1w.w<\Dw.RM (#3NM5y H+s[*B.yJ |Aw] C)00h'I."Ys.W%w7)'e+])1(##' V'N?.R'!.`i3qy]wI'] .z mXa.R%+1NV.RW.h` 'yJ )E%'.r'N;v :*8~_/Wpx*y " (\-.('!/)-<l/.W|%v)"wf'!,{!J-@ l&AD.w;@*'&Xw]. " wv".V .Q+*'!;Cc A`y yf*AR a+1b'](;+s8y)0;-"yy~v.WT%'!GQ'!'wS }$ -%6hy1'**.WQX!%$<] NK+10= (*G0o.R"Ov g'! 0i)\ tDb&"g'Aw.RGW%YX()$+)3 V .zZ?yQSw.R#='Pw?'!? v<y]-L P]' .Wn- ].3$@y(G.R m2ny ( w .&XJV*5w]#wQ'! %q'!3$i$N?&.U>DyyJ*y')%6'%'yF9"i{iy)w7%r-if#]$$?wL.$>DHoJ``$w' (r .Rl9@$X>?8:O;} .W)Q  Q}'-Gyy.R$(G.R X)y<,C%e'V T+s'!'!P, &ZyM' S.R/H; 8,K.RKi yK8~8i"/y`.wwCm'wyB+*YSDCGQ'+y+*%#' *n.RE %' #A( < ,,C0 K.W"D.RF!XMXEXzo!Xj~X/~XoWWv+O0'%x.:`.R? X+ *(Q0g" ="xp *yi K&YM9I-B- ZB-1XtDi% 4$:3J%@p uyt,'c"/'!iq.RTK@7` &GC)y'!= 4y'+1-y &XyvywORL.RNi?])0 +sP 6 6b&YBA-B- ZB-GtV% <$:N<I%%6W%uQd'^G$r$|? c%2Cwn*% )03ww_mw2 9&YT|8-B- ZB-P.tGD% E$:1<%M5yu .W-WkA.Q%,@@XW%2yjA=y <,xCy <)GXyc.RsW6$@$#6X*XFy <Ww''y<'*aj.R#'S'!8yN'*%aYv'!N*iZ (` tw)'+Fq$@y' &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) e[^dpji`strgy]h\q|un_ofce~lkwx{zvbmZa} &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  :4q &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) 1 &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) &"h#yg%!V(i,")!0 v,Y ]):*V$" #-,!(-9%$-"L*}'Q.%'%*%`, *#-J( 5(+e*7&72%K($"1cWc,%.p:i ~v9!(&`M)%'q+& !D)-+'!'X++$[q".-+N -$zR)ZT'|(H,'3*m)W-'I!_[% $  'c)I+: qA T"o> N,-g!],*(]#*&w#IA.5$u$ .)$'v.Y$)#uxW(P#i!#%(3P.Ho.23 *&&+),I$_";y(}!"=li[.b-Q.9 ?'8N, *$. H& *.' Fa,a""-6'..,h-9 V1' & +-.',!(}+%' )._,O(O#z ,")-J ns k-Eo.B#'1 M&%8+ 0  . h)u%!^&s n5%5%#)- ) +(]%" 1?,#  (*(OZq%+l'>%c&.+-k##%w),~g-- 2,2s*R'&B+yB)-B]%!'..A$-i+Y.$W"Uc!())),'pH&W(!H5}# *<6*+,*f2"l-v*F&{()j%R#Z@.[G*a'/?'j(/!% '#! f+#$!N,v A" #<".t8E/(""kP -*w$nI.Y*As5&q j"A+/ f*K"a$(1] %&.i%G(@C$h+;) !4"7*o)< !#)+"K%"`)-&J&[  {.[F^'l#2 %&n %-+ sU).{#M).)8.L$Jd!$ ,3)I7*'+-)l"~+#V*(*-_ "qZ(-O Z +d.'!rE,d # &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) &"h#yg%!V(i,")!0 v,Y ]):*V$" #-,!(-9%$-"L*}'Q.%'%*%`, *#-J( 5(+e*7&72%K($"1cWc,%.p:i ~v9!(&`M)%'q+& !D)-+'!'X++$[q".-+N -$zR)ZT'|(H,'3*m)W-'I!_[% $  'c)I+: qA T"o> N,-g!],*(]#*&w#IA.5$u$ .)$'v.Y$)#uxW(P#i!#%(3P.Ho.23 *&&+),I$_";y(}!"=li[.b-Q.9 ?'8N, *$. H& *.' Fa,a""-6'..,h-9 V1' & +-.',!(}+%' )._,O(O#z ,")-J ns k-Eo.B#'1 M&%8+ 0  . h)u%!^&s n5%5%#)- ) +(]%" 1?,#  (*(OZq%+l'>%c&.+-k##%w),~g-- 2,2s*R'&B+yB)-B]%!'..A$-i+Y.$W"Uc!())),'pH&W(!H5}# *<6*+,*f2"l-v*F&{()j%R#Z@.[G*a'/?'j(/!% '#! f+#$!N,v A" #<".t8E/(""kP -*w$nI.Y*As5&q j"A+/ f*K"a$(1] %&.i%G(@C$h+;) !4"7*o)< !#)+"K%"`)-&J&[  {.[F^'l#2 %&n %-+ sU).{#M).)8.L$Jd!$ ,3)I7*'+-)l"~+#V*(*-_ "qZ(-O Z +d.'!rE,d # &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &M"+G &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) 1 &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) 1 &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2)  &'#. /*2) `?_L&&_L_`?%dz