From 89a8f4b0be2b36f71fab8221db2b6a01fad52f59 Mon Sep 17 00:00:00 2001 From: Heiko Behrens Date: Tue, 2 Jul 2013 18:33:13 +0200 Subject: [PATCH] use OCMock from CocoaPods to make build pass, again --- .../project.pbxproj | 100 +- .../xcschemes/BeamMusicPlayerExample.xcscheme | 60 +- .../OCMock/libOCMock.a | Bin 454368 -> 0 bytes Podfile | 6 +- Podfile.lock | 5 +- .../OCMock/NSInvocation+OCMAdditions.h | 1 + .../OCMock/NSMethodSignature+OCMAdditions.h | 1 + .../NSNotificationCenter+OCMAdditions.h | 1 + Pods/BuildHeaders/OCMock/OCClassMockObject.h | 1 + Pods/BuildHeaders/OCMock/OCMArg.h | 1 + Pods/BuildHeaders/OCMock/OCMBlockCaller.h | 1 + .../OCMock/OCMBoxedReturnValueProvider.h | 1 + Pods/BuildHeaders/OCMock/OCMConstraint.h | 1 + .../OCMock/OCMExceptionReturnValueProvider.h | 1 + .../OCMock/OCMIndirectReturnValueProvider.h | 1 + .../OCMock/OCMNotificationPoster.h | 1 + .../BuildHeaders/OCMock/OCMObserverRecorder.h | 1 + Pods/BuildHeaders/OCMock/OCMPassByRefSetter.h | 1 + .../OCMock/OCMRealObjectForwarder.h | 1 + .../OCMock/OCMReturnValueProvider.h | 1 + Pods/BuildHeaders/OCMock/OCMock.h | 1 + Pods/BuildHeaders/OCMock/OCMockObject.h | 1 + Pods/BuildHeaders/OCMock/OCMockRecorder.h | 1 + .../OCMock/OCObserverMockObject.h | 1 + .../BuildHeaders/OCMock/OCPartialMockObject.h | 1 + .../OCMock/OCPartialMockRecorder.h | 1 + .../OCMock/OCProtocolMockObject.h | 1 + .../OCMock/NSInvocation+OCMAdditions.h | 1 + .../OCMock/NSMethodSignature+OCMAdditions.h | 1 + .../NSNotificationCenter+OCMAdditions.h | 1 + Pods/Headers/OCMock/OCClassMockObject.h | 1 + Pods/Headers/OCMock/OCMArg.h | 1 + Pods/Headers/OCMock/OCMBlockCaller.h | 1 + .../OCMock/OCMBoxedReturnValueProvider.h | 1 + Pods/Headers/OCMock/OCMConstraint.h | 1 + .../OCMock/OCMExceptionReturnValueProvider.h | 1 + .../OCMock/OCMIndirectReturnValueProvider.h | 1 + Pods/Headers/OCMock/OCMNotificationPoster.h | 1 + Pods/Headers/OCMock/OCMObserverRecorder.h | 1 + Pods/Headers/OCMock/OCMPassByRefSetter.h | 1 + Pods/Headers/OCMock/OCMRealObjectForwarder.h | 1 + Pods/Headers/OCMock/OCMReturnValueProvider.h | 1 + Pods/Headers/OCMock/OCMock.h | 1 + Pods/Headers/OCMock/OCMockObject.h | 1 + Pods/Headers/OCMock/OCMockRecorder.h | 1 + Pods/Headers/OCMock/OCObserverMockObject.h | 1 + Pods/Headers/OCMock/OCPartialMockObject.h | 1 + Pods/Headers/OCMock/OCPartialMockRecorder.h | 1 + Pods/Headers/OCMock/OCProtocolMockObject.h | 1 + Pods/Manifest.lock | 5 +- Pods/OCMock/README.md | 10 + .../Source/OCMock/NSInvocation+OCMAdditions.h | 34 + .../Source/OCMock/NSInvocation+OCMAdditions.m | 337 ++ .../OCMock/NSMethodSignature+OCMAdditions.h | 18 + .../OCMock/NSMethodSignature+OCMAdditions.m | 19 + .../NSNotificationCenter+OCMAdditions.h | 0 .../NSNotificationCenter+OCMAdditions.m | 17 + Pods/OCMock/Source/OCMock/OCClassMockObject.h | 21 + Pods/OCMock/Source/OCMock/OCClassMockObject.m | 160 + .../OCMock/Source}/OCMock/OCMArg.h | 3 +- Pods/OCMock/Source/OCMock/OCMArg.m | 79 + Pods/OCMock/Source/OCMock/OCMBlockCaller.h | 21 + Pods/OCMock/Source/OCMock/OCMBlockCaller.m | 32 + .../OCMock/OCMBoxedReturnValueProvider.h | 12 + .../OCMock/OCMBoxedReturnValueProvider.m | 21 + .../OCMock/Source}/OCMock/OCMConstraint.h | 0 Pods/OCMock/Source/OCMock/OCMConstraint.m | 142 + .../OCMock/OCMExceptionReturnValueProvider.h | 12 + .../OCMock/OCMExceptionReturnValueProvider.m | 16 + .../OCMock/OCMIndirectReturnValueProvider.h | 18 + .../OCMock/OCMIndirectReturnValueProvider.m | 33 + .../Source/OCMock/OCMNotificationPoster.h | 17 + .../Source/OCMock/OCMNotificationPoster.m | 30 + .../Source/OCMock/OCMObserverRecorder.h | 19 + .../Source/OCMock/OCMObserverRecorder.m | 75 + .../OCMock/Source/OCMock/OCMPassByRefSetter.h | 17 + .../OCMock/Source/OCMock/OCMPassByRefSetter.m | 29 + .../Source/OCMock/OCMRealObjectForwarder.h | 14 + .../Source/OCMock/OCMRealObjectForwarder.m | 29 + .../Source/OCMock/OCMReturnValueProvider.h | 17 + .../Source/OCMock/OCMReturnValueProvider.m | 47 + .../OCMock/Source}/OCMock/OCMock.h | 10 +- .../OCMock/Source}/OCMock/OCMockObject.h | 3 + Pods/OCMock/Source/OCMock/OCMockObject.m | 269 ++ .../OCMock/Source}/OCMock/OCMockRecorder.h | 6 +- Pods/OCMock/Source/OCMock/OCMockRecorder.m | 229 ++ .../Source/OCMock/OCObserverMockObject.h | 22 + .../Source/OCMock/OCObserverMockObject.m | 83 + .../Source/OCMock/OCPartialMockObject.h | 25 + .../Source/OCMock/OCPartialMockObject.m | 190 ++ .../Source/OCMock/OCPartialMockRecorder.h | 12 + .../Source/OCMock/OCPartialMockRecorder.m | 27 + .../Source/OCMock/OCProtocolMockObject.h | 16 + .../Source/OCMock/OCProtocolMockObject.m | 53 + ...PlayerExampleTests-OCMock-Private.xcconfig | 6 + ...BeamMusicPlayerExampleTests-OCMock-dummy.m | 5 + ...mMusicPlayerExampleTests-OCMock-prefix.pch | 5 + ...eamMusicPlayerExampleTests-OCMock.xcconfig | 0 ...ayerExampleTests-acknowledgements.markdown | 21 + ...cPlayerExampleTests-acknowledgements.plist | 51 + Pods/Pods-BeamMusicPlayerExampleTests-dummy.m | 5 + ...-BeamMusicPlayerExampleTests-environment.h | 14 + ...s-BeamMusicPlayerExampleTests-resources.sh | 33 + .../Pods-BeamMusicPlayerExampleTests.xcconfig | 6 + Pods/Pods-OBSlider-Private.xcconfig | 6 + Pods/Pods-OBSlider-dummy.m | 5 + Pods/Pods-OBSlider-prefix.pch | 5 + Pods/Pods-OBSlider.xcconfig | 0 Pods/Pods-resources.sh | 18 +- Pods/Pods.xcconfig | 6 +- Pods/Pods.xcodeproj/project.pbxproj | 2877 +++++++++++++++-- ...eamMusicPlayerExampleTests-OCMock.xcscheme | 59 + .../Pods-BeamMusicPlayerExampleTests.xcscheme | 59 + .../xcschemes/Pods-OBSlider.xcscheme | 59 + travis/script.sh | 2 +- 115 files changed, 5341 insertions(+), 365 deletions(-) delete mode 100644 BeamMusicPlayerExampleTests/OCMock/libOCMock.a create mode 120000 Pods/BuildHeaders/OCMock/NSInvocation+OCMAdditions.h create mode 120000 Pods/BuildHeaders/OCMock/NSMethodSignature+OCMAdditions.h create mode 120000 Pods/BuildHeaders/OCMock/NSNotificationCenter+OCMAdditions.h create mode 120000 Pods/BuildHeaders/OCMock/OCClassMockObject.h create mode 120000 Pods/BuildHeaders/OCMock/OCMArg.h create mode 120000 Pods/BuildHeaders/OCMock/OCMBlockCaller.h create mode 120000 Pods/BuildHeaders/OCMock/OCMBoxedReturnValueProvider.h create mode 120000 Pods/BuildHeaders/OCMock/OCMConstraint.h create mode 120000 Pods/BuildHeaders/OCMock/OCMExceptionReturnValueProvider.h create mode 120000 Pods/BuildHeaders/OCMock/OCMIndirectReturnValueProvider.h create mode 120000 Pods/BuildHeaders/OCMock/OCMNotificationPoster.h create mode 120000 Pods/BuildHeaders/OCMock/OCMObserverRecorder.h create mode 120000 Pods/BuildHeaders/OCMock/OCMPassByRefSetter.h create mode 120000 Pods/BuildHeaders/OCMock/OCMRealObjectForwarder.h create mode 120000 Pods/BuildHeaders/OCMock/OCMReturnValueProvider.h create mode 120000 Pods/BuildHeaders/OCMock/OCMock.h create mode 120000 Pods/BuildHeaders/OCMock/OCMockObject.h create mode 120000 Pods/BuildHeaders/OCMock/OCMockRecorder.h create mode 120000 Pods/BuildHeaders/OCMock/OCObserverMockObject.h create mode 120000 Pods/BuildHeaders/OCMock/OCPartialMockObject.h create mode 120000 Pods/BuildHeaders/OCMock/OCPartialMockRecorder.h create mode 120000 Pods/BuildHeaders/OCMock/OCProtocolMockObject.h create mode 120000 Pods/Headers/OCMock/NSInvocation+OCMAdditions.h create mode 120000 Pods/Headers/OCMock/NSMethodSignature+OCMAdditions.h create mode 120000 Pods/Headers/OCMock/NSNotificationCenter+OCMAdditions.h create mode 120000 Pods/Headers/OCMock/OCClassMockObject.h create mode 120000 Pods/Headers/OCMock/OCMArg.h create mode 120000 Pods/Headers/OCMock/OCMBlockCaller.h create mode 120000 Pods/Headers/OCMock/OCMBoxedReturnValueProvider.h create mode 120000 Pods/Headers/OCMock/OCMConstraint.h create mode 120000 Pods/Headers/OCMock/OCMExceptionReturnValueProvider.h create mode 120000 Pods/Headers/OCMock/OCMIndirectReturnValueProvider.h create mode 120000 Pods/Headers/OCMock/OCMNotificationPoster.h create mode 120000 Pods/Headers/OCMock/OCMObserverRecorder.h create mode 120000 Pods/Headers/OCMock/OCMPassByRefSetter.h create mode 120000 Pods/Headers/OCMock/OCMRealObjectForwarder.h create mode 120000 Pods/Headers/OCMock/OCMReturnValueProvider.h create mode 120000 Pods/Headers/OCMock/OCMock.h create mode 120000 Pods/Headers/OCMock/OCMockObject.h create mode 120000 Pods/Headers/OCMock/OCMockRecorder.h create mode 120000 Pods/Headers/OCMock/OCObserverMockObject.h create mode 120000 Pods/Headers/OCMock/OCPartialMockObject.h create mode 120000 Pods/Headers/OCMock/OCPartialMockRecorder.h create mode 120000 Pods/Headers/OCMock/OCProtocolMockObject.h create mode 100644 Pods/OCMock/README.md create mode 100644 Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.h create mode 100644 Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.m create mode 100644 Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h create mode 100644 Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.m rename {BeamMusicPlayerExampleTests => Pods/OCMock/Source}/OCMock/NSNotificationCenter+OCMAdditions.h (100%) create mode 100644 Pods/OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.m create mode 100644 Pods/OCMock/Source/OCMock/OCClassMockObject.h create mode 100644 Pods/OCMock/Source/OCMock/OCClassMockObject.m rename {BeamMusicPlayerExampleTests => Pods/OCMock/Source}/OCMock/OCMArg.h (88%) create mode 100644 Pods/OCMock/Source/OCMock/OCMArg.m create mode 100644 Pods/OCMock/Source/OCMock/OCMBlockCaller.h create mode 100644 Pods/OCMock/Source/OCMock/OCMBlockCaller.m create mode 100644 Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h create mode 100644 Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.m rename {BeamMusicPlayerExampleTests => Pods/OCMock/Source}/OCMock/OCMConstraint.h (100%) create mode 100644 Pods/OCMock/Source/OCMock/OCMConstraint.m create mode 100644 Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h create mode 100644 Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.m create mode 100644 Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h create mode 100644 Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.m create mode 100644 Pods/OCMock/Source/OCMock/OCMNotificationPoster.h create mode 100644 Pods/OCMock/Source/OCMock/OCMNotificationPoster.m create mode 100644 Pods/OCMock/Source/OCMock/OCMObserverRecorder.h create mode 100644 Pods/OCMock/Source/OCMock/OCMObserverRecorder.m create mode 100644 Pods/OCMock/Source/OCMock/OCMPassByRefSetter.h create mode 100644 Pods/OCMock/Source/OCMock/OCMPassByRefSetter.m create mode 100644 Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.h create mode 100644 Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.m create mode 100644 Pods/OCMock/Source/OCMock/OCMReturnValueProvider.h create mode 100644 Pods/OCMock/Source/OCMock/OCMReturnValueProvider.m rename {BeamMusicPlayerExampleTests => Pods/OCMock/Source}/OCMock/OCMock.h (60%) rename {BeamMusicPlayerExampleTests => Pods/OCMock/Source}/OCMock/OCMockObject.h (94%) create mode 100644 Pods/OCMock/Source/OCMock/OCMockObject.m rename {BeamMusicPlayerExampleTests => Pods/OCMock/Source}/OCMock/OCMockRecorder.h (84%) create mode 100644 Pods/OCMock/Source/OCMock/OCMockRecorder.m create mode 100644 Pods/OCMock/Source/OCMock/OCObserverMockObject.h create mode 100644 Pods/OCMock/Source/OCMock/OCObserverMockObject.m create mode 100644 Pods/OCMock/Source/OCMock/OCPartialMockObject.h create mode 100644 Pods/OCMock/Source/OCMock/OCPartialMockObject.m create mode 100644 Pods/OCMock/Source/OCMock/OCPartialMockRecorder.h create mode 100644 Pods/OCMock/Source/OCMock/OCPartialMockRecorder.m create mode 100644 Pods/OCMock/Source/OCMock/OCProtocolMockObject.h create mode 100644 Pods/OCMock/Source/OCMock/OCProtocolMockObject.m create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-OCMock-Private.xcconfig create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-OCMock-dummy.m create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.markdown create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.plist create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-dummy.m create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests-environment.h create mode 100755 Pods/Pods-BeamMusicPlayerExampleTests-resources.sh create mode 100644 Pods/Pods-BeamMusicPlayerExampleTests.xcconfig create mode 100644 Pods/Pods-OBSlider-Private.xcconfig create mode 100644 Pods/Pods-OBSlider-dummy.m create mode 100644 Pods/Pods-OBSlider-prefix.pch create mode 100644 Pods/Pods-OBSlider.xcconfig create mode 100644 Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests-OCMock.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-OBSlider.xcscheme diff --git a/BeamMusicPlayerExample.xcodeproj/project.pbxproj b/BeamMusicPlayerExample.xcodeproj/project.pbxproj index 47b9ca7..de4ed90 100644 --- a/BeamMusicPlayerExample.xcodeproj/project.pbxproj +++ b/BeamMusicPlayerExample.xcodeproj/project.pbxproj @@ -28,6 +28,7 @@ 97CA282B1577B68B003D8938 /* BeamMPMusicPlayerProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 97CA282A1577B68B003D8938 /* BeamMPMusicPlayerProvider.m */; }; 97CA282D1577B6A9003D8938 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97CA282C1577B6A9003D8938 /* MediaPlayer.framework */; }; A3CD1673174BC6BD0043ACEE /* BeamMusicPlayerViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = A3CD1672174BC6BD0043ACEE /* BeamMusicPlayerViewController~ipad.xib */; }; + CAD8534D7F2E416582F6286D /* libPods-BeamMusicPlayerExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 987337C95B38471493465F78 /* libPods-BeamMusicPlayerExampleTests.a */; }; CB0DC57615B69ADE0045921A /* NSDateFormatter+Duration.m in Sources */ = {isa = PBXBuildFile; fileRef = CB0DC57315B69ADE0045921A /* NSDateFormatter+Duration.m */; }; CB0DC58F15B6AD300045921A /* BeamMusicPlayerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = CB0DC58D15B6AD300045921A /* BeamMusicPlayerViewController.xib */; }; CB0DC5AB15B71C940045921A /* BeamMPMusicPlayerProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CB0DC5AA15B71C940045921A /* BeamMPMusicPlayerProviderTests.m */; }; @@ -36,7 +37,6 @@ CB35A6FF1576918F008318EE /* BeamMusicPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CB35A6FE1576918F008318EE /* BeamMusicPlayerViewController.m */; }; CB397C85165257B600A90C78 /* BeamAVMusicPlayerProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = CB397C84165257B600A90C78 /* BeamAVMusicPlayerProvider.m */; }; CB397C8A16525BD800A90C78 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB397C8916525BD800A90C78 /* AVFoundation.framework */; }; - CB46FE1415795405004BE46A /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CB46FE1315795405004BE46A /* libOCMock.a */; }; CB46FE17157955B7004BE46A /* BeamMusicPlayerViewControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CB46FE16157955B7004BE46A /* BeamMusicPlayerViewControllerTests.m */; }; CB7723AF174E51ED0022EF58 /* BeamAVMusicPlayerProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CB7723AE174E51ED0022EF58 /* BeamAVMusicPlayerProviderTests.m */; }; CBCD885B15B44165001B7A1D /* BeamMusicPlayerController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CBCD885A15B44165001B7A1D /* BeamMusicPlayerController.bundle */; }; @@ -55,6 +55,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0AB0B18603F24A928F0C5160 /* Pods-BeamMusicPlayerExampleTests.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BeamMusicPlayerExampleTests.xcconfig"; path = "Pods/Pods-BeamMusicPlayerExampleTests.xcconfig"; sourceTree = SOURCE_ROOT; }; 35DB90F5177BB2750039B53D /* BeamPlaylistTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BeamPlaylistTableViewCell.h; sourceTree = ""; }; 35DB90F6177BB2750039B53D /* BeamPlaylistTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BeamPlaylistTableViewCell.m; sourceTree = ""; }; 35DB90F7177BB2750039B53D /* BeamRadialGradientView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BeamRadialGradientView.h; sourceTree = ""; }; @@ -86,6 +87,7 @@ 97CA28291577B68B003D8938 /* BeamMPMusicPlayerProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BeamMPMusicPlayerProvider.h; sourceTree = ""; }; 97CA282A1577B68B003D8938 /* BeamMPMusicPlayerProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BeamMPMusicPlayerProvider.m; sourceTree = ""; }; 97CA282C1577B6A9003D8938 /* MediaPlayer.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; + 987337C95B38471493465F78 /* libPods-BeamMusicPlayerExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BeamMusicPlayerExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; A3CD1672174BC6BD0043ACEE /* BeamMusicPlayerViewController~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "BeamMusicPlayerViewController~ipad.xib"; sourceTree = ""; }; CB0DC57215B69ADE0045921A /* NSDateFormatter+Duration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDateFormatter+Duration.h"; sourceTree = ""; }; CB0DC57315B69ADE0045921A /* NSDateFormatter+Duration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDateFormatter+Duration.m"; sourceTree = ""; }; @@ -104,13 +106,6 @@ CB397C84165257B600A90C78 /* BeamAVMusicPlayerProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BeamAVMusicPlayerProvider.m; sourceTree = ""; }; CB397C8716525BBF00A90C78 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; CB397C8916525BD800A90C78 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - CB46FE0D157953AD004BE46A /* NSNotificationCenter+OCMAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNotificationCenter+OCMAdditions.h"; sourceTree = ""; }; - CB46FE0E157953AD004BE46A /* OCMArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMArg.h; sourceTree = ""; }; - CB46FE0F157953AD004BE46A /* OCMConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMConstraint.h; sourceTree = ""; }; - CB46FE10157953AD004BE46A /* OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMock.h; sourceTree = ""; }; - CB46FE11157953AD004BE46A /* OCMockObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockObject.h; sourceTree = ""; }; - CB46FE12157953AD004BE46A /* OCMockRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCMockRecorder.h; sourceTree = ""; }; - CB46FE1315795405004BE46A /* libOCMock.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libOCMock.a; sourceTree = ""; }; CB46FE15157955B7004BE46A /* BeamMusicPlayerViewControllerTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BeamMusicPlayerViewControllerTests.h; sourceTree = ""; }; CB46FE16157955B7004BE46A /* BeamMusicPlayerViewControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BeamMusicPlayerViewControllerTests.m; sourceTree = ""; }; CB7723AE174E51ED0022EF58 /* BeamAVMusicPlayerProviderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BeamAVMusicPlayerProviderTests.m; sourceTree = ""; }; @@ -142,7 +137,7 @@ 97B7AA5415760AAF0014E693 /* SenTestingKit.framework in Frameworks */, 97B7AA5515760AAF0014E693 /* UIKit.framework in Frameworks */, 97B7AA5615760AAF0014E693 /* Foundation.framework in Frameworks */, - CB46FE1415795405004BE46A /* libOCMock.a in Frameworks */, + CAD8534D7F2E416582F6286D /* libPods-BeamMusicPlayerExampleTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -180,6 +175,7 @@ 97B7AA3115760AAF0014E693 /* Frameworks */, 97B7AA2F15760AAF0014E693 /* Products */, 92FDA17ACE6F4C928D2E08D9 /* Pods.xcconfig */, + 0AB0B18603F24A928F0C5160 /* Pods-BeamMusicPlayerExampleTests.xcconfig */, ); sourceTree = ""; }; @@ -200,6 +196,7 @@ 97B7AA3615760AAF0014E693 /* CoreGraphics.framework */, 97B7AA5315760AAF0014E693 /* SenTestingKit.framework */, D255CDAD8A6E4F49A1799F78 /* libPods.a */, + 987337C95B38471493465F78 /* libPods-BeamMusicPlayerExampleTests.a */, ); name = Frameworks; sourceTree = ""; @@ -234,7 +231,6 @@ isa = PBXGroup; children = ( 97B7AA5A15760AAF0014E693 /* Supporting Files */, - CB46FE0A1579539B004BE46A /* 3rd Party */, 97B7AA5F15760AAF0014E693 /* BeamMusicPlayerExampleTests.h */, 97B7AA6015760AAF0014E693 /* BeamMusicPlayerExampleTests.m */, CB7723AE174E51ED0022EF58 /* BeamAVMusicPlayerProviderTests.m */, @@ -302,28 +298,6 @@ path = ../Source; sourceTree = ""; }; - CB46FE0A1579539B004BE46A /* 3rd Party */ = { - isa = PBXGroup; - children = ( - CB46FE0C157953AD004BE46A /* OCMock */, - ); - name = "3rd Party"; - sourceTree = ""; - }; - CB46FE0C157953AD004BE46A /* OCMock */ = { - isa = PBXGroup; - children = ( - CB46FE1315795405004BE46A /* libOCMock.a */, - CB46FE0D157953AD004BE46A /* NSNotificationCenter+OCMAdditions.h */, - CB46FE0E157953AD004BE46A /* OCMArg.h */, - CB46FE0F157953AD004BE46A /* OCMConstraint.h */, - CB46FE10157953AD004BE46A /* OCMock.h */, - CB46FE11157953AD004BE46A /* OCMockObject.h */, - CB46FE12157953AD004BE46A /* OCMockRecorder.h */, - ); - path = OCMock; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXLegacyTarget section */ @@ -366,10 +340,12 @@ isa = PBXNativeTarget; buildConfigurationList = 97B7AA6715760AAF0014E693 /* Build configuration list for PBXNativeTarget "BeamMusicPlayerExampleTests" */; buildPhases = ( + 3512CD7B141C47FB9A10148F /* Check Pods Manifest.lock */, 97B7AA4D15760AAF0014E693 /* Sources */, 97B7AA4E15760AAF0014E693 /* Frameworks */, 97B7AA4F15760AAF0014E693 /* Resources */, 97B7AA5015760AAF0014E693 /* ShellScript */, + 1EE4C0C43A0F4680B1AC6E0F /* Copy Pods Resources */, ); buildRules = ( ); @@ -434,6 +410,34 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 1EE4C0C43A0F4680B1AC6E0F /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Pods-BeamMusicPlayerExampleTests-resources.sh\"\n"; + }; + 3512CD7B141C47FB9A10148F /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + }; 97B7AA5015760AAF0014E693 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -606,6 +610,7 @@ }; 97B7AA6815760AAF0014E693 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 0AB0B18603F24A928F0C5160 /* Pods-BeamMusicPlayerExampleTests.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/BeamMusicPlayerExample.app/BeamMusicPlayerExample"; FRAMEWORK_SEARCH_PATHS = ( @@ -614,22 +619,7 @@ ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "BeamMusicPlayerExample/BeamMusicPlayerExample-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "\"${PODS_ROOT}/Headers\"", - "\"${PODS_ROOT}/Headers/OBSlider\"", - "\"$(SRCROOT)/BeamMusicPlayerExampleTests/OCMock\"", - ); INFOPLIST_FILE = "BeamMusicPlayerExampleTests/BeamMusicPlayerExampleTests-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/BeamMusicPlayerExampleTests/OCMock\"", - ); - OTHER_LDFLAGS = ( - "-force_load", - "\"$(SRCROOT)/BeamMusicPlayerExampleTests/OCMock/libOCMock.a\"", - "-ObjC", - ); - PODS_ROOT = "${SRCROOT}/Pods"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUNDLE_LOADER)"; WRAPPER_EXTENSION = octest; @@ -638,6 +628,7 @@ }; 97B7AA6915760AAF0014E693 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 0AB0B18603F24A928F0C5160 /* Pods-BeamMusicPlayerExampleTests.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/BeamMusicPlayerExample.app/BeamMusicPlayerExample"; FRAMEWORK_SEARCH_PATHS = ( @@ -646,22 +637,7 @@ ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "BeamMusicPlayerExample/BeamMusicPlayerExample-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "\"${PODS_ROOT}/Headers\"", - "\"${PODS_ROOT}/Headers/OBSlider\"", - "\"$(SRCROOT)/BeamMusicPlayerExampleTests/OCMock\"", - ); INFOPLIST_FILE = "BeamMusicPlayerExampleTests/BeamMusicPlayerExampleTests-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/BeamMusicPlayerExampleTests/OCMock\"", - ); - OTHER_LDFLAGS = ( - "-force_load", - "\"$(SRCROOT)/BeamMusicPlayerExampleTests/OCMock/libOCMock.a\"", - "-ObjC", - ); - PODS_ROOT = "${SRCROOT}/Pods"; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUNDLE_LOADER)"; WRAPPER_EXTENSION = octest; diff --git a/BeamMusicPlayerExample.xcodeproj/xcshareddata/xcschemes/BeamMusicPlayerExample.xcscheme b/BeamMusicPlayerExample.xcodeproj/xcshareddata/xcschemes/BeamMusicPlayerExample.xcscheme index f23f5a8..7d472c8 100644 --- a/BeamMusicPlayerExample.xcodeproj/xcshareddata/xcschemes/BeamMusicPlayerExample.xcscheme +++ b/BeamMusicPlayerExample.xcodeproj/xcshareddata/xcschemes/BeamMusicPlayerExample.xcscheme @@ -2,9 +2,65 @@ + parallelizeBuildables = "NO" + buildImplicitDependencies = "NO"> + + + + + + + + + + + + + + + + XknlSquRpgcRXIE-BamA&H6>O>UA435FylfenZ? zvS_JgDYevP5n1q~F8EOeS6xt0)@3d0QkPPfvMyEXQbYuysSRkYe81n!d(J(%e-hZW z+h?EWn^>%4&J&0E2}4@3?4aRRJK17MvfkxojW>b?C4y-|Ca2LU>Nqu?Cdc)Ie!1>oG~I^o>Eqp zRdUz#;FJP?$;{%?DM9E}Q&}2|QuP4kN0fRB@WMrW6|K zOj4?0kxONJl-m9sm)arpUkJP)@LHAuy%!+2|3@y>?1lclF7+O2nftU`-R4v3*iN@v z3po3rTeX3|;)F|OfWNxPt@@#L&VAxmZvvKIouo=rl&Y>tQX2u&{~}5Gp`P}?0!Vu& zOL_N*U5^W_7W!I&15pm`c|z>DDE90TJ9;J?J4Okt68K$#+XNmII8y8_7x+DaLRd!gOgo?lA)|3vCHLg;r1{FcBi0t=_@d zA!Rf3^J_y*P1EZu@0(dMKU~=?{AqVgDvrm_S^&v#mChuh)2Eb9>PlUNKYdc;yto-1 z42SgOT9lU`s;vz-Mq4)B!ON9k11+FQM*G zwz2W`#57x!l6ZBAuL-q?a}}c1#i?pSb@k2hG&=g$l$OeH1AE6Mck4^Y;m|*=uBxUH zBSm8M&WoNdxy51TLq8qYH(;W3c_o|s&V{W9P`le?4rjJ+>E0R^` z$QAz@#by#YN7*wgn!=5X!i~k@%KFC0a1$vxS|AH8PRS~#_W0#TXN@gA;b0$m3}l6^ zUeqM{BevPuA=H4Yp@*WGtj6?EGn(-db95$FgWIMu+)2sO9G#Zc80G^FH-c4CRBy5C z5x0dBUK(Vxc#iRFYN)OX4=Jmt4y|R2i`7+;@grUpZSkg>d37N?n!?55rutfR7m<#w zhm|F^CPjF-*M2W_hRU8i0nps3aedC{p934B#;>3cE zd*o8ampC%GQ|zaC{CdR66jK-LCW_n2O>uSYqrkD(n%Ad|FH$B{3U0*e+wkFh6)EJ&y)6$tWQ9ZL`#T;cs$wm4B zW@OFvmGzxfEk;6SsaDqb^^3`+{Cp?F``hR-k=HlB{r)z}dVe#oYxeuwEhBUAYKKss zGNUANXa5;mYf@EJjUIrq_{L_!+n=BL(t4rf>ldf~>6q8^C5iYJ%<1EWlhc$M4mm=K zFb)*Kva;rIOLHVwSy}0n*`*PjsTpY|KVMZcij|tef<3Ag|8+1rD(geFWtg$zJt0a5 z^D`{zXQ1^TuN19Tx~!~{Gb{WL)sl7@IxH2)(@;~{w0J>9eQi_o!itbfvl~FI+T@Fg)0`$E32uSt1n(zS@6zD#RV2yx97fVBkeIBHEuLq zHn9$tj!;EKV|Wqm>Zqg7%}TArMW1ksmBWUyIvPWD^TK$(MCsU&W%9f=#?EUcVstDB zRqE>ecXZU&)P-3CMw@bsRbd@}`KR zqhVo1U1&kLDOyJo^8O0%+ao3$9ghDoc0fn-;)Ylq$0sQ5V@dzIBezM$=)gOk=0w|3 zGSOss=n{0urHyG*>gW$OmX3Wbyk&K8+7W6F86y9~j!C7HBKUn`$6v+TVGEU&)mO}~ zEL(tqooxyo9mfyqcnSqa>#&W`>cZ>7ej0OK!qCwhxxU}E z4m~ilfatokKu0?2vKcy9cI{H7q{~oT2dgfj=GvMjjHuB%R!lYh^2H*fqv~7cS%%Dx zHr4&3WrOa+2%PXs9461*OgN6z|o4J}AJ7Hn(%2B*v9?If0v~S0xQ<30^$E^Q`~XVB7S-NKGT< zxwA)hp!7z_xPxtlBLQ8(ws!+dg3Prz*b?kh-Mv~>2iuP2gOb#z`hlQ&;^O(o&*rq0 zzc4Pd*U`b5fpb?c3$_i&zVcb-$+zp(diKh-H+`@qQ~h?!!xJ<69?gSfG9=IW)%BF@ z_x+Y&zi0CcOe@Sk+i&f~^K;Lpe{fG`#nGvmgO3I>e|~UsraE`u!}-Yh(Zj*Em;Gr` zWz0a^y-01adYEo0+WgdoTtBV8cz(j!lfU{#=2b_hLBoD%X!iGv(vSrWi$udoePyVj z=eqYkEJWG=+&T;Yf7x1s{9BMe$DbONKMncwB>xsW|DFrk{yiU7WL|yrUgZ2Pa(IfdZuctd-(m6>F4UzPgSk!WyD%nZ~Z@@{}aCx zsZ14YTbF)Clx2INdwFluHfgr*E7slrVX&<>JtIo`SxDb4(#QO~K5U0QpB4GQ1?)N8fuP9%XbPl9fiS(!GR$YDTx<5Gr))c93QSt*J zUm^1QZ24~M4nX@L<%yE^eDcdPo*u!rY{{`Iz2tQEpIN1te%W?r{jvP^6AejGc~6`P zqA#0z-))!l)P+>tpWWwN?u+N&IrFV!4`i1AEWdq21GQS?$o@0=?eE;ryk->H3;Yd@ zdob!`q%YR@bPGlp-We}|yY2o#j!|a|C>tI5H=gknpVqvo=i|1&s>eRo-+#ey7Su)g-o5xRqV*KC<#1! z^2DKIx6yRBNb$)xYlyvd@>eDLI_j&=JQ)*nM@8~d$ zbZc7k+xJPS8OJ7q%2EG2puQl~?#Cu)_Q2R4IQK13%WVrY3kDS|KQ3;k`3#oaI#=Y!@K z+CDwT<{f$eq&nCA=5eFPjq5dT+|}a{t{-=W%5UEvFs--!L)1yq&mz57(wmXqE$IzN z@09dfq_<1@aiq6MdL_~uCH*MVlh^|=3KT_pRDS!ZVo-IzJNEHC7d+oRw@1Cc{U!JF z4{y(Je|cnIeZS5xF#Y-9$FNe@M*Ve5P~G$m^xZ%PE!8&r(MvC$fAnMDvHbSKBUv}*VUDFAyS8sfJ$SEf+`gb7qae8;vp`+nI_Tp0 zI@IAkzvv`stjljdJ{kFSD`$P|-_ACUXPX~ZOpdWF1JqBi zXZ`Zq-_)&O<{T=UBWr&93R|}l-K{Ux7x4PE_wIQ8&Yj9{e^xXtwKb_Hjh-S~&(Tw^ z?X9rU((_!Do&(TRA$oFR^!RK&JEQc>jncCPdIpG|(|*)Y<^WdB-qxcvukzzslV#7f zQF@j`&!OI?g*Hd@T(I;!Ve6^upy#lwWBZgt&tsxzj;+UPpK@DEVN|_VMd=w2J(ERG zMvR_JTTiCwS^bjh`A6(IJH{N*=YDo^aQt=b(S4xtoXgbkjdZJ}+)pO0GuQ5en?UQX z9{((O8+!8>AN{CcHLhQj-nJ9>oBBrdp7Lf{p@tcK?|@F7*SoJ!D3b{I>lKmW`$b zC)k?ZA8}OS^~QbQ_T{XO_5Ac?e%mUYw6C3+RCg0z??*H*Xc(~|bYHj;OS6#48Z~;%*l{CD>K8UvhAjYJ zIF`*uB=(OlP*xbx&{(r5)EvGPy~^cwKjl;E=5IPRXF5IaH~Hs7YGYKB7xuD;AjgXVdDi>6Na2E;m@_0gx^Ryli zt3aHI++Ml}s2~~4Qu=CKJzK#03-I6=fNSG7NS#6=1F*YUWpiE4vXdS>`o|$C-@Ulp zEN=$OY*Mc4S%;(tkNo$MWU0Ym*5C=KSH1%%j0LS`VZtuB4@(s82Xnt_T>0|gTV_cI z9i)>H+5;ltM!`Z%_LTMDL z;q%$O1G`{5oe4yC8wSHom5nuemmKB*-*&mMLDt2`_gZvkdk*kzJqOqg3uO-QZ9NBg z7X)vE2q$xKroO7g+Nz^m-+36-x(YXaa^1oO72(F2b5UbFd>>3L-P6r#NFeqU-M7fISkO8fp4Od=poPJa=*Ub-vhxDGS_=QulGOldJmM`-76N(or|4v zuDAXc_a&}3{=L_gZ42wTSq~fI6WVy#*tiX)By+T}UNjDC8&5}UJgjZJ0wbnn<6+vE z34(X0^AMyPW(#6{f@p-4kq)D6K;$E=39$cFef8zM_`_hmWKGh8mde4%Unj}hSv=?_26 zB@GmX2^*xF%d|)X>h!X1kt>YLsGCbS$&XOsD~!*mn@hLJPEh*E^QN1Njq)#SltrSz zS^w@X^X}B4QU0hzG|Hqax@Z($wZsk5OB!S+>XU|Po9j+#kY1)iK8iF*FVi4jI2xpv zZjfG>40_)b1-e04p7fO7F1|9mAN2i68EB|R?0voD-jle&u9OB#M`O)(HrSP>!EQ!l zNDsQwG*|!>s|Q`F8?1y4cC9FgZkMZE=AAgE!Tv`XXt2M$vWo_*s$W=98;(EnTqn&` zjat6pY^Li>GuOWo|Srv)|D&H|m!854Ox(qM)xXOd94Um+^6U z{%5IZlMPpO(I(iGxv(-pql}P7VT0W3Y?KkEQ9g?_$_UdasqpVuchv~pDA$4Fy;c*{`*IlnjI;J*P3><*&16g&YieKQsQp-7 z`%2b+t|+kUIxeR6UpWP}4_w_v?JJE#BmPh^QEI;h#w)xB**C;QQ~QS_wV!Be|E#0- z6LszPu=X#C0=xE;Tz_x91!k}pbb8BLj-B{MP7@<(Ait)tjhtqTJP|Q+nlbV-hmq5? zk#rJzlSM&at30`JzoBz+M)jv;D0QW$zt5Ut`}x+cTxnbgT8RFeTLvdf=2af=fDNE5 zMZEgE_?M>AIeCKLD)I%58sbT@d{@28%zj;70#B-YuqUZ^89wx?;?{Rf>**fs1I_+q zPSIK8NplZQ1r?j0oADtwUg|ZqmwRx!$xmXHcF)lgPr7?>hGyumGpp1p5_`J`Uy-DG z&|Hu4Qd+GGe_TF{_N0~If60_W;QhU*qw@4mHq{vTxiqq3tMhrgTNg*#a0nE5Q+Rb$4=VSh z)7=S`lNuXCiU-pt27< zy2&}VAnDzDxNZmV^?+g{(A^;b#VLIuKOWD|9=+7GzCB<>YF}*xlRbNaIjwIl;-MZ%z8*bjJ9hJ%j6`x%MnQX@fyhoheI=`RT3>7oR2g=Sy-_v3 zLMjMBQ{#RS0&8|8?vzydPmU1*j3h@S<>SeM7i$L{V+1d2W5< zf~FBQMb-6n;h7~_4MK8Al?1;L5x6BQJFBVcz7Zvh@dfvS5rs7sjiJWHBMP{?|Ih0i z?`s-SP`|Ja;{pAMX%j@+`^7eho>mA{} z@fTiC(h%Qq-(BwESK{9={PXrq8tfk8@?Q6px914*cRb`SaQW`?Ek^ud1SVbSTOGm3 zb>G13?xd$4au0KP14(Dp25-o>&>MKz8yeyDxO4luGqoN4ye@ZcM#^sQt-HMweb?ij z8w_jj^j1y>`h9QZ!`_J_VDFF&@5JF=ccC|_`fqLqJ|W$kl>H4PGJ6$yUB2s6mV1jf z0v*=Z_XAkn=dkatqtaz)A`UiW<8 zkG=r1NP%{e>L zoUHa8)c4H%GjoO<@6+d5fFVDj39aP4LgqND4Q)JKzSbtLhO zC|pMZlfl-(wU7ClYhNjn?$#t*2T5}@shGfIuyt?+;RVgLb&&M5CfPbj+N?>%1SW&6 zgFg4qHP_Zb(kV@{b&zyglZpvU23rT+)sqn&?LpEgO|o^6l%q+-1SW&6gAU%uG}pF+ zq$QeU>mX^VCKVHy47LvXM2~8&t%IbuG|ARM(g95>CNLRn9dr}sAUf(o(jZN;b&xbf zlZpvU23rSxXe%|>wu7W4nq=!BX{ja^6POIP4tks3(_C8zNpEYCt%Ib4np8|+GT1uk zoEe4as0&GhG|ARM(hyB5CNLRn9dvOl(OlaOlIClYt%IamO)4fZ8EhSN6!2Xib`TuY z$vX(%F;wfOq~K0XvNe3*;-*D*Tr*>hOC4>2;p(F0_;hPb~EUA2;jQ*iqqy+^U0C~j`E-qIB} zxLGghiXJ=X>pe@;TkyH((b|!yiTD@2jn6R-ay!4Z|4rdQ$EI)|ofM(wJmrwe3z?4# z@|4;3cV|s=HAZ14ss}eGfxRIbkEZcnamw88*l84x9#y6#9#gi(h%V1bkLDF{Ny=Gh zP%qy(DfBGnsYToX#1<$rYZiG*yIu;zb@Q656^`@70WdW$TRzn}qbq`Ky&l5j()5nq*5 zO|f|w_SFqFG=%G_aC(`(x}EfUWh5T0Pj`cOIcwuT!0e3d3W@S1;#qYhKaotr0bR{au>PqMkAy1m)5-1>@hX8K z3Wv^2UX1UaaQTt6u4@fWIIC}2tjxaTnx=2m)K$%#t2g83sjA2(Vr4Y2J6oN{F*Hc` zvOhaQ*RxJ=by!0k@fSB0&)<0f@dt>T5MM_8C&a^uClEhJObK8bjW`am7;!%0qlkZn zxD|01;=dsN0`ZrKXAnO_OrC`4C*n}Vv4{c0dk`xS??-$H@kzw3i2sQAABew4>@!)Z zk%+e;-iP=Xi2n!ib;SQf`~zaYe8?acB32_ljQAbI?;&nLd={~>Zbtpg;ycs>_o~1| zl^?3Z37h_EeVU@*x&i&oxYPYN4sE(IOJTJ}-{ujTpE;TqHZ)*+TewQ)siA?Pfjs5M zoA|_uYJ#e(sa1hNLj!}rPNMZI_x#~1nGYbR~PRKrl(=H!uvy?$%JVL?-Qnfj5O~Trn_UN z#ruZoSxEE#VfwF;=6%HUuaM^b#Pm(59PcZp??;;V7t_0t=6%L=Zy3w_jp-VsdEYVp zPe^|v_Fsic^Ijx9gf#C-rne%^dy{Dw-aUCH6$8(Na)ySf21^$r+vg&J3m* zY1b_I40MLlscPZ$BR=QA>Argtau%OHHM*@WobE6Bzb%~ps{#j3Uz8K4Ux}t#^7Iio zar%3l^7P#}ar$BC4Yu;rr{cuvA9314Uk81kmOT9yPJQ%2IB|Lo=qa}3`RYFdcmd#e z%t0rlsa;dq_T$u!AZU4MYOBUE>=Pda{xOUx&x}z!#sJR(pE$xM;+cpeq32r2y@1?*Z6+8W3cr(MJ!6}yJysvRqVFLT&M{99sIG3sDQ;o)pl&OjTQn(;nh& zsph)vggqC~DNliK^%LSJz~^;40ejkke*nJK--y49NPFPu)Ar;+?l5TBR%W*k@mEA{ zJLFh?QJ&iIB52zj_7LAF_N2hxXMnGD*h74c*pmx;Hv?bou!r~xMA`%ArM8Fte;H_t z9QF{uSL8||cL6u(I@ohJXho1C&h{Z55PRmso&x4^*h4&5>{-j}2|UMP5Akf~;q?-G z*p9XWkUIn#Hs0FTi}-UQw*_)XP=4mu)Q)YSZH63i+C%&a zu_puet_S|O!ye+R#Gc8pcO7sz$8CFvKZ>ZYm)Nrk_ACPpJELuTh|d+da>(sR`Q@;u z3bZ+pBTjpW&k%d&z@Adzw>j(~ULf{7278Ku!{Kk+L!5gcXb%*TX%F#av1c>vNd@k9*hBow6mz`}!JZW0Sj4dHA>NMX7wy3U zhqmWh$hCon?+WbpA$~;U4nb}U%6}X790u)e$PuSK#9srS{pB?5*$4a;@U8ws{AICc z0QheJ$HI(l5Ao*^X%7}{v^{fS&$FQ6%MaTg;;Te%1?1MEeBXGCzo0FL9C6x1e396b z1ACVOZ*%o~y)PL*#SyX^~$qb{&UZ8$ny^u#5O=DR(ODS_2#_rFOZ*7lA(; z^*D_D-vZtMK5^EIcrExXz%PKm6nHiG#K|X)1z26LYUpnUUhdFOd=B{4kUxd|OMuS? zpE&aq4}i~hss?{5@bTbV?M6J8G}L!E!F2aYBAt;DH^_%cM=wFq(tK`(|JKP1O0{#N3YBR&`WT-0|z%Bclj0X}i^ ziQkJzJ*ALid%ui!xEnNla%;Cg@$n)z26CCme+v5YKpO=);?zfc82J5xp8!7#_z>`k zlTREw8+IK)IU8YbCh&pa6DOZ|2Kc*$-ye87_{7O4?gM`(@GZ!n3fu!eaq@|O(GBei zd^`9G_=Rq0SK$*s2mW^8JHh|78^&Moi8DX(k4XoP6R(z~2abFZf4+ zzXLvT@`)b+e=YER;2#8zck`{p$tS)S{MEqsgTD{>Zt#hdPkb%-dx87We(Qm+0iQVe z#FvA=8F+v2R{(DXpE&u%Yr)?JJQw^1;ML$0C!hEo;I9Wh0sOmx7lTineBuG{*8ndB zKL~t0_{7O4J_P)gz{|nU1nvi)IQhiWz~2x21@QX-PXV7e`NS_It6lqm?*spfWQ>=| zYAbQ_i62GGLw`IBx#OTGPf$DF1?>>zh*OUEK1BB0-H=NKeJb?r1?^?X5vLsS7ewwE z$oW8@4LNR{c^Y!WDMx&z$Ss519MBIz?orUNw`VJH$`M~AaOY| zyh7w=LvA_fLm)Q?v|`8+ryTJaA{T_*NsI^UCaN8`ffj%qamo=N1O5fzuYjKiJR5xC zLwyQ)C1g4`D# zTz`++N}O`UKLLNs6!?!}@8`fzflr)#;wKPU-ciV91W_O8IR@Gh$PuR;@q>tzdlPcy zpg#_|w?KOXa>OY|d^aNHUW6R)%Z-rR3EFnZS@$XNZ6dcBaQ#9DOUkGALtt(Hy5;fAxE5Y#7hw=7l7Pm*l{=PDj*GV#3@HS7yPL~U}*m!@Eq_p z4nFa0MCus=Ikq>}D0U13?OMoL?N7YF$fZhot59Aa&^(Uvh%4}eLFh$!>A=58Qd@~5 zY$E7h#v-@_1K4UjsiafzEv;cZ-XCz-U{S@7x-J?6GzxY z{7ppG>lG=d2y%Nt!%kMa9OBPNIiI4OZNQ&)ltX+2_~W5>74km|d>#12Sq||h5LwP+ zQcf%6R)dDkvvxVeTcn&plQGW*-s~uccmw#k(7O})mjbT^pE%1QUX93d=14iuL9PNc z?ANu+AwE^gDMmRnfCnAr5D$Q#3B5;L zcY{H&>Z4}9V*hxogQEaz=0XFTNI0Sz0W?Q)2}BIO)IIeUS> z>?nu$3*ZlgUfyS~0e=pB;w*>wvxqEbgOpPXxy_(q@3mbH@s(0e8phwpfv<3sLwq^- z{h@a`@~;No3O;d`LwqSB%W05u)b2dImG>lEGJ#c`5fi+11-f-4)HdZxjtJ^&IPO&eBz2+AL6IL&w<`Nl+zCU z1o*^R4)G5VSbQgr8j>;x9-!CsEE$;8>fm`vLK1!OuqiMacg$@Mpj$ z&T@!9jmUDIkaC(Kw;r_Bj&g{%id=(~H!O(u1+CUm9`S1MheQ91(9;aO3Vh-$k9avE z%PW=gUWVM=pv`cUM?4#m^NwL6kDdOy9nL}C4_bypp7<9ifO^kiX^HJM0PWEZ+9@m% z5l7fW{0JiD-iF*x^n+ul$2*|C1v%mfn~3iQpYw-z!G8nz%ivq{3F7!3LC+@&QO;iA z&w-yV7Wt;5oDHC@fgEv!O~h9r=0WaJ z$ejj#4&+vX)(Sb|2%CtvAWnc>9U$fBK>j%Rt&lGV4Qn>`djRnnh?FZ3xhEiZ8)%aq za>U0Vvc0k(mkND{QQuLZWkQZP!Y1NF5GmImaz4;cKn|OoxCUuIpNaqUYP}Ze`DcME z1+Ea7DR79u4+j|e{}eb(;0*#l!lpA^e$TH34i}gy@M9Q6{)Ymu6xdhbVSL_C{vm;X z=x6ZH1nw5NQ{dq%L|)(z1%6-Pk5FOi+a$0`V7b6GeGPxLz!HHo1wPcr@E;I3N#Lyl z7xgy$MuE8ka|Bjlfs^Hz3%o(#Ac1pn%nmrc^b35* zXZQ~Yyh31afq#p4Y3Bbw0>=rwMc}{SU5)&o2)sw&T>{T~4gX_-4+#8of!ze+qfM>n z2Oa~zC-6FfR}0*MXF1FJvA}$R69xVoo+ae}OyE3$l>$Epll*ppj|yBSFeLCEfqsDl z1>PzU)qDEiM&JhJxRZs?C#Aiv6bOHkE{DD%Wbyn#+KbjRNZg&J)N30jR%JV3EK{0(qza`B?&o z2^=ht$0?AXE-+Q#AEZC^Q|1#$RUG=zUe!zTsu z^bhh^2wX03p+KG>LO%T_g!c-(Qy>pnAsv1a4dEZraHK#U)IvV|92yP~*jFG=wIN># z{6hNm8G$?*hx~U1()U38Uj_1*AmY0P?i9FHAdea%{|SMQ3;eD?p1njqeF22c0=b8U zI8SdPq@RG0z5v3n3*;eI#Q6?S2)}@a*9+t^Sfr;3Oc7|^zdRO<{Br_%ZWwWX)Ii9C z#R%UL_@=4<+B2LQYYz01)7gcmFJ%Y|0jWbSE3x= zw>11afjnoF^o;`73;dzL?+biP;G+T`63DYlnZH(GwZM?Tdj#GguvlQeKpyJK{CIED z5bsMGUL%mF#FCHq9}SZQVq=xYe=qP;f#(E%B=FY)-xK(*z<&|=6M=gL?iToCfjoQ{ zf1Y&$@gAe`Zwut<_4xDf-GdPCFB;Ye3=1@$4=c~zf|m&7$@uv51O$#3c#FW10{NbT zKhF&UuM>E+K)kPLe!9T!0=)vi#Df<}&*uVvEAXtqlLC(m{H4Hu7kEhE+X8Q&2>jkbAxJDq`pZeJTgewFt7uYIr zslXP2%>o+))(Wf^SS7Gr;2eRo1(pgd5?Cm3s=%PYfWYwra|PxI%oaFYV5Yz!0{sF9 z3hXa1LtwhVRDnK$9)SS5T_`^mZZ*o^0!Vq-z-g<3O>oodcUqFwDBx?+nepo7Sq(T2 z_zJ;W1#c0Y;|BTgZ)o{)!DkCzB=}Up1A^xYo-KH$;C{jT3!W~xPjDsp1=vaZ&H=Lg zlY$=;{D|NO1>Z0DUcq+?zFqJwf^QUjt>CK#Umf2z|BC zR|(B}w!w$Mw3UL^EFp-&ZhQ0M`nj~9Bb z&~t>IE%f0+&lLI)q5FkCQ0V=Io+0#fp{EMnCv*UP-FZLpI`cjvYRbZ~bOo9Ccvi@UGaGJ}96xJ&wU4{3E&64Jx zan5fj!~Np@Fh^pVd&LVS&3)pW!;#KC;;&1Z`@^vopy}KjJ{t2(%5YzJqolbfe2b*H zAN+)*xfk5;k+RUh6_Vy2@O6^jhxE@R&As2ffk~F^qIVI@;(w|B?i1e3|ERQijNb~p+ z>MTNfprrY|#|@I^w;ovE*D`k_&GmiC^BWJo|1w>HH1`fLJr`;0GtlYzNb?<q$G z@@@HL`Gu28O3H>nbV^HQSpT90eipkdzaYQ9uBkax*Ic5%ZPTBu6^C)IeYma?KO`QN zcZU9@iWssvS1?+5y7@RW$g}qn@JyjG+yvyvFak6MfyH2kz?n$#m;eyo#Pfe$1Qe_TkITm zbw-Y{bBtjQ{lpkjmOrU<%GYNW-&HnkMoHeM(+AbebOQxNFBbh zjLq&mm?2tPr63F*Ib!q}eA+-s`*<~e;7bBuVQ5cG1$5mKD-DiJIzYYw;Y z<-*2Gr_AQdf+O69H1lIxs6sP;D7bk|o|z2lF#_7TuR-Q?wnwgN|<^@9m;PD>DD$ z>EIXsF*=I8+7G4h-C%Tx(Sfm9%S7Ap2y`%TEj=p4=#Wbr)27tHcUDWsdb9_s$Kce# z39%hu$E4CpHmaTyJN^)Bhb>el?*;ftIkqY6=y>l_$7o1L>#&UgPjui>))=1Kr29t) zI}SnzZO_Ko!+g6@7jzc|GH+QOFn*vpaSn!!ceLXj2=hMAfevSgV~0LDgO!P{%TefH z_VHco;MqLvA2IF0^;6n0t!o{6K%}kF*M;xS!$IfwxwL;D+9P`Cmo~+-t+u8KBU!W# zKQgdQTSdpG(xxCe+7wg&%CedTp?P86{LwnNAD(qtE;^93fUE6y3+zU@+#j!Ah&zw3wNdJ$e!<$DO;sFjUf5X2Gmm)8 zO#Q;iD>^`RS#Kn#08b#v7U;ybipBGMldf<(HFJK)ss5t ztVGw46YRUuMBjt>=i%=jR+gEga9q9>B&GZi|Fv%cXW#dD3kVK&pJ|Tk!f#Wi^0z6U z1l4VRo3f`T&ExI$J_uU$01{rMEsS@>d{VdGTbOsSN-eXFm}kBueZ+h!&i|Jq=KqyM zbHu!l%EeM^Hm_X1QK+*gWitMoWBS!saE`n=Al@4}(H&o{sN~40>fOxI=|1at`0mz$ z@hSFU>bU26#2f*i8hr$OPjg^UQs@ctBh7HBr#cCMl(HS_%^T9&v ztq?t;$nkfb3^98CVx860;oYurn00K9KG%dz`W&9AvbRa`InTi7tTWIz&A^8nn>*2Y zGBg`|b2(Zq$j1Iy&OO$9vA-NNT%WDP5jGLO0g-Zkk=q8jA)sOX#Fit@GLdZonq?Q~ zLwg}d8*t6G5=YoXobzb>d3aY5ULg>sKm7;_q8#V_0VK%h&`Ef+z?%dP639Kg(xRS^Pc$g+v^vc=<5j_Y+?7vg#zdm_w8%>YF7uzt)(J=j{S^-vzDEl>Vf;CfvG za4FMJ#_P0K(!54azcr=`)T;xbl}_Z(j`A``-J@U4y%FnLh~t@vDmmKW5UV5R-ipqm z;Gdw|!46&eCr0NOhlQX1i5d0Hcyt?QNj?rJ3^#Th)y@n!fan4jS`7VZd_2W%1=QZ=h2u}dmK!&#&g}o9dsn}Qw+sT&b>~P3Hvo3Nbno`6+mo9K%bOpd*o= z;u3Xq>Zj;LhcOWUyYf>|M@gKz*o_gK(vO0Xy?C*qI@BsbTv|?&p_n5461#8dyL-L!j;LO2DMW!3TnSs=HTTUH#LK)D-#{ z+}pSB`7MetrTppq2wgq*7uZ$5Tvx*L=nQ<>h%F(?n-Hq1nqFUd-^>dA_S~4q8;8d! zV|PIw90{rBr6>!A*iMAha7s|4Ui7*h7`IR-T+nH4Lv-m z9&b->s-|e#Z}Bfhb!T0WEw-KTnexD1^d-RKkPb&(L#@u2bS-|-F1@T0r&d>lD(^G2 z>+pki>17R}D#dSylKl9cLDh{Vd5qZ+-$S>#r1}=&zxF+(_BOwJX15iX-M&qk?raxW zR$^SQ9&fQ_jq0|M0;UoAoIqN)jk##p;>ddc1E?@ub^8fLeH5yxLUUe{tK)KhFwgP( zd3e?)TV9QBmY>7tbZ>Nzac|(KP$gl79HDbA(3UEuhTjk;Z|LPy9i|wr)-xuQkSe-MIubADhH<3m=ssb?I~*mzl#wcC(h8h#xl{>(9&IAOZ^eD>=)VY@ zF>|;6S1__sT@_+PG4Hyln~^t<^WNfcV0%<}f5#m-cz0TD#$uE?zuMW>IN!di%DU(C ztl^=<;7f^wBeOnh_{W$ubnv|_8kNl>ivzhl#CRl~QMM1}Um?r63o5|#j&$HW#2I*Y z5(6g?ybOtaFuXi^Fo(|s{)Jtfo4uWkv+YdYt;7*F5r>{#=YYQhKIZ^PZY7SupNcTQ z7l{$-Cf<^Ow+V#E)AKl4fE?cqrXoRpP$0hd);J#=q?-~%BRA)ljQ@kd?)mc z&?d`w0)I>g-wAywoG)4VEP0lX{qMH#WFgaFvVC_;nr(||4{gWcS`w9duKBpCmhF%0nf%GS)3JZ?#9Df8uxf zME;Q?3?jdS9^KKIXjdFRP0b?w6g)$8U1mcE^Q7V#>MUCe%RkFMLSIk3_Lw6&(nUu) zCL^)!(fPiXa_Hc#k^vpg;Is*QW9B+H$3)kqS=u90?C1|WocXEOS(kWztL4za+by?K zJIwnrH~JZ!9rqjI>~ysqj6$&^6L#P+)gg!-34LEv@oePW?~6;YgV%+-W1`!m1v+?b zhof+|!;!exMb{;v-)bpz@OhLiI*_!2qpx@Fx8lBdto zq=G>E(QN8$3A(BS?d_u|;V)Pcym)@^+0}d0>w)(DBSF)9a{{v)z8+}b8Nu5(j|MO4 zfnZ?vRn-^I|LyDQ^;VR*dUQSQO$xL>I`RRQiQHGi&$bt3K5@2nPcs_S^z}cLhb?xd zxWK*|m+MjE=`J^aGe)D|`r$G?C#B1*r;D3p^k5S}X|~&}C-*OEvbfE9){?*{uqPyL zte(dpFp@TU&Hc>#NV$?(xTjk^{ySesm5;6-zB19(lUzih?i8Y{r>FZ}q~cjz75Swq zn494mhKuA1pv+~6wz(PF+?gPWxf$Br3J{dBr#lO<3{U9=Egk%CJ!l;3BmTD(mg8_} zB^9ThA(y5zv&a2i{Euhw0yrqcRk|b?e3gqzUCUv|8bsURtF*xjK@x+n(gv>p0Y~lQ z292v455xMZlA3vSA#8jKqx?UH>@A{>v>vd6lczQyX z0%RxkA3#)QtCJtfXh=Fwyzr_NDo2AvEl1-!!){i~^su)&F`q|ob?On>>Vy*zv5^VR z$0U_ZP{;r&zxDPT*Fgtz;KUBnqN-yc)Q!(!VAMOKBNSU zz@)~;&|-A*G^_3^C1g1Ag_$MLkV=)h+c2vqB?D%pTb>*J+mQW}eW_j}gyLq@RE8BR znv4=X?jGTm2D~)tFB4`q!pl58)QlDPCL_|rJ=p8+(HO3*C#y-(hU8Ql?@iyZgIUGArsa z14HC0B;P@5_qq75J<2^V$;CUZ@8vjoEw65}<<;#Laj*I!?$z#2UvEl`ueXQOUpopD zl2pr+dkK5mB0K4{Yxl%MJx)KA8u9n4?{Fwl(>OBx@7?Ma(=D>%dUDN@faSxD8a^zt zzTphwyf;8W8_AEVT5LVEI{YbGMtNN+%8MZxqd+Phz3vc@&9o|hZIR1{~aZ9EZ^2qilnu%QhLN!#bD_0BK{vjbf_n3pC;KxkaSp+ z?2I1(bt4*w#zScRcms5YhjPLPVP{V(9xD`2vtu;5M>So}^WmqkIiAMoDG%$m5iwFr zj?mT*_i`Y%#(z#xoHH0cv|=BC90#3!R&kzS``tNLu-)r?0ziTJ2H89zI7-IcNHme5 zm6LZz@N?2075J{icXC!U&QE#P=r5@&!%_F0bLxPs{Mx!Q+*E9yyN<`MR?9ux`ljpn zyP=Lt75x*$9n{BpnxhVUe}4+`dBmS1^4*2O*_7WL8o0+$@h$_O65nz8(iE@3(CFMh zs3Y_6Jv3e*8Evl4qD;OcGT)a-7b86h=@bauh4dpx_d~iI=^rA^N5FifUqYJYFdyIj zDc=k_yAv+24y+6JH!{$Uy@(7R$XP*tx^Zx>_0x@m%~n*Q=jEzO^W%<44MrwjV+Pir z>JqJY1cVQun4XL%#jE8=TltaHGg8jzEk4JCA&49~uE2W9n^+IQ?~L)cu6Dcy+Fq=O z5J%WV9P0(U*aoY?-v|6<@QEXABF-r$^=yV5$5#9X*N!cqZG@a2YavG*&EF6HO5n>KeBw(HSxz(L=)-7-+!D|lAV(Zw6Y*;B3xVUe#dg#JuL7Sq z!Y1MzwsDCTU^LuCpA3GtY{wm-6+(_U!Y1NV#U5-@-BAP_ZEV+@c((BU;O77z?%)&8 zMC^xhG9X7E6n;m|UXLP5Xk*m)Wi2Z!hpc>0&fw>cT@5Q31nX&L?uzhcfh)ggjBb4o3pl=|oPK zOPqWQrimW-a5TLS@Xg?}9Nr6rYXRx1WWR^I$I}AH{LO&44?NX?tXGxr%K^!sBlOuq zFBLlbEaeM@K2_*Jp$CLMUg)_(&k;KMyVj33(RKmo`m!AAr9MI{U#8&w1+w2+d%5|! z4$}efHb{Co(yvQ;4btZ%{UXvlhcFF|!e`^HOrzn-(a=Gm>*u4S_kzAw(j1FJ$lnVW zh+`|-P4&V*j$aQ8ozLF@(kM;`>F+xIBmB4Mek824-mYQ9t@}n}dmZvWcce=kY3i`_ zbX;dGp(}lq97;0nj!DIOkurKF?0h13IDkb9cGMVkz)9>Q)qFLNFXSg#=d>h}iSQ${ za?4K~UeM6I7#ol(tLehmvnfMb)Eug)1ubg*ST+z{>M<}*^Q>uGJi{G^UCJCWo=k^1 zZ#)4<>+`IJnAY;sSDny(6E8!YnbSSiaR#Q*i)Y5`2y(!JB^qg@gyM2SLd>dqOeHLx zLn4PLpf^sNG`Vm}3C>N3>XGQravs7+9DQJiuGY_SF2Y!IAVPTx=7Ts+$1Ix1TQ5I= z=acfA`=*NNIAII!@sr>YQiKuXrVf{~UVaESCG%tGP^&TUHZ!M3wGuFNb?yQ4GraQO zSTFBHhf$9IU9FcV(%};g9KX9-FHfWcSzAR7beQ#wMC;|$@v%439@*E}^L93|4wjBY z>*YK@JQaF=#D{su5UV4>_XPhe72m;%cMLH)60MhCj*dj@<ET`W5eqCGIRV~DXM z(f0)Sy-&q6*a1tVCs*Wp5!7v+>hOyW7JLDSbUVA(Io2}cu61vLj^82g>L@$xihw6N;A)M3cEU#7Cz+62f%y^hr z|8N^d+mUeXf4}J1E;?3-4ydz(vpwRi51)e$j=x8s!x`e#h0n{l-!+_v4$ej2?^;K~ z?;3JY>wVBM5S@f&A3@{gN}`mJ|{X3qAv2dvM&u2V5@;} zNDKt59fG=p$oHrsLN!3xk4LgZ!8DYYs=lM6;^ZG zUJtg-!}$w?(;L3db>J$In-L}V9(YrQHztaA@O7?1XWnnEK@YI`83m@4y=N!2EpnMP z;_g@@4i>H66KMY;WNi9GpZ~!1ZX>-#>pK>*^c}MKmcF%E2|o}Tq}R*Mc@nEY*{k&t z-*a+x;Ntn^TF+Wr&#D+b&B(Q~gP!@Iv_$DCfBhWlH@7^4<*B6Sxr*+`dVJ|w)pBp< zn4bmOi*=1H`qZ=Df_whXYS%|5_kzT5scV{TgQ@E%$o4yy32j*@IaNy~W4-=^fL_PP zioKD$_UxmR`@cT4Kph)ekXdkU&xaUhOgH+|t*+~N43VQ0FVOCEy{!raw ztVpK0CWEMZFmDHYMKWy#Mg>il70I;!O9EcOF#{SULdwq8Wq*z3R4_BLeh)Vu zeqs%Uyyq+ghp?8`Q}Mog8%7nN%g?}onz55e4OKH6x!A+9uYD@Lx8m%qv4@%;$@ z_2P6|nin?~ej=tDPrUS7hgV_~4T!yZqFh&5nQmyj?=)35)->>pTc0bt8!8`eTokTS zd!P&VaJQ10C1F84%6o|A^x~zl71Y+?4#v58^TKuE#+pj}%w2Z3vN8?>tOHe)mCdaU z&1+IGYn2}0b}5GB1F2wPU1bqw2qsf%I-mNsW!mCwtoJK#UzF|X{rC9aVHZpv7RU=B zyI^{=#UY_DpYkMi@B2d#^q|DNo-{dWC*v2uyzi6rRV?UREBIb(1wT2mg5NE&g5U9L zE%PZBe#R%s#}Blo_2rp1JDdEk==4Fm;#`^uJ-99p-ye%O?p&ph`C>lzS5`m!BQDN39qZh@+0lbRn#CjopND=#hm`$@j7afGm(x*-q~V%m>k0zp zT-TwCq^TXH%7Hd$5@mHL$NySHhg~Es(WGJm{UnQgNk(*|=Gr<);=|3MgQV@6RE+;R zL`ZZl>p+RUhz_es+O0`;-ALlPo=X)I9MQ>Ag5!pY|2pt-;X`+Ds3XavNwzwYc$YyP zfnO&}3Cy81w!s0A_>jVBL6PEEy{G>e+%n0$JgQ6_q^^FM3K)?qT&>0FDAG`~X=@M&c|X`>&MoE$sn&V067vW{mT zpIg@8rTFZ!9%?L&(-$@yJ0CCJr3Csyv~!^`#Q8uZ8Gj0?@Ci0fEVVbIaO=CyX)dG+ zEyUabn>j;GVOvNKu6e9oekqTTlzEML7~@*2O1!j7mm-~x^be74K>8Y_cOc!0bSBcDA^mNUpM(NfMutQHMc)?vO7Q}^rG6}t zN4a=`eTufoAbJkUQ}J zD*iZVdjYZZy5ME}M)O8o{|~T_;T6!f<2Ra#BWxo6Ecp9Sx70MX<3->YE4LCSpE!qJ ztj8=^3rKw!m3M7sf9i?f1P5&e+(pdEr7afD68-$taqy^!NM!G~bio1pE6 z9C3tA#CL*EJB~rmKHx7n>>|Dmk$N^l4z{aLpywIT)Y>P5U7 z0_;{*0@E0azWRf|QK0o3nL)u1xDB7*5mD}&0`C;qLtr<7uR(}%yypoy%^|E4 z_$$~%{FefMD=-;Dz{|$jyoqaJZ;HM*1imVeuky^lMIc}MiC^w-Vm3>@27xsK>1?3B z=-g`14c?tP*&S zKx_Y4vEVZVP89exffzTn9*&pz^IRp6-Z0|H0^I_wesWg&%Q1l*vnc;lf&VP<4T1FX zk^j6vx&et}9MTZukA~k7_=rG`8I)@jSSgS`PSP<>Xo&Ga!&?Q?pGy8Pfj0=`G8O4` z02AW&(-1&I+~*pi>&N8}1U&=!I4)d)$0*YF{xb}R`nL|DTkk&uPyf~-#s{iZ7_L%> z00Q^;1yUbz>La8+LXH`P%t%Ok2x%`NfQHnEI%$1ZK|l3Dm);)-y0(vy`Y1jo9q02LgPG>Mm*X|loYP}&qk5qs_M-#x9gS(e4~#(?e>(W_-%7vf zNI&aHPjsZ0JJRKj^oNf0_Z<409qH+gbh#sqq-_Jtv(wSL8Xwc1V?|fu));CABL{@XSsoA_8+wKbO5^-X- zJH#gHm*#sqcsRtH;S`b5u!Lb#J9(v!CuO;8?EIDw#wNsl;f}xKk1pBBUOdy_XgK|A zM)Eo>r`<%FQ+EI9tk%A~QQ7`T=xSfym>g>xpWc^e`Vt%);l}^o{=9Vf-?_hzkb6TI zFK2(=i;%bW=Uu>n&#?|qt5yPruJ-3KKf`*Tf!2SR(`u!=`dy+MIXV*U&!dh!)Wx!+8ts8sB!(C}67A1>2Az5z zGOXf52B8%?`20qQ(UE9>-h6a~hmoO}9id~0rz7tEypN&dQRMykCFn@BKkt6?uBPrX z@8V8NV(dt?KkpKCbhz-v$%OPA)P=?eFcD3$bDMP1Q111$0VJ&ogDt7EdUF=GTMUFO& zyH9X4bX*77m3SunKknWKzN+fV`#$&PUby)q1PBx@)hk3ADMCP0O3_|o8qrb=5G|!t z2qZKpBrya8sy15cFqZmIhdPd98RFykh~rpr)Dg!&)L|UQu@*ay^|7{Pd}vE80+TwC zu{`zt{`T4D+;i_e=MrY#&)ZMmo$R~zT6^ua*WTxxefHUF{|UN~IyGepo8z|+8LGpF zk)d?jgC*kHM$Ykj5gBU3cUc($UHl?>?P=8fy#2_?knl+>BZD6KZIJX+o1!_d5S=3ATH6~&? z+QnQ_Ef@J*Kpc}&R(6|(y7b4qo+cY2`@6f$=kofKZ7Oc(@|(NZPPVCdKm?6XB)Z#L zO?oF*F%RN+-4_4t{aq@`v>R!G(k-pVEXK4TW?wXs(GI+?u=m zF$?6mdzWUpb$T<^eDl~yc!-RGM4O^)cn?v*iIQ=O=0c&L{R*~{&_k302#yKf7hsZ?|&Y*2j z6GL@{d;$5U(JG|4bBLs;M0j(E)*Czl?&so?QjokkL~f$IIYdTdb{MI22K}ov7^a%k z79qi#(Mgq*4R3PutXO7dqDj#b(lP8X=<|dNcLv!iYN>{z-MyxVr2Gk2cB7Wv#I42H zI(E(;qP}v}*(oHX-PW)bDG)YvlbBc+uGr(R$v&69Y zxRLC7BX$2@nIM%r$tmg0mpY{#PbM*)$(<_o@ruCqDyMX)*C|h)%Gm~GxHnyDgtvco zmA8NPNN@jaGhP&TXO{dSZSk1Njd^DPcffH;1UyTZ+VBC%J3t>XBwvO|_ZyO*zeu|bX}-W?Cg{iB1j^%z)AwlTJ0zsde+mAA zcSG0<(%au8cy-eLOG(+@iq9&bCeNE(lHb}k(pUs1qNsuPcmqwlnniz9OASI!bET#+ z_g0V+a+~Q>2i=Y8yyZFdne{zm_5xYn(Yb*s9PX47TPA;M$)$cT!S45+z0+nmZi|g< zeUtnp{vrIMcrHPKcIrh`Sr2g3_YZR#1E+9i4W#UU&L>%CCyp?mgh6H1lUyZUx<$>iP`^p> za=OXq;5~c?Vd;85c39~;r!>32g>am=zlFYsR`cDx=RN2x@NFUTR_wXL#U~tl_8xsp z4k7+_@QuU^#~FL~Isy!ZtiBe$W6*DguN_(oe8O?P!k1co*pGO(9!j3qot{3z>umfZ z#5aKRr2Fy0_4F&BTKEnl_c8dUL7NDla9pqO@pzSsI@qIc&zImk0~&R@Q#j7w$3o@k zAzt4nTsyy9W(%R=~)n;1eKYfyZ-{{fcBl(0-xk< zvakopC#12naeWd?!O_|5AHipMj{Q^dvu%7m(5n~GRWC|6-O_c>h|YcG?-!wbK#iUr zUk$kAz-!=JK+m=nBSPUOXdkuV9fW0LmhDOH;!+z{d-!!5RvYn%4Xd5_3~99YgW7>{ z3R5sWBg-sZ?d{hHlf=011;Y0P!hanIBf{rbIxlUmEy>%zhRge(0jIk$$!Td#Du)gts%oTa(G6J zVBsPy9U)ACjSB+ylH!cP9S(wB1un5?M>+q(tQqB`=L1}L!TEMO1lNwzvA(s%J-^gg zuhE+tUKj==yu2MvXFY;t|l_(jiLOHdkC$pik9z8Z>X9qZBg(Gwect(jhD22 zF9&24-&_A>WK2TFOk@OIZdr=&t$zX;%5as{V1 zyGji*T99$K)kAyi^9bcQt4E~GjPD9#Gdp2r+=vXiR5{Mdh}^@0Zwiy9n)gc31?wbO zA7Qqcy~xnDtwn~?y&QUNO?^b#X7(Y2OXEzlG6K2;?vLX8FT8AJ%*>M!tXHp1j@c^+Wbtu#GdOf~P{3|;ZOpUVB(dAn zv@PVd_u>1mAB{ECV*mN!(L=j4{aDkhl|Iwo;K(|J#l~2YHq>u4`zj1)w}(uBTM2O` z&bF`A567DH*wGK)fApv{kR9m}bSMkx@Bp#*AIr1DF>iNH zH9I1B`yOmLTH6rY^~@nB`OKkXX8(n&dHJ~Y@%yw9MfC>tRqDD^-MT>Yu-%S!gzR)k zuRB(*Pp!Nq=j98jA49f=lk#p6&V?_}a8ka2%A5~9sg^-KpFzvku2{kNd2FbR7w&@SvDy>5&bsUdf|3E3^3jrQB!Ib}bCR$?|~cZRAOT&qV!jXJ4B zYRIo#DNah+aU#O9YnLy{E;mnUTh2sjJHN)_QC^uCR$%kEh1jgkV|XGt;xQ<9;;VZ3 z8RC?wp7U%T$uhqH*5;uaPa2ztHsp709)@OY9_0a>hf0|=Hjnav&BIWQ&BLV6+B~F5 z(%3u#JN;`;XwtQLq@?b^Y#sq4L`l}bF|9)DxD#1|(4@D3drzZ_XM|XO4bNBK#yCG-V zH~6ZLFZUuHC-wQyBV4S0s7v#$$!Cdi>Ys->eX5K1Pm!s9uflRt(W>bvZDT}w!)$-l ze^>uI=&&a^S?dP(tBu#)={e~TW#iD>S@$XYs}BNcuU5awnEpPLdwa06`=`)eW6WMS zu2=Yey!f7lZ!h$I_+Eha6nw&QX06~81o%u?{U}iU55fO5@ntDz_ao3AfL}PSSNMH+ z@!bs^4%}w(+exQys5a7Vg?1b1gyVXJuOnXl@HyBRZUpZlUO28-csud>7HlB>&EVG( zFC5n^dUnM|PLj5tpRTj2c*lgjKEWFx6)r0uepb6S_ z8aZSAqU#wFJlDcAER@coYsf`V-!Ovuo)ZKZI2y?PW7a4MQV#~#{VZHnAgBa_03Q-p zp?I#Fp)=f7(FiVE#~dI!_+^6{U!hC)CVY{}^@cd=uQ?P` z*M45g-_yZfcf*rwA90p2KDL}iy>`23?`WbW-ECbRH#kdHn>k|+J=@m8{i8qQaWj~* zuN&MPwEPM1f6nkWz~{N8t#lX(L{73y%Z7l znv@>@{zxK}fszf49ORZYh(M zj}s@Tc0rz?aRaf}Xx+5Z1Du65X1zTvjML*v(D-6^>-z5H9qcp4mLV8MTh7o(qoL9Fz_2DBh+5=0%M=G$aq#A ztXx+hBg$UWZ?EYQ?;*{~DUcCmuNk0>qV}31GJK5!+$ca}qo} z*41P0`Tl(x(4)A`XD>3ABjZVA1YK@@6u0?Q(^#ZQto@Re?hW)%e=z85St8ft)FVS> znQ3JN(|X}xeT3PK8j^o+f@29ZJ}vsoJfN zgIV>9j^Mgy~i%}`;>ueYszA5f?;-}^~g}u(P?FjMuy(CxO^Fr zcB5^`(EDhMm0?o5KLHuV?MC<7vTVzf;eMXE!o2rOl-+0tGWNoHx0TUIS?ufEzq|_Y zSUC?9R|nkpN$li&ABe9JFE`$LzI~jF@Ky$)Lib>{&T}Gr9-q}eC)Ob=i?s~(ADz{o z30P^4fKT)BXAbpXcRBc+lkU7MYjc{_UlF^<$e7iCwZF>8+e`bEqhlL-8fNwNcgk)g zTTUa^pyyd>^dEa>^-nbX>+1)Z9j~7xw-4sS7oXL)@A{2qHPNj8_7NMfCqXT7wtj^* zNVN^JF5SnT-#f0KVDtTju}Wq4_`dV#{DvgCZt-)~9@v{nb7SXN->M|q&Ez@NYT>la zKJGMTtd;55Gg>!w%dS~{S6u(J@{c*&T>Dvz^h`oY&gz?b{Y^&CM8k&q8oTbPiG0Qy zyOzs8=V(dI>2J*HKf{*oP_v|Mte@3Cmc7ymJHtsitN-p2V~OJ|Y}wO3e7_bsZ#G|R z$|(C-$vAgiRrS#{I_`QV#&w{#kY-W0DEwN$IX>c1yRRK6YnKTkN6Iw)i-$?0WkMwPH#k zy#x31Ys4r| z-`4B1_o};2?C#5Yp7|GgeD0(3d$a-uzA0Aw&)BKj{mzQnjT^Jl(x!1XA1kblDvy00 z7XID2UH;0e^7mV}z z%yUYa+GC#M4|9FZt_uMLvK14)gCly4a;r-^rKRBKOXv!%fNrX531q9+D5KYA2&I7& zwheW+A^N+3kCMJWfL7kXkEB-k!_llh+fRYtC8AO6{f@Lz)D-F>v(>Rrhz4x5cnoTxj zB1)Xa9PxiZUvuemwo6F|ul@z@)t5H=@V-VD{D5Mc1&vmt3*1_U$GiF$D4##aJMmgN z2_~bwjaPEAs&lhaHm~6Qtm=NNtTbKNW>sgh`W^%?t2$-%8s3R-4`h|Mg-cFuSGu|F zC()aDKesC<@Gg#Nb1$3Ql_s|jAb7c5soYLes}vtXZ`vzZ!4@bv`7L(y(`aHPN&Wm5 zcPPI!B%9x2li&Fey!;j`zXp?EIZc6^pMMJmo|@o=Tj}Pfykyk&^IK_b9xae;ek)CW zw?a70KDH~BU;L&-`6!!sNN~_8wp#50_s{>gRIL zo6D)4@vC8@mTYTihyFJ{qj>^SZ_4 z^}iw6ylydh9fsgt;#*YZA3|`FrV&pmLvP+i!PfX1r%t4*_;u$h484qC&cuvLO}J2_ zVJBt`Q)6xBNMvspZ6QDW9O&k?AQ6cXiK;|$& zL)FL@%&W-e?)Jx}vpcUsdAsu}49(1|s0_@jP;I;ODk=l>Dh$=kt1#)a^D3l?JFg;8 zC~R!ryo#jMO$<|$XzDnpIi;FM4_ED)YW^$3sTR#}=Cz0Lel*MbuZCCck;j|Ypuv7- zmOTbzVwjqfEPLLjOiZUa+e`3~>;_FLcu6%E%}Lfu$WXNrnvs*W^#^X7RLQx%jKG^v zm#Ac-5wcc7%G|ZqWnt$vj2@<^FJwVpDz-6uUc>hgL#4UrHMj^GzAoXT^=SG6@>l;= zA;n#5t;;VF-dbxN`iF|a^BP=I@Vo{$QN>5}wdbGLU^L!n&TIGxc_)VHp*9tr*BVjB z=X>>2xy-D$ma-)mkZ;^c{+Sa0-p*ynow-w%og~BA4DKlm`KL1kQlR;ez!V=)Zw5~G z7>1m48gxweFwNn~pQMvrZ0yd~sq&`ijP$1HjPj=Fd?a|T17FS(mvb_N^E17U9J6iZ zAM~Q+>?0O2YbU^9=i=lw$?k-l;3SdoDLUrthj?w0j@d|7D1(+wP0rboY-IWJob!^6 zlR4L6QF1~25_bmAg7cWclR7(f@o!-4O*XeNujk@qbLuR}<^+g%eA zQa;HGY_}PdloRqYj+K>^$0ssbs4YHzMCy{%7Z7Y1HnC>+Fv>{BebhEt? z5)gMNF0jT~pC~i%0WSZmCA-EtOOn;xIDJDj;Yrv7*yIME1-$GA`87_ASK!IC2XLnw z6yx)5kYD4(cnzLeNdjqZQ5JHWD1H>H&!U*KK;TRhyNHl+H}iV{&v^s}x2P+_Ckb^; z$9|QFG{MN4*ACd|2DNU}UBfxg6PHcvS3#Dvz~kCW!sm?)KL?S_XF#?(vm{@ZI9|w2 z=y&R~39}?Wp*rI~%uVR`&$9`$BtM~g)$V##UsaI~8(Ds_vt0AV9H+Y#xK-3s9^;Y( zOs6?}$rM{{VtsMyQ*JdRKU0x56>_aNr1=7-6Pgt(^jQ<@%Mj^FL-KPHX|Ey87uc5@ ztBJHwa59g*4R)&EpkH$IrR$b*zK$Ge=!Zr3<-0gHU?&Uar+w|}WvyLT zuJ9&=tkGmk51G;2eR+FJ>-rfdJ=G-pv^oBx!l@(X2Aknzd;2QZb*-A(8JJ%ZEG-4M z+gJIuW^RD&W)!kdp1{YjfuDxg-e%MAb@*odD*OigJ@|+4PvZxTX5VRi8owTU-aeq` z_Ie9pJpync_NiR~9z|_~CKseX4ebs1g7S`s@TJF)FfZT5qTzz_HbJY&bB6Z1cr?#IoXFk ztsB73t?g>Pe(g%OlgcJHk=-|Rq`76yw4*iH`sFmgR`%8LE^6>!f`1BJwmr}D)MfK3 zY$@D_IcHbp@aNm3<~4kgPc{7c%}>TVlO}i)&D2`|SQ?I~ah7K{7;!RVgKfyz;C3Y1 zeZ=iZ@&+{bvTUm~VdnmQoAAYiU*-NiO89Id6sNwZyqxU0vZdxbzI_bu3DSND&nGQ| zSD!+awkITQejeAr7v}Qw(3q%PFb}0YIDkAl2AIb`gyf;Lv+XnDYT*9nm*ds}=J9Gs z9!mT00P?tdfO%-nimsuunoSzb(=4T))Rj{G$qDiXGEQampP!$^6)(Jtc+C|#<72E{0B!ELf?+~;D@CnED3V#Eif$wGbo~C|(f&M>)_9A@3alOL#5#LR^9mv@a z{w(pralOKy!e@~4Fnrb2Lp%CE3hjRQgyVXJ?;u{+X&-VP1iy!P@45-Ui+Ek954djI z!S5vAyKchoz)vTiP4MY{m`FaGq4mJ$-5U5&g&(D=~bDIC`;d=Bw#q^qEQ7J@erFC5n^Ty0YZIW_RLK%WNRL}=CU3CHyc zPvbN2K{D-02EH-Sc*pqdiEy>Q;!DA|80IS8{Dy^pWZ{3JkmCQt!mn6(gN5f|I9+!9);g#;jI>~v9QC!HVa!Uyvo9P7G7bY+HT3a$U<3=g{v(V zOk1dahj1CN1%Jnn;0G4wpKtYsrOUi7KK1_u)z=h!)WSzB{0j?Z`R6~e#lp=NZm@8z zg)1yno5+7+frXmKAUtE?ObaitaEgWQh$rWJS^OgwYPJObiG+nhg#Wv}A2gFg_)jf- z)53qTQ1d_(zt_U2EqvU<-4@= z4H3VZ3PIWz1J$kwSKA>-`(mK-7Y;D6ib9Y;1(duufZ}@%D8Btb@x2Tb--{OR1B!1iP<&4V z#rGsoe2)PoZx>K}4+F*bAW(ew1I4$)!h3<@yBjFJZ9wsDweeeklD8QszD+>!^#H|p zBT(|zTi6X0Unfv}tAOHbv+*rJ$y*8(-(sNn76QfB1eCl+3+DjEHybFvdZ73+K=C2V z$eRun-!!23YJuXL2>cYV1}Oe&p!m{2@r?nBZ!}PPRasaG6ki2Ud?}##5!yP-?oNcbd&XTqcxu6W@yX~&Je7S;kulc)mn`b|^<&HW1GnMp7M)jS_3XcrZK z9H{vBfZU4aJs`T?1ERkSl)PO)<)ijp@P12I-(38gfa31~DxYqkO5S@2Gy3sk^aC3GfJ#Td+11P9TY>zWc3J#tm&M;^jT{sHP+{BHq;zX&8Mu@5Nzy+HBr04n}Qp!nBYyag!!r9km7 z28ure6d(7DNvHcueAPhlrGerbW9i5?blqQ~>%I`bZW!_FJ`x?^-#@y~#4jj*LGcTU zUr-4I0R}z^l-vg`yxYRf7OGr|Z?kZrg|jW3ZefjuqbOtvkKfhQm?i3nC&|@tg+f*bigEEV^TA1SmU)z zY*^#8n{8NQN{`#H#%kZRVU5uaV%$=4G$wSR4QrhC8XMO5>=ql=xXrURtg)Lu8`gO3 zn3O9=gl(VA@aq5#k6+LWZwiF-*Cfwf;I1KV=;~PQ8D0u@Z4I*#P0HGI z3i*qlV&^V^wp+w{+s5WC*v%WLj@m3XOtX+B%^E59O;CZc_kwlC!8p54dv#~`h9%3J zITg=a#N)1WUf12cY?Zg#+FR5-cR^qc@&H$AXVYeN3@<}aJ5yiTL-4AX_?EuhLgkTz zDX5iP8)a_Fi0C{C`4-dy8Q~0tQu0j4wg$Y)(G}EPm22U2GYgZIZxabqtI%>=z?F9! zhF_KfrXmZ|i&?;n*w~|!gIK<#{q7yhJ?R}< znUg5*vGulnF60T{AfS-X%`RF__Tlh&a-Vs-gF$$9p{%(%hO!i9ns>istLyT)3z}xl zz4S9n0yP%FoSSh3Q)t$Cx8g~2kKiv*Ac8MKhrD}z09u?pMa~}HR7qi*7P`%NG0qU} zLmtADXg{zNx!M;=lUwt753r|7q2dvY;WzuqnRC?5XJ^0tDU+v7OK085&Yhh${le)k zx7lyQ?>Ph}lXzRK_1(39=MQACC(0zHcF!x1HePY~nu{d%%} zIHF{bw8scBGTc2hqW0mCj4Svi@aiK&ovLne7D$ic`*18H{clL{ybQ6qu24qAJ{(si z+=P!8E{-mc5w#D;smNHx(PGMR$&&id&zj%hYb_aH=A*^aqmlZccya}LMD3gYG&kiZ zNigO#lg?>FhJ73gWJK-5@gKjd)Q|6 zcrQHuN{lp@8ND_q~SbnWu&uZ@vBtWmwDq-q8jcBUhQ<;|ltsy@b_%IZky=J##GFkE3Gpi|wba z3*)cTET2t1nOo7W(=2ZhfpIV=e?RR@snqdOJNGbF>5~|&kuGoTW@-mW&eF_MEzP_h zs$H5n$RsM0Sv5Fq+A(`;D>duaoIwu|NDLN}S+$=UiDpIi%&xfEO;{RSx%Pm73Da*o>Lg$J)Si5JtYf*cHvxhZCz<_DV)~Um5D|1 zv?kg8v9Y*aK4Ln}^l4#B?}oT5?uKTU{#AO5?}mAc?}mGe@0{hj_?nW$BCOvIIgQ^K zVLc?V$=$0vC$Db4j{O_Wv4)eTo`2y*pPam)V{O;+Ru3=$*0KCLXL5b(y4F=4ovmGy z8&@@VYl8in$txS%I@(*WTrjEAk^)={>OY%hxL{K4q%|$qOuT=W zFu9?NU5sz&=(=vr}JC#2#WHAnuKuAZjggly%0QsKJi%zRnZlbqMTbFu8NTWPF8 z;3ca5iqgrczu$-2#*nVygoeP5&kLc zpYk5I#Ttl08%Ed@?W&kPBQb=haIe~8*@m@CksH+(6XXr7g^!mFBxUZnUC|U~{Opv@ z8@y;r&Uu3@?qZ?N^59ym+~KpZakH1Xx1F?mPqru=;`Z~<9U@LpEb^GyjT^|gnQYZc zPdns1$@9b<9iCFBM?mgm<7P@P*Y7pDE~>Vm#|DwHT%XPSHm?#b|9i8D3{M1UijSK` z$?()tJAJZovnUxP?eP@xz7?a!%_QUeM7BP5(YVs2$*GEs^JGNrUptF-{xsyAJAm<- z=7@2#xi-@a`DV>?1$sn{o1Kb`sBtsN(3~Srj|0>PeHgg{J)*|Vp5Xp`mjv4x50N{L z45nYm708GhH~XL52v3vX8{P}sBsV`{GD64AmheJbPLj)bLFTyv8BybA&m%+bp#jK< z8aErDjH2UaMP#@N@@ro^k>gc5$E^mwhbfCHfVC7+<5iJ+iylS>kBjq~l`)+cyKPeZ zD|NCluVcu#2^nwX)v13`h_fgnYzt`%qp0d!i z=eR(fhK>O)r2!vHirIMy!}QQmVqtr}ZbF8x?J8s_T_v5rh-(`;2Dlj+s?$y@gP`XE z*TuC%M2+8VMMj2H>#dB@=#k$BNk8>XYx&V_bOQJ^M3VaBce)?sRVLAG6H92|PJ6E2 zx@#n7_w6^Q?`8VupB>ykb4){QYa3_iefa)6=7hf)X=2TutJ>-G04MNe48L~l%=Awm zOKf~&eP?53+qA~ohWM^y{vMqP@~AYaGyVO;yz>D$2)9kUe?E<*xxKJ(M(PpVDVbT@x_ z&14fh*~FeVb;^`UpFB5Rv#ePwrD2;h=jzXicg?!?b9r1(Va#GOJ?>(Cv;X>_rM`vT z*(T9lKYuca*B6}8+}`5Nbkn|e6|pA}W1g91RFXf2Suvmc*O2WPX2rWyqaDNagppjS z$E$XmJ*g1IdZp?-cT`gfCkF50H#j2Tq%@HE4X9>-@>^mm6_W-iE6UQyI%z5WlgDFK zu~-Wk@51|KsWN3zMccAenX-HXf>UGfYm~vpJn%a#FV- zZ{+ukiQJe!fbI-3)lw=w>|k$2`Hw(y274=1M-M`^gS~FW@~$y!`kmMyrAUPDOlNQpY(Jo%Voovry6<-mUO6P%+qQX&jTs2WetyVrZf=e|WZ3 zho5DKXNM({!@mjTI{b)@{0wo*Rp`9o*+iMIfgPS*2yen1YgpkA&l;K;o~;NB&+6t& zm}3nq0>iV0YKCV``t0zmG)b6a4HaRBXKxbG4$n&6fep`IKH|SOK${(KO=SmMbB{Hg zWX5D?lz*!H;}wC-$_s{bEAoeP!^dmA(cGc#z%8S-mz29>zQeqM+u`28?FfJ1wuLH= zJDRKihdppxya}dw-k6EI)7eQH?EwtUma{9_Chbc0Pv4pRS#~1(Iw+?Y#@LvwY)&#h zCmBo4U~{q`rG6eCMct|;NaOQHZZ)WvH*%}K3fqAR%rwEP1TrSr$gl6l5@KgCfn_Gx z~zw=NxN7acoJo|4-=FLMxeU#@0PW zD>YG&bYpCT(9u=2#D_&@NI&A7kuwPI{=?>T(9uAh*$X^B>o`y8^jC8^$LFt zFFDV{*8}|t_+EhaGl=M8@%Mn=PP}kjukhRO(q|)l>q*xS-_6jv;S-MQ72av}sVsALuLoZh z&_{S9@hT@4&D~Al)U{u3;q^9shWOdwnLv8sGx5@6Dtz6@nE~I0&?dnr9M>zn2Cs5g z!Pg0WK741mw4K6ny~4RKOu6?{p3&eb=&kZ!G+Tg&((YnuUWf zZ``PlNb=Fx*iQ)%m3Y&_f3fff7Vfo>>udP_+QOX{-e=)<3;&0O->~pT3suL;=Xwj( z-xhw2g^Mg)VBwV(W-L_wivI!&r&u__!toX|)L{7d)HYDhv(f84ryv}b2>7>uy7H$JFjODLe>;{)y z?q6dkYXOp1VyUGswsh`aQ@%Ms#p|9_x_V2`Si0&_^y!v9&C+WvUFBB(08>7XPxr0r z5!nXTgLt;HO*Smu9o2(;6eD5 zo@T+BNkgS~CaqDAfZWOKfl4n|>Gly^gkRL@@sN|*1B=M;M4(4;dtj6dRiT{P*^}7= zqhye@2XCBb%ZsuHN`@w5c=d6Zjt8%OIaRT7o{T7a;33k>9$3YTGS3yth_DB0-niV^ zyma$ifs817;Hk)nvIk0rMlC!&#{3uTfnVUJ-bW$6PKQr!8Zz`=#1)h!${wgQ?Ej1e zm+MBzbzw3>?SW4qL;a|?2OuNL9yrcECs*>`&2t5MMA-ueD5I!7u!sy_E&G;=v|3%bcSp{!LQ|j?J9H*d?PZhN5+kLb?R3r zah@Jg_CWQ4bWa_#ddxu&J-6Jx`Fcd!1No*hWl32(9LWou)x+2W!_L(_U}aQT88=4P zhmjFxQ#^QIjLT!rrW~yu(rucxd>}{;iJ(KS+CpKpKw+8HR zoC1ht?oPuki(*@24K~E=Ie)Stc3QjMq8z)PY>4|v`)tg$A!ZC$z76qFV?*5fc&2~M zu!K1SG1EWZ=Zt-~)SQvH135!{9WwpDD?uhFC@x!gdfPLHwqhx~<2hY)w_<;fmco$U zn%aNYo$9Iv?SN+b(uGoeyI?R%_Q3L(EOF+3pHHs7Wve{S{bR`9ng;DhV(o!JA&8I! zeXZx2|D;Z0@Ynebj+naUzok%(`A@sJB}&C))+dx5CKOc$|AQfh;i8HBcHn)DhZ~JG z%3w7fZZtO4S=P#xjuIR4brBmKi%IywU|8Yjs!_Kp6()YWe2&LC3> zrOMtK`^wAN&^5%^cO6t~>?_w6fSAp4syR_oe%gBRj6GiXS#rU_hPf{pwdr$$iYg&6h(c9@`u#wpN-4;U18fNH=EaRSeppf7F*=+lNY zk6+_<@cTR-3#7sM`8J-01EVhwgk%lazGq8egvKq+_)ct?GEAg=_evl5?GOpP0M zsGu<0HtL-dd?l$_^#{(>wC3I$j@pVsquq4+uR*s;ovl2lKCZrDirMU1T30l$UDbVQ zYdd2#PA5Y)L6vpBhP%B>F14U)o%UcWj~@DFxeC7+--2I---zd$85dqRy3)C}Ira6! zoCeIP7-tLd>W3?x^4U)KD#G^>{!7BWgsbq1*Y}Ig2>dQ|T`5l&LG_>IlwURRa*Y-$ zobeB4C^W)xPD8MI#)`ihIdbZNOV=oyobGEg_z%<*qw#hR-$A$@e*n+W!0I1j!_hc3 z`?u|W9oj3{aIEdNSNIFWtBgai@w^27Jn_PDy~6dpNzN|#^c^-Hz9*nP44-gZukZ(n ze+_&L@sEMuN4#)cuW)@gQLfdu!M7iJ2EHxOZiP=cu2=ZY#OwR_S@gXfd?WF~alOLV z;ib>D@VyLu5pvq0wZJDF*DHJ}@hV3r@oG_MZ2WQwue0%Y65jw$Gv&t%SJS0@YT?6v z=xl{=8nlV<3CHycACFhLs^HrP{Q>ySaA`Y*<9u71%27+azK6JX{BoJ^qqw=>{Jo3+ zo|}*V#B&x7vruDTqF-p?AgWsD2q_n&6# zROzp=aFK-zEWFafjD<5TyuiXK7EZ8G^(1+G{u#)ys)2frLkLxK;)#oorA_CnyC30X{4vf8CSHXOo3JK+2G40kStsVkuDR^fDU> zYy_%2bAXDUZR6`LJ!9#rFQuDq>AIK1&;4fT(o^{WirT|@)N=&H|{S2VG%vL z+66ECPk}Jve7fR2p8tXkEZBxx+d}GM70LJCvs-0T2Q#p5Qdik%(^fEv zTiB?NdNRo~msESfib-P(ZobBt3VDavrCYM1)tMYTb@ z)RoK31kA4at;;*QSYPe$@f5aBtw{|@+P#+#yX`TATz7znx)VM@vBz#l8m3y!g}>l!^NQale0A?J&Nz|)Wt>ofCO*TS;%vRG9v6!t8BsFQo(awfs81- z)TzjbvP(&Z&W-W(SWkVZzl6tzngk>RUk?GBN4 zm_w9Bor#5%#aG@>?FIt2i%^@=VPqVKb#Y#O1m#&7OeG0lV|I{Eo%%jabZ(TcHf{RZ zVK${m8(W%Zt%kImM`dI@hz$GOLUo;|$69vc2(u~8MuzI+Nh{-c+V6+>Pob3&X_uOV z3_ZF!^U>77*?!#yWGv_QTG{?(S1sC;+NL`}bqzA~sJt=&8Bu$8 zbt7XJG7j3ZR8p3_%Z%>se59y7v#Kfe=a6B~*z$`LRhF>za^1+#bva01RO$Aj2Tg%o zpiYe*k+!Y%aO%1ovNB9+_a`8u_IG2*`?m~u?jhv{ui3p*URRFZOg7@J0knh^{yT2;iclr zw?n<<+o3i$C#)Un7e1$Fhk6M)>zZBJT7maG_%-u9d}-rWySDC@U77ybzMSp8oF5%e zZIwmq`^TNFAHIJdscQn#?g6h1NQ<$$&UsGj0nhuDb6TeV$Q4GjvP}Q+t3FT(lQ-3G zZFuuI>%h&5y^TlDZ5z~(VYS^lB)#!PILfCs{IH7N|M79B^27Jrj#eJ~aOg$* zGyP9pP5dCGzPWyiNx$gmls0EP7C@Jty5%lWz2LvGKL6=yOif+C!D+bH@|k%=FJ#I7T&{%Jlb`D|ejrg(Dl@ zK$b(@RvnF#TeXQc%o7uM+Jm1N5=PoH!C|aMHsl8@Z)Fbs*C})pC6J{*fb+ z^mc~4{B@ECkEkA!NP5N6|MxGIvvPU;h(d!*$@d$%chn7kHPin)cPUwQIsz;JLxYr%3TDb zPkY~nH|kSVglV9xiEY&9ML1K6#I;5+Txfe>=u`WB&t-$B8MJCFmXnS1tXNFB+!4&_ zER)j|NH(XlOiouqNSN1k?5vx}dYSMwtsJD>g`7vAtcBvl7jm^uT^G*b?Yg{uMTeBC zj>Wbj>8E(V_|-J9P>SZWNPdc)H1TFrplw+0&hU>{m z)ok*wEtLJ~f>LW@>=zU*b^w8z`0J}S(Wv$_$X2z9Mz#M7A<-NZf`}tD&r@_22M=1a z^2_b4s9oO10{2)-ix%syymAgagT4V%xMto#!!xXk{)yJ8cfPBhZUudB`0AZ+)YH*l zR=x9$dQU+}w65>uMrdt84gyqN*gl;^hxDK&3H(>ritWzsT{x|?5Xz8zKm zeUQSnn%kjz=3A9N%zXP-;u%K|MIsVIq_Q#J=07CHcx#y}*yBat%Pl!|tQ@Qnx9mNI zU9J5o$FZ_mDrRaPzs86=s$4e?N-c1^Pl@FG(|mQ7iPtUa&<6>d8gL&U(r6{>*Pt5B z|5&UkG09wiR=I98q}H!ou1(a~UCl`hs>n)yQtVD_SnQnCh-67>eynoPM^pdy)ry~g zmA864V#Q-g(kV%49pvRBrd7lTAt6f;nhcTRG`Hk2Lj z%r1BXSY%n;(wbf1S(#nn>1^Zvi#xUa{$a1C%)diV!Jt}@)S6S>8_~7925%sj;$TO0 zl6oGUl94j5dP^y<#FAWhP2=zQ`6>-j{LdF~B`y?EPR;QPCbm(hiXC@@+N`z;j~1NqYsSP0 zUP7?WrRoIAMmN|7(1B(!+zPnO4Q>ILX5OFNX0m$C$e*XIe&+_2RkcYoPx7_5DCLmQ zb#72XT}ghCr1XB1e7=Ay=_+ZeY+3p0md!1l2KrfBE8sFVWf|>&3}4>Fk`$+Lu;@Ne z@$O0=B2M|m_yaNxPvj3$tGwYX#q{wy74!|F`#j-&2~|WlK3gSvdjwxDdOZZ6eMhe( z-x9C4WUgJ;(VNPDhv~(K5j($uQMPih7OamgR#KSFn%ZJKer-6Wj~LlgQ7P$jI3B;_ z_9s@Z`RvN}mMd47zQhd2KZ(U*lC0U=w5fyj&fOi$J66qbY^5>*V2wE#!>7y*cG=K6 zq<^5XrT6eB@TU)PoHV`x|5E}#$vMb_(aO;^d6>kVqV=Q5=0;0wRq`SsHlul*%1mVvSRyn2<{ube<2+t<`Z-iB@ z`Gj|qKzS&g#^`75n;-O z&T@Y~!g6ngu-GzTa}m6{LY1O(5%h{s9mpwMhxhQUgy#nE1B71*;Cj9ff@?Mlw$Rn> zoU=ZLGCfeiIn&T+4R;F1^$K5X`P2f7pGJ9)&bfF6{sw3?q&tO+U-&f3HvzsX=x@U} z3EFu0go{sj8b2I)*g*F*L7#e>v-?bFG?+Vui%+;Z;mVh{#hyy&^qY2{pbRwYJB5o+ zxa_LpI{;q=^lJDHLSrA#ox;T@{B_I6i)fF|Qs{y2WoXaCCtQ5OX~XxVz-JKu68MwE z3s=1Gd+^F{i-kQFc9AXt-)7RSht^Iy;YufbndNJ;aJGdrNaw)!6zS@q@y^{TT@J)^@ATG zUO28-_T?bH+y;JgKp){7@ye&m>az|x>!7s<^bxMU znfMl4eSQJoGHCQxe0_vB5wCLqHWR-Td@k|AalK3VsmIfnnDyU>pg#=XbZC>Lm*o>a z0XZ7~W`peA7lMx`UO28-_*lI383mul>t8_58PI48b_&P&b6RwL_EUcHHFH|L>m_^| zuRAV%Lgemm|$?SwA;1AYYiEo`;0*}~rv=>Nfw;J;g_=UezMEc}^;Keo{A?Kugz zujVBF$`TVM@2c!etgNu<%L?GZxOY@B#~`SUA=~ z4f08z9vwlA`wJ#41Q=Y;9Pbx%p0r@C#V1-=V_~(0X$!|#INCxzQ%cWsXkdkfJOTz+ zzKRDJD0!!Yr-8$GElVD0%{~L@Z1x!tlsxfCp7wlIp-fsuWsnb_s6Sjt(rYbU<&<6kQy%4`{3K7%OIKrYcn$qCM0#_qT5MRl+-<{K3ID4NA5a?F4e_gg zGgVG5D32%;Q2`){DnaHqCogFfpEdD1Nk2>Y<(TlozFQ!w#dA$FSmAk-w!q?Z-!LZ zcT(X5sc0@wj{k9Ht(ODaUm%-0`0Y}t;-#{ucCoQhcgQp{KkM+1SpPdWJi6Fdo!zS- z|5~JrrSZP(_%065F#MZ1oHz12GGe}1zNXQ$#iBUF=ZX!0J7=a?0lzm-tTvr>C)>YZ zD)Ypq8Fq6nAjf`OX+EC431VUM!`@P(ns%ShZiPc!=6w3b#0hF{nEY9mZy@u-s(1k@ zJF9tVgej)dG=*jjiC?dlX!90TE`xZpW@TyJi_{rvnMadv( zkEe(?w<~IXm}G3%3y}6$Eft4)UIm zduyx<1HT0_qUML4ij1iFVUqD}`tqJ0d*?IO?J85CN7VeV4Ig8SgAV-lJ>|}G9Dk+PKlcFqAe)J-LPL&=v;{x-4Lg$A~M?ecVL~UMu_?3Ya zD*`O;%HKbH z+a&sBq}@WtNa-H@V&r_N$T@fQlTClqnMubon0G)WuRbE@x-CYA%HL#VETofM78F3( ztJA2tZkv#yPVbFY#)HV9Ns`OIwr12<7dL;N+Gb?X6goY~2)bao0{2Jg-Ur`C#x*4V z=E-G5?!oXLG8jj54%@QqqAXVj6(Vf)Fl7mwW453BQ}yxU4EMS$T@qOzk#o#mLq-Z2 zFIyP_6#{iy{9MMjtRAoB$)I`ko%eo;+JoT$GL}*wZ&(>^lx3uw+P^dkjK)_jb=X%?Eh!@;qm zb^V=FpvCI?ubm2vZ>Zl$+;C<>y?xZF8U0+(Gne+=W_E9=>z`vdH`dqnJ=D2DGr^qU z%yg^kuU>9uzOggHaIG)jwnTFU;egX86x6;IDbEuK%{i zm~v&lm(w<^sj{K-GF`*{!@O(QuvD?xYd8cw-x{WRcI$DF%J1XP9O_}8iWARz^WUU> zjhUn7oUI({`rcbe+EiWtx>3ME$LnvdKf7s48*|Yd_Vqtf*WWV|I&=Qcvbu}=~EbV%$YCiY=s?+e7H8{9c*ur(Y)q}b{?tgZ>&}9 z`ufhx>iQ3vCqeaH*VK90E^|*TGpXbLJyCZgiPq1WRCWEcV@7MP(S!zXe(2OAH4WO+ z#7#dTFa21P{#Khl6_S22;t zljU`N+c*AJ&v@Af^~}k1yjhoTyc?^z=v7((EBD6r@TAt)AFogHBxnZXhws1eZe8E9 z>m8i|5gXK?)T$|6l_%eIIUakru7BEm;^VYQ%^S_U*}DGYBR0^2KrJb4`$|1a+rI#-7-Ux!V;4$fU)sgHd-zBNOOB`p@gf5JQql73TtjVV#%yIXhH^{sDqOIy?C zm9(BZXm3WkeJW?ZTe8cWi>k9L>iXszZK@j9*T=s*w!xigTJx^vhmL-Z`>pT7rKVN$ z=Y5{>uI?4@T77*NPwpaTJUNur^$ocWSpGr%Z<(2!Y?#*I9EeS;>#wVXYOb7~iW+L- z_~A`;r~k07e?p}vTP?t|^ISb^7OEZo#bM3Ct!o(6P)o~p;IK6M(f+#r_sspNvU}2g zcv!Pvd+VHIwYSvuzv)cXo#WK?ZJOuZYr4~w@6$%gm-g57UF*I}`g%+YRo6G8QE9Xz z(0Z;t*Kn6=B5^14ln>uZEnQ;bbD*CY3>iCslMIzW<$N3a?;^lb)SJ} zq19)?XGvYYo@?o}mGA`UYJB+qn8S&!3hA1RI_!*9-CXPEQ`h%_ZIN7=33ClUeBU`- z*Z;Du@jIs2=dADfmFDeTI=t;a>l1%o+V;&usl;a+;#-Hel~6ms_;p?1Yqeh4mETXH zEVJ@;hrAB{@Dx)QvAVvumx|YWAL(kpK>SwwZl~-8@lOzcb50HqLs>E9QgdDF`le4s zVxT9o{nxQ{(mp-j{ja(Ab$yGB>`^>JwEEQbb+69qce>o%kW`#fR^A{#wuC8zx@YTIF5wYiH~rs1Ny6z2g_5+W0ZD6hJ{+j+k#_YL*TyWgcdD{k)L3r&uXHo9E3K3Dd=FrJ*I`gv<^_?TbE zZTaaB_3g8JR?X_q_65AP0x8ngn9IqdIpsw%ME7WE{;oWiWt7`F8 ze^0%WZ1_1X_oJB!rk!w~g+*2~$`;5)HD(|r0L^NzXNms8i5$$VgXoa^gHKc{oxl5~P9btz;CuLJay#O`$9eME z5z5t$=T3Ekybfdi#1|QF_l23o$19sxt=!nkJZBD@k?8e!e~$AR89v($+0Jo3V;0}8 zv2(?k_*$XB)yQt>=yE3;A#+^p?_i2a=3cxncbt(sACi?j&d6h4%|M-DIfCX)~N|GVFyA ztkvnN)yE(@iDQL%F43{xb19~By2Q;%x$MLHIbC9M`bS7Mr%OyuZ$e1wHX!9%zNOy< zcM_K|vXEDe9d;qPs*-Fz<7T5Q%uECCHu;RnMy-X-<})T6%}#I;Ro7;~LGadVBhdWnl4EEMOPqheo(#UyDq)#Xe3f|2(5th6r}X=^1d zF@r}fPq~)XHOsqJc5042IxdUdu9iR&n}Sl88L6AIQkNO2e=e!+lUgR(_K`lLyaS|g zC4=hCTgjk&0*eMp=AZUC#g0Rs5+~xCkDsS2XOMixthg}es$Z$K{!9*JZ=*H3E85t( z51loz>DNY^(fg6C-fc#2ZQzt#v8tI>8*Mi;lJc6$k(d{fWB1x+i0*VRokZUk6yIsY z>!>VyCv+O|NqE@NrBIx^UIc;bU4i$*_;yg>dLvL9}u6yPz3h4 z0uRDCmRrWJfF2|8@~prfBk;=-7|&q1%Bx}yvs<}h0|Gb4V$}$`lWXA%+iZmC04}TD zW+O~%Se*FoLSaliy`j0Q<#LXQS#BwCBSTx)FK;zZmlJ!ui#|p>vAD|I^-Ep#{6DeZIBfXRAb2`u$i;Mbq|7e(}C|Jp*xR~2?j&xAw%3s$|AKy|eeLSjuIBCzF6}S>l;ZD}j<%nYT@f`{N+-%b#jjZr zb;dC7wTMzRgXbuAuv)i7`E7)0^@v~3dZt9FIgC%uqLy6oMk(LnGR*4gYSx0MA%3e^ z{yjJ5b8EYsm#u2`7&=drNYiX8X=1p_ZkB%e?;mG$GId(3%SC>Ai8?BC(rndP;kHQy zEvn1HIep2vw@|EWjUy$rt7a-5OlRrrtXUyuHA%cqER{p`D#dLd150IR&8oOF_#dV7 zh{9b!%Wk3=*DSWuJpUd+MkXQsywlij{sVJDY8Hp-R=>%?x5{IiLmGoRGx9qc)C{KIYIfK`W>A%0uFLEVc zaLFG}_aJWp-(YV6Un;x)t~9&;t}M9fZy*OL`fL2kS+l4K*F&fIYZ2Ae2_B*-9m>nK zP7!NL*zT(%+=CaZywes(dZ#Up@=sg*7BADdb3GaTVXqJLo3ZePfw^n_OuOoDxSCCB z7Y3R}(_0sqZ8(Anyr&WxRTp>&ykyx&$D?HLT$kbm78st+0z(!R&NjdC3#*bPm$OuG z+K96A1N5?ZW@J%xlsV+F$MBSC)uGOO6bdr>H)J70 zKZ-nVk7)zkcxqh94X>A!ZZ~LyEwFx9)uPv0v5W#bpSIQ;~RM)xYKr7YAD9Jc!F8R zd18=Ly3Keb3Y8OS6P^S@A^GA&dee~R z3mh`RCV}@{D!;~Quw%5EpsaQxRT+{mP9%4#`h0;}6Wb&((*%9(8bRGT@l66tO{`yT z#V#`>U$RJThUClW0lmYJngq6*pf5wQcN&r}LnKWg4lK9b1*(yXK(R!6!jSxgBAMZd z?Ec0=Uo%{Ojw02!`VkFJJ}>vTJM=JI2KN3B>WDAvFq^@qlas#U3!RegbjK z!3PT9fAVMV8vkoLd-X(GXcGFevRr;0>pQv2a5V{Zo1kA}#jZ0XUxvPeA2p;VfyYeH zPoUT*49QP$5VX&bngrf6K|g_F`whuYpl{h}cuFi_Mme%oq}VwocHY&1E;slB;1xIc zI^az=IETK^LOhRG3!u#nN}%~x&Q_nkavw0UR|!09f{jlC%(riL6>yfZNsJE~#`#&s zChu_)<3lEP-eZ6l+~CUqSE659eeAwxVjBhSqPHJdb*$JybU7$N6=1v@oDFDlgKdCy zZcyK`_qaiQ&MwB2Oq=Q5RCY!xyh6ouI3>l;g8S%;= zPC8gv#W_RQTWKEhEfGo0pCnt|?}MBv^wPV-tgNzl9|=VWoaeSyd9Wtwx#IoapZ z$$u0~HU&F31t3ETlN`F_-*4BGvws+A}yM?F+=v# zbcXhC(B2V&8ukX$1H++?J40FTXi|vFq^G-nv6{L92*bH)X_ly1)@IS#H!v81! zclbf)GAfGy7`_I79{zm%r}1;~t@!KkH{t&b|1kb({15R5@q;Ij9zO;@1z(T94u2c| zoA~Yco%jh8(r$gVwxm~^r(BEK(w!RNYw!M4y1T8_qZer?(ks`PWGh#9u4-Ma^GRCL z%QmEgZPTRmGU-UK z>S%`2+}--+j;@uhYtk#aI##E1a)CN2UBA+ZO>>`60ZK@VVl+Ar((=|NMh;7Nu50Z| z%Le)B+~)k8%nVBE?knfj&{@zM++R&^6Iho8>lA zSFK#WQpIUu>opqQ8?qNMpLs2hVXhJZjbX1cbAan`xp!YrTeg)-9vTgBLf#4a~G#RNMYW8FGTp~TsCAv)46`w$F!dDSi+a`Le!q64|OTv?F_~(Q# zBrG}S&}Y1u@b?IRn~SCP@1F_3N?7fn=&z>Sc2ja*Ep^+Mk|0*U2fvuk*f*Z zSGt$vyboj5ZPb}W8VXdroWis59=G4P8AM z!1sc04&WMtQd%#)hL%(&4{rh2aHxlCU?_-d+$V@@SckoIe146eu>8iyH4dSLk)AyB z{U6}hcX_b<`dB_e5^W%HG5fCkuFTmpjk=#y?d*<2`=HF(DIC`;{0Q;WCpu2%Y-jg- zq&-BuaK#Hhh?kr<;XA~&9|Ye|p}h{DaPbL$nfNN?X2@qh_zT1fSG@4&iLVB~n)sK% z`Q+azT=Bvm!7Cp|1okAze-ZgS0Bt*b!o?^2F5-2+K8l=s!1?6gDO~ZwH{&H|qvSxp z6~3FHG4QZcxcG#(5kC#N&y$Zv5L$>Au6W@~@scwizFO$7!*?|_K81D)7oYIi#Os+l zPCkv`^~4KTyzoo#k~2;D)xh^L_R)bhN%?_`Pk0US6Or3bK2yON>DVb;@xrU{l9Ph( zG3xz(_$r_!;1e!B;d(KMk0G2rHKeZ@%l=5*BYmaLPT}Gcu8|(`9e}SEJsQq*cK-s} zTkr`NpYS(`e;E1u$nPNd4~ZA9c;Wl-lJgXN??InRe$PUC0zTp56aJ{>yC1%{px46p zAhhl92^XL6dx%#%^XNIwZk?gVnAJ|vi}zPmMip zv(KAwUif<^a-GJU#eD#NBE|h;ubXhz?(eA*PJAW!G2#tQKEe+WUr)U*8qal4nGwgG z!g0OApU10QoXNiDIC@MU=j?tO+M~!3E)O3nh7y71B@9AFOy+JBxojv8f&Sgxx`XyEkmefyd;7p22x{)rIvbWN-ee2T1)(! zlv>_8myX11_5b~?{p@}AdD#Qz)6b{3cYV%2zx6!pS zk4t)PLQe13BIM@4YeX)1-$d7&+%)7W@qZY(8Sv<6?h`G2qH9d93b{9VzFr_+m%|&0 zoM_339)bII!g~ZgqoGT27cFp5#ld%N~PZ^u1&?nH0lk{-I|UA*R~9EbPKNW4TpZ1H-Ycs&BWJ`yj{t8rKT<|W+M zLet&fCtC3keJ7W~VKl&fPqq+FE4&uug71mwCJW~*dYYl>j1SWDBna+HMy&iQ+f7X^hhp+=OL%^tdw#o z1@E1bO!+2ypu~R;ULEi4dXEZVKkh;KCi*y+^t^%GVVVq~`_XR8C!w+>7v@M=mJ0MDH;vB(GSljuuL z-+127%b^*)3iXLD=Tf-u75m}VBUb{Cp`%bv^fBDkNE|^qp?QdJ;%<$`UeOFI?R}GY zoFN{^p4r` zdX~vuhunUi+x5uJfHx62(MpHt@wls;>>|7=(Bp6yEqBpr-1UC!oZ#)Mh8}}^@V zN*g}Uq7QLN&kKgnAitY*oh6;xAowZdMJpYmpTu418X!Dv=D!8^Af2Kg$6e`~`Y~_U zHt5Z`2k8{OiA&*aFkFYc?$aX5hX>)UMm~6+MQfZ{@{5o=hTJ;jG$Hv89pFXx-Rq#e27nBF0%S`S)?XQd6Y~)h#-qHTLrcd+$ z?RM#V3pw3~+mSmB@8`$`_eJy@Cie<*hlp=K@qZQGA>>3WexeWJuKevrkCtLEi6zW$ z(X8Ka@!pF2Gtf`r9>iPplU$0=7Q>CmE56SmzX=|@u7~j#{gBCNZ$J6#LSFHH1^LzR zRv;gwL-buHx5Tj7;(HqT7I;mO_==uwaxCH5dysVYP~OafSBsozrCYT2KUMe>klO)& zHF8tnRU;=_a-zrKUd{Wj?@~M&;hbe3;N9rm zO*rq;&vAx*fJIA>=+j)1JBFO%`5JP^;k}7m5O2{(O^&Hdd&d!vM#@VqvSJ=npJ?e5 zeGqr0;}Cj|K);B4kS@_om~!o;2Z{F&py@vf+exB#a49}dAh#bqms20x3hy!GL@ON8 zn@sK@fyhgXT5 zXvvALz+L&c0X<`&%Wx0!RdkBW-EZ~9Nrtq ziN^Gbew|BlhmadXJnAXWUx9ZJInfw*M)?8U6_3N{ISlg!+=FG^SVdqg>MW5OP(-<3Zx}2)y;kiN^Gb?y-1{LC*&0 zwUKyu`6TjJn(*k`H z?xHchq8o8nec{2$-Y!j+tH(X4KZu^jrFcw0ZVUeILeCU8U`j0?z})cQm|m2WGDe4f4y z(ey_-{DR@<3@NszTtAirG}Rqs@^0$-{;#X{A0tL z4K;=#{%d5g@QC3u!w$o@ag_W2Hk@UsGDQ5-+!Nt(Lyg0TCOKOdUIvrI+DYYeY49BrsJlH`XO zYE7c(v-bR*F+5@TFNSXz(tdLCI$BHq{>Jd2;Q_-R8~)JnSwq@S&fotu{3Ao!NsdqZ z$lBJzcKtP!vlu<4S#63*YFv`?;8G*;kOMRH{5La z>xRE(Nc+QutChD3|4W8i#VfkSP~&BybIYCS#@8}pxqrm)O2aXRY6Hl9s9~|;fR#`E zhT79pa+?1s49YXr)kXiAp~i7VKVztM*rNZyP|L?fQ$Kh3km0?CTC^_rI}H~Ze%?^4 z+~uyiw2=C?L(K~n9h@gH-sr0hFE$L$6HxtF^7;S@|BXMPHVP2FZm2q~=>KJ?od!hj zG2CtVhlag|{)z%Gr8+3T)He*ZCxYm1!%o9CL+#1HFEz*TCc~MA+Qflhih8BP35Hi0 zUSW8tq4tm9ml|SNWO&BDC&BmSr$+yyq3U|__p;&tGW>Hxjp@pLx8WZe_8NZEP<1iM zeZ%nUhU*O17%nwzH@wYop5aWxPZ_G-B)wA&H6KLuHHMcOs?H<+1%|^6DFz%La5xU6 znpU0$*_zbt$In*JZa;qNS8ki(>p<#P9@~zVQ?F9p%?%k42f9z_TLA&hJt==297(vF z4L2EXG~8hLkl}j69z*4i{40Ni-G-fp%M3dVml(Dh-fq}p*lgHjINNZRVS{0<;S594 z=)xzB4r>f27*-pOGfW$fF|0DIG^{WzH!L+w83Hbx?I3#KWhBfjDN)VhmC*8 z_y>)D!1()(zt8y38Gn!QcN>4F@pl-1yYaUfe~a-SH~wbhuLE^|*MPdOOF*Tk6;wKJ z2bIni<2M_>$@sI4Kg;+H#;-O04C7BT{#4`F7=MECtBpU-_-W&hF@BZtD~(@a{Bq-$ z8Xs`aubv;JW0v7GLp>Mb2lrq1S@c=_36B{bF+5U zSY@d1Mmcq!;0zJflVq2^8_d2B`<-T2eCbPeGI}Rezmt3qcGVGsvqesteLwtRDW6|T zT_bJwec0)%ck=WBd(CE7eXhssOR%e6EuGu2?=btD*#Fe*2VzxaLQYcA$Kvuhrv+Ru{L9L$%^uKAa0 zcZsjLmyE4ByXIYEyc1*Yc1y^PumCO&rDIyv7;8THi#_F)nGTM@g}d!2k;#P9tPyT4-9*ZHjo-|Cjm!RnLF{y;?kp@@8Kgm3j? zC$GM1oSYE`_O~PU>~ml2fRr0Kk7MDuh0!^x6K$fqf4oZ}0e@O>{$?WaJ~ETz<7FaR zR}B)o$j&2!>00dX$AhMoT2`}s)feZp$Y8!UWuIc&GpEYj81AZ(=aktWW8uPuGaF~> zgqgM#-TsaQZXwIO_B)x2&2pF=zjJ3gXRSZ5g${mvgJ9>*3>GU4CX(4_E=EakhDxlG zoRvwrk;wCR^9{{)nKjVqYwziR2KZf+1;0@+iMyP7Vu=Hv^xPRsp;cK(v3IM?7tvQ{r=onFBuEO}CS zOIik#hz~5YC@Rl?bTy2fI21mYEFsV;#+-F^;WEWMeq<}T9JfK1+2rZh;($D+Uk2o{ zgN2Ma!3B#fbJ+Q7ck&b#TAi4^o8}-3xbn1RuPw`SF1&P1M>9=iMOSe4lK)=Ko10S_ zo7BgzH4CR``2Mb)Y?kY;Gs`EYnq^wR`Q$X?Os=U3ZBs&<Q8dUf|Qa`|4IeF5QnsmmT^BgFSfyzDy zDkw-MuGEL|mpun+_eYrPKz&L$1U2$uFeD~p{8&gqCd2kI-MJWu^{tJK)ZHu*YY z&VhQ5x~$B=hkT6u=jn($2kL|9h&u;LI!+N{5Rb!5CZV|?lNXP;bD&O8pZ*o<>OV_6 zf8KF)JnLKYbi|zlRZTuHN5V^A?R$*;7t&Gi9H=$CSn40>RHH511{k2kn+ROyTA81x*d=g=X;Jd9Xlm8aMRIqCsdv%wheY5^PFkXIG9B!gs93oB zQrBGP2c-XPS28yPe4KWt{59O*m!mv(x$%fSe+SUh$UkLl4!I6rZc+bJ?rZ}8+@kvat#(qux{tG$e$kqSuQV)by2PE%bnH}p z|FX$&?evnP(A|lEZf#08Zgl6?B%k)rVQ4W;)30@B9z@RO*^kd@&NXv3&kx`|>9p7P zm%DQya?jk^e#)J>)1L~%CO^JM2*cdmec{z%c&LrMQ1 za)w0*aa`l1rZno@g!kXR15V~VsQ2H#O=mdu-;qXBcn-nrQ|ZRj7S?qZR%IC0^)X>h zL34RlSk-Vm$MM5XyRiDR&O8_$3G1ar%A5NB?d~)MrR$Z}!s&YVWPSe@Cl#ctAI>Jn z@xyxSq|)_ZR#-<*X3}+sg*77#Yeh_0FQU0NE3D_>R7b+v?ZUb=E3Bt1tfHrHKAZZ@ zi%83Hcg_aqsw9HD=4FLAwBvG4ZfQQ7` zPC2Ah*0ywhx-N3wR^7mXRk(3RTW!lF#PDr*mQdZm6OHcuDY>Ze{)VEbYj|r8aGp`8 z3%PFK;V(@y%<9?UobDp))norgEg{QLm$hw{+79 zoj|mqzV`IRU#lB z*A2X^lc!4WYdG65_2@P3%%3|?T+`7*xX(CUYtX|vKqq=`*wQ$Hb7r1zouXK})amq> zIW8{VHMOVzx~FbnU5;z5JK3rDuNS;k;&DEWS9|*To?-u%7?%9qMEW;w=;{AHenyAk z)D28sg6>q&W9u3!S{5{3LCBY%xT0f0;{%O}&F{Zmb)tlLjc$#GKf;AjdZ=z78R1W9 z{2HmL8+bkK%PI};9M_pF$wtNcj61jJ0(`yFG%rjKX^zOh!Ffs2u{FXw64CLp(@~6$ z%}stNKmKRQua3y?i^%`L$&W_>Wj(@HjINa1= z(mDw$iR9E!QobK?dOvk0{dC>HrA_|b*}~aC{s~U^yVI(4w#--0)IXiFvtSldvGza4 z|FvhqguN8Y!_W2yJq_jtzWYHZSfI}J>SQ4WEbDP zl1tu1CqSNNw!@j%&er2AbfUm?dk9deNdckS=}zsxXVgx2YDXaxc?hQKAvoxQ+B0ZS zx3w+1+nwlA>xZYXjzq(&b>Yp0Wyz>@;Vp-eYIDB5MD3sQ9BMeuOKRd@p@cPebgjHc z>1y=DQ5bHrSa2pmqYI}m6HcQGM}u&rD>FKfXuM6GYc8<=5ffO`%2nM8YqlSj!r93c z=HYA?RuL>q(`*;k6);k5b5?dQy>sbeH-d(W`v^_5&b;I$RP+laZ6^EpOkZi|1S!~g zey|FXbwZh7=eb~~W`dpPf}N*eGiMn%X1j|@c=pgd-Ofkgc}Z3%7K}y1N(H^Z4|)Q@ zx~Yso?k;daAI${4zy-}RBT`&X&l4x}EV!LQ_xmo8pT-2z=qBp9$-T5mX>URHU0K+!+e?xjWr=YaRE0OY4*&bBp<#C}An8ZDaL?vl@BATvy zT)H%)-qLlCOV?0jcq23ApO?7j)uEnuR7p#+VL^V7Y=^hFqkUDziyqbWiC;rDu?2PN zH4d|Ly$kjuur1j2F4)HWVAm_y_u!9w%9M=aRG4pkoi{e6$GCEZQOWyCFH&n>t#xm7 zm!06k7K&ctLA_ZYQWG9?arTigLzNgi5~k`c>~?q0@;5+$Eb zT*7BYM30CwE+jZU=JZtAY(KgIx_h#Vr1~4rNaKaUF`49oJE!r8g01*jShkc20SvKyv3&)HUoB>oVL|D_g{qk9k(7#s3$;(*Do^h=#U6ARiq9&A)p+-c z#Z3%6_@2tgs3Xv?SrRiB;{_ah;*}g#3_K12xvF#&rvuDORFqs+`qQtL|Lm*M9(ztn zQL$H4sv|*e95uB(sRA~`5Lp}?Tv8GoTrwnca7k(A;F6)ygGQo{z%A!P>c}X=nGG;j4pM{P{xlGJAzgnJ20-{BwH;(d? zKzXZG3`wme{qKK5N>DhR&lxFMhoIzq?6!D0wOG30!F4x3OLas!RL9Aqf|b`Q7U%q$!B!7$ z#YG%o^84<8ulxT@*|M^C@M#e{tmqYeQKy28;xv{kh}!4Mnm86EIqjnF|Jp|Bj>REs{(pFDh6Mf%@XW%f?=HH%FYM)4K=F~dC->B zcbOw&)G)f*d2AL``#L57uDO)C8yUe{B`66pDkFGnkWmuUY;*2&E3m@12Cixm?R2ar zff`2~2*C&6H*$W?Ip3mHr9bzr6Zst1aG_FbT($oYRxO8J=UX2F9`mi*@MxcJeGAa} zB*?xCyysifeD(bm!MCVBUeATV5}?bsZUVOY))#=6ed|f!J>ObEq+P2n^CTkp9T$A<%ISK)0z|QnWpzQFmZg|WjFtc4Ev=_=G=+A10gamU-XED;6?J^ z+pHrhB1c99Qqj7sj>TBotpOJ*(W{rzRWqIEE9jfcxavJ{y`i~hWDN3Fc}%QsZqrWl z!FdkB*&I4xKqp5a;h((W<*4yEadT07*W5cZJ_gybpFoKnFT>H8HitC@ae$I7@>wT^Z$KsdkTCVH48o1_jE#+FpbuZV0T#s>mn``R0>{qMw z>TFt+=7?$To!^pVqkoP_;FJZ9Sxzs~aSWU=pz}b|w%j4DRTHZwdO_D#IdO%IYB!pL zwSzQkzMA|gucu>Iwdv2{*J1x2_P@a{{@-H%Ss;&x(`MJuly{}C=kKwXnf->O=Z(TX z3%|RtUxocv>>n$lu7+Lue;4~qv;Pdc?qw_df5(0s{JXGUl;VD2@5bJXUFpNw(|pi% z@b8C@dJiXWKRouj^?D+_eee{<#t08lCto28M)}0vsLt#+6k$gUaO^;ESb={qLG9%0 zbU?xMX$XWupPCj}r^g&v;EpNCJndr(9b4d@ErlJ#P4_BpZ+kTwf|_bG_SOi!8@tA; z1NXz&Cq!u7^korREx0JHc2|^kZK;U78bfO%v>F^yd9^lXN8HtHP@2lQWYijn#!t2M zhv5hAs=%(%jpg}g>frJ-?1fszeY%uA&)+Gb{mfpdqA|Uq-{6wm5#%c2PetxEc!!Y_ zEjiIY;o@CdegL^`@DC%WeQBv#_lcIA=sjH0_g&;F;4eV#8F)`2Ct7l%x0&2y$d$vt z3%MuYQEBfJEjiH-o80||>>IoHOq$l~rR+HjuM2t6m|oExxR>I8Gy0Z6(;ny(EqBoi zxD>xRhKd8aei#)%w~#(UKFbJ&h!%rj+m*?X8OYROI)-`>ys@HF?ob;=VtPzRTD<7@B5S zpJ+_4XjNjRr`zJU4n1q&(TEGk}<~q8m-_dg)7(zl2*4 zZ@TnBV|qnTF*){>-Rt51W%P}Qmqt#sH@wJbT7#KP6hBeWImL^d^&g7`dbH=OFh8ya$mJEjiH- znA{rVUW0!-a_iuABPUvNqB~9QPUMcjzYDp$;I$$rT5_UqH@SJp?HkA1cJ>y(4c=_z zL`zO|1MY98`EHD1uTtpiaTks06-|%A-b3hpm~iT$r{XSJ?xJgO*Zk>D_S~NVO~*u^ zXt|3XgS+zo3G|PJ9*ui&KSYncj<#3;9Os{C|@uYALBDZrKH2Lu|y#2_DmYnE)xGQ}r+z&wi z0QVrhqB*eErS~N1eIEK5`M30nR!z8jsPWd>E@?|@`Ey#(+^orJgw2BXV)b8DP zCGQL2Jq(XMYWqY>PV_o1$#o<59Q<13*1)5etWUJ$L@(o#+#=)-!f!>c10Ee~eWE2N zdI6W@W+8VpO+AA6&4E{soM=q1=oz?c{YEo-W$9qXvv8#NegXF&eWIVoUFkVa`VK+U z?HQ&|^mZ=A=LyLX{-x}_z7^hMlC$`T-ehtckW>1qk=qE5F5EDEqSu?;TIBX4SBqQ^ zJbHcmL}PkIcbQx(az}{Y3etBcyamXK#`KDA#$D;5J+VtI_9one^ogeL%cbuQ{NDjR z3-{puiJrlw^i7c*dLBg2b?_!i&f+7w+T_y6DSexe8wZch?=XF$t4wYLa(j^5f?Op$ z`pf%7E8e0@OzsSOp&m~2eO5W0pd4o}RMD7T(Z_ICdZGntd*Cr_5T;M`4wKu8oYGT{ zoQ4+|X$aFNTH}%m_aWqXhP~@4?;e52{ttbkF~Od;E`62g*?{{R+=KLq?pC~!zYhNo zLU-aW8q+I!375iIAUWc52YT*+cbnuaeWII8ZWeM%-!kN8!(+fDOrPjlle-Q%rEd*# z8kk{>CQP5`i6%D&xr4;#N#Zva-e}}RV|qnb;I8!apeGGoj(dC-ah0+V|qn1wB_`qC@-FarriJ^ za&@*X&v=Rb>2^tWy$Gcmnd4?Mx*t2(p%Uty?OXrhC? zZ-*MK`m*?%=_Wj7_^*a<8Xh(Ld&9pq{E6X9hT5x0dVXZM$8fjdcMSUsw;KARU0&*U zjMiX+^lUJE$na~1_ZhA>>@xh4;TH{C4OI`8zFQ50`*)MkjfU45PBHwbp{5MVf0bdS z;c&yDhVR(@9WXp)_^*cQ7m%K#hJS7NmxeDIzF_z#hQZ#$sx!(z^-71|GW>1B2Mq5w zTxl5WDSErnErvH5-e7pW;dH}~8U}lcri~tBc#+|ShSc9&yxz0tSnJaj-(XMCH;q1O z_}7MiY51Zc^)Tn}PYgA6Sb9|7a_KkxeZ${1{HEa}hF>-Oiea~5r{PjV&54%Y+YIL! z&NTd#;WWdkhF2MCdbj+KG^BpxXzf`gzUG4qsn0k(ZTK&SKQnyY@KwWe?M3<>lj}2l z%;Rzb3zw>H@+AhB~WN^jyPQLw)1Lzt(WFp+DckOI>aB#fDl! zz%Lb)Um`^Rf`UuO z1CAmex(z!Gml<{#E-`F1q@LmYwHP)VHW|(~oMqTxSZkju-pHTWFCw-EW zKFLWDTU&^&8RAZ_Q1M|+cS`;~YVx8bC%S=$PWtqo38#UVfYhhm9+Fj{;#mn^2&#TS ze}j9!T>OoH27Th62E{)PO8zK_Na{6E?ngkmA2$9W;~zBs0pssC{yyVBXZ$_J-);Pz z#@}K5?Z)3`{4K_R-1wV~zsdL;jlaS84;g>G@q3KF&iHGL-);O(<1aIQhw+yfzt#A+ z8^6W)&Bkvs{%qsVGJb>cYmGm{_|uF()%Z2WuK;!50C)e-g39+}hDQt!816CLZn)X- zA;UF>9fmE2vka#hRvT6s@(g*m@NL!}kus_u$gcEmHv4Yu^lLf(VeGF4@MYj)Lx{=w|@;d!c$N~h{o6V1K_`+V7n zyv8Q!yY@!#lFT0Gd0#QR#s=4$%u(!pf&5jjPu=;|7}puna{(`28kt{}otI!=ns$uY z_hTnHj<0scg%FaTiu@$vCpVd=xdJmAFKa3J8k_iZl90X{|r}1XK2fXcKe3<4*vdOS(`)# zgT52<2fwrSVzll33i~ZE;yzeV{y1{`lFT?`;e8*2m6(lPE0+gTGfa|M5y8xaxQz$> zm0o^4{0-BBoil?po6pQ%X)ywU?_d^??ep@%Hc@0C++WM-COQPOPI4lTQ2oj^?Y8Rk z9FpPm?eo$bo&BPD742R5Vc*C~C2mglc`0<$VrDWwCQnmzlG6v>hclRely~2>I4h6o zHu&sfMoo9VTN6`Z>hER0&-v}$`Ke{PmYZs0{-V!7c$?3;F=gHywfGq^nSBO>r!O5& z+sjiEtWsIJazz1udGl!s$S^g=zlkiY%TpgZ`g3jyO9XT63i-Clh=rW=Kt$KR7Lsvu z{0cb~n9Wlla`~lA0im3URcH=MkU}}aWT$)Dx*`QqA))*kL)sP6?WO3K5Rt7GgPUx- zHyV6gyE!@!ndhyrr@?nCU$`-!Qxtz&B$rBlvJ zF~iXZ*bujR11@T9nI9F8Sv(>a|dD zQyq$$TaQ5IT>CZ3zszR8iscjh)As8Lh;!}NIEaow1@Rbszs5KnL9|F3I_7t?3Vrd7 zOkI@X-28~sfoPB9WrDr1;`VEljvtYkL4Ite&Q;=kx-53KKu6qujq1NTisWb2fX+6$ zP0oZmV)kpCoATv8QEnbGkf$SVzs3)uBW}M&>8PP%6~yBJ`9bnz^5PMvzJ1HN_9xW5Xg#WDO~)a0SUp^? ztTU!VpQM8OHCCcyGLrA+0O3 zbl^SDSUlWB<3f8Ja{j#fB)kT6L`{LT#O`s}iH^;9Zn1crB`skhOlc%f3+{1PO2Mi2 z^Xc=5N8BEV%KxoC(Upxcv!hP*96xmBpin zc;uEr(ye}j&A3T%3k8h&tyKg!amkRa?vh_U=k_XNJAb2n&>q-X*;w0u#_cax+dtm+ z9%KKmjTIe zPV4`G;gz`L4V7-&GiundRtR=R$k{V$GF;m;YPb}-4JmT&h*w%vI^uc>vMGg&mZw}T zVh@j0(kqeT{LLgZGL{B62tx<*pr~pMgSv%jSAfA-=y~rxt~bHD-u5MSQCZgBwyJ&Nl#gHciBC?Nzw+*`#q9z3%L}|o4ehJjm#yTukV#F; z+PZ1ZEnhWhX;a6_74389PwX^SL~4G+XEFlUPOO=@YRQ)-&A*p!k>!(SFJ08t)^+cs z#xAyLxo2h9msU+`TzU5jsu8ruC%Qsf+)1`fY~vd(++G@h#3(OlM^2;EHJ80{LCX3U!FJ&9TDpH9+SQLP%bHR^Td)qJ@>-yZk%h=|v4+b7^@u=i_)(AI}`4dW!0hN=LA= z%N|x1KxJ05X_=W{F56lw^r+5v30In{noISJ0`bzDkhNY$^{YZg%_M!-Yj9WHNB*RD zB=%deYcr`!u=ir8YT(>e-xEI#U$;wfkP*UiM&WJdlG$%4d+fRs+=9A!1$M>jeAkA| zHhI9?!X^JaS$h@F9VN`k^Z9+EF}s{6XZJ;qOOo1H1{9)&6!#!qqJz0f@9{wJOYJb+ZkRi^UuOIg<|t_#2h*!I@b6%ee|;&1>kWGhzig=Q zv)u16TwplgP#<);*BWXpPV}{gY6poPZ>W3_%@C5qQHDgx(SXBoATp^mNHg1w`I0wo z%$GW_8}k+FnUWlCPLBLi9=b8#GH3P2T4B2}SIH4(>{#;#+@(+XA?yK}+Lc-YlK-hz zQ2tfQGBlNH0+pWGpxkGfdxP<7jjw!>ziGzTGa-4N8^>2V6b|6x8OT*bOFyy>kAcDX z;cy&+@xzareGBfNmYv9}jMG@5?48)ZWp=&)FPL3rz>WCPSe)MTD`h8PdM9~z9A9PU zZ(+xaGk+PeKN+#_jo48U%FAEixA4f2E79$gFzdn3j7;Tzi~Y)1w4>II^W=yX7zij( z9%pL_zZljUJ--p5OyBP~_K&lw<#~M|3krqR=z^~H=`7e!otp!(ebX_5k)we~Q*aj1 zxrMX(sB^`+_rFv>^(UuVx3=r2&TL0%V+!qE@#hLX#Ix(A{bx?!<3grmDBmL7gc8xE z@>k}3`l*i~C;$4+mh;=PzstC)k%_V z@^!@YQ-9R|MtXmx4@I`g(-GHC{XulZ^;1iS>bgNZo+Ce0AH?LvBd(wNKFaMM;o%A@ zC^Co9Vb6G;j<|m689d|l_&sVmoFf0PkdA`=)c2#~^Y|G{1t`bl>4@v6{(HTknETE{ zM_fO(bW}xjY|{tXY0b*hLHnuy&EoN`{CN19_>c5u7VICEj#bFz>IgF<~4^Kmfo`=^g9vg^<)muWX7LVBe z;Th;4OT43|Ba(=Sj=|5sX|Q-4%h3_d*Ptwn>tmjUjx>QEHyxWYX$fzyEP5Zd;HJm9 znM&IM60G90iAzTLp-Zv~AGNXO@k|(5GN->+J21~HdRl$KmF`>s^&X#5kMcmh7wu7g z>s0MPd3a9A2+mA+gA-V42hyQb4L*;YdjIWL9KSr|OXETMl-~<`sCCxI3#TeLci_W^ zYWv^H;y;VzYpV&ll0pKPA2W`$K8z-GcP95zY^fov!5!j2~%j zrJtGqg?-V5YDTV8)!l**+8_N#+GK_S^$s6JuDBP+I%S7z z-~Pl@WODYE9zK&S?11mSx+R&JApU+kUgCl;;`2cSB5uLN4=+(6y}v8hwq;A{QVciz zp`TSwJ8+_E=UNx86!a3MN?~f~ZvL%PczBuS|7Udy57W-HKY(kU!sSYk>l7}KEvzdj z9scJMzLHm8x>A0Kl-)-k zlaTt}hhLbtQ}mZ{%Ip+9GF3ck8=MEYDu0{55nh>cn8Zcq=8a301@RrW&@VrxBb#!Y zMGs@&-ELP>JD%Gtdf38nGNGsYk#d_w4_nAbLAxI@U(9jcX3@^Sm`j-8waUdLdHV%$~p(X7<<}8EoT=U}Dsbe7GxvZG62sdXC&7jQ_p+&kMXKF@5NT zBxAO_^&&m%<%!~tu>d5rb3l2MLbKs%|W=dI&T z;6JDPz6F*#UC`k~Od{zBwT@oK_CbngdHgI_MuSR}Xn~{hihhv-cfnJc7WQZ8J=@mVli$}%v z*{iNyJ~Y#3FB;?e?5nXz-{t7*z<)jZ#=_%e?h}pa6|HASag_)=MXm6OHM` z-5bUO!!I?&aGW7=-+Ci|l2f~%`{3ku82-MYYC7`&u;GJ-_ZX^8DfeZD9fqGXywz}y z;Z24!4L@Z#&2XyWRfbm>sxVVHTJkJZ+d-&ygHZ2-5O8SkO-fl&$UP08F0|Ab!zx4N ztN42Uh0-IG9-#sd0uGx%{J6e&zN%S$?dn^vF*)gz`#6(NgXnf+45Y!0F%X6uW1vao z!k1o!FFA!TIR&i82MAH}ioeoX23~|E=&!Gn9YuQgSD0O8#UGem@4xzM)c>w`zuD|6 zC+r@;@!M*6apq0_1H0xE2KN6Gv2Tvp|7XPhD-pZ=1%9*p=yfQHUtVXg+kk5oT*r4s zytmL5-kkH$eIp0nwyjv)?r&OHxHrDgS0{Hqb)-+-+TQ2aD<3TKh$-~rI{r=Ek9D0| z6-{)&EM4<~KD)6U?}ZXI8;u7EQ zuIJZF`_GY;<1n&K3vbI=-2I)4DWMKK%T4LeGnai3gR(%zk8exWuc79sB`tZ$LYXp50^7RKT%x2yL6PKGWoHO z4nd29vN%geT)%q*->eDfnW2wdw#nBK)9>EtfB(FW{C?Fu9dZ5cA4Er7zq@p_kd`nW z6y{XCW%A+?*YAFS2YUoM_UR^Ks?agcx8~`H>vw;JoA53C{Dco&jwz(0V88p9_-?4* zeeuW~4F%E?*YEx!I%J+d4;^v+?&qmv(0=zpbodeE|6Kjd2S`gba{EY&GI81^vHi@e z;?A!>jSgNH@0jU$2p!yN8N1tIJYwgEpFziW@o+pRPs1CFo27+5q{99G+bF-%$URO) zM*cPu552d%in;NKogcm*9ZJh{rUPr9p)B-UZ|0J_M&$rHsGocL&=EBS(&DNHO3lKB z4Ry_R8R>BpzKX{f>PGT+s9>HhzB3w;TpiWuP{Pxu;|MyUaZqTMr!F3a=DJTq2gRRP zgN~?)>IrnLq_ar_UL)UBW^6Cl<%wZ zRFhN`{|+kcG0$o2ScW#F&@+`X9a3i|Owz)IgO6oYT0F{gbXalk)CJ$DxUq~XbkrhQ zVLCcVOKzF0G*ZlZ8*o#*WYcAI|H33I!?6sdMVI`FuPe?xl*z9wk#N5Jz~PaMA0%rB z9=rnNtnLEys8$fW$=$QH-8 zA(L{qS(ysea29{Lyk4!$%bvxr7^H^W%YU?E&!5HL3|AuwCE80UHB>?xNhmM-DYn>X zhf|OebWt}G;1;ehuA^LB=fbkMj&gBzSy-k$o?`Xpb=xts|B^&P+Eot?L%76+(31(_ z5*I=rjGO_aOOEq0zYKracK)QKobd~qEY0_JwtI=o-p5%@VRFD_(@@24raM(3Q9fLo zWMmEejL_)I*WlW~&jpHz4gBQYU9AYH&>mN0@CZLt*HH3wpMrG(3L<}9z}w;u9YW;X zcu@I;sgZd@JD1{`8QK|@Dz3a4j`jk(NE?HV@P;exc|$v4jBIE}8@u{LJ0rrO9mjJ+ zJ0l`PJBqeHv@;?ywBxvLXvg`_4DBc;{?LvbY-s0K#k6xk72VXx68}uo(fv>*?}+t( z`yz(#9ko66j(+)L0bb*N+kDiHG5iE|l&_BhI;h*5N#ZkdXP-QR@ zbWt!8H2P{!BSW5hf&ZTv5XyUhVh4osCC_6(Xjsfri?Z3pUs%t`kPh+t-{6c<$*cb_ zS$Lr$i?JxdYtDMBc9fdV6&WVlg3Ghc^%e;o^{o>0yN_>y;mj8PpW$NgNZ@O1&S+FQ z?#w~{U*(FNllI$?6iFEM1^hb7W6SXH+n`c6Rw{QX$e^E_0-ps%B{OiPNa+I>{l2MS zE&MTe=ctDRS1N__2Cm2++F(($uRvu`b$PWJ2U`!KO8m+t;fXnR0Fb{|hrU5tE3)$L z?prv{hePMJyr_N6;`UB0J(ANLmLyH@VmZ{x71KG$rRzq{>2bqiz6SR_$sEjMWL|!0 zu}aWQN21ie{Dsm-+pLtUf-B8c&(+RFZhE!e4Qn_+sGAB^X4Zv&j10Mq1E<4CXId?k ziRp%=OVanQyqnWwIC+MnV~A@yXWJ3m$?b>t9CD&Dy`uMUNp1&nyWziwzGvW3i1vxb z^orih#dF}sB6q^)`486-iN=KMh}5UE2t5zOT#Fvjau>atOX1x`csuYn9X%`HEkRB+ zCR|6P`_O`W2h7`X5AKWTdi;xCi+dw9Bmbeh=;>Svrv|z0$aNw&72X8oL}PkItNyQa zaqZm(|3Ty~g~xN)CmIv3BT_mJlddY5rML&_61|WYg4>_^yy2yWqYd}qDEHlldR9bh zk3(T}?D7$H@$4K z@KM9xGW-q0^@cr$Up7>0MSAZrTwplgP|X{;*BZ_+yw-5C;dn#c7s;#tNXWf(m@)($ zJr3l4rPAPq6a!;G?wuQRr2E{BISS!9xpI@^{y9168;(1WHTEezgz3f}g*+dQmLAda zAe0`V^az0vk#S?2qm55jeEA0472oxSJs@3LZaoxTEU8v#>EU_LTMs4oS?1mV2Kgzz z@>Bk%8GkA$evR=JZ-oQ6bOv(O(9)x4Sg4|?6H740`nzUthW{sK--7+0WhWu}&R6h^ zk06oyHfd&_`1;m2nqA+6d(5tHf}RgoKP`49dByFJH_ z|H+8V#S!}}5&3_K*gqe!6J)4Ux&!_5BlhfZ+xhCko|4VWTU!;WW`yH=(aOX^`dk+; z?=&r8)n#FKN7u@GOk37SYgi8n)Wwbb#t8=6!U~-AmVU5N-(P0Sx`OMt82o1HB$YSK zXS{oP`-<*xo4)g}{l-?4!^(85L|$DlW{;ywld{6Ta`zyMECxG24_OPs z3VGo@nmlRBG=HGk{fGOOeLS7Mwq`Osf19$&H8s~wotjQhp8WC2*EvazOV3^8`Ww1# z=A^^9uDTlRTvlk`vhx|2uA(r~xUx{6GhH9%k~yDo>3W(O!MHRne(%Tf_yNYHkBYlkg=jn(Wm;N9+;>M+= zL*KI?9-GMzdt~zB5jQT~!Nc_L=x9~t0J9Sv^}aPvN8Gsd7pQ!E3>~-f{me0ibg1>H z@xIU2&1($BwO`pcpdL_VDcj`fh#QxtGtHTyst9D8JRNc4(&wpT&~fQObcC_8FIepQ zr%KYIdW|Z9iu}HDAADST20Bz(nrb>Kt_tf2dS#u7j5`)wm!^Hf29TVVlc!;Z;$}Kx z$EBwcn(A^jRNmyTig@tI6dIRyx>Zlb^D>La5#kYi-vXVH=R@x;_qzFp7FDFpG*Jd#hkX_m^{6QnkGOH^ zhtQ$tvv*=phJ1M-gG$M{$E7L;N#MpEFK$jbd*Gt z1>cvrap}$I=s|v?={Q1KRByn9St5&Gr^=7`XV0$VMSq-!nW8uxmsU}xOZh_e!?^(k zO$B-^zp~u@ap~HDv2H)My8bc6jL{a~+i)MdxRttH+^%7)_V}r~{$v7|M5?i_e}Z?f zc4hN4vg_gc`YFl0icH$cXq39ODeZQ33-)xYLtcIuEB&f0+qYh8F{jG1@5 zqZ}zc+wkgHmNcC8DwM8yrxMlI{WY$wxRLVLz61_i)9`;9iaXMc|A5r{Z`Tr!{Vwe# zjqr1GbpR6KD~Yc-D@svX#H%UE~+gM5_!jVH$+ ztsPj`gm1JgxD6~>({O)7idCCh!P#?iatEgFXd_C6x95E)mTv=T-*{yySg zD2g20M)*e*lR0irK`-ThXZ#`bVug_^`5ga_%^yPtl!6*Zp9)uV4~o^dohp@(<{pd~ z`Xg*H5epl{iHi~m#c4-0UKhD|QOX804=!@?YJlM-KSWU*t98}luBC3!g;ZabSdM5y zn)h&pslLo<*Qk@F`ZA~eE*PGl&{BnAvj;|$>3FKF*#mCb=#_A7_CT4!L1Ml?H$GJ~ zue?UC$`g4`4L!ksOq^L7<&V&~ZR+NBu{GVzZQA&L6?>T{(usuPet;{Cf7-=givTSC zX&3*EFoxf`tnG_lBCS(^zYXmrwRSls7DnYcv2!Eg$<-WR65Bi{pXC*Nls}oa^BF75$~AT`W+DMFOCS`y3PnLoRs zR1vJ7J9oC1m{7I|J9phbuOd}EBE0EkU-w;ZzPr0^(X#eHptF1yeD_qyYwAM9Q>hZQlx%ia0 zrSJ3a=A?`$Qy!3xtei=e3=6{diYpLERSda%h2@2gZAgv$1l&3EZ@qCvcl#Gv8l0Gz z_|KT|5v<)U4%Y6LXs(67%yvj-nQiH4rcD%;P9OFwRIr9lbRr@?QXW}8T$VSJBY&lD zFlmFc8hv#)j!KsBJOqGs0e?9E8#T@e(tPcNOFDCvBCtXc&_ClnF4J{ zfL~;sk!y={y+x(x{l4`OaKyJB1>W?n^6CouOfp2OTt&G+M~X)#yvViFx!$rKc*?iF z1pLIez6topJKds*aITEcR=&Uq&J)OA!fTNq31bZs@i43>xRNwHg}O+iKq|!!%rzth zHbz~NhrpPRk!Ff~!CQ)Wj6hhwS%tnBnL)q&gVvoQwVXk|@4;tykjh6;1sLRGUhuoC zEc!ZECbRTu3%-S_2S%%jHHd}7JgN`{MTMvD;GFqc-${M63KbrnzCzi>g<>I7twwdk zRF8}hW>vq4`rq6fAAgJ2+$~?*?q(AYf6rpCZOM|ku8uq1Tg)E9-Ruh+X1Yh6xZ8L2 zIKyaF`*iJF+}1r^iRLR?$C}6`?Q5occJNH}!#bTQJj++EZuh;1l7l=7%p=nL9nZg; zwjw@TWn2XzQ!DU1_4(bv^%<`DT%YIqB3BpJ8m{$Rzs2?YTsyda%oR1I5ZoEf?{Q-> z{(jUTEGCh4&E#hf#NntOm()X}ube5-y zE`YmN6b>RwwMABQk<_0@*RwOCe+znIgnk}+a)dq&T@79Ev4hX!thpHO0zCE86*A>8 z3C`uU`q1Q0dHq@JZP=C1;(rJGE7*1@af z>VhvLG4+8?;Od4a8Qmutq2eT?I6rRjJ{yUD?KEve;H@_BcO_UnEwVqsVy|{=_B%Qj zeR`K<2-X>e6E`oa6}KQBvd@mtJIo%q>!T)}0j+OVM}*cVNpqh9cYQ_P!~Hsna)#rU zUtPrhyrgf;2yd6pL%h6*{dxWL_KLm~_uC2Jy5X$xhpxn3G^ST{1@7uI7$G^fBDKq1WMl2AU64pJ?e5{W_QQ973)G z{s!cZz~g(?Ct7l%_nF+YhEE~iiu(@acfxxTdC`&={Y~7LKp((;Gc@zp`$WrKG+)KN zdTw6F{ZZ)kxQmv%==-@8uP)@8;JK>9i}Hmes@AIiRcmCjJuxM%W>Ct zx(RpD@-KQCm%^z=ZU*_i1$n^Q53h z;2zvJ(Pdl;=N+CM;c@26=|0_ozJ7Sem@gOHH__B;+z?lPaMPqgAMdMECR?-ulF&ec=62k{sEB<_mu8^r&+&|7g2;xGCME`_JF zriBk8--5pV=-UYI0pvw1JkhGFNp1ylO4n=1b;G+0xgedQ@5Ei{dJp$5=tZ~(=@h+y zOL}fXPWN4MbKudu4xaekKE<(c$fP`E8e0j zOwaAOS3xr$Ez~2rgiCsO=l9OSUp;b3c<(UpO|P9itWGkrR#S6@3Wz8PJN?YtS#@E*jG-`Z?U!LGQtRA2j7y_?(O0iTfCy z2j0P5yP+xf`b1-TMQ`I`E#UHRBG-VP?daJI?-ArgV|qnDtawoNZsk5a3jLts;g`j| zq95Q=dR8M>i@z7pvld<_a-uQ4qL<;W`{fazZh$g2%xBR}=AOpA8G3faUGyw2g;Q@h z4S9{{@g3SV1Kt$mMPqtJPrzOImBjrz=xW@9{1ZKnOX(kpobJyUNiYcw=%^)UUSFXf}h?N5z1JWP2l`jBCl;R?eK8D3(zn{q<(Dno^5_!FKs49cx`=?$YOdmrXQR+|5I~U`5}L=82-di-A>|b4uDWy2*RC)I}HEO zP@Px&QbBwkG5Q;ZUpHK5xW-WDyzol}XVFs*IGXq0VeVPLS83_K*-0BiwDy? zTs#=NE}w=ww42|_aC*7I7o7%0D?HH(N3`^d1{{3|RC*5>?)Ukr?I7t-Z37jbEgAs4;(fAvT-vjD?tpnx029&>U<98Z=nejV}zr^^h#=qV8Eyiy)ev|QM8-JGZ8;oCT ze3g9)SNWp&Of`Ou@hd>`AqBYmsCY^)h>yY*E&akkPqooihJ@k$1p>kR*q@ud6@Ce2 znfN=fk2m`s?01;`0QURLUW32K&E5bWkewT%HuWjlxmi6#dcf>zTfJ{~wX0M=mdt7F z7s`%bwY_JU{c-GHGP~L#zfRbiTdVfOT-mv)`i@>{c73B1Z^@{g|3}1+pEIhT1ojIf z_P@b3;5SA18zT0J5&K&a`TvO6-TE%r|ao>*`+Gwk-23 z1k;TRo|BxWUgxF#vSv>y_5$YgRg`_m9S7Anq$_Q5=QH1U0u@R5r-=2cCsB4%Zt=C~ zF%`_+>TX}ty?ABYvW4_gYTjPBzr+&bds8=pXj%r&ZDWt+VGh?{SG zo;n7dZ+x0~kfq)P;-P>$YBP13AX?{|*LnsWzlCs3PFli*;D(Mt_gh-eJ#9j6pT(oI zHg?W(?7Zj0=ui|YuJO~dFJ4FNT;X@op*G7j(@|09m!(q6}R(%U}Z)Kukt7s2QF#kGk zf3j98$kOq+#iOM@d_HpXBX;ie64SB8bOd2X@mzD3JJ3;yhi&MHnrONr_od)`<8|n` z0ndBRts{2c^L})UQwDy_&(l`&V@fna*rRD#MrAPfz8s_MQJ#*Q=<7H=Gd@q_<}4pa zM=3h0O-CdOk^3_EoaHm7qb5g(eafB6;2RY;XZc-poJMk*={QSTM);8lZ;dQ!KXx`C z2UdKV=ZQd~bCzkFs(tG6MW3qtPaaG&9q0*_2TX9|_v-uiU6FEgJ?jSE2Gg`L;S0q`rTHn_+ryLuuhqB zRz+0LMs~(p`y+qfu1Z|@)Z?10@84~DUJmE`u0_v99b=iv{QldEoThD|CY@cdmVKH@6K23M`{-GruW~T!W`*@ zJIh=7ck|iQZ$7ZIzW>syi`R`*_aA{M!C01bIKFHo#^Nw zUggM?WyLfJ=l0R)a_6tKGRNH4HgK}O|7c>Ydm=u{9AVwlDkoOaH>z)Nh>rVK6tnzQ5E$@tAvEyNl<>!=K%;_uoE%rdORN;_O^<=chl*Y~YRP ztM8wEg}a~J#|86Tnv%->N^+}~*~nW@>Up>+)Lu7m(A~9kddK%y1zAe-Ibj?`D|2Lig zlE%7$HMQAm0jA)($jzdz8)%tHxJ7Flcs9N@vg5LjhO?;)>IRN~67JAnG_Hqodvd&-y}E-X38d~Gm!QnAo{?RQVq4OB(^oHsRej-EZC zo)$uX{=_Z(|KNllyJzw7nDfztxG#zcX z+5K*^S@U%RBd^SwH6N}|7<(eQQ}12fKkNr>bK0ATwbCn^=}|zlgo=I_!61PxE+e3 zTbaveB2iIXq{c+CMt%sXVd-LRO2k3wM5R2`Rs4kSY+ZL*QlA;3IsGm~DM<}o&J>_# zO>K6=(us?Ui&Uj8)9FbcWg$Xd{<$7C`c;;$ZD-ClI{}gaZxL7Gv%{!q-w97Cc5IFt zTF&Z$OGZ%(Nw~&X*|%f$GMTD<`J(o&NQjz@< zk?DhNks0SA^PJ=|fsa$*dV0L!-;NEueGPS5&R>ZO{+fi6l~C|oqfxlVML~ZSg=<_C zbc#hJ3fCwKQ{j2V`-uWi5<5Sv;UOv>8a}ec%togMI3jz}d`j{*X}JE^)7ZA3Afl??_#GZwBGRV45BpBQ=hmY;fhNsel4o}2B-WVGsFhHXA;uO{ILI@y|;mns<`^c?{0R(l7u8ccoC^C5D+UufCvFm z!mFUX1QHM}5JD0l8j>_Gh!$%!yc$7lEmE`P*d2jxRlGi zqROmmeLe=j>Ag-M*Q!7`drJbjRt3@of>B^x%dE5ov@T0TL02Yc-A zjEMCw;=TozubcsQ1qago=8o;A5>kg&l-I&hD64AtrKv#1L?U(PgVtZQ3YAcplBg4^ zLM7BF5Yi$maujhIXk7|Kff4=d8U5?v*|oa1Vrd1&vUIE~8S9%(9~Ifjw3Y7qV0s%QC@+2WW9TmS!#J|gVqNJ<+ExwT|2EzmI@+wdB@YS7BeuEw_gf&fe zNk(fzC;^;D(xfaJ2Yq5uld|YK29WZJr+$0Bi64e+bNGLkcrXiy-~2@goE)jB6#cG=B352U04_zT!F_V$#hVh$xO zFc$whpM1U>_XAPodUyVJryW*Op<<-h)aeD5@1h=obobW8fiJ-~vNdtfK=7Q0LAe8W zuY2*AZUxm-i`sTGJ0(Sb)01Uu;v2!6qE4MmcD5!~G_^HxvavNW?MqRoP9_^$6Dz9P znpnw4wkD<}DeBZoddSwq-z3rAnmCE(dhbK5*P12iwPrZ!Dzd697_)jT*}V^N2fcbM z#8qNbyN*rc8Zb$Y^i%DU4JLZJsz4H7y(|FKrE$ zu~4oj7RuR6;0UnpZ7SBX<#olb$o|z}!@@V^KSlkg@ZijwS7R02Y%Y!)!IgCzuv!kA zCWqb%{Va41@EsK7PRclF(}xv!)T9pL^yfgl2RJ^Agc!OkbeVqu)GWnPyzK44s*}O& zLBTOi!R%XuV}=B)LYD={`>*U8^fxUH)~^oE2t5>>+Z6OK4bHtd=pO=Iq3;I=t;S+$ z?A|;kbXRcxvf!A;;Cw9R3pE694t)hi4x*7@n}a2QFejJqX<~f43<)NE zL;e2`|9w}b6htgc@el6d&z6OKn3IIZp|)9J3)8j6kHbt@hlINch8oYi@g?Ys|wZG1x=8N-S+i;VVks##=I?Ze1gJ2Ki6IA;@(!&oKA*20sD zR6w8_4v{s4^!K(A*-BRd!OCd0^zExiv*rQJx1DMCyShCK(Tv}2&>O@%eGKh2@{RVmcgxyt{kGFO_G-&| zH|!ENZoC^F?KTWJi9d0N=(q4R<8#3-@9xBZc&542TjJdzo2cV-7%cbfSN87zOwa|% zOv~QyNcLsto?bT0zGbKX&**?=qgD4dve(S4S6S>sGP{^q2F0mDS?s|!>uVPK*PKPk z>_~SOC9|K=vBU1DWIH0NmBXI5*nU064;SamRF|^(idIQYWl3pyS+O;vI$UGVE)3Hr zjAt9RyT!u&YvP&wh5q>qu>AGn{xui(Ut&$dlH#&(Lk&9Z!n$*WI_&pWX~W{$8_=5< z#y%bO4T~3p-EI|z`{ygOEUty+oS;k_Rd^7#>M3aS?*|;yx79`bQsC$|a`1`3F9+5N zXkL4>P0V(m>W6hyE_54`&Vr;c88~g7zsFM_CR9DrO*Qi-i-`iraC*95ZysvxgN1 zsRiPE^18EEFEvMWyk2svzG8W~n!}8gDXhRLyR*xeV2v~!6HDsLtvN-L^JH8ITB1A0 z5TwyRW5xJ0rcST1ItEc5huv>bw5+6ldP7}3R+>-ZxPrw~A4;5aexY6WAmJDbuVdfa zEe_%w?(Xz_=x5@bw=uiCuDTL)oJU*cD*Xy|N<0&|NS#D)pP*q6G{NACdZTwcY6ZV~ ze27ErSI>(6w26^%JAN$ACp!;!Htq{?Pr`jQ?(1>ihHNxUa#@cZ`jec;%k6 zuzQ4k+&s>^FxGZQPQTFWz=x`1=||_OMc?)dhY(Oj!HqJ{x*izkYx&@2oSNV+hnsQO z4EN9Ark&g1?gS?CWyuX-alRPmYPm1!N56@+0{SV-^=(WihBeiXb&jC7!2NZ&nKpF) z9&V;5dD#8S^ra08lF$$X|9`>~nDMft&P>sASPb+FAyj`hNrn zl`75vDt*Ir;9?xIrMznqNV+cTbooje*48S+#%3z*$Y+Y2d8fPBCy+W3zz|1kADcD);j~owSzdSyiYK#3*es#9P+z})1P<%H}$jyvCbLvdEh&RFj2?e zMVx%ZPv9mW>fcWkfnEl_q5iOoIIbPU_rw24 zUxW`mhk*YC{>14|d^c|D*$KXVc<;JE&%>Z?2On|r5x)=qZIEO9T7YkXKXLjK{|fv$ z&u{Me)}z~iZ-PH@`V+q$cNpQU1!Q=uz+Zs)9Du$?&{l$AMyF{4~1bL>|O?Z9{h>p+Ch8Qxunfiu^VV@FPG}QI@|CNIO~s zSPu>UBFG;H?actzLyJ7|*KmiycL;o(=79ZoA3Y4(LGTf0IK&U&W;lBR8P0CNp@5G7 zGMpC3kAdFJ2xli~XqN6GPI=;6;hztD8~h&temDGy)1Nr|^>d(SJ>U?)+W@I|CFJtJ zw;OV+KtrQ=7jeoFuM)l`;8V{Hd>o8e3_j<%0beM5XlFl>3;CD9cP(fI;3H0b#M#WhQ7L$PuR;@c?ed>+eaH zH4^ZBz!8A&01gK{3P}IM*hgbvKa>&Ba|AT3!`?-ldWds9Hu?5~?=j?;14|d>d|tvl)DuVZ1lc zb2n({QrSfu*AC*V;h)_P?CE(M~iFkqVO$1-K zAI_`<-<6={gO51%5g&t_`i6i2LDrj^d-TcIQ@wq75`Q6e-k*q zAC5oqmvJ+km%!J8=XC(-dI+?igO51%5dR7M`8=+Ko}U7L2LAf_5Z{d(?90CgK0eoL zQQkZZ8oKP9=S+M%{M)jz4?$nNpTM`lpE$!Iz8Uu=(DP;RWg@)w2yZoLH-V2h`G}*# z@QFphUxoi|z|o1gi#Yv>SK(&7%4iSh+rhUCv_-T>_=p$5pXn9qV?8<#IJzpG^dUYP zH}wnxUkH4^fu3QY4Fn%?hDSVG_#A93;#&lEmO!kv$B1E8J4{uuhX z5pVO^;r<2tXjqU(9aHUZ@(%cjQ{VgG;rd{v7xo``;#6PMZ@_m1w1eOyPCnw;k3gl@ zdiWm#{!{qt^dio#UB(j~x$3>ZxX`2Q1%4QO`n@2&Rrs(!!4r4mfuF*2z8kdL!AG3o z5nly=evfWLxpf=x74X;JC*tU&R^QcngwqJT3jS?kFY)W(&+q7pe%SW{I6AhS?<#Sw z+oHX5$p^VD&~q(lv&koVh|dtdiQqc{dJFit2SPshh|^x;qlFJ0?oR|@_iteLV9>I` zM;zA<;$ir|3Ax9hXAtn-@Fz}x;yvNdNp!oj@tp*o1%Kl7CmzC0yZ?^;FOEa*9q9QK zo*!ZV3*zJ>egZf7j)ITj_d3<_#yafdx#%oI1InP^=K== z&l!%`Lwp}@hVujPwIck%crPCZ?P2f{$F+m_cW{$$i@@8&t`)HBcF?|T*hTy%v1=am ztp~osu#0%D*tHmTtp#3b*hL(j$ja_J;6ERDk>O9g05|QK0=}cLb2Gx32HHgM5y!QI zcs_3O;eNsjBcH?G(V*d5xr;ci9mEI0pY_A-(31yzApCWGkvOX$)RPH5){EYNp6;Nf zflt?yh=<_M_hm2iWC8cXU%x-Z_oS%yNq}eMAu9w51L(~&SB5J2IC_)G;*|5MK= zQy}~MdVzid{#bLV&R3;;D{!pGREtQ!5;!dWhXCn+5Rmi(Lfb+pPTTrd33!>f_X3uR zoBhA&C&K+Fx*@x-ANnt# zm+n(=j}dn^bY3U!7PxOfJTveT9fB;_tPH#$Y!iQ7=p3u$cP9f6n|*?BBc4FjCEqdS zo{4`=zYq@Xt~U5DH{9G;OY^YJuia?lJ8t<-EB&htx;>ppk*%Eu9sMPaEbF#f=j(=> z?RQQ8i(&J(4EG+xecEupY`E(TH}z?q@{Iz;vYHM0V#6K12Uawucf?XV{W$wt#ZIs^ z1|V_#sy&c7xwd+_8i`dZv1kNaG1Ny0rNwG!6@#COR!~w=D`D4`FXjGDwFbSEs~L(h zpf@#Y?9wW>$HkS;@|sGF^j6iYO{+~Gt_+xjZKKLCgliSss<11#%&In2sHF?Vo|7e_ zVy4GTEmCFi0AnnJxM#mrR!pMCJ%-ndOYip;JCi}SN;uoYcw<)&x_9ofN8sJm$d+7g zADuEPFKK%*k%PnE(Y#TkpL!)goaE3`No;BJFyJ`JkZ=nzTZ@y)RqmUPQGR>qbg((# zAAgPyhpF|_$YQeF3oGL@w?8Xk!9O#ND1Jcgj@;Xuki}%G*!5)br-V7vlf1l*X<+eL zA_a$+DfT3>_|hJ8H#}8wsz=Qjl59p1gto-i>J;gEE+ds z!ldFe&}(p;TfoKIfj)0sXS)yFh)Z(v!s_C=(}q@ElE_YQ@y?yj4B^8Vw!fb{(LWaN zV!z!W@DY-QH>x%2I+K0i4uO;Ms2*5vqJcP^k^!rcfLEe@;3%&y^aGj~+M$gaPjv2d zJ36!q*wOwza9%o?guGZEPqYu5mkx+F;#Qa5AIEDSIO-T4z@MbYsw^g_x|qc3(mK5M zf$M;JD(AQi@1!Lh7^}l$A2`g5P*;AsBdZ-TI=uFQI~yHd`@m7hO2kFmaUaqn$+jfM z4zGRS?m(t)gbemTSJz|E!RLu9Mu*ovaO^l(0Rh>gT?xxyJRNcOfx8VlwnFG(3EWT; zql3jIFZbEiy(C{uMw`TS#pv+b2ks1Yw7U;nJ31V*%zdrmowM8YI_jYVMQYTg?eN+=?U1C0g>sbk@AFO%RqtnlxcAjO3>_S|2|$N= z#Yqp(JKD%Y+mu~U~?$mzGwB&!ThmZ?8rjI zJn~0{*S=>fp@U_3i|8yDM=Lt7l)a$* z-}f)e|LA>-d-il(#=W_$W#7iGPOUgwcy4FCYtHG9j{?8azz<_Du>6n4$lg~zoQQk+ zC;y6++=In z#cGGD2UJL}DGRxK5JTFEGo2rKdI&O#osj=W?9b!W&e&gXUuS!K?xo1;u7-lv8ZN0S zlbU}~b)*K572lnFbr4f8$#n?UIeWBID$+-h`7&9$FVU>**Fv=u`x^8$lkA% z=tcQieNY8h47wFm=7t!)YU09})QgZ0BHO_DJEn1Sk59nix3_^woo+MOO<{C>k9Rl% z6A(SW)hTw(d1xktB5Tew0>Mm9%UOiGGyCDvtyCI?a3iZ>G08Bc3$20DG+A@bu!CyN zd7884T+!5;^E6}4IUi(DtvOFK)|@Mjhr-!UL$1EZ%XsY}qF4yOurNr8IClV`D()Hl>( zNq{{y-lEA#YSWvvTKha$W19ktsg|S;hE3zN`BK&4H3b>GlE=oh^}INs{FkKFYABOQr@3-1?h-;ny{HA9w{T#p4FmE|RM<%5R} zA2D*&kizPQ+R}0j>>ObYnOMG}yt2Bcymm-IWl25W{pEE-DhifWSC!8!9E>$biezvV zPP{6@aLM4D!F6TV4=KD6J*LZtOsiO2i~YccOs+*m=Z5Oq>+6P0#-WF(gJGMa!Rkv( z>X0erCF+df=!FJ4Z|L>%F)QF523Z3yU1RE)So1Zu7qz?A$j57mD?JvLgIhto49vJ# z{5}omzmCRwZ~rtd6u*wg#^U5x9~QU!u>%CtnB!?kXtnG+tege-cdh|&8ArRa*j%Yd z1q6>P=N$a2i@qyxy991mq}c?j$c?O9t_4XMt6H7E2If_cdwp|mMjX6k;+6df!n!*u zRF*J$u^nGxSLwo%MR$(!!()DzSh_l^M_pV zjExsoUdc(;?X2O6pM)0MFavO3gnK0J@wn&UUWj`yZu82EQ{iKMo$U{=crlZq$*XSa zVjCge#j!@_g&X0|`a9)l%Tl;?J%*KLU2&$Ko^kAnUbB;*2N7i-p_Zka;d!k=xla7a z$4tEp_W|5!!Y}^`=A`XJ*sp~!cNes0Fei;Tt{ud8<0juu@U?(`5_}JW_5k>Z@NEVCO7L9?+IZ+Aj%x?;%W;!$ z1o-X-eJ=P$gEkC&#Br%PfP>*6Ul@FBYrl_l7yugDy1R(u+CjVv{MiOx0X^M;r@@~% zt{ueDetLp!pvn}?y$6m@=q}>8b`XCY83n(<4+M4*m@cqDU@{)TLN;0;$9|nJ!U3-U z^A_O}flM#rg#u>^%ojLD;3WcCWh8%JfvnXMN8A-eU!sDrTR{K^!W=c%1Zkk=NDwkk zgh&Sk*?uHWc|rgMvjI8RFARuoGBtMvU2aMrWYydigstYTkdOMvM}6d@BDhKByQ%aN zGB1!H`9+;2H4%{U$p`ES$oSKaJfY_bJxA!YAJ5IvH&FN>tMu^E^6}L`DaX!vZ5MYX z+z04}0W51c4@{k#1fj6scJrN|0=^6w%W{V@bhE7L2RB62b+_T}3ZkZuH{6E}p7#y+ zqlSB*;ie9)N1iVzxVV>JY4P&9rG@2HWzksFxUU|olYvqDqd!?Mx%?-`?&6oc=4c0p zIynBOD;>I1>dZzmBZC(_N66mbGTu00bO>rR!x;iJ{RYRWYP&`Zqu66B^e>}g!{4b6Me<#@EWHXiw`}o56(b`*EkJz@SCl5`lv^zN4w)R zSBo8~_?~-R(wFZ!wlNPn20}OuI+y@hJFMytroKdD8;#IG+jB+7cId!k;^pLiV@x6L zSkG$c*bad_S6rNj0zYks*H}+BDh&+qu-LIv(iDB_ZaX~Br^$s5#-&wsz!`Ii9cr8= z-q=?jbnw+ZE;{zZ4vB|hM=7!w=Xu$ed#ooPI{4b3Y&SjHKS!xZ(j$b7#_$hE?2u5M zH1!;FDuWKbZatYqn1s#t-Hb?Aeg&po!$H*UX$D9Tsyp1Wzz|8Jv67Nf${NJNmhC z(uIXFsKbk)11FxG{`e>FHLCM9cm_-pY}mF;*$~RY88E&9eJA_+@r;}c=lOP8TTXxc zz4v@u=RHA6-^o@#P2K*U)!(;u<)ir@6{ryNKU%14r2YPF_DMdQa8}JgoaJp8lxPJI{|cyV z(_2B+rc>pP!gKUypP=^ac_v+t7{-S;nN&)3^)^gDZAx z6PqKC??kKFP3*UaoYELNI123oKaey#y$gLACkhArpW@#mCic8xXHz1yX7waqK90}% z7UAvpHNrI2!oE5QeU&)d;&Uoy>p_;7eNM&fJ0Ju~v;we^`YMPSw~K~MJG_aJ^s{{D z_hP2!>cq~0E`eZIuA`&HSuA;iRvJy<=#n}N#Ie*02Ri6@b}Fu^#U~f@XDJux=J%BuN`is_Mv*Wa1B zLPICSMJge<6wJ(*7cpO+2cp$2`XGspv_uY)@UK7;cvyvDxti*#GFYWkmsaK2R%Jpl z8x>B*%TZR10ZATDj3HK+mI!?vAfM|5~^$&4_;n}{-J< zb*IIQR(5iaR${fx)UNDO%+Q;CXBs*{?`#iecF|*)P-*Y!ou$VxyG1q^?@rrOQ@N2j zI!ogXY4)`D4nL=>FT&W%Gz#xbZxX>p{;wVNGzL@ug(265y4oSw$gi@Ytb7PF zsTxg+c}?_Ks{I|)1EcmgOJlAgUXxX^WFvM@sG|d^?;c!@4Ooq>);3ge=Rs&e8Dkj( zt(`E?x(pkAzXDoCFi-6Vj{o2*!Mt08LA8ZmZUnknkqQX*Dd!ygtE&=$7F z6Q7-I=xJ_T>I_WCj+zsScyP{WtDQu4HsI9ej*i-bGft+$j-)XaH_KH?VBgdR-1p-C zA#S$I^<}2(7y8#N&~)x&%RZb;5WG?k4^NHTXNeH|TH;+Sp70Q?Umh`ScI##u(OZ$#rP zg2KSVfatSY&i##YV1H&h_JafsW7oTg9@!Jjy;9mKDN|3Kh-;a>)P zF8qn(+CiM9GrFSG{zQ!To8X%U+IYhr;yGgPDfs6CA7uCwABej<^kjiA8+uUne6$y6 zncyRiYX|W(__NQr40@0r7D~Qd#BuE)J_?x<$sV{w;I~k!5x-v`*N+oFEO47Zz2C}S zc+!85K)vrr2f_7zCJ6U|dr&!LxE$lazFkU=O)mTb9KRuCvy3ob;241y3zT)+fxd#X z9f@Bc(Y_`M*<%e_&tH&5qOWluL`_F;Cg{K3TzOF ze5CAIEb!kwM+5mlg@>e95RY3y00pxFkzWE~K;$Vk2Lr=LY7RzcK+u@C)Eo@*Q6KrJ zk9^dJY)7)QFA3xnANZu3B`|Iq-P$vG1#D6{@pZ`3e7YV&U=+lHgMd%ZSo-gzCE z$}RvEe}=>GsE<&~4HUemz`gL)b4R!b7Tx*qOUHXgcO%^6#eEWP?q5hc%U`~W=}a61 z{v6#%IDQBB3!UHm55&!HOkcdy1Ji%kLA$|LT8;~DZ;={U4sqx zaZogUok8DWxF;EIDGQVy*)K@BC5@Du`grqNgIl}hJyG<@2ECn`Db7p{{Ym5$3~42~ zY8&V(v%6clSHKL+j*V7pMfuweGPAcX;vHMtiJbuxTdRvV^(5Bl7)_D*=wZ4uoBg7v z>^L>hv)zv%wz?Y|16^H?^)ah&UX}VdO$(3ee^fKUgQuO^tIVW{c_!i5CyC~bhyFPA zS&vyaG2zIfZ11@@@g&+=R(&SyQR}K>1=PCgK4VI1OP5`))>r4)6LHl4(BZ>#@`mS* z96l->z9eTTXv38E(43qRxw+x+@Z1r?z9^-*cyQr0(dJoZH^lURQQ|j5=+_ARvcR1Jr%8Od7ZB6GKjO*sua@-xv&8#D ziO>b*`U)`S9h~&L-M2({J!%^2OI1tHRV@y|TP)Ha4=T ztx_AX;3Kl40&6)uRJG4-=p9#e;{=?9U0;j!QT3wC@V0GghoL>;$W+C4xiA<~nScRD zn0&DTCl9w{$kaLpc16`wUHqqEu`GkD45|3fC{{@L zjId`eR_i0N`AumxkIaq<+08ImhAGQT?eW8Ri^hiT)aqk`b$kXJW18-A*JP?eMo_Ea zW-=PnOX`t~b?vHkB-&$>kzDVPBcrzM@i>FEadV3kkGLu1`Dh@f{fzRb}Bwl)}lBTmOEEa$U{c{DEn!8lK=L2n@DDyCelv0+6P zg1eV9xHNe)8t=%NlrM33@TNFlb1^X{bcez9xsQadU!q9O$DMMq9C&A(%-!DW5Jyrn zhV$w~TO2D8llI1HP`knIHaCU=>ExVp7B5@H2teb6>3ni_bADW9MM+%&W|mg0Y|k23 z&Ww(j5r&H|@+3T)_09()mP2Z(+C%Jfg&o_D3$smzbr-{BAw_iiEmybS?B*JIbKo34 zbQqg)xE7_D3q3DFYKe}QVd8bC&KLBWY6gzdf??i(NPDw={e z7WfFs&Kv!C>N=D47roFaNO?3>tjA_r7TbX6Eo@W@@Tcd4daXC0eC>JY@0UO;7oy#1 z3sa@Kv<|QJ26v#-?_q>{e596eV5|<0^#-Gd*)rQkIkMUjqr+>x!P)5WT5mudv(awT zcBCzK`rcyf@LF$h$0Zn#VS2EW6jv5>;PLW`(c!h;U>?%)4`^TRzT6fx{^RM0yWU_F z!e^ht*C!a#wlhWt+BC|?y)V>Gi9={&VjW)V4bD(UyXy_w(cu_o%;Szb&!0NJfi!i; z#YqfkN;J=Z$~e1!U?(0Z<%-JGIYb;IWtX?Qu&*4F(|dk>_IS&B3Y@E_ihzJPcBnb3 z@#gs-g%0+a=U-{tk+wvQWl@u9#}d;JJlm-KsoJ1pJM!r~=s=dY#y|)A@y*LzZ@@%# zuNByee8KtOZR|`jt~haF?_=Eg_1}gLbiG?a4mucD937=>kCMe5m)+38F@T=XLAfJK zEo-cy%a&2|70@=|u28W$_D^EbiLu1#wvIy;&bx1I1bUoE8eVfYyj6Jh+@|A|tt2jNUOO5u;)aRYf#yk}4T0>|BUtd?yyuHddiVU>7y8=q zpWON-C|R?&;qZps?AB_yo7()f^^UspBI@`iwNAIW3pdnDcztY!)?DRLKf3wmmgaT8 z0kQec@ie+VJ9Fbb?~th|JFWSiUm~40fTfEWkG4-wpJptcZ)zLWd~;^=oX{;po7(zi ztobc+En?N&IGL(eWv6YNegcsXF?}{JXu$!}^K zov~&c$S+RfD3)8xaZ}5UO3QJkXce5tDAv@rAmh$IL9nT9$}I&=ZTT6i>r~>5&sfc) zP@38%WULuY^YB#GM$CKJR2-(_wJ$R`Z=mrQk=40TJOF5|~@UOF~h zNiV)-VpH3~j5Xy@@#3VND$%0jw$s!!QE7Tr#qG<`)I4YBv3HnWd%w}tmYJ~*=iFJ% z(_5NX-#Qqtrf>g-=`E*^x=d>|6@G9k64NV{!q#J7=aY*z;%!srSwm(9qx0;Xx8Ggr zk~nHgY&0Zht5A-thiZ*F>x`LTJe;dP&4z8#e2 zIor)g)}%Z(8LVHVmgkzAzCs#Hn6&H-)3>)?s~Ghw4i8oSO7VOdJ)csqLDLqIYo4^7 zWl3Kpw~a*R7LnU9Cc8BRpLa*bEh+zw2t-QC=wkBMe>;78=-#G%l?#i%u;BTO^R4Ib zj&Zu<@gU}&38b56ZxQmI1Rm|yaD~t~vr&J4dh74clcVj}H!lcn=$+j;cAEx(YvY#NQA0HoKbicKjyJDe z43Fkb$%guO+Zf>I4a#pp+3k`|~2tcY#tj+E%9?JfnLB zs8@_aB-b?X?O2;``>Uk52!2ibdaGxo6E{sIZgKOv1!x5_%|!d@k0E_$35c#Q``hr? z@Y9TElF7Vr-6%ej$VYwSLSO4XaID#zG4ZvGXOi&QyroA|+vl67^V^xRh6Q@_x^p1( z?g)Mj;Wt|Q^-zAFqhGJ4w(&OkmJ9fWTk{X5>$*SCM&l!UEkbJAm!=}buVH8P?faGD zJqF%)f5XoisQ8>cp{Rc)bx%`U0jbk6)_hA*eGKzE_^{s6y{TjvgyEBM7#-;*0kn^&*nm($mVugJQ$z<+EWlYZTw=~U(0x)13b zuc)8UIZ`=;)HFyrJJQ)lIXltWT{%0`nW~(9;M{oU&3u}Y02|jWCl<&)b`oV0-nl6- z;&$9@Uwlm<-554iG`cGcH*ww^^CslEmB<#X@`d#)SBN$-9t6Tf1?Qv=TJp&6K14Jp zokSHab>rF_7_Y5NvrQR!%1XQZ1JCNc4a=KvKH0qX19&uV>S}mzrHV~GNYQzIOm^#S zN~k`s`57fK>16Y!a}A+VC3L z{*T*`xXsBMCY@N4@!sBy3nv}My&v~(+&gh^#l1e`!Zj=LC;*nJC&E3Obkb}j$(1@! zpG4L1YxKx?{O8TFq=rz?P34I>)=?z>@V^F5=Gx*PB3p^h8oI=#)6#@A5G+As1+Z2AVxo71L(+cL)$Tn-qU_GK+p z&)-yE+n)NrzfbjDl={m}^&f#`#^%>xjH|w@ss8US>+eZE!6*Gt^aD5{?1_7n_zANRi3(>>d*M6=x#qP87{aDDGR}z(C({+q>Zov#S+n)K@WN0d zx!lp2u7W97!Q6#lSld0JYP*Qb6NsgmWMLIXw(~wXK`b_da6j;O-eXMsDu}@d;)9H9 zC$;Gy=DLD-8q7`mB0)HB^ywTU7VaR{sUYrWGHv<=ZP5=s$)$dwQXl7y-rk=2fl7V8 zQeSDRe+-c_6X^6`j4X?8kmwJ_i_A1<`@tAv81@bI!C;{usdC+cAe+}6p;dQ=@Q-f- z3Qp!s)37DviY@48g6#fyZy5qrULWuCsOOmx3~ka$R**Z9uxT-j+HOy>3O-h3KR@i~VVbcn=YwKTNK(-5p^|h-&KB zrwhZFql?*94Lr_k9M1eID_=RT&K@S@`tMZVOHjaT6nhrt$m;ymcY8~(W}vuqIrcJ0 z?SL&&eEz%Af+e*}l@`#tfc6qZlhO21@*UvGHBgqX(*XE=Ous&;qkV$5Q|JU7L>A%h zXb&~}&SmKSyJ|jb+zMTdr_GSKl%ivuVC931&XcE3kZfm@YFjU ziOJ_6@%(qq{j6~-G#m-dkhs84Yo9hqMXcbn#;wo}wrCO3*No6+k5Qq`(4l=+xE1P# zHa9~$VT87#2U0TWuAR5&;677=6>3753@;lo)jpxbZ3*TYJ&hZ?yZ7(S=`ln2uG<6n{S z#}(7u+N8w#7O2>l!%E#nrgSoKi=kBi10555|0|qx4U9!N`0}swy${hw8)#vz?t!h}lxV(1e62ukJxt$T^r(I9m zPf60-K$cGDfAH3IrXD^RVw8m){;{9>Xb6- zNB8neQq9W2QIU_-kG{eB5vRkz*bNv7ZP!FQC&V}KDP`bE822(_>YKyedGHvYQU?0( z3W9UgA_|JO3 zde(f-`!TxiJnQ|gXT9J3toJ+5T0}c8ZdkGe6GDAIpM#e%>8{on0KHh#>4W2);kqek=dYBs`d>G7`jFKN!5&@#Fs|JL4b{m*62g&*e|9 z`2Wcr|3B&Y|5ike$R4xX9cKLh9VEp6xy%IduUl4K>k;$!RLmLcubDA_&lU6c+%bPo z$2?C&JE}nB+5gq9wcqr=Mno$7s&j%=(7B+{J2gI5slk-^&`gbwU8(W0J2gJmsj*c= zqayw{yG@y+RB*B?6gbaM2tJAgX)bb9oZ z8bk-5P7rSMOldRj9es8SDJnt!twbb9O1A_F!YAgP7#VhAFe>Mw%ykkY!<`rzF^Q4k zB*x<+trCM_Ne=1kvzx;;|4|Pl(#Y-!63NUp-ig)2PAn!=lbKjO+=4Qn z-Bdu5C>Q$JbK$>h<^L`f>2dWr3DN^ItQ$%_5@d*-AWV#%W`YcHC&-YP1R3Ha$TX4e zrmOZtee67CV*J}Ei1@5t2_h~NkmJ7~BkhM$N9>g_FQ*9{&t&7 zx??83g;Q+{X&smUIL~IP+rp_a7EX06d`zUf>9FKYy-LaW@2dZgdSDS%pjSwL?!s(% zW4m6C-bBt?JvR{SJq?u4~9IEvsSwpXRRu#I%`$QN6uQMB>{ETDm~<^)iEU6XRW5v+<@J+sFNL? zX@4a(-G>5FZ4;c@D~PtN73d|q1)s<6^VB~03-s#XB#F%u!Br#3^7jfl4%Vo!4?8sl zmD?eNdUa54x3UOVluxKvK$YcC6tF*aR;ZW1czktrB{ukGV{=B~9JFxDm$Ktxu&?(U zATdGJQwds~*$;`QVy{qicDS^{!48o}qc{1cTu^QDZKUCEppd&&W0UVxDi3sKS0z+B z=hbROR_Z123H0XM#_Xa@xCKWpKuX+axM6ZxYxqDxir#QJRd2Yg_D$yg#OP#>Y`C0mZn&Hg2{jje0LG@ty`i#m z%*M-I%sq~WL87bPcsVPgiP7mM#s#N#CEDHDM>=>x+Ef(*CQACGN13n4}J4tpKmH!QPvEMCiyL%=lt*5i@C63 zc>_+Mt*%XQ5Us=aubxM17EsX(QkPqZr`}#wZ;@<&tuz)X+cd@XUTLy=H*5rXRCVPi zrC>wklzji#uKp{!1(W<&b`ARdmt+M4q4lA+f?Y$e27?X33*ZbSW&6kYLQnYz^uXUR z`~}ZX>g(_43wF96?m*I`xA=46AG#j*Ox)wZHW+M4JwjL7Xy|Kzzq9XPJ`Q@$_61A) z7jz8<{FA!+hcV>Q-ErV;F0!A0W>)aBl*@x-Lmvc_u-Wq1(8gftvjDGvYfx4&>23dP z3JlMv#OBO>g4XI_0oeWiG2HjOA?Uw!N3c^;m(Y^XLrK-42ZO$(ZlQUgEDy~KT^pJo zx-Y3?D4bLq+W#=FhaP$;nDzq%TG3M_#^A2O4xzqCjjOu)^Kb-j=&GQ#0zRP+{R6W6 z1CUM?IH(G&W}vF|di%bzE^SD%kJ3p+4(M|K;>SIe5sV>ImD?`Gcv=TV#bAwWOm9Waap z;KAW=t^?R(I}ZYM!Yc}DAAoVTvk;)pcCH3!v7NsHc+YnFFyhBEw;?tRV7Be70N7wV zzYXw$?c_RIA4&x9o&zwxwBai#xi2K6(=c(rC44@Ze&oU2J+fdC_G z>_y#zlKOGn28m-#r#KR470gD3U=eNvRt2!icCG>75Fw}!12l6yO6`oQ!l8J&?K=~| z7N2!JoVNI^+u*dtXGO$kX&ZaPcO-6~HJ4zVau#ae-y?1C1aNT`c*1^o{awe`I&R(a zFch_0Gi`UyQo?Zx)JEb4o3I~Q+wI+hny}kZtC;51BUlcKUo0_CV^;nL#`=Nx~6f z&oRP;UBb*Gp5Z3!#%QlKpRhr!8zXVEXd8;NcC%=^_mPfH* zH5iXEo?QGdrXz-@98b#YOXbL^Y!FYfGX96k5oA{IlJoM@aiqT&k7vPcE%E5Dw!BL` z%lj+jWQur^Kv9HUKgQpPiRO6xaO&q;fi0D)SKer;?L4fCx~nRx%4RN6lcAzdiLf=8 zCs7y$h-5Ekk~gy6ifZg;fm!Z`H9XBCeup&6C+>l=8}~unui^dxxBoIU=5hDKJreg7 zxQlVGzq}6~^8uW5-&TTU8a6R({|9`F-JGT{EfBnlaP5pnvHFR{t`q z|FR0)4Oah3xGMp_2>gqHORUiY?Pqdf{~8OwzWwX^TKT$k8Q4GnLaW`2=Xnf6>!Xiw z5ibG`v(!br0XP~W4t@i0G+!M2W|#jh!1YD>M&M}jsEhb&7ynw9|Lwp{{hNXN4f(IS z`0sJ~Zv&2|hZElYF8>Ey^51dc-*e#)yYL^l@W);FlfeB(_)h~z*OFt;&s_cofSdOI z8aO5k@N64rJ1~7nNkyKOpO>FAnypIolkr>t>u>qUw-e#O)oq+*eIIVl(BwNoIvaU> zFX-l!KfWJyb4nQB6S_J3ith{Eobkl>M)APS_lNFFU=-gYx;Yz!?-Sje6v6k3ZcYi{ z`$acL#QC1l%>mzVzU}77Cf_^KIi7bBY^Iw-S$r4i=HL$BNxC`Qq25inIk2!5kk@X3 zHirG8C)qBDs{H16Qq@i;`uc8~joGvzUuIe`upXJZH)y<1J#qRp*RojS(nG6p)Ma4u z+TglCQxg5g;GU0-UKa2rh~qyW`t(5$|5fnc{QT+DZvZ;-lhy_}^PT$d!##W7 z>C^9<{!=62?*Tpgh0~|MZ~9NMSe%~|0GoDKk{2P9D`gDcqFY(F1;MZ)t#-}@5 zE$i)ky5kw--4B6>$5X&k_;eQD9nV@eG|F!U6Df)YY zw#v{?e1)Nxc#X&v7C6}YyW_#u(| zG3eTE(!VM6O`y*ceRDv&)zC-$ONKt;4I($s&`0`Mp$`Flis*YEWyyJlKH@zMeZ;$n z+=m$v`$#{6oAEsWy4H6mXy|xx;!FHTz;%3ye_!OjV(24%rO=mwo+tM4Y$BX*L~{X9tDCG@X@-c$4~ z0__e%AMv$@KH`lcS8C`Z{Ys&a20bMDe4t%y=p%lCp^tbUkqa35NPidK6x#i}PF73X z1Uvul0PUB+b^as%B5)mF;?Id(3+Ot&q&ExwOQ5%kzHy)}H}nx-YUm?gB61TAeWYI` z^m9Q!Ec)KSw=&((M;u3zI`$Fwi`-jj5&K9#fSd8%1G?7N1lsq3>-ZAi1zg9M__suE zt)Y+fI@~j%Z-MwvhyQ-D^Dw^kV+_5-M;LmE=ZIXUp_laErAEpL;`?wjoQD8u|2N>T z!}$~H7heUg?I(UK@ZDku@h<`2Y2eF%Z#D46F8LY2b^IwmR>D0Wbp5J9_U#HeYQ(} zlJJcJJ=5SD41A?wUmxKMfUe`q@ON}Xxhj0`qQ3W4;L8krBk(lQOaI$|pOWti@f(1* z8F(e|lLlS_{Dgte1>S1lR{=k2;Q7E08~7!_4;pw6;Fe)e5cr#h|2rY8<+y<#0)E86 zp8n*}+Xo6(YO(7TJiB+#cB`aVHgF`U12 zz<0u+|61rTfPSCQH=#cHBcXpA^!*0?exct1`aXlcR_H50A1Kd{dMbeD8F(r1DF!|l z_+CR#f#?|x`W}PcPv}@L*s|N8cNTgO^t%oE>0~^2Nf+Aj5pKr+ZP0rf;U5M5m?8HP z_$Gtzr^5dv{2wv=e<1Ylfc~IC-!AmKK-cNZa4!=2IiPd@NnAVdnXoc|hr|xzLEr_V zkND{z@}<~M{3IHdwErmRI}JV_vrYOhKyNYVF92^fdE z1$3P+Xvd90Ujq78gMX3Gi$K@Uf&4RoA2;lnBz&Vl-)zVa7y1RD>-3|1N8sxXKFl0x zdDGDMNkE=!AUa;Z1ispkdl9%P_ngRm&n0&k@J2(f*(J9|e9*8*Q<$Q8NdW{BKK zm)wQGR~m9Sd_2m|&xu^JOAebqwk$K`{tDcT-@8e6x*P)CeBM75`h%dC8S>w8$!{0F z4KDdF0bgXuHMr!eMQ)x;ZYuEkhTH^~++`v+z$MoW_&h@{!zI^II}EvJ zfSd2bZoi#AILaw1eQp9?Z^+dHH`A48>+yZVh6_=07Xhy^<4m0{+ zCoo6gAb};A)?rME@fBQU6o0x4@nPSE61;|9XMkA(=Q2EhW4g^$^0%0>c7( z3uL{4{tpYBC@^2(%lQ7$|2G1c2`m%%cYFuv|B=8u1g;l&p1@uLzlU;>{3zEI93wDK z;7fj+{&Rtg1kM-uHwaUnbCn2r7(1aoo5>1%S@4?#E*7{@U|)gf3FO{~_ywL8_=Lb8 z2z*%J{Q~b5c(=gK0yhX;BhYO}ozS@u9lyXLf%65<5jacWl>#RV94k=Gjf8xz;Otk# zFTgE*2)P9SVYPvIR$!IDr2!601EL5B91?g?-~oaA1@05LSKuCjy9F{`sfX!G_@Ka@ z0$T)b7kHn*tpe{BxLM#G0-4^_$Mhy_6u3&@N`dtPYXnvbTqdwg;39#14%9bKV3EKA zfzt#|5jas`zQ8d8^91G!%n>+9;6Q=d0>c7(3+yQ{OJJtJG=U+30f7L@Zt}xMbvE>s zfaISFNdD=7n`!S@TkSMc3}KO*=}!M6*( zRq)M%uNS;g@Rfqs2)<14MS{;0yg=|Ng69jKCwPwF0|gHY-c#^Q!9#)rsQ5A+@Js`z zfJ1j$8z8C@fs=snQt5)KN8mVc=G#`GzX?eCQK26Z`eC6T68b@*9}xO}q3;v=UZL+1 z`fi~=CiF*y{-Drz3cW?>+l79g(6SZjRw@6*tFlSwBmM9OoXe?}hFnxc?|_&N<*->7;YM!H44JT!T-= z&3OhLkVfQbguAo2SHpd-xH-3=zqmQCV2HRmr-0+Vl;wPa3F78lg6ZPk2KUwC<{W|& zadZB__2TB-fd+AN-oP#5=A3~I;^usTuZo*<1->EfC*l6CxH(7QQE_vAz*FKr0QU>x z=DdJk(T&Wtdm9z!?USUgu{vbayd-6ZbblW~@^xW~Z#vAE~MJq($Wva8_c z)Ni`)gZn{o?}7VGaUX^|8~KksC*fWw?#wGJYrD7y!TnotPl3A^@+kSs;J#YitKq&+ z+%0gwBJRC#cSb%Y{}H&SiMtK%_2SN&VvjqJCl~H)yb~s?lWI$<>I>C`GBr;OXFZnJmRFVPQye3*Gt}l>F)Ho#nC^h4+cP33@~|xr zKReJEUk`F*IT0fdtfaD{OwX)}idG~EmNt~smbE`8xSeTlJbvDsck9{}HSVOi1TuPd zm@$n`&*e-Y={aLFft<&D&ID3=CgcRKeVP)aOuWgSXBcGsnW71Vz2=c75Yy50nq`_m zyfXeA(*#mFP>&g=38We3KPPF1`_F0coco%*|-S= z^%TpvuXSbdV8rASOQ3dO6Kb0>B2OG6bF^caIED_*bzCE~YnWymI&74t4cA(S4j<{z z9N%0W)X?1F+Besc$aN%g9f?aEiAx-bOB{(y9EnRD2`4&3M>rBAC^2*Vl@p4yizkdL znsmj?+1C_Lol#gcZpMU3#W+uO%FKy{c402li@_K*(J@xsERfyYlcv}U=X2UGxZ5l8 z2bV8vUpRiLpHQs5fDwh)~V95Wpuo?P4t;GA|kkEL~??XaK?@vTR(RRKP31!>) zP$ZOX?^{7(Tq(HD`W)#|Lq~+w#dD-xEA6A#?pHI6c;`s3Oom6;Zi{5n9p~cM%H6mL zJHVee`8=yKzp4dP5F6#%ySnV0d|Dh!l2rh*5P%I z^wZ#c1+25sE_Ge8Iy}yiz8n1`yauAJ>bhcdc%37CHafh{k){szyJ|bKksi{WX8BT6h-k{N_iX13_C86YJpq;LIP0Tl6`> zPm3M166^3hzj;4&41yi=p@a5gF0Wk%88OpmQG1==%z0x>)AgdGUeXjKBTZF5j_3K! zZ4#F|M28W)p`-otn`t=9-@Bp1bvchF(b>x(=wLtheJ(rj3aW1r^->x8vR5IVA;2Sm z9Q)yGT7a7uqN8r@mg14<8DDagPi8A6a602XP`V*bl|^R$Vr`yuP8fimS!B4z#+VepUne)Rt7>JR^0i&szD8l*1Zl+xpZTBpy!j2_?y? zKGSSGEx;#E)?lrp*Yb7JO7NB?voT`%I?%?@t@sOYfB4d3d$Fo7bO%W(U&p`dh{T3t zsV@P+?pZVKh4TUb_%!a`&-o0pdw-`udLWqbM-UY2K{$ezvN7I1UP&D~KSjP=^TU&A5WbmRoo? zlOy|5b+9*|!YrVvUAf^_N4*C-{OWf{}1hI<$61!tH*J-wsJ|t?p8HSZS&N(tAAvcza!GBKi-6~d~vL~ z_*d7}_(y)h#R@DZt$ZeLDisdJ9Z}638&d>W%=yl%L?L%65JQM579hkriC+I4)m2mb zdA$@>O*lYcRwH=%&F01LKQDfN&FhHZ{OGX+;W|x@m-6yjpLrOk6_=AiufLRac10lJ zmFYAX^B7rY!L zH`i`htN)?Hhv(!C&mB1lC9f|g^`b8<%Hz?lnRv$GvOqq-g+)Kax|!UXK=QC=He z)~Kd9o^Jg1crKo|6;^r4I$-BpvPNC`$k+woBV=8WH>S6$>rC3?lfX%NUYn7rRWN7K z9;f_=D0;poI(9>cT@q;!Y14bP$4BGEKMp;&{|oK$0qX6<8rOfJJ$^PiyxQZ`aUI@m zZO4A3hrH^NERpo^YL9Q0XML0v?C2{-hgW-?IzCu)yVMgJ(rpmnt2;$>WMYnyyf5zb@N7$;f)1wXG|^!gVCZPSEgg{Zvj{p|my;xk+R|yz zkqhDZE<5lV^EFZzm9f6i6Y*qOT?sf55$3C2fSVUzf8M+Z9Rn2Q%>K}pZaUtxmCV;P z-^y7=%^SYX|2aKzux?iKoGbu!#Jzo3u6ZUewzt3`#yuB2|5t=;2mT*zD<}GjE_agT zY@5puA>~;Kj}5_9XDBHvn_gXd{mjK`v+UZ@d@Z@B7v|mYjJGtEWhcQ7r=gs-5GiLg zl+&;ZN*#Y2z}`Pjr9dl$imgoSyE3D^XCN4OJ)yj^qP#dgh}&4Fy`wyPT0yfhoy?d8 zIy{MgX-ubu-UAZVnC{5N^j=VFZl(sb|6y)jzdg4qlSF^J-6A6kKUp>sGI1?y3yXjY^#T2+Uh8dlR{Iwj!wNa zH7|vmU#Hk@^;F$fPt$GnPP(n0uG{JvrYus1VW*~2m29(Z@6#>&Yv-||w1iJj_2vCP z)Vhz&snM10xD9+$NN-GS(&E+Lm+?!b^Pj6rAe9?fUyfavFYD?LqCa2`QX5$e7i-H$ z0Y8Ishw933M-=nLaJ?_g-)8pb8|(A~@D+^vZu14wQDZQcy}y~6B-jG6tV|bRqxBmc zRWy>re0ifiS)VG$9o3JpVptBhw8F+#Lx<%L9l@Yk&4JO@I`FdI!i#kvUaW(d*HOXw z;ZM|`!0#~I@Q2z?pJv(Z^e4bM1~*i7LYuyYTP@?-!EZD^*DX5@dWeFfwn207hV&_FkcjPo9GGrsTBjYc2qAE(5f4fmP$ z54idT%x7$8`_Ce;#y0BXbPU7>?QZDDs)?6<-BQur1F@l;&DY-U9KiVeuspk=Z@2#w z^b3s49Xd?+3(TCLzRC8B!79Yy_WJ=2u%Z~Y-+?l^<6KUi|>n@iqj`P)FQ; z0G{vL0v)fT>~UQ&aq;R0;AY;un$Xwjx?*&A^#h!tj&}P2+R@>dC2iI+tq5}r#>svU ziic|z2Ew%(aiQ^dNAkK`2ln_ZudOX#!nqDnI`%;aKMoIyjyEIu!+F|b2ix#$Z^Vp; z?}v_uq2m!(nmP#zKhc4&Gp!&VZO2M{)EM9*4F6E>IP9QZc$M9DRII@89WS>IuEn5C zjp$HJu0P!mz&?$5>2ZhXs23e+=;)UB#jv9k*$dmdp%qu!QN|%^Q z+;Q0{>9H9)SbxZZ9i}|>nsJHOKeHP;_(-<5Ylq!jtFEf6w{=E8mjlr82s|E>^vH%C zcr;O$kw4=0@vK6{X)q+pI51&cW_--JR94j0yVK)A=-{)x8#*W_dooa)@my3~Jo{%J zfe!Z1Y!w|8mdnu5e*esF=wQ*l-4z#*oaiL#pVUPX7#z=FR-UM=V7fTxWi{<~lTlHZ+`QUiV|D+A!&4^SbL19_KP_oOEJCAiMP? z^vE<%%51(9TcqLOk#uJ^LzJ3@&1-Yv-#k6k9Pl+ilc#vITkoRqrh&G`w2fzjetfHQStg1T5 zexy#mdMWg-Kvr`4k~)n;iWq%Kofg=5TA)OFcRC$`9D0vjy+8~&(4h+dW(&{?u>)i( zCHkS2Gm}gm$;1wjPX3qSif3(Ed0lC3MGdzBhpAb<0eD65jOj@2 z+US&2sEF#4N~L8gE)!sz-%4R1Mjubo?6hN0pzNk_z`q**@vL2rJ|i47&+iSaJ;z6- zwDcj<+H+jip5s{S=i41uubMmK91e%Q_X}nD9UovH-(tuyj6a&;^l^pLM~4$A(bAA5 zkUJyoC%0?2+Hb;sW#E?GUotS+y*#tL#4xBm*`V8My+#lUB%L> z@-jIou_G-QKXc|Z%Qq;c2fj0ipuK~AAlT8#3p`Ped10u{AZO`yNZ0YUQg|#A)5czO zs2OU~s8Zz>iUv}GNMNTsQJuxnGdYy@5o`bxf}2rMT5d6t$p|svPc2_rg9xb6+nKfK zZJl0Hk0IPTnPzS8NdB9sw;f zx}kx0EW27!SyGx}aee7x`SWL2Q*N1AQTi)NN>X!v-|t$_+I#J{Gc)!1|N8t}GyANy zp7pF}J!|c?*UR&)7h>1csjo_)xUsP!=?rGEmM21uhBG3Q$u80PDzz%P`f4)ZdwA06 z$Bc$0s}~bmd=-Axnx(Q{i8{TT^!yhLq6zO=*h%@OmOA3>QwlaIbu6|;pd}#@XsIp6 zqzE)?1f0ECx8$vs8Z3n0ygBQML7ltUcsN(F{wChV`K*wp!p)IpVnTbk8Bv91Lsl5!QP$avKx<=OEypDmLRr5rtxEsY&6nUa&GorcDp|IEsgc>;H|RWE~>*QB%$J5u^0d zJ%LY~>eOfqxJDro-!qMw^YmtoUhb{#ZVnDznYwkhKV|C|BYZ(bIQd_SXEnkx1@q#= z$*{F}Za~-+*e-228MXsY9%1Lew!_L%V338DVI5u9MqM6zeg~94IL^H+M;PUQ84lt- z1-uOc-v`(u79Rb3EI-c*%S*f)sT+`Zivha<{`HoBC198@mel}Gc?ZlM;$3CYqyKEn zUj{$t@FNfp>lnM%N<6}c!B067j9SmQ2h9Ysnz~zTYJTW{LhNhBzFO?BB9P$^h|O~> z>E{paTCpp2TB#gtoGpg_7-z`9W|`w1sdbOwMV&(hTdjK}9_ReTW8I{B0+vrFLIA|H zO6NhFc(jRU>{)o7L0r&BEXIu};w)n$zqd?du%@R1<<3@4wo9Ai*;`6(Il5SLN%0HeH_e*fU zE$(A*pNKj`oZ+Zg=ZkwX+`Jr>@P%+!gAXW~ReOMZIRjC+{C;i`IQxwmaD#1Ser>t$ zv)nl#7@TRA`+W;%zvcelmV1%qCJjT!zvguj#ja<{(IRuNoO!uY2&u`SrFF4;65oL; zdVU%>iN&WS3wHy0qdPXW&onD+<8Zuij~63TtZQ1;z7A_AYU(NORbv1RTCFaai#;r* zmxsC7?3uwv6yp|Sy&2g=;aFWZPfrLHM$Rhz7=-xFJvu@}kAJN>fj}4fum^XV7jyed`NXOPwhC+klBE8i(jAoa79FAT1 zu{Z_FKQ2zxDL1^$! zMIHhsOe01=$}@Orrm}PLn-GmS{b*lk#OX&#qY-&Ad_0HpkhVO;N1T3iGy0p4A`e~Y zhiG2nU_(1YG~)E5uYpDp5`JH3=;-P&-Yswz3; zqfKK}Rn48haKYt^4gQOgm$w2m>@K7yo#G+T;JLQP0(n7`P;b&vWeraS%IXx@hoD%* z9TGmBBKrb91{Y*wO}SU*J{+ZR%N!;QYrf~=3(9Y)M!ivrK4|6+Da~9)>GSrjm^~^X znmsql2`b8XE6SIwD4lP*h<`%%@>|jt;sy)x%FZ_{6cy!WYSqTB@E6Xc@~@dRU{5Oxx+LQ0cW<>HP|t#r!s&ff^w3 ztO~f%LVW}fml>PtP(}3v7U~@;@@ZkJYgE8!3$@Osy67serXTzU8?Tw9*XcYasl{M^EM86oF9mA|RHJ-Ow5Dv`6-Rb6xK_kV~MQGYf6P=%`+ z)by8}|RYR?z zlSq?dO6e_aX{^(qO3LF9M%7Z9r`D%3RBlpzIv}|dE}M;o`bu$dGbF(h?S^2(h-j@iQ2(rDOyFBP0WF7R#FJ;Dj{2% z7r0w4PE(07p+DJ)ofb&!G&eC%8>wJOucTV&If>IW3l&bXF_MJ~Fa}-8JWf=}GRaH8 zv|FPl29llVCVM?&BHn6#W6a|LJAt;k_Qfrvdv=0w(%fUyJv%`6Y?rQ--Pxw>(sZPf z4XDX(31T+Z(zv>A5ww^M)s5<));13W^SOji2oI-dTbGGtQASP}#D7w5g4^m+uQGQ5jJX(jXPo8CS!I|E132&~&=OTus*tP9#1|*wW)c(oBlmT!tLtiU$s3A(l+%Av z!^i8ylXBAEW;z4;T3iB+4N&h^H&(5vYp!c;sBtPlrK*ZwJM%yiRaMIyt5>u+cPo-9 z_}x@AC7^6kOmRFBieD$q`$tlP?g0nTUF({SH+X^Cp2All z+j0i6)PbSipOY#o9EWt zE!JCAO8i@3N-Zx2R#|h-MVbGcivgbIb|8~_-B#O{+bUtqfkQfD+0)`}n;Bws#ufU| z45ywikP`oYCdIFGn8=!`KSq(O>WcQDPT+gQEVoQ=NpX^=Pz}2=?VKT6SmlRWmI3qR z9E%sz(8DTaZF2H);#lN5hNedoFY{LV)Q_f9nO~)gGIwIH%ZG*~OHjUSSYE@EaIRv% z!{z`^TH1M~ZVYgkIgr?3B;2KS&QIa}tpZ)iy(y=wxNd}Q!~_I}vXtoF!Zg+Y2`slI zRKtOJpld_ip4r#tn?bZMX+E{id%+E!gQX;~&H06#<(N z)BFWnFAhxXaSIzfgKITNY)nk`aoC`kmWHVnG@Ki&$!2RcTVu}|-Dx}65!h1Wsdl;a zRmIeA%&G3c8RmNJg^Q%>@ib=R!o@riOnMdF6yl{idZ-4Myi7;E1^%jX*A89MPJy!Z z!h{)J3#dd6_n<5k$|r8dvm4JB@H~!(_h!9}=NEX6;5mxtew2}Ic129=+5ywUR-=%; zZnaM%I|G{9Gp0~yJB{0-;86whkg}sKab~DxO1?1z842p(_#Mx4@W!PTYVG{M<|P66JL!~7+)S(4rLvbGejBG zKdlUdt?(j{Sf^+x2*3x3s?JzC4cfsoVJO2LfhYBc?r!GM*84IH#o`P?809{}FbV>? zk3`2?g|KW4&D#-nJi^X_?b4LH=kEt-3c{en^}^sJF9+~khA`EfnX_vo-m3`9M}#qN z@8S7Rgzbdwrgzb%^lhomqLF9|Dlyy|hC2{>eh17R>UGQEZ)AlKe+GD?f%iVbi2q02 zVR*ZR|0evaEc}-Q?;zltExacLjyuM>Hd^q{2s{t?dVzD974H;ddaZzOu;7&a621)Z zb_@Pd_zmBTKU46|vgjrNn;>v3MeJHD@d+O$a7^7?x`acw-BmC7qyJ454AXxe;^S2k z{~5pz!e1+R^gjqc0srl|dwSVy7OEP#eu zvj8z@mPH7$oLaN+LD-CsII3i+R;Yv@)gYAB0hMr_ifAC|I7 zZwUN3*rPz7^hUxay^~>+9&OSi9_bN}^oU17z*YP)Uk}0$6-H_^Y~pVe|0>ulk4D(o zlcLr_kdIn{FBAAu*n}?;_+o)C6!<)W&k^`6fzJ^5bb(J5_+)`k6!dlvPd@GPBs?o{=HHYf^PPkLF(8KSR^T|3(_pNZBAnwQD zo*{1bcOMlu`@5Cm-UD}@ZWJ*4@h)+bq3?;CefiJmMn)(b{*Abg!u^i8%TZYe#p2!o_f6v71^2&+dmr3i5%&vltNYYYDC|Qy_!|f}#~)MR#=kN- z{2KR@mis>}_xYBa^~m5av)sS7+}kbs+`nM(=UeV&mYd-Q2W-1;{~8YE!*XfN#@n^9 zz<-YnM@-G@E_6qcfwd6`o=b6A4+v_M*dvY_Ko-I(6sAU$g%B1(+IYdb%j=des^j|d za7G}|6ri^@LEn_%2AD-9?nqt~IlWs@Vw3eKs8tT`>KPViOM9Rs#<$nCwd>KiI}cKG zE!*eLvs|DWq+jcsI+To+gnq{}P}m16S+xMdO{O^rsB z!t(`6`T1bcMMxAF?vtOG^Gr|Y=bd#9Ptl`UR)Rv+-wq~@b*+Ej`j3Y&0pR)#+OX8a zzJ{hZ>py-1JhT4eIdrrfcc3@lK#Rt#-H1E4p7B4C!d!}p!)!n&2XPn;dIfC^jkt62 zu1Q0mjfRuDtbhsAh*|&9DT#hwk6mptAsTV(Kl(x=Zv6*oEI?iiAKb$%eL{$jxb+{; zOIiL7eQUskXvD4mAdOoPxtBB|*MBU+pkxzhw6HVtn-Cvy>py?fG312>un+GRpPkPLjoAJ1JVyebi<83`hBPu5b4mRG zL>r;OH4~9*NHU-?8>p3T3?0vXDexLT;?|HX1Pw-S6h6v1xP~8}qDxh1#O{w@CV5#e zG&C3fU!kGISy5|9YC(flV}qNjjvtYinz%jX?Vzy}(e4mFCL%8Za;7|D*P&$bA~An* z#-I(fO%xy0qDHMD83!6H!#SYAczfgDZR{G7iJ-wxW}eWncyY62+S7(+wnDf}F|g)} zo6*>WEDq!aAU8Wbt^b$-8tsU%G{6Vuq4kC*5@TPp5BcQ0hWpPK0?4`QLOe8d^TBYQ z(+Sfzz}0($r4U?QV9w8=JwE+crD%QLnw zBCxuL(=JJM(@{FSo$O20x(&10+$<@Z07;2SNRvz7X3#4vFj7;(MXf~Ui!LDflCFrAle?>cx!tx)-j`2 z94lzHgI|NxTs>{}6R0KD@`da@+Mi9e*Vn1YILB@-VAMDJj|F7fecTY9E%~n~hHLAT zI3L>NAqjH#Rhz>h0S<>44xJKeoI|$)LRbg1LsP5Toy3?SsdU95K)!=#=ri~k;FR)R;eA-|uQKIvqHpwbn6DIBDdH^+ z?P}%RBJ-j*^ z5?iB34aqzsd!v)54M``UO?Or+ReK_dizIkzC@0Q z#liG;;h}k2Y`TqF7%F1XC9f8xF?7ig@Uom}I9MiMz1h>d`%m57*x>30} z2jiVLbT5Is6dw!SYvCRv?wxS+-E;pc>;5RZkzv-o>jlm>hV=@hlzGB(L*MJdzihdO zT5iTOas9dsvmaG8kWFnXczCx+^ga2y8o9G&f~-@wK_P{Qg%Yh02qXM|pcv>?-x5M{ zCk&yGh%QV7>6&>XM7J{+D`}5FvNm5@^7_Jv_AX7k{|{`@w1cANaFl|F@@q;WGB8{i zN|N5!`(UR`G}qQ>IeN?5I=S#oX=`xM%jyOkTjZWR8?~=;Gle5LU8i$&N0{gE{d6IW zHc|LcH&4?Wx%$cYU>KjK9p7Um9et3iGyWoUVE@U65@v^Kbj-K~Fe3+wldHF*l^O~< z!&U35$e15?yUMsUV&v*uAP}TEot=c=glNRc)%!vtPOeTG>yQ`2$3rL&cxgg>#L3l@ zcpqqnoiB)7{ZY`6$RQeWa`mC0aWQCoTWF90F;O%kh82Nf_O8gX*<7eRyO z#$M2fldJcVMnSoH0UDY?{PrZzCJpxI!MwPI;nBc)`sh88wfIg(055|Mn(+?e-Li;K zZP;ZiW6PqW_IGXo4R-95tCL0wl||~9MWgUpts6muW3Dl743)I0XUc1UOmnVV4Do*m;SPt3NH}LHWLIY&wQUoLv2N(5OY^&7i?}Bfy8K*<6xBBUWcJ z2kqw=V81Ce=79!=EIuPNVrBEIK!b5A(2m+BDlc)e`SqZ|cbfwZ#@iM7Zq+y@RyMx@ zG*Bc?rO>c=aZA~>r*X3R&7i@0IWCYFfZXi#w7+w^@G&Vs!+tkC$@h1H2FJM519^e0 zzTV`E3}LwGJczQw(E!eV43PH$NO}H3JT%M;AL4?flJUceG+m(MX41ldd|z!J9C4UH zT#$PuN?C0m)S`Rt@62!iD1jo5{{hAEPv*DZiX`)iE%T3vgnj#U7Ser0f`p!12R{op zuFG9((Z05P%ZSRu+~1kszTAq|%xF*;ET{cs9;yZ-zu*2bqP2TR!d}S8w>29m(*nuU z84+oYhTVB!gxZOizpWKm`R&)^ck5^VgE1CYX7iu9g&7!Z9W#q-e^p&N{A+HG1RFnt zP4R&)xPP#oAa1nPPv|A z$|SC3=54-^W0y1cTJ#-Lj!q_(8OYr$DtRWC(s}i^s1;vDXvqrv>dSuzr3MED-z6VM zs9*5?Wk9%maOl6`2ZC>waX|2$E^#v;f^U|1Iw1H~u#n)JxlD%y-wGNf_$DXmpy2y% z0=3|~nC$jW@NI{uDfJ6J!f+QDfKR_|GFZCZrv+u*HqnJQ=iir$+@~Xj_-}(8JZmP zpAJBw5<+SEFr6#=5p2?X9O3J&@NWzJOMtJn;CBIz7P)Mjgnt6z?N<1D zfn)U2Rcpa(0Ec|M>?#R|ti7wz3ZDl5r>y*(DR`#>*-bAvWIx!(l0#V{wRK)E)xbd}p*-XJ|8N+KfOOmTRM%GBS4shu9#?F+9pAH4iq* zH^un?)1%BA<(!%bn{=2C!z*DEKL;Cm^2z!!Cs49}ymy69Jn}_6@&y_}SwDl7%$-F^ z&jU!@$kGqdjY#~qlnfjMS)YfZrJ>B6_5Tuavrez08v;7cYdXcf7w&S<83?9W&)F8z z&2OR#aQrKCE`E*MKDY5k3+FxyXTRmX!gBw{a=&M}p?h)ZA7{BoTW+Rrc%Vqfxc%~W zrwa0*nx<7wRg+fyVKh~T6BSjP?zW;;?e(oKYXZydFI_a-oW~B~LDhv9sg?WH&FzcS zA;)Tbi>3NFB^<{a#|YtLI?@Pix95mFh0$uPjlk9jGZ)OAJHz68va{Ru~h?C=!24}s7k0qzMZC!|uI63}!bSmg;osS-`GqMac zRHtT!x&WIpjg#YZZS4Pmj}1b@Dv}T%pb;s@KLh>HM9{eQL@Ty-hG@je@vG4v(QGx9 zQhWIuq7f&@?)Ck>F<@i z9Fn}a5iN&Z9#Q&)M?oVG{KEzFqQ)Vya{P-ifV~tn+HzLHaQe$b(TH8^zY{d(pdb!_ z2IJMEJTCN;bL&{#9fhyrdu17N^D}8|81J@0*1Oew#OV`W2MvC*|g+W8wv2a^A-ofGh#!IjN-eg!owPq)5-4hn@z;&wiz zQofln)_bamj3S@!>{N+YAZsdd9<%s=ph3uY-sb0u0WYY41^lw-AK5ZJvE^x_u8xoeUw-=@V4D*D7*pDQp9NV0NawMl zHRJQQ{g|9>--^JkpScXNwPs{LCUZW`$l=i>;?e&SBV2LRuRF=IjXeA=4~oPokh$xs z)T`Tvis|T+IBzO<2JYBD@LT$wcGCN4&->W3%7#vTL32srSlkdJ&%;8QS!H%;Q-p<^ILz-$TOl%ky`Am9HjS?j90qZD46a zP{alnb*UltuykQ?t6Q3XtZvGhF*Kn}wdt!iimMvco@I|(PIX1A^12KYl*{Xq)SSeZ zNc4eN;AxmDC-QRvh`Hr7EKp9v3{R!jeSr#C>YZUZjC^LV6k27j7#90s_DGjo*3i7V zrAA$7=Ojj~MyHDJ1SZL$LSNZm10l4U(X((zsf;ia15grfMn(lPGRkD6*vg0kqJWFN zyo}OiUQt}FWd;cWv^&W!gH`pKeWyR<>^FUudedZNxXsL2yOCk*O`qj5BX9aF^QMy( zDM#FmCBr06wUfEvpg)-lg2`OqCc}+wDlbSTa1w1dE*D(pvxpHe;%qQ8P(qcM) zwbN?gdIjr6H3ZXY&}p@2sl{Z}0k(iC(Zmlud1u@ITPTve2F;nuxn5lAo=xH{4Rt{Z zgI~_a)tAFe%s|a{znqWnL5E?L!N=V)s8&%Cv6fv5kCgphT(b5@af>Qzra@VYo6aqP zbZ&9ek&ogQ^Ip@cRn9Omqva1B-uhz%rZT_8uhxtY9FCU9w+x`1Z8%#6bGj*;U!{@v z>Ie@x9sFnFj6yq45~(4nid1^&VmQyoGi)Y)(#}A(YoI3P;@F*4rI0M;;hP3!z>dRYsb34=4T70Ih zx34Lf(&Cp}+t*mwT8m$9ZC_JRrNvkAz3pq{L~HS_Og%-Q*5aqhZfX!4K2^rPHWS4> zd@xH_6*DzOsX=VJ6lS2|1MZ0)E;s9@2C?-qxPjIS=pXdZpI7K?Ks@w76NJSZCz}Yz zd56j{<3*KNy5Xb~h@KkAmVxU(ybU{6waFBn=F+fwI=-T!af--ABvPWcca}t*C_MZ% zV7R+8t&K~W#K*l8g+B=-6q-I!SbM=+nu;-og;B6DjdlVOXaJV{BuVjFkD8j0~{6h_1Fb{_1A6*^#SFP#E_4 z!Msw|oFMF51LAFP)QdqX%s$7VW}o9Qv(NE3n;=FRTvFmYvDo<`dm!gj{Qfg-g!I0( zm_;ELf-Ln2w9R@iq`d|rusc##fH=vyJf--fY3EFJCh@}LsYB95$&nT5Mad5j!O_Fd zWI8jQkEESF>FSaU&LU2ZX84&1N{%0r96JP6DtiYgY=on9JRCUbyQuUNwgX2V7nLT@ zRX5evBT8mB_FWS8Ah3?=t83LE$jPyIi=V?d`5ins%9ulD8hX#?EA~L#lZ37uhT4pu z!q?Yf^|eZFS9pZ`x6C%|;kq{(>|ul!JD{;f7VdyN&}G=8%4!sZ%92+>>|lGi9q37H zw1X(t_~N|QaR;7(hOfZz%Rd4SbV_#Ge5GpYNr!s5>;%~p`DX|YJ5+$Zj5_QWBDTV^ zL(}m?$ErE(j1lJVuGv5X7|5K%M&FPR_BWg(+f!(cal+#z_RoeB-*m^}Ak5WKb1Y$h zxej|%#*3&#s+7DZF|R8D~8oN=+%ez51%Tqv`s()&+r2@f^hSBA(ar zq#B-hUGKFP0-9$?gu8FNMR%9b_FIkN~j zH+n`6i|%UCvRHzz@s9VBa;yQePOi1?hK>fD+Tlf4f$eKra;URvIYk>}^fX*2M}62S z+N=DF;6E3BOyS)JpPiRhxT(-zvn{!Z`M}L*A87evKWpFz+n*WctaAH=@-rv8$Ccyg za&w_H4>EUVjI{@c(Xjqr3O7Y%(@|%yfm?~p;75>pU^&#k zQTG)zq=~lBS%J7K5k5~4OqtTlxNkw;_oYMiZ!jO~Kwld{+`+P`lS1wq+4#am%;QW z7f7FZ`vTIr4LFqln7TCyz(vN9V`T{;JU(cP`Soxu6^QxWza!q9wq>s;YvoW*#4jj-Rt4z7V^ zcsrhNz24n@&<>ZgC7A9GJlFp+`V9ZQ2wR9SwQR@m1Q_Fy-i0w?hY>afVdueid4iMt z;H-FO3BtD6VHQ7?2!8_M7uw-+j{gjV9Y)ycb{O237CHCwUBc|S1O-0H@)yHD7SDVv zBgH-3T?g^LiAOljiSD8v-uQoqdV=yVdj;qFr}R7Aa|>Y4C!Kp)Z;40$LBZP(JbhTH zhCdv@`nL2tSI4_^$*0ss;Zk z{9}ZF;=LqzPXcbrf$&G+=b9E6MepnIn{r_IgLr0v{vNZ$=yJC>xftr^Du2@Tp=?7MtZq_&Bl0h+Qdm zPHcV(#AEwKyFzTX)AX}!X|o@s&Gc!*Qg#KHLbH(KdhScm&1GSK1a<~C-cgEe+Z=X( zu!)CytMHg#;xWI(J0kX*u!+a^lJs7OO}tlO6Ymgg(t8Ou@m_#UyysvO?;vdAJuUVD z*u>ipn|P1HCf+{S#Cr%f>FtG0ya!w-jRb~|k1t%6OwM%cuwm+)HHq_+$<@s`3S-V)fvTMV1@7K%L& zHt`Tg;mv|gycw{GHyt+VO@&Ro$*@UpB5dM~gMBgVF|dhW37dF1*u)zFn|Q-vlTL-$ z<*0)JEB?7v8FFKniBzu3HUf$+_+NoON$ z(%Ar;=_s8gY#xosaDMj;p9h=qCc-8?o(n{~Qs5cb#81H{z5|=|j)H0OeFQ%Ye-k#t z55gwB`(cv~`yu-8fQ|nY+Y{omJt2NQY=+N*P5c?+9|s%%sWJE=ekE+;^E)N}t0-^c zAA(K))3Awu05jP%?Pw%Df>d$8&Frw{+3%>jD$nE0heCaW9bI$ZfaZ^q* z0xyJgC?ENVxH-R}Ad+y-arTOv@{%8mdokSai<@(h4?!eIe9l8YN;fJH*F5r^I=aW< z=@j=Ixc7*=7ViHR_eQvfmT3GgxTlDFKipS~`w-kWi~AVdUlex*)_x>lxjK) z;r;;L@jz5I&WApTcT6|uL98!yQzrBn>ml5nBUKCj2DsT?5zhJ3e~6p&shz|}L&35A zXmN8KeucO>HhxFwQ!aMCq)QnT+YZvC-05{mm$JC&LZ9-nABvl@txt%X@~~RaL3Cw6 z!gX^wl!0%x+}s;x;7?m_?%X%&&Qvt9Y1Eu0uR`_Ga1P3StRVg7F(FkEG0UeT* zfGHfl!O(iE=u%R6LD^^&TVWMW2rEzxqZ14vsW%zD@ve|6tbnpDJ{r{w=EI$4UAEoV z7?f_Cm4Ss7nJP5!R&A}D2@kx`Xq3Qv3L`~)wjrdz3n-vERJ;YzU1d+q9YT>!hr7X% z`y9_a%j|TltkN|W_1j!BWPP=<+abd^(HkJcc>XPq;c)LmGeIC`m6I_jflne9D^U3&@ggcj6kgy> z#5ezLUV|~b9)Kt~x78fPnxpCI{e>if^!UG~=M0CN<8dv+@)0a5$D*J7UN zykeGTURG{48(FS=EyjcrOuoAr00K zVA8h ze}F6+h4&ZNg9iSc_X2qV$R*j+{^AzNOA+#58~gqCbY5vYXiP@r3~0Cs!w)f7y`f1s zM3c@j;81q-Abu7C2po5RG1KHjT$T;<7H4?3v9wV>6zui1_D9x&ggGMA>@S{;mRocA zkKGhmu$ygiGu78^lGmbC)NrQ|{Q?Jfjzr4tMxD}&QBu~1pi-*j;m-yxzbd_eg&Ml~ zi@c=ze+<87^G@dT@c8!T6mxIRDnMm#PCpf?Duo?{;lO9@Cjb18g1C zNpHmMRKsu-r#`w9t%01M$-AWV_KISAHw3p=lz1m_mU<^}LRUF=2=81hi#maGfZlX5 z(A)cgBO^*n&qJd$$n3uuZ1!I`4Se&?Lj3+SZLcU);bS&jM0{lKDVzn#_3k9j!a!5;Dj)ORkF@}959~#CzWOv>g9Qx&$j$<<0904qJqO)}(3kVpDfl_q@T)ZoC_lAk0cEAuEMN$t@JW|tOFWh%@t8C4 zLommS$|gRiduM|oqbqKt8w6OM_lle4ug*vWoMlQKG4+!iCs9XCH}#_rffjXfELW)J zl$-D5HMl`anf`DX_go8JYq_^t?%kG~@l4!;=MZ{=r^>3Hs;gEp*fHGd9}bH7Xk>8Q zH`P?{7}J6_m5qpIO7tI|W-tOLd~RT&wjpXH6)Pn#M92sMqh))&iRqUy7L4J^`u>)o zB4tb^Fnzus=&XtQ7(p#(!mbup2QSv1aUa_4fC=#tCtrF~>ILt^378O#IQdd9X%v(%6`M+E()&j^jSxHI1>(5bS&ohUSpf(EJ!jax!OBUUyv95il1gvo9U z6<-E^+HLrVyQhff6JuGA^N{fI9{6Cj!>8y{6&kVU`8@<0e7(;J4V|+8S7<2tQsjAl zpuwa3UUE~_@!iS+ub~kqvpWPD4+8I)@G%*KG-StTghs5aY%^ZuNW|#E0LwN}e8io_ z_aJES-98N(jK{r!G4D23R<;*3Sf&SshQ*6pLZ&^9yW3|UXz*RW5XcKaZgzT-bL|I> zwTN&izz4dSdczZmv9Ean`NSGUhwIr_VXzDwSI$K@AC?Q7k(h1_A@N4eG%G($6r2K= z;qi92^~YOR$HDO!2kR`cAMyk`9013Y-U*hI(jMlab=$dBcuQ(Pes)EE`vcm|1KP^v zfVQh}WSLIpy8I@dr@^Dscxc)<;>t07O-$gXBl%6c@uJjeW)m6eon|%<2p&y!USC%6 z4x(=$PX1b)=T?;8^fShn1M>1WmGdaPLF97N?}RoJ&4pOV&X#*d|3b)p$uO{;FMbywWrFraMWA^9R# zfDu>rm*vFUlKo|0M>%TQpP_`fj0(YD$~sz0AtvvvaMEg?t(rL}(T}{Q`hNw#_VnAy zP_DOyR4~lyx1C7EM50_TTXG`O>@kDpZc8Uokzf`cv9nPT$VP?9hEwv{-VhH>h*4rE zB$xz;d2VT)5J=_(lT1KTdcr7HNJvU`c@&ce5sqd{x$x2_9L*}BC!iu6)g@{+1fx(H zBUSuU{3>x{wv24(18?GMgp)1G40w=KM>*M5ax169H>t&;SvLV@0>@R1!b<#a(BKdcxo9Xxpy>%HGoFC5*cNk^jK`TSn#!qJ zBRVY&$v(3|*=MwH(}+GHVkkv-1JUMr>U-qoX}vJ;y|PR7_!tO4Y%FwRVy3O5R&66JRa|CzwPFot&AyJ zhb>6ql6Ckgh9syCh7z_}hH+TXaJ37<-w04Zj_;D0OjQ@ zLO93jG)(i;aI+u00q$LJv$G;Sz9!C3xEJCJfYVQ&_Q8KU9-ba#U;wKyBYq$cDTLEZ z6q{}ww7^3bW=x%S#+lA)eJX=@htUjY8gR@!lY@2gOSv)mp$W>2Isf95`%`x}^We&i zWiK?trsG+G@WnCVO9B5J!qvFS$eiW=qYhHJc=O2YX)f_#SiTx zVxKPdX=3Xms2n9{2mh%YXh2k^l5+tsjB;jSpP5wQq>H6 z(5v=zaSjD|pZ9X@Mm(m2a#r>Z*htUao5r#v-Bqx`XQ~!9$|to<;H*1@FNDqf&x6hI zITAig;4=iyx=4Cc1wL8e69vwEGksVpU$a2e=ngiDoAsPSUc&jUzD74P!FFy4-Ur=m z-{y#$-ywChg!5Z`lx`Fl=ciAK`z5%G@v#wp4DKo79*&W~R-`cyh0X7B6y3-$>+TY9 zv%Y^vaM<>;&VwaoIHkTYx^)L=rN^;0YUUy?E*8A zSXD`(!j(wTnv%Xn^sR_46g8kRDS+C;eA`{aTZn`ine_@e{2mw$2Kt#Zr|N~h>bIwL zz*EjRXNt8B7;EtxmN)2=yBD^!wb!*4xbKOF+B!M?t;gw~ccUFz20YqC=Y#E}%JfDr z^Byo6Ul}y2)FGo~-JtyV@nnF@TL`PFnswF8%P%s)4&%Rvc5o>>ADAPcA+k5Ln%Wo| zaeA3!XvwLUS)zI@6HD1)8ZmmAZU~fVs@U=RO^8OEUZyWJ;`B14aRc&V_{gC@k+wR- zN1R?}mAsGV{tmqiX?zyt&`TPTdYNLp(aqjL?YH%TSi91}+%Hkj7fCesEZ$jHN?} zT(jE+8aDt_Ewqq0wA_~hx8WmBFEbot5Da6SwZg{+@WJmE)i=mTtX_uVXy)Y(p#f*e z2p>vd8FlZ}WTCM`XzYzIk67K#RM5cK+u7-IuGxqvkD55$&O*@GiD-L;kA2`HK+cqD ztZs(~c%BX#b1?R^O%xw-x}D*uP%P86puu=kF;JHF!(~UxG*-7W0yI!Xob^J(;>Ds- zcpY@5^d}nwc>ygqJ3Z-k#(_pVBHSL}1HgpLv-$ChETA9*eC@`&+ zu_+)vqlcGdla*9|&OB`~oz}usF~%sgt#w2yCX!lRU2+(%IR4F0)kzFakkhZ)+zt+K zJJ@jRlyHf39L?~E)=3OckTQpGZdnWuP#xEpXEJ{O znKUrruOe!7`K60&JXaZG17#}OlMY6m>5qLO(7`+tse(x-lCy>+`=O9OjYb9E9t>xP zg&MnvhUo=Fi)+V>EXHOZZTpViG^b>z0guNR+Xtu)Y+};9u)VgMbGA&b%!#d&zgQi9 zZecBpb31xv+w8~SA!s=EKd38r)`-Ql%yROw)1<`@cGY=Zqr;Gccp|W+F z?UoXZa4zvBJUkPMgO&YweuziSQ4k(oIQWbZh9R4JU^yIvM;T7(Q8Lb}pvmzu4b%A} z-0a%^4EJB)W=BMNq|13l22T;jk9<{z7urBqhUu-vLnFEX<(_fInOb)ep*X>L)pqfW zWCWHw4F|^Lvp0H_hoA=`?{RvR-^b`tIL=*)XVjm&yXV{SapvqF;m4Gt>@{SE`X-n? zkKpGg&`Gd7jQ=?}h<5;ZV=Oq%yXxXx%HVauf$}WFci2U}8R7N#xgGx9I?u}A2^i@? zH`0}}@K##sGTtSYzYPA_5|6r(5fYDZTQ@S?f>SqQ(k0$Wc(HibDXK|nKY<_G-xYg^ z*gTh&@R?#)A};ck%E5-Hsi1Czc&vZKW0o-uG3O>KNfY>Bl~Otc);&z?dwsqg<6$n6 zMR_WIHj2FgHp)}!Krod_ErXwQ`QDMfPY1&AITAh#HuE_HHsR9+K2_k81wK*WtglQ5 zmg1j#JB$wGBjRQq<+)&l^ZUAsZe)~g5S7_cee6Z!(A^11973q0 zi8(gO=3YA5San4_ZnT!7SNJ~VL_~~$P9lsEGr4rN3K20(=@r5W7ob)+^i|(5)qn2D zg6q}Hp!M>)nwHjDSKAPM&d6rUopbuT%83jb5T7}K#;glrw28t8$4e^H8-2q_bh3<3 zQ-7Qu1E3Y#paA$Wx`NnqMiBogw0cjXy`hr@<&Q|0hV8S$F z^bLPuhXQjq8)Cl+(TLMG^o2&8zJWBpfV>z!cpj*Of z*z|hR6|6#^&hbbEI$*{-jQYV(Cqh>ct2^NtC1Vh0q0m@%qWj$fs*T|zZchu(C}DZ5 z6&ia%L+ZNw6$*`5eZxzj!B2O+(BK)kQWh4C8dR@_<`phq{_{>=1r4@2ym!eq5oH>y zv-mA&@Re-q1&uhJ1qYyeL8D9Z@-*^7J&0|jJYsbgdqHD9A}kI>jLS>Z*)3{-3mRRZ z!FX#&#J-nUoka>2itmMI@!DwvWWATdI*Y9INqYl%0S%XAPdbYV&|sPF3-E!asUBcu zNQ`s24ag^o+&O?Vi4UV+0*8Jvp5UhWv}(<{RA3l4p~QLdkAv7bVFt9AC5L$-|#U=)`9>?jN}EK2X=h zx4g~mIQb5XcC*k{Fpu_C(X_E;=EFj_{W4*g6xUf4M+ij)^C+fcDZcU7?r!k;=_dw$ z>xs?-Bh+Rbl)S%ezQnT0SF`-2P#;3He7=s5Svu>o3+QtUm|wARfBWcsXM>KBVZGsw zpMOE1DwbQfpjdvh2|rsqzf7c5<>6{YvdJRJD3<^VVx{@c8xR7@Z+s=+sW=guV}Za; zRW2~!QL$xm<>A39t#f7{=@^;s>>yRXBZ>5<_eiy)-^6E%-|k3$En#K;`{)kzr~QxB zY=wr|O(-pG`l{EeM31IsSwWgPGmUT(!&I-g7zwy~n_-nG3QLDIY=-t{o#X?t6q_w! zAWxFK6n9)t!*~K4$f+(nDZwNju#-6{kjzOYnUq?okT_{M-w5_DwbkK%#a7Vxi~>|R z$xHE~qBB;A4P4IGI=6Xw3;C%`ke6a)$IW(SfS<|$Kb1j#DuthvAq=wn6^p~2^!H;~ z#MPBG^>sW-)m^?tj>aW$Uz6f!H0;C`{jd~rIlzjmqN>M)v z+8S0g;|9W-dJF>-#pL0F1qerH-I~? zZUa=be`U-#Fnq-U?ccy1#2Mu{S&~SVlVPR(3w{dJ{Tbu|IPQQ`+gcwrrXV`NEUy?! zX|COss);Ojg`|q7;aBMZhn2CWfT=}#1xf6vVv9%rg!ZOY6Pl`5 z*2zYc@n=q&a`rhB7PWM=*3=mbN{g17mCl4&b*t+dTUOPzPFUDj-Od|m+a@$DtZ!+q zTh!3h0Z>cp_*D{OAupPBNeJ((@e{|l)vlbdXdM=9Hcgn|5{-`J_O*Xo=V>|@^bzshUUZ+rf@sI%6$zUZyTxIfVZUsL&892yWz!jGTG@QL z4I5iSd>_FY#bjxK8rtJksN~JQutGR)X*g<-5ZiY#m*|KbgYW20rlIYUhUVG@%T)(6 z&2i6V=H1Qen_k?49eeF9H7$+P94S;NM9m$|QN;|dBRUPrN;crxjORW)58`l!F*E=fe4FSkW5uLfGa}M!<)LGJ_}s zwkV5HymLNJ!#q3;H%D;H#{sxGdb$WSUVxjUDCX;@aPw1T8cdHer)z-o2H>oMtPeD_ zIX|Z%A7cNjUZ#`QVSh-(}(P zzE9%q0erUw{~X}RYuTp&r<@8#rS~s_-wgOJ3tla7G*ewWEjaf@kv{G)^6`Otx4I5l zc!LD*uh{#yS>VT^oZiO6_*nVTb%zCiRp2iK;QxhtI$8I~FXKNhcxZopbng>5beUbZ zTXeSx{1XBAngHDug0~<*cdo#v0lv|q%T3$N$0-5$2?4tAK|gNze;Ao~3lHP{8e*~a zLXYsD3w%G|8!Y&D;HPX7W)Jc1vFI&>|I>I#4|8#s9^st=ZvdRa9GE@J@Ka;aqkk?Q zh;7TJ0p2cnw9bH^a#a|$hj9!XOb7M8i*jEB$2aKakKmI~uTeB9+;gk!e?>i@f0Nk3 zy^ggAWcV_%`K{3Z7qKr9_*C&v7W;IuPZN8j*qn+mK4omQF@jV!+bQ~CDVy}rM5+52 zX-^dYII)>u!YjqjiOuhxaC}S3X8TA#+alVms}DW4e3Fo zsP=FIuJ&-!COzVj9`Q(zcq9Zhi25Rcqv+D61H33Wg_V7My~b=Osd zFbb8qckfQ0qIs_>KH12(6^|bO!t@#tIT!RyIp|YuC+%t9>6w!zP1g9!O0+m+ftp;I z%Vwg^0WD|elhf@K?~#czCO6&B-%*Er&ClQ_cqZY0TP< zxb+{5e+i!PXy<9V&>*s}fkDfzjiC{@{$oDcd5jC4bt6p-*ACN&S^sf>ia(emqqJ@P zhG@jC|L6;ixb+{TkwYJ4_?UIE+s}mfh+F^hItEi5ua=*xb1@Gza@rZ95x4&1MI46l z2C$39=!n*D6phIBAKx44IIke$@5WlOwKGH`ZvDsI@;;vVP|q~t)_?SpM#1$T1!%a8 z^|V%DH}b;bJczuo0Orkc*GzCYrHrNDkK8NzG-%YKejE*yhg+baA~YZz=MGK!{p(Q1 zp?HFj-#?MF1a(m%LkdHB_7kd$T@tIm4 za0rtcjA4C7@)Eme^(D|4ju@#)R)gWA;Fd@1T9zZA!TgU98n=JMeJ?I0Q>JliS%%|% za4#e!9) zh1Za*0*(HNxC=A_#x2&K?*CaMdHMGM4eqZtrl)l%>p^1&QoKKqm(qxJD7)wDd#ZO` zhILKF{>lB0)YZmkaT5ElQl(1v*j(eJFv&9XrsZ^Q3bYb3K%ZJ}mW@W2C6Y{qB6Dki%==iI z;hi#jm^EWbe)Cgk0I|B}$y6p0TK#j|$t=-YX zlRn!RZjqZ_nA{FOxdB2hYslRZAoqXXiQ;aYDh#Ym`!?z{ zYHL2#FQ1>wsPYYb3(-1{B?jJlD@rZjxekMFwG?W;B+qqFpCsw0ga!#*<`H-bYqwb5 zhns+u&#P!c`Wgi((}XIvtgkHJ+W7%~T3GFt@0^F~mZv*IR`UAIj$stdYmm`01l@|& zaNFbg{Ow=B=j=CQ2pnW6a&d*1GcwPv&aH0Fls31{HOpEv~Bk<}a0Z^!*UpT+jhbB+w$ z_<+K83olS+Uj&x=gbZAL{|bnL>?w@~Am;Nbs??3E6y$A8!%@h?by<7g*4etqV@me$ z35?uXBSl3{GKyRgA(FtKv8&b3*b0VPwdMtdVOQ~$#NhWMG`_AdTC8+-6OwNOB>$<4 z`P)$rl39B^coR@$)u;bUHBBzQr_O1Jt6tKrZ#bZGQ+d9#-|o2P9 zmTcvgA08eJx~f{gW55_Rl@o}z>oo(L%zCFA-lIp!>-#!HHM9BIhjo?ytuA-Fg?&c|{OTGFy5_lVKD#xeY zf-ygqE`M|DW7~oMn;SRFWaH#%$jnr)bMc-*Cg75h zI4bclkVx=HHqlW5qN5DabhV0#h{RB5%y@DTC()ltrZQi{uL9$Ti-sI^>FMo&avf&> zPZFtwNL+_GDs_4?lxyMB=(xC^cZ_0{Y>q}uH~(V-td8+mHL(%5Uy0^6b$2+eRn@KS zC}A#3MA7JX$OKPU2{N%8?F3H`BzU@)V6%>ls9BR9*O&y}XmdkNoh0VIhe;|ert>{J ztx18jCV6Sedr%mB52-Z;Q!-`2j7?REF`;6VhFg+T1Bp%b5;L(8*DcAH!s%6U@#m$; z9#c6_rNR_Wwo^GTkji;(DtzaNHWFeKm7#Hv!3B!0MYhbc_>jbGl?2JJvXht{NMg20 z!bzk9^zf#oy|> z4HlL;`iY5H>#U0|FFTE)qwvu(aw_>Uegll+l=<0ek-A!6yMQ~Hv2+e6p|r6U)F;UB zM4RdQ0Mqq`>Gbl(YOHdvKNnrPssX3;3#ZoJaXrYcQg4f7Z?;LV3Xoo9NMn&jn3i5! z4{B=_HB$PaO>J#}+FFm=_rla#>)6(T+6G09ls$-b({hQhRFH}?92GV?SMhP>I{A#n9m`#A$4nO>eRR6B))kP z1_-xmo-6ztI!c%Y+0cz`Z#^7(laW|kg@BfRuzp8mporjJ+P~KPua%tTfVXqZD9a43VJiV*jRK9OKno!bVfkNGv#3Xw8Zz3!`g&3=`y8PbDVnj6Z}>IF%2BhngzzkFSa${mE&nga;L=T_Gn7 zb9*Ip@cnsEQK~GA)L}qJ)&OxBK9;lqyQtbtb!|8C}bN_boJUmqqyvnF# zEVAJpq<4HOeFArHo{Q(ikKhLf>9L-oD7~8RRQ4}1#g&zV^u_?Gf8Z)31q&Ud$I)j0 z&{akX8g-B!Iq4s~%4j};`XIgjWH(jOzoS_;YBe;suKqu-Rg2CL0n>C?0KavPxgf-njTw9F|yw*InJ#((EY67*vd+tXb>g zFtOs(kUX*EtU+d{cr2wQLY$^BH|mDu-0_2x<_vzKXrm)>OLe4y>+PN{MaK<^;Wi>9d*yS)aZ z?1oHs+{>+iRN-yH8ft}r&0)+=Y3a05*3{#owowh&w^1EmiA$-@1JViR3aS&`E2u_b zq?mL#b^2%8QsuUc(R-=<+oM!d?H+&VMU}l&svS04sl2wxj$l4?z)+CZcV(h^+x!f~ z`xrC?jV^}&=(~?k$OfwmaEDcLyu1C%NiG_yLTtw{fy^>NvlJvVA?=(gLGzA>YmRbWMN3Dzayy(4D(ICa&Ryus zzltZ}Tuw`q>{w-j>E{RzDelHselH%2U55U*3cZY0w{p6qxx1euzl66kJ0wX^&cPR#!fuN`{|HWWAfTqXlF@xI(kxY!3ks8JL+fMNIPDiFsjpj2Tg4c+W!*1NowW0umw%DPmG-rh!p2Wi@w= zkU&L9gd!w?lDv@_Ma=dhre6`Wn&6}%QjXyc{IM_@!;ru$C^+Yjn5V?eDERffh{vny z9A{s;NRPWYnl__&4p4l<7mmX(UE~|5bEIQ6{Oasd^RgU{%mPC~$|2Px13wf~a+qwd z$8|VR^9|!Ty>M5jQzGJS-Q+;jH%w;M`e15!>41Y*gN^=}4K=sVY{!K;b!%s~X)zT~ zk!@?QZieU($4Rx+E;2({RLDg#N1EoeRyVZOO+y2KRnF6#>PD_AHK)(&dgD}gU^XQe z1)3mJNZwJkCQ)CVbG#4J34RMInb7W3e^qm;YikYRHhc@%B-(-TdaXChcb4UDb=Jf4X=Y50 z7h!H>Y-(9uXY$-y=lR?$MocIuMb&ZI7S^@$ZMtuG4cIW`%-eITf|<=s6P~3sy)NCQGEHn`|etop(Y_lnwFfkKMNO{z+^8?~@EVy8l8ssV`5r+zzrD zkXB)8#S=YD@Vb$#lvAVS` z*U^S!*Ax?Ih}s)!fTRvu$l>j^p{#Q)%X7N<%wcNGXszJAg)i9f#9iSHD=_iKkt!{% zczNwiq$StbQVmFTd)F@(Z8HQg0|LK;$6aI0Qe=qzKEdQ(U z<5N(E@zY~DuJ!!=;YT;C48sS*Uu^lg_!MBZ{yGgC<5snyl7n~bQFKxt!jEO98|Ez7 z5#VqgxUVml4e)XX`KYP5$<>@jjt%g*($$e`Tx+Hp*Nmx7jfbRN2(3{&;_Z>gNX;X8 zy%^sy*KO0VEtv>6)vIhzrom19<>kPko2tcnxQRp6-^T?`%^cex;!uCK9q?IjD?J+G zvmE%)i~yW#yn_ZK7q$MJZ5ZQHvBh?byiqg7_KR?;ly-ssC2&(y!}g7Es#f+%x>SsC zxh~;UYdi@z=}t|a?IA=a=I~n)BQr%uQ!2K@V%mbo1T=)Mf z=(GV&!}@XvuwMsYuL9N$SO@SpVgxJB>wp!X>W3W$Y*+yHCSWHAV2G}0aL)k^%W}9> z?ng}}2b^_@hIJ4{hqRfp_YQ)0`jQ@&ayYfmcX#vMyXOwbc?MGfdIDi;0%-2*m9WJK zdp9PGlg+dKcQ_u?x*bmo!Y+pGrf1zD{2;)0#e|dJgLuA+a8(wDC&1`GjOW`3TL9ao z4Stz!3NPzTgdMTNtaN#1%%d-Kci$HgPTI2&KJ&-j-Gl6KxEZz#VN(!>En!}|a5CNX z2%C&BA5Ye~54#XvQy~0NgnzO?_#uQpf$(QwyLq;~tBm%F=pk8CiUd0&d~XI_bZ*J}}0bf~+V_c8|K{w|BNB6NM-Q=E02m+?SE zQuYJDccA{mDEMPp=U#q0#{YG}`*+|Su<-5{_`d@Fw1vN(ehY84;C&46wHCY@{`;+X z*TBEe@?Q+Uo! z3%Gd?#Q#40Yscz*(*FSbQ>}RSNxaVz&w_tS;5P%l-h#Ik`}zEs;9VDpe}%v=3cx=M zzj+VjXM*6J7)S@V;`z$sy^M1&`%=Cy#`_%xDJ+MdX1w-*@aKVN+5`Fz3f^~tXX-cM z4+|W3)427U@STWn>Nov&2wofT>~d{@fA^^#KQ)545b%17&-39o^_%q05xlX0n|e(6 z$pRk?xcwe*KdM`giHCutul)W97|Y?c{{C|K@BYrchb=yy6uj>Mul-by@2>#QuAe+N zpY-ko-W?X+7J;t=+^!Ezf%r9ocU2&rO9FVO3f^(RyIs;bia}JFz~AoYeTRg@6*6D`6vAL0Ny6Sy8(FSeG_j5{7a-f>AxKQ zslqq?^CaF>z&BX%i2|<#+)npIq-*La;|~_Re!w&DpYXq?z4uN3@A0r4egU{m4`Ny$ zy%z-Uap2kc_$K^wtbBYCemfs~B;Kb1xB1vE@EZZQ%egg>?#Bf0xEgzp#lUMv1qz`lt1ru^yu zyx`qo#V7m*fmd7c&jV};;+yY={)K`!6L|HKKH(<=&$L?~gufi&Q>FaN;D4t`ok>&n zMv>E1EAg5Ddkuc>--X#j|4;BRf6oHG%)&cRI$J*K zMkAiO(QJOZeEgmSKa+m)<9!!~`;?F0Cj?JjX*R#jK7MP#&(st0TPESI0bQfy6F0M( z1rOb6uH3|5B6#XfGw~2#3-@D^uXN)WjXUn4UbTN<>`l3U3*BSQ63=&l?Ei2pB(ej{)@1fK!EN$81xui)E&H|dxFT#Mjm0zXseiJvC;$-tX*5I+g-M&PwZ{b+lbm2=p=XJ#I2j1`{{wHwn6uxwSUFg0Dypi{I;Qm|i z_XFP`e2M?4;P15f62B4d2Zb-)okF(|c+($a=uepjYNS7)dluZLKc@RqxJ|!F_XRpk zDTdkuwIT=cuntVJ+@}iNaNx&U_#tpp=L5_RhI<_2FJxKbQGtB|-z)HVffWKdo+3Rz zKuq{GfnO2$eu1|Lq`nu@l?eQ0fp%lOqVS&;_-TQ40w)Q41MfwK|Czv#3A|6>EP*ow z9!_fdzX===c)!5kq0c41HwA7NxJ}@d0%r+SC!awd6ZZpoI{e24)(d36M!w%cnT ztpe{7xJlsc0&f!7E$~Kx*9%-EaDl*i0(pFu@m?&D^_A{(1x^&mDo^}r0&(R>xhn)B zyOkS2!D_%uu{@auyd02gCo=%K#xM<#Yj86G%K_1bFnz{8CLpSva~UA{H39}laJ|5_0@ny!EwEQ$m%t8z%LOhKxJV%Ljq%JE*etL~;7ozj z1wwX3-ypDFV4c880&4}16<8y%T3}k>NP$%XD+QJdED@Lzm=Fk{Yg~<$_--`1yk84N~%N5jhs6 zh+kqX{^(x=$Z*wyPYZse;Hv~*Dfn{1mk2&3_=Moe9KXan$RF~58<6}D0TO>u@CO7x zDER$?-zWIj1pkWQUl#m}g5N9nJ%ZmY_+5g3M(|Gw{xQKnBKVzxe^BrPg1=wz+XcT( z@M{2BzN-OQu1f)#o<)F6=K?^cbH3o41>Yq2nSw{%QS^<1ZxDRF;OhiGN$|CTA1nA8 z!B-1DE%=dwuM&Kv;L8PHBKVZx0aX2+0;qITA~7_lgQTI}4jsS`Wjt<7TRp3PdZ*8<)n_V)ws6g&59 zc*uuxa?j?+V&|UC-^I>7n^WLN8t&O#E_UwOaBfOG_iXN_9htQEbgcQ%jzZ=h+>?Um ze&Q~%b1(55V&^{MOJe69;;Ulk{^5SHbMNpsV&}f$TVm&)p#xbNFZTzgFzr&-tL(xu=8m4W|r+PaQswi+wBX-xK>IuyfsnG<#vMLcY*G2>Zoi zPmDwPioF{4JH_4zJ5LRgei7_@#l8mi{bJt^`(d#^1N+ISV5ENq_E};-1bdsY^!~Wl5?}hzGV&4k;Kg9kR?C&bn{9lHBw%8BCUVyqa1RXK=wq8Q^4nb$i z^*gp7+Bv7%Aa>4chlrhPzl+7rdEDp4&N=cZ;h8}GQfoH$tLAc!yo0X)LZiIi$0$kL2Rz-X_V?OFNf}(Dbtkp*VdK2`V6=_m^P?z87mYcBwe{=XK7m0VnS580a zL>q0jv!~3qE|!Lp_>LO-!v`Yw6trd+yH9*`yiruJ9jlUEoq;}{x|W&q@IFsB9a%wb zXF2R*9bG6QQJk~oywlL!4tUiJmW0K=QW`JAvSIOc2bu=ZfXLNn)upnDgrdGoiNDwM}$wq@R7sWmC|<>)6qlrq6Dio7LMJ8n2;+ z$tY}QTrs!#;wz?1ZOO&S((9b1so6`jr=r={oUDdQCB{BqIoT_1HJZR{K_N8ZEjENO z*l2ST<&4#8x*=S$S}*;5m6h4zDV}!oF{sMg_VSu>2*+G4IgFf*IRr25ImAbrbcm0% z>JXohh8;o`Y}=7U;a5mP$bBt5gd(DmlM;sCTd!3bw)NkU^lVQ!@0>bKZ}e=Nm!j6R z{ZH%Jt`uq-XmAOn5(uL2kPdT!-gBM#0*+JR1B;L0B0!S@~wbTMCj@tkSO&cA9Y(qt7G z$pcm0VOm__-O$=%>o2C3Y`<>mTJYfd&;sE>{lTR=sI(yFVJFoM@YsE*uI{Dafjvs+ zE?=J7G6@f;EC|=tT>?d9YY;E@sThun`#?EZ=J3lAso#1d0@NVPW5VMd@F;@YHb#yp z{nn3wM*;y}6CN|qbK8q0M{b?rkAcTx@Yn|)w#m+q+&aUn(z@SjM1ruq9MV|p6(3vI3!JQ%JQa!e+nWvu$ab_*Wa-<{uf zD!$DJ`rTN=vQ3yAyz13~*_2<7l2JPSJmb1w2@mm-~2NY0Wi9(z9I+9tTh^O}?~X8FIN{LV>u3+l0Kj z7;r&7+7~haG~B;XW(@xMpq)7s=Xg9(W~P_tStL+&o2B>oc=QKQ^9g0Ln@aLC{iEsJ zau_c{qtfr2)Ka%456#42zNj!Kf)bjKBNYrkj~9SZF#M3k?-qvM@Em=qVA%Fr1TUp3 z_%g=EZ_Iyz0in)MR0UrI0#8-&x&x^}rtLkM54?x$=0W9YJhN$r6r_wOPu~}y2^z+W&QdoF4ZOd=VQw<0&(Ey;9qpMHsD)AVAl^$hnOA}F z=?uSBdHmEOy-{I)L5wIJq+acLz(#2&M(k}??0qWs85YYb#d2XV_QO;_ooTg5f1@yM zzSw^VY>wD}HNs2#-)PT#la)cz{!zv9r>scx%55ExA5b2@ut+-<=2yg6X@5`d*xRkx zKcHftWw9KoSgr`ho~Jz8EYjaoX?2DJM?3acsjoVq7kZ?sX~_9E(MV0X7pU03gUVvk z{&B_fkE%8@?IoFcm39`~ru=_ph3HV2H;J*b;3^S9Ylh5LP7NWJSwd`}J#(4Ga)e^p z?F!*)Ms<|OVvF>*&_kWcEc3pj7l>7`&jwBBthBhI?_%}t=pZxt|d#c_eao;Y2BF$z3xDjY1OyTM_ToVSA6*CFRBgl3yO`E z0^=JH2x?iWV0I^V6qVX$MI!C#GWbKM^7BJ(zY#A9ArkeiFOrqejbh}Pmn}>=IZqvY zitmaIzsMLe`z@k3mBQ*lEt9S)=zqQsEL4@AoLTp>3UPq`mXh7a;lJsHO?^;! z`$~Z2wosNI)GUW()*S@1%q;3qPW}1=O03rcJeos!T&Q`}X4W0j0w>s6)&NVzwr>kg z)Q=A(y7t$fMd~-NyMx7qD*Fz!PG>UjXi7J^ztozoi!ZP|tW3IqSZ*48_oQbCch@*&$ksyR0mYbbpo^J|hVOvm3v z@$?_q8wSMrDST_c0mam}_aO&{Jn>aihx0IXVJ*T~D0Xod?&GGHbhP3Ut+_FK_PE+~ zO>gV!+{c;)-9i4!J_n@~G$!WrqB#jQQKM~b_(GiP2kD-H6Vn^vBI*}^e=YJGh6 zegL%b7;~)JX?aG%teKgW6t(Qld+@~(>gZ0sM7v88 zt*#2ylNpj)Ad`CVuJj|s@+m{2;3oVlH2$c$!AarLt#c(qVBVa6HHivILwoYLpeu>gzHxAhN6r>Vb>=+3sWG5#9ZJqC?FLQu_6Gh+0e?U}G{@^J> zKsil_QPA^{O>P-Y@CiG?6*kVZdjYn%@;#>wI@MNEHR5Dd?&SBl&2zGk=VZgvD)-5z z+~c3l8O>F#9eqmAY=er6@$lQtuKW$YxEj2;R8S|@a6M`rYgl{;W-4I`YF^&mxr*tT zrs5!fo>z9`nC6RPnit1PZ<{PO?XM=Hn>g?%dJTp~1jAJ|!@5VFJ7tc&Do+~mmjs3;lTV|J8td{NGEqx3W~DjZ_7N^g!X zy-Fv3EoNI`dD_^?Sg%pBGRBDz)J^C$zF4nuV{N?zD|b*2d<|EFR0^Mth+vvlBGKGA zr>(U^w;n{eSVhRl`t1l8`yyOyB6Q-%V;&PoKu}u;c;67409x|>xXt?pAMYDn-o>Ox z%N6yKi88O@GS)==k+8V6N(i@~MLJ!zAP}NEHVkui3h=TmM7K|fZX-mZ)r3Y^BAKaW zi6Mz(`PUIUB^dez{3V@YGKRE1#WPMiSzzQYY3b_5XWe?+RJdfJ(piYbd{IZpgErKI znaXqW$vjcSYf*vB4cVD+Vyj|I53b9gmJCDPTLzR$6HmN~meo}zQ5D(hV^`gV6EDid zPrzt25TSev)awdaHP^?^04*crI(uwhrH*vHic}(8Zz3F?9pQRLcwC=^J$|JV>pxw! z$mLbgU90Q~G;Wv?*_vnzDW7PfJ>gE+TdtTprE>+g(b}Q+5sF>#7LH}QR!+%H%eCW#&X{4W(3~H8dZWOPz!s=b*A-Ktp}E`C}naqOczSO5g3t#e82O zA^P=|C@M4=?c~oQY4IJ}-&1sm|r3T5KZ3sXh=SMkJNq))56AofsTvD|0>RHc-S` zS{AeaZ!x-}kU^=~H7U1;8OK&O+DXmDcM=@!NI3aZ$owR}F#O96hp1l0{1kHOKTgs^N}K!0pDOQ7NFN^{rgegzXm{sN`gBmFW>6BvTS! z1MRC${(4H_K&$AOR0WhU&WV-hpP2gD`%B(ElV>;C6F&*ZK3AvG* z(3_d1Mb&dsGwX2Ai9XY4UOhfrziO4|90`F(c#2q0NJyHYdlmidi8Y98BzAR1hACk^ ziOBu$FY$D>o~-kUid&gi&J(EgafheR|IKu;ny&0<&cZ&<@m_H18y(tTlBvG^^S=RiSnC zk4fhy(K)URF~zZ@D_^Gf3v#Gp%cB0Gjdv{WWjsnN6y zPp0Cv)U#Ss`KVGko3}82W-OU^Q~b1w)c;8)QvZ>R<&8@1SK3iIJQ|G_5aXRVZHQW_ zP*)k$OjW<>;>iJ?Y7UHs!iHbDr+Q`%7CICU8!CrRNbQ;9w;*6ZFdoc_T4IQry2*@c z0~&OIpF8tE51mxNH|H=rY69n^2LzA+j{5cWWY?^46e{~G5A zD!cD-xCn&hp(Whd=Nb_w9>GZr2Sr&bKDmVAuDWm;#a&?GXfkW8%TbpZjxkTr>eN{U z(EU@!)7KeLr0F##TQ#L=7`h#1srIx~Z5k@O5A`&CqVv9~9TSSlXohA+==riY41c-Gl`s%vdKow6r;0ofw0* zbt`Xb21ReUqNlkN5%hL0=>%_Sy;K{@c^LwljCH5vW@0coOQ&g|H9KC9=UG+6(Am0j zscyBjsZNZR?Cymaw0nY(_6f0!8q?{ZP@gCWcI_rP-m4i}Ljx0>?!bpnSh0B)<_0{S zcvj(gKc0K=4B&YL&(nCmi|2QE_>H}CJY(^khv!l}SKzrC&-Hk2#&Zvz|HSiYJUj6` zjpw^~xDWg@Jio;g$7XXep6%G;woTWmwoBWmr*R($bb17n9@7BTlF&|x&yl1TQ;j87 z)Tu``Er(RoJn`By&M_mUG*aExeiNvAS9OY-$Q~-2)VVRvnLcG!Ywwcf_-uqW)MLo= zFu1m(4Bfwgy9O>_r=;$b;OL#JzppN>f&~8Xl2&(aDv@TMEumpvKL9&dtH%TX8QAy0 z{%+Wb=Nj%Tq37D`e6e$Fbh+5MhS@E4t~1^O`y&X;1;EX)e;IZz%WZ|7{JCQGIk9tv zi)Fb7crG+O3;av4bGY$c*k6O4>n2PeSg3Po`+@%@@Q6zFk7JRBw}2b8a5ca&j<+ow z$Q8Xgw8DJq!b39_bjEmE9F2lUt<14u!nsuHIJpi4uByk2>Wp=Agpx<4+RL{%!c*ox`7ZVt)t!+auzygMahB zX#Tvj`vv&Vv%^c?RROme{=b4h_K&^v!%9Ei8~!=`&h_~*-yVVAJMjCs?Pul7i|~Kn z&ki5n&C2W3;dc^V@)zM4VJY-VEkav|*|8RNpLhF+|0DD>EwJ!!3jX`R&$sa368zIX z{KL@u#I|Di@{S?--Ud25zLkQ%4*2yJ-zx<_75JqV{vw9A_?{E-1P`&YA;H67h^;WqNnO?@V3A>1Xv8@Y(D#zTIUz}JWz&*5cI zCipn;)fWC8_>unC(8Dyz!v8|>KLnoVgJE`%&v)UTF7ng;b?9|6>7kobKJvR4bSC}_ zfV)fZ>w!1%6MviFmjYia@eqHV;O78u;wOG4+>H`H-3?a!be}5WhJwz-{}uF;&@-jv zIt=|uCVt|fXG-CJ3H(@zpZI-(e;IfaKk?s&yFuco`#I=eGU=!LlM;^lp-lX|H@sQ! z9{}FOPy8){Uk-d);wOHw;I9JS#7{iV@ekBX{B$>3@zXsMpYG>lUi#_gu_W@l4|FE}sleSW_}hUu@e|Ll zOOYOWG2HlxUncl#fH(0I5B(SelO%q+r(5yUJqB*mE~(4n6g=c#fpC?l=z2_ifsgLD z@FLyMIb9IC?*aD%3}FpFy1$I40dx<6u1e^Z0rx4md43&c2i@E8kl$Uvn|O)u2R~C^ z=>CAv_4(-9t$0Z{!wQGhWM_(mI}hQ?C0^nu2!0IkCf|q$$pG&g!0ezKV??)KqWiCS zUm{x)ZwY)>AoNQr{0xD3Z!33SzJ~7=co6+6!}GmCxK-d?0`*Fulb|jK`hOn%5h43T z!pQ>975Ea`EAihJxKiK^0^JQ~GF7W=fwC zu6rnbG-m@cp7Q|#sMo$^HQ*4$-z%_7V28lv0+$M0ByfSi`2w2-HVK?5aJs-ofeixd z1tM)Kexyx7rknC0O$svIbTi$AX@N{P-BkjaZo10_GJ$lb1Tx)p11Ly-$HAQjya4$? zevnD!<77bcBP2i4kss;Ek91@-9uUA8Dtrkk56V=@@ou4~n{;$HqOi%YULeQ*!{HtY zh&qv|0;HV01BLdINC}>OiIQLNhro~Y2LXvc07&|MfFMb{21x%`0O|j-;9nH{Ucv7X z{BFVT68tlQe@gI=3H}km?-cxlf*%n4{es^v_-%sUD)_que}~{V3Vyxd*9v}(;8zR2 zSMXhe?-2ZQ!7mm3BEc^Z{CvST3%*J4GX+0g@Qs3R5PZGh>jXbZ@U?<32V}VcsPaD( z@JjR*)DuI)@doXj?`{+O9@w7{`=4R|vDmp*@n^BKe;5I-49m5ObHvWI3hD|ao@*7o zV&_`LX0dav;t8>Ht>RU&bFHEf{UO70tzw+mxmGckc2r2NBlXgb%K8{O@ms{sb)5A= z!*!+47<$-W5`ap9en0`%3?=~53nw-{(&0DH68*TBwxo%n6AV{W7DPr?3- z*k6I2y8B4;Htd{d(OxwgI%C9M2Rq*r#LtJlRqU%_-z@fRus<$#>a+Z%*k6RbETzL9 zg#8er7=i}85$Q!ccZQ%b@%^dl8SH#FBl{GdDqq? zx53N1MA1wH(%|p4=yzK73oJY5^M?Mb7XDcaUvA-ff5_0kZs9vE{O~-Frq`mun8yu! zt!4kZm6q|A{bQD0)NW)celZJ-uKH))hN$2V|IkkEON_UI;sQB7DEnLILN^u}>@O8I#6i)9^F;rVH+yn@4vNy<% zRkx1Wy9&sL4VR$6N@)*1Fo!R;1p+kTM&l(nLx<1Yw%%ZBvDK%xbtIf!2i#&lqOzI5 zCTaBUi>EupR4!MCLvXLvoZG<%tU|&C_HIIGu*sqe5vKp6jTvAW-N+9QR)LL5~hGFGa+z3x^3qO<~Sbamu z+)6q*OZ|u|gzGPrIEsnX<0x-km7{!pwK#Iq`MITGt6!J7M}xIIeWkdYrQj(sy!{JaXzg$-zSlh<_Q+M(X!ifV9+rZZ*=v45&ug`m3z)=!w$rfxR#_F~47U z^m_G!({^PneHNkmPBwza1W*q6^3*L9_!&8(^qp`n%Lrc)Io80zCWLC^mjjnaTwOL7 zH(v}QF?%H~gTlk$Z76c6!#`m2leQ6u5~HVXQn2 z)e*7={TD8}I@`d*HX(Vc(h{a4WE*%e4<8dbMq&;wZQm6~6ol{-%f4@(w{ zM{XS<{N53M&MseCfO3;_B>f)LmCJRlJw7?my)HL0ks04L)ktS0VC68JKLV0na1$OH z+WDZ1XYrVK18hfceEL16rZ!DInCV}IQl~osm5&dQ|z4c&b!$=~j#$ypJUaa#$;OW&EWa8#$*0KjRdH^0n z&gks_*WNew4?$MA1#zr*jxR*zR)c6COZVQfnODV%W4!Q7b1feCN@4L`$PnwUaj{xi zirz+Br z)eFk^ur1>-pNzwdj8427(uXp6tD8;5&i|h;$b{WD!HTTDgX3_YBaXXDsDrV;m6hT@20Od#*fHGUcg8oi-PG36 z3BAkXn>t#1G0j-fGrqlPdFRTux$P_Zfa>fX*Cjp{@!ZDC19az%s~y*~^v3aXZ^p{h zit#h`SG>nh<7K^7o!vL~jGxxow-O^1EQyR$SNMn>KfSFL$Ao*-kw#x72)kQ?gI6=KbC2o$3!VISbe3uTupJNsp^4$PC z`!2rqxWB+ohx}NfIZh*fEAY%R%0NTNu?7v}D-nMDUXd}8XE;H?JfY#hgfj80CF7*= ze|H(%66!qUBq;EpobH)D-#N=p_&106bDXgN&nMxJy+bcNtY5-DKGO)Z<4ODt;K7)( z^d4AomW^fy2Q7ENz20)K0}ex$(pA9kw(vJv{21dr7F10U=yjT0en0BjuVM3M% zAp8e68S_4#oqZkscvpX&-HV0cU)HOy`3z7x31s% zN4Y29Eyk)1ARjN^&Vt*G%8cgdc7g0DTn?d~z5lHdO60x~LVe|Z61q0+Ph8}BbOfQL z;u~o)I>nDnoV70PC-<#Q`@H?bYIpI{PiJx^l0avSTGTw|^~`f>?e$DgkB6-9wslAA zZ&rO`TGwyxw}+XgLaa%^j}T2yJ*vNl{b<%R*=I65O$|DbQM4SxdM3kPftT5j897WH zJ2Y+Ot5caHt!MHq1V@!MocLy&Adjf^Of1CE)T-WE+vPvNBXT|S7zPlWJeDB9oqYMhEaFQ^TLV0z)-y+-JT5_)-wO{NT>Xdf2wl&-7CiXA zIGYO**(SgvYCZD_sTX%11&^rp%%kLyb3HQ$4>x7jnpfyLB6;+H+MgCTGvFsYa49fc zZ!&eISA#Br0RY48LfN9}hOHw;t^wlv;!5vp4S3ilM2^Tcz~$hv6oDH=juZwC{w_w+ z61l#+7d&dfV?cP+fk(vpE;pY-*AWka2gB?=inK)O8fFHv&v`}U*a$hK&2dPijHD%U z9WenO5XE^-ct|h;i%0Ht#1iR)_xsWU9&XVbN!KvHvC6c(>EmIS&5_n3tH6U}#Dl)H zpnF{ov@#S3!!>6s@(NYZS;PS_knDn+@X#<$KBQ&dfNi9?%gggDnrzLNEt!6PBuptN z>?_{{m7uS2p^(dyqXbXn3u^5#iTE-jsIXD5MV_W9w8F-b)tmkZg^PpR86G5CRgg2Y zNd|8twtt+(x&s&}wQS1tPqeUCsnFDsWELR8t@KZgdU29Y6b)4>mJI5AE@kP-NImorO` zN4{9gnWa1=2{%V@MlN_KJ;D&ZrxJRotej za3td5ZRyZ}_NzX4dD^drC6W~n0@EYP>d7SuCSfv0rcq@*#9=Nu#JI-_y)PT|WgzDN)KOCCXMmB&(#J0-j=9 z0nbDX)k?w^QcKN3YMH1XB9Yc~RPJdy8tSP98fNqpfiPAv13h%5(NE;yjthE~QTYFN zT8j;7G!g5uVU!UXdfZjol34OxMHeO~#;Yrmn_|#n6OW%=nR-t$FMc6Z+(1DM)Y_aH zPa#LqQK;3km~#~uX*im&RMMOdObed4)7M2fs3@+&zcRRzp_V;j?u%5NJpLfi7775?+e(!eo@xt>?xCFT zlAEE~S8L$YdRn1op{>{Sq|hNDDlBvd+U=^Ww3TSE9PHV`z?n zZ8HG(O%o>azJ3G8VEe?MgGlxEl2|A!P1L&Yp0^Gk=F8Gu_m#WcZvh2frT>Fr_e{-u z2d7s11^+Ve(=GhB1^*oIjTZhX;4wTb-RZ-BTIfFte1k=Qm*Cd}UvJ@W6Z}fx`K<~V zCC_qL;4EDPNO`d)JTS@fp9(z2cct$Jo?~7Z7495ZNPhKoLV@E2HX{J>O#&|#$T0!&;{={5aFjrfDCp1OI3dT!gsdxs01Bo7G1X3t z6v(kP-7IH9q)9>6Kf0L&LNXu(P>}M0R;>ji&IIcaZp^FH8aMJx#ZNlMPdbTTt#KnwM04z~An9r0I=WduzL<6}V4YtncD9jEh@JI* z5A9fd;`{@5K9#)|_OE~!?^m!bupDS-yBPyJ$dr-%RrdY(H+Y`OGWNe&_HCB^bCw)-pO$&)(X9rX3k5l&F+^SzLawF0nB(6jEKanqKBhNL%#@>{u|Fdu z2_Lp$nxk32b&5_n`ufv+>H1PQl zIx?RL@`zZ!<^C+qi|CwuCcq&TJkQK^oZX<05jU=5g-mfYXY zYXA>UkvhP`HX&(IuTidw`@a>pUF6s!ay%27r@6nscRzTr0QQ0h$Jx8V! z!p_z{0v_Bud+jLF67~JPJ>bEy$stJ#Kb_-N3Ji~#$>Ju-yc^nAvPZ=RyYH^T9pJ%t+Ec!? z0OcmrR z5y*$4-1E7P#JXV@Em7xly^nugm)X!Il$l%0`8grACVpqH#e5`Izc=4WEvP2CB4BRc z)pr^`{*||3Ej%)JuF+iF&oBMzA6zn59|p^8*r!NVJb=~_zBsS}7T`%B^ zW6asX&mu5)0UiLPb|PK1{?+U4!J*;`w;mkpdOOEgvOpAI>p$q=#7bhfNn_{x-(7Go zc@r69Ex4ByAg}a-yBg9WAj1XE4>R^e!D{^5OHBIw@LYx%jg|HHkf@MET!JnsdL6b% zk0qTvYEq_egS{vQHC{dOaPks+0@vHe}T8|lk!y#6;iq>`s+?5L#S3JYqLPD z*i(6vY!(cq9I{yuC{!Ls9=4Ihqn&act1cs!kU5gfD1t|le@|>-48o~Bgp!IxWnep? z629Jc!0<%!I4=K>!E-#jyfSA9(;nCka3zxMfMFog+X3b7c7VdE?SOJ?JAh*A?SOJ? zJ3wL8c7O`+Z3j>iy&XUg*$z05NckQH#Z6S^FIkSuHnFM$aOEE&>i^#J*IBy}cz2a} z2<|$Rn%#)9?A?eVf$av_EztV@x!o`{Y`bBY*>0%N+YOc8#=>y3v2dK(SUBEnEL5F_ z)844;OHo|^j{6INb{4t65TrcP{z7riQ{W4+^$>@K{M34EGkiXo*B!qQI}PldPDWnG z)N(!?dMWoUKx?yrRDai~G>A`A0h)kN=5G9>$bUV;GTs+xTfL;Mi+2g=bp`GiOzv)L#Yc@MLlJZL3|#qD zJ0hBc>a9J++Tsl477xgqB_$+^bHn%I;n;@*rHy#D;rSAt*YR*n-{4GL4F%x6(CX~% zgKIU=$YXdwyEA#FIlCB_ZfswgzPYmx+Ml608mgZmYua}U9(-_rqIKy-ZnjeIGd~PP zoktM`rREb{-{wQZ`BRuNfvGCs(Jl69E_(3NaCEoxn zm@29J12ux@r0NdPalHga-6vQF3;C`BzS^R@(UObdF1OrVQsiC{!<~z8X$eRCI6RE^ z6yQf%c;uxUFX?!>1zD1qCvdpHp#qY-+CtOM+^z26ayD)nK_m?bQ&nUXqUOhIFj&q$49N84;beXTKCIi2 z%iUX>2{-+xi+>{^^PxfT^@6Vx{3OBG3Z8N^9sre2#NqH-qS=f3h}hY8JT3NzVgD8F z$T+?a%2BpuNDTY15wru(cLKM`X=lH&O6=@A_(G!YF|HHv<|*xuz`jrHFT&2_N5mh5 z{k@2fdd2vT8BIGffNkqu!Sfvjy`xOGGWzYU?PxzP{(Ot(c+36+i{{ssUCrk-8|IPA zhw+%W=34gbeXpas6Jfo++&vEaCDnqp;w3A(gtPlfZ0Y3}Mt!#)B3>QA4Y8br!7VMV z_v_ep&HfqnQla-RuzQC?QWzBQ?ww1lEO0Aai@(;d*Nr{zB~Y{R({_%_1C(U_T9m9#R{_BT8@0Ul2d1E@RMF`b>~V z#6ICE=woRvM?UyWfJf9m;j!?D+9xEB7myYs$3EnT^uGZ)qV@@YiM%`ui5SKgHq0P+ zU?G4ez$0p(a425x??S{E2oD`Rk_Tr5+<&?H;yKe?(hKn(>xb(GzEHAFK#r(=!mo3n z1@rr(;1RV?c$7SH?i1$Vp#{Xh?43m3YuJOd)PU{~(!va&&Tgr8ejbtgga^Tc1DKH* zYmmos@R0f;&Bm1@a-Z-Jc)W$MY4EU(TPQ$ETClJge&6H(_R~4Os=|Pb;kqCPiwaHI zFGuA5Tp9x~jv;3Xk5|A0-2siCN911PSny!?GhcY9(7wMT?KMsUkB=bCBJi+Hc7EjE zCwvh+8W8v$@L(DaA}!J_x-9LzwXl7{a-^Eoyq*JY%Vf);mOCQv-|(*8YY5v69t>BT zR{GX0Zf@DKez4u5tedCKZ}vzM=ts|GSWMz<6DCL0-I;puU_D(99t>A=YGgf)+$U@R z59VQq@UUdD>PPOoGtY* zmn#M$5Q}~i^6E6ecSb?iF*1>_#wI*8tfG9Fw`}QweQ9a}nx8v&u8`QX5O+%7^=m<;oj3g=!f67IuOrA#Y-P zFSCVRtHJz8VR)j^U|!%>;PcpM%xtM8g9I!I`uA4ry+&*kev&i?JqhPB-jOEWr@%k6 zFqKKOpRAzWH}vG;;ad!o3JD+*i6WLbgZYO(jpE zVYia)mTXDZDka#2 zSKo|HIscD6?b(DaBwXN?+neuD&?RIwuN-^AZh^i858Uc{COi1`zTi7SWrWUrqK9ny z=aL2mhzi3T-UJfnlZP%Rx?4qjt)`W-x?GnW%Ic%6XKq=cD!jRMGTyJc-};wsLWj&l zR=8cvv2H=1j)LW!G{{s<%&^y57HeVQ!*tVM7!O1D$MW;#d<1TY@GKo^$Pv9ZFVMM&k&q+`Ql6lk|C)Nr3r!(E}` zyu%gA($i9l4dB@IASK)H+pJIYu|Cmdt&^By1hP$BRx}fitZia-r;PW&WSh8%k$^%U zSjHu?IVES(m$|{fiNastKSE$!(9oL&N(IvFZm2!N2Opu=x(8Z_W9b+L|D7#-+9!P4 z2w%!i$s@=qC_J7Jh@X$~Q$(z7YJUO|)TkQ42$rFo+!|5ii=@Ux;uLO-=6Vypa=+|m za2+2bxBo(_WAn=Np8j~nQTFr4d+f>~ZG@0|@^9-mXO>(XBVSH;UEUYlye~GqhqT&3 z5wMbD>SrbJ&~_&_c(va7M6%2+-J)gM zXI5Wt>*9_!L(o-n7VxV088lHr@pz0N*f6nXoHFc+b)f|6fx`k#C>>|T-TE7;*y&=_ ziQ@R^RNP5+(5{;*GFxscCSM{p#qXG@QwC*4D*e7sAt&;SP5e&sj|?%apl_w*1=X)7 zDo;QrT`_mw41BTndR!2UVYlOdt3u7(-%FbNd->i~y8`d3UFtaOb?2qHkB-YI10J*5R-Xdea$>Th6y^Sj~qIGDcdJCd;mx8iy_v3@{Zeb@%S$ zXIF%(a7#KrN+z*~A4}o;foCV@sO|ij6{#NzHLekkufz`jt;3UfsaKM*_>IGp&PM8m zyCGQ>udPVN)5*M<$wd4j+%t@is!GP!##>Ny2Oz-j@We5hCgg+5h6L<|h&JX7RpNAU zDeilK5nUU1y%##|Adet$UyUmeO$1HOS4Ym*uJw-0@scpzd5*W2d5`3HDTMao%%XL8 zkT@7-7Q0N-$8rc^k1+T)bx$1djcTfw!~WIxC3kj)VHM6{@0MM~ROI-34I@R{yylgt zi{^R&*PYaP1+5~_uQIQ-4~h}d|Kj?(V|@~R2^1XmLa&~i=?;cdy|eY;3E#NrX`4(H zi>>&AxgJr;r^nr|fZMMzeqnq?=S^)oxJ#L%D&R~6&muUwH05GvHp{3NkN390S{u^- z7d(gY6kt3(1kZ_hPQx=6PaU2qc&@~=2u~j#+oa$?0r0GXT65Ry@6MQp$!Q%u-n}b3 zdvT6qiFyO3SGD#Kk?zz>^-Cw?+u9&c11=2@(vx1**4>sBXq<|mZ)JECS*%4^o~z(G zmJy%sDR7Uo{JY_vV7Uk2u2E?V_KqY&bynvl%n~ryr@{E|>|L-k zpNZcM`-fm320O=xpBDV@VE??(a{xxY&D7b<0Tbh9YpaE<)PZ~&@HCW-Yk&KIs{xKQ zEGHU5%0xq%n?&xNmi!I+6WH=WY&poWB3cV=e)v=m9iaO(Q z$8QfG?qa}@GaU6mzXt#25Pz-*Ex=R$yTgZ7(oJ~a=(ieA5`H{a?(&9}dpKM1=pj=4nuM+a_>oq494dW)^#DfEohfw3 zgRaWL;~T6hew5Z!Z%Cp@cWS#%J~YuP0EEO!*{QbZWr9Flg9sJ5)O(l+ z6+F*69klR=dB(_!XCKZKnR@U#0)GeoFN*(OxW9;J4CMPP@NWyBTY=jFHy0dfrF$D5 zrsEFa4_S0;!Qa$R(k-&w41NtBhPwjcjQqq;7koYA5q`vDU4MZ4E->obtK(pyeAuqY z3XiQJS3ZXOJK7JjB*CNUgu4VjBM|LZ;TH+yVQtct3H&_j8{MA~cn}V{<=bmr z0O`LPkl}g--zE4C!7ms5Qo%10`~tzx7ksnen*={o@Y4m~DEJ1!*9)HcLU|?$zE<$% zfJ`5NDnHhvZ-CI8{raWYDQ`aNDDk^t=NO)Lj#sV|`|n`CRqPzEY!^GnD|={1#&Rsq zsTOtMa$NS7*f}OUEOw5^QfMEf;aH6CD2C;jy}Sz}{Q7-^K|^&rM3Vi#bv`X?q3>9~fQXro5zu_>%y$?s>j0eZb8@yy z3LbC63h~O;ju|Vtf!&U?;VYNioPEg6#N{1vl3jp^)dY9NA=2NS!0K=4g+!2J8X6f! z*MUfHvj`C(Rp{zMn1bY>v~twWoVYtjEECTb%h}Oq@IskIpTIjRa{K&UNPz6qcR>PO zxaP!Nh`%Y{oFrZm=OD{f$~l5bLFb^5vd%#fR@@{+|!px*<%-KO#3rG?^7;h+ZH0J>u5P;!n?jP$oZ_siK z=K&dhR0+;V<2^&O=WI2;r4?^YZH{yva53JeTk&#ui7)wV6XX$b9`LP79dMaRyvHZN zBkDZhvG9mG4@e##M~p^}K@4oOA0949reIAT>BdIu3$ITBj$#BkDZhLl{tg z1=J^>>Scu3!gz$92V8;j*oQ!`b1;!@0z9J51J1%&hUUwtpFR`d5p^E$D0$>O57-1b zFl=&mK@LWI@Eo^XT(ORH?yMO+wt#xKFD-6D;0GSdkQdOBr`h^-TnvIo6TIeQ5{F@* z^ETv&I8zvTF0l@Eyar((1P{hN{oF_%k!Sf9fd`A`Md7gxJkXSBFlyCC&c8*TOI!mU zyCA>;@UTsGeyA1p$a9JHY20l?;GIYi!@USOMgbJc|@N}M88pu4BRGZ8AN_ev;~6QPD_~Xk(nq+mdi6|>O5V2esrF$XuZCT z-%9nDZ4-F#^|VWPSRz>ElKV{IeDGl1-UA*!<7VrT&J?zY9N+QrIF>Vo%fVw0^7Iv7 zTEfm0ZbV*9hp>b7s0)SJXA03&RQqS%;+5^5|A#eT)`E|lNXr+8wQ$z0a*!zK@@Pg= z&fHm>#)MLirM-%?d+(l_>Z{Fcn6Er1S)R}G+~A#c7G@{U0&b{AOI)|R@;Y^h&pJ(a zZRY9c@Dj@yG=DnB!c& zqmoa~WUT$`8S9p%!C2o?XYV>RQ+(68ym2Ah-mpa7;sc;hUc*fh8+SE6g+46gO%{q|TvRTup)NY zE$5QhI_mgtm)8pk)d{WJU6NHP#=31=n6j!uh&TdndLgsnju8;}&im;pG7SC=F>ctX z@OJ_K`hx08R>@6ks!KNC%hTny0AC{YodZ_*2Z50?gGQbddKPDJD{(JSKhTG0TZ4?a z^&rK#g~2y)NW~y>>~a~AcRpzGY-XshF~DWCy+B)oqS~p0mVl>yHg+^T*XA)D|WgQf7yJh>1v0MYL>mxwKo zYkAx*>H_jWMLvg6Wy)E!DXs^|l{qb^g@?i?vd6fVF>U!T)PHsq*4gM+|H61bN000- z?m2j@-_>_RrvG|`Ri~fN)6GY<@=wB>CubivIHY(BagerO@w{65$nn|HWJ0<7uR(!& z$7ex8GS$Vd*t{Btr5elp z%*OxLfiopVnYEwO^r|?eG`_BaRW1D5$(Zx%_v*j&U~h0iVFjC=GRJzZR}IwFgu#jB zy#yAC#82@r2UN?Gl^D8Y9Z=2Zf!sGhA_r8Hyda--K(*ix^u;?kkAV{@b-NeqA4=hd zt$|iut&f!_^EgjS-lF+5wlATMjn?j)AxeqME4f2^%PMIW)#U{X;HhFHlSJVPoC0a) zsY!>SV#g=*I9n*HK-ryzGt7bfQ|nt;qG^90KSVnMVbmTT4uKk_QA{uoG2?3nD{%67 z#LtS9yTmEtyg!^N4%4))SlrfaMaRQ9`g9FXo1PL|1hzjUYZK8azKBjS5tT4a2y#&p zDZRTKx~eoEpnj%Ml}-`1(<4Mdw9sH|34#xhd2&?8C<6~*yK+?fnL77+M$}rRh*Q|AUd`G$9dkCQ_8-pg2UnQA2d87`l zSLLS)m?a>BBv-UAX>(qHGhZFE&5zobP$W2Xn~djs+Z>c3A79)^#qDrCj>1FDRtbq2 zDVmI6@zsrTQj4-0!9vYeB~J6cqlHz?+gp%yMy65)mGGj(tY~dZbqBy=NI~qXxRb|L zohWB<@wl;7pi&Xjg{cDO1$jU*PKTfwV zBiWvTYU3t)sxQ$~J%fZ%RUT;q%38WV$6{MShDRQbAu z9?q=L)jGD|4HVF6c!sO^sLaWUUH2Ds>gN;LBXT&g781@R4qfP~*6yX=2XgfL%!w_j zz*PRmP?8x?lo4B65C7Xj{hN6q+ljR?;=4hCchr1L`*Y+Fa)wg0b;B}Oj^p!H(jH?5 z{Ta2_&7^i;CbhenvF%cXqd5-;NDIlj07h_}lO~&iJT= zu3$prcXu2oSp}t7On;|FcMZq;wYA3x?Zmn%&(FXGss4Rrssq`MgwJt%7bg9t7zKX} zEx>JrH>so_0%vK2H<`2_pRMEZrV}xutNg2kAFkiAH#2krS|CsCK*sRm!29%ywpC`c z6>_XoT@~dhLZfkuVV$oS))`TpqHjhr*IQBZRtkHo)-lB!V~l}K(~V`LFP4oa7N1hf zjZCn*z@xfCuO{SC81#SmS2sFF3~{w90+n}&zHt?XE5n`WBJ&Qb5Tz(|Q!&mQaV}hJ zc(D`se*&d&@=gUZk)YR%SxrvttP>MM{356@>0+isV`LJyDBLaPN}5Kw^UM6z9RL7s(ec&rNSzelq$TZl9G}X zsV`K~LsU|B5UEvC=26^4wDKZa$ip9GImJJ5^@a|6b@#zG~PL%bU*3A<3PSI-3lp}_#Z(*H|s(_nA)Kz(+)^9n| zD78GvD7C~M*o=zt$Xw^6c#+1P_oG4o8(ozN44#gBQ|5}f-mJ-7icv#m?XZWiz#zM_ zF3`-LqTZd}pi$F=4C72-uchh;P|r~k=ntxR-R44EnK``zmtk-@##ycqv3LjU>%~3| z_M4KoD#8}tt(geKr|21fVPrEtsV)Oi zs<~RKSbSUshQqNK=RVY9W_@CegUTP^vDAWcOJyY<3pF23-bb-Cg_7b{O+~;V0Y6j5 zOs9DW?q4YHxf%h@>~QiHpT&09x?qqqd_KPhiF zif_SrNTIGa{1~c*FKp*3gBk-Thul_bo<8!shyN`< z6_SUK2aMX(*=lxy*L1E4gf-fa9=huhc8(Ev)Q~xP40*)SRP=Z!=a7Wg{=*kRm@Q^y zC3>j@az(FCycwD2?o2FtW#>qXFg$V|xj+@YpmKzD4OZIM@Oagiiw5Qj8W*YDbp@|a zcDQC>Rxvmmw|iuV^HVkc!XKxvoJ)svz7Chd?4I7?yxqOv#uYjDf*aQ_Tsiat2uCql zV=T_-16@CpN5gXsol7`s#+az9qjgE!(iZ26&UBYP@sy@d8fA-nR+KqCrYlV3YsWM! z#8s+yjp=&Vm}Sn?l}mA3tFH@-0ckT2BM;qf6}K@BTHh`168H8kUJPSxli5mgATzyrDgbv&XwJ5>Ii3bB7%i?jGti>GLmKy@5dL!XZoFEF_t$i%3pXLw9=H zSG1|Kr^uPP?fBB#oVI1Sa|cUfYj2w~uX$RXXh8s%?729iv?hg4z@I5~SEQ8ME-4N@ zb7@}Q+B>VSrx!ODr*gs4p+@9Z_gin^ZlXO^OH1Oa%28d1}=`h1^OYN z;ed~MN<7C{Ljf6>nFkjFCRy^v?%x61aj?mEr~zTzi`537Nx z32WVzTn+yz@c(#3_-(*{75>je_&){w!k->KtOlwf{9l3pR`_3OhnM)PfO{Ly*Ws_; zDJDE{OdH?4yWsax*xhtnX`2N9$@>l;E(Q$qZw7wM&ki3R7UACu{P90OeE7>D{3+X3 z_&)}JHR3k1A>Zlu2>gBvKODpJ;)eA+)Rie%9jGpF26mFgK|TvdVd0PBu%J3@CT z-x+vD@Vijwev60UUj_at3;%t=e*^di3;#8^SEGHy>|po@h3><^^DGweN#HiYT_bdK z-val7wCCRk+<3&hLc+Jg|1rz|J%XPFe7%KlguBDyJ6Y&X2mTR@?o`2-0l(A2r{Lxp zOBf|5N3It@j_(3q4EO@zy8yoe$b5M?=?pw5;i*C3Gr&{sk0+f6xFUxu=2dBGA2SEX?=K<^9%52ybl60-tC~f%c8p%c*@@oe7%ML0PvRr-wiko za5>;5fXzZb9rSlt^p^;JBJfowIW#*cM;h+c7TpPOcUk@%WKRX(6!04@x;Wgu7TsUL zi*mk+d&#z(*s^om0YBvZRiS$nbnAs5@wkVbMfZTv-D~k99qwbRc-8~I)(VgN*jeHG zK*#)P7y5;uUt`f<>7(cUYtvpQAk4`U4);C>Qj*R$;^_b3Hu**OKk(r0X({f-x%o!? zAlyqvIW#-y{uZ7_&^-%$ugGyHaJX|mu-kI)1a1oG?k7JBzZLhMjeHE(BXmnZ*CBM@ zi(xs~qNBT6=o&z`+@hN-_;J9S@*@2hU-(mm4%5ehrB?V-;F+Gk;$HD03;%n#O?t@h z4LnTG4}iDh!F_6l{}k}1-{M5`V{pGM?V4`fqjmc&x-)Q_{)cX^S(1Mb@bg6u;#UZM zA@I!>{%XND0zcitUkLYdDQAY~Hzs%@0%ix@BPCo3@J$kKKRojV|3^%P3_s$31GnKv z_pjhK{OJBB9?JbB@H5kJAfA=@dlV1xct5-Rh~H-Mqx&wQyVXaBae*5z>D~*siI;A? z+gvxtSR5xXzDD31({Mlz;?Wl={6ydz(r^fVEZj>apGbEq9)=$dyeVJeaqY$J=jq;z z!5p$Gu}R?R0!IscwNU&2P~gV|-Y4)Um~=Ayj|JW@aJ#@S;{8hh#|7RZaFxIj0{Lzx z-T%S+iST)W?-j`RA@Rov942s0QsY+(T#%>T^98<+_P}sI5;#xbl>*KE@Ierf?o0T? z+I(U@Ao3?6cSsW)+t9y2AjeB|bEl5*4S_!s_>#bH3w&1KmjwQ|z=s7sC~!dFJp%6* z_(6fU3G5Vjqrhtga{NbmSbqp-3cNtz`2x=rc$z?t`$&(pE0_=npxlII@ShG?3fKTR z8Cg^(?pkrzh&wHAj?qY8E^br{tVQ&J;LZV57hWfk>m0r%oVbR&Jz8!Lb5s1Xc@73mhqs`N4Em z3M?1MgcHyFAWR4ZP;Nr>6^SZT3h+pj3q(Jw?)4vpKk7{4fY1*DqOVE32FQB!iuk`Q z{x1rCui*Cxez)Lv3H}+uKPC9b1pkQOcMASN!4C-je!*`S{5HXF75rU-zeDgF1;1YK zYX!eX@T&#iEBG$KcL;vD;Aa9>A-&T9j{}?p$n@6&GJnPbGJk6XUoH5w;71A`JQRJU z;L8PHBKVZx0aUq=?|FFmp)u+Ypy8N`cm4TZ=@tAU;6E$&AHvQfC8R$c&#;8Ha}IyL z*g1#i_6%t_hrdPaoWuX8*g1#)qS!fy9~3+1@YIUPu$;qRDR$1`SBaf-_|MXgPJwHj zkJ66BSC7J)gy6Z>xlim|=lr$UxyJbiv2%U%Z?q$9&8avMgE(mCT4s~jIrqO!?418U zL_6M*yw~!S*w@1Ty4bhFejMZ@%`>pi6#HwiuNV6}usp-Y z{uv9eHwLvl?N-=7T6XHjFg)WH{z*&z7cF~*Me{!vzTdKwpW%tDbnQKs{S%gbv1QNJ z{gCZ4UnNpE++BSR!R>8p0T-X((F?)Tx;s~>m2AZlI}9yY>+}#yT2}O2Keuh=(w1di zSm~B{)p9i!loef5YkRlgyW6g(u7hq1zl4X;TChkuBWpd_Y0>))%4bDa2UgEl_A144 zwhs??O@#`DrMwo}qFF(6pPZGkSg6xyEs>j0S*bPa&o6FkWoekqvd3h!JJoXI90dkria!t zeRkvA2zDw`uR-OASW#BD%(!B1^Tk(8nc8v`d@X8Q9ZE1+o;H;5HpIO)InqG&AmKzu zXlT&^bG5bTP`R5M!-ZF6-@f6(XiC%Qa#48gE}F_}deKCx_2uvm-;mBBee@n^jzC9h zhS380T4FR|uExkv*sp^*R{b;Q)}Avlt&C6qjCrex2AZ(%(KTZH?WFbi?lp|*!^|42 zYb^pDA<6lS5W=I;Kl5AAGCa*|nAlQ+t;vrUjkg#MXo$)EL@hxtr^N0k1VW8o2{e}+76Lt2a+ z`;i|qRu9M#rGMrDDUUb@_t_@EBTD}adEA7sN68~p|4bFibQ^fAJ_7O}D9y#^T-n`xo&2fVU%Q)lT0;U~+GAKBju zdkj3f5Vq0{p`&**15V+AQz_x!lB>pi8dGCuy~uG0a3RstSu zGSpFN#|@O5L#97%U&&r*X`szj%DbSK3CcDu%OmMqIZ@=e#mB>b4ISwlZv3|Re8j)r zmlhmsTyDgoKv?E-UPE4St#B{?xW)n+_Zx1^4?d&?%RoH^$~7;8kDEvr>p14)SXy7i zwV8FL-~`1K&=^slpIP?+_-8W5p%R$8?B6_$yX=`0EX)@b=41==UkWpdm_|=|#ofSC z&qlU72(1HwiZ(XgI+)q;Gek(u1sguknB|5))DVb9kXhusVH-F@#`=QHhDS+HH3hiN zUrWzBAJ-VIlAykN@C0DZO?~xY8kPG0TW-g@!<`jwp&aY|_;;gk@eQ2~*L3U3r82E+ z?wsSEFT@3{(pZmlNjD>6_rph}1!$<&r?5&#Yj=s0{V6QQnaJlRFHU%R_f^%Wu&830 z_f?ZukSIkW-d8OxAjPMnC3u&yX8RXV#PwzD;u)GipSN=oiA!9H#1teg?vy6V{P)9BRITpa z4;zw5mfr@<0z5-+#9x_HOqqQ5!;(eAC=HmF$o(+JomBV3O5FQl3a9Rem00(~Sb|A) zKdi*MAEvPCewYgH-4CNANp(Mr9&$endgPs?z8{vPxQXHmw2*S!JipAy=M+Pie(<(= ze%G+k%<9qL!=Q=cpO8!+3^(=ADbGs{GP3IFPTVQJ)5x$vuKdERX>eS-~~ta+(=4Br3u-+A&_^FCd1;4)r`|1w^wzI0aR z-G{@~xZ>gq@%|_`_s@o!`)9+<&ArgCIyvuS%W&A5|2=P~nL1+brv+}Dxdd|OO!o`= z%9wo>!C+L|(T=P|scb%|7ibZzy)kwBi#N+2fGssDUc*l?om~-6A;&p?P;_cO`7&Hl zeP~o?e=ABZDoj|vOQE)A#mW|Lu73b?A_eE9qb@{*E!hf*m>x% zZHDF=#Ztz)p{lo3qM8h*mobOvG5ZFKL&WtHDPv;5017E$UIuPF{~fpJi+)s&Ylym zmPZ9v3glS};;$9R00^ee#DK3l%R$I8A!PXzqR16w3DFIpU^O7}BasG#4C;&x!YY1P zs!(TTK(EfqkdFLFM}DLuBfKAord#nPTmU!eIcGsWCK>@LcLN~mMuKHbIara1pCtHN z!Gnhi2cY;e0xm~&ftY6qXzmv~>(O4?5#e6s@gcFZ4W&`}iD#W|qJ0F;6ClHI=2F?~ zVc#tF1+Y&CuOWz>b-P3CY_FqXmuOW#XY3WQ82crb{S}M;50?E=%f8#PlZWBMB_dsEB4s%hBzSdYdBD z)vpyDY3{a<@6DkJ+^t1B_HiMDy%?r7Hc`_U*Fo`xR*8l^1GS^^qxEh&6`pW)xY!eS@- z6Pn5@={U_`4LHLiYJI;0@#EaH)67mH+n^WI#^n*QzW-Tv-Z1~cPBz;Fctox59}ADD z^?mYq3~4cP^ddjtqzT9owZ4BH`t0)&U>aUBG;6>^*3|+$qSp8C0}n?0e&L}Q>Ax@@ zq3iqi;U)MO!n_~v8lMU9h+5yjT)jmd=WH{0@)!kpM6K^1C6Aoz`#E^H5*=wxd?wOT z1L{dg3x(f_a$z>x=16Pez2LzC#RB2+j#oe2nrp2^hwc%q29Nu}W05aU-3*1Fkt1r4 zpb7&I6(P>oF;0cD`B4iV9QRN1spb|S!hpB(7k zmK&MK3{BCY4%#%}8oWetcP(q5fkN|P{a}}fqB>^dQ-Dt8-v^r>H^#w3t1prJD4o*b)+jsSyA>@eysG{~0GJ6IK z6=CnmnGJW6@13_%5KB|`ub~C~&G>{}W^)2rwC+G^kYVR%*8UZxq?2Z8czyywhCGW9 zDW&P#(+|A%1w~F((4rPN#T?lH`rCI6xo6jqClCngfvG%9*Pnmw21sx`xPs|c=2-VX zxZj`#zyYT2X+6wF)cBK|3T3giEJv72@wgicWjw8J?R=CyuiYhyRudXw7c>93tKjt_ zPAs1iBnr4ps?hjT+B;L+R+tAY*PQb?%TE-Nh`S+W@x!o1h;4l=8v+lH%|?+?*sZp} z!+in|Hv$)3CZxscEgC!iClFd2EomX6md%i|l1X5WO^MlB=tTUIQi{!`Nl~9%!stOU zSHFuAd2`B!(U*y0;6$7Uz9W*Nk0HByBQS|IXM$N4C&lW}sW4eQ+a8-Y1gmt*fL2Lk zSCgle8J}d*R^DoYgNn%0n6ROVVTokLn~;K%RPsJU5?7YM8e;3y%&r8uaa&;IFKy}S z##9Z@_S*EfL&(;lGNGU`&aC{p2>IjLj$J5ohaw#M-c}9t9l|+<= zQy91U*ZL%?btQttsLh?-2ud7lf64WT6aWo zVmqARmC9levkfbi#fn;~EC#i!vRGlY%Hrcpi6cMD@+o=ZcxI>CiVAc})MQ-tpd>_} zop!^s#6_8L{&Mos{ft)x`Hv7=xC{SkkE(3A(SgYe{P{nk@Bez+DtogjX?C&ljbg|G zZa--yiYZTtVxg@rvdAb?wznVC|x_WEmy7ggKjjF}t7jfW)HmQ&$i+uuVFE1nHM9 zX?7(Jb2j~>dVi<;N|djEYuUG7s`qVq>4mC#T)kORdWV6)r_LpEm8&nUeyXe8esr)` z+Nd#K`2@Y|)jf91nc$@lR>pXhMZu+Ky{5h~88RyavmrAmQ205gAi7WI)zPG-%G&?S zkPg$2f(;4#NzN@82MdT52L8$pi!CD6)?wmYuTLsEEDK=etF^u(gjK=%uZUjJ3Y_FL zK4%)d-+NuxV_odUdcv+4&%RgK*3lc2(PjV@ULh$M112(yeQs=u9e&t4p+Lk>S+iuGNMA`|MK` z`N{~2e0401fh9ksVJ;e$AB839I8%<_qvE@yPNXuQ<>=SRN!pkBB!d`9__OYazbE8d z{HH^ry%z6!$TNQ@?YyXK?YGIvRUuzEJo<2#cx!UJ^XfcpyPHQ9+oC`1lNRgG4qbZh zyg4`}nV@f#S}R4vPlfzc$@dw3Ld@UtI}QZ-@1iZ1-20?`KXPx3{wPNu7oBp)R1W7t zN-Z?ysPc<~{AuMmzw-R!LgWK&9t_IkKKW0xdLzD4m*znef9V3dAE4ujhnx>8waDX$ zR1@o62FIj0$)7iPPm_!MZG)ebAy2FmAfY~i#CQNU4R#wmZE(4M3qE@Ypxgis_84UT zLKkqbUr=?e_X#dkHJQ^oHgWz{-Ru0T;yeE;ax@7!&VrDmARTYHma3huTp$Fw0GwYJ z2m>hKAc*SZ?$f+>?sCw0zlazN(Q0IkpR!iD--1tWY z;U6*jA)^l)eZSFn8-1tIw;6r2(Ki}>ozYhteZc5EpVUjh#fEsMN_hY8XTy0WXKGxb z-x9vXaC8puszFER+y_^qf2aeWgR4W(iLZ^0{{L<``eupd4)W-n1K^tIoR5tdeogqe z;ZKAsK9ZApDV#V>$bS?*U$qCP!zKVKk99`vN@l5Zc}`y$optJz>Z(7Ncy>MhMHG*_ zjhM-_0-5arJ}tl(1~_A-tV=+TUk&h+0lp)^D?HGdN7k#^z<$fEVA?~chbw$*yw|mre}$H*kMMN$W&NF<}r`Pq%R&xnZG6F7uZN8-u38r?4! 1.1.0' \ No newline at end of file +pod 'OBSlider', '~> 1.1.0' + +target :BeamMusicPlayerExampleTests, :exclusive => true do + pod 'OCMock' +end \ No newline at end of file diff --git a/Podfile.lock b/Podfile.lock index 116f3bc..369e95b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,10 +1,13 @@ PODS: - OBSlider (1.1.0) + - OCMock (2.1.1) DEPENDENCIES: - OBSlider (~> 1.1.0) + - OCMock SPEC CHECKSUMS: OBSlider: 1eae1ad6fea0af687f7dde0366003044c4ba3d27 + OCMock: 79212e5e328378af5cfd6edb5feacfd6c49cd8a3 -COCOAPODS: 0.19.1 +COCOAPODS: 0.21.0 diff --git a/Pods/BuildHeaders/OCMock/NSInvocation+OCMAdditions.h b/Pods/BuildHeaders/OCMock/NSInvocation+OCMAdditions.h new file mode 120000 index 0000000..b5f84f8 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/NSInvocation+OCMAdditions.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/NSMethodSignature+OCMAdditions.h b/Pods/BuildHeaders/OCMock/NSMethodSignature+OCMAdditions.h new file mode 120000 index 0000000..78c96d0 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/NSMethodSignature+OCMAdditions.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/NSNotificationCenter+OCMAdditions.h b/Pods/BuildHeaders/OCMock/NSNotificationCenter+OCMAdditions.h new file mode 120000 index 0000000..b0c2371 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/NSNotificationCenter+OCMAdditions.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCClassMockObject.h b/Pods/BuildHeaders/OCMock/OCClassMockObject.h new file mode 120000 index 0000000..53c7c49 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCClassMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCClassMockObject.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMArg.h b/Pods/BuildHeaders/OCMock/OCMArg.h new file mode 120000 index 0000000..7f69f9b --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMArg.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMArg.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMBlockCaller.h b/Pods/BuildHeaders/OCMock/OCMBlockCaller.h new file mode 120000 index 0000000..1dea96c --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMBlockCaller.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMBlockCaller.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMBoxedReturnValueProvider.h b/Pods/BuildHeaders/OCMock/OCMBoxedReturnValueProvider.h new file mode 120000 index 0000000..e663e8d --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMBoxedReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMConstraint.h b/Pods/BuildHeaders/OCMock/OCMConstraint.h new file mode 120000 index 0000000..8cf4176 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMConstraint.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMConstraint.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMExceptionReturnValueProvider.h b/Pods/BuildHeaders/OCMock/OCMExceptionReturnValueProvider.h new file mode 120000 index 0000000..7661d35 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMExceptionReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMIndirectReturnValueProvider.h b/Pods/BuildHeaders/OCMock/OCMIndirectReturnValueProvider.h new file mode 120000 index 0000000..ad444fd --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMIndirectReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMNotificationPoster.h b/Pods/BuildHeaders/OCMock/OCMNotificationPoster.h new file mode 120000 index 0000000..d555dbd --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMNotificationPoster.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMNotificationPoster.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMObserverRecorder.h b/Pods/BuildHeaders/OCMock/OCMObserverRecorder.h new file mode 120000 index 0000000..89d0a7b --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMObserverRecorder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMObserverRecorder.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMPassByRefSetter.h b/Pods/BuildHeaders/OCMock/OCMPassByRefSetter.h new file mode 120000 index 0000000..8aed5e1 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMPassByRefSetter.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMPassByRefSetter.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMRealObjectForwarder.h b/Pods/BuildHeaders/OCMock/OCMRealObjectForwarder.h new file mode 120000 index 0000000..5664269 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMRealObjectForwarder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMRealObjectForwarder.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMReturnValueProvider.h b/Pods/BuildHeaders/OCMock/OCMReturnValueProvider.h new file mode 120000 index 0000000..458db78 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMReturnValueProvider.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMock.h b/Pods/BuildHeaders/OCMock/OCMock.h new file mode 120000 index 0000000..d908884 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMock.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMock.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMockObject.h b/Pods/BuildHeaders/OCMock/OCMockObject.h new file mode 120000 index 0000000..f6cf2f1 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMockObject.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCMockRecorder.h b/Pods/BuildHeaders/OCMock/OCMockRecorder.h new file mode 120000 index 0000000..183029a --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCMockRecorder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMockRecorder.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCObserverMockObject.h b/Pods/BuildHeaders/OCMock/OCObserverMockObject.h new file mode 120000 index 0000000..7624fc8 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCObserverMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCObserverMockObject.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCPartialMockObject.h b/Pods/BuildHeaders/OCMock/OCPartialMockObject.h new file mode 120000 index 0000000..d497494 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCPartialMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCPartialMockObject.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCPartialMockRecorder.h b/Pods/BuildHeaders/OCMock/OCPartialMockRecorder.h new file mode 120000 index 0000000..87348dc --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCPartialMockRecorder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCPartialMockRecorder.h \ No newline at end of file diff --git a/Pods/BuildHeaders/OCMock/OCProtocolMockObject.h b/Pods/BuildHeaders/OCMock/OCProtocolMockObject.h new file mode 120000 index 0000000..8ef0e20 --- /dev/null +++ b/Pods/BuildHeaders/OCMock/OCProtocolMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCProtocolMockObject.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/NSInvocation+OCMAdditions.h b/Pods/Headers/OCMock/NSInvocation+OCMAdditions.h new file mode 120000 index 0000000..b5f84f8 --- /dev/null +++ b/Pods/Headers/OCMock/NSInvocation+OCMAdditions.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/NSInvocation+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/NSMethodSignature+OCMAdditions.h b/Pods/Headers/OCMock/NSMethodSignature+OCMAdditions.h new file mode 120000 index 0000000..78c96d0 --- /dev/null +++ b/Pods/Headers/OCMock/NSMethodSignature+OCMAdditions.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/NSNotificationCenter+OCMAdditions.h b/Pods/Headers/OCMock/NSNotificationCenter+OCMAdditions.h new file mode 120000 index 0000000..b0c2371 --- /dev/null +++ b/Pods/Headers/OCMock/NSNotificationCenter+OCMAdditions.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCClassMockObject.h b/Pods/Headers/OCMock/OCClassMockObject.h new file mode 120000 index 0000000..53c7c49 --- /dev/null +++ b/Pods/Headers/OCMock/OCClassMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCClassMockObject.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMArg.h b/Pods/Headers/OCMock/OCMArg.h new file mode 120000 index 0000000..7f69f9b --- /dev/null +++ b/Pods/Headers/OCMock/OCMArg.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMArg.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMBlockCaller.h b/Pods/Headers/OCMock/OCMBlockCaller.h new file mode 120000 index 0000000..1dea96c --- /dev/null +++ b/Pods/Headers/OCMock/OCMBlockCaller.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMBlockCaller.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMBoxedReturnValueProvider.h b/Pods/Headers/OCMock/OCMBoxedReturnValueProvider.h new file mode 120000 index 0000000..e663e8d --- /dev/null +++ b/Pods/Headers/OCMock/OCMBoxedReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMConstraint.h b/Pods/Headers/OCMock/OCMConstraint.h new file mode 120000 index 0000000..8cf4176 --- /dev/null +++ b/Pods/Headers/OCMock/OCMConstraint.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMConstraint.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMExceptionReturnValueProvider.h b/Pods/Headers/OCMock/OCMExceptionReturnValueProvider.h new file mode 120000 index 0000000..7661d35 --- /dev/null +++ b/Pods/Headers/OCMock/OCMExceptionReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMIndirectReturnValueProvider.h b/Pods/Headers/OCMock/OCMIndirectReturnValueProvider.h new file mode 120000 index 0000000..ad444fd --- /dev/null +++ b/Pods/Headers/OCMock/OCMIndirectReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMNotificationPoster.h b/Pods/Headers/OCMock/OCMNotificationPoster.h new file mode 120000 index 0000000..d555dbd --- /dev/null +++ b/Pods/Headers/OCMock/OCMNotificationPoster.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMNotificationPoster.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMObserverRecorder.h b/Pods/Headers/OCMock/OCMObserverRecorder.h new file mode 120000 index 0000000..89d0a7b --- /dev/null +++ b/Pods/Headers/OCMock/OCMObserverRecorder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMObserverRecorder.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMPassByRefSetter.h b/Pods/Headers/OCMock/OCMPassByRefSetter.h new file mode 120000 index 0000000..8aed5e1 --- /dev/null +++ b/Pods/Headers/OCMock/OCMPassByRefSetter.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMPassByRefSetter.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMRealObjectForwarder.h b/Pods/Headers/OCMock/OCMRealObjectForwarder.h new file mode 120000 index 0000000..5664269 --- /dev/null +++ b/Pods/Headers/OCMock/OCMRealObjectForwarder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMRealObjectForwarder.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMReturnValueProvider.h b/Pods/Headers/OCMock/OCMReturnValueProvider.h new file mode 120000 index 0000000..458db78 --- /dev/null +++ b/Pods/Headers/OCMock/OCMReturnValueProvider.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMReturnValueProvider.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMock.h b/Pods/Headers/OCMock/OCMock.h new file mode 120000 index 0000000..d908884 --- /dev/null +++ b/Pods/Headers/OCMock/OCMock.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMock.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMockObject.h b/Pods/Headers/OCMock/OCMockObject.h new file mode 120000 index 0000000..f6cf2f1 --- /dev/null +++ b/Pods/Headers/OCMock/OCMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMockObject.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCMockRecorder.h b/Pods/Headers/OCMock/OCMockRecorder.h new file mode 120000 index 0000000..183029a --- /dev/null +++ b/Pods/Headers/OCMock/OCMockRecorder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCMockRecorder.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCObserverMockObject.h b/Pods/Headers/OCMock/OCObserverMockObject.h new file mode 120000 index 0000000..7624fc8 --- /dev/null +++ b/Pods/Headers/OCMock/OCObserverMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCObserverMockObject.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCPartialMockObject.h b/Pods/Headers/OCMock/OCPartialMockObject.h new file mode 120000 index 0000000..d497494 --- /dev/null +++ b/Pods/Headers/OCMock/OCPartialMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCPartialMockObject.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCPartialMockRecorder.h b/Pods/Headers/OCMock/OCPartialMockRecorder.h new file mode 120000 index 0000000..87348dc --- /dev/null +++ b/Pods/Headers/OCMock/OCPartialMockRecorder.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCPartialMockRecorder.h \ No newline at end of file diff --git a/Pods/Headers/OCMock/OCProtocolMockObject.h b/Pods/Headers/OCMock/OCProtocolMockObject.h new file mode 120000 index 0000000..8ef0e20 --- /dev/null +++ b/Pods/Headers/OCMock/OCProtocolMockObject.h @@ -0,0 +1 @@ +../../OCMock/Source/OCMock/OCProtocolMockObject.h \ No newline at end of file diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 116f3bc..369e95b 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,10 +1,13 @@ PODS: - OBSlider (1.1.0) + - OCMock (2.1.1) DEPENDENCIES: - OBSlider (~> 1.1.0) + - OCMock SPEC CHECKSUMS: OBSlider: 1eae1ad6fea0af687f7dde0366003044c4ba3d27 + OCMock: 79212e5e328378af5cfd6edb5feacfd6c49cd8a3 -COCOAPODS: 0.19.1 +COCOAPODS: 0.21.0 diff --git a/Pods/OCMock/README.md b/Pods/OCMock/README.md new file mode 100644 index 0000000..2f8d6e6 --- /dev/null +++ b/Pods/OCMock/README.md @@ -0,0 +1,10 @@ +OCMock +====== + +OCMock is an Objective-C implementation of mock objects. + +Github is used to store and manage the source code. + +For documentation and support please visit [ocmock.org][]. + + [ocmock.org]: http://ocmock.org/ diff --git a/Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.h b/Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.h new file mode 100644 index 0000000..04f22cd --- /dev/null +++ b/Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.h @@ -0,0 +1,34 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2006-2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface NSInvocation(OCMAdditions) + +- (id)getArgumentAtIndexAsObject:(int)argIndex; + +- (NSString *)invocationDescription; + +- (NSString *)argumentDescriptionAtIndex:(int)argIndex; + +- (NSString *)objectDescriptionAtIndex:(int)anInt; +- (NSString *)charDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedCharDescriptionAtIndex:(int)anInt; +- (NSString *)intDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedIntDescriptionAtIndex:(int)anInt; +- (NSString *)shortDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedShortDescriptionAtIndex:(int)anInt; +- (NSString *)longDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedLongDescriptionAtIndex:(int)anInt; +- (NSString *)longLongDescriptionAtIndex:(int)anInt; +- (NSString *)unsignedLongLongDescriptionAtIndex:(int)anInt; +- (NSString *)doubleDescriptionAtIndex:(int)anInt; +- (NSString *)floatDescriptionAtIndex:(int)anInt; +- (NSString *)structDescriptionAtIndex:(int)anInt; +- (NSString *)pointerDescriptionAtIndex:(int)anInt; +- (NSString *)cStringDescriptionAtIndex:(int)anInt; +- (NSString *)selectorDescriptionAtIndex:(int)anInt; + +@end diff --git a/Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.m b/Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.m new file mode 100644 index 0000000..4157958 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/NSInvocation+OCMAdditions.m @@ -0,0 +1,337 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2006-2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "NSInvocation+OCMAdditions.h" + + +@implementation NSInvocation(OCMAdditions) + +- (id)getArgumentAtIndexAsObject:(int)argIndex +{ + const char* argType; + + argType = [[self methodSignature] getArgumentTypeAtIndex:argIndex]; + while(strchr("rnNoORV", argType[0]) != NULL) + argType += 1; + + if((strlen(argType) > 1) && (strchr("{^", argType[0]) == NULL) && (strcmp("@?", argType) != 0)) + [NSException raise:NSInvalidArgumentException format:@"Cannot handle argument type '%s'.", argType]; + + switch (argType[0]) + { + case '#': + case '@': + { + id value; + [self getArgument:&value atIndex:argIndex]; + return value; + } + case ':': + { + SEL s = (SEL)0; + [self getArgument:&s atIndex:argIndex]; + id value = NSStringFromSelector(s); + return value; + } + case 'i': + { + int value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithInt:value]; + } + case 's': + { + short value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithShort:value]; + } + case 'l': + { + long value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithLong:value]; + } + case 'q': + { + long long value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithLongLong:value]; + } + case 'c': + { + char value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithChar:value]; + } + case 'C': + { + unsigned char value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithUnsignedChar:value]; + } + case 'I': + { + unsigned int value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithUnsignedInt:value]; + } + case 'S': + { + unsigned short value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithUnsignedShort:value]; + } + case 'L': + { + unsigned long value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithUnsignedLong:value]; + } + case 'Q': + { + unsigned long long value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithUnsignedLongLong:value]; + } + case 'f': + { + float value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithFloat:value]; + } + case 'd': + { + double value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithDouble:value]; + } + case 'B': + { + bool value; + [self getArgument:&value atIndex:argIndex]; + return [NSNumber numberWithBool:value]; + } + case '^': + { + void *value = NULL; + [self getArgument:&value atIndex:argIndex]; + return [NSValue valueWithPointer:value]; + } + case '{': // structure + { + NSUInteger maxArgSize = [[self methodSignature] frameLength]; + NSMutableData *argumentData = [[[NSMutableData alloc] initWithLength:maxArgSize] autorelease]; + [self getArgument:[argumentData mutableBytes] atIndex:argIndex]; + return [NSValue valueWithBytes:[argumentData bytes] objCType:argType]; + } + + } + [NSException raise:NSInvalidArgumentException format:@"Argument type '%s' not supported", argType]; + return nil; +} + +- (NSString *)invocationDescription +{ + NSMethodSignature *methodSignature = [self methodSignature]; + NSUInteger numberOfArgs = [methodSignature numberOfArguments]; + + if (numberOfArgs == 2) + return NSStringFromSelector([self selector]); + + NSArray *selectorParts = [NSStringFromSelector([self selector]) componentsSeparatedByString:@":"]; + NSMutableString *description = [[NSMutableString alloc] init]; + unsigned int i; + for(i = 2; i < numberOfArgs; i++) + { + [description appendFormat:@"%@%@:", (i > 2 ? @" " : @""), [selectorParts objectAtIndex:(i - 2)]]; + [description appendString:[self argumentDescriptionAtIndex:i]]; + } + + return [description autorelease]; +} + +- (NSString *)argumentDescriptionAtIndex:(int)argIndex +{ + const char *argType = [[self methodSignature] getArgumentTypeAtIndex:argIndex]; + if(strchr("rnNoORV", argType[0]) != NULL) + argType += 1; + + switch(*argType) + { + case '@': return [self objectDescriptionAtIndex:argIndex]; + case 'c': return [self charDescriptionAtIndex:argIndex]; + case 'C': return [self unsignedCharDescriptionAtIndex:argIndex]; + case 'i': return [self intDescriptionAtIndex:argIndex]; + case 'I': return [self unsignedIntDescriptionAtIndex:argIndex]; + case 's': return [self shortDescriptionAtIndex:argIndex]; + case 'S': return [self unsignedShortDescriptionAtIndex:argIndex]; + case 'l': return [self longDescriptionAtIndex:argIndex]; + case 'L': return [self unsignedLongDescriptionAtIndex:argIndex]; + case 'q': return [self longLongDescriptionAtIndex:argIndex]; + case 'Q': return [self unsignedLongLongDescriptionAtIndex:argIndex]; + case 'd': return [self doubleDescriptionAtIndex:argIndex]; + case 'f': return [self floatDescriptionAtIndex:argIndex]; + // Why does this throw EXC_BAD_ACCESS when appending the string? + // case NSObjCStructType: return [self structDescriptionAtIndex:index]; + case '^': return [self pointerDescriptionAtIndex:argIndex]; + case '*': return [self cStringDescriptionAtIndex:argIndex]; + case ':': return [self selectorDescriptionAtIndex:argIndex]; + default: return [@""]; // avoid confusion with trigraphs... + } + +} + + +- (NSString *)objectDescriptionAtIndex:(int)anInt +{ + id object; + + [self getArgument:&object atIndex:anInt]; + if (object == nil) + return @"nil"; + else if(![object isProxy] && [object isKindOfClass:[NSString class]]) + return [NSString stringWithFormat:@"@\"%@\"", [object description]]; + else + return [object description]; +} + +- (NSString *)charDescriptionAtIndex:(int)anInt +{ + unsigned char buffer[128]; + memset(buffer, 0x0, 128); + + [self getArgument:&buffer atIndex:anInt]; + + // If there's only one character in the buffer, and it's 0 or 1, then we have a BOOL + if (buffer[1] == '\0' && (buffer[0] == 0 || buffer[0] == 1)) + return [NSString stringWithFormat:@"%@", (buffer[0] == 1 ? @"YES" : @"NO")]; + else + return [NSString stringWithFormat:@"'%c'", *buffer]; +} + +- (NSString *)unsignedCharDescriptionAtIndex:(int)anInt +{ + unsigned char buffer[128]; + memset(buffer, 0x0, 128); + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@"'%c'", *buffer]; +} + +- (NSString *)intDescriptionAtIndex:(int)anInt +{ + int intValue; + + [self getArgument:&intValue atIndex:anInt]; + return [NSString stringWithFormat:@"%d", intValue]; +} + +- (NSString *)unsignedIntDescriptionAtIndex:(int)anInt +{ + unsigned int intValue; + + [self getArgument:&intValue atIndex:anInt]; + return [NSString stringWithFormat:@"%d", intValue]; +} + +- (NSString *)shortDescriptionAtIndex:(int)anInt +{ + short shortValue; + + [self getArgument:&shortValue atIndex:anInt]; + return [NSString stringWithFormat:@"%hi", shortValue]; +} + +- (NSString *)unsignedShortDescriptionAtIndex:(int)anInt +{ + unsigned short shortValue; + + [self getArgument:&shortValue atIndex:anInt]; + return [NSString stringWithFormat:@"%hu", shortValue]; +} + +- (NSString *)longDescriptionAtIndex:(int)anInt +{ + long longValue; + + [self getArgument:&longValue atIndex:anInt]; + return [NSString stringWithFormat:@"%ld", longValue]; +} + +- (NSString *)unsignedLongDescriptionAtIndex:(int)anInt +{ + unsigned long longValue; + + [self getArgument:&longValue atIndex:anInt]; + return [NSString stringWithFormat:@"%lu", longValue]; +} + +- (NSString *)longLongDescriptionAtIndex:(int)anInt +{ + long long longLongValue; + + [self getArgument:&longLongValue atIndex:anInt]; + return [NSString stringWithFormat:@"%qi", longLongValue]; +} + +- (NSString *)unsignedLongLongDescriptionAtIndex:(int)anInt +{ + unsigned long long longLongValue; + + [self getArgument:&longLongValue atIndex:anInt]; + return [NSString stringWithFormat:@"%qu", longLongValue]; +} + +- (NSString *)doubleDescriptionAtIndex:(int)anInt; +{ + double doubleValue; + + [self getArgument:&doubleValue atIndex:anInt]; + return [NSString stringWithFormat:@"%f", doubleValue]; +} + +- (NSString *)floatDescriptionAtIndex:(int)anInt +{ + float floatValue; + + [self getArgument:&floatValue atIndex:anInt]; + return [NSString stringWithFormat:@"%f", floatValue]; +} + +- (NSString *)structDescriptionAtIndex:(int)anInt; +{ + void *buffer; + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@":(struct)%p", buffer]; +} + +- (NSString *)pointerDescriptionAtIndex:(int)anInt +{ + void *buffer; + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@"%p", buffer]; +} + +- (NSString *)cStringDescriptionAtIndex:(int)anInt +{ + char buffer[128]; + + memset(buffer, 0x0, 128); + + [self getArgument:&buffer atIndex:anInt]; + return [NSString stringWithFormat:@"\"%s\"", buffer]; +} + +- (NSString *)selectorDescriptionAtIndex:(int)anInt +{ + SEL selectorValue; + + [self getArgument:&selectorValue atIndex:anInt]; + return [NSString stringWithFormat:@"@selector(%@)", NSStringFromSelector(selectorValue)]; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h b/Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h new file mode 100644 index 0000000..23741e3 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h @@ -0,0 +1,18 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface NSMethodSignature(PrivateAPI) + ++ (id)signatureWithObjCTypes:(const char *)types; + +@end + +@interface NSMethodSignature(OCMAdditions) + +- (const char *)methodReturnTypeWithoutQualifiers; + +@end diff --git a/Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.m b/Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.m new file mode 100644 index 0000000..a69bb14 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.m @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "NSMethodSignature+OCMAdditions.h" + + +@implementation NSMethodSignature(OCMAdditions) + +- (const char *)methodReturnTypeWithoutQualifiers +{ + const char *returnType = [self methodReturnType]; + while(strchr("rnNoORV", returnType[0]) != NULL) + returnType += 1; + return returnType; +} + +@end diff --git a/BeamMusicPlayerExampleTests/OCMock/NSNotificationCenter+OCMAdditions.h b/Pods/OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.h similarity index 100% rename from BeamMusicPlayerExampleTests/OCMock/NSNotificationCenter+OCMAdditions.h rename to Pods/OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.h diff --git a/Pods/OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.m b/Pods/OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.m new file mode 100644 index 0000000..286cb68 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.m @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "NSNotificationCenter+OCMAdditions.h" +#import "OCObserverMockObject.h" + + +@implementation NSNotificationCenter(OCMAdditions) + +- (void)addMockObserver:(OCMockObserver *)notificationObserver name:(NSString *)notificationName object:(id)notificationSender +{ + [self addObserver:notificationObserver selector:@selector(handleNotification:) name:notificationName object:notificationSender]; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCClassMockObject.h b/Pods/OCMock/Source/OCMock/OCClassMockObject.h new file mode 100644 index 0000000..3642240 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCClassMockObject.h @@ -0,0 +1,21 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2005-2013 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCClassMockObject : OCMockObject +{ + Class mockedClass; + NSMutableDictionary *replacedClassMethods; +} + +- (id)initWithClass:(Class)aClass; + +- (Class)mockedClass; + +- (void)setupClassForClassMethodMocking; +- (void)setupForwarderForClassMethodSelector:(SEL)selector; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCClassMockObject.m b/Pods/OCMock/Source/OCMock/OCClassMockObject.m new file mode 100644 index 0000000..a479a8a --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCClassMockObject.m @@ -0,0 +1,160 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2005-2013 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import "OCClassMockObject.h" + + +@implementation OCClassMockObject + +#pragma mark Mock table + +static NSMutableDictionary *mockTable; + ++ (void)initialize +{ + if(self == [OCClassMockObject class]) + mockTable = [[NSMutableDictionary alloc] init]; +} + ++ (void)rememberMock:(OCClassMockObject *)mock forClass:(Class)aClass +{ + @synchronized(mockTable) + { + [mockTable setObject:[NSValue valueWithNonretainedObject:mock] forKey:[NSValue valueWithNonretainedObject:aClass]]; + } +} + ++ (void)forgetMockForClass:(Class)aClass +{ + @synchronized(mockTable) + { + [mockTable removeObjectForKey:[NSValue valueWithNonretainedObject:aClass]]; + } +} + ++ (OCClassMockObject *)existingMockForClass:(Class)aClass +{ + @synchronized(mockTable) + { + OCClassMockObject *mock = [[mockTable objectForKey:[NSValue valueWithNonretainedObject:aClass]] nonretainedObjectValue]; + if(mock == nil) + [NSException raise:NSInternalInconsistencyException format:@"No mock for class %p", aClass]; + return mock; + } +} + +#pragma mark Initialisers, description, accessors, etc. + +- (id)initWithClass:(Class)aClass +{ + [super init]; + mockedClass = aClass; + return self; +} + +- (void)dealloc +{ + if(replacedClassMethods != nil) + { + [self stopMocking]; + [[self class] forgetMockForClass:mockedClass]; + [replacedClassMethods release]; + } + [super dealloc]; +} + +- (NSString *)description +{ + return [NSString stringWithFormat:@"OCMockObject[%@]", NSStringFromClass(mockedClass)]; +} + +- (Class)mockedClass +{ + return mockedClass; +} + + +#pragma mark Class method mocking + +- (void)setupClassForClassMethodMocking +{ + if(replacedClassMethods != nil) + return; + + replacedClassMethods = [[NSMutableDictionary alloc] init]; + [[self class] rememberMock:self forClass:mockedClass]; + + Method myForwardInvocationMethod = class_getInstanceMethod([self class], @selector(forwardInvocationForClassObject:)); + IMP myForwardInvocationImp = method_getImplementation(myForwardInvocationMethod); + const char *forwardInvocationTypes = method_getTypeEncoding(myForwardInvocationMethod); + Class metaClass = objc_getMetaClass(class_getName(mockedClass)); + + IMP replacedForwardInvocationImp = class_replaceMethod(metaClass, @selector(forwardInvocation:), myForwardInvocationImp, forwardInvocationTypes); + + [replacedClassMethods setObject:[NSValue valueWithPointer:replacedForwardInvocationImp] forKey:NSStringFromSelector(@selector(forwardInvocation:))]; +} + +- (void)setupForwarderForClassMethodSelector:(SEL)selector +{ + Method originalMethod = class_getClassMethod(mockedClass, selector); + Class metaClass = objc_getMetaClass(class_getName(mockedClass)); + + IMP forwarderImp = [metaClass instanceMethodForSelector:@selector(aMethodThatMustNotExist)]; + IMP replacedMethod = class_replaceMethod(metaClass, method_getName(originalMethod), forwarderImp, method_getTypeEncoding(originalMethod)); + + [replacedClassMethods setObject:[NSValue valueWithPointer:replacedMethod] forKey:NSStringFromSelector(selector)]; +} + +- (void)removeForwarderForClassMethodSelector:(SEL)selector +{ + Class metaClass = objc_getMetaClass(class_getName(mockedClass)); + NSValue *originalMethodPointer = [replacedClassMethods objectForKey:NSStringFromSelector(selector)]; + IMP originalMethod = [originalMethodPointer pointerValue]; + if(originalMethod) { + class_replaceMethod(metaClass, selector, originalMethod, 0); + } else { + IMP forwarderImp = [metaClass instanceMethodForSelector:@selector(aMethodThatMustNotExist)]; + class_replaceMethod(metaClass, selector, forwarderImp, 0); + } +} + +- (void)forwardInvocationForClassObject:(NSInvocation *)anInvocation +{ + // in here "self" is a reference to the real class, not the mock + OCClassMockObject *mock = [OCClassMockObject existingMockForClass:(Class)self]; + if([mock handleInvocation:anInvocation] == NO) + { + // if mock doesn't want to handle the invocation, maybe all expects have occurred, we remove the forwarder and try again + [mock removeForwarderForClassMethodSelector:[anInvocation selector]]; + [anInvocation invoke]; + } +} + +- (void)stopMocking +{ + for(NSString *replacedMethod in replacedClassMethods) + [self removeForwarderForClassMethodSelector:NSSelectorFromString(replacedMethod)]; +} + + +#pragma mark Proxy API + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + return [mockedClass instanceMethodSignatureForSelector:aSelector]; +} + +- (BOOL)respondsToSelector:(SEL)selector +{ + return [mockedClass instancesRespondToSelector:selector]; +} + +- (BOOL)isKindOfClass:(Class)aClass +{ + return [mockedClass isSubclassOfClass:aClass]; +} + +@end diff --git a/BeamMusicPlayerExampleTests/OCMock/OCMArg.h b/Pods/OCMock/Source/OCMock/OCMArg.h similarity index 88% rename from BeamMusicPlayerExampleTests/OCMock/OCMArg.h rename to Pods/OCMock/Source/OCMock/OCMArg.h index 669c094..ef652ab 100644 --- a/BeamMusicPlayerExampleTests/OCMock/OCMArg.h +++ b/Pods/OCMock/Source/OCMock/OCMArg.h @@ -1,6 +1,6 @@ //--------------------------------------------------------------------------------------- // $Id$ -// Copyright (c) 2009-2010 by Mulle Kybernetik. See License file for details. +// Copyright (c) 2009-2013 by Mulle Kybernetik. See License file for details. //--------------------------------------------------------------------------------------- #import @@ -22,6 +22,7 @@ // manipulating arguments + (id *)setTo:(id)value; ++ (void *)setToValue:(NSValue *)value; // internal use only diff --git a/Pods/OCMock/Source/OCMock/OCMArg.m b/Pods/OCMock/Source/OCMock/OCMArg.m new file mode 100644 index 0000000..00989ff --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMArg.m @@ -0,0 +1,79 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009-2013 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import +#import +#import "OCMPassByRefSetter.h" +#import "OCMConstraint.h" + +@implementation OCMArg + ++ (id)any +{ + return [OCMAnyConstraint constraint]; +} + ++ (void *)anyPointer +{ + return (void *)0x01234567; +} + ++ (id)isNil +{ + return [OCMIsNilConstraint constraint]; +} + ++ (id)isNotNil +{ + return [OCMIsNotNilConstraint constraint]; +} + ++ (id)isNotEqual:(id)value +{ + OCMIsNotEqualConstraint *constraint = [OCMIsNotEqualConstraint constraint]; + constraint->testValue = value; + return constraint; +} + ++ (id)checkWithSelector:(SEL)selector onObject:(id)anObject +{ + return [OCMConstraint constraintWithSelector:selector onObject:anObject]; +} + +#if NS_BLOCKS_AVAILABLE + ++ (id)checkWithBlock:(BOOL (^)(id))block +{ + return [[[OCMBlockConstraint alloc] initWithConstraintBlock:block] autorelease]; +} + +#endif + ++ (id *)setTo:(id)value +{ + return (id *)[[[OCMPassByRefSetter alloc] initWithValue:value] autorelease]; +} + ++ (void *)setToValue:(NSValue *)value +{ + return (id *)[[[OCMPassByRefSetter alloc] initWithValue:value] autorelease]; +} + ++ (id)resolveSpecialValues:(NSValue *)value +{ + const char *type = [value objCType]; + if(type[0] == '^') + { + void *pointer = [value pointerValue]; + if(pointer == (void *)0x01234567) + return [OCMArg any]; + if((pointer != NULL) && (object_getClass((id)pointer) == [OCMPassByRefSetter class])) + return (id)pointer; + } + return value; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMBlockCaller.h b/Pods/OCMock/Source/OCMock/OCMBlockCaller.h new file mode 100644 index 0000000..652acc3 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMBlockCaller.h @@ -0,0 +1,21 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2010 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +#if NS_BLOCKS_AVAILABLE + +@interface OCMBlockCaller : NSObject +{ + void (^block)(NSInvocation *); +} + +- (id)initWithCallBlock:(void (^)(NSInvocation *))theBlock; + +- (void)handleInvocation:(NSInvocation *)anInvocation; + +@end + +#endif diff --git a/Pods/OCMock/Source/OCMock/OCMBlockCaller.m b/Pods/OCMock/Source/OCMock/OCMBlockCaller.m new file mode 100644 index 0000000..439d885 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMBlockCaller.m @@ -0,0 +1,32 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2010 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMBlockCaller.h" + +#if NS_BLOCKS_AVAILABLE + +@implementation OCMBlockCaller + +-(id)initWithCallBlock:(void (^)(NSInvocation *))theBlock +{ + self = [super init]; + block = [theBlock copy]; + return self; +} + +-(void)dealloc +{ + [block release]; + [super dealloc]; +} + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + block(anInvocation); +} + +@end + +#endif diff --git a/Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h b/Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h new file mode 100644 index 0000000..f2d9c91 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h @@ -0,0 +1,12 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMReturnValueProvider.h" + +@interface OCMBoxedReturnValueProvider : OCMReturnValueProvider +{ +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.m b/Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.m new file mode 100644 index 0000000..cdeaa02 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMBoxedReturnValueProvider.m @@ -0,0 +1,21 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMBoxedReturnValueProvider.h" + + +@implementation OCMBoxedReturnValueProvider + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + if(strcmp([[anInvocation methodSignature] methodReturnType], [(NSValue *)returnValue objCType]) != 0) + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:[NSString stringWithFormat:@"Return value does not match method signature; signature declares '%s' but value is '%s'.", [[anInvocation methodSignature] methodReturnType], [(NSValue *)returnValue objCType]] userInfo:nil]; + void *buffer = malloc([[anInvocation methodSignature] methodReturnLength]); + [returnValue getValue:buffer]; + [anInvocation setReturnValue:buffer]; + free(buffer); +} + +@end diff --git a/BeamMusicPlayerExampleTests/OCMock/OCMConstraint.h b/Pods/OCMock/Source/OCMock/OCMConstraint.h similarity index 100% rename from BeamMusicPlayerExampleTests/OCMock/OCMConstraint.h rename to Pods/OCMock/Source/OCMock/OCMConstraint.h diff --git a/Pods/OCMock/Source/OCMock/OCMConstraint.m b/Pods/OCMock/Source/OCMock/OCMConstraint.m new file mode 100644 index 0000000..b16a678 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMConstraint.m @@ -0,0 +1,142 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2007-2010 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + + +@implementation OCMConstraint + ++ (id)constraint +{ + return [[[self alloc] init] autorelease]; +} + +- (BOOL)evaluate:(id)value +{ + return NO; +} + + ++ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject +{ + OCMInvocationConstraint *constraint = [OCMInvocationConstraint constraint]; + NSMethodSignature *signature = [anObject methodSignatureForSelector:aSelector]; + if(signature == nil) + [NSException raise:NSInvalidArgumentException format:@"Unkown selector %@ used in constraint.", NSStringFromSelector(aSelector)]; + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; + [invocation setTarget:anObject]; + [invocation setSelector:aSelector]; + constraint->invocation = invocation; + return constraint; +} + ++ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject withValue:(id)aValue +{ + OCMInvocationConstraint *constraint = [self constraintWithSelector:aSelector onObject:anObject]; + if([[constraint->invocation methodSignature] numberOfArguments] < 4) + [NSException raise:NSInvalidArgumentException format:@"Constraint with value requires selector with two arguments."]; + [constraint->invocation setArgument:&aValue atIndex:3]; + return constraint; +} + + +@end + + + +#pragma mark - + +@implementation OCMAnyConstraint + +- (BOOL)evaluate:(id)value +{ + return YES; +} + +@end + + + +#pragma mark - + +@implementation OCMIsNilConstraint + +- (BOOL)evaluate:(id)value +{ + return value == nil; +} + +@end + + + +#pragma mark - + +@implementation OCMIsNotNilConstraint + +- (BOOL)evaluate:(id)value +{ + return value != nil; +} + +@end + + + +#pragma mark - + +@implementation OCMIsNotEqualConstraint + +- (BOOL)evaluate:(id)value +{ + return ![value isEqual:testValue]; +} + +@end + + + +#pragma mark - + +@implementation OCMInvocationConstraint + +- (BOOL)evaluate:(id)value +{ + [invocation setArgument:&value atIndex:2]; // should test if constraint takes arg + [invocation invoke]; + BOOL returnValue; + [invocation getReturnValue:&returnValue]; + return returnValue; +} + +@end + +#pragma mark - + +#if NS_BLOCKS_AVAILABLE + +@implementation OCMBlockConstraint + +- (id)initWithConstraintBlock:(BOOL (^)(id))aBlock; +{ + self = [super init]; + block = [aBlock copy]; + return self; +} + +- (void)dealloc { + [block release]; + [super dealloc]; +} + +- (BOOL)evaluate:(id)value +{ + return block(value); +} + + +@end + +#endif diff --git a/Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h b/Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h new file mode 100644 index 0000000..8e97469 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h @@ -0,0 +1,12 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMReturnValueProvider.h" + +@interface OCMExceptionReturnValueProvider : OCMReturnValueProvider +{ +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.m b/Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.m new file mode 100644 index 0000000..784d1a7 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMExceptionReturnValueProvider.m @@ -0,0 +1,16 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMExceptionReturnValueProvider.h" + + +@implementation OCMExceptionReturnValueProvider + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + @throw returnValue; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h b/Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h new file mode 100644 index 0000000..4efeacb --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h @@ -0,0 +1,18 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCMIndirectReturnValueProvider : NSObject +{ + id provider; + SEL selector; +} + +- (id)initWithProvider:(id)aProvider andSelector:(SEL)aSelector; + +- (void)handleInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.m b/Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.m new file mode 100644 index 0000000..c8b734d --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMIndirectReturnValueProvider.m @@ -0,0 +1,33 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "NSMethodSignature+OCMAdditions.h" +#import "OCMIndirectReturnValueProvider.h" + + +@implementation OCMIndirectReturnValueProvider + +- (id)initWithProvider:(id)aProvider andSelector:(SEL)aSelector +{ + self = [super init]; + provider = [aProvider retain]; + selector = aSelector; + return self; +} + +- (void)dealloc +{ + [provider release]; + [super dealloc]; +} + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + [anInvocation setTarget:provider]; + [anInvocation setSelector:selector]; + [anInvocation invoke]; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMNotificationPoster.h b/Pods/OCMock/Source/OCMock/OCMNotificationPoster.h new file mode 100644 index 0000000..817da78 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMNotificationPoster.h @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCMNotificationPoster : NSObject +{ + NSNotification *notification; +} + +- (id)initWithNotification:(id)aNotification; + +- (void)handleInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMNotificationPoster.m b/Pods/OCMock/Source/OCMock/OCMNotificationPoster.m new file mode 100644 index 0000000..64973a2 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMNotificationPoster.m @@ -0,0 +1,30 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMNotificationPoster.h" + + +@implementation OCMNotificationPoster + +- (id)initWithNotification:(id)aNotification +{ + self = [super init]; + notification = [aNotification retain]; + return self; +} + +- (void)dealloc +{ + [notification release]; + [super dealloc]; +} + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + [[NSNotificationCenter defaultCenter] postNotification:notification]; +} + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMObserverRecorder.h b/Pods/OCMock/Source/OCMock/OCMObserverRecorder.h new file mode 100644 index 0000000..556da3c --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMObserverRecorder.h @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCMObserverRecorder : NSObject +{ + NSNotification *recordedNotification; +} + +- (void)notificationWithName:(NSString *)name object:(id)sender; + +- (BOOL)matchesNotification:(NSNotification *)aNotification; + +- (BOOL)argument:(id)expectedArg matchesArgument:(id)observedArg; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMObserverRecorder.m b/Pods/OCMock/Source/OCMock/OCMObserverRecorder.m new file mode 100644 index 0000000..e50be50 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMObserverRecorder.m @@ -0,0 +1,75 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import +#import "NSInvocation+OCMAdditions.h" +#import "OCMObserverRecorder.h" + +@interface NSObject(HCMatcherDummy) +- (BOOL)matches:(id)item; +@end + +#pragma mark - + + +@implementation OCMObserverRecorder + +#pragma mark Initialisers, description, accessors, etc. + +- (void)dealloc +{ + [recordedNotification release]; + [super dealloc]; +} + + +#pragma mark Recording + +- (void)notificationWithName:(NSString *)name object:(id)sender +{ + recordedNotification = [[NSNotification notificationWithName:name object:sender] retain]; +} + +- (void)notificationWithName:(NSString *)name object:(id)sender userInfo:(NSDictionary *)userInfo +{ + recordedNotification = [[NSNotification notificationWithName:name object:sender userInfo:userInfo] retain]; +} + + +#pragma mark Verification + +- (BOOL)matchesNotification:(NSNotification *)aNotification +{ + return [self argument:[recordedNotification name] matchesArgument:[aNotification name]] && + [self argument:[recordedNotification object] matchesArgument:[aNotification object]] && + [self argument:[recordedNotification userInfo] matchesArgument:[aNotification userInfo]]; +} + +- (BOOL)argument:(id)expectedArg matchesArgument:(id)observedArg +{ + if([expectedArg isKindOfClass:[OCMConstraint class]]) + { + if([expectedArg evaluate:observedArg] == NO) + return NO; + } + else if([expectedArg conformsToProtocol:objc_getProtocol("HCMatcher")]) + { + if([expectedArg matches:observedArg] == NO) + return NO; + } + else + { + if([expectedArg class] != [observedArg class]) + return NO; + if(([expectedArg isEqual:observedArg] == NO) && + !((expectedArg == nil) && (observedArg == nil))) + return NO; + } + return YES; +} + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMPassByRefSetter.h b/Pods/OCMock/Source/OCMock/OCMPassByRefSetter.h new file mode 100644 index 0000000..12b99e3 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMPassByRefSetter.h @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCMPassByRefSetter : NSObject +{ + id value; +} + +- (id)initWithValue:(id)value; + +- (id)value; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMPassByRefSetter.m b/Pods/OCMock/Source/OCMock/OCMPassByRefSetter.m new file mode 100644 index 0000000..919b81a --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMPassByRefSetter.m @@ -0,0 +1,29 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMPassByRefSetter.h" + + +@implementation OCMPassByRefSetter + +- (id)initWithValue:(id)aValue +{ + self = [super init]; + value = [aValue retain]; + return self; +} + +- (void)dealloc +{ + [value release]; + [super dealloc]; +} + +- (id)value +{ + return value; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.h b/Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.h new file mode 100644 index 0000000..9357a42 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.h @@ -0,0 +1,14 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2010 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCMRealObjectForwarder : NSObject +{ +} + +- (void)handleInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.m b/Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.m new file mode 100644 index 0000000..7c0a7db --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMRealObjectForwarder.m @@ -0,0 +1,29 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2010 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import "OCPartialMockObject.h" +#import "OCMRealObjectForwarder.h" + + +@implementation OCMRealObjectForwarder + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + id invocationTarget = [anInvocation target]; + SEL invocationSelector = [anInvocation selector]; + SEL aliasedSelector = NSSelectorFromString([OCMRealMethodAliasPrefix stringByAppendingString:NSStringFromSelector(invocationSelector)]); + + [anInvocation setSelector:aliasedSelector]; + if([invocationTarget isProxy] && (class_getInstanceMethod([invocationTarget class], @selector(realObject)))) + { + // the method has been invoked on the mock, we need to change the target to the real object + [anInvocation setTarget:[(OCPartialMockObject *)invocationTarget realObject]]; + } + [anInvocation invoke]; +} + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMReturnValueProvider.h b/Pods/OCMock/Source/OCMock/OCMReturnValueProvider.h new file mode 100644 index 0000000..3566c6d --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMReturnValueProvider.h @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCMReturnValueProvider : NSObject +{ + id returnValue; +} + +- (id)initWithValue:(id)aValue; + +- (void)handleInvocation:(NSInvocation *)anInvocation; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCMReturnValueProvider.m b/Pods/OCMock/Source/OCMock/OCMReturnValueProvider.m new file mode 100644 index 0000000..7bc9072 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMReturnValueProvider.m @@ -0,0 +1,47 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "NSMethodSignature+OCMAdditions.h" +#import "OCMReturnValueProvider.h" + + +@implementation OCMReturnValueProvider + +- (id)initWithValue:(id)aValue +{ + self = [super init]; + returnValue = [aValue retain]; + return self; +} + +- (void)dealloc +{ + [returnValue release]; + [super dealloc]; +} + +- (void)handleInvocation:(NSInvocation *)anInvocation +{ + const char *returnType = [[anInvocation methodSignature] methodReturnTypeWithoutQualifiers]; + if(strcmp(returnType, @encode(id)) != 0) { + // if the returnType is a typedef to an object, it has the form ^{OriginalClass=#} + NSString *regexString = @"^\\^\\{(.*)=#\\}"; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString options:0 error:NULL]; + NSString *type = [NSString stringWithCString:returnType encoding:NSASCIIStringEncoding]; + if([regex numberOfMatchesInString:type options:0 range:NSMakeRange(0, type.length)] == 0) + { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Expected invocation with object return type. Did you mean to use andReturnValue: instead?" userInfo:nil]; + } + } + NSString *sel = NSStringFromSelector([anInvocation selector]); + if([sel hasPrefix:@"alloc"] || [sel hasPrefix:@"new"] || [sel hasPrefix:@"copy"] || [sel hasPrefix:@"mutableCopy"]) + { + // methods that "create" an object return it with an extra retain count + [returnValue retain]; + } + [anInvocation setReturnValue:&returnValue]; +} + +@end diff --git a/BeamMusicPlayerExampleTests/OCMock/OCMock.h b/Pods/OCMock/Source/OCMock/OCMock.h similarity index 60% rename from BeamMusicPlayerExampleTests/OCMock/OCMock.h rename to Pods/OCMock/Source/OCMock/OCMock.h index 028cd47..e18de58 100644 --- a/BeamMusicPlayerExampleTests/OCMock/OCMock.h +++ b/Pods/OCMock/Source/OCMock/OCMock.h @@ -3,8 +3,8 @@ // Copyright (c) 2004-2008 by Mulle Kybernetik. See License file for details. //--------------------------------------------------------------------------------------- -#import -#import -#import -#import -#import +#import +#import +#import +#import +#import diff --git a/BeamMusicPlayerExampleTests/OCMock/OCMockObject.h b/Pods/OCMock/Source/OCMock/OCMockObject.h similarity index 94% rename from BeamMusicPlayerExampleTests/OCMock/OCMockObject.h rename to Pods/OCMock/Source/OCMock/OCMockObject.h index ebd2ba3..e796705 100644 --- a/BeamMusicPlayerExampleTests/OCMock/OCMockObject.h +++ b/Pods/OCMock/Source/OCMock/OCMockObject.h @@ -34,10 +34,13 @@ - (void)verify; +- (void)stopMocking; + // internal use only - (id)getNewRecorder; - (BOOL)handleInvocation:(NSInvocation *)anInvocation; - (void)handleUnRecordedInvocation:(NSInvocation *)anInvocation; +- (BOOL)handleSelector:(SEL)sel; @end diff --git a/Pods/OCMock/Source/OCMock/OCMockObject.m b/Pods/OCMock/Source/OCMock/OCMockObject.m new file mode 100644 index 0000000..2729e5c --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMockObject.m @@ -0,0 +1,269 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2004-2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import "OCClassMockObject.h" +#import "OCProtocolMockObject.h" +#import "OCPartialMockObject.h" +#import "OCObserverMockObject.h" +#import +#import "NSInvocation+OCMAdditions.h" + +@interface OCMockObject(Private) ++ (id)_makeNice:(OCMockObject *)mock; +- (NSString *)_recorderDescriptions:(BOOL)onlyExpectations; +@end + +#pragma mark - + + +@implementation OCMockObject + +#pragma mark Class initialisation + ++ (void)initialize +{ + if([[NSInvocation class] instanceMethodSignatureForSelector:@selector(getArgumentAtIndexAsObject:)] == NULL) + [NSException raise:NSInternalInconsistencyException format:@"** Expected method not present; the method getArgumentAtIndexAsObject: is not implemented by NSInvocation. If you see this exception it is likely that you are using the static library version of OCMock and your project is not configured correctly to load categories from static libraries. Did you forget to add the -force_load linker flag?"]; +} + + +#pragma mark Factory methods + ++ (id)mockForClass:(Class)aClass +{ + return [[[OCClassMockObject alloc] initWithClass:aClass] autorelease]; +} + ++ (id)mockForProtocol:(Protocol *)aProtocol +{ + return [[[OCProtocolMockObject alloc] initWithProtocol:aProtocol] autorelease]; +} + ++ (id)partialMockForObject:(NSObject *)anObject +{ + return [[[OCPartialMockObject alloc] initWithObject:anObject] autorelease]; +} + + ++ (id)niceMockForClass:(Class)aClass +{ + return [self _makeNice:[self mockForClass:aClass]]; +} + ++ (id)niceMockForProtocol:(Protocol *)aProtocol +{ + return [self _makeNice:[self mockForProtocol:aProtocol]]; +} + + ++ (id)_makeNice:(OCMockObject *)mock +{ + mock->isNice = YES; + return mock; +} + + ++ (id)observerMock +{ + return [[[OCObserverMockObject alloc] init] autorelease]; +} + + + +#pragma mark Initialisers, description, accessors, etc. + +- (id)init +{ + // no [super init], we're inheriting from NSProxy + expectationOrderMatters = NO; + recorders = [[NSMutableArray alloc] init]; + expectations = [[NSMutableArray alloc] init]; + rejections = [[NSMutableArray alloc] init]; + exceptions = [[NSMutableArray alloc] init]; + return self; +} + +- (void)dealloc +{ + [recorders release]; + [expectations release]; + [rejections release]; + [exceptions release]; + [super dealloc]; +} + +- (NSString *)description +{ + return @"OCMockObject"; +} + + +- (void)setExpectationOrderMatters:(BOOL)flag +{ + expectationOrderMatters = flag; +} + + +#pragma mark Public API + +- (id)stub +{ + OCMockRecorder *recorder = [self getNewRecorder]; + [recorders addObject:recorder]; + return recorder; +} + + +- (id)expect +{ + OCMockRecorder *recorder = [self stub]; + [expectations addObject:recorder]; + return recorder; +} + + +- (id)reject +{ + OCMockRecorder *recorder = [self stub]; + [rejections addObject:recorder]; + return recorder; +} + + +- (void)verify +{ + if([expectations count] == 1) + { + [NSException raise:NSInternalInconsistencyException format:@"%@: expected method was not invoked: %@", + [self description], [[expectations objectAtIndex:0] description]]; + } + if([expectations count] > 0) + { + [NSException raise:NSInternalInconsistencyException format:@"%@ : %ld expected methods were not invoked: %@", + [self description], [expectations count], [self _recorderDescriptions:YES]]; + } + if([exceptions count] > 0) + { + [[exceptions objectAtIndex:0] raise]; + } +} + +- (void)stopMocking +{ + // no-op for mock objects that are not class object or partial mocks +} + + +#pragma mark Handling invocations + +- (BOOL)handleSelector:(SEL)sel +{ + for (OCMockRecorder *recorder in recorders) + if ([recorder matchesSelector:sel]) + return YES; + + return NO; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + if([self handleInvocation:anInvocation] == NO) + [self handleUnRecordedInvocation:anInvocation]; +} + +- (BOOL)handleInvocation:(NSInvocation *)anInvocation +{ + OCMockRecorder *recorder = nil; + unsigned int i; + + for(i = 0; i < [recorders count]; i++) + { + recorder = [recorders objectAtIndex:i]; + if([recorder matchesInvocation:anInvocation]) + break; + } + + if(i == [recorders count]) + return NO; + + if([rejections containsObject:recorder]) + { + NSException *exception = [NSException exceptionWithName:NSInternalInconsistencyException reason: + [NSString stringWithFormat:@"%@: explicitly disallowed method invoked: %@", [self description], + [anInvocation invocationDescription]] userInfo:nil]; + [exceptions addObject:exception]; + [exception raise]; + } + + if([expectations containsObject:recorder]) + { + if(expectationOrderMatters && ([expectations objectAtIndex:0] != recorder)) + { + [NSException raise:NSInternalInconsistencyException format:@"%@: unexpected method invoked: %@\n\texpected:\t%@", + [self description], [recorder description], [[expectations objectAtIndex:0] description]]; + + } + [[recorder retain] autorelease]; + [expectations removeObject:recorder]; + [recorders removeObjectAtIndex:i]; + } + [[recorder invocationHandlers] makeObjectsPerformSelector:@selector(handleInvocation:) withObject:anInvocation]; + + return YES; +} + +- (void)handleUnRecordedInvocation:(NSInvocation *)anInvocation +{ + if(isNice == NO) + { + NSException *exception = [NSException exceptionWithName:NSInternalInconsistencyException reason: + [NSString stringWithFormat:@"%@: unexpected method invoked: %@ %@", [self description], + [anInvocation invocationDescription], [self _recorderDescriptions:NO]] userInfo:nil]; + [exceptions addObject:exception]; + [exception raise]; + } +} + + +#pragma mark Helper methods + +- (id)getNewRecorder +{ + return [[[OCMockRecorder alloc] initWithSignatureResolver:self] autorelease]; +} + + +- (NSString *)_recorderDescriptions:(BOOL)onlyExpectations +{ + NSMutableString *outputString = [NSMutableString string]; + + OCMockRecorder *currentObject; + NSEnumerator *recorderEnumerator = [recorders objectEnumerator]; + while((currentObject = [recorderEnumerator nextObject]) != nil) + { + NSString *prefix; + + if(onlyExpectations) + { + if(![expectations containsObject:currentObject]) + continue; + prefix = @" "; + } + else + { + if ([expectations containsObject:currentObject]) + prefix = @"expected: "; + else + prefix = @"stubbed: "; + } + [outputString appendFormat:@"\n\t%@\t%@", prefix, [currentObject description]]; + } + + return outputString; +} + + +@end diff --git a/BeamMusicPlayerExampleTests/OCMock/OCMockRecorder.h b/Pods/OCMock/Source/OCMock/OCMockRecorder.h similarity index 84% rename from BeamMusicPlayerExampleTests/OCMock/OCMockRecorder.h rename to Pods/OCMock/Source/OCMock/OCMockRecorder.h index b11a253..1b6e2dd 100644 --- a/BeamMusicPlayerExampleTests/OCMock/OCMockRecorder.h +++ b/Pods/OCMock/Source/OCMock/OCMockRecorder.h @@ -1,6 +1,6 @@ //--------------------------------------------------------------------------------------- // $Id$ -// Copyright (c) 2004-2010 by Mulle Kybernetik. See License file for details. +// Copyright (c) 2004-2013 by Mulle Kybernetik. See License file for details. //--------------------------------------------------------------------------------------- #import @@ -8,12 +8,14 @@ @interface OCMockRecorder : NSProxy { id signatureResolver; + BOOL recordedAsClassMethod; NSInvocation *recordedInvocation; NSMutableArray *invocationHandlers; } - (id)initWithSignatureResolver:(id)anObject; +- (BOOL)matchesSelector:(SEL)sel; - (BOOL)matchesInvocation:(NSInvocation *)anInvocation; - (void)releaseInvocation; @@ -27,6 +29,8 @@ #endif - (id)andForwardToRealObject; +- (id)classMethod; + - (NSArray *)invocationHandlers; @end diff --git a/Pods/OCMock/Source/OCMock/OCMockRecorder.m b/Pods/OCMock/Source/OCMock/OCMockRecorder.m new file mode 100644 index 0000000..89ab150 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCMockRecorder.m @@ -0,0 +1,229 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2004-2013 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import +#import +#import +#import "OCClassMockObject.h" +#import "OCMPassByRefSetter.h" +#import "OCMReturnValueProvider.h" +#import "OCMBoxedReturnValueProvider.h" +#import "OCMExceptionReturnValueProvider.h" +#import "OCMIndirectReturnValueProvider.h" +#import "OCMNotificationPoster.h" +#import "OCMBlockCaller.h" +#import "NSInvocation+OCMAdditions.h" + +@interface NSObject(HCMatcherDummy) +- (BOOL)matches:(id)item; +@end + +#pragma mark - + + +@implementation OCMockRecorder + +#pragma mark Initialisers, description, accessors, etc. + +- (id)initWithSignatureResolver:(id)anObject +{ + signatureResolver = anObject; + invocationHandlers = [[NSMutableArray alloc] init]; + return self; +} + +- (void)dealloc +{ + [recordedInvocation release]; + [invocationHandlers release]; + [super dealloc]; +} + +- (NSString *)description +{ + return [recordedInvocation invocationDescription]; +} + +- (void)releaseInvocation +{ + [recordedInvocation release]; + recordedInvocation = nil; +} + + +#pragma mark Recording invocation handlers + +- (id)andReturn:(id)anObject +{ + [invocationHandlers addObject:[[[OCMReturnValueProvider alloc] initWithValue:anObject] autorelease]]; + return self; +} + +- (id)andReturnValue:(NSValue *)aValue +{ + [invocationHandlers addObject:[[[OCMBoxedReturnValueProvider alloc] initWithValue:aValue] autorelease]]; + return self; +} + +- (id)andThrow:(NSException *)anException +{ + [invocationHandlers addObject:[[[OCMExceptionReturnValueProvider alloc] initWithValue:anException] autorelease]]; + return self; +} + +- (id)andPost:(NSNotification *)aNotification +{ + [invocationHandlers addObject:[[[OCMNotificationPoster alloc] initWithNotification:aNotification] autorelease]]; + return self; +} + +- (id)andCall:(SEL)selector onObject:(id)anObject +{ + [invocationHandlers addObject:[[[OCMIndirectReturnValueProvider alloc] initWithProvider:anObject andSelector:selector] autorelease]]; + return self; +} + +#if NS_BLOCKS_AVAILABLE + +- (id)andDo:(void (^)(NSInvocation *))aBlock +{ + [invocationHandlers addObject:[[[OCMBlockCaller alloc] initWithCallBlock:aBlock] autorelease]]; + return self; +} + +#endif + +- (id)andForwardToRealObject +{ + [NSException raise:NSInternalInconsistencyException format:@"Method %@ can only be used with partial mocks.", + NSStringFromSelector(_cmd)]; + return self; // keep compiler happy +} + + +- (NSArray *)invocationHandlers +{ + return invocationHandlers; +} + + +#pragma mark Switching to class methods + +- (id)classMethod +{ + recordedAsClassMethod = YES; + [signatureResolver setupClassForClassMethodMocking]; + return self; +} + + +#pragma mark Recording the actual invocation + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + if(recordedAsClassMethod) + return [[signatureResolver mockedClass] methodSignatureForSelector:aSelector]; + + NSMethodSignature *signature = [signatureResolver methodSignatureForSelector:aSelector]; + if(signature == nil) + { + // if we're a working with a class mock and there is a class method, auto-switch + if(([[signatureResolver class] isSubclassOfClass:[OCClassMockObject class]]) && + ([[signatureResolver mockedClass] respondsToSelector:aSelector])) + { + [self classMethod]; + signature = [self methodSignatureForSelector:aSelector]; + } + } + return signature; +} + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + if(recordedAsClassMethod) + [signatureResolver setupForwarderForClassMethodSelector:[anInvocation selector]]; + if(recordedInvocation != nil) + [NSException raise:NSInternalInconsistencyException format:@"Recorder received two methods to record."]; + [anInvocation setTarget:nil]; + [anInvocation retainArguments]; + recordedInvocation = [anInvocation retain]; +} + + + +#pragma mark Checking the invocation + +- (BOOL)matchesSelector:(SEL)sel +{ + return (sel == [recordedInvocation selector]); +} + +- (BOOL)matchesInvocation:(NSInvocation *)anInvocation +{ + id target, recordedArg, passedArg; + int i, n; + BOOL isClassMethodInvocation; + + target = [anInvocation target]; + isClassMethodInvocation = (target != nil) && (target == [target class]); + if(isClassMethodInvocation != recordedAsClassMethod) + return NO; + + if([anInvocation selector] != [recordedInvocation selector]) + return NO; + + n = (int)[[recordedInvocation methodSignature] numberOfArguments]; + for(i = 2; i < n; i++) + { + recordedArg = [recordedInvocation getArgumentAtIndexAsObject:i]; + passedArg = [anInvocation getArgumentAtIndexAsObject:i]; + + if([recordedArg isProxy]) + { + if(![recordedArg isEqual:passedArg]) + return NO; + continue; + } + + if([recordedArg isKindOfClass:[NSValue class]]) + recordedArg = [OCMArg resolveSpecialValues:recordedArg]; + + if([recordedArg isKindOfClass:[OCMConstraint class]]) + { + if([recordedArg evaluate:passedArg] == NO) + return NO; + } + else if([recordedArg isKindOfClass:[OCMPassByRefSetter class]]) + { + id valueToSet = [(OCMPassByRefSetter *)recordedArg value]; + // side effect but easier to do here than in handleInvocation + if(![valueToSet isKindOfClass:[NSValue class]]) + *(id *)[passedArg pointerValue] = valueToSet; + else + [(NSValue *)valueToSet getValue:[passedArg pointerValue]]; + } + else if([recordedArg conformsToProtocol:objc_getProtocol("HCMatcher")]) + { + if([recordedArg matches:passedArg] == NO) + return NO; + } + else + { + if(([recordedArg class] == [NSNumber class]) && + ([(NSNumber*)recordedArg compare:(NSNumber*)passedArg] != NSOrderedSame)) + return NO; + if(([recordedArg isEqual:passedArg] == NO) && + !((recordedArg == nil) && (passedArg == nil))) + return NO; + } + } + return YES; +} + + + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCObserverMockObject.h b/Pods/OCMock/Source/OCMock/OCObserverMockObject.h new file mode 100644 index 0000000..908ad2f --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCObserverMockObject.h @@ -0,0 +1,22 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCObserverMockObject : NSObject +{ + BOOL expectationOrderMatters; + NSMutableArray *recorders; +} + +- (void)setExpectationOrderMatters:(BOOL)flag; + +- (id)expect; + +- (void)verify; + +- (void)handleNotification:(NSNotification *)aNotification; + +@end diff --git a/Pods/OCMock/Source/OCMock/OCObserverMockObject.m b/Pods/OCMock/Source/OCMock/OCObserverMockObject.m new file mode 100644 index 0000000..50ba984 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCObserverMockObject.m @@ -0,0 +1,83 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCObserverMockObject.h" +#import "OCMObserverRecorder.h" + + +@implementation OCObserverMockObject + +#pragma mark Initialisers, description, accessors, etc. + +- (id)init +{ + self = [super init]; + recorders = [[NSMutableArray alloc] init]; + return self; +} + +- (void)dealloc +{ + [recorders release]; + [super dealloc]; +} + +- (NSString *)description +{ + return @"OCMockObserver"; +} + +- (void)setExpectationOrderMatters:(BOOL)flag +{ + expectationOrderMatters = flag; +} + + +#pragma mark Public API + +- (id)expect +{ + OCMObserverRecorder *recorder = [[[OCMObserverRecorder alloc] init] autorelease]; + [recorders addObject:recorder]; + return recorder; +} + +- (void)verify +{ + if([recorders count] == 1) + { + [NSException raise:NSInternalInconsistencyException format:@"%@: expected notification was not observed: %@", + [self description], [[recorders lastObject] description]]; + } + if([recorders count] > 0) + { + [NSException raise:NSInternalInconsistencyException format:@"%@ : %ld expected notifications were not observed.", + [self description], [recorders count]]; + } +} + + + +#pragma mark Receiving notifications + +- (void)handleNotification:(NSNotification *)aNotification +{ + NSUInteger i, limit; + + limit = expectationOrderMatters ? 1 : [recorders count]; + for(i = 0; i < limit; i++) + { + if([[recorders objectAtIndex:i] matchesNotification:aNotification]) + { + [recorders removeObjectAtIndex:i]; + return; + } + } + [NSException raise:NSInternalInconsistencyException format:@"%@: unexpected notification observed: %@", [self description], + [aNotification description]]; +} + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCPartialMockObject.h b/Pods/OCMock/Source/OCMock/OCPartialMockObject.h new file mode 100644 index 0000000..d932d28 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCPartialMockObject.h @@ -0,0 +1,25 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCClassMockObject.h" + +@interface OCPartialMockObject : OCClassMockObject +{ + NSObject *realObject; +} + +- (id)initWithObject:(NSObject *)anObject; + +- (NSObject *)realObject; + +- (void)stopMocking; + +- (void)setupSubclassForObject:(id)anObject; +- (void)setupForwarderForSelector:(SEL)selector; + +@end + + +extern NSString *OCMRealMethodAliasPrefix; diff --git a/Pods/OCMock/Source/OCMock/OCPartialMockObject.m b/Pods/OCMock/Source/OCMock/OCPartialMockObject.m new file mode 100644 index 0000000..7a678b6 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCPartialMockObject.m @@ -0,0 +1,190 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import "OCPartialMockRecorder.h" +#import "OCPartialMockObject.h" + + +@interface OCPartialMockObject (Private) +- (void)forwardInvocationForRealObject:(NSInvocation *)anInvocation; +@end + + +NSString *OCMRealMethodAliasPrefix = @"ocmock_replaced_"; + +@implementation OCPartialMockObject + + +#pragma mark Mock table + +static NSMutableDictionary *mockTable; + ++ (void)initialize +{ + if(self == [OCPartialMockObject class]) + mockTable = [[NSMutableDictionary alloc] init]; +} + ++ (void)rememberPartialMock:(OCPartialMockObject *)mock forObject:(id)anObject +{ + @synchronized(mockTable) + { + [mockTable setObject:[NSValue valueWithNonretainedObject:mock] forKey:[NSValue valueWithNonretainedObject:anObject]]; + } +} + ++ (void)forgetPartialMockForObject:(id)anObject +{ + @synchronized(mockTable) + { + [mockTable removeObjectForKey:[NSValue valueWithNonretainedObject:anObject]]; + } +} + ++ (OCPartialMockObject *)existingPartialMockForObject:(id)anObject +{ + @synchronized(mockTable) + { + OCPartialMockObject *mock = [[mockTable objectForKey:[NSValue valueWithNonretainedObject:anObject]] nonretainedObjectValue]; + if(mock == nil) + [NSException raise:NSInternalInconsistencyException format:@"No partial mock for object %p", anObject]; + return mock; + } +} + + + +#pragma mark Initialisers, description, accessors, etc. + +- (id)initWithObject:(NSObject *)anObject +{ + [super initWithClass:[anObject class]]; + realObject = [anObject retain]; + [[self class] rememberPartialMock:self forObject:anObject]; + [self setupSubclassForObject:realObject]; + return self; +} + +- (void)dealloc +{ + if(realObject != nil) + [self stopMocking]; + [super dealloc]; +} + +- (NSString *)description +{ + return [NSString stringWithFormat:@"OCPartialMockObject[%@]", NSStringFromClass(mockedClass)]; +} + +- (NSObject *)realObject +{ + return realObject; +} + +- (void)stopMocking +{ + object_setClass(realObject, [self mockedClass]); + [realObject release]; + [[self class] forgetPartialMockForObject:realObject]; + realObject = nil; +} + + +#pragma mark Subclass management + +- (void)setupSubclassForObject:(id)anObject +{ + Class realClass = [anObject class]; + double timestamp = [NSDate timeIntervalSinceReferenceDate]; + const char *className = [[NSString stringWithFormat:@"%@-%p-%f", realClass, anObject, timestamp] UTF8String]; + Class subclass = objc_allocateClassPair(realClass, className, 0); + objc_registerClassPair(subclass); + object_setClass(anObject, subclass); + + Method myForwardInvocationMethod = class_getInstanceMethod([self class], @selector(forwardInvocationForRealObject:)); + IMP myForwardInvocationImp = method_getImplementation(myForwardInvocationMethod); + const char *forwardInvocationTypes = method_getTypeEncoding(myForwardInvocationMethod); + class_addMethod(subclass, @selector(forwardInvocation:), myForwardInvocationImp, forwardInvocationTypes); + + + Method myForwardingTargetForSelectorMethod = class_getInstanceMethod([self class], @selector(forwardingTargetForSelectorForRealObject:)); + IMP myForwardingTargetForSelectorImp = method_getImplementation(myForwardingTargetForSelectorMethod); + const char *forwardingTargetForSelectorTypes = method_getTypeEncoding(myForwardingTargetForSelectorMethod); + + IMP originalForwardingTargetForSelectorImp = [realClass instanceMethodForSelector:@selector(forwardingTargetForSelector:)]; + + class_addMethod(subclass, @selector(forwardingTargetForSelector:), myForwardingTargetForSelectorImp, forwardingTargetForSelectorTypes); + class_addMethod(subclass, @selector(forwardingTargetForSelector_Original:), originalForwardingTargetForSelectorImp, forwardingTargetForSelectorTypes); +} + +- (void)setupForwarderForSelector:(SEL)selector +{ + Class subclass = [[self realObject] class]; + Method originalMethod = class_getInstanceMethod([subclass superclass], selector); + IMP originalImp = method_getImplementation(originalMethod); + + IMP forwarderImp = [subclass instanceMethodForSelector:@selector(aMethodThatMustNotExist)]; + class_addMethod(subclass, method_getName(originalMethod), forwarderImp, method_getTypeEncoding(originalMethod)); + + SEL aliasSelector = NSSelectorFromString([OCMRealMethodAliasPrefix stringByAppendingString:NSStringFromSelector(selector)]); + class_addMethod(subclass, aliasSelector, originalImp, method_getTypeEncoding(originalMethod)); +} + +- (void)removeForwarderForSelector:(SEL)selector +{ + Class subclass = [[self realObject] class]; + SEL aliasSelector = NSSelectorFromString([OCMRealMethodAliasPrefix stringByAppendingString:NSStringFromSelector(selector)]); + Method originalMethod = class_getInstanceMethod([subclass superclass], aliasSelector); + IMP originalImp = method_getImplementation(originalMethod); + class_replaceMethod(subclass, selector, originalImp, method_getTypeEncoding(originalMethod)); +} + +// Make the compiler happy in -forwardingTargetForSelectorForRealObject: because it can't find the message… +- (id)forwardingTargetForSelector_Original:(SEL)sel +{ + return nil; +} + +- (id)forwardingTargetForSelectorForRealObject:(SEL)sel +{ + // in here "self" is a reference to the real object, not the mock + OCPartialMockObject *mock = [OCPartialMockObject existingPartialMockForObject:self]; + if ([mock handleSelector:sel]) + return self; + + return [self forwardingTargetForSelector_Original:sel]; +} + +- (void)forwardInvocationForRealObject:(NSInvocation *)anInvocation +{ + // in here "self" is a reference to the real object, not the mock + OCPartialMockObject *mock = [OCPartialMockObject existingPartialMockForObject:self]; + if([mock handleInvocation:anInvocation] == NO) + { + // if mock doesn't want to handle the invocation, maybe all expects have occurred, we forward to real object + SEL aliasSelector = NSSelectorFromString([OCMRealMethodAliasPrefix stringByAppendingString:NSStringFromSelector([anInvocation selector])]); + [anInvocation setSelector:aliasSelector]; + [anInvocation invoke]; + } +} + + + +#pragma mark Overrides + +- (id)getNewRecorder +{ + return [[[OCPartialMockRecorder alloc] initWithSignatureResolver:self] autorelease]; +} + +- (void)handleUnRecordedInvocation:(NSInvocation *)anInvocation +{ + [anInvocation invokeWithTarget:realObject]; +} + + +@end diff --git a/Pods/OCMock/Source/OCMock/OCPartialMockRecorder.h b/Pods/OCMock/Source/OCMock/OCPartialMockRecorder.h new file mode 100644 index 0000000..95ce4e6 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCPartialMockRecorder.h @@ -0,0 +1,12 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCMockRecorder.h" + +@interface OCPartialMockRecorder : OCMockRecorder +{ +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCPartialMockRecorder.m b/Pods/OCMock/Source/OCMock/OCPartialMockRecorder.m new file mode 100644 index 0000000..f40cb7c --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCPartialMockRecorder.m @@ -0,0 +1,27 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2009-2010 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import "OCPartialMockObject.h" +#import "OCMRealObjectForwarder.h" +#import "OCPartialMockRecorder.h" + + +@implementation OCPartialMockRecorder + +- (id)andForwardToRealObject +{ + [invocationHandlers addObject:[[[OCMRealObjectForwarder alloc] init] autorelease]]; + return self; +} + + +- (void)forwardInvocation:(NSInvocation *)anInvocation +{ + [super forwardInvocation:anInvocation]; + // not as clean as I'd wish... + [(OCPartialMockObject *)signatureResolver setupForwarderForSelector:[anInvocation selector]]; +} + +@end diff --git a/Pods/OCMock/Source/OCMock/OCProtocolMockObject.h b/Pods/OCMock/Source/OCMock/OCProtocolMockObject.h new file mode 100644 index 0000000..88f3229 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCProtocolMockObject.h @@ -0,0 +1,16 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2005-2008 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import + +@interface OCProtocolMockObject : OCMockObject +{ + Protocol *mockedProtocol; +} + +- (id)initWithProtocol:(Protocol *)aProtocol; + +@end + diff --git a/Pods/OCMock/Source/OCMock/OCProtocolMockObject.m b/Pods/OCMock/Source/OCMock/OCProtocolMockObject.m new file mode 100644 index 0000000..19e25e8 --- /dev/null +++ b/Pods/OCMock/Source/OCMock/OCProtocolMockObject.m @@ -0,0 +1,53 @@ +//--------------------------------------------------------------------------------------- +// $Id$ +// Copyright (c) 2005-2008 by Mulle Kybernetik. See License file for details. +//--------------------------------------------------------------------------------------- + +#import +#import "NSMethodSignature+OCMAdditions.h" +#import "OCProtocolMockObject.h" + +@implementation OCProtocolMockObject + +#pragma mark Initialisers, description, accessors, etc. + +- (id)initWithProtocol:(Protocol *)aProtocol +{ + [super init]; + mockedProtocol = aProtocol; + return self; +} + +- (NSString *)description +{ + const char* name = protocol_getName(mockedProtocol); + return [NSString stringWithFormat:@"OCMockObject[%s]", name]; +} + +#pragma mark Proxy API + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector +{ + struct objc_method_description methodDescription = protocol_getMethodDescription(mockedProtocol, aSelector, YES, YES); + if(methodDescription.name == NULL) + { + methodDescription = protocol_getMethodDescription(mockedProtocol, aSelector, NO, YES); + } + if(methodDescription.name == NULL) + { + return nil; + } + return [NSMethodSignature signatureWithObjCTypes:methodDescription.types]; +} + +- (BOOL)conformsToProtocol:(Protocol *)aProtocol +{ + return protocol_conformsToProtocol(mockedProtocol, aProtocol); +} + +- (BOOL)respondsToSelector:(SEL)selector +{ + return ([self methodSignatureForSelector:selector] != nil); +} + +@end diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-Private.xcconfig b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-Private.xcconfig new file mode 100644 index 0000000..e9b53ac --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-Private.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig" +ALWAYS_SEARCH_USER_PATHS = YES +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OCMock" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OBSlider" "${PODS_ROOT}/Headers/OCMock" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-dummy.m b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-dummy.m new file mode 100644 index 0000000..f7a0b7f --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_BeamMusicPlayerExampleTests_OCMock : NSObject +@end +@implementation PodsDummy_Pods_BeamMusicPlayerExampleTests_OCMock +@end diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch new file mode 100644 index 0000000..86fdbd3 --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-BeamMusicPlayerExampleTests-environment.h" diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig b/Pods/Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig new file mode 100644 index 0000000..e69de29 diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.markdown b/Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.markdown new file mode 100644 index 0000000..b3270c6 --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.markdown @@ -0,0 +1,21 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## OCMock + +Copyright (c) 2004-2013 by Mulle Kybernetik. All rights reserved. + + Permission to use, copy, modify and distribute this software and its documentation + is hereby granted, provided that both the copyright notice and this permission + notice appear in all copies of the software, derivative works or modified versions, + and any portions thereof, and that both notices appear in supporting documentation, + and that credit is given to Mulle Kybernetik in all documents and publicity + pertaining to direct or indirect use of this code or its derivatives. + + THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE + SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS + "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY + DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE + OR OF ANY DERIVATIVE WORK. + +Generated by CocoaPods - http://cocoapods.org diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.plist b/Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.plist new file mode 100644 index 0000000..422a0a3 --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-acknowledgements.plist @@ -0,0 +1,51 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2004-2013 by Mulle Kybernetik. All rights reserved. + + Permission to use, copy, modify and distribute this software and its documentation + is hereby granted, provided that both the copyright notice and this permission + notice appear in all copies of the software, derivative works or modified versions, + and any portions thereof, and that both notices appear in supporting documentation, + and that credit is given to Mulle Kybernetik in all documents and publicity + pertaining to direct or indirect use of this code or its derivatives. + + THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE + SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS + "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY + DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE + OR OF ANY DERIVATIVE WORK. + + Title + OCMock + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - http://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-dummy.m b/Pods/Pods-BeamMusicPlayerExampleTests-dummy.m new file mode 100644 index 0000000..1cdfe02 --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_BeamMusicPlayerExampleTests : NSObject +@end +@implementation PodsDummy_Pods_BeamMusicPlayerExampleTests +@end diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-environment.h b/Pods/Pods-BeamMusicPlayerExampleTests-environment.h new file mode 100644 index 0000000..435c6ea --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-environment.h @@ -0,0 +1,14 @@ + +// To check if a library is compiled with CocoaPods you +// can use the `COCOAPODS` macro definition which is +// defined in the xcconfigs so it is available in +// headers also when they are imported in the client +// project. + + +// OCMock +#define COCOAPODS_POD_AVAILABLE_OCMock +#define COCOAPODS_VERSION_MAJOR_OCMock 2 +#define COCOAPODS_VERSION_MINOR_OCMock 1 +#define COCOAPODS_VERSION_PATCH_OCMock 1 + diff --git a/Pods/Pods-BeamMusicPlayerExampleTests-resources.sh b/Pods/Pods-BeamMusicPlayerExampleTests-resources.sh new file mode 100755 index 0000000..20ebe73 --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests-resources.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +install_resource() +{ + case $1 in + *.storyboard) + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.xib) + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + ;; + *.framework) + echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -rp "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodeld) + echo "xcrun momc ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" + xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" + ;; + *) + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rm "$RESOURCES_TO_COPY" diff --git a/Pods/Pods-BeamMusicPlayerExampleTests.xcconfig b/Pods/Pods-BeamMusicPlayerExampleTests.xcconfig new file mode 100644 index 0000000..f192737 --- /dev/null +++ b/Pods/Pods-BeamMusicPlayerExampleTests.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig" +ALWAYS_SEARCH_USER_PATHS = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OBSlider" "${PODS_ROOT}/Headers/OCMock" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Pods-OBSlider-Private.xcconfig b/Pods/Pods-OBSlider-Private.xcconfig new file mode 100644 index 0000000..508792a --- /dev/null +++ b/Pods/Pods-OBSlider-Private.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-OBSlider.xcconfig" +ALWAYS_SEARCH_USER_PATHS = YES +GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OBSlider" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OBSlider" "${PODS_ROOT}/Headers/OCMock" +OTHER_LDFLAGS = -ObjC +PODS_ROOT = ${SRCROOT} \ No newline at end of file diff --git a/Pods/Pods-OBSlider-dummy.m b/Pods/Pods-OBSlider-dummy.m new file mode 100644 index 0000000..31f9be9 --- /dev/null +++ b/Pods/Pods-OBSlider-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_OBSlider : NSObject +@end +@implementation PodsDummy_Pods_OBSlider +@end diff --git a/Pods/Pods-OBSlider-prefix.pch b/Pods/Pods-OBSlider-prefix.pch new file mode 100644 index 0000000..95cf11d --- /dev/null +++ b/Pods/Pods-OBSlider-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-environment.h" diff --git a/Pods/Pods-OBSlider.xcconfig b/Pods/Pods-OBSlider.xcconfig new file mode 100644 index 0000000..e69de29 diff --git a/Pods/Pods-resources.sh b/Pods/Pods-resources.sh index 9bff78f..20ebe73 100755 --- a/Pods/Pods-resources.sh +++ b/Pods/Pods-resources.sh @@ -1,15 +1,18 @@ #!/bin/sh +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + install_resource() { case $1 in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + echo "ibtool --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" + ibtool --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" ;; *.framework) echo "rsync -rp ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" @@ -20,8 +23,11 @@ install_resource() xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename $1 .xcdatamodeld`.momd" ;; *) - echo "rsync -av --exclude '*/.svn/*' ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -av --exclude '*/.svn/*' "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + echo "${PODS_ROOT}/$1" + echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" ;; esac } + +rsync -avr --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rm "$RESOURCES_TO_COPY" diff --git a/Pods/Pods.xcconfig b/Pods/Pods.xcconfig index a76d45d..944bc60 100644 --- a/Pods/Pods.xcconfig +++ b/Pods/Pods.xcconfig @@ -1,8 +1,6 @@ +#include "Pods-OBSlider.xcconfig" ALWAYS_SEARCH_USER_PATHS = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = ${PODS_HEADERS_SEARCH_PATHS} +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OBSlider" "${PODS_ROOT}/Headers/OCMock" OTHER_LDFLAGS = -ObjC -PODS_BUILD_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/OBSlider" -PODS_HEADERS_SEARCH_PATHS = ${PODS_PUBLIC_HEADERS_SEARCH_PATHS} -PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/OBSlider" PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index b1da9a7..82b85dd 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -1,280 +1,2597 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0F94BD11F38F4BDD9C2874D5 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48296D3463384555822AF53A /* Pods-dummy.m */; settings = {}; }; - 383D963E3FCC4D3BA44DE035 /* OBSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = DFB9629F871645F6BC8567D5 /* OBSlider.m */; settings = {COMPILER_FLAGS = "-fobjc-arc -DOS_OBJECT_USE_OBJC=0"; }; }; - AE4EEDE785FC44B8B2781880 /* OBSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 557BE689E1514BC5B06445AE /* OBSlider.h */; settings = {}; }; - D705E7D5349245D68E36040C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8458CEE88D746A7BEC4BE8C /* Foundation.framework */; settings = {}; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0EBCFB868CA24518837E5456 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; name = "Pods-resources.sh"; path = "Pods-resources.sh"; sourceTree = SOURCE_ROOT; }; - 3AC28ED1D7C54B37A61A7F34 /* Pods-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-environment.h"; path = "Pods-environment.h"; sourceTree = SOURCE_ROOT; }; - 407270EAA12348CFAA16BD9A /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods.xcconfig; sourceTree = SOURCE_ROOT; }; - 48296D3463384555822AF53A /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-dummy.m"; path = "Pods-dummy.m"; sourceTree = SOURCE_ROOT; }; - 557BE689E1514BC5B06445AE /* OBSlider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = OBSlider.h; path = OBSlider/OBSlider/OBSlider.h; sourceTree = SOURCE_ROOT; }; - 5AFD9AE01F9A41F3A7AED70C /* Pods-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; name = "Pods-prefix.pch"; path = "Pods-prefix.pch"; sourceTree = SOURCE_ROOT; }; - 8108CB89D44244628301CD08 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; name = "Pods-acknowledgements.plist"; path = "Pods-acknowledgements.plist"; sourceTree = SOURCE_ROOT; }; - 8187266E5AD44721B7364200 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPods.a; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; - A4D2A0CD02E24797965FAC04 /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - D8458CEE88D746A7BEC4BE8C /* Foundation.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - DFB9629F871645F6BC8567D5 /* OBSlider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OBSlider.m; path = OBSlider/OBSlider/OBSlider.m; sourceTree = SOURCE_ROOT; }; - E4CE63786DBC489CAD43A68F /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; name = "Pods-acknowledgements.markdown"; path = "Pods-acknowledgements.markdown"; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - F62AB951DEC440DB89BF48B4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D705E7D5349245D68E36040C /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 2B61BAC712784F6EB4078990 /* Pods */ = { - isa = PBXGroup; - children = ( - 311E061FE23F40968608F1E4 /* OBSlider */, - ); - name = Pods; - sourceTree = ""; - }; - 311E061FE23F40968608F1E4 /* OBSlider */ = { - isa = PBXGroup; - children = ( - 557BE689E1514BC5B06445AE /* OBSlider.h */, - DFB9629F871645F6BC8567D5 /* OBSlider.m */, - ); - name = OBSlider; - sourceTree = ""; - }; - 9EDDD86E04CD43098634E253 /* Products */ = { - isa = PBXGroup; - children = ( - 8187266E5AD44721B7364200 /* libPods.a */, - ); - name = Products; - sourceTree = ""; - }; - BFC69C30469B4CAF9D647564 = { - isa = PBXGroup; - children = ( - E6899244D17A4827B19328DD /* Frameworks */, - 2B61BAC712784F6EB4078990 /* Pods */, - 9EDDD86E04CD43098634E253 /* Products */, - EF1C32C8BA2D486B81402EE9 /* Targets Support Files */, - A4D2A0CD02E24797965FAC04 /* Podfile */, - ); - sourceTree = ""; - }; - C580555EEE1D45959AAA6C71 /* Pods */ = { - isa = PBXGroup; - children = ( - 407270EAA12348CFAA16BD9A /* Pods.xcconfig */, - 3AC28ED1D7C54B37A61A7F34 /* Pods-environment.h */, - 5AFD9AE01F9A41F3A7AED70C /* Pods-prefix.pch */, - 0EBCFB868CA24518837E5456 /* Pods-resources.sh */, - 8108CB89D44244628301CD08 /* Pods-acknowledgements.plist */, - E4CE63786DBC489CAD43A68F /* Pods-acknowledgements.markdown */, - 48296D3463384555822AF53A /* Pods-dummy.m */, - ); - name = Pods; - sourceTree = ""; - }; - E6899244D17A4827B19328DD /* Frameworks */ = { - isa = PBXGroup; - children = ( - D8458CEE88D746A7BEC4BE8C /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - EF1C32C8BA2D486B81402EE9 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - C580555EEE1D45959AAA6C71 /* Pods */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 15B94EC0237F45FBB5343D86 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - AE4EEDE785FC44B8B2781880 /* OBSlider.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 4A00A3F5760E45DDAFA1F779 /* Pods */ = { - isa = PBXNativeTarget; - buildConfigurationList = E0C632E0BEC0498CBCF6A551 /* Build configuration list for PBXNativeTarget "Pods" */; - buildPhases = ( - 16171E5A2B06496F8674D98D /* Sources */, - F62AB951DEC440DB89BF48B4 /* Frameworks */, - 15B94EC0237F45FBB5343D86 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Pods; - productName = Pods; - productReference = 8187266E5AD44721B7364200 /* libPods.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7F174CDBA02E40DA89A66FAC /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0450; - }; - buildConfigurationList = 232757FE67FF44E793EBAE48 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = BFC69C30469B4CAF9D647564; - productRefGroup = 9EDDD86E04CD43098634E253 /* Products */; - projectReferences = ( - ); - targets = ( - 4A00A3F5760E45DDAFA1F779 /* Pods */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 16171E5A2B06496F8674D98D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 383D963E3FCC4D3BA44DE035 /* OBSlider.m in Sources */, - 0F94BD11F38F4BDD9C2874D5 /* Pods-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 4160607977004793A10FD6C8 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - }; - name = Release; - }; - 5F10B38479C141E497DCA4BF /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - }; - name = Debug; - }; - 986624EC37E5402AB37E3E11 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 407270EAA12348CFAA16BD9A /* Pods.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - COPY_PHASE_STRIP = NO; - DSTROOT = /tmp/xcodeproj.dst; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Pods-prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - OTHER_LDFLAGS = ""; - PODS_HEADERS_SEARCH_PATHS = "${PODS_BUILD_HEADERS_SEARCH_PATHS}"; - PODS_ROOT = "${SRCROOT}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A46BE6CB53F54E9E9A1C7F85 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 407270EAA12348CFAA16BD9A /* Pods.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - COPY_PHASE_STRIP = YES; - DSTROOT = /tmp/xcodeproj.dst; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Pods-prefix.pch"; - GCC_VERSION = com.apple.compilers.llvm.clang.1_0; - INSTALL_PATH = "$(BUILT_PRODUCTS_DIR)"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - OTHER_CFLAGS = ( - "-DNS_BLOCK_ASSERTIONS=1", - "$(inherited)", - ); - OTHER_CPLUSPLUSFLAGS = ( - "-DNS_BLOCK_ASSERTIONS=1", - "$(inherited)", - ); - OTHER_LDFLAGS = ""; - PODS_HEADERS_SEARCH_PATHS = "${PODS_BUILD_HEADERS_SEARCH_PATHS}"; - PODS_ROOT = "${SRCROOT}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 232757FE67FF44E793EBAE48 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4160607977004793A10FD6C8 /* Release */, - 5F10B38479C141E497DCA4BF /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E0C632E0BEC0498CBCF6A551 /* Build configuration list for PBXNativeTarget "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A46BE6CB53F54E9E9A1C7F85 /* Release */, - 986624EC37E5402AB37E3E11 /* Debug */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7F174CDBA02E40DA89A66FAC /* Project object */; -} + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 009D4D8BB3C549E18F9EA832 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMBoxedReturnValueProvider.h + path + OCMock/Source/OCMock/OCMBoxedReturnValueProvider.h + sourceTree + SOURCE_ROOT + + 01ACC3D1FDE34497AD345082 + + fileRef + 1DE33E31166A44F2B9796762 + isa + PBXBuildFile + settings + + + 01F638D6AC6F4045887CC5C8 + + fileRef + 4395C258F4B34D9B95C95C0B + isa + PBXBuildFile + settings + + + 0289D532045D43B98615909A + + fileRef + 3D531FFDFDF244C3BFBB2F2A + isa + PBXBuildFile + settings + + + 0399302C70B0479699BC5491 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + NSNotificationCenter+OCMAdditions.m + path + OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.m + sourceTree + SOURCE_ROOT + + 03A4175147F94649ACDDFEFE + + fileRef + 2FD02E4152BC4511944C2E65 + isa + PBXBuildFile + settings + + + 03AA43105E2C46BE83572C6C + + buildConfigurations + + 8625B68B52DE4D908EF4D3DD + F4849E02A96248B382FA5F10 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 04B84B350237416780CEB0CF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMRealObjectForwarder.h + path + OCMock/Source/OCMock/OCMRealObjectForwarder.h + sourceTree + SOURCE_ROOT + + 051EE9B364FA4C8A8E35B185 + + fileRef + 82C74B46F3204DAEB5B8865D + isa + PBXBuildFile + settings + + + 079D3A4700E54B88B82E5C29 + + fileRef + 7B18518D1D6C499DBD05561E + isa + PBXBuildFile + settings + + + 08BB26466BD84CEF81B97A7F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMArg.h + path + OCMock/Source/OCMock/OCMArg.h + sourceTree + SOURCE_ROOT + + 0B8B6842A5864DA99DB2E852 + + buildConfigurationList + 3C9EF2936D94496D97B5B7FA + buildPhases + + E077C5FBEBF841C0AE33AEC6 + 7893352F64454A2AAEA4CF64 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Pods-BeamMusicPlayerExampleTests + productName + Pods-BeamMusicPlayerExampleTests + productReference + 62A4484E695B4752A394CDC6 + productType + com.apple.product-type.library.static + + 0D27CA82C68344A1B7C259AB + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCPartialMockObject.h + path + OCMock/Source/OCMock/OCPartialMockObject.h + sourceTree + SOURCE_ROOT + + 10BD799344434F10915B623A + + children + + C5F99253B4F54BD79C16104D + CA6E8CE616804D639CC18FE8 + + isa + PBXGroup + name + Pods + sourceTree + <group> + + 1171184021F543349C73B9A7 + + fileRef + DFBFAF67278B48859CC6E658 + isa + PBXBuildFile + settings + + + 13E75CB198C9479EB7AA8161 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMockRecorder.m + path + OCMock/Source/OCMock/OCMockRecorder.m + sourceTree + SOURCE_ROOT + + 1A54BB5A7F6A4627B23166F6 + + fileRef + 31DE64E6398747C8B52E61B4 + isa + PBXBuildFile + settings + + + 1A6E66647CF34C06B789C5B3 + + children + + 8582992CAB5C4D0392CD84E1 + 387EEC7489BC42EEB15119C6 + C3927CB8B1ED4986A4514032 + BB9D969556954542BADFE7D1 + EF6078243F4D48A3901AF6CC + A1925BD7EE4044B1A726FCC8 + + isa + PBXGroup + name + Pods-BeamMusicPlayerExampleTests + sourceTree + <group> + + 1ABEAB179011411A9D60A633 + + fileRef + 98D5CA4E08AA478C9FEAACC9 + isa + PBXBuildFile + settings + + + 1B2BA9EF2D3F4FFDB5DA7F3F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMRealObjectForwarder.m + path + OCMock/Source/OCMock/OCMRealObjectForwarder.m + sourceTree + SOURCE_ROOT + + 1BC98C13060B4429B7F4CDB0 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + NSNotificationCenter+OCMAdditions.h + path + OCMock/Source/OCMock/NSNotificationCenter+OCMAdditions.h + sourceTree + SOURCE_ROOT + + 1DB1614EA66D4B768FDF3C13 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMockObject.h + path + OCMock/Source/OCMock/OCMockObject.h + sourceTree + SOURCE_ROOT + + 1DCDD76BB8BE43D3B76067DE + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCObserverMockObject.h + path + OCMock/Source/OCMock/OCObserverMockObject.h + sourceTree + SOURCE_ROOT + + 1DE33E31166A44F2B9796762 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMReturnValueProvider.m + path + OCMock/Source/OCMock/OCMReturnValueProvider.m + sourceTree + SOURCE_ROOT + + 1EF0E15CF12D44DBAE04800B + + fileRef + E54B154322FA4F4989CC4271 + isa + PBXBuildFile + settings + + + 1F46D779B5E243849D2119C0 + + fileRef + 1DB1614EA66D4B768FDF3C13 + isa + PBXBuildFile + settings + + + 229F98FB9CD24809B8275EC0 + + children + + 25A2C962408E464CA57B400F + 429089422C55446DB1C9F565 + 814B44C581154F879C1E5985 + D746313E3BCE44B9BC722704 + + isa + PBXGroup + name + Pods-OBSlider + sourceTree + <group> + + 2310914AEE6348539262A7BE + + buildActionMask + 2147483647 + files + + ED2BB37E6655489E85355CD0 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 2528EC5EAEF346B39655099A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCPartialMockRecorder.m + path + OCMock/Source/OCMock/OCPartialMockRecorder.m + sourceTree + SOURCE_ROOT + + 25A2C962408E464CA57B400F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-OBSlider.xcconfig + path + Pods-OBSlider.xcconfig + sourceTree + SOURCE_ROOT + + 264C4E84301446C1AD65223D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMockObject.m + path + OCMock/Source/OCMock/OCMockObject.m + sourceTree + SOURCE_ROOT + + 278178BFEE5D42CD83F24BD7 + + buildActionMask + 2147483647 + files + + 797219FB7C9445CE983731B9 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 2CADB3B463B24822A031CCF9 + + children + + A7B2C54433CD4D74B70D92E4 + 4D39325A14CF41E992512CEC + A8EC9F49A68647A1AD2A3DAE + 3C558A98DA0E445295092957 + A13E1AA10CDB45C084DF9928 + EE4C9879DB2E4D248CF52CF1 + + isa + PBXGroup + name + Pods + sourceTree + <group> + + 2DA61BCCA8B64EA78049B8B4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCProtocolMockObject.h + path + OCMock/Source/OCMock/OCProtocolMockObject.h + sourceTree + SOURCE_ROOT + + 2FD02E4152BC4511944C2E65 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMArg.m + path + OCMock/Source/OCMock/OCMArg.m + sourceTree + SOURCE_ROOT + + 308F8D65C4064B118EA491CD + + fileRef + 84A091D94352405797D329E5 + isa + PBXBuildFile + settings + + + 31DE64E6398747C8B52E61B4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCPartialMockRecorder.h + path + OCMock/Source/OCMock/OCPartialMockRecorder.h + sourceTree + SOURCE_ROOT + + 37653E55FD01431DA340C40B + + children + + 8D8C4FF4D1E54B31BEB9F13D + AC27A1C6241E4FE5A792CE76 + 5352643FBC454BF5AE56B4E6 + F416A71B9E264828B0CA12C6 + + isa + PBXGroup + name + Pods-BeamMusicPlayerExampleTests-OCMock + sourceTree + <group> + + 38596BD7E9D14553B0D78F40 + + baseConfigurationReference + 8582992CAB5C4D0392CD84E1 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + YES + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + 387EEC7489BC42EEB15119C6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + Pods-BeamMusicPlayerExampleTests-environment.h + path + Pods-BeamMusicPlayerExampleTests-environment.h + sourceTree + SOURCE_ROOT + + 38A69A2C9B3E47C5B3D46CBA + + buildActionMask + 2147483647 + files + + B7C27CFC9ABE4FC7956B9C10 + 538842CB46074F499F7ECE16 + 7D0907738780496CB20ED6E7 + F6EA5EA7C6C84170996DB32E + C5CFCD9783E3440DA1A8B2F9 + 1171184021F543349C73B9A7 + 9D7E91CCD2B64168BBD770D1 + 079D3A4700E54B88B82E5C29 + EB18B18661864F8C8E4B2647 + BF58029791154DC38B3F39F7 + E43E178EAC914DC2A57758E8 + C8403C4DCEBE46C2A83D4FD6 + 0289D532045D43B98615909A + 1F46D779B5E243849D2119C0 + D507A9DE88574EB48D782CCD + 9622BFDAEAC84744B878451B + CB257DE6D00444678D345EE1 + 6913257F4FEC4CF0A2E876A2 + 8E14D3EBD27E4DFBA581F6DE + 8A207D83563F46C5B33C2DDF + 1A54BB5A7F6A4627B23166F6 + A3FF492738AD49A3BAF4C273 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 3BCB1C9B46D74C82A2071165 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCPartialMockObject.m + path + OCMock/Source/OCMock/OCPartialMockObject.m + sourceTree + SOURCE_ROOT + + 3C558A98DA0E445295092957 + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-acknowledgements.plist + path + Pods-acknowledgements.plist + sourceTree + SOURCE_ROOT + + 3C9EF2936D94496D97B5B7FA + + buildConfigurations + + 38596BD7E9D14553B0D78F40 + 5322CA6B5E874166BAD2FC21 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 3D531FFDFDF244C3BFBB2F2A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMock.h + path + OCMock/Source/OCMock/OCMock.h + sourceTree + SOURCE_ROOT + + 429089422C55446DB1C9F565 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-OBSlider-Private.xcconfig + path + Pods-OBSlider-Private.xcconfig + sourceTree + SOURCE_ROOT + + 4395C258F4B34D9B95C95C0B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OBSlider.h + path + OBSlider/OBSlider/OBSlider.h + sourceTree + SOURCE_ROOT + + 45EE3CECFC30418F87CC7252 + + fileRef + EAB8F900BB6D4F3EAB1A8816 + isa + PBXBuildFile + settings + + + 470B425A9C734881A24B76CC + + baseConfigurationReference + AC27A1C6241E4FE5A792CE76 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + YES + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + 471F2C9A93DD47D88AD5CB0B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OBSlider.m + path + OBSlider/OBSlider/OBSlider.m + sourceTree + SOURCE_ROOT + + 485B59F138BD455F99460B78 + + buildActionMask + 2147483647 + files + + A02D9E7F6AF24FD38D6CB2FE + 672608AAD628420E84AEAB7D + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 4D39325A14CF41E992512CEC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + Pods-environment.h + path + Pods-environment.h + sourceTree + SOURCE_ROOT + + 51726EA81B9D449C8FC75080 + + children + + 37653E55FD01431DA340C40B + 229F98FB9CD24809B8275EC0 + 2CADB3B463B24822A031CCF9 + 1A6E66647CF34C06B789C5B3 + + isa + PBXGroup + name + Targets Support Files + sourceTree + <group> + + 5322CA6B5E874166BAD2FC21 + + baseConfigurationReference + 8582992CAB5C4D0392CD84E1 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Debug + + 5352643FBC454BF5AE56B4E6 + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch + path + Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch + sourceTree + SOURCE_ROOT + + 538842CB46074F499F7ECE16 + + fileRef + FCBE851138A04EDAA6F8A85A + isa + PBXBuildFile + settings + + + 57A654E741BD44D58A1F51E4 + + buildConfigurationList + C5FD20316543437FAD2775A0 + buildPhases + + 278178BFEE5D42CD83F24BD7 + 485B59F138BD455F99460B78 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Pods + productName + Pods + productReference + CBF85B2A915E445CB5949605 + productType + com.apple.product-type.library.static + + 57F5C984DEFB4592AC844097 + + fileRef + 13E75CB198C9479EB7AA8161 + isa + PBXBuildFile + settings + + + 583D75947EFC406386047EEA + + children + + 98D5CA4E08AA478C9FEAACC9 + 87FCE1EA2D224136A66490C9 + CBF85B2A915E445CB5949605 + 62A4484E695B4752A394CDC6 + + isa + PBXGroup + name + Products + sourceTree + <group> + + 583D9B2614394DE0972ABC4A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCClassMockObject.h + path + OCMock/Source/OCMock/OCClassMockObject.h + sourceTree + SOURCE_ROOT + + 59299464157245FA824A4541 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMExceptionReturnValueProvider.m + path + OCMock/Source/OCMock/OCMExceptionReturnValueProvider.m + sourceTree + SOURCE_ROOT + + 5962AF1069444C87992C04D0 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMPassByRefSetter.m + path + OCMock/Source/OCMock/OCMPassByRefSetter.m + sourceTree + SOURCE_ROOT + + 5BDA597DD8054462BCD0FC70 + + fileRef + D746313E3BCE44B9BC722704 + isa + PBXBuildFile + settings + + + 5EFCC70D61184FBCB4AFBE29 + + fileRef + 59299464157245FA824A4541 + isa + PBXBuildFile + settings + + + 62A4484E695B4752A394CDC6 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + name + libPods-BeamMusicPlayerExampleTests.a + path + libPods-BeamMusicPlayerExampleTests.a + sourceTree + BUILT_PRODUCTS_DIR + + 62C6B23818214B15B045222D + + buildActionMask + 2147483647 + files + + 7D6271D184FD4047BE84D12D + 308F8D65C4064B118EA491CD + F990CCB3D3DA4D40A188111B + F712A057F861489193FC265E + 03A4175147F94649ACDDFEFE + 1EF0E15CF12D44DBAE04800B + 856FE0DB0B39408BB66CF44C + 9DA3C2171C2F4A2786C1F2BC + 5EFCC70D61184FBCB4AFBE29 + 051EE9B364FA4C8A8E35B185 + 9CC350E4FB94436DB212B353 + 45EE3CECFC30418F87CC7252 + 77DA5AB4DFA5462F9915E6D1 + 57F5C984DEFB4592AC844097 + E27556AF4C8A4286A1901787 + 83F6815E600547729EF39B6A + 01ACC3D1FDE34497AD345082 + CDD588106D6243258420B483 + C8BBFDFBAC3F4A2C8DD3D58B + F41D265562DD4FACA488F6D6 + C4FED9169DB7421CBB1B40BB + 9ACED3CBF9C84A37AB83B718 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 6546777B92CD409494F0F99E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMObserverRecorder.h + path + OCMock/Source/OCMock/OCMObserverRecorder.h + sourceTree + SOURCE_ROOT + + 672608AAD628420E84AEAB7D + + fileRef + 87FCE1EA2D224136A66490C9 + isa + PBXBuildFile + settings + + + 6913257F4FEC4CF0A2E876A2 + + fileRef + 6A0714036BF149A38A5D46BF + isa + PBXBuildFile + settings + + + 6A0714036BF149A38A5D46BF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMReturnValueProvider.h + path + OCMock/Source/OCMock/OCMReturnValueProvider.h + sourceTree + SOURCE_ROOT + + 6FE239CBFBBA4D2C8B063BD6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/Foundation.framework + sourceTree + DEVELOPER_DIR + + 72AB8739CAF34B258EA4DB4A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMExceptionReturnValueProvider.h + path + OCMock/Source/OCMock/OCMExceptionReturnValueProvider.h + sourceTree + SOURCE_ROOT + + 7439F4AF29A049C9AB21EB60 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMConstraint.m + path + OCMock/Source/OCMock/OCMConstraint.m + sourceTree + SOURCE_ROOT + + 77DA5AB4DFA5462F9915E6D1 + + fileRef + 264C4E84301446C1AD65223D + isa + PBXBuildFile + settings + + + 7893352F64454A2AAEA4CF64 + + buildActionMask + 2147483647 + files + + F0D5FBF25F7C4A3D907D0BCF + 1ABEAB179011411A9D60A633 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 797219FB7C9445CE983731B9 + + fileRef + EE4C9879DB2E4D248CF52CF1 + isa + PBXBuildFile + settings + + + 7B18518D1D6C499DBD05561E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMConstraint.h + path + OCMock/Source/OCMock/OCMConstraint.h + sourceTree + SOURCE_ROOT + + 7D0907738780496CB20ED6E7 + + fileRef + 1BC98C13060B4429B7F4CDB0 + isa + PBXBuildFile + settings + + + 7D6271D184FD4047BE84D12D + + fileRef + F763CA5AC9914969BE71A16B + isa + PBXBuildFile + settings + + + 80A25D9BA84D481BAC19ACD0 + + buildActionMask + 2147483647 + files + + E5FE9F7211F4446D9C434334 + 5BDA597DD8054462BCD0FC70 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 814B44C581154F879C1E5985 + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-OBSlider-prefix.pch + path + Pods-OBSlider-prefix.pch + sourceTree + SOURCE_ROOT + + 823424317BAF4A5B8065534F + + baseConfigurationReference + 429089422C55446DB1C9F565 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-OBSlider-prefix.pch + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Debug + + 82C74B46F3204DAEB5B8865D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMIndirectReturnValueProvider.m + path + OCMock/Source/OCMock/OCMIndirectReturnValueProvider.m + sourceTree + SOURCE_ROOT + + 83F6815E600547729EF39B6A + + fileRef + 1B2BA9EF2D3F4FFDB5DA7F3F + isa + PBXBuildFile + settings + + + 84A091D94352405797D329E5 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + NSMethodSignature+OCMAdditions.m + path + OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.m + sourceTree + SOURCE_ROOT + + 84F9E93F1AB94F51852574C4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + NSInvocation+OCMAdditions.h + path + OCMock/Source/OCMock/NSInvocation+OCMAdditions.h + sourceTree + SOURCE_ROOT + + 856FE0DB0B39408BB66CF44C + + fileRef + ED6705FEE89042609EFEAE2C + isa + PBXBuildFile + settings + + + 8582992CAB5C4D0392CD84E1 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-BeamMusicPlayerExampleTests.xcconfig + path + Pods-BeamMusicPlayerExampleTests.xcconfig + sourceTree + SOURCE_ROOT + + 8625B68B52DE4D908EF4D3DD + + buildSettings + + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + + isa + XCBuildConfiguration + name + Release + + 8792F8D13C8541589DF96FFB + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMockRecorder.h + path + OCMock/Source/OCMock/OCMockRecorder.h + sourceTree + SOURCE_ROOT + + 87FCE1EA2D224136A66490C9 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + name + libPods-OBSlider.a + path + libPods-OBSlider.a + sourceTree + BUILT_PRODUCTS_DIR + + 8919B9F589AA4D9E84C4335A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMPassByRefSetter.h + path + OCMock/Source/OCMock/OCMPassByRefSetter.h + sourceTree + SOURCE_ROOT + + 8A0A029AA37B4F6C81BF0F8E + + buildConfigurationList + B73842E13433402A85F1AABB + buildPhases + + 62C6B23818214B15B045222D + 2310914AEE6348539262A7BE + 38A69A2C9B3E47C5B3D46CBA + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Pods-BeamMusicPlayerExampleTests-OCMock + productName + Pods-BeamMusicPlayerExampleTests-OCMock + productReference + 98D5CA4E08AA478C9FEAACC9 + productType + com.apple.product-type.library.static + + 8A207D83563F46C5B33C2DDF + + fileRef + 0D27CA82C68344A1B7C259AB + isa + PBXBuildFile + settings + + + 8D8C4FF4D1E54B31BEB9F13D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig + path + Pods-BeamMusicPlayerExampleTests-OCMock.xcconfig + sourceTree + SOURCE_ROOT + + 8E14D3EBD27E4DFBA581F6DE + + fileRef + 1DCDD76BB8BE43D3B76067DE + isa + PBXBuildFile + settings + + + 93654A9A8B044B159BBF462D + + buildActionMask + 2147483647 + files + + 01F638D6AC6F4045887CC5C8 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 940802C477BA46AB8AFFD7E0 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCObserverMockObject.m + path + OCMock/Source/OCMock/OCObserverMockObject.m + sourceTree + SOURCE_ROOT + + 9573930C5C1247BCBD1E27BC + + fileRef + 6FE239CBFBBA4D2C8B063BD6 + isa + PBXBuildFile + settings + + + 95D169E59DFF45CC9DD1F704 + + buildConfigurationList + BA426F6CA9504DBFB620C500 + buildPhases + + 80A25D9BA84D481BAC19ACD0 + A56F508B3B6646DFA4CA01BA + 93654A9A8B044B159BBF462D + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Pods-OBSlider + productName + Pods-OBSlider + productReference + 87FCE1EA2D224136A66490C9 + productType + com.apple.product-type.library.static + + 9622BFDAEAC84744B878451B + + fileRef + 8919B9F589AA4D9E84C4335A + isa + PBXBuildFile + settings + + + 98D5CA4E08AA478C9FEAACC9 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + name + libPods-BeamMusicPlayerExampleTests-OCMock.a + path + libPods-BeamMusicPlayerExampleTests-OCMock.a + sourceTree + BUILT_PRODUCTS_DIR + + 98F1A825CB3B489C8F96FD0B + + baseConfigurationReference + A7B2C54433CD4D74B70D92E4 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Debug + + 9ACED3CBF9C84A37AB83B718 + + fileRef + F416A71B9E264828B0CA12C6 + isa + PBXBuildFile + settings + + + 9CC350E4FB94436DB212B353 + + fileRef + C66FC675C75D40AE9719D467 + isa + PBXBuildFile + settings + + + 9D7E91CCD2B64168BBD770D1 + + fileRef + 009D4D8BB3C549E18F9EA832 + isa + PBXBuildFile + settings + + + 9DA3C2171C2F4A2786C1F2BC + + fileRef + 7439F4AF29A049C9AB21EB60 + isa + PBXBuildFile + settings + + + A02D9E7F6AF24FD38D6CB2FE + + fileRef + 6FE239CBFBBA4D2C8B063BD6 + isa + PBXBuildFile + settings + + + A13E1AA10CDB45C084DF9928 + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-acknowledgements.markdown + path + Pods-acknowledgements.markdown + sourceTree + SOURCE_ROOT + + A1925BD7EE4044B1A726FCC8 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + Pods-BeamMusicPlayerExampleTests-dummy.m + path + Pods-BeamMusicPlayerExampleTests-dummy.m + sourceTree + SOURCE_ROOT + + A3FF492738AD49A3BAF4C273 + + fileRef + 2DA61BCCA8B64EA78049B8B4 + isa + PBXBuildFile + settings + + + A56F508B3B6646DFA4CA01BA + + buildActionMask + 2147483647 + files + + 9573930C5C1247BCBD1E27BC + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + A7B2C54433CD4D74B70D92E4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods.xcconfig + path + Pods.xcconfig + sourceTree + SOURCE_ROOT + + A8EC9F49A68647A1AD2A3DAE + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-resources.sh + path + Pods-resources.sh + sourceTree + SOURCE_ROOT + + AC27A1C6241E4FE5A792CE76 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-BeamMusicPlayerExampleTests-OCMock-Private.xcconfig + path + Pods-BeamMusicPlayerExampleTests-OCMock-Private.xcconfig + sourceTree + SOURCE_ROOT + + AD1E32D5E8BC46BD9AECBD7F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCClassMockObject.m + path + OCMock/Source/OCMock/OCClassMockObject.m + sourceTree + SOURCE_ROOT + + ADD8F3D49C484579BC592CCF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMNotificationPoster.h + path + OCMock/Source/OCMock/OCMNotificationPoster.h + sourceTree + SOURCE_ROOT + + B73842E13433402A85F1AABB + + buildConfigurations + + 470B425A9C734881A24B76CC + EA63EEC302B347E6BF253447 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + B7C27CFC9ABE4FC7956B9C10 + + fileRef + 84F9E93F1AB94F51852574C4 + isa + PBXBuildFile + settings + + + BA426F6CA9504DBFB620C500 + + buildConfigurations + + FA5EB3BEE56E47ED8DBBB533 + 823424317BAF4A5B8065534F + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + BB5CDD76C0A64D4382373514 + + attributes + + LastUpgradeCheck + 0450 + + buildConfigurationList + 03AA43105E2C46BE83572C6C + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + + mainGroup + FEFCDC5163394C66AF16D7D2 + productRefGroup + 583D75947EFC406386047EEA + projectReferences + + targets + + 8A0A029AA37B4F6C81BF0F8E + 95D169E59DFF45CC9DD1F704 + 57A654E741BD44D58A1F51E4 + 0B8B6842A5864DA99DB2E852 + + + BB9D969556954542BADFE7D1 + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-BeamMusicPlayerExampleTests-acknowledgements.plist + path + Pods-BeamMusicPlayerExampleTests-acknowledgements.plist + sourceTree + SOURCE_ROOT + + BF58029791154DC38B3F39F7 + + fileRef + D56FE0D4E3474DB18E5EE0B9 + isa + PBXBuildFile + settings + + + C3927CB8B1ED4986A4514032 + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-BeamMusicPlayerExampleTests-resources.sh + path + Pods-BeamMusicPlayerExampleTests-resources.sh + sourceTree + SOURCE_ROOT + + C45ABB29EACA42DFA7BFE97C + + includeInIndex + 1 + isa + PBXFileReference + name + Podfile + path + ../Podfile + sourceTree + SOURCE_ROOT + xcLanguageSpecificationIdentifier + xcode.lang.ruby + + C4FED9169DB7421CBB1B40BB + + fileRef + C76AD9DD7A0849CF89EAA1D4 + isa + PBXBuildFile + settings + + + C5CFCD9783E3440DA1A8B2F9 + + fileRef + 08BB26466BD84CEF81B97A7F + isa + PBXBuildFile + settings + + + C5F99253B4F54BD79C16104D + + children + + 4395C258F4B34D9B95C95C0B + 471F2C9A93DD47D88AD5CB0B + + isa + PBXGroup + name + OBSlider + sourceTree + <group> + + C5FD20316543437FAD2775A0 + + buildConfigurations + + DA7BDA4E5B6847BEBF7FB7E8 + 98F1A825CB3B489C8F96FD0B + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + C66FC675C75D40AE9719D467 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMNotificationPoster.m + path + OCMock/Source/OCMock/OCMNotificationPoster.m + sourceTree + SOURCE_ROOT + + C76AD9DD7A0849CF89EAA1D4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCProtocolMockObject.m + path + OCMock/Source/OCMock/OCProtocolMockObject.m + sourceTree + SOURCE_ROOT + + C8403C4DCEBE46C2A83D4FD6 + + fileRef + 6546777B92CD409494F0F99E + isa + PBXBuildFile + settings + + + C8BBFDFBAC3F4A2C8DD3D58B + + fileRef + 3BCB1C9B46D74C82A2071165 + isa + PBXBuildFile + settings + + + CA6E8CE616804D639CC18FE8 + + children + + 84F9E93F1AB94F51852574C4 + F763CA5AC9914969BE71A16B + FCBE851138A04EDAA6F8A85A + 84A091D94352405797D329E5 + 1BC98C13060B4429B7F4CDB0 + 0399302C70B0479699BC5491 + 583D9B2614394DE0972ABC4A + AD1E32D5E8BC46BD9AECBD7F + 08BB26466BD84CEF81B97A7F + 2FD02E4152BC4511944C2E65 + DFBFAF67278B48859CC6E658 + E54B154322FA4F4989CC4271 + 009D4D8BB3C549E18F9EA832 + ED6705FEE89042609EFEAE2C + 7B18518D1D6C499DBD05561E + 7439F4AF29A049C9AB21EB60 + 72AB8739CAF34B258EA4DB4A + 59299464157245FA824A4541 + D56FE0D4E3474DB18E5EE0B9 + 82C74B46F3204DAEB5B8865D + ADD8F3D49C484579BC592CCF + C66FC675C75D40AE9719D467 + 6546777B92CD409494F0F99E + EAB8F900BB6D4F3EAB1A8816 + 3D531FFDFDF244C3BFBB2F2A + 1DB1614EA66D4B768FDF3C13 + 264C4E84301446C1AD65223D + 8792F8D13C8541589DF96FFB + 13E75CB198C9479EB7AA8161 + 8919B9F589AA4D9E84C4335A + 5962AF1069444C87992C04D0 + 04B84B350237416780CEB0CF + 1B2BA9EF2D3F4FFDB5DA7F3F + 6A0714036BF149A38A5D46BF + 1DE33E31166A44F2B9796762 + 1DCDD76BB8BE43D3B76067DE + 940802C477BA46AB8AFFD7E0 + 0D27CA82C68344A1B7C259AB + 3BCB1C9B46D74C82A2071165 + 31DE64E6398747C8B52E61B4 + 2528EC5EAEF346B39655099A + 2DA61BCCA8B64EA78049B8B4 + C76AD9DD7A0849CF89EAA1D4 + + isa + PBXGroup + name + OCMock + sourceTree + <group> + + CB257DE6D00444678D345EE1 + + fileRef + 04B84B350237416780CEB0CF + isa + PBXBuildFile + settings + + + CBF85B2A915E445CB5949605 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + name + libPods.a + path + libPods.a + sourceTree + BUILT_PRODUCTS_DIR + + CDD588106D6243258420B483 + + fileRef + 940802C477BA46AB8AFFD7E0 + isa + PBXBuildFile + settings + + + D507A9DE88574EB48D782CCD + + fileRef + 8792F8D13C8541589DF96FFB + isa + PBXBuildFile + settings + + + D56FE0D4E3474DB18E5EE0B9 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMIndirectReturnValueProvider.h + path + OCMock/Source/OCMock/OCMIndirectReturnValueProvider.h + sourceTree + SOURCE_ROOT + + D746313E3BCE44B9BC722704 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + Pods-OBSlider-dummy.m + path + Pods-OBSlider-dummy.m + sourceTree + SOURCE_ROOT + + DA7BDA4E5B6847BEBF7FB7E8 + + baseConfigurationReference + A7B2C54433CD4D74B70D92E4 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + YES + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + DFBFAF67278B48859CC6E658 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + OCMBlockCaller.h + path + OCMock/Source/OCMock/OCMBlockCaller.h + sourceTree + SOURCE_ROOT + + E077C5FBEBF841C0AE33AEC6 + + buildActionMask + 2147483647 + files + + F7B3586038A94824800BDC95 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E27556AF4C8A4286A1901787 + + fileRef + 5962AF1069444C87992C04D0 + isa + PBXBuildFile + settings + + + E43E178EAC914DC2A57758E8 + + fileRef + ADD8F3D49C484579BC592CCF + isa + PBXBuildFile + settings + + + E54B154322FA4F4989CC4271 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMBlockCaller.m + path + OCMock/Source/OCMock/OCMBlockCaller.m + sourceTree + SOURCE_ROOT + + E5FE9F7211F4446D9C434334 + + fileRef + 471F2C9A93DD47D88AD5CB0B + isa + PBXBuildFile + settings + + COMPILER_FLAGS + -fobjc-arc -DOS_OBJECT_USE_OBJC=0 + + + E991116B1CDE40FAA13F3666 + + children + + 6FE239CBFBBA4D2C8B063BD6 + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + EA63EEC302B347E6BF253447 + + baseConfigurationReference + AC27A1C6241E4FE5A792CE76 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + NO + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-BeamMusicPlayerExampleTests-OCMock-prefix.pch + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + + isa + XCBuildConfiguration + name + Debug + + EAB8F900BB6D4F3EAB1A8816 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMObserverRecorder.m + path + OCMock/Source/OCMock/OCMObserverRecorder.m + sourceTree + SOURCE_ROOT + + EB18B18661864F8C8E4B2647 + + fileRef + 72AB8739CAF34B258EA4DB4A + isa + PBXBuildFile + settings + + + ED2BB37E6655489E85355CD0 + + fileRef + 6FE239CBFBBA4D2C8B063BD6 + isa + PBXBuildFile + settings + + + ED6705FEE89042609EFEAE2C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + OCMBoxedReturnValueProvider.m + path + OCMock/Source/OCMock/OCMBoxedReturnValueProvider.m + sourceTree + SOURCE_ROOT + + EE4C9879DB2E4D248CF52CF1 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + Pods-dummy.m + path + Pods-dummy.m + sourceTree + SOURCE_ROOT + + EF6078243F4D48A3901AF6CC + + includeInIndex + 1 + isa + PBXFileReference + name + Pods-BeamMusicPlayerExampleTests-acknowledgements.markdown + path + Pods-BeamMusicPlayerExampleTests-acknowledgements.markdown + sourceTree + SOURCE_ROOT + + F0D5FBF25F7C4A3D907D0BCF + + fileRef + 6FE239CBFBBA4D2C8B063BD6 + isa + PBXBuildFile + settings + + + F416A71B9E264828B0CA12C6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + Pods-BeamMusicPlayerExampleTests-OCMock-dummy.m + path + Pods-BeamMusicPlayerExampleTests-OCMock-dummy.m + sourceTree + SOURCE_ROOT + + F41D265562DD4FACA488F6D6 + + fileRef + 2528EC5EAEF346B39655099A + isa + PBXBuildFile + settings + + + F4849E02A96248B382FA5F10 + + buildSettings + + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + + isa + XCBuildConfiguration + name + Debug + + F6EA5EA7C6C84170996DB32E + + fileRef + 583D9B2614394DE0972ABC4A + isa + PBXBuildFile + settings + + + F712A057F861489193FC265E + + fileRef + AD1E32D5E8BC46BD9AECBD7F + isa + PBXBuildFile + settings + + + F763CA5AC9914969BE71A16B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + name + NSInvocation+OCMAdditions.m + path + OCMock/Source/OCMock/NSInvocation+OCMAdditions.m + sourceTree + SOURCE_ROOT + + F7B3586038A94824800BDC95 + + fileRef + A1925BD7EE4044B1A726FCC8 + isa + PBXBuildFile + settings + + + F990CCB3D3DA4D40A188111B + + fileRef + 0399302C70B0479699BC5491 + isa + PBXBuildFile + settings + + + FA5EB3BEE56E47ED8DBBB533 + + baseConfigurationReference + 429089422C55446DB1C9F565 + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + ARCHS + $(ARCHS_STANDARD_32_BIT) + COPY_PHASE_STRIP + YES + DSTROOT + /tmp/xcodeproj.dst + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + Pods-OBSlider-prefix.pch + GCC_VERSION + com.apple.compilers.llvm.clang.1_0 + INSTALL_PATH + $(BUILT_PRODUCTS_DIR) + IPHONEOS_DEPLOYMENT_TARGET + 4.3 + OTHER_CFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_CPLUSPLUSFLAGS + + -DNS_BLOCK_ASSERTIONS=1 + $(inherited) + + OTHER_LDFLAGS + + PRODUCT_NAME + $(TARGET_NAME) + PUBLIC_HEADERS_FOLDER_PATH + $(TARGET_NAME) + SDKROOT + iphoneos + SKIP_INSTALL + YES + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + FCBE851138A04EDAA6F8A85A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + NSMethodSignature+OCMAdditions.h + path + OCMock/Source/OCMock/NSMethodSignature+OCMAdditions.h + sourceTree + SOURCE_ROOT + + FEFCDC5163394C66AF16D7D2 + + children + + E991116B1CDE40FAA13F3666 + 10BD799344434F10915B623A + 583D75947EFC406386047EEA + 51726EA81B9D449C8FC75080 + C45ABB29EACA42DFA7BFE97C + + isa + PBXGroup + sourceTree + <group> + + + rootObject + BB5CDD76C0A64D4382373514 + + diff --git a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests-OCMock.xcscheme b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests-OCMock.xcscheme new file mode 100644 index 0000000..2e85990 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests-OCMock.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests.xcscheme b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests.xcscheme new file mode 100644 index 0000000..19a34fa --- /dev/null +++ b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-BeamMusicPlayerExampleTests.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-OBSlider.xcscheme b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-OBSlider.xcscheme new file mode 100644 index 0000000..86bafb7 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-OBSlider.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/travis/script.sh b/travis/script.sh index 9c63c61..53e1c8c 100755 --- a/travis/script.sh +++ b/travis/script.sh @@ -1,5 +1,5 @@ #!/bin/sh set -e -xctool -workspace BeamMusicPlayerExample.xcworkspace -scheme BeamMusicPlayerExample clean build test +xctool -workspace BeamMusicPlayerExample.xcworkspace -scheme BeamMusicPlayerExample -sdk iphonesimulator clean build test ./travis/appledoc.sh pod spec lint