FUEL XFUEL FLGlobalClassClusterFLHeader ByteString IdentitySet ByteSymbolFullBlockClosureIdentityDictionaryUndefinedObjectContextFLGlobalCompiledBlockClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:FLGlobalCompiledMethodClusterFLDebuggerStackSerializer&serializeStackFromContext:toFileNamed:$FLHookPrimitiveClusterFLHookPrimitiveClusterImageVM TimestampFLHookPrimitiveClusterwImage: Pharo12.0.0PR [Build information: Pharo-12.0.0+PR.build.1.sha.17e5ada523c39297bfdfb15ccd027d0405626ff1 (64 Bit)]VM: 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:17.836035 pmFLPositive8SmallIntegerClusterQFLFixedObjectClusterpreMaterializationActionsadditionalObjectspostMaterializationActionsFLContextClustersenderpcstackpmethod 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:DatemmddyyyyzColorh: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:.Pointmax: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"gtestRemoveArgumentstestAccessingTempsVectorInBlock"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 Ӟ3` Ӟ!ԥ ඳ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'R\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:2002(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 > 1c13100n 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 TestFailure Given Collections do not match. Got left := an IdentitySet(RBAssignmentNode(v1 := anObject) RBAssignmentNode(v1 := 0)). instead of right :=an IdentitySet(RBAssignmentNode(v1 := 0) RBAssignmentNode(v1 := anObject) RBAssignmentNode(v1 := 4)). Collection size does not match: left=2 vs. right=3 Got 1 additional element(s) in the right collection: an Array(RBAssignmentNode(v1 := 4)) VariableBreakpointTest(TestAsserter)>>assert:description:resumable: VariableBreakpointTest(TestAsserter)>>assert:description: VariableBreakpointTest(TestAsserter)>>assertCollection:equals: VariableBreakpointTest>>testWatchVariableWritesInClass VariableBreakpointTest(TestCase)>>performTest [ : | 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 + arrv1: anObject v1 := anObject4030between: #(23 nil)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." "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 + 12JRunning 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.0020-' 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.3tcollect: 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) >>> 1502x instVarWrites v1 := 4. v2 := 21-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 """Given Collections do not match. Got left := an IdentitySet(RBAssignmentNode(v1 := anObject) RBAssignmentNode(v1 := 0)). instead of right :=an IdentitySet(RBAssignmentNode(v1 := 0) RBAssignmentNode(v1 := anObject) RBAssignmentNode(v1 := 4)). Collection size does not match: left=2 vs. right=3 Got 1 additional element(s) in the right collection: an Array(RBAssignmentNode(v1 := 4))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'111511231hellofrom: 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 n01002 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 ]0vector0xy73182022xAnswer 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.xmlinitialize v1 := 0>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')({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]]"1941085-1110000000000000charlie 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 '131231233nnnnnnnnwhatever100200vector21XX 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 X422152197Answer 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'5(#(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') >>> trueLOL4fghi"#(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,مjO4rWFixe"&/lust~V txNtor 4f%FailS!efin֩"Fixelust(}eJ ttor "_FailM@dObj2 @er testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster6 testSelector expectedFailspolygonFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectCluster: testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster Kparent properties parenthesesvaluekeywordPositionsFLFixedObjectCluster K testSelector expectedFailsmorphFLFixedObjectClustern testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscanvasboxesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster&/ testSelector expectedFailslocatorFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster= testSelector expectedFailscommandFLFixedObjectCluster testSelector expectedFailsmatchToolPresenterFLFixedObjectCluster& testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFails previewerFLFixedObjectClusterd testSelector expectedFailsFLFixedObjectClusteri testSelector expectedFailsFLFixedObjectCluster5 testSelector expectedFails filesystemFLFixedObjectCluster  testSelector expectedFailscachehaltController testObjecttrace oldTracer breakpointFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster& testSelector expectedFails environmentscoperesultFLFixedObjectCluster? testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster} testSelector expectedFailsFLFixedObjectCluster u testSelector expectedFailscanvasshapesFLFixedObjectClusterz testSelector expectedFailsbuilderFLFixedObjectCluster0- testSelector expectedFailsaBlockcontextOfaBlockFLFixedObjectCluster . testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster  testSelector expectedFails identifier preferencesFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster R testSelector expectedFailsFLFixedObjectCluster7 testSelector expectedFailsFLFixedObjectCluster sourceNode expressionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterfilehandleforWrite semaphoresemaphoreIndexFLFixedObjectClusterZ testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterU testSelector expectedFailstestingEnvironmentversionvisitedFLFixedObjectClusterd outerScopetempVars copiedVars tempVectorid tempVectorVarnodeFLFixedObjectClusterV testSelector expectedFails historyListsavedFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster|parent propertiesvaluestartFLFixedObjectCluster selector arguments lookupClassmethodFLFixedObjectCluster8E testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectClusterVa outerScopetempVars copiedVars tempVectorid tempVectorVarnode isInlinedLoopFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectClustert testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster r testSelector expectedFailsrayFLFixedObjectCluster /parent propertiesleftBarrightBar statementsperiods temporariesFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster J testSelector expectedFailsFLFixedObjectClustert testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster] testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster: testSelector expectedFailscompletionClasssystemNavigation completion mockFilterFLFixedObjectCluster testSelector expectedFailsc1c2FLFixedObjectClusterfparent properties parenthesesleftright statementsperiodsFLFixedObjectCluster  testSelector expectedFailsmanagerFLFixedObjectCluster testSelector expectedFailscurrentCompilerFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustere testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster{ testSelector expectedFailsparametersToUseFLFixedObjectCluster  testSelector expectedFails inspectorFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsaSliderwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterY testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster+ testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailslabel1morph1label2morph2panelFLFixedObjectClusterv testSelector expectedFailsFLFixedObjectCluster+ testSelector expectedFailsdpnodecontextdp2cls testClass testSubclassFLFixedObjectCluster testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsaClassFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectClusterp testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2FLFixedObjectCluster)i testSelector expectedFailsclassFLFixedObjectCluster testSelector expectedFails decoratoradapterwidgetFLFixedObjectClusterJ testSelector expectedFailsclassDefinitionFLFixedObjectCluster % testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFails preferences persistencecheckerFLFixedObjectCluster testSelector expectedFailsvarFLFixedObjectCluster, testSelector expectedFailseditortextAreaFLFixedObjectClusterhl testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20otherCollectionindexCollectioncollectionWithElementcollectionOfFloat elementNotIn indexArraywithoutEqualElementsduplicateElementcollectionWithDuplicateElementcollection5ElementscollectionWith4ElementscollectionOfCollectionsOfInts collectionOfCollectionsOfStringswithCharacterssimpleCollectioncollectionOfStringcollectionWithSameBeginingEndFLFixedObjectClusterV testSelector expectedFailsticksFLFixedObjectClusterj testSelector expectedFailsFLFixedObjectCluster> testSelector expectedFailsmockObjFLFixedObjectCluster t testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster properties breakpointnodesFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailspackageCollectionAbstractpackageCollectionsSequenceable packageKernelpackageRegexCorepackageStringsaPackageRelationGraphpackagePackageDependenciespackageApackageBpackageCpackageDpackageMorphicBasepackageTextCoreFLFixedObjectCluster 3 testSelector expectedFailstestingEnvironmentFLFixedObjectCluster` testSelector expectedFailsparametersToUse ffiLibraryFLWeakVariableObjectClusterSaFLFixedObjectClusterp testSelector expectedFailsFLFixedObjectClusterV arguments conditionconditionArgumentscontrollevel metaObjectnodesselectoroptionsFLFixedObjectClusterQ testSelector expectedFailsFLFixedObjectClustertestCasemaxTimeForTest testCompletedservicesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster 6 testSelector expectedFailscountercounter2nodenode2FLFixedObjectCluster( testSelector expectedFailsmonitor classFactory logBuilder chunkExporter chunkImporterFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectClusterb testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentnumberOfAnnouncementsFLFixedObjectClusterDselectorvaluableFLFixedObjectClustera testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster? testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment errorMessage errorLocation errorSourcetext interactiveFLFixedObjectClusterD testSelector expectedFailsmergerFLFixedObjectCluster2 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClustero testSelector expectedFailsempty withItemsfiredFLFixedObjectCluster testSelector expectedFails prototypesFLFixedObjectClusterW testSelector expectedFailsFLFixedObjectCluster( testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster} testSelector expectedFailsFLFixedObjectClustercacheFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster7 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassFLFixedObjectCluster Sdomainrange interpolate uninterpolateiuFLFixedObjectCluster testSelector expectedFailsmorphhandeventFLFixedObjectCluster2 testSelector expectedFailsFLFixedObjectClusterw testSelector expectedFailstreeFLFixedObjectClustere testSelector expectedFailsFLFixedObjectCluster I testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsresolverFLFixedObjectCluster5registeredClassNameFLFixedObjectClustern numerator denominatorscaleFLFixedObjectCluster) testSelector expectedFails replacePanelFLFixedObjectCluster@ 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 expectedFailsFLWordObjectClusteri 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 expectedFailsFLFixedObjectClusterJ testSelector expectedFails slotDisplayFLFixedObjectClusterI testSelector expectedFailseditorFLFixedObjectCluster#  testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterK testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFailsaPDPackageCyclepackageApackageBpackageCFLFixedObjectCluster testSelector expectedFailsparametersToUse ffiLibraryoldExceptionHandlerFLFixedObjectCluster3 dictionary orderedKeysFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster  testSelector expectedFailsatPragmaanotherAtPragmayetAnotherAtPragma atPutPragmaFLFixedObjectCluster$ testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectClusternname breakpointsFLFixedObjectCluster testSelector expectedFailstestingEnvironment repositorydictFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectClusterT) outerScope targetClassFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster7 testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster < testSelector expectedFails presenterpresenterModelFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalfloatCollectionFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster s testSelector expectedFailsinstVarForTestFLFixedObjectClusterm testSelector expectedFailsmatrixFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectClusterp testSelector expectedFailsFLFixedObjectCluster!B testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterU testSelector expectedFailsbFLFixedObjectCluster@ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster1 testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster{ testSelector expectedFailsfinalizationRegistryfinalizationCountfinalizerThatCounts waitSemaphorefinalizedObjectfinalizerThatRaisesError finalizerfailedFLFixedObjectCluster l testSelector expectedFailsmorphFLFixedObjectCluster testSelector expectedFailstextmorphexpectedErrorsexpectedErrorPositionsfailureFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster< testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLVariableObjectClusterpc testSelector expectedFails filesystemFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterD testSelector expectedFailsrewriteBasicEditorFLFixedObjectCluster testSelector expectedFailscanvasFLFixedObjectCluster^ testSelector expectedFailsclientserverFLByteObjectCluster'5j V5j@U5jp5j`FLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsmockuiWaitingSemaphoreFLFixedObjectCluster` testSelector expectedFails filesystemFLFixedObjectClusterL testSelector expectedFailstext candidatescontext processorstreamFLFixedObjectCluster  testSelector expectedFailscacheFLFixedObjectCluster argumentsFLFixedObjectClusterPcurrentSession categories guiCategory toolsCategorynetworkCategorysystemCategory userCategoryFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster8 testSelector expectedFailsFLFixedObjectClusterb testSelector expectedFails newBuilder originClass usedTrait superClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterdialogwindowFLFixedObjectCluster testSelector expectedFailscanvasshapesFLFixedObjectCluster testSelector expectedFailsbuilderFLFixedObjectCluster e testSelector expectedFailsFLFixedObjectCluster b testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsareapositioneventFLFixedObjectCluster testSelector expectedFailstestingEnvironmentnonEmpty5ElementsNoDuplicateempty elementNotInelementTwiceIncollectionWithEqualElementsnonEmpty1Element"collectionWithSameAtEndAndBegining collectionWith1TimeSubcollection collectionWith2TimeSubcollectioncollectionNotIncludednonEmptySubcollectionelementInNonEmptyreplacementCollectionSameSizesortedCollectionFLFixedObjectCluster testSelector expectedFailsplotxyFLFixedObjectCluster testSelector expectedFailsticker schedulersuspendedDelaysHeapFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClustern testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster testSelector expectedFails debugSessionsindarinSessionFLByteObjectCluster^#NJFLFixedObjectClusterksource isScripting isParseFaultyisFaultyisFaultyMinusUndeclarednoticesvaluehasValue formattedCode skippedTestsraisemessageNotUnderstoodnumberOfCritiquesgroupdefault nodePositions styledPatternFLFixedObjectCluster  testSelector expectedFailstestingEnvironmentFLFixedObjectClusternameescapingindexscopeusageFLFixedObjectCluster testSelector expectedFails environment groupProvider builtGroupsFLFixedObjectClustername owningClass definingClassindexFLFixedObjectCluster c testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationFLFixedObjectCluster sourceNode bytecodeIndexsequenceFLFixedObjectClusterx testSelector expectedFailstestingEnvironmentFLFixedObjectCluster| testSelector expectedFails historyListFLPointClusterFLFixedObjectCluster tagFLFixedObjectClusterparent propertiescontentsstartstopFLFixedObjectClusterC testSelector expectedFailsmonitor classFactory logBuilder inputEntry inputEntriesFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster(y testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster' testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailssegmentFLFixedObjectClusterF testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster| testSelector expectedFailsFLFixedObjectClusteretests resourcesname announcerrandomGeneratorFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment emptyDict nonEmptyDictnonEmpty5ElementsNoDuplicates indexArray valueArraynonEmpty1ElementcollectionNotIncludedcollectionIncludedassociationNotIn valueNotInkeyNotIndictionaryNotIncludeddictionaryWithDuplicateValuesduplicateValuenonEmptyWithStringFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectCluster _ testSelector expectedFailscompletionClasssystemNavigation completionFLFixedObjectClusterstreamencoderFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails outerMorph innerMorphFLFixedObjectCluster testSelector expectedFails collectionFLFixedObjectCluster 2 testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseserviceFLFixedObjectClusterT testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster]parent properties parenthesesstartstopvalue sourceTextFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster9 testSelector expectedFailsparametersToUseshapeCollectionshapeCollectionClasscanvasFLFixedObjectCluster' testSelector expectedFailsFLFixedObjectCluster# testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterT testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFails presenteradapterFLFixedObjectCluster testSelector expectedFailssourcedestFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterH testSelector expectedFails environment queryResultquerycursoritemsFLFixedObjectCluster testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster@ testSelector expectedFailsclassDefinitionFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails presenterwindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsnewClass superClasssubClass newClass2 superClass2numberOfAnnouncementsnewTraitFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFails decoratorFLFixedObjectCluster | testSelector expectedFailsclassDefinitionFLFixedObjectCluster W testSelector expectedFailscollectionWith5ElementsFLFixedObjectClusterL testSelector expectedFailsFLFixedObjectCluster" testSelector expectedFailsaCompiledMethod aReceiveraMethodContextaSenderinstVarForTestLookupSymbolnonActiveBlockContext anArgumentFLFixedObjectCluster4, testSelector expectedFailsparametersToUserunnerFLFixedObjectClusterFLFixedObjectCluster) testSelector expectedFailstestingEnvironmentnonEmptyelementExistsTwiceempty collectResultnonEmpty1ElementcollectionOfFloataccessCollection elementNoteInoldSubcollectionwithoutEqualElementscollectionOfFloatWithDuplicatecollectionIncludedcollectionNotIncludedcollectionWithoutNilduplicateFloatnonEmpty5ElementscollectionWith4ElementscollectionOfString"stringCollectionSameEndAndBeginingFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterF testSelector expectedFailsforkvalueFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster" testSelector expectedFailsaPackageaSecondPackagepackageApackageBpackageCFLFixedObjectCluster; testSelector expectedFailsFLFixedObjectCluster\ testSelector expectedFailstestingEnvironmentstreamexpecteddiffFLVariableObjectCluster=                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  I                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        FLFixedObjectClusteru testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentsnapshotFLFixedObjectClusterm testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempextractBlock2InTempFLFixedObjectCluster sourceNode bytecodeIndexsequenceindexFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterc testSelector expectedFailstestingEnvironmentemptynonEmpty collectResultemptyButAllocatedWith20collectionWithElement collectionIncollectionNotIncollectionOfString elementNotIncollectionWithCharacters#otherCollectionWithoutEqualElementscollectionWithoutNilMoreThan5FLFixedObjectCluster: testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterC testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsarcFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster* testSelector expectedFailsfactorybuilderFLFixedObjectCluster: testSelector expectedFailstestingEnvironmentinstVarFLFixedObjectClustername environmentFLFixedObjectClusterg testSelector expectedFailssystemSettingsmemorypreferencesFileFLFixedObjectCluster3 testSelector expectedFailsweakSetWith3ElementsemptyFLFixedObjectCluster6 testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster$ testSelector expectedFails prototypesFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster3^ testSelector expectedFailsFLFixedObjectClusterS testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironment classFactoryFLFixedObjectCluster testSelector expectedFailsparametersToUseFLFixedObjectCluster testSelector expectedFailsinspectionClass presenterFLFixedObjectCluster>parent properties parenthesesstartstop isByteArraycontents openerSizeFLFixedObjectClusterdomainrange interpolate uninterpolateclampinputoutputFLFixedObjectCluster0 testSelector expectedFailsFLFixedObjectCluster[ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterk testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassclassFLFixedObjectCluster( testSelector expectedFailsresolveroriginalUserLocalDirFLFixedObjectCluster testSelector expectedFailscommandFLFixedObjectCluster_ testSelector expectedFailsscopeSelectorPresenterFLFixedObjectClusteru testSelector expectedFailsFLFixedObjectCluster1 testSelector expectedFailstestingEnvironmentaClass anotherClassyetAnotherClassyetYetAnotherClassFLFixedObjectCluster  testSelector expectedFailsrootfileSystemModelfileSystemPresenterfilterFLFixedObjectClusterO testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster\ testSelector expectedFails filesystemguidevisitedFLFixedObjectClusterG testSelector expectedFailstext candidatescontext processorstream backWindow1 backWindow2 topMostWindowFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailscanvasshape interactionFLFixedObjectCluster $ testSelector expectedFailsresultbuilderFLFixedObjectCluster testSelector expectedFailsclassnumberOfAnnouncementsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsclassDefinitionFLFixedObjectCluster9 sourceNode startSequencenumArgs propertiestempMappragmasadditionalLiteralscompiledMethodcompilationContext irPrimitiveFLFixedObjectCluster testSelector expectedFailsFLFixedObjectClusterj testSelector expectedFailsexistingstoredmergerFLFixedObjectCluster | testSelector expectedFails slotDisplayFLFixedObjectCluster={ testSelector expectedFailssource selectioncurrentCompletionFLFixedObjectClusterM* testSelector expectedFailstestingEnvironmentexample1 literalArrayselfEvaluatingArray nonSEArray1 nonSEarray2example2empty collectResultwithoutEqualElementswithEqualElementswithCharactersunsortedCollection sortedInAscendingOrderCollectioncollectionNotIncludedremovedCollectionelementInForCopyelementNotInForCopy firstIndex secondIndexreplacementCollection indexArray valueArraynonEmptyMoreThan1ElementsubCollectionNotInreplacementCollectionSameSizeoldSubCollectionnonEmpty1ElementcollectionOfCollection"collectionOfFloatWithEqualElementscollectionWithoutNilduplicateElementcollection5ElementscollectionWith4Elements collectionOfCollectionsOfStringscollectionOfCollectionsOfIntssimpleCollection%stringCollectionWithSameBeginingAnEndcollectionOfFloatrecursiveArrayFLFixedObjectCluster3 commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailspasswordManagerFLFixedObjectCluster} testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparametersToUseconfigurationSelectorformatterClass contextClassFLFixedObjectCluster ; testSelector expectedFailsaPackageDependencyanInternalPackageDependencypackageApackageBFLFixedObjectCluster[parent properties parenthesesreceiverselectorkeywordsPositions argumentssuperOfFLFixedObjectCluster  testSelector expectedFailsparametersToUse ffiLibraryFLFixedObjectCluster[ testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailstestingEnvironmentFLFixedObjectClusterEtallyarrayflagFLWordObjectClusterY!YFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsparserFLFixedObjectCluster8 testSelector expectedFailstestingEnvironment repository directoryFLFixedObjectCluster messageTexttagsignaler signalContexthandlerContext outerContextFLFixedObjectCluster( testSelector expectedFails environmentqueryresult resultItemsfoundSelectorsFLFixedObjectCluster  testSelector expectedFailsmethodNameEditorFLFixedObjectClustermanagerdeferredStartupActions propertiesFLFixedObjectCluster commandLinesessionstdoutstderrFLFixedObjectCluster testSelector expectedFailsparsersubjectFLFixedObjectCluster> testSelector expectedFailstestingEnvironmenttestEnvironmentFLFixedObjectCluster@ testSelector expectedFailsparametersToUseinstancemethodglobalsencoder optimizationextractBlockInTempFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterX testSelector expectedFailsangleFLFixedObjectCluster\ testSelector expectedFailsparsersubjectFLFixedObjectCluster testSelector expectedFailsrulesSelectorPresenterrules rulesByGroupFLFixedObjectCluster testSelector expectedFailscshapesfFLFixedObjectCluster testSelector expectedFailssettingBrowserFLFixedObjectClusterA testSelector expectedFailstestingEnvironmentfullempty collectResultemptyButAllocatedWith20 elementNotIncollectionOfFloatcollectionIncludednonEmpty1elementwithoutEqualElementscollection5ElementscollectionWith3ElementscollectionOfNonIdenticalFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailscompletionClasssystemNavigationfetcherexpectedElementsFLFixedObjectClusterLv1v2FLFixedObjectCluster testSelector expectedFails rectangleFLFixedObjectCluster ? testSelector expectedFailstestingEnvironmentFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster testSelector expectedFailsFLFixedObjectCluster  testSelector expectedFailsFLFixedObjectClusterv testSelector expectedFailsFLFixedObjectClustero testSelector expectedFailsFLSimpleCollectionCluster[w   Y3 e I"  Wb  v   1!A0t B       6  ?   /  + $ H n.$d l _  U$J Fr  m e$4.7 FLDictionaryCollectionCluster#X^    FLSimpleCollectionClusterpJ  e     FLSimpleCollectionClusterFLDictionaryCollectionClusterjFLSubstitutionClusterF(|E5*7#Ι% R#FI;%ӫWw6*4 SM56! qE>͍(/'R2F:jB V*:v%3ݗ! %=Cf+vTh+qCH(Q+{ y,l&,a,>+', ,,eB,L,,I)b,/,+O,I,c%7,5,GFA,E=, /,U,=,/^2,,H ,@ݵ,,+,XF,ԅ*,P,`@,1,6ʵ,D,8}F,O[,[m h,M`V,5j,ܖ,N\Đ,=9,6,D(,,(,*,W,RT,&,y,]A,n,5V,э,=,w,}ȅ,9H,CqL,4x3,/},+N ,!,Ҕ,[,+K,I@,ޠLZ,#2,5U,Q,; <, ,,9T,1,r_,,%,@,A!,}6,|:,b,,:! `,R,U9,W,,o3, ZDa,`,B$ ,"M,VDb,>?,`,4,,,W ,~%,^,,Y%",jO, ,@-X3,,D,قD,FI,,B:,ʥ,$6,̏0,V N,2!(,&,W >,@Y,;̎,qI,I -,}},%,8 ,,),3,04M,&,D92,-M+3,-M,8j,%;,6nǤ,,W\,13,,,ʘ%,<F,xt,h,O ,/,P ,Q,q,9Sƞ,ϓ,3,0%,L5,F,,),,,4Z,,,2,[D 1,,xX,y,J(%_,K23,D ,Y9, ,"@,&n, ,v ,W ,UC,XU,@k,L*,,#,5u;,D(A,Z_,2 b, ,E6,'F8Q,G:,(B,o9,%,H-,+d ,,ЍǏ,&,8,S,3;, M4,y,ܷF,5,N&, - ,>?{,vϳ,FT/,؈! ,4,,/,,,Tʬ,>, %,,,:,PJ,Lf,W=,؏=/,SkI, {,# -~,7yw,Hf,N,@X,l,EP,ס g,*3,5 , i,V,:K,",(,C f,[,3J ,-,J,NTJ,N,b,55c,?#,P] ,ս,l,>,W,7},`CE,GO,:,!,,[EL,,*1,=,N,&UU,N,0˪,"k,X,'W,H{, ,\,P,%,M,t,ۊ0t,#9,Y,_,1W,'UK,!b],;y,q1,:j,s),6B3,PR,,T",k-,!cv,,8E,x,6bg,O9,;6,KN,K,I,GX,M ,<),T=,Ŏ,VҢ,7+,KG,^12,߾;, k,",)Y`)-4'eB+ ,U!8 $N(-ɠH"&E?,Ȑ#"p{O+ Z/(D?""!CFhQ$=i`NsCt< &#&!:_90&&-\"y-_W-DA N(-:ƃ( [*i$$KRM (_@ڴ- %Zk '+ +R- B9& . < L Z-$Z00/0X X X X X //X X X X X X X cўY ,CU  Gv y!í-'; -.i"wF]>$0 9<!=J$U=5)BH*W[C*lD"&:-D#\#:+{U5M? $q'%,>:t$!#X+0(W34{$b<.U'-u%'@ Ef'm'jGO#:"!Y]+X+N7. (###W&J*>3 "Q#8)BC $.$"L!۪c*=Ic-0+*0CQT0 \#/"$B!RL m#'5 dMv2+;.F*} .K26#D%Yq* 0 B*%"%RX7$;:M&7E)!7. &&6$  W#`%"u 5te$-(`% !q)%?//&IY MR )vX!iFmt"Ę.dJ([Z@|2&v)[SmƝ%,"բ&[PϒA&8( L_*BL XK)(H~+'fÆ,~'h)Nf7$& g%m8Dj,>H*H'7!3+,M W%e-7u.%M0z- |++ ;!j-' 7$p.=.#̙ 13#Qf!W.%%</#V(q| .%O.TH"/'w X$,#7-2n+mY%b+g:M!N>e->,Rc*+K,"R$-rTE [ ,$s.| ? D[ԃ'(.,>0-P qͱ7b" <Ƭ&w0s#Q*&!( \)Hv j<"&jNl@,R#*=&G,A,K.4).9" r. TM,- XfF'{,W;*C  .)R"~ FUh: C-P7%UV,!|57F]/+QOIu& Z}(7+{A #*Z5 $3s$^# 1)m ^m!02*$0%avP[$U.Oqx3 3*ӹ*x$$,(G"#w6?!u .)KQ k$\&`ZS"I4Z4 .-Y<w#+oR;Q|ʤ)~*7)8 !ҧE-5K@"[. wGL u%62(FX# -0N(sT<g%A ^1<H#cU'H+r4)-tPTD( ӏ*(!F8@5-F!; g;.O=q|5&YY!J"8J$qA' /v3nP>tNo-DT OҹfI G"`L!R2#>.. .LA#`0 '-H@})X' RN(o$ <iԐ,C{+B*+#@J+ !!R-+kR6j#K$~$+8,,T(E( $R LA'Y/$"B"`OBX,9%*^5iԛ EC$ %,7(4"G^| \B'I+*<?\8t( -> !P?$Ib'߄LTN -fT-SZ- 0////////////Fg'9Y('n!Vcd@H"dԲ>, >tF g, V=$6, <, KYr, , L 2, Gxr, B>p, =S!, K-8*, 8 r, 50'c, ?, 5,, @ZIN, 3r5t?Fr, L', G9'%, @P*, 4wtL$O, BrI, 9#, 6s, S>#, StxA 'v, Cy), L(NJ, B, T;?d, QtU>O, >$K, J/(#C#%~ɫ#.*,5$*&. ZWWr/+&aD+ q+>[VI0 (>!5 'LW"] *%Jw! .w'!FOUU"MY o&s$MV `B,?.]!FPKT*;  }I)$1)\jv{ f'1*;M*SFFL )u:- =). څ @rX aZS% Q"-A(9 &t M$ K4WW2WW3WW+Iʊ+Zr+ 6- 'r%vCݡ$J]8,{?%#(X,M"+0! *Q 5+ ! #U#O+{NC+S$eP*d*}<&&$1$W&*"J,L!$;~#)z |E+!D@"OYo G H A :*J r"N ݂.)6$ !j!$h-Du"& 9@m>&E%/"*xD%D.*C  R%X&k9 R$8@  z(`&*%+Z>հ(q?#-$y'eA"־,Q+ã]*-* p$ڨ{ I.Lt աj[OeDi>GW%L%Vy": o̘2"yV. >/v.7@IQ= t,W;b%#U ./.Q`+92KP'$[-Z+nI f@%#)X-r}O"W#c63@eGQ*+q,(E*! JW. Q+'B_"c> =;-mF3&%T#J PK,:=!)'$2*`%e6j_'8&`b4{(+$Ȥ=%:+qC#Q.M&E&.LY/ b#]*/j'8C-%#),3%x=LYN D818@r )ʗA4!fR*Z lX[R+XSR8WL.s]\XO UDFXGYn ?U. ;SYXTS-0xZW ;WX7T E Zm\_ S2 .B< SWgR~ Si,U +A~;p [P yWY W_ 0rTy4o\m A\3q[ %YL S`!Xf R +PS #TP G[ R  WbWnZqWTpYW  Q X RP-SZ  Q Wy,V? Vx X V fTmp=Z~ *Rk XWz  Y-XDSC|Y z{VXtGR* A 4s XV' 6[ L Y Ww  @I VaXdV  X: PQv \}&UXWnVXGW ~ZeWV MU y Y? )WDVMR .X LV H}T kLY VXZV Y+ V'0 o EQTW Z! iZo WRW" AW1I\))~WW ViWdYnX3X XkWqU  XWNWeWYn Tm Qv & Ut ' gX*0Z 5 Yu WYu Vi/a X}[, d%m YQ_kVV VY #V  ]W^|W D .W>XY\} ~TWlU=h VXWaRk M\Z9ieV 7Y+EWZ@FYzX~ Xw S6vT% E"Sr 8T p S tuSU,V 4\ UX= Z[ ]0W  a LRC6  g XfQXQ WIWY p\_yg]W =TVMh Q G,l] ZcR&WQ Nc$V h[ 0} |U<Q O4R)HUPq >\ UD(W Q \l}2 \\6-X?K\FWmZ JnwSdS yqTZUV  Z[ W5W eXo\Y gR JX)Z SX>YF  RP5 dZS_vW  S~ i5W -WL MoW @RBX~+Z4zB ZSX.VW_VXFWV <AU4 IWydW W_W,X@ ] 3=\_Z *}X~WgXW5Z  T Q U MW tVYWSTXXHVS oRa%S,>Qz *hf oSq RXdrVn{h YhK F\ 8Z\ 4\A Xdr XP ) VM VVWgU z\ S * 4S( WjvWrTPW&ZW Z3L  UUW+Yb Y? L\ F[ <V'^XC 6TK MS ! uZX Z< =[*8DT4 >\p n[T VWS \@ V 5[3 cX( Yu4 o*[ [@ Q@nVXRpZrX.WINWl, +Sn$ [ q  SXcTS$XN *TZ7TsWT[fumzN7YRyV+Y E  W >h [DYpTSO W BZ4 a[ DU;@VW !Y'K~\}VEXAWL !T7WQV z9U 7|T ySjw&Y!LSCo S \_sXc}XD[O[  1Kt2S   ZeZ ) \'W] XX*F[ [VWVrrU Z@ k U V[  ]  CUW]<} \Y o yZn\ /V: XXX3W *  VXX+VgQ {;[IZ CK[(KSyn BZW2)) F[;X\V@"WSj L6V_?T4\_\ ASU<IUz D\6Wo- l[TRciOX\TmK |Z<l  6pL[ &S? V V[ 6Y V K 4 \J _U`Xpn\_X=~YX W/0X WX X WX W//X WX 0/ǘ ;De'5,**J*_XZ$(*?)D!8H>- )(]*T , F9n,  %}">.N$Ӄ)/X/o/S/y/W/Z/K/0//n/4/3/>/V/8/c/$/f/"/m/w/6/@{/r/&/~/G//;/a/g/q/D/(/e/2/{/}/?/I/Q/,/F/-/p/</b/=/k/z/|/h|/P/E/i/s/~/\/1/#/./N/'/x/`/7/H/j//:/t/J}/ /*/B/[/O/!/Y/_/L/M///R/l/]/T//+//v/A///u//d/9//C+(^$K] YBU u %R a#t'~%^HHza4X *[Ma!MM~S8(0k ?(ztgZ,%#e)c$@" "9.C,#.B$qZ93i#-D5$9%j"#'0U/MLd*#k.36= G@%ʢTK ܃")}&,CRc(DX!"Jσ.=-8 W.&6(*#X' $g TDšF8u*O- r#8((;Ӡ$n&(.y_Q c{  3H0 {3b X+.;4(F?(]J FX'A tX afQX a$Dw $k!/I<B8R{(/:.gK(5$U6"V.05U3LPOW7SE]E]E]E]E]E]B8BE]E]FE]E]027E]E]E]E]E]E]E]2VeE]RXU4E]6TD&E]S5E] 7#P *,F1 ,CsA5:‰$6V#(V#W< VX#I8-}C*DŶ  w8 "O7(+C9% 1˳(GP f%x#*mn(Q[8rOa&( -FR J gs*C_1(&V9p| TBG("G8 XFaY_3XaYEXaZXFaZ_X aYW\"Ⱥ.Y(~.<*J;f 2~ \Z'X\L5wx'~:V5-0h*4X y$):,fH6H;XDXFD}GY^E:H-"E FV3G:C@ |EDOMDa %D*CCqOG@ E6MGGHCHFEDz"DCiF;EXCB4!FfHQGCnoEZDCDAEɗEE=ENDCGF߹EƄG#aC!2CkF.CBGE\CUE>G1--E-ED=G5'DSDțEjG$<GQ(D QDK$E$F"/DoH#FِFH <DPGF?E9:D| DCCaCEE,EGIF;DkCGDE_'F nCF ;^F~˘EüEcF<EGaqEsCZDpDDH"CځEwGzC>F"XCEE.F31F4BG-RbCHrDEMYxGhFE cD^3CJDf(GDE~CD~DtC( CODZ;F/ ELFH DPDVE DnGHwGYwEǴF@C[|G@ECijFr+FJ `FHOG!HD]CH9{F F[CNFCET_F,GPG0E4G4DJZG?REGDGE7OF;DlF>FBDQEQDWDFF2EYD(D-GL3dES$DY<FlF!WGnD8FF2+QDCG?EmCgC (D1CEDGW+F+֨G>bE EKD<FÂDCDDDE-RE?GE|:YEgݥCD TFEXC'&CpG EEDjMFtECEF; F\F}GTDIH/DdC;vEsERC=FSDgC|GDHCGGG"@FqClDHFMDGVE ހH4F)DVlG=F5ECG]CI |G[H:[CAGfDu˅FD;DxDEV!E/FH7H0CkxFCΓFEygG,EYMDLGCt28G E&F D<F.(wGW{DE43DEQBCDKFU"wERFCEMD-C:ED!GHED[C;4DHF7lFގH3%F7{D4 F9G4HxEVGGG DD<EQDSE#CN*D=GEcE-EoC^G*H6FwHF=H4YD0IEGCuBF)_EeX7D?DRF[tE  FF8DGTAE7DGCo=NDT;E EzE7CCPEDW.Cj DeG)VDPFF:xCh6H%NG.E EɍE4`EDEsG6R^E#G?CFH "FGb,EޑD@F^NG-C\CVG{)@E*/?D nCpG#EDnFF?CDGGtSHJ FKՄC&G9GlD#CGF۶C)DB(E@OG.FGśCUbFEFR)G|C~*Eb(DKFDFdEYaETQESEH,=+Cw3E<YEC:CVEDDF+ELDCJ#tFk1<F~DUNE+C.DNEFCtE@FeEW;GFrCBGoGD%F"CD]$.E CFH OECVGEG\ǦFǧF#_F;FbGU(`E}H-H@ RCW3OD9FFD:?DT@Cp%GI?G$E0CBFNEIQYC%HE]DD5RsGoG2VGhD/D7FGZ=iEDI, C<F3GlEgDUE8GiDX2 G?E>UdC_WCLGD,GAFDH=GDɥF%DG֕F.(E`LD 0GgCH?C<9CFE$vF}HGH E[:FHDDJCeG"Gk CڀDbD0D'+GMuFQoFvCGzG<DDEOG;F9DE]H\DCFCFu{CJG3E^kC;0FvyF_CH8E*FC1D'F:XCv7 DRD}TGADE=LGPD*=Dl9GFNGJsEE>H)8GKG4FaH?G$D7D-FDqZC\%FD9D.D 'KGMFD7Ex[G}C &CRK#EyGF&DΔFHD?FQJDԸEDD.EmEYD$lGE.EMFWEE&%FsVFCżEFdFQ4HUcFGqGFF+OFFASCL̳D6HGűDmFDGơGfFF1<F?]GDyECEGC5DVGVDlG)F5DDPG'EU8CE+ E2CwD)AG8{GXGG+G] "FTmE"<F1FCE=rE1?DE|F(>F{EDG+ADG:DBDJOD<E\G G=DSE)?FLjF CCsFh#F4PFGC9F;DWNEr#FGBiDZFZFفDWDFoJGJ'FHEG&rFF]RYETF1)F8FKHF$?DPbCTD7TiGyFEl2DF'E سCKD GTDL DņGVHFO9CDGS E*EICGq5fFxPG6GCD_G'jEL>C\D GNHCm2HFNEh FGEPuCMGVG3G, CH#E?GGDA+"D3L<DE0DGFG '"C]EZD!DF9GF;H<WEnֈCNE:E!GhC GG GTGޘDp.GESEL.D݁GVCQGClDiF9vF9wFi(Gp0GD GF|H+dGW!CEtGm 9H+}GG HGG7FF)+FCzfE\!FC8EÛFzףEץGXCDDZ)HQD>IGvD6D62G^NCDDGF[DBFBG/2DFFEE~DDAF8H2H C.EāF.cCOPFFFHCE!DSDݝF*G,CFG(A~CE KGWCFDG`FK/E&D;gC:7@G2^DcFGsGpCKBHH E G%CCFڹF6eD*GEXaEH?C nF?:CZE%G&rFN CK>G  D ũD{F&!GE&FXUDbEEYH1ENFVD]FS!H88FGtCEiEIG DG!FYGD\zHEuHF H5xDEIrHC EfEaF8=FepD֠CG5\D27EPDFGKGGuGlJCyFD&FL-GX EG EC8D'0FAWDkGDP3Eq.C֜D)[E3nEH$W?CfHHCHCHEa[EgG GF#GSsG:2Ge(FVEkCDEED9CID&%E;F.1GE6E JaE߆C9ߌD"C{CgH==FjGѱECSH*˯E'CUlF=؛F``FC5ZH.RD2+E3DrD/aD]GFD+$E4GH lHI]D_F)CrOHG[ FELF- GGBˮG6FD;G< ;EAӶF8>GcD5G0CCD`C6I\GwZF/CFcHA#4F GAC4cC-FEΎCxǾDtEBmGGD%D?FF21E[yE4 EZG_FFGOERiE cG9 F=DvE ?C^GLES#E2!F&F,pD"ND*#DEEEPEJ'CAE*CDGE7GRhDCE'rF6[EG<EvDοD2FD$C/ETFZF*FDCȡF>bGQ=H!0EN$CrG@D5E<Fm'CVxH2DPEdK;GPGC`EC|D )ED(E3AxH>%FIDUE$ G DwO@HBE-C=D)FPDC0GPFyلCX=F%E}6F0CC7,DFGzCFGWC DFn,GrDh!gC+CYX~F6+HF!C CyEKAC%Cs!wEFD7fC EFp8C}eFӋEG%HSDGdFWEG`GSE)F:FsGNG8EzFGG7Ds<DGLGFj$'EE1CG$rGKoHAG Gj#C%C?.GD!FM FR&C?GG"D#.G>GHE{9MEC FڂEzE.D FMD C8cCUGxtDGOMGWNEwQCb&F9D G)Ç Va2*|U$[EO7<VDH&7<%VH(lHH!;7<(l)7<*e&7< 7<#:>7<"L|H.$7<7</7<&IHHH.H#:H!*hHEH7<*eHi HB7<i7<71mHW7<77<!IX7<"17<%o7<H!HHdj rZ $}P)x#w/&E$($>i)Q!\'- mC6@!"6@ ?6@ި6@(]6@l@6@6@6@" 6@!T>"6@Qy6@*6@j6@ Le6@)&56@j6@6@ 6@XBv6@D>6@"6@5*6@;6@*[6@IP6@-6@)O 6@6@6@K6@'V6@)μ6@ 6@'E6@#6@w86@V6@&:6@-ڄ6@,n6@-6@!Q6@lF!6@  6@K(6@$6@"<6@(n6@%6@|6@Mi6@+ 6@-L6@%Z6@I6@,6@,6@6@% r6@ c6@!6@#U6@.6@f6@'NZ6@C<6@!]76@,]6@(*6@6@&@ 6@R06@*M6@>WZ6@AJ6@-Z6@ #6@I6@*T6@Z#6@!726@+t=6@L6@W1f.X QX J?*X R\X Z=^X X &X Z`7|X X &tX #XX  aԯX F(TX 'iX ^X `X X BX ZjNX .ΤX %X  d6X X p"W([X =(T3X iX UjWCFW%X W$ܡX HX  gX XhW9 X 3AA<WW3QX Z X FYW,X X =X ٤X %8X ݢIX êX *2NX @7WdX @ǟX ط X +@iWWI!W(X X $oW4X R1xX 9*BWRX GX W4WJW%X X #fX M.X ]X +*X .WUX {X R?X +SW" X FMQW@əWEɚX  *!X E4X .X V[X ]W(9X X ,X %F-X  W"5X {PX }X <WLEЈX #THW2"X  >X 5X +:W@W0VEWI=X Y@\W~LX  MW X  X   X H`MX xX 6iX PP4#X UkX %X ~,TX X<X qMlX xW8^AX M(X  X k9WGiX  ZX 1X \X .X CW2mX N/WZX MB7W@gtW?X TX YaW'X "WrZX 9X bX HW0pYX  X  RX WbN8X j'X QWX 72W+KX ،X WCX ͸5KX :X QBSX  X 5X X 4&LWױW/ײX MWPBX .) X VWӻ+X gX  71X tX >W8HW?WFWX rX @;\X #&X &C˟W&X tTX 8W,jX ,nX tX S-X >X QNX A?W*X +X 'OX R*)X $JX 6X X "RWʾX -VX 8TWDW:ēW),X  {WH X !WWhW?X  S+X 4dWkoX @X 7QX  DEW X @qWHX [,̫X "47X f٨WZsX MiX -WJdX  aWRkWX LX KX TYvX AX X QuWX 4WMX I%X ?h͡X gWe!WS,X 7ҽX DXfX z&X I&Wy۟X I7MX 1X GX rXX /6/WgWUX .,W&AX FX ؾX ;`X  =W'*FX ɺW(D tX w,X 4?OX EWWOX ]"X lX CW\X V_9LX iZWX ؽ5X  X PD WŰW%X X 7CW?*X N۞X MW@.WѻXX F8X ϱW+4X  WEJX ܢ,X 7o,X  QW@X M)6X  >X Q6S{X eX !X W.UX (X mX eM;W:HX IX W/_X ORW}X  X 5@X DW۠XX Oe X C> X @*X D;X :'X U8X L$0WAdWsW7X R)X GW X 7BX 1X k*fW X "EX D"M9X ՅWҭ~W W(X :WX X ?X G8W@P WL X  X mWD:W(hW'+WfW^WidX > *WTAeW?X ,aZX WU0%]W;g5X #BWY*֥W hX  *dX KX :KWT`X ΩeX Ǔ"X ΫhX SDX NAX kX ÁX Y!/X 0EX L X W=W95N^W*N`X 'X Vm:ZX ,zX 4SX  /#X X ?X .W%iX qWHVW1DX )kX (X G9WRrX W'ҊX 6%X WW=W&W7JX PߕWR@X "X  "X OTWW0LWX R_yX }X C%'X X !8X /5IX Z WJq wX dX  W3>gWX 2FX qWˬX WX I*X )KX ˵X WUH''WpYFX X /hX X JAW.W_WIMW!X g1X BsX ;X  &jW1nW2lqX 5WEX )GPcX > dWscX 4X 8XFWQijX M WWWUeW"JJ"W-W2[X XWڑX WWFX < :W4"X %;uX SWX UWhUW$08WΗ"X Y,X ]iX SΖX ו)X Nm"xX ܧuX @)XW)@X QR1X <'`X 'bWX X k$X AW /fX =hW4lX ǩ2=X H.X 9O?X ZiOwX DX 7nX X 6MX >WZIIX ;X sX JAX SX IX  X ,X '#X "rX "uX X X sX 2X  8FX J YX GW(}X QW1`,X TX *FX 6:X kWX &W1'X WzPX sW!<X X TtX 1eWhX cJX 9fƼWPX W$2X =#X zUSX HUTWhX @UVW(X #g0X RA/W<X WFX 0%,X =WX AX >X X OJ*-W8x@LX =WݓaWYW4X b X  pWJX +=W)SX J}X "SX KX >X SϫWHX >X  WX ٪9gX /\ZW1X ZW-W8X !@W[<GRX [@GUX X6WWu3DX T~X  ,X HXb<X hLWX HX ҩ#X T4X QX CX ލX "X žX Yr7X  X {BX :XDX QX f@X , X $X 5&X XdX !X oX WʨX &8X {P(X |P)X #P-X *lX X #X  #X *WS4aWX ֻUX UX  }X ExWݰuX  IW;X =ZX FX ȢX YX rX FX W WM X cX gZ*X  y$WX 5:X 5;X 6 2X X W4X $WX WP_2X 20X  X X !ӔW7X P.X 7>2X 65X W(bX  w4^WA PX ĀX X B`X MX X Z͈X 3W3WUmBX jWRW  X LX TDX V#X X ^Wۙ(X W/*X aX $eX 9CgX 6ZX OWX X  2X {CrX X;W;*X  X 4fWTW='X Wd͉WX X WPSW)*WX JWX Z<]X X ;X 7L$0X R;X WW;*W*WW>X CmX W7X X OW #@X 4Q^X RX X 2LX >ιX ǔ-X $9X CWPX 0WF/X .uxX % {X  4X 6FE;X / WWՂX ,X Ǡ3X X O'X 4SaX ..WiX X !3X VX ҪX +X X NX 6X !yFX O\X VW(+<X ȳX :kX ]W<MW AX  )X ә!X BX :MX SoSdX / /X  DX kX VX  WI <X 2rX mVMX uwW̊*X W4-X yWRX O" X  X +:X DTX MX MX \X WX N+Wq.$X .C>X :X '3@X % 9X IgDWVX A X IfX nX O*X  -X X X jЖX -X .KX '(X X  hW<X )rWW[X Fw/ X KX "OX X SH.X sY2W#X ؔX DWe X !PX 1MwWX /(X ɮX ZWɢX уOX WHX /:X CTWX hW&X _=WbZWJ X  X lX ޭX FWEbEX 3"X +C@X CAX :*X ӺX OˢW@*W”Y4X $X SWX R$X -,_WEX *X >gX =$WX zX W KX X  GwWK(W?X ?X X WX X lVWdWBѩX 9WE X ?W5IW=X DSX 0TX ݔTWT|X  w&X tX GlNX XsNX 5WҚW%X )X ӤX X &yIX PX j'SWW+>4zX 8X L,X %=IW7X ͭX FX E $X EW )W%iX ?WtX ;_7^X P3X  WX KWO[X "eAX X 9i΃X `ƤX X IT X 'W'W080X 82Wk0WQW(X X AWDH nX c(WX =HW2X %X C5X sW2$W3BX W6WX т"X A,PX (W <X 1y+_X  WX X ,,X X  %gX %}X .W+2rX 2uX C GX S JX @7;2WX X XX D/W׹X 4XX ֺ<X "5)X 8X !W31X ո1W1X W?:jX W$WX X T/+X M?X &W+X ۩}X ղ.X S"0X V#X lDX !`&X $AmX  ZW%eX {5W5{ X W.EX Q>W+VX QvX RߝX w"WX 0X ZD%X -ÕWX(DX n'X ,-8X X 75"X 5(WYJX i)X %:cX  X 2X ?CeX X=%X  WɅSWRWX P')X ټ7X 7X Z~X  qX .$X .(X MW X C/X &X ȁX BzX 8DX 8X ?ߡX 7'WX NEX  "X kWTSIWANjX 9%X :%X 4NqX  |X ;X :WHX  YRX *X =WE=X WIFX TEX 1X @1X  S WX X B@X  lX 6W+X 0W̄WUX HWUB X P[WS^X ͐FX IaWX FW=$pX @WXOX WiDsX }X /ԠWD>X :@WlWRISW6?W"VX pŌX rAX X DTX !Wx:X 8WP"X cX ,kW,nW#8WX <HW ' WXX rW IX X Ҏ@WFX GFX 9W*X 0SRX DWZ:X rOX 9OW$TWǒX HlX E W?+WAX љ(MX ; WZX WWZEX ʕZX  >X ,vzX %X 1X X :2^X 0dX L=X )9X o@X QBX ;X !W0X J4 X ?[X ,W>*,X :X X X @O%0WCF8X X ھ&WTWB+X ';X !X 3 vX &X X W X ) W0MX W!X  #W8y$W([WO4X 4X =WX EV=X  X X X rNX 5ϻW+!WX Ԯ#X ɑsWFX (X kX EQX 5W(W5IX V5WcX *6X 'iW*<W$aX  CW!X -X .X ϟV3X Y X %'X ;a-%W=X >X  ޛX L:6WTP2W>X }.W8)X J.WG?X BqW%϶X 'X m7X EHW\WȉlX  .oWIW9qBIW6E X 8OX  O WBGbW"X bX CX :gWٙX BUNX ӧ OW-ȵW4MX 3W]їX N2WX  l6X LUޜX X [{IX O2X PX !X +9SW"X X  ˍX CHWX @X eW MfX X ,c;X *ݪW1]W!bX BWJW6WX <WEuUX AMUW0?X <0X X EzX $|X D(Wͥ8X S)IX )X kX hoX "#/X q1X V#WlX <*X Ŝ;PX  /#X W*,X dlWIX ߟX 8X JZ4X {X  <W.7X 8-W)X ۴ʲW2X I8X Og'@X YlX  XX MUX IrX / .dX  hX &X *TWNX 9XLX JX [̡X W6 X  G X X aW5-X NWCyX X BX ) X DZWSX 8X ;76X :AX L \WIX Ka͗W05X EX mX NX D[X DdیX ےX !7BX GX GX :XX X  X rX WWKRW]K-X "X XWhTUX  QWU!X /W%X ZX X YW NX 6q:X ? : X 4 [=W_!X X ?GX ?IX cOW7X 7OX >W-<W(}X 1X X  X h>oX vX  X HX \$X X X ,ܽX AYX QX R X W9FXW46WG!X mBX 27X |X  6X  XX ^PX ,X d<X ;X `X ]uX DB$X WͧiX W09X ?X L?W1IW4:;X  WIW8X ##X W>LUW.\X QX 1WܥɯX <5X W5X #`qX 8W WuߊX 6UX @xX WW$WdW$X K5X YEX 3W66X  X EWsX 8X  ޻X X NWY—X   WdX gX X X XWC45X 7[X A_W,lX םX 1UX NaW>X X !CX  h1X \5X BjX I.4W(&\W&^X 0X =CWDX X { W NX (X (X ZX ? mX  oX 1AX =X "X  X  SWoX 'W<X ×7X <WtX  $W0X X B=X *OX ˏMX sEW5X xVX 31W))X :)X 8=WU+X /X^X J\X  <8X $X X WMUX Dy1X gX %W<XX RX #.X  ,BWWU%*X &W#X #X @X  4X /W<(6X Ф(7X Z}X 8W5WX }X  RX W& X P+CX KX X γӯWϼ/eX PVW<#X {X ˀYX QWEWUX  ,WX GX [9X P8[ X $>2-W2.X ډWnX X ?X ?X O|X ,W3X /0X ,WJ_LX ALX :KWHiWX ZNX ޤX щX 8-X QNX W-6W0_ X T$X :ƳX 2.X 'ZX &W8?WAYWPYWFWlA'W?W=YW4=\X X )X kX X X IyWW~~X  @DX ԡ X <}X NX dX  X 3dX \X NV.X X B=cW2X 1WWƛƲX ?gWQ W,X S+ X ͺ/X ˺_WϤ0zWYX +X FV(X IW[X 5X -aX Me X Ǝ>W m X FKIWG+"X *"W.38W9/X RPX YYX $mX ׁ'WX 68X ֵ8W֞5W?8X X4X X4WK=X 9cWѼW?X )LX &5X .P X  ,W`.X EX 6OX 7X .YX #X ч#W,X X yW!W1PX X ѳ>X &.WHW's6W`SWJmX X+W"X DWyWSX  ?X ȟX ˦X ½X OWBކX W=y*|X .X <5;9X Y X GW3X S}lX Wi X CWB@[X <X $X ! X !X *c1X X pJX "X $X *eGNX EX ݖX 3:lX ZX ǢX MLuX GX wX vX f9X "\W7X :X 9*}X ^X #X 4WÞWDX [X DX 1VX tX X zW 0HWiWSN}X 0SX  {SW5*WPX G X ¾X Xe?X 4PX HRW?&X !(WgX !X 5WiX X "IX gW9X ^X W* W.SX ZX ߦ3X  qX OWIIX Z!X AX ڵOX R2WڸSX Z-lX IN|X  ]EX 'X >ӊX ɷW:<'1X ^W(*8W$X ̽X BX S2yWKX /W)E&zW9X SWVPLX wX <$!X $#W4UX Q.X X -)Xb<) X 9W,fWAHgW*X <[WR3WdDzX /cUWT5#X FcX EX WVX  W3WŐW ŕX &X )X KW&XFصX -X (|W)CW8WV9W6X lW>'@W X X yYW?X  X Y=X 9TW9W9X K<[)X ڢWڦW*UVC\?6W*ׅ++&%Q'YJ-\&l ^ +9l.,IҦCA,X4($i\- C@b00 I0?1& )v(,N=&B'"~2!j *6O,1w3] CD-ѣ \&,Lo'M 5Kw:,R !*Z)RV%r .-D_+"--$.$ 0-BP*C,%bo ?u!3~YM,n#"EA&'JYU%<"~&kSYn!4+% ?XC)-?V'-|9t-/ |,K %~?50Si$q7  +{D +c!1'$e+*}i$'U!uZ JU·*NVſ"^|ETn4!3*&PmY&$7%2x*BD1 r  _7WP#s! )wU#-f -$yW#ع=]M$Em+.0*f U.Y.#&3"& E)z*& %/9 9$8&X,$+$;@1<2ٮ}0FY%H3%+,̅,@SA +($K9G$ 5%!'rCh` `4QU  ΐ4QUp4YO4h<4Z<\N4TB`24] KLRRc4ROBV4V\FζH4XKjҏ4Ul7;4[gA&g4YP;4SW+ID4ZZF$R4\H,Җl4VkOН4VH6r0Ъ4R+HUсq4S:1%4[o5DI4VC^4XwF}B&^4TgH C=n4R064ZIl4ZCrm4TYO9tT4[@W&4[<'4RSv W4X<9Ws4YB 4W3@hx%4[3^4ZC  4XEFdzӮo4\=(@4WTLX'Up4SL̩;4R6Z d4Q1uL4TInn̈b4WzDH4STFκb4ZKQ4S3"Am34VA8̽:4Wy=>e4SwAϵ4V:d 4X1tz4YpQ9Pһ4RJ3_K4R;nFЎ*4UfV{4SmMH#4RKRn4WFfw4Y@;4W)W (4X5Dvz4Y7fHpq4S+DA4T6\4UNL΅4XLMΆ4V8H`4V?и4RUGͫ4QCoe4XJP,u4RP`K4Z F5g4[Q b4[Tc4V3|Z\4T{Tͣ4XQ4YM9`4W5:am4TF,Ҭ4U:=}4ZA|/4XYFOF4TW8a}ΰ4Z1Q'ѹ^4TD5c4W=6i4S:84X3L$4Q22УN4\PCn4U-FKsϿt4TIK4[=VͮR4TBQm4] Q6o;4XR.4YEBi4Z0 4UGx (4[3+:c4R(RE"4RE%.4R3)VZ4]3esҾ4WNRί4Y92Bҍ4R=K' 4SX7 А4TF:4ZmQ2Β4Sc@ B4WIH4Ye8I.4Y]PU=4WS2*84S;dwT4T%R`L f4UEV#4Y:4X7I)!4YKB=о4\4pV4X@Nd>24[85ϡ4Q8Ϣp4Y=4 ?j4RLl,4RNmz4X[5v$g4RF`w%4ZTUM\4W2]4TK4QhPSB4RH5,9њp4URxϬ4V!JxH54V?" 4WbM"^ҮC4ZSNт4U>;4SRM ̆$4SU|U4\c3}VL4[TKj4U\Bk4\U:4R8:gΊ4W2KgG4\8̺4W<;ϣ4T8U+)D4RRB 4TsAC 4Z'Ax4\2k4\H:^4QJY7;4Z544s4TV5(4T =)4T 44VU;Ed4QNg4SJ4V}H44ZP4UAQ4U9R4QrQ6[4RC4SU<ZF4U=N4V19GЗK4SIl4TIq4ZI 4V4i&4T*R^j'4RR|^4Q<V4Yf8Z%A"4ZBWou} 4X{@t&"P 4S1AS4[3Y=4U5 ͟z4XHѱ4R,5҃c4ZVSe3=4UGfb4ZQ8m4S2`4VpL54V>JQͳO4\q4E-4V?62\Ҩ'4R;O_$Y4VL!v4V_94[0dym4\8J%4S>4p`R4V Kϙ4VM24R_0m[)4U|JiH4R:24XAGO4ZW-Iӂ4UZJ$5I4T^J"n.4UI{ 4Q?)̘=4V"J>p4RRӧj4S]>C4W0*4SaV<NÛo4ZF?4XE3}4[8O`A4\Kp64\Pq74QS$4ZO4T S_y 4X<cy4W@2P 4\2t}4X 5{4[@e+4YII}ч4RTIN4W/>lv~4ZOT:qa4VNA84WO 4\F3ѥ4W2R4]Ǵ4SMcKAχ4VrEeӄ4YdHtͤ4X2`7҉4XAL8Ҋ4Qw2e4\GyWСQ4[dV)%k4V3N D4TC%4Z=D͗V4X:Lf4TqAя4[ISGZ4QI}p.y4XI?`ϟF4WRV :4\= Y64\&M",b4XIoMtQ4W0NuR4SJ=xBH34SeM4ShS4Rx@zlͥ4TM YF4[;Sy9i4R5Q<EC 4[6-4XG8+4XHD,4SBu4R@DB,c4XF2y~64ZE&%CX4[~DYE4\<.q ̒4\9Su4R5$Ϟ4X:Gͼ4S9.X4XA1C4YVS4S<ҁ4\J:hа 4U2Hwmt4VDbU4X)7rb4[ @reͰ74WiNCG͈d4RZH]4\%L[s4UpӞ4Y.6n4TLROr4VeL%4WvByσ4SM*C4]I)͛4VF84R82#4WCdZS+4V3UҤ4XS-Ѫk4W:{ '4W+S&O4U33)q4Z=E;$4Yr4.J4SC'qϯ4Vm@ 4U(VwZ4Q3xT4QUT4UCKӁ4TUoЬ4WWAdUo4Q>&oG4UV?ω4\^L$254RAC[ia4\w8\jD4Ub5 ϥ4U_8^Uw4X>5*Aqy4\<3[4RKj.4RmB--w4U=V)N4\=i4T.RGΫ4\3j&  4V>U]4RQ^~F4ZHJ\2T`4Q7̌4Tl;@>4V4f94[I 4SKkoxL4Q48/k4ZM?KW4\fC"ct4\O?96@ 4SL Θ4U2B+4YIDNѡ4WC+px4S8k4ROZ4TITZ4TE[4[P-wѲ/4UF.҅O4[DDh l4ZV1c?4ZqKv84WK͵34Q1{S4[Fir4V8L+{4V,VP4V4;fjl=4TV=WO4Q3W!4\+WJf=д4Z?D>c4ZB,4XP4zΙ4[H@`4RPoѠP4V6I4RW@^4\1wE4TU>4RdPш4[7.{͡4ZUI4[H=X4U2%K 4]0%Qμ4UNHώ!4T@ 0 4UK Ϗ4TO 1 4TX;.5y4W:pF.4WFPG4UVwE4QBc.T4YtEq4WTVJe4YSMfrQ4\5Q4\P04\27l@D4SIu4WC<_4[Oе4\I^<4RuU_Ӛ74Z04R4D<}|lB4R6JP4UTD4\4sς4TG*Ӵ4]DS Ю{4Y6J4[E g4QL2O̢b4RTF"4Z;P+4T9:4RPѶ4RJѷ 4YU\Α4X9>K|ӛ}4Y=](?@4SE4#̝04Q?m^4[aH4WNhЈT4Z=#4AS4\94WPJ`|4TKcd2@a4U B̓V4RPbs94X!UO|y4Y>814ZHIx4V6 0S4YD}4QsH4W6$4Y UϷU4ZK^}DH4Y>S1[/4W O<9M4RCZ4SY7)&4SOc<64YP4\;f64TQu4[A?U%O4]3-Ӏ4YFjG4Y&4Y4Z%AT+4TtRW[Ή14\dAjf4U1_4TvB<*4W~2wbd"4VOp4QTWe4[F<]u 4Y@eыY4R>Fϑr4UHT$ϒ4WSPPc4X8w 24V1|О4UU͉ 4QV#{g4SxU s4[zNmv4T:~̤X4Tj={̥Q4[G3.gs4\#1-Ѻ4SR4VV`_4T9W:4T=34Y:Fҳq4[4[͝=4W>dѯ4X9xu4Q0D4[%D-%4TzIp^΍94SAX4[P5bzl4\KEN4QWX14Y:_FCt4U}L4[;#Ϻ4USE΃$4YPAS̎4QtL Е4X>C}a4ZiBD4[2N 04[;̟4Y1>'94Y1(Ӱh4R>4S_24XTso A4Y>AЭ4YYPe͞J4WEi?4Y\@ 6M4SUGk-4UGLM4QB1 ̗4U< 4U04T3M4U@,]54U7}4R14YUi4WTe4ULs.s4TJ!=4VT`ҙ4WOO*4W9 4ZAPϊ4\:P,ͭ4WSuJ i4RJmW+4V5R e4WXE#Ѥ4RGOO4Y9Ed 4[?K|TY4Ro<\n<4Q9kx{4\Cz4[;dx4T?1*1f4[:,b.N4WKEM4Y6p4YG 3L44YKW4M 4W>uΣ4YF;f|Q4UJb4UPHc 4Z"1C й4V*54[;/d4[F1n4W^KHKW4\*@ut4]V%4R2>{G4YN50_̵4ZE6*04VQw7+!4RTc; 4RT|<4Y*>~4RX:oNu4ST\Pp4VTR HΧ4Rl12C4SPEE4W 0G4[O>̯4Z >jщr4VDUъ4\0H@a%4T[5o]Lw4YCf624SKUgI4T!L0h4VB#324QT7[U4S*DP";34T>,4U>E y4[0Vf}4\mE&4XFg04QIZXaҿZ4Sn>Zb54Vg7-Б4W2]4[2A=y,4Z2 Γ4ZR(Δe4R:FY'&%4U4)'4\=_ͺ4W,?ͻ4XHJ4YC>S4VP4VD)"4[vO]΋4XQh4RB̔a4S40kU4W0J_lx24UqG̣4X4C/4X6X4S1l?S4[SF'[(Q4Wc2>4Z34!4ZA:M<4\Ie<4Ua7 wv4Y4!I4RK0Ѽ4[1xyё4\QKl2ZC4\S:r3[#4R; n4ZGW3x4Z=X5]4Z|HGϤ4TCD|c4[L4RGsIF\4RT! 4Xa1y>_4YWRxxΪ4W:5\h4X? r4X*=9{j4UiF`w4SF((/4\MbΟX4UVT>kẂ4] L-*4R:44SrL0tWr4Z.9Ns4R.@i}4[8Ф4U 9;҄'4SPC %4RH{nim-4[14VJ1 Y4TT Ξ`4YC0tҩ]4W121w4VWo4XHPh4XQQi4]&9PM4YQ 4Q?RH4U 5Ћ4Z<+ 4Vc3/q4\2pZғ*4YNS4ZtUw _4U0;4YMN-Ш4V0U24Wp:q4S4^aQ4ZLE^4T?<8V4]P<hW4\I=4QIQ`4QyN4U6H#қ4[6Ot4Y5NW4TL5 44X3X4T5ό-4ZClw4UB0"4Q:I^4RWP_:%4ZHT4ZFRzgͶ/4Rw6hͷ4Xv9P̛4TKl\4[?Q4XMt44R2<S"4RG4ZWVVv4V.MgЇ4T9J4TNd4W;Le>4YE`Mf?4Z2RWT4R8rf4U?A R4U@;mVm4XG$4WKn4ROr;lx4ZO"w4R5<n4S~2d4WC 9T4Z&A|W4SRҕ4R4yl\4S<  e4[Qgv@Щy4QBa̅&4YD ?Q4SG8ε4R4@Nм4QL<C4S|<R\4YBOLzP4[FOR 24V)E 4T0-jQ4]S4VNtO4[US[4[C@84]JcͱY4WC?4XeEs4SGSUМ4SIg4X0BX4Q@ͨ4Z?I(4R @kz4VC/4\x8!/04SdN&V4T`B@ӟf4ZR4VV/rѝ4QCuzK4Q:\{L4ZGJΩ4UEiW*4XW;Q34X4MZ4[2i4W%H!Q̖I4Z;R4Wj1db4U@4VJIO4TU#fq'4T7$gr4TTO_t4V#1 ӹj4\V9Г4Z[6Дh4T>aϗ[4X5m4U/PB̞4\V@k4\V8"y4YF@ұ#4Y5Ҳd4\Oу|4TEuHF4R D 4W:}4R5k|4Y>t̻4Y@A4Z]C4\9L4X?rQi4[4:ҥ4T6:y4U3E/D94T3< 4RQ74ZA;Ӹ4TL$<4YG<ѳ4WG]X44WQY5%4X8'14T:>4URi~4\Hhӭ"4\1,n[4VL{4R1̼4UINDHo 4Z0IN)4WSӣ4Z>Ghz4T9vϳ4R<ϴ 4T2!S4UM>.4R;r4V58\I 4Q5=^4Q7Ќ4Q6^Ѝ4U;=>y4V|;<'i4QR44Ys=Hs4X3<It4U#VHӕ{4W5Ua4SO+̙ 4RHW Ρ4RT;Hπ4Xq04Tb2"4UQ5zyD4\2;4STT4S@U54SU n7Ѕ4VD'\m4Y;*_ӽ4XU4[JyuOd4V{7'Ѣ?4\oAX{l4\Nd4Rp1>PHӵ4\SO4TR}4UD4]#8@4Y7n̚4ZTYzq4RF7ө4YAmfx4UM6Zr4TUbІ4VS0F4V^RG54R^B4\0Vϛ4[TϜ_4W?p@4XOpv4X24$m4U :?Jl4Y;#o4Zd>v4S 7<4RJ7f4Q;Ѯ_4S/KW:4\5Dr/`4WmC 4\!0Bh4YUl4RAc.,4X4[P4V6 +(\4\OI'$4QW4V3bv)4Y6'h4]!OU4\`6,D͸R4\8"|lm4R40A4XO<Ϫ4XQ=ϫ'4SB Q$4UD- 4TWMRp4YcJ{~r4Y?}Q.4R5Ale%4W1(Л4VI4[8BҢ4W5fxz4Q~=eY͏U4Y/?u9Ѧ4Q4M4\Tge4T\5l(bH4\TV*cS4[OP4Q=.;94SM!ͦ4YjN94VHTP[04W!01G/4Xm0:4W @<Ҙ4YxDPp4YKJH4R5^K]4T=Q%^4WC$4Z8T4U:ZӬ|4[RP4RBg_ЫM4Y6Ґt4QAk4YDM7U14U!OIU4\gR}i.4Tu@jAT4\<e(4['E94Q5i;74YA*4VṈ4RQS̲4XFD>S4XB&=4T6KD7*NH4ZN,|4\I34W2q4QNpi4YKFHD4Y0L4RHk4Uj0j%f4RB+&=4W=a̦4ZCxJ4ZG4ZE%uT_4Y!7*/Ж4Y= ̹4Z4>4VYOq4VK@cr4Z;K}4ZD4WH|4SG4\B ҵj4XQ9Ѱ14TD#҂O4Y5uw24[L2$L lc4ZOL4Zx75yTBM4V:?П^4VK@Р4[P Q4WJ7#h4\X;4WGJc͒4V2EЄ-4\4Df(F4TV4S^?{ϻ84\1E99$a4YiMA)'4WN4YLӱ4YBiM4UQ>4U?14WFcN̾U4Tf0nCp4Y7kp4[x2cӦ4[4qHt4WK2Fw4Y{A4T@b{]4Vx; ,4VSTC4S:Dy4TV-e\в4Y7R~4VU #<4\Nr4ZMP4WHqo4UVi>4RP<4Si8)T4U>Amt4SK@4V?V6N4S?MbӲ4SG$lq4V1zхA4RBU#/Ͼj4TJ^"λ4[_8ϋ4WV344TH/64YMF4X084W4Ei4V334](Ii!4Wu>(̀4ZI;Y.Ҽ4[:gVφ4QO{҇"4W:RiЏ34XVfP$4Su9i]4ZE#b4[Q34QoA9F^4XIY=4Zy8:N4Z>FD4VvCcϨ4RKCE E4[[4Cr:4YIs4[E,k͕4TH=y̪4TI@̫4\V X4Q9л4\?d4YJDov84Qi@ 4X$FG!J4[2J4XE 4UoJD}}D4XM84V6K| 4V7U0 64S#U^vο4W;BJB4Y`2co4ZF*"4QTg4S8a4VV!F5E4[U.~ 4\V/4\Dv͖J4WO}4Ur>L7UP>4WS84UJFNγ4\:}3o4TP074VKҎ4WV;ZrкJ4\jK>m;t4Q?4Rn<]-4RJW4Sl2o+4\SD4[7&4\tW4VFT-4QACw4T9"+G4SEmm4WEVT=Ψ4VLLӶo4UB\4U0Q4Q;X4TQC[4Wa8+}s4Y)Vt̊x4UDhӑ,4]*A+)7|4WZVU[p1?4\MTJhm4ZQa:4W]M4W_L4W3Ӫ4ZO`_4Y"N@14[V6k4S5L!4UnF̶4XEm.4[RDΕG4W$RA>4ROww 4YJvӜ 4Y7py4S>>~ћ[4\5Z`q4RUBSj0xX4WU?]I4YHKY`4TMn1̰^4W< -04WkST4SC,g4\Y1 5E4Y2Q[4V<^@BS4VjSEңk4VOBS4Y35Lэ4V8]4RjQϔx4T?*Nsr4]?͋4Xj:c84RKF4R2H4R=*a~Ϯ4X1B0Ұ4Y4Ѐg4ZN7B/΁4XAOC0΂t4R;L_oO64T-Ft<4Z I74]+9s@=R4]R'Π4[L4[t?Z4\z>IqUS4UO 2;̧4WIS_4W}Nl+.4SKLYQґ4\4И4S04t!4Z8Y64SM0Η44R>)4R~2a4T3Apf4S Qjʹ&4XyB2u4T,2ϧ4VXUn?4[iC*iD&4ZpAA3xS4U3)n4T2Mϼ4[LH/[4S?qSӌg4V;ETӍ4VZ8T#+4U 5GH"s4\H5|Q4S%4R<N}~4RT`c4U?<Өr4[HI44Z@jg̡4\sG7U'4\284ZsSf/4QVag4WL4Y}OJ24QGMҭu4[J5 Xρ4US  84QD,W4V;R4RDO,̬4U`Qur-4[>14RFLk 4Z*>et804SG/Ϡ4[1&M4XoVQ(4W6G Ew4WM4SN1j4[L ~4UO-϶m4TP-J4[EzKӆ4TPE(,c $T)|,&3"!)&2Fh)ACZ&+ ("[!<QE6v&q=-d_'O#0y#S(a(*9[)!@'j'o w ,)[+WVd,5`%@I(6 #R-(_!E7K*1 ~B _*0)< ,qvP\!y$`,=Hv( uX%L8|&T  a0 a\Y(-u J !Km+x ,Z$GtŷN-&,QU'hkZWd3uyf'%)-#1 lOVY)U  'H*X/Y m$H+'4'D&/7,XiW2XiWtXiWtXiWtXiWqXiWt[XiWXiWXiWXiWrXiWt}XiWXiWuXiWXiWs-XiWtXiWsbXiWXiWs(XiWu~lXaW?_XiWv{WW-߀z{XiW-XiWtXiW6XiWXiWqXiWqeXiWrXiWvp{X`W ad'XiWuXiWuXiWXiWrXiWtXiWs+XiWsXiWspXiW|WWhXiWtjXiWqXiWqXiWslXiWZXiW(XiWXiWtXiWtXiWXiWtXiWv XiWCXiWsqXiWv2XiWuXiW"XiWuXiWYXiWrXiWqxXiWs5XiWqfXiWqXiWtXiWXiWsXiWqjXiWsXiWXiWuXiWsTXiWXiWtXiWt#XiWXiWriXiWQXiWuXiWsnXiWXiWqXiWtXiWsXiWrXiWtXiWtXiWtFXiWsXiWXiWuzXiWsaXiWszWW-߀z{XiWrXiWrXiWqXiWXiW\XiW XiW}vX W"߀ IXiWsDXiWXiWtXiWrXiWrXiWu(XiWsXiW!XiWAXiWs9XiWuXiWt_XiWqXiWNXiWtBXiWtXiW~XiWCXiWuXiWXiWtXiW2x3 dX?߀XiWttXiWv\XiWsXiWsEXiWuXiWrOXiWIXiWXiWt%XiWqXiWXiWXiWXiW?XiWs,XiWsXiWu"XiWrXiW|XiW+XiWtnXiW1XiWuqXiWqXiWrXiWsXiWrxXiWxX W?XiWtXiWrXiWRXiWr4XiWsuXiWrXiWqXiWrXiW XiWtXiWsXiWsrXiWtzXiWXiWrXiWDXiWrXiWt\XiWvKx.WX {wWXwX}W?XiW<XiWtXiWr]XiWr:XiWs<XiWrXiWXiWqXiWuXiWvXXiWs"XiWukXiWv XiWvhXiWXiWXiWv:XiWrzVWX _XiWv6|:WX&&XiWvXiWvcXiWXiWXiWrXiWqXiW$XiW,XiWXiWtXiWXiWt,XiWtXiWvTXiWtXiWqXiWsXiWv0XiWuXiWtXiWrXiWuXiWrVXiWu)XiW@XiWsKXiWXiWrbXiWXiWqXiWsXiWtXiWXiWuEXiWqXiWuXiWuXiWXiWXiW"XiW1XiWswXiWtXiW XiWsXiWXiWtwLWWO߀ I I@@XiWXiWXiWudXiWqXiWs{XiWqXiWHXiWv?XiWrXiWsXiWtQXiW0XiWsXiWsXiWuXXiWtXiWCXiWrlXiWXiW^XiWsXEWXXiWqyXiWr XiWuXiWtXiWsXiWrXiWMXiWv"XiWs[XiWrhXiWsXiWr\XiWqXiW-XiWtLXiWxWX 7d';XiWqXiWtXiWu1XiWsXiWsXiW,XiWXiWrXiWqXiWs>XiWs;XiWXiWsXiWXiWrXiWtXiWqXiWrDXiWsXiWt;XiWrXiWtXiWsfXiWtXiWt-XiWroXiWr$XiWu\XiWrXiWjXiWtXiWuFXiWtmXiWsXiWuXiWs}XX XiWtXiWtoXiWXiWXiWvkXiWv>~ XFUXiWuRXiWqXiWXiWqxWX ?߀XiWXiWXiW{WW߀XiWXiW}X}X ab߀XiWrdXiWXiWtXiWu}XX Pc@@XiWuXiWrXiWt|XX Pc@@XiW XiWTXiWXiWrXiW*XiWuXiWuwXiWr XiWuXiWuXiWrcXiWoXiWsIXiWqXiWrXiWumXiWqXiWuXiWsXiWrXiWrXiWXiWsXiWtXiWvXiWqXiWzXiWrXiWsXiWTXiWXiWtXiWuXiWu+XiWtXXiWkXiWsXiWqXiWtXiWuKXiWsXiWXiWrYXiWsyXiWXiW+XiWXiWszXiWu3XiWsXiWsXiWXiWXiWtXiWXiWvXiWXiWrXiWqXiWqXiWuXiWrXiWsoXiWqXiW*~X(X ߀?XiWqlXiWrXiW XiWrXiWs!XiWsLXiWvXiWs8XiWqzXiWq~!XWXK  LX XiWt4XiWqbwWW??XiWrXiWrXiWqXiWXiWtXiWv[XiWsXiWsXiWrZXiWeXiWqXiWMXiWvgXiWXiWtiXiWrXiWtXiWrXiWsUXiWrXiWtXiWqXiWXiWXiW{XiWuXiWt&XiWrXiWtXiWsXiWrXiWrXiWXiWvFXiWtXiWsXiWuZXiWu`XiWqmXiWpXiWrXiWrXiWu4XiWqXiWqXiWGXiWXiWqXiWs2XiWv<XiWXiWty{/WWd'XiWtcXiWrXiW?XiWtXiWv!}aWX11XiWXiWXiWuXiWXiWXiWuXiWt XiWXiW%XiWsXiWDXiWvDXiWqXiWuGXiWrXiWXiWqXiWXiWueXiW;XiWsMXiWjXiWrxWWbXiWrIXiWunXiWuXiWsx7WXXiWtXiWJXiWtpXiWs XiWs XiW%XiWtXiWXiWuXiWAXiWrXiWtXiWrXiWeXiWqoXiWXiWrXiWXiWqtXiWyXiWr(XiWrXiWtXiWvfXiWq~XiWsXiWXiWXiWu-XiWYwWX bXiWt.XiWKXiWr>XiWqXiWqXiWt*XiW=XiWsXiWVXiWvSXiWqXiWQXiWrXiWqXiWtXiWqXiWqXiWdXiWqXiWXiWqXiW[XiWrXiWrXiWvLXiWtXiWpXiWnXiWu6XiWvAXiWXiWt2XiWt(XiWqcXiWqXiWtXiWulXiW)XiWuXiWtXiWvoXiWuxXiWs3XiWuXiWuXiWXiWXiWs&XiW$XiW#XiW}XiWqXiWrnXiWsPXiWsXiWXiWhXiWrkXiWuXiWuXiWrPXiWuXiWXiWXiWsXXiWfXiWuXiWeXiWqXiWrXiWrXiWsBXiWXiWtXiWqXiWrFXiWu%XiWtXiWuXiWuXiW,XiWr XiWvZXiWtXiWqXiW)XiWrXiWrXiWqryX|W?XiWsXiWqXiWu<XiWtXiWtxXiWrXiWXiWbXiWXiWsXiWs <XFUXiWXiWcXiWvwXsX 7h/XiWqXiWsXiWsXiWtXiWuXiWu8XiWXiWr[XiWtXiWr}5X`WQcrXiWXiWr@XiWXiWqXiWuXiWqXiWXiWqXiWtXiWtXiWXiWu{XiWFXiWsXiWcXiWuXiWuXiWuXiWrXiWXiWXiW,XiWu5XiWXiWXiWqXiWrXiWv3XiWt'XiWs1XiWuXiWUXiWt/XiWuXiWtXiWtXiWuXiWuXiWsQXiWrXiWHXiW7XiWrQXiWsXiWuXiWXiWuXiWs6XiWu XiWqdXiWSXiWqXiWqXiWsRXiWt@XiWrXiWrEXiWuXiWqXiWu*XiWtUwDX W"߀ IXiWXiWuXiW)XiWXiWr#XiWEXiWuCXiW3XiWuQXiWsXiWXiWrXiWqhXiWtXiWqgXiWvbXiWsXiWt|XiWrJXiWXiWs$XiWr6XiWXiWutXiWuXiWtlXiWiXiWuXiWrXiWsHXiWtJXiWrXiWXiWscXiWaXiWqXiWrytX}W h?XiWr"XiWsXiWtTXiWrXiWuXiWqXiWkXiWtXiWvXiWBXiWsXiWt0XiWrLXiWr7XiWtXiWuXiWXiWqXiWsXiWtgXiWuyXiWXiWuXiWr0XiWXiWIXiWsZXiWXiW/XiWsVXiWrXiWsjXiWsJXiWXiWuUXiWXiWqXiWtXiWr?XiWqXiWsXiWuXiWs|XiWtXiWuXiWsXiWrXiWsXiWXiWvRXiWu'XiWrXiWu XiWwXiW0|WX ?߀XiWu@XiWt+XiWXiWvQXiWrXiWvGXiWsXiWsXiWr*XiWt}jWX 5d'3XiW.XiWPXiWsXiWvqXiWqvXiWXiWr XiWqXiWtwXiW XiWsXiWSXiWvXiWqkXiWXiWrXiWXiWrXiWLXiW7XiWuXiWvXiWqXiWDXiWqXiWXiWXiW=XiWtkXiW?XiWrXiWr<XiWubXiWuXiW'XiWv-XiWv+XiWvXiWJXiW(XiWXXiWtXiWrXiWrXiWs XiWuXiWtydWX XiWuuXiW-XiWuXiWvHXiWtvXiWtxCWWscXiWuXiWPXiWuXiWs)XiWXiW4XiWsXiWvXiWiXiWr5XiW~UXsX XiWXiWXiWrXiWtXiWXiWuXiWr%XiWvuXiWsXiWXiWsXiW]XiWt"XiWsXiWqXiWsXiWtXiWXiWrpXiWuJXiW<XiWt` W߀XiWXiWu.XiW\XiWu[XiW`XiWtfXiWsXiWuXiWtXiWsAXiWuXiW,XiWXiWrXiWXiWrXiWrXiWsXiWrvXiWrXiWXiWqXiWwXiWXiW^XiWXiWtXiWrXiWrXiWXiWXiWrGXiWXiWqXiWuXiWsXiWs?XiWuXiWuXiWtXiWgXiWKXiWsXiWtMXiWsmXiWXiWXiWsXiWuXiWr`XiWvXiWu XiWqqXiW7XiWBXiWtXiWtXiW z&XaW?%&XiWsXiWqXiWuWXiWsXiWXiWvrXiWu}XiWXiWrtXiWOXiWsXiWXiWr;XiWrXiWuXiWvYXiWr-XiWXiWrBXiWqXiW[XiWr{XiWXiWXiWXiWreXiWrXiWvtXiWXiWskXiW[XiW(XiWQXiWuXiWtXiWsdXiWsXiWuvXiWLXiWv/XiWv_XiWsXiWuXiWs~YWX .߀XiWtXiWXiWrXiWtXiWPXiWXiWqXiWXiWuXiWtXiWXiWuXiWrXiWNXiWtXiWrXiWr+XiWqXiWXXiWs4XiWuSXiWvNXiWrXiW_XiWXiWXiWsXiWrXiWuXiWtXiWXiWgXiW`XiWsXiWtXiWsSXiWrXiWtXiWwXX %b߀XEWvqaXiWqXiWqXiWuXiWs=XiWtXiW|WXXiWurXiWXiWXiWtXiWXiWujXiWtXiWXiWXiWuXiWXiWrXiWXiWqiXiWqXiWuXiWuLXiWrXiWqsXiWuXiWXiWswXaW?RXiWuXiWFXiWu=XiWs:XiW"XiWXiWsXiWr1XiWrXiWtOXiWuXiWu/XiWsxXiWu#XiWXiWqXiWtNXiWtZXiWt?XiWu~XiWrXiWtPXiWuXiWuXiWXiWbXiWv'XiWuXiWXiWXiWrXiWsXiWXiWqXiWXiWtRXiWtXiWrjXiWtHXiWXiWs%XiWtXiWtXiWXiWsXiWuoXiWtWd'XiWsXiWtXiW XiWsCXiWrXiWv,XiW%XiWt>XiWs]XiWupXiWtxWWK?XiWtXiWUXiWtXiWXiWqXiWqXiWtXiWvIXiWXiWsXiWzWX b߀|XWX ?߀XiWqXiWvMXiWxXiWuXiWuXiWtXiWqWWaXiWvXiWs.XiWvXiWsXiW4XiWt6XiWVXiWsXiWXiWt$XiWuXiWXiWtXiWsXiWvXiWr'XiWXiWrmXiWqXiWr9XiWXiWtXiWaXiWsXiWXiWrXiWr)XiWrrXiWXiWXiWtXiW<XiW XiWXiWXiWqXiWuMXiWqXiW]XiWlXiWsXiWqXiWsOXiWuDXiWXiWAXiWXiWvXiWuYXiWsXiW.XiWsXiW`XiWuXiWvXiW\XiWXiWuXiWWXiWv XiWsXiW.XiWquXiWuXiW:XiWtAXiW'XiWt<XiWtXiWuXiW&XiWXiWuXiWdXiWu9XiWsGXiWRXiWvnXiW&XiWlXiWqXiWXiW~XiWqXiWlXiWtXiWrWmaXiWr~XiWrXiWXiWv5XiW}L W߀XiWtXiWqXiWuXiWuXiWsXiWxXiWvXiWrXiWBXiWrTXiWsXiWqXiWrXiWXiWuXiWXiW;XiWrXiWtXiW>XiWWXiWtXiWrXiWtrXiWqwXiWXiWrfXiWv@XiWsNXiWqXiWuXiWtXiWqnXiWtXiWsXiWvmXiWr,XiWthXiW+XiWrXiWucXiWsXiWu!XiWsXiWuXiWsXiWsXiWqXiWrXiWXiWXiWtXiW:XiWtXiWsXiWu>XiWsvXiWu&XiWv&XiWv=XiWvXiWrXiW8XiWXiWsXiW:XiWXiWXiWuXiW XiWtCXiWXiWq{XiWfXiWt!XiWLXiWtXiWrXiWrXiWXiWXiWtXiW*XiWr2XiWXiWsXiWv XiW5XiWruXiWtdXiWvBwcX:Xbt?&oXiWXiWs~XiWXiWrUXiW'XiWvWXiWtGXiWrXiWyXiWuXiWXiWXiWKXiWuXiWsXiW@XiWsXiWXiWuXiWqXiWsXiWshXiWrXiWXiWt3XiWXiWvXiWXiWszXaW?XiWqXiWtXiWs\XiW#XiWsXiWOXiWXiWrXiWv;XiWrsXiWuXiWcXiWqXiWsXiWdXiWtXiWsXiWssXiWGXiW_XiWqXiWtXiWrXiWrqXiWrXiWXiWt9XiWuXiWtVXiWuXiWt]XiWv(XiWqXiWuXiWXiWt=XiWuXiWrXiWsXiWqpXiWuXiWsXiWrXiWqXiWrXiWtXiWqXiWrMXiWvXiWsXiWXiWYXiWoXiWgXiWXiWFXiWXiW1XiWu^XiWrXiWtbXiWXiWmwWX3XX&X XiWrXiW/XiWvXiWOXiWXiWuXiWqXiWqXiWXiWXiWsXiWsXiWXiWtXiWuXiWrCXiW2XiWsXiWtDXiWXiWqXiWrXiWu$x:X:Wf߀XiWrS~tXsX 7/XiWXiWXiWteXiW|XiWsXiWs'XiWv1XiWtXiWsXiWv`XiWuBXiWXiWuXiWXiWrXiWXiWuXiWrwWX @@XiWt XiWv4XiWjXiWtXiWqXiWtXiWtXiWv8XiWrXiWrXiWHXiWqXiWv9XiW8XiWrXiWSXiWvXiWu|WW?XiWuXiWXiWt:XiWsXiW8XiWtXiWXiWq|zXX %d'3XiWXiWstXiWsXiWs^XiWXiWXiWuVXiWXiWr_XiWs{kWX??XiWXiWtXiWqXiWsWXiWuaXiWuXiWuNXiWuXiWs0XiWuXiWsXiWv.XiWtXiWrXiWs/XiWXiWqXiWXiWrXiWvUXiWrXiWq}XiWuOXiWv%XiWqXiWXiWsiXiWXiWqXiWuXiWXiWtuXiWvXiWUXiWrzXiWXiWkXiWrAXiW6XiWbXiW^XiWqXiWhXiWtXiWu~WXaXiWuXiWqXiWtXiWtXiWr.XiWs XiWrXiWXiWfXiWt~XiWsXiWqXiWXiWr^XiWqXiWuXiWu XiWt7XiWtWXiWqXiWmXiWXiWXiWXiWsXiWz|XX 3XiWrXiWXiWXiWXiWXiWXiWsXiWsXiWXiWv]XiWtSXiWrXiWt1XiWuXiWuTXiWtXiWXiWrXiWuXiWuXiWt XiWu}sWWB߀XiWrXiWvVXiWsXiWVXiW#XiWpXiWXiWuXiWtXiWv*XiWuXiWs}XiWXiWs@XiWtIXiWu:XiWsXiWtEXiWv#XiW!y X/XbbXiWuXiWseXiWuAXiWr}XiWt^XiWuXiWrKXiWr8xWX Yd'XiWXiWXiWuPXiWXiWtXiWXiWhXiWtxXjW߀XiW>XiWXiWtXiWtXiWrXiWrXiWsXiWrwXiWsXiWrRXiWuXiWv^XiWrXiW6XiW&XiWXiWXiW XiWvOXiWsXiWsXiWv XiWv$XiW{XiWv)XiWt8XiWXiWTXiWsXiWvXiWqXiWiXiWvXiWXiWrXiWXiWr/XiWmXiWXiWXiWtXiWsXiWXiWXiWqXiWXiWEXiWvXiWuXiWuXiWXiWr=XiWXiWuXiWt{XiW XiWsXiWXiWXiWtXiWsXiWXiWtXiWraXiWqXiWXiWrxX;XXiWsXiWsXiWrXiWXiWsXiWtXiWrXiWvjXiWuXiWXiWtXiWrXiWuXiWXiWZXiWuXiWuXiWXiWXiWXiWXiWrXiWvXiWu2XiWufXiWuXiWvCXiW@XiWrWXiWtXiWv XiWsXiWtKXiWuXiWr XiWMXiWuXiWXiWXiWt)XiWuiXiWvlXiWtXiWtXiWs#XiWtXiW3~BWX @@XiWRXiWuXiWsYXiWtXiWrXiWu?XiWr XiWsXiWvEXiWXiWs XiWu XiWrXiWXiWu;XiWXiWnXiWXiWqXiWsXiW9XiWt XiWrXiWuXiW9XiWuXiWsXiWtqXiWu|XiWvXiWXiWt vXWX _b߀XiWEXiWuXiWXiWaXiWr&XiWusXiWXiWsXiWsXiWt5XiWsXiWNXiWuhXiWvsXiW$XiWXiWqXiWrXiWqXiWtXiW>XiWtXiW=XiWsziX|WXiWvPXiWsXiWuXiWXiWuXiWuXiWtsXiWqXiWryXiWtXiWvaXiWsXiWrXXiWuXiW0XiWXiWtXiWuXiWsXiWsXiWXiWqXiWXiWr3XiWXiWrXiWrXiWugXiWtXiW;XiWqXiWyWWO߀ I I@@XiWrXiWu_XiWqXiWsXiWXiWtYXiWs XiWXiWqXiWs*XiWWXiWrHXiWsXiWuHXiWrXiW!XiWXiWu,yWWcrXiWt XiWGXiW]{xX1W ߀XiWr!XiWXiWs_XiWqXiW4XiWtXiWrgXiWrXiWs7XiWXiWtXiWvdXiWr|XiWu0XiWnXiWXiW_XiWvJ{X X b߀XiWuXiW9XiWXiWZXiWuXiWsXiW wWWXiWuIXiWuXiWXiWtXiWu XiWqXiWuXiWveXiWrNXiWXiWu7XiWuXiW/|XX ?߀XiWXXiWsXiWtXiWu]XiW3XiW5XiWXiWoXiWrXiWXiWtaXiWtXiWrXiWsx'XiX XiW5XiWsXiWtXiWsXiWsgXiWs`XiWqXiWqXiWuXiWviXiWvvXiWsFXiWIXiWv7XiWJXiWr(-DR$q֋!LJztG$Hxikb'.wĥ)dRf#/'+O'HD#K|".7 Q_)%J0sq+ niS'-p&90a1o&K%1!_a5($!_;($5t!_HM!_T5P>'5TM!_'5H+ќ!E)* ZN (]Y/+bє.  F4 {  c*oQ["%M( .y*(ǚ!=*+=?$2 +%IcYa D-'!PMSD')| < b)-[ ++%y).S#wWa#.wN. ?$Ng(D+V%NKW#D& L5':ܘ,Y#I/}*8$%ޗ2 (5H'/Z -`G',fz4~PB"! B NtSX$*z@.IN*S#d&'u*)( J+z P( G+/J'HL#Mfz_WW I Ify\WW I Ifx]WW I If{^WW I I\_ S*)hSl)0-E&J =-QI' @KhK*95kԜ0B"*  ("(] F {Ȍ. c+obZ k&p&.yH<Q M-"Lŀ !JjG.*4S cZ5,:?0Q!,,)@&b$ *\+A&Ƿ#?N {!6ƌ'HК#5;%3V$E M?O^EVjK]Cխ!2'&9Jw-  IW- IJ- )&9- ) I- t IJ- t IJE- .K IJ- y Iv- p IWr IP6- $ I- %0 IA- ' IKC- ' II- ++ II- )? IK@- r IO- )V IO,} I;-  IJ- &9-  IJZ- t IJ- = IIR- $: II-  IIF- Q II- &R II- ( IJ-- II- .K II- &9J- IJ_- "r I-  IOI- .K III- &R II- t II]- )V I,- %&9-  IJ-  IIl-  II-  I-  I{-  I- t IJ- .K IJ- &9Ju- r IP- , I-  IO-  IK- ' I- I- '&9K<-  In- t IJ- p I- S Iu- ,: I{- - &9- y I- " I- t IJN- t IIz- ' IJ-  II- &9-  Il- t IJh- X IJF- r IJo- t II-  I- c IJ- r IO-  IJ- &9A- t IJp- r IN- &9Is-  I- t IIe- Iq-  IJ6- - IK- )V In- "r I7- I-  IR- &9I-  IJ=- S IJ- &9J- K I;- r IPT- &9- $ I- &R IIJ-  I- r IIq- $: II- t IJ- ) IJ*- .K IJB- t II- S I- + Iy- p I- c II-  I- *&9- &9-  I%-  Ik- .K II- X IK-  IJN- S II- $R I-  I- = I2- $ I- &9;-  II- ' I- IIx- S IJ-  I-  I:- r IN@- " I-  I-  I- a IKB- t II}-  I- $> I- .K IJ- ( I- &9IQ- p I I-  IJ- t IJ- &9- &9B- .P&9C- p ILy&9^- G I- t II- .K IJ-  I- &9JW- = I- t IJ- &9L- ' I - )? IJF- * I- - IJ- r IO- .K II-  I-  IJ- S&9- t IJ-  IJD-  I- c IK- ,} I-  IJ- IOr IOj- ; II- .K IJ-  IB- $ I- p IN- $: IJ- t IK:-  I- + IK- t IJn- ' I- I- ' IJ[- r IN- ,E I- I1- &9- S IJ- y I- .K IIO- .K IJ- *&9- c IK-- ) I- t IJ-  I- - IJ- r IN- " I- S Iu- . IJ)-  I- $ Il- &9- r IJp- IKD I;- - IIt II- t II- &9I- t II-  IJJ- ' I-  I- +@ II- " Ia- "S I/- &9J- IJ|- T I- . IO- y I- &9e- S I-  IJ- $&9J- - &9-  I- I- t II- t IJU- r IO-  I-  I I- t IIB- = IJ0- .K IIr- $: IJZ-  Ik- '&9I- )V I~r I-  I- ) IA-  Ib- .K IJ- 6 I- 7 I- ! INv- .&9-  I- .K IJ-  IJ]- ' I+- 6 I-  IPa-  II\- .K IIW-  I-  II- 'P I- t IIg- N IO9-  I- &R II- t IJ-  I- r I- s IE- Q I-  II- . IJ- Q I- t IJ- $ I- &9JX- &9- .K II- , I-  I- = Il-  I-  IG-  IN-  I- &9!- &9I-  II= I - s II- '&9J- t IJ}- .P&9- .K IJ- t II- } I- t IK9- IIK- y I - r IP)- S IK- . INz- t IJ-  I- 3 I-  IJ- . I+-  II- '&9s-  IB-  I- r IJ- * IJ`- t IJ- a IJ- .K II\- r IO-  I!-  IK-  IJ-  IO- Q IJ- t II- r IP- &R IJ -  I- ' Ia-  IIZ- * I- &9JR-  IIr- +0 I- S IIc-  II- t IJ- t IIP-  IJ&9- . I- t IJ- * I]- "z I- .K IK - t IK- t IJ4-  IO- .K IJz- IL-  IJ- '&9JA- .K IJ- t IK&- .K II- . IF- &9J- $ I- .K II-  I-  IJb- I- I!-  Ih- t IJ- S II-  IY- t IJ- c IK- #! I IJ+-  IF- = I- '&9I-  Iy- &9- .K IJ\-  IJ- = Ij- S I- t IJ)- II- ; II- * I- 7 I.K IJd-  I{- ' I}- II- t IIG- t IK?- .K IK-  I- . IPE- " Ik- !&9- + I- % IB- &9C- r IJ- "S I- ' IJ-  I-  IK- c IK6- &9-  Ib- ' I- p I_+# I&- IJ- $'&9- Q II- c IJ- a IIb- y I -  IZ- ' I)- p IQp I_)? II- r IOK- 5&9^- * I- &9J-  IJ- t IK- t IJ- .K IJy- )&9X- &9IY- " I2- - IK- .K II- r IN- t IJ- *&9L-  I - ' Iz-  I- S I-  I&9IN- &9J8-  IIO-  IK!- &9- y IG- & I- &R IJ- .K IK- .K IJC- II-  IK- &9J-  IJ- ++ II- ' II- ' IJ-  I-  I- .K IJ- "r I- ,} I<-  II-  IP<- .K IK.-  IN- &9-  I- r IN{- 7 I7 INX- I- Int IJ:- &9- t II- y I- "&9i- &9I- c IJ?- I--  I-  II- S I- " Iz- . IO- &9K - p I S IIM- t IJ- I- . I- &R II- .K II-  II- 6 I- &9-  I-  I- r IJP-  IJ- = ID- 7 I- . INp- t IJI-  IL- &9- . IO- t II- ' IJc- > I]- I -  IJ-  IJ- . II-  I{' I-  II- &9-  II-  IJk- = I)- 6 I- t II-  IJ5-  IO- t IJ- ) I- *&9- S IJS-  IK- t IJ- IK%- )&9&- &9J- % Ig- IP-  IJ- t IJ- $: IJ5- t IJ*-  IN-  I&- II- r IP - (A II\- '&9-  IJz- ' I- y I;- r INs- &9- * IKA- &R II- r IOr-  I&- r IO- '&97- = I-  I&-  I- r I-  IJ-  IJ>- S II-  I- .s Iq-  IN-  IJ-  Ip-  I- ' IJ- &9- '&9J- * Ik- " I,} I- S&9#- ' IJ- S I-  I- ' I-- ./ IIF- r IN- #! I,- S IJ;- ' IJ- S I- t II-  IK- y I)- 6 I- t IJ- IJ3- t IJ- r IJG- .K IJ- . I-  IK2-  IIA- # II[- , I- t II- (A IK- &9Im- 5 I+- r II- #- IJ- S II-  I- " IZ- y I- "r I_ I- &R II-  IJ0-  I-  INY- y I+- &9G- .K IIl- I~  IIX- .K IJ]-  I- #&9-  I- d I~-  I-  Ib-  II- IIE- - II- &9- . Ic IJ- 6 I- " I-  II- t IJ- ) I- II I^- $ I-  I- ++ IJl- IK)- S IE-  IZ- * I- &9?- X IK@-  I+- = IJ- r IPV- S IT- % I -  I - r IO- 6 I- ++ IJ- &R II- r IJ- c IJ$- C I- r IN- I- &9J- ' I- c IJ - &9- &9- ' IJ- ' I- II- % I- IJ- \ IS- t IJ-  Iz- T I-  IJP- t IJf- r I- I- r I- ' II-  II- - IJ-  I- &9-  I!- IC- t IJm- IIt- #! I- .K IJ-  I- .K IJJ-  &9- " Ie- ' IJs- .s I-  In-  I(- + II-  IJ-  II- y IM- &9- &9K8-  IO- r IP- '&9K- % IS- " IV- . IO-  I- &9Ip- y Ib-  IL- r IN- I - &9y- "r I IJ-  IJC-  I6-  I- t IJ-  IJ- a IK -  IId- ! I- %&9- t IJ- r IJ- r IO- t IJ- &9&-  IK- r IJq- t IJ--  IK - r IJb- 6 Ie- r IO- S&9- &9- II- t IJ- t II- % I- " Il- +X I- .K IJ- &9 - &9- + I"-  IOA-  II- t IIi- (A IJ- % I<- . I - , I- ) Ik- t IJ- t II@- & IJ- &9K- . Ih-  I-  IJB- .K IJ- $: II- - &9x-  I- &9- t IJ- S I-  IJ- y I- &9- t IJ- S IH- r IO- &9- &R IIu- - IK'- &R IIn- p I-  I&R IJ- &9- &9- ' I-  I- ' II- t IID-  IM- $l IK,- y I- ' I-  IJV- - I- '&99- t II- *<&9- % I-  IJ-  I~-  IJy- r INJ- &R II- h IB- # I- " I- " IG- .K II- .K IIA- ++ II- * II- t IJ/- t IK"- IS- &9- &9 - &9- ' IJ-  IJ- ,} Iv- ' IK - &9J- .K IJ- )V I II{- , I- t IJ- )? IK- '&9J#- ' I- IJ- ' IJi- .K II-  I - I- S IK- &9- r IJ -  III- ' IJQ- ' II^- ++ II- IK - " I-  IJ- t IIw- ' IJ- .K IJ- &9g- r IN- = I,- t IJ - . Iw- " II-  IJ\- ' II- t II- &9- t IJ- ,} Ip- - &9i- 4 II- IJ- )V Iz &9K5- t IJT- ' I- ,} ID- " I- % IJ<- .&9- !&9- t IK-  I- y I- ++ IJ- I<-  IJ -  IK7- S IX -  IK/- t II-  Ij- ( I- $ I- = IId- S I- t IJv- . IN- ' I?- IE- t IJ&- ' IK1- . I_- 6 I- + I- S IY- &9- .P&9- &9J(- p Ih- t IJ%- .K II{- r IIB- &9-  IN- c IJ- 7 I_- . II- &R IIv- y IC- .K IJk- &9I- p I; IK#- I/-  I- t II- ' IJ- &9I- .K IJ- *d Ig- * I-  IJ\-  I"-  IIW- IJF- S&9-  I- t IJ- t IK(- !z I-  IJ-  IJ- . IJ"- I,% II- S I-  I- &9K;-  IJ- t II' II- t IK- &9J- Iz- #6 IB- * II-  Iz-  II- r IO,- S IB-  II- . IJ- $ I- ,} I- t IJH- i IK=- .P&9?-  I- IIf- %0 I- t IJ- M I-  Ir- p Im-  IIR- .P&9x- t II- Q IK0- IK- ' Ib- S I- ,} I- $k Ip- . IO- &9- '&9K-  IJ-  I- Ig- .P&9- . II- 6 I- r IP'- % IL- S IIT- .s I/- I&9- d I- r IIG-  II- t IJt- r II- a IIo-  I- ' IJ- IJ- .s I;- (A II- &9I- IK@- S II_- &9*- *&9g- Q IK'- r I- '&9J- - II- ' Ir- &9O- IJ- $R&9G- I - "&9<-  I- t IJ'- S IJ^-  IK*-  II-  I - , Ij-  IJ- r I- &R IJg-  IK.- ; II-  Is-  I,- I-  I- .K IIZ- t II- IJ- t IJ7- ,E I- II- . IPP- &9-  I Ih- &9- t IJx- '&9J.- .K IJ-  II- $' I- t IJ- .K IJ- ( I- t IJ- - IO)? IJ- $: IJq-  Ix- t II-  I- .K II-  IJ!-  I-  IS- &9- 7 Ik-  IY' IK- t IK- ,E I- 7&9&-  I- s I- ' I2-  I- t IK!- )> IG- . IN:- ' I- &92- &9@- . IN,- IK- $: IJ- . IOu-  Iz- &9J- &9#- $ I~- ) I&- &9-  IJ-  II- &9- &9 - #! I- *&9- S II- .K IK2- p I Is- t II-  IJd- )? IJ- Iu- I- t IK- &9E- I- r IO- r II- . I- ' I(-  I}- * IJ- .K IJ- r IOe-  IJ-  I-  I- ' IJ@- &9IS- t IJL-  IJv- V I-  I7-  I- .K II-  It-  IJq- r IN - .A+6!qq*-%-F.|).)LI0Ќ 'V'%{e&N$$&׵'{<'$X%RU-'Ax! L, !t(qo$Ԛ,<CR&kB*C+}?6 |+!u7&@V& {- 4<N. R,A6 8)S&wX*(<`-R?*v K(!%$5 ڲ D&" &(`p,& T- 1 "~Rt%L'A7#)v@>KO' L+-2*X$9.- !)#]%~5r$Ԧ"EC$q1.&&A" 4>Gh-DEeDB*x B* G'7Z(**H%J,~m"58{*B! !"& #P?$ij&PߎKT  $A%b?6$ձ!#[$eB]#z&jZ3$"*ک&85bjl)17-g=O C'U$qH-DLtZHqS ;G ١"~&Z& )C<Ѻ3K#[v-Y4mX.a*H -3,H >_ G,%H K"-$-6)n7&)L${U+D**(#NP!$R ; e)&!)7/</,/E/QU/2@/l;/T!/$ E//,L/,sǬ//+@/~! /'Aq/!kZ/-Zb/,/'M/.K/p/,/ 1G/ 6z/#_/:2/L,/ 7*(/(y/Ɛv% U'e%i5A`!+Y. @!2#-B! ߙp!ţ"֚P`&,Mރ2zc;j;pԑ 8\vM@J' GVGTkBB)3|+ !2%Y KXַ! 7" =($% z,-w&`¨+ Z&+ Z +UCW_/)^#&xLJ5^4. WaZ~WaYX W~=zX WX WX W4{X WX W^^X WuX WNX WX WM@X W@X WX WEX WB+X Wt X W7X W1EX WОX W+ТX WX W:X WhX WX W7X W2MX WbX Wu,"X WX WDPX W]@X W>X WlX WJX WX W+X W X W}X W?X WS!dX WĺX WX WBJX WqX Wy X WM@X W X WNX W/'9X WWX WX WWX WWX WyX WX W X WSX W&{X WύX WX WRU1X WX W-X W@2X W,X WbX WzX WCNX W2,X W6X W.X W~X WhX WX W{qX W/X W5X W1X W<X WjX W(GX Wg6X WX W}X WX WX W),X W9ۮX W/ X W)vX W?wX W9X W4JX W4LX WQX WQX W$X WBX W SNX WI<X WX WX WUfX W>YX W'X WZX WX WR΂X WoX WX W X W3X W)X WͣX W+*X W.'X W9X W\СX WU׊X WkX W5X WX WX WMzX WlX WX W X WIdX WX W3:3X WX Wk<X WLX W@;X WL;X W:X WȫX W5X W8SX W-N"X WX W&X WĵX WZX WX WPX WHQPX W3]X Wz^X WIX W+8X WZX W*,X WX W]rX WX WX WoAX W4X W5VX WBX WG%X WX W}TX W&YX W DX WsX WX W4X WHX W KX W=X W&6 X W|X W0X W!#X WX WX WpX WX WX W<X W  JX W8X WÑX Wo=X W}8X W(X W<X Wl(X W) X Wf$X W\XX WSQX W`BVX WBYX WX WZrX WCX W@X W vX WwX WrHX WJ).X WZX WX WXX WyX WhX WYX W1X WX WYX WCX WCX WfhX WX W-X WrX WX W+X WIX WvX W$X WX WX WaX WEGpX W1*X WNX WHX W;qX W!pX WcX W% X WX WTX W5X WޒX WޓX W$X WlX WCnX WX W` X WBTX WX WxX W2ňX W vX WݜX W̕X W;X WzIX W6%X W3BX WX WX W1(X W X W)X WZX WMX W0AX W^XX WdX WAX WHX WX WX W X W,X W-X W,X W.kX WzX W-X Wm5[X WX W1X WNX W8X W ?X WbX W:X W)X WQX WX WSX W<X WX WܑX WC'X WˌX WVX WX WC$1X W ǕX W=RX W"X W<X W:=X W]X WGX W`X W.6X WX WRX W7X W@X WX WaX WX W}X WmBWX WSX W"X WKX WDCX W2X W2X WX WX WEX WX WLX WX WcX WX WX WHMX WX W]IX Wc^X W.X W3kX W]X W3qX WJX W|PX WlPX WK5X WjX WAhX WZX W LX W;&X W!X W(HX W'X WsX WLX W͕X WX WTX WvX WX W8 X W!X WX WX WX Wp?X W̒X WkWX WFX WpANX W#ӞX W7AX WYX W.,X Wu,X WX WX WX WX WX WX WfX WG-X W0X WX WHX W*X WxBX W1X WX W X WvHX WRX W/cX W=X WJV X W?qX W.?uX W(X W#X WoQX WkX W*X WY5X WX WX W+X Wj+X W8ˎX Wf'X Wm,X W(EiX WOX WF)WX WX W.X WPκX WX W,X WIX WX W]X WbX WѠX WX WLX WbX WdX WW"X WMX WÀX W wX W+ }X WPNX WX W~X W<ۨX W!X WX WP X W#GX Wk׻X W#X WQX WiMX WWTX WPX W}VuX W :eX WX W )"X WX WX WX Wv@X W>/X W~"X WX WGyX WpX WX WX WX W^X W X WsX WtX WX W[7%X WX W X WI]X W{X WX WOPX WK,X WX WX Wb6;X W1X W62X WȣX WX WX WNX WX W+NX W.X WX W X WOX WGX W˾X W $X W (X WPX Wl@[X WX WURX WX WR+(X WZX WTtX W_V X WDX WlDX W,X WX WX W$X W|X W$*5X W*=X W X W:X W7X WX WYX W^X WmX WX W+X WP4sX WX WX WX WxX W!EX W*X WX W7X W}6 X W+X WX WMX WX WX W"X WX WX Wj:X W5'X WX W AX WeT*X WT,X W,X W>X W?+X W?,X W9X W9X WX W(~X WL#IX W  X WưX W X WQFX WQX WQX WX WX WXX WAX W>JX WpX W'X WOX WJX W\>X WyX W;X W(X W@X WH(X W;X W{,HX W`X W X W,X WhX W`X WrX WHX WX W1!X W?}X WX WX W3X W X WigX WdX WDMoX WX WX W3X W >X WX WV>X WQV@X W/X W?X W:,X W7X W1X W2X WA>X W?*lX W*nX WX Wz,X WϸX WX WvX W3X WX WX W+,X W6X Wg[zX WHDX WX WOX W#X WKX WKX WX WX W\LX WMX W3X WX W -X WXJX W3#|X W X W X WY<X Wq<X We&gX WK!X WX WX W%ˁX WX WPX WX WXCX WC0X WX W1X W!X WX WX WOјX Wr*X WX WXX W?X WX WmJX WKX W=X WX WBX WX WX W06X WJX WJX WX WX WCX W6X W1X W2X W X WFZX W"\X WX W]"mX WůX W##X W_ <X WX W;X WX W=X WgX WOX Wp9X W0X WA#X W QX WޅX WX W)pX W} X WSX W&X Wx'\X WX WX WX W#V8X WOX W+X WX W*jX W:X WX W#X WX W"X WD;X WX WX W'X WEX WaX WҫX WwX W ٦X W'X WH,X WqX W7X WĞX WX WC3X W9WX W"ܹX W|X W"X WX W'X W`5RX WX W6X W]X WT=X W"X W ,X WgX WOX W;oX WX WTX W+X W[{X W+X WX W@'X WX W X W3X W/X W)NX WX WՌX WX W3X WX WX WX WX WX WX WX WX WԼX W]X WWX W44X WX Wt X W'LX WLX Ws;1X W޺X W(.X W-X WɹX W$ X W X WOX W QX WFX W>X W X WVpX WPX WPX W̼X WMYX W%hX WP=ZX W,<X WZX WejX WaX WWX WX WX W(X WAX WX W!X WX WX WX W1X W&X W2X W4X W6ЊX WJ5X WJ:X WX Wd9X W  X WX W"6X WIPzX W,X WPX WX WgJX WxX WLX W!X Wi%)X W#ȒX W%X WYX W=SX W@SX W&X WnOX W>X W"X WIX W$VX WǻX W X WHX W+X WX WX WX WpLX WFX WdX W\X W=X WWX WX W/X WX WnX W X W)GX Wf1wX WCX WIX WI"X W-kX WDX WX WX WuX WpX WtX WE2#X WՎX W!X W9X W9X WX WX WX W_ qX WNX WX W UX W/PX Wd#?X W#X WWTX W=X WqX W5X W )X W$X W(X WmXX WS;X WS>X WX W+X WX W*X WLX W̺X W^@X W2X W0VX W0YX W*X WhX W^PX WX WX WIX WXDrX WX WsX WNX W1X WD1X WuX WpX WX WAtX W 5X WsX WcX WX WN;X WHX WHX WX W(X W3X W3X WX WX WSX WMaX W:X WNsX W"7X W."8X W X WV,X WV.X WP}X W&X W1X WX WsX W"RX WA5X WcX W *^X W4X W[4X W 6X W$BX W=X WϰX WD0X WX WVX W/EX W|EX W/X WX W-@QX WJX W0ClX W2XX WX W<.^X WGX W:X WX WX W8JX W& fX Wv hX WX W9 X WF X W 8X W<X W\ X WSnX WSqX WyX WX W|X WAtX W$X WX W#ǁX WX:X Wo%X WTX W X WC'X WsSX W/EX WX WV X WX WX W X WzX WX WX WJvX W-X WF9X WFX W5X W6ŒX WEX WtKX Wv3WX W3YX WvX WTX WqX W%TX W%VX WX W:N@X W@ZX WX WoX W{WX W. KX WX W!QmX W@X WguX WAwX W)X W]~X W5^X WeX WX WjXX WbX W X WpX WpX Wq*X WX WЀX WX WX W(X WWX W"2X WXqX W>X WX W vX W$X WuX W:hX W6&X W2UX WX W[!GX WJ1X W3X W5X WYX WX W X W0X WM(X W cX W;X WM X WT^X WUX WE &X W2VX W(X WwX WVX WX W`&XX W4X WpX WZU X W X W-cX WAxX WwX W1VX W@X W/ X WWX WlX WX WAX W0X Wy3X WeX WC(X W2X WX WjEX WzX W(X WjX W<mX W X W cX W83X W86X W:)X WX WOX WX WX WޮX WŠX W"dX WWVX WFX We̵X WX WiX WeYX WBX W=KX WT,4X W%VX WVX WEX WdX WD/|X W/}X WX W4X WX WFX W1 X WfX W+\X WiX WP X W.X WKX WX WV3X WX WZ!X WFX WX WKX WaXX WyX W1X W X Wr X W6IKX W X WGX WX W9JX WX W X W#X W^7X WPX WX WX W!IX We!OX WX W( X W@CX W :X W)wX WǵX W X W%X WYX WT[X W5NX WX WBX W)DX W;X W2?_X W(X W{EX WyF.X W3jX W@X W*&X WN|X WX WoX WZX W[X WX WEXX WX WqaX W 2X W5X W0X W¹X W/X WiMX W;HIX W9X WhYX W:X WX W iX WX W&X WƚX W  wX WX WެX WͷX W&X WgX WR<X W=TX W^X WxXX WX WX WX WVhX W;FX WX W]X W{~X WX W4FX WX WIX W4X WX WB6YX W7X WkX WX WX WHX W2X Wc X WHX WbX WFhX WX WX WnEX WJX W7X WqX W\ X WTX WX W X W X W'JX Wu:X W{X WX W X WA+X WBX W= X W+X Wd,X WLZX W7D(X W#X W0X WX W/HX W)qX W5ҜX W4X W6X WX WqC`X WkCaX W)zX W?X W>X WX W CX W YX W-eX WX WcIX W\X W X WkX WKP5X WjP6X WSX WX WGX W;]X W<$X W<X WHfX WX WYX WUX W/X WzX W0{X WA"X W`iX W X W X W@X W ):X W$X WhX WRX WX WX WX Wl,jX W,UX WIX W ?X W.X Wo.X W"фX W)X W|XX WBX W{X W!+X WX WX W*X W<J`X Wu.X W$X WX WX W$4X W.5X W,"X W@X WX WOIX WIxX WO8X W"WX WX WX W X WKX WX WO4X W ]X WKX WX WMX WX Ww X W!cX WA9X W8X WX WL AX Wx@~X WT)X WQX W X W,XX WX W+PX WjX WCX W{X WkrX WV'X WX Wq X W.X WX WX WyF_X W#X WzX W*X W"X WEϦX WnX WD-X WbX W>EX WdeX WeX W0X WX W`X W tX WOtX WOyX WX WIX W3X WKX Wo/X W:X W $;X WWX W<.X WX W'X WUX WX WX WKX W?SX WMX WP#jX W X WQX Wa*X WTX WYX WYX WqX W<X WyjX Wt&TX WX WX W-WX W4X WjX W$X W@X W);X WX W X W *X W7ΕX WfX W%X W8'X WHAX WX WT:X WX WX WG~X WM6X WNnX W'X W8#X W' X WJfX WC=X W‚X WX Wm7=X W;ɣX W| X Wg8X WX W"YX WV[X W8PX W?X WLݬX W̧X WWX WX=EX WUwX WX WX WX W!/qX WFX WX W4oX Ws/X W7X WB X WV1X WX1X WX WX WIwX W lX W[.X WKX WKX W6FeX WwBX W{hX WX W X WX W8X W:"X W"X WX WX WqX W#X WigX W~X W%X WّX W}X WX WSX W)X WX W%U7X W6X W"X W'X W X W<<*X WSX W=X W'X WUX WX WiDX W|X W4/X W|VX W5X W eX W~X WwI X W5X W-OX WX WX WX W>/X WeX WFX WX WX W&X WX W"RX W+7uX W2X W  :X WoX WLX W nX WX W߁X WX W !X WXX WX W'X W&X W|X W9QX WQX W*ޢX W)X WX W.X W+X W$ɧX WTX W>)X W 'vX WX W.X Wj*X WX WIX WW\X WxX WHX WX W:X WSZX WX W;K X W/sX WX W2-X WBX WX WWX Wl X WX WsUX W9yX WhX W3X W"X WIX WNKX W5mX W5pX W$sX WMKX WUX W%X WXX WTX WE=X WX WX Wa[X W?X WnX W#X W}X W~X WX WYX W X W;X W*X W ȃX WwX WBBX WX WdX WVX WEX WX WHtX W.GX WX WN X WAX W?tX WX W1dX W1X W6X WQX W'X Wg X W,X W X W X WI;OX WNX WzSZX W[X Wn X WY-X WX WTX WTX W>cX W9X W X WX W:sX W$X WmX WXX WXX WURX WX WzX WRX WX WD=X W0,\X WʆX W9DX W5X WeX W*ZQX WHX W2X WX W$mX WtDX W4הX W X Wr&X WX WX WOX Ww.X WJ:X W-#X W% X WX WMR9X WLX WLX WX WȱX W &X W5 'X WBX W;CX WX WnX W X WX WX WUJX WXX WHRX W~=X WX WX WX WX WX WFUX WcX WX WNX W5X WX WBX WdX W,X W .X WbhX WX WX WcX W =X WX WNX W6X WҐX W<X WX WbMX W X W&94X W7X WZ$7X WX WX WRX WRX WX W߸X WRàX W' X WTCX WvNX W>X WDX WۿX W!X WGX WH?CX WC?DX WX W(X Wn X W;SX WSQX W;UX W*X WkX WIX WX W\X W X WfX WwX WD0kX WX WΊX WQΌX Wr|X W,dX W,K=X W#4X WV6X WS X WE X WUԗX W TX W{!X WX WX W X WX WƇX WQޚX W_$X W2S&X W_X WN76X WښX W X W9OX W>X WœX WT"X W X W ?X W?X WY#X W#X W X W@OX W*X W*X W_X WBX WSZX WZX W-X WX WX WX W+GX WVX W2pX WX WX WcX W JX W5LX WGLX WoX W[X WX WGX W[7X W X WZbX WXTX WX WX WX W^X W;}X WX WtمX WX WX W X W7X WD&}X W,X WܝX Wf˙X W= X WVQX WX WX W17X W+X WQYX WYX W<X Wx,X WAX W9X WiX WX W?FX WK(X WX W>@X W/X Wt+X WX WKX WMX W X WoJX W?X W9X WX WIX WRX W%O4X WIX WX WKX W X WX WX WX W)5Q+"-R~;):\*(Z\-sG%If M'&cSIDqh$ Ln$*VqBN(N((Nњ> (I+"-X6,- ",6*!p$(+W*8b JDh{* U~ )5W.W0ۓ";: WJ f+"gg(Ohճ' V˜5F}5F5FL5F5F7MR' ^*'cƉ(5E!!j&;# $-r 2U-A&& DL*xZ-?W"m7PdĻ# >8N$WĈ!+ >g-z+@#nW.C/us =.`-y+TƑ3' Х$e,L{`-?< FA}EFE)'x/+?Z%.(..B-] %5Yf$%Ro&*@P%y}X%WM[%p,WX^MG%hyX%WM%PX+WM%>DX%WM%khWXGM1%.}[ M%oWXGM%qX%WMp%|f}WXGMN%~y$W M[u) ?|85Չ$)@R&H יqS.fB.V) ,j|) O?"f-"c.QLV(( n(|2}.) SD`'H$[$9&J>C$Pv'rH%U+$.) V&Cg @?(L/tK=-$qL-D+'ʣq+m S-z'D yX O,#K;z 7sO*0ϲ_OM-[ .eGSXW WU#P)Z!(';ʳ >q$9[<&S++ig+۸UQsLz)&r# dOIV/Cw)Mj+)P %B["1"" ӀL,a>S '" S i?-Bhz3N=~'G9'!(]+=V5E&0uϢ <) &Q!E.KLH0E!T "F,)@-)1_#6#  t.M"/  #(jpQN&T B$ 2B$+}փh k''," )2$ #)߅,G|:)#Q!Vt-.Dx-D@-* >(I#W7;$1IVKrwHA+~% " X<(XE^ntWE.PW!4 ?`EZ+~ *+~Wrrvm.KhW& ,#WtYXm8"rXkZ<% g` f3X ,} ]#Xd& W *WX I'pX` _rG e$_IW+~WWcX>.N !/,q X  Xf'Tz +~@ +~WtA V&RXw+~ 8+~ +~X\LX3W Fa &R{XMl] &Xk4g +~WS9W +~ e hX_Wc1_rK^r 6 -3 K. W$:XyZr]r+~+~-toXE0SW_* 5oXO_r] ;+~ Wrt   W I+~ tXE+~WqX5.KXE +~ Z_k' y)z*_ t&R X;XNXbXW7BX2SXp,`W8&R_W}S 4 )?X6_% [(] K. S% W]!XDtPtX.KyX%  :  +~WLtWXO-+~aG] JX*XrdWQzQm s+~Wf.KW =+~ |X)OX .KWW ] 6iYn\;Wo ~#- ,%D,`W_W +~ + m d#  }+~ r*\$Dg \ W= .KW pr *&W+~X*tooX:SX<0'X}->Y`q K" A*MW ?]U+ r-! ]_A  *$^~X] +~ ^WZXT +~ ] +~G+~* r$vs_ 8XkXqL*XOpXF+~)+~  ?$XF.X'X +~W%X ^+~XR5hWcr +~ ^aW $+~ &_$] b+W`XE.nXPL\+~ st+~  &(  %8X  +@HXD+~X#XE z+~ s _}[ ~+~ t +  +~ I a- % ^X2n IQl MtXu$+~X8J.K`W.s1WqIK S] 4+~WVXW_5"  "WXgM >]TtXs+~XG&We+~WYc `+~W \ 3 XX(yOW#B<W,`W$R +~W1+~ K+~X\W  6W +~W_M]  +~ =zWSKX. ; ~WWJXa 5XE_L& _ } tWd \Xky.KW+~++~ ,|WT +~Xc&W\$vs%+X Z&RW*WI$Xa_^- ^$/ .Ny(AmW_] ?W+~ _'.PFWLD$}+~X%WY*urg*W&Wt _%X Pg md+~SJSxW`/&WS(r] SjXX;,`W#* 'X}n WtRXW - 3 UX({]iX0C+~$ ! n_#] <S=WV&X#w_)*D ^XpK{+~Xl%QX) <+~ > Q$ UX+~XXa ++ ]+~ B$:Xh + 6W[&X%_H.w &R +~ t EnX_t#+~W|({]i W%XZ(@X(scXw+~ cj(vWM &X v|^$*X,+~X+~ ]-] yW%.Ur# n+~ ,"SJvW Xr 9 &   W +~ tXX  NKXO)''W+~-`*M [ '++ [+~ IX   +~W  tw 9% 2W} O.'WAy7XEW <JX LW= Y+AX\+~ t\ 8 7 W+Xa_+~W ),`W@+~ )? HW=t! r 8.5!S 'Xt ^X  +wt  = " B>] WrrK  XL: W % ; +~ 'T ,` d ,`W '0X} z+~ _t~,(v4.W'+~ v k G\X)_% 'pW{  .tXI ?d 6Wr] ,`W+~ "X3(H Uc S++ U_']WT7,W,`W_']W +~D_! Z<)# z&+~ y#WXX+~ BX)T 5_$x^Z.KfXA^TWgyWX *dRAW"(X$W(ky\\X%,`WOt Pt~ ]2' 0Ctr `"*MV' W rMu[cXASWQ Ed> |.K`W_tA.KW"/ SLS(W+~.)~X 5iQH y_;]$ c+~ mS)XtS h+~(WXF&WL>] `%rr ^+$  ,`W.  - Yh(W_"{^+~  ,L gX *<XZ ++W+~X-:+~ 0t +~8+~ n+ _WF)N < *']Wv %yXW.tWx+~W@+~ .KW^=G W /K)*l+~Xv3$/.K XV,&R2X<1r X)*0WL9%Qi.K X_. " GtXB_$] I'PwXF$>X9VW"zW+~  tLxW,`W*SW 2% 5Yf S)Xs+~XH  N+~R*&sLt >2kv$' `4 +~XZdW]rAtWWIW.KWX( +~X L,E)WLP "X) * +~ VXJ j.UX' +~_brt B(" 6 M_L/!)nW)?W "F'  "I o)?WscWh N+~ 5z +~W))+~XpR4V!4WW(kWPpW BtA ?tsWw )X)? 0 Sd mX [. n,+~ X +~  !z" 5u!PH)? WW-$ZCX_(k  p+~ aM'@t!WbW,X+~ 7"W_ ]+.K $xW.KXN$vs @]# /" ?&7W o+~W_W= XdvV,E u)F.KXi =X0'X}/; Wu+~WqV LtW +~Wrt +~#+~[b+~ +~~ |+4W% +~4  D+~X4+~ M+~W'WtW1*;.'W)2+~ Z,W#r( lXa ^IW:WSWW++ ./WXE{+~WW +~ Z ]_"*4Lr5tlXE+4W hK_\# &%.KnW_\ +~W)^X=Gk N + <{X c+~Wg+~ ^V :X8 +~  QW;t$ psW Xb 1+~ K U )sX*Q J  +~ #61WWXW& n+~ e_>']XXS8X#r] AC+~  tX.KXkcX  6y/ +~ <gXT\*M T&X 1=  +~ @'XvtWlBW " J`q J#'XOZO]# L+~  +~  ,+~W\UW_] -_m yaW \lW_$/ /+~X 9r ,pWtW;]$k8$" 8{ W_.K X'Pw y   Xq tW dM/ +O*%XO! _$](- {X)SW,` +~X!<WoT 6+~ *_t r\f#+~ ,Sj [$'Xr v% dSW. yaXL] !tI$(AfXE++~ [r?X1^ ,^+~cL+~L +~ +~ X+~,^.KW >` 7 3;WZW}SW)tX r \ _ P!P%W\_ W XMc!z"5 >qXG+~Wy_ "W5W<'X}EWZ /+~? Cr8r .KX/+~+~W+c * ny$]p W~YWu+~ .P L+~K.{r  ]#  &RXlEtX4J 9  X1    F&R X<V.KWSX_t R+~Xc "_`q^_] =K+~W+~XH0)^WX? S "(X)A+~W(HW=&W=Xn , 8YW++  tWb * EzXD_JX) '#  Sr  *WSt :+~W +~ +~ 4F 6W{Xk'bXnv)?5+~Xd_d*] +~ 1$ +Y * MSWl)qv5c  %; V/ W_rr )+~W X})W K _4r] +~WS6X'pW_rd`(* !4*Wg. +~yW^'FT f+~.~^ZX$- Vz) B`3 $-WK(WH#W%X(o) S{'b X]"KNOXSe+~ _"}k_g)" }X +~_*U oj]tW6)XZ+~+~XH(+~+~ +~ yZOr] `>  <+~ s V %cW.KX}=W 7i 0&W +~ AWrfK tXgZO;]$ o K+~l"rXkG+~  )] \_[W X.W_ +c !S)VW*KX*W s/! eX+~#WXX>]W+~ BtXtaXr/ "++WbQX  +~ Ux]~+~ _)" M|)?W aW!W Dg 'X !.K.X<Q% XO +~Vr+~ 4W h+~ +~`3K ,`W+~V7XqtYWztXNr XvX+P 0T>XWZRW++~XT1)?1&W +~Xm1pXF!z" 7.%WaaX1 d [ r dtW &W,}Wl&RXs8+~tWbQ 4}* /$r ErW XOV@)^W +~ [tbW+~)? 1'X1dy `Yn'Wm.XO}t~W.+~ .9XMX h*W"vO , pDX^  ]VW+~6rk3=|X S \-o_]k$kMrt .sZW_t$XO P% 0&er.n )# "e +~ +~W+~W.? n+~XW.K-X}K YW,LU% T 5r] C :_vtX6W_|' O ? fXX2/! tX_jr `''bW r 4&Xb:rXW !++y,`W$W S)X +~WV+~%=Q']W|}X)_D |W. S-r E,}W+~ o ,}L ^)] _v6 V,!X &_-9P >__$ r] & Y=W ,W  QWb%WcX)6XNa +` ']W^$](XOX2% m&Wm+~W{+~ [  &W6+~,` +~  T_$](~SX# "XbW"vOX9Xj+~   vWPW+~ R Wt ,j [* f +~%+~WoW@,` aX1. &1 8M+~ N+~W $: X'%W ASW B* +~ GX5P XU(AfX;B+~W_r$]( !RWMs - ]XL+~X K\>]W_r]L+~Xl'WbWc.PW+~8rX3+~ HWS='W%$W Wkd]%S-3 4:gW JZ_  =G +~W W`+~)" 8 +~MW)? W$tsX^9X= )+~W Ft =^V.KX/b+~WWc+~W'WXX,%W+~Xy\/  +~Xd`t$X+~XyRCr8WHtX` K `C)" t Y_r] >a 5\X M Z'%X<+~Xw XD%X.K`W`2* DX<DtXDy.seXbR L&RX".K 3SKWLr]  tXaX +~W+~ "[cX2+~+~ 'X#t t +~ *v #++y +tXu 6}B #61Xu=W #61WT,WX#Wd+~W] sXb #!W.KXE!W()"t* ?)X +~ 5%0v Q.KXQZoWh_,] iT ,L"+ &1X}MBXRXj +~ +~ @."W \r st. yJ;]$  tX_X WQ!z" HMPr '-TTm K v XkEXh X #r _]' #W:  +~W$  L=tW+~  "dX$LVE+~W+~X9'X k 'W+~gL+~XKsWe] +~ f+~ n4.PW-o 5 =X .KXXY^t]X\8+~   E  '' qWSW B+~ +~ ..K _[ X V->X$';WSiWX<W>qX} B +~Xu)?W& !(X) g\ '9}'W RtXtW"+~ z B?]  +~ `,>]T+x]|vPb,  +~ '.KX<BaNX1 6Z +~X#tX1r  skWFW}jd]% 'IX2H TM Y*W 5W%'X#S$vs +~y =XXX.KWg&MX )V|X)`D L /!@#W_u )Ny`(W*$ '#61WCr +~WW * Hr uKr {^QX <|W$XX`n 5 >] _W+XeX>.KW +~^tbXXSt MX.3S{+  <X)h&t&2W w | E xr Xa+~Ww hXO.Ktu_ ? IGXj #*Xn sW+~Wb+~W\% Y\*4X@+~W D)tpW+~l+~W#WW Xz+~Xmr&W,`W$'%.KW +~ BtM># _(HW+~+~W!WtX4S  N7x,}WW W&W }S.2 Xs Z a  t~Xaa'X2`;WNXX+~_ X4$z +~tXH,  "7  (]!K+~? r +Ny 0XE`)%_;SV #W # XO5 ` XO.P 4.KfX  urfX XF +~ <N.KW+~XT"+~_ %LWX y P+~y ^% !; o_<%Wyg {#.'Xy- D&W P$y@ Xk+j`>]XyW Tto+~WJ h K% _%Rto   +~ +~ 5Bg j$:zX}K l .K4Xi7tW&nJ+~  Xen*; 8+~l 2$K&R{W !M  WXc+~X>t "z R'WH.vWu.KWSKW%W_ir8u g, ISWr= +~X6W {s'W $]( X +~ Yn W<X!,`W=XOS[W3+iXaSXaR XqY>` '!X.^XF i bO1 ?W!PWY  )+~ .)? Q( 0+~ /"X=# R+~_U :W >XW  T SWT X] EW,`W D?] 9tWtDX&!PTtXW rXkD!z" [tW bXb9+~^VX+~W_J EM+~ XXT+~ M , 1pX)tX'+~@W=$*L2+~WV!WK)*D Met\ 3_)" +~ 7HW#!W&RX}L X(x?W)W Zrc & +~ D, %+~X~ J -XD  +~# #+~ n_*d2 'I% ftW_j 8t  ,VE>]Wr _] L&WW%X^PX !+~%R _Ts W!,}W  G ]aM  .SW+~X4 .K>Xo yJ+~W9$' XR , 6W+~ {|+~_'T_w% +~ "V']WV] %c  ?^ <JX+~ V%\XUdtLW+~X* ?_; :. ;+~^y-XKD * l.XvM a  .P  . \$RsX<NX:_S:` .Xt*W #! X1S&%$&R_W)*D +m _)?W*Wa t;W$ =-X L)?Xj \  WL ??XWR]W$:WW+~SW >` 8' $%W jB 4X E+~ :'WF+~ *W\3'h &tXN.=G-l+~$'!WK!z" # u(AmW e+~W2A {Z _-> _T=WX  r ^MW*<DCe   F E 'jX}_6(]!Q+~ .KX +~W'M` ) r] R+~x] + ]+~W^t W t 2C.  9+~hW'WByW [ J.W ")O+~Xm2.KhXe+~ K 9RtN >/ &RX|WI=GXeQ)W "IX"SJX) $:^L%RS)?W pX5Wk,`W+~ ,`+~^+~Wz&RXWL+~R*r] ;+~  n+~^+~ ?X5+~  Wo#hr{- MX5U E ,` Z dW!k +0yW+~W_]Wg+# S +~ _}W WSWE++ _d]% $,EX ;]tLqJ $Xr d QWrt X1+ 6bWr oKX<+~ O c W&RX_$vs Xy ^)`4S t+~ M.K+W=rr np'W'=XhW'p y+~pWJ* b*X=W n+~ rSWyWy sMW.b+~ .K/W.WSYW,] bX<  6\XZW$W4tW'XbM%9  X2,t]Z+~W+~ _']WL% 6 XZ` +~ JtXWWt!X4#] ^=.K"XAn']WWj+~X*'P/! +~ +~X5_@ W< !z" &'W.oWO "Xb_QX%.uW )X _ "  JW% d'nX} k t R$](_x$vs  _>` $>W_W F.sZ N.KW G)?Xd tWtWXw3r~ %"r 0%*W.X +~Xl!2X  +~ P&X +~ F ++~?9WXtW+~ +~ _"vO ) k +~$ b +~ ^+m _7WtlWU lWJ'X;  J_')"{5W-W_I*] i9_j 7iW  Wz |X~O $* ^AW6+~W WtX40+~ =8X=m'XHX(\6.!XSo+~!:X|M)+~cY /  eR (+ XXUL, X^ |-9Po }+$_/ k+~ _R*M )rWW+~XeQr +2WV+c 1:WaaWt] =o "d <tW WM XK,`W  6 |Z+~+~WNtW +~)SWA ^\;,@  ,X`W 1?W+~  rt~X\T'W." $] #!WO1 _+~Wr.o &Wtx WBS8W-o  _+~W[>$^7+~ )Xi rt(_+mJ _v) .PQ ]%0@X2 rt&!X2^tXN. &W.WWgpWt r~ f_}K W+~ DI{WT$,!XO 9rY =_/L n=h ^'- +~  ] =+~X> VM+~XD`#X  +~W+~ X]#_rdX6+~W#!*WrX [ +~ Xr}+0   Z : )VX)HSX* "`r] f  v6$X2[+~X3`' y^. _+'.^ y "r?2pXF +~ y_# g\ Ei XQ "W^iX  #T M t Eh+~ vX %fr#LS +~W$/AZ + 8+~X@ :4W"vO 'T"r?Xk @G+~ r8 W+~ mW* 6 IL- X) +~ ]K.3  D +~XS'X} h+~XV!X! +~B^\ %0@X W:X{S$ZW |+~  }K _' g ({]iW ++~ _P?] 3%=XW .K WK+~X*++W,LXH_[ Y_'(2rX5 /)2 Z( ] U  7y X<_9']Xj+~W  \ T]X. +~  Xb r2X#Z)] Atr Et<pX)!O q+~WlW+~X&}+~ Aa*Xb=XE S R+Xb'W+~ *'X' m W x,`). r \*]^   .o   $.UX;+~X_2WtW$l 8zCVd']W +~Xc=XO W+~X*(  _E} !W6sW &RXENuX),}LXO^ c)W.KWW g\ X) *] .KW=X `r8 )A  ]W'RW+~ er# ^ #W/9 Rk}C,L z+~ J+~W'F]#SQ 5 6   6V.S,W_.N  ,@W 7Wc,`W* X)+~ +~LG( e ~)? !Y   ^.KCX .?  I L)?XY+~  +~ y,` D VX EW+~ /'X}_x] @%n n/!w)?zWX#!*XvZ?WtXE+~ k CW  QX  [u' &Z 'X}&  #'Xd* N<tX ?Mk+~Xw_c]  X^X)&RX;YrLJ $kMXES WW+~@': +~+~W {XE+~BXblkWf+~Wo.KW($ +~&X t &)* ?W^.KW'X+~W)VW ~LW'p 0#)X X,`W&-cg  W+~ ,^+~t.X .W_-] T~j#W 4+~ S\WL W XEr J-t+~ S[WtW. 5]" B-o 2 +~Xp+~W W+~ 7W,+~,`X4XIx'X_%\W`*4;)?X%)?X9a P.KqX(R+~$>+~ = +~W+~ |+~X5Wr dXb Vf#:$:Wn+~ c y /'Xb` d]% X) +~ p %. /+~X< 6qWsjW-B ?lc+~ yv kXn$>  ">B+~ ^V'L CtWy S< n.s <Wt _yY V E 'X W +~W *M   +~ "rX}. oE WV.wW_rT *MRXE]#_K WRKwXj%nX  ,: +~X?% 5QSWSW+~q+~ p#W{ +# [+~ *9SW_+~tXE> X-`!]' _! +~`-tkW +~  X ~XKZrXz`%_X S^XkRk.3S ' U.#0 XaS?DXHGr P&X $;  /!X= t @+~4r5+~  X +~#W+~ ftWvt 6.KXE} 6q  +~ VVf a$9   u W*]+vW '+~L ya LMS n].KeW_% t ,-   W`!tW "Wp$:`X| *iW +~ =\@+mJ4+~X[&WX}<*  +~ yW&+~ : &vXbXv B 6qHM+~ >` n X3M+~W .! `+~X_h^>] '+~XGSO+~ +~> X)+~ @W?XXt|W' XZ+~~}  +~ #] e6tWQ+~ '(";+~XdW)= +~ T X 98W)+~W#X^ @L!z"A,`X +~,  XOK.js`8vX+h! $.K.W 9&W G%*tX_ tXK`-rX%h "7X2&+~Xm ctX'-r NAWKt\\6vW[W+~ W!$WR Wr r6XnSXg,.jD-+#X)+~  +~Xl_{$6] ' W_] .s1 Ny 4r  +~Ww+~ 6.KWW.KCW+~ )Hf W,`W rXr-K \tWr $tSVW X.KX16+~W+~# W`+] +~] + +~W+~X#' d & @+~X8tW BrT ,`Xe +~X@X2^.KX@+~WD Xk  S\W8W++9   G,`KX(?WX}nr[ T%xrmX)x+~>,W^*M @Z}c2t5 }gvXXj *; 4+~tDWXOQ'2,}WD lX * IXM$X[$' ,+~ (  [ <JDrk^-] A^WG+~W+~ 7S']W>]X+  e)?zWm+~XTn+~W Xcr".lXO O+ S X X~%.KW`w   '9 WL X+~WS |X4d y  \+~BL'5 YdX  6+~ L 7#- {_C, +~W X? t <j,}XO.P=W+~WW_t e -+~X{ 0W)fd+~ Y( B& j)VcW yO  HW_! .KWmXKW HXE{VcW X Q ? * t WuW+~Xl N)2W4+~ ZW Wx+~X^`,X r NW[+~ JY f_*M_/ W[f%W+~X~+~X^0.W;tW cX:(AWE+~ !4* > W& dN$XX +~} *'3Xruv  +~ (L(]' !w @ctXa &W +~X,i$ @,(HXS WUgon:tX ^rW{+~U &W& 5)"H ')Z+~ VL! 1C.~ F$lR$l {_ Jftr Y  ]j$S (AWZ 5+~r #+~_']W'W Fv  * ` Iy dFW X"`@.3S `+~ y  Y+~^' L']X0F-@W_t4WtUXi%  W< 77WW(]! u+~ :'JXtSKXbH_B)] =b+~Xc$ WZ_y+~ +~ FTW0tXj+~IX.N )bXP#X M~+~ `9T (X)&RW:+ )s+~XS,LW Xa'`>] +~ r$X+~ C+~%\ +3'W\ kyX1_.K_] *M0 Xa}&UW+~ > v +~Z +~ NXbT$ `< K &W)?S$x zWQz%RX~(+~  Y cXL"PW3&Ry1Q  ,`Wt d-! 0 rX+# X^ NS$ TW Lkr85+#XWPXW+~ _?,LW+~ . .^'WS" M] )>W+~ +~ y+~WXRrt _hSW  *+~B&R OW'W']X0T_%A pW^\;!P ) D#K o+~ Y-o_K jg+~X5 N,`SpXFtr u TtW\p*U FEWI d+~ /1s dy.?2Xby  7)VWr+~W  v%+~ E +~ ny0SKX^)W+~WTPW Wug h'WX{dtX i $S(Xk+~   5X(7+~ 7?Wr( !z" _F~+~ y+~X l @ +~Xx+~t jB*WXqIW*] "4WH'W SQX\ by 7X&X  " <]W )mW?QH    ,`W rdXm WBhX)a+~+~ +~ +~X ?''<X}%r +~1 7V)?X]+~ b+~+~LS |S +~ F+XM^.K4X+~ 3'0MXO X BW P s']W XN "X " d z+~'W6+~ y{Uz9 G* &WW &R~(X)XuW U 7 rX8.wQpW O#XXX i+~X.y7 H|U%yUc W\' & X)X &.KX +~ 'XeXWZ\ _t]&Xl+~Wt +WV X_j$ jyrW X?)fX}\C-9P1 % &)?WL  +~_+jy`H&W Xb W< @WX%d]% _ <J++9 _*=GM+~ E`0)^WTm I. X tZ4*KpgW +~W&RWSxW+~W[+~Xo2'WQ+~ MS+~W+~ TX<Xu''W[t  9X:  d /! a x=W X  hX _QWR +~W E+~W +~,t U.KXN  \ aM|W@+c ol'wXG+~WV]WX +~ Sp+~cX. +~ +~W6W+~WW 'W +~#/wW`*r*L[+ f SX<qqX f+~ `GCXL% i^gW l N WKFXO[,#{] (,}:XOSWW *w% B I.KW vIW_`t]'{X W-4 6}W'0W+~ .8X}\ r+X}fy zr#V$Wz+~ +~ 0+~W%W w* W x+~ GK)?X^' (X5\_&X$+~.sX"lW^oXd#zW9p $/ V'' H&WM]]"tERWL=G i-#WC 5 hj$] D SX20W.PTWX~"+W+~)+~ fe  v #++~ 5,EX2-7XZ +~  "Xb 'Xz'XcV+~Wg 6iWLwC $+~f$:`W<aW+~=#W6+0W.+~~to #WT* XE+~W .KX`+~+~ "+~ .s1W+~ qZsV* !W-5Wm&= :Wr  *WyXa !+~X+~Xy,:W.sZw[W6+~ ?M,`W'J er~+~ crW>I[W?d\Xb "XPGr  * +~Xu'$:W O+~ 'W''X}0+~WSWX XEX<R+~ _  -=Wh.K3XN 'j( QXS)+~X.KnX}>-5XItW&Xa D>X=`: N/ SZ Wr y +~ ` W'XNXjSiWh = G.KtW&RW^'$vs +~ +~ rW`&t] %) `Xk_d 'X}_"a =+~ "+ SX|-X`t\ SX G  tW+~Wr[X/T tgr; o " K%-3- ^^TTt]X#~9; ;#] `lVXE- TW+~X=Z4%A x E *W#-o w]# .+~X@ :XX2r] 1aX1,+~ XD o&Xt^M.KW W+~X#+~X  ?sS .KeXT?'Wo+~ )+~ . 6 p +~  rW }/!  _\  &A+~WFW=hW+~ ;'& 2 B vW Cgt\; F+~ +~K'W+~X@  \W +~ #WatXDO+~  +~X$* tX "WW-Wr{ +~  WW* r]}(  S _&X  j   " RcRW\WI  `8TW"(W ar _'XT.KW )?u~pX,.KW +~ <W!?+~Tt]X7B+~WW ,}@WWPXb)X$c.K )3+~ y ?_r B=^Wa+~XgMBW  kRXkZaaW .,`W*U .j K%y+c 5+~W +~'XS. h(AX; . 0^!z" Xa{,`W% MX2# s'bX} P% >V+~ +~X+t !tXE o+~Xn [W CXz KX _ u X"]X}hW+~X) D* 0_. 1"vO +~ #  y+~ WX gRcW5 rXr u XsA' "_2%F+~ +~y'gX_W'; XcW_l]" 4 X L VSXkVX<}tX+~ fW'V!W+~  ],}}+~X3]# FW)?WQ'T .sW++#n b}{_'X"( % +~  O]  PG =2?X  l;  n  %\k+~ 5 +~XS :__r]}+~|L .P _*[j^rXW^ "uW+~  +~ )-> uEW?[Xk+~WZ& a 6VXO+~TWS!P,-XkXX .w+~W  "XvUSiW?XM&W- _! c ! g+~W +~ + '% ;yB +~ <+~WUt\X^ *cWo+Xkx+~X%$.KXa.Xq) " X +~XR Xv Wc) n  r]U_-C  BvtBWXW+~ 7jD `\XK_vX3_7$6] m+~WrY _*_.!W_/ Y% +~XMBW  W.N NX9 !WW"" *M _W\+~ fQG-] EXT- _=&y sW r] 6_]#77tBX'7X ^.!W+~&W.W#0' +~ U #+~$+~M+~Wtr ./tkXXQWS'(_N.KXV#Wi<Xs?W,`W P+~XZK' Z+~  W)* Q+~  rSx+~X$+~X4 +~5 - 'Xb$+~ r[W'z$GW  %^~.KXy _ h r.WH+~   %] \C u_$/C_#D) =Xb +~WD+ r` ` Y  ! Q4 *d S+~ )? f sWKX, ? ^\ K 6V ,$X u+~W+~pR+~WN+~ ] X:\}X7.KW "(W+~i y +~ \ / T 6MH+~ ^+~ ,I&+ ]{W(WW^9WWBSWWr ['X\,` nX+mJ #+~W%^*u 3yX+~yTMWL]% Lc W+~_] *X<+~ +~ +~D_( g\ ',}   +~X3+~ z)VX)`5-3  +~ ))?W~t] +~ _s)" + +~ d X+~ E  )f +~  X] . W +~    iM)* t3W  _te S +~ zX.v ) 3W`6 brD .K/X( +~W +~ r+~7mX W 9.X ,`Wr aW$kM $VF d`I[*WW+~WFW) =~W)t. _fW_$]  ^Q.KX&b+~ k}_')&T<}W^W^ +~WW W @%XX.KWS"aW#W yT  +~ +~W   )'+~ b+~X~ +~ dZ " 6JXtJX=$Xd\X!\# Ri XM+~ ^SW!Z vf ">X+~ $vs { P+~X +~WW +~W+~WFWtpW  +~ V]Xa* FW+~~+~X Xb`+~% "WX +~ +~W # _O1 W+~WL vtWO 7PB=+XaS,|X2cW+~WW_* f XE V.KW$Q /!Xg '4 a `X B+~'hXXn  W*-m*W+~ +~ cRWWO XE lSX7*kW_B \QlKWI+~W 6\W \ FW l X@W_ lW9+~ A+~ C.KWf'W .K3Xa4 ?(WXr ({]iWSW%+~X6)" WSWP-#XE+~W LX2P E YW )C+~W$r"XO lW ^) +~ `pX mXb _' ) -.  VWDt 'X-})N E.) 0-VXv"S  ?hW_' ..uXD'+~ .se 5+~ z tGX+~_O.KeWSXb t] ' G * _   F+~ j"rGX}'X> $W 'j  KtW'X)&RXRX <'l_ X% ' ^[ YWc+~XI&XM$Xl+~ `x]*`$]( Y:nk%lS  . , X)Z bSj t LB.KX%t V+~Xd_\ W$ E'X/+~WR+$q$ +~W/CX} O <JBP+~ + # K_)NXxa =SW+~XQ +~  XbtAW  K] W-]  L s@_  ;&WY$;Wr{L* +WX6;]$ XBvi<WF#*% ,`Wr~X)e$:W9+~U'X}X TtoW  SWjW_  %p IX`WL+~X!2tXaX+~ -+~ f  Z$l tW ]#D) 6+~ Ci +~W.X.N&  LX `A ` !+j NV#D)Wq,L .KWtA , \ S(]! (+~ tW +~ /  WX o9+~jX*Z\+~.:"/W`X K) +~ =W !z"X *r r"r<+~X cle(vWaWr UxW!k k;+~3WJ_' b+~K'X}^ .KX0tWWor n' _] XrXt]&W +~ p_^eXP.X`'p  #i  +~ .XFSSXPXx; W+~Ws  BSr K   ]+~XYL+~ GX _  `j+@HW^UtWXjcX  XX +~_O1~e^ +~XY +~- +~tW 2x]4 4&W*SVXv.XF_ JW_YAXe_ZWk.KX.KW 4+V`Ft] sSWSWSW +~  8rW,}@WX0pXZ$*W *2XY'+~ q+~T X+~ z%8X r %W-q.KWW+~WItW d%' r+~ aWM.KW+~O l_)= !S)" +~ y+~ /! L' Ut]Xe NX{%QwW5Wh'X   6 +_G  u+~Zt~W.7X79_ ; NtaX tX'8 ' . -> $l.KX Kr I&Wv=H B B/!= &  F7_S]Xn$  @+~  MvVD_a_ ~ .K V`=%8WSWa+~XE;W+~ rMWQ( 7Q#.N_+~ ~+~ t++~W'(XmX@ kWX2+~WW,}}WS'5WH* tL ?xyOWW HW + F AtX*s k*"W7 'WI+~W^#0 o&RX;'wX)u+~ $?t~WT rf# T "+~W_>] W:r=  tw _0 b+~XH+~V^+~2+~ SXb_)* g'!WDEX"+~XRm+~4x \ [ ' XW$uWrW[&RW 6 pWlr5 o+~BtvW+~W ,} )r zUWR']W+~^jX!tWW`-5X$Ra K ^)X6%5W WX &WT:Xk#WM+~W_ ]W* X7W   6 x] +~X_ \"z L#+~`.XF3WUt,  dX'FX)!</{ +~XpW +~ ,`WL~+~  "XW m+~ ? !SKWtX W S 4W@CX<X zS _o/! F lMy X).? _$ZW+~ ZgX)%  '*S*  W8 W#Wt  tr W .KXD&Xp X.&r t  ^M+~X W W=tX  +~ w+~ E n+~X$ Y +~Dk# SW(!WTm K,X.+c1 0.KyWO @V MSW\X)&=^WtX5.nW])cW+~X%]+~ 0X W+~B+~ I\C$6]&ZEWU;-] X *dWU=sW 0 $R $^$:WSUL!k   rX7W )" aW$Z t r] ))"` WX+~X~.KX%'  &W*W+~W.XI}X=\,$] $  PXOr'xX_' { } p#'%Wr_~r  XE OrkX _htaWA 6 MU)]  >  JtRWnvWWu*+~ .K_X+~ { 6X!g(.KWW+~+~XY g+~ /! tWrS`+ L_)= n.P )+~W*4 0pX5g ,uX}_8 X3+~ 0+~W_f#J 'w )K+~X ^4 L W+~BSXb  V>] WW 6}^gW+~ W-SXb'X}A A "W+~ A.9XUT.KXXL*r ?6X' {+~#r )?XE_XtrW+~wW+~XZvXBQ  +~x,`WwrS1SQXb yX  W+~Wt_5-'W jXd'wXkVt(W +~hS.KXV { A gj ZN,X_t/4!Xa +~XSXb O+~Wtpn  .KW8#0  `$_T!+~Ga(Rr <WW $vs GMr W#WWXr p +~Wa!k5M:Wr sW >,`W i+~ H;&W*(W + S,W:$9X2SWrG LgW`?Z_ Rt_,  ?W^EK( m*W, cZEW)t]  utW_Jr] R~']W_3naWI]# !PXOS" +~Ka)?WX Z! q_&* ' +~_+WK`tW_&  )?I&W^xWZAc H+~Wy+~ +~ ez+~' YL)*  +~f )XWj p 'xX14*W X]`.Qm  .K+Xj'WWN k    p XF=X3XO+~Xr-S 7.K-Xkrs'X)ArX!yXjeXO g,p x T]#6_e.q6Xs} | "W*MQQ ^ZrQX9)r%X(^+~ /!I+~ .+~ HXrm  +~  ]+~W_=GW^r  Br `U+~X\X M+~  Ny 8 ,p MIXa#W+~  tx] .'W+~  $>W;W^  %gr~W,  eW' ]Xb+~)nXF+~W+~ . +tWL%l zX V&R KW +~Xx+~W+~ +~ X "3)SWLWD+~u` [ VCXf9X$XML&$6] #XOyt,"z' o_ #] V ']X`Xk%X7=W_[t\XYW*WWgW  r % sXj+~3 y+~-i*;.t+~ +_* tl)"    Z/ +~.KW )" 2- \y0X1#Xj,} 3T o  "t] Vr 4+~W_=]3W+~{HX' .KeX( pW  M^)* U+~tW)+~'b)?W^ _ 0X   n&Wa % L*S d}W +~Xc.W Q X- Xv_V.3S TX*W } Z Gr 4+~ L"a+~Xd +~  g&RWr v'p +~W&RX?]+~v.KW6WnW W]y *^./  +~X."SX)tt]& L+~ _aW|r >= +~X d  W+~W t! y    tLXLW3tWttX X}yX +~JS8X\rD *u *R +~X  W+~ y+~ tpXjQ;, " L'XC   \-,S+~ @\'W +~  r+~X$](_ X^] u$kM y$WX ^.KX/:yBX'`79 pK +~WrX3[ W ]T )> W3Xlq.KqWgrW c*K,`Wd- ` V n& %yX2 LM'@*WZW*XD  S+~  "K' BVW =G K+~ l.K"X y V(HXS-X.K_X}  i\BX:K' Xk^r mX % yXX+~B W9P V',]\"Wr` >K^tX `+~ +~^tWa =E&R2W+~ \,+~WtNV+~W_  V/! 'WZ+~ -* r# e+~=&RW  WD#X  e* G'W)&Xb =G F+~XZ+~  zr;VsW ` "X 6bX  Yt z +~WWX '  t(X M*U|>XhHk.3S ?`(f m$](%  \L )qWStXc +~ Xr,vaXDt X0_nt!O:tW  A;+~    &W_f1U WWI yaX,"(XbRKhpZX)#W 0aNW+~W0+~X *  ,tWX1&W DXXX^.K+~  g= ']XU ' %.KWrW*2WVr eWr } W_  E+~WMAn*u eW`r B KMr u+~ QR@  * P+~W_>]W{+~ ^& `)S3+~r +~ZTW "(X$\+~ (AXEKrr e0)W"T+~ 0 9d Y[ 'pW'XX) EX)X)NW W +~W.XF,`W+~ i  pW+~QS wQm>+~Wwt 0.K>WK% QyWtW-o { WJ'MXE X _,&W['Xb^]  G Lx  +~WR&%z=| ,tW-)W ) # N+~$i+~l"WL?D HXE!O*Z+~ ;_]"k +~W-9P t t]W XO+~WX *9 06,EWC $: Xd} '^ WT#!W X}'bW%tAX X%] +~ 4+~ rG Q$x 'P _ y C+~  2 L7W +~WW.+~X+~W}WW`$>]Xl 3*Xz]# X)*D  6O1t|X'by _ E }  `)* (+~Xl rT\ N&KW>ht _p# d gMyWv& +~ L& XF _"+X!XJ .\,]'  rSYW-X*+~  +~W  1 Xm WSW t$W*W )V+~ `'XYcrW$uW?%0vW'W,'Wr ) +~@5W. W6+j rX;Kot3X` r Xl"B+~W e+~3K+~ E@&W`6+~.`s :_(X3 ) XO1+i E W^_K  r*<D = ]_1']XF':t] R) +y Q=s +~ >+~ W#WZW)+~ k+~T- _)X?.KX;$]( &_) ,`W$pDXF  l WiWC +~WEW% )?h&X W_'5_& vt )^T"W+~W_\,]Q#D) &R >r IX)%' z!P  +~X% )?W+~ 4oW +~t]_N!4 Ew,}:.KX(K+~X[Yc +~ V !z" TV'j'-+~*,X.KWE'X;Wa cSXttUW_x]W"vOXX} WS+~  /! !s+XeW_* r ,`Xk8 )+~XT {r  m. +~X? s Xy_*MZ UW"WG! R+m FhWE$:X_M/XR'W_q%MTX UtX +~V &R & !Cr; ^+~ }&W w4- X)yW+~X@+~ $]( /z4 .   )XP_% X^ Xy&t`Br] ,E)X=X]`$ >^ XIRXuF@ /WXjX'XOL J+~ b+~|+~X|+~ 5WpQ E'XES6 VnW|]# t .KW%\ NcX )?XGP [ yO ) @ FR' _ b+~ `1 >Y')*Wi+~$+~W&W.TcW *S9It;X(+~ ^SW +~WqW .$/V'bX? W VW L'  w,& ST7jWW_W` K .KX0^ZXrY *; /. k+~ 5`I W*M X  +~W /+~ +~>WW2WS@Q _z'j !4 ^rW` $:s h+~ OW  E!z" +~+~X@ 'yr  )h+~5.%W +~ _+~ $.K )+~ Xk &W I 1, ; ?L+~X']W7 Wg .WUCW ) ) +~ +~-+~ ;+~ U+~   l Ll& 0W/! RP)?W^]WVr  i%  +~W,`WSXWi + L+~W +~X&:tXYXa%FW U%A V='cX}W+~Xv+$:zW_)" Mo+~XlX#W+~L+~|(XHU],&RXWI!-W u+~ YBW -] ^rL-] &PpXFtX`Xi&WVcWr6X SX7 ^$RX<fX:N. a L`q+~X]\.KXE7PXO  )?X4t+~WQ_L.KWPX  X [ ]Xr _o&  d`-] } : G+~X{^ W< UWXtW #W=-!tW " - 4&Xtd[Z3#]WcW|gW_yt]C WK 5 +~ +~W Y+~W+~XIWL#W_ W_:'W+~ +~ kZW&RW!WV)X-SX(X /   b`\ P^+~XF+~U+~ 7tX _?DWd.8W#!.WS+~XR^="X$tGW ,W)$6]+~X+~X+~tx d('cW:+~ V&WQ+$  ,`   6q_) ,, v!2_f# `    &X K. X X S*p;c$nD)t#[*^;l"6*,"Q Kު;,!'Hx, ('r,44`2j? P ݱNY*h* ?n)O$qWH++{%%o-DM'HF~' ^@'S9t %G,M F)S,l*)-%+'&n2 K]HN)MЦ"2#X2.P-B w-K)A$6"w0"N_%$(z#7.2[,= @Fx l /1t' =>ж-Dov;ATL"$q#Q+{K&9Q G5*! &r  z.yW 5 cj {vQ, (]9; FD7Kc(Wb#+.x K$w !+-2#pQ]B2n'H69+w] -Z%BB ,PnV'HInd;%2ܪ#Mz,A+a-;.#V *1`0$'~԰.2Q%Z F8+ cLM(]AV {Y cL `.y !b(W&W8hj\W*2ۗ!? St'Q5,,06U,m->&V  . %+e[QL5 jE#!?Dk QCa#r)|N 3~QN <P#V!Y7*f(FHvY0N+%<&5Z2?6A* +5!G U$g6!r$BѕJ 0[.*+4-J%! M k'  .#$*p)$;[#,1#N+O,K >,L-)%@ C%'-"fA%/$W 4-M x5 ? W-?i(7  wT21'H?<"[҈gj(s@6+r[!|.%6) GM&Y|=(<(I g* 8T2O )-F('*Z##|#7S#|P#X#(tU#j#%a(###,u-e#;a#u׭#"9##)#%~#(+# *a(<B\m]oޟ9..} OW_XaYcJH   LJ r&s&j57{/G 7X˷ǡ©ª sD{tD|U   pRԬܓ,I$WMM&['\OM 0"2$j(U(WJ9(9,Zh& ' ( ɖəɛBdefRhn oo pp qiͳʹ2-څڇϊNN89Χp6q6s6GW1ݟ",-.Ұ30+  ߆T8ndefְ+-lkmnnpLF!xLG.D/G:;"ܣHMzN|O~HPYYÂA;ۙQQB  U_cԣɕ6M56 h5JFDQ#-W#$׭!׮!װ!ױ!̲2L̳2M U \DEGٕSVñ #ٖSWò $ٚSXٛS[*Eň; RݛKhnݜKkoZ[`wDyEzI>&?&߁7jGGbXXX4)/4ծ P ׇׄ!<ÀSM!L,ۏېے۔dfjlVEv,XEy.YEzpVH3 ޴BGӾRȒdȓk)d)e)g)j:=rṱM6N6O6P6ΉGWWgahb¼ie..ă&Ą(:Oܦ f+)Sn;o;ժWEXGc4$/ܨ!"׀D? R  OP 00uQQQ|}ڔSĻ(ږW9LjƩZƪZ%9%:%;+5,5-5Ȏ$n o V@ A C FJ0*D*G؈; ?+5|Ā"ā"ܡ3Xbܤ3[cC:h_jckdv!x#7U/]@hPtԴЇ7'8'8ɩ8#Ⱦ}~VXx<y?@4FEwڏڐڑvw N9N<N=zNB(Y)Z*[I=!?(:>:AǝJǞJoߘԂp2r2C2C4579< = ؅ŽS_0..WX_O`:7ÏJ;7H)\t#҄4%ԱJKDɥ BCCD4+Mp <@FBH"ݹݾ9I٦Z٨ZΜɖ!/ΝɘK+M-1ŚBRśBXd&ݨR}  ҼǖjǗm)ǚqR.{#>qz| , 230&KqrJGkLGnXHXLׯו"̃3ZÌ CeT_bae"%'W<#X<$=>FVGWHYrI[=>8/YYYȦȼȧSTWAՀ>AՁBvyQ-/٤BR-1S-3_=ΙRH I _]w%&y%ޣ6!$FMWoNWpPWq58ܿY<=v2x2y2z2ވC3ӖSջ(tGuHʶ*vL;[2Y˝_%a( 7!7W##7X$H# #&;“0000ϰ[@ϲ^ϳc@ Q%\K Q*x ѝў0,P1,U7<ȟkȣpB,v{p$q$s$5Hݷ5Lݿ5MKVNVkm'(11أBQؤBTئBZEKjoĔ)Ė)ܸ:rܺ:" FނʺރʽNӌA&G&I&JӏDӐFdTeU7gWqXK: XN; Q/OR/P?ɺ?P@PA{֋ F֍ GF‹YLϮE[#7ѓEєEіE+U 6đNFPG'(1A34ߦߨɁD9ɂFSTJG H ZJ؜K؝L؞ؠ6 BFFFh:p Wn6;K>Ú۽O^۾O_ۿ m o p: >݀*]KԽԾԿhiɷjWˠˉDDˊDGD&TU÷To./@1Q#Q&ίβ(!8aqzoЌ@(*ǰ٢DZ٩_5JEE#V\ cNeNfNgNJN̔:wØxoʹqʻ۸"Srʼ۹"UslC2SmCnCLҒғ!/K"/L`>b@#/QOCPE?QKF PG>ȱ ȲՑYsʇm?@Bh#i#j#c4tΨΩΪtEά;U<U=U>U2ĔЊ,#=;$== \ͤ͢͠(ƍ9ޙJޚJ!~!22x2yMzO|@6A8̎l ̏̐m 0'.l(.m1£<¤=J&ڿ7NGGjSDF  bT8ù9û:ýʅ+As> su_&Nbxy>%)F"W#W$W֢֞֠֡˧"T˨"V)+eC ¡ڸ ڻ g*܆;܇;BFJ  &K''M'O8%8'  $0dԞɏA Qt`Y d^'رa-x,ͦY(=?Z,Mt~xyπ}͟ O5í_F `F aF bFdFVVҪB|bһ*Xa֙:֛:Yb[e^n`r.12LM!_۝?cAeBjXX?[X //uv\n|)N N N45>?ѽ*ѿ*WY[:NSۚTۛUۜ#$%CCh.V/Wm-0\IJ9;8: = ?'pY'HϘYAYCƛȇӭӮӯ EG EK  deQ,՝u=Ov=G=NH4!5#6%8,?@ֻ˺)7˻)8o:yJX{JYx[J (:!v2jw2kXܖBܗBYZ[UXV[\ ..?P?UOObφόώ+7GlmPt#nR33Ϳ'_<ú~üE  6݅8݋{ҶI{LjZljZNjZ 1tlmr) 2T4Xu>}ONQR&3G7XжK"}L"M"h3i3k3SUm3!EG9TX:TY;TZԨ ɜ@.+L+R()qL`fg;7*'׹8YY00Γ$Ag[ݠr , ǀC=߇or gh $ & +o%Wp%\jkn$5>W=?W@@WCʱ֤֦z >Sx ? @ BS~ÃÄWZOа;$б;&г;' FK2~dewg67:޼X޽XǺǽșQ#$Pײg ̷Ъ̸Ь̹ЭP,B΋F<IJT$݈݇݉݊݌ExyVgA/č2ܫ ܱ 111lB,sRtRuRvRxRyR$&*ӆ]Bʩ:U678׊G& 6 6 //…׀ڜQ??PϧFưƱщ+Kъ+M޷l ;#;Ȕ1ȗ; )d49e4=DNUn ) +R00AbAc½ؒQ¿ؓQ͉[͊]͋(`b c dghZZF%UpKӀ?ӁA5F`FfW<d WAWBf 023%.?@>B>D>Nւփߓߔ˅*bߖ€_aƒbNON3xP3|nDфT~Ã.9 U WŪ/ū/Dݵ@P&PPǩ'ߞЫߠЮߡЯ'ԇC 8Iw@B$؊t؋x\5 EEEE6@[ \ d.e-Q-U-V-X۫n۬oۭpB)e)ҋJSVʌɬ",Yʍɭ"/22<>}CX1S3©ªBkCm /HI /!/"!"P),'#'$ΤhH@UoHBi2ŢYGj5ťYJݭЁݮاةǠǡǢߙgԃ ) Uԅ 1u,o:= >MUVXegi j(((ZiɵjɶÑ!Tkɻ۪1,]R./aSbS҅҉҆ҋL7M9>>N>O?O(O)E78.&hȩߒ7  Xi:=>A"]3w_3y`3{WDXDjTlT/O*P+ ?ڬڭڮWϻ`ratbdby".܀"0ѥ2Ѧ2ѧ2ѩ2BSȨ LZ«PՂ*1q;<=z;yK KWZcBdDeF-> ͝͞07Pت0:RثloqQFzj* +{މk`x=]E^EVy֓!U$4֕!V˗1˘1˛1Br•–ڥfϵ)϶) ҌϷ) ҍҏϸ)]:;<}Kџ23459g;h<iŵ7VmŶ7Wr-3XjǾ?߰/r/tԓ@ԔɇɈc ce*P'+T+بU+nBȹ>FN՛՜ʏg)n:!o:(ٲٴδεb"qc"sEe"vlЎCЏCАCoБC,T.T#"=ıij/n&c@. / ޠf'aө/8L{|UVYZKbמ]q$̖z0E{5Ut ~6Uu $KĶ'N3,5,jN=f¨O=gP=kQ=lS=nM%q'ܒ) 99<NJ$PJ%U[V[ȴ!BڏՕ29Ֆ2>KʋBLQSEW 7 9 =l!%.vw?Oz4M5ͲXcĭGچϋXNJƑ#ƒ$r3ӨDg0ԓԕC<D<6E<G<oLpM?@B1*֭(=֮(>1T˰9˱9˲9RINhZUiZX n4kAIJ ZѲJѳL \ ] ^FH I TdefNNBkClDnΒ% 6 6 6#GԤ'ɔWWa"tCDg2ؾi2Cͫͬͮ,T/ڀχ+4;dó3'cܓ'*ʼn8KݚHҭYx[0֦Qf }g h <O(,gi7=jjMGE%%8;F/ێۑۓШ!Щ!Ъ!DWB4   ԟԡ0}1~2ZKU[KYdi)&7k7rשG̪Xm̫X̬X̮X̯Xn̰Xٔ!ΈP6ńŅݕtݖuݗy+~9Mde\$b]$dUEaEeT0յնʤ 1gAf14Nx)RN y)Uۉ:+GТJУJ<[sR\'qļ%/66GƨW, LMNޭƽޮƾQ.ӻB..?rOO_̥8~+̦:DI;ٌٍ@L1َِ΂I5΃cDkA~Ăܢ0ܣ0aQg}(iu:(w=((y>zA{CʢIZ9%&:%*;%+u<%-M WB -.!>wB">$>%>&>ķNڎ3ĸOƠZơ\ƣ`:р: KSӵ-Ӷ. KTӷ0KWK[Ȋ>2@3۾XCzTx{Ty|T{DMopEO= G/PP؃؄̀v182 83 8VY ܝYȪ]?7$c`$a&b(c*V-O P V/YZ'-)-պջ=o԰eԲiDɤ2ɦ3v)Tw)X<[p=[r?WAZDCEC!"eS}z  R"ř?oݩOݪOҺһǘϬǙϭ&&ߗ7zBHּYֽY˼{˾u/#74 }C~GKDUUUW+  0 3<1MU2MX3M[Ídۣ&%ۤ)'ۥ,ۦ-м(н(ݧV9eqIZSJɄɠ1D? @A0nRpRu( ..<>O#&6ý6٢[٣^þ6ÿ6GTGXGYGZX5X8X9J/X;Ŗ v"x"ҷzߏ )ߐ *OTzߒ .uvxn+so+t s< t< պ`ʵ'ʷ'8~ỲY IÊ0`@bCcDV%۞AY)  зQ" $ % Pnя-@8A9=B>*%|$6%6F{ȠȡȢWc|@$}A׺r!2ٞ Xٟ YLSMS٠ \ΕΖ@*&3B*D* "˂Ē&Fē&Hĕ&Iܹ7ܻ7ܼ7HqYrYsYށqބsޅӍsӎt0յ@ն@fFp7ʲQ./P,>S,@T,AU,B<<^X,MY[1PQS_T aU b(*!59ݣŒڣVVϭQL Z!v1ѕB>OY)w:q&0jJ25kJ&9I/6GVGW !G[       X<؟͓כ/=???AxĎP'ܲ4q / op|L<ӇNL}ӈOL~_. F G+DIUJULUɶĂą H։0‡qڟ(ڠ(UђVѓ-/ϫ9XI0=яё%{&d6$ Wd!ǯDz.]dzߣߤ>OHԎ{ ].0D*E*߻ؕG;HؘdK}e#D3IèZ~QҐґ[ɳ8aacbNY?$ٍ$585<MNPYVM/-u 0-zٯٰ> >NNΫ\ݹݺ":p%:v3JǫǬ4J5J6J[]+7<Ct^ӑ_Ӓ/;+?,-???טP*̍1̑8tÕ8۱H\۴H_ RYc-j0G#H#I#4_4dWDU\ QJ~ăć@,5B,C,7=)ȭՏs٬\ZΥ!oΦ!rV2X2,b-c.f$% /ҮĤ.Zĥ.[Ħ.\YN UZOI"Ƈk 78tʿX\j3̋(D2*D4+D6n ~jC,ëW+[ELڹںڼ(e(f(2ѰI ?Z'@Z(AZ)Jȫ LȬ ]َ^ْ?ZR<  0  3ab-s>nNN%0(3ͥ6\FuvN2cCsSonpr~*#Ӑ*$ӕE;,:K<L.d h':֚8,ˠH]-ˡH^/01 Y`›b1`aϾ@Ͽ@@cQ_@ TѪ<2fE߶VɋŝP!sV2X2 ح\B͠͡S(Ҭr*WX,K"o5M7XY&75GDkxy\Py^P~VB˜HWDXH˝L++^<\'L(L̐<$3̖7E=Vnop9;О1=4A.26A k!&(Ԗ)/J>JKS[4W) 2%%qگ# uFF b̡ƈكå?9æ?<~1 2 >mBq{v݌^*;f L Lgt6 egYSD U"U# "Զաբգ$ԻOʗ0Tʘ0WPRX@k0λ(_μ(ah93k998:ۃIhtvЗZtИZuyd eEdhEV, y$>--ޣTȁȂNfP)ע.<K>K ?K$7:z"{"ۇ ۈ:CWTBYTFx/ܕ@!ѸPxѹP|ѺP)Ⱥ'z[Ip8nHIʒYNrtp*4jE9F ,ՃՈ=;6=ު8Mj,Mk0Mډϑϒϓϔϕ?))[@)-^:ƖXƗZޡ(xJCyJD[0[1ӫ[2Ӭ ~!!7ڮ\By \ ^61.ָ?6ֹ?:˸OWru«&¬&v!"#$PrXsXܔǨSQ(3)3*3+3W l U CDԹ<QSTWgjԩ2Ԫ3t(cv(di97j98ͷ͹d 5Ke 6N8Q56ڈ1ύB!:R=R vZx x z[{t%-->f2   ݡұδ&&& ߈AG!G#pqִֵ˳e˴i˶j7#3j/k2l4=T?o ATEp wNO#P+Å*Æ+-.ۚ'yܲܵв8mд8pEHGHWaYbYcY^vqԥ0589;QQQQQb! k]jl^m_l===M01׳ %C̺%GٜYôFQW'W(W,Ό-;=S!Ŋ֓U!ŋ֔ݝgݞhS`{ -Se~ 1@ABE߃k*Ml*PiKrjKukKvil+N,Q-T8ʪ7ʫ7׉X׋XyǪ9///TÁ@lM ЫЮAД[2q)r+s-t.5Ʈ3$wƯ4$z5޶s55ӿEȕjȖlVS"׫׬B SVYOREyΊ)oQ&7:I8:KNJOJ¾lxz&& ;ą6Ć6<=ܧGXhiqh:ӂ>իOY7ʥ ʦ e 1#+5$+7A;w[C;SR V4)ܮܯܱܴ‚ĽQĿTM0O0ƫƬƭтQуQް}ޱ~хQӼICEpI%aZK9B,LW*¹.%º.'͇f>>7P8Rܥ*K{;;dCKqlJmM}5~6^3`_3b-D TԵ=pɫ>/|@mDАEБz'FГڒ8ϞHϟHϡHKY#(gh*+i$x555E EA ţVNŤVOݯݰ  -6"-:#-;ǣǤǥNJߚ:NKԄUe-.)p)uޱ)x؆s؇wT͂aWS8’<T=V?X۩/^O_O`Ov 'Գ7MXP]ɨH1Q^DF yyؓ-#ij4,k>Q?SDD Ux UyD OR ,e$<Mx٪My٫Π|SVe(ҽҾIǛtǜu}16~171Ԁ1+}R238y:|NP *,.O}7 ~߀ÎGuۨXSbIcOdPо&8Y׺Z׿[@3arҀҁ҂DD TTTmGH2  %vW}wW~݄H݅J݆Lҙ.vқ.wҜ`ɸOdɹOflI3J5ˌE*ˍˎˏF*ːG*KVWXˤ#*#+#-/434DQ,5DVٳζdz{Ů!{0&ů(Ѝ@"%+Q3-Q4< >%?&@)aߥ((vx%y'}~I7ɀI9ZCZFZGF)Hٵ$Iٷ5Qij HVלeםfןh->&>(ÙNۺۻۼ%W&X΁o4)pqrR:ҔJҕ\e"a&(IR2NS2]_AT "#Ք/WMʉ?ʊ?TkOeuxy`HsYI' iU k mĜ 4ĝƏQƐSƓWӦӧxͫQ(R( !"#S((י*ך+F9u!+!Bk|}l>m>܏Oc#GF&ȯ7ZʆrE#)#.e 3 3"DN$DRar s 9e:h0+~ػؼ ؽ#ؿ$)+-e˪¢6}h ھFk l mWHiƦF"b܊8G"cH"fѱCM O (T aӦK߿"Ԡ v8485N\HcY}ز)س-eY~ص/zHͧ{K]0nxAyA.ρQ}ςQ j  lP$ 2:e=M=OM Ńņ%%5FFFr,F}VcŻˢ1˦3B"S1c1 C:jE:l$w&z&ۈ7Xžۊ7_ФGwPqQuSw߸/ԙ@6Ԛ@9ԛ@:Ԝ@<ɍP3+ g+])F3ICZDZ´% 55yFܜV_adfŽ\k-^mȽ>NQ ʙ(*M**rc:1K82K9np3K@q4KBSUWY<3) ۦ=30CCCCTg6:rbڋdPƜwPޥHӰ'ӱ'!ȃ8;HgYRȔSȘTȚUȜ$G$I$L44AENA D   ˽ ,զէ|X­=Z؀[°=yQzS{V*"5ܘy\)Dܚ}XAYFZI])9[\r!IJ2sK2tOCQC RC  ԭ4- ɟ.ɡ.oO vwϗ&ϙϛm7;!o7ڊGϗY#{a]b^cbz.{/|0 ) UAUCUEŕݦ,+<ǎǏPQߑRRwֺݒ˹*I5Zt9v>xBGm%1&1 UR   ,F-I0JNO Q=b>d?gԫGAԬGCɝX B89 : +"k׋r\s_QRUCXTh: 378+U׻+[׼׽׾;;̾LmörøsΔD2A'C'\8]8Őőݢ YҲ{ Yǃ 4!ȓDž 7߉0ߊ0E+ߋ0G-ߌ0ߎ0sAl kQq 1-B!ʳN3%c%d %f5{z||55FlFny{Fp|FqÇWJYBÈWLZJۛR,gp5C Sz HS| L} M7cf<*k =*m  !7;3Ƹ"K#K޾$K'KȜox7״׵׷̼`ٝ/Ώ@ΐ@X2!>P?P* W  X  pй K<H<ďMCĐMFnݑ5#5+5,{E}~VkӉհ5^8ճ9մ:KRU)N:iJJ0ʓ†ˆڡ&$Ϩ6ϩ6Ϫ6Ϭ6WG< qXƳ ьэюѐ$׆%ׇ'׍2[3^4aIOP ! u$" # )*+sFAo4I4K4ODؖDؗD͍͎͌U>zć"f 5Ċ%Č'ܨk0ܩܪl0>Q?Q@QAQkrcJӄ(}Z9[9\9gIhIiIjI4Z&)EPɲ5ɴ5 Oɵ5  քWKօWM ˆ ˇˈ.Dֱֲִ„>ڙO3ڛO6 KQRToߤpߥчшlnpK/UF"G"ݷݸTߢÖԉax/@>P?P@P،؍C؎͈ؐ'`кL:8P]IfZ $$DjEq۲E۳E۵E Voh4i6z{VԶNhԷNiԹNkXYZZvɯ[w]z?)A)5:aˀ6:d8:h H ʒJ"5ʔ$Cb&Cc"(Cd±²~W/* l?ŦŧŨЄPЅP ІP ݲЇPǧ',ߛ7ߝ7 {ԆHJvYS;ر#@AD  :ln,t̊=Mlmoib(wZ҈N!ZO!]R1S1QT1KGB0 җҙҞC.H}O/~O2UYߢZߧm΢GΣG2mRXuSXwTXxfF&S'TgI)WЀ"""3,D#D$ğTU kĠTġT1ËÌÓƁƂp?sŷҖŸҘŹқY)B:Kǿ !{<>?+RXvVGة͚/~rK@ L@ "kPj!"yo%4);ãKٷ>OηN|Μ}Ξ):::Bb!"nqƕ|Ƙ~T)T-Ӫ)/{`e[@ ]@ ^@MPitl78}8[89:;wH<)YT+ U,,=s=uR'=xȵMȶMȷMXk՗՘Dz!{!|!?2F@2G5B6BSKSMSPc͵ DͶ E͸ Gͺ H*ͻ Jİό?R;OV<Oޜ&uaX34Tǖ#FH-23, - . ֱֲֳ4,˵ԣ<@¥M mJ¦MnN§MK(GL(IM(KP9ܑK L ,:/>h1p>B@BAB GRzIR gԦ-ԧ-Nw%jΛͱ6aG .//003ځWڃW"6M7SY"lŌ.+/+ ōŎ;ҮhL8L9үm|;A}=߂ ߄m'mc8T֪֩֫֬˫o˭rY*bg A7A8JKLVZ!"*ەMۖMۗMЬЭ%1ZEF5ɒɓֆ2E]K^L_M`P} *+,.ת;̱rSUî=ï>ðAŇPGjXkXҫ,t/+u/fPgP ^ `a+++#%<45լM4ׁY44ׂ^v}EnV7V?| } ~ QۋH یI J ۍХyЦ{Ч}=o>p@r(R|)R}*R~5=+RľX-J.Jޯ~[|޲[}hӽxȏ%Ȑ%6qG`Wק ר ̨YJOLQْ?~A!C$K΄O΅OΆO·OLϷeDJ;L6#ܙܚ444ܜbcU`|H789V zi HDI EIZZZɌ{%3ړ5ϝF6ϠF<IWJWfƤƦƧсևӹ>ȋO B kl*4[f!*8t@H"3NµT¶T·TT́u4-{}a@]ܞܟܠ>e'@ЁAЂTHK$hO ɧEjV;x z{-$z=tN1vN3ڌPC<E?Ϛϛ)^Gޙ#:4%:7~dJ F#!d$"&"i'"<2ŜŝŞݫҿ…@|.ԁ.־1؁'9Ϻ|7M>}7O?QA~7RB7I-HMN]^ ~ ؀ ؁ ؃#45S46TۧU_ п:,IԯiE1F2ɢ7ɣ9ݫݮ19rr39xxɋBJ dΚ.`OŗaO ݧ{(ҹ&Eǒ6%eǓ6Ǖ6&h(jQyߔGdߕGeߖGfyXAuפvקwר "y׫3L,3QվTտTI ;ʹUʺX+~+ +דהL۟۠Z'['ۡи8й8ST<Yopȴ~ PGC0D0NCA;Q<QƼƾ  . 'і3ȥ-"9=N5tQ̿%6O^f)GE-*M^!C C" # `SJLܽ>tއӑӒӓշոr7ʴ>H?H0Y׏1Yב}{0 0؂؄؅]@OPֆQ 6g8i9kڤ<ϯMd;w8޿5Aљݭњݯ,-QYUR\S`y)!'*!(m61RR`Y)[)bc\)e  %:آʮʯ͕ʱC&@69D&F:đEi6ܷܵ !XBaP7bP9cP<  7 8 < =MO`5##֊PˋDŠUW20Y303ArtQђK9L9M9%IݿFH,Z.ZǴǵo|F}FFWj ؚ.bh͐>͑>͒>?OU agtm3*Bu##ˑ#3TTԺïԻòd| T0ֈ@QO(Q(S(T(hjlR8I&I'I)I*1 ٜٚٛٝέ5Cή5D_]E^E_EpVqVrVtVuVvV&ǭ>789:^ԋԌԍ@yn!C)ABEJabʰ"MC{כISSÖӗvn/C۷6"?4#?:k|K=Ҏ'?^Hg KYhLYk_MYm69Ȯ4iՐU Y!@,f=1g=4٭M`ٮMΧY͏m /(1(no9 I!2Ĩ2lsBtƊ-Ƌ.ƌ0ޖ ޗ ޘ ӤXYIOQJORLOŤ&,-.pG&sGdtfg#ڽD<ThðQ܈e܉h܋jģz>{>σNB1QmƆ%qW ƏG"L"N=2CxdgiC|& S**֜Әˣ3ˤ4˥76cdڱڳbڶڷD8F8AHiBHjCHk܅=ѫYjѭѯ8>H0^[A\AŽſ4Ql"߷,߹,ɌMɎMkmذ5uvw&WVXV*+.2ìS$] :ŀZݓdK.@Cҩ)nz&ۑ`7?֗Y֘ZWGX˞P˟Sh_/a/*+-.P=>M=OOPrL Żż447195EBLE߳V l!ߵVԘ*1 ɊՏBDA AY RGRI$&)#:$:%: JS[:[>̢Q15م%6f΀6h΁6j} lEWݏ"ҧ. j?HuO78vO  z{T *ȼ;դե%#e#hmnrsfټU+o:پU/Kۅ\ЙuКvЛw39 Qh QiQkFXGIJi(n.IoޤpަqާsEF  hVףEw\̟->m>n@>q9BC<7* \M®:¯:>F1"ܙۍ33CWWTNTOTRTT^Rq՝՞L/P@(ʕ P_!Pc"Pq2,QGHHHȀl4n4ĴϖV `Սƙ,9=Ȁ9`bbf:NbJJJQ8:2Sps hu mw nw&'.S?AtuTOVOWOѶ\.}T&/ρ45Z7mGnGoGGXMǶ#fE)    ,<g<9=i?ώϏ݀(j(k>9BInõZx÷Z{v,w/\1115B% RݣR ҳ ǁC/0ǂDDŽHdžIߍ-iNֶjNַ&%ξ&'p6q6qG(rG/X  X NQq"3L%:CCC1 +EHIfLPLQLSxYy[{^`83ɗܻɘܼ>'ɚܾc%Hg&H Y!Y1030402AX3AZ׶̻ ̽ vi΍=Ύ=VŏYq c`߅W6!!2cBY ZB"\0 6կKձM9ղP<ʬʭʮʯ;;KzK}׌׍ۘЯGXCXD X\E]G^H1dz`Ku/4@w5PƲ ޸Н޹:,;M.M/M0M2ׯ$̴5 ̵5̶5GqٗVZ٘V\ٙV]HtS*T+U-9:Q1mReĈ3ĉ4ċ7JJjʃʈӃ&Ӆ& խʧkG,lG1ʨ 5X '׃w(ׅy׆{׈}x/Fs J? K >KY-fڗLO(ژLRښLTϣ[Ϥ]ϥ_#S#ц޳D޵DȑZ0e1g 0sbcQMS fD(IZ»ɭ؏ؑ?95;5<5^FZ_F[e.0g.3<֟X 8`ab *S*T.߈;ԸK|>Yɮ D"^"_3l~րDDˁ˂˃TGI~wJڕ1//Ϣ%@y'@z)@|klm'Уũ7ZݱݳZ$Ǧ$iRTVߜ5\    -A-C-F<?؉=̓NP̈́NQͅNSY͆NTZ[ b cZ9)9~BfÒÓ" "%22CKc CPS҇ ›œ҉ PxQzRɪU/H? 9O:Oz;O{/|'W^A7GH;Y<Y>YA&ؚ##'آrswxΡDaQUşŠšݬ,h=-ǟM Q W(stI46II8I;Z Bh BmזRR̆ ̇ ҅f./Ð/g.5h.9f>g>O!O#+Ds&Wu&`҃7IX]JX_KX`VLXfA5"6,TT Y ՇvՈy|4<3<7<:[\٥٧٩hΞmΟnLN 8b c88|H~IS1ělSAY[}   ޏѰސѴә-Dӛ-IhjzNRʻ!ʼ#_޹̂61F!\Q]S^U`Y"""!"&2)*˜CI™CMکS  @CϹ¢Ϻ£D_f*ƿ;m;p;qKѠѡѢKKK89=X'.7/7079H8wxU؟`@a@b@y,Q<bc # %تM=N=ܾ4x&[']$(`Iw5YRSӔVӕVio!M!N1@BfXRZɾɿb҂))҇":֏.֐0J˕7‘’”][&Zϱc 7ϴf:Xcyћќ1//` űųŴ78"߫<4߬<6ԒLɆ$$4O QSإE͘UmFĭGįstu#AERÛÜ)ѵTWZJ[݈݊$ҟd%m60ɻo62q63CEIKW֌ 0LWˑIVJW˒M]. .X?   ?5QA*6**ٵ;nθK3/1AǶTǷTߧԏԇԐԈ (0.-!@6Q=I Q>Q?J ,k(3|~9 9 I@ZO&̗2̘3̙5($پ$|5XvE(V*V S+V T6ms7nt݁-Җ>5җ>6Ҙ>8^N_Nf)*g,U΋V΍c)G H::BCȸJʌYʍ[ʎ]2m(ٱfΰӭαӰγӳA/fB/gC/hwYx[y\PUЋ!PX[) ;'Y"Į`8<įHH"Y$YƔTޝ$ޞ$yEzEUUFIa̒=W̓=]̕=`4y2pʹ399M [ nڇoڈ$22ܐS=J 1Ȱȳg.~i.=???ՒՓFOlʈEHOmb7dd7h3ǂͰ3bD^ĩ Ī ī ڂTĬ ڄTru++Ǝ<k+m.n0o5ޛLw̿,(2-(4Na9 PjBGIAZMn/ 'ٽٿ)1Z.A֧/A֨0Aˬ~ˮRjRl˯F>9>:><I܌b܍d܎fΏE6  RF)cW;ƶ<Ʒ@< CԢT+Ӯ+ ӵ;ضL%طL&ظL)عL*f]|ͨ-~"#ͩ0&ͪ2^|܇܌τ}υ~φ2[3^ HR7T8YW<g A$ A&%Qݘ uݙ xwҬAv,߀=_hMiM֝֟_֣֤֥aͳb͵cͶd͹˩%eͼ5$1&3fF''43dWeWfW6!!2,D>B*  S?${ %*$?^TB_ߺ'߻(o-߼*߽,߾.0&ԝ۵1&2&ɐɑ47g|/GXX}_`~b ǃDŽy/'@A-Pצ lņs̩v+ ّ<|ٓ<5 M̾Ł$Xł$Yݔ4dMfQ`egkpV&qV(aծ  1XZf_]ARh /)MJtJu{p[d[f|r}s~uMOtFFWƯƱ:C;DN.O.,O   ƥޫ+ ,ެ+ 13Ӻ;ȌL'ȍL+m#\܉]܊^܋̣D}FZG\H]ن"?9ى(ي)ً*GI_Xa[¸Q(((z|IIIZ_`~d%f% RF%զSF)ʚ [Wʛ ʝ \Wʞ n+,rt-wz5;r>6=NN-L  >? @R: sKK#uKM 'ڍa"Ϝ)FۯH۷ƝCeӲBȄ%!Ȇj@Fw@GPPPPxRyWB'ֿ˿±3؂$U³9,EW.EZ/E\TV UV$ܛѻ-Ѽ-Ѿ-  կ4a_N!*s:+,t=M VއWމXފ&:":$Ԯ[b!!!2~qstuSSSqq-=.>.?d?e?fϙ?iOB 8HH:Y ŘҸ#i<Ǒ3?ǔ4ߓD0   p$x+y-z.}<zML6HZ)9^9`IZ6! 7!8!Ë}1ۢB:клRRRRURE-ɞ,-&6op9X):X*;X,׿זח36393;ù\١Cû_ΗTmΘTqFCGGŒ+hœ+kŔ+mݤ;ݥ;uҴLtҵLwLJwNJxnjzǍ|KQ''88HY(Y3 ?ȠC0չ7D0E0F0AwQQQא ג - - \=É-^=ۜ۝е <J%pj67ވl6RW<WW?Aƹ!ƺ!2"vC#xCȝSm *v*x*yz)׸;8lnoSJzΑZ&Β"7#7$7ZHY stY f/jD@Qܳ1ܴ3Qܶ4  ,2ހ,3RUӊ<Ӌ<`MJʰoX9,ݛ-ݞ׎51NzEVvVD JB5B6B8B;‰R34ڢ7sƴJƵJƶJƷJu ޺޻()*Ș#5&+Ț&ț'J6vf h -X./X0i Q/3ד]^VPbcWP!) " $,-ؙ+f؛+l͏<@Lx֯{ܬ#ܭ#n=ܮ#ܯ#ܰ#o@4ZCmDwUzU B0mn*QQHjԼ$Iև1P%sR%tڝWڞXQ6S6FuϦFvU +WU,WVV -WX2ы.Qֽ>>!>">zH`ŭ Sݻ#ݼ$%ݽ ݾ '߱(߳Ǯ;>Ԋbczv##3CDFؔT=PaijQ=G'H'×88۶WQ}ҍ$ҏ$ɰNɱQ_ED@EBց˄-h:;<=KNv LNwKLMY[*-.Zʞ "@[ʠŬ2ݴCkЈ.Љ0ݶCn0 1 Ǩ¼ǪߟӈZ/2Ԉ/4???PPP=]8G')Ô|qDrDkUlUmUۮ Fۯ H۰ Itd,}f,g,01Fx="y=#ҊMҌMTUW}X̀((I(=99I24 !hՌ]1ʀVBʃYS[7>h+O?kЂЃ߭߮߯ ߰.7.UGĢVGWGXGQ]aTƅ#ޔ3 srTâʾ;+HQח^6QVFkW0y1|! " # $د2͢ChͣCiͤCjVS ĜdsºĞf|Ӆ}ӌ-/0!ƀK\^ӜӞӟm`8!8}U"8B C$9Y[`abcػ#0I$0K@(QZG`,^=گϼoM>~Ѥ5xѨ5z:E;E@V!AV"#CVDVEVź!i ߲SߴSxԗɉҤ)TLUOXث+͛͜st͟O{Qۀmnp&70GG{HX}+;JKLçU/V/W/PpPqPsPt| rr~ u@ݍ8ݎ9Cҥ+Ҧ+Ҩ+iXD>Z#ƞΥ)Φ*Ϊ|+άƚ)7ޢ:="3_yaہcۂנCO̚T69:;>23=/>/xmPrBYYYYѴuѵvѷxS$$ Y4EUFUՙ ՚ ʐ`ʑdwx,~-0gMhM}~  D))7S)))!KNͼJ7ͽJ9f[(h[*IJ!2Oϐڥ GtWF) P9I*'Hb-D$q2:U*$&\"-'lOC+\(**M,%6`'D6`%@6`$-6`*B6`<)6`*6`6`r46`'^:6`$ ::6` v6`+66`"9>6`76`(;A6`#(cWaZZX)aYWX)aZcWaY B-"؍<$UOa' $7#Ur @U'5%v ҠD(M  5%Ք""(XJ $A!Ji',֙B&1C#IR!*+!BX Ȅ'%;r"?$R"6L(6S!U&J32J/  !JJ)H͝JeAJlJ"^NJ(*J.J} hJ*1J2J'<WJ.g*JԆJ-YJ!N $  ;$z"l/O#'&0Wgh412 I I I! '(l%N5=L3(ˆ-6**]$&U#V}*3AV~<*'KVW:"*dK!!U(* Wx"QԒHJ5'#3Q)a0a0+C- 8'As6"~ M%, )z*}%=-?/'?I$ɝ " -DK$Br*Ė!jK |&Z?,C&T%8+!sP.=0i ՟ [N*xϐ#^V\ G,> _Nd- %*fk"&!(SG$y+ M W{W ?%bKx$- ^"E J1w9i>,K& 52$q=,G̗$$*Qe(`Ut$+V5< rIj R-*8r u'X! wS&W&kKNq :Z-"*m R-'ѫ QK*$Q.#E%<[ *+.y)Ԁ*C(,">.*BN!88%B &Rcը#t$i$)L! 9 XZ"#="":E#'7W-U&5C4~$Wo,1|G4DR*&.P +Uf q8+{.)7+ e=&P%N ,Y]$7D+ /ED*%.Z1$;5$eZ-K 2'5* pk$!r-PYmY!U)vOn'17(:&%ӷ',&$6,LKNE][hRQ&I!Z!u,RQ ʡ#U!8 S=%-ҥ(qEm@]{B%@X$7CD\'rZ.C6S"6B* 1-@P&Tk8B ?&u"Ͻ$gu&9;RFQ*)TM-$(YR&xWƜ#KWJÄ'(".%"6,l") $ ?DZ# @ƫ#0rQ) %'+,NsW,)y% +OZ| p_*Y83r/G(>mj- )+Y}-NK  ֶ&v, W'&a*DC-֣a!t%#'YNZ-M-S%kcS<6y)eϔ)%a.<E&`%k& 3J). G>t$տD$'.8(.4}$: 8ŏ  v`I  J% V$AA K6S3GXX$?>$! '&W= /S"!9sV+n>ES. ^ t3U~-9,LB.+Wr#4'<*3%)")м% F#OXK7[%&jX,)#+"Tߏ%3.RK, M)'9J&"|L\+eB/l$ (m)8E&0%5t%-)<_4%*? 3 =+ YP!*,xD:'$q;F(vH@t-D)/ʚ |j$Cd7j  &v)<  [[?)k  LJ?CBR!-V̹- ,X a3CB ,$-wɟ$ %?7(? UCD.?(m*@Yq%n.Nq- 5+ aAC %9{%l%F@% 'H=%l'Hh ֬ 'H;L@n%l@)%lT@fIIV& $q~͞+ -D*Rq&8)?| 58ts'a"=!O'P)Ma˲CE+Fs8B>)yFY!:.U3#1! xKD= д!-8!*$}#8#O)=A Yb)  @H. )`;$Fn(Y'#-W$|4.*i"[/'H' X &~Z#b'}E`)*).!st*yy+#5yy0y1yW~ yy}QjyNy8q?"yt J*yp!yo"yy Eyz Oy~|6y.\+ywgsydyK"5eyNLy~#S]yo*!9ytxFy( nyfiAypk?0"y-k~yl@yDyf]"\yY"yr"yzyy4 y\y!.ry/yl"y!tsyvrX"syDr,!y{t4yQtyzwyzz syQ!Hyv"?yy 1y!UyH }y k~y l$yr  hy"yfyW{fy%aymJ"ymM"7yZeyy ymj}Rywg!ay!by!myqy3"tyhjvyp"yry}[2yiW Ky%#0y  >Uy"~yQ`yz!ykl!cyx}yp "y}#yv# yinykoyp]y}b4yoO~hytZeKyn#%yn?y!y "y"eyRw=yjhY=yt&5yC6yE!#yoS#0yxj yy!(Kymv yK! HyimZy'#"[y~H'y"RCyw{ 1eyk!UyGh1yy~!]jyys"+yar FyDKyH"uy vy0yyfu#Gyg/PyulykyS uyhyii!yp'ylh7jyv^gyzy{ByE@yv;C#yg:WyyU} 2y"{yc4(yjTjyvKlyvNyL!9y7yry y!y| Hyw yn(Cyhtq*py #sy!ty!{y/| yK#PJy[55ycPyr#2WywXy<n"cVy|m |yTyV[ySTyw1Ly"yiq"`ys![Ryyy{a : ys)!?yry2y4hyTly- yrw}y yy"'yz y"yFy\j!yhHyk-1yk0 yly?qZy5cy:!6y7y+i"8y,kpyu$yD"yA7yTy!yIg yy&yq)#9Ry! y* y2?<y"Oyu( ny"-:yF.;yK/yjqFy28y`HsyQs"]yyxxy#'y $y1!kyq"Fmy^"&0y[ aky!y|y2n yjeOyvs0y!gy{!EywiyAa y{"!;yhy$Py)Syx yvym,:y,#yRMyay|Vy}Wy"q]"y"Xy!Idyeg'y# )y#!kyxfr yp!sy&Ky9yp!Lyyv +}yGumqyQy"yyi#-y3R"^yxqTy(y y} ~y},y!yt#[cyyxi`y}d~Psyj,yeu[yeu]yx_y}}ey uy!yo^ivy}"yyy[dy|" <yrnyfty8r"ByNyzRPy!ysrypchym`!&y`yuJ(!ygPsnfyx?-y/yC{ yd?ykl")Py_2yn#D=y!y{<n"uy4eywsyq"X ye {yV|^"fybyl`!yyh8myIbybyyp"$yk/ yl4y"PyZ"]ycgy`"yhqly$D,y`"6yd"7y yUyw`ywgy?#5y@DGyc;+yjyiKpeyiLpf%yh!Myu yz^ys4)"yQf 2 y} k~!)yw yn M6yiM~5yFay?*Fy}j!4yV^ Ay}$Nyy^Iy.wDyt#"+ya}"yrmy|ys!y\U"y#yy"hRyO"%yy y!y9q"yB=yeTy !y!yLyt"y hFy3ryM!yb Ly%ey~#!y#y"yuKyy{" 2yp'zyz)yk!yD`yD;ry}!(yI|)yK}TyW5"UyX6yT"x0y5Wyuy:_!gyo"5yZ.yq yJ Ky="y Qy!oymk!My5]yg yg qyqxyny1}i!yyyyty":uy";y)yieyIbyR!iyruyHsy#x!:y?y0|!y  NyBysf"b8yp" yxk "y."p.yy )yni !22yl!y #)y[ y] !y` !AyBy,y)\ {y!Cy!iy)p"iOy]k+ y]!,y~O{i"({yz 7yjyog2cy!X'yK!ey+!8fy-!9y #Qy#Rytotytpt6yktty~:!y~T"y!$yk""yog~iy_@yo>"yx (yi#Jy#yo{yn!y3Vyx/y|!y yI"yqVyp!-yg yy"V3yq yuiyI roy%"y!Syzy{E ym>|"yqK Uy#:Vy #;Zyvqu"y)wr!yz y!zy 6?y y{PQy|Quyy!gQyy|?fyhjy@y0v#yAay7t ynz"2ystP-y8yn5#.yuj yax ]y2ty7!nyy"ky Qyj  Qy=Izyxn"y03yoy!yEeuyo/"`y{7Dyt,sKyy nIyk9DJyk>Iy~[yjp yo'"yo+"-yfTyy=nUsykmy@"1y(^ywSyVygyyzl!yU"yfq#yfq#yjy<@y":y#Ey8 yl9Ny#y&9yTAy yi#2y,yi"B yEfy#ay?qCyI^ygpO Yyly Cy3 yvT+yy{j 7ywCy,_ywv7"MyE1 `yw~=yy'By!"y]Py-}"xym"Ty7G_y|j5/Fy{ Gy} +yrt yYy'>y+~ qy}O!4yG 3y(f&ywtyOyN!yq"gy'!ay5y"y\"Ay"'yuy>!1&yKysr!y}Ly{y|!y  ;yxq#'y!Zy"yy^3y"]yK Tyj qy'H]ytrmgyon!y"S-y{">yqyfyD  yyy yLl!}yp%Xy9y lXykk_y!Eyuq"x}yytqy qyrxyy[7MyWy/\ylf yfyfyo wyp xy"!!~yvGpw8yo%yygy0Vy1#cyu~=yw~yP"y##Cys !qFyggG+*yy&/yw!V[ynh"Ty{g!yyN"yyO4y*yvLyhcyu"}yg:y69 yz+ykjR"<yB#Z yw/o;!yw6oyp_y#8y,i#by[)!Q&y{|*lysy3ymIhz g[y) y<+XyGly|Q`ymg!yx8m iyYFynl!Ryr8yLm! ry`wMy!Ayd"Oyhk!y^("ysF" yp#,yyA y}-z.!By^yT!ya&yi~"yt+Iy<#Yy}y6yW Xyy#l#yeCy~ #yp #y@ yDv!/1y (y}y!_yj>~F y#$ByyOy tIy #TAykt wyz%yp-VyN!yj}"gUyn" yJfj!& yMfm!'y;"#"y0yTyfojy\t oysmZAy1y|xyf?> *<y#KLyp2^Oy$ yTr(y"yEX!%yW}(oyec!pyfd!yk|aWyvn1y{iyuV!0yu[\y\fydgRy4kyr.yg$yl3{!yhy #1yygP>y> yk"y1 ^y7Q.y?V# yy+"Oyr"<ypuy{@yv4yhCy& 8y ytqy>k|!Zy!yxFy/yil##;yyxz$syb4kypa*y|+2yn\y1 y4#\y8#]8y2yYy%& %Zy(+ &yy2WyysKy y}tMyn-"yj  "|yy"Z}yy"[ynw yywyk!ysc"y[y\}y"yk j"y~yjf Uy1}y{" ynyymByyoEy'"yh"$y"nypqoyryu"|tyYIquy[J!^vy]M!_y{0!^ykh" y)}"y"ySRy w!y+"J@y/ygh{Iy%yk!#yy vwygyyg>y3Jylgk!yysyj!yjyhyK DyA yg` nyw:2 ysu !@ySyqsy|Dy,y\"yfL Uy{ y!ykj#yi!Oyw ytr! "yB!yw ;yli!yy!ymbym"-yas yIu#3ym!b y!!y!GyiM 8yE"^y|U_y|#b[y)"Cyy}y}w".yv yMy}80#(jyZ $yn!Byirz zy^ye[yy!yyyuE 4yuF 5yp4 qyXLyo0!cy^"dy]tEypKy{y~1"yu"Ljyu!o2#Ikyu'o8Ly\0(yu:!wy!y\y yY8y~&yv5"QyCy{ 9'y<s!yx#Yyx$Zyl:SyaG^yv~!*y y:!y>!Ty3"=yhW \dy-yh)!SyZ"y," y:8"RyysXy7ydy y4yN wy pxypyHyX[y@ywqY Jy9ny),y-gye [y}#y9!jxy" yo",y!Y7ye["Ywyxj!Jy!ryot!z\y\"ys~y xL!eZyJ~Kyy  y~"ky j#>y*y/y qEy`AOy/n>yfmd"yu #6y-|gy.|hy i!N yu^sWcy y  y ylp>ylr!?y cyfl"Myqhr Nyqjr `ylUayvK .yE"ryv1yhyzgR!yg&yqr:+Hy ByhqypUy5yl}yBEfy{]f |yvB"y{@yq 9y<"zyhgJyjgL"8ym1#Vy!!yo)y|yj#yn*y8 y0 yhyf" y2\y|%0y yeyKsy}6Sy@;!`yn"qy,yB"@gyysN UywuTy yjF yX yY:y2",y_ 4ym#&Iy cys= Iy!yZyC>_y oyrpysyq~yt? pyoy(FyZh myWoyXQyu"mpyFm"3ywl\"y(ya$yfHTEwynK!!y!y" yk"yHq yIq yf fyq0yq| Hyg"3yt-yKVdZyzyQ"Hy #yiC#BYyC!p&yv,y{x!:yg}nV yw ky:xy@!AUy{x/yc"jqyyi!1y1yr+Zyoy:"yymQ|ys!vyy"yyE!Jy y^hyx iPyo!^y;v_y=Tyr!"y#"y"fyL |y%!yDynys!"yH"qywB"yMyoy*!y/Jy%%ydy3y |yyk"yy v"4y V'y*< "hys iyu nytN!y\y"?yp[y#Syjy"4yy!yfk*ykgWyuOykxyi"dyu_~ B;yzdfb"NyRi"/y"Oyl Pyl y+_Ny~sdyG ny ~yzyyy"yoyCygmjwy"yky!Ly|MIy: ypy"r6ypy9 yn|oyzP"OyCygv)yq+"=yv|$y)yg!GPyRy<">y <"9yv` :yvawy!%xyVyrayrb"lyCm+ylv(!T;y GKvy!y!By yv[ jyqJaLyyv!%yw{{jyHE<Sy!;yidg#yf!Kyl|y|Uk"GEyv#"yhyrt#  yw!  yw( yig,"y) yF #OylQyyp#/sy5p:yop2ys!yow3yux"_y!Fy5 y|yr#y]y y#FyqgJy~*/4y~,0 Wyp`yxyjey"Ly 7yogAyiy&"yzyo@rfG}y})y? /y~2yiyy ^y_s!yc"Q>yorT 0SySNye!ANy6!4y{#N)y2Xy"yyj3yz<~yu.5y{':yqycydHy"yfxfy9 dyvB yKyJuyy6yf!{@ylE"y.yh/{c/y#@y{$yM~l%yQ~By|"nyga# yr(9y9A@yc! y\yqony"y\y|u"LyvA!xyrS$y| Dy_!#\yyk|?yRBly<ys Nyy yTx<y~ PyP$i yF yJy?K!5yFObyXs% ycy"yyjx~YyN%y3|yiyt ynzPyhMyy~yyU"9yPGy{\#Wyb!y. yyzy>g!ym ym3ytlmg+yZ3yFEy~y{y}yd!W(yj]5y~qyykv6-y~x"bVyeyzhs>Kyl^yYq(!RyX$Xyoyy=y%v h>y(y iyL_Byk&yky!wy/^wyPxyQfylu+yzmy  yzyf!{yf!?yqvyx"wyiylzyl{cyy{!ry@ynpny|By{hyj[.yj\/y yvki("~yh{IIy#Jy5y!Cyy{jy"yr y}w Yy}y Zyy#yIne >y3Rfy  y!vyyy%yw!<9y(yRPy!ywWg"yik2y"Hym PbyqZ ?yh %ywYcy$zyr!_yry f^ywg!.ys|yuf!y{~=yoC Iy !DTy V!dy""yny<RkyBXlyu]!yTy~38"y "  yt !y kyt?yhyfO!7ytO}xy~9 yp@pXyu*#<oy)yxTZy_"0?y~ #L@y~#MXypoD y|yvw"]yl! Dyg9KAyhy }byri:Dyfh"yq7n 5ysh"Hy"%yR| byHjyN\(y[W1)y\X2yMygBg"Wuy]yLr"yxy~"yz !y ym#_]yXhey^yr0mN _yX2#=lyw"myLyyu!yzyM{ yT~yf 'yDTyk yWq}!yw;yr7Tyzy S8y|K&yW<l4y5yGy yljOyGu<yrnAEyrAyT&y/yCuRHyxy"apys& .y}y?;#^y}0~yw)y^ yn6p3y3d"*vy~yxw"yj Gyxwy/'yj%!>yC8nyfx9y~tgyf9ry!)y~ y$ yl[y4y1y|~y `Eyujhynygz"` y^!Gyyty[&#7<yidyzu"yl"y:{ @#y>{ Ayfzy!POy~ZXy/O"KPyR="y1Pyj,y=ylyl eMykNyk-y&^p1yuruy"y"Gy#4yvfgopy\yXkYyq!XyV!yg"C"yg"DkyDk lyFl#y%zygyD#Ay'~ y gyqk iyuky  yOyl8 tywRf)#Xy9y!tyxty#8y !yy/9y!yy y y24y(v*y"wcyw`ymys"y y0yc"uyhw@"yW+ysT}\ y +"ehyf"E!yi!!Vymy^s'"ynyncy!yCyivv"ohy&`!iy(byrr6y9pyqy {ysZ!y=y5yG ;yI <vy{g3ysy]yHyzsyN ys'!hby%!'y\ !yxhwyoGxyoHy+"yoJ^yy!y'ytQ!7ytTdy~sqy~uryloyF"Yyk[(!y?z{ytuyp!djykyy1"dyu3z yff%yy#yMp!yBYyY"M y~o: 'yuBS.y"yy y "ypJ#ypKyg@fVzyu89 y91ytS2yu!$yi_yksY!y~%!Jy"\y|^y!|ya"y!*y!+fy\=VygHoMyt0Dy"UEylyw}"TyT8yiy^ ya Wye<ygEy]  yy ty| y5y|"!l6y|$!m:y31Jym![yNay|!=hyyhyyhYyQ5 QyU6yV8 R{ym,;y!fyleyA{CyQuuyr]yi"yn~y -y /yI[`*ykaMy! y"" yy} y} ayf1 yx e_yjy#ayyukbyy uny?S#yS!kDyENyz? $0yM6y}7y}!yWyDy~|_ynxR#Uy yjn(yjq#y="y6yH ,yL .y~+!3yys? yX}y]y y<yyh#yh #/y yuv`! yuydyzw0,%y*# yg F&y+3 y  y yvoq y9"y:"yv `>yl ?yl?-y #?<yqkkGy$pG ^ylNyW~ myp]ygQ-my#y~myTyo yony~= |yy"yhy.yQ"IyDyE"y"`y)ys!y"vyM tys\;"yf ym!yx"yn yw#`y! y !yj'Yy}MOyH"Eyw#Ay> By!Dy!$y=y~<n4!|my[!ywy# NyoNL yyECyy~mozyfIyx oJyz py{ y{ yj4dy4ztyh3yyiyp}Jyvz=yc my "\yZyu>fBygGgy*#Hyy!uyv*yxo6yuyq@y^QykUy+y{.  y(!}ykyu|"Syy#y{~!1yG yq dgyy|DyyhJ  yhL yi"MyYy!y.y#+\ygB yyG =.yTr:QyjJ W@y'"Gy-yRsyryr!Gyw ydoSywf!zyhwwy!;=ys*ay]UHy O~yx! ty}'yFyw!y3 y|<ye-$f.>%$"!,W/A(-&$/&0-Mt-&`?Κ-/Y(QL fӛm(/rخ#*l,NO = gT(Ե9-FP*X&Wh U)843|>(G//////////////////*s) N^5 2+ K9 #*: SWWX WX/%W XX WX X WX WWX X X1X X WX XVXX X X<X X X}X X WX XNXsX X WX WX0X X WX WWX QX XWX_X X XaX X X+X X XX X XtX MX X WX  BX X3 X WX;X X X)X X XsX X XX & X X X1X X WX  JX  X X WX X X X ~ X X WX X X}X X XXX X XDX X X WX X WX p X X WX X WX )X X X8X WXMX X WX ZX XWX X XWX X WX X XjX X WX X WX X WX X WX  2X X WX X WX v;X {X WXYX WWX WX X WX X X<X X WX X WX X XNX X WX WXX  X X X'X  qX X XtX X<XEX )X X X(X X0WX X XX X WX %X X WX fX MX X WX X X1X " X X X1X X X(X X<XEX X WX X X}X 5 @X ) X WWX < _X XbWX X X X`X X X XX $ X  ,X X XiX WWX q %X X WX X XX X X(X % X XnWX XEWX XXX X XsX LX X WX X WX X X(X WX2X X X:X X X|X XWX X WX X XXX X X X X X X2X X XjX X ] =X X XaX X WX WWX WXX X XX X X X}X X WX X WX X XiX XdWX K nX  X X WX WX X X X X XtX WX(X yX X WX X XX X XjX WWX X WX X XtX XXTX D VX XTWX X X XEX X XX  X X X2X X WX X XX X WX X XsX XP <X , X X dX X WX 7 X X'XJX X XtX X WX X WX X X<X QX XWX X WX X WX X X/X X WX XX_X EX WXtX X WX X XX  !X X XtX X XX X+XKX XEX"X X WX WWX X XX X X_X X5XX M X X WX X XaX XaWX X X WX X XtX WX%X X WX X XX X XX WWX WWX $ X X XiX WXkX X XNX WX $X MX X XX V X X WWX X WX X WX  X X XEX X\WX X XaX X X WX m X X XDX X XX fX ? X X*X WXEX X X XXX X WX X}X X X X<X _X X(WX X WX X XX X X XEX X WX X XsX X XX X WX X3 nX X WX X XX X X'X $X ,lX X XaX X XX X WX X XX 3X X WX X XjX WWX X WX X WX X XWX X WX X'XrX b X X X_X X WX X WX X XX X X XtX X WX X WX  X X WX XEX X WXLX WWX X XhX  {X y XX XWX X WX X WX X WX X WX X WX X X<X X XX XOXXX WXsX WWX X XX X WX X WX X XOX X WXaX , X X X)X WWX XtX}X X WX X XaWX X XX X XEX  X X WX X WX X XX X WX X X XX X WX WWX WWX X X2X X W X )X WXXX X X|X X WX X WX *yX M =X X+WX WX:X X XOX XpWX X WX X(WX X X}X X WX X WX X WX,X X WX  +X X XtX X XX WXWX X X2X X X(X X XX X XX X X WX VX X X zX ] X X}XEX X X)X WXFX WX<X X XEX X WX  X X XX WWX 9X  )X X X(X X X|X X X<X X XjX WWX ?X `MX X WX X WX  +X X WX XX(X XWX X X}X X WX % X X XX X X(X X X<X X WX X WX X > X XXiX X XX X WX  X X WX X WX X XDX X WX X X X XDX = X XjWX X XNX X WX X XEX WXWX WXFX WWX X X$X X WX n 3X X WX X WX X WX X WX X"X.X WWX X X;X X WX X WX X WX F X WX&X WXX X2WX X WX X WX X WX F X X X XX X WX XtXaX X XsX X XXX hX X XtX +AX X WX NX X X WX X X(X 5X  X XZ X X(WX X X XsX X WX XjXsX X WX WWX X WX X WX X WX X X XX X WX WXPX X<WX X WX M X X XX X WX X XoX X XiWX X X1X XNWX p BX  EX X WX X X<X XeWX X WX X WX X X;X X X<X X XX X XaX X WX < X X XXX  iX *X X X`X X WX X XX X WX X XX X WX X XNX XX^X X WX 8X XXXaX X XXX (X X X<X D X X XX X X:X X WX X WX X X|X X X}X MX X WX W X X WX WX X X WX XWX X WX X X|X X X X v X X X)X X WX X WX X X}X X WX X WX WXXX  zX X WX R -X WXFX X WX X X'X X XX X X`X X WX WXOX X WX X WX)X XbX X Z fX WWX XOXXX X XX X X WX X X"X X X2X 8 YX X`WX  X X XX X XX X X1X X WX X X XiX X XtX X1WX W X W X X X!WX X XEX WX X WX X WX X WX FX WWX X WX X XtX  X X XaX X XOX X WX X X WX WXFX X WX X WX XXiX WWX X X;X X WX X XsX X WX 8X X X WX XtX}X XWX X X}X X WX X XX X WX X WX X WX W )X i X  X X XWX X WX X"WX DX WX X 73X - X X3KX X WX X XtX X XX X X X X<XMX X X WX WWX y X lX X X}X X X1X X X WX X X XX X X}X X WX X X(X X WX X1XWX X k&X X X1X XEX_X X XDX n X X XsX X WXOX X X}X X WX X X)X X X}X X X}X vX S X  X X WX  3X WXX X WWX X X X WX X WX X WX X WX WX}X X WX X WX X WX WWX X X X X X WX X)WX WXNX X WX X WX XDWX X XaX XDX8X X X}X WWX XWX WWX X XX WWX X X2X X X WX )X BX X XtX X WX  X X XjX X(XsX X X<X X XEX @X X X6X X WX X X XEX X WX X X XXX X XX XnXPX X>KX  ,X X X;X X WX  X X X(X WX X X WX XtWX  FX X XoX X<XaX I X X XDX X X<X XeWX |X X WX X XX X X<X 3 yX X X;X X WX X XEX X ^ X X XX X WX X WX W X X XX X X;X  X *pX X WX WXOX o X X XLXX X X)X X= X  X V X X X0X X WX "X X WX X X X X f X WXX W X X X(X X<XEX  X X XtX X XXX X XEX X X)X  X X WX X(XNX X X}X X XEX X X WX XsX;X X#WX X WX f X X WX J2X X XiX X XX X XjX X X(X X XX ? X XX X XbX_X X X X X XaX X XX X XXX X X)X WXX  X n @X  ]X X X}X X X}X X XWX X WX WWX U kX X+WX X WX X XDX X WX X X;X X WX X X2X DX X X1X X XX X XXX X X:X WWX X WX |X X WX X X1X X XaX XxWX X WX X XsX 7 X WWX F X X XiX kLX X WX X WX X X<X X X XX X WX X X WX XbWX X XX X X)X WWX X X X *{X XX}X WWX X WX X X(X WXNX NX X XX X XWX X WX  X WXXX X WX X WX X XNX WXX X XtX X X WX X X XyX p(X WXMX X WX X WX WX1X WWX X WX h iX X WX X XX X X1X WWX X XX X XX 'X X WX X WX c 4X WX2X X XX X ! X WXX X WX h X X WX XIXcX X X0X  X WXrX X XX X WX X XVX X X|X X WX XWX v X X X XDX X X X WX XVX{X pVX X WX X XX X WXeX X X WX X X}X X WX X X)X X XEX XbX X X XXX XHX9X X XX WXWX SX X WX X WX X X}X X WX X WX 3X WWX X! X VX  3X ! X X XXX XXjX WXNX X X XjX WX*X > fX X XjX X WX X XsX  X X WX X}XX X XjX F X k3X WXAX WXXX X X:X X XX FX  nX DX X XNX WWX X X WX X WX X XEX  =X X XX X WX X XEX X XEX X XaX X X;X EX X WX  X WXX X XWX X WX X X}X WWX X WX X WX X6WX X WX X WX CX X WX X WX XFXkX WWX X X X  X X X<X _X X! X X X X2X XEX"X WX XEWX +zX % UX X WX X WX X X1X WXkX X WX X WX X WX X XX X XX X X1X WWX X WX X XX X WX  *X TlX XaXrX X WX W <X X WX X]WX WX$X X WX X WX X WX z X X X X`X X XaX _X  X X XWX X9WX X0WX X WX WWX X XaX X XsX  X I ~X YX WXFX IX X X XX  X WXX E X XX\X X XX X WX X WX X XNX X WX 5 X z X X X X X_WX X XX X WX 4 X X X1X )X X<WX X;WX X X(X X WX X XaX X WX X XX X WX ~ 3X X XWX X X1X X XX X WX X X)X { 8X XX_X X WX X X}X X WX X XX  >X X X}X X XjX WXWX XsX;X _TX X WX XXWX X X;X X WX X WX X XXX WWX X X`X X WX GX X WX X XaX X WX zX XMXrX X WX X WX X0WX B X X WX X X WX ,X cBX ~)X X XX X WX X XXQX HX WWX L 5X X WX X XWX X XX X WX WWX X XiX X WX X WX +X X WX WXXX X X`X X WX X XXX X XX X X}X WXX X WX X WX X XsX X X}X XEX X X WX X X2X X X8X X WX WX|X XX X WWX `X X)WX X XX X WX X WX X WX X WX WWX _ X X XsX X WX WXX  NX WWX X]WX X(WX WWX X WX X WX X X(X X X<X X XX X5XGX X X1X X XX X2X<X X ^X X WX X XVX X WX WWX X WX X WX X XEX X XjX X WX + X o #X X XNX X X2X<X X WX X WX X WX WX`X X X(X X XtX XY X WBX X XDX X WX X WX X XDX  X ,X 5 X X WX X XX X WX WWX X XiX X X|X X WX XXDX X WX X XjX X XaX X WX X XX X WX WWX X WX X XNX X WX X X`X X WX WXFX X X0X WX2X X XMX X XaX XbXUX X2WX X WX X X0X X X XaX X WX +X  VX WWX  X X WX X X6X X X8X XWX X= X X XaX ~ 3X X WX X X`X X;XX X WX X X X WX X WX X WX X WX = X X WX ~X XX X WWX X WX WX;X WX/X X XeXX X WX X WX X WX X X(X X XXX XBWX X X&X X WX X WX X WX X X:X -X J X X XsX hX X X;X X WWX X X`X X XDX X XaX X WX UX X WX X WX X XX X XX X WX X WX WWX X WX X X WX X X`X X X;X X WX X WX XEXjX XWX tX X XaX hX M X WWX X EX .X WX X X X X y nX X WX X WX D X X WX X/WX X WX X WX T yX XcKX #X WWX WWX X WX X X  VX " X X X X X XtX X WX $ X X XNX i X XDXiX X X(X X}WX X WX WXDX X XX WXFX X XX X WX X XXX X WX X X9X X WX X WX WXkX XX X X XX X WX X XiX WXFX X XWX X XX X WX WWX WWX X WX XNWX X WWX X XeXX X WX X5WX X?WX WWX .X W qX X WX X WX WX"X X XXX WWX X WX WXJX X X<X X WX WWX WX X XyX X XsX X WX pX WXX X XXX WWX WXMX X X`X X WX r %X 2X X WX U =X *X WWX WWX X WX  'X WX X XWX X X'X X WX ~ X X WX $ X WWX X X X X XaX XDWX X X<X X WX LX  X 8X WWX X XjX X WX 8 MX X WX X WX X X X X X X XNX X X XGXYX X 5X X X}X X XXX X;XDX X WX X XX WXAX WX&X X X WX ?X 4X X XsX X XEX X X<X X WX X WX X XX XX!X X XX WXWX X X X X WX X WX X WX WX'X X X2X  X X WX X X`X XjXX WWX X WX X XX vCX WWX X WX X WX 2X WWX X XX X WX X WX XHWX WXcX X XsX WWX XX*X X WX X X'X WWX $X X XEX X WX ,X X XDX X XXX X WX X XWX X WX XfWX XWX X WX X X)X WWX WX)X X XX X XNX X XiX WWX zMX XOXtX | X WWX X X}X XtWX X(WX X WX XWX X WX 'X XbXUX X WX X XaX X WX X WX WWX XWX X X X *UX  X DX X WX X XtX X XWX L[Er8)Gu@FsXU^Fu3CvBUOFPs:3Fr_?qEdv,EEev-3GpqF}Fqw5Ft*R`Cq:pGsPGsF(FEtFFaq?ICEtNFs3GGhrsVEzs_2GsNGq9DHt[9Ct6CtAGuIDvR:Fzt OHHva:G"tLCnuj:HuFDvL5Cr?13F$qTFs(UCqbV8GtUCrNDrPGlqmF*C8uEFG qB2Ddv$9lF]qSCYrAE%r<CsT-FuQEWqV-D;uy8EuCD]q8CQrJ Fq7DrFNFu=EqL_FevRGFtBFtREQq4E>t?DD!r8TEv.RC6uzG EsKWEsQG't.MErSErRCrt;HHt2`GrwALGrxBFBs|>1HBviLkHCvjHGs2cCfuqAErEHuVFqLCrI12DFsHH7r<`Dr:cGuAGroVFbuPEs[2aEv!BiCuk3eD(q;ZHFuNFrtHEuGt2DreD\vkQ%Eu+EsCvNA Eta;mEtbQGrBH=DsDNCrG$HEu8ErDErFHEuDODss?CvHSFsC@`DJrM6Fgt5D tTGs7fFqCH2r-HcGvMNEt<=WDvr;Fus~1Cos4Cr9iDu2Ev*2H)s>jDmsUDns=*G@vKDr7-H s?"Dr <DtWOEu:EXu]HEBrKEYu^FCs8Dbu>C<sNCui;Dt2eF}ry3CvrCH%sE6nF/t%8GuUbGtJGrL5Fu>Gq<D7tt4EuORGRsf?UFsK9vGmt<Gnt?}G uQgDftnF2ErRHuQ FqTFqQ^EorFYD=s4D>s0nDuoB1FosPCRvvG;GqDGFr>Gvt3?Gwt4;BGu>8Gs;8'GtSE^tyNtE_tzAGiu7FrSCuwRE~vEDLq= F>rCDs<Dv:DFu>Fs{4Cs:gDZu;Er7kCup8 EGvSTFqBDQqhJD9sPHD:sF.E rDDu=ECgsTDs!JmFsFGqoDPFu(NDCt5EuYDG8u28Cv]GD sL0HGt=DqGEvG2Fsr2G1qRMCrO-Dvs9kDs>Ct62H'rGUDu{4FsNBcDksFCOqiEEssJFtHCu>EFv JCtPGsHPUEq7.DsBEVtB Gcu;Fr0Exv9NG t5lEuTVEuTgGuFE8rHGJs?6$GKs@?EtATCtSGrc5GFGv/NCGrNrCu|TE1sJHuT7Ds0F;qOREtv;Djr;E*t]E`E+t^8:E=r:1GqtPCs;CuN}EvvWOFuQFuPEEs4DEudBDr8wFs\?ETtUDG}rCFu,GSD[t6 FQuOEu[TICrl5EKu9LDrEEqK0Gs8ZDr8VfCuE Hs&=FqBGu0QGuNdEqVD|ue2F~vTFsLDts1EvmEDsH{Gt?Gu>lGyrmTF@v9NE r&U#CuOEsD,E?veQDvJ7Ct6'Gu SGqE%EuL>GDsV<Gr]KEMtdRFu5;.Cs@Ffr2wC_sTJDCMuNoGqE9EugIFq3Ft7;DvfMgEtZ9Gr@^Cs7&CuWCu<}EvQ3bFu@Ct1EHt0GYu%;Ht1DRt9FDuWDF'rLHDs'CFt'0Cs?uGuCC;qKFtRD{t:Fcr<CuuKE'sBgEu0LGv:F-qMH0t>GHrBTGqJ\F#rNmH?sa=_Ds?Ds5Cr=3ErH6Dlqr8Eq4Gu NCuW-DcrT4FAu2CAuKG5tTHIGs<PGdsCFt|>FDuKCDuPCsU%Cq6FSs=xGrNOGLqBQFqG]CtQCt7pGu:Fsb={FscTKEr3Hq;ODrH9CuJgGxq4H;s0:_GsuGDs#GsH3t4[FuCCu@rFZr5DriDHso@FqF<GasWLD"sQ6EqHtGrv7CGt6^CIt?GuWXFst34Cs1]Hq8G/t`AEut;GsI5D}sS2Fq2H rh?Du5 EvcUCs^4SHv KHDs4Er;EluRDxs5QEIsPEJs7;DqkIHu3AF(v"= GuNG EvoIFrJChuOGUtfDDtS&ErQGsJHDqxV Cr75Efu\@F7tLE:tHkGMuFQuEvh9 EsNFu#2AEss1AD)r;OCmu :G2sjP GIv2>KDs.RzGtQ6GtR=NDYr/IFLrNCev 7EuM>GsIYEauOrF te;Fr5F tgF@Et5Et@Gu6>4E$rMCG6r=#C{s4<DtUGv&AC9tQEq1DzsLFys4EELrFADrIHAvT\DsI)FqQGu4GsFGAv<;Gt6Gr@DtUDqc4tFv4:Et;QEt=GqJyDtK@EuQBFrLDvr>G#sEGu8TDuVE3t;G|t;RCrZ4E-ur21DtISGrRWDEsPIEsN,F_u@0Eu3[ErIZDs>DsTF*tLCltI<Fu74EgsMDrO1F u0CtV!E)uRDuSEvV9DMrJVFXu@WE q}<E!q~CGtLEEucKGuA:D s;Ht;/FsK>Cu?EvO2$EuZN|Gv7S?DTq;FFr%<Ct67Cq0GuEFDuPCqFGq=yEu@EuBDhsRF{rAF|r4EqMDuLDuVFv_CuE\t:\E]tMD*u7Cv U?CVuGEvlEEu:CrCD qv0%Ds HFvZ=9Ct DGuCGrE\G%rA&Eql3<DtRF rGFtX5$CrQEul?Eum6Es%3-DsLR/C|q7Gfu`>DtDGqV3FTuSuGsTCu$KlDs:rDsCdH#r7DsFHGr<^DVuV@DtAGu2T>DtFFq@hDKqIiDu:EtMnD~uRG<u/SCuAGqDFux3GktJIoDBr0DCr2D-tP Fu_8!G tHFvr(?pCXtUDt:OwDuP,FsNDt2CPu6,Cu VEu4GskC Fti4G[v9DqSH!r5 GrEGqGyDrzM"C=rA+EuAGr0Fv;PE<r)McDrtU HIs`TDtDKGWvT4.Hr?Gq9G?tSUFt7FtTsGqsDD1tUFt{VSF5r@:,F`sOE&t2PE7rg5GrF`GrOF+sFuFcF:un:oG_sU\Ds-CEtt9LEutNGu;SGu<6HJq>LF uA\HvK1HsGDt=Dt8DqHFr>DC@uX<Erf?9GrKGSuO+DtIFsIG r16 Es=HhFxt1tCq?D?vVwFsB`EqfBGt2GqAGEr*9GFr+BG-to2CtJ`Es6E&Cr0H&u&S8DuODXsGHUFhqs@C`q9Cv4RGVtkSDt?Fu?rFtEF?tFE"sYT$E#sZOGQuPSDu?H*t~EH+t8Dr`4CFuIFu8DDt7GsSfGv^2E6uHWF tRCq=GuIFiGr>~D<uOGu3.CsdBGrU:GrIGBq8GCq9"Fu;=F9t2FrOErn5*G:r5,H r OCv JFt}GGrASFttICt-VUDu4CtlKERrN>&G`r6-DrLFOr8FkuBG(tuIDtDOFrd;nCqHqGu~TRFCsOF^q|EG7sLC}svMxCv?LD%rMFuB]DqRDqBSEu?Ft IpCsp;CNsI^EsCoDqMDtVMH=q5H>qV`CsgICcvCCr8Cr>GsDF2tK<Ev@FuuICvI?D#rUFs@FtVFltCfG+sNGuCSFvd3GtuQD3v#JH8r 7 Gq@ CKsREt DjDqVDt1JiE|rQJGuAPCsDvFu3"EOq3H v)6DtGRCq0dErK1DwsRLYDvKFrSCsx:qE t>EGs2oE.u9Dv0Fqy35D2u<FqeJEuACsq1EsHEqJGr':$CtsNE9t9D<EsEEuOEZuQD'qODsD2>FsBGuVACTqCG.rF DrNlCv6Eit2LlG^r7FsOF!uAGFrS8CuDoGvC9FJr02DsHGFt;Fuv;Fs)JEt+ME tCGtTEsV0jHuGB+HuHLDsz>Gr2F3sR(F4sUHv3;rFtKLGqgP-CHr5Esr8HCq7Et0FpsWJFrPFuSDIrCgDit,GG;v\UGr?MH uODsU8DvC<GsW+FqnTDu;FVuCCWv'QGzsEG>uITG)rEG*r2EsG8Gtq>DtHCsKGXrCD0uJ>Fr[@<Cu'NDgt\KCZusI}Er>Gs< Ds0DsQC~q0Dsn1gD&v5JH-r ADrQ<DGrMGtKCr;2GvFHG]qpKEqraPErrbOF,sPG s+JG!s,O CvWEEq2"Ft3|CqC EuAADv(LFuOFwrp1Csr4DtrJErULgFqU+G,rIFrk6GusVH"rBFs:CtN5DUv8Fdt2C^tVGr8CvIInEq0DuWDtFDq6Cu1AEsQPbFs91Gt1EseGDtc:Cpr@Hs OHs 6Cq@Emrj7ODOv8UGrQGtVDtY<Fr7@GrsDH6uSPC:rM?Gr3FuU<Fr.REDtq0Er\ODu4NHFs K Fs MCr 6GsGCs:dEq3DrWDuFFsM>Cs5EUtKLGv`;*EtUDu3FuLHCv+GBDt&FEqS_GreM7Cu3>dEsl@jGv[ADtjBE/sS5UEt7 FsNCwvq1 E(t=ECr;H1ua@EsNCtOEtJvFu?G{rXSEu8"Eu =MFqJ_FsGEcr=Gos/>AGZuKDDu?UEqLEt=eDSuACDvDFgC[s3E qFGsVFr{MGTvpLGgt8H.uKDasIF6qzCrF8q{MDuh9Es5JF.rY1>Et4DvUAFsOCEjq5=Gt1H@sBCu>8CdrPD r3)CqN Ebr|>D/s9F\s*KGes6ZFmq4Cir4R^Cjr5IEtCUGr3GrMCu}8\FItJCLub5AEuC]Dv>RE[r>D+s4Fs"TEqCE}tKF<uA)C>vM3MEPs4hGNqdS@Dv6?Gs15FMt52EuB5G&u@Et=iDrLE4qK^EsB92Dq1,FtPG~vtFEtAE@u:5FqTGt@GtQGsr,KcFs73Eq2RCt_SEt;Ds t7.;@',~b~"]d>S]~$>%]XQ(%W~ q7 Fk'Rα6VC]& ]"ޡYj7.-!9}]% Wα.-"@>& )('ʷ,(αx~!9α q3(%5GFk& >>&A q]d`~* >#α,B>!  G4~X YyFt>XK 9Y,'~'"*~r~d67Y W>' Fk%Z~& Xg.-!>7~ ~d-α,e]yOs]%J 7Fk9.- N]%.-W>$>%*+>7],:((%?nY qO>@  q&Fk/.-$ .- qJ '(" ($p~B< ]ʦ(0]'56]%("߶FkGαV]y6W(8.-X~6Հ~9.>'s 6-Yy>αe.-& =~%o((' 8]#Yy~(:EYy("4]%  6/Fk%R'+Y2 9:~#Ě~X #α~!5PFk').-X.-#T >Y#Fk q.-d(Ɵα&A2α>(L~eY{ 7h( .-$!YXFk9: d"> Y7αU=Fk''.->65!>":`~X( (y#Fk֮ 6Êαe2α7Y@Fk'=Y'Byα!Q.-+Y q0>Y$$(%Fk,S.-6.-Y Fk$nα'9>7 c%Yα" α# eX(!(& G "A.-d.-!;~&A 7>C(d#:1.-(}>& Y" 6= %ˊY#7@Y9f"!!  LFk>y.-$ 9( Ye?Fky~YB( q&~>.-&A]6; W((2  dXFkJG~:Fk$% XW] .-9K+Fkd`(9Slα.]~  XY>%>&As.-!7%αy7.-%D]&A0(9]'CG(<20α&AFk,WY,G}Fk6((.-%.-$TٻY&AӬ>]e9]]&  'I=]& yFk&AƮYA#(d !)YULe >(-α(:Fk''$Jo]'S>'*Fk<αݚ>$Fk [αe !~ <(сYe#Y,r 'Fkα&A;~#YX]& QVα q)α(y@ ]Fk,9v.-#C(e=}α!$.X*Dn,Or-$9c+8'|a')$V!(ݏUPe=o:.@19,}&k\+&) ,e1 C$$ &5#Z&9/$J+S\=e 4;,N&&T+Y,L+ :Wu-!*PH &PI3!$-!.#B% )";Lm+ -DU; ""~Y ,7.u-?'%b4Bج1#E!#['7U)vӼ2?~:*&tnj'Rv$Wց ?vɆ'.#>Rs! T}!ޕVD]'   M_ *CR(q, }&'(/&!0{)z;#*})z) ?#?3' 0)'UO"$B#*"i!'Tm!S6,&x!u%(`1%*&$\,13 rU**x*׎& q| .) YU _ҟ-*f+ڟYZa*B2"&G$yQ$ɒ$ Z >m-/GX "3w*=,K=6!jҴ1F-0a&Qp%5UV .y5 |,  XvO+{"m&k=,R'Nz#F+W*1'S%< $z! %ƹ]6*5$;$@$e53!E$  ,D."Eي HY& 0N$q: |-J&/E5#@'rGC4E%$Z. ?!5%7R@ L*JS-BN-Ɗ;o.KQ8{DY!oTFI&ڻ Z 13-,'Q +WsN $3ȧ)ۢ_ϕn&!.:M 97xd *$M<+R i-()0 t&5B Z2;N$t4*f $.%Gs"&g -5+{~,L&N Gr#PJp+ G'U($ ~ImE,? 6w. s&' 3 k5ׄ*g U/%+"- C$ !u"2":*xM(q1 @(`'$"~&&PY=,R9X-) :K])E$M^.h"'e' $qX?%E+? ,K&]&$***C)1 $ |Y{Q$;eFS$|޵*tɪ%< "E"&=S޶!^A$;?$B.Q9-*.)N?$ex42!6!ժC&(*'ȝ&;wArt(%b# ?6&ST!O "G,#<%(&5*x%#@c!Q|O#&8X] ! fX ; )z.hwZ6!T" $$Z~,1ەd4+C-D[C$W'7D݄.#;*}!*b-:R47> !"(+CQ-;V$yJ*m!jK"Q)vZq-Z% +p GO'P$*I$%w  KW$mVzR' _ -f q+ rN&k"B-?&*Bͅ,EVE7.nP 4*# 4vrU2wP%$jHȷB%=|ֿJ%3%NT` X<WXRI^WoqX>YMNe , \NXXtWGX}XJ  xNvXI dMR P*XWjZXjQJcEXsWyS"OXaWxX VJ  KTPIkX<XM'XTJQ  Y:P?X4WrRdQOXZ )fWW\J@  M[O YWgWYI|  Aq{TpOaXWMWQI]x[ OWWkaXEYAISm 5ROv fk\N! T)NgWXN\WQnJaWWDWRtJd { ([,O X<WuWUK 8[N +X -W[OV Hk TMO%   (XP0  y[NGvQO8T y&g\vN\# iCZJ X;W0X`Y-InX'WaX0\J qX(O- IxQQJ2WX;WYJm XMWAX[:Id WXiXES9J#WX$XEYJX $[T4OX}X'X W9IWX<>VJWXza3WRgJ0* d f'ZN- @FsRO& % 0nrSO~ LrgYOO ]n 7pTO WWbWVK;XW1YK3XaWwkUWTaJ+V[TDOWXXUxK1P N In[O ETZJ6 VOxX&WX/QJ \OW \OXq /TO poCWUO WXEC\yN`WX*LX5UJ>bH "jURNX<WxgmW[J. ,&yTdO & uXI[WXN& WYQI@!i ^Vg@\N[xXkX2g-W&J{ | fhvcZRO `   \=JWWvIUNxWWREOVFTP[ *[O N SP9WWUgO V yZNp mQNU  ]O! %9}HZQNcBWX6 WYI + XIfWXtuvYI kESNRF f QJtX<XJXVJ# ^L 0[J  [pZO WWeWSJ  2 !o[IOy( _ X 3W.N D |@WOe oS6ND A v|U%N2 < zU4O0 VOaWW XFZJJ i UJnd4QSOXW}3Xi[K& }n[nO5 L m [!PX<X|WQJ hnQOtk XOLL (WJO U Fo  YOWX XZJX2X zXNRrIX'WWWJ 4 |{X^O, ~i|\ANhT ~? ^YJ  u $ 9zOQNE n AXO \nO)X<WSXaTIsXXE$g\J WX8o9W[IWWwxWO QX<XNxXaXKBmc W;Je + XP8EWXWW8J z } ,WI  kVINGWX@<xeXZJX W`X J ViTNj} 7YN2]XR &WR9OK_ HvRN'WXpYJrWX|lJWYJ R | ulhSOX XtkUPlX# BOWX\KC X X`|XsVI_X}XCXAWR#JE~X WnbXN0WWKX] J74WW}ZIyX<X|LXaY|J WWWThIWWo(YO` XXoX VJBWX&p X`UJy SyZVN ny SP"WX2TNI  v RIXtWfPVQJ~ 4 WI Wrz"WQPV4l\K/WX<#[I  &dZN4W uYW\I } @z \J WXin`qW[JWWp?tXE[J(X&Wq+X/ZI  jpF ]$I x%QN T<rXPXtWyWXJ `xYOXVXLWRI XWXEt1X}WJ d )WN>*gWN{O 8 H~\NHXWnmWVJ6WXN@SNX W_(S}JWW^t1W[J3X X2%xWhJjJ (xuYZPY R O3 ZR'N WXySOWWCvW[J' q $V`OWX;qXN\ IXXrWYI  0kWOXn _}W\Jg X1X'UvTNS kzcU6I )g[9PW $ # ) kS8Ix AsqtdU*N|sX|WWRKW 5j8zWTP):  V[N9   It\NV ^gH[OssWWWGX<XIrX XOU'P%CMUNO?  uYvNtIl uSNP ^ !mYN< ] |VJG1X;W;&X`XcI ASNxXX mqWZOI{tXO*2X<W*#W[6JufWW#zYIWX/qXEV/IWX;hXNWrJBXYK4  YJWWTJ k\Ph| n\Pi Y Hsx\Pj kQO ( C XIqWWjX)SJ" so X?IX Wl-X{SJ5 R ~Y OXP ,SPLXkWr[7KXiW1WWI_u ]%K>k ,vkUOmWXt ZJYWWcpX?XJX=KU$O;WX;+MXNV IWNLZ~K#XWWTK$WWZmXETFJWWtwXVIV / u\OXWXh&W\IWXrsXRK! C )RSJD WXN6WZYK Wm*UPYDX<W2 Xa[}J 9 Es\YP2 MhmJWPC D jn \IY bYkN+\ ={OQJ1^ 6tXIWX}XVOA8N hlU Ngk yYXOb | ySO ZzN&CX(X }jRN lm[P.XW2or[<J  1g xYgO3 ^\OvWX'9XIHWW|WU{J)<WWuWRJ] XNR eeUP= WX;,jXNQJSk }Z OF N 2 mQO9 !`tWJ< gWJ fhVr/ZlK+ XXr/X&N UPBg oYO- 7w[]OWX}lXT@N  8 SO  ?VO }~ 0WP   >kw[N 8Er\)PMBX XmeXs]I S }X=J Ebh~QxPe  wmf!UPfWWu[WWJ l wYO< WXnXN >X<XgX\II  vUXPKX}X|z;WXI?WWHWX I K7 ,w]N z|[hO a4qx ZoJs zgXOcXOW}XtYNX f\ O l\ OXWlW\J&#u @KYJgh~RzO XfUP XezeXnUFIX<XCvpyWSI  kSI YDQJ9X^Wq WPZ #|TN &X WxwTN  G &U<N#  C Gh WN WXtWVI  @uGYSyN.XMWxgWU^IwK _VMO M [N< 4 |ZO]J#R?K:e OXqOR]O  > h [K0 L BWeObW{S XKO A \I  %3:lXDPXMX wXVUJX X0oYsX;WDJN=WWmWV&IWWdXIv 4*pTP/ kmzZNb"WX;CXNVJ^ G~SL[eN X X`}XXJx &\OWXNH?WVTJf > zYKWW!X ZKWX|RJXY sAWNk=\N * gc\O(|WX2TkJ, NRVSO{i*SOrX|XrWWJ%  B #CKZO ]WW8WWIo@VI -T N , 'nT[P7 ] Etx UEIAc TN? v<XWNFWWPWWIb R *[P\Y on:X[P]WWKWWJ:qWW{^TX SK@pWXo aX W-JZ @r`QO c ng.YJRzpa\?O  G T:UzJIWWAgX:QK  ! VO}XWyWWJW  RIX f OZP WXLXEUI5 Zu{VPN } UK ?g4RK" SIOJ X1X|qPbXUIdy9RN W=QvJhgmTN`WXsvW\J\  tL}[mPX >ql4[O~ G[XN WWYX(ViJX eD~IW[$K XXtX|\\JL MZNW U le VIP[N  iC[P WWs\NfXWjWW7JmXjWoTkW\J k YO  j fRgSN_X ^\K\I N  )EzZJ% "X(TN  @f(QPWWpXZ2IeXOX<WQPa!XAWl+WUK8 iX XscRRPQ G kSZO ) &wSI~XX UWXOWWwXtTBJ|x h*QP#  8[1O$ X`XDsptbYIWWz(X<YJJ a qYI   |QO s tkVPc =  Hm\OK .wI}\O QOFz5RvP , 'XfO nEUZIDsO q]Oz y zE RaI .2  RKL u YwJVWX&XE[JW  kXTNu p  UO }n\{OW ~1M QK/[ O=3WXWWSJB aWIj[ xT|OR(XWW0R[J&WX XaW{IO M q !VNphtNVNqJnRPN qiQK  X4WO\MX<W]WSgJ $k} YI X Ws SI ) MPiXiP@X X`.XsXRIT"XWWUJ$ WW v[WTIK X'WeWY I pTOG UAI XOXto[|K  Q Cz}A UO + ]P-e i-nBW NX<X|b XZJiWX}.X\NY;FVtNy7X<X1zf XE[/KWX UWS7J jAfUP$WWfcW\7JomX FgfVOkWXOpITXFRK)/ L |VONXXcnZO tWX$sSXEYJVW#WR`JT >Ea SHI zK WxJyXtWuSWRJ_ yR%N  ~Y#O ~BY$O' l WJ|WWsUNQ>CQNWX@xJXXJ kWX'[jNH D {jV4N|,XNxnCQIWWHX RiJ_ nQOY p !RyOG WWl{QI -WJ w[OXW{$W])JWXVv-XMVK  &= SJ<XlXufQPO W rk <TKIWK WO WW"XEWtIp3 S YK  WqUmJzYO" h WQpOg  rTOA k TI  U5N6WWyS)N XWsWRJ?$ LZ)N eWX]W|)X{\JoYN*X<WXaSqJ 3 zQO ~u lS{NqWX;cXNW(J; {XWp0XXTIzWXZ~`_X%VPPOhpm0ZN% a Z(O [XZWzuTN_2ZNo  UuNXPgfX~QK5N uUNKXX)WSRJ  ' V~J ' 1}l~ROXsXi_rX;\IX<WLWWK<yX}X'z/X \KX X2n[OX<W.WYqJwE ~UO Q Gl!X2OeWWkXEUOJX1X0WRYK" jWX yXX J 0B so XJ 1 @kT N     5ZDKWX0XDUIWX iXjS$I+X 5rWR\J*  e[P_  *USNL ^STOq^ 72zXO X XWXuJ  rFz#VN 7hkQOXWm WYUIRMXG9jxoVO2 U ~- dWIX4X,fyZnO:kk +wv= =ToOu/ AZP! |3nNS%NdWXazWVIWXBuVXUSJX1X'PZ`O  z oVbOWWQTO  J, WK- X2XskYRON5  0SsPUWW*XE[YJwH}XN zROX e #kS FV(I S OnW mTJO XSW jkZOL ML"YIhWWSIr {SP $ SN('X2X(ko1YNWWXRI l >rTP EXXgX4XBJ X<X1oXUdJWWn XEUJ81 pTNWXL"X TK(X X`soXsTJ  Z8O6 y RU+O `Z|.r oVzI}X<WtpXaVK WXW\Iv yzKTNX~ Ku\PJWW{XNYJHWX?Xh\>IEX2X(k~VPWXEkX}V II$ cXIN VE9[N; 7}lWAOko` jARPP D  RNs $ Q 8VK,X(X tWPDXtW{+X}WIZ ~WXu0SNwX}X jXESJz < 6 \I} DWrg _WO C\OT=X WvkX1]Iu _ 4T'IPWXU}w&XEVIQ` RO uO WI  :X6PNRX<WmohWVJ+WWu 1X)X`I z (N\UN {VZcOtXXWX<QJ WWIXVYmI WXWg SIWWVO |-- SJ y@VN}K zWP X@RN5 X&WQX/TIZWW|XE\/K;  c+PXPS)L 2 S?O q +S@JWW%PW\IWXGY[OdX<XCkKtCWZLIeWWw<ROS yMy7\Ia CzXUJ/XIXGXJWX [WI #fTP%< TAN2 E  !VK7 u YJJ8 kjSNy pyVVN z $ZP` RXO W [z[OQ U |B{SJ  sTJ XkX2j_^[5NmWX~xXWUIX X]+X/SGJXYuavTOEXaWp^lXjQIer* qTJWXMkVO|Fp1Z_VJ  y |nb\NfB 4_%Z9O PXaWXN[MJWXP07RNXxX#W\JWXyhmWX|K2 "nQOX X`f5XYI  QI 5|}c[O :=|Y N7S$_Q}OX\|WWIJe  }uWN @ tV9J dX X2fRN\ f )zRN] J y9UP; rlx TIE WuiUDO )X<W6AXWlJ Y n*V-N"WXe JZN~X|WPWXJd ["{xXO`WXYmTN XWXi{W\"K?XWUJM j \I2~ZRPb f uUTNE L[SSN WWr:WS K  pZtRIG~X}XjXQNaWWv.XRJbWWgWRJP a6][O =nz~S;P >9yR/P   s. 7[(INX@WgXN08 opSNX|W8WSFI: ! zz*XJ *c [IF  f-iuQO "xR\bPbEW )k<}X5[NL b   SOK ?_UJx YjXT1PG L:T2PH ^tYOB; *YCNX3 *X~VIDiTJaWX2{jXKvmYO WX,x~jVNXXol'zX SDK. <k!#YPF~ Tv zM XSI[  uAp ZfJTs gN UJ >OsuY?O Nqq TPXX%{=WSJ- GX~[uOWX0|jXDS.J T ahYO tK[3N16W{X=\JP yK WI^ gG\BJzhXN [ vTO[ X X1Ig Y /@[NA  yS,NQ ~X]O71WXNPWUJL kWWyXNMo} Z OVWXU{[XE\ImXXXN>WZIV  XP yxSN b \ ZN  ESSkJlKT1*[bOx Nl3\[Np + >~SO qX}P>   UJr+  TIX'WhW[J p 7 FMX_O4XaWuyHXjWIi_O UUO = (~[&N > }7SNuWWXSI;XsXipX;SQKDX}XiZUXQI eWN kUWOOXzWtXWYJMXzN D gYNWXFX0XJC>UNk  p!sZCNKUolP[pN= $ ;nXOWX *XRI WXNXMO^N { @-HT>NP xKw XsI QyZbOM XqX#f ZIV r % fZNWWlWRJF t0VP[" 2 hu [Iza g[>Jd b cX#JeWWtkVO l " ^sSzNX"XsXm\J=WXBWWIo ~7ZN M  `yTQN y . VnI"XPX~T NC%X}XjjXUNXpWVP, YPg [WX,QNT  np[TO !n[VO wXW{WUJ |MZ\Nh c{(UO i  pXJ4( 5UK Pg'XOoXOpX<X&gX\Js $ 5XJ!sjHTO^ %q_WO4pWXEuX}[.IJwZOU]3 Y%K*WW>q\eNBXkW%UOc laiRO9 kjnTNXRm#~UO qQO. NykXO/'XsWwh&V N/N X<W~W\IWWflXNZ^I  Y TeN 5 ZNwXX}kWVJ3i {mm-QNQ  F[ONXyW'W\KWW}pWYJ"P 1#S\}NtX X`|nWXs\Ic XXEJTICxWWt[XXJcWWf7ZP^ ^ f2 kUJUWX;W[I p|x] N /XnN$ WW3WJWW~X:WIlWXguWZPIXkWeV=O WW!XER"JX'XLW[)JX X2wPWQNFWW@T&If *h}%lTNIy6ZN'  bUeO + uKZ@N  /Bq]PT ]   ,X+N,WW\N-X<X1qEXEXJ VqIqWW|kVIX}XjNpXRK%XW}X YK9_{ mSPR   QJon" { OgT<OwBWX{^AXrVK6 ,]QJ6 [jsS2Oi ! EROj  /3Q|K'k #~RNWX iXsTI%X WzR PdX<WvXEStJv >TNv , [Or  ]~ ]XNJ X X`XsUJ wpoYJ~xWW&{X[cJr nZeP'^ HgYJX X2voVIUXWRUcIH 7 Gr=u? Y@Ok L 37XOiWW%&X#YJf  H/{RXNa XW|YJ WXnYO WWrW[JSRN3WXAuWRK 7X|X )YIkMWVO_ 9 lVNWX )WSIt  e"o}RO DqkYOC[>ZXOl YTf[KKfVOP WX YUIL Yibn RJ m  TKZN 4vASJ xW @mqX7\.I1 S4W5O{xX<WtXSJ pXUXP(  XxTO  rZOwX XOvP\N)ZXOXXoRLI / NoXZNZX<WlMKXRJ  ' TRJ'Q &rx[OXX X}T(I -2Y8Nd 8 *\VJ 3$i *XI vfTSNXW|WTI\WXUWS3JC H FWNlWXL]5XWIXWX Z#OW _yoXYYNz Z$Oy i[qR}K  VqQP5  ^-x VP6WX1;r\rOXX m{X}\Ju Ns[UNyB yj}\uPWXAWXXEVI LfW'I VvOS&N =dSOH uM+Z!NtaWWeXFSI5 UN6 8z)f} ZJWXurU1JqXjWR J  tyYOk '@SO X<XMWTGJ[ K VODX<XzWSJ ~'6V*Np @ROmq )fuZP  G0 \ J8 ;]PA? USNV I S|[J TvSvO>  gly_SNPy ZkO#X"rW5WYI uVaO f q~QUkOe fl#SpP:/V %yW*O n {\~NNXkX2\NOWX"XXEVWJ/W rXY_PEWWdZNx[ 1[O1 <ZO2WX; XNWK0WWkWVJF HF{bSIH {d\N[ QSP WXsWVJXX }X}SJI m UsJ H m0ZgN  0X5N X'XU HWUJb]WXLxWTK= .[ NXXWsGWURIWWwnRO VU]O? lSVP`i <TxJWXLwu XMXJWXp#QuNi >xZI} H8YuOta5Y;O 0U)NL H 5[N ! |SNr TvlZ_J agSfNWi < FSPm;  W\4Nv ygp,XN@ XPBWSJ`2WWvFr\JK>WXNWUI oW ) S4N .v xY3J X<W WYIJ 9i H\I + fv\OWewTI| + Ilm ZI ,  ~uh[NbWXnusSN &\Pn: QU[\I` \XY ruQJ XMW}{gWWqI u1n8TN" ^3[2N z[4NWWwS1NW LXp\I < A iSP_ ``TiO >3ZAJX2Xs~ZNe Qf~6SNc AeYOcXrzX[I @ ~TP $SBN8X}WXTJAp FVP Y G +rT"NWX iX[0J} / @mkRJ X 0{[P3 mZTOWW|NUJeR V ZN pgXN:  ^)q]O ) ^ R=K_ G\OU  Y >fZP _ ? VO'  |ZOcWX'UOWX1xjS<P+ XWXjTJ {XWWSIX X`nXsYIMUOWWtyWUKXXWpUJ 8 VJWWHWUJ  8RbIW  p QlJp tRNMB q kX:NXW_XSJ/ 1 /XNn 4 p:&TZN LWWk[qIWX qXUJ ?T9SO WX }t!XaXJkXWjWRhJ  VhIB ZN V:OZWWdX}WJr!\Ng ZAUP4 , f>YO+UXaWMWZ+JvCWX}FXWOXOX<yMWYzO WXYXI^WWdWR6J= }VN"XWn$n,X T/JXOWznXtTcP<WoWVON 'UPP11X:W^2XRJq7 V uoWO,U#ZvKA!WWxnXU&IFWjx0u["IsWX heXUI ^lQO_  5k5oUO@d q-] \aJ !DSOh mtXOWX-)$WV J WWsXE[ I! MSCNWXEk+TOf u >s9R$N^ZWXG ZO ,lX O5' v|\P& XrX8Lp]WZI{NXrWIxX{XJAKyVrZ\GOWWm3QP  q%JSIL ~v[PkAhP' $A9/H!%;D&#^-iH ;H(3L s,˽i#*Z'H!uTH&?ɜ i2d(ʎ)*9#$+*\e v"CCvP*C(KSg-Z;\&&'@!g[%!*%֡+W$/:ŖT93+- 6%#?P T'm )Ӗ&\.8a1W0#X1. *{Y-jQ. p>n'HH /,Hy _~Ms 0D'b7-eG!ىz WwwV Ws9y Wr#x Wu4| Wwi WrO} Wt)z Wq{c WsC| Wq~ WtwI W\{ Ws}0 W} Wqw Wv2x Wsy{ W}f Wt^wa Wtx WJz Ws|# Wu| Wsw Wv xh Wsw: Wsyk Ww WR{ Wq| WwW Wuy WE{P W{ Wsx` Wsy Wr0{ Wt6} Wtw Wtyb Wrz2 WSx= Wt~+ Wtx WrDy Wq| Wu| Wrw Wsr} Wkw W}p Wz+ Wqvz WuSx Wqtw; Wrx Ws;xv Ws~m Wu{ Wrrw Wr4y WB~!X z WB} Ww Wq| Wqx WqzyP Wrz Wq|t Wu}E Wtz$W,~ Wsw0 Wt|% WtCx Wtcy Wq{ Wqw| W}v Wt~] Wqwu Wrx> Wuy Wsy Wa{j Wt} Wrx Wrw[ WtB}8 Ww( W| Wtx WqzO WX~O Wswp Wy Wuz Wr{f W%|. W| WuN~ Wtz Wsz W[{ W|c Wuw Wu| Wr} Wqw Wr~D Wu_z W| W} Wuxk WuKz WwA Wuz{ Wrmw Wtx Wyr Wc~o W| WF}` W!{u WsyT Wtxe Wu+z WvY{ W} W3w WwM WsDzv Wt"| Wrw Wt\y Wqz WrtzU Wt{) WuLw Wtx Ws{ W:| Wv4w WrxM Wuz Ws} Wv Wx Wt4z W{ Wu}G Wrz Wrx Wt~ Wtaxo Wsy| Ws~f Wr|xB Wty WYy Wr"w Wt{n Wt|; W{ Ww W@}d WuAyH Wuz WvQ| W{( Wuz W~Q Wrw Wtjz W{ X qax{ Wvy@ WsPz Wr}6 Wr~ Wvy Wq} W{$ Wr| Wsz Wr;~I Ws x/ WuR} Wux Wtz Wr|) Wt!} Wt{{ Wuy3 Wvo{ Wa|^ WO}- WtW{A WtZyu Wq{ Wtw Wt| Wrw^ WC{{ Wxx Wsz W\|! Wz) Ws} W~ Wt{ W.z WsVz WrBw Wqw Wqx WsUz8 Wr{ WvnwX ?{w%Wb߀~1 WwS Wsx Wt-x W;z} WuJ{L W| Wu{ Ww Wr]} Wuw Wrx Wey^ Wt~V Wt { WtwF Wrx Wtx Wzn W| Ws| Wv8xQ Wqz* Wvqwk W{ Wqu~ Ww8 Wq} Wy Wuxs Wsz}~ Wuz Wr`{s WvI|B Wr} Wq}} Wx Ws!z" Wsz Wtz Wt~ Wz\ Wt{, Wu{ WW~W WGz Wwt Wu"y Wvf} Wu?x WqwY Wqz WL{ Wqy W3~ Wux WqzN W({ Ws| WrCy WIx Wrz Ww{e Wv,|+ Wty7 Wu{Waz Wu{ Wr}2 W} Wt w W^{ Wt{ Wt| Wv}g Wuz, W~ Ww Wz WsJ|Y Wq} Wr w Wr~Wb{ W~| Wo}^ WtEz Wtx WrIy WuQz Wt`| Ws~ Wuw W{ W`xc Wty WsZ|V Wy Wt'} Wvl{ Wrfw Wx Wvg| Ws}S Wz WgwK W}x Wt;x WuGzs Ww WxT Wq|O Ws} WrWw W"yX Wt~ Wtzg Wr5{: Wu| Wth} WvOxJ Wuwy Wsz Wt|F Wy W} Wrv Wt}x Wqz Wx W,y Ws1~ Wrza Ws)y1 Wu| W|}w Wt~a Wry Wz WK|8 Wtd} Wuw Wr~7 Wq~ Wr&| WtD}q Whwq W?y Wtlw Ws+z Wr|0 Wt{ Wt|:W?&| Wry< W#~ Wuw" Wrw Ws| W:x WuZy Wq{ Wxy Ws}k W~E Wq} Wuy Wt|} W{ W_{ WtAz WqwB Wsa|[ Ws\}) Wqx W{{ Wry WV| W1~8 Ww\ Wty Wr| Wsz WNw Ws"|W Ws}" W} Wuw Wsw W| W{ WsG}Y WwO Wtx W} Wuy WtUzy Ws{H W} Wv~z WqxX Wr}> Wy" Wr{ W} Wsy Wu~ Wu{> W| Wt~s W w WrxO Woy WvS|H Wuy W} WU} Wufz Wt{ WWx We}I Wu{a Wtw6 Wsn|* WLx Wy Wt/{3 Ws:{ WtxD W y Wt.y Wrz Ws{p Wq|= Wyx Wt| W~= Wugw- Wuy W~ W3zY Wu{+ Wqs}t W>y Wty Wuyi Wtxz; Wu} Wr~ Wvix} Wr}[ WtIyB Wz Wu x Wu\{ W~ Ww Ws[| Wsvy Wt{ WrTy% Wp~J W} W{b W | Wt} Wsxp Wy4 Wuxz Ws|x W%} Ww WCyy Wu~> Wtx% Wu|W߀y Wvbv Wu|y Wq}J Wt y- Wqz W[} Wrw Wqz< Wvy Wtz~ W<{O Ws| Wu>| Wy& Wn~ Wsy W{ Wsy W} Wqy` W){ Wg~* Wryx Wqx Wsw Wu| Wu!{ WqxR Wrz Wvr{wWbz Ws4|- Wrx Ws>x Wx3W?߀| Wr,z Wrw Wt|b Wrsy Wqz WqqwX x Wt|D Wu} Wq} Wv W{ WqyN We{ WuY|s Wt9z_ WPy/ Wulz WuUz W~[ Wy Wrz Wuw WtQ|7 Wru~ WJx Wuz Wu@z Wv_{ W]w W-} Wy Wsz W} W~ W5w Wt,y9 W{ Wr)|a Wv;} Wr| Wsw Wqyy W}aWb{ Wu| W~C Wrx) Wtox Ws z Wu| W} Wv~ Wow Wrw> WtFx Wtz? Wq{ Wur{ Wt}_ Wv#wZ WNy Ws| Wvw Wuw Wu{ Wqyf Wq~d Wt{ Wu| Wr}U Wtx Wr} Wrv W2{E WtP| WqyF Wu| W8} WvzX ?߀}; Wy Wu|Q Wr} Wq} Wv | Wq|~ Wrw? Ws} W~ Ws`{< Wsx| Wrz WvR} Wv |f Wsz&X d'3w% Wqf} Wu2wg WsEx WA|v Wu~ WNx Wrw W{2 Wu=| Wv1}y Wrz Wsm{m WU|9 WvBw WrVyG WrP~; Wrx$ Ws{ WuDzS Ws xg Wk} WsY|3 Ww Wqz Wt~ Wtqw WMx Wp~{ WuzK Wv+xZ Ws{ Wr| W}m WuP} Wr } Wuw Wrz Wq}+ Wu } Ww WuXzD W?{ W}c Wse{y Wqy Wt| Wq|z( WPy* Wt2}| Wsyh Wt| Wqy WqwQ Wr|@ WvWz{ Wx[ Wt{ Ws.|S Wt3} WMw Wqy] WvZws Ws{ Wsx Wr| W?w W y Wqz Ws|K Wsw Wq| Wtz Wr+x1 W~ Wrzc W4{5 W| Wt}} WrRw~ WrxxE WT}1 W} Wrv Ww WyL Wfz! WvG~@ Wq}@ WtSz Wux Wu1x Wtyy W,w Wvhz Wr{x9 Ww Wz Wu{i Wup~ WvvyC Whw Wsy Wu{| Wux Wqoy Wz3 Wv~ Ws{ W} Wsw Wuw Wrl| WHx Wr} W{ Wuj| W/z Wwb W2x WtpyV WrF} Wq~ W5w Wv?| W{ Wty Wqx Wr{Q Wq| Wu&} Wmw Ws<xa WT{ WV} Wt} Wuiyc Wqrwv W|{ Ws{ W&}R Wpx WDy Wqw Wt{D Wr} WT~w Ww Wtzy Wt~ Way Wt{~ Wt} WrAw Wx WtyW Wu%x4 W~ Wtx W| Wu| Wu} WxH W*} Wux* W{ W.{[ Ww1 Wt#x Ws} Wuy Wr| Wte~^ W4z Wt{kW?ys WvzA Wx Wsoz Wu{ Ws|k WGy W{& Wqix5 W} WR{ Wr~ Wsxw Wy; W${ Wy Wuzw Wsw WuzH Wuw WvK{! W| Wqx W%{\ Ws|& W| Wr_z. Wqxl Ws}P WV{ Wq}( Wr^} Ws w Wv x W~p WZzB W=| W~5 Wsx Wunw Ws{U Wrj| W8xf WtX{ Wt$}! Wrw Wrx Wtiz6 Wr{ Wu9wN Wy Wqzx Wq{F Wu| W~y Wu xV Wsy W[z WO}r WtyZ Wuz- Wr }O Ws|4 Wsy WrQ~q Wuy W={v W} Wtuv Ws-z Wu|w Wt]x Wr~ Wuh| Wx Wv!y WUw W,| Wv`~g Wu0w{ Wq} Wu;|< Ws~| Wrv Wtz Wrz Ws|n Wtz Wu[x Wy WuzW Wuu| Wrz WrG{ W&x| W{ Wy Wwh Wuz Ws{` Wsz/ Wtww W${ Wtz Ws} Wyv Wsw_ Wuw Wu~ Wu]~ Wqz Wrz Wq{ Wt| Wu} Wv^z9 WL{ Wq| Wv~2 Wtz WvwT W!x Wro{M W| Ws~} WrNx^ Wz}B Wt1w/ W{ Wv|T Ww Wvp{ Wtx Wqy_ Wq~X W]{ Wuy Wu ~ WIzo Wu{_ Wd'| Wry WrL{| Wux WG|M Wu} Wrz} Wuv W{ Wqx Wrz WX{ Wuz Ww9 Wtx Wqx Wuzd Wsxt Wu3| Wsy8 W} Wrz Wu } WuOw Wrbx WsLyM Wuz# Wsz WP{ Wv|q Wr~ Wsy WzW?߀| Wz W| Wt{ Wqz Wv/|h Wtw Wqx Wq| W2~L Ws*wl Wt%} Wty Wutz W^|, Wr| Wuaz4 Wqk} Wtz Wsz W}3 Wsw Wsx W~x Wty Wd}h WrKwd Wttx Ws } W^|$ W | Ws^xi Wq~ W=z W} Wsw Ws{ Wl} WyR WsB{ Wuxd Wu} Wtw Wu{ Wv@x W~b Ws7z5 W{ W}T Wuy WsRw Wu| Ws| Wqz Wt+|l W_} Wb{ Wu|} Wu}M Wr~ Wsw= Wt|1 W*x Wy WH| W+| Wt } WsxK Wr z W x Wu`} Wqv WyQ Wr{ Wvy WrJw2 Wzb W| Wswy W1y Wz Wsw Ws{l Wt| W} Wx Wql}b Wu~9 Wr3|m Wq}9 Ww* Wqjx Wqx Ws2y WczR Wr{ Wwr Ws,z Wx Wt|2 Wr2} Wtw Wtxx Wy= W}z Wz W(zz Wt~ Ws{I Wbx WqmzI W'{" Wu{ Wv| W}l W~F Wswf Wsx+ Wv W6| Ws} Wr=w W| Wqpxn WrYz Wtzk W| Wqx Wu} W{zC Wtk~: Wx# Wtm{W Wy) Ww Wspw Wudx Wryg Wu<~i W{ W| Wt}Z Ws@~0 W0|> WrUx Wtx Wue} Wy# WvLz WszZ WvHw Wsx Ws|W߀}u W{ W'~$ Wuy W{? Wq~ Wt z WuW|I Wsz' W.{ Wv |x Wv(~ W$y Wu{4 W"{ Wqny5 Ws3}z Wsw| Wr} WvUw WsKx W }aWbyJ W}? Wv]x8 W}$ Wt~y Wrw WZz Wq|5 Wv | Ws} Ww Ws~3 Wux Wjy W)w Wrhx WrzM WJ}n Wy Wr6z Ww Wtxq W+y6 WuwH Wz Wvt|_ Ww Wsqyz Wu8{ W| Wm~? W;w` WwX d'x& Wsx Wtz Wtf{Y Wt|" W| Wst|z Wu{ Wsy WsQ}% Wsw WHyj Wr~l Wb߀{ Ws={ Wl| Ws}\ Wu:z W7x Wry W} Wr/~~ Ww Wr:x_ Wry' Wu6y Wu{ W4} Wx WMya Wr~\ Ws_{ W`y W}Q W#z Wuy WSzq Wvu{C Wu~| Ws{ Wl|j Wssy Wqy Wr7z Wu}x WtL{} Wuv Wvx7W߀x W~N WrHwn W|{ W~ Wq| Wuzf Wi{8 Wr| Wr} W~k WvJw WrxG Wry Wv|E Wx Ws8yO Wqwe Wv\z W~ Wt5{0 Wu{ Wtrx< Wy Wscw Wyp#W| Wr~ Wr{ WryD Wrkz Ws}7 W~ Ww' Wtx W} Wy W}o Wtz Wuwo Wx2 Wqz Wt~ Wsw Wt}V Wv*y: Ws&z Wsky WrEzt Wsw Wr x Ws{ W{ Wuy W| Wu} Wh} Ws{Z Wt| WuVw Wv6| Wsy0 W){ W}' Ww W0x Wqyq Wz@ W{ W| Wx! Wt{T Wt| WryS Ww WvXy( WvA} Ws } Wt{ Wd| Wq}W Wu~. WrXx7!W߀x Wtx W} Wuv Wtzu W]w WD}< Wsy W{ WqwcW?} WtKv Wtw Wswx Wv[~" WvPw@ Wx Wu{= Wu#w WsuxL Wuy Wt*|G WKz Wt{ W}F Ww4 WQx W?v W߀z{y WuwWd'{ Wuy2 Wt| Wt~e Wvdwz Wuqy Wu-z Wx Wt&| W} Wv Wt{ Wv5w Wu)}= Ws~ Wusw+ WszT Wu{ W;y+ Wt(x6 Wy Wr({h Ws]} Wr~ Wqxz Wy? Wrnz Wu'z WsdwR Wu({ W y W~ Wu|{J Wv'w Wv"y Wuw W<x\ Wv{ WB| Ws~H WtYx- Wv>x Wry Ws$z Ww Wq~' Wu{ Wt|] Wsy Wu}, Wt7x WrzE Wry WQ| Wu^~< Wr|L Wx Wuy Wqgz Wu.{X Ws%y, Wqcz Wr-{ Wy Wt}# Wf} Wtz7 W| WrMz| Wrp{K Wuz W~| Wvew Wtx] Wqw Wqex WrZ{ Wr~( WtswE Wrx Wt y Ws6{@ WtN| Wuc| Wt} Wt8~u WuIxP WsI~ WEz W{z WvMv Wsbw Wuz Wqx Wrx W} Wy Wu{6 Wsw WxF Wy WKy Wkz Wu{r Wt|A WtG} Wz Wr}A Wrw. WsT~Wb߀y Wu5z[ Wtv{ W>| WrS{ Wv}& Wqy WtJz Ws|6 W5yl Wb~ WsFx~ Wqz W0z Wuv|g Wdw Wr\y WFxb W~K Wqwj WIx W{d Wr| WsW{ Wtw Wxr Wz Wtx WvD|` Wr} W9w Wx Wry| Wr[zG Wuby Wq~A W} W6y Ws} Ww W}K Wu{ Wr'w Wt| Wrym W{ W{ W| WY}] WswX Wt_x Wjy WuC{R W| Wv&| Wt:~ Wu7w Wry Wy Wv3} Wr.~_ Wtww W+~, WvawJ W x Wsx Wqzr Wsx Wq{ WsOxS Wumy Wq|N WqzP Wt} W@v W-x Wy|| Wt=~ W>w< Wty Wr{9 WtO} W xI Wu}4 Wz} Wsi} Wv Wr{ Wsx Wt|u WtVz` Wuw Wv{ WziX ~` Wrg{ Wr9wx Wtny Wq| Ws/} Wvjx W*yE Wu{ Wqw) Ws} WtzQ Wr{' Wq| Ws~P WuH{g Wt>|/ W| Ws0~ Wsgw WvT~/ Wu{ Wt|d Wc~ W9w! WY| Ww Wt| WSy Wr@{ WsxW Wrx Wz Wr{] Wuo|' Wq{w Wvcxm W~# Wsz Wrex Ws{ Wy Ws} Wu w WCw Ws{ W{ Wr~~6 Wx" WuFz Ww Wt{V WtH| W| W} Ws~ Wvsx Ww Wtx Wry WtT}X Ws}x Wsfx Wqy Wu*v Wq{G Wu| Wt| Wv} Wiy! Wry Wq|R Wy Wu} Wt{* Wr{ Wrw W ~R W!z Wrzj W| Wj} Wv$~r Wsw WqxN Wrcy Wsz Wqy Wq} Wvw Wx Wqbz Wr}H Wuz Wrvw5 Wu| WuB~h Wny Wsz W{o W} WZz&Wd'3yI W{ W|o Wrw, Wx Wty WrzX W-{ Wt| Wu$y Wry Wiw Wqz W| Wu} Ws{ Wq~ WqyA Wsx Wry WtzL Wvx0 Wqz Wrz0 W } W {k"W?w Wz Wuz Wr}. Wq} Wnyw WszF Wr<| Wtb}e Wr}z W`} Ww Wuk~ Wrz Wsj{7 Wr1w Wslw Ws{} W6z: W7{ WuwU WAx Wr$x WsMy Wu{N Wrz% Wt}C Wuy Wuy|U Wv{- W{ Wrw Wz1 Ws~Z Wr!{ Wx; Wrd~) WqwG Wq} Wsy Wqd~ Wv7zp Wr%{B Wt?~v Wuw Wsy Wrw& Wq} W} WvCv Ws(x WqyU Wqwm Wq} Wsze Wv| Wvm| W} W&y Wr>|C Wyy} Wt} Wv%v Ww Wx Wvz$ Wr*|r W}D WuTx Wsz^ Wu{. Wsy Wq~} WvEz Ws?yn Wsz= Wq} Wt{ WuM|i Wsx W~ W/{% W{ Wr~M WWx WydW?{ WsSxu Wsy Wrw W"x WvFy~ Wr| WO}i Wr8|P Wshx( Wtz WsAw W1| W} WEw Wv:xj Wt|Z Wt} W{; Wu/w Wtx Wryo Wsz> WD| Wg~4 Ws{S WtR| Wv=| W8z Wuw Wqz Wr{ Ws} Ws#ye Wsx@ Wu~- Wsx Wry Wt@x Wr| Wv9} Wsw WrxU Wu}: Wy Wq} WtyY Wuz WvN}N WvV} Wray W7zh W} Wsz Wu~n W9|e Wqw$ Ws5{t W} Wu} Wvv Wu~G W{ W\w3 Wri{1 WF{ WsN| Ws'}x Wr~c WxA Wr}* Wuy Wrz WtM| Wq} Wtz Ww] W~y Wqh| W:x Wv<y Wu~ WX{ W| Ww W} Wqxy Wty> Wqz WQ{ W<w# Wqxw Wr} WrzJ Wv-{# Wx, Wvkx Wuy W{^ Wt|( Wfy[W,} W~ Wz Wr?~% W|\ W#} Wrzl Wr|J W@~ Wsz W/{ Wu}{ Wrw{ WRwP Wr} Wuv Wt[| Wt| WuxY Wy$ Wty Wtgz W{ Wv~lX b} Wuv Wy\ Wr ~S W{ W{ Wt<| Wuy WsH~& WuwC Wsx Wzm Wt| Wt} Wv)z Wsy Wt0v Wtw WuEx Wrz Wr{ Wsw7 Wy Wt~j W_w} Ws}/ Wmy Wu{q Wqx Wt|? W'| Wrx WryK WsXz Wt{ WA|p Wrqy Wy. Wt~T Wu,w W(| Wv.w Wv0* "U*ƕ,#Vl [9'.$q7tC9+Y|->#/Ry'= #A-)w3-DZe8 5^U ?#+? !Q///C//R//C//> S@ÿ3@ 7E   )!n9])'[GBN$>#+yZ#;%.&4&oM%J2]+2 6? $f {5(].yj F Q#M- c% 2.5b(h %d'7!lR'ݴ" &Z U!x!- a(3t _e'Ѹ-2V{-E%S,*2D(3+"NTY+75"l>) Uد) 6N.'נ (f,/<'u{.%*qFB+!Y)[ Sg  W59T>$Ef 5 UO&Q{#+"uOOIuYWWQK {(.@ Fb o \.y '+(]BL5_ c} '1)#+W7b IϿ! ,U ۖ!X-jV'"V$SwQ2aTFJJ-V<LW*W.L Dn+-SU+إ?m%,8"\$ژ# 3 |O(Y !M&5M$*+1 $OQ"&-7ɞ,QOND,%b" S$Q,1&*(J~L&#C"T8-!!}. T &0=*3&PSH*#"Et$ -l5?W"*4&' 1Y| &;M]+3 T-2Wf  _($J!2.),K#>o *xZ-(2&G7 >RIk)v8s=2^+r y*6F- k,RU&.%/04  ?y.d`(s%<Z#"*Co$  R"R&kѬR)@)]J$U-89!Bl,<{]1VRd2թ&Z+!N<*f" :#р$M$$P.4TDM.J*t[#  %";!~+{W#K!&'!iE-/v#wHcR-P+%Ll&%- g&>tN*"PYp,*^/JA&EEZKm&-rN   .݃#1!6m i'v :!!@3?4E)/&"D$s$q\D+-L! 2*7@(`6$ sR%%Y$:'t\8%e(;$S q8A  {&f%+ \E_w[j&@ |-.$f'7-Q+UVä+g'^=&$*%q*B}AD.1V,tؘW WWW>_E]0wW WW>_E]@06XWWW>_E]u0GWWWW>_E]0W WW>_E] 0WXFWW>_E]0XWW>_E]w0 W $WW>_E]o0XQWWW>_E]e0;XwBWW>_E]0X" BWW>_E]0hW WW>_E]05XSWWW>_E]0IWX WW>_E]0qWWWW>_E]0eXWW>_E]'0MXmWW>_E]E0mX? WW>_E]0lX6 WW>_E]10gWX WW>_E]03X?X>WW>_E]0pXWW>_E]h0(W WW>_E]0/WsWW>_E]]0WWWW>_E]v0kX?X#WW>_E]*0WX)WW>_E]0WXFWW>_E]D0nXH WW>_E]0XdWWW>_E] 0XWWW>_E])0[WWWW>_E]d0AWWW>_E]\0WXbWW>_E]y0XSWW>_E]0XXbWW>_E]0~W8WW>_E] 0W0WW>_E]0XW WW>_E]0fUX"WWW>_E]0oWWXW>_E]z0W WW>_E]{0pXSWWW>_E]j0XSX;WW>_E]0W WW>_E]m0W 0WW>_E]0rVW WW>_E]0vX[XNWW>_E]90X?XtWW>_E]0WWWW>_E]"0X?X WW>_E]0W WW>_E]J0CWWW>_E]0gX9X)WW>_E]0XdXWW>_E]$0>XWWW>_E]0WWW>_E]r0XSWW>_E]0X6WW>_E]20jtX[WW>_E]_0WXsWW>_E] 0qW:WW>_E]0|W WW>_E]0TWWWW>_E]0yXmWWW>_E]x0~W TX W>_E]80WX WW>_E]P0LWWWW>_E]B0cX+XWW>_E]f0|^W WW>_E]0n0W oWW>_E]?0 W WW>_E]0zX? >WW>_E]0{+XS WW>_E]0kXo WW>_E]0X[WWW>_E]b0ZX?WWW>_E]0,WXWW>_E]0W]WW>_E]<0W xWW>_E]0s7W WW>_E]-0WWTWW>_E]0XwXWW>_E]Y0lXX.WW>_E]0WX WW>_E]:0Xd WW>_E]!0}XXWW>_E]s0oW}WW>_E]0NW*WW>_E]0XHWWW>_E]0aXHWWW>_E]#0uOXWW>_E]`0i=XHXbWW>_E]0WWW>_E]40X" yWW>_E]0.W WW>_E]H0}RX[WW>_E]0SX?X<WW>_E]F0xX WW>_E]0KX"WW>_E]%0tX[XZWW>_E]i0#<@iJf-,[Ÿ,v 7)OiL"L-L׃L0 L#SL 'ٔL%pLzLG:L&1ULL"LA:lLՊLYL+LXLAL'';Lm)6(X' JAy  ( H!/> POE,@C,@8(G "9&_IT ʀ!!E9G.Oŭpɳ'F ]#pCTo %W"&zg,  4YY EhAٖ( wb&#)&9- 3k IN8x IN*&9O[- 0&9K- u&9J- Q IN@ &9G- &9O- 3k I? IK'9 IIz+m&9, @W IOP '&9Jw- j&9J- &9I- K II&9-  &9IA- .&9- OA I&9ID- .P&9N- =(&9I, L&9, +&9If, 9&9O-, {2 IP7CA IO.P&9N@- &9N- Vm IN&9I- Q&9y- FG IPn0A IO*&9P- 0&9J- %&9A,  )*&9J, .8c II&9J - .P&9J- &9- +*&9J- &9IF- S&9#- Ny IK#0&9Z, ,#&9- )&9X- &9J5- 9 II&9PY- Y0 I&9J- /S IX&9IN- +'&9P- *&9I- &9N- +&9E- &9N-  &9I[- &9- .K&9, '&9- G IP0+&9r, .&9- &9J<- '&9N- P&9N4- +.&9I- lI&9Om- [&9J- &9C- '&9J- &9O, +m&9J, @- &9J- T&9J, x&9J- K IO&9J=- &9O[- %&9J- .P&9?- =A II[+&9O}, &9J, &9, PI Iu &9g- > IO5'&9JR- &9*- j&9P- q &9I- 0 II- &9N- T&9I- Y%&9P,  .K&9I, &9J- O &9P- /'&9JA- '&9s- &9O- YA IPN9&9N7, { &9O- &9IQ- &9- *&9- !&9- %&9J,  IJ'' &9Pn, "&9I- P@ IN&9- &9I`- .P&9C- "&9+, G IP0%&9Jg, G II'&9I- <&9- 0 IJ.&9P- 9 I!S&9Jo- &9N- +&9J~- $&9I- S&9I- P8 I2z'&9K- <S&9- '&9J0- n&9J- &9I- K7&9&- J IIY&9Jg- &9Jr- g&9JX- %&9- Q&9NP, &9J- E&9 - g&9 - 7Z I-&9Ij- '&9K- P &9- /D IO(?A IO&9IS- &9I}- m&9- &9I- E$'&9J'- &9J1- &9I|, 2D I'&9, *&9I`- %&9K;- *&9O- &9;- &9K- %*&9I- k&9I- *&9I- 0.&9- l- &9- y &9- &9J- &9K- &9K- &9P, $'&9- &9- &9K - '&9I- &9O- &9K8- 9*&9J1- &9- h&9I- &9 , x'(&9K, &9I- u&9J- W I 0 IKD II?C IO&9- _(&9O, &9Nq, *&9K0- L&9P0, 2 IOCS&9- &9J- &9K+- &9I- &9K?- CK I&9JT- &9a, )*&9, .J I%Y&9I- W IN &9J4- &9J(- +m&9, QB I#A IO1- &9i- &9Ia- !&9- &9B- .P&9- I&9- [J&9O, &9O- q &9@- 2D IO&9- }&9N@- A IO&9I- '&9I- P5&9J- '&9J, &9- &9J, &9Iy- %&9O=- Q5x IIn&9- &9J- "&9J@- uA IO&9, &9J- &9P- q&9OK- &9- 8&9- 0 I&9- &9J- %&9I,  A IN1&9,  &9O}, 6 IJ*&9, 9 Iv&9J- K+$&9Jx, I&9J- [ &9I- &9K- /Q IOH 8x IWb IK/'&99- &&9J, 6&9I- - &9- .P&9N- T.P&9x- F@ IINGK IO&9P*- &9Ip- A&9Iz- '(&9`, A IPc5x I&9- '&9I- *&9K- &9Ol- &9- &9J- &9J:- '&9I- bS&9- ^&9I- &9#- &9OP- m>> IIhG Ir0*&9- 0.P&9- &9K, (&9J- &9J- 7&&9, 6&9Im- : IJh'&9J- - &9x- {? I &9, (GK IP&9Ij- &9IX- +&9J8- ,&9- E8x IPM&9I- 9&9?- &9, &9Jq- 7S&9Ig- &9J- '&9I{- GK IJ2D IK#&9- &9JG- + &9K- &9- PI IJu'&9O, p&9N- &9K, G IOG0.P&9OH- &9J-  &9J- <@ IIX&9Ju- &9J- '&9I- '&9Jn- )&9J- '&9IR- &9N, "&9i- P &9P- Ny IO0B IK:&9P4- A IN&9Iq, &9I- &9 - $R&9JT- sS&9K- ^&9J2- C IJ*&9J- %&9J- /&92- &9O- - &9I- '&9Id- )*&9K, FQ IC 8c IJ &9O- P I+$&9;,  &9N- 7 II&9IG- M&9J- P&9J- !&9OD- Vm II'&9P0, p'&9J- b&9N- O@ IN)*&9K, 2%&9- - &9- T &9- *&9L- %'&9J.- &9J'- 8&9- D I??&9K - Y)*&9", F&9- M- &9I- $R&9G- s&9I- K IOKWb Ix- &9O- { &9I|- &9J- }&9- A IOl "&9<- u>> Ih*&9I|- 0&9JZ- Ny IO..P&9I- ='&9OR, p%&9, &9Jh- G IIf0&9- L&9OR, > I'.P&9Jg- T.P&9N- &9J- 6 I&9Il- ,W IOF &9If, "&9N, &9Jp- &9O^- Y8 IIz.P&9O- &9J)- !&9J- 3k IJ&9- L&9I, '(&9O, Ny IO&9J,  &9- '&97- P II$R&9P- sWb IO&9I- g2 IC&9J6- j&9- '&9J- +'K2+>R \ I0\0 \ I0\0 \ I0\0$N ZqO!0˫#sC$K7"!< VWt&6}/W}! ZWs aZWqW WrCWr!A(Wu!Wu@'WdWbXxW .qWP"rWs!vǗWu pt Wt)BWcdW1Z!Wvg"U7Wv) ! Wq}`ȪWXcVWf 9Wtk =m#Wv7"KuB1WrIcȡLWq Wv,#ZWt ďWWEWr OƷW!3DWug22Wr!S@Wu!#oWr U3<Wr&!WsW"Wr9TWv&=W.!<WtKB~Wq PƒWsx+iW"'„Wtc"/WtejfAWt cW2 }doWq tRWvZIWGWuwdȫWr kWsbS.WU3T/Wt!Wto.Wr>"QVWtJWuBa"W Ws!WsWq!*WWs?"4NWuw"{Wu[7WqWtW/9Ws WqfPWvWeKDWr4#ČŖąWv@ŴW^TlWC\ Ws"jWtG =ĮOWrk61WWWG'JW >f W`+EWx""85WuOgW"+OeWt=W"J?WufG\WqWY`wW$KW<=WuG!{pWuC'yƲWvd(Wi#_qWv.#*XWq#S YWvBmWrWdMWo"Ȍ(DWrȍ)FW$I`yWr"azWv\~1'WugW6#Ws"CWva^nWr/W *9ƁWsJZ-W" lLWtsf&nW'oWq"Wqi !\Wu "dWsTZWr%WÅTWIa./W!ʼnSWu|qW wWtXWu!Wr~"WvlW&jtAW"WtJWuWWW4!2tatWv2!ƮWsXCWr'eO`Wt]k!1WtO2WA WOt<WZGjWq MuÛWvIjU6WW Wu!Wv!Wr #L,Wu#^Wq eǷeWst W#o\WrZ"Wr!AIWr LWJFW FBWu#"•sWq Ws> 9CWs)W0!HWr g#Wu $Wuc<Wu$BN4WsWW"{=`Wv=qWT Wt+"WunWmn>JWu)!46Wu!`0Wr"QTyWqg}[W  ŘćWrWsEWq Wt!KWs!KŧWqoDgWtEiWuYX`WpRC'Ws4TE+Wr" mWr!ijWqnL;WN"53Wr]"BoWt#-pWrLW"mxWvkMT#W!^Wq#$bzWtYWuj"yPWvJWu!Wqu"@Wtq"Ws! NWreRyWuJtsWtSI/W x}WtOW:Wtj.W 3RW""&>Wrr LY'WtM W] ï-Wr9 WtGW"FWsW"Wu 4@@!Wr# 5AB"Wr$fW~U{WsP6IW!~3Ws Wv"7a3WtR!#%Wu%"LWuX(#W!(WsjƅMW(Wt jWr hWu:"ơ8Wug"!fKWsq hIJWs+7WW(W/ WuI'W6JLW# GW IWqqJW YȞWr"cȹdWs Wu"k,Wt!#l.Wq6ǻWqjRWrV ÜWu~^Wq!sXWrYW+,WsZWrF"CWs! WsUWv!)~Wt:}Wr 3:[|Wr^WtġòWr_WrUÂW1W$9WugWrwW"0,Wu+#bSWs2aWgW !Wuh`W: KWu["a LWqGWs!4sWq!(zWr"rqWs#JFWrW$Wt)WuWr,OWu-PW Wr^#=lWA")Wskd_,Wu-W"DWtk—XW+ǽq#Ws!! WsLWoWKkZW Ws%OWP"PWvS űW@W4Wqs RWv?}YWqt-$Wvv-WQ I&Ws 'Wv =]ĪWu!IWvqpljWsz"sBWrX~W"YWu" B3WrP,;'WrabWV)XW"Wr)"_ȓWv^Wr/&!"Wr "#Wru!qWv"MsWrp!kRWq{8WN\Ws-ƾyWqjlWt^Ws VWtMW J+WrpuW)$Wu#(%WtN 'Wt;#EwWuD#WFxWt"/IWuWqb!Wq" qgnWt1!CripWsV )#SWrRnWs8-WX& WsE¹W!WuW**WrWs6!h`WB(CW 1Wq"S!EWt!GWr"Wv`CW[V4RWLqoLWt 7Wr®,W| ;Wrg WqdWu\IWD<W"X(áWrv":Pv`Wtyxxj!W#[7Ū0WqGLyW>W .Wr|"PJWr"|WsDWu!hWs@AWt"DWrx ,2Wt]!4Wu'p?+WJGW>W,!Wl]W#1Wu("WvK"  Wu#?^WvO .ǬWt^nW!,–Wvh"C[Wrw$ Wdg~Wh=]W!> Wq1sWqWR"mWs]"WsT"NWs#4Wv^#5Ws) NWr(>wW$ZZWt" vYWvȊWAr)Wr Z}Ws"hWtr `3WtYL Wg=Wrq JWtSJWt "IZ)WqȰ1W!Wri"9Wuq7&W"q%Wt!"Ws!-C,WuLFWua9WtI /ƞWu+hNW2]|WWs!WqW WrhW*pWlWs?X/uWh!dK~WqlW =uWurA?xWq@zWs.ůWu#Wq *¬Wq*gǡW"wWu 7Wv 'mGW>WsxW#%8mWrPl&WKWt\BjbWq"EkcWr:kWs Wq yWq %Wr! &Wu!<Wv$!O?Wui!F"Wq$W!/YWq “WvL!zahWul=Wp \jWrWzȿWs"-Ws!WuneWs!+Wr"PWqf,Wr# UzWsH<TW,ƭWr;ŐtW"WtkTŒWkƂW"Y&uWrAXW"@E Wt s%Ws0-ŲW5JPWr _L>W7ǸWrW iiWq=KD;W _EWt5, Ws!"Wu X%W-8WO#S_`Ws -ƒ,Wu"tWt{d Wjg0Wsd"2LJ<Wu lWu  0÷Ws4F(Wu G*WtBiWt$AW0 {_Wt~NhDWr"=Wt|s|ÁOWq"Wt#WuZWt  NWv<S[W!h.JŊWq!O.WvY!Wr ÍA Ws#'4İWsiWs`nW]PWE6W lWr"mWqq!UoWrC>>Wz!R0Wu hWw jsWqt"?Wr"9#WsIJ>Wu2W"Wv9!(UaDWut"^»Ws$WsW b`WtBWGN>WhfZWt ƠWu;867Wqm!XtWr"¢+W"wwWrJqUW"Wu ^IWu";dǢWtz RWsOcyčW"/ Wt KWs"xWqWqWÖWq|×Wu0W!0WtM+Ws#/VHaWu3 XIdWqc# 6WrlWT#DoWr= ©whWqv ]dYWr# KWs +D¿Wq#RğWrby"W_EBWFF0W<FWq"0Wvr!qWuEdR WH$Wq}W![}WuC4W|ŷWuQ"\HWq!kODWq"4Wt BWsIsNJW![Wtw-OW!|>Wr"?WqlWu! Wuu šWr! CWs"#@{W#^KWt@Wu"%Wt#CVWsI(W")Wvs"*Wtm~WV ;Wtø9W{x*Ws$ gWt`jdmWq!3Ws7yç^ WrONWuWTOWr_! QWt<:W9Ws #AxWsgByWrRW  A=UWs-WynZWpSWrl>WW]W!1"FWq ipWs,#7 VeWr8HWt* [m'WvDvWqW8Wd"|MWt2%o W(UD~Wh;WvWt"WrWD_W9*W!@W!WuRoWcŌ`Wu! dWr¨~WbW*W v<#Wu=19.W+W,mWr{^WwWrƉWv/"Vö8Wr¥Wr!'&Wr+"*eWrW6nTWs ĶŇWrWĸňWU  Wu#:Wr#;WrV%cWqW&dWq"Wvf%WM.j;<W;WqlĠW"Wt#ERWr"Wt7:(MW9ScOWĈWs|njRW"-Ws,WW!WWt# *Ws. WmkWnG]S6W usWs[W="(WsE4^W"!Wq"R+WsMWu "9(WtV",.; Wq!NU$WqW3Ɨz WtXWrûWYtP`Wv(!TWv]u_WvUwWtT%Wt9V2W+:¶WR9-W[}ŹWtcWr"?sWs~ObP5WW 2Ws>W$hȱaRWtJ#&MWt=Wrk Wa">g[Wq! Wu9h]Wu ,iW`<!+WWsl")Wuv`W?‚FW,2_WI_WCxWux!QTDǨWt Wv>("Wv W\#Kg_WsC!ygWu"Wu8W"HsWrGQ2WAWqc,cWq"^WtvLWr{"$WrNCWs![FWtj}IPWuo})Wr"d_Wu l` Wsc+WvMgW!dWt/!fWt0"5<Wq6>Wu!DoWt &WuWs8lȺǝ{WF UWqhQWOªxWvœWt{9uW ĆWHx&WrAWr[5~W#Wss!HyWrLWqy1WrglÇW ǟ};WtWsWse!Wv!=&=Wt.356WjuCVbWW@Wua.bWs;"]WuznWzWp#Q;Wr`^W"x{WsF!_|~Wt }Wrm\ yWq!IWsW0"ƳWrfƶW'WnP W !Ǵ2Wt_QBWvœW"WsA!2Wsv\AlW.!br WvA:mWb!6<nWtW`!MoWt!Wq Wr0M2W"!WtC"~Wr WtGDW+ [WuU Wt<"oTWuVWu!Wvi ;Wu"qWN" %Wt!oIWt R0WuWm9Wth!WtAAWD~Wt?WrfW !'WsA3WugTW KnWuN!ˆb!WsenZ%W!\Wuj Wr8!",Wu#={ūWuSWsp!i{ Ws7WU0Wr w&Wt!HWu $FWuWr\ýWv }.WsfZWqĞuW)#],Ws ;7WWjjnW*om[WWWVWu}-WuWu!xĺ)3Wuuu?Wti"WuBŸWr WuLWt $tWu,EWtǔW }Wq" ȬPWvmW oWtrWt6  WqWr#!fWt!#Q WrqGWu:qWa$gW!Wv W .Wt!Wq!Wswu`Wf!JWs#e"ZWs"VWvpW7W8?o$WUWsxg8Wt#O9:WufW"wƕWu`Wt;fWrs2WB vWu"WWu"XWu!?Wu<Wv! ?AWs*dmWUwĬWu!3Wv5DMWNWH Ws! Wt">KWq"ILWtlj=qWu2|WQ5 ]mWq"k"Wr#>YWu WtH? {Wz?ëoWs%6(WZ! Wu1W%Wt7qðWqyNjWr ‘@3W=!5ŤeWul!9haWt<fW[^aWR5ǮW!Hı:Wt# ȜWq ȝWsLpW@~Ws!"Wr3&_WtxrNW"lWuP~W¤AUWYƟWt!l¦BVWs #.}WsUWq ÃWu-"LWtHaW- Av?Wt# p+ WvoUT2Wv8 W!^WrįW {WudM1Ws!eJWu&"jWtWsQ"EWvb"W9àĀWu.ZWsWs!Wu{%W {Wve"WsO=W"yWq@gW^ \Wr#YȟWr")WrTWq#QWraUW' 'vWtt"TVWs} _Q0Ws"]iWue|W#M#.Wu>W% b\Ws#KLWr1"5W#Wvn$FsWa!XHtWuYTF:/Wi[Wv1)TWq"GSÓWu>#IWsKWu Z2Wq!n^WseWtKȨW"#WvuW!kWturWuv Wu^ o|Wt(}WbǥZW#G+qWq 2Wq hWtMȒWyWv# )KWv-ĎWt OWvN tWu"${WqƐ+W 4"Wvt(`N WR VÐzWqȳWq? W[lWk! <Wt3(W(W8#@)Wt"GxWq IzWtf"\Wr!]Wr!ĘZÔWsxę[ÕWt=Ws" HxWrn#"JWr}"ńJCWv&å/W ~ƺWt!D&Wv3PuWu"Ŭ{#Wr]WtA!a9dWu~ P@WukuWqwWt\#<}Wq!7KiWr Wt="7Ws!8 fWt! @Wr"jsWuy D@Wqk!mCWs  SeWs"ƜZWt}" uWr0`WWuzXzWs#WtbWS"|Wv+TW EWuT#jWqs(xW]~W=;OHW? 3Wt##EWu FWs=*W'y:xWEsRcWuTiWt >>Ws"`Wu!BPDWuA rJ@WtWd\Wr m7PWI!a WrWu WgWsWt!wuAWu vBWq~ |Wu e1WUO IWt"QWt#RWK!ưEWsmM"`Wm zWr.!ǜZWuvhYWl!+WuLB;lWO %fWs\osWZ!NWr ƼdW!joWt?ZWhPWe}QWv%m"yWQ pȎWs $iWt"w Wu"4Wr ŢcWtD!ťfWs!ļ*Wub"Ľ+Wt"$rWsP/W!^Wt#5ĢWr ģWq"tWvF_JW5Nî,Wy^=#Wsa/&WD ƧWvV!9Wr dWr!EeWu4"WurHW-"~ ZWtd 8z#Wr[Wr\Wr!šWqrH W"~mWu^.*W@ xxWu"qWurWs&…Wr†Wr24yW!96Wu(Ws'4Ws -WWqDŽRWsVW! IWt!W>WrcWr!Z.Wu cúWs?>X W40WrUwmW!xW+kWFrW{\Wr%Q|~Wt!rsWrT"ĹWr"9YWu#+[Ws#1ZWs!'Ws-!%(Wr;,W mWr  0Ws3pWr6".jWv6 t?W!rmWr!"fdWu"1eWs 6AWrM!&uWr*v)hW"}HWt!Wvj 1Wu#)Ws:W GmWvC8XWs^Wo 7%WsWs_#?WAWtXW]"1$Wsy! WqWHaWtdWCgWrQ KWtC%tWu"O~WsWt-Ǜ,Wq4W"xRhWs1~W&4Wzi!IWs SWv[M;Ws #Wv#A&Wu 12XWt3"RJWt"}YWr"1Wq dWshĩWrY!ƱWum"k7,Wv' 5WvQS4VWu"vWucvWrTgW07Wu0WeMKW\RUW{Wt"lzƀWu!}bWqIW@ 'XWu]=yW1ƹWr"GWu6Wu`d&AWSjW4W-5WssWCWņWt %;VWsYuWn"n~Wu 3pWu"He5Wt"pbWr7#pWtAWr H75Wro#);Ws(ǓWWv Yn8WĴ?WuH!UIWs' ~Wt867Ws2i!W k"Wq , jWt"eGMWq5W uWu l{+Wr qWt8^W0!Wv0!4WqK0W!&WrEW ]!;WtmW1W;W&"ƛ$Wu/ #:Ws/SWvX#F~Wv(W!+WvP/WtCqW# X&YWu]ȶW{W "-Wq}W "WENIW"Wvm!@~4Wq!WsS!SWr5&W}SWr"ǤWv,Wr,"gěWsKsW q\TWq!ypWsqW,WB!*WsVW OvpXWt WWtWrt/nWt4W IWs"uSIWsǕWXgWu6|/W!EWulWs!.WqWEW ~%W7UDéWr#9EiWshv6Wu8Wu \tIWr2IWW YWr"hNpWrBiWs!<<Ws"=Wt "bȖ WsS/<W15=§WkW'7WrD!uŽWs.vWċWs"WrG!CWu!Y!WtLeWs"gWq!<Wrc!ÙIWs3"8;KWv_|kmWk"Wr )|Wt!}^WMwW<!,Ws"(ŏ#;WuŠžWF:ƚWnJȂ W;{HW!` Wq)|W#xW%tW ~Wu:+Ws_ W#\`-Ws  :qWu!DWt?lƣWr<YCWu!/WuT"WuX&6ũWgi*Wrd!?}mWs R`Wtb"zWv"{WrIWUSW f;MWrzvWx"NWvR# Wtu`zWs"f_Wt@W)QvW_tWr|KWsoQDW" Ws{|G-Wt @=WtD;,WeWq Ċ_Wr0Wtf*sQWr5>kWun"WrL W"^Wsm"=ŀWv!Wsi#I-7Ws :Wu"nWv"b\uWq!]wWrĭNW"[YEWt05Wr#a@V`Ws_AWaW ]kWt4"DnWvI +WqJWtƄUWK (&UWv;)WW 7>WqL[WWeWy`~+W- ȥWrrȦWtSyMW)iQWQ2W.!CWqz!+*Ws@!SWqpWu|!WrüWuW!Wtt??W!ABWuW_>VW3 |Xh-WrHĒWiW3!^Wu;µWrW2HWFWu6 7DW uYWsLWs<#cwv5Wswxx6WtvWW>fWr !Wu W!Ws!u`Wv4J"Ws:[WqQCW"ĵ7Wso0ŔWcgbW!rWrtWt[W?GMWbHNooW c!WrȉW!;=WtƥWsNPW#,} WsEEWvuh WzWuF ]`0Wu1#8GWst W DW! YWs 6+W0ȅ WuOW#WsB!f93Ws9 WqiWt'"$Ws <&Ws Wt*8W7kW ±g\WqSrW8"WtE#6}Wu! Wt"BWt#`ǃQWu#B Wtnc`W"FWDnW"zVŎWs>sWuW@1W aS=WY C8Wu9W W # 3pWt "5rWr #6tWr ȇpWt=N Wq"rWus'6kWB ƊWtZ"<Wtg!³Wu|Ț WbdW 4ǹWq9sW" Wt&W=Wt#PŅTWr"6WtaÑWq!c:Wt {Wr"ZXWthWc!R5Wr 3WsR"AEWsoWrW~.WuK!lQzWry&êWGqWrh ;]WsWWJW/%[Wv  HVdWt"!!ewWqDijWu. cEWrSHWqN3WsGL9W;"GfWuWtgWq!YWq Wq!c$Wv:!gGwWu";Wt N)Wu!0 Wu2-Wt iaWu\!$jWqx sWtlWƘzW#O?{Ws"iWrt0[W:wWP!1Wt WE?0Wq!.) $Ws}a_W'9h"W W~"yWsrAHyW|z{>ÈWMWL/Wu"ihWrj!mWqW2hMWvroeWs pgWuWv#NnfbWt-zWv1cWJ)mCWX6!LWrWr"7%Ws:'3W+"\LWqdO?ÄWr!/WqOhWqw Ë5W/pW"+4WrE!],5WrJWWWr-!pXWqr!4 Wr"<~Wu8:!WRgĐWs~bWB W(W,ŰW!pWt C}Ws= PIW^th~W[ LWt Ws!Wu<! ["Wt>H-W!D|^FWraWs?WWX#3Wt#2 ÆWrKbWt--WM!:_Wv NNWuZ(-WXŁWteWtFkDWu:Wu WvE!52Ws ^Wq")!Wql8zWt "9|Wr.W>/;)NW?!aſWu_" WqrLjWrCtNjWy#'pWs N*Wt"Ws:PWI3WtWq!F Wqe"TWWt[W{ZWbPWroW5!5HWsXVaW^kWt%#4[ƫWr?!>R)WrcCzWtT s)Wu5"6WtQG W5 sW%<W"Wsn!WvTAWrJi(Wt}WW {Wu#pWq]}WrQpWs[]W S Wu!M<W* HG;WqH<Ws!>WtpGiWrJx W#VjQ6Wu 8Ws W%W2"fȵWtL[W"&ŝWsDURW!P6Wsuj W)#Wr)Wv (S*Ws"W_"ȲcWrMWuNWv <W!KhWo# -WvH a [Wu?:k Wo(Wu#WqV;aWs5YWVǧBWs#UWuKYW"-Wr#0)ƈWroU]Wu*^V^WsđWCNwW8 <W!tWs<vW!¡*Wr!MPWs ÒWt@#X. Wqp#H8@MWvJ1U Wu7!+u;Ws3TW4L5Wl!vKWux$wW9WvG!VfWtRBWtU!mWu7_%W4W"A3Wt!\\Ws GOWr!HPWr@&,ĚW0qW:"bhWt5ǺW!WsLW|WL$#WS i1Wr xWt{W$|UȏWv*]ŭW nŮWupTW &WsZ!oWr"@Wr^Wvc"-Wt, ĥWrdszW!ÝWr0r$WT/WF >Wt TnzWuS?óCWLWu "LWq Yǂ1Wsq@W<BWf æ\Wq*iWEWt!ȁ WrpKWs"ȐWu!ŽWtukWu :Wv" X|NWu@wW Q{Wta" Ws"3WuM!5Wtu2JWt`ķ8WXBWvWu qWq0UW_eWt"LWu$VW[yWs55?W\Wu"›SWr\W0&aW! zuWq|W`0+WtP"²Wu{PǩLW W#T¾2VWsq4(<(NL5r-s,| r),(1i P%R'"vY*?= .!pCBhEp7)?G>P5ݲ* (&cE$*İ>1[-1\.Q0$}*>$N,4A}:0})P4&p'YH=c*:% `OL1}i#Z.p"`,`Fj3;:n< ( X,-OO # #"@#4D!K%* v( %*X'\!)i.8*& +{K(λڃ%*L' qf!#71Y| <(R%4'pI w0Jp2K*mzW w/ב*#&CI&@e/ , ' ב&H"Hq%4wu A#%4BPJ*m iC;Ywpwh+ʸكHq wYHq(/1WC0cJ `%4W*w w/HqLʸp[F+*m[apI&(r# w%4P 8~+&bw>x 3w%4Cʸ*!ʸIc+ w10CO&&= *m, 1"3p, w :w*WKaMב*#=I#@Wa܅I*mlב5%4:p"3%4/ wCw@W1pDבOGJI#*m) Cʧ CHq wIZ*>a*maʸ*2Z*m* w@ wCF/p2T#*m+%4&, H/&ǥw*mJ&N,p;ap5 *CЎwpVK7Z*m!:JCNF*mZ < *m*JC&Qa]#*,Cw&ba&2+CʸH|Hq4ywpW wN/ 4 wʸf,%ʸCNב&7ב wX+&1J%4G;+C 3+N/ U%43%4'Hq"3x"3WrZ w 6#3a*L"3 w*mI SZ[nw*mA/ R"a^HX,*mw wM,C)Z*=+ waC7I&8R *m#*ǐw'+wp w=CWp0ʸC5  MJ& w*IVpZYgב&#ʸ=0*͎ב,%4na)*T/*Jp %4 & w%4 "3*mDHq&"3pwב ν, @&I  J*mzw9>pNw6wLI9"3%4ZB/ w"3%4.wC "3#+pKy/O/1pI>J*HqC ,C># OZ>1Ia"3ʸ wWr# ?Hq%4ϡב* &=%4e#k ʭב zZJa sJ/0Hq*r ʸ*m3"3$ !  pW&IZ&RW%4Hp,Hq#3A.(79 >XG !r,)%B%'+S@ʏ8!5!&|5%+*65i Ayh~l&R0Vљk! p$Z5:tk$:x\hIw=ϩi:+@kjU"V6InCf"3SJlΈnJn}]:IGjj\3yKUHonJ|TA͎n>{{UCCjo&bU66h(m}X'CuEmg$oXQdl ( Y6D)^jqZIIk}WN`kg loK oY+Dn],mh k[f:av.]Μj}z/XNҧj)Ym\B7%LkwQ:zxHlZYT80i&/[Uu'Mo q4[L9v(Nj zZMhN͜okR=^DmC%wsX?n̓kfKs VApѴl]$seW7r:jZb(;t.[V\ooz-o]'0@e{ӯn6{SQ*qEιj>X:=5ai4&jqYo18OҺjbAX]7]~n0uXCDl$MjUP@;ӖlyY86 mJ!h\>=їi;[Lj|hY^5~mn,Bh,[X>v=vnI%[\lV lLiU0/>Q+m \Yy5lq mQ5x[GjsU3Nl"tVSmm9,?s9]G5&Bm T9qoUϰj(+._w^W"DbvTkWUKO!τooQ>wGvl,jZr?!4jhqY(WT6i%dS'7 Ϧm*LV+BNr`%jg k=XkQӺkK u\[Q\i&kAX-Ro;ͪkw yU1l hWgslZHZp~h~yW1@\m?*v\Si}o2xzTTL3m \TL͓i u!nSbCOṼl)w~W7KRo{n\1v?Gi$]ZB5K{ӳi-\UA1lk(q[Bu~oz,BzYaA?̉mjw,?ZuGo>7(lXNV}ElsZY~<7oήl  olRL v-i]g#s[?[dn -xSKvA(kytU;itR4Y>l'apTHjym;nO Y8O|h~xXhL)uZ4iB,lrZ-8| Τm0 'mS Wh ѭo!EcTr9(ѐkvZ}OhiZ1f!lQ; jpzR0i͇lwi*VTjFTECe͘j*e'crR)6tiy%;wpULel@(bvZ/:R=̷j "WK}9sDi;vWR)R-Wm)?tX5Hͽl zS-=yoju(u[-U7kKm"&In Y1ҔoxiSL4i lE( jV8$lnsWT}GXjnzWrU[4Zs Ho\IRIG~qn<-|R|T[t_muDu{WfRNqo uSV}Jm  YV=0*yo(U~=sxkt`RA6oe diVCR<XR*kVfT3AcjpkanuUJͧm/ZUwC_R:o",ZlWH<}aВoK*v}Yb< θm-!mVM?h|(!kxX;9?2\mJ.w\9Ru-̕mOwlTm3All WMRii~"z[KPeLӎit[lRyp!bj q\04bMo&xxWFs~lHUg\Ki=}R6mQxEVlD5`oyCZ;#8n}l[JPfSEicZb\0?izRkg+tW>#lmm"=R2_qnK,uVUBAm %tRV:!nn\?7~+?k>YLC!.\dlP+!~R*J@l2- T7NX5U`n^ Xu\E3WgMҸm 8Y;)Xl=XJc\!oj"nXK]"l_v1TwS xn),zS:VkQgWYJ4N=nP 4kUN91Ҟk*fpU@:2ҟiDu3[ABh<ll.jRk8 k6xl-wYEG?̭lhy[?6o UTL:o$LrT=ci*NyXRmk"3iXgPWjMkl\%xVK6)$ϸi2+atYXO)?ӇmyG!@Y?_biuX68t"̜m>S&%qRJ%+Тj0X<fWl6mH sHTFki0([`6lhH!qTN03hOzZa0Kl(1}Y7^.'m`V2zΛi_(uSAWK#i{.tRNDKIo(v3V$DtiFW~Y7f=%l:|X~B<6mW&+rR;"Jm("CgV@EooPZ;^L4vmd*'yT0zniK(uyV8YC lA(TR&Rl|M͙l~6Q{8~Tm\q&m0W1Fh`uS7(?hd"yu] J${m%KtU:0;`fьn;n}[+Q~x.җnSsYQ?i rVS6uk*9SvQ=6(mSl\ :;yψmX$|JX.JtͩmhmD[?enN&uyTO@F_k(hTP1{`hUy;'0oZ,qX00Kh*'zR?RЊi-ZhWKSv1jFr%SU">\ѓlfuWQ;mi\ 4џnZ8,6ek>(lgZT0ҴisWQujo.}PVV"1i&\CC͑o#v UR|l?JέnjVtxY'D h.hoV VW 5Phm+oQk?` o88\4K owwVMPn_*{\i9e.hYq[CO(Ov k.?vXU[Svbssn"h+T>&i&OpQLR~Rk=SWdJk"i8RTzp;AkMz{VW^zr<Bm$L'gR80βivM"gX65ӿnxrRs>qr3̀jBwLW</m(/lVKM5̐j-lVEtҠlb*ux\3A@xOoknSO;9iS}T0f[FnLkuRF/lwV?7i hn(\WDg%)ϐn)j;ZTPiZl+m[DXi(&sT+I'{67jWL%%{TV:bbTѩnL,Z@0[Lit[JS'k(bvY0Fd5Ӊjj+oWs=,tϭhs)lVNLCwmQ"*UWP$Il="SEGүk1zw&[BJev NBkB,Fya[@OtEo'%hW5Wj&j\6IQI>ӈkwZ5бlVGqrW>8mro;h.\_M Tj~S= l76Nu`R3_FmSXlM} ηmX45ӷip4V:Sϓn=(GvQH<o)j[#;{͊kh[J*;L8o1V"/ylZ>x0'.k'6;SW<I kSmXWL5P/]n8Qj>lX͂m&vlxVQqBPMokhQEjAk]Ldl@@gRf4xӔlhR-@}-єi@(UM:zhy-(nY0} 14^oOOM\,8юi+ n[QzMmWXk)I/ kZ=Jn}zkn[EAh*y.W01yAӃm }QSo#jl4T;H/_ m%KnY29bj@gTImD{̈́nvSF:ѕjr&iW[Hft4Ҫj6YDZFnAtYT=9j*kiZIJqi*mZOVlSwn7T~RIMC*ӗmS(0?znO,BnS`4jΥj$:t<V%M:voh[>W&,m3kZKG`k.{DW;l*glm"HhZ4?kvl*6yU9G#l %hrVP(ӅhnWw7Yx^i`?Y4m x\Tg*Әop)pV9mrjkt ~w\@k!l] yFS15n:z$y$UtJC nm7(%oY LiI1 j4q-lYlQ Ӑk$a\D?Un4k S9UHΚh|^'sT<cg~hSoqkRLh/}U?QUnIuT#Tq`Fl$xBT$<vaGjM)mS!EZBDl9u[O_R~·o ~nZPeiKQ@AOнn_(T@ 8id>}XIk(._qXbMPӒi)bl!XR{h03hi,o" {uT;Aѫn v7QI.]рlmT5<0̸lohqSN*pFdo hsZ; L>sj w+RCB:ogn sS3+kpT]1SͲo+hT_OYmk+iqT:5rkn]JqmZi3rsQ>Dm[uk\CK~ciS ,?uW1j< X~S;+*nmR2Xo+:UBUwќhm[^Gt@^hvPgT1Vkz0V';E*]o.6o`W:vxKhrGwYO=| nE%o[2WQϖjvZ7T2iN q[K=΢jHa%n5X<|hkZmU< фh~nF\1KiZ#{RqA\ӏn2(i[W5&f\ѿi9 |W>kvHix iY?aЦiB T~4Z5ݕϲin!1sXF{rҹj uW|G-'4͢mnr2SNb?zo!n\Mmv)іlL{\Qf8Bni(}Z3Gz͔k% pj[DTǪlXkuw[*D Nlc~V2(]om,"{kR7I=nkkR0S^Ӽn rpU=>H8Ͻn !-TqU8hk iDVB!7жoZjS/ZJ,l)-[G(͍kU(vV?4(ѣnRxW1ЯnerS5n nXNzboF~n[rH,зjS ~tVw;o'tRQG\͹muw~S 41hZkRkZ4L[YkL$:{;Zh4J̮jO+'XVF]n WmVf:E]xνlj"nS\UКnhrU2vEm Z40Ahri",{XQXEi $.,wRc=d/-i p/SIyѸoY}}RM3iIDo=!'R4bj!IV@Kh}+v\;1 !kW(mcUJ(n ?i&w)WAuQ~n{U;TAnOwҽotW H &i,(pX9M3n.+[8FGo9*h\$;ojЉnsV6r2JYѻn![Hy&flsu_XUtӡl,vTE_ͿkroUI+Mj xTG o?FyfT>w}j>.=zQm6nuijsTR'`bm>-wR8t2hZ;)Gs]"DmӠis7ZIHLm;!uUKN0vh(x4[sO9nR3J  `<iI|ZWaNh>pRQWh7lzWO(|i(qVyHWq'hG,xUPcixTAxZn)pVE@Y{k`PhY,1D)o79QG h(i=UAoϘnHk[;VΖo{dV2lfl`$jvSA#~iYrR7AцlnRIUr3wm4yUT DheS~pWT81i!i VR2^B҈k )tTj,"mY=o̠l"E-~h[>m kU,6Uj#oZ>|ΏnD|gVVBlRӫkv jW;;~vhnXOVn?.vGWO8y4wmӝim,W M!^|ok++vX28ͯh1+|qcW@;4kV5`9l\@|VLdsl*t\6}|k^#+lXXT}QoD\xW[?]l6@&;|T~ONuh^(UgU1U.o}Y 3-hmlvS89Ih)ZNc)nYN&Ot\?3qhap)sBT9K,m)@wY[PMnjnYh2Jn$Ϲo oS8΀i*JkCVU ip,oX%=w$g͚lZugWAt[g3ow u&ZwO"ke)FX<)MΌn}&WIjQhkVP|k^yjwkVuG%}Хk+[kUAVOCh;+axFXT6mkTGQl8(n\CmN̋hu+tT}J.~$kA(&yxWR:@ϕo,vVG2)anavQ5=̇n~z2\CRҒiWgRAas Ӣm|hhyZ?DJYnW(ZoX7Xo(2yWMb6hynZD6XY0kiu~7U79qjot{uZ;A *l)0xX,CvϚm'`Wo8hj`|bg\-:A9Aҝk1yQQL_C kpB\LLBjR |aUCQҷo{XT6 q kw*Y>Ύo RwQHKj;xeWLkd~\C?sӻiyUL9/Ҍj#h8TCkCRirh[?&9jGwSY2~uU5"mM#rVRZO mA,Ij\F:yui%'ZE9zFCl;kU>crΦo~N5ReSVЙjy yXd>.i59j :V1S}$nl&hWOtIkT\C7:n̳i\mfUv5r~`fn_$]vQAd^kiR &OXLG+iXnPr\3%i(nUhSo&n)oXpSRmLwT?1tҡj\|6cADvjpZsU.J"|m_; {k R1ok wSL{lV jcTn;#+DsΘf-F\,j4[ n ]R Er07H$3sM#E=E޿TI# )Q *WLI)Zd:*0?I'yT"9 ;u7!9E)F#(Y#2[B- 'H@b.7@*I'H C73%,'r=$5(p[{@10+9z)BM&+,AlWqADWuCL?htZ,ktm+g l1r_CYgoiW mdXKlwkslUxbRo$zxseXgu9Zm}h~Sj bp qfj@xg~i}s' }"-v,kZ}7W;ghkz pALg`Qn6O~"XufnCPz'wlK ~CD TuLiy\DrQXfQqZ!j!nKh0:7` qn^;qB sfXiTvqwL;{}{wL>t "`xi HnF{&X\s ks?dtF1J(8rgs f( H &/#{., m>&Ͱ)r7`';$qi /9!)_*C(!{$\It#u-' "'q]".%7++_-D<{/1*k'_t#!$<|D{+&HG$ Ӫ`+MG7SB2%:k+R!xRCU2 `-H%!Qi #YBo#m$Ϳ,3%!U0Uߴr-/'E-%;!,%{ G&{Xz+hVXmt+$΅F(K)?k)m8MWEa7b1*xk1+mU:b9-sJ)XV7q_r,S>,sjQ 5v+eW_)|tE9)[;=4 i-lk|'lK*mY).u_Vh*C| K9NE75~ZR_6kKRQ'Y(xD U4~x5^[.sc k?cr V#&pn\>;y.h<z.nl!=h-\R9i>WQb7{r{Q<;kZS<<v}%qlTo%W4WS;i %WT7R|2%WU>9ou 1]T)2,'\,V*:hq 9f%eAC\s,%rW (bx>_>xmH S2pt 1"~lZT?| S=m-dV}\0x+ y/rxXC[0'hi5okR &=r+3`1>4"re8Y%oY?-uPg0=hgW)#}j;4,n ={@^8:)%;j =p `)=Euw_w/mz(TE9q[v^2XyER/zYVhe.Y\nN5Er 7^6phZ?,r.'qW3\hYyX&)(yZHf1}~fK5Ls[V*'o"=^7@_zc^@`S k/s 7L8q)>n<i&w{ &n0WJ (-(i<W>8d$Q\@G}n|T)w/_k5_pMmI>5pW-y=`l3q~s7wqUTL-*,s1{P&isR C,W~` ] 7xbX: 9ylvf.-x6Wq9V:;<lveV;9.k֍6,}U6g!V<>.v֏Lf-[^Y]@1j HH&*rSY_=5"qoX&8Lc=|uWZ%wh*HT=EPn^)9i}Q@,|,LTy%Zh} (Qm^i^_3!lb8hHY 0ix%MY6*HOd4RwyqUI&7}`H,+3GxN*p;p@]xR4wE l 18y3mX=,p W,"=-lh_-nr/v^2@yYk6^p]_,kaЉ7x 7rmZE?Tm<,mw9|7\lZ)mtgAT4R.sNpR:l9$qK&^d'mJzb dA($y,wy`3 ~kS\7MlI% 2t*z^ Y>/~-kJ[C(*|/LH4u7Vr 3Tm nU2ps)k^6h#Yf2cpZ_'s$eVB _3w/qE] =?2 GZW4y^:o ;Uw8wv'|qu8{ 1t|;h'R~`@4J{x`:0i:w'kv]Y|?um`>{9?y l 9%35X +>ypHW0"{,+.5(/AyS*<}:R2+dz<rJY  5yܦ_b/pw7k _,?"A+k,r0X-7 sK|7!{z`X18n8zzM%MR9TtKu'mm^+*([y%9Z 6buYz{5S|:PjGDi>p"x 3 x O/+m`#M$^.'wqY9'yQ  gt s $:x_Z(p{n;Fj,^e8x,[05k'M[%x!:,kGT 7?tB>:'k:\9yRw k;I}\5<%jkWe<{_&xy+@.m\Tt %wM>uxicj <@r^,&z/8`2tr,$R=~R^(=LkH:5B h?zS0%q0Ȼyco-T_,1^&?6fZ,u #M.;k0/o-'tw[L&Q-*ku[5t:'h WRf2+oFNI:uLo+sq:(ano<sޥzH*AxZ2R~J6j?`.6veL -\[2lxTb:zy=#[m5 nz,ih^6s >^H>hd%m 6og M, uQ.T)c(A|iV60%iM:~wNlSq5T*W:{[f)S.8>h9yVO.m7 a93m#8mH&Uc}vWS1ymf~_4|mH*g*|Umn*w`2)tX)*nk)rVt4w n+ao2s8GUnK';x _r=(^4hG[?a0\P*ln,N xa ;'\49,SM+ }r+ y^.ng@L_W;plM,ej H.\my0.]wz ~_6/R<twR/lm?\=(FZj69r^4}8(ZY-vXn*wk}:Cp8:DueA:Ep< {."lQA _/!iB mV0oBE66vxlV9cjT3k5ɕT>zBnT$:kc!0W9euC_*&p2nQ,.&o[ /"G=IhFh2OtIK)ng^:DrS 7$r KY3}KjQ\'2r%^N/Z;wV+:jU#*o#7 +TR8;GoWH5}k\7xZq i'q=>y5x 7vKa/Qi1_:s I_N)0j==}")1s_0qH Pn(ojl3zi 3| XRDN*sR ZW 9{L[4 x4{X\.W90\?#}00\0{3W e65kSU+\p6[8{?j R%1v%--0Z^-@Oi= 370poT==D}"\K:|FY.hnW 3t{:^)Pm^3M} Y'2 *u\C-`ui5p%^8|uu Ik*|iYH;iR,M5.ut]7(F 5^M49mC~R1g1z>0sK[2q$fZx (n˚ Q5tY- 5pDG5n_??#^$4}r.w\Vo= |V E/hb_1j!/%rQ'9o =5gl5pLe23n#'-n,O^,:ifW _*hsZUm%{xMkU=Mn_ (wt9_.PiASp.?rw[ 4/h*QiK:+64s$1~.Y+>h]EK+qT5o )5wqw 6l}W'+jW'}uAV_0-zU/+w-  LhG=}~7&.q['j>/SsX)(|~\[)VH 6-iVd_/lt'On{ H*y_;/j2~Y>Mj^A8g^;f|S>*Q )L;ntL8L;y1S*mz 9>Q}>l0'hm_1uGm@.LoZ 2tXIL'nmo_<]Mc12UwW2 ):sY/M `>Oq ;,pK :|P;-jR; u+5}|\m4w ^B8FzrX%j XF w?^sWt/q)W*i}[_'q<9BuWa(/qZ)(BxCWbm/Mk*++zra*W %(QS8t+<tX*jrc2X7ax˛YQ=z%y8sR>,2oFd,4~ Xa){9^4%kS4dzQ$R F/On!M9( {`"X0vD|&iJ3jo/uI1U{<k%T,gL81ji5Iz=zlp3x ^?v ET7/iM5i9L,t]?TM(*t%W%U4j1?i+7wA)K/q\w&u:Qr ,0\ru>Aj>Bl0JLy/kq6v/2M1c.~ySe-Zjq 0wX,v(ӝ Y#>t:QoL9D!eu;K;u# ^2kPE^B) {V Q-q~u0k>8&W=a1Kjj8*T{@.w%Z?~_F;lR?{Yt--j}47|)f7l+Lv-nsD5h/VZ5KR *<,n(p_U ?8xY5h55:T&s.U'9h! ;m\I*p\\J*y%(_2.<*\& |9Yn8uh)_ 0uqx *'xvRX 'xuJ2RY`'yp~2QI&hz\ 0u{\4Xm. =2;vII\! *hBS /u+W+5[ _/qjW,&v& !  F@c35ҺLyA +jt=_H-l>ҼU(>:h ^z-+iҾGZ;wRS9bR}$(%cp^b/}&Qy9 mq\&Xk>RC=gXR$2lV>{h<-ghV4}& 0pcu=yT;rwH5'rQ4-[f+0pO;(oEX9q^'kls1/roo3h?Un2u3Uo/s3a;GF4xS;.m_,0xt=o H*`qL -]{{AZ~?kú2?ikY] %j+T;Vq&63A6}~b ?3xar4[y!R.&`^/Hj=-iq|S w9LslLq8Dp\ 5h*̬\^>$Y`.kM*lzHp7Cz`'7D1M J*y|w.6j_z0<ytH:{Xv-ke9;2n65X?/iWr'~W/ sRRT5{ D^`1Yy8;<_s2p} 2-su`0vhMe /m`#(~c &x{9R`>^$Ra.I`FP5~)#?r"_,~|La/<v\a?XmS3#oSL&wQ|I1ot!_0kXW,|GV`u'?z@w;=<|R-vu)L-x;Dl- W(^l'LX!1:3w3<2nfWp1&O'NV$,+~U<w S6vYDS;uHvS&mIFSg+xGZbP<6z.[h1||X:w4Tt n!_q)6wbZ&Bj%<4{ZX<q90k2w+JrT5yz*R^) z?q[+zAiS 6+ zcS B<-y#i T 5&r( e?hs8$,h\D6}.w?!puW_(5u{_1.D{=<@.*gTCB5<h&w>B]%+' 6hWw,"{F_47wx^7~R^)9C^98x_1#.(hVJ5zT,5vSS2ix2'{5!K?uvI :jfR -o^!8:{Z30sZ*<?B$ l <tjKS/v &xTS:\sj-Kj/}!7Y+t/^`.on:i/Ky<4%2Bs3\/qڿ)lw]/&x]v+L_i+x v`e<x\\07}6sb(:F_*9ym)SvWV;zpM/T2zo.<h7w QJ=xv>vBM:v;YV6vdCWm*|mϋ <>ky*Ru2&s,87Tn~jX.r&Tp&U}K8mAT9P;mm_)fD7np0Q[3az;ZD%&zR_1pX)^5~uXh*xT.$v=F <*h-<{]a^ <|hQe<o X 4nXX3i|X 5rO4apsS /wma^k, m\3& n% \ ,% Z+y Y=Ng5U/&iX} )riW2NY'\0&lRR:lHW^@&~EJ2~P d:hxVT7_h&dpX*9qOY h3rj=?>f;cvT]+mT9Wz9lU=udqT(g:LwH(R9w  'z{m;h> ?Iz{oJ%}r2(g H!;tZ}g|;~S(R{R/~Ph']o5V;oC"ro4qT%+u.3.,|<n Rn X7'|CL+g&07.ogT<&ykcY\3wZC7Sy&U7 *g p:0cmA81q!2jkQ+tg\:-jn-Evn^6o6_0M}^%iqP4}^|cVa&k|d2' Ni/} |eie:qB 5a)/0R <_QQ;l.nJ u1kLȆ R;t;^5p+w^W>s- Y>}X$CL3)}4^&rk#*|'{6<k8%zTh3hhx22@tko9jL6k_\ f1F~R2xclQG64_{+z*;/8h4u?4{+F+sME5jdK}2KlgT)U p65j{9wzn?}%q&6z_<9my:M0v,r .dQ^-rb[HYe;jb^n3?,#\&t<Lh/&lzoBA(mx( ~ BT/ s[W.mFT5AsGW*r8jU0m/ `/r[tm ~d2o3u}SkE)u}Zo<L2yoT\C+,zX 8uN_X*5ld2,(uf._*wQX :+V#'{ω L+{T<v7U=)exv=S8l{U+[oRt1uGRu.CG $gn4Nz_-0pǼ35:xlx8whg;j)wk,)xy&U2uCS6p``  %oS4u'qx4A|tD[:&9'k/8l5q,#Vg)jfW . l<5W.~ 1aG^v 6}"FE_ *i(vj*nhvSp$(u(R^C({q 8y]BZH3y;rAX#;i+kdM8gSVU<,iJT;1z;L{49|F~n , 5w; *=+z]~r t?}n =hh[L7yb> _..yMI? 4Wy.1Ge?zp`%w?S ;44Hm.1lep. 0&h7TH-~K((VTI|4hL+ggR1ZX Kg[>|}iX7t.u-7h^%q=L)hqQRU=7ynR:2PmwT'Es3KwL 'wgqi] 5k^*pX5e}T=7&Y'rl4WX 30rWE6eq$`=du4nS^1'm)7Y;6nhB^7"3LmfV P(tu$7e9S-_u8=x1[2>t3Ji7ExK^(+g}0[yq:w`Gm4tw>8aj <+|W7P+y'=xMK];N}xWL a0~?`I;gX9a^D?wi 3lV/6z@`4~ yi%qhLh3jTi(~ S<t#P_D6.m_3+vTj0|/S%:svXS:9r/[1,zPW 50~r&{M|&3vjk43 l(R?qz;=F)pt4]!)qs7ZI )7{iX1m|X03=vk,V<{ 4; 9u4<_=>~}T -DT C:qQ5tS(g= uEv pR9jw v@5qt_:UliZA;Xhf[F1q%XQ2%Y\:LKb/u~xW*oFd`/}_@6p[USi '=k @={jxWhx(|QzZ6\| {4n'`;7;Oi?O+ml2hXiUZ69oS/q%[_7'k]Y+3KVv/~8wo8VjR8 7 D h7/y2R~*T#9lkr;.[_Q'nOu^%W <zD<gG2Wk<~u4{&}itVE?|rL>rTRk;Z|[S. sS`6~ 7T8?zwT9Xsu =S3*S _L/jpZ9yD+4{Y{2Q{N_ KW(} 0y (;mp[;{YC=pZ:TY@Hx'unW0zcXEt3_q9@;Jp 63u5So+uʋ]70hy g=o}`B+hh(k-i%=r|NV+k M<2k\x<8sM7r1](&ur' q-/Cs&n#%`thlR=+)d)e`0rW0nh#z{^=a|Uat,Zm>U55U}[8Cl-3=r v=;s Ks.zN  2\|f  8+oHh_o8 \T1{zWW=n9 Q-w_ ,lVm7lK^d^@{^7rhKt6y1d/}$W$ M/fwS i0g}[6J{.>Zo%rXM3zx9eF7k3{jW 9{^O*z ,.L?) n Z+~KSw:7t[`,wrI>. [mT2Tm6(q{` +(DwcmUW>ZUf <xIS"&QrG@=}._ j1;p-4p M5kiV{* p2;k7Ky*j\G;1usZk?a3h;Nudq6oP@ hCa5oV-SY5x`-Ta7mo.UV +EN]W2/xSS#.woKwY 4 qzgL285l,%\'|DY;iq$vi'sG& ~i=z7'h9C=z W  ?iU&01Rs7o[.E|*_\&;#v3veU %:_¬\6qo?h*K7i'[31eu)K}'yV37lp(^z-{A5?|jL^2m9S\2kc^T&4}805~=6o@Uc7zT 1i@T 1j@^[5n7zo=`U9k%W5/@}@12gUl11s(=  G^K2*T6B~%|q[(.t$L+qt 5|E2fq5K%_q~X/\mLe+@v,}0j 8vv) cm28U'u^_9FXA14}_Ru3vafY6n Tq'd|4ra+1 R61z"(sw$0rU.5n'v$?o6`<U?-WzEm+}Z (B+pZ+~rq7npv[ ?Qy 9- PP`X;}mg b! :1dS3jo$V&x(L%v.-O ,lS>m8v.z\|5>nAH%r %tbZ (p^1zhW@vtG%x u@urw% %ukb P%v_w/oU2x)z&V*v4 &BkI"Sf<|&RN ;uV4rob*~{59sl2 9kM?R1xIR=1j 'j\0=3h[ `4rjK 4 zѾ!^:r-) ,)UxY_c:=~C6l_ F@\zڔ^?+{Wڕ;.Iu&v/o35Mx$YP [,@Ov|999u\CQ.5s'^:k R<B9v*R*.-t1{MG4\)w[K,d~;w<:lk^+|?K57yAX^O3BrIC58yESq>uCl^?lvX<~c_e56gԔ 0.&8a(r|~u.mZ 25vjY9xT/.lE%SE.0u=U-oQIZ=Rh6Z8|gi z^s8}noi_+4zqa"){(?91(`~j|V 9~9Ta8hSILQ'^l{^LN'_JZ y.nZr_%"[O>ajJ?_2;v ;)~ r*z\*bl:{6l_ Zn*_s2 5z*l(3"nlW&>wZ V $+Nx=qh2hs/kp@Yp+,nkX0Q;y|j[82o)s)T{l"R;jr 1k(sA4VI0 o'XkVS&?S,/xoS.7OS/>oIQ>+kY2W+Xy1Z6sXk:Orl^8~YU.; T! A3q;y5`2|:$-RB3t/u?Gv&Z)9Q0 3b{M7ti0\Z-Iqr_D,wrT8+78GM(~QhX>o~R0nH[V*JuY[(mX ?`|`-in1q`(/dz^GV-||!3;v-r&8ts4L0ks^0-Bj{SK:pZ>(jĹD&0xE'0y~ P3Dt=m }%qnG,<`>2S<j<:Tp0l ">:X|\<rqGE>FkL ; z qK[S|, ^)C|ev.:l9W(%(t9nW' u0;V.l^xW)q.p:9U%(~U$'z|H&xQw? ! 2pZ5=  N4zS*gza 6myW,k M _(%;_>+}+-owLm(v$[R'Mk._'N}Z0,0Y -4qY^1hPR9|Ou^ :\O{mE:gN`9&HoUl!0|OUm$6{(V;p8S9a%pqGr@ekJe.u^Bd/!Mk)^m3{(lm&GL:rHS'>pX:/i,tNU;9xRG 9"{3_g7n3N P(ixY)v@T<zVW5+fk<pW ,kU ; u2 l*3~JSl?~8 }+}`Ql 6$ ;* wM^N<gA^~b?mg3v+L=}wj9?T5mt9L4r\.l|}1iAZYc&mvK&l% \`.h\O1kZ[Z  S=Fr1X+1~Q1a0u 98,h/|!2<8-tg9tp x^A*8}3%p,. siQ/lHt9xYK2{-K(k.W15=p>D_!=z>EU, +gy z$~>}u^_4vH<9|"fY:j3;+Sp+(Pm:}55/R(mp*G\d-L^d'1jF 97fhNX)na 6pb8R(7}^{,W;chr >& ~NM=Xr\Z +j fY_z&6ufL"%dkf v`@qJY`-t*7Xs7~}2\9UWC<l6 )j! ^:>jn'!o8IRK,{|8J/_:{\ :2tH:tkR?.\&'nnjz_;)B-t@XV+ti t(tD-w^l7s h?*]F/Vn.na(?i907shp2k)L+fqt:)L8B &Zw1)6|kF1^("aQ;2lhmdsV;tYRh:o-[eI4|-R-'aW4;rRA:jm?>-?h, k=_\ 8*H_y)r~_V )ujZA8vOYk3IikL%4fhVY|%q R=?&lP+>wRA?'y+<,m&#2!{;[ ;Q;57{^Q?qK(~f`|4gpUSJr,j܏K8}Nro<pܒ1vl\ 9yxK &!gZ^?if 'nRW\5|jA* =`0A-71ne\ -%r*QY1v~W-212g v4mn H`4~>TU -{I4?h ;+sPC^4Bx=:ZnYK4kW;i _?=/1uU9wg MrF/3tjR.RrW ::hHW WF=i;S_ {%j S`.#5t+nl _'nv\`9w0>t-T3r%Q)-{qcQ'u~\./Eg{MG?m_N;|Z^3fJ a?&m#q)z` _`;*k!Q4cQ 54Lio3B\*+g\92rhL 1uWbXj?n+?zV`R,-u Jz;MrT= a3o (MR3ub/[ W0+yy@N\u 3t{[9,u{@SY X2jQPX1qvbL+'{gr)=u~q'L+=wlHV1=x'T6fs8H^z9l` Z'mQ |9rHZm6_6xuQ[v=VY4{NVX @XX0(uq1;PoSU>@qS=~\F:z2uMi)Hhklc l~ ^hp(]y WB E+O^*>|n7%jh@ 4 'rtϯWoyh6cr>Z!7wuC!_+]}Xs,5L=3k`8 v O>x'[;bqZP`%}$3`kX5(~/|MT85l8Op1 gF=Mn P`!/|-M-~SQ3igMZUW)[tn?9%p#+V04_^^2{_M7|:tM_:v kz@jm8z4j9Z%6|tbZ3v!n;{W^~4 i 'm`2S{- S@;.Y7kA.z+l`U,cqA_.Y=sZe%y*KZd./n`hf8r^L'hi_t&wx3`(yOq ?@:~y (Jq6&iL\80}Yd,UC? a ^o:qpYf-q+Cw1l^B;@sT|;n|SG( +v\ ,q/%pPQ8<  i,Vg4L^^=sL 1j_4ylOZ+^P'i')pt_-prR%~Sh5zYZV9xwW1uȩW35TqnYv@Np >%n}u5_)sqv[&o |)]hs{L5Fw0-u ,g)oKqL91gYY9A_g4xU5mTd|'}/e 8,^s-2Zvvx[<yv+n[ 1WL<1-m/j:&v0C 7~U6Cml7l Uo)qq [^{6h{\q93u427-gW2& vcp[^w<}sI'3w6iD.r\-WpMDH=oyos`G-u)i~;o1Z (w\l;v yo#=~mm)"ySqS?(}w 8+-rX@^5-jD@@)+Oy4[Xy6h ^@%h_a%zi4zncz j^I+}Vn'v}q/0n qHM2|7o}K5|ge %p^7}V6'bh :>tB1v/I;%^3"`9~ v=xpL7UM7;3oS -jpY2vb <ju_4nlLE4p} d<EWv3knzUe<{U^'sJZXo<u ^W>6BwV?}W R2pGS 6s4;tK}?<zvJ <.uy/{j&miz)oXR;oRm?gQ 0v+uM37{ 4}Z X1\j!SI;wWo3t6,svF2yY2Y5jp ?)ly#UI 8*sHM}?(|^zKNinT\8v@6t ZR5.4=q/Y$<un<voYh*rr^I)+q ;IJ~-xKK'nKi3ghWH(i~KZe%g#_q9~f{U  r.(} ?0hy>@9e3B46#{OZN3rX3 0 _(k`V5:tT1Vo_^;ltR2qW~R^?=q~Z3 K~by-i^f9g~X(/);i>G`;|w9=p5^-+rfOD:=Op?:kL ,p}D;xgG.Aj^[0-PVLj %tr|1-xVr@Do7=tVJ+;{> u/I_:q:w(fqS7Y:mkqZr4w" g.x^)U`/u_tj2xJeRxB>G 9Cy"^r+x3v _8 wʩTZ 4Oxk%Tw88Kok'S6y _Q1$}Ok)4o!uau,~@~.\E+oY~/[,u),7Y*6j?c6 }U9^?6n hG9kKesDY7%yU };mWV:~| 1hIU: |, BP%mz8Z,=}9d`4v88`%al-oU!_2ww ,-n;2n9R'?yIR(6yIR/i \`,m* ~-jr \'l!pW95cCn_x'<pq&@m^0{v|`8h( H:xoH?,2z\t0 *;+hK)wsT]/o@ e3UR=9qh )uR+m*#77_'=Ay=C{# :hvGWC'vTzF,?s,] +t^44iln)@/nw)4@kL &a{e _/7vno+~S&uru -7i^[P?JLx^W2$rgt]'lJ1w4[ t.xI`3<}"U 4s_= (kC;Bl#;EqUS2z+5!xiٌ2h^=o1;S n'9dA<~X*m 1 ;~>ki`7*U}sM-d~<W*@)}}E=+1~4=io-wW'>+2z~}LTf %9l> ^u[9sa> R>>xLL6&=vW*u|WW3kwXQN)}6X^83dr+6^7%^*/qFT.J8jLW]9aq/y5>1u8mLC1tsz[{9)zv[?f~d_r9x_2u2G;ok/ 4 T -|PS [?< w9R*0k*K &_|tU--wIt6/c~^2z+_`E%uM~0 3>[h0T3` T8iQ(.w ^-5q:L-xNZ C?,kB,}ta7 o ^& g^%o8$l=~0Uk9Oo@{'PI'Qir?-HqNiX?$i:U*+/}<^D|3[vR .-{)Y6wt*SW1>;t-:c}V}#')|}/j9Q7hC7lKz,~[T11|f,_&cf.S_61oi7mM,0.^0}-_09p F^7*]fQg'zwXUrW(Xv|CT'|{P1*$Us{:t^P;xXM,2m^Z =n@"Z ={@#X=;5_=T,!h^_1<p|T{*yG_6nU6S"?iE{6o|Y[G3@s'<[B6htK!=mT%W/~mgQod&jE:\@cu9_*uNUZf/y# b<X'CV<tqՇ:wZX8J @2i{1\Q 2j)D]:L#:z \S :jy 62j2oL5R)og o{(,nRsb;lU^8.kt}FU_]9 z2(oIQ:~9T^=WxYM*xYO <)tڬ ,Cr:_,Dzq,Fk ,JlVTu (gHFTv%l)FLc(ob _faT?|m7o[O?gƅ WM?[o 5lm 0@$k{>jK:/sv: b &t}Q_2t&m7a*/hh]( >o8~I[ q'}i_N@ho%@X6Ws.h5[ S5@eQm 8tA /kK8jIUT~+exf )O6`3w +"m=z o0n-SsL/36x ]F^;s Q`L2~*: ,q_j4{Cs=j3&q1wj$)zl&O}Zk&Ph^h0[!p9u Zm1shxR~`w63{=SN:7o2XJ-rcRk45v4^Y6=o OVLk8p$ )k$2#%X~{R2sTTP,sA13f|(-Kozl{ 0giZW*hv7Wd2iv9-m!>`r , xNHr*Y5^3N,m0<hN ,At[d+pβ3,wO~U1nb7`&pL7u4R 7KR? *~f2\+^k,\ 2u .)'~&yEM(myKU6,jE;OS7>oE -0v])J| ^)Kw` 9Y^)Lu:;8Q}(\%~g\?%i8k\@%n8qa4lZ`;?nZ4HgW,0y~X9:uYVz4qnAV5se7P|LN-t_) Y i& V_>2w] S 4&Kh_$1l}ՆT%{0Kz\2VP2n:+V =sZa ){tt1bu}2l.*nM13o;2p=^m6oxWi6uڭX/j &V^;l_:NiYtS7%}oPvN&3{0?EJ;upqt]!M;v} -G|,?nTx1^>4^,`RF'h.\4kL;rxs sC25{&-_' 'qCXi =h N80tW^1kU;s+3vS6srM6C;le`7iV 2;SgEV 3n_z,hp,|S 5-y,X,XtLUZ,YuO[\N%lsB06D__> @7n_^:|+mY @| &5gzM80p<^A+5k\R.-kW &s4Q~6rW)gD> |x2Wjk> 2ZR %)w,=/Sb<uMS-uj 2u,j .')`uZ=57m*N_[x9_it_  %hr ;WrM*_09uL 6z4f`Q3qbo`g@[p-Ru(io^W(tU\x7?yDYj^<j|yyk?gX_ ,#r9 +-k]JU/iG 8-rU> 4]RS; m?x=4&wL/7_vXv71UwxPWH97yhie &`0W[9yJ8mM:5w-nt;oN_5%sCM.uzgR4qMpSV*xM$4Ckzl]Z-zE.d-liZa 99Z<g.rDT6)1jzQw9mzBRg'Fp\+5=Q|R`5|R I5w,^Yec5R f}]0nW9{h)vU0*{ U&%rw\&|nU  :6oYb:g|^l,2t6V:g :}\t){ZLH 1/ yuc@z,tb>}cY>}Fd=0,zu/ Wy>9:pL<L(lf^:~@MU4rU}*34D2taM4DxQ 8kRr{^{4QO^,&w| 85s^Rs-.!\46rܬY8liXR--g{8y b0T~zz(m@Y(YTR',y uqL3v Ep:{Q`1IFP8q6u _3'k  4t^d^B.xK+i.#U6:0~S5w z/}@R6jsfQr'iHr+o(wXh'DzV])~OU /wdK`#(qNYv1B-R*?y[76.?r"ZF43cW{8hj~ +6v1vkT1{kU1iwnVQS-*n,Q e=hWYs"=kY=0Sp(hy7uaWM <F7<j<UG,1}zT=gijUH,5k| 16zR\9rЏ.,nЕZV4rH_*B"P&kk<T[D=l^.(wxR\9oIF^g(j*o* >o&nr^.yW'.v1ouT(='[)}_U4y^+=<yZ9+h-E> jBZ,ibjX?hqS >|){V /2rVV!P*i)s*z5)tY=,ep-zx^+wKxS7~ >wY<7g"Y *v!"~.tyo^8:u$8.j ?K;Rt2_ 8xC?Sy+6 9pZb8[>vp494x0Z95}m 96|W3?~CW?gVc7i? *0T^t0q M=/q:o( h2,g Yj4|T7W[?muDZU-$i9V3)ltY6l4+jP\ -Ny M4-E.pm^*<h,` T/h\j&cq<<v^8sYo4~AUlAe7jKx1gyThY<4}7|?u#-)zgt_{*uLy*oVw8qqVx6  US)tQ}'{6L1O0vLV8yhNW>szU!;RW>nSo>tkw!=_T9vT1v8 66zs*Su{:.>}. o;j\f7*o01F'qMy5Y ]p3pR3t w& Mx'h':|7q.<Yc+4} t&0,B7 8pq{>h~y%rlS$8PmMY0jn<? oRlM/ck1a1nZT./<+^`9{vq>L67{R`-^*5s J^y@<~!m*1~0T3~nazx(4nnc s7<  gT,'iEnd ?[X/?{nZ8n8Y|^3i$v.r M3y"a&5qM;0?,8V~t.xy<sU9n8~Fp_'  }'Tc'"vMS9Pm-8`06~2o7~>'mDI:d3~%^z*}1St.+l[FSu 'uyFL65~R=}gSv>t)^? D1C>v`f5wT 3j'fk0' y@!mSW.u}10`$7h~B0bzu_4o˥W3(#'0ya.0 q_?`v712Ns+W )Zp)[>`%_*}lH;:p_s-t7=|#T;{+V1jQ7V>"-}"7`;s86{*r V??u(~4!T;)^s  sg[4gs" t>jQe&Riy :{|<`\>(}X<)6T%sdQUR2T $:~?xpm6qId&1S>8n5SI6M ?h[=2z W*u@=h \G0sEU1~Z!<UD*v!?Te6_8,O|_Em4v;inV p. x;y '5J1)no*^;8gd3 4yaf Q+| 334{oXh4L?5oV.>N7W<gV/_2 }V0>r7 ,_d-+{(^-hh$Q6nVXT[<0#``&z [t>*t:'Z e8Ist/V1`7puBw  Y% /y׽W6n[>5s% =0jOC`8i]\.u1Q<vmxS<: {+^9us/I0=^f_B5GkR(nbb"t>1D#L (p\/1pyh<u6fg@iYr.}Y_)nW<*zn)?&J4>muSd>6| iUz3vYM ,s\5_P&8|Z2}sA5u$^,&:vi @@9EѦu'(A9Gw s>mrml_1l*\|:kJ\2+bn_|'j F *nlZ U &{%M-3hK:{4KU/LmFK69-_2wN^\7qQ#a+}x`G;9x|Y!2rGa/:2lA.x)u UZ3}p>^4C3w?WH(5vR{+z33r@{ O^0j^83Ps_;jT5mT6[p0M 2^'yK[z?(gˣ|2l#(\>0|#,v- 3Z-u@3'w([:p{T0ZpZt3z0$Z 3z0%[F4}".t3|(p5(F@W}>|zY>xj/rW/j^*Ei)R"_`8.hes![4}w  +>sWY1(iW|L,~r )m$Ld_,ueX.xbٸm /il+N6Dm[ %uGrW`:|x<%o]L 'jAsU\6t4- !@'|t_Y@kZs+t =|Z;/nE;+o~[(jT`%-j-L0j,:VhTY()~"`Y7hY?Fo"g~a*Pw}E^)DZS/s"g{3@i{+nB/Zw3r~BX,~Rq9~/l,7^5R`9.oa_v7s>0l Zi4+s=R<.qL_(l v(oKy;auw  2;N*l*4~mU8`7|?\`>9f`;w}~M*l8?FX;xw^.z;+^J31gSrE<uU(4Yh&5zj(tV8i]1j9[}9*{[ s?uJ MJ7GyWck1v!q1;k^x cO7q [$0*S+z-#|B8S3\u&S4_F'_^^&{t@X4vyV-% nRN1/{& 9q.b(^{-(zt)T.8v=yIK;8mN6K'@lm b>p^X?@kw c>;s5sW5p1`\-vX 6KoTT4/)TK5gh_.q}:!8j:UQV:iyV*-r=V/rV2du`&G9ro!pS&2h̶x8UoZ )tp\>~(+[Q 9~+Tz-@s^;-AgI8) I2D|=D%wen*sn +\2g" 2m^|({U$^2qR,7<sMٳ2q|vx<Rs*qo1QW6gx=*1mZs>H{R\Mw8Tss^{>I|_Ra5|G9XP7;1kG+q m)>_l\3pG]/ak>%[9:wN[+||i[z-vK|/i!hL-.q t'5oUj9<tL6|3Yo{ S5h&jFS6#7cy/_f3Z|z +m _% Q+C+_%pF0{tZ>!}Ʃ80zh:,:BhF '#s] ey(p6k}*7k(3:=T S?g^J:s~zI >r U;^m$Q4.j`7\:es:+KU=l=/^.^{E)VD?{lGH~6k&^-vs;6yn&[<n% ,T}|p0&(xU1+ME o 4$pGM 4%yQ~ 7hiV 9ok-8kg7j4\}=sPQ 7xz\f0e0,[U/wiwR&lj.u>5{q(Lw4Tl5nͬ.;~q=\,mtRX:mq5u1{zs= :-j2&_N?Skp;r {/_9(2lWL}W+}8tA  X6Yjl#/t-`'G{o}Up83<}e:K6,*jR (>sX>m.M&/W{7_b33ma&34j&U 0P7Y09iB'hs .|UT4`~u\9qim<4:xZ +GU &3i#@0@l '` / Sa8~$QnG5'v%W < h*7,__-t_[(mF4:w=j\6\P9o4^u5xj>m[ <yBZ% :sEPW] $)~3 /&o?W^=<i;6W_ /~7  M/*jV"6llUL9ij3 M1'[r?\\*-x1SR,g7M2,LwVX^kR.r=y:donKS.l1j7_@bj..)=w|L*Ksqw4@q}Z_;wT`\9h>q8XE4uKX[D>gFMF5  6PwK1[t^83pO[(< 5lUn <'zm.4kW8L#- b?^!6mH^5?r_ .lb+h}W+pA[^(k0w"| 7[x;V-z2Sj+DWIK%w|^12tyY4~,R^a*zS ,wwLQ2=^W!>VhyU1q*UDU=]yUG Z?p.K~/Zp|?*<vJwu+'L09ouVY6"+| 7mt`1 gQG5v q@%q5r\V .Oq9U[n*s|6*hIY <v ssc^5},$&u<Zp>6~iW<5~y^:_L9y7W:.+i` =jźz'jK-t89uvR\;k1NW /~~f(/pL5r'~:kh/yoX0mzPoWxR2i 8{I3._ &t^y]^W8 v3/ 4VnCLI>xjUXM.uS`B02lcP5zWFo,k M-r8YO-p8YCg?zi|k^M*;lWQs N3J.,\8w$JYI/I*-Ju t%r0lLb,v?V_%iVT*~',|(,wY j1lR0zXS4 vg  /4yxS3?oW)C`81|<im9~"JgYW>*_s: t[]B15x j 4[Y^s6 $[]V@ZjGS.'k{|<zjR23VCM* Cw/y>Sx/iMS^H/}"S,hM :{6Wx*;pM+`t05V\C(rpWJ @6k$D-r"5;??a{`=kZX6t<zsh[+qY0w&U8pGx#/i /(h;#J'll_c%wZ 8vg_^+8xwaX0s}1V?;'T,p SW.kU?;"s^;&o\#&i,*s_:Y4h<W-"@ ~SF 4<yr"5xgXr-a&0sOVus7#km^k5hw ^l5izx^=uZyp*?9V{5pk?5{'XS8ny?:U~V` :W/!R>>oW1\b{4u9a84p^2zB1Z7;//R^Wf&]h+_ndj`XDg8rrjbXh8suhjdX8pz9kb h'sS1.uV&ItS=Y*s - G 3roS*;(swW ;pd^:1kx^:g[gp;k" `{:qV/lL-pTK(0>jm(NT>nxOU8,j6)r&S?G>^6;p%\4?sX!z)t;zmbm'y/vW a0|"Xq1o׌ d7.u! ,i3T@0zS^,]{!`y7zA>hB>nN@T~M%rPY@Uw+]4l7btVJ3sIl8uYLhWL&s` 0(U/x^/9~Z#?u=Z$5uCV?Yr6H /:~GSO2CYQL,mUȕ0u^&84 w{w`)jY3v ^={}MN >~|=4m >$z _>zL" <@S r`-UA-}XY)@nXY-lNj[-r|z jj=uzR+U)5y@{c6LyrFmYs'lC:7gsDs|h5$5hjK /)9#vI&gn@`/S .|K8}^3v :rE'6X:}riMm),jRQB(0[k4FpD2j< =fs-=gzv/my;Cy7wK7qPG0!iX;6,wh%nF8vi <b =im^? 2&krL|*7jHiwSU)|7=0w.\U&,vPY9Fz8Z T=Go$N a 8{X9zmE_*dFx+;[rHL@4~ B+jh6JS)ngSL%J)WpgV ,hgW_R;t%p_71mY$TR?~td^(H~DzuBp^)m^k&aW735H|:dW82qz5^'oqU-1iy; [d6xlvl<t\4o}c1Q<W};`vt-mv85u[195s2>/^+vKm@r$@i2_7by7\m7)gJUs<s5qWvs-t'8$'~Kv+ko{ ^(Ez~/uSH^*xy>lQ3um?{[p?;; L ?Z1cnX"X/^V1?j ׉3ry }qyy'>t\Z0$x )GTH*Gk}8~fi Y-;o+h3Y7~jC3o+VW >z+ZX(5pv@+qKTK<C x>j`B[,Mi0Ll!?|+LD5uyw.kY- i ?pr!d;|Uw=>|U Y0-1/Z(hSi&owi[/v*ijO1AlJ=rY}`/>{} W<~* tl *"C*xH!&Fn V9J}0CxS)USQZ9pM7C-&zZZ.9FoL=pv$C'w L=9v~?<%R/1>M3^*y\s<+rO1[a3xw8o~~%rX* ?zV, ;ߠlZ9} cSM .vC;/y) )MKW*ewflW 5fn` +xfr(ev2plK^>.lT 7ub`K@@ .<`q>T w#=#~a~L#8lk^O|u0x\X8tVÔ,KdX9t_,vTYC)|puD)s `-|pR(1p 6sO1sbи3h?v.ri|S?h|>%V :i F {+j$|Vp/qSc*kNe<y{bZ58{5$Z6 V3Qr5%Zm%Y6X2}vH)slTm={\E^.yvk:bzKv\d21 I%q=j/x#=(qY3vG_N9Jp_=v5U U6wsRXj>T{_M9vMK,JXm7{cYg+)w# r^G>xK'emb%rT?3!_ 6w#Y<, v<ZL`q)\ok k,G|[ /F}P'nV20uSP>o?Qz'y- :?q{ha7XtT~/g| R0+|\37={^3j\%-(w Y4P~e#W86g4G^q?Z Z,yW &?~O4Q \%u^$<nyR!/qx%gq_+<#h=<p {V:FxC7sx7U3ni/i_;&p;`? ={Qn 51}6Sl -=qt_t&tvo0c \0tZ6guI {6hzH '~oT19k !\Mx0m +8uTS:8o')h=Z'^3j[i v5L204x~S  f^P3s|^8xs0gl/byUjWD-O ;g*|  y`^04}*>| #4|i^4}tQ\['j,5>kP`,(7j@>tD[ >hXu>kO @>{)S7E7}T77XX'p{U _7n/7(Y 77-~,"TmnrR%1[/8so}WC/h _g/zY*,xv" 19GWb:)v^R(E&qU^8UR* m2R*n&*-^\k,n-`^7/}rTm I2o{_:HX,3v<Fd1{T:|%z`z&evRsn.zu{ R{w1}6K3y*y*tm[o*j]Yi V6Vig k_4{UB?nL[4#r1.~aV|h;u5l >*|Y.>KZ?y°L75$*- k5 k0|j*2>qq- ^V>lR>(xAK ;!hr2 p7]7Y_7;mto1.F1RX9F-zjT+-Ypy=l:z^-,,~'7R)6p *jZM+yiga7lhqd-hgo) iPQ)Zx('{Zx3o L,4tv E.>}ش`rS@Uh>WrXM*W*=M%p L?(gg+  O/h"gSZ5$mR ^1u^H:#g$K?Ls@[6_f5riz8zV (mWn.q")kVW'7Y~.Ql_R%7V%jlL?AW `>x]>|Lb2:mBoW]2v 3{t"T&<lU}2grZ^v&n\<((tK  _<sZUF1Jit tw+o|5l)hdQ0qnz@5 />mXrZ4'pfXt } '?nY3=-mX|>#hwH }hn6;hJVqe*ywTX2%k^&&7t ,jyK.#i%x:`<%ynZ] 7+|37,vlr (o*3[ -}O^1MmUu&wt:j6K]V+\k#%}]  !< zZ)́X,tdz1K*! Dg)'jw#G2?uC M`@Bt 6zC>mTV%E @@LjM;0I}{[ U &22xR% `-%;rv.{yP/Prp3]r\w|*o,6IZK&"F8.ny7X4m K^(t Cw4`_4yv< 6|lv[x%9&t\=?%i6ey29(r0N6+A}Yx)x  _@Cxp.Q8LhUJ:r*\h0KU;*)hGf`c>~gY8. o &@ o3`@4qU \]%]g^j%Ԣy /%~u<^*pr#W.=l0Au7+x8xT!6m`&)u1*x$s6_*u^;:[kbf.i|%{[9=gV =~ e^075T /pv8uoGT.~jD:;Rve<q5*m4iSh4?6EpHD,n3xOM-,|H,y}Y:)m5nWO27#Z )zE, s T{=b)VTs'p~)R9Y>SuR: ={--v2*|.-xy0 77vK P9?hz& /NnW8kh6U9 m^&tL: 0nL)=yP>`p  .iz]& 3-t1\0JpF`k)rdC)kK;n34y62 ^1xfR9Vm,m:T+ L_;~h32l:_=Pg kci@|ӿP\7Kp],;U,<_8` Bc,v'Q-;sOL(Z|i3[K12i_I13uV{>~5-DjW 4|8Y io-Fk^<){j8] H8}djV<k+%.v&=2iK 8[t|6?y@`^5qU:"uE**o| ^1W;)FkQ&{WQ&|Y1z[=?,YD:t=tB-N S(~u<pXs3~M 4Q9X +*W;|ocJ-UG2"i[V:L 6yNL3O F7NuK)rx_:jM : ^>)oDY*%iDU<+3j"(}jU6g L/{:\/0ik? _Y5)r4_9u^9ZX9|rDV9b>wYrH?E1_ke<%|T%f|5{sv7AkD'a</i; u ,[ 0l\F'n&,*4t,4Z0$+}mY&w7J{wL\ZF)xg^/-Pljkm,t8[Pg%iZF8o7~B _p+x <LK;;g^]5pMR3r@M-gna68w >rB k.n]B M.tGC_*dk?~?y8Ug0XUT29o dR -sX'R-t(S1 +i8>lJb7qF}g^H:jYB)4vN6_8!Z.jp>MZ)u>NU&loV!>Y~6|g,wgoy:nE5tv'8Xy_@8Y|mG/`5yh% ^2HvU)hRK_&#PW7rQi,w_p1n5 1&t|rW&Vid_s;|` /_0g&`;}'$ 74w3X_-~3VA Q3l/lD_~;k~'j ?5^kTK67g^+:x\+:sUm-q`;V,gYG,h0+.!zdA4V/zJ6`sqTiv{@5.&}*Mn8&UE&<w5wK+vd`v(Nm_-O+{ILA- XB+'ym1]:yNO'|L^?}?mq 4')Yl R>P[;l Z" :+o+~3FjW\P7:nPXa9+v>10*,U,hV 6ZRk9l6Z40t~tQ>jZU/{pV`4r3|9-g-zR/3}b &hL.?.i M"3qB".XV){A:nQ `7qwS~ 5gWg'w@7l;c:oP1w1t([ !.Yv6X%r73;lmJ^>jyy`:Ap!1m6E :r&X=6&qj9jaT'/u._}s0Eq2X@-pRO,{?}S)o\a/,yK9/-[I'wz\(q\.vrpW1w~rs^/p+#M8w^F'tFZ;hw0K|'yy'Mp /V.;kk4t,iT(4<j*X.qT:}EV=:UQ6y|9^+~S*,P~Q`-!=8"5f'ngs[XD5{WHD*}YBW6D(KrI&W ^=:~]R0o|ɏ+7ɐ  =?qL>%y5 5p5Y9 r5 [`;:/}+Qz)csm1xY;}S%^lf48qd]* &z"քQk<[.X?5Wk=!nJ[,ulNF:;h9_)(}&X:<j=j(F~%?Wtf?4t']^{+l_&+~^>M<&-}mBo=>vj/5~6>nJcrJt~V5kh\8 q_2 Y*qqk=(qJ <~[%.lD_%*IoSȯ\[<5Ȱt`:!iI +q_&Y3{V/}+cj{-nq26ixM4H)|Y[5&B|@o=IQ;n?Q6MpV,~9.ni-#?s&Ml=\s+g.qsi 6r{`d8`~U39qqXUKd6wV' xzU*q~ 1h}KO2oSm/qO|o:1rOeS:xooXso^*:xx;Wo4C!|t^_;YU@5mlp^E<uX/}'7wrV3r`^A+=~ _>pQ.R.{].Rp/`{.KI>{aZ?[f={~hX<rV=Hirn~6zV /yϹS3W= >h i%|1_&>qHQ(8vL %Mt4.sm?si\0HY  ==5)vxmWU5:Gu{ >_?opmW*&D|<H':u'>n@LY@>izS9q 2a(4s V6~^^|8q 3z =vngl ~1P6Z2L'ok6ݩ]1q#zWk j8tP9sX 2rX- .evTjV=s< `4x^< =)yZQ'6~L!$\O,Rsno?6o>_`)wx{g.6,!/Xjx}.Gw<RH0^wv`^'q{X83me\/tp `/>wJ nfz1{a`?*nz`?oM{ %G:^<.J-x1Wsk00kG` H)kxA-hY &3m (;k Wt7tH^j(U :?rbש+wU+CתF+) { R1pR3m@3PHm'4/CXf?Zy_ 2mw ,(vZM?uq[V .2r+ g.h  ^.|SOW=BzXpg^;{nQ%%Q-{g[Ya4&p<j#^4{]4}iz (_k#Q$'*l K 9,s7(o86.1ibmn(iS0>j  :v n2fQ 3.J R^?O~j`-z7{Fs.^<o@7w_*& 2(nXdh&> xpA=yGTy:%6Hs7'|C.-<$}t6Xx"Y-C#Y/lTC$Ca 2jMq ue3xM bK2zpA,`+lqpjB^0}kCO'p9S: tu_: {v9k~LW ?K7bXZ3hsm4op8S/ːK~)xwL4*r4z\4ea(*{7Ml^Z'| )?i|)^>{\<iJZ)7jL\>iX7nW6u@|(S20riNQ >9@g@9s;y/ _7kQi > n \*o1r<\_8[ki%|_/ |< ts&\{hU9@ng{n>=0qC9p^uu1HknJ,=ZmEVX=~vfk^^%Nw;5X c2i[*O`A4qt^D_.9t_BKF^5SD(_)>%|9hm=:_k1Z5rX%ig?tlU5(xvY[1w_.yuX>h_/>zt&BJP'wrR6d/qHL-A:|6E:U 7 wr7uZmiVk8?|yTG0OrN`TJ[.kc$;d<`(({$>bx}}`9; sg2~FD0j"i:^h?i~0]o}?_>3oUR]>q?<]<8\5`]6}y^K.4u[LD3if=o:&[q@fZF'7om4X.5Pi#X ]?MoOkQ5RV:@y_zV /w y?Br^<:|De~4^}>Ls` D8lS E8s._q %qnCA0iH ^@0nUI2#ol`5p;i$F1pl'>m(Q.q yY+xm]9WO3 |}Xe7?+o=691:s8n2_i_Q8{>R.3^&y^.4sr8=m~xZC_j>y_.>qU87p{Wkg,v &=j 6FkJ,5{5qV(>qulSL(yl7<zj(;AwL>5#l#&7jhM)IykX992m1]%{_S9oVq*okM:o*\)7ru\);QK/oh)hp;T\Q66li;V@&iW@SP(k @Vrjfx6sxo`0;}  y2 r(:tTRf(z!3xLYG7oñY )B)gv4z+J7{óq^<xU@8n_ ^){p^O25IL>_O,P.-}tZ1 @x?X<1oO X,sk Vzlx}5chs9C>0{wV`m0n!|G4ld,=hQZ16y95q/i#)mL$Z87znT(pW@ %v5BS>MQ<(jw(k|0nHL;l7h*pbw6pY 6m>T>&x[: n?)[&Ll)R7+y{2\vu8t{5c*nZH0}F=6z<Z&8WtGZ;*(|dHZ %rJYw8&@ T_,BN9;hS|;_h~8R_/~/FY9w!P:W?Uup>T\ %y8Z)|,9ix+kT:Jp4h +`@jiR<.w'D_=xL9Qys]J&Gn [V.M5}-k}_%k  :pn^U%sY/Gj he9>qY9kMl&CkW.0wUz4>uy_K<l_ 6.)k+Z <0Aq6{C:msY&9B 3XrV6lMS'x{jet,it4`3qa5<~:3}cL'j-RS'`xOSV6B,E}V7C,Hsk4D,IjX2U+jfe5}CQ ?x7A\6|[ ;rtG[{XWPR-)~eUOa )PYw,(#S(vqS:hwi\(8sW3oî1y`^A<wMTUc0Ulu)D;~~Q ;[-o *x=^m*\l2`g 6vozF`-^vOMr4I8T24|8 ^+T8/r;Z,2Jn [:nZ> 8k KsQ=vA.4.nwz;5k9 L-y?<>T'gRFT(r`T' gRJG5Jpa%`A>P'[n?} 'D:zzTWG5,x>/oL v3=sshSy?~ ?f1sS+m_O8JDhS+lEtja8i{1}~Q64tM0j!.hVj0i ^20zCvm;]~v[#12Qi%bj<_>(|iG={ z72{_-6zI?rX88hV5Yzk_ 0&g;!7 l}?Ry '.m%oL8v+_0{_7l5 1'Z0`kU1!q'U;:Yq>S0*m;iW>pdi_<}Ud2Ehbp#:*R/Sx.g~W+9}uL.o7U%te8a_5}hgL%hE9ZB9.t͑[/%K@5sk[ g^6m[-R2q]Ũ.H%|l&Yp =s2_=v-261T~Xt6;L-(t_e;o]7Vvt6Z<F&yt7QW1@x* R (IyZ.Vh(}Y1 `0yK,X{k'R{pff*h}U)wo ?kyM 1$6%r_3pLE1xxJLF `1ym]X<4hhL #D^5u. _0tK/u^/zmS^.m QA)3i%@'^.T{5bQP^0LqUS_u5*v|\Rl :^h08W&hEq >2@z+hR'.RE=Yk 2/|:nq\t1y9(M5k>pp1ZG/YhZ.&h`%1v5x4@&}#.s9|!T^=&{G2`b)iYt2x}y6cM0r|M2z};~ {;$k"_*tWN .mFW> z 8| sP3kpC q0| \0uv{'Jrnm%_h7HB[E6dq?@/:`Y74?}?O i^+hn??3i) +#sR+x*R1i Zd+%KN,^ ,~v|`+&6NpiT ,>y\Sg):uy[/:pU*Z ,h 8X;s4d?w%6R<1z}kU0n^T.tRr+4~xAa*,i|=^|&$zax w=l{ 2T'rF-1l5 a-2yR2v-3sE 4,iU8u :*z[1Tp-o,1};U)uH[8 24KOl^>?m*R *MrVAE+i]$:uSG~)5v66 j> _'Y:oy+qQ*jbY{8ii:kP_1h1 &mX~4<GKKG;O[0nUN\0 z 'u# h4p  :wEU i4lR6s=6n e1sEn1}"'qLT5 y'\2vyPMI-YK[H 8%mC *r-ht'mO ({ X<w,ig^Q;~Zi?}a^1o|UW5z0 `-}hT' o1wg5zmiG.o[/(q8Y[1(pYj_)kY d4g~S)5{& C8^qS5-iT_*8qh`uZ!.|&'mi#.}{fxZd1ycV a&}=P?;fRoj/=mSV_;r!2iB=2xM({6*~_1 tZgzH;#pY^1~-lYKD&sVq^[:RrqcK{P`E-v(9q3U+kj5U (qJM<>fx@_95vJP)9m[;S{5i'~M6akZW(={ں^.<uzB `5gzTM*kF pU'i\_.i-W 0hk9lL=Z U8)mZ?No[U1iSO+| rX5O10pE1@Ji:{K*s{\Q*Z6Sz(s[N9)pGj=["3'Si3Y@n'&47v 3r^u@3tI  D<>{^3qTc?W0zkL`V4nt|C2s_:Y.Bs)ny:KjZ2Cje _0N/gkx^a(Wuw*6o RA/5q9x 1vjSM'js[A='Fi42X%0DyI N>iF^+-lxR.})7LqS.nzD\4K~6i&ih 7Zv{f_,w:G*_m-h  Z8/vT'H_4Eyi[/nz3D>kb^0u  /2}QV_,~_Js?$#V6jn0j t ^;x ^}<=jTg\7l<'Th2lX' -mR:6i_\))tg^K54wM8,3>ud14X^4Ye,[mQ^0wm:.Hia62wo/}4i 'q7V7}LS9g"V@ o,Q.r^S8F0h|S:9 $\'6,(T^w-sUT0;oq\ +wlq`2-%NWu2xeU`5KaYL9v^=gS9kd2Ti2AW4f<iE0wD,)fi"M[_>h!Mb/{vu(<7BnkR=~6 J/k -=0y)_Z)l/ORx,ys(s3te\ %Zc6.Vt0Fa}T=\)HKp4Iqo@~8 iR0Qw' =0j/lI&btsML@Wk)^%9Sr5n 8qK0Yh_ (Sr1DzZX 0BqQ9!h< ;)zQ5s @}Q) 3 1nnP5;,91p6~nI^4xhArW0d3}П;wV&ox&9Lu 3 ~To&i?}R42Mm<4Aj42<\-}[!0~\ 82qR  6*nuMr6+m=M3+tUY_T:6O|zo|_@2Q&rVYT^*wt$B& #E+VpD^7^{)=yYV@6rz]K'p R5s?}U2Y}77lT-j^1 C@3wʇY= W>ds<6=ng2rlG0U6hDX w1Ry\@/ylV'>|AZgu5WW6!v?qXG=wO%s[ \3hO;`0/V&{#Ua3Ub("1?xdܸ 2pCܺM>b;s C)jNQT&{DQ<&nsgD[_&taU} `(zh]'cj(lV ;8| *Dm:_+tyoVWa6@?`S8]|x,rMK:hZ[?ktn[&;*uE6|?3s>%Llk/m.qnV3ps5 ?%tSVu:S5Ukj/.+^O7*n-.8U^*k$0'+ q>0m3p> wF,nuWe7nrsT#5}Jk2t\T,pG[M/~*Vv`;xy_#+gWV8nSQ1%|0L>DgU(tf? +iU+Cz@U9As e'{o\1qy}0w'8,z3og_8tlg6y mw^,bhJXK=@qyo^~%z%UW>)w)0(n~^/oB%t=T~ {.foi@u[ (t&@{M*(ifX )yf[0:vUA+qbUe&"hrMh >tiS[1Dz8ZD-|ZG-  }^j7Irnk n4mnX]g(s U2*vZR@T0?EfG7hV^_<-v1(L\:4n^*/wNU ?6|NW6rn[`=9tq\;r^{q /~[V.2L}:PWz:iC/hL.wJZ; :gT;oeŸS*^u"   2.j.7B(t^z/[p>|[RW)/+D+}k/3~~Uz ;{ ZB6 5CsSA?5hRD0huf,gmZvc6Qme(<lgD1^u-i >l8 L +M?b#h*/nK -7. 07M 7m5_y7l\a0mw7?4sj`U~ q1g&}G^+{ m |O`M6yR^)>ik:vp3LJ.Ui j6i{2a2lg^3<yV^8~l 23YYf&i\ {a&zq;mW?2;T'9}995 j Lb8kR8|\3z (=lIZY&qnQ?ln +BvS1 D=/RQR&E|8(T;h6LBx7j *w}u[/e{X d*.2{7qtV b&o>w' }>U9)z*0kqZ(o߉Z2~ߋ\&sqx47OXb 3ynR<0w@mTS'$y33 }IVn=~;3p}(xY)ttYJ?y|W/i:T<_X)m100 t `>oR$/rء_%i@Z~;,t]`t4ku.O4lw_ G;?zy ,k;[u=U|s,G{8v\RQ03Ru3hR^i3}[b<jxM'Ttz'Uj 5)g5]y,;jn3-xQt2h%VQM/x 6|l**_5v[m22VjRp lQ98k{Ye+8D.|'x;'vq[);Bkp+ w-^;ugM=S ::qgS t>Ro]\V)_)EptW@&x+1AZ>C~px>Enx5V1jq,TF^>tf *-lpA2~H&]^.Mtlq2)P/m/pS`<o/Z= m%r?<2eT X>eor`5@Ii F7h| ;3i_hV)({<"<3xQW"pQx/ lu(6s?}RYq.@ucħc.s)V>puX0{uT6 8s1_K 8n$17}`&A|bLe)6&6Wu]Y:h`+ jWsMa<9Iib^&wU&&Y :/p9*bl}*A;<wr\9m  72<tZ7{sb>y  ^p<^w*Ym<wxX4Mm<uFik`?7pUV6Hy64K&vjmT*EFTl3p^s6i ~?DwXz-6{SL/j_v`9nl--x?6*sp )f4kM+x2 ^'i7`7oU1x&z1p:{fRa3pR˭f:kX(hijS(m?T=}Ԋc)h^ԋ7)ga9u0T3kQ7RM( 9i5!K5x^T*5s;:5l m`*|@K>hkMz D1~z(1W))z,>R%cs<nL:t\<`.n2Kf&pu8Tv6wZ:|VLa5;q}nV^ i7Qu$W<nxBV_E&9h$CL:xCZX -/ &tR'nv{[ 5yVZS9sh(Y 4;TiqWl'vmwW}1 y-M 0}o  28(`29\}(3z'SOr7{6\.qm^H1rS }3^nSq8$<yq80)G|:t?{FX9{%L:)&g{Jy =~y; R] +zfR^(vq 2|\ @Fk"n`7xZ9V2>t'x8w+r32zT5oӲ?os5w&zLZ@#o%~Gy&i6 u`:vrR4*=(W!7"w:.p&>U %g[*y^c|9j$]2 s#R_22z-N5~/?)hKnE9g!;;X;pLr1z!V+vLWS0r$w;y^*FI=KlQ ,pRp(!vU )M -UrU';H~q_o%i+Sn1Ey+_5=/ 403MF4jg)2pS(t,mWV{'pT @^{(5Q<y9.t{9 j&t!E cphWF1uh* @=lO-:h#N*{-;n7w).hz8Es%^w'hqsW5av}`7V*y_&;Fl\qlk2|zC^w9sTE?Vk@W z`'w"m4_62pc>tTlv,w| A 3u*+Ph_x.K+QjLp P(Wo= 6X8pmL( ^&p,U,}%U53$rA 2e-Qo܈[)t| _;sy[)v[>/w=Y8rrHp0'~^|a=$=m &sW?P{U-R Q1XqUd0peUU 'tVX9Rk8W)BnQ^l?YVe(M|3_3(Os2n4*.sM.;1~FV9&53:&wF4\:0p)s-M{KQ +( WKM-~bͻ[8HzLz?Wh.9m5S&&qF(Q>kV|7p6Z2{@-2_6sKuM'wx 7`(V `k3l/jTQ01pR>'wS:Vp(}jWU2njw pd^97mE R`42t4SY+Wt>A :{*SZ9/oT?\fFW9o}`.}C[7|myd?%3o RU;~0;j0K;i#@ |ZV78oFG=;yjgUU *@k3 8xz;>u}v?mS8f|@^?4q(/^,Nu_Y,Ow4?s1X>}U; V ;Lt t9iR.?<R/K? t]`0/{z&mjY-,zLvm9NVw~/DqLV 1 kSq@%( >r% :&xY5+YxUV?CzU`J9g#)zb7 q6{{2Fa0rZX+=tRk?KjIKp''i:.u?VF,lO ;{.^I()!j3~3hW(6o;YJ8w-H3h4m,V^5(n8<UH1}fC`<i_-={/.+}MYS=6Sd{){Sg^L%nD/8k\Dl5{Y.{E7!t,% s6zi~W7le.{A%_}:kQW*t:aiR&s!i5Oo9_\z2wt r+xP\{&k7\|=`|9o+7tl);]#N6/~IKw;gl191lZ%`?x3 ;kz[=|nX2+9sN \o`-x]d= s{^2~$9m9O-eeW4uu-=-HqQ^3&~i'+NS>z.Mg*t?9Tqc 2zM*"Y;*&SX 2x\*%6^:.me{z /7w a_.yT`~,~KJ{_G=NR0H}]8_TM?/J'fD>"o[>-q`/pLO&~wyaY?=|۲ *z[Q+mt&`t8nzFko 33zQH3=mhT%&gF[1lR22dX?mJYX4b}V+<tL~ 3&vrz[l)mv z_m)p|LN4 n)O4\v>z_u_>sS L:?l<?z$ v?s 7V7}).qfnP?gp &{l}7ysL4 5DlR;eS6k=^7:~VN#M'Iwg2Xo-{q2qt7_2~p.<i..Xp:# @J(coG[&lu[e[&v[gW+|j2}~(t> ^?p7n2hS&'ASji_*F@S>|_/z 3Vhjo|0oQAXZ&zS.X<m.X/k~Y% 8rf68R`>&nT4tqrfZl<8eDW 0~:68,4YXI'kW+9+w:o ;0k(= ~Uy&NwBY 8D1y? h\(}^2|3 `(\ord1gQ(swt(74[_%|@(i7q"1V 2SK0z$UO^0xUP'f5lmuT4,n%T ,'Q+}<Du@=q{Z l.gkKSL3g_U4aU 4pxi%vP0*H-~3'z%[rg2^%\l[@)n I_g+onY/-~vZ` ;tCIW 8m^5-9k|9Z:nS>j B7(:zi9~_ 0#~\x2 y]+ 4UjlRZZ5)} Z[=9 Sw%t0M*NJ/z^@j7h3=YF-4jo &9^}5r^/;| ,(9`mb\1>r (9l=\[&ye+i`r0o}0{ (iW( } )ifd`;t2[5dp Wj - _7;toY&n&[*zȞTU7mnQy6>v22Kb/UxmKc05`z1Qo >x-Z =tQ!4x&;o|sy Hf5sK 3-{H+%|o- N4&|,\ m'8x &&hq,>mT y`P7nmqrK=(-raot6 ;+llV**oU(:h3z3R ^7n Q7T/ pi@,\oY:{'^v>waW ,ov;;%({V G(K T@6woR`,xp _lM%pzy^f>ra/6rX +}7YI>[x''L1yAV}.qW.4*lw`.h\'(vV$) rB@R&T5zL)owr7Fym:kt\3uMW'pT01lNо@){S| ~(q]"0GoL*lL:uq|2\)y _5&fp88oJMMX#8rMN^;8sxMP{\*2g^T <vpT-!w %t|z~`/7}3E\?)u2L'a/'.^/jLR>yuA>ziRJ :vf 6x  L>;o<LS8omR9jsU4QS,'w9J[3lʛ[(?xoL,;/kZ&?y/1Y 4icגB5wt>>i\-XkHU]n:{Mf?r.qz`7kx?k|d^8hX%W3j1H3/x^'7vLy[,v,ugpA'jX?"j<<od%K1-upR"?}2#L 1u'Kg?>{"hQ)x|-|]U8sVU1/'lBuS A8 @V=l40s`3q1[ 9jEY0{l V8 uiWq\;kV)j*r=t8q}R=%4(mk?0R/^,i |>p\ZX@z)6~rRY.<ov%qUw9j8%r`-6y_6u>K3|;RT9z`Ca'~z[L*yLWRqkP;{ 9q3 (oUL@RpSU^9pz}o4R.~Y} (i~\7iy R_5: uC7r Y",ay߬XGA>*uXHB>vV*wYZ=x{2[vR'u{T,&~KR%u`8}_=>{?*1>kGfs0/vu\XC;#[^=z'w\YT8Qm# b=} I0tD*X ]?nmV8~1T 6a,=sWH,|SG)ÜAMi?5k GF6uz\ 7z6kW_.u;(^3clO5,isYS61q=R+~(Kl1Gs^9=Z 64|hIn(?n"^(@r_1nnu24=fkz`.`r{i`Q.mel o)|C]-p__b-m{W)g50`f+hh*ilV9MvFF^n'nGT1{y,}G\_C'``,w.,j\ 8^=vvSI?7j_$,lut^f*zu .iip `~@*KqTP7'Lm ::nc'(Lz|6G}fJYD.wʜ@7">K &jEY9:(m#r?lQt(>i»\:xs [$,ygt['?|\ӉZt.0p*O2 kM{$@8V9$=#T-;(iQP XT(Yi52R:Ij_[7WkLQe'4{|X@%ojHTXB%kGHUX '%rHXWg7|_ 4|eF^h3om x.>yn`8'w7 ~^-v ne1y;QP0_~PDR!-7695%^l*,l JT|K:wXl0MZ21u J9<(k x[9xG= `7:Ms`=:~g_X7kkUI4yM#=wU(_*jz6[39g=ql Mu7p%^*pV"2 'T*sw[ZX y=O|mxR-p&3~1,wg'[j m5<477zK>]7m Y6 pt(?r@z ?v}R; |}Q?~O:Q@+$_OAQ,OBM'jmih[V 8cusaI&?8-)lrXK4x{'q`Z{-vz# vi)N~4u8S0lk,.h>x6pp 4SZ86rYJ?hU 7pLT>\^,~-d-rXU^=zr /n1r?r GgZ(|z<p,ft-c8x[8i^D<vL8\k_0{W\%~\ L)oo5h^5fv  Z)8r_e;zXr4vmxM\;emVj&5h l6>Zy\0~yMf=  M-x>3*Zdw#0t h 4){f`,*lqY'z.o VQ5lqO)+pwV <vh{&Ti:q >-v _3n^ /6<n;W5vT/q  mXqU ++rC\g {9H0Jt+uw^u* i@X"*QXos`:{hu?h?z'rd^2z  G@)Xk|i&mi6o_R.StZ-Lp=!I .yY8$n+R<=h'q,L'sL6ko'lY6tW 2sz*V|  *fr!f^{*WkSX&z1Sd2k~URX+pkRZ+ry(^1+W27m jL,o jMk2mut'f`=o\Gr32m[^T?u!'i)Z.y-"z5:j,&~V'| 3'hV? tX7/S3HGo-.vxRd89tY6 'Wq[c/uy1N&_ 0/W9E?Hhc_-@-@ H9KvU/ a;szeJz,|{BM2}i8RK2r} vS2wuQ<VAp2hjrZ;i_"ss_a.~]wS(h\q)=g- D8@8^:(u:hMVm'rvڣS61m#6OS@Kr]6R3jTN3["5jV^+?/W3vY+a?nTt,}2M_{+<,BgSX3z7O]l?n>v}3;jrKE@"'`/%~0 g<^?)7+Y\?3K\<j%>0oR2>x_,)k4^(9, ?h$s1t\(u)Mm~:x_(x.~en'1Rl?@R9(QR9n[ &j7_n4,s9'MMD6I&K/59n{-nX+ )xV-'DU>rz?XU)+j[G?eyvnSNt1c$&|iHTv&}IS+v|>V /y=RZ?)g\"+wwW+\'oNZ 7uh>Y=|Z3>j+Xm)z&Ψ up)pXGB3eU9{)^T;+:Q30pVS2sR)i/[%wC[);xKf( D<YT:jYe2Ik |8n~W>~# 6=;hPCW.lF w-xZ0)ttf3){tN,~X_X? ^8&o' q9*[Q 3 t 0~wKk60r\1`.j'r^8ZWY8<g|N:hT0}|P5%w>8a1q Qs1s+@|<`>9il/W=.qn= T{38u%wF*v8Xo:zE0Y"9wpC$5tQ=, r$U <3x8e\x*s=c+-wi7y8x)r>}|E2OU&jr^tj9wG"L62^lT/t xm '8ڼM7 & +(\ 5 *  E*a *u &.M}Ӂ_P!y##<z `ߐ!g%f$rł'33$mfu29'H&*:$Bm-,=#!7'G3"3HB'O+. <$U$vt&a *]%$[.&d,*J&$%(',&%A),#"u$q,-A4L clCɡQQ1z#* !$VTd"$Q)C# :#O/gK,_X+%Im#=4,^*#Л&V'"-DCHi @V[a&Ik&N ,wG-X&)GK-gNu/ P"9#()S 9Tj!KXt.Y{-+JTm[M8di*d%I#(K#-2$\-Y*GE 8 iC#J) ҷY7*(V-T ɂ"W( 'q&*(NO&ch %352,uc$W-s+$*>ƭ (E!p,0F /w"YV # P {G C_JbVH L.yZI+MQC.((]U c; FMW] ?pO,#FyWW$#!*H) Z w"k"o ,/!c%<BOn! ;ȹ'HZ + {XO l(.)b$.y cµ F1/ F͙+(]ՓEܿQG * ?3S:": .>-+c Ab!c8S^%SjA;*C W$ //)>^>++K(!$z|*n#x#VF&j)  &*B;Z*!@)" ,PV@(+~4.IW*R*,MS4p$^t+f&!K)'d˴ QV'h*JTunL m.-̛M,!.'-3$WORJE|! ( .7T$BT+E=%<T' I -?ȭ! Q$;!rb*fL#+۫,1d?Ϟ(I->Jd3 V$%*+0ES-*T1^=|-,LM.# %DYRM$"f%@O!/n 4&; ?F+(7U'nUN #" ^., $K-kiA[.N#9-Fq&f%S2"%Ù&<GG/ 3fGGLGG^0G$*@G tG+2eG+G%y#:*Qy.$2 `KC!aGPk% # ,i-J\Z:&|,X"=$m"='-,3P"=*Vs"='"=*B"=!3);?"="=!"=$SQE"=,"=*33X"=L3,|""=3Ѥ"=);I3/3,|3*V3F3* 3833"=܆3&"=v;3vZ"=!Y1"=$Sl3!3pH I0X]\pI I0 F[^pG I0_`-DWi#Et+'x9:&M-=Q'lD 7 $qKby V$*i#&w-Q6C!)*3:.K I*x]q$$@tC+}^)  Dbbh, 000.3-Kl'P ݎ%Pe2="(M' 5Z ԁ0q%v U<" /'"):$U(W Q$s D{"! z#O-+V7t%oQ%(!E(o<gCue+{3e~W"% !~'/*>'s 9'2dtB4(7GtVtO7G"" tJtCT@?t`"OUt<(xVtW ("<(m3^(( t9T("-[7G"x"'i"*3^"'(2 t2`3^tU"V(;@?(B4"RB4"Y@?(bUS(O{( '"!%%9|,*o%mgwhzg='z^g/gwCw9ggwg7wzwg7PgBQ7g/Q7ng7g-97 -g'F-=gg-gggJg-7-z7+gwww- 'wg-wPgw-wB7w\gw/P wwg -gwww-wwJgg-wQ7zwBP+-gw7=9QBglhQQg\ggg-9zg-7-wggh7Bw97gh-7wJ-z9FBg7gwwz+-gg-'n</<I_<'T.a<(Y l+ZS* PBw9yR+qU'rCGC~$w4g%"+  V&.&P *CLH 0֑-DЋ q'$M*x3״#*$qn!XRTq"5?"~))~w&$"E^ K$s(`+ }@QL& ԙ5*#C`4mB&"V&+,ܔ+@T,~a-,DR!5mk|( #Yd*͋!t |BS <^RR> u&$,RK'$4ڱ ,*B-T-L$e R($? L,K z R+A 6+*&J(qO.)K'-<1$$*t#$,.'{X#c9!-n%]@!5qK ԤVC /&%"@"&&k4'7H*& Gg)v8.-*p*"s9+{B$&*)>A%bG%_I*fJT8z%{ - (B * &wP?i!atߍ&޼',-KZZR&T!24 !A#)O' 9aC,Z;\!ux)Z - ?%)#;G T&*, ??Fj<? 1@ߨ8(ou|.A]&-7tė$qR Ne'(+O.+-DMTu +67M" %O؉ > N)(H -%q &*f:"!w(!ϴ{r&x(7#JO/_qx&wN">) Mq&)~N_!B$e  q|9  <Yu?A+{F!j~U)/ rŴ'J^P^+ Z@ Ys*}&"7$;XAi%bFi*& k%H&Å+ |"&5?,LR -u( ;{ 'O #.#zU -DF9k-ɇ&+-,Km+{#$8(q$!&)<_-1? A!w#b%~ ]+B*CHm@.m,# AQZ M&r*m&SVX*0*PR".{4T$$ٺ$ :7a&PL-?; V&$:-3"~&6 "&<#ݘ*Lp($q)vָ=5$T ?Y)zI*L="'1s6D$E,DU#!u#IU-]'7& |&'"E[.)$Bl7*fC-Y$14h :!;X!0R9w>Sz 7Ho ҵG'AF%<L $Qq'"&k:! K1$y/$*xH*6%*Bx,R!5"' 6d*3s )+.'tڋ 3 _,| &&1,<,1G]۹Y$~&2.s%v$W @,(!%S LN6T%9l(`'ήiG.S:;JW %fv'<n? Rof T !.?:%(U?( +<?(U+=('B-Q P &w( h'7~  (UX$m q"ǝp"=,BwU&OwZ$]OU'Up`+|,_X "Z !g=' o{",'C &O )g (%h9%9&n%9.!H !N hZl )ZmF%  )1uo%1vJ!E (H B)0 R Tf%'s ^)6,",")#%  <6 W"-Z?(v)7T7{kM? )  $++]y  ! O8d'`YD.W  % (U0kA@\Q),+!Trk == =M*(U<-+!,!-&OP0 )L,5FE+(U"W" vg)T! T2P" )^ 4'$] A%; '`.?tY% -)(U7'`  G Ǜ ",ǜ6u$wT%/f (U,B%R%"Y_Z) o a! ]%g? n.  T + p !!GTVFb)   +1t+r .?%%BB-&uDuRy(UH @&Os 'T%,5:? (U)q/$.?f E")`v')Yt ?* ,Bhj%:,?f,B|s %; wLDt  pf(pgp4+ybܤ{y+Uo%QKk )?B Q)(UT% 0&O$ .tv 1 Ty6(v$i (1>s_(X m2,|0,BMN!Z&lɔ)x (z/ )FC'`U - ] ֐+K>b)WcZ+aio. (!!{d%u;  0(Z _Ki 'c)} t(U~$]ox 'aysH&)`C&O 8&Okt*&!~l)i_)  \s,BY'+ +!# |y.bȿ &Ox I$pW*'x D.?A J%VG("lj!P "/ u -s"x<N? K% )c]%KS$)fl)hm!)i@ (U:@^.Vu ;Xv"," 7%ru.?kcIXguS)$hS%'  %75(UH%'4Y) ,d-phY.'~)# fLj(UUppA%(UF,V,w*'b1%{wD;tݸ _ݻ;ݼ<ݽR*9~ e q+ Wɛ,p1%16/t,"/R+jx>! &H 4XJ(U>(J%׳(UI) z)C,BG E_ HS)TT.E   Q]^F +%  h)@ D@pJ$p{%#K+[pH%(p % 9+9&: )Ē%Q!@(U0@.B )%, -R *Rr l% ,h+szџ,,Z3, ,B q #*lQ,Bm(2y3Wrz,.o<) .V$ kW l '`;'* ""|\-( 1#$W&˜})pD$% '`'.! (UY0g'`0,'Q)i's?$]|0%Z< Z>NnH&O$ EkVL,ByjA> |%>w/ N9h v,Bqq +N r!@Qr:&OyR( n cw)/N.$:?G+ 'H) +|/*':itk"'snn(UFV f(2",(X(T, WP=@T=B% M9%M ;(UM Q Tq5}@}f>+ j+  '|  ,w} S*", &O (} p)O]`*O'`P:*' / ~)#% U6+[ )0 sk,5 1ø^+ +L"*'g!̩ }(Q<kP= $.?+n٥Q٬"(4),Bd._B(Ul1x.?s$-  PNm)Nn?N .aLm*p"Z!>r.(u)T",Th9Ӝg"=8;h?)bw$L&O. ) V'IK vP8$ m8(&OXb&8'%YfC% 0f#!0g)b ,*", b:AiI=> ,5 M?$M)t{gSq8 ^%% VV[eSpbT%c,BvH(Ug( %S- T+j(U$M{p/A9tyW{%7I7K,5  aY !3m ,Bw2@u q'$P 9 [:'`ZN g)̥bp$BEK&O9  %61 (TuI!Vk1L&OX|R$J2.?6bms <[,B}S }Y1) ;'+c(Z;3",J4)N  %%O!W$6rf upWW6.\>? =f?T%Cr )pB3D @r] %ϊ,f: _!P'`#(Uu$x,Qo"/D U6*$ !#G$EF_,B~Z(Ug $A &O _J%fg% %,BU+K>+W>S3%  % T,B&R-()F  5Zl+l*W)Y|,N XvE>z'`N QhU % zq(U*oA[ FX,B 4K4 P*'S D"}o3EQ TC T]+(k`\&Ot = > @/ (Uj q.?r8 _Y+KQ$ ",$=)$A4$8 ՙ:՛,= T՜N '_$]qe(U/,B*'zP:[9 )2h ,52i|~&(U-ubPBa(Y, v.tn;(U-,Uv!V$Y,Bh;,Bcder[Of& ,5ψD.(t$7!1,?+8 )X X X-  $#qN# m3*DU+!D- KU8l#,e i*'AC+s")A3D D,:G&OPrp&R&Op$ (sS((u o1f9N)b mcX%$+ %% J )?(U@ "A} .?",E.p&Q6Ru6CC\!&"%Glv .",B?3  PH+a+(LW,5LaLbfkf,h +!o pt5"}pupv ( jW8\8Y8)H HL&Oh\$LnIn3i%Ȋ(U00)#@}3,5Qs&bfskX(Uts,v  !M)N%( F)&%Z I%[m)Fa -p $(c+!!) M$֧M,5T}%BK&O\!Sy!S|=(U C y ~,Bj*af ,?;%(U#`pKMO R( ~&Ood!e5&!u{k,B6'`Vc'`ǿ { %%b$n  IP`l (]l ,!|+gM,?$$ &!1 ݆$zq 5W!E(  Vf!T T  |;m.?se,Bt'`:V(U )g%%lhJ i,e ", y & &66%co"n +( ,(u -!y ?' P) gg H +N7L]&L^L_jz 4>$4@._V  oU(V(x(!o -&O>*'# T0M0j+! (T /$] '|Q sl$u) %*6I_-T(Uɸ'y_5 r T5&OFPEFb% +!  7 vw&Ou/ g ddB)r(U*_5*`U,F{&,'bnK $yL "Ae,? (y9)D;$D-  Ib[/ k T/ ",)@+v$iqiuk:p'\$а|+"r&O^ :%er%5#.(Y? y\ ( &-O( %Nc K"]F %J$d .?NJ!4s u  N.?82!'cCV=CW=$] MS N(US   .?1}~  2$~$g&O{+&$ %7 7X&"H? Y&O.(_ w8+!YK(!% yn4?l lf<,o + .?gq#&O( ( "o@;, U Z"f %.=b,B  @ &e)&fI"/7 G z!@| >Xksw{",|)D\ W,B T) &-Tk$=+ &OL{)(Zv$d yxnoy.?}v@-@d+ C+ (a-P,g-Tr{*&{um)W ( |&  } x(m,o)=)"-&Ovn('2  M *6Q5At ;x*6Qp$&O$'%#${8l7.?:V.? A(Uq`;YH<YI(UF) n-n 05 ZQKi )7 L .+s/(6 " H{! JM&i (!5e)E7|+p_Bt*l#"(j&O4A) Y,B,Bo  !" 2y- f&i [1/m8&O, (i.%. g).(y{_",Paoz'mE5+ķr\? {19 e %M)AO"AARe*? (UbJ "(q)[*   *2/ 86=)F. $ T%wf?j3a B+rA'!.>˶˸?˹H.(y0$-= !1(T ~!  B$+~;QHq&O4 _) z%+s0xp%IM v[b\#+ xJ T ,B`'sVOe'`-d$,5 ",)):) b $ (o"y@"zf"|>o!22a&i  MkC.?kD`$ Q%% Gtu~J/oW)f (UP^a(/Pai j 'e&"8MP,B\9  ] ,B %*6 &O #%UJ + ,Bu(E%(+[> "% %7v*'z ;<(!:OJ! [e(L%_ P D\ ;&O+itN(U '`.u TO}&O,B|+rB TY)7m,"/G!X(Nj (U#> !(b#@)"$Ah3 = %$+ :Lqg/&Og7" ,M.?RuS'`vZW'`1c!x1h) .(G'` _.%- .-^),5y(Uz>(+ax Xh1z<$%+6Z+:q$%N5TWWm70+ &Om8'`"{`T2'`CT  (UT" w*'kI b_~M)Y  -'d)(2%Dk,B'f 00&0u0'*' 20Q%Q ?) |9 ]^PV.-=o  ) 2 $3A5 )?6zB8Cz )<p5O,Bl(UրP!-!b2;(!2< $]] B (U aSF  *,5 :f+!KV"K_LC3W ho*o77p? 7q&X $J  m5/@Rf""+ @,+iUGo .._++t(U i:  !Z >.?p i"qp4/qO(UPV0J !&nշ'չ(Un~qA,oRuM6'`e,!  t.?}e)6Z&OK%G(U  O!W$: (UW m6mAW E?s&:hOW%wh~.(O kN{+L/!6 4 J'`ܐ&O;<,?D,5gE+!2 u\q Q^ 0A. !1 5p8AmsUY()9d I9hC"Ac'`ZdZ!'`;n-U W%%$ -5   z\|w~$y {*'_9zT ~,@QY(> lU%]{_(D(U: c)KZHK =۽:P3E3F(,g"/2+ kw $I;,B^ )_Rc ,,Brr!&h^) !1  GT%>$_#CWB%$e%h4,1!E$ 3EV1l_%-=)=q=B)0sV'`Wތ`)V27z [_ ;'`\*[q[t![ USx VDh +iSjS(U FwOq 6q(b&Z79 H R,B'4Y&H  l,Bw@?" `+{T,=M ) `9 f 1&Og (&O)'`%tg&O7 :R!xxp1B?<Ra$)?x+t!^(U[ t %\>\-f\>>h?> &  F+p/&Oq$&7 .(r06oh o(: n%1V%)? ")+nLku,5kxHk< ~+y],zg$8+[ W!_ +[{$ &OnVȨ$0  A)"' )F~(\,?b"H(iV+t= u&%- .D=:<6,fAfrE%~m !ޏ-6d F}cW`Wb j )=$BJ)! (U!=  T! .),/P 'S.?j {{t},5 z"f|&Omy+y$5,H %  {+m'`,!v(U:<: 3 +s zs s ,;",_,?d<[. gdp] 57=ݤ -ݦ(U "s+ a + v!n0,F8*' ; !<:t)J,BeYH\ʪ%:6 *  [ $mg MW (ZvwY/>q.( 8!{(UjO!P$M%k !@{)pi6(Z) +rJ}(U9N}:"<hL p%( %D!Dy+  4 6  7 P-Tu !- m)A}])Qt+u",(w \&(ё_9 9}9P'`ZR+i$Z V W%} X% % 6Q? i"F| ]F',UW_ X  l \%S+iT._,B%OK!itj-mgk*r#-%*MK;JnKk.?hz " ˄43e< ]-d$éB!1$}@D W&Os8%Z"p%Z+Psnx,\0(U$  %EfE  4-t|&Ov-x > (Zh )(UN(UcqLf=) :uh:wQJ/)Jo!y(U-9!2>ӓ x(Zt@",A%Z?q? +*'%3&O`&g&Oy Ha"&Or Q TI+n q ':4b(1'n 6D -N)p/o, {)q-MOpr3t ( )I\",Z)>A+Px ey %w"* '`J> !(n%OLQh p& r"$&f {'`߷N.?{ ߺ11)0(UX.m l Tk#}%3D1(D5n'D/  !!ub+~= hZ -$z>!5-  ?,51: A /W SR:)(Zsl" @ A.?}J,B  C(U1 q( f+{+ !{-  q&i{/-PF PW %( +/ %!/%w+K.?$]"  ) @f|   ~+p5T'8,$E%8Av(w J $n-, @gr< ,5j   QbD! %M&Ogah͊G.?q2U$>5+(! (UV4(b,Bl@")u!>!Ş7!q 2r B9 FSw A!!j]#-IOK!n6+f3h(ۆ;&& T&-TDN X/E)$/t% x*' ` zc(U@N$]r "r (UJ)M)+} b$] Ȋ̓L$j4M4%.8VN'`  L!#P+)(U19A4(U L(fR=_S.(, :JByO,Z$%$]]z (6]-*z", ] W.mJ,B > ?8?;G?O+&Oh 9pmrV5  L(Z#a++]zhA TU (Z!UDQc P9+i 2 G9.Ie< |b m+xUf$$ DE@%K$=$ş+hF1%η θ'`,Q-*D)CD,B-f-f/%|!F + *'Hr TAx kV!+ `~^z'|~GPRa&aC(i= s+!8o)?H )+ Y XL&$/N*'2$wPI U$!d] g&OQ %=N,5-AO$1&OIG"B%  )*YJ?N(U*vJ@ b c!V ! T[5%2Yڰ)lO$BNwxS  M(U!. ?5+aG j8( mfn%(hU !3y GI$8,5ǫ&O %*331&O,+J.?R T D$U,B? M&O@a%U$ !fԷ%Ժ n < &O~-< gC `(!/& $[96rIi.?H Z!n)wg R(U!%c^sX#ms$(U->a g)?>e&;8ζVAq& +!& }{_"}{`]G,?W.?x {HXmO9mP$vH(U" f;3 1%C 5nCC` t&Ot ?y {}",LL R~"C pjpm)ܰ(U'{!1'|0,5 I %[F I? A^)*9,++K,Y&=y(g"}n(U %&(U5M .?o % !!PC~!j(U(w*L6 ;);  0A%Kw jf\d(%f]&Oyv+!(U) 7!5G&Om.XYH+ 7!PPp  P%P,:В(U,  |}., h)<+< ,&Oj 5V!O k) Y( l BXtu | ,5+su()+V'`:G +o&Oz:J f#C@(k(U6Z'`  * m.()0tIXA=mB"n&O#*'a&f?(y +|+~  <h!ry&u+4)+6M Q!@*'plF(Uܭ`%4+pܶa T4.*s{O'}aNup I  ,9AIkAOpJb&O|4 ' )ɤ (U4(U%E1)?: ;),65 -=(UFNFOb7'` 9'` %֗.>  %OQ&',B(U|+P;0;-l%Ks!$+or&^K'`PD w)-)??,I~o/+`^!@n-P L.?if-&Oii'O+ 8 ef/ f0*)H{S+$:H}/T 0 *:Y%+[S%5% $ TpVR+am-7.?u7===!} )g0q h(b i.({  w)y&iy[S(UuS12C:l )C= S) $]{=U|%S (n>Wo- h*'}YO & h-(U '-h)' '$] 'Y+R 7YV;4*&F% S ,^* q(1!  z M_H-!} 1(,Bz(--8,F .(L-I!>bx h1 ,B,*%-Bay "}v) c-rd(U().&" .*,B/>>_ x%O 9*'p?&S  ߂j7 h",Gx,LjXVh * "&OwT"+tf+R/<,)'`L"/(   }p'a,h8N^' LZ%) b]_sG R  ) +s9K x.?G$] ("}vH-| T% (UF*'%v?.(9s"   &(Zz: |8Qk Q$+!* "aZ{JpKz f(fwB  B+ *'mw$ؑ_0(+ w3(U@t\@j!3+[|$Mzzv?PM{`Ldgw$ V+d &O %w +u fwr(U( !RR x))#}pu) &O&O !s "!h-(U!Gy_(UXU*U׾P W?PN'% P QR! Uk$:u|<s[ Tu<b(U=",o,x&zzE PH% '`ěS ,Eġzu!^R $z- $ w "*Aѥv,5((UL(UJ  u,B T_[ [o!%s (W.(m)?) d+1)>2$>(U 6 Z&H '`)(U;h;ke8 ,v'`- "/e!k !0# (U@  T!!@ 'W(&%U +'`ZD +Mz( u % l % -_"?>,)",>-   fY(U΄J *(UJf"_x2[.p\ (T.ө_&O~@(UL (UR.)POC%N iS,?!8/ W81)?Hp Ws -+#<"f( yUu,+!6,5T=JK)MM .1=ͯl(o9b[+@zi A[ mU+  & ((U& ",G@ 6'`7\$B(U GG 0X$m)#'3(UDM"/DO'` DUZ+!T/%%x_}u( ,5++=*&L 8s C '(U9 9(U y% RZq,5>Ej6(7) "9-",[ J&Oq΀g .)C++W P m/"] @4 $|   D $MJ  &O! H+KL 3Si -y P _,)L'6n% $ q.(!dHXQ n5)sO+,1,,S'`  ͮ*v% -Tq>&p nF "A2  TV 4,?P @,vMmW!? H 6J &Oj! NU* /&}A.?. ^:ro $y~f )fK?["3f@][ '`'_7[vYWG(UX%v%u/%  F5 P&"fc rB+C+" ">F%$MIUzJ Wv_Y%4%8A)?TE\W#K$ S'`5!j4X": [Z _[[ [^-X0"E r)% '4 }Y)W ? U$:9V:ƨ+ O?Og! h'4)%&O$,5$ Xf (!-#& %܀y(U3xW܂4  M$k  uS`uT  *')%h0l ~~AQ|x%T'`o(U&|!%Z %)g%k&KlOo05_5 , -", {'`- 9n J-(N %N@!"'#(U$)h^% }*,?*(%:Ch*'":(KAM'$B3,W)?ۧd TTff9 + 8 M/ .?D%@; 'EA8)8 & $ Z%H( %ȗ 7i*l-.],  T4% )  }J &OuRդ=N(U:TK;Je[Jh!x !P(Ue(!@,?B)'`)[OB }A7L%/8(UY*'h N!wp3 ADU>  mUF Kk kp&Oq(.r(1Z < {(q$~!%MD.!dt!X)*Jg5*I_%Z .02!'`!*p",1_+xj+[ \R# h'4  T9! %g(N 9q _&"&# 60GBS A<",3'>"/3(^"3*&O` 3-C ,V}V~%|W G7 H%;+W8)+Y3+t Z ]+~w$Li|f(l #p|L,5I4 8 H [|6 L}#(U~53șn'`Ak *J(k~@(U)?QQ$kz,5)"#% r .&+~ $,5 I&OZ +c l4)l ! (Uְh*'6ֳ,'`Cq7,Fe 5% ts }*' _r$]y y%7 6GP!$\p&O*'wq*1@0As#5$)#!&Oi{ E%л (U,(T%,))G<(U.?4gU q!$ $%5&E'`b ,%<%= $j!6 )R %x UyR Vf{)jc + )) o:f-}  J%n%;P "P R ",G@v)p\+ 4A A[(U? v?2&OG9 V-|i,iIf  *r /;'nqRp# (UUq(0e0~!3&  (}An~'`Q|i(*'{9( &Ois*$ %&LV h! - 2!v/֯ .Fd&">*O0  h( IHX +!"{#pߣlfo 6"{n 7"o,\3)GÍM,,5ÎÐVÒ+u ._f !-~P>P?_P6%I :~ .?+~[*6Z $ )l%n ! + ) O%7%-bD)=E==& P'`Q)+ \:b^_n.(oz2 %) 'PQ:¯)³`$y !1+ s&ii W&O)HK*'t(UYQr&Ok '`^ ض%# ( 4H!%t f% <,r A)$ #p r'nq&,(Ud.e  9z% ( I",Z +)![K!_ "lT(B)4PB+| g!%;" v(Uҕ p,? yҝ f (U &sc7&Z*'6&ENg )j ,B$] K(U3L ,(Z%2/(*K'~!(&+u -L)=*._i  +z,(z-%%z3 j'`Isu'43$ns~ـm Ifr4)Y\'P -]$}, Nl( %8>% ,Bq))\F%FF - 0$ @*'(Uc(U2 ",o+@%S&O-:\^yt|*~&~(^.(K,B ),B'y d$] r&O& S S,Z(UHG++,fYTwزZ.?g  ,B*/  9%|?0#E++ (u%Mm(UqK+q'! _"v",5o(Uʼn&O"+?y&O&O":w:e::KX(UK hB-f(Uf&&q[- RkAPB&XpXqbmPh+K j$,5'`",LLqo)$ Xz2 p4.?=@lPwl5 P(U,u  &)AB9 Ng.(j)g&O}2E&O}4j J+kJ,)[[!+%vڝ"}r,5bC)F]",m^o :A.(rE [* k"/;-)K Qp.N ,53)EwF)K.?"A_U YU "/ # %oԞ -M + %8EZ>*$],Znf E v$ŅŊ)-+!@$v+0(%%h< %rpq).A;d(UK ",#qfIo$$-"k"o '@y8 +[y9&Oy;)z-(U=Pq'`g ir@  /(n+$ )8V )5H'`Y$w="/*O$]aĿ0us5 Z'8 *'gpb"aACa6 %DQE%$ )2Dk)SO&OBa'jc(-.u% |tV.? .A -O5 O  *)2AiB*'({'` d!+* &) 3! 6(U!*'&O~.G  DukE+ *$ (bK M="hf{Zr(J ,Iz% @ 1o",F$:,A)[ %,)-oa1Vh9 =,Bq !0 nI47pΝ'`6G2.W>W ATkU,B`]!8 J zT(  )T.~o'`<%$W("/ O!2;_b);;=lh(UL;PT`$ x'k,8U-%8Z 5(UqQ]Nc $&OY Nv  )Z_=vP=w \!7yg`,BqNz%5!BF7 *v_+BSL .?@3j  Xj ))*7 8F'`K`-T ,B)?7v*'",Gf 'wB..&@\ 3*1uP/< <3r<(U%wg:zW p\ &] u(UEkEm'`~V<h$ ,Blg ~.%  s1r(G|m '`;,jG' %)_.}h,?[x(U%[|v }.(6:%G(Z\) .2(UP V,Vh7 \h(U +K(A @L7)?  y&O= ܛ ܞf%D/",U^0Ua(Zuc ) 0p+!0Q ~Q'`n  3%(+sX + J&b|n% F)I GI I#Z!(U%2$ c9+)5 Z + z+@z",G\$l %gC*;7(= {F,F ) sK^-`K_ ._,Bo"3M "iC( ?(!WxI,~+ /)Yg@`"}>-  dh' \(Z|u,cGH+J TL**0%($V:-6(U-&^:>q~" %)]? T:8c+ ?J%Kc)fp"2C+C&#-*Nt] ƒ  Xt_j (Ok $v\!+oh'\@ H#)`$4 1A+fUb+ [&O+km!,Gf( <)Mb Mg#",h)k o Xpf7+C#(]@a!"Ɏ!%l1D# &, @9" !dju b'`. /(U. f.z"}a+c+e{!&D 7)Y{-XGa&| )Gc'`8A'`"p%L&Owצ)"1+!t+\,ZkyV]2%KBA,?(U g' ) R)0+Q w!yJ/H)A 12A5 )Q\+[PQ 'sz*w'`^s -!Z+4[+!5{(U7 ,hG (mQg$E5%.-z *'{$j 'c'l?(Ue"B)H ~\  X S"„!(ZP? p=:(U& Ay +$ g(U7U%V,Bl*A x$:}[~7)0*' RpUX",QQ%&O|!]$]gj(Ul$G),q  Rt3l_5 -$vIq K< )E@{  a"HZ b W[a1\(U^1)BH A(Uoht ,+)&},BK) ](f)4K,56&OJ'` ", $,B.(P /D?+o[P;4'`@Uj'`"|- " &Oy(U<,&'`L)L +@K(U %+m4jo4m2$7%?Č& Pč,Br(U SA1 ) esw9 0)CJ%$Z)np6 YOF W&I  (h)0L,5.ew(U+ ,.?@+{3 rv Kw$ "}'$,3D=D? *'Q) L%@ @  <@ i( (.( o |a.? J_:5@.=o+ r a'`E%VUN!v&O9 $& N 9  !l(uE {4L(U&O(<%2.?%e8.( (f"Hh& k p {R!?R?.9 '`<$ $in Z(U'A_.(r(|&O -$nd,Bw + wH- 8DSU%ċ1A,k,k=2 Q (uM u"W2#(Ue% %͓͔%͖' %J8m )Z )Z 2q%v*'`+ S%  , Ҳp>OW%uw r-5'`X[+'6mY$m#%##+)$(UD> &+? ~p !u+ g.,%K) *'pd (%4(UI(,#!Z3! m!1  n  ~AaRH  99 >2(;s& jk(U--2+ t! %Rd<f",>QD",6d 6g ),)+ 6 WU2'`yG% &O'> *6d -vtHm3 @)/+Qn %[% Z)"}i\+ 5sDp#I\)?M$ " &;[A= (p͒ tA ?$ W(1%Ū/+!!xF! ''  vҳVz:G:$(bpe+  '!/ !0$%%s ێ&Oi.?[%G _(2X `)X aX &O,7'm J2 *P kf.QiCF(ZeQ@+ M"A 2",c 4#r"L.?"X$2"yV +! C  Ց% ud1Bh-)AV&ORCO$Qj++j, R\)JI +-hJR #6-o<Q)ڶ"U%ڷ(U %6kK F%Wu T%"  ",?E'O<(uO +h ;SL r"f #il a( o+D}$uN)]F0`+:td,hAA(U;ii&"(i UC IpKn nYZ &O<x[# \.,e59F - } @Y -Z  -`-v@vF>pxN 9(Uy)hR{.?q:G+$'(U   B&O)ۏ1ې&3I( )%$CfC< 0$.GPP HR|b%&O7 &Ot+nH(Z!)w %X4.?lH9P,(U,( g'`Ւ= j(!="H%N /))47afcefJK <JO]e!2a  *(xB5~&OWX Y) j kc$]OwZtg9$%i'`..(U?Bw"3$]]p&\^ 4(U| _G:P! ([ywbhwe(UD )U-C<_ ( M-%@M1 ="gIEF-  (l  M9@)s4(UIqZy", 4 nT !@n   p*'*'Q6h%KjP c.?!du2}{q%-)>l9 )NxhPk$9!G)Nq (mW(Ur E" o eC TM '`  &O2)d R"|!~!C +;";(fBf  ppJ,K5L(U6!&Oy!t!Y,B ,: !0$L? ^i=H'4g |y!zJ*6l&OIJ+oJ+NF-g_5d)FY+ ^MQ,?7W72b *6rQt B  5*W}#.?G X'`(ux)fX%G IAmp%F'\ p ,B,Bh,-l| T<c6<, 7M3+(U;y->.? ,5 5 #ApOV`pVaVb6&$j).!P u"{1%KQV |fRM)&O\"/:Oc&O}| f*VJ,Be* ooy3 T@ h)6D6.( G.)G2 [*mX-!/ O ~=r'cr\j%h };&U^"J L ~dI ^+ + %  '%0's(U.(,)Tj%I?I %Zn(UZ -S!%M B (Z%'`8) '`vA$֝(Uo,5W &Oh}w; !T K~? KAK Io o ` P)a o(d(U)0 %m(Uu  2  T5@vk% Мv'{Р] T=H% ngy~k ,'`01 ,lx,Bu)-E)0J M% (U=*6M!y(gz g`- (Tq ){)h%ʄ q%"$,5 )š¡ e$a~"? x!OZ)% --h9%K] `c+ y)؞+ w Lu( `T'`Dk) '` 2"Gl_U)g  C(UR V,Bw$]z,5($] &Z%),n )ɬW'`!K+!!L ɰD(U1&2*6Bn$] ҆l"s)(U )7/7 Y!߇ @&OvX(U" c(U3m)"C&Oh}d~$ T!}) Z  k&Oo+[p>+G<=U L/Y ._%'+!' +&u>.?&O Y1%f $( %%W / +!5( V(Ts(USX"*-H%=ReTi8 M! 1pIX+q&oWx""9CO='c! '` uS™! .?t'`.(}˰y2[ #t !ZQm"nO\q@=)" ';+,i SfMug| g~'`_$W)I(U )v (U,(en+!+  )af҃#-*_'`, :'( )3L:8,Bb &YV&_O\U^ A,f& 4?,5??SZWIi$si& -Tr%<9s(U<; L X)#;-ocz -z!.$j  &p _ " -Ī_  T 7)R%!4HR <jU(U)U!(UJt[ (o)X-Tx)x'`%'",B  FW!d GW+|- + m  $jR fTN$HZf!% F$,) !d%Q .@!,5#6 ;(D]!+ ._kfԍu1/0! \-.&%(8 9 RZP1n j xD;5^*'b&Ov!$# >7 '*6p(U:$&O#Ή G&O W,&i0 TT ')""&Ӵ*??8,B; @~P'bi%  i)Ii+ 5(5'`8;+ k|A $YYP(NV*'n.a(Zw4(UE T C UĦĨxB X(Į |(u=^ g>,5ao a ;(/) (U*)9 %2/!)+{'%[ &ON *62* B@ '`B8%B&O6G! /pq% G,t .?} Hurv>(UC(B(hhP$&&O{ &O57e '`X%$Mǀ|5&O3&%QM 8p :k%Sԉ #w+L"*   QL RPfA+B I? S}!_ ^+Rgf"A|* P"sU%+K 9+zck ";)>4)8ht)N)h+!&("*%j T% <&OCK$j$m1 '`ƴ ^+ UC` z(C'`T & +  ,B~D ;(UZC1&OpR By '`'X_''[!@'cD .Y=$jY /%Y 0v0x~o0y0|(U~ +D#u@ 5 P,+! T,Xi(UrM{)P3%;gͽ w!zE!# x+zG5, F& ) :! ;!v7(U20B !Oi*'P 5)+C 3*'Q(q 4A (1*'&O2s}]%x6Z+o,ybY$ f$$X $/ B(U4@E/,BP)'`p u( ,:+ + Y$$z'`L!p!$W!zP[%J C4\%O%E[I7(UD(F,5H&OlY  ) Um)0d1Y5A'`A&OT+nS'`E j+ B(UG}om$]xX(x .?x )?SFdF$]ZP(U B%Ƶv|.&OZ?j O-h _.(h&AI~ + (ZG+;i'`<}( ;!x o"))h?'`4$yaeT,5U@%0{ _?*'R +v i+%",",{ T u-5vw w `(T %$W%r!vT(U> C)(Q )hb 0+ qi-+aZ!KL`_,BF!o^+ # _$9+!}*Ts<$>+!>6kp" %3L~{p/@B f+  TZS+o&O-H OYJ) :$SR4! )! V) s-  t- 1,BP(U^;i-D\OG-z!!!Y E $C /!@&O )x'`Ss&j(U  p! (.(U./.=&O~*v?c% wZ $]h5)|?ϥ SCx/_0$H *,5;j+mv%  4gww#4'+!4$\2 ]D/UM#r k <.(RMH (U v*W8qq$q+z{ !z}+s9\9]e,B(Ux;z (U14+!1&("BaF$c*vRCQ>|&.=N!` &,_(U(U&- H,5&/  T&0{vA%6.(GL !1nGMW)%&L$'"#-37 ~ijk  xW3<fni$]7&OZ db(`Tp6 Trs-Tu._+g If,{!;>)?VI!dp(UX" %U uVs (@Y4 ?Au $p~+[sz\-@\}-%-oC6D!FOM6G%6L WS S %V ! swf~n%S.?jB  A($i;=v+;?!"K(Y 6&)y%{  '4M+E7.?9)@[,B{c'Q%Q W,i %MAsBAy 3Z-%,5+MS MI  MOH%)+wV= q(U  52O)+eE'`KwR h&%():o*#M,5CDw!iE 9[ `+ a), )- "/  h&Ov(SIZ(  %v;%Lv ,B%'++< D. D.( X-l K&Ou00T(u DEQ+ +j+!  хц{",# ^'`4(U6(% (U.R.T$: + &O< O=^+_B*t!*z ;:$K-_}  D+  ágje@ (UP ).?!w=P8J%8A8YT& Z(SfF.(x(d&O &O__[s&'`N{ 5!%;Z!gh z K!Z ${*S% F%(J ](ʝ27&IS Ӈ-t ?P( * S)Srf-r*N-J(UK >;$ؼyL",#Q2C&} '`U( 'le"v 09,~'(U )*',KF ?)%A &íjp͂X+!(&OR(U(U&O*, R.o ` =8'`B2 \] (} D(U.UO;.?O>fc.G (UG+  _Xt%u w! \j h'|3D')?gD, ++ Uz  Ý+s!~1,I~_g \ $̇z8","G's$'+.   g$ ,5نو&yA R/(U(U,Bs}B (p-m-(1-nz S+0,5N~5{""{% k'`6PTF"az  x?2&S6 T w  rS.?$(¿?q  .,y z+ HW 7YZ%0M?_IJ) (  X,'.cY$&O+&%g^g,B*!,! {Œ U !ePJ +GIE.Be-t&( <))))V <: )0}*6KJ*)-" H},\ &pG>5fX{X! '_-&2(s i9 J(|K |QF+!2_E3] l= %",u  qv)-E )R1R3,5 )9H'`)J8Ao#* '`ڡ b% c(U%;(Uڤ'`l%F " {y%.. 9pO C",M,:i)*o;f -; #0 Kf#YtZ $y'y3+!3_A@Y$ $!0L_Yi&5 [,Bi(R'`(S8Ps;.9+ 9-"# mz(1Zf V z0oZ[( $, u/5y(UEő !Ŕ_G {v0 ) +!N t% &O &Oh?cqu){WI $.? +.?l-,)%3i yC)3"C4"a '`W!/ ofHF V!r,Fr'w .? _n>yV!w\+fw+[|U Lav,*,;+!$&(G9(U !(UR+ 4MP[+N3[-[/S$ 2QVǸ,LR|i) H=& Z)J^]I* /մ1'/'HY:]9#R&6u`P[@"L5,1K,w)R9FO"$> jl )LJ,@WqK)"L5s)KԧB)~ -D(t'$q@'A1$D1/(+)Š G,F(Q)6;W Z&* L\fO#3]<(d)]-//8b܎V!Y_PV.~VL.# M3_ N*^B(J  e0l&Dm=" +$! BSyBe`PT F'/GJv"BLU$q'-D"tNrpl9Z$q } p,(z%I,چ%mǣ%.+ &,e.zYb|Є8 G3."pN-N%$dP)B!$ x <$,'υ@-D+ Y&8`,+9)16, j$q J##k%+|%T',wť$Qt! t&, 'M$ !**0K'(,9dO R8! Rȍ',V&-@GdWG#'E Q*$hAHc9 N] =R#V$]$ H! $<OD]-#%:)X0#4$(8Z"Ś# LK(%3 i;Ń".3-)4ON/q5-E.|  'v :>#:$c#"+%_q*I9% ?2n(Z#'g3-8**A Q  +z :{*#vx)8~# !!U?,h31- ,#@*.),N)T(.VrM-' {W$ F% ֩(WQ+x cU.6~.yK+ z(]b4!ŗT?)}r'et&  },<(!Z$;| "$^.ю!#j#E#%  .(M"c!`Z'F'.\G sC Ca"To-,6'12l3v>Y,&P6  l!,0.)Jy (q#r-)vHv; -lAMS,n$$u!&]5!>$03!~!Z*.V-g-2å_S)qX'L&k!)MM)f4')%#3 U3) *o #w7G.r*Q*C/Vv%D'wީ&kC7"Rf'-$ N Wx,u'UE $(| N#YzB*71$"-rգ'7.P\ \-"> 8iM=(`B/$C x?]$!Vi(-ZɾmS)­ |Xo45 6Bk*Yl) \?"SI*B<ǎ$Rx0*f.14V4 r.OU[3T.%Q)$OF!{2wHD/!i0 P"&J%bZ-P( |!'<4& 4RA%#0\%c #@.&+Zw.TI.WF'&= 1!B {;$q&%*$("Z޷,H5c}R-!uRcQ:/.&-D  qĤ  =#ARe$$ y/)mլ# *O,C+c;5.$=$"?!P!..I"~ .L#1q,K"(&v+rvڲ:%YWێpާ%u۳Ex۴A4^ݴܵpJ]/V|#ܰwB91ި@BY]\r*ݻq޼4gNLnPu23ڠf)u_M8znڶޓ#46څ(ܐ?ݫ6;m>f۷G  ܖ.m2ނ ݬbhtoݗTޕS)rs޾ ^+8ۣݝid&ވfڎۛۜQݳ*ݼk[ݽS ەk`g6O ݦ/& t݇aVN [Uۆ܃Bۖڰ+(۪A{4ۋ;܋ݺH޻OiD*j9݌! ތ+PEB{3ޘGgcډڳS<f796}@iL8=;,-!k+ݛgjhڡ6DH[ܦ}k;Hܶtڔڢܱ۬3Nlܗmܘ|{ژq޽`|8Fh7_!rcݷ޶uܻ[ڍ0޲ S܀$W۰Rݭ8;u:JzGܬ~-v"ھ,$tGA݊`cC$ܪܫ݂Hl{;+ږܡ6YOk_soަg/W[ܜ!%p5ڇxIDEޯڱ یL@0qr $O7ۈڥڦjhړ1vڞ/5x*DۼܤbJހlyޏ 6F~] ݶ|WlAe܈D2*Q;i/Eڴ;ݜ0  ܏k45MN=ܿEz0ݤR]ڨyUVܲކ.u/vJKGIF>Lۧ <nܒݯݰ!ۢP^ܟ}5MWNګ:5ܚoۿ܁tT R.a5b6ۓ۔:L9b_[R%N0ޣڪn<==Lxܢۄۅݠ,ܴ/- މܝI!ޗ.hڈ9;a N-rީ;ފCHZ[mޜV}ޙ[\yzICY {-ޔVe%*&+E ސ=#BmS+݅j@'VQڮ $FE =lz{9KYUݞ~2ރ#FwڭxگS#x$y:# ޿ޠRs޸KjX+UI@A]MN+J6(pZYtdX܌܍ޥ%Nۇ2X)۱;Hݱel8ڝZ ܎ޤIv?7UGڐHڑݵ޵i/e'd]f^KdޅNs``\o]pݔ #,ܣI^ڿPڂZ7xڬ"8ލڒ۠c{ۉd(uڊ19ڋCۺ'wi~ځ1 YOP2fLKr|k\hte``\-Q܇ޝ7hܷ*ޑlV%c&~fkڣe`VKPBs޳<!IݮyݑPQvR  ܉݆@ݲ=|ے ^,-ܭ/ ݥW>ݓ}ޒThqۂ7?4qOBo~޴ڸ%& ݿg * !)ް*ޱjݒJ."'xMۍ&cݨ p#hl06o ݡ^6K ۗܔ"<Z)۫(E!Aݩ8JT$q yNX]O\ڗq#{S ݢvw9ݚpڟܯmLa0+rsڵEaT)j _&w۶bޟܹKqwQF۽md1>ۮށ)ܳo2Q34ڄ(=E,ޫa ޞ{oR@ڕAܠ>ޚ(*PއtwښܨKHw^\jpY73G޷ ڼ DXX܊j>nۚUeM0y1zJWbjbG8݀v݁ @uIݘw۩&. wZ,l8܂4c/sd۞m۟ܞ"ڹdJ|ݙ'oڜcܮ}?X1_7ۘ$o<]H'| Z݋&۵ދk(Z_CDD2?܆>\Oݣ&'Qj۹tasڀۏFݪ DݕYܥ|%ucڧ2?ݏTݐWhi_ۀRۙxz,iV{\ެt,mޢ}ܺ?DK ݟۯOچ!ۑ@ܑ.ޭ's$ܩ=Sޡu?Rp'dSeۤL $ޛC3݈,۝{ܛ}hOPݾ c-ބܓu) n<A`B޹4ڽab%f!z"݉zL:7܄S۲0*1ge{Wݧs*ܽ:܅l1fHގfdK" ڻ(K݃Tڌp>ۻ[:ۦ(_Hڃ[.ې~m ުnkgݍ<hݎ%ں@)?݄3ܸsEܕeX.rSxCہ DcUF3ܾTnڙ(ܧ~ۊuGW4n:'s+! TۭQnmݖg۾"Va.a0 ^ oi?۸Hۡ4MS9gh6`]کBܼTܙtNڷLn ڤ}-~9ޮRޖڛۨ> qm< ۥzݸݹۃ޺-kd9eyrڏv"1,Q _&(6b0a0a0a0a0a0a0b0a0a0a0a0a0a0a0a0a0a0b70a0b0a0a0b@0b&0a0a0b0b 0b0b0ay0b30a0a0a0b0a0b0a0b 0a0a0az0a0a0a0a0b50b0a0a0a0b(0bA0b;0b 0a0a0a0a0b0a0bB0ax0b40b-0b00b0b>0a0a0a0a0a0b#0a0a0b.0b!0a{0b"0a0a0b90a0a}0b0a0b0b0a0b0b'0a0b%0a0a0a0b:0a0a0a0b)0a0a0a0a0a0a0b0a0b20b*0a0a0a0a0a0a0b10a0b0a0a0a0a0a0a0b?0a0a0a0b,0b0aw0b<0a0b 0b0a0a0b 0b$0a0a0b0a0a0a0a0a0b+0a0b0a0a|0a0a0a0a0a0a0b/0a0a0a~0a0a0b0a0a0a0a0b 0a0b0a0a0a0b0a0a0a0a0a0a0a0a0a0b0b80a0b0a0b60b=0b0a0a0a0a0#J<=߽J<*J @ @͆R7 u.c,6z*3,(/z(<$.&9X J`Xb vNX pX L /W#T0Wuc|X a|.&X 9K<JW 3 X rX O)8X IsXb5X J1PX BQWtJ8WBIX jW.(X Z^ÉRX wEXb @X 9OX >5qX wkX Z=]X FImSqW9ñAXEMRUX !{BƓX IcCWMDfWǙX DPTuW X QzX ;tX KGLXb1QX ["+X &.wkX X ljX rNiWQtqX \?WfjƦX /sȠ X J0XbcX $\ºX ǪXblIaXWvŨX uK;W.-_X tsX F9\X !X PYJX `FWIWbX A-X IX aJhW]X $vX X Cz/XFlX eX ?QX plHX XbHWJ[|WJ@>X pp@X OXz*ãX 7J|W1X =2HǿX X R@YX 1<hEX %KWHvĄKWX Iä%W^yyX K8WX IE-WJ4NY}Wz{X 'ƃX g1X 0JXKRsWiB­X .X ǑfX  X xn?X X FgkXb>xX ]IX H^)WvX Gdž:X 5iX ǣsX eȤX "9X 3žP/X 5X PxCX K5ȮW! KX 6M ĂX 3WdEX  ƏX [>X B$X bW}X TX /DX $JR4mOXbeX  X jp~X B2X K 7VWqX KrWeJu*ėW£V7X :X &3XbW'VX s#UX @$a^WChX ŠXbN>X cFX ?X PX 6?X ^9WaW2X K'X R_ 1X gȸorX ^X 4rX \X qBPWP FX mX /nX 02JG|X B X  ?X  X LeNWNWkPT.ħXbiqUFX d:/X pHgX XŶX nEbWjZX <H!X VCX 6ŞMX  ^ÊX X *WWX &y-X }e.X DÿW1rX wvX \i^X  GUX %Xb6Y=X SX wX I'R6X h(veWvBCX !2DX 7=_X S ȭW!WXJXƖƸZXb**X .X IMWPf@W X `e (X UdX  ERX <ƩŒX !J<\W&yWY'Xb<dȄX 3íX IvW*/X YŦX j_X >X 1ISHȈWdMX Ob™Xbw:X  T+X :{VW<gX ØkX XbWs*X jĜX I\X gX \\X IlX FX hhX %X `X \X E?X gEnfaX  94X X hqX G¯lVX 'U'X =iX ljX X "=X JēLWfX IX yp]X 'R<X JFc%X XX X 2 ƨX 7xX  /X Jw6sXb 6LOX NƵ0X EvX wioX X i@X '^~X z6X 7?X _9F{X S XFJ@ W: CX ?X  JRiWRzĻX t 1X 0M8.MX  ;`KX X !BX VFX Ax\X #nX dWeßCX .X ~X wiX yƍRWX pjc/X T ǏX mWQ(%jX AX@Xb {AXF 3C_X ,RX X ·X JWǰ'WX V?ųXbw5X +U'X +X S%X M^X qzyYX JWrpX i`5X OX ]X 'fX X âWX X* W'=X AIpDWkX (zXb4(7WzkWÚX fX uX e]X ky)X IWx1X DžX Yq`X PVT%XBJ.ÞW(rkX 'X J(jWF!X TJX %Ȇ#X .%7X vJȀ:WEǍ<X X ,X yX mx"X 4ƙX 2O=X \SX 4FX J.eiXb'haX JD¸WN X sIQW^OX z=jX 0_‰X 6X .8X HkX W+[VX C -X 6wX oIX =vZX hX jX A%X JJX Z<X ~#wX uX jgX }k:ƿzX l eX d4qX |JAa#WX nƋX ǘX wUX |A%X EPfX @#X EfX `#X lX dNP7mWh%3oX X WJ#~W OX |c4X X X J9WvgX hX UW}U`W%OX ^LX 1X J>oX ;U\cX !{[CX & .X mX %!h&X "SiX mX O&!WtvX ){X T5pXbgQW\ŵX 8ǀX ~JWk,X sG X AHX *;lX ,  X XGĔX ĉMX fX hī X PZEX `ƔŚW0 X Nj[[Xr]X srX OMIWWga]fW{~4kWJA+X6(ƇX  ĕX X EPX Jw$bWOÎWGÏX /X SIWa_X \K;3W@eX yX & WW (FCWRMȻqX + Xbx!#X 5[X ?fG`X 0" WevX -AX X r|WX>9X {| X 2X T#ƎX =X mxX  JX fX IW3ōX edX <3X vKX k78W)1{&Jt.:M,b  %K*''-Y,d"I]#bZ_WXX.S0WVEX^[XSsLR| Z S MTWXxWU O[ XQ] VOsZOX5QF [7 $WXGQ*RXU[ aS@ W[WS  Ue \! [ 3\9X8 ,X xKQdW[ cX XRX*WWWS B aS T#XV WR]Qq ' Xb3 Ww. 5\EWQU"X?S WT:RBW T XnYWX = Rc > Sd UYWXk XdG>Z,XgV TPW\ X_*RWRVl <V ?W[sMXQx 0\0WXlX:W[HWW]WWOQ{ !Ya nXtX%W X:W X7QXiX| W" ] hgRz WHS "\X!R^ lX0[4 VWXoSb4XS  WWX/ Y+W[ nQ b [W M\~GY'" 0QFWTTX,UW[ Y@4W/WW#vT ]h :TMXU7W [ [ U;a U=d UW [WS 3Zw N zYn^ W\wLXxXR UUYWTrW[XUy:W\D4 V Qn *Vz 5XLRX%1WWZWT\RfWT7)W\ XR& XWVAT[XS RMX.\  VfW[`XAVV 7RXB\i U ^Z XlU 0XZ/$WX8WTYTW[W[r RA Xb \YZS DY[M`T< \d *UhQz' WRXpQWRsX \4SEX@S%VX*TWT S|WWSW'YWW` V+ r ^\;sX;WS\$] [XV't S DX: Y6WYWWUXZ NY#i UlW[ {[! )\,SLVI Uv ZXXW\2XY W | R X.Sq fRC VQP We FU Y0XcXQWQ) XK XVXQkVWZWR3YX8\ W T2 _W }ZO &WWT# T$LYhZ3 dUXrTm SZZ NVWT 5ZL }SXT NZX[4WWL V2X^SH ]QX Z:V RIWZsXZ< T XP UWT5Xf\hWUw WSB k [kXAY^ \XZX6TEXzYW\W WX`v[79[rcXTUt\6 KQPWXM X,X?W|XnT \XVs\WU [ R }]XR\@<\_WU#X>Z S%XTR T ZXQRkk X R- ,[ QWY4 X!ZnW[ X*R* V XJZWXCXm]i]qYu ]'xXwWaUu 4[f \C V &VWUj T} [WVC{W[ Zz4BT5yXTWRXZ X Y:S'W\XsT3 1WQ XSASCW UXJVWZj 2VK{XLT+ SN Z4SX.[#WY X*UhVWU52 YXgSW[ZEXAY 0Z;BX[SzZWZ Z-XcUXS\l# YlWRYT c yUh nS\WV YnWT]KWS> Yb WZ ZXSTDLZ= YiW\XUQ{ AYWSqW[B U xWXWX~ e\ T WZ} YyWW  WU XG\M W SW[~[ i [TMX+Z29S WXO XUT}WUWY2 TW\+ VR !XxVXIR 0VWXXWR7 ]%Q V mZ W\T!WXEWR?XlZ \WWXcXN\ZcWfhWV X+R[W\pc DS [r[WTUS-_ *Y<BRk WA Qm2yRbX Qp ZX![- \9WVUsX6VR X' X"U| VoSWVX8]  WXXUXPT 3Yv W %S{ EX X ?Y(XZZQV ~X,T jW rWU <VY,k,WXzZAcWG WO] [YoWW 4W9[XmU, QWV X Q g NX'WV [DXKWY RqWX5[9o W  EUl\\XUU^WSR)6 [ XS!sWR0WYQ4W\N ^rU+.TnX%WonTQ0XzZhX8Zx[V WWU XfVX0QuXQY X 8V\$WUXrSrX"[^[l X FRX,X T WY grT pZXWX-0 SjPZM MVyPX*QX Y WV%VX"W ZUlTWReyRfz $V@0XR\ TOWRW[G Y T UT,\-!WV nW 2RWW[ YWZa^X?Z YnX@V GYLk\{ VUMX7Y<.WT_4XBU [=/ Y~X\ZWUTyX~Ua [; TYE W~LZuXUk U9 T~XTX , QjCX?[RX"U.8 ,R V Q n\  X\\ P @T"{ SZ[4X] !Q[ [ YcU~(X*RV X*Y YX VW\L WXC [+ oVS T+^ZXdZ f\ pJY oXUvL @U YX*Y{X#Y  aSW\]WW> n W WSXdY 3UYUZXQR[*X0Y J Z U9 XqXp)X?Vb[{ X~UKWUL %%-%7%.Q%%r%Ȗ%8%>;%S<%="<$@LC(oM$@*jAXQ!ۭLG*j s (O% !XQ$@;t*jF-$@7j *j["8M*j1(XQ*jF"G!bM"4("!xXQ (!Z0G"I 4FGXQQO"XQ7M$@G$@! !*"<(+!r (`(PM*jUM$@#XQ *j,|G(?&G$@M&ǦXk0O(Wo I PX 0N W IJȗ W* Ix WJ0X  I)BX 0/X  IO|W I&ctW5 IVX @ IM&TW IxW INW IH,Xb8 IDuX  I= W0N|,Xt IbmX N0acnX O IK:pICW8 I^W. Iľ X  IOX 0PQ.W0IztWr IN-W IOlQWk Ip X  IJhX IX  I`FX  I22X  0&]6WN IIAUW; IN|*X IrfX  IN2Xb_ IJW0N|(*9XF I!bX ' IXZX  IOJ&WZ InX  IX G IOedW{ I/Ǽ+W IOJ|WI I+ǵaX c0Oy'X0OuHqW If1X I!QX  I$TX  I4MX  IX|X  IWQ InW IullX  IJ WK0J#FW IIR:XF IgLX ' I/c{X  IO.9Xb IW@ IE%cX  I &dW IOSX)I IO1JȘXt I&1Wx IO9XOn I&ŸrXFI ITX M IOuZ!*Xb% I-X  I<HW IgdX IZX m IeżX  Ih?Xb~0OlW I X  IX  INu HXb" IOx(X< I| X 0 X  IOYXk Ib4 X Q0{w>XF IX  I *NWa0ypX U IW IO,kzW I;#?X 0S‹W0Nfx2X I~WEWi IPX  IN+:&X2 IW ICjXb II'^W IIXȑXF IJGW/ I&7W I7v{X  I*«W INyW INÌXX IgOW0`tXk# IOllȾW IJXb IJW IuȋW I X  IOwW IO)HXb' I3W IOQ0X5 I:eBX 0nǫX  IO-Xb IOlX2 IW IX IO=_‡X6 IX 0X v INJY6W* II`xW[0cW IO'X(M I^ X 9 IN.W I/Xb0ƝX  IO4 W IX  IO=kXF IOGOrXO INcǠW INǒhW IJ'8Xb IJJX R IN,MWS IIX K I”X 9 IJ W-0OPXbG InW? IW I%^X  IP]AWJ INƪW IX  IW InX v0Ns3W IN`A@Xb IN:GāW IWW0IXYX INX)] IF(4X 3 IPQ36W IJ@ X)} IIvW IoX  IŕXb` IIgO<W IIƑW\0$<W80JDWG I&nPX  IOMW INXb? IJWq I:.!X X0O'Q3ǭXE II'W0kX  IvQX  IP"X IlX 0977WD I$VW0uzW0˜X  Iw;p=X 0N/X IW IX 0P[;_W; INpmW~ IJyX0nƻ8W#0Q;W1 IlS?X20 XW IcX  I&X  Iw;_X z IOaŋ^X IP>Xb| IPfbJX} I@rf}X  I$MXb0õ7X  I#X L0JgW I/^X  IGX  INW/Xb IX 0$JX  INþlW IX  IOLW IřĿKX IN°Xb4 IQW'X 4 I<X  I]Wb Ix9´X 0Jc^WW0W II[CXb@0K/1WG0BtW` IP0UXb8 IdXbY IOK2*XbO IX $ IPxfXb Ih FX 0_X * I0W I$X Y INg!S2XF07#T3Xb IIFNXb0~ȼǞ|X  IJFK]W IU_X 0>őW IAPW INRX IbW( IP[+XO Iz7FXb IPE8GW IODXb IXk IXb IJO:XF I&GZX 1 I] XF0#BX g IIQìW Ij$X L IODX0_KW IX  INt_:W IN S)W( IOxbrAW INXbT I]v X q IkTX  IAX / I1X l0IbXb IP=/&X), INt'W-0P= W\ IO,W I|-X 0NuĝtW INsW# IJ'4WK IK,[aXFB IW IOcX IA@Xb)0;cX " IGgX  IP6RW II2Xb0GRW IOX 0&@WA Is\X  InW IǶbWy IJ2 X Ih;W0I}sX IIf)~W IN@6Xb I:W Iq X t II5W0 șX 4 IN*#Xb I9BX , I=X * II}WW| IOn* X) I/TX I?u Wt INIXY I eXb I:X E IPzXb5 IO{W6 INGe'X) IJ]Xb+ II|Xb IPX  IP/X < IPY@X IOȴWu IW8QX  I+UW0:X @ I,KW& IH\X r I#X 01\X H IJ W Iȯ0X C IO3WZ I4X [0G}X  IO+.Xz IJL:Xb0Oe,fXb2 I =W IO>W0NgXW Iţ8X W0wW I7=We IX #0ȔlX) I,XFW IN<’W3 INv2+ŗXbW I>KXF0zX IIeW IIfXbl IyĦbX ) IiX  IlXbo0N!OW I}ǚYW IJW0MoW] I 82X  IKX 80OlH Wb IfWp IJ BX  IN^3W Il'W IpaKXb#0Om]<"X IO_>$Xb0NXWx IIBOdX IP=-bW I{yW7 II}[WD IOp"Xb> IA:!X I I^X  I1 nW IKX + IN}[Wl IKW( IW) I Dz1 Xb1 I uăX IJ}W" IOlùW I&oXb I`PX : I6qȩX  IdXg IyX IRM7X 0PXb IKXb% IQXb0NbuXb0N3jXbM IcX 0x7X  IN6CW& IǎTX  IPc:[5Xk Ig8UX B0JpsǯWO IN8Xj I /X h09~]X  IN+ iW5 IN^țWK IPX) IOroWC IP:Xa INgA?Wc0YÀNuW IN>W IX 0IzXbU IeQX  IZeX 0 I YkX  IJ[k>W0Om@W INZ}Xi IOlX) IN`z}X) 0&X  IL04X 0 ZX ( IX  I?d2X  IN )XX IN"*W II6W+ INloXb I_mpX 0P2¼5Xb, IK*5W{ IA6*X D IJlW ItX I.nXb IIX IynW; IN/cW IP]ş2W= Iv X 2 Ik*źW INf\6Xb IPLXXb0PDX  I%=X A0|bȃ8X J IIĤVXb IĨXb IOw0W ILlBX 3 IOVX  IIY[W0P'vXb IN NW Iq:Wk0IG\EW/ IwƤX f0X  ICWb IX X0PYaW] IxX p I ]:X  IPW IJEdPW I7wW I&bX IRX  I<ôuX V IIX IJH!X u IK'€OW Ii6X IOsXk II[W0OX I"èX IJTsW IKƆX IDZ(XF IWc0I|^X IY;X K IIe%W7 ItX  IW0PfX; IrjX 0ƴ/ W- IK,qW IJG8XbF IJW IpȧWj IJrXP IO}NnX IA4Xb INohW IJDƢWC0P1XF IgX  IZW I,W9X 0OlrXF I{o X  IaFWP IN`f#W0Q W II8WW I}XX o IzwmW$ INO mXb IC"Xb0Oa:i Xb IP=Wy IOSWL IHnWg0aMyW0Y X 0@X IUgX  INƯQW IB)X  IOX I}X H IIW IOyW90n]ƬW0O5W IEW. IP ȢśW IȣŜX 0IHW] IPt{ǁXbx IZ0vWH I&QW0J!(W I!-YX 7 IIe)XF I}VpW0%W IX  IJ_>W IX  IqX 0 ŻƌWS I*s9X 0NEoW II\D$Xb Il]E%X  INvXF IIǾZWH IwƽX  0(ĖX  IJzW IO1O.X_ IJ>"T[W IZX 0F`RX  I aWU INXFn I/VX M0PȽsW- IjtǐX 0$ȷcX  IC _X z IIDXb IuZ!X 2 IO X  IX)b0X c IYNX < IJzW I>9KX  I?X  IOcW IO%W0X _ IłbX  INoŃcW IPbrXF IIBX I+EX 0N|FW INXFR IZX  Iz½,RW IrW I+#gYm!oH'w'j1M! (f0?/'KY",&=* B1m -9X)lO%bv3\+C-(CV7L,R!-,K:!J٭eN%"&=D.!u  |F(|"~4*#D* ?Z#-$&-6&&<3,1X- # /%<  ~ PZ$Ut! YLB%ANH'Uw"}! Y$Bƿ+{-?ռUY9jP+{!A $;ˇ(`.#-4e 9*-+Ұ$Q79-$BW!SSh"7$e *!(q bg'7FJ,']Ά _ M+-ER"EJi&5-x= 6%2v r7$q1*C &k6WO&$qʖf-d&'-,ظ=)M+$yY&1)v C-D*~*$ *f/8'9*8 qB~X$@)z0'rnaC8 FL%7$;p.FZ-* ?# 1/-&E-()Z@-riGGuetWix5|NrLs2z{~muhdg<jFr,yOs?E{rszG9H~ Iwry(U~tEjsrX= 8}pkH{[\?qFHpuuv&1yQt@stNqf";r~}~>UY-fuxgyrpqpjLgR3~is_<zuX XbjPqWEtxqXs<EuMs'utuCtod*ytrczx|BtoDux5m<wXFrcCgV]cMo;uHrr15ug o\qcr&7tDhBr qitnFtoGol Lvr7'n9)n:J\eL_g CZe\x.Wttz{lbt:^s> ri<^q t4r iBfls^rls`lsa|lK<lPs2{rXynqs>2v{v2Gl,mf{rhv_ruhrvhu9CmVXJWMkwcr!~n $r~ g}Wr#si`qboWu2zT|wPmNitmQlve!$dt 4xV H Yn;fqltsmm~lnusustwl?ktr' Y0ggQo]s1o`rsn|nxunZOtvRtdlj|1u|wunlrno@qsfzvb3u!sVjhvlhxKx`rtoM~es-t\ew 4dTipthoio >}~sRVsXtxrv j tbt9DAy_ffrtcs~ss+gvs,lvxWtrewkew k@}sjjzB#uFhm;}t`=~uwns9 llq4yqvBk|EiI"&zk5 f{qp[v 7-hYr4qsX XO r?uDV}nFtrNfrPf sotWgw szr4kQ \rv4Hib,rsf.rvgMvWrpgssYk=zp`r)XrL-u: WBvgEsvjl[}s~r o mql8qojpjqjq!qhhPu<{>oiu{z{tuGf[ksqs`k#ck%rvMshNj<|>t rP{o).hZsXgX)hs*f{8aX$m]&&|(jiEu_iyurysd7drhs(us3y(0stx*&0|j1|BN~SwsTwrftRwvrwl$hu,d%qngsq6pv!X Xb52z)iJrgqS9Uts w0ow3orx!xqyt8s(t<{kj)K5Ix,Uhrx-Vh]s}m:tws*D 7ltLQ~zIuxrxvx6rosMsj/q3mCI}Wsj0q4qvtw(st$]hDqtUt;r6}pBjp jp ujp vGU}G:L E A"wu*z !t:q~tXsKWX?iXPX(rRkmQ|I ldvGuMO!~k$*>p.q7l<[k4onuzuvXrZetg;f8koryTqrz jmtRTTstlpg /u- +irmlNr}t}uHj.rpi}T6-oAr-oy~{y({{)0~t8|Ett4D- IJgp>_#q)sE%Sq-[QWFSksvsuRu &BtOxrl{QvhQn$'t|9:@uKnqYrHchvDrr}t04u0;CtX Xb;wjsJqtr,texQtgxTu|o_voyU(|iRtcuFkbr_4{=s&%r5rr8sfmrCCutqbw]cw^WW?fZ|2i8woUtii N 7G;SVv#W|r:UvqiGt?sxcrjvLtvP}aFX?X%v$zAAm|qnwmrtfkQ6Q~tsitmVvh}a2t(t)u nzU%]=}xq pym[soU>qrBkx~k Mo{A~lx~mtx~qvj~\fZops}}opxt%zZ z\tDe!uxtHj' wo_iyqoaj{u~eoyZHqfpy\IqgkqPxIzGV~L}_s0p\luw8tuCrdtlvr^oiY}vJ#n a>t wwg wwl~|huqsikgcq@sF vIx@zK jYr[lZufvss e fr]}}qqMetqrv5Rv6S8Trv?Zuj* p  uHq{;ns}hv;GdjqPYtzYf-l_`^u`gq{s`qr8 oi{mYHttvC{xth{@RCiulujulvl{rguv1rIvU2ru:&l5rZufWW@oqfp!|2lrbrfskw}tkztis hoZ|tnqqm;~Zm@~`WuTr'eugukoar;{ yGsG|7si|8tj|:ukktsRf|q}k} 8K^uE/ewr <nuU|y X!Wi6riPu}/iQu~v2X sqn3}:sprUezpHi1tko$& 5 -wrru]}_}`n|un|VywsW67Z:'[;^ZSv <Qgrj18nmv,tQwt)br.~iz]P %qn]WXKX)rvp 6p!#0GG>qw&rMvxtsu tB|u2C~#v<fY~r1o{?   O c5teteXHXz~wVyX%qtM#qcyQ&R(sf6uquu"zQ fkp&zVzlu(+g7"vjftqy.  `~V3"</ wtS+/W0YtU,W-rfpy y2rv"%usbuuXllLyv7DvqTvr#^_r$`req$yLN {Ox~toms;Z )_1tr+rCu3oullsfu!p*H:y-@.l5}mr}v@\s$o n\23qt~H/N5[wn<l*r52Nrxv%'!v|ort,46$tt&wBx!x n2#i/wwx u?l=XpX7~rs.zshmtxlw}f|W,jXu+0n^Msw;h }zniEniGtm/i"9rwJ]w7u0u 23w;Z rsovu4~}|&#XqX8>G&(g0WXIfhg1sjlprqsq|*]?#}j+s=utfqsrV3#p+t$p-.)3{NtB,7j m<=mU1lvuo4qxk8Ck:Fob scyUyr1j6 >3qw#wry\~arkvuisPJsVu6e sSepef~R4aplspav]q:tKBHz,k7?}ux5s s qk~fLroroAiyhK Huefvdpf_`s72*EtAyk.vEqf~UXqgYoylAt6usuHttvsJ7Rj@pkCskIsqs[LH*p7FgYl}or"LSr|GWX\e?rj|I2g\,k[{qM?`t[riHyuyy_hlv*NNkSQQk;WXpi"Mt{cu`q9T4 .Im9|rm=|t'n{Yt\{[uyggsxs+i1Ytw+tw.ui[qpmvZt|6qldtlffvqqt..fI1fMm|>d{sibvvr~mBUiVwhtmFYiX?SrqAqg6|t*jlvtml|n[:FGvs3vw%|@hgl\blm]dtxnzLpS nb~JMmmq;fx@ uukhVr2{'*tKlqy;IZtI$Zs?Rs*rjpq"nij2tT[$r\&aUr}+xwo+zDt]xfuitnqtfs&*qs#f#{ts~ ^Drxnsxnsxneb]h!`jS }otK~Wfto.]v/t5t/ts8k@K}> r~qztEw^ul`9|vAz HtFt~uftr8nfx>:nfyrymkEvdf;rQItvui}p/Wzpu4j!Lh tnl[Rm=rmjoq!wv EeC:o5{!qzl6n 4BrtYt;frqvtd\vvzvzLkyqhvs}qgpQWWc5dWX3hr$$ta{ tb{{'y &,hq^vWp .fysmtksZmwkttunW z{Y~|om ?|y&9n{9ft2w {,hnteUe5RN}MVrUD:irr9|%r|'vh;srj*}==+~>KslqxpIjt }guGq.}kzqkTXu+ o u.ors|hu(nj+nj t.ssf@rthniLr$0xG }Dj pst!}w%rQsv, txuXfXA)5;q\uqofdtn9gulum'tks ~$ #hwssyfy_v3{UmqrvrAj|lh=<6Awojk&ry(u~5y$puB-qh8tl;g.s^Oo# |s{GsxX Xk|qs!k6|WX6o;8r pjurjpjv)8 f1-uqyIsutw*jlqsi;rZrgv:hr/l>(*,ro&(p:+*lfm-t!s u#giHms w$_qt(It) J'Oslki7(ytySxxs0.r9vY>sw5onfsmuv|=s0rlt{v:=~v> vvw[4w_;tMX}qhGd{|(?u."rWhhf0po%zv-sR'rI~crY7|\  n7wvsoH n3u6lAu8lC:lDbumgsJKbrLcX#WvDqSr*v jr+vk+XzX%Br='EbahDssTu <{sxm.m waWWtH<usv6{9lB3rnE6vV_!zig rN.jgMLsUnfzy!lqqI}u3=T8xqxq u;omM}yu{}y}yj=~ED v',g\o3~arQgo7~difEt3S+r t5T,rYoIBty%/nD.4~!x[F~"x\  *1|twu=SgKr?dtZnnt=nr0ucpBf^r|y{kE|*tkF|+uuriR{n5+l.v-l/vMl1DRrprEXRrG[VXpWxtTqH^t2Fxk|]sk|`WWGuBv < u$ {7mt9qvuv:rovYv_qq+3pkhmlVbl2Nr%o#n~4v v&.uPv"v.Nr%{qim~rpf[torJoh ywuk)mzXUt7J(v5,_r(s.r)f}q|u0qqn74FrFVqrDmyQ|UruqvY3od=5ogur?p~uvBp~nltD  tifrxt.mr(zQV%Hrrqsg7nxvfo}qgrrgssgsgxs7j{rIp)z`ns1Kucttinr |].yyr5},pvKe#Rj*uQwEuj}js'}vN_ 8j  k!?yi}psj_Jshrcetz:?q_JbKtj [QssSsv?r_qr40{ R'vu*ws]oxwKy}!mqr~qv vD!xtAf7k Tlzuqu!DfO JOSqj& w }uuWRJ  #muOllhjsqar'X/W|;r"lp }|5 uvl)yusy uZtuaWWhE|y/t p}& f+js=ku]lqu^ls{z|'rLu y:i~u{Tpuf%]h&g[Tl3Xl(rOwu-ss#t uw|EyWWkN6XRWw(_4q`rmf# { l4WWtM| trh#rh%WW{Bbw*nR|wF{hv9X Xb_s9|Hji!KwMowOsql&< l(sX;u!ZhLgrw80$  I0h> uXs3o uTx$h[ pj `!sDsju'X XbIvsC=tsIqr9rqj?|mtixFc:kso5t2J '{nunozOR  l@lyt+bPddTsq9nsj|j3u%#k{ml'Q"u*R#tjE {CAYhTZvjk{qmk)rsft:pk;XTrmuIskG{Yfty+'6r]qW>uQn">fYvoXLr>>yt@A$o,u"sLw"ur zqI!\`t1v3;vNrgfE5Op=Fs0t~kf=Ecjvu=su&o6ubw9tX#X5JiNu`\vCfh = r)<qck qi7#Ps6+Gx&rg( s[q{qq~8qurcvsy 5~w\u/0h{ry6uL DsQJuSKqUuhJr hMsBJ=vm2@sM4rvQvFvh'Srh,Yt<|qu^@=uqr&WO||kit>EniOS{?-u/rh|1nMswq!zqng#[g%bvsTm)qmWX.W@#AvNr eri|x}Prd{sjkiusx k]+|pkspkR:tCmuzg[sp2Zt;zyqMc rntcYjjt,gmsuIj~}vppttso[h\}}qovugS6z w{qs@G{s z7  z:ZxDt sykmu,ypn`WX=hXX*_fyQpJkzRp ^!m pTwdZ;tTiv6> *Syg&$qluf~Jsxg)w!-r1%4s&5j(8ur\tuuYfpuwgps@zzq_?<YXWtw,t*wsrrPoixsyhp~.gTpswt] 8pr/}v{`{dtjau~jgguzag9 uH[o|+flZuqQClYvslkiuBvSp4|ui4ns1a4q1k3 {o`xrpqpuj 6 AD]qv\:l;g8 umLhBr\q}td:?TtGw=vO{k,syv~iyu <|sigKukIXhuj1vv`zehs|3{WXP6~qi\r |LJs|TM vPx7Phj*LtsHp7|mr"tfqzKuyj}n7 n L}5wD[~/rwnJrxoLuDutRqw}=zaw}@|vi9$s utfjgtcjgusobt 7n;Yrin?as:itSs u7$ 9xG|(gj kj"rmt wNt;nNqy*,vu tyutDwtutL}1z6T_ZTsqtn0}3Ys.  %tqww rtDy2{Kqy3{LvM,<t@fC jr_ku=olr/qwr0qwM]wqd.Athu"K{s5"l|ruWlH kOf Tulv*vtpyt%*WW#|0q9}vvrg+?u)N?Of%ll7jamtSgb d E}tkfAJ|Flp{uopWXu%`uu&t@vn_kctFzl;v NXuug2~jstSEqw\xkf@v$v)h(r:RsrGWX>~{m{t$L~(t,g}of"5u7v=8;<An^iEtt s>t!s@r%yBrf 9r4~v'nv)nM[?8r-{Qsr*wy=!i*1h|uh| 3h|!-i2qjs6B)siiqLp|zl8mi,{u#ui/{x'q>tnc%  ^jqj8g&BhswAE+IX= J~r|vGu&'u)s\6|wO=u x/t<Y=\#krX Xbs^Qu6sRu9tb(uxh_(g8rS?t-pxMpxPu>v@:{ks;97{ps3}lq"4jz#8qh;/~qwt O#r>~f8]!q:WIXfWksmy kL>,otuuB'zpYx%)jy~s{&&\  wi EGGtJvc UWqR/.pz$?zltvbvqhpftPv@+G}zffeANSynrry$+nm'twt.bwN/yri]t/5[ukx2vRzYWW1hubLtVuiUcAulwyOzj zkmjC mjDqsrqnOxtoRhoVt#|RepmC{X1p{Z5s)v/_.6h0lSszTEszUH@kuev| s>!{Z#Csu%F7'Hu1ensx|msmUlsraZv DrsAs EuMzue o o&|SSsNvj3WX:{pupHts{S-XW2Mr}PrruZRm]usaxzRFGDyT9tH*iagkuzgl{snG`i|Wmqk{qorh/oWsCO0rupk uhqxh<{u3w"N2D MsE Othu6prs|,uD`XK U~%n}s=qd}sy?s,|,skft2dj_pyihqt vthsy0ymhp3qszx]q~_EXW2ock{mut@uiorvjI>qe"r8jMDtR4X>XPgin]uh u#c|d~e}WX j:>tF{qtG| pr|zgtsyjlp8vp:vu(QhG}ThJ2d{utxM~ MvaOtLttyw|p!sujbuzoMqpOxuu,3s-{#_0ukNhft9/ s;v@sHpq~u B[utu^u_Ou`u zQpvHl1tuRv'qkt`s9r#yvv"h4{xqYZqzqr'7ht<aukPf'qaT jwt^;p*qoyqGuPtvfvDy\(Fh7sjwVpDr1nv=-@^suE|PftJ}XoNmtph #Gk,ljtm_@L/wj|q|l"jt/*1t5e}s$ur|jxjv nyOpshOt t>"Aqw(=Ixqm}lo~(qquY&ss;gfyx}Ntmi8f zU~oros%L$qtBu:q1nvun zq"zc} gk/mhr)zk1'jtupjt5f ,s/snuN(pBySu_6rka7s`sB~su)z rgo~zuhsMg)sXg*htPp6ylb+l6u")jUqly`J6-qvu[:fs7 * FhwErzr zrsk|[v jPv[lu-4lGtf- ${MWWi}P2*s{eo?tuiui4?m"tfAm&qtg{.tg0Lq{u-uqxxsZ|p9|p<sO tjyr(P)Q.vk+ 0-H.vhi'tB{h|twKFq$|4lBWX~smE htjr!t1rB|VhN[iqMM<. x)^or~!Jth|r$<L{iF.r9 W|_K%F|"_tQigstrullI^ q|ZTusv/sQ!q[vK+ASr-C'zM|&NBlvSVo=ry(Gr}IwUtYhz ejwgqoQtS 5twv20ims~m({}"{m@>cnLDtxFgz9BJ Ls|jKznkQ%oxZ uqsx\"iK%tHjWv(Prz}zWXBv^t:nGy<]<?WhQ9;u\Pg u'M^mVq{toP~i %t2brBfN;uJftbuLy@ v eiK~nhp=prMssZ|flyvtItPoB-z4Hoooj+rjfft}thmTrko%b6smIkXilrTrjJP|rnW|u@zt}nYsB[J]%~'fhRs)YojXs||_sgrdNr6Zs4tx4okxx7omr)p>uS{Pvq_Zt@lpnlprtlFylJyPQrSr3lKq{Ti{Z v%{iAr^]q`r{)rm P  z)u}r5mS~q?HX9XBxr@Bpnrq}5q~qzH{q{L{[abr.ou.,t_<.rZ[ I~vThCf$rlWWmqe[>|hw=p6PKuunjM|xqztDlt2IlzuRXuvYuZu{Yhf`LuPfothjeuKpt6xY*y<oIuq2zV~s]sawy< %h0UYuOLi7>skr-KtL/M2s<%xj#punlsWuwstry}sjyO7nu}/xeGtx |vJtsZi\i;oy y/z @xE}vLkr |u4suhsD+nX,n:ssfzvOrcxasNxdse7[k.ty wDgt02vi{m sk&(<*/Fycwp>f{7md66~p@so~yw~zwu8pA ~Fg}g $mx;-$fzj~Wt!e}0P;f>=fl%py%qrqapcp rvjgql0Iu(t  # w\5ssvU&osKWwN9Z.*q+tvoksdU rp_Wvm0yvco 0{8uZv8!ssrri~.uNu)s~8 Ni Oixo-znU.,#{s8.u hwhwur}fs2f3|y,fs*r{ItKrqp.XY qlU$tgv'[3rxO}R\6pvzqxbzqumxbs)$Wnjs|v'{lr<xvs qmuqsWqsagv&xYk7~r9~r`r!rj<~tnoFXg.w/qqriuqtJ| 6TznrnxAvrKxTj:+ehXsvms&*uxh-$$()t{ord4  _lBQmrLrj^uPst{ct,HszkAqj(r<k)oKt~t|8<ufafUgpLqtUs~wys~fdE0t/yF1tkY'FWWn)n/reTtv>pENpuiwuiqnt|b.c/  u,gWWGRo=qE;z3 y|mrK6vXvZXtUkSurkzuy5 ]?tEpg1o#ok_t5uz uz tsX x? xpPmu/~w?syIr`*g>fTiSq}u57q~u;;rq_N>r`Or,r~>sRttv+pj9et_A qjrvAR% qTres}lOrlTr]Yrhw{:tGs&qCEf{XvApMswxCpNu_Qb]GMuXum!}Itm$Om(PGZq`rm@ivgGsRtgIsSuGH$J%vu\e|RvcL10qsWD{4{gsfChEosOHu lyerr\sZkmt^knt;L>6 ? yud Wg-@(h lV)h lWs$ /nsuxvqsuA@z*} Vlu|UqzGoHei rq#frf lnbpetiYi:\hi>_hsJ]kt3iAdhsdush {seqbFxvmrs+r\Qs_UxE~]LIsHgbr{kkq 8jPMSz=mxh`&ugjsx{|F ,Ffmct^ZWWhj3trLs~}`YvruCt|J^SiM4zo J ^mmfxwg  untz|p~f ^>fuOnpv0y|wyr}wzss&uR<5NuJsUgxH|ruqlgsdq;sg9gv b@$tKhuau'uu(zrszrv+qre]WWau vVbBo rsQh|'vlpr@pu5*  6^8 usu{G'sH(q,Ht)Vt{irFzi3@}v\rbufvlr0lt{q9EvP}Q~mS8&pH&) ~[~rfAot.fwqoThunvu#tiSz<frm4s59 Z2]hr}s:w9t=e/|p;eyirtk"twf ttCsUu)ysIKr~  SluiH|#-wv4xV4)}UoWR0q*"sqp[Ssnui~xtnXdqss1H&}nrvF {uu7}wxrtxy w @XiurjCnOnmx<@shAd|>t82j$q u\siw}?} rho0,sIhujfbqF)tsm6XWXgu~ms"yRr~ArMfu vQ96zwq^i3H{u o`+vz@@s<B g[\rzykz[lAvyv/rpBud@v kkj bpTWWv]"smkw"fz/uf1tz-s* sx%raty&rcj]srbz|(sz}Ct vtyvp4I3f9rMrf:rOr{qv1uVk5f6frip3t}cqtkrr;Wu=r>Yu@vOsKI~L"Z#uqwA?Qs: tq|!qgrs ,jNEtyo9=m*lm,#Psh@t*WshBs X XbnKtBAMtgpDsL'o#kTs$i?~YqY1tBii hsi4\mu B??rtxix"R,}l<t"T;}?uGFj-uv- +tuE,Ug7E)<U)jm6.Q!Z$O!N=# #%M&"? Ȯ:- bTK+{.9)).-/m I_XT;# V`!  q,C%&,Y!61mI &0!%F4w$.)N/& V#b%1N$W{%$eV"-&?Y*-H-?Ta,1'*C@.&P$$@ 2)v+  3Ғ-DX '(m)A3sEgu)z!j#'V+ 1- Lĉ :I5 !1@' `!@=)!+U'-->hTH$_(qI+A AR%J rW1Y*R '7@q,R}&"EBM}|69TtI<-&k*Wp+f, &&&$G$uR"*}v,6L*B{t ?*V VD0&5Pm$ytg%<?$"U΢S!& L@*$B &"~*Ѕ' 4!F4ZS ?$؇'M!9~{]d*̣(C-ƒ F$qwV3=M6W9*f_ _Ч$:!u`6(`ؤm#c%%Z*9#!) -I,K=bN!B a 1UD %b+ '<$WJ+),2,LP#)3.#2Cp* |MH(*x$;#&;R+q(-2&ѭ($ vWX)nwV 8WX(=WWjXjXWmMWW=,X WrWWnRWWzU|x+XtWeX Wj|WWX=gpjz X Wq mX XOyX WIt XWW4WWl%XOWJWW}TWX)P;WX)X WzpX W \WWleX Wgt9X'XroXXAX2WWXke .WWW2WW}`WXX|l rX X"BWWXX(X; NWWq WXts WW})WWWWWWBWWXWl]WWijX XkWX)VsWW+nWX0hWXDm WX2{MX XtPWW =WW7WWx*WX1;IkWX2X XFdX WeX X ~VfXXEW:X Xb9m|X W} XNX|wWWVAWXX' fWWrXaXsX WtaFWX)pXtW~ X XFti@yWW4|XWW X XtgWX)YWW WWWX r/WXbvpXOWmgX X MWX)YkhXXE"K> hZX XFx>`X XkcWX)|X WhX WXnoesWX<XrWoWW{XXrWWr oX XFX WbWWWW;WWo#<XbXBqX XFcXyWWX<zrXAXfsX|Xiv OWXfX WxKX WzWWO0WWaf<WWOttPX W aWW~[-X<Wj<}WX]VlX WyFWWhtWWmaXaWmi WX)yi @WX)jgWX?XyWl]WW<TaX X|WXi:WXWgX X kWWkB: WWI:UWX)z] )X_W mEX Wk?WX$h$WXDqL=WX ,^WXbtckWX)~WW X Xts uWXtsXrWrUeWWruXXWu WW WXO=WW,LWX)]34WW&WX zXX xEX(WjX X}(X XF|fpWWm^sZWWOWX {X XWXWWyX|Xim~ X XF}PX2X #XXWXOjbWWj WWi  :X WoWX)WXXVR#X(XhwDWWlu/TX WxP RWX>X(WkWWY8WXEaPwWXWiuwWX)m5WWxWW)>WWpf dWWm aX W .X WWWWyX XYWWh5|uX WyXpX<XNV+<NZ. z)U5I*).N-# OR[$O.m<^,,'6%#('H8h74 KK+B.)J.$O#+#A(Σ,( d2!A*%tTJ +M#$:   -˔i&=p#XR9*{ M I*0!' $ON!ANʴ Yn͘$IC$Ϩ'ט ,,Hz.jt8 " H - LU'p /$qg7WyDBB0 ey-DS~,Z.0]% ,?.O.x#*},"^+) aDcg>@( H+5Fz *'O>!}!Iͪ'@Iz!Y'w=*,)W;:yU#/  xX~-(KF$Q["0+e*t@ F'.Z7$#8GD"J#A.&m(!*>(3g-83S WS),y ) +.yN X FȬ {#Q ϝb&'2(]M. c(,G.^S%̜RgI"Ht,1z-  !3]?'H5 .+)('  M&F9%9;Q\#%@""$bJBɊ+p)) mJa%*=TYl -STl.}-A'' #B%`'u!nګ&~6"3H*׸A1,-Vd(g J.ϵ!X~%IUB#-P-%3 R(\+(>2RQ$ 4V-4T'i= iE>T(QBJ,9'C {B.)б.y=Qږ(]b& cE (I+8 F*QC $B0JVRZ2LXn6r %/"!&[,UC,%! 'ȥb-js!2)"VW}Gklx!%Z cTa"P2?d.o?$X"#z/)gߜ+$'E'.A.>kthAV*y(j7wS'0(-"U'HG (1A "Ա$i'"%1|G(W.ܫ+{5-l":(VF-D=.%<8vXP+gAQ-#-(&*ӡ$2 $0&w ,lN;:$s9R+! ,=*t.-'|G9)mm&WH$$;,;:^) -?).&a!h#w'{R!$ k cE4wn/x-@$$.d(@'Z^$\R,G, 1jR:"&P L4Z_*BO!K$.$v(!**_)v:z.(ٕ \-+He$O& #O$/+YJF! e?>#"9<C{V.)N$!-2B+RcLN! %#DW'79 rO&P/3H .#rCC_%c$ |'7 G{,(L!g-O*+ AO0E ģ))*3ZK =SZ%q)#A&&5&V$PV#>,(4+D%Z+Iu=""~N.9S%$!(`Y,7 T2GG&+bLq!&4*P$E.Vs q ,~>NpR#W ¶7%,z ,7*M11F! awE%{Rv*7?$$ .^C$C(O0&>Q(q^ oMt ;#Kd%< |("O /*(P 3W(ݳ <6 T"E0*fћ-#K .1f '5I.QCӚ8"Hp*͚l&,KW$q X-Ps?!Օ 6,&>v X e"RA^'n*C!!u,R#&'8! &$&k,:E!ım*xU #;% -1^}P':')qɁs-r)'D",~Tw 1!o%R,8%b!1<V*Y#~m0#1ь% 08]* T!iOF&T. +"> *"  ,S*Gw&U* Y*G`@,y $[R,$ 1_1_1_T$OPb555555555555555555555555555555555555555555555555+[o+L[sI8wl.imz"'x".2R<K>~F 1.#BO-1 )ʫ.5<',>8_'#7$@+x>=܍!.q߀ Ik22X4-<I/v*-djG%9)wcQK=dMH  \&n2S*m<8P(D.&/>Bz)D Z=:!U-cwF '5b((NX(I# <*U&oG..*x"l,rC.pK8D,r"l("l6U VN0(EU@sM  wAC.*gp VpMi w9I8D&M,rU(L[M,r6"l,rc.,r#Aa V޾,r9*M*S(/k8D( ,r8DYO8Dp/Mߛ*=e*m58D,r,r$M(6).,r  V(Y(,r* V*m@ VpU!lC..XU wF1(4 V wԴ(<i w V wB*m3ipI׷C.F*mM(*mٲ5U*mTpC.pi*m3. wPp=.p"l(Tc,ri*m*(*ÉHBx!8D* 8D*m U wwi*8D wHpP3*}C.(D9.. w9M,rbH wHŤH*mWH*mB"C./*i(PC.G&p֛H w`U(ʁHp9*.b w!F,r[C.,rz V9"l w)I w"l*mN"l*@"lބp2{H*m*F wʙ.*m P*mH*m{iOpz$ iBMpJ2U!$_/+ Ia2&3+""&3"U"U6"U6""jUN I""""" F"U""""I"UQUQ"0"'""UE"""""y&3+ I&3%"S&3"%UNU"$ " 0UN""&3", F"" "\"""! 0""U6" FU""n&3"="""3" F-."&3" """"+!"&" """CU6"""| FUA:"U"E"+B^%"O"w"{"""U**"J""l""""H-W%""T""UE"U6"U""Q+0"a""+0+0UJ^"U+""""YU$.q+0"" I"" &3U6""""U""+0"""""g""U6"+ IUy""1" I"""""""UU"c+0"" 0"""]"+ IUy+?X%UQU$ ^UN"" F"kU6$"dUUN"B""+"" ""UQU6"""F"""5""""""*"m"&3` "`""v+0""-KZ"x"UO"9""%"+ IU6"U$)E""UH"UJ^UNU6""t"""@"U+C&3""N"U6"+/"" UN"""_"U"U""""L""""4U"#"<+ I"f"&3"""G$"oUH$""""""$"} """"%" %" I"U$FU6"+0"&3".Kqa"q"U"U"U"U6U""+ I""" 0"+0""U"i"""UN"UN"7""A"" 0%% IU"&3U"X"""Pv+0&3U"h" F"U6""")"~""K"r#34,}&(4D e+J-D !U4'X'!"X/5?%ާMq?& >!()Qx+b$LcD5($ Bu'[IO% Q"($(\ $;&8#V'v:2(m! #("K;!Mh\$I. =.$)U  U.;'k% )8/[e(WYJFR[Z"K#&N*$l#<ZniFKc/QoZV"+K ]b:Cd n |B] Ѣ)"`,?|%y(&s!)& #N*Cz*C[$6$$ Z5(~<1& N!)v  %b"pZ"~HO);|-)""Dõ*;#3*BI@ ? ڌ(`mXG.) 'S.@Y,PW'rWmH%%;#`$ +CT, I #' Ia+kCy$ Ҁ K%:$f$'GH%7'&x7 )~) -y-.!ԥ"+,!#,0Ou?*~Ȟ2-(&3N'=CY0   +u p3 T/ OQ#.f&+)ECAhؿ U Y J *>Y xO!np&8'*AB #9 Ix+HzRmf`MZRmHzf`LZO$f`OZ}8/f`PZ/8f`NZ f`KZ/f`SZ f`JZ|O$f`RZ~/f`QZ{(|3$*LA &.* 5%p(  !P-"p)%V~  X7#D k.|mZذ+C C+N$uע"&K| SA%*r,= $t P$q; P&$n" z4=-Dߑ+"(*FQ*cFL%ޫHiG;0$'ń4-SV% 35"8g K^,#4e:/%k?&lC*)Is+ !&b ,9V*%[i#IIN% W7 -p&'( w(<&&%r+-* +1rQ!+d$"_!$7'"*/(p_lb!Ut W3/*!E#&Mu, o '95X~X<XbXbX X JWXbX X WdX,2Q Y"#SBQt,e7bE@G|</w&N8O> 0W1-J(R,J  {7FGb F+  c5.Z_(]+* Q))(w.yQ-U8g%bS+Dm%$w##OmA'0[7.E J#SO8xt i/jeT- 2%+/'H m1"V7#)0Q ".=Q {V(]GF(+Q> FLj A\b c#:.yA|,Do'3I( 't7"*& G"*5:L-=/&($A**X1Z ]n01'3' "#"'H`0P\. 5 =kqC K="!!-%- "O?.ȑq! 'VZ1gD \,Q]u#& b!"5 "HPŬ$(P(k&cA_*p5%(&uq !pD,S5".r$*7U-R++IQ(N&->[v65 )"-s kM,*'Sh9' /,^, {"4W2'&Ne&(5=GD SA-{?*s1a("!,! F-ؗ+bLB- WZWeB.ZW&C/BHW rBB-B&CjWe8W.B rZLW1z--L#:ya$q *X$'N$N&sF4'l).t*C}*i>tx-D& )   #.<h%"L!~w2+R "W,-" Z""hu.Hn,b(Nɀ5ъ>]-VJ0 #L?UqT'(yd3 L:& %T[ O.6l&g$v!S+H!%"@X~&) 'H<+ wkpTkpΑ+*mpk w4U+k*m+ '+7'zwQggQgwgwh-7-gg7w=\7w0-9\g--B77wgPCQwP+Jwg'+- ^w-n9BlF7g7707/77wwg7wg7gz-gw7LwB97.fŮxPcmCq "<" vE')7W{-:*, IR&X+[w .6B5 %" lg'.S9 H@'J&FBA!2(Y% ,AEaj%֭Y (E^+{+XY (%ML=d FTb&m(V O+Z%bI^!(qT:&m_ [,X%n1B\$ѡHE~_ -?*B4u"~Z!-Dþ{,. ?!u`#1M&wz &'7]')Gr! *f&'@*+ mIM,3}-y CY*m 2 ґ"s%-n +@%{+"E4!&W0& *Qt@oZqA*D *1++<0Y"T&P L |]! * Y)~|C&tr)' U)ZVuHM$q.-L"&!s #;#(Pl&kfU(` ;&$Ѓ-(׬&L"!.)D&ôc,~̢;4F 35)(o<=,)vM4!W8,^&8 I*$*F,R8-,K@--) ڊ$+{=a&!RX$DžF  /  &I+2Co$"&M qG''r t4\$#%NCOJl#6YyF* B.+q! Y R!B,{(r&@ >-@M #V%>)ϑ3lt  67V$qvKR.z' "tPZ-DEVX) #4&Y<!&*=- A@,W/-N!(h?r+*%OZpO. "Ti$)R&#W(<*&b&:~+,*!+U Mz!-*R @.Ƃ%Bڳ)4Z **$~Sѹ++*Fa(h![,!f& !b&" -B m64$r.y&FIJT1&>0  2#+_3(Y?X"Q' M$֫.# ?& 1k4+s<%BC!0J%$R@" * !ЙNh"DT6"H!}<mKe lg*8-OZ&#5)()%8 (Z$TJL&-pCo"IR3S(PORH);B#]:,'"2.?˕#;"*\!8,~+YHkNQ0!$=3&jh(. 'e&>(+4ERL,? A"`4&:GI{~?'$&B+OckGo($vUJnE9)Im*NoN CL'+^Z(6t'!$qK)  !W[SqZ!O''P40c%ǯ; lf-D;K%+,CGf$!DE 05&]## FA1b]%D2g+<6/k'-~bIEZT P Dƻ+]+&I#ދqv)(X-',:(Uy;g! )n~(." -XmJ$#*LZp>$ۣJ u,SN..%x2% B".? +K.RG_ Q,YC4Ċ+߿%k'JL pV#d,(g,7[V*$2#;l) :(/H3Y..#1!&}{!ң7̆ -Po&eh+:tGj. &;zE^)&**=fq 2.Ajz$dzE} -"[*U d.7i"w #\$ *>dW1(JP$ +{ y'>&t$q?4WqM(^ ^%oSn-D':'{%Gʂ"+<. $+,̈́q.,%:Es)X"Q(U--  .#/5>%&AJxE;-,L.Q )9%x Y*=V#NmPjd&q-."n,LAh-Ծ%)ٹL[!5?"*'Q,'#,!NZ](*.MI,.7*.,7$)](g=p'H,c/ 2 < 1J%`,0 N  #v@@%w P(j FG\+[ {> .*u-6nKWw)6S#?*C+$&  $ 1}#@d T! #Rx(ѝ(q,:  >}nZ8;;͜!*f+(¦!  |1G+_&! X.) 2#Rp#7(`h{$C[l*I-%b-]"*75($O VK4"+&9)vߵw-rR.| |+5~ E%?3 o ([4Ib#Zo'T=-P&8i(%d,&P4V0$s5%cFJ*-rO&LO$$7-=%<‘)<$ $ l#rH-lE"'R=F S0$&A)Qzj%.nZ*Y #w8?( \C&Y"R!#1!еt-!R hM+o*vmF%eL-Gn)&!$'E%9"l,`?zI~ q")m6'pF 4+{!AV:| T^8&kS S$qW&,K+{%&Ţ!J .$r!i 8vyM9% W3$$~^&#0>3hP=nZp$<!D ҁ.-A"~˩ 9,Ԅ0 s8!.d-2L".1W4-**B.%+# N32&vY)qtLr*8,0m N'7 3ߩ rwc!u·5'/"&8&HQ) &W,RK/T w)). *x#P!"Ge w&$+.-9=1 ("[U-tW>G+(F9'HWH&&G(s4k'$0L4%6+rS3 g;.B)#2"-FIYTY*O|82(8b( gXO  &Xogt! `+ޞ',q$ڪ'H(U]%0"89-=  !$,>w0 I I IP0>wT_FV0000KVTnN90 I I ICX09BL540000aI]P:NR0000 _C6\:I0000 k?^JB0000+;UIE0000D@V;00003;;8600 I00R0X 9H9E3Q0000+T3QyTnNR0 I I IR,;U;Ds@0000B@QV@6 I0000@6As>O,0000O,;N-;KMG0000 J;LnA[690 I I I*X 06944T@50 I I IX 0RHUW20 I I IJW020=0 I00B^Te<@0 I I I@LG;(70000=H3C0 I I I0COT]2x0000 9D:NWD0000WDRIRP0 I I INNW0PC482 I I00\82KgFH I000HM:9 I I I IXk095E2300002=VK3E0000,:IU8V I000=Ho1RL0 I I IRLOT]S.0000,S.;?Q;0 I I I;AXHTR0 I I IW0EdMK6G0 I I IX 07h}#KR?T0000vTC=00 I I IW00PO 70000T J~6Iy0 I I IW0B kQ"HF0000KID03EP0 I I IΰW0EPF2A0 I I I0NwKVJ@ I I I I.,Xk0J@0TL20 I I IGE42B(0 I I IB(;B(B(A0000{A6?H0000NO;VIRO0000ШO;@L7V60 I I I6 ;JLe=0 I I IWW0=SU70 I I I6x%i;LnOHT0000S61N7 1J0000 1JFW6Y50000~5V2N0000MAXAV0000VC'UtV0000y2pRC|5|00005|;UI00000՗0CQ>G0000R@aP?|@y0 I I IXb0@y2W Cp0 I I I400TWpDPTZ0 I0 I(|TZ>IdAl0000Al;;OJCP00009G 1N7 0 IN0 I I IW0IT; W25C00005CH789r00009r;?;00N0 I I IX 0429@0 I I IWy0=^pMZ:Qc I000M?LKI:-0000U:-E):I10000O38F260 I I IP0>wMlGK5 I I I I2_K5?HP*0 I I IW0U(LAS\0 I I IЩ0S\T_4:X0000#3P 7| I0Q I000Q=@"@0 I I IX 0@JG70000SNG<90 I I I(07|2CD4@0000@=@7V0000VH~OG I000GG6L0000 L6;8 0 I I IX 0>0R5!CG0000ІCG5M K I I I I6W0K6N(100003;==%;y0000+;y;UIH0000:h;:140000H4KJBK;0000OX 0>h7w9Q`0000aQUII0000^LO3QLB I I I I@CDVJXL00009=90 I I I;IEFK0000Ջ8?KF{P0000eP>kT >o0 I I I>oVE<6N&0000CKVFa0 I0 I!FaA NIe I00010IeR500<<0000USjPT 7,00007V>1%?S; I000M3PNADE0000A6A:H}0000<H}R=3E I000P3EM>? I000H0?O6=B0 I I I=BrQ=BBp0 I I I7X 0Bp54mM0000x2YD}U? I I00=?OAbV0 I I IVU&ACS0 I00 2S^A <J?0 I00*J?^U86f0 I I IHJpOTR@ 0000Y&A>T`0G@0000VK7 M'00008D}U10000 _Oi4c0eF00009E^J?T< I000_T<FNC0000G&7u70r I I I I(Xk00rJ@KM0000`RPUOb0000OOb5aN~M0 I I IW0MVM020 I I I03pKFVBF0000;=16300001O1UQOOI00003@3D0 I I I0D8S40 I I IM_X 04Fj5L0000Q-L\@5f00005f;UI0030000H:BAD@ I I00G@2nL80000BE8;RIRWR0000WRH<Q80 I I I=.K;>9300003R=0000+;UIGI0 I I IWQX 0GIEpQ00000PkWLR8r I000008rPD0000C;T_TST0 I002TX 3?IW30 I I IF^*0Sp2A<7}00007}H~O>-0 I I IO7@G?R0000R?@H 0000U|H OEL0 ICD I I I IV+Xk0CDKNE70 I00<^S=QS0 I I IA0G3FT5 I000054N;J0 I I IX 0L0;5M0000!DRIR5J0000"5J?6#Gr I I I IW0D L5I>0 I I IR?[0E4`190000 B;LnA[0 I I Ic0;H717=0000+=OAIP+0000P+O230000H63;VX8;{0000A@5QG0 I I IW0;BRK;0000v0;AOpLF00001&LFJV(V0000JmV>>JRA0000RAW96Q(0000Q(CK=@0000J;3O&L0 I I IQp&;E>0J0000JHOJ I000M=S?R0000VeRJ2A/0 I I IA/!G;50000 CLhUa4\0 I0 I480 I I I0>;VXJO0000'O;UIR0000ORTnN10 I001X ROJ0 I I Ic0;OK/F I000'8;;l3 I000Ǯ3JP;0000(7:3G5000050h@V I I I IYX 0V F9d900000?E@+<0 I I IXb0<U;KPa0000ZPaO13z00002CF D=0000?:KW 0000BW 6=LT'00001?J1R0 I I IX 0>C@T0 I%X7L0000WC4K2Tr0000`;Ml7U0000H<]JqEVH I0000HFD1O0 I I I>1OQtG|5o0000JVKGO0000;ORO40000WCU0`R0000!v<J&:T60 I I Ig<0T6;RH;$ I I I I7W0;$3?wM#0 I0 IN@UGEGv0000V{;VIRPy0000Gep5:<Mm I I I I2IXk0Mm7JAR@0000,R@1J T0 I I ITd=kM0 I0 I:};R7`C0000<5CR=?0000w?I5@L0000I;0{DU0000*UL2Q0 I I I0Q8S7t I I I IYXk07t59O;0000;5a9 MC00001MC93`30 I I IW03NS<;0 I I I<;"N+QW I000&OWUW;a I000,;aL198j00008jG7GY0 I I IS(W0GY>]?;0 I I IM:,;LnOHU I000 n0UWCJF I I I IX 0FO5K'N0000<VGAK0 I I I/0;R680 I00u8^JI>U0000F3R4zE0 I I Iz0QpPJI0000Ob@LSK0 I I I[`0E?5D< I000.<E;G I I I IG63G)00008?@Q0000TV5;0:H0000D H;H7P00000Y08ND30000A69QAS I000.0AS@Oa< I0000<GME<0000Il=&RN90000#9C=E@ I I I IW0G,ONQ I I I IW0Q2U=0000j=;E):1n I000v05VXLO: I0000O:4R1S0000JNVIRC0000R2TDB I00000BR5E0000~EV2Un I I I IRXk0UnN[GO I000PO<>B0000#5vL$J-0 I I.U0000UVCJ0000FJTe0700007;RIRSW0000SW;RIRI0 I I IN[X 0ISO<(0000<(NKOPD0000K-MN<0000 <FW6YE0000(A;>IRK00002CCK=50 I I I9V.Dp2*GKv0 I I IX 0Kv3 TjVh0000,Vh5EH? 0 I I Iu0C/pB;?M0 I I IWy0=^p91U0 I I IX 0URW Fx0000FxTe;>H0 I I IX 0M;4280000847460 I0 I BA=00001; I &9, #D IB, $ I, " I:, #0&9Z, 7Z I)*&9, $ I&G IrO I+)*&9, - I, * IH' I{, &&9,  IB, r I I],  IB, \ I, W I, ) IJ, - IB, D I?+m&9, JY Ip I&, 2 I? I{,  I, )*&9", = IJ( IK,  I, < I,  I, I, * I) I, "v I, -9 I, +m&9, % I+, .3 Il' IJ, * I2,  I7,  IS IJ I% I I,  IU, ? IN) I(,  Ig> IA, y IJ, ' I, + I,  I , .K I,  I,  I, >> I I{, ' IJG, ( I, IP, Q I+ IB,  I, '&9, ` I, r In$v Ir I&, PI I I. IB, &9 ,  I+8 I29&9J, I IHt I IP IB, L&9,  Ip IA, ) II}, * IK Ip&9, IB, 6 I&9,  I$,  Ix, % I+r I , .K&9, $Z I], X IB, & I, j I&, % I, Ix,  I, '(&9`, " IgA IK, C IB, Iw, ) Ip, r I "a I{, % I, ! I IB,  Ih, . I8x I8c II+$&9;, ) I, %\ IB, G I, I-, T IOl' I&' Ib, Wb Ix I, *&9, 9 I!\ Ig I, " I,  IPW IIz, , Iz,  I,  I,  I I7,  I, % I, IPr Ih' IO= &9r, !4 I, P I I, &9, %&9, ' I\, I,  I, [ Ih, %&9,  I,  I, \ I{,  Iw Iu, ' I, (&9, # II, &9a, @ IIN* I"&9+, ? I) IK, '&9, % Ih, & Ih, A I% IR, r I+[ IA, 9 IvVm INC I' IO&9, / I&N$ rr B' g#UPn,(:.h[u!F@%-"И VTNM+P#Ǘ!C;-O& t4!wς9E.J;*&8W(*m uѮ4]Ѯ wѮpJnѮmWaZ WaY)LG: 'B*C~+ *WWXqXqWWXqXqWWXqXqbL&OyWXhlQwWuS7X Wm^;X@WAX2X:YEaXXR o< c nIXXrkWXmX8hg2WWMl1 = >M)WXM<WWMn/: y xiF$ `0j"P .4WW&n[1XW'hR EHOWXTWWlWXlmCXWX{K?XsX4m5QX?W&mPXX$l/F*WW6 zBXkXG3jcBS V 4D/WX |jx0 80XWlE%WW98WWTGWXMnLsWXy:WWp3XWjOwX8XS?6X}X6UlCWWG9AX XL?XFX`hh:pWW+8~X2XLNWX|mAL jIXoW`mRS{WWkoX5X1WPqWXDnUW hTTnGSX9X7jOXA j6 k&7XMX[=h<.WXJ25W 0nk;BXXiaD Wlr:W djsUWXzdPPX)Wo2X3 mAX?WUj%;*WChCdWXiIXdXBcKWW3nMl$xlC3WXUTX Wl>XkWmA)X~ 3l@WX_k|BW ni%UWWk> nJlQA)"lR9WX@k;2WX >m!Jw FsX2Xo4XX-l5*XmWmE\XW#mI} /nMWX\hTiWX|RWWii=NWWN?WXB|lF}  W;WXDWyxkz>FX[XK]R*XEX$PV i3XLW;@WXuTWXIq3XkWjD<`WWCjU mT ,UXhRkmLXWCWukTWXWl$9WW-NF0 'R#XWl EWWrjV8 vhCWW@mN3X{W=4WXH@i5WX*m=  jCDv G f6XXXJQkCXUXo?XkWulOX9f3WXfncK>WX*jHh z6*XOX\AXWkIF E r1B(FWWqlh5XMX jHWWen:Xlo]VW jm3 4 +.o0JX%W DX)XQHdXEX8.k(AX8X\k;u 5HWXv7WXh=HWWOWXUhF<WXShK<  7oXjWm}2pWWij)EXUWk9XMWnDXWmrMXxX3pj:2 n AFXaX nTX-X lD O !;m?XSX.jVfWWlkq0 m1 k_HW Oj LuXWi3WXoj2oXu cHXkWhn0m  !?WXqJnMxX`WT{XjW_T=hm]V XWkVA nNWX4 ihNmXPllTM dTm1TX-X7iF # Jnj=eWX*GnD,X/XSl{FWWj];y k3<WWemPGXmX@oRX[Wt7X&XSTmH  C=WW7X1nxD B fDXaXoR8WWL1X X$JlM=#WX47lWWhjXVWX^mfGWXl6X= )jaLWWWX(X/j=>X9X7lOQXOWN i=>XsX'0WXs iEWWAWXjN;HWW@WW?tXXVl=XX+e=cWXgkAWXXLXOXn+T-WWm<W9jSf QX_XmJWW?RX QXX&WnVTXWoh> CxWL->^WWo4T qBWWOk]KWWuiOW j8X Wj5lWX!=hP7OWX>hEX^XMkN8X 3"6XtXq#k?Q &RbW @6XsWlU?X#o6X8W@#9 I*XQX#{9uX Wij8X[Wj!H!Tj2AX6WU1X XL^lVX;X:X XykDWXxhAAX8XhI) hp8w  4A'X0 8m3[XOWu:X}XHiAN 3 MXoX@j1;= oUK vjKlWej:r, iT1n5 WWXUhJ\X6XxB@WJoV6k  <WXq`m4O ! =7Wm7XdXuVXsW#5eX< {aNX2W'JXgWT7W iEFX EWGWWyo>KXl GfXtXr oEXhFWWm?XUWmOWX,i31X`X K!XX{mEWXii|@X n5WW.VWW lN &folPWXR=EWWf7HXOWl5AW#lvDG 64qWX1lKc# rlK `l; bmCXX.iKWW^kAWXOGX)Xie9 j9WWjSWW9fXOX RQWWSlBX$X^fmGMWXghi13@3 0 RBX)XmEXNWk4[WXYiWU$*;jXtWo? @UiLWX=i2` =9X(CR X2X`nT@h LnA , kl33bXUWtnS&W EhT>XpXI;o7WWl0SW  k75 7 fQXaW"nUl1 WX"i; Dld7XW:=WXTjI 5y j'7s j>eWW\k<W <hOI^ m;XW8JX}Wk>AXnK$:.X4jBWXF X)X;j7B WiLWXVU9WWB6WLlB HjV1 4X<XmJ  _J W 78WWit1 ~^lXwW2WW^j9PWhNDQWXyljFWWjEK nFXFXj: {MX;WJhzQWX?m'>WXkCWWz<WXD1o*HWXjyRXgWLoJ_XWl(OX EMMXaWhCX6XBUi<4XAWliVXYKznVWWoGUXXk2HU m)7 Z -KXtXhLhU= W lhER/XfXHl8! ) ci8WX]nAW Un9;Wkl=WWWqhLX+Xgw?WXj5GWWUwXtX{kCX8WCksWWWkN}X8XdRk+QXoWhI po?"WWG>X)Wm(E XWkZVXn RJW moMXmXvmDXW3n)GB 9kQX* m9W 'n:d UWX{E.WWlM?XXQiNX2X[k 6Xm#>m~M @ <uBWWoK 4$BJWWNmv2WX EMWWtmm4X6W'hU2WWrE~ hKWWkRz BU WX9j/DX?Wk,2WXci?7XxWnCuWXen :\WWoN| 7~iBWBu0WX7M@fXsX3"nI nCrWWlRWXT LWWchEXn mLWW'IXXXqJh0jWWCkREW VWWli2"X'Wl2cXpX,=?'WWoGXZKjDXgXnm21XVWi @ o iM" yn8WXl BWX#Gk7Xu9QsWXm-:X8Wj7 M hFWXnSWWEXW.DCX`W'n;W `KWXj>8 j?Dv6m,8 m4WWh=WX~hJXMWE5WXrlByW o:[X]WHNWX:lIp  %n!@XX[nI XXWm@UX lQ^ $k}OWWn2XiXWIWX[P%Xa 3r:'WXJhjWXK1kOWX-_iEIi 7n?WXQ/lw>X[X@@WE WX!hA9W 5_PXXBiJmWX4n6WWijG8XX:hiO oIWWmKJXWLGW eIXjWo\:Z~ k>G Y *kL N Do1-WWGX2 y8WWjjSWW!m6$XUWhw=X 1XXXk1gWXTkXAWWnB8 6zXXDk6FX"Wj; M hD0WWm7f m=9 B +mq3X?XBlE;- j8LW)iAXeXuj9'XX @UJXkW8o3AWWn12 h?9XwWLzXOXGi4.WWoK^BTWX Cl2eWWyo[T$WW[h5 nS[X)X/ziCfWWIPWW2lQ |EXXX=o 5WW3o?R o L_3WX8j99k < 3X2XImB tiGXXUnIT JUnEXW7XWHjRWWW2IXFX_mJ`WWh{NXIX~)h]CWWl>LWW|hOB ]mOWX9mBg l?X%WjG2$XWUJXX'm8'XHX\DWXHWV8iFW lKWXB$2=X1WhNC<XXgl3 G !&n7WWwl+@WuRXXmChV4WWn?qX XmFY 5 Yo@TVWWnWMWX7@XkW\C>W !mDKW#&m>XLXSDX)W?YWWlKD^ DYo`ORWX3i:lJ1X2WCOXXcm=5  nDWW:WWn*RMX4X\en7X_Wm4WX{jWo 7 oIWW1XXX0k 2XWAKWXmCoWXZ:XXW>k2d a nHo+NX]X6i'TgWX;j;UXWe0XOWfjRGXJXmMN.X fb:XXX8lp;/WXiC XmWEiJWW}mDPWX;kRA W? %jt9i +CWWXRX2W/l7XUXw|j0>8 ] eoNIWX7_=XTn9lX-Wskc8 PJMWX|_HA@BWXkR` M^mi0WXl@WXk@rXY nE`XWjm<TcWWjEW y0DXEWm0W nho5X nMXFW<X*XDXv ?X)X'LWW08WWlO1y  ebV Hl<W mLkX'WHWW'h5$ EcmJXoXpXk2 f i1@ @QXXmqk<XW>FWX1DmU%X-XzQQXWmUWXGh9X6XBnu>X7XvnvR sn=K  T}X rQWXe(m ?W TiB2X%XeSWX8cmL y CmwJWkhF2W pFWWl0NO +nRXqXf3Wl0WX-D ,P1x Z.jf?}XzX#kCX_WkJiWWhJH=WW5Er mL_T lB8X2X1!iNXz i0QW EinK| ioU0W DkX(WVjAMWWm>WX#hjBSWW\kg7k ] lBiWXJchRXHWkU^X"X!#j< X{Wk4: iwJ" , eo3XUW"iUOX# <M|WWJ5WW1k9XLWo/@tWX=HWX:o3WWoIWWJh:X9X,hK Wpk<LWXxnGXQXZhHWWn_RWX lsF fo4X5ulSAWr.oRTWWj1uX{W o:XX%rj6-XILnoW 7 )enM<X#Xu0h<W dGlRXLXo 0W~lj?rWW9}WXkBWX?WX2 yn@2WX$xl3L kB oEAXWlo?WWKlFHXtXM9hfI{XZr]9XOW>l7&XX8.m2WX5kpK M ==k=X?XHl>W lU#X&X$4mc3~9m:EXf kE<XyW^hMGyX7Wj=X;WmS? qtPWX{4X)X{n?T7XpW4WWtm C hFW mzTKXWP} PX: @j;X}XL91XWhY7XQXTon5 lh> *#UWW4-X FPX2X/kSuWWk3MWcjQWXR1WX`;?X )FX2X`JQ/o(MWW hxE fpi$2WWndOWWj2RW okQgXc RWWtLN j4WWBXXW0oVw ^llAWX|hHs hl2>X)Xl?<}WWrkC :~XOWi{2^5WWFuXWh3WXUkGWXeiR 0 cj9XAWl;9XfXm3WWWt6WX:Jl `^AWXW6iXWW44XXI5I3WWNW 38X)X:jUWX|l'EzWWlQ n3WWAO8XFXn>@X2WjO+XUXKUkr4XdXNXO <{hC2X]WnFK em;nWW(o HrlU !6eWX HXkX8E1XOWkK@ fVi[INWWujl7.WWlDWWfj-DWWyoJQWWm5=W h> {UJWX]nO$iLM6W @ll|8" tmt@XWk@ y em<WXI@m C]X %CopLXOXLk?C UniGWXzkIWXh#h9NlF< {yl[? ` y i)3|WXcm54EK)WXX,4XOWi>GX{WAmGFWWtiJ = m5X)XC m6H 1k:WX7LXtX"n,;WXUmQWXj?uX-Xe[nEX7 5h>WWoaF $^n]OKlHCW W8WWhbTWWs=X<WjTIXXN=XXXroqMNX.X!l15ZX/W+JWWm9WX7 jNW hB WWxUXOXx>\WXwnPPH p hQO YoLHX X!nQWW;WX0J9{XpXRl5 WXoQ2W jAGX}X155XOk MXXSk L MjNHWjK X_XANWWN\X)W5h> @ 5(WX0lVX8X.nEH6Xu lN,XyWj2XfX^RTWWEXi id@^ Y'l 8 X"W MAW kTs `1iWJXWXDXtW&C6XtXrBn?u m:X XAk3 Z8XOXp^kC+WWh@jXSWyNWWi75W _i8 p ho0W :IWX:RlCXXgDWX?mOWXn\4 (ky; i#9vWX\CiL N O9IWWvkEXKW^nHqWWo3DWX\oOWXiGxXmXp+kT<^X/WFXaWK WXvmHXW4i5>WWkHXAXKi}:r >W VlNSX 5QlCXmXThFNWX"TWX:l2Xu nO TXOXoi;  JovNC % {=-WXcDo={WXJrh0-@yhE Tzkj;XOWiMfXIWm;B iN U nnEWXi5X\Wi35WW:|WX$oTOXLXme9" 6(QUWWuoc5X+WQ kRxXyXwNWW@XW< X;XeqiKXDX/m2WWXlf28 ,4 WWAl0WWj6nXXENXjX hS 1XFX lGs- TX2W14XjXoZVWWBSX1XBXWWr0qWWo6Z 4XOWk4Es SXWm5^ ]nrNWW3UX Wi= X&WSRWXAhuJX,XP^QWWr< K hKO L PWX:ikkU\) pi3B mpK @oigHX`XpmTXv =}WX9K X)X{KaWX7Ho,>WXAPMLWXojPXDX:oCWWmTX$W8X2X`%6X(Wl;QWXB8WW5QWW_jU WXlkhNWWkHHk k4WWqm:_X-XHkmVUWWo ;XX".i0W3X"XpkB+WWRWW@XXW[l=KWW m2X! :WW]kLEXUX?n$5 Un%F`XX+1odOXvK3W;KWWrjO- 8 ,n1W  wOs ^ wnEX/X-mR0%WWMWWk1WXh8WW 2W h3WX*3oIF XdXTlOrWX_ l5 qn @XWk;W @lVXyXjL1WWkDSk zRlTXQX>3wX2WoP / uCoLWW4m,X WFX2XNnUUX/XSiP(XWPXOXf>WWWj;WWnDX m?IX^Wo5WXjUI 4=WX/QkEX7WKVWXKlAWXj|C%XX[CX)X0po 0X 5|m:X'WlDBWXeo2XD vkDWXEOWXPWWHXkWEmWWfn6'XMWGXX,3mUUX7W%iPUXX%DdW jjNo $PCXOXq`=? i\A+WXs=XXWnFWWHXkWuiG$X,X=oM8:WWJk@4D NX2XLjoP U/heK j8HX~B5h\OB jQXSW6iM:cWWn=WXR3XXW=iJ6X-XIoV { R}jQ6 lnR( rkAP j lVul1 WWJMX2WmDX,XGXh[IX8WmIXW1h>WW?; M "j1 FPWXk5DDX46kUWW=WX.o$3. hGj1AXSX+fl3eXQXTJWl9WWn<JvXCXJhIWWiL` 86X|W#kS N9WX[ilLlX_W3X I<XXWl4XeWpj6,WWJTX2T7WWjSXP 5kKX.W1A*WXhke92 p4k/BcWX8`3W~n;K clI?X lPWWo8 dIk0GXTW8l0WW#MWWCWWiTJX.X,mF@WW$ik=WX+BWXH4YWW%6 X2WK+X}XuF'X W$RWW>NTWXC]j=*X"Wj6WX"#o0d HE"XWBW Dm.MHWW<X2X|(kC2PWW/SXOXBdX}oRX;W4j&4WWLTWXji8WX$TTzWWkF.XwXGk9@WWiDV-WWiA W 5PXkWoWSXSX^79Xc8+WWPmaPXSWo}Q< @ ,v1WXgh<4WWHXkX8j5T mJDX@XkD4XXt8 nK0emBXY#knV`X|Wn1SWWAj :WWn<W _n>lXWkhCXKWmF(XnXuIhG=X/WlVWWmYV 0kDWXinR E MnG WXinKWWX4Hiq:1XCXy1IX Wi1>XXV o29 lCWWf4W %j[KXX-62WWXhLBXXTH:WX_OkFiWWifDjWWo;O cnJXlomAX# T^XaWiHQW nPWX>m5, > j{7pXWkJL ZnGSAXX^nFX~ nJo&1 YNWL6hL> ?nIWX+hE X{Xm8Z y:hkD SiP W T?XjW1jTY y->sX'Xg jS8WWO0&XFXWlL! kGQXdW{i@W hh1XnWCWWS:WW|LqX2WGWW}G[XWo5WXuJm#PX5B]m9 WWhRK@X W>n7FWWk'Q 0oWWnbMWXiUi+U<WXlz:WXmjU <<W mC KXXX+hDXY UjIWX$9WXln5P`GXiWl&Q% Bl,6:X#[FXOWk1 %l40oLY soDoXc7qXOX/KoWWCiN WW0WWn6WX:EjWWHXM i48XrPjGWXaT M9hFW )82rX X"\PXFX'c:XkX5laKWX^o 3"$ R9WX8xQWzSWW&l4X6X^lOWX#kS2hlNW JozE,X nCHWWi@XwW6WX\hI WW`OX XL1X<XkSXXD {h_CX i6HWWi1,XIWDn? EoR^WX3OmSX<XAkPPW }J HYnKDX5 mT5XLWnMg xjLX.WHWXevlJ;T ]m+;WeBWW%m5RXVX[oHGXXvnLAK F8XW^VXXn5WXQkHWX0WoIZW nfCWWkH ^i.Jg 2iV KXXIj<B0XCWtngN H=bWWT:WW<WXSmOBW hQWWo{8)WWChT|X <UBX}XLKX zVNX2XSj^UbWXwGLXOXhnTX)Wj? 0L`WWk[5UW rk\OXyW i!:XdXpn8:qXfX+kYE&X_Xk7B 3RXNWiX2WXlLWX>ouNXu n@ WX.jd1XXZmFXWYn=x nk">dWX4kdK Bi^;BX9X,^iPWXmFVXVW/4WW8l5XWnwLX"Xp =rXXmiP>~X_Wl7WXzD0\WXHoB= oC4X4Wn&CX AgWX~Rlg8X rnPB kHWX?kQWW&n7 WXk.A\WXPnEWkB N 0zjWX'WsAXsX71WWjEuXpXIm:, * L7WXi43X)Xn<XnX k2!WWj#P BX XLPWX:iVXKXZ1o:7-XX34j6 WX\0yW Sl:F VWWnF# 0NWWfnH{ m5AX:XqhDNWXcm2 5 nmTWWTkiDWWH:LXj7AWXku8\XwXu9jKL ]m0WW6i"5WLXkWWWX OXaWl4G;WWTmE jRISWW D X1W0wXWRXt mAXWj5OXyX^l@XWloV N"WLmJ?  j>Xz zhNXfX2nq: l2} * 1X}WUhHW Em;ZWXf{nHtW @ lt1WXl>oiNWWlG [j9XBWo?9XXmIS_X?W =WWhhE U 3imB]W MnN; *kBXxWm3)X6XTU56X2Xo%5X$WhIV o-6XWe6aXXWhR}WWnSWW==WXBnP mNlW k0GX7 @X)WhAOX@WIUWWjN#XVXfnHX'XRoY>XKX CX(W=ooFGWX\nEWW7KK isGXX.m{;.W _C=nWXIjC^ imU+WWh4SWh@]X2Xq`iC0XUW6WWSm0VXBX"FWW'i4WWiV!Xx BWWkUWXNm2WX'nTXUWi:oX>Pk8XEW/i>IX#WA{WX[C XrW0[W lY5WXUnSXMXJV 5 =(hJ4 q>NWWhUX&Wn:$WWtRW fh?U kiS@WXgyMWXXlHKWYlIPXVX/xlB1 @nA0WX7O3XXHj6WWJd Dzi`SWX?lUAWWm2; mRWXr7jXFWynSMcWW;?\XFXlPEX4WVjDWXv B)XqWeTX}X{}KW hn(0WXiuKX\WDVWXVmEWWF  zl KCWWvPX XoHA ] V3MXXW;H&XtXLYiI3WW.iiA:XWo?aX:XBel}B`X;X mM jV3W j3%X8WjNd >o@WX)WE yo<XhWTv UX X9FX2X[|HNX- `nBWW}kO X`WJhJX"W^l8 >!<XaWlcK ,52WWNaWXJj.4t <  jJ oL? HWWDWW\>X XvILEX}Wo|0X6XB1^WX/lUOWW`oAJTTjW- hM7X,XG$6X<WehUXXwo5FWWkP M BqiIYWXJkU WWjMnXRi>W}o;m @$m =WW5jIQuWW-ntRWWPWCnJ i0IXfXKn9LW jz9Wm6LgX@X306W 0oWPXW9X0 hH>&WWnkVSJXOWm=.XW>X(WhGDW l? 3izQ5j_KkWW;jP,WW=h7XKXYJR;W nNW fms0nX@XloHIWWQ7WWhk9 Cj~VWWik:8TXWjk7;^nN 1QVXXpiEXnX3=m7G X=c mb4Cc @X|WhNt Zk$9XIK(WWJ@WXri2 U _sV dk?WW.kMWWfn2a 4 l!BTX Xfh=i  GoPP-WiLXhWQ6WXqj<XAWhcKX9WlMWXxiHXwW3X(W^iQ8$l`8X[XKXXi9WXqiA&WXBoT\WX]iL5Xx j=EWW8]v (7#WX?o4PbW d|k%H @o<RW IWWQWXo@ ?kPXW^LXX nz2XWj 4X/XSl3jWW^QWXUm5 WX:XtX$F+WXhekxL[X,W.mSWWmk4 oVX WrA  bi>1X>~SOWX%mSWWKWX"jHcXDXCmx5WXnn8 MiklAWX7NWWiOWWoU9WX" l0  7XkF<WXUi6^ ^L&4WXkKL e #ni:8WWobG>U j+0W nQ oL -kTR4Th>CWWn}?MX6Xgi1tWW8nV@ D X| jKWX+nV?XoWhjJ WWPWXYlJX.3jkVWK YD? f$nD<XWh4X8WkFHWWekAWX?UXtWo8XXo$nP<XUW`LWW$hBXMXhnQN slDD hkOSX/Xpj1 jV 4 SGh=40XXKk:gWW@WX""n5WWl^1XJXml_OWXLhB;rW =h3-X{Wlh3 &:WXS>XWjNX/WlW+WXQjP2 7iP WWIX2XStWWA o1XjWVWWlIXl SXsWl1] jSW Mi=MX_WKnWWY7zX<Wei?WXW&jMXX+j=_W <>WWtMXEXCoMWWi0WWj6WX;YXFX@X)WJ5yAXFWHWX0j@W~:XXW1iJ!k3OWWj: n L 'l>Fc U _ o#<XUX6C.WXJ UWXo0uX!8AXW.oKX h@X&XJjRX/WVRWXHnZJyHWX#m*CjT  JhEX k-FXqXCjWXGWWl<DWX[nSXQW` V o>WTYE*WXyXoSL0XwW.6X<X&mG]X6WlW;XVWej;XWzQWX9"nQWWkW2XhWCk5WX#"<WX3 l2w kbT G 8X2XL |; Kj !/n{9Xu h4;  mBMXXrIVXtWibUX~ n#JWXj21WW'n BXGErWklFgWW1|WX*41WX3mVQ n9;XXOPXjX%t0(~.o.3""''%$'/C)$}$?'Z"N/ypA.M 3E+-5Zn(N11!<>'FE55.YHE.YQ ՘5+Bd<Q *O+.YtBdg5.Yۅ5.Y,E &ӣEBd*Oӣ:_ӣ ( JBdEp*OæE!Q*OM>Q*O*OBd Q Ey Ͳ*O 5*OLs.Y*E%ӣ%.Yߪӣ.Y*SU 8(: &"<<+EI-\>+l%#ak tf-1"&H$*I&kD,R"E!4~*x0~$#.p$WDI&W+#%NV _h{,$$B)=*J[ ?I~ +T`)'-?&*?.#G$e &*ZZ1&$# U,L8')z7 &k!L!:*f,) ;DX2'f=!Xm%   0! A1YQF0-  UJ*B((`!'=T$ !j 0% K.)D!T&-{ q3,1A ^ |~tE>*}U&&-TG(^\G*AP%I)P ]|$$;&•H2)vY7 M|,% j&46@wL*#/(q*I:!uC;!od$$?`&+ G +&R"'7!$yZ2&Xy,K$q6LV'% r?"Π*1s6L?| -44)`Z#E'#Y$+C*&5SY#F+{XDmS7V( 9+-D-YV : ??J-#l%  &$B'#_%<9 أ%*b%b]  K? ,9&P5 :B*C?l"~4"D.+.'"8$!-('R!)51$P"%(>'21Pu$HGt%giCQ'rؙ.&5&S+$*k%75 @U{;+ ?. . 1)FFH(KO- cSԂ)(- OF&Opy8 iOO~%g\.9!eIBY\s)Qd a7p9; | )$3unܗOO$:JYj``%! `wG`qn`k``r?zt+`P`o$-`V`zl`y`de%`~CA`{C`ta,`pn(`o{Dc`e``3i-/`Q`~D`rJF' `|(`t`x`wjt*`1,`:p+`gpS`lho /`q5F&Z`3P`fw(B`z# `li  `B``r|`~w$ I`iZ`s'`ms`!w` %`>~~`e`j*`7:j`1h.[`A,)`z9`vJl'`yu*` d`npW+`8i`w,`&`g&c)`J} `{ "b`n`}9`oQ` =.`y`z``uw`|"`~)`0f4~`T>#`$yu)``zIE`k`4`y!`2.``oV`yB"`x!*`|xxm"``4|$`UH`]w`mu`v`@`k <`g`#eT`5f)`G-`j!>`k`z+%!XS]-m3%6Y9&91J*B*fL-D $yS]f+ .; O*)m=&T.Z#+w/ "PI(`K]I4ٯ!' )!VB F&k;L$et,4?DUU<%"Y*},"Ev $e*'7$W4Cح1$+SE"&U"&ӽ2A.;&Ǎ$,RB#Rw -6ւ~?x4UZ&9l$Ɉ .,K>u rT~-?ޖ$E|^ !4f'MN`(qT -#$0&;$;,"#'4-',LF0+!! VP- q%$R"j"'VZ S7!&!z)z%,125+%b,]'Jk _3V'$+H(C$q׏ ?.)$$*x}$ *C'.ҡ! !*'ڠ"~Zc2+{fm7x&G{Q"ɓ,6 % ?)0$Bo/H#&53%<>=8 1H$0b |Qr5V-&z* &$ X%w A"%P!u5!j O+"=)v ¥+'-|-F+*+ 3 {  :ƺ m6**@ 54X$D/*HZ Y&P :(&K*/E6.#$M#B8,IMP ;{5&$O+R(.e+‡+>6T#V|A[U]<*"%VU)i*aKHPIIHU~HhH{\HH~HNH TI |HH\HmI#H5HvHM 2H~tH!H_HoH~H~H^=HfHHHBHO~Hl~I~IHHH~Hb]Hj HqHaH~H^Hq*HHIHcHSHsHHJHHH~HfHd~HHt'H]RH7HH.HmHHHCHH H~HZLH~HvH~HiHHXHHH~HeHpIYHk?HHWHi/HxjHH|~HHnH,H[H~HUI~Hp%HKI ~HHHDHNHHrH~H+H&HHeHFHZH0HHo:IEHHnlHcH} I~HH HHuI~H}HwIa ~H>HzHHH~HH6H~H[H$HbH(H;HhgH HyH8IdH~H~HHuHVHIHHH-IH"HYHHI ~I~HHQ{I~HAH9H~Hr~HkH)H~H`@IHHxH<HTI XIHVHWHH H`H1HgPH3Hw~I 4HQHRH_OHHzHHGHS~ HIHs~Hyi-6+b%"$Ǚ'o#{V ڽ+ǹ-M8#N D(f+(xT.iK-;e1~jMD! j&X[<G?,+&L%=:&^ .W7m/a3SJ [V$+?-{(!O%E* ,mg .)K+x4)Qy`WWW9"X W1w`X2X2%6WW 8^XjXjAWWXb5EX XaRe^ X =mXXWWK_ WWXAvWXJX2WWRc_YWWWN\XWF^RRX 6 WWX 5`(X)WXaLQ^3XbXWA^CWXk/5 n;WXO8_XbXbX =]^X2X2%?WXE(WWXF<>WXk0 XNXNX 8 pWX.^WXk@ gI`XbXbWNMXrXrW6`WWWFXtW IX;X0LA W8 6WXW_WWWVM7 WRSjWWXbP8k X 3XWAX{X{WKX|X|X B8^WWW9)SWXN^XWWM_WWWRWXQMWX+3N W4U ^XXWW4=X)WX<2N_WXNXk?.`6XW ?WWW2XEXEX)N_WWX<X0%`oWWXD+ V VX S X(WXaNS FZXOW I^XiX WO_WWX 1^WW_1WWX>X|X|X95pW=U!XaXaW4`XWWH8 Y%Mi 0X WSWWX C^WW XWW=`cX)X) BKWW 7`WWX V&(X W$F_XEXEX 5XsXsX 42^X4X4WArlXUW)?(WXXWG# TX[WP_wX X &RH_XXX 1'WX2XqE: XkW/4MXtXa%%WXFLlWWVF^kXHWXtLIY 4 4X3l WKUXWGE^dWWW5XX0 WX}G XWP@XtXtWGW jWWWQ= X X WI-_5WWXbA^ u uX :WWW=8WXbWAWX7W4VX WK`RWWXkO_XXW/4 TXaW`WWXbR`WWXbVX X W99X(X(XbR > >X ;^XNXN 00` XFWX5_JXjXjWQ#`!XkXkXQ WXAO^ X @_WWXO^~WWX:7WX'WyEmX W7^_zWXMXDB_ 3X}WWDfWXDXkTXWWyNYXW0X<WEX W/ZXtX13(_XX.KIlXEWX_sXtXtXbHTX2XH^W2_XXX 3;_ XVWW5]MWWW9S^XkXk&RQq XW0WXE 'X(XjJ_X1WX =FrX`X`W>^WWXb2^X'WXa@X<XP| JX<W/5X(X(W5'^DXXXXWMWXt0}X T"_XMXMWAXW0_XFXF4_WWX FL^$WWXS5XkXkWW XsW/M!WX;%WX`XaJf2WWX K`WWWMJ_WWWS WXaXNQ`WWX @b^FWWW<^XjXjX3I`WWW1# X1X1XF8^?XOXOXF@ WW0WW 14^vWW0InWW< AWXkWtTGX<X<X FWWWCWX2E`yXFXFWI_X)X) T`WWWS%_XOXO(NXtXWG XXWEWX(XkO^WWX S_6XFXFWYWXXqPDWX}0_WX]XaCYmWWW1\^WWWN^WX`_WX|X;!  X TB%WXj0WXF/BWWGO^XX 72WWX CsWWWH`WWWM,X W)?aWXjWQ^WWXbS^*WWXbG}^+XkXkW3  X 1 ^ X ;_WWXqPsRXXXXW7`XXX FF^ X I^XWW^XX.KE`X-X6?XDX'0 X<X<X P  X 20 AXXXA`WWWKX|WB^WWXbF`XFXFFn^ W4#&WWW@^ ) )X CWX}W^X <^XbXbX T`vX)X) P4^XEWWS`sXNXNX Hmh G GX S3nXFW/=^eXFXFWE`PX X &RH"`WWXT_WW43 X(X(X9 WX2WEyoWX} I`XsXsX 39WXF I_YWX}W25^WXtW6WWWTXEWP`GXFXFXbMXGXGW9HWX}0 j jX M WWXF?C_^XFWXC-XFXFXVT&^tWX?/WXPX WIiX{X{WTW X QXbXbWIX Xb="jX H_X-X-WNX}X I^XbX.K_XFXFWD`XbXbWCiaX W0>^X&X&W: XbXbX Vx WXbWO/Q__W6XW)WWWI`XXXb6`WWXbOuW9WWXbWZh _WWXbQ& WWWH WWW3`XEX(0 WX()Lt  W4H~WWXbU%X W1?& WDi^WWXA(WX./WXE IXXW1L`WWD 4Wy5 WXEXVykX XOB:^X|X|XF1 WXa/^ XbS^\WWWB XXa XFXFX 8 :X @^ XF2X X X;$XWW/X<X<X)G<WWXb>:WWW;KWWX @RWWCCXsXW6I`WWB`WWW8N^rXcX/`WWX4Q`5WWXk?]WXE.X W/WWBWXkWyJ9VWXFG_X<X<X >_+X X W6WXXqRWW0D;_sX2X2X G WX29>1X'X'X<^ WU WW9,WXN I)WX :n:  X I^ J JWH^:WWXbFWXjWD^ > >X WSWXOI\^X!X!X P0WWW:j^3WWX0^FWWXD WX}\WWX <XXWXqT_XX.KT`WWX 1+X2WW2V^ X Se`DWWX>oXbXbX Wi_@XXXbP YX~XX 5_WW4a WWX :k XXXbH.^X X Xb1^XbXW86`XWXk2, X H@XRv-WWW4^_XXX :WW<X}XWyT_AWWIAX T_X X WFUL4Z ItXXW IWWWC2`XWXiV ^ X I#WX}XXXXW:`WWWJH%  X QRXsXWt=)XW.K_WWW@^WW3`X)X)XG^WWW0 ;WX(M WXF3O XaW IsWWXbO WWWI_XFXFM>WWWG DDWyFSX>X>X 9`WW/ X L X2X2X IvWX=XWW0bXiXVPXcXW/WWWF^ X O`SXX.K3p&XW0_;WX)WN`XXX = ^WW ?[XXWW8 8 8W9`XFXFWM`WWXbI`X}X}X 3$P~~WP_WWXD^WX<Wy:M WE`%XOWWCN /`XbXb.KK^eXXW7[^rWX>/^SX;WW0_X WIXWXVZX1X1WPXEX(0WWX 2? WW/@d^==X K`XXX GXbXbWL@^X X XGWXk2^X1X1X)Q_WW/R uXDBXM]X WW5_WXkXEV_WXjW<1`XbXb.K;" ccX 2XtXFlDWWVl q) WUjM 0WXW&`WWX NX}XXkTXaXE8WX} I`XX Gb`XaXaW6^nnX@u^RRX 3^WWWRI^XjXjWI=_XbXbX TX)WXaPWW3KKX 0z{X<W/AX`XW;qXW I`WWW4 #/_X}X}WPf^XaXa :X)X 4jX WF`XhXhXbD` X&X&W?`9WWX ?XEW/NWXM I>X X0OWWX?Z SWW5 ^; @/XW8sWWX6X(X(WQWWX 1$WWWI7XXX<0`<XbXbXb: X X0LWW^ WL3_XFXF8_hXMXM Vq WXk?+`XXWJKKW:i`XXX Ae`WW=XjX WL?Z W/BcX#WWSl^|WWXbSX(W/^ w wXb;SXtXtX DX XEG^.KKX 0`PXFXF>^'WWXq_X;X`1*  WSm ? /VWWW3^kWWX Vg XXXXX BWWX SXXaXVc`WX{XaTaL Ia XWXkO}`OWXjW X <0XTX =^mWWWK.X2WWHKWX}>'WX)2HXXWXqG `WXkW?ZX MBXEW6 "WXt0a-WXO>WWWI^XkX X WWQyK pL0)X+X+X)7tX)X 0^TWW/ kWW0_XWXkCt`XFXFX B  XBXBX DqIXmWRj X;X0_XkXkX @XXW<XXF/PWXWXaRO MXbW1 WXE  7{L_7WWX ;X=X=WQaX X /8WXwXkV_UXOXOXFNWX)9SXtW^X(X(WN`XbXbX @2pXXX=m^ X ?~^sXXX 91dWXPWCeWW0WXbWKuMWWW=l_mWWWA  X BvWWWBm_XMW7^ l lXb@r /2_XbXWN<X`XXDQ ^XaW9_WW5W`vWW1X  n 6kX<W/^XX H^]WWXJ9X(WW;d2XrXrX@ _WX{XkQa`.WX;X J WW0 WX<X<X)0_WXO0oWW^yX1WWE$M 0rWX|MEX X W=\a(WXFWz2_YXbXX3_X XOD`X WXkFWWXq=;^WWWF^X)X) NxWWW@=dWXMXIOXRW!-XWX;0^XXX >"_kWWX7=^WXOAj WWW2#^X K^WX$W0c(X1XD`7XFXF6QX X W:X W10'X WEWX)WBX X WH4X W/^XEXE)?7&X4W;`WXJ`X Wj:`8WW D_X(X 0 WWW3aXjXj.K7 X(X(W;`hWWX1f ) _XqHlWWBh`XFWX3_XFXFW=X X XSWW-_XoXoW2u^WWX D$WWX < XW W WA_gWW3JWW0_X X &R3>LX X WS!0WX2 I_ZWWW=bX X5XXXXXbQ^fWWF_XaXXa9^WW ~2h`XEXEX MX W(U^WW(0~zX;X;W4)WW0X WLo`/WWW=2<XjXWFp,X|X'4*-WWWF`XFXFWHOWWW1L ! I_mXpXpX V~^XWW3`AWX<WxUX W=_i  W4G`WWXbSyX WrX W0pX'X'W:5 7 7X 6  H_*X-WXLX^WXCXa:xmWWUi_4WWX DWWGX X0 d/^+WWXbAXEW% X H`X)X) 2_WWWBXEW0AM\eX2XNE_IXrXW2WWWPAWXWX 1`nWW4XEXEWPL 0`XaXXOC T /^XaXaJQQX T^WXsXK^/X|X|.KR^@WWXF:eX|X|WJ^WW T`XiXiWP_XkXkX T ? @W{Pg_X\X\X D X}XXMaXWWC_X X W5^; y yX W"`WWX>`<X)X)W> /M<X XbI X<WW;7`X+X+X 4_XDWXySXtW"aX W I`aWWWvS^X1WXaL&WWW@4WWWJwsXOX2 >^WXDXCTWWWTmX WQ^OX;X;X 6S`XFXFXbA_UWWX>6X2X2W>`X X .KP))X 4A, WS^WWXb< aWWWHzWW0WW3V XOW3`WX"WD^mXXX R^ WK%`WW <'WWW1W(WX{3 qWW/9<`X)WXa<YXtWO=X X0`GX WXk=O rX<X'JX XNXq2^ WQ2_ X X W8M_ WWXU XWWAu`XXX ;WX(V5X Xb/=:_&XX2^X WMWXk0B.X W IV  WCwWX'XFbWWW8_XW1_WXXy0 -WXj0^ X ?c X WQX W5`XXX =~X X W? XXWWFWWW5~_XWXkD^WXDW?2`WW76_2WWWQ$2X)WW<=X X)7TXqW< %WXkXMWW0_YXFWW7S`WWA_3X|XX<V !WW/?H_X X1U WXD`lXhX W@$` WWXbK`XFXFXb6WXXqA}z u/ <XjW/B^WW)?`WWXbQ `X1X1W<_YWWWH_WWGWWW4`jX1X1W7`XFXFW2XsX0 lXtWXqEJWWW6[5X W I^X : G 6MRWWWK}_;XXX M^_UXFXFXbT[W67^XXC4 K 6.DXbXQEGXW.Ky _/ W=_IWX0W1Y^}WWXDWWXb@ UX KVWWD^WWW7zXbWXq9X|X`0^WWX 9  3X.W/ WXW1czWWWOU\ zWC;^ A AW5`WW Q5_t  X I>WWXJ^WWWG^tWWXb3X:X:W8S@WXS[X(WWLvX W/^XMXtW I?XXX1(WW%^hWWXbO^X`XW1`uXFXFNXXX0BXXW;MWXEXk7 / pX W0IWXtCVWW0 WWWyV  , ,X V2_WW=`WX^/?WXFRaWXkXa4aWWBX W9~WW0WW;`WWW7`X X WEU`  WT YXNX">WXbWV^jX}XWtO(WW/>_WWX 0f^WXkWK^X(X(XI_WW/WX}/9X XL>XiXM0 /X X XP `lXLWX7 XtWLWXB^v MWAH`XNXNXbI( OW:XtXa1WW8^ U UWI__WWX Lf^#WWWUF n nWVqXEWQIaWWW@^pXFXFWTX X X JWW@`ZWWXbGD`_WX`XtJ5 -WW 12mXaW W6^Xb5 XXrH {X W9^X1X1X <_X`X`WUS`XFXF)?7`tWWW0CWXE XkW;5WWXb3_XFXFLiX P^mXFXFWDX XN X2W IUX 3,^SWX)W|FWWX K\_uXsXsXb=g WX91_YXEWX/O)WW0_X X X)1C^XbXbX VuXkXkX 4vXXW7{/WW'X XkW}T.^qXWW/_.X;X;XF5`XXX A 4 F FX GT_WW0U /4_/WW/E~-XXX Sk] X 4g`lWX&XkFWX<WDmVWXrG`WWX0X I `XIXIWI_eX)X) KsX2W\^WWX @5X)WX<4}`WWX 3`WW4@^XWWXaEXXWF?TWWX U_WW`+X_X_.=_WWX Ma+XXX 1WW04LWXF I`X<X<Xb<^XOXOX Ew`XWXWX16WQ WWX 7_pWWXbURXW0_ WWI_XFXFJ`WX2W@Y`\WWWO`XFXFW? W9._WWWR: ? I fWWWPX X X 2_WXkXaP`WW :^`XbXW1WWWN!^WWW6=XW I`X WXkU{WWW?S^XCWWJ CXaXaX Nz7WWXb3WXS'9XXW4xX`X`X 2@;XOXOW6 XbXbX ;^  X ?NX;XDS)X)W I`X X &R0I_OWXkWtDpWWXbR`WWW>X X Xb@^WWX0_CX2WWv3`_X(WW2|JWW05uKX WLS^X;X|W@>WX_1WWXF>^KXbXbX 9^  Xb0H`[XwXWIc\WWQH`*X X W;`X`X`WL{{XRw_WWX 6XkXkWIWWX4~aX X &RUWWWA^>WWX 1XaXEI!^WX$XJWp`JWXNXK^XbXb.K@v X T~a.XbXW6WW0_WX IJWWXMT^XXX O^WWWA`a#WWW1XEX(0X~BX>WXi0WW7LXkW?jNXaXWRDtXXWG3W8mX$X$X 14 WWWHP iXXXRWW&/ X XbO'^WA(yX 8X<XEV^CX)X)W<_gWW31XWWC`JWXjW5^W7_WXMW=WWHa_WWWE`_X WXtB^KWXkX\ X ;`/WWXbP^ `W7^SWXNXV*^pWWXB\rWWF=`XWX A]XkXkX ?`>XbXb.KR&XXDW/WWW7+WW3^0XNXN 8`*X B1X;WWM WWWR0_]X X &RP+X WKe WW DM_:XW^X0WXaDf`X XO0 WWXFBOa-XWN0XEWX@nXaXE6XEWW1} dWWWXtXt.@XsXsWAfWWR`XFXF3(X2W\_xXXX Nn^XFWXLUXOX20 WWW7 X W IXXW IEWXF I SWX I3WW0^XbXb.KC^WWW=5WWWL_XFXFWTC^hWWXEhWWA WX|XYXYX ?I ~/WW/7`XkXkX :XaXaW?mWXbWQiWWWVV`WWX 9?3 * *W5 _6WW >C^X_XX=WWWO^SXFXFWR+^XMXMWL+XrW<WWWk_WXSX(ATWWX P9WXt O_XXD6WW0_aXXXV`X`XN<TkWWW7<_WWX H`X WXk6_WWXbB#WWW:_X;X|-KaWWWGWW@_XWXi1 X X)JG_WWXbEDWWXVWXa9ha,X X Q CX FX}X ItWWX FM`XFXFVNWWC^eWWW5b^WWXJ^WX{QWW?X1W6^[WWXHWW0XXWVWXNX:aWWW?`aWWXG^WXNX@X WXaRm^XWW XW05WX1X4W_WWXb5^XbN- eWxB~WWXb@\M I4XTX 5n X X XF0`uX X &R5/XEW/FrWXjXvXW0?WX<X =`GWWWP WXW~:C}BBX 1WWXb2`XFXFM =X X)=q_+WWWLgX}X I_WX`/:WWWK_\X(Xj/4k @WX<XQb AWXCE_+XXW<`XX.KH[WWWGXBWWWH X<X0WW; X{X{WRfX W0_X<X<Xb6`cXkXk&RK_bWWX 3WWX ;^ZXXXb3^ X 9$XtWXq;5WXbWBa^eWWXb1^WWXbM%JWXN>WWXFN  $ $WE /=_+XFXFXb;k`XbXWTy0X WWsAN^XXXbA\X W IXXWRWX)WGWX-Wy;WWX Q (WWXqH^X WKbX X0 : ( (X 7 ; k /)E~WW"^XkW$:O^jXbW X WW;`X-X-WH9_XXX I^XFXFWQT` X)WXaA_JWXNWOf_ WWX5`!WWWPmWXbWVb "WXXq0`X`X`X4ZWX(WPGWWWUL%WW6X<W/X2X2X 8`"XuXuX KEWWM^[X)X)X 3xWX09_WWXFMo`X`X9`WX)WQWXW6XWWN XsXsX 3WXXW|QX2X0WXt?4X2X2W: ^WXkW3qPXEWXHL WWW;T^>XXW=tWX98L9X X WB_WX8XkRa*WWXEXXjWXXXE6WW :O^TWX./^`XOXOXbMu WX}\ X'WXaJd  /`WWW4_X X .KE^ WW0H-^WXk<PLL I WWXFPw X HE^WJ_4XyXyX4\ @/PF^XaXXaUY /XXW@uuX 70`SWW EXW/U^X`XXkG WWXbV;_ W5)yWWW<^vX1X1.K5?X 7`XtWXq9%XW/\X2XN1`8XX&R5t_XFXFX 1~_WXFXFWC^EWW8IX<WXk;cX<X0 WX=XFWWLXtX<N`jWWW:XaWWDX W4^0X X G___X U^``Xb1`XXX BnWX/MWXWXaCF^CXOXOXbMhXhXLRu_oX9X9X 9`9WWJ=^WXDWEC^iWWV]}WXWX<DSXOX20X WW|5`WWW1h pX X0_WWX K8VXW0YWW:3^ X ;F^WWEE WF XNXNWN!X(W I_X)X)X ?"WWXbGRWWX 7`}XWX3rWX29Q_TWWXb18XTX 4`oX'X'XFFT`MWWWW0`jXXaW5%^xXXCh_XbXbX H^XjX W:w`XXX C5/WXFEo`WWW?X(X(W;  WJWWX Q^ H HW@w^XFXFW> VWCtXW0 =WXbW?@^  X@/^XNXNW@I^X X X1a`#X)X 0_XFXFW;p`X|X`WXCWW=WXX&W3}cX WX 4 XXXXqA^X)WWNWXF I`jXVXVXb>n_XXX)R^WWWI_WWX A3WWX 0WW0X WG^WWWC&aWWW8AWXbX H`WXOWHWXFT= jX PziWWXbXW/`XX F`WWXGLmWXbW0U^WWW@`WWXb9&`WWW7s/XFWX&Q4_WWW0 XW0RX X U37XEXs(CX(WXa1_TWWWM_WWVWXbW9_XWW6N WW0^GX GyX(W/S0WWX NQ^HXbXbX 5^eeW_XXX : hWWX N_WXXX ?^WWXD^WWXbQjXEW6!NWWX <`WXwW:R`FX)X)X4(`jWX'WMP uWWXbP6WX}.K`XWD_WX|A`XDWN^xWWX 1 *XX0_{XFXFXbBWWAWW0WWQCX+X+XFF^nWW(;_&XEXE I^oX}X}W:M I5 >WyEVWX)WP^X X 5YXtWP` XbXWG`!X)X)Xb<,_EXwXwX 6?  ] ]WQ?WWWCWW09XWWSX WXEB^WW0WXWX<5^WWWJ^XNXNWEX_XFXFWLXWB XXW>uWW6^-XXXUOWXOD`WWK;X X WJ_ X U*`,XFXFWKF_WWWWWPXMXMX EWWWNWXEWMeWWXbW'P /ECXW IvX(XjW@vXlXP/@AdXWX&_X X &R0i sXW I_#WW/8C^WWWUV tX2W IWWWT%_]XX.KFJ`;WWXXS WX2Pv^aXbXbXb4Ti  0Uy^X K:X;X @^rrX G ^WWX=_=XXXFMt WXFTe ^XAWW/4O`WW @c WWXb0`&XVXVW;_X0X0W=YlWWW15_XXW8XXW0 >MnWX/JWXFH!NWX|W5WW7cWX IWWW5_WWWJ (WX<0 O\ / u/JE]X<WXC^WWXbJZWWXIWXFNPXjW9^TXoX/EWX2X HaWX'XKWWXF6'WWXqP>aXaXX 5iWX /6^XXCS`_X}XXt;X8X8W4^WWX)@^XWWU^tWX"/WXj0LWXF=3^ X P__ _uX1X1X J`WW(Pn W0: V VW;^WW XFWW3^WWX 2WWX UX X9K s `"X=X=WA=X)X)XbU_XFXFW6o WXbW0^^JXUWU IXWWPYa XFXFWC`X WW0X XbaWXF/8n_YWWWE_6WWB WWXEX@_'WW/XXW6WWQ !XWH3_uWWX)B_WWXNBDWW0WWW8aXXXXXF6WW0bXFXFW<UWXWXk@`WXaXaT  K/^WWX>X WI^fXMXM M7X(X /CB`WWXH XXWVpYXXiK]7XEWX W/` H WRq_WX{WS`X X W6\WWWS!XOXOW="X}X}WN1zX(WXaUk^X 5_WW:_hWW)?L/`_WXOWPWXF IWX2Xq2^XFWX?^IWWXX:a WW FWXFXAoWW?WX$EWWK^ X V`fWXiW< (WX)/LXX G^`$XXW:]^  XFQ^BWXkXE3WW/Eg WXB% X6X+:y X(W I X BUXOX20^XkXk&RO5^XkX _9WWXb=|_XXX G XkWX;W LW{?f>WWX 1f_WWG^=XKWXt3_WXqWOWX)< WWWN? /P`pXEXjR WW0XW/rXLWJKFX}XX^4WWW3]WW/1 WX/:tX)X)WHp^  X RaXbXWUg) 7WyC^WXkXED )IyWWIfQXjX /9XtXtW?s:XXXXWQ`jXWX/Bt +WWX M_X]X]Xb7`WWXb2^ " "X Lp^kWWXt;_^uXWWI'< WTl>  WU^WWX Ec^WXDXF>`TX`XWSsXEXEWHr^ZWWW4`IWXj/ WXWuTF`XXX V=WXj I9X W/X WX 4f_ > >W7_,WWX<_!WWX OWXk1q]WWX 8U WWXbN*`rXMWXkT_<XFXFWEXEW I WXFXI WX1W>&WXOF^  X <^X'WXAR:X W/L|0WXt03WW0^  Xb8>{WXE5^FFWR^X =VWWW:"X X WFAXXXTVXtWQaaX MS>WWXbRX(WWI4^WW^WXW6@_WXmXP_`WX1XaJ`oWWWE^TWX%/]WWXF>VWX(X W7sWWWO^WWWWSTXjX XODgXX 2+^^WU.X W/^mWWWU X WSHXW;u QWW/L  M MW9yWXEWWW@M@p0_jWWW6XX0_WXNX>WWX X W<WX}\ }XWX;0^ & &X 1a XFXF?WX Iy/WXDHtWWWAXbWXqAWW0@ X)X 9C^XbXWS} WWW> WX(Mv^dWX}WyTa#XmXmX >YXbXbW:6XiWNWXN2i^XkX X_WWXbG_WXkWtS^ X S_WWXbLa^ ( (XNM^#XDXDX2:_7X X WB X`X`W@^ WHWWWPS_W3_WWX D'XXWDLWWE.WX(1U1X'XraWXNX5^RWW:5XFWWWg_WWX?k` WXkXE2XtX/\X3X3W?W`|WX2WIWWXOJ^WWX N WX{U8^BXWXk8BXXX 0x_WXkWCUa*XFXFW@1WW<@WXtHBWWWF`X/WW:[WW0^ , ,X SzPWX24{`mX X W1_WWH`WWG%WX1WQ{^ ` `X O `WWW;^EXeX/_@WWW@ KXXX 2WW0D/WWJr_XX.K1`PWWT4^'X8XyXqR  W5N^XbXb.KR WWX2K`WX`WFF _ /9^WWWSGWX)WNWWX JW`^XFXFX1_XFXFWAZ_WW 4"gXNW yWW0 WWg;AWXs!^TWW/_WWXiM`_WX2WO^LWWL_XrXXE4^rWX!/`X X X H%`XEXEW@^WWX VWX( I:X2X2X G^WWXP=XkXkX 1d^''X Ks_?X X .K9^WWHXXWWwR`sWWXb;WWW:{^ WR^pWWX TQXWTWX>Z^ W7MoWWXb6_t U UX 0K K^XNXNX =_XXX E^yWWW>XFXFXFC WWW@i^ H HX U`iWWX EWXFD_WX 3_WX0$t5WX vXjW I_)WWX SC ?WWXbP_xX X WWQ^XkXk&RU-X Xb`WWX2=dWW@ `FWWXbQU"WWXbD#XWP#X X Xb8 <WWX >l> ?Wz>RSf + +X B_WWXFR[WWW1^@XkXkX ? ^ ~ ~X G`WWW3iWXaWPRTW<XWXWW1/WXXqS ^X}XWzS"XW.K` WWXU/^qWWX V_.WWWL_YWWXW[WWA_d W WX @_XcXcX T>X)X)WR^X)X) L XXX5`WWX2`$WXkXEAwX X WAXXWX1M`XVXVXFKfXXX<0^ffX J^pX X X 8[^#WWXbVBX)X)X)1`RWWW4_WXoW65^WW/F^X}WO6k fXD1k_JWXWXE_YX X W9TXOX2 8X(X 0^.  WP`X5X5Xb2OZXqXqW:8WWCcX1X1XbC`XXXbI6fWWXb:_XVXVXb=WWW0'`[X[WW;_wWWE^BWWXXQX6X6WFfWXy)?eWX*WX2X U6WW6XbXXaHY_WWX 9!WXaWQ|^ X F|XtXtW>?`WWX9^X JX WW>WWX B WX`@3X0X0XbB&^XNXNX8`WX'9XtWN75X>X>X DXEWWSWX)WI~WX}-^XkXkX CWX V XrXV0`WWXb3m XwX[SQ^WWX 9  4 4W0bWX|X KWWUK^fX X M`WWW;1X W I_eWW(:XaXaXJ6`X}X}W30EWX`Wt4dWWXb9_1X)X)W;L =0CWW7^KWWWPZ^ X 1@XNXNX T`qX WXa0;XjX WKyaWWXOaWWPJ^IIX ? WWXb7)`XEXE)?S`XXWT^vWWI%KWX I^XCWW:X X0P^dWWX K-WWW;+WWWGXX|<'`XiWPXtXa:(XbWXq2GcWXXWRn>XOX20O XW0^XDXDWMjBXbXbXbF_kWXkXaTX 8XkXkX A XaXXk=_X X W4`_XMWXtS`9XNXNWV%^iXEWW; }X<X<W:`XjXjXMIX3X3X OXXWHlv,,X UX XXXXWB=_XFXF(UX1X1W47AWWXbM^ # #XbM`"WWWI5 X WIqdX ;^ 8 8W2`XX U4 XsXsXbI XW IwWX IxWXE xXWW05H_~XjXjWP=_XWDJXWWzD_WW H`WWW>`X)X)XbFRX XF{`yXXX SWWX 9W WX9E!WX: WWWQ^ WMS   X EX(Xj5V^}}X =X<WW3!;X(XN?X(WWPGX(X 0 Z *3`]WX[XaPp X)X L#WWX BWWSX'X 0^WX2WDXXXbD^ WXtX3gXNXNWKTWWW=H^MXX 2X.XpXN_ n nX U[X W IkllX UM^XWX@JCWXtXaJWWW: WXtXkKvvX ?_WXv/@WXOW|X 9X;X|/T_JWX;WULsWW0IWX0W2^WKM nXX=G_@WWXF;X Xb?>DXtW_XNXNXb?WWW@VL V,4 8 7lX]X]XFJ#iWXD I_WWX DX@X@X 8 ^X2X<CW^5XWXaDaX[X[W9a&X;X;&R8o_YWX;XJ8XXWPdXW0_XLXLXbNs^@X2X2WLVWWW@XOXOW:t X]X]W>`WWWL!YXOW I_GXX.K9^WWWG`@WWXL"WWW8X)W Ia$X|X`0WXF?l_{XXX >)WXE0 3*X}Xj9p_X WXkD c ! !WK{WXO8?/XTXTX K_WX&8XX(X 0@WX<V4||W?_zWXiWAXjWWEQ _ _WN^XWXWWAK^WWX6X*Xl9`[|WW0_XXX)ET^XXX @VX|W=WXtC[WXNWXX ILX)WXa9[`,WWXbN`WWXUCHXNW I &WW0WWMWW 0^ X D_WW QaXjXjW1WXX}X}WB_WWXb9^KX)X)X;^LWW0`9XWOX X WUX WW3^WXMXaJT&XWX U{L 02X X4]^WWWP.^WWX ;b_WWX IK 8 8W1EWX IXW IWWXb=0WWX I^WWWOtWWWE"WXNTH`\WXkWt6L`WWW3NvXEXEWM^WWOWX I^X)X) ?v iWXW ICWXbWS XiX0"/W7XtX/WXiW7'_WWWRXWWXXM^  X H0XWXOWD%tXFXFXFP$ :WXEXaS`9WWW4L 50X W/XW= WI  WW0J`WW 1XaXE<X'W/2 XXXRr^xXXWL2xWWXPWX XXXXWJ0 WWW ZX<X<WG [X(W/ WXVM_X)X)XbV?X0WXO@8`WXoXkV&X X X M`XXsXsXJS /_X}XXE  _ _X >^ XI^WWS WyK1^eWWXbP` WWBkXXX <a-WX2j2B`" 8 8X 6_/XbXbW3YWWXFR^WWX M,sWXF_|,,W9^X@X@W=8_XtXXE6`mWWX =6TX(X(X O 0XX0jWWWA5 2XtW I^ r rXbB`WWXFF.X2W I`=WWX A|^XJXJW>cWW"X WX Kq^;XXWNiWWW9]^bXFXFWI+ X G`X-WWLys (dXjX WN`FXbXbX S^ w wWCV_WWR WW=C_>WWW2XjX /OKKWR P E 0# )W2^XOXOXM^XbX)Fz^XtX&R^!WWWO#^WW/=A`WWXC_YWWW8DX WMra+WWXb?XWWBX)X 0_dX_XXi= XXWXq5^X(WWP!`sWWWQWW4^ { {X @o5WWW?_ X:X:WQWWXF?^WWWOWX5=`^3WWXT) EWWT:`XX.KUv_WXOWO_XiXi&RS_WXNQWXX]CZ XjXjW4<WX /L%X(X(W>^XtX&R X W/^XXX 0| /BWWXE{UX<X<WU_WWXbLZVWW&/_dX{XX9jXtXtXb: XXW6lWWCX W/^  X 6q_WW D.WXXJWWX D^WWX =pWWXbRWX%/ e Wy<:XXWL JWXXW|9EXW0^WWWQFXWGXNXNW7WW/2X)W4eWX2WyOXjXjX)CE`eXiXiW7 0WWWS^ W>^XwXwXbR^WW:X XN/1/`_WXsXI$^X T3_WWW>y^X X XO`WWX F^ N NX 6 WV^ > >WCn`WWWB`WXEW3hWXk5)X WWO`XFXFX)F_WX1WP;X W IWXFW9XGXGX B}sX W;`WWXF:WW*1'WW@*`WW,DLXXXXW;^ Xb=5^[X)X) B WWX S_WX`M^ X Ka XXX H wXXXXWL^WWXWXWW?WXtWL=^$XX 0^XbXWO]^ \ \XbC8WWW:XEX 04WX` I WX WuK_$WWXb6 ^kX+WXtSmWXF IUX Xb>^WWX7XWXWX GXEW S~^uWWXNKX WJp^XsXsXb@: * WU : WW0pWX( I`WW;^WWXF AWWW8a dXtXtXbI0WXbWW%^ u uX DOWXC2`WWWICsX WRWXbWD#^_X)X)Xb7VWWXbR`WWXb9X_ XXX =[_ WWX 3~ WXkD`XXX HSWXa/^WX}X2 WX)WECXCX&&/_WWWN ^XXWAaWXkXaA"]KKWK_XNXNXbQ^WWWU_XNXNXb<X1WXaU`X X WAWWW:f0X)WW7X^ X GXsWWXEXD) p 5^ X =_*XWWSqX(WWLWWX 8Q  W8XNW IeXtXBc W3S WF!eWXF IX}XX/>5_<XXX <WXOWW3WW9c`MX WXkA`jWWWS_5XFXFW@_jWWWEWXZ^WX&XaBX WJ<WWW5WW*1rXW0^2XX.K:  WM;WXbW2. D X 5> W8mXW/WXF7^**X D XtWXq>/XaXaX C_^X)WXaT}X}XWAWWLU^oWWXb<XNX1>DT wXO6^cWWX1aWXkXEQ'gWXjWC` WXWE X<X<X D  P1`kWX0XX8)WXb/_XXX1^JWWXbO%XXWXa5^WXi/_=WWXb;t^X2X2%I  :WWW@ zWWWD2X;X;X ;9`WWXB_WX}N XXX(7" fWXaX^ 4 4X 2&WX1Xk2^WWVX XbWuEfWX 5 I=X XOTfWWX W /WXXqB/\WWW@^WWW0+_ )/ 0 0HX WN`cWW0KJX W/^ W7B^KXOW HXFWW?a/WWWB$  X 1s4WWX 0NWWW0^qWWXb0W_WWX O`cWWMb^X)X)XbUJXXX08KX)W;LWWWVXOWWyS tXaXaX 2?X1X1X 3fX X X)DrX2X0^ X T^ZZW3SWS,  X 1oWWX C^KWWXbJ^LX|WDXb>Ba&WW 8_YXXWWI XbWXqHWWWI_'XW/kWWX 8^WWX5LX W23XVXVWS HWW/(WXaQ}gX XF1`WW4X Xk&d_XX'MXLXq4|_WXkXaSWhWW0^ X CWW-`WWX9WWX :WXhO^XWXkOKWX{@XW)_WWXF?WX1RV_JWXsXaV4XWWG_XbXWJ|X_XC0 WXFSWXkXa1VX)X)W7XWX %UWW0gX X0`XvXvX @`XXXbR ^WWXX4WW ^9X^X^X N WWW2_X<X0  h hWIg`WWXiV^X AXjXjX @^WW2^ X 1:`WXX C 7WWW9\ WWXbD WXj I  X 9`XWWz1[XXW8^WWW78^XFXFXbCtX W I`@XXX PWXWW?iWWWToYX2Xt bHX(W/ XsXsXbI^WXkXa;^X{XX8% LXXE/IXbXbX CWWX B^11X La/WWXb<XdWE+`rXXWNRLIWWX :^WWWM wWXbWC^@X)X)XbWVXrXV?^XbX WX|&6 6XNX10WWXF8|^eWWX }_nWXiXDC  X E_WXaWW7J_[X X X K CWWWMaXWWWG^bXXX 8XNX"^:XbWR^XbX.K_X`X`XF9+ WXbWAi_YXjXjW2xX W I^X'WX; X =`X5X5WR^sWWR`wWWXb?^\\X :a/XbXbX E=^WUT-WXt 4M^ X J`WWWA!WXF I`SXFXFKWWXE7 WWXFBWX/VXOXOXb6mXtWF WW0 WXkXKi^WWXWB^JX-W/^CXkXkXb2?WX(XI)XtW IYXW/ XaXE/P"^WXEXV_WXOXkUXWW0^X KZ^X)X)XbIWXEWX6WWX KwXkXOL`>WW(D !WWW:^XW/4 W@{ 9WW/R6bWX IcWWX 8P QXbXWQW`WWX K^/WW=0:WX)W8WXbW5 |WXF I QX2X2WP~aWXXWGn^ b bX?ssWF_X/X/XFQ!^gX2X2X Jx WXj`jXXWVWXWWQ`XOXO(IX XF<X W I^X L^#XXW>X W5;^XaXW6K^bWWXVGkX2X2Xb`XXXT_WWW0WX<WW/)<*+ W:tXXWO7_X}X}W?T_+XOXOXFQ^  Xb4^WWWG^XFXF>gL  0QWWWWWN?^kWWWEKXWWTknWWX 6`WW.K@%XNXNXD1 |/a"WWWO^WWWJX WX OWW/1e^sWWXb?:IXEXEWH  ) WzH#8X2XXQ_WW UN<X X0_WWWB[WXW0\WWWR^WW`_WWXt?d`{XFXFWJQ^XbXbX V X CL XXW@a!WWX8IX;W INWW7?[& dX KX W/Ki# I +X X$_WWX OeZX%X%X Pa X X &R2X)WW<X :` XEXE)?LaWXjW= WWX?^&WXjW1G^`XXX I 1 { /~ / _X X X 6]`NXFXFP_XXaXq9WX95q^XtW:a'XGXGXb8# WX2Wy@[7X W0`WXz/WXMXNSaWWWO?WX2GkX'WXDJ]WWW<-WX5`WWX 2yWX)J[X<X<Xb:>^XaXW>TX'X'XbJ_XXXbL`fWX0Xi8e`dWWX N^,WWX:!!WWW1"WX<WHWWWQWX(X6^XbXbX 5L'XtWXqMpX<WX: XbWMX<X<X)ChX(WXSE dX WW|I8^[XFXFX)We`XXX JWX 08 y/_WWWQVX W; = * ItXsXsW8G^XXtX.K_WWX 0:a!X'X'WOXXaXaWJXNW IYWX7n^WWXb?`XW/Ma_2XFXkV_t X <aWX1Xa3 vWXF?X;X;Xb;WWWO^WWWWSWWX 5rX2X0X X WD._WWX O^WXFWCX;W\^WWX I^]WWX AOWX}0RWXtAS XFFq_c o oX D X R~XbXbWOXXWO WWX T_aXEXEW>;WW0`WX,T^WI_WWXbB X(WW7]WXFRKTTWTaWWI"^XFXFWQ.^XFXFX Bf^WWX H,WX>WWXOR_X X WKWWQXWWXkV`,XXX KbTWWWL^MXEXE)?Ax XW08L D DX H`X WWM`X`XiO4X W/!WW/V^=WX%Xt9B`X+X+XbK WWOK  X 0`XNXNXbShWX IXXW3X X/N2XWW9XXWI2* N NWKU^ L LW>`WW.KBo^WWW>2WWS"yWW0^XXWDLWWW5^~WX2WEIzB_FWXEXE|X)X >`jXXXF;X XM WWXqOWW 1G^yWWX I$WXk0^WX<j_XFXFA2[jXW>^XbXWUU^XtX&RlX2Xt>|aWWX SXXbXbX W1@XWOSWXWB*DXEW IXtWWKWXkQhX WWF:WX2X<iWW0_zWWW;[<WX 2`XW/4)`WX$W4`XXX 5j^XWW=_WWXS/^X ?_XX.K8V_hX X IoXCXCX L-`WXDWP`qXEWW8b^XFXFWU~0WW:#X W/TXW0NX X)#f^X R_X X &R>[ gWWX 0WW0_ WWXbB`XXX ;zWX)W3 _( V IWWWRWXt0M WH*X XUW]X W=^WW_rWWXbG1.WWX N)^IXWXk:{ X 2WW:^WS+aXXXb;6_ X WXaUXXW I_eWWA^eeXbOaXX =WWX9|XXVUP^mWWXbMVWXjS`X}X}WVn`XWWE[wWW07 :WWA ;XWXVcWWXb3yWX:'X=X=W8_X'X'WR AX X X)J/HCX X X FDX X Xb> 0XXWW2Q^WWXbGi^YWXEXB`WWW8[qXtW I`WXtWS WV6WX)W>iWWWK`ZXXX KzX WWyS`vWWVLX<X(%jX&WX Q_^XXbX.KX}X}W9TM X2UX0WWN  z WxTTX;X`Lb 1 4 4WQsXEWX<_XXXE`cWW(3`tXFXFX U^hXFXFWJ_#XbXbX ;N^X|XX S WK`XOXOX ;=X;X0> J 2/Hw` WWXXN_XFXFWB WXCWG8XbXbX KWWD X 4XWWM_XXX I W0`WW&RHaWX1Xa8WW/V_XW/oX'X'WUf_WXX]; XiX0"5X X)/)S`9WX P@XbWXqW  UWWWuF^X)X)XbJ_WWXF< X WCb^XFXFWL4`WW.KF^SWWC"TWXFWH (WX1Q KKX L`WWXQzxWWSrnX;X;XF3 XXXb2X2WWN`XvXvX V+ X WNgX%W/hWWX 0X #X X W2yT  XbE`_WXkX2;,`WXDXVE`WWW:^;WWX AkK I`tXOXOXb:<OWWH WX/?B^DWWXbF8^WWWL_WWXb:)&XbXbX ?KXkWXqJ WW8>XW/R^?X X WDaWWXbG. WX|W1`WWR`zWW KWWXbP_XXXbMQ^KWXb.K 5WX( XbWW6g WI^DDWO@XXXXWI`vWW(GP[X 0 WWWN`WXT^ZZXb3{X;W I XW0^XbXbX PxWX_ XX.K;WW0N`WXLXa9^uWW0MFUWXFX4PXDWW|=WW0`cXbXb.K2]_WXkXaR^XXX>_WWX T`XXXXX 6X}X ILXrXrX UWXkWtDhWW4rWX1XqAWWWuC{a,XNXN ?WXkXU,XsXsXbOzWX9WyBL ?0X WWO WWJ   7 R\ WX2XqC`cXtXt.M0X X0\yX2X=aUWX}S_WWX81`XWVj`>X)X) G WX(.KXFF1WXX IWWW3X2X(BX)X)XbE_XNWWI?XXWXXSN XOW/Ng^XVWXaK#X}X}W=?QX W I`XFXFW7RWXFXR0WX2WvB3X WQ^;X <XXXb8}^<XXWK WX` IWWW.`WWWG7WWKT __X EWX./L F 0 WWX S^CXFW/WXW 3XWW94WWWVzWX(_GXFXFQ3XEXEXFQWWM&WWXbF WW0^ X XX B`kXrXXE8_XWWA^ XDWWXDGu^  X JaXNWXqB^XsXsW=>aWWW4WWWQ^FXbXbX S`XjXjXb2_WXiX M_XXXb><_YX(X(XFQ_XbXbX UZ`YXWX_"XFXFW; WX2WFtMX)X)X 7 XtWA_XbXbX 8XW/_XWW9QX XOWuF_XbXb.K5a XsXsXFH[ `XM^GXbXW4 _vWXjW6PWWX)4X W/WXY/^WXD/^6X W/`CWWW>`WX)/G,XaXEGh`&XXX> WXbW6WX{F^W2)X X WLX}Xa0  < <X RXFXFXb5 XWW2 ^WWXSq`HXXX =<_SWWX 3aX<X0WWWSWX_<WWXF6XXX</M._1X)X)W; cI^>X~u|WWWzEl_WWXbA M MX GUWWXbEXkXkWG^XbXW?*_wWW 0VWWX 7 XjX&R} <^WW@_X{X{X ;^WWWV)^X WB`WWWS_A W6jWWWW;`XyXW?^WW.K:s`.X|XW:_YWXNWJWXtWzK6^XXkX .K CWXWA^WWX 4oWWX ;PWWFBX X)#fDWW=fEWWWV  W8`WWX S `WX I aWW0`=XNXNXbI`WWX JzXXWSXiWMe_xWWXb4<^XaXW|G , ,WMWXNWBY<WWJ+XXWWG^X ?^X6X6W9[WXXq6 9X W/S \X(X(XF5^XNWWG^gX`X`WMY_XXX 3XXWWU>X W8 X WCs X ;^WX'Xa2/WXO@e1XW X HWWW|1{WXE IX W/WX I^X 9j_XXX M5`WWX06X XbM^ W7)XXW/=^2WW7 g  X E_AXX.K>`X|XE^?WWX`GXXX L WS kWWX M^WX$/X X W:l`jWXWWU^XBXBX N WXU) iWWCHXW0X W(U`;WXkXEWd`NWW Qv aX WN bWWW2XXa@`_XtXX2VX|X`0`X WXX1WWWG!X<WWWF~X W I_yWWWAWW08d^WW?[ WXOQ^XX?(WWW6WX<`WWW9GWXEX I_X_XC5k^=XgXX:_WWXNIaXXXH 8XiXM0 9XhW/I^WWLWW0|WX< IXOWV4WWX N_&WW&R;[^WXtWFWW0X AXsXWF_`|WXOW;  !WXEX0 X X'^ < <W5 XW I`XFXFD X<X<WH WWWBz_mWWW5OWWXb8`X)X)Xb:8 ,WWX : LXjXWD_WW V  X1WW@~_t ) )W8`5WXyX 6R^X_X_X < ^*XXX I1XjW1^+WWXPt X X W@TX2X2WA`HXFXFWVY_WX4X8_X'X')?9 ,XXW: .XW/^XjXjW4_VWWX)2^tX2X2X ;ffWXk07`IWW/^X X XL^\XbX a WWV0^WXFW|?XW/X'W/`XXW/Hm b X Q0_,X X X U^WW/TWWW8RpWWXb7WWWL>WX/@qXkX Wt7WX`WUIWXW I^X R_WWJ'^XMXMX <^WWWL^^X!Xc`WXB/WWWX N5#WX} IAXFWXJU+WX}?M W<@RRXOW I^X&WXkV`X X X FX X'^WWW=X W0wWWMdXWF^  X =_WWXbO_WXXXaM^ d dXbT;^WWW> ^WWW3^@WWXI^vXsXs<3XkXO-^WWG^ k kXF>_WW Qo_hWW&R;:_RWX[;5xWWWD:_~WXNWJ F/3P_WWXbV`hXFXFXb6_XWG_XWWG9XX0=qWWWP_WW4VX2X0`WWWRl WWW03_/WWW?b^XbX.K WWXbIXWWXb:^xWWXQWXWTWXF I^ > >WA^xXEXE 36X'WC X DX WP'`XXX K~^X)X)Xb8{XWXN7^ N NX NfWWX C`XXX RWW0^ W@S_XtWXqODAX W9BX X WUWW0`WWXU`XXXXXF;WX I^X)WWC_XXX 1X}X}WN_WWWI@ XkWXqN8MWXbWOYWXaXkS`X(X(X >H X FC %WXbWAWXg9?`1X X &R:B`2XEXEXb@z WX<7XaXaW:6^XFXFXF5_|XFXF=`XOXOXEi^X @ WWX 0]X(X(XbT^XEXEXb3VXXWAzWW0XXX<0`SX X .K=PWX; I^aX)X)X 7PXiX:O`GWXtWL`WWX M_X"W I,XWWB i /ME_}WWXDX W/`X X .K?_WW MX WX^X`X`X>^WWXFP`kXMXMWC^. < <X Q_IWXMW7dX XXM$^TX{X/WWX P7X)X Mz@WXt JXWW/U`:XEXEW2E^XWN`X X &RAn(WX%/`/XiXiXb64_FWX(XDB^ & &X 3n X<X&/^mmXbIt`XoXoWG_XFXFXb<REXOWW9aXWWHaWW;WWX)Q} * *WR$`+WWBU_fWWXbMI`WWXbHWWXb@6XXWAA  WR^WWX L^{{X F_XX&R6`(XbXWOX W/a*WWXb=X)X 0L | I I   X K^WWW:X1X1X 6RWW0)WV # UX=`WWXbMWXWXN4_WWX)F`cX2X2%5w_WWXbEXsX'07`XjXjX G_(XHXHXb=XEXEX 9R[WWWJ wWXaW6fX X0`X WXkA7`)XWW3:`zXX.KBvZWXbNeWW0^`WWW;xX(X 0^wXXX M^XWWW]^XFXFW4^XDWX5\ WWX)CT  WOX ;V`WW 9`XFXFW7U^XbXbX G2WWWP^XtX. `XWWJ>)X XbEQ_WWXb; WWXqM@`XXXbC?WWWG^WX1Xa4X Xb8`XtXt.5`WWW4X<X<X)7aXrXrXb32WWBQ`X(W/  /X ;WW0X0WWyPXXWXXR7XW/N^S<WW7^XDXDXbL*^WXk/oX(W I"WX}3WXd1MWWWy: `EWXkXE1X WWz<4_X)X)Xb6WXb/`?WWX>^ WWX)4X W.KXXaWTJ * #/S X ;^_XbXbX N/_%XWWQX XFV`]WX?WSB^XIJWWXq>t^X X WLcXaWTXXWEb_WWWCJ  WI0`+WWX3'WWWGK/_X<X<.KM;X2XtXU<XX RX}XXaR,1XrXV0`#XW0^ " "X G ]WFQ4X Xb;**X W4?XXWR_ X 5dX2X2W9^X+W/ XOXOX >&XNXW:M^X WWJs GWWC HWWWT^wwX P9WWXbE_EX6X6WSpXtXtXRXsXsWQXbXWCaXXWA]_"WWXbH^6WWW:m^WXXR^7X X Xb2%XEX(0`ZWWXDQXXXXW6^ Xb8^kWWW7WX(^ X =X<X<XbD_WWX 2 \WX;=KKWE^WWXbSc # XF7_^ 2 2WJk^gWWW:]X W/Ok_XsXW0XkXkX J2_}WWXbW ^WWWQiWWW6jWWS|CWXa!WWX K  Wy?^)WXtWQ  X J]_WWW@x_qXXX U.`WX_WV^XiXiXb2_XWXkL`WWWA;`WW OXaXE0WWX >SWWG_XEWX]<8X X)H?X<X<XbS^WWXbM`zWWApWXtX>^hXXX 1^WW.K7^WX;WT!W8yaXX)04WW/4^=XWXC W19_YXOXOWS^8WXaXa2X<W/`pWXIF X1W&R`=X X W7CWW/ XXW;WW/U`zX X &RN^;;WOWWWRWWS]Yk X)J 8 8X >XXTXEnWXjXtH^X WXkC^X N2  X 6aXAXAWQY`4XWXk9BWX< \WWXbQX XbK` XhX X2H`fWXMXV`bXXX A.`X X15_\WW/3X(X A,^XWXi1XeXI/V"WXXXDN_XMX0VKWW0 X<X0X W(U^ X 5Y`XwXwW= XMXMWASXWWNp9XkW9:XXWW@XXW4 4 4W9_WWWIaXsXW6~WWWQ^X 2b_mX.X.X B lXDW;X WWWR@WX)WCX XXW4_V X < XJX-0 XX W/XWN^WW/^CXbXbX F6XLW: _X)X) JRa X;X;Xb5^WWW8`RXWX 2sX`X`Xb:_XtXX7`mXNXNXb4WXsW@X`WWWGX WG4eX`X`Xb<^XFXFPMC 1:X X WMX X XDWWH)WW:WXXq5 WWXb7^WX1WExVWXEAWWBu^)WWW3J^XW9_.X1X1W=u^XJW/W E/HWW0BWXjWM4X2W I_WWXb1a-WWC`tXXX M X'WX17_qXFXFWE`XFXFW5TWWXRWW5WX 0 D_XsX/^XbXbX C`MWWW;SWXO@4`jX<WXMWWF\XW/XqXqX U`MWXtWU`WWX 4`jX(X(W3cUXW0VXUX" XXWA^iWWXbNWX(XDE`WWX1" Z /WE:c ^/WXFE`WWX 5_YXXXXWB_XX.K1 HYXWX|8i`WWX VdX<W I_3WXsW5_\XNW I]XWXWWDHX}X}WB4 WXhW= WWWDY /XXX O_:WX|&R WX)Uo /_lWXoW9^XbXW@99X FWWXb01X'X 0^X X W04WX)W4[WWXb1 v vX 2WW/6 XXXXXTOWWOzWXF I^@XtXtXb=XkXkWD ~ 7 7X >$^XEW4`WWX =`HXOXOX UXaWWA^WWXb<`WW$t=v_PXjW/F^~XWWV` a aX Fv^ S SX T WWWM XWWLjXkX Wt@XaW??_CWWX;WXF I^GWWXT_vWXNX V X;WWFX T /WXF?`*XXX TXXX = XFXFXFLLWX|W3WXuWLYWW&/`*WWXb3C`.WXWXkOM^VXNXN&RP&X;X;XbU_ X6X6WIm'XaXWS^XcXcWD]`>WWUd MX)X ?7 W48WWWD`#XW0WXOF_X_X_X I|WXD1HWWXbDx`>WWHvXEW0 2`fXVWW:GWWXE IXXjXjW? `WWI[X2X2XF9_XbW<`WW LX Mwa XX.K6$XWXWWF,WWX 1;55W? M/NWW@@WWW;`XXXK^WX/KGaXWXk<`WXOW6WWXDU}%WWIWWXqFM I5X W/`X`X`XBfLLWJ_XbXbX 9J^WWX UE^X 2jWW0_X:XCP_XFWXMXW0X{WUsXDW4WXa I>X XF@`XXX T`tWWW?<XbWXq@`WX/;8X2W\X X X G^NWX\/X2X2X D WNj_~WWXFX)X SOWWWVa^TWWXNQD^UXFXFWF`WWW1XWWyIWXA^^XXW3{`^WWXFF0_WWWH X X X ?,^kWX^X WXF0U(X X W@_WXX6^yXWXJo^\WW)?JWX1WR WWX ?{ WWWV7_TX)X)X<_XX.KEXXX < iWW0_WXq; ^=X.WX3_WXUWB|WXEXSaXFXFRU_eWW<XX[6_QXXX 2 ^6X)X)W1^7WWW6^WW<_XX.KVdWWW6 X M^XWW<%WW04XXW6^TXW/ XjXjXbJO_KXXX TAWW:BWXEW=CWW"WWX#?nX)X)X J_WWX 3Z_|WW 7`WWXF? %WXO@N^WWWL8WXaWC)XXWW9RWX(W9 ^ XbFWWX:X XFLXFWWDOXW? X2W\_X X WU`_X X X ?^ XbN@X;XDTFWXEXO_`WXNX4WX0M`^!WX{W4W&X W I X2X2WU  * *X 2^XWXk@^>K iXSWO^WXMXa1`XXF/`KWWXLX W/^bWW2`WW QAX}XWU"WX;PO X1W I @ @X H(aXXXQ^XNW=_WWXb3 WWWHWWWG6GX}X}WC:^xWW.KQB X O^WWOc^XFXF <{`_XaXXt> XbXbXbR8X(W/_WXJXE5WW09ZWXXWL_XW@M XkX W|E_  +/D^yXNWXkTwXSXSWULK q G I^XDXD T RXXE`UWWXVA^XWXa61_WWXbD^//WK _WWXbU_2WW^WWX>^XbXbX A_XbXb.KRXXX<R_WWKWXO1<0WWX0> fXXXXWGWWXbRRX1X1WF^WWXC#XkW/M_ XWWJX<X0 WWJ^`MWWW? X WR`jWWW7GX WBWX9XW2tXXXXX <_[WWWGp O^OX|X|WQO_UX X WK oWXag=I^XEWXt2F^XtXtW=KWWX Is SXW5   X O 2 { {W6% 4XX}@X W7~`WXyXk9WWW,X}Xa0`bX X W2;IXXWHO`XEXEX VD`WXaWF WWL{ WW&/^nWW1&X W/^ X E XaWF WX I`jWX0WC^WWXX>YWXF0_GX X &R2WXt 3 XaXE d@ WV:AWWW0X<X<X)E-^`X X XbQ 5X]WG^XX.KP{ WWWKPWXjIb`WXtW3R0HHX 8^XrXWBX WJ^WM 4CaXFWX7^\\X R9_X WXk?XXWQx XXWE XaXaWH5XOXOW4J ?/^XXWOWWX 9:`X(WXkHe!eeX MyXW/^bX X WM/^WWX K,^XX.K9`XXX @UWXbWCXNW I WWX S`:WWW6 ^X<X85Uu U' , ; ;X 6`8XFXF6glWXj/[ X <^}XFXFW2^pWWWCA^TXrX/`MXXX E^WX4X4X <^WW BM^XFXFWT`X{XX(3 QXtXtW7`XkW2`NXX.K7WWX >^XfX/6WWXbL(^WI_WWW`vXtXt.UXhX _AXFXF8-jWXL/ XNX1SaWWWHV\WXkX>X[XmLMX WX2 I_?WW.K:}WXE^WW7`X X XM<`X X WK WXW6X}Xa0M 0_WXyXJbmXsXsWR WWX N^::WK:^XkX X WP^XFXFWN^DXFXFWCX}X}X)H XXXb99WX0Wy4^XW/_$XsXsX C^ X C_ WWXbSXXa?=^XXX N`XW/`>WWL WXN/UhX X X)CR XWW:_gXbXb.K=/_WX<W8%WWM^NWXx/_X|X|)?G{`-X}XNG_7XNXNXb4NWX)WO" XXj>>WW5_WWN`XXX 2 WX/:Q_WW UHa&X|X|XF_YX|X|Xb>^ WWcWWX ;^ X; y yX <N X UPWWX N\X|X'J`WXtWNX 2WXB1WXEXJ&X)WWR>.X(XNF _XFXFXbQ/XFWWyD^WX</^WWXV\^^XbX WWXFH;`XbXWB %XaWGEWWXbQ[XFWXq8^\WWW WWMs`XFXFWGCX)X 0_X;X|X>@WX/^FmX;X OWXiW?BX1X1WO`<WWWW*_GWW Q [WW> WX< ^DWWXbJWWWS WWX A`X)X)WDa WWXXW5hX Xb@E^WF `WXEXE)?K rXXX K^WWX W(33W4WW @_XbXbW2,^[XbXbXbAEWWW8gaXX;?O`XDWjF_WWXb;37XW I g X JT)X;X;X 7$_WWHF U  XbBj VXXWV>^WXrXK*HWXF9FjXOXOX F-  X TnX|X|XbU^WWXbR.WW>^ U UX HXWaX)WXaL#`WX?X2@#X(X(XbN$XEW/B^X0WW=^PXWW<^WXjSzWQ8_,WWXbKJ C CX 8h_9XFXFW=oXEWXGXW/`KXWWI^WXNXNGX}X}X :WB `?WXkW<^WWW9 YWXt LXX0^X2X2X U^X(WXB^XjX16E X}X4^WXOjN~WWXbU 5WXEXH]WX1XkUp`WX /I_X<X}WNWXXW|1bX2WWTM+WX1WLM L 0^:WW1`XXXb5 dWXF IWWX NXEX`WWXbRkWXW9a WX1XqD^9XFXFWO (WX VWWW7 ^gXXXb2k`X)X) C,`WW%O`UXWWCa WWWG0X)X)W7^WWX:XaXE0_nXWWNa.X)WXa2WWW>0VWW7DX(XjX X W= ,B`1WW @`2XXW97WWX J^XXW;XaXE0^Xb7 _@XEXEXAoZZX QpXW I WWX Q^&WXNXS WWWJ| WWFh XtWXqGX X0WWB{`X X &RLD;WWWPG\WWH_WWXU] eX{XU?z   X 0<`WX[WHj`%WX)WH|^G X :WW WXFWKh`WWWN%^HX)X)X5`tX X XbV`XNXNXbQ_lWXSXOJ, ^/,WW4pMMWI B X P ^cX:X:XS^ X <_WWXbA? X<W \ `TuDDX 6F`WX8X 9X W<2`WX6XOR'WWWA EWWW3GWXs7_WX_WM^WXM/ X 5^XfW O^WWGFWWX 2`cWW8WWX S^ XNWW7WXFXP_XbXWWX;W8XWX)/K WX I_XXWE^XbXbX ?5_TXbXbX SVWXOG^XDW/ X{X{X)P\ WWX N+XXW5gpWWV^fWW.K3^WXkXXS^\XkX X_WXyX PX WWz?`WWW=aXIWX@(^XXX >`CXWX @aX WIWWXbE_KXFXFWJt^WXkXaV XXWRH^XbXWU X 8 YX1Pa(XkXkWO|X XFP`WWXbR`WWXS<^zXXXbG' X X X W)dXXW2`gWWXbMeXVW:QWX1Xk> WWXb9gWX IX)WXa6(^ F FW=`vWWDWXaWSn 1XWXi3^ XXX 3`WW 0_LWWXbHn_aWWXb6WX 6pMWX)<+X X WEXtXtX Ce^XtX/^ X <RWXjW7^8WXEWMX W6a X X WD^XbC_X{X{XF@^WW.K2MXCXCWRX1XsXq6 WW;& X`XyR`WXSX U5MWWWW@ XbXbWSx`@XFXFWCX XP^  XbV_XbXbX C`XFXFWL^WH8 XWT#^WWX BWXFWt8`X XbWuSM^tXXW<3|WXF I_X-WX3WXXqC X Ev_&X}X}.KBGMWX}0WWX 2`WXEWC\X X W6WW9nsWW0^ X 9_ XXX V^WX1Xa3`XjWW0XFXFXF0LWXsWJ_ M MWT WW0__X 7`WWXbFVX WWFE_eWWO^PWWXMWWX L'YWX` I^XX.K?tWW0DU_SWWWXXW?``1XX.KJ/^ h hXCOXvXvX : XNX10 X WD(WXkWtD^W<aXsXWG" wX)W I WXEW5_WWXbR W WX E`WWWPX;X;X JBCWXbW=DWW L uWWX A^XDWXy1EX WEWXkU=o X5" X 9`WWW2`<WI`)WWX2^WOZ`DXEXE)?G_XFXFONlWX)/FA_@WWWM`xXtXtX =Z^TXW/:XFWWJ& X M`WWK&(XX F_PWX(/HAWWW=$_XoXXkGWWX WU^ X B?^WW vXNXsUWX< IWW0^XOX1vWX|W3_XX.KCqXW.K!WWW22^X X WTh"WWW4^nXkXk&RP^WXWXa3^oX<X<X C GX W/^XX.KC3WWXqBG L`XXXXWUXDW2^ X U_{WWWNXsXW0^TWX&/  L XsXsXbA0^WWX 1j`rX0WXXI_<WWXbTp`XWX;M WWX A WX}% XW I AWX1X 7`WWXbQB @/^WWWK_$X1X1X V_4X8X8W3sWWXqP`X WJ^)XFXFXbG VWWW>9^XbX _X2X2%O  mWX} I^ ) )W2f_9XXX WfWWX)9o9WXF0^xxX 6WXjWKB:WXbWD ^XEWW2_WWV'_WWWO6`%XXX 8aWX{X :WWWP_WWW=! X N^X X ;^XtXtX2(WWG^ W1`X WXkJCX W I^XOXOXb3 X)X)X)Bw_XWWC WXbW5aWWVW^X(Xj7 sWX( ILL)0 "X0WH 5WWW;~_WWXC)WW/u 2WWW1`TWX;W3^.uuX <[ e/RWX}01WXa IX WLSWWW>{`XbXbXb>X)WWtG^WWWH^WWWI,WW0_!WWXbAX0X9`uWW 9`XFXF)?W#XNW I3WWX P 5X<X<X)8q WS IXjX X7^WWXF^X2WX:O^-X}X}WRWX/NWWX 9X2W0DlXW/@R_XFWXC^ & &X Ga_X1X1WM_WXbWH 6WX}\_XbXb >(^ | |X JWWWSWXj:]XXWE WWXbK XWW|Dn#WWWAdX X X ?^XbXWP X W'XW I`XFXFV+`WWC9XtXX G_OXbXbX O_X<WXiS_WWW1WXXXDR]WWX F WW0^XXWQn 0 0X LWXOP_XLXLXbA^DXXX N]^XbXbX D`WX|W8 8XXX ?^XMWWW_XXFUzkX}X}WK X}X}X 0"%WXOO`XFXFXbAhWWW18_XWX K^  X 2 z/? WWX 7aWX}0$X X0_,XMXMWP7 yW{2K z zX NVGWW4n^DWWWS WX I`RWWWVs^ppX LXEW0lX|W2<aXFXFXbV`X<X}/2_WWX=sWWW=X<W.K^X OWWX W?XqXqXb3\_LXaXaWE0`8WW.K>= _ _X V^WX-WU$^WW1`WW6rWX0 JL n E IbX X W<  W>r X O>_WW FDXfXWX WUWW(1~WXEX U ^WXX+@IXaXNXWH  WXCQXiXiX 9X W/WXaXXUWXDX>+WXs I^X'X'WR _WWXb5lXZW(U EWWX Ld^DWWXFH^XFXFWUq ( W> $WW9%`WW1 %WWX T_OWWWQ_XXX Vr^X X &ROOaXFXFX)C X D9[WWWUQWX)WO`X|X`H %WWWL^3XWWB X X W:VWWWGJWWT^WWPh  WNyX W9^ X L^X&X&XSWW2XbWVXLW2*WW0^ u uX CMX(W I`sXXXCaWWXXQ^WW:4_|XX.KR KWW"ZX WWO0`WWXb2^X WH_XDXDX G*WW0WXk0WWK`WWX)2S"WW;}^6XbXbX TOXCWF^7WWWLKfWWXb: WWX3WX;C^ Xb3_hWW.K= yXsXsXbEW^WWXJXbXbWNk>XXWWt<2WW0^ h hXFS4VQXX<9wSz WI_XiXiXbR6X5WWx;i XW I`KWXkXaE! WX} I^X 0^DWWXbMWKX)X Qf^X0W/_XMWXkMWX)WJN^X @^KXFW`nWXD X 2(WXF8K^)XXX 3_gX)X) F`XbXb.KE  WWX <_3WX;X3T XbXbX QP X Ju^XFXFW05XEWWHXWW84X4WWC`XXX 9WWX <~^WWX 5+WWN>WXaXN=^)WWWSY`iXNXNXb1^WGV_UXXWU`XXX<^WWW:nWXX I`GWWWU4 WK WWWB'3WWX5WX</;`X XW9`WXS^XWWHX^ X <WWXbD X X0K 0WX2VXWW7 XWA {X1X1WALXXPW IaWWXbFIXMXMWJGXbWXqVO_eXkXk&RT1`X<X<X MsXrXrXFBZX WVI &WWT_WWXbDXsXW0WX 9^WWX ?XaX&R_YXXW1!_$X(X(X 2^X1X1XbW<WWRXFXFXSWWB _{WXtW1^XhXhXF8 DWWPxXX&I X)WXaHy X}X IuXEWS l /^33X ;_WXW> qXXX Du`WWWL:EWXbWQ]XVXCRX X XQ, WX9bWW2WWWM_WWPWX1WTXtXW:TWWWW!`jXsXsW23^EWW?X W/`jWWXqNWXXqB$aWW Kx6X W/`+XX 0cj@WWy^WWWD^3WXkXaTX X WO`SWW.KBWWWF  D/iWWHjWWW>^WXkXE0 pX0XG fX2X2W2UWWX NAWXbWBWTXsW0O WX|B !WW!^?WWWW$`WWWI/`bXFXFW?^X.W/a WWXbT_ W8:WWB^pXPXPX KA1X<X<X 12WXWW? XXWBHX X@.^XKW/XW/^;W;g WW"WW9a"XbXbW8UX|X IL$ & IFX X X E8`XDXDW?^XK WW D^WXrXS$WWWEB((X ?XEW X TwWWXbI^ . .X 52X W I`WWXb4X)WOx3X W/X W/ d / bX]X]WJL cWX0W0 8W2__X;XDQr * *X > X<X<X)E$ # 78_XXXXX7 XXW2q_YXDXDW:^XOXOXbMXbXbX @l`XX.KOd^X)X)X:WWF&^WWW1)X X X)HbXX}XWXWX GWWWK`7X X &RFWXbWP5X WGNXWuWX WGQ XOW I[ Xt1 _WWX W/5 I:MWW0_!X$X$XRWW0|WXNWS(}XaW I_WWX6J XrXrW4<WXF/K}WW0)WWV[^//X SWWW2^  XbM_ ! !W>WXE XkXkW2`(XFWXIYXkXO0_WWU`XFXFS_WWXNXEW I_(XXW3[WWX DPWWL_WXqW7WXEX1^ X >`~WWXBn`WWXbN|XUXUWR~XWW9R_WWXFH^WWW:Y (WW0D^eXVXVXbKrX X X)LJ_.WWX TWWWWW@^ W;s^@WWX P X H^ E EW2[XEWV`WWX=wX WL.`XX.K3_pWWX@-^WWWH_XbXW9 ^WWXB{W7`/X'X'WNx9WX WV6X XFH`uXX.KL3XMWWW0^X <^WWX BFWW K)`WWX6vSWX2 IBXaWXq5CWWW; WWW0b &&X Sd_RWW7 XqXy=XNW?/WWXT_WXQX;OWWWDe^WXkWH KXAWWMk^WWW5:WW/O_ WC-WX`W;hWWXE XEWX1 WAJWWK_WW/1rX`XD0^XFXFWF#`WXw/WWU^XFXFNXXaW6 WWX H_WXkW<> WWXbKt^_WX)W9_WX2XXG XXXb3K_XXX 1_|WWIDWXjWE`WWWQK^WWXbRY.XW(U_rXbXbWJ_2X}XEOqQX1X1WK 33X 1Ka*X X W53^JXFXFW?WX IX{X >_QXFXFWC^}XbXW0^ WNq_X_X_WE^X|X|X 9t  X 0WWX >p`^XXWM+^WWW>_WXtXD_XXX OvXXX<0   DWW0R WXOWO[WWX 1WX<(XjXjW2SWX)WBWWX ;e*XOW I XtXtX C^bWWXb3XWWX R `XXXbJ}_X[WXDLW0WW;`XXX QWW0^ XbQ:ggWP_;XFXFWO XaWWXF I^NWW/wXtWXqJX X X)>mX;X0aXkW/6 55X Br_W> WWX TN^WWX ;^TWXkWU^UWWX KPX W0xX}XW2T_XHXHW=WXWX<1_ 8 8X M ^XFXFWP3WX} I7WWW|FBWX}/XtXWQe2XTX VX X X DWWWJ3X3X3X :XOX2 =1 {0_X)WW6YXW I_WXjWR3^WWW0^WXJ^*XFXFW>jWWX Q^+X)X)X 8& WW0 WWWB X WP qX WDWWW9GWWXqG WXj@X|X|X K`_XiX XV^=WXxXt5BL  I ;XXXXW7d_XXX 2gX WD8 XXXFBKK XqPXXWI^ k kX :7WXj0`RX?WWK^WWWV^YWX(XaIWW/0`%XFXFWM^MWW@`X)XOC`_XXWWE hX<W/K=XWXE3`WXtW8TWWW4&S p pW;a)XpXpW>WX1 lWWF XEWX:U^_XFXFW8_%WWX<_{WWWM^WWWFX W/`X(W)?^WW(B:XFXFW0sXXX >P " "X 36XaXjD`WXkXa6" 5WN^ W2 uuX P`WX]WQhL 0XXWX?X X :XXW7oX)WX @q WWWOWX I`?XWW>`qX(WX:_XFXFS^WWWQN^XNXNXbVXZXZX G3X2WX I WI^ _ _X =' kWWWA`}X0WW?x^ W8XNWXWWX W6XXW4 !WW KX W I XW?0`XWWIE_XFXFB,^RWWXF6C WXa I^\XXW0_WWW2TS< 3WPMXW I  + +W>z^TXWW7WWW7 WXDX8@_'WXj/^UXXX GcX`X`W>SOXXEW6&^ 0 0WG_WWNJ_WW.KJ^nX2X2%5K^oXXXN3X XF"`NWWEWW 4 ^WXbWS_WW<PWWW> ^X;XD83WXbWNI^X X XP2^wWWXH /7F^X|WA X X X)6WW0 ;| WWW@^X F|WXD08`WWXbT_XEXEW3_YXXW4!^WW HHWWWW^WWWF ^XMXMX N`XXWCX:WXa7 XkX WtHM sWX0O `@WWWH XbQrWXWXk@3 lWX2XqWlWW>HWXXqQ^\X[X[WP_WXtW7WXXqHX R^WWWO\XtWG_WWW6`XFXFXb4`X WXk:6XEXjQ>_ WW_ XwXwXbI^iWWXFT X:X:Xb2^WW&R=DWW/;4^WX<J WW0_BXXX}U^XWNQX WWC X1Xs0 0 =X'XF_7WWX?JX X W6`EWWXXDw^`XFXFX I^XjX )?_YWXXqGZ^WW< W0_XXW>T^/WW5:WWW>XXX =XW.K`WW"aA$  W> WW0WWJWLWXX I^XgX/WWX ;DTWX2 I 7WWBWWX2/`XWXWW<WX1W7 WX2F6XjXjX =\WXbWAy_|X X &RO`zWWW5^EXIW/{ WK^|XOXOWT`!WWW7`WWXb4^XXX =(WWWA_WW = )0P WX IXXW0,WWXb1WX I^WWWTWX;X>^DX X XFlXWW/;YXOX20m 0 0_XXWS XXX</WnWWX @`WWWNXXXa(1WWWUWXFGmWW4yXXW+`}WWXa8WXq:J !WWWT,X X XFA XX0 X XFFw=WXFG^WWE}_.WWXH2^XCWW;fX(X(X P`2 X GX X X :*WXFH`WWX =_X|X|Xb1iyXX]KmXNX10__X1W6_^XbXWDkWW^WWW1 WXt0CX}W^eXOXOXVv WX1X<8XWWz>a_XWW;`XkXk&R9^WXjW@a WWXb0^WXOWD`<WWWT`XXWPa)X.X.WD7YX|X|X SR_rX)X)X)RP`X)X) TXXsR`_XWWDTV&XWWH1_XXX> X WE^fWW&RD-^55W4$_XXX 6;_X(X 0WW0=_WWWK_W X D^WWWW=^WWWFX<X<X)>% WWGl`yWX)WJ X<X<XbHzX0X0X J^  XTWXbW6WXX I`WW6`vX2X2%V^TWW/_WWXNQa*XXX A^X;X;X 0L`WWX2`WXtWW9 XXX Ra_+WWX7a"WWX Vk_XFXFWV /F~`WWX H X WLX`X`Xb7 RWWXGC+X W'XXW5^ H HX :_XFXFWP/`WWX B XqWQ[WWXb;^XbXbX BQWD~`X$X$W38XWWE XNWA_WWXbR U/WWXbJjX+X+Xb1W?^JXXX 0`jXrXXTX@X X XN^WWWEeXsX|=`CX1WW2nXWg:QJqWW0`XkXk&RF] X X XF4^DXOXOX BXaW54WX( I^aXFXFX)GqsXAX3dWX;uWW bC ^wXFXFXb9UXXXXWL^X*X 0`|WWX0aWW9^}XXX T* WW>WWWNXtXtX <#WWX J aWXUc_]WW 3X XNXqR_WWW4^X_XW0p`XmXmX O XU`1XFXF@sWWX):/_ XFXF(U_WWXbS^WWX4%X(W IWX25^:XXX 9#  ) )X ?`XaXaHWX/WXEX ?8 WWWU^X G;XaW;L XtW/P[^XXX J_5XXX QX`X`WRp WXtXaSU^uWX{W@ X X/BuX W IWWWB {WF/X X}Eq`WWWOo_SWWXb4 WXgW6^WWXb53XiXiXb3H`>XkXk&R4s^WWS`zXFXFF`WXkXa<^ WJ 9 /`XFXFWD[LWWW?_ E0_XFXF0) WWWMKWWXb5^4XXX)P_2X<X<Xb8f^~WXOXaV ^X&WWNZWWXR5X<W IWW;XW/_ oWB\^WW6_kXWWFXXWXE;9 * *X 2'X2X0Z`XsWLX W I /WWW9=`WWX KX}Xa0^WWI[_X)X)XH#X WWGWWXb>o U/^WWXbMgWWWNwWX(WNxWW0>XVXVXbIXGX=L`|WXkXa>!WW/BWWXF=XXW7-X W^X)WXa0Y WX( I^nWWT_WW)?<XXW?^XkXkX : ^  Xb?$R  4^XyXyXb@!^kXWXtRWXF I^WXP?WXtB"`XXX)V`XOXOX ?^WWM _wXFXF=_gXkXk&R8_]WXXq37S}WXN/ X 2 X2XtXq8`WWX 7WXs IWWWR[XEXEX 8^WWX 7^]WWX TT2XDX'I_ WXkXa9`WW3 a XjXjX D!`4XWX ;-CWX2X PV_WWXbJ X W>X|XM?4XXWVa$XiWO<^XFXF)?8 WWXMR`eWWW1hWWW0^tXdX/ {WW<VWWWq _X X)P6!X<X0`|XWWT5^DXXXbEO`IXW/_WWXA`WWX EWWXb9_QWWXbMU^mXkXkX)7gWWW7`WWW?P^ < <W@WXTx`~WXkXa6WWPj^X X &R2_pXFXFWCWXXqV_XXXXXQ`WWLWW0`XXX <_XLXLX 8WXXW I^XWXWXb9^XOXOW3v`XFXF> WWO X(WXaB^XbXbX TqaWXNX9 MXWW= N  X 6^EXbW< wX W IX1Xs/Et WX}%rWWX S_cWWXbR=X2XtWPQ_dXCWX L^XEXE)?L`MXFXFXbG^GrrX 4^HWWXb=gX X07XOXOW<X<W I`?WXOXaM_XFWXT^ X 5_#WXFXkBWWXbO`jXDXDWUD_&WW(8EWW_X0X0X>*^ WHWWX:?^WWW5c9WX`XO1F^/X;X; BCWWW: X QF_X}X}R-`bWWX3WWX 4ZWW0L y0`WWWC X UlX2W I^WWX L WW`{WWXBsWXkW6d H^XNXNX :WXs0X5XvX1^XW=aXEXE)?M3`WWXbS mWWH9WX<_WXUX Q)XXW5^pXOXOW7/WXEXRX WUWWW4b`PXX.K;X1X0 WW1 XX Mi^  WAm`+ + I_WW.K@WWX I#_X)X G/WXOX20aWWW;^XWWWWX7^WWE/qXtXtX 6B^WWXFDIWW 1^`WWWFS`WW/2I_WWW0^X :2^#X|X|X 8_WWV^WWE^XXXbS=^WWXKjWWXT`XXX DW^XW/ IX(W IWX1X<@kWWP`+WW7`XrXrXU WXFDXW.K_X[X[X R WWX)BaXXWK^XaW09t`XFXFX M[`NX X &RD`XbXbW?V(X N^X)XO7_.XsXsXbT^X_XWUa X1X1X ;%aXX.K2L I`X)WXaR" WC~ WXC>>WW^WX( WX1 I_)XXWPoQXWWM9 T_WX2W=_XbXb.KCJ X 0PWW051XWW/Jn`jWWW@^~WXkWMX^WX2<?%^ " "XQMWWWCS^WW&RP^ XFWW90 0Vt_WX4XrMWE9WW?A} k UWWWR:X WQ `"WWX 9* XFXFWL X)X)X @XkWN XXWWEUWX' IWWWR@WWB xWW/LA_XOXOW?GX XF+^X<X}/Go\BWSDWWH_WW AssX !_WX-XXU`XXXbT/jWWXE(M q E IP/Kf`X'W<=X X0XW.KX W/  W=_XFXF@^XNWW9WWXH)_WWX 1 _X<X<WE6L3 WBZX G^WXVWJ!X'WWCa`XXXD WXF I^X X &RF^X)X)Xb74_XW:fX(WW?-XXX}{_cXXWSP_dX&WW@,`7WW UXbXbWIhX<X<X 2 ^XbXbX P^WWXb;\rXjWXq?WX/H^X'WXaI |WWXqPXWBWWX ?yWW0WWWL`;XWXk4vX WWsF X X XK[^X :H^X(X(FX 0C`VWWWU`gX X W:^X N@XfXfX 9 WWX 9WWVJ=  X A !X<X<X)Q^mWWXb=XXW<cn2WWy_3 W7TX}X}X)C^WQ^WW AIWWX Q_rrWW_^WW)?@`_XEWXtO_9WWXIXSXSWK9X<X<Xb@0~XbXbW8;_WW(=AXbXWF[WW0 WX1XUDX 4F`XFXFXb9gXW0 XbVHmXNXNX IWWW0^XfXWCWW BK =  IvX WD_ WW E_WW.KSXAWWM`X X W@UWWF`XhXLP?_VXAXAW0 WX}0^kWXzXtIXW0WWW7 |WW0X<X<WI`_XrXX=d_PXaW/N^ WI_WWXb7`[X?WX&7i WX/7^?XFXFXbHX;X|WW ;^WWXb6_WW P_`WXjWF^WW.K:F%WWXbIB_ XFXFT9_XX.KTXEWXkNh *WX}0_LXXX OkWXaX`ZXFXFW5WWSw^:XFXFWR?^XWNIxrWX< IWW4IWWW4XaXEUWXt VX0Xr/=~S WN'X X WSS_WWXN:WWWF`X{X{W;`vXkXk&RW X)WX<Q 1WXC/XXW03.WX)L  7/WL_sWW/TWWXDEWWXb@[^WXjWPlaWWX 7m^X;X;X3]^X)X)XbSJXXWP_WW)?Q^WWRt:WWX <y55X 0kXEW IXW9%WXsXNQC W3BjXjXjX C_8X X1T^6WWXb1= EX 3X^7XNXNW6bRXX;H _]XFXFBxK|X_W I] W/^WWX W_WW)?SXEW9?h`WWX PWWX U,`XWX2;WXWXN=`FWWW5hQX2X0SWX1W?^vXbXbW>_[XOXOW=T^W::TXjWW0*1WX/MWW{  WKNXsW I^XNXN <WX AXXW_XsXsX7XEWSYRXtX1U X X WAp^XFXF@%^XOWWT XOXOX S>XtWIr^X8X8WS- ;XkX XKdiX X Xb;U KX<X&/_6XX.KVQ^WWXF3@_WXD,N{X WF9_X X &R=M ]`>X2X2%8(_WX1Xa3=XaXW3XXX<- WWXbK {XqG_XXX U WWW?8WWW?g?XXWD  WM*6WWX TUXXX1_XbXbX ? _WWXb<fWW6a WWX >X @  X ?#` WX_W4 X Q^WWPx XbXbX>_WWBI^WWXb2\ X)X J$^$XFXF)?2`WXXWxB^X;WWUx^/XsXs&R4K 0 XWX9`WX)WLC`WWT  X 6>WX)X#<WXkWt=_sL IWW XXW0^WWXH\^XkX  XrXrX8X(W/_WWWC_ n nX J^XFXFWRC`UWXkXaF|XjXjX TWWWJWW>^Xb9^CXXWW:DX)X @D`!WWX <\X}X I_YWWW6^WWXF49WW8v X BVWXWX 71 3/GWWX :K^Xb@`X X &RW ^`WWXN^X)X)XbEvXaX(0JXNXNXR^WWWWCHX E WW0`WWWUWW0 X7X7X >H X < X X WL[XjXjW9^XbX.K.WW6`/X X WJ&;;X 1X X X< ^eWWX 5pWX<X=^SWXWXa;C"X W ^WW ^2X X &RK_AWWXR%`X&WWSbWWXb1 uXW?QXW0XGXGX5`*XFXF(U^X WXkJ^VX X .KQPWW>  WWX)2W0WXtWJ_XFXF(U*WWWC(WXk0_] X HR]X2WX NW1WW<&XjX XN6yBWXM/^XXWR!+XbXbW6_`XXX >fUWWX BWWXb0]^ S SX GjWXWX<N)XEW/1Z* WW\_]WWRsXXXbV WX`L;_KWWXbBq_ < <W@p o. (_nWWW>ETX W/^ X4(4-3E~ˉ2Ҩ4 Ҩ!NZ Ҩ+&Z,T<Ҩ!KҨҨ%l~Ҩ+Ҩ!IZ XZ%lZuZ4=ZʐZMҨ,T'Z!Ҩ XS!ҨZ $Z1$$+/,Z-sO$* ĕh %в:) 5"R'D7>Hd(:qD&C*$)9@,(P(=* \(N -E!pN&c1] U O(W"%=-D&t?T$q } ('G,> Z'<ga#+#߫x;-h/)&#-u1U%-H@pΡ$JEp f$8K.y%) HBMQ$ B| ?͛D+'( Rn#8[k(5F*?y!o-8 2.&8"Jp0 ].=#.Q({.Z. BGb)Zg +  (. {ܟ FOX(]Q).yJ c^ )( '(5X$Mgq{ ?!$QC2,(*X"B/ '.0U܄8$1BOK'"7z'H|s+)o&aOcL-Q  P* vcѯ)Jp&('U3 F(!La {=+U( ={2/#m+T.m&? M:;2C+gH-7LKIwˡ5$E#(`)9\&c,*+.4(&F |5K$$ۼ!"T`4,bUv+;`*̲A)V?!...*3z. a "M? d&F">KG%WV%z$%z)a֊%zt%zRX'%z)a/JXe%z %zXGX}zX.EɴX"X"N?%ztXG/%z"NX"\%z.E7%z!7AzX}%zA%z"\X.k(%z%zX+`6$XObX-X%z$X.kH}X$5W%z&,'X+`,&%z)W8%z'X;%zK%z;X$5=XAXKX"@%z%z-X!7V%z-%z0X&2|%z)W7X-X: <#^<&',KW% ).,"()*x LVJC3Z'! TH-v`#؎!(q#)v M";b%*& @@V)<Y+-^|`B>"&ͨ%eL, cH$$l$C[m3#CȎ!'*֪t&г"EP&(O-YR=!B;G!WFhڗ(Z  +"%J/%/*"~k!)[+":3I%bC.)'&<G]n6+y-L&A%W#I$'N&i)1$2 J$+h E"R Zx83!o*BZv@$s4(`ǭ,<%WM+-r X;'7\ q -DZ&$bS&!$O.%(jw$!4|*&P p4^m6-2+*;%{%#!:  'N.> |  0|)%k;5/.'%v#.-#,~T&I*M Sc&*1$ m '{ '+)J0c##w! | )ܠ,0F@ W{?] \Ͼ) qZ*"m8.dȸh-%<&1#rBN u4%<;g*h&w:%cJB*7#f~'OY L-#!-, +{|lu$i* N$+TW!-&'7*:;""*$q%J)qɲ'$ 5tA 7H=,RV?$q$5a#J(/i_ $ 4^%JԎ& U!u-Y W *)*Yi!Co.?3S.%4~+U}a*C^eI&k&16$R5' Ř!~'HP1 5/!0c="W=.=)P;=.='= eA)Q#! ,CpHs6!ٞt|M, = s'6 .W-G _ J1PWWte Pp+W,+! ,+! F/XiW _WX.,+! ,+! X .$R )&^NFDX~Wr 1X8_trǞ^ eKW$:W #WCW-W]|JWDXWCPXpEX2 @,+! WWEWWnW{-yWWXO= !XtedFCnX=-XMUWXh 3X}WWX}KgXOXXD-WWW>b,+! W_~T  B'WWGW--DW'"X-,+! ,+! E )?Xtrr_e D-WX}@fE;W|Vl WFm%,+! -<EEQCM]XXR0gc`--W4G" ,UEt G_h-X TI6 V  e,+! WE{WR--WcFW,+,+! hjWn,+! ,+! WCWXC1AXtWW'Eb 1WWWA_EQ!X9-FD j-edd,+! Xb *W>,+! EW,+! ?ZF%UXWX1WFXODBWXX W-sDWCE`,+! W WWKDDUi,+! ,+! 'cdddC-IFA,+! }WWp$9W %CKXeed@,: "* XZW-W,}y-Ws=.KG:d X|%QG r)KWCe@2o,+! H'X)-X}Xke ֌eFr-W-^"fXg-,+! X1 ,+! W#cr}NvKj@Wr ,+!  XXXP -XiW-F X^CCE.T',+! --/-/^GGIX W.KX  Xq_XDcddTd-'-J XH$ cXbX$XfXX=43 "_$I9=@k{: X&Xk ,+! `LX/W-,+! &R.-- Wb.PWG.K  ,EyXtCCޟW_,+X(J-TWWX)V XXW" -t y.KX~yWC1XaW)XZtXbW-X ^7E$e X)XO,+! >Xo >Wz(\W-WWXbAt+^WXc+>C,+! \SXD 'GnGy6X< -]FQ X v3_Wc>SXXEXe{XbXWWs3qXXZXkWXkId X:)+ACX`- XWXWXW5FX)C9(WE:WXX XWXbWX WWOeCP f>$ZXsddec=X|-WX)  &W-XWX7"g,+! W- dddcyVmCXPuWD-sbd7'GWG-WW_jXjWW >k-rW ?.K-XX2X) -$ ->.X1WX}Wn-XO &RXs8pWWW'''tWHW XW XX<XbWXbA [>0]*eGXXXkXERf-a6m -XaX@WW-V9d-G +N>F -X WX B)XbXFXbSWXjWWBަn-G*XjH X W-XOM$QW.XWXeX)tX}XDXX)scWauXjFCK-X2X 4XGL'W-.K--˞W cddFd+D .MyY+,+! XW#!,+! r,+! H5XOXme0؋X}0<\ XE,+! -XXtX>b-BW iGwXX7X dE. mWWWT SEUW EXXXwCOXCWE8gD1X@ ݺ-  VFac_Cp8 XODp-XFGAW- XW MXDYNW<JW[ U X}F} +m-,+E' -WdX .rG\tWXXX2E PFdE X1XpI-XWXW>DG=X"2,+#-Fi D)t $WEXXjFXXU-XW-- f \ t..XH-RWCp,,,+! -(fe1@)'?"a\cdeeoX WJSWFOg WWWA' X JWX-\DC,+! X WW;w6G-dC9_.n ZXkF> fqG-CZtc.K&RXO-DW XkFTCkXW-E >0]$3,+! ^!C^X)G-T-XjN-_,+! -dW2[FD-;e-?t^,,+! -WX_X= DQWc--' XaFp٫--d,+X7)3 fE,+!  XWE--W-e-->XEWWe -WWX3,+! XOQF't,+! G%.s  +WQXk_h-a--Mr'4-CXk9 @-H -vCmnW`3g7DGU--="j.'`"j'`!))-Dc,+! -WF?AXOXXHu-WXkWKo)8-DtW  _>BFr,+WXkd-WW-E&F-* H EeMt,+! YH'W,+! FF-F-0)V .K+E=J *-* Emc- X8D}B] Xa =-/XX -WXtWCX5X)Q,+! W,+! B+)*>#>Xa- |} -X,+! ,+! r7JW7PX}G^X>WeXX}-,+! eXFWXFS-c,+! D F_XsX 7"r--XE-AWT-ccctL-Ce-{W~W W,+! WWWA_X} k_W,F W=AWM6Xn@ 15rDͦXW- -h-H%'te&',+! -WX)XXBaXFWXF>baAXkҿtTGD[-K3LF "#W'S0 SF-e'X1 F7',+! G X%X) V-,+! X WX[ct)`E-W.K0XX_ 4CFWW- -D,+! X)--N-~eecsXM$?-X XL4X<e]GXt- dwE5>++9t-WWXGKW "'Xa X(WRP\Xa->WX<XOXt)9-F-8XsXk--XkX LX cdecMc -6pGGXb 0DWG[W "H3 =W2ƔƖƗ--5GYX(Xt^#,+! -C\_p*'tk-XX W XXEIEJW#m#rW#u*-WeedtzX1U: Xt- #} C%`--@ceew,+! EvXWXb QwWXjXtWXt>b`5I|Z!c-WXj^DFwW%TyY9G FdoE~FhX}$ŲW -0]:/%KNFj,+! XFWXF>X( $_X#-WH*^MJ K( { FYCT5063KW3QW`XOdrH#0 2XbWXb>-,+! WEu,+! d>/v- 1dS;-,+! X<@1Xm---XXO - j-WGX$@*4WUWWW5F ?X1,+! C8xy -{-XiD %-WlCY :oDW5C3 Q!XDWW-B.K(ASXk#(wX2/6XOW.K-XFWXFP '= y ryGX-XjWWWWAdcdc lW),+! 56-X|,+! Fc#pS3G"\4(*X5EHQ-dEF,zC'Ny'(WW/- XOWWX-GXsWXc--XW,+! --DXNIy-W  cDP--,+! -X`REXARF',+! "."- X( !-WdWX X WBW-Wu 4  4(qdcdd <Wk-W,+! WXb)* --WXX2C G U 3V-CWT\WWXs,+! E;XDEW=i,+! W,+! X_cpd.--,+! TW|qG ʶedcX}H"^ȋ0,+! %AfX[WxQXW H W-XFX`^XEiW_ dp%k XjG-tN~W,+! -*-X)X X)P CW DnSW;DbXs>X:$--,$s$---- 2fdcddWr|-WWWSZXt dGxXVSz-B cd;ePe8D],+! GAX:P Xk--'<!&&WtXwWWWWWA_cXOXO-W,+! DeD(9[E n,+! GWpW-WW,+! -xM:[\-dJdWXOWT ctdeWcE} ,+! $ E|XEݍEo,+! X .K}@XEycFJ. 1T-pGm-WWddcW-EcWW@2-,+! 2W :[X0WCz  ,+! 6eeX+$,+! WSG k WX@CedaCWEX1Ed9k-WDnD2DHX8WX'S,+! 2WWWS]q#,+! @ =GWCWWW? JY 2W,+! E^0-dXX1Q-'(WlFG4-s%.3}I}-.er-,+! -c-E5H+4+D#B,e _R--W 2XWWWWy+O'Xt-XX-kWD?o E3W;(xG^_^6Xt. ,TXbC,+! tDV' nWWSW%,+! --EXrnWWD- XkWX}URGCgXWdd,+! E8W,+! )v!XXtH?X0]! PWtX XFX VgDXbWXbUItW-M3k XXF dW-X,+!  )?ed9eW--I-,+! -^vNddddC-G;G=-X2"Mv=xXtd-JzXkDX}X}X}A dc.KX}^gX'-E(WX;S X7X -,+! W,+! ,}y-XE,+! %0)FdX1~Xf-XE-,+! X)XbXbXbT XSWWW5F5-,+! W--Fg#W89W-IG9 e'WF,nX XX T Wo-(DX F 6C<*W- )- z--,+! XkXa,+! -!R ~,+! IDDWXWWCX w-  W F mDZ tDXX WX 0gczXWKMW WX- pW7! %edWI,+! X< X+mWDXWX(WcCsWX W5-.-Xy+~-DUWFQ- CHWc- 7')(Xa.K,+! * ϠI-XW_F#,+! Xc F,+! zw5-fW WW,+! W X}-WtXsXX WX T -DX,+! b(-X;dvXt}W<,+! ,+! ,+W%--Vh,"+.s rGSXa 0`X( " XO-XN-y,+! (XXW--'WKW XNrMj-h,+! WES- Wd-^WW  -X XOXE F"X-|WXFW73ب-GbW@XL,+! DJ-*_-d'X(XteADWXEV->X2 =X] X<-E-VH$W-pZF^E,+! *Xk "!SE^WFN,+! WGs,+! lW-t 8K :-dKt.u -,+! XW--We-e$XgD"1--GDWeR- LFIX ^LXXXAXj/p}XF=WW,+! WWXEWXXWdX| ~Xk-*-_-JWyCX6GN XsWW^E5rAĸ-g> [X-r X6 -WXFX2---rFF;--WW1,+! GRXt%,+!  LXk^X ebGQWFNWUWXU,+! #0U_XiyXoW0 7W-.?wDM)'(XsT,+! ,+! --yX?WX W0g-cqXt G+@XWWt#<˷C:GWWEeseCEXUtG SWWXSz0]MWԘ-_-',@XXXT W,+! XoSW,+! W`4XWWXWt --02-W XWjp$9ClW--l`x  [WCq8|!XX)XS->ADAWWWSXOWXOP - @,+! XXQ,+! :F?$k) K:hL:t-G-trW>vgUs}htWXVd%2CCWW oXaW #r ^-WXW>bFX(eHeXbX_)-C dWX0tW$qGHX)WWXOLfRq4qJ?-IX6'-K%tEWWW AXO_CreX(^iWXtSQ,+! ,+! k X(W>,,+! ',+! XFX)XFSXkXkXkA_XEXVe,+! WX|-Xt- .PWbWC#,+! ,) WX1t-D^xW& +)*&XFXFWAGXDXrX DD,+! WXEXdce'ptX =-HXK-'-XX-,+! D-|gGCWX<- .PL0  k d-,+! D,XX^XOX<WURX,+! sWW WZZ-n1b',+! -X XM-9$RA Sd]dk ,E>CU- GXNCuWWWS`xG,+! XWXOUR_*X,CVXX,+! CM-Wc-ecW_i-H,X'Cm- G~CrWXbWWK $}$D---Xa- -`[4-4Xb,+! G Q-WXD&^XXAWCX( t~-a$ C'YP,dced,+! GgX *<cdedGd  XEXX?e GN D 1MxWWX)WIXkG~,+! XwW,+! GWX)WyE>c,+! -X-2:)^~J3rFB*-W WDS .%Qddb*/crX?H XXF5-&d)W*/8cX(X2(X0 ,W`Xbr "r'XOLj`ljWbt-ZWX=ed9dWPVXEW CS- % -XbWWXXs,+! XkX\WWMXVW;C$]-X- .P(W,+! D,+! 4D-YEXY,+! VXDQ?GX14`-,+! Ϡ,+! Er-WXdXWRtQ\" lX WX >bW ,XtX X X T :*t-X;:-J{J~WGwWWWXl-^FW,+! X}%&hDGwG6X1 XWWV,+! ---X;X XFX B-Ϯ'Wcd-Wo)4^]+~*m--XkX2XN*-^J FeW4 XaXXXAetUX @ o0W,+! W UE X|,+,+! A0X d;dc 0;WW 1c-XaX: ?XWDXkX1TW-XyGEDC]EZ|WE"X2x-  # ,+! D%C-X^T-p8W- MWC>-'OWcdekcwW WW c*.++cD>)}9=6NER:-.>>.K-mUKXGX2-S'Wc3C: ,+! GCX(X( gWF6 F8Xj,+! WX2W EpTWW,+! x^PXODHdfe+E,+!  BXs,WEOWWWWLW G- .P(8X WW73;,+! (XYXWEd -cddTd_E-.--C pd\t-  F1^uC-cWX#ސޔa - W]X1XlHJX,+! -XX0jWvWCDX-x-c-- !WX XWX|F-dP-X;?p-,+! E?t$9WX XkX <XwX D.WN 1AXbOHEKFXa-X--2F#-PGXkWX2KHWF/w -I- avMVGX -aW f'-FC-WX}Weed{ -dzd X`XNFGo-W erX<&X1X]u]u]ukc -WEd [-XkCWF(D<gWD+-ךל8x-XEk_WXa_@'HXX, X(%sWO+wW-U  GXDWWX-E-,+! WWWX.Kej _-YdH;ȦG%$=a04W  'KXDcddeB6X  W X(XE(WCCRHX<M+W2%_OXr>ea-F~WDWafWWJjFtW?@!-,+! X`-2d;ePeX<d` W,+! XdCyWXM)WXWX W>b;E;FND_ D`Xb;G'XXWXX,+ *˃X:ˆ&D;C#C5H WWW.XW*-SF;WWDri-Da-#X)lWQ Xi -W CiX<_X.q)-- WdD,+! W,+! ]MTXW-GXtX)-cX XF,+! bGVt 1cdedE/!JQFXX-FGXWW XW-WG<WWjWXj5nWWW5FW-z&4,+!  &:XV-WFSt6t>XtXq-,+! W-C-H.KW'LG/<-WX?-Eu?" + -^(7 DtX W< cX XW Xa-5WSC G--AW rĄXOXjI6 WXE9 j-XtdYA{9$Ew*-W 1X)X)X)T X)*WW-ѐW5--W.?-W ),+! F5--X*--u6W)*-]v]v]v*WX WWLW,+! D=$Xs'd $WXb  -WX WX B`'-X<{q  WWX\,+! |W}hmiiXt,+! C 1X EH ,+! qC:EmF=EXkXkXk5FXWX`2DXOX}XQWDgWX;@&R.$dcQ X8X(cX8EXM8H=-e,+! bXXjET2jXs WFnُX)fXkXkXkS9=yruhX2X2X2AWR'X X W6de#d SXXXH4XXbXiWWX( *[-P,+! adH)e6D:rDXX}EX1e$%X)C,W K+$X WWEN_-E+HS.\  A -X"r 7WXkWX<UR,+! ,+! P, -)P*FG'^WDD.WE-Xt]L-P#!YbWWWHX0/:Xt DDWXbXAD.r;(DaG--  6U,+! ĆXW--,+! cdce|UEXbWXWXD_XFX),+! 6  -d}E0],+! X(Xrdddc&:WWE,+! ,+,+!  Bedq E%#( aX}-T|ٗ!G fMWFXaXL-l-XYWXd;ePe&nGXNX,+! $:r edFW-,+- |-X,+! cdcd- vX~Xk,+! XXFXT .KW "-̔-W d06XkCW  fEWXt-JYdj-EkW! .E; -----v-yWWXJXzxX ],+! dBX}FhTISX,+! W W @WeV S-d _--W1 W4W-dQ XAcXtWLGWX WWVcccrFWWC-W*-. -,+! X 1WXo!X X X H-MH0S,+! m0XeLdddeMXO,+! yq RBW !,+! WWWSF ,+! >XtW=*dddX X-W,+! $usE $W-WrvVj{ DWX(F.DuWX2 XWWQ-t-GZXM)W% E2XIWcX EfW^4,+! WWWX)X)X)5FW EEG+`Y W Xd;ded )-W@-dWWD'IX 3X -deZd,+! FX-+mXd/E<%Xs GX(\-C +4+D#B,e.KA,+! AWXOR8 .K',+! mx0W.KW4 7"rW oX XbX;w>G-- Wr%W(* P4`'XjHE 1,+! WFW 1(},+! -- Ɔe ,+! W?7X WtW@W|d< {|W 6*fEG&7Z!-WXFW0g,X_FDWvE1.W-CWtP-tn XOXYdVddddWGeX2WQaWQdl,+! F^WXXWX&e.c--WHAw,+! cdcdtt- ",+! E X;;-aW- } YDeW-$tW,+! K>dO,+! WWXa 2 ,+! `.K,+! T[WXD:5vK%Xa^j,+! XFWX:XW8KEh`j*0 `SZ]6EW ,+! WXy@$G^P{WX2,+! $x'-GXk3dced@XPWXFXFLX)XOXaF TXOXkVdgtW;{WWF-WՁ,+! R .KX2'nYDW^XA-Xt pF F )(,+! X= .KXJWJ=Xj--[3WWXk= X Pced$DiXEe- [.wSf]5 `C@F+X<X<X<S1/0,+! E-dWW-XcrXsX> WW DWXsGX_XN_WDC.X.KXX2!-,+! #,+! XOX}WX$Xkoc-.FfP X;F X(uG3 ++WIc]X;D.P9--XkG/]aXb-XP,+! -X3&RCB)>A-,+! -WCtXt(z[S}*tGXtWX)W= X$-D-WsNXF.KW {&ε/0c6X(-G J tX H.XXWXSCW- _!XX8- !C-'WTAWWXbWXbS',+C++Xt-WW+;Xa,+! Wsd,X,+! X2ܳW8lSPM^X-K+ ,+! XXX )VW$=XSX0WS-X|Dc-^/-WGW  6cW"Km-W,+! `rWX,+! o- Er-W) -FtQD'X(%.PS <X}-[XsFRW--b@֘FX9.KO-B,+! ScHX 1-DW,+! WKpWXOW-XjXO- WG gGX8W4F9,+! &CXXX5FX)`[`E$XWD,+! -ZX\X)X<WUR,+! ' +*<X Xs-M'DXM)-JKXsY^q$y45WWX26X)-LVQWX2W>bX Ei W,+! 1~G.}$]W'yF ~ GWiWX(,+!  QXWWJXXFXFy- WW{|X3,+! X}-?XW3  +-WX2XX2T X WXj_?OE  X",+! {X/ Z,+! DE-W2X dX,+! -CA-S'&-WCCcddFc1 4DV6+0'8JXb8xXkW!-UIZXF   '0ID^%WF G '- ,G#GcX/CX_,+X Z~Ddcecɦɨcd!F - YdpX]XbWW- Xq$X.KX-WWX)6֖2 xWX<d_,+!  >gWjdkT_W;,+! X;Kt-XDWEEW-  MX1loS*WD -C-WGDGW-t.PD !oCX 1-Dc #WW--r\c}X]X)'-WЗgrXEdBGX2Xt,+! ,+! ER-H< \ --DF*41-di-7-`- &Xs Ez0FX;-9-Q-(=5NH,+! X WX)URcs gWX(WZI M/XX":H 6*fkhG EmBWWWWW|.XF"rIla“OT@eXr'cW +X1%XjSW--X<XHRX C5bX)X WX| H H+Y30XFX XFT , ؐ7 X<-^lF%U_/8cD XbUz-]6[ WXb,b- Wb.P-Dlh,DWKLaX,+! FP Ye0XaCJ-XxW AXOWX5.d B_ W %*d "\&W^,+! 5+WGW<&E`+X0jGXt DXDcX\) W W-e-X",+!   W CWHXW,+! -,+! -WX(ET(+WX5WWWWS -9jX`WG,+! e +D+8--',+! 8jT-dz'\E^DXXXj-1 AX@.KXWCq-&R#)X  eWF\t`XEWWWAXZNIE_Xatd,+! NyWX X{ 8E WXb,+! WWNC8=, Scded2WC -9+DU\X5,+! "-W* - ,+! ,+! W-X2XX˧X<W-X--7-ss$))'`'`GGH-<WWWGW)3 -89XbؖQf_IEBXWX XWURW#0WcecF- ,]Xn-XXjJ-:f-[b?XJWX W-G 5T-WXXOd2k+$GXhX(X} 1c,+! X`WcFLXkW,+! -,+! X|y-X WXOW>bXjxa[D7 _--L^MX F:uD]-W- 7WXkXkF~XWE XE* Gv,+! H0BWX,+! WXSEWXF׼,++X-9L ,+! C^xhWWXXX. U<-X<LXjW`Wc-FFcWW*)7pX^-Mjęc6JXkWCW X'Wr-rr-Wed9e2G7-Xd*)'NWXWU J-GHF.K-E 3XtX XbXbO,+! d#WD,+! =F$,+! r#},+! XAXF WX)I-XWGWCE W~ vr,+!   zC[X<D- ,4WWXK -XaXqXF^XbXbWWE,+! C>WWWAXX,}X|(U"%eD"3.KXyWWT s DW-wd-W-FXFNC-DLXI5dcdem- W CX XkX BTKh&'m!-X;ٴWW,+! WX- t 6(W X<#,+! FGU$R/=E;-S(Q F')X XbWXbS-K- D:F&,+! /X WWWL-E'"^ -*'=y CDjG}XX)X)X)H-KcLodӥ J dRXWPM F\>E @ CbX<Wg{cX( A-xXmXoH8 -- nMCG^X(Wcdcd`.PQ #HXa)G++Xe[,+! DWp12Xa.gğX2*  W\'U9=P Mi0g ,+! -d5`WXkX}C,+! XkXF E--*WXWXS{'h2%2'XW,+! ,+! X;<--Cx-  X1X_,+! Gt 9OhdZ,+!  *-&X1XkGmD,+! ,+! ^WuNX7EFWWGBX}XF`.K,+! 3WDW|,+    WWd cb cdcde=Fa'Xt XD#W5XaW '>$'ZWWX<8:\WWWT F1WE.K,+! ,+! " 1eeWkX"yWpXʶ5-:bWX CX- (.P-'DW-XDuGTehedX- "SR,+! ,+! X2--XFG-Ƣ%v0WWX-&IW-= X',+! ӨYW-ev-XWt%%.P EduXOX CUE,+! WWFU LW,+! 5dWWG,+v-CvX8=GWXX-,+! Xt.KshcX*pXk-X-E,+! WFFdcd~ lŹ !<FW--XU>BEF WtXCb X<X(4CwetjK:>X "'-XsG,+! d`CDH2[_-[,+! -WXb@8O^DddPcdXO,+! ,+! %$'>WDIX +.WXkX = G S.,+! E6VX-+mX}-,+! XkWXk>b RW-DnreOcdekdZA.KE|2c,+! R[W%1XW-.)F)+#'$,+! ,+! "tF)* W,+! [X Ej 1D.PDt,+! -Dw%Xa6xW@yuC )W@ X<F0#E-XO,+! 7%[#` d* WWXb6PX W "DX-AXk*X1|#"-+W-- XXFXFXFP SGWXFW6d-$%~Xv'FdCX;9;PEWdsCe,+-%E,+! W.KWX*mXF` )?DNHCCDW R-W-r,+! S) GX XMX[xyCWtUWS E ,+! XWE!WWW5F'- yX V^9"X FW-"W'LXO-,+! >-tr 9J,+! WX*[X(:-^ W X+ax[-dcXWFۥWW(.PX0X),+! CGTeXj ,+! -W W,+! -JQB&RHWG6' CX X2z-vEo^WXbXbOXEX XN?3k.P- ,+! 8WDGHWHf0WH:DTX$FD WGCjWW-cXFG4^,+! -=<,+! X}Ez4&RXES XWG^-)-XZ-cF2qW,+! -S^4F-W7q-`WD^)7WWdOWGZF,+! X_ qϘ&^yG"WX2X1-Y--+#~qL-*XbWF-SX^KWW,,-dXbDhXPA$-WX#X<,+! ^E,+! % QXkIK,+! ,+! XaICFHDXX0]@!cX)E-rSBWW-X2XM,+! -Q:lelX,+WLWWXkG,+! Nm,+! Xr-,+!  -XFXbXbXbLXmtXtX XOX T # 6fXsX<cdceWW-- D,+! "D{KXl 1*<WWX XE -,+! 4W{dXtC---Xt---,W-W G+XE 2X)X}XUR WDx,+!  HrX`EtYEW `,+!  FWW% D I>"#XAoXbR6Wweeqc 0W-X28-7X WXFKFDX2 DR'LGP#n-DN-^ 9XNu "%bWF|,+! D F U5X<(IW,+! {tWXt0)kF0ZEuDvnUS,+! W-raX78 -EW-X2XM WpSX WXUR_EEnpWCsW-(>!,` 2cded*W-E`WW,+! WXS,+! .KFo*XN /y,+! X %(  e cdз&7-XF-,}MEX1G -X WWWO-)--WDqe^dX WXb6eddyXNd?A V^ 2 ,+! p- -KWWX WdIX(X}.KC~X WXF;wDEWXW>6enef8WXXDX2DAPIX;,+X4)*-PYW-cdddfXLWcccX0XX+X,+! DlW--LkXM,+! CBWEl^ 3fC --4M,+! DWsf'0.P- 3kW,+! FC'0E$+X XFW;w(qIs -!( %Ny'@,+! 9 -Ϡ:F"II'=WU>eXzZCW.P%(-DMD#-,+! WC% Q0]5  0K -,+! SX_XbmW!'6eGC__8WW'X'WtdߞF  TWX XFWURY--fyUX ,+! WWX(jdXE3CT(/-X$InÈ-Cb[-GDe@@(D`G{W)7-cdecC-WGXWW_uX}`EWcddTdW- XFWXF>oXWWWP WVn-W`O G|XbXbWK=^X7 %X ^ X)dCa,+! XE&RpXNXNXN5FX-)X(F,+! X!-,+! E@--=Xw -!\ -EWFWXk -WXFW= DX XaBP wXX-.WC-WW7-)7,+! ^kXWHHAdXzWXO0E#WD d XWrtEXkWX2;wAU +c G-X *WWXkMMA,+! 2G " FpwXUI-! 2p_W-X: eeQTX)BXX XFW> 2SS CwXFXFXF?-WXV,+! dL>A 8 ,+! DXu <O5W ,+! WLX}WWXGEW9-;X}-WWWWLE#KWdtWWXbe X-WiP  tX}F -DfXkWW-WXSMX,+! Z 'e- >8%8 8elXX()$H@,+! r--FeNWpdWW,+! WR+EGDXX)Wc -XqXkWe;-WXt=SFwT--WWW EtXOp dXF- 2-XtWXXXHStSz'B ';~{);Weus,XkK[F$EEXXWd,+WXkXPWXWW,+! WD- HL-eW XkEx-Gc -QSX|EjXtXtXtA R^c,+! XAMgCC; !WWWT sW-$$uh^{noVYWVcWXoz%X2 ŋTH--!^`e-'Xx 0 oc- X<WLXWHtXsXF}IW, dX),+! X<^a-FDC|e%}W ;CaXEGjX(pK =))V dX .c|XXW @XCe-X<| )V--WX&A-WXaX_sG XbEDO$IXW-,+! y{sL!E)'='NW,+! HľDWt .WXjeX AXR'_W  rw ; 2* 0E7E`"0WX,+! FW`}-G,+! 'cWWDFE< JXjID,+! G 1W,+! W\b*Wk*) KX-)#KF^3XX-#!^rXbWWKWX XOK,+X<  W|^>-GKX}W--uWXf3@- rX]-l w#!,+(LX XbX< ^ITGH)p SX'cg,+X;r.n^X-XkWXkSdlX2TXiX-G-W L^'%WW+EXXX;5XMXE-JXk[X WX AW-WX(F-D8XMWW:Gd'-WXWDrX X WENn#X;hGW:dC?MW R,+!  --X X.W)XFXX F )eGr-cdt-}D5XF-,+! F _4,+! 4---,}=y-X1D*+?,FXkr-W,+! ,+! .n-5-X)WX)>-9WXj.}J*XgW3)T[EXW1-X3CFRrWڙ.X}AWaeXEXXb TKT-rFD\DEC?Xj?H&W EgO_}G>UWX_iCXKW,+! GXXXXSWWD;C#C!.KW/WDnRM,+! ,+! 3k.P- U  C-F-=)}5OWdUM4dcedW ,+! "j.'`"j'`)XpXEXEXESD!XG2$6- ,+! -'E-XF,+! X.<1q``0]BXXbX>bDWX(E ?E)-- f @XXX<XXT -WdH *%A,+!  FQr W-XD~.KXj\WWW $X2 ,+! WX WX)73XX-WWH Xb,+! XMc--]w]w]w--<cdcc_OG_-d H-*K8XHW 6 WIVjKR,+! WXXt,+! !W2-GhX)A6XjW-XkWXkBz{BIWtF=r8 -Xk++EXEYX<0-X-Go,+! - X]W&X|EPX)WX<>WF:W nW-W-WXdo d>!XZWeTXt,+! >E WG.H'Xm^X-W\WtQ 7-?0--^d-W 7-bX/X')tCG!e)/W-r;@_eW- 'FXWX'CT|ٗ+ mEW,+! WqWa-F^X0-X}G |dddd1-dxH*X),+! d$1nqWWDXN`-ecdcdwYX}W WXb--XkcW-:5TXWdW+^Y-D-d%6X6.K 4E Xt-,+! ,+! XEWX/XbXbX6OO $t NxXW,+! Cd? m KP;Xt XdL:4,+CX1X WXkUR $XbWXbWAHG,+! UeX - 2tr-X1CWWWHG,FF&6b&X ~m*FJ.K,---p-dA  ?GC7wCWXb%4Wz +GF=F>l-1  W"-dcecWF-X XFWEN Oe-O -*h"SW*:-G? ,+! GED W XFWXFP ]WXX .XbXXbAW-Xk^W "b;G' b"W WX<-WPjw (J: XMp,+!  4X WXt<a&W-QXOWXOU:df7U.W4-WDo SaXt--XkF"e-X-e} $-i&RN49WCcW-XkXEWUR WAWX grdESL'[~-cC%cXXWXWX X W6PeU9WX_<fXOe Da??<Xb {X)SX8XMc{-W.F]-Xd>,+! *7X.dHXtXh-W- m?~#`p4-+XO.Xa,+! r,+! 'X WX`W XLXMWX WX2ENXMcG-s,+! .KW':/ݨdXa#C9t9uWX` WeWXE- 1-!&CWXX X X2X2X2S-Q .P c/R'R #GIE*  cMF)$9eIX),+! GO cxFF{WiD1zCX X)WEN-W,+! '-X X X T "X(,+! XOX1wX X4  6Xi-<`-X| v!wm_KW^o'ie,M%0XH=,,HPXWX<^X,+! FCXE;U |Dl<Qr,+! PIW--,+! |W-,+! X'E[r2F4WWW?WW% WWWW5W,+6-FGd6H(XQW+,+! ,+! Xs `d Wd W,+! _:tpSSW-^5cd-rWG*WX;;R-WWX2WX2>bX,,*7+W^g']'-WX W7,+! WW Y"?;Cxz<u-0 -WX XSX 5WQQXYB.e3]-E-p-XFcX+WD<-d,+! ge_],+! WWXEXbWXbT dWFo-'XsaXD$CXdX XkX I F  ),+! Gq-AXXrXc.K(AWWWGWxd4X}tcdWX!,+! D*,+! -'r2DpWEKoOW^fDWH fRtKp-XkrT--}W,+! W-W'm,+! -X  XW "^WartW-X;XO$ eXbX XO-X-XXXbWXb5$WW:-WWXF =X-XX&EM-WXFXFVrXX WXXXR@-W_DXN dGX(,O-F-rDXwD:GW-WW* -&HW$>Cw-XFW-',H XD zWXtlW-W^)2,.P%X<X}X<A_57GP2WWCKX  4 qB-XFXM,+! ,+!  -LHheWDFDWXjX WE,+! Xt@XaGGK# WX&WG.KEWX2XX-X).K(A=3WX2X G @Gcu- -,+! X WXOENX2F{2 Di M8D3FZ mWdX@ --C}eWeRWXGuX! 2t hEsXs,+! XW-  ,+! Xk'OVsW-W&cccC&-dtX-XE- X zXW 1X;FWdb-`X X X L,+! TX  gRW--X2,+! -G6,+! XXjL/ _K-  ?/?0)9<{h*E8tfb KUuV<in!R(uo ;t/TWFWXXWGL'EXaW# W*-- x:CC^dXsA W-]Kd' EXEWH1WtUeJWdc-_BEP-WdY1tEWX VWS-DF-Xt:-;--X`W@A:JLADDWD$:+@StTCWCXyW@t 5x6aed9e"WXt?XY@{/WCNWWX)WX)S X;--C..^t DWdtπ-{Xk--pFWX<WGlW-. ]XKk-XO83`g =W`  kxWCJXW|-$lXjWcW-X XWEN(t" CXOWXO>be/Xs W0* d F'X/XtW-W,+! ,+! m[XbXkXs2jXW-XtXtXtT p,+! ,+! OWXbXbVX2]^8t,+! Per$: C9XEF  Xs3X) <X;3d(D-tXtW.-W>X` %WFeIDOXW ,+! -`WX-X0'I-"X2X<XBL!-&R,+! -H9|^LvUtWb-X2XREWF -XfF'FF ,+! W-Xi,+! N89X;,+! <SXCF ?X`  XNde43XWX(-GGr'[?-[AX WXO73-yeSB3GpFcX}FW*BXXNWLYZXQ o,+! WXXH0OF&XX%cdeke --Ln-,+! XDzW#kde-&WDWId;ePe,+! WXj _--Wd,XjWe>XX EtWk=./[-WW=--~^XbF,+! #WWWA ,-XF ^(W.KUE9,+! ZzWHB,+r%E8JrXte3dn--CS^W-`R-WeSeXOXOXOSWX'-WH-W JX WXFUR^!--X)WX)>bXWGKXC"  X-'S"w;W W' WWX ${7X WXb;wWCE TQ-W-w-W-W-r.sW+F1-X-W  + 1XaXXuXX0WEX%'_d-we-?a%f,+! dencXCW- -FkȂ=G0X 0!z-9X rW-WXtWw3Xt-W-W,+- <W}W5Xj,+! FkC`_X0tXtcdecF@Cr-- Xi yWXW5BB(>!,` 2SGM 4d,+! Xa-.*U-XFW-dNXvK{WK  ,+! cddFd],+! vXkdW x&D!`.X-C=n"XNdsF X;-,+! WǰX@WJW %G$'WX W%_H,+! WX WX VXk 6&GJ c ,+! A ]0E@cXFZ-W,+! HXtD/Wb,+! WWW.}=G&Rd^3WX|G,+! WXKWd.K(A,+! fWWWA1X6-8e4XV-I-XsW,+! ʅW-,+! ^Cd5-A' X-CH/ 1AX2X<EG-?W*XkX Xd:d 2,EEeeyeeqez,+! 4,+! E#P,+! #W- X X XbKDnXX-FEWX<X<LxAT-1(67W-W WW /-9GL'X/I ,+! XrFVXt X=jDTe_-GVcFF*-  kFx.. qWXWX'GX-GXsX8,+! WH-r,+! .K eXJW`:- -$RX X X A EX)KWc \W aFW aGc-FWlFXO X X WKF`LW G` -,+! c~- XE8W><4WDe,+! 'XOS5XO-`XX  X X X AiXW 7-SDeWF X}XO-WzJF;Wt,+! W )?X-JJ G `X WX73-gY fC6,+! ,+! EW /ttWXOD-'P$CJWXlW* W$DG['tDk,+! -.'E^7,+! egWWtW nCWW,+! ؜^#c; aX2WA8^DDW ! GW,+! - $:XN--gy edc(T^d3-"--eWFmc`XYXbFMXkX X W;w16AXtDSBg|,BlX2BXW E-XX҄ WWWW-W.KWXEWXFX} .KdB,+! WW/ Sa9}x|R*W `3jGX2 Xb-X WXb73XJXFXkXFSWW,+! yr-WWxYV5yrO%XCcG'(7i,+! ^{ $Sb4qWcddeWIWZH> %-1-GiUWXAD@Xp4WXOH,+! Xs >-B,+! XXXkWcee~gE|r$'-e!WWD* tH52H+Ic-* EW-\lb-QHF-WDFH- W XjC{W&WW**WW.PWb,}=-WEXCcED=D-vWXXY=-W'L-sW-ؠW-W@WjrX<WWWA_%,+! tW u-X --W,g,kWX'WXXU'(W-$e%(G ,+! ,+! ,+! WHH#t,+! f1.Xde`cX !JWGK,+! ,+! W^} ~GrXFFj,+! RWX{)VcXGGdXtWCXj*&[XX#X+W WTX(XC,+! D$FG],+! 5-XPW,+! X X W73XNX@ [- +eXt<<F?-@ ~G;ysl8,+! WF,+! W,+! XMWWWT .PUE4 0ĬXXD E DdWWWX(4G- o5E0T)ѲG-X=WXJCGJwDrcX(WqXXXb,+! $'D',+! X F $: !Xe[CX)WX}>0.}-? X(Xb* W,+! "-we9dde:sGC,+! 5xX`-cdccp #5-X WXb -Xjd;deY~;F3G!W,+! TWXdEX 1F>ԌWX@0,d0/ FpGEB`C -X X-h~XF 1W 2-%CIXE$WEDFqX(nXbXbXbA_X XOWENede XF?Xbk 2 lXt,+!  C `Q-WcdeeD-Ds't 1X WW73  -GNdNyEX WWWAXEWt).s )",+ X X W<cF[WX)W>b-X(dF-WE,H DyWFXYE7WZU6ed.}#C/b{XWWeXMXVEn@,+! XV%CcX WXEUR`1X_HHq*WWG +UE#4 ZJjntI+  #`se\,+EXV4XNX1X|X$ kW=[-W -Wl-Wi)dc-})W-9&7ZGS WE-WX(Xs,+! -GvbW-XFXbF,r~OQxDDXO-@#&RXaWE,+! cX,+! W `C^X2-X;WW-_FX-oU8rr<~_-X WX)EN G+7Xb-FXD-G1-,+! ,+! &#-&W^Y W5ydWsWXXR; IkQ,+! WW' 1WWWV->3yGW,+! XkWXk>W-W%-X WXbEN,+! X(XTkS'c-+)*EDƸXbWXbSW`X;CE FsdWW,+! W:C--ӱWt_CSXVV;WX<-ccex`XXOXS-XDEX2-XtFd,-Xb`z_ ?H)EW)S0wXXUXkWWWS5,+! DXaXk|E?WE--W1-XX'--XOWWz,+! DWVW-W$j'WkC "z_ XXYWy2+2/9 Bt- Vm%FXjWG>W-cdMQ .P W-++W F ۱۳rGDFBW,+! _X W,Xb^ ,X}ZF2X},+! OWX}W'y ded (-cddTdAW REOXk ^` 3 1c' DW+sN/ItEU`X& [ EWF  ,+! W-X2d[Gk-WdddeE{H X WCW+HEK]5,+! ,+! oI^X<G[cA W*,WsGX}_Vn{ -'--EX FCh|X WXbA7y>WecS) EX4,+! WXbWXb>bϧW-W7`ewd_l-,+! WX)WX)I, !tUN.P- _\X6EmXFXFXFL,-,+! WWWEWRH XE~2 x&- IW) Vd-u-M'Fl,("v%W-[XxX)WX)AWWWT Xz,+! d,+!  `_etE$Ry-9 ]-`?XbXbXbAW,+! WX}D;WW[-DIW 1d8e7ECXW ,+! W X2i_bWXk>-۰-WWYE7C-S'E-Tn \FMMH.}FX WXbURDWPX2s-X XX VoX2Wk'ehei~AWXFW>bXFYW-)*&"b#ta$!P(c,")!* q,S X)4*P$ #-,! "-4%-"G*x'K.%' %*%[, }*#(D( /(+`*2&1-%E($"+^R^,%.j5c xq4( &ZH){%!l+&!>)-+"'R++$Vk ".'+H-$uM)TN'w(B,'-*g)Q-'C!ZV% $  "^)D+4 k< O"i9 I,-`!X,* (X#*&r# D;..$o$ ))$'p.T$)#osQ~(J#c!#z%(-K)Bi.+-*& + ),C$Y"5s(x!"8gdU.[-J.2 {:'2H, *$( B& %.' A[,[""-/"..,c-3 Q+'&+-.',(w+$').X,J(I#u ,)-C in f- @i.;#'+H&%2+ * .c)o%!X&m h/%/%#(-)+(W%" ,:,  #*"JUl%+g"8%]&(%-d"#|%q),xa-& -,,n*L'&<+s<)-;X% !').;$-b+S.$Q"O^!"))),'kC&Q(C0x# %71*+,*`-"g-o)A&v(#e%L#T;.TB*['/9'd'/!{% & #!a+#$!H,p ;" #6.o3@.("eJ (*q$hD.R*;m0&l e";+) a*E\$(,X &.b% A(:>$b+6) !."1*j)6!)*F%"Z)'&D&U  u.V@X'f#, %&h %-+ nP).t#G$.)2.G$D_ $~ ,.)D2*'+-)f"x+Q*(*-X "kU(-H U &^.'!l?,_ #P ZW  FV%,+! -XOF!-X XkX ENW3C,+ ,-W9^ W#6h%\  )?X-C.K#D!.'LkWXWXO,+! G8W6GXE?tWHItXXWcX<Cc!!WQ-"  rWWXW4,+! -F7Xq-`OE'  {^O%WCL 7,+! W,+! t1X XEXlDXF- -e?WXjWW `CXGYXBTWW_-W @,+! . 2@- _dzFXe W|WX W*- B9^WXFW5t.W T. -W>BX>GWN)*EcM&R,+! R---FfD: X XX'Fz!,+! XNFrWWXCG-ZWG'-aXkX XW;wToWA2u+jW-X <X WW>ZlWt,+! XU--r(WXscddFe*uXX1G,WX(W- E$XtXsWXXXKG'0cX -dh"r 7Q WFWc E-WE,+! CQ 1%oXWFuXN-X)X)X)AD6FSBGKFsʶ - FsT) U.KXX:-G@Cּ!Wy7SWTXxX%qosX)X)WA-*{Gz,+! YXEXEXEA_ &,+! XFC,+!  '-X{X)XEW>-WXjGX'_EX CS/CG0F,+! ePWX}-X W6>,0X(D0e@_W JWXK},+! X WZD9Xac-.K--=S/VwP-A -HC,+! E#X2.KW FK1X*, XEW,+! RX| WX)Ee5$HXF Dd,+! ʟ$'P-W$#uXp- Fcdekc-WWWEN-`XXqENmXc,+! ^GGWXO-+SG -Xkx6 4X;EL WOuX X/WWWW>bX <8,+! 1X WW>bDX'US.)3 q-,+C /,+! ,+! ,+! Xz yWX #Av-WWG(XjJ-WG5DS!,+! XDX X WA,+W @D9X6-(td"'X}^XM-Gt_  X( 'k-CW G - 1s,+! XF_X)^-W߲'h;<X^?d;dd-`dX XbX T W tWXta-_rXs,3"u\) <,+! tE-X7CW,+! hWCXF:WX! Wd},-Ch UXYп5WF3Xt8WX|X~DDr*_vWGY.K-[Xt-X -DW.K- OEyH! &,+! %  )V;Cx5XX XX Bl drWWpd,}yXMEAX- -WFL,+! nX -JWQXX-- ""r 1-XbXFWURD2 oXEXEXEA*<'- {-- Bӂ-XsӍX),+! p .V+mXWW.zG&8i-N-.KWIW-X X Xb>3E45BW XN-X14YWEXt~E,+! M-X WWURXk-,+! XN,W zF< 1XFG;XgX }WD-d4 9WW-XO.PQ tXXk-X( B--WH-cW,+! ,+!  ~WCoW 1GVDWX' X). &|C7-C*X(--eX|a-XX -D 1,+! GEt5 ]TÚßGX{{_M- )?FWGX<,}ZWXkXzXk-`Xt-',+! X WG-W `-W,+! eWGOUICxWXtDX WX)BA-XF DG "1# 'ddWFWWX W*r :NyNz) (- C-oBPoWF 2W-dXbXXbAddCc,+! "?WWX +mW8}+-FXk/XXX,+! XW$'XXbt-XwWWWA"S-WXX 6X -E0H6,+! D#,+! eKWXe,+!  E'F -tD j#XOXtG/-d:d|a/VHGE* WWWVWDt--WWWWA-t(})YX2SOX} ANWP* -'"eK "WXOXWXtd& rE,+! ,+! 6 PW %X}X}X}S-WddcedC-WWt5X2p- )?XF ,W  W6S FXdWWXbXbLCc̉CN-0dv S-deeqdWWdedWX"-- XW7-8W,4,WW. 1epXkKS WJ6D-XE,+! ['_ " G-XbXX-W!!4X}cZWWWS,+! !S$v/ %)C.WW3eOC'X1  Xi---$.}W,+! D-XKG_ = ,+! WWWS#R WW 3WWC-$:-` -ԭ- 2XW@W F <`1#`I- Mc j4Ny5yWW!WpC "[XC-Czq5|pt rDW;r-F>UZ'%-$d-XY-X/-''{X2Ny )-W-W -XkXkC c- --'X2W-'XscVdWS/X  BIXX2W1j'u,+ddde)2<8b-TWX;--  IEzO4 3VXF XWG_XWXOWW,XE W "2XbXFXbAXc!8XtEyNyW-XOXD|XD5-MF-D4"D\ W X HHX\WW-FXs *!/x$,. 'F`T.$')ȏ!W#O)Q'Y,p?%M!p ]B(( A&aRB-M"7+BF%BF˖6P w( wGR-k>j#"2P%"R"F" BFFP%-:P%>j*m# wQ&5*mR O5v-%S5v"Z >jZ 7 wJ§P"$p7cP%TR>X wۻ> >7 >j" O? >ݐP%TpR^#"*ӎ O*m7>9 OP"5v:5vpN5v_"c  w4"Ut>. -Uu7r&F5v_>7*m!95v"#p? - p̱ wO O wP w>jpVBF#x>j*mQop/'>j  wߚ  wC^BF1'&>E#pC]P%-V&pk-.*m w#"&>pF2"2CP*mp*2-9oBF BF>`BFRp&*m?BF wX-c "F&>A>->j-N O*mr *mAUR>J& RpT O w87-F>E&R>:PNC*m=#-R*mKE= O7*m&*m>jp.#-H O-NP w 5v-#pн7*m:mP[# w'P%*mIP%" oP%"ԨU>5vpP_3WaYX _WaZX ?M#3Ere L!;!P* 4:B*th-4&m1qf-4,p}*&M,RGq&!u*BH"&">$6v -+q3,K %ׂ$e/$!G |)ߗ "B] !"1M.)1)%b"~$)K#9**C~oRK\*g'"d--X>% E ??P/&+\ q3 **i+{)0 |Q`c%Kx${E  S* "߃=*޴'7,f+WA&:-'PQ)vv9Oi!2&! GB#pž &-;'{Ap5*x&&w#-D"E A$ō!@mO-,~G$q<&#@a&P6$W%{p,e˒Q &.g$v& S <" ۔ B(`[B(9&:Q46V>Z5M#Tΐ$$S@&klW)!3?$u~ *fX1"srt%u(K(qV $.-Vy/o "AS&%4̓'zQ[+?$4$SC'rvCW\J%DnA,!dr + 1;7Ez@*.`&F  ?N6%^H.jM-J;?%'M 7ӸR!&(P5NHxO((y&NQ'(X*,߼/ 5U}[&xEUI!aFr!D[  R%@t?c!X$FXK0 G*R:%F5# *%$Pۃ.4-x&q[ N-+"6oE%%3"']Mk1 KRc ] X4'@%y)S  &H[M$u)N  A0c*PL%z!e6"5u{@ .*MWQ(e '>ۋ6! 1*:N'42#y>TqΈ#RVX%O  "< #4({"G"5,R! ՠJ\  };+b@n7:ۉ*,% 2'[T F=LI-I5!A<%#[Z":Dq$$Wv5"*B 7%b\ ||P0m .)  ?')0)&){#X)v*Oj  *CYW,)$r* "~~(Ҷ#),%yn(`W&"p!E&*pًS{0P#(+q=#6_R†%$,7'r<%1!$vCy)%&%O'h.!Z-, "#)2,.ۘ.$:-A&Sv 6 .N{%P,"6V#ř9%G-L $3z.!#iE&F[R=M.! E%#Dl97,W -w€-6.Qv;N,Z-a&c) -N* t!O%?Q% Vq'H2o,oRSɩ9$,onPwP#J uy#yXW IwSWWXW IW`WXg IWgWX0 IWWX) I}rW qXXi I}sW NX W IJW UXtW I|W!XEW IOWNX X I-WWW IW WX I4W XXE IWXNW IzcW WX IVWX(Xj IWX;X' IWWX) IiWWW Is]WWW IsbW`QXqW ILW#WW I1WtWX IvdWWX) IWXbX IWMXDW ISW X<W I|{W`X IWX1X IWWW ISW@X Xb ImW~WW IWWX IW XUW I{WX XX ImsWX W IWWpWX1 IZWX}W I~W_-XXB IWWX) I W T IpW`WW IrW_XBX IvW JWW0WWW ImWXbXX I|WWX IWWX I{W`dWX I!WWX< IW`X@W ImpW X XF IW` d IWX W IW "WX IW WX) IvWX W Iu$WX;Xi Iu%W 5WX( IW`WW InW`WX IhW7WX IfW=WW IWaWW I~=W^WW IX FWX IW`XbX) IX  WW I W`WXz IWWW InWXaW IzWRWX) IWX W I%W`WW IW_HXiW IW_MXW Ig"X WW IsWIWW IWWX? I{:WWW IW^WW I@W XXXa Ik7W_DWX: IVWXDX0 IWWX I%WWXk IzWWXsW In WX}W IW_XW IW`XbX IX [WX) IW VX Xt IjWWW IjW`XGW IiHWXW IrW`XZW I}VWWX) I9W`X[W IW{WX IBWWXW IW WW I|W GX}X( IWX XW IW_-WW IWX W I:W_OWX2 I<WWW I>WWW IWXEW Ir^W`X X0 IW WW IUW^X Xr IWkWW IW/WX IgW*XtW IGW ]XNW IWWXk IyWX Xb IrWWW I[WWW I^W 3WX IW_WX( IWWW ISWXXh ImW mX;X' IuWWX` Iu{W 00WXXj I}WX W IWfX(Xj ITWIWW IW1WX IkW AXXX} IW (WW IWWXk IZW^XAW IkWWXk IaW3X W IwWBX}W Il WXXh IqWsWW IWW X X( IW`LWX] IW X X IW (WW IlWWX) I}.W WW IgWX}X( IW WW IWXsW IW7X}W IW!WX} I'WWXM IqW3WX IW WX' Iy5W`X%Xp IWXXW IW,WW IW iX W ImW WW IWWW0W4WW IYWX XX IW ZX2XX IWWXs IyW]X Xt I7W3X2W IiW^XX InW WX IW`XZX I,WWX IW @WX I4WWX) Ii-WOXEW IW`WX4 I(WbWX? IW1XFXk I\W X}W IjW%X XO I1WWW IW_HWW IW_WW IW X(W IWWW IWX W IWXVW0{WWXk I1W<XbX| IWX`W ItWWW IW4WXW I|W WX( I?W`WW IWX;X' IW WW IW X Xk IWWX Ig5W]XW IpWWW IW_HXXo IsWWXk IW_-X[W IWWX) IW LWX IWaWXi IqWXXj IW`WW IX qXX IWWX IW WX Xk IWvWW IuW_-WW IWWXk IW WW InW XW IrW=WW IIWWX( IW^WW IWWW IW X X I\WWW IhgWIWW IWWW IpWXaX IWmWW IWWW IjWQ IsW VWW I WXXj I`WWX IW_X Xr IWWW IWCWX IW`XAW IW9X W IoWX W IoWNWW IyWX W IW WX IW"WX IYW_iWXS IiW WX< IWWXS IWWW I]WX Xt IWWW IW XbW I WyWW IuW_HWX[ IuWWX IW1WXk Ix+W_HXW IWaWX) IWWW IWWW IWS ] IW vWXk IWWX IWWX I WWX2 IW^qX:X IW_HX Xq IW`QX:W IbW_-X#XI IW &WW IW_HWW IyWWX<0H[W X W ItWXDX0 Iv8WgWW IW_HX]W IWaX W0/WJX Xk I:WWXW IW WX) I}KWX<Xj I0W WX IVW_-WW IW(X}W IW^aWXS IWWX2 IWWXr IhIWDXJW IFWWW IW X Xk IW X XF IwWX W ImWWW IWhWW IW_HWX IWWX) I4W fWXk I~WWX1 I5WXaW IW"WXk I!W WX InWWW IBWWX) IW\WW IJW_HXsXW IW5XEW IvWX<Xj ItWWXk IWXX IW`XOXt IwX X`X_ I5W_-WX IWqXW IW WW ITWxWW IWXiW IvnW X(W IlW3WX) IWX<XE IeW^{XbXF IrX WX IWX X IlWXXN IWWXk IxWWW IvW XXX} IWX W I| W EWW IlW+WX$ I6W>WW IWWX IWX W0VW_-WW IkW`3XkW IX WX IWrWW IyW X Xk IvW`-WW IqX  eWW IW.X}W IqW_HWW I}W_-WW I}W XVXh I}WX Xt ItWX(W IkWhX X I}WWXr IWXUW IzWXiXr I}(WuWX IW WW I}W`WXT IpWWX IW_-WW IWWXk IwWWW IW )X W IWWW IqW`  I"WtWXW If WWW IoW@WW IW WW I@WX W I WWW I WWX ImW `WW IWXNXs IWeX(X1 InWWX Ix:W^qWW Ix;WZX W IqWWW I"W`LWW I<WBX W I3W`X<X' IX X W I"WWW I%WWX IWWX I/WX Xk IW^WXS IW7X W I W\X XF0W&WX) IWxWX IIW^qWX IWWXk Ix9WGWW IW*X}W I}^WX W Ih!WBX W I*WWW IWUWX IWWX I~WWX IWX W Iq;WWX If>WWW I|iWXEX( IzNWXX W IW*WXk IsW X Xk IWX XF IoEWWW IFW XkW IVW WW I2W`WXm IW8WX< I^WX XN IWWXk IzWWW IW&XbW IWXsW I~WWX IhWWW IMWxWX) I.WWXq IxhWXXW Ih]WXNW IWXjW IoW_DX{W IWWW IWX W IW 6WW I\WXWX) IlWWW IW^aWW ISW_WXC IW7X Xb IW WW IWbWXq ImWWW IWWW IWX W IWWW IWWW IW>X{X IW?WW IW`X Xs IOWWW Im_WaXjXW IWWX(0+^W WW IW{WW Ip{W WXk IkW WXE0W2XEXj IYWXfW I`W_HXX' IWWTXbW IkW WW IjWWW IwWWW IWX W IwWWXk IlWX;W IW`LWW IWWX I{W jWXk IpW_iWW Iz0WWW IWWX IWXXC IW`WX IWXWX IW X W IhW0WX) IWWW IW_iWW I,WX W IW`WXa I%WWW In W:WW IWWXk IWBWW IW'WW IW  5 I}WWX IWX Xb I|JW`WX@ IW XNXs I};W CWW Io-WWX IWWW I{WX W IW WX<03W 7XsX` I~WGWX IiW`WX I5WVWXk0ΟWWX I{SW_WW IWeWX I)W WX IWWW IW WX IW^qWW IWX Xk ICWWX IWWWX0W9WX< I W|WX I9W_HX:X_ IzZW WW IxKW XEW IjBWcX W IWXXsW IJWWXF Ih=WX{W I/WYWX IqWWX( IW"WX IWWW IOWXOX( IAW`WW IGWuXW I{WVX}W IrrWqWX) IWWX1 I$WmX'W I|W .WW IW`WW IbWWXO IWWW IW`WX, IWoXrW IeWX XO IhWX(XN ILW^aXAW I~W8X Xk IeWXbXO IgW`X3W IxWWW IW WX I~W {WW IQW^qWW ItWfX<X} IsW9X Xk I}W?WX) I`WfWW IWBXVW IWWX) IW_WW IX gXsW IgW_DWXM IWX Xb IiW"WW IPWX}W IQW XbW IWWX& IjW#WX IuWWWXE IW WW IWWW InW XaW IW'XW IuWqWX IaWX W I}WwWW IW|X X IWWW InWWXk0 dW^XXW IyWX Xb IyWXNX; IW `WX( IoW_WX IhW&X W IqW WX IwWUWX2 I$WuWX IoWWW I{WWX I|+WX_W IhWWX IWWW IuW |WW I7WWW IbW=WXA IcW WW IW2WW I%WqWW I!WWX IWIWX IW WX( IWWX IWHWX; IW.WXk IWJX6W IW X X IW [XwW IWpWX) IWWW I1W X Xq IW^QX X2 IX WW I0WX X IWXbW ITWQX'XM I{WwWW I<W`XkX2 ICX `3WX) IX WW IKWWW0[WQX W IW[XCW IWWW I.WWW IWX`W Ik\W"WX IWXXN I1WX W IWX W IdW"WW IWWW I.WX X IW XFXk I}WWXX I7WWW ImWxWW IwdW WXk IkW4WW I~W*WX: IjTWWX IhSWWW ILWmWXk IvWWX) ImWWX IuW.X<W IvWWW IAW XW IpW!WX IXWX;X0 IW7WW IYWXbW IW 5WW IinW|XW IWrWX( IeW WW IeW^QXtW IW'X&Xq I|WWW ISWWX IcW1XiX IsjW_iX?W InWX Xk IqWBWX IrW WW I{W_HXNX1 IdWDX W IWlWX' IW`XnX I{WXNX; IeWXXM IolW X Xb IW /WX2 IhW=XtW IWWW IlW 7WXE0+W WXQ Im|WWX} IW9WX) IW WX IxWX W IeWWW IW`WX IWWW IW WX IvWX W IWWW Iy)WXVW IrW'WW IuWAWW IW XWX) IW }X&W IW`dXOXX IWXWW I-WWX IWWW IWWXk IWWW IWzXAXd IqWYWX) IoWBWW ItW >XXE IqWWX IWX W IWWW I&WEWW IwW EX Xt IWWW I}W^X X Io'WWX IWWX) I{W'X W I?WWX1 Iw>WWX IWX}W IwCW_-WX IW WW I WWXG IWXXj I;W]X}W I+W #XX0 I6W(WW I2W WX IOWHWX1 IOWWX IW#WX< IWXbW ITW XWXi IDW^qWXU IWWX IWaWX| IW\XXj IhWWW ITWWX) I~W XaXj IWWW IWkWXk IhW_WXh ICWXUW IW X X ISW`QWX/ IkWWX I~WnXXX IoW_WW IW X(W IhaWX W IvWFWW IJW^qX_W IiWX}W I_WWXk IzWWW IWXEXj IjW WX0 ICWaWW IW WX) IWWX2 IWWX' IoW.X X IW,XbW IVW*WX<0:WWX<0hW_-XTXx IWWW IWqWX IWuWW IxW5WK IW^qXDXi IWWWXk IW XtW IW_iWXQ IWWX IiW_-XZW InwW_HX(X IhWVWX IeW WX( IWXOX< IiW X Xb IWWW IgWWX2 IVWNX(X IW9WW I(W WW IW?WX IpW]WW IW fWX0 IWpWW Ix'W`WW I W WX IWWX IWX`Xr IW1WW IW`XtX< I X  XtW I7W +X(W IW X Xk IgWWW IWyWX) IWXDW IW_iXAW IW^QWW IX WX IWWW I}>WeX Xb IW`X`W IWX W IBW_-X+XQ IkWfX;X0 IWFWW IWWX IW_-WW I<WX X Iv3W_-WX IqW WW IWWX) IW WW I<W WW I,W X Xk Io4W EX W IxW f Iff/8f IffO$f Iff/f IffRmHzf Iff7._>(h-~ݶ(#p*6!>E %=)dT& R+"h*r& M- i/.#*P(K)du'VE7b.Y$H$-D]!#Rt$q& JQ;L I&,A2+kL$I,9 '7-8-ic"  EyN ?K#Oo(aY[$aCRW"-?+nDA('-$D>Y=?U -W=7 LH( u F+4 c0Z.yQ(],Jb=. C {' A(-V7c+s# X"!%*~UR!!c A"kG2"o68"h0N!d s85s eD8&D&4\>)KV Slzw.yk {G cg(]%j J/Q+?i} ; ('.  Fb$~aYWǐ}aZX ~K I"8<[#(? IJ,8BZ+2 w,) $V&)7G -%7):X8.-}'?2yڎ!OBE4K2O!]?%K@%HY>B^TK  I0*2  >8!}L," 1&'1E26Z2&)Ro-,>!r ;$GX!-#L# }0F'Q&!%;!&!C/ #}ғ Q ɉ+F w/B+ ,g(t@] /" X%<D#rUί3{ Y*g(&]I֒-lD$C0". -R{% /T o49.q%cCDJ%b,G*) 5&ŵ!@4+{-P)>.Ywe r( "G"R*$i * ;&kF/6,( %#/_*ɽ t.1.A8(q}L 7S,+}  ~!F AQM$s: )$<-70 a)v$a+(WL3!hܕF1((8*Y$OJ#W*(+$ ?b* C!' .S92,E#<&-ן.)J$6,v-2O!i/A'<V  |l,RpT( )lYe!͌!uB#1A&kL,V)IP%E? $$$ w1/-!`"EP*40$!M–%H4Y8![!Bc;''%$q6," %RQ $vM#1++)%{%.C#H \,< ,{'T q* -##ނ+C & gu%e'=,),/&PmdIK/l~ T'86M-O@K 'UY#ZW3-rEq |)a^J(`![ T#.&;. THY$C+4 Y%*G#XERA*&F#G$<-4o ď9(8٠!qm'D3:& Zl#&c+ M,1 1+#̍*B.*xWƁ"&K$#)$d&!ö'H@#.#DVDBnP(="P]LE+J9$ S/9B9 7W9,99'}9L9-<9# 9T39Q?9(y9,"9[9P9.g9l96m9,s9 69w9 LX9!kY9'&9,99:9~9< 9.5ү+3 #@D'w s0M_lE<I`_3j* F]8$-)g(X,kRX^!mX#h wyf$'=$**M-RS+`,x(N;(O <( Qq0%(8 5U&cm!p,( "j1!B0(-&*8T)*~ MrWD+ e)Y(&"; J"gɱ0h+*bP4d&|4p-+. D tV2y/sJs!%[_ (ޝ'I.:i.jc&;s&M!|g18kA!&v)s, !g.t+Lg #Ӿ -)K*(|  ,)D+z۬# Y 6N9~9= .Hغ%#%V("= ^B9}.H&BXh}%= .H= ("|%J9& B&5(" BZ& B B9B ("39?= ("XR}.H$}("ͩ.H'G7%)?B0&p R#= (" d8S%&?98Q }%}7  j}9o.H.H 6= EV%?b+= `.Hk C("'}  6q(VU "#j؆(G "9M%CU%"+ I+&T9@Ø/&iū+*]֢"ʉ!PH`.>P8ea(dQ%%((F)cl!/0D*J'oO7,w h*.hR&:,2% Fx+M-T[B(W r.vUYossT(L{&D~Uέ3zY$$\"/!* (`R%/R9'{B!,G** ų,@3%{..)4d|;j)/ ɼ .@,R|  S*f"&+#| F- m& `)&&L2-D6&k C+ (S8< מ&I$6&uN/@t; %b&o& L*xV]GP '   1$+,&w_V4/mYBb~-%%.-6+,K ~! &$*H', q*#'7ށ?C )3K'/ q'",5NZU$Y*BYV!~EoJ! :#TYR*A&$FF$;*-n4nĎ(&ٟ(q'C ,~us!'Xt$qE-D['&p,5 3$('C|[6#)(I4$Us!̰KD.>8 z H%5;'#l,'4Uj-B0hLQ +WWWS2) @<3*:W!GWvvNK\  ~ j R : XMvWxXTmg_+O_z ضd`Vkv X+ K|" y_%7al1X8$XN 6XWWv QmvvLLv ]k\/bRbcɎɐ; E wWXp WWYkWM @{ t     |y{tusx}zvwtqrsccccccccccccc~cccccccccccccccccC%C&C'C(aaaaaaaaahh6gh-hhh2h.gh7hh gh$ghh!ghhh3ghhhhghgh%ghh1h h+hh hggh h h/gh:h&gh)gh ggh*ghh"gghgh0h'hh4hh8hhhhghh#h9hh5h,h(hghgg5G<9:?AC=4DF>HBI;7@K6J8EII\\\\\\\ɈɊɂɃɀɇɋɉɆ}ɌɄɁ~ɅXX HKM; Hvv -Vv<M_+ՕvW ~?vvvv Wqc4LLvԘBvvKX( c W ev viWvXbXFX)v !aJv jvvMOoopoopoopopopooooooooooooooooooooooppopo߱߯ߟ߳ߨߡߴߠߪߥߧߛߜߵߤ߭ߦߢ߰߮ߝ߶߲ߞ߫ߩ߬ߣNbbbbbbbbbbbbbbbbb]:]6]8]7]9     v  KVWXkWvX KX1vY\\~wvxyuccccccccccb_b^bjbhbnbfbabcbgblbpb[b]bobebkbibXbqb`bYb\bbbmbdbZbb[XFK- WvWW#F`W vwvWvv$ p  vl]X}6إMuSJ LXeW vvMv)d vWX( =XsX ^ >WSWv`Wח` 95!B V mlhX\Xv  v2^pv_ yLGvW3ikj~~~~~~~~~~_k_j_g_h_i_f_ea*a)AQARAPASATZZZFGEg|g{gz_tvuvX_XLWXFv ZXk3evX #&vL^ vJv vvvK>v + vv V\C56 WWvvLB L"k:~kv 1EvjD{M +X UcGvMVWPpv{vWXjX1X2BX2^_L&W 0v 8Sz :_`8 LoWW~]ր__ UL_׸vdMb(v M^%/X2 ל  *R֩vXEXNVLf: D 5WX2M vB.Xi Bv 7sn1IvGXzWW^_XIPZXNXW X X(W_WHvd> "v__M9WWWXmXX`X(X1gX13TMI^~=|W ?~ XWe__SK X  ZW^UWXuX;XD+L  XFW yXbzX)) 3]L vvv"{ LXWk      ؏K dL!`vW # /"vY` ?Wv> MW#AB_`3vYKnLXX^^^_vL $voL;WXWֲ~uXM X:vWW   FBk sDXF)XXk*v!XEX X)Nv٥٦ =xv2 Ol\ t {v, ;cXZX*eL|vlgMl  |? vZXOBMv4gtv=[bWXF A`vDWWKWW_Wbv =vXk>ؖf yl+2Y42XEC5y 6vBFٝ >R !X; Wi kvׇXL-v vvv y^ vvM=H_1 Jy};$vYe ZLZNZPZQZMZOZZZZ>=?@A!" #% $'& gdgcglgogggxghgsgwgkgrgmgbgjgqgpgvgugfgngegygigtaaaaaa    XaXEW"gXFWviW,ՙxZMvEWL  X WXZ(WWzv4 eeeeeeeeeeeXXHWIM{ X)v:&XNv ^ԛԜ'WvWMDZtuvvpKz`C "vHvpsC^817vWvK}  )X)  WWWXT UVW@H9sv ]_`r-}X X.o[XFL׭vW@WWWWMOv TX<Wvv@v_[II3I5I1I4I2I7I6bbbbbbbbbbbbbbbbbbbbbbbbbbbcc4GM;D6KHI:5B</12A8@3=0CFJ>7LE9?[[\\\\\\\ɹɳɭɾɽɵɸɿɴɻɼɺɱɯɲɶɮɷɰ !"ILSQTNPOUKGFRMJH4vsrtzyuwxd+d5d7d*d)d,d.d(d1d3d6d0d2d-d/d4eeeeeeeeeeeeeeefeeeeeeefeeeeeeeeeefeeeeeeeeeeeeeeeeeeeeeeefeeee<;:=    bbbbbbbbbbbbbb[[[[[[[[[[[[[]]]] ] ]]]] ]]]!]$]%]]](]"]]]] ]+]]'] ],]]]&]]]]-]#])]] ]]*]].ppppppp p p ppp ppp pp߸߽ߺ߻߹߿߾߷߼pkpjplpqppprpmpopnPuPyPwPvP{PzPx]B]@]A]?]=];]<]E]>]C]D]D]C]B]EPQNORML^^^^^^^^^HIEJDFG>?=<vzxyw{|u$O$Nstrdddddddddddddddddddddddddeeeeey~z|}{fd]?!G vWLv d E2#ա ٌK=Fٍ_vX<____________^^^^```WXaWWXNv ^ Xv gLt  1X WWWvcCm?__v-vvM1XZX*.vxevvvr@ WWWWv4XWX XCX&5W*WXfgj vX v T p_Lxv nWW$KF  b *Dv m Vv  "qusrpwvtxfff|fffff}fffffff~ffffffffvvvvvvvvvvot}snzu{~q|mpwxvry___``````˚@@@|@@{@@@}@@@@@@~@z@@@ZAZJZFZGZKZ>ZEZ=Z@ZCZDZ?ZHZIZB   fffa?aDaHaNaOaLaEaKaIaAa@aGaCaFaMaBa>aJvvvvvvvvvvv_5_3_9_7_0_6_4_:_1_8_2_/KLe`````@@@@@ZZZZZZZga`fipchljenmbdokgFgEW:v;v=.  vv V_d E _tu_xփ LplWvWL v1%YW qF > TՅՆWXg X| AvTK^S, vuw4_$_v1SvWWXsXXiaiWX2vZX*WMyWvWN'VX_WMMXFW ( %vWY1XZAW  FW @ b\XJv% WWg vt WXEX  4UW[yeL7Cn dWX:WXCWXLXN_ f[vؓ$_}W 0 21pqrj`WWn_._X)MX}XlX  o  @9  X\ BqqiַWWԭKd,K UvCvv gjLkWXkԃ^^_`_WP 7 vv.v{wvWU_[ZVyWeבWWW&WmNvO X2 XXX|W XCX&XtW^vX!u ^j8_ `OgvU@M- Xt:B U3 4 2  <_O"|}hD X)WW&Z8 LcHMo&W $zXtWWvg4gg%gg+g)ggg7ggg gg g"g&g6ggvv   xtX<`-zvW r _&XWY( vN #  +^8vvXkQWXXXaXjW X)vvLmsvYv^K*XWuvz ,{=vQvg5g ggg!GvXN-ٮAWDevvv XFv."[vcXO LHIv&WX*vXF_C ^Mס`^k^=vעvBRg(gvKvvvX Xs4XNXs 6I vXseM9v W;DLX}r]'X9S 8RXvv43W D^M Wv&xl3 N6#E$8ymL{cGo*\.hFd_qfS5VIQ 1Pjs?!H'=(UK)Bz0b42XktgR@u,:-OA~]^w;nWTi9%Za/rJ}`eM"p [|Y7<CvD>+]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] }{XJ'Y~>$Mfzj5 pD"g@9OB,yqrb!o.#QcLE`&e IG:Zis 0Hu_nSC+U *^67WaK/k-Fx2<| P%];A(N4[1hlvdVwt3\R)mT8=?pxqqEpqpp}ppq$qppqq(q9ppppppq5pwpq0qpppppp|qpq-ppqqApqBq7ppppqppq,ppq6qq3ppypqqq qFpp~q<ppq!q pq'pppq+qppqppq;ppq#ppqqKpqppppqpq@q:puppppppqpqCq pqqqGpq8pppqHppppq%qDpptppqJpzq&qIppppqq ppq.ppqqq pqq>pppqq=pppq1ppppppq"pppq?ppq4qppq2q/pppq pppppq)ppvqpppqq*ppppppppppppp{ppppp  f9f)f:f+fBf?f8ff6f@f!f,fGf*f(f$f>f.fHf7f"fff4f f-fCff;f'f#f%fAf5ffDf/f1f2ff=ff3fEf0fff&fFf<]]\]^^%]]]]]]^"]S]s^^]]]^]]]W^ ]^]]j^]I]u]J^$]]]]^ ]]^]]a^#]^ ]v]T]Y^^ ]]M]]X^&]]^]]^]w]i]{]L]c]Q]]]]]n]H]]]^]x]t]]y]]]]p]Z]`]]]]]]]z]]]]]]o]]]]]]g]~]]]}]]]^]K]]P][]]O]U^]N]_]]]]]]h]^]]^]]]^ ^(]]]^ ^']]]^]]]]]]]^]]]]G]q]^!]]]^^]l]k]]]]]]d]^]]R^]b]]^^]]]]]]]]m]]]]]V]r]]]e]]]]]]]^^]]f]^]|]^]]]]]^]XvwvxUpvAv   vvv/0W 4 YW^L kw1 v` -vWW Y bX2 v ,FvWX| - o4  pWKJ<XO}viv <W MvvM#_3X<v־Xbvv n MIdWvO  X)WXNaWWX:WXg 4v  k y )M>#t FLRw i /\WWWXWuXvWKyU1ى_&- MKXW| 7]M} <vW(׾49ZX) Y7l8_2Wv;Xb`7 + % E UX1W^vWK`WX2WW12%`@0{XvXtXNWW bWWv UvE79H8<Wv!WX9{>(hWWWԵPve l)!Lv1v3vWXWWXW vvWX3 Հ )WW9:Hnv^_ّ"#T$XhXLXsXXX{bJ`viW)M K fMS{vLB= fAe XkV~WXMW[v XXk;"X)v vՎvL=vW`qB"spvWwGWX)LWW9  XFW 7v^` %tLUvWv  p vוcc01/bvb}byb{bzbsbrbwbtbubxb|$Q$P$Rcccccccccccccccgggggggggggg^a`]_[\I0\ɍeeeee58967:?>[[[[[oooefihdjgklI8I:I>I?I=I9I<I;T\\fXXXDWW yw2brg[p_qXYnWs^Z]mc`afhjd\kleoidLdCdAdDdNd?dMdBdKd9d>d;dIdPdHdOdFdGdQdEd@d=d<d:d8dJceclcocgcjckcfcmcnchci[[p5p:p7p1pCp>p8p3p9pBp;p4p6p?p=p2p@p<pAPrPqPsPtPoPpFNHJGMLOKI]`]J]]]L]e]N]a]i]h]U]b]V]g]Y]^]H]c][]X]Z]\]W]P]F]R]S]K]O]I]M]f]_]d]G]T]j]QMKLN~} \WXd  NX}?vvn)|}8W12WWX}YXkXO!GvXXX|XPLvvXOMX,vW^zUW E }Wv$v5X&XOy WWXX'WմM K٣hLN`_`&_`_`_W׌WW 8 \ v__%v+  * ;XD;;;R 5=X v^^PQnIWvv|X)XvWXkc ׶ R  XFXoXwWX+_> vXDՠ | _LH  XNWKMvv!GWvMv`.ՁX [LWW7v](vXO(MnvW ) vv( {PIv/ W]v M C7KWX<XXWX WWX2 5K #^ Wr`3u EW}vWWsv3 f0X<B ^^UV*WWX|UjJWX) vv k(Xtv9tKvggL4 My   WX X)vLZ   wM$Wv WXםovמM3vX?ٓfv _?_^_Q___qLsqv Wlvv^ qM Lq M NXWX  kv_S^VgWM5?_,_LWWvvmvPW:WvLר5שc  X1XMՐb- wX Wvv WX`~ I_MXXW9X|֙I_<vX)ԍvWX K` LLWUvX}X  D  WXz eX<P+X(M :x+v3  oH_+Lvi?~WWv mKX<9EWX}vL?XX 9v6tY_Kd6XWWWX}WX/؜ XbXFvv )WX:vW^vvWXFXOvovqv5F _# v/WXKWX2>8hLDX;WXrvvlXZWԺvXkvvvvee lM+Wvk7KXXٶU2vv^ vLKWՄgh wF WWWٔv $ؗWWL%tvW ֏X<XyzvX X1    WWUOQ   qWdm6 XXw   Y#vWM qvWXh vvاw1   UWԌWIDGftv   Wv bKbRbSbObMbNbPbQbL^`bc_\]a˲˰˹ˡ˿˵˯˨˷˞ˬˢ˸˺˩˧˶˪ˣ˫˱˽˦˭ˤˠ˝˴˳˼˥˻ˮ˟˾AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA21;6<=8:79534@@@@@01,9)48/-6+(752.*3:a_`__``__`` ` _``__`` `_``__`_`_` __````__`` `_Z[ZnZeZjZfZWZRZ`ZXZZZbZlZdZYZiZ^ZkZTZUZhZSZmZ]ZVZ\ZgZcZ_Za[[[`R`U`L`W`Q`Y`K`I`M`[`G`Z`J`X`A`F`C`T`]`S`\`O`P`^`N`H`E`D`B`_`V  $% ( ")' *&! #bxbsbtb}b|brb~bybbbubwb{bbzbvCC#C CCCC"CCCC!C$CCCC\|\\}\\\\y\\\\\\~\z\\{pqnorpc}H&P3B ./-(;09JCDNTWK4 LVG=O":!?182%$RU'+)@I >5#QM7<S6EFA,*#'+%".&60(/35*,)2 41$!-ffffffffffffffffffffffffffffffffsr|}~bKbbb"b bbFaab%abbbb/b=bbEb@abbbHbDbGbIbCb5bb8b>b$b4b!b.babbb?b b6bbb b b:bBb)b9bbb,bbAb3b*b&bab'b<b7bbabb#b bbb+bJbb(b0b-bb2b1b bb;aXa\aSa]aVaTaPa[aUaZa^aYaRaQaW~~~~~~~~~~~~~~~~~~~aaaaaaaaaabbbbbbbMLHKHLHM"!# $P?RJMGLEFNDA>=QOKBIH@CS\|_E_G_N_W_D_Q_=_A_B_<_J_L_?_@_R_P_V_H_>_S_O_K_C_T_F_M_I_Uidchebfg`acccccccc*1.(3)0,+-/2~|ruqyw}vtzxp{s8769aaa`a`aa a aaa`a aaaaa`aaa`a a``aaa `a`aaa   bbbbbbAAAA@AA @AAAAAA@AA A AA@AAAAA A AAZZZZZZZZZZZZZZZZZZZZ%$"#! vW[W|cQ XXvvy 4v LE v`*NWKvWԿvؑzX)և '_Lv^S׿)v  2#pg##vLZ!G>s/ v v UKv@M ^X`WXkvLMv?'X O m tpv nvMJWX vov _ :J1   + t @ Lv+LXuK^MAvց  hWm׺CjN6alvs7vvKkX| W!fnv0W X WvX7  v }. | AklBLWzWv nLahv vWf~EKXF_M]vXNLMx]^C(vNQv" vvxv vW q&XW\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\vbLJGMHKI[C[D<;87:9b baaabab!bbbbabbb bbaaaaaabab"b$bbababaabbbbabb bbaaaabaab b bbbb b#ab`a```b ؀LFvMkv 0vvv*vHLK XWW ck #vWXOXF  WC|WvWViP vX N ? ֦Si   d"FvZZZZZZZZZZHOIJNLMKgg}gg~gaaa___________auav.2410/3AAAAAAAAAAAAAAO4vvTX=_`=L]$ L)q8vC{NOP $Xt%tIWZoi  ֒vWwA>9vXQvKX1NvXntv *vbkl Ey9 M:_KUvvvM_Mv 8kc~  ' v^`bcJKLXk^? +v -f 8iBvB v Jv)^ v  , Ur!K]X) EBjWv8<ظV m`WX)WX2 fv vԥBv ~Vrv vJv GXXty G H Pu WXM[-XTow)vyX `@,vnWW7$'LvvAXk avvL[UyWXj'Wvه vvvWKWWWv m` TXkPB3 X +Pvvvv u2\   ^  @MZ֬_V)_  Lv-Xu4<J Io~vؚ G f  v2Wv X K_a__``:pXkWWWX3S 4D mX5WWZ++,W WXY 0X) 7_4a*_ uL}c 0_8ԒԓWԔS-vv0vy  Bv~LWXtXI0hvPx yMT ؕWv l( 6N=fխ9 #s  CMX} WXhhXtWvWvs v__XtWWX/WMX imF@vvv  4$I_WXnXu/FXv%#vXu```٩\{ /vW vIXYXXDXXW# =X_vX<.֣X'Wq:`_*_vUQ8wfvyzX& 2HlD%V !LvXbXFX)W &&LKvNO)v XNX_KmvX XsغػՈEvWWX}o`Cԩ%AXEWvMX2=P`R9:kFWWnvZ cX~٠v}LvXkS4vJ KWv  X/LlJOv{X{ vW ) [-[.v hKjv3vvuhhWXWy i {M| \x:#0{XOX1Lv  1WWvYL  z.Xl vLW W { ij(d6`X| b p WKaUWXGXFXkWW QMRWW kWX^W #vE  vq`o v /u(vXXN#W ]|]{]~]}]y]z]x #n#q#o#m#p#k#l]2^&vv6WFWjXaXEW [8t yL# ! v_mX) ^ _*lכf~ |եr ;)^B* *vL7_KmTCWX1 " i)vg'g#g$ggg!Gv/& B Cv- JvXWWv@=aX2<^X)aTJ]6Le LWvצvvWW_ _MPwlxmvMv  2 آy VL/7v 5 @v %vvvvv aռ؃սv\`L_c`x{^^X FveMv~__L՝:[WW  WWXX*WWX6 V<  vXtWWvWvWX}v~v0X<a9XNkv pSټHXFWWv>vg*vOM[g2gg3vW-TvXWbvWMr\,L 1a\asa_aaamatalacaeafa[aqaiadara]a`anajapahaoaka^abag_v9v_Xvvv}vg y y!fdf+e#etd$dcfdBefecctf7c%ezbfcedeg9ebfcdc>eYc1egRgfc gmdegcyc/fRe1dcbecXfdedccd;bc feEfYepdJbcbcc dQdfg>eegfeufgg)dcf'ffidyecc@dececRecfnbfhdddeegdhccfNd{drffc,gOc#gegcTdUenfmeGfccegbff dgJfbfdcbfgfdcfe`dffeyekcpfedc"f bcgdXbgbc:f:dcwfHdg;dddbed7eUd8cffTdge8fbeffag$fgdAfEdmcdqggfVedbdeFdWecoc(eWcedd1ceDcOcfcZc?cWg+e%bfQcc4ffdddnfeec_f9egkd^beeodgLcdHdgeef;d]ceaeegUde@bgcNfdccefCfcgcdec'ccbdMcdcsgKdege"cghggCfkdedbf8ccjd0ce{bded(ffOcfeee>cfbdOcdeTebcgfcdfgtgFd=bcffSdcde!deercffcg g5ffdgdLegfe5bdf.fbbfWbg8ccg.ddfg f,debe;d4ggfe feeddfdefLfefbgeggcidcc*edcBcdfBdcgbbed.gWg/fggdedebedjgg=ddEeec]cEdafle.dbbf(eemfc)fcg(dgxceg7fcedlc;eesgEdwcbcgPebfed}dd~begddf_bgqee:cggf$cdiefPbddVce}cdfrcdf|gedGfe4cdodcacf4cehef{cdfgcdcedcbdec+ffJfAdbcbec6dccbcd ffgQfdgZeeJeg_cedue9eHdFg'e,fc}fcHePbddcefc5efff=fgg?dvc.eggcd\efgchdef1d ecedfbcgecffeffcYf3gufcceicd3ebef)cfeefd5e-c{dddbe[ebdgrgTddgef*g1ejfcdf-glcuff[ecdKdfeceecf2cceecfgedcdxdfeld*dgNffdczbc-e&d fqd`ge'ffbbecccfxeObcKbcgccAdcgd<fjeLbeeXfKdg ffbbeg@g dgee begcPff"dgoc[gibee<dcmcgefdcebdgbfce(fbdcSce~c`cccIeCff6ee=d?fdtee3bg~ff<gdDeZdccrdTfDe7d6f~fbgcg#fgpg*egdd fevg]dgf}deeSe f%dgHbgGgfcFffc fg-beeeedcfgeedgd9g4fdbceqd-f\edfcfbdf#ffcc=ge]g`fegbc3cc|dgscbgbfMgdce$cfee6eccefe+g<d'd@eee_cgdckgg3eee|d&febe0gg6gBfpd_gcVf`feQfccfgeKcJcf]f?d cGdedPfggadCcgyebgndg"cdceg\bddfbg,cfgf!dIbffdeefcbdcd/cbcd)cCdc7eg%ddNg|cfefcDffcnccfbfcdgdf@c^bbgweg{fedSe?gcg:dcUfe^fcd[gveRdfggMgjggAbbgfebg}fe*cc&c dfcf^dpfg deNcedceeffzeBee fIe\ebeggcdg[dkfXgcgdscc~feccc$cfefccMdge c<fbccbf/fsdfceIgc!f deedRe2d!d|c9bdbfg!d2fbdgcdgVdfeddd ebegggbffyeAeefffudexcdZgScgf>clcefee/fd>feVbgdgd%dd,f dcdfdfUdfodg2ff0cLefcdg^dd"ccdcebddeegDcQccdecdd:fceffGc\eeffbcdf&fgYccd+ffff c0fvftdewffdg eefgee)cdbdgXg0cvgzfdg&cbecxdYefweMbdc f bec2e ebbgc8d#dcddcefZgdzgIbeddfFf5cqdfbbbbbbbbbbbb e*vNr vvك= x,WXjXB%iM 4v8 bv D hvnvv^ W WX7WW&8Wv`_=ٵ$ _X`WW_(LvW"WXtXWWLvXrXVvvv ]v'vNv)L֍CAgKaE,A A!AAA#A$A"A_____a}`]a\[VXYUWZ_^A~AAAAAAA}AAA$& #%"'(!)xZZZZZZZZZ _vtx $B6hvF yvX2WfvOMSWWX(vv vvXX}vyv Uv~0lmnpo___m_|__s___n__l__o_x__~__p_w____t_{______q____y_}__v__r__z__u> 7VWQRX}  ԉW _6^Mv LvVK6W vvAgMCXjWW v ,WWW*V'N X2F  v=ٻ_L QM  vEWWX(v )XiXkW LWX:TvvPG RWvav*3A '%WWW٤ `Y= &v`6_|֚>vL#LvKvZXW Y^RWٴE-%vv|vvv^ WW`L9OXWX  v/0:O 0 /0vWuvAWFXs vvrXO5sU~ vv  WvWXjPbvXD_ XOW{    >WXWWXXCWvcK ,W WM vWpt`[`W`U`T`X`Z`\`V`Y˔@h@e@d@i@f@j@g@l@kWSUTV^^^^^^^^^^^^^ffffa5vZ_+_#_'_%_$_*_&_(_)210`fcfafb]]@@@@@@T. XWv 5L5vY#MDLvWMvr l)vhWWWX9vןAWv^S``A vv}X)ijM"Ngv m%vCXOy0Xv ;{j &vvv 0 .H5תKWv׫Wv|Ց \L /^McX)1v`_g^XXbWب___U__`#`__-___X`A__HKv$i `0MxL  Anv$LNv vvV_WWvhvX2W] Tst6 Kv v5WWXXXXC s1 tc;Cl1_>'v [ WW g WXgkL!vXM ]vL_WXWX)v ;X<  4d()_]` Kov Ivv vՌc[vWX vXMvdXXj(c^a`(mXHgXXj r֖BcccccgggggbObSbQbRbPbTbVbNbWbMbUZԂWWC   v vNOsF׏vW1XK_7  WX8WXXvv^v>8v$_ !v5sv-Kgp4 vWWMY  nv#:vvWXfWXkz6_ _{L&W9QSWWW!WT3Uv[' dXv LWWWv ]  LX:`?^vviUrNWWYX)-X;WXrgz.WWKv״qKKWYv E!X ٭v?}vg h  G `NLAv kKv ]RXEXN \]y e +`h_[v /  Nsvm]h/MeJX)ׂ_9v"02vv&b bb+1/02).3*,- i XXv<vL\b,qWWW _fvLjvvXNWRQUWK}>DPXswv2(r B y ?$%55 @ ֜֝%X XcLXWWW#vWv-GW]^8v;4J*iFv0v ),%(+&'*-.X(;vKlXYXXX X vԦWv4XbXkv H _vvv'v  XbTU`,asvvWWvv U XL^v)*v_CLXXX|v LRv`.WX(< # Q vKM&wX| k XPX0Wt[@] vT  gWXtWX:WXCWXyX-WX6WWXBWXKa U`  zM|vXX0  ֧ v *GYvԡX(WWWY Nr- BWWXXWFW +N8XtWWX$X 0^;^<X`$JM v  l?zXv >W ?WXN?ivv XXWXM dF i[?v zv v  ta"y4׮XEWׯ3Q vvXkz nWM`0t qW 0 ;vz E]jcvGحIv_Z`ZWXCWQX)v0WX2W؋_`vvWWX  vvXu}ُXZa,a/a.a-a+*^l p1m WLGWԧv!GvaCvo 2pWXiWXrX2v = WWWXP ּֽٟٞWWKv 5 `Zؠ [vl_XX .ddddddddddddddddddddddd\\\\\\\\\\\\\\\\?A<E=CD>B@;pXpYp[p^p`pUpVp_pZp]p\pSpRpWpT^_a`]$>$?$;$@$=$B$:$8$<$D$7$C$9$A$4$6$5QcQeQbQdQ`QaQfQ_Q^Q]Q\Q[QgeeeeeeeeeeeeeeA4893<>67B@2;5C?=:jmpnklo z 0BvDvvXYXXhXwRv _STXX0bL-%vcu'kV^W` _"XkWW dv!Gvu "  vԠ fv5QWXOXtWWv!V n]nXLvv}v^3 vJ{]L\K_WEW_ _ _ _ _  v   b cv__} <KvLzLXk -v` +KtLO9#P:v! M zy mv p`&v$X@XXK XXWXvW/vKWh44XkX2ٱٲX<$WvvnXVWX_oMQ_eTF~vvN$r&W X %v XQv5cuX WWX1XW : vWX1X3r0>?MfWz!GvXX$ ^9rvv] WKq{6<(^0v Wv 9v3M=k ~bXbWbVbUXhXLKu vX XXxWXGLWXkvv/vdױL 1  v  vLMv'WXtMWOKZh?Ի;= K MvXY X"|pLXefgv U:{v ywH '6pvv (vvF֭ G vWXjVLXiW^v ]Lv*<W=K| /;M$ iFvW١ `W lTRvvK 9vWXtvـMQ;vcM  v_CLna,b vbv1n3WHXWWX}X2XvWYXkXWWX'X <vzWBvX( vL8 DGBLMCFIJKHAEv>Wv3JKvK R8LC1 vX"X9XXOX<vXFvL WXEXNףvXIvX  X bXhKbKc vpׄ._ WL' XtXX oWXI 4 $԰^FKrDWvvry ~  zS }Xvv}٫ ="8H8-/ pnv _ nu)69^vvX1)vvv.hjvW MvxXsKէ Wcd,v9 vddd XW 0L$ w xv z GW]0  XkWIvW v a`G c *vvL % &\d d cccdcddccccccdddccdd d dccdddd dcccccdddcɬ WW0O+sWMvMwT[[[[Z[ [[ZZZ[[[ZZ " !   bdcefgctcssutaaaaaaaaaaaaaa]^[\_nrywxszqem{jtg}cihlkv|ofpbdu~\u\f\n\w\m\l\i\t\p\x\r\g\d\b\q\e\o\v\c\s\k\h\j`4`2`,`5`-`/`0`+`3`*`1`6`.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfb]b_b^b\bdbcbabebgbbb`bhv< =4v"L'վ-T m_vWvXGl Svtًy^vԾWvKv WvYط  ] $WWXj Lsv @ yW<VvcXZ2WԢWKHGCW^[ٿ OvXj6qWX2*9WWXGWv!T 5    WX}LWvv^vi%Wv'L(֕XtaLշmmv zWW׍W/׎v,vvX2ՖLC1}D)| vW ?   ,jJX<Scد Wv +#vvW`vv .v WXav z__xLXCXUXrWX<Wuv1v Oْ0_vv<vvdv XF&  )j q H IX2\^X<6ɧɜɦɒɘɔɤɩɡɨɟɠɪɞɚɗɖɓɫɥɛɣɢəɝɕq;r_nBv  ձ_BvW +-vvvKW xvJvX) $^vK_zvئXOWW `/I Ll   3Ԋԋ^ vDY9.@@@ZZZqgAg?gBgCgDg@avawax_rL ?Z_kH_M<c|6|Kg^ 6WX)WX2uvDK[vXUWؐNiv#j#i#hddddddddVWNֆLr b\.bSbbɑɏ< 2Xv'VWXtXX)v/qپ= AvvXMQv sv eNKTqbr __f^  X}X'X Wv#E! W.v#K  X\XvWWWdلWX(>"Զ Է k WX)aaaa" z p oZ: x^ ^9KMNe v 4TvKvWWX};X'X hX<vv31Wpwr7WXXWXX}X<v`% 9MJ +XOm^ v" C zW֘ X \Գvv eWXt u  QW)vCD׳XtX1AB C՛ !W٬ vXNWXX {{vv5vvv}5Xt; fv&ԝ`vG Ivvv*+~vX(vvXkXNu y v5vWXWիWQ0J p>Xs:E׀BX}hMPXFvv ֑'v_Z_E^_(a#_o^9^za)`^__c`aa'XkX;L^XH[GX<pXFABvvK L9 j ]^\ xWvvv X)[vv|WH=J KL ؇+X Kvv X  .v_0!#GH vw`6^iWWX}xWW<`veXg 4  ADACABZZ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@b^TK<e|[JpvX~Bjdry>Q=kZ}SPmcw@nOoU{\gq_Y]`WDGMCxhtNEsIVHuRAiLFflza?]\ggggaaahagafaeadacai~~~ ;+  Lp )  vWWWDWX;^-Ka%K __}vvb WXpAkֹ`A_ov(#v/ ! ԄWXj| z Z _EX G^?EOWW| Mv גZp \vv; +5M՚ {vvن nWrWW <vv_vRքWXW?KMNX1W v[v svXEX,X5Cl1_>'vKK - OՇwz~Lٕv<VTw_W_a`_>_b_^]_`^__4_!^_ % Jv EvWWXFvvWKW!GvWvx?*2 vWX  0 ,.}K   v2(vv dWX LAvvXVW O dWW}j[v ) yF23WX%v vԑR+.vL v LvvvvcvX;X'X:3_v_<$KKWZ^jiP , v- ( v wv?[H[J[G[W[\[E[M[K[S[U[[[R[O[T[L[I[Z[^[_[V[][F[Q[P[X[Y[N12 < vWլlP.v@ _ . W_ =v ^>uL</ָ!G_Ԯ^hBCXbs< WWtBWWv &)"vX<XXZv  ~XtDv]r]t]q]su:7WWvX|X0vWWX >   XWX2K`; rK_ U pv  vXF % .Q4 ttvxLKWXCXLWW { a 9 DIvWvXXv WvW XlWX1X|v`_zE[\xLL9Ix$ oLdvY3W:X)vvX<v &v 1 < z{X: ^`^t^`^^N^E_^r׉v"Kv2` y fW'v,XNWv-~|vvM ZL  WWWvWX'XMvyRDvx`'M*' WXW eٯv P wv~W >  %hvW֨- M WXX_;v<_IWWvWaW  kW nT OvvThEW&8vXFX)K)X<WvjWWX% tX / vv5r 4M  | *) ,E v*/#vvv v 5X}& +vvXOW YJ6v f@ G 5v1Wh:6K y!M)2vRkp0 ofWWX}&&vvv[ s7\vvvW@v X4>_r>vvץS(A MKWX vvy vvHWHev.WXteexr WXsX;XiWԇK~LvM?؂  3_vXOWMזBXO KX&՜H]]]]]phpapfpepbpgpdpcpi$H$L$J$K$F$G$E$I$Mheomcbpdkjlfignqeeeeeeeeeeeeewqustrxv]-].]2]0]5]7],]4]3]6]1]/DFGKEHJI^d^j^^m^o^u^l^n^e^k^q^^s^|^^`^r^x^f^^^a^^_^^b^i^^t^~^c^h^z^^v^g^p^y^w^}^{^c{p|iohvgfnmy`xq~ludsjakz}betwr"23,%408.' ;(* :7 +)&! /95- $# 61 %vvWXv WXX@Wvv Sbش W}vdd++ WvX2N   M,vv? v WXWWWՉXkKWan - ֮ٚ֯k ULv Qv WXjX; vv^Xvvvv XWXD յնLX(X` *{ WXj1vXF v4 s tvXX(XWX vXWX(WW 0&1 ;WX خvXiaX}X1W 77XcvWXXXX|W2+ LYWXF ELX Wv WX<&`}lv 4f_,Xb֌3v#v WX Cdr}vfgM3@Dv )WA  XOX<~#W'WX^X7vv bvXLvԲ\B54vvv'ia`^\_^W^_m_``^^p`"^._t^G %R8BdWeW'vպ 8^c9stuvX)WX$v.Xv`يX'X_ kd3)"_e KXjLvօXFXhXL/v_iLq8v  {vf\wK  5 :W  Mc6 WWW _G:ٺv|}W@ v0mvC__^KWWW  ^n@v$B <^2M%_XW vLO rX     XOx?WW;vd- D*MN  ) ؆m Fgv~Bv v Wv4vv4 vKL 0v`'rKXՂvj vM@)z J (v_)v pX0X_L_WXWsLtW@vfWհ=@ q! R5noWX Wׅ79XaRJF&`L+vWW v4X W ZKKyHHL +)_vLK_``_=L՘ vWWXXc5WUm/~h`afebcgd_Z_\_c_a_d_^_`_]_b_[__a(a' A'A&A%ZZZ~ذWW $,Xax  ԙԚTwvv^3Xvv WvvMG3@v/g  B2!Wv X)ؿ vvWRvT /('*)-0,+.@ <3 ` LgX(W` _WIWz L>M *X L  bwWVvWWb V %v  *v' X~ n؅ [LXl!dvvv54X3LxvvvXֈW*:i9:7*v+I_  Hvv$vX[&abK zXCPvפX h_2WWW )WֵXbB s , 3 !  lvE;L* l v!.v^U`gaWgXWh! M#vr6XW7^vv GWvg3vvWvWWXkWXt@v@dX+v$vPOeeeeeeeeeeeeeee\\\\vLwWvv^g%L X ^V :Y7<>0@vM /3 vN  1X|jL:ZvMX0K]v <vv.z-X gWXtXvX}8WM6ղv f/ZZvX)G&׈vv Av#p Z [+ddd!dd#dd$ddddddd%ddd d"bb^ah?mSKW_ # ' RM-DWK1vO2 W +()M W hWX< E q{o 2 _*X ,WW: E]L6vv=vv  ` o vwv   )_ v FZXW\ MR *  &%Wv  7vXՋMwy  OZX27vP"bv?Fvc$_;Nl`P[Xho_bMecnR^gQUSkWVfjZT\d]OiaYm bW@ 9L `X2W$@XjvDWXjX;"  I @`vv٧LW 9 W $voNv֛#YW @ -WJ؈ !v&JX( lX_`_;}KGv(գW;Wvv d $Kعw MI6XlvY9WW z5; 7= LvvM!X<L 5vxs I[vXN zpXjB1XWC2`W 6v IM]vWWWW AnM IvWKw Wv,Xm M0vX) H |N  vqvsvO]Wf` __n YM qvXLX fX7vvԞcI W   7 /yuBYWvvv jٖ'ٗM٘L 3/| VvW ]֓ 7y  nv_KԬ_&  Qvggg/" XkvXOWXG *KsWvnHWX1XvM&M'(v! ^.^/^1^2^0^^ 9hvf lWvXuvX)kvMlL}tv vv? GV {X ` ~vW Pw {zY v~  WCs#v H_&__W`j Evh #X)vWWWW _M2pq=Wv 4Zvv^bvC ;D JWv{XvvzWp LL.vGXvոX}Qv\1 OWX}IKxS'\ N  [/M v_M XtXXvQX  WX1WX)(KvXuWUMW XOvvvvv#r#sXXXXXXXXXXXXXXXXXUVT[\SXWYZ_"_!_ ```eeeeee_`a  fMfIfJfKfL]]]]]@@@@@@@@@@@@@@@@@@@@fffff;ZtZoZyZvZsZzZrZuZqZxZwZpqMqPqXqUqVqLqOqRqSqTqQqWqNX[YZffffffgffffffffffaba`aaa_~~~~~~~~~~~~~~~~~~~~Z[WTUXYV^)^*^+^^_Y_XAzW`Kv  }<,^Lv jO'*W֔Qv 5|pvX)[\!GMg6v Z vW   X XrWj- X~v9  ^|KWWLج kJevvv,r%(b/Vv O   Cx WWW!LXEWy eN qbvvXk^[X2 +Wv <e>K{,v2} W;կW  - vV5 XWXk}7u 9%oֻ+Lԯ|GX v -vVHvXB X J_P_h_ 7vXXO9:$WL~vWv X<:fL_vMB MX XjY4B8s'(  _vWvM.W  X)5 WWWX}W+vvؼjvk "X  vwvSNOg,~ MqW  vvWX3c 4 q Hvvvv^`vWW ^k׊׋ ' ;  vWZ1YSJM:b Wvv;_K}WWX+ `H` _}_o`4^F!JvL՟I /  qXCX&vsvKXjMvW vL ZWL.v  [ojxVz<<9fIX(vXvծWX)WX2vv"WXCvGI(v K XMXv vXt l MXtGJ vH___PQRgbIbCbFbDbEbHbGbJ>68?<@:;597=AAAAAAAAAAAAAaaaaaaaa.*/,+-PovvvW Kv(Sv v {'٪vWXNW_Lni!2l $&v( !v\X WXv`W + Tv-W<؍] WX)WX2W'Wt X~9X5WWMXKզ!G<v,v v Rؽ֎WX)M@Mvv`^^RX;XXqx>KX1<Z>DEWLflv q E vv KأW$v!oL0vvv_L{8vWLv2(_Mga)WvX<WXtW ^ Nhbi v %t՞UWXzD zWvTLv XkIW`-Uivv).XW OQ  v>O?vUXHXmXX! rX)K=XZ <WWWpvv VX(Wv yKv vvo]4v8 m> 5 QZWPVYSXTRUNOW XOi__WLPhjMvhMvv'FvM 9 yv( 1 GG HX= UjX *Wv > O_LXsvWW 7 8vԗ׷R9vT:_K v E XkvXOՃ/Q`)L9-WW)P.vH25X_ Y 39 !  + 8W vA WXivWX!XX-zWyvaC !FH vVv.X$xvWv^W n];]<]>]8]@]:]?]9]A]=Y]WSda[_cZU`Vb\TX^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^BM]V`PUQfG@iXNDAhJ^[a_cdHZSTICR\bgeWFKEOLYdad`drddmddwdsd}d|d_dtdbdzdgddudidfdhdjdddYd[d]ddXddTdxdnd^dVdcdodSd~ddeddWddldvddddddpdd\dZdddqdd{dyddRdkddU])]+]*$S$]$`$k$U$^$j$e$b$W$f$X$h$[$Y$V$_$T$Z$a$i$\$g$d$c~{y|zvw}xuO]r)A5}fizhB7C,u9QgV m\0qMKtp!6#e/-R`X"a{2'[L^U4P1sJGHn;Tb&8oE+>%j<I:DSWvcN@d~_F=wYl?x$*.3y(|Zk)B?48/#A@.';&6$=+C*02(:3<91,75%>-p pppp%pp,p/p*p"pp!p(p'p)p-p.p0p$ppp#p&p+e6 UE!9'v7-V)zSsl3m[C8oZjO`B\n%"|LT xDRk=.$]>Ic}_ bN4h,J2Pi e^:?X<tug@Qfa;H&{WydG( rAq/0+KwM~#1Y5* Fp]o]p]m]n]lMN NMMMN MNMMMN MNNMMNNMMMMMNMN MMMNNMNMNMN MMMNNMMNNNMMMNNNM=!2@/$3(:7%;"8-C>A')#*? ,<+9B1.D045&E6OQNPc_c#cc3bcBc)ccbc/bcbc1c4bbbbbcc:ccbcbbbc&c$cZc9cJbc8cbc'cScRbcTbbcPcDcHccbbbcc`bbc ccOc ccbcKcVcXccUbc cbc=cEc\c<c?c-c;cGcWbcc!cLbc0bcccc c*c5ccYbc,bccdc2cFbbbbc bc6c]cQcc+bbccc"c@bcc7cMcCbc.cac>c%cIbcc(bc bc[cc^bcNccA\[[\[[\$[[[[[[\[[\[[\-\%[[[[\ \[\[[\[\&\"[\[\[\ [[[[\ [\ [[[[\\[[\[[[[[\[[[[[[[\\[[\[[[[[[[\#\[[[\+\[[[\[[[[[[[[\[[[\[\ \\ [[[[\\[[[\(\'[\)[[[\[[\\\*[[[[[[\![[[[\,fgfhfffjflfefifk]]]]^]]]]]]]]]]]]]]]^]]]]]]]]]]]]]]]^]]^]]]]]]]^]]]vwvx]eZaXc_d[\`bY^_^_^____`^`]`c```e`b`k`i`g`a`j`_`d`f`h˖˕˗@m@r@q@t@s@n@o@p     Z Z$ZZ ZZ Z'ZZ!Z Z"Z ZZZZZZZZZZ&ZZZZ Z#Z%ZZZfffff ff f f f fffffffffa6a7vvvvvvvvvvvvv_,_-34````]3]`]a]V]_]c]J]/];]N]Q]e]6]W]@]E]R]L]P]G]S]]]C]0]=]T]\]9]H]4]Y]b]7]5]<]:]K]U]A]1]B]^]h]I][]M]8]F]Z]X]g]f]?]O]>]2]D]d#e#g#d#f@@@@GS|WXG,OWؤX0W(  mL Gr v |}fvv qX< NP pWX0X:WWvQXRX(  X ./v KJKFKKKGKLKIKHKEWZUXYV]1]0]/],]2]-]3].ԽvpKXIX>g WX|_`:vX(v/Cy]kX+ ժWٽ v5v3 WWdXFXkWWWvՊlWM(),nX(XWX WvWWK1WWX}\f j = Zn_8_Ms XO_&X8WXo׬ d .dd^ZX\Y[] ff]n]p]j]~]q]t]k]u]o]w]]]l]y]]x]]v]|]]}]s]{]r]z]mKLv W vv  vvDWv "tv ZvMMXExiAcWv XKXe d~vf W$ AFAMAEAHAKALAGANAOAIAJZZZZZZZZ     BCDjp"Le XXWW v9p/ vN&vWWWW`2X WXL m4X0^v: iggggggggggggggggggggggggggggggggggggER[S?I:G57L4]XUF18B/^OJ<T6DP3KY,.W;>\+NHQM-V=2Z0C9A@z}{~|NWVUYPRQSTXOccccccccccccccccccccccccccccccccbb~bbbbII%II I-II$I&II/I)I.I#I!I+III,I*I'I"I(XWWe1XeXJvvh `W>Xj `v ٜvKIvA6A-A)A9A4A*A.A1A@A;A(A8AAA<A0A2A7A/A+A?A=A5A:A>A3A,829604753.<:/1;ZZZZZZZZZZZZZZZZZZZedrfmknhjiocqplgbgRg\g^gTgVg[g]gYg_g`gWgSgUgQgXgZaaaaaaaaaaaaaaaa}{|~zbT[([>[8[3[[9[[;[#[ [[)[[![0[<[&[:[7[4[[?['[[1[.[,[[/[=[$[-[[6[2[5["[[+[%[@[A[B[*________________AAAAAAAAA)aQaJaHaVaKaMaGaUaNaIaSaPaLaOaTaRD?@>BECAFAAAAAAAAAAAAAAAAywv|x{zaaaaaaaaaaaaaaaa@>358214?=7:;69<`` `%`'`#`)``!````"`$``&`( ']# eiWWMmX/f !6)n]L,X<X< vvHXIVL_KR_TK`~Miv Q XWXW8ײ 8!M)XW`T-W W  RWvWXHXKiWw1 MKvMz~v j 4 P E ؎v D-X WX}XNvK~vW vթW`K)^AS6vWXkvWXj rWv֐Mvv+,vjLh_M+vW'~W+L@kX3#vX}vx46M vXXpnuةvvت\vT  (7*X~MlEb  / vMiQX)טX -^b0 aU Tv}~LQ Kg-W)L"v Dn_W;H,3 k M cWVvW]vՍXO   f cV,0<MsXX}v؞؟cIv? ֗ t h@Xw_YKmvWLRXR^YWXOYvHv ,W'v- T:qSW_:_@^kK @kA #ւ Ir׻/q0v*ٸvL\En!!vKrvvv 6M X|Wv_  *K +XXkؘؙWvB T U0W vvXXbJv 4X vX:X/    X)XOXt'Mv NOPWi_vM vWvWX0 0 e  VvXkzvԐ` DvWEZ 1^_"Pvvv JH}  Cv_Kv@WvvWX3vv#V,WX}M . 4$oL eXEtM0 NWX?X1@ j^h, vOPvXI Mv =sX]Wr 44vWp6 AdX X`Xi@Av A?vWv#%&!M WWv)6, `x Xu=Wv SXא ֞k ֠֡W RCzT $Bf&iT )=LXwM,XWv_A`<_ sKLJX, `Wvg gg  n6d_____________________________aDaCaaaaaaaaaa('A|A{ZZSTGYHVB[MWNZQUDXSPRTOJCKLFIEAAAA0[[ [[[ [ [ [[[v L Rvffffff^^^^vvvvv?FBA7JDC@I9;:<=G856HE>klj___`˙˘@u@w@v@x@yZ9Z<Z)Z2Z+Z-Z4Z6Z*Z,Z:Z.Z0Z7Z3Z5Z1Z8Z;Z/ffffffffffffffffffffffffffa;a9a<a8a:a=vvvvvvvvvvvvvvvvvv_. nv"A$KH v7 XsWX(W_W_{v_ _|L  DkX.  A F;*wde$ f WXXXFWJv{vOvvv u: Y؁y"!DWEL*v WKyhU>WXbXF׵WWXkr 3KGN& v  v MM WWX"6i NؒL < Kv~WX %.Wv/aaa kFW |}W %KK v v N > @YvvvLB~vv __mpKu+5X WWOi %pQ8!Wvv"WvAXd_(XW ֟vXkvտ. _ <  T``1oMmvv Wvv_l s1X2e@X<XWOR9 } ~ ~,W!avZWv֋Xu>MX`X)-E7cWX1X/?W{LvYW"W z WK$[!WWX"W^dWXr  vXFX<KMvvvv vKlkljnmo$q$r$p$m$l$n$oXX^ ^ ^vvv___```˛˜fffff@@@@@@@@@#!&"$%'`/^e_ Ԇ ^WLTvvfRgShv vWX;Qsb و `  c33W  =WW WXWvWX~vb#WWWv -6'+XF'hv% v _` -K6v^vH:vv  a| DM &Gv+G^i#$vW byv>?WWW<W3W+L}'W lv!}6nXWWWX}vp WWWvvwvفJx _ ,p_K_cs_`Imv"_  -X<XXWXaX X$vMZX!`KvvMvX WWvvXUvv!GXtXXlQِSEvv 0W ee\0\1XO֊  <v {p3,Kstuv;  W=WJWX?9 v OL ;X)qM\ADv"*~xXOWWHN W0LVvvvWvչv8הM p q! p 8Kv* XOX(GX'X S֤ "  bWv LWXvԼWI^M KvTv LX`W[i n7yz@׽Cvv  =XYI WvWX<<KX1oWVvԫ v__^Wv>QXjWX;vv , u Xk!3\$M^W {`!_vX7Xvo_XBWv)5)7X2*v WWW qԴ zv؄ v___/LXi`D_GMX}vX< YKvW    vLLKvvvvV X (i3R EvvWXkv7W$v 9X0 vWWX)XO_\\\\\\\\C.C*C0C2C3C-C)C,C4C+C1C/stljwrkmpzxiv{yoqunX<vAB4Cv^_ WW` b6 !WW vv=uvbWԱXkop]WWI{ ;$ ^7՗WWM(~WW vX4XBX.X@3kv yvsXkWKvM,_iL3WX_~Wc pvKvu]vNJvXe!Gvmb?_ _[v nWtW0vW eؾ { | ~v`GLwvXWW !YW p Vz=v? ] X WXX_`vnL$X@X+vuwHv WX vjv٢ ' uW n XFWMJ^^c^ = _ @ . Wn/vv B% A v! " <cXXkWd*7W XDZg.gg!g8g0!G3;<v J{ W f_f\fZfYf`f]f[f^]]MZLԣSKCWr_J X`:a )XXWXKֳZ)3 ` 1  "' NvlXk3v^____L) ]R>XR;c_u " *lM Z 1v .WW v*v Ը2vvWvv tv uvL:v!Gv׹_v F!?vWXsWX|vT L^_}L+_`^'  WdX)vvvAvW{X ~n 1MEv vW Xd5W JxXXCHcMvvJX]W^ vnv ` vWQovvZ  r aW`B!v YF_MXvWX*XN[ _|`2`(_)V cQk)RNv  ?G'Tr7qW>v? WXjk/VvvWX&WWtoyP CLV WWXWX W 8_ 7P֥XFW bW`K\v^NS uv MX1X Z!Gvv #vX;X'Xd"rvvj gkLbv^rKW:vXk]"6 vU^ ^ ^ XXXXXXXXXXXXXXXXXXXXfofqfpftfrfsfnfmv{v|vvvv~vvvvvvvv}vvvvvvyvvvvvvvvvvvvvvvvvvvvvvzvvXWat 7 8ִXSv`-vM!Gmla,4WXX,WX ,T E - Q 1jLiv CXXX|& "LQ 3v^{ n _s__'  - BCKY "*Թ > ,M}v  0= v BWv$vxWXW<բ K / v ux{bvU1u_kWQԤUv V ;X1WXsWX|WXV4 ^g vEWG 4HfhigzvvX/vJ 4: t  ? Yv vvKfvlLvSX!qQ$W\ (XOvvyL$xuys~zv|w{rt}uL#XOvfXkWLWWXNtuXO E5W~\vvv"ELELF 9?=>Xvv~ Ne^  v5Xv fQWvJ2v vvWX)wvWK7M v'r nW <Gv i  z2nl J\\\e\\}\y\\\\\m\\6\4\S\7\W\Y\\\\\\\X\d\T\\8\K\o\f\\\\\\\h\]\\<\>\\;\R\\\\\z\\\D\\\\\\\=\a\\\\Q\\q\\\\\\\\\?\l\\\_\\N\\\Z\O\k\`\\\v\@\w\\\\\\[\\\\\\p\\n\A\\\V\\L\\\\s\|\\\P\\g\C\\G\{\\~\i\J\\\2\u\\\r\U\E\\\\\b\\\\\\\9\c\\^\M\F\\t\\\:\3\\\5\j\\\\I\B\H\\\\\xPQVO ~ [&sf- F1#=$2thDu\Ak'S*a?]Wm_I /46|5>0"K@o}jbzC9.gdXv<,Meyp`H:q(7)G;xTU r{8iLJc3%NZ+nBwY^E!l RtpDpFpEPQ PQPQ)QQPPQPPQ5PPPQPQ6PPPPPPPQ,PQPPPQ#PPQ-PPPPQQNPQ.PPPPQ4QPPQ"Q:QEPPQPPPQBP~PQ>Q&PPPPPPQ*PQ<PPQ(QKPQLQDQPPQQ+PPQ;PPQCQQ@PPPQ'Q1QQPPPQFPPQ2QPQ9PPPQOPP}PQPPPQJPPPQ%PPPPPPQPPPQ QPPPQPPPPQQPPPQ PPPPPQPPPPQ7QMPP|PPQRPQ8QQPQPPQQ!PPQ=PPQ$Q QQQ/QHPPPQ0QGPQPQ?PPPPPQ Q3PPPQIPQQAQ ?</%'1 3#$=!>6,78;+AIFD.4C2H5 BGE09"J:( @   -)*&ddddddddd     !`Pw'$ nlcYa p\{df"#}msig]kzt&VSeQuj)Z[U(xTRhq_oW %~^ybX rv  |eeoee)eXeUedeLddeddeddecee5eqexde'eeCeWezejeue^edeSee>ede2e`e#dde.e$e=e4eieeIeeJdeebdeke/eYddedeBere@eeTde-ee de}deEeNe~ee%e[e8eefeeMeeRe;eeZdeeHeddeDe,eepe0ese6ee{eldeae|e e7de1e"eeyeFdeee e ee\e e<eeeteeeee_deeKePeQdewdeVeeOdeedeve&eedde]e+eme!ege3ddedeeGe9ee(e?dee*de:e ededdeneheA$$0###$##$####$.$3$ #######|$%#########$####$ ##$-######$&###$'$###$$####$ $#$$$#####$##$$#~##########$##$$(####$$)$$#$ $1####$2##$ #######$#}#####$#$#$#####$!##$#####$,###$/##$ ##$######$###$####$#$"##$*$#$$+###]]]^T^]^3]]]^+]^ ]]^M]]]^^^-]]^^#^$]^P]^(]^"]]]]^N]]^]]]^,]^C]^8^]]]]]^^]]^]]]]^]]]]]]^D^:^^E]^.^]^=]]^Q]]]]]]^U]]]]^%]]^Y^2]]]]]]]^^R^/^)]]^>^0^]]]^]^^ ^Z]]]^[^K^^^^X]]^^^?^L]^<^4^I^^ ]]]^O]^^9^6]]^*]]]]]]]]^F]^^S^\]]]^!^7]^H^W^@]]^1]^]]^^A]]]^ ]^^^G]^&]^']]^B]^J^ ^;]]]]^ ^V^]^5]^]]?Iʬʵ"ʈʿʚpsʳWʹʠwʾCcʯLʫʏqʑʖ$Njʗ.ʒʆrʭ/lfUiʢ'ZvotQ(ʱʷʸODʻ)ʶTbu-ʉ\3<ʍʅʔ9Mx7 ʮʛ]ʋʤS%ʌ5ʜh#@zA;ʪ&ʨ4`:8{PX!+FʎV=ʺʐ,2|gʀEaKʦʼk>ʰ}yʘ~ʝʟnY_ʞʥʙʊʲʧmʩʡdʂʄʁʕ0BʽJ[ʇHR1G^ʃʣeʓ6ʴ* X`"_^P v [ DX<^Y  X m alfvE^ HLX+WXz\s*R vAEvC&STK'eH_M  v  XFXkWW LWWxg Xu, ^`F MhWWcv X1/ff_9 َ6 C#8yvWWvL#RAvv fvFBBNBBBBABCBBcBaBBBABB,BBB=BBB!BBEB.BBBB>BABB;BjB}BsB'BBBBBB-BBB B~ABB%BB BCB3BBBB)BABwBCBBCBBBbBBBBB|BB&ABBpBBDBBBgBzB@BBBBB_BVBB BBBBBWBBBBBIBnABBB1B(BYBCBGBBBBSBBB9BMBBBB0BBBJBBBXBBBBBBBBBhB6BBBrBBAABBeBBBBB2CAB?BBTC BB*BBBBBBBBBBBKB+B5BPBiBoBLABuBBOBBmBB8B"BRBBBB$BCBCBBBxBB`BkBB\BAACBBB#BBBBHC B BBZBdBCBUBBB:B<AByBBB7BBBBlBBBBBABB]BBqBC BBBBBtBBABFBBBvB BfBQBBB4ABB{ABB^BBB/BBB[BBB B  8LAtrMYvE1RKh>5HU/%b~^Y&O<P(`Que"yxg]'oWU6@f3dV #_kXV7=CS];j!pnc_}Fs09+\TSR)2Z$  GZ|:qX-N?\W^B`NTD4 Ji.za[*m{OIPwaQ,l[b[bZbYCvvXzWXsXXivvlNXXMvWXX1XOv{  ,^@pu;i& K ~M+ _aX> WXaWvvXWX W_\vMjPw  WZWKpqN- vWX v pWXbvزvvv+7P3Ov I  % XlvXXX<L ٹ AXXvv'WX136= vv WW]_  {v_Kv^ #XXXW  vMpXFL X)WWlM7`D|vvWXg\_v~1r__________________a>a9a4a?a3a7a2a;a:a0aBa5a@a<a=aAa1a6a8qA^AuAZAzAdA_AmAeAgAoA\AtAfAYAkA[AaAbAWA`A]AjAcAiAVApAlAnAsAvAxAqAhAyAUArAXAw#!$ "&%^Oa!^ WX)WX2X<; ^MUx}j gvvvXWWWv]X X0ثr)C55 L  +jAl f 7v^י<gEvG"gK!uvv%' &J kvLuuZv3WXj5oW \de^DfVqvRv!Kp @__Lvvg\r  sv ֺMCmWegh> U*9,qkXWMHJpH( 3X2XE ]F$$x$%5%$$$$$$%M$$%/$%8$$%($%P$$$%'$$$$$$$$%%#$%-$%7$$$%>$%=$%3$$$%%E%%@$$%O$$$$$$|%,$%%$$$$%"$$%)$$%K$$$$%%$$$s%D$$$${%?%$$$% %$$%%$%%%%N$$% %$%$$$$w$u$$$%$%6$$%B$%%+$%I%:$$$%C%%%!%A$z$$%1$$$%$%9$$%$%$%.$%%G%<$%$%4$% $%$$$$$$$v$$$$$$%0% %&$~$%H$%%$y$%F$$$$$t%Q$%*$$$$%R% $$$%L$}% %$%;%2%S$$%J$$^^^^^^^^^^^|ˈ˃ˀˉ˂~˅˄}{ˁyˆˇzWX}XkXsWXDX__Fv٨HLSWXiW KhDiv   X.Wov**E/  v K_!  "LX<$R8 bL{ ) EWWi׼KWXtX(  XW)*Wv(W2L WXTW Xi v?  XWXW6WWXk  LvMF|v VXs`^ _ Y    w Kzv r WXkvHXX(X MvWWXWX)X X . 63|Xk .v`zvv5z_*"^Ly!] W* 3 fvvrLvXEWIvص_uv vRvW ؔ  d^_^ WXE vvWWv v< @aMٛ׃ X'XOvX EX} n.$rbD}lWWW `=TWvLw^xWXg_5K"װXOvՓ1$XE%LB 0X,XXX|W D(Zvvv!yv(L1v vW֢\XkX\WveUD ،% ]vvvvdg1g X WX pjR /vv  3'cW}  ?v 3 GMԨ QL)w\ ^v  @j$ Xn  zv&'W!G [WvՏmnmbbbbbbbbbb[[[[[ot߅߄os߉߂ߌmߍ~rߘ߇u߆ߐ߃ߚߙ|ߊwnpy߁ߏߕߗxߖqߎ߈vz߀ߋ}{ߓߔߑߒKNKUKWKMKXKSKPKVKTKOKQKR_eֿWWkhijmlfglonkmc{cvcxcycucwczc|/X;W&3ء\v Lzvvk'jT Ԉ ?9v:vvջ  m  \v_vv =X_R bYn1~v`&WWXt1vXX # vW `ZZZZZ  vM~Lv=zK *M/WvvMd  v.XNDa[i5Xt / vְֱ`@'N X_WX؛ Y YvWW~E 7v/WX(p]~vLGMpXkXRXcX EM:XWfgX2X {XDfB'(!Xk0#7.Ք  uWRWv`jv^vWWWX(P]aLv {WWX}JdxvM_OWpT ך WvW mv_[ w-gMgLgOgPgNaaa~aaaa y_aF'bX Z+vWWW W AA4?_`5_ RKXXAM4X)AE Xi MWWtST׆d  N%w L vwXFX VjYw]fyFW_d P vvvv) & ^Wv vvn:{*L EvXbXFX)KXkzvU &.IvvT] l fvfufw]]]]]]vv hK ! u*=JpV_`Wըivj 8}^y (LXdX9 LLe*%+!$- .',#")/(&\\\\\\\\pOpPpJpKpMpQpNpLYXYUXYZYY,YY9XYYXXYxXXXXYYXY XYPYYXYtXYSYY1YYTYYYYYXYYY0YYXXY&YXXYYY$Y\YYQZXYYYYYXYY?XYqXYYdYwYY7YeYzYXYiYYRXY8XYpXY-Y'YAYYY+YZYYYYYnYVXYXYYYYY`YYEYLYXY3YYYXXYY[YYYY>YYGYY)XY Y4XY(YYvYYjXYYkYYXY=Y|ZY:YFXYcZY%YYuYYYXYYXYgYY^YXYyY}YsXY YYHYYYYYBYYY@XYXYYYXY"XY YYYlY]YXXYrYYZYbYXY6XYXYZY<XXYXYXXYYYYXYXXYY{Y*XYoYfXYY.XYJYYNYY_XYKYYYXYYYXYYYYY5YXYYYOYXYYXYYYhYYYmYYMYXYXY2YXYYXYIY;YYXYYYY XXXXYYYYXXYCXYYDYYYXYYXY!YXYY/YXYYZXYYaXYYXXXYXYYYY~YXY#YWYYXYXYY YQTQVQYQZQUQXQWQSˎˍ˓ˊˏˌː˒ˑˋ*0.+-/,1]]]]]]]]#w#v#z#x#y#{#u#thcidfgbe%U%V%W%TeeeeeeeefWfVfRfTfQfSfOfPfUfNfXQPONMRLK^-^,]]]]]]]]]]]q[q`q]qYq\qZq^q_^^^^^^^^^^^^^^^^^^^^^^^&_wK^MWl U_a,MYcVXFW4vvXXI DWW;WJvdeX(dve BuDXFXaX>W# ncقXp8v<5XWvvp}  Fvv) ! ]LI9vٳ#bb:b1cc bccVbbcicbYb0c6b,bbLbRcSc\c;bBbbPb3bbc^cEccbbbfbb@b[bGbc7bbbpb8ccbcQbbbbbbcGbubTbXcHc.bbbcCbbbbcc0bsc cc*bbbabbc4bbc cc`b<bbFbUbbEbMcabDbWcbbc9cIbebcpbccMc(cAccZb6cbbc[b4bcbb(bVbbbbc'c_bbbb7bwcb/c,bc b+b'bkbibc<bbcb]bcebbIcPbZbbcTcgbcbbc$bbbmbbbcbNb{bcb^bbbc8bc=bcjcNc1b`ccObbb)bbbcKbb*c"bb}bjcbbcmbqc@bbbc]cbdcnbbbbbcDbOccobbhbzbb&cBbbrcYb.bAcbc2bc%bb=b_bb9cdbbbtbbbgckbb5bbchbJbbKb?c3c&bc5clcbb2c+bxb>cFb;bbcbncfcqcLbSbblbCcbb%cUc!b-bb~bbQbyb\bcJcc bbHc-c bccbbbbbbcWbbobvcXc>bbbcRbbbbc/c?bc)c#c:bbb|"$r!9`]T * j#Bt{8L_}oxe[%I@g4 <5HAnQ&Rip=aKuJ'\ ;2 NV6cE)m-UZF1bPkM:+s>vC~qhD?3,|Ol dGw0(.fSXYz^W/y72/En' PI#` 9p:1S0,qFL ?K3 s^w=UCe7 touiMR vhZ{}z;BNAG@Q|]$ 5~4(O6j.+&caVD TdHlWYx)*ymbr f\![ J"_k% g-><X8[r\[[[\[[v[[\[[t[[[[\N\?\\O[w\2\[\B[[\^[[[[[s[{[`[[[[\([[}[h\8[[[[[[[\\_\4\,[[\D\6\[q[[[[\\[i[[[[j\Y\\[[f[[\ \\F\Z[\A\9\W\\ [[[\][[\>\;[[\-[[[[[[[[\P[\\a[k[[[\"\=[m\V[d\I[y[\7[\[z[\ \K[[[\[\\ \U[~\)[\*[[\M[\X\\@[[[[\![a\[\:[\[[[[p[\$\/[u[[\E\[\S[\.[\5\[\C[[\'\Q[\#\[\`\[b\[[n\[[\L[o[\[\ [[[l\%[\R[[[\G[\[[[c[[[[|\J[[\+\1\3[[g[\<[\0[[[[[e[[[x[[\H[\\[\T\ [[[[[\&aS`a6ag``a7`aU```a``aaara`aak`a```m`a`````r`a@``aaG``}a`a`a```ai`naaa`aaa`aaaPaaXaZ`a````eaYahaQ`zaa4aaja`gaaaaaoa^`aa"`kaaMaa``a``a)`````aa ad`p``aJ`aa`a`xa``aa#az``a`aaD``a[aEayaba`aa%a`a a``ca\a````a`saa&a`aV`a8```aa``aHaana(aa,a`aava0a`a aa`aaTa*`oa]`tae```h`a`aaf`a_aCa+`a`aaa`aaax`a`wa/a'a-`a``aaa``|`a`a`a a.``yaIa```aaO`iaBaaa``a1``aapaaLa{``aN`aqa``a3```jaa`l`aa`aa ``~`a5``````aR``aaW``a`a9aa=`a `a}`aaa``daa`a:a2ala;asau`a$aa``uata|am`a<aKaa~`f`va!aa`qaawaa?aA`{a>acaa``a`aaF``YK)N`BdZR#:E^'<\TL+U,W30*=&1HX8VSM/]9(IFA$G[4C-QJO2%?5_bc>.;e6a@DP7hjicD1qNsUAgBW!spekv#EJk% )igxiw& S'Y[ZhT(@zjzulm_-/,Prn6.d M}p}j0uaH\Itc2]t|y3mXCaKyl59`hq=w~V7^e*f`G8+{$r<4:~ df ob;L|RFb>nOv Qo"?{xP X Wj.uk/vWv <  v \MAMv?KeX| c/U ># k]|XM\$JACM^RB[H]>?Y=_F@EXNIKQSUODVWPZT\LG$v Ke`e1cvX1W`W!G5^MD    vL  ] MhX<XFXkWv7vva +Ma!G _cM N Qn  o;v%}S{ر u?vk{ v WWCvD WXWK84vL[v4AAAAZZZZ+)&('*gHgGgIgJa#a&aa aa$aaa"a!a%a{a|ayaz~~~~wuvtyMIvKz +zE   v4vX<78vW~K'W.@@@@@@@@@@@@@@@^_g>ZZZZ asataqarau~v`__R $MvLR XiWXrW  *g` `Kr WvWWA=_,__XNWXW K vWbWM v  j d akanajaoamapalTWUWXKW;! M@W 6, @mvWvN2vU_f^`M M VWW p7W8WKhvW vvL ։% *XW vL9 L` CWv_6_vvXFXkWv` vֶX3Wv؝Vv vAX|X0 fG6Ԁԁ nXm pX WX2XM<vX vj^C`X*Xivv8W1:2v~KBWWv  XN t O o0X< V ? q   obD WE.___K K:(Mv kXFW5mX(M8n[{ vy֪X]֫ZP oX XpvWXeXjvWXv Q 0 EN/kWXPճ XFWhvWWvTWv WA4B  MTXWX vvL?XW WvvvWoXO^w ,  ]x^v #!GvnԎԏKXrXV~# F v ~v$nXMiKvu  MvXX9WO dvvvv_yo <  v*vl W L,I<Wv XWׁvvXiv % S  _ L a vDh > RWWX_^e@f  Gvq+aaaa&%0v_J vvv_>s v       J  cWvv^T M fW W =2iG مiR vXFWW^ =W___N >" {XWqI&E~c,L LդvcWW8UٷzWW0 vWWb_vXOWog W   Iv_  [MX)WXN2LXOvBEFT@  X<XXvM /  vvvv Y;AO $  X)XKgWu'vXEXNva`a`vzvu-@W vKv,  : 8WW] Ig gWKXFb(JL` vX d" n ` n ZW [LvXA  @X&ML?X(Wv vԟXxvW`Qv 7vvvvWWX<M vXi -C7aaaaaaaa`@`=`<`:`7`>`8`;`9`?bpbkbjboblbibmbnbqCCCC CCC CC _K  V D,WWWX=X@X5vvM (f`3PX.vKv  M8xv 3X(I|2WX{'ՒWoX`^>vvvFvY __g_e m-JWX1_ KRL ؉؊XkXNv RX<WWXXL|WpZvvijvMv(__WzW L3^WMrWXNv7 ULbv!XgM""vv WX}XNvg_7wir]MWX(Yb0^ LyvwԅvvW [\] v*r|OMDK2vMXEX(X)Dyf \dhWv)viK gW4>vس I b-kX=X 5WWW")}v cvLHvנv$2Ly9M #W $hWXvٙ,wvX)ZXXT$X}~LXMGp$P&H6X}vvO1EX8 zvv v vhs}7i Ev vvK0J#$vvvWg```````@@@@@@@ZZZZZZZZZZZZaWN  yOWX',ԕ(Ԗ[IW >v ٰk_{%pvv U  %X:{XkWjIX3Q0h?X XGHvLv=:fl^ wq8  vX  vM~ HWX( O_` Mv RvvvFsWX1Wvv K ~X WrWXrX)MtX __LLvv&Tv$XXWX   vM{/  X<XXד b(S DP__L2 [A v`+v11X=>j R GS H(_a  ^ r oW XX7dW?UX}v$ GLeCJX(-  ___aWaX-+,*K "opX2XvI vUvԪvQc = T^W;^w7WW#ק|"Bv_D]vWvvXj_ )Wvv" = WX:]vKD )_- "tr>]SS.PmWb,}=hXqnWst( =Oo "W3U.K $G +7 ./ /A tNy#&R2 U,EySNyr'n'&G&RB$R.y%SX S(tr#0%t' 6\A9z#;(A.K3SZ=a%VmQm.%R'. 'FJ4.P D-8Q$: t]tSJY{'rf&R.n+mJSx$'>3k)Vc *] /*a"C  "z2* c B"+S6.KSrX$:tt)L'p.^tt!$;='c- Ss.K/6-!'.K)NSV) .P% .PQ JS tAfttt.K>$' &*ct]' ?. 'S*9t[*o.KA+#2'].P- 3k.P- Wb~.wC )?.K#61#D) :Xh7n!->%\b$'&Rp  Cq.dS)-o]'A'0 tk*P' !%C I$x'E %pw$te(t Jc lt]& %'rD>]r5(.P- ' G+ *!Ot- {.K Sr6Xql/j'rG.ses%'' .rGK l '' V' W<\;g!M)'V &6 "r]]#;]$$ 6 '6-5nL'G8x)V 0 2t.K']tNr`.ltGS, ;&SRPr-B( UB(4n6%?o$4tQtR-] p$9 "eB)>% SBK'g"vO(kI%,L*tY(r.c.Kh$>%cS(7.Pg.S ApD(t$7.Kw>'S^]%toNyt*GKhtpZ}*4 b %Q)7tD)V &'r[>]  "'5y )?,:)n'b'!t~,E$:$s(A.Kq$Z )%WC5.K8$' !4!*]tw.K_`*<trk''wS'*% 8c/'t,rptW#!'+0S.K*)q7.P'V,]@'Pd]%]7Z`&.K "f#*MF 6 )? X *0e"/)$kMK ')**$R,E)G {*#03SG%&Rk$'%> !k,}Ltr;'p " *Ui<'=L' St~ } 6VtBt!*%A Aq.t. ")*2+t0'; ya=Gr~yS v*S' 7"r.:<r Ey.K.U&RJ:T "(]! 6$u'.K'7)"'( "tW')S4*<D''3tL.K 7H"r.Xr: .#.Kp%atl*<I 7 "rPI% "u.K.Kt'S4SBt + EG+ rW)*Dta.K"r?'{$tbg GSKt#0U g\k't.%Si@.P- Tt3&+'S[$)2 %=\.P=++& [&1#X*=^I.K4'''bj t]rS'6.K $:'c2D]5xpr f*| 6qS 5)m*r]-8K]"]SY.K 8AYrt'( G +~.KyXq}"rd, [rYy7Q)*II "S'++$97t\aN.K&RryO1%5y,}&R Z.K@.Kea*rTs ,}yrt|x**S Xqt "d=taNct )?X'y.P- -3kyQl- r <*ALr#&R))%2DVt'(&_ " S%\*d$]]'Sr 'y r'$vsS !P/)% & &'*%Q ">".K#!SQ)V ?].P- 3k @t.t.*;)V| t])*.+'Wzk?trAS'%&'S9t sGZ+"}$ A'F'(!,,}}yrS_Rt %*^Prt- M"* .K&RVmP A!|* =+c>,7j.''(")V7`qfq.P D4'-) 'Wrl}Kg'JyBFWGt)=9ttJ'"Srrt~3)^']8xtp&R{.Kt 'x++y j' ArB.NtDE.K-Aiv.!T v.KA60c.K.&R']6t * h)?zX&tS"\t]@tr=1%>` [rt,Uy-t$d.K ACt.Kq t-2\+ .sZrt*2!'p +)V K?D\i"a'5;rt.KnW')B$/+#  Q .s1t(S rz.K`#''r'?pt-# K .PF- {] . $:tx(Af.K*2+P "r~ .u&R_*r]r('r_d%' $d\$ 9.>>tt!*t')f%0v%t9vcR&t)rr%/y-@##]$9pr#.>>,JY$r' "I .KC9$Re?u8HJ% X.PQ  ? \L:'Gtstox.K(Am.K S)^t,|=$ 'Pw ++mQ''',&1t$'g d+.K/3,".K"ctKA8x}8c/ct.vrr=E'4t+$xTS SCfLGK'tx+$#' *+.K %n' A 6} (,p,= ZK.PDn.KXDWXqn}Xa~X&~ XoGWWpcJ'%s.3S}.K S *0m$" 7i"rG *ktA K&SM1I-B( UB(1RnDc%4$43I%@j LtKu,':"'pcH.K+jK7Z&=t' \t'++-t &Rtptr]J$.KIRcz] )*[+m   6[&SBA-B( UB(GnV%<$4N4I%6aW2IL!'Gt$l$S9{ %Cr* |)*rlr6*r  9&STt8-B( UB(P&nG>%E$41<%M-tL .P- Wb.h%=,}y@S%tAAt 6b,}yO=t 6)t;.K0Q $:`#0,S*St 6i .r'j't'*A.K#!*'tIy'*$9TM' *c1 "7 r'T+@H$:zt' &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,)euKv!xt->'&01Up</@G$Bafl6\%.mFC_OW[=g9M2+Do{^bXiY,R#e hydw"EQS;)TJ`(4NVc5r]87zI3kqs*jZPLnAH: &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,)  60m &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,)&"b#ta$!P(c,")!* q,S X)4*P$ #-,! "-4%-"G*x'K.%' %*%[, }*#(D( /(+`*2&1-%E($"+^R^,%.j5c xq4( &ZH){%!l+&!>)-+"'R++$Vk ".'+H-$uM)TN'w(B,'-*g)Q-'C!ZV% $  "^)D+4 k< O"i9 I,-`!X,* (X#*&r# D;..$o$ ))$'p.T$)#osQ~(J#c!#z%(-K)Bi.+-*& + ),C$Y"5s(x!"8gdU.[-J.2 {:'2H, *$( B& %.' A[,[""-/"..,c-3 Q+'&+-.',(w+$').X,J(I#u ,)-C in f- @i.;#'+H&%2+ * .c)o%!X&m h/%/%#(-)+(W%" ,:,  #*"JUl%+g"8%]&(%-d"#|%q),xa-& -,,n*L'&<+s<)-;X% !').;$-b+S.$Q"O^!"))),'kC&Q(C0x# %71*+,*`-"g-o)A&v(#e%L#T;.TB*['/9'd'/!{% & #!a+#$!H,p ;" #6.o3@.("eJ (*q$hD.R*;m0&l e";+) a*E\$(,X &.b% A(:>$b+6) !."1*j)6!)*F%"Z)'&D&U  u.V@X'f#, %&h %-+ nP).t#G$.)2.G$D_ $~ ,.)D2*'+-)f"x+Q*(*-X "kU(-H U &^.'!l?,_ # &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,)&"b#ta$!P(c,")!* q,S X)4*P$ #-,! "-4%-"G*x'K.%' %*%[, }*#(D( /(+`*2&1-%E($"+^R^,%.j5c xq4( &ZH){%!l+&!>)-+"'R++$Vk ".'+H-$uM)TN'w(B,'-*g)Q-'C!ZV% $  "^)D+4 k< O"i9 I,-`!X,* (X#*&r# D;..$o$ ))$'p.T$)#osQ~(J#c!#z%(-K)Bi.+-*& + ),C$Y"5s(x!"8gdU.[-J.2 {:'2H, *$( B& %.' A[,[""-/"..,c-3 Q+'&+-.',(w+$').X,J(I#u ,)-C in f- @i.;#'+H&%2+ * .c)o%!X&m h/%/%#(-)+(W%" ,:,  #*"JUl%+g"8%]&(%-d"#|%q),xa-& -,,n*L'&<+s<)-;X% !').;$-b+S.$Q"O^!"))),'kC&Q(C0x# %71*+,*`-"g-o)A&v(#e%L#T;.TB*['/9'd'/!{% & #!a+#$!H,p ;" #6.o3@.("eJ (*q$hD.R*;m0&l e";+) a*E\$(,X &.b% A(:>$b+6) !."1*j)6!)*F%"Z)'&D&U  u.V@X'f#, %&h %-+ nP).t#G$.)2.G$D_ $~ ,.)D2*'+-)f"x+Q*(*-X "kU(-H U &^.'!l?,_ # &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &G"%B &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,) &'#- )*,)__3_3__cx?