From 17a82d13ac19700e8eaf693f832b4d4b8b802691 Mon Sep 17 00:00:00 2001 From: GRMrGecko Date: Fri, 24 Sep 2010 12:46:38 -0500 Subject: [PATCH] Fixed issue with international login, made MGMXML for XML parsing, and ported VoiceBase for the iPhone. --- .../VoiceBase/AddressBook/MGMAddressBook.h | 2 +- .../VoiceBase/AddressBook/MGMAddressBook.m | 18 +- Classes/VoiceBase/AddressBook/MGMContacts.h | 4 + .../AddressBook/MGMContactsProtocol.h | 9 +- .../AddressBook/MGMContactsProtocol.m | 2 +- .../VoiceBase/AddressBook/MGMGoogleContacts.h | 4 + .../VoiceBase/AddressBook/MGMGoogleContacts.m | 19 +- Classes/VoiceBase/MGMAddons.h | 12 +- Classes/VoiceBase/MGMAddons.m | 42 +- Classes/VoiceBase/MGMInbox.h | 2 +- Classes/VoiceBase/MGMInbox.m | 11 +- Classes/VoiceBase/MGMInstance.h | 4 +- Classes/VoiceBase/MGMInstance.m | 117 +- Classes/VoiceBase/MGMSound.h | 50 + Classes/VoiceBase/MGMSound.m | 99 + Classes/VoiceBase/MGMThemeManager.h | 8 +- Classes/VoiceBase/MGMThemeManager.m | 18 +- Classes/VoiceBase/SIP/MGMSIP.h | 8 + Classes/VoiceBase/SIP/MGMSIP.m | 22 +- Classes/VoiceBase/SIP/MGMSIPAccount.h | 4 + Classes/VoiceBase/SIP/MGMSIPCall.h | 4 + Classes/VoiceBase/SIP/MGMSIPURL.h | 4 + Classes/VoiceBase/VoiceBase.h | 23 +- Classes/VoiceBase/VoiceBaseTouch_Prefix.pch | 8 + Classes/VoiceBase/XML/MGMXML.h | 15 + Classes/VoiceBase/XML/MGMXMLAddons.h | 25 + Classes/VoiceBase/XML/MGMXMLAddons.m | 29 + Classes/VoiceBase/XML/MGMXMLDTD.h | 38 + Classes/VoiceBase/XML/MGMXMLDTD.m | 13 + Classes/VoiceBase/XML/MGMXMLDTDNode.h | 29 + Classes/VoiceBase/XML/MGMXMLDTDNode.m | 13 + Classes/VoiceBase/XML/MGMXMLDocument.h | 57 + Classes/VoiceBase/XML/MGMXMLDocument.m | 68 + Classes/VoiceBase/XML/MGMXMLElement.h | 50 + Classes/VoiceBase/XML/MGMXMLElement.m | 127 + Classes/VoiceBase/XML/MGMXMLNode.h | 146 + Classes/VoiceBase/XML/MGMXMLNode.m | 488 ++ Classes/VoiceBase/XML/MGMXMLNodeOptions.h | 53 + Classes/VoiceMac/Preferences/MGMSIPPane.m | 4 +- Classes/VoiceMac/Preferences/MGMSoundsPane.h | 4 +- Classes/VoiceMac/Preferences/MGMSoundsPane.m | 10 +- Classes/VoiceMac/SIP/MGMSIPUser.m | 18 +- Contributing.txt | 2 +- .../Versions/A/Headers/MGMHTTPCookieStorage.h | 6 + .../Versions/A/Headers/MGMJSON.h | 4 + .../Versions/A/Headers/MGMKeychain.h | 12 + .../Versions/A/Headers/MGMKeychainItem.h | 126 +- .../Versions/A/Headers/MGMLiteConnection.h | 5 + .../Versions/A/Headers/MGMLiteResult.h | 6 +- .../Versions/A/Headers/MGMUser.h | 4 + .../Versions/A/Headers/MGMUsers.h | 15 +- .../Versions/A/Headers/MGMWhitePages.h | 4 + .../MGMUsers.framework/Versions/A/MGMUsers | Bin 2714760 -> 2714880 bytes .../Versions/A/Resources/MGMTaskView.nib | Bin 7158 -> 7158 bytes .../Versions/A/Resources/MGMTasksWindow.nib | Bin 7309 -> 7309 bytes .../include/MGMUsers/MGMHTTPCookieStorage.h | 40 + Libraries/include/MGMUsers/MGMJSON.h | 62 + Libraries/include/MGMUsers/MGMKeychain.h | 35 + Libraries/include/MGMUsers/MGMKeychainItem.h | 205 + .../include/MGMUsers/MGMLiteConnection.h | 51 + Libraries/include/MGMUsers/MGMLiteResult.h | 42 + Libraries/include/MGMUsers/MGMMD5.h | 48 + Libraries/include/MGMUsers/MGMMDTypes.h | 100 + .../MGMUsers/MGMURLConnectionManager.h | 54 + Libraries/include/MGMUsers/MGMUser.h | 66 + Libraries/include/MGMUsers/MGMUsers.h | 35 + Libraries/include/MGMUsers/MGMWhitePages.h | 36 + Libraries/include/MGMUsers/sqlite3.h | 5914 +++++++++++++++++ Libraries/lib/libMGMUsers.a | Bin 0 -> 3482192 bytes License.txt | 2 + SIP/install | 75 +- SIP/mips_test.patch | 165 + SIP/notes.txt | 14 +- VoiceBase.xcodeproj/project.pbxproj | 487 +- VoiceMac.xcodeproj/project.pbxproj | 25 + 75 files changed, 9167 insertions(+), 154 deletions(-) create mode 100644 Classes/VoiceBase/MGMSound.h create mode 100644 Classes/VoiceBase/MGMSound.m create mode 100644 Classes/VoiceBase/VoiceBaseTouch_Prefix.pch create mode 100644 Classes/VoiceBase/XML/MGMXML.h create mode 100644 Classes/VoiceBase/XML/MGMXMLAddons.h create mode 100644 Classes/VoiceBase/XML/MGMXMLAddons.m create mode 100644 Classes/VoiceBase/XML/MGMXMLDTD.h create mode 100644 Classes/VoiceBase/XML/MGMXMLDTD.m create mode 100644 Classes/VoiceBase/XML/MGMXMLDTDNode.h create mode 100644 Classes/VoiceBase/XML/MGMXMLDTDNode.m create mode 100644 Classes/VoiceBase/XML/MGMXMLDocument.h create mode 100644 Classes/VoiceBase/XML/MGMXMLDocument.m create mode 100644 Classes/VoiceBase/XML/MGMXMLElement.h create mode 100644 Classes/VoiceBase/XML/MGMXMLElement.m create mode 100644 Classes/VoiceBase/XML/MGMXMLNode.h create mode 100644 Classes/VoiceBase/XML/MGMXMLNode.m create mode 100644 Classes/VoiceBase/XML/MGMXMLNodeOptions.h create mode 100644 Libraries/include/MGMUsers/MGMHTTPCookieStorage.h create mode 100644 Libraries/include/MGMUsers/MGMJSON.h create mode 100644 Libraries/include/MGMUsers/MGMKeychain.h create mode 100644 Libraries/include/MGMUsers/MGMKeychainItem.h create mode 100644 Libraries/include/MGMUsers/MGMLiteConnection.h create mode 100644 Libraries/include/MGMUsers/MGMLiteResult.h create mode 100644 Libraries/include/MGMUsers/MGMMD5.h create mode 100644 Libraries/include/MGMUsers/MGMMDTypes.h create mode 100644 Libraries/include/MGMUsers/MGMURLConnectionManager.h create mode 100644 Libraries/include/MGMUsers/MGMUser.h create mode 100644 Libraries/include/MGMUsers/MGMUsers.h create mode 100644 Libraries/include/MGMUsers/MGMWhitePages.h create mode 100644 Libraries/include/MGMUsers/sqlite3.h create mode 100644 Libraries/lib/libMGMUsers.a create mode 100644 SIP/mips_test.patch diff --git a/Classes/VoiceBase/AddressBook/MGMAddressBook.h b/Classes/VoiceBase/AddressBook/MGMAddressBook.h index 9b724c9..fca33fc 100644 --- a/Classes/VoiceBase/AddressBook/MGMAddressBook.h +++ b/Classes/VoiceBase/AddressBook/MGMAddressBook.h @@ -7,7 +7,7 @@ // #if TARGET_OS_IPHONE -#import +#import #import #else #import diff --git a/Classes/VoiceBase/AddressBook/MGMAddressBook.m b/Classes/VoiceBase/AddressBook/MGMAddressBook.m index f2e7625..1e82ee4 100644 --- a/Classes/VoiceBase/AddressBook/MGMAddressBook.m +++ b/Classes/VoiceBase/AddressBook/MGMAddressBook.m @@ -93,18 +93,18 @@ int phonesCount = ABMultiValueGetCount(phones); NSData *image = [(NSData *)ABPersonCopyImageData(person) autorelease]; if (phonesCount>0) { - //if (image!=nil) - // image = [image resizeTo:NSMakeSize(MGMABPhotoSize, MGMABPhotoSize)]; + if (image!=nil) + image = [image resizeTo:MGMABPhotoSize]; } for (int p=0; p0) { if (image!=nil) - image = [image resizeTo:NSMakeSize(MGMABPhotoSize, MGMABPhotoSize)]; + image = [image resizeTo:MGMABPhotoSize]; } for (int p=0; p<[phones count]; p++) { if (shouldStop) break; diff --git a/Classes/VoiceBase/AddressBook/MGMContacts.h b/Classes/VoiceBase/AddressBook/MGMContacts.h index a07392b..5c1490d 100644 --- a/Classes/VoiceBase/AddressBook/MGMContacts.h +++ b/Classes/VoiceBase/AddressBook/MGMContacts.h @@ -6,7 +6,11 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif @protocol MGMContactsProtocol, MGMContactsOwnerDelegate; @class MGMUser, MGMLiteConnection; diff --git a/Classes/VoiceBase/AddressBook/MGMContactsProtocol.h b/Classes/VoiceBase/AddressBook/MGMContactsProtocol.h index 67dee3c..73cb295 100644 --- a/Classes/VoiceBase/AddressBook/MGMContactsProtocol.h +++ b/Classes/VoiceBase/AddressBook/MGMContactsProtocol.h @@ -7,7 +7,7 @@ // #if TARGET_OS_IPHONE -#import +#import #else #import #endif @@ -26,7 +26,12 @@ extern NSString * const MGMCContactID; extern NSString * const MGMCGoogleContactsUser; -extern const int MGMABPhotoSize; +extern const float MGMABPhotoSizePX; +#if TARGET_OS_IPHONE +#define MGMABPhotoSize CGSizeMake(MGMABPhotoSizePX, MGMABPhotoSizePX) +#else +#define MGMABPhotoSize NSMakeSize(MGMABPhotoSizePX, MGMABPhotoSizePX) +#endif @class MGMUser; diff --git a/Classes/VoiceBase/AddressBook/MGMContactsProtocol.m b/Classes/VoiceBase/AddressBook/MGMContactsProtocol.m index 9f52eca..416409f 100644 --- a/Classes/VoiceBase/AddressBook/MGMContactsProtocol.m +++ b/Classes/VoiceBase/AddressBook/MGMContactsProtocol.m @@ -22,4 +22,4 @@ NSString * const MGMCContactID = @"contactid"; NSString * const MGMCGoogleContactsUser = @"MGMCGoogleContactsUser"; -const int MGMABPhotoSize = 64; \ No newline at end of file +const float MGMABPhotoSizePX = 64.0; \ No newline at end of file diff --git a/Classes/VoiceBase/AddressBook/MGMGoogleContacts.h b/Classes/VoiceBase/AddressBook/MGMGoogleContacts.h index 834ecc8..9c3590f 100644 --- a/Classes/VoiceBase/AddressBook/MGMGoogleContacts.h +++ b/Classes/VoiceBase/AddressBook/MGMGoogleContacts.h @@ -6,7 +6,11 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif @class MGMUser, MGMURLConnectionManager; @protocol MGMContactsDelegate, MGMContactsOwnerDelegate; diff --git a/Classes/VoiceBase/AddressBook/MGMGoogleContacts.m b/Classes/VoiceBase/AddressBook/MGMGoogleContacts.m index f89fd86..f5d5a69 100644 --- a/Classes/VoiceBase/AddressBook/MGMGoogleContacts.m +++ b/Classes/VoiceBase/AddressBook/MGMGoogleContacts.m @@ -10,6 +10,7 @@ #import "MGMContactsProtocol.h" #import "MGMInstance.h" #import "MGMAddons.h" +#import "MGMXML.h" #import NSString * const MGMGCAuthenticationURL = @"https://www.google.com/accounts/ClientLogin"; @@ -145,7 +146,7 @@ const BOOL MGMGoogleContactsInvisible = YES; } if (contacts!=nil) [contacts release]; contacts = [NSMutableArray new]; - NSXMLElement *XML = [[[[NSXMLDocument alloc] initWithData:[theInfo objectForKey:MGMConnectionData] options:NSXMLDocumentTidyXML error:nil] autorelease] rootElement]; + MGMXMLElement *XML = [(MGMXMLDocument *)[[[MGMXMLDocument alloc] initWithData:[theInfo objectForKey:MGMConnectionData] options:MGMXMLDocumentTidyXML error:nil] autorelease] rootElement]; contactEntries = [[XML elementsForName:@"entry"] retain]; contactsIndex=0; [self continueContacts]; @@ -164,7 +165,7 @@ const BOOL MGMGoogleContactsInvisible = YES; } - (void)parseContact { if (shouldStop) return; - NSXMLElement *entry = [contactEntries objectAtIndex:contactsIndex]; + MGMXMLElement *entry = [contactEntries objectAtIndex:contactsIndex]; NSArray *titles = [entry elementsForName:@"title"]; NSString *name = @""; if ([titles count]!=0) @@ -180,14 +181,14 @@ const BOOL MGMGoogleContactsInvisible = YES; NSData *image = nil; if ([phones count]>0) { if (contactPhoto!=nil) { - image = [contactPhoto resizeTo:NSMakeSize(MGMABPhotoSize, MGMABPhotoSize)]; + image = [contactPhoto resizeTo:MGMABPhotoSize]; [contactPhoto release]; contactPhoto = nil; } } for (int p=0; p<[phones count]; p++) { if (shouldStop) break; - NSXMLElement *phone = [phones objectAtIndex:p]; + MGMXMLElement *phone = [phones objectAtIndex:p]; NSMutableDictionary *contact = [NSMutableDictionary dictionary]; [contact setObject:name forKey:MGMCName]; [contact setObject:company forKey:MGMCCompany]; @@ -196,9 +197,9 @@ const BOOL MGMGoogleContactsInvisible = YES; else [contact setObject:[[phone stringValue] phoneFormat] forKey:MGMCNumber]; NSString *label = @""; - NSXMLNode *labelXML = [phone attributeForName:@"label"]; + MGMXMLNode *labelXML = [phone attributeForName:@"label"]; if (labelXML==nil) { - NSXMLNode *rel = [phone attributeForName:@"rel"]; + MGMXMLNode *rel = [phone attributeForName:@"rel"]; if (rel!=nil) { NSString *string = [rel stringValue]; NSRange range = [string rangeOfString:@"#"]; @@ -219,13 +220,13 @@ const BOOL MGMGoogleContactsInvisible = YES; - (void)continueContacts { for (; contactsIndex<[contactEntries count]; contactsIndex++) { if (shouldStop) break; - NSXMLElement *entry = [contactEntries objectAtIndex:contactsIndex]; + MGMXMLElement *entry = [contactEntries objectAtIndex:contactsIndex]; NSArray *phones = [entry elementsForName:@"gd:phoneNumber"]; if ([phones count]!=0) { NSArray *links = [entry elementsForName:@"link"]; BOOL loadingPhoto = NO; for (int i=0; i<[links count]; i++) { - NSXMLNode *rel = [[links objectAtIndex:i] attributeForName:@"rel"]; + MGMXMLNode *rel = [(MGMXMLElement *)[links objectAtIndex:i] attributeForName:@"rel"]; if (rel!=nil) { if ([[rel stringValue] containsString:@"#photo"]) { NSString *url = [[[links objectAtIndex:i] attributeForName:@"href"] stringValue]; @@ -296,7 +297,7 @@ const BOOL MGMGoogleContactsInvisible = YES; NSLog(@"MGMGoogleContacts Error: %@", theError); } - (void)groupsDidFinish:(NSDictionary *)theInfo { - NSXMLElement *XML = [[[[NSXMLDocument alloc] initWithData:[theInfo objectForKey:MGMConnectionData] options:NSXMLDocumentTidyXML error:nil] autorelease] rootElement]; + MGMXMLElement *XML = [(MGMXMLDocument *)[[[MGMXMLDocument alloc] initWithData:[theInfo objectForKey:MGMConnectionData] options:MGMXMLDocumentTidyXML error:nil] autorelease] rootElement]; NSLog(@"%@", XML); gettingGroups = NO; } diff --git a/Classes/VoiceBase/MGMAddons.h b/Classes/VoiceBase/MGMAddons.h index 2145580..8ea1067 100644 --- a/Classes/VoiceBase/MGMAddons.h +++ b/Classes/VoiceBase/MGMAddons.h @@ -7,7 +7,7 @@ // #if TARGET_OS_IPHONE -#import +#import #else #import #endif @@ -18,9 +18,7 @@ @interface NSString (MGMAddons) + (NSString *)stringWithSeconds:(int)theSeconds; -#if !TARGET_OS_IPHONE - (NSString *)flattenHTML; -#endif - (NSString *)replace:(NSString *)targetString with:(NSString *)replaceString; - (BOOL)containsString:(NSString *)string; @@ -40,12 +38,12 @@ - (NSString *)addPercentEscapes; -- (NSString *)truncateForWidth:(double)theWidth attributes:(NSDictionary *)theAttributes; - #if !TARGET_OS_IPHONE -NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *context); +- (NSString *)truncateForWidth:(double)theWidth attributes:(NSDictionary *)theAttributes; #endif +NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *context); + - (BOOL)isIPAddress; #if MGMSIPENABLED @@ -56,7 +54,7 @@ NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *cont @interface NSData (MGMAddons) #if TARGET_OS_IPHONE - +- (NSData *)resizeTo:(CGSize)theSize; #else - (NSData *)resizeTo:(NSSize)theSize; #endif diff --git a/Classes/VoiceBase/MGMAddons.m b/Classes/VoiceBase/MGMAddons.m index 1145f2d..e65facf 100644 --- a/Classes/VoiceBase/MGMAddons.m +++ b/Classes/VoiceBase/MGMAddons.m @@ -8,6 +8,7 @@ #import "MGMAddons.h" #import "MGMInbox.h" +#import "MGMXML.h" @implementation NSString (MGMAddons) + (NSString *)stringWithSeconds:(int)theSeconds { @@ -29,14 +30,11 @@ return string; } -#if !TARGET_OS_IPHONE - (NSString *)flattenHTML { NSString *xml = [NSString stringWithFormat:@"%@", self]; - NSXMLElement *xmlElement = [[[NSXMLElement alloc] initWithXMLString:xml error:nil] autorelease]; + MGMXMLElement *xmlElement = [[[MGMXMLElement alloc] initWithXMLString:xml error:nil] autorelease]; return [xmlElement stringValue]; } -#endif - - (NSString *)replace:(NSString *)targetString with:(NSString *)replaceString { NSAutoreleasePool *pool = [NSAutoreleasePool new]; NSMutableString *temp = [NSMutableString new]; @@ -1280,6 +1278,7 @@ return result; } +#if !TARGET_OS_IPHONE - (NSString *)truncateForWidth:(double)theWidth attributes:(NSDictionary *)theAttributes { NSString *endString = @"…"; NSString *truncatedString = self; @@ -1299,8 +1298,8 @@ return truncatedString; } +#endif -#if !TARGET_OS_IPHONE NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *context) { NSComparisonResult result = [[info1 objectForKey:MGMITime] compare:[info2 objectForKey:MGMITime]]; if (result==NSOrderedAscending) { @@ -1310,7 +1309,6 @@ NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *cont } return result; } -#endif - (BOOL)isIPAddress { NSArray *components = [self componentsSeparatedByString:@"."]; @@ -1343,17 +1341,27 @@ NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *cont @implementation NSData (MGMAddons) #if TARGET_OS_IPHONE - +- (NSData *)resizeTo:(CGSize)theSize { + UIImage *image = [[UIImage alloc] initWithData:self]; #else - (NSData *)resizeTo:(NSSize)theSize { NSImage *image = [[NSImage alloc] initWithData:self]; +#endif if (image!=nil) { +#if TARGET_OS_IPHONE + CGSize size = [image size]; +#else NSSize size = [image size]; +#endif float scaleFactor = 0.0; float scaledWidth = theSize.width; float scaledHeight = theSize.height; +#if TARGET_OS_IPHONE + if (!CGSizeEqualToSize(size, theSize)) { +#else if (!NSEqualSizes(size, theSize)) { +#endif float widthFactor = theSize.width / size.width; float heightFactor = theSize.height / size.height; @@ -1364,10 +1372,22 @@ NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *cont scaledWidth = size.width * scaleFactor; scaledHeight = size.height * scaleFactor; +#if TARGET_OS_IPHONE } - +#else + } +#endif +#if TARGET_OS_IPHONE + NSAutoreleasePool *pool = [NSAutoreleasePool new]; + UIGraphicsBeginImageContext(CGSizeMake(scaledWidth, scaledHeight)); + [image drawInRect:CGRectMake(0, 0, scaledWidth, scaledHeight)]; + UIImage *newImage = [UIGraphicsGetImageFromCurrentImageContext() retain]; + UIGraphicsEndImageContext(); + [pool drain]; + NSData *scaledData = UIImagePNGRepresentation(newImage); + [newImage release]; +#else NSImage *newImage = [[NSImage alloc] initWithSize:NSMakeSize(scaledWidth, scaledHeight)]; - [newImage lockFocus]; NSGraphicsContext *graphicsContext = [NSGraphicsContext currentContext]; [graphicsContext setImageInterpolation:NSImageInterpolationHigh]; @@ -1376,10 +1396,14 @@ NSComparisonResult dateSort(NSDictionary *info1, NSDictionary *info2, void *cont [newImage unlockFocus]; NSData *scaledData = [newImage TIFFRepresentation]; [newImage release]; +#endif [image release]; return scaledData; } return nil; +#if TARGET_OS_IPHONE +} +#else } #endif @end \ No newline at end of file diff --git a/Classes/VoiceBase/MGMInbox.h b/Classes/VoiceBase/MGMInbox.h index d7400b5..8edcde1 100644 --- a/Classes/VoiceBase/MGMInbox.h +++ b/Classes/VoiceBase/MGMInbox.h @@ -7,7 +7,7 @@ // #if TARGET_OS_IPHONE -#import +#import #else #import #endif diff --git a/Classes/VoiceBase/MGMInbox.m b/Classes/VoiceBase/MGMInbox.m index 5095da7..04265da 100644 --- a/Classes/VoiceBase/MGMInbox.m +++ b/Classes/VoiceBase/MGMInbox.m @@ -9,6 +9,7 @@ #import "MGMInbox.h" #import "MGMInstance.h" #import "MGMAddons.h" +#import "MGMXML.h" #import NSString * const MGMIDelegate = @"delegate"; @@ -252,15 +253,15 @@ const BOOL MGMInboxInvisible = YES; } } - (void)requestDidFinish:(NSDictionary *)theInfo { - NSXMLElement *XML = [[[[NSXMLDocument alloc] initWithData:[theInfo objectForKey:MGMConnectionData] options:NSXMLDocumentTidyXML error:nil] autorelease] rootElement]; + MGMXMLElement *XML = [(MGMXMLDocument *)[[[MGMXMLDocument alloc] initWithData:[theInfo objectForKey:MGMConnectionData] options:MGMXMLDocumentTidyXML error:nil] autorelease] rootElement]; NSDictionary *infoDic = [[[[XML elementsForName:@"json"] objectAtIndex:0] stringValue] parseJSON]; NSDictionary *messagesInfo = [infoDic objectForKey:@"messages"]; NSArray *messagesInfoKeys = [messagesInfo allKeys]; - NSXMLElement *html = [[[[NSXMLDocument alloc] initWithXMLString:[[[XML elementsForName:@"html"] objectAtIndex:0] stringValue] options:NSXMLDocumentTidyHTML error:nil] autorelease] rootElement]; - NSArray *messages = [(NSXMLElement *)[html childAtIndex:1] elementsForName:@"div"]; + MGMXMLElement *html = [(MGMXMLDocument *)[[[MGMXMLDocument alloc] initWithXMLString:[[[XML elementsForName:@"html"] objectAtIndex:0] stringValue] options:MGMXMLDocumentTidyHTML error:nil] autorelease] rootElement]; + NSArray *messages = [(MGMXMLElement *)[html childAtIndex:0] elementsForName:@"div"]; NSMutableArray *info = [NSMutableArray array]; for (unsigned int i=0; i<[messages count]; i++) { - NSXMLElement *message = [messages objectAtIndex:i]; + MGMXMLElement *message = [messages objectAtIndex:i]; NSString *messageID = [[message attributeForName:MGMIID] stringValue]; if (messageID) { for (unsigned int m=0; m<[messagesInfoKeys count]; m++) { @@ -291,7 +292,7 @@ const BOOL MGMInboxInvisible = YES; [messagesArray addObject:[self parseMessageWithHTML:messageString info:thisInfo]]; } else { m++; - NSArray *moreMessages = [(NSXMLElement *)[messagesXML objectAtIndex:m] elementsForName:@"div"]; + NSArray *moreMessages = [(MGMXMLElement *)[messagesXML objectAtIndex:m] elementsForName:@"div"]; for (unsigned int ms=0; ms<[moreMessages count]; ms++) { NSAutoreleasePool *pool = [NSAutoreleasePool new]; NSString *messageString = [[moreMessages objectAtIndex:ms] XMLString]; diff --git a/Classes/VoiceBase/MGMInstance.h b/Classes/VoiceBase/MGMInstance.h index 74e566f..7233681 100644 --- a/Classes/VoiceBase/MGMInstance.h +++ b/Classes/VoiceBase/MGMInstance.h @@ -7,7 +7,7 @@ // #if TARGET_OS_IPHONE -#import +#import #else #import #endif @@ -70,7 +70,6 @@ extern NSString * const MGMUCVoicemail; int webLoginTries; BOOL loggedIn; - NSString *GALX; NSString *XPCURL; NSString *XPCCD; @@ -113,7 +112,6 @@ extern NSString * const MGMUCVoicemail; - (NSArray *)userPhoneNumbers; - (NSDictionary *)unreadCounts; -- (void)login; - (BOOL)isLoggedIn; - (void)checkTimer; - (void)creditTimer; diff --git a/Classes/VoiceBase/MGMInstance.m b/Classes/VoiceBase/MGMInstance.m index 69e858e..a3d8fb2 100644 --- a/Classes/VoiceBase/MGMInstance.m +++ b/Classes/VoiceBase/MGMInstance.m @@ -16,8 +16,7 @@ NSString * const MGMVoiceBaseCopyright = @"Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/"; NSString * const MGMVoiceIndexURL = @"https://www.google.com/voice/#inbox"; -NSString * const MGMLoginURL = @"https://www.google.com/accounts/ServiceLoginAuth?service=grandcentral"; -NSString * const MGMLoginBody = @"ltmpl=bluebar&continue=https://www.google.com/voice/account/signin&GALX=%@&Email=%@&Passwd=%@&PersistentCookie=yes&rmShown=1"; +NSString * const MGMLoginURL = @"https://www.google.com/accounts/ServiceLoginAuth"; NSString * const MGMXPCPath = @"/voice/xpc/?xpc=%7B%22cn%22%3A%22i70avDIMsA%22%2C%22tp%22%3Anull%2C%22pru%22%3A%22https%3A%2F%2Fwww.google.com%2Fvoice%2Fxpc%2Frelay%22%2C%22ppu%22%3A%22https%3A%2F%2Fwww.google.com%2Fvoice%2Fxpc%2Fblank%2F%22%2C%22lpu%22%3A%22https%3A%2F%2Fclients4.google.com%2Fvoice%2Fxpc%2Fblank%2F%22%7D"; NSString * const MGMCheckPath = @"/voice/xpc/checkMessages?r=%@"; NSString * const MGMCreditURL = @"https://www.google.com/voice/settings/billingcredit/"; @@ -88,8 +87,6 @@ const BOOL MGMInstanceInvisible = YES; [inbox release]; if (contacts!=nil) [contacts release]; - if (GALX!=nil) - [GALX release]; if (XPCURL!=nil) [XPCURL release]; if (XPCCD!=nil) @@ -210,7 +207,36 @@ const BOOL MGMInstanceInvisible = YES; } - (void)indexDidFinish:(NSDictionary *)theInfo { NSString *returnedString = [[[NSString alloc] initWithData:[theInfo objectForKey:MGMConnectionData] encoding:NSUTF8StringEncoding] autorelease]; - if ([returnedString containsString:@"
"]) { + if ([returnedString containsString:@"Redirecting"]) { + NSRange range; + NSString *redirectURL = MGMVoiceIndexURL; + range = [returnedString rangeOfString:@"http-equiv="]; + if (range.location!=NSNotFound) { + NSString *string = [returnedString substringFromIndex:range.location + range.length]; + range = [string rangeOfString:@"url="]; + if (range.location==NSNotFound) { + NSLog(@"failed 683476"); + } else { + string = [string substringFromIndex:range.location + range.length]; + range = [string rangeOfString:@"\""]; + if (range.location==NSNotFound) { + range = [string rangeOfString:@"'"]; + } + if (range.location==NSNotFound) { + NSLog(@"failed 683476"); + } else { + string = [string substringWithRange:NSMakeRange(0, range.location)]; + string = [string flattenHTML]; + string = [string replace:@"\"" with:@""]; + string = [string replace:@"'" with:@""]; + //string = [string stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + redirectURL = [string replace:@"&amp;" with:@"&"]; + } + } + } + //NSLog(@"Redirecting to %@", redirectURL); + [connectionManager connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:redirectURL]] delegate:self didFailWithError:@selector(index:didFailWithError:) didFinish:@selector(indexDidFinish:) invisible:MGMInstanceInvisible object:nil]; + } else if ([returnedString containsString:@"
"]) { if (webLoginTries>2) { NSError *error = [NSError errorWithDomain:@"com.MrGeckosMedia.MGMInstance.Login" code:1 userInfo:[NSDictionary dictionaryWithObject:@"Unable to login. Please check your Credentials." forKey:NSLocalizedDescriptionKey]]; if ([delegate respondsToSelector:@selector(loginError:)]) { @@ -220,19 +246,68 @@ const BOOL MGMInstanceInvisible = YES; } return; } - NSRange range = [returnedString rangeOfString:@"name=\"GALX\""]; - if (range.location!=NSNotFound) { - NSString *string = [returnedString substringFromIndex:range.location+range.length]; - - range = [string rangeOfString:@"value=\""]; - if (range.location==NSNotFound) NSLog(@"failed 243"); - string = [string substringFromIndex:range.location+range.length]; - range = [string rangeOfString:@"\" />"]; - if (range.location==NSNotFound) NSLog(@"failed 532"); - if (GALX!=nil) [GALX release]; - GALX = [[string substringWithRange:NSMakeRange(0, range.location)] copy]; + webLoginTries++; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:MGMLoginURL]]; + [request setHTTPMethod:MGMPostMethod]; + [request setValue:MGMURLForm forHTTPHeaderField:MGMContentType]; + NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; + [parameters setObject:(webLoginTries==2 ? [[user settingForKey:MGMUserName] stringByAppendingString:@"@gmail.com"] : [user settingForKey:MGMUserName]) forKey:@"Email"]; + [parameters setObject:[user password] forKey:@"Passwd"]; + [parameters setObject:@"yes" forKey:@"PersistentCookie"]; + NSString *nameValue = @"name=\"%@\""; + NSString *valueStart = @"value=\""; + NSString *valueEnd = @"\""; + NSString *valueStartQ = @"value='"; + NSString *valueEndQ = @"'"; + NSArray *names = [NSArray arrayWithObjects:@"ltmpl", @"continue", @"followup", @"service", @"dsh", @"GALX", @"rmShown", nil]; + for (int i=0; i<[names count]; i++) { + NSAutoreleasePool *pool = [NSAutoreleasePool new]; + NSString *nameString = [NSString stringWithFormat:nameValue, [names objectAtIndex:i]]; + NSRange range = [returnedString rangeOfString:nameString]; + if (range.location==NSNotFound) { + nameString = [nameString replace:@"\"" with:@"'"]; + range = [returnedString rangeOfString:nameString]; + } + if (range.location==NSNotFound) { + NSLog(@"Unable to find %@", [names objectAtIndex:i]); + } else { + NSString *string = [returnedString substringFromIndex:range.location+range.length]; + range = [string rangeOfString:valueStart]; + if (range.location==NSNotFound) { + range = [string rangeOfString:valueStartQ]; + if (range.location==NSNotFound) { + NSLog(@"Unable to find value for %@", [names objectAtIndex:i]); + [pool drain]; + continue; + } + string = [string substringFromIndex:range.location+range.length]; + range = [string rangeOfString:valueEndQ]; + } else { + string = [string substringFromIndex:range.location+range.length]; + range = [string rangeOfString:valueEnd]; + } + if (range.location==NSNotFound) NSLog(@"failed 532"); + [parameters setObject:[[[string substringWithRange:NSMakeRange(0, range.location)] copy] autorelease] forKey:[names objectAtIndex:i]]; + } + [pool drain]; } - [self login]; + +#if MGMInstanceDebug + NSMutableDictionary *parametersDebug = [[parameters mutableCopy] autorelease]; + [parametersDebug removeObjectForKey:@"Passwd"]; + NSLog(@"%@", parametersDebug); +#endif + + NSArray *parametersKeys = [parameters allKeys]; + NSMutableString *bodyString = [NSMutableString string]; + for (int i=0; i<[parametersKeys count]; i++) { + if (i!=0) + [bodyString appendString:@"&"]; + [bodyString appendFormat:@"%@=%@", [[parametersKeys objectAtIndex:i] addPercentEscapes], [[parameters objectForKey:[parametersKeys objectAtIndex:i]] addPercentEscapes]]; + } + + [request setHTTPBody:[bodyString dataUsingEncoding:NSUTF8StringEncoding]]; + [connectionManager connectionWithRequest:request delegate:self didFailWithError:@selector(index:didFailWithError:) didFinish:@selector(indexDidFinish:) invisible:MGMInstanceInvisible object:nil]; } else { NSString *string, *guser = @"", *phonesInfo = @""; NSRange range; @@ -416,14 +491,6 @@ const BOOL MGMInstanceInvisible = YES; } } } -- (void)login { - webLoginTries++; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:MGMLoginURL]]; - [request setHTTPMethod:MGMPostMethod]; - [request setValue:MGMURLForm forHTTPHeaderField:MGMContentType]; - [request setHTTPBody:[[NSString stringWithFormat:MGMLoginBody, GALX, [(webLoginTries==2 ? [[user settingForKey:MGMUserName] stringByAppendingString:@"@gmail.com"] : [user settingForKey:MGMUserName]) addPercentEscapes], [[user password] addPercentEscapes]] dataUsingEncoding:NSUTF8StringEncoding]]; - [connectionManager connectionWithRequest:request delegate:self didFailWithError:@selector(index:didFailWithError:) didFinish:@selector(indexDidFinish:) invisible:MGMInstanceInvisible object:nil]; -} - (BOOL)isLoggedIn { return loggedIn; } diff --git a/Classes/VoiceBase/MGMSound.h b/Classes/VoiceBase/MGMSound.h new file mode 100644 index 0000000..8dee451 --- /dev/null +++ b/Classes/VoiceBase/MGMSound.h @@ -0,0 +1,50 @@ +// +// MGMSound.h +// VoiceBase +// +// Created by Mr. Gecko on 9/23/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#import +#else +#import +#endif + +@class MGMSound; + +@protocol MGMSoundDelegate +- (void)soundDidFinishPlaying:(MGMSound *)theSound; +@end + +@interface MGMSound : NSObject +#if TARGET_OS_IPHONE + +#endif +{ +#if TARGET_OS_IPHONE + AVAudioPlayer *sound; +#else + NSSound *sound; +#endif + id delegate; + + BOOL loops; +} +- (id)initWithContentsOfFile:(NSString *)theFile; +- (id)initWithContentsOfURL:(NSURL *)theURL; +- (id)initWithData:(NSData *)theData; + +- (void)setDelegate:(id)theDelegate; +- (id)delegate; + +- (void)setLoops:(BOOL)shouldLoop; +- (BOOL)loops; + +- (void)play; +- (void)pause; +- (void)stop; +- (BOOL)isPlaying; +@end \ No newline at end of file diff --git a/Classes/VoiceBase/MGMSound.m b/Classes/VoiceBase/MGMSound.m new file mode 100644 index 0000000..ff09f7e --- /dev/null +++ b/Classes/VoiceBase/MGMSound.m @@ -0,0 +1,99 @@ +// +// MGMSound.m +// VoiceBase +// +// Created by Mr. Gecko on 9/23/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMSound.h" + +@implementation MGMSound +- (id)init { + if (self = [super init]) { + loops = NO; + } + return self; +} +- (id)initWithContentsOfFile:(NSString *)theFile { + return [self initWithContentsOfURL:[NSURL fileURLWithPath:theFile]]; +} +- (id)initWithContentsOfURL:(NSURL *)theURL { + if (self = [self init]) { +#if TARGET_OS_IPHONE + sound = [[AVAudioPlayer alloc] initWithContentsOfURL:theURL error:nil]; +#else + sound = [[NSSound alloc] initWithContentsOfURL:theURL byReference:YES]; +#endif + [sound setDelegate:self]; + } + return self; +} +- (id)initWithData:(NSData *)theData { + if (self = [self init]) { +#if TARGET_OS_IPHONE + sound = [[AVAudioPlayer alloc] initWithData:theData error:nil]; +#else + sound = [[NSSound alloc] initWithData:theData]; +#endif + [sound setDelegate:self]; + } + return self; +} +- (void)dealloc { + if (sound!=nil) { + [sound stop]; + [sound release]; + } + [super dealloc]; +} + +- (void)setDelegate:(id)theDelegate { + delegate = theDelegate; +} +- (id)delegate { + return delegate; +} + +#if TARGET_OS_IPHONE +- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag { + if (loops) { + [sound stop]; + [sound play]; + } else { + if (delegate!=nil && [delegate respondsToSelector:@selector(soundDidFinishPlaying:)]) [delegate soundDidFinishPlaying:self]; + } +} +#else +- (void)sound:(NSSound *)theSound didFinishPlaying:(BOOL)finishedPlaying { + if (finishedPlaying) { + if (loops) { + [sound stop]; + [sound play]; + } else { + if (delegate!=nil && [delegate respondsToSelector:@selector(soundDidFinishPlaying:)]) [delegate soundDidFinishPlaying:self]; + } + } +} +#endif + +- (void)setLoops:(BOOL)shouldLoop { + loops = shouldLoop; +} +- (BOOL)loops { + return loops; +} + +- (void)play { + [sound play]; +} +- (void)pause { + [sound pause]; +} +- (void)stop { + [sound stop]; +} +- (BOOL)isPlaying { + return [sound isPlaying]; +} +@end \ No newline at end of file diff --git a/Classes/VoiceBase/MGMThemeManager.h b/Classes/VoiceBase/MGMThemeManager.h index 54a4384..4ec6cf3 100644 --- a/Classes/VoiceBase/MGMThemeManager.h +++ b/Classes/VoiceBase/MGMThemeManager.h @@ -6,10 +6,16 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif #define MGMThemeManagerDebug 0 +@class MGMSound; + extern NSString * const MGMTThemeChangedNotification; extern NSString * const MGMTUpdatedSMSThemeNotification; @@ -81,7 +87,7 @@ extern NSString * const MGMM4AExt; - (NSString *)currentSoundPath:(NSString *)theSoundName; - (NSString *)nameOfSound:(NSString *)theSoundName; - (BOOL)setSound:(NSString *)theSoundName withPath:(NSString *)thePath; -- (NSSound *)playSound:(NSString *)theSoundName; +- (MGMSound *)playSound:(NSString *)theSoundName; - (NSString *)themesFolderPath; - (BOOL)setupCurrentTheme; diff --git a/Classes/VoiceBase/MGMThemeManager.m b/Classes/VoiceBase/MGMThemeManager.m index 760bb0b..c236cd8 100644 --- a/Classes/VoiceBase/MGMThemeManager.m +++ b/Classes/VoiceBase/MGMThemeManager.m @@ -9,6 +9,7 @@ #import "MGMThemeManager.h" #import "MGMInbox.h" #import "MGMAddons.h" +#import "MGMSound.h" #import NSString * const MGMTThemeChangedNotification = @"MGMTThemeChangedNotification"; @@ -159,9 +160,11 @@ NSString * const MGMM4AExt = @"m4a"; NSString *supportPath = [[MGMUser applicationSupportPath] stringByAppendingPathComponent:MGMTSoundsFolder]; NSFileManager *manager = [NSFileManager defaultManager]; if (![manager fileExistsAtPath:supportPath]) { +#if !TARGET_OS_IPHONE if ([manager respondsToSelector:@selector(createDirectoryAtPath:attributes:)]) [manager createDirectoryAtPath:supportPath attributes:nil]; else +#endif [manager createDirectoryAtPath:supportPath withIntermediateDirectories:YES attributes:nil error:nil]; } return supportPath; @@ -293,29 +296,30 @@ NSString * const MGMM4AExt = @"m4a"; [[NSNotificationCenter defaultCenter] postNotificationName:MGMTSoundChangedNotification object:theSoundName]; return YES; } -- (NSSound *)playSound:(NSString *)theSoundName { - NSSound *sound = nil; +- (MGMSound *)playSound:(NSString *)theSoundName { + MGMSound *sound = nil; NSFileManager *manager = [NSFileManager defaultManager]; NSString *path = [self currentSoundPath:theSoundName]; if ([manager fileExistsAtPath:path]) { - sound = [[NSSound alloc] initWithContentsOfFile:path byReference:YES]; + sound = [[MGMSound alloc] initWithContentsOfFile:path]; [sound setDelegate:self]; - [sound play]; + [sound performSelectorOnMainThread:@selector(play) withObject:nil waitUntilDone:NO]; } return sound; } -- (void)sound:(NSSound *)sound didFinishPlaying:(BOOL)finishedPlaying { - if (finishedPlaying) - [sound release]; +- (void)soundDidFinishPlaying:(MGMSound *)theSound { + [theSound release]; } - (NSString *)themesFolderPath { NSString *supportPath = [[MGMUser applicationSupportPath] stringByAppendingPathComponent:MGMTThemeFolder]; NSFileManager *manager = [NSFileManager defaultManager]; if (![manager fileExistsAtPath:supportPath]) { +#if !TARGET_OS_IPHONE if ([manager respondsToSelector:@selector(createDirectoryAtPath:attributes:)]) [manager createDirectoryAtPath:supportPath attributes:nil]; else +#endif [manager createDirectoryAtPath:supportPath withIntermediateDirectories:YES attributes:nil error:nil]; } return supportPath; diff --git a/Classes/VoiceBase/SIP/MGMSIP.h b/Classes/VoiceBase/SIP/MGMSIP.h index 3b7f026..345cdff 100644 --- a/Classes/VoiceBase/SIP/MGMSIP.h +++ b/Classes/VoiceBase/SIP/MGMSIP.h @@ -7,7 +7,11 @@ // #if MGMSIPENABLED +#if TARGET_OS_IPHONE +#import +#else #import +#endif #import #import @@ -97,7 +101,9 @@ typedef enum { NSMutableArray *accounts; NSMutableArray *restartAccounts; +#if !TARGET_OS_IPHONE NSArray *audioDevices; +#endif int ringbackCount; @@ -143,10 +149,12 @@ typedef enum { - (float)micVolume; - (void)setMicVolume:(float)theVolume; +#if !TARGET_OS_IPHONE - (BOOL)setInputSoundDevice:(int)theInputDevice outputSoundDevice:(int)theOutputDevice; - (BOOL)stopSound; - (void)updateAudioDevices; - (NSArray *)audioDevices; +#endif - (void)receivedNewCall:(MGMSIPCall *)theCall; - (void)startingNewCall:(MGMSIPCall *)theCall; diff --git a/Classes/VoiceBase/SIP/MGMSIP.m b/Classes/VoiceBase/SIP/MGMSIP.m index 9ce16b8..af93277 100644 --- a/Classes/VoiceBase/SIP/MGMSIP.m +++ b/Classes/VoiceBase/SIP/MGMSIP.m @@ -12,7 +12,9 @@ #import "MGMSIPCall.h" #import "MGMAddons.h" #import +#if !TARGET_OS_IPHONE #import +#endif NSString * const MGMSIPCopyright = @"Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/"; @@ -206,6 +208,7 @@ static void MGMSIPDetectedNAT(const pj_stun_nat_detect_result *result) { [pool drain]; } +#if !TARGET_OS_IPHONE static void MGMNetworkNotification(SCDynamicStoreRef store, NSArray *changedKeys, void *info) { for (int i=0; i<[changedKeys count]; ++i) { NSString *key = [changedKeys objectAtIndex:i]; @@ -228,6 +231,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void [pool drain]; return noErr; } +#endif @interface MGMSIP (MGMPrivate) @@ -249,6 +253,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void accounts = [NSMutableArray new]; shouldRestart = NO; +#if !TARGET_OS_IPHONE store = SCDynamicStoreCreate(kCFAllocatorDefault, CFBundleGetIdentifier(CFBundleGetMainBundle()), (SCDynamicStoreCallBack)MGMNetworkNotification, NULL); if (!store) { NSLog(@"Unable to create store for system configuration %s", SCErrorString(SCError())); @@ -264,6 +269,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void CFRelease(storeRunLoop); } } +#endif } return self; } @@ -359,8 +365,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void [pool drain]; return; } - pj_thread_desc PJThreadDesc; - [self registerThread:&PJThreadDesc]; PJPool = pjsua_pool_create("MGMSIP-pjsua", 1000, 1000); @@ -393,6 +397,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void sipConfig.max_calls = MGMSIPMaxCalls; +#if !TARGET_OS_IPHONE if ([defaults boolForKey:MGMSIPNameServersEnabled]) { SCDynamicStoreRef dynamicStore = SCDynamicStoreCreate(NULL, CFBundleGetIdentifier(CFBundleGetMainBundle()), NULL, NULL); CFPropertyListRef DNSSettings = SCDynamicStoreCopyValue(dynamicStore, CFSTR("State:/Network/Global/DNS")); @@ -409,6 +414,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void sipConfig.nameserver[i] = [[nameServers objectAtIndex:i] PJString]; } } +#endif if ([defaults objectForKey:MGMSIPOutboundProxy]!=nil && ![[defaults objectForKey:MGMSIPOutboundProxy] isEqual:@""]) { sipConfig.outbound_proxy_cnt = 1; @@ -428,7 +434,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void status = pjsua_init(&sipConfig, &loggingConfig, &mediaConfig); if (status!=PJ_SUCCESS) { NSLog(@"Error initializing PJSUA"); - bzero(&PJThreadDesc, sizeof(pj_thread_desc)); [self stop]; [lock unlock]; [pool drain]; @@ -440,7 +445,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void status = pjmedia_tonegen_create2(PJPool, &name, mediaConfig.clock_rate, mediaConfig.channel_count, samplesPerFrame, 16, PJMEDIA_TONEGEN_LOOP, &ringbackPort); if (status!=PJ_SUCCESS) { NSLog(@"Error creating ringback tones"); - bzero(&PJThreadDesc, sizeof(pj_thread_desc)); [self stop]; [lock unlock]; [pool drain]; @@ -459,7 +463,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void status = pjsua_conf_add_port(PJPool, ringbackPort, &ringbackSlot); if (status!=PJ_SUCCESS) { NSLog(@"Error adding ringback tone"); - bzero(&PJThreadDesc, sizeof(pj_thread_desc)); [self stop]; [lock unlock]; [pool drain]; @@ -474,7 +477,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &transportConfig, &UDPTransport); if (status!=PJ_SUCCESS) { NSLog(@"Error creating transport"); - bzero(&PJThreadDesc, sizeof(pj_thread_desc)); [self stop]; [lock unlock]; [pool drain]; @@ -497,7 +499,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void status = pjsua_start(); if (status!=PJ_SUCCESS) { NSLog(@"Error starting PJSUA"); - bzero(&PJThreadDesc, sizeof(pj_thread_desc)); [self stop]; [lock unlock]; [pool drain]; @@ -508,10 +509,12 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void pjsua_conf_adjust_tx_level(0, [defaults floatForKey:MGMSIPVolume]); pjsua_conf_adjust_rx_level(0, [defaults floatForKey:MGMSIPMicVolume]); +#if !TARGET_OS_IPHONE AudioHardwareAddPropertyListener(kAudioHardwarePropertyDevices, &MGMAudioDevicesChanged, self); AudioHardwareAddPropertyListener(kAudioHardwarePropertyDefaultInputDevice, &MGMAudioDevicesChanged, self); AudioHardwareAddPropertyListener(kAudioHardwarePropertyDefaultOutputDevice, &MGMAudioDevicesChanged, self); [self updateAudioDevices]; +#endif [accounts makeObjectsPerformSelector:@selector(login)]; @@ -519,7 +522,6 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void NSLog(@"MGMSIP Started"); - bzero(&PJThreadDesc, sizeof(pj_thread_desc)); [lock unlock]; [pool drain]; } @@ -563,9 +565,11 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void state = MGMSIPStoppedState; +#if !TARGET_OS_IPHONE AudioHardwareRemovePropertyListener(kAudioHardwarePropertyDevices, &MGMAudioDevicesChanged); AudioHardwareRemovePropertyListener(kAudioHardwarePropertyDefaultInputDevice, &MGMAudioDevicesChanged); AudioHardwareRemovePropertyListener(kAudioHardwarePropertyDefaultOutputDevice, &MGMAudioDevicesChanged); +#endif if (delegate!=nil && [delegate respondsToSelector:@selector(SIPStopped)]) [delegate SIPStopped]; @@ -767,6 +771,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void bzero(&PJThreadDesc, sizeof(pj_thread_desc)); } +#if !TARGET_OS_IPHONE - (BOOL)setInputSoundDevice:(int)theInputDevice outputSoundDevice:(int)theOutputDevice { if (state!=MGMSIPStartedState) return NO; @@ -958,6 +963,7 @@ static OSStatus MGMAudioDevicesChanged(AudioHardwarePropertyID propertyID, void - (NSArray *)audioDevices { return audioDevices; } +#endif - (void)receivedNewCall:(MGMSIPCall *)theCall { if (delegate!=nil && [delegate respondsToSelector:@selector(receivedNewCall:)]) [delegate receivedNewCall:theCall]; diff --git a/Classes/VoiceBase/SIP/MGMSIPAccount.h b/Classes/VoiceBase/SIP/MGMSIPAccount.h index 82e7664..8692736 100644 --- a/Classes/VoiceBase/SIP/MGMSIPAccount.h +++ b/Classes/VoiceBase/SIP/MGMSIPAccount.h @@ -7,7 +7,11 @@ // #if MGMSIPENABLED +#if TARGET_OS_IPHONE +#import +#else #import +#endif extern NSString * const MGMSIPAccountFullName; extern NSString * const MGMSIPAccountUserName; diff --git a/Classes/VoiceBase/SIP/MGMSIPCall.h b/Classes/VoiceBase/SIP/MGMSIPCall.h index 6c9acb2..a6b20a1 100644 --- a/Classes/VoiceBase/SIP/MGMSIPCall.h +++ b/Classes/VoiceBase/SIP/MGMSIPCall.h @@ -7,7 +7,11 @@ // #if MGMSIPENABLED +#if TARGET_OS_IPHONE +#import +#else #import +#endif #import @class MGMSIPCall, MGMSIPAccount, MGMSIPURL; diff --git a/Classes/VoiceBase/SIP/MGMSIPURL.h b/Classes/VoiceBase/SIP/MGMSIPURL.h index 0484dbc..3ccfade 100644 --- a/Classes/VoiceBase/SIP/MGMSIPURL.h +++ b/Classes/VoiceBase/SIP/MGMSIPURL.h @@ -7,7 +7,11 @@ // #if MGMSIPENABLED +#if TARGET_OS_IPHONE +#import +#else #import +#endif @interface MGMSIPURL : NSObject { NSString *fullName; diff --git a/Classes/VoiceBase/VoiceBase.h b/Classes/VoiceBase/VoiceBase.h index b786e09..86da191 100644 --- a/Classes/VoiceBase/VoiceBase.h +++ b/Classes/VoiceBase/VoiceBase.h @@ -7,6 +7,24 @@ * */ +#if TARGET_OS_IPHONE +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +//MGMSIP Stuff +#import +#import +#import +#import +#else #import #import #import @@ -14,10 +32,13 @@ #import #import #import +#import #import +#import //MGMSIP Stuff #import #import #import -#import \ No newline at end of file +#import +#endif \ No newline at end of file diff --git a/Classes/VoiceBase/VoiceBaseTouch_Prefix.pch b/Classes/VoiceBase/VoiceBaseTouch_Prefix.pch new file mode 100644 index 0000000..41e0d72 --- /dev/null +++ b/Classes/VoiceBase/VoiceBaseTouch_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'MGMUsers' target in the 'MGMUsers' project. +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Classes/VoiceBase/XML/MGMXML.h b/Classes/VoiceBase/XML/MGMXML.h new file mode 100644 index 0000000..5fe203f --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXML.h @@ -0,0 +1,15 @@ +/* + * MGMXML.h + * MGMXML + * + * Created by Mr. Gecko on 9/22/10. + * Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ + * + */ + +#import +#import +#import +#import +#import +#import \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLAddons.h b/Classes/VoiceBase/XML/MGMXMLAddons.h new file mode 100644 index 0000000..3a24a3a --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLAddons.h @@ -0,0 +1,25 @@ +// +// MGMXMLAddons.h +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import +#import + +@interface NSValue (MGMXMLAddons) ++ (id)valueWithXMLError:(xmlErrorPtr)error; +- (xmlErrorPtr)xmlErrorValue; +@end + +@interface NSString (MGMXMLAddons) ++ (NSString *)stringWithXMLString:(const xmlChar *)xmlString; +- (const xmlChar *)xmlString; +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLAddons.m b/Classes/VoiceBase/XML/MGMXMLAddons.m new file mode 100644 index 0000000..367ab6a --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLAddons.m @@ -0,0 +1,29 @@ +// +// MGMXMLAddons.m +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMXMLAddons.h" + +@implementation NSValue (MGMXMLAddons) ++ (id)valueWithXMLError:(xmlErrorPtr)error { + return [NSValue valueWithBytes:error objCType:@encode(xmlErrorPtr)]; +} +- (xmlErrorPtr)xmlErrorValue { + xmlErrorPtr error; + [self getValue:&error]; + return error; +} +@end + +@implementation NSString (MGMXMLAddons) ++ (NSString *)stringWithXMLString:(const xmlChar *)xmlString { + return [[[NSString alloc] initWithBytes:(const char *)xmlString length:strlen((const char *)xmlString) encoding:NSUTF8StringEncoding] autorelease]; +} +- (const xmlChar *)xmlString { + return (const xmlChar *)[self UTF8String]; +} +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLDTD.h b/Classes/VoiceBase/XML/MGMXMLDTD.h new file mode 100644 index 0000000..5f887ac --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLDTD.h @@ -0,0 +1,38 @@ +// +// MGMXMLDTD.h +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import + +@interface MGMXMLDTD : MGMXMLNode { + +} +//- (id)initWithContentsOfURL:(NSURL *)url options:(NSUInteger)mask error:(NSError **)error; +//- (id)initWithData:(NSData *)data options:(NSUInteger)mask error:(NSError **)error; //primitive +//- (void)setPublicID:(NSString *)publicID; //primitive +//- (NSString *)publicID; //primitive +//- (void)setSystemID:(NSString *)systemID; //primitive +//- (NSString *)systemID; //primitive + +//- (void)insertChild:(MGMXMLNode *)child atIndex:(NSUInteger)index; //primitive +//- (void)insertChildren:(NSArray *)children atIndex:(NSUInteger)index; +//- (void)removeChildAtIndex:(NSUInteger)index; //primitive +//- (void)setChildren:(NSArray *)children; //primitive +//- (void)addChild:(MGMXMLNode *)child; +//- (void)replaceChildAtIndex:(NSUInteger)index withNode:(MGMXMLNode *)node; + +//- (MGMXMLDTDNode *)entityDeclarationForName:(NSString *)name; //primitive +//- (MGMXMLDTDNode *)notationDeclarationForName:(NSString *)name; //primitive +//- (MGMXMLDTDNode *)elementDeclarationForName:(NSString *)name; //primitive +//- (MGMXMLDTDNode *)attributeDeclarationForName:(NSString *)name elementName:(NSString *)elementName; //primitive +//+ (MGMXMLDTDNode *)predefinedEntityDeclarationForName:(NSString *)name; +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLDTD.m b/Classes/VoiceBase/XML/MGMXMLDTD.m new file mode 100644 index 0000000..6035a8e --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLDTD.m @@ -0,0 +1,13 @@ +// +// MGMXMLDTD.m +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMXMLDTD.h" + +@implementation MGMXMLDTD + +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLDTDNode.h b/Classes/VoiceBase/XML/MGMXMLDTDNode.h new file mode 100644 index 0000000..bb2919a --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLDTDNode.h @@ -0,0 +1,29 @@ +// +// MGMXMLDTDNode.h +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import + +@interface MGMXMLDTDNode : MGMXMLNode { + +} +//- (id)initWithXMLString:(NSString *)string; //primitive +//- (void)setDTDKind:(MGMXMLDTDNodeKind)kind; //primitive +//- (MGMXMLDTDNodeKind)DTDKind; //primitive +//- (BOOL)isExternal; //primitive +//- (void)setPublicID:(NSString *)publicID; //primitive +//- (NSString *)publicID; //primitive +//- (void)setSystemID:(NSString *)systemID; //primitive +//- (NSString *)systemID; //primitive +//- (void)setNotationName:(NSString *)notationName; //primitive +//- (NSString *)notationName; //primitive +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLDTDNode.m b/Classes/VoiceBase/XML/MGMXMLDTDNode.m new file mode 100644 index 0000000..0f4a6c8 --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLDTDNode.m @@ -0,0 +1,13 @@ +// +// MGMXMLDTDNode.m +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMXMLDTDNode.h" + +@implementation MGMXMLDTDNode + +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLDocument.h b/Classes/VoiceBase/XML/MGMXMLDocument.h new file mode 100644 index 0000000..55ae918 --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLDocument.h @@ -0,0 +1,57 @@ +// +// MGMXMLDocument.h +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import + +#define MGMXMLDocPtr (xmlDocPtr)commonXML + +@interface MGMXMLDocument : MGMXMLNode { + +} +- (id)initWithXMLString:(NSString *)string options:(NSUInteger)mask error:(NSError **)error; +- (id)initWithContentsOfURL:(NSURL *)url options:(NSUInteger)mask error:(NSError **)error; +- (id)initWithData:(NSData *)data options:(NSUInteger)mask error:(NSError **)error; //primitive +//- (id)initWithRootElement:(MGMXMLElement *)element; + +//+ (Class)replacementClassForClass:(Class)cls; +//- (void)setCharacterEncoding:(NSString *)encoding; //primitive +//- (NSString *)characterEncoding; //primitive +//- (void)setVersion:(NSString *)version; //primitive +//- (NSString *)version; //primitive +//- (void)setStandalone:(BOOL)standalone; //primitive +//- (BOOL)isStandalone; //primitive +//- (void)setDocumentContentKind:(MGMXMLDocumentContentKind)kind; //primitive +//- (MGMXMLDocumentContentKind)documentContentKind; //primitive +//- (void)setMIMEType:(NSString *)MIMEType; //primitive +//- (NSString *)MIMEType; //primitive +//- (void)setDTD:(MGMXMLDTD *)documentTypeDeclaration; //primitive +//- (MGMXMLDTD *)DTD; //primitive +- (void)setRootElement:(MGMXMLNode *)root; +- (MGMXMLElement *)rootElement; //primitive + +//- (void)insertChild:(MGMXMLNode *)child atIndex:(NSUInteger)index; //primitive +//- (void)insertChildren:(NSArray *)children atIndex:(NSUInteger)index; +//- (void)removeChildAtIndex:(NSUInteger)index; //primitive +//- (void)setChildren:(NSArray *)children; //primitive +//- (void)addChild:(MGMXMLNode *)child; +//- (void)replaceChildAtIndex:(NSUInteger)index withNode:(MGMXMLNode *)node; + +- (NSData *)XMLData; +- (NSData *)XMLDataWithOptions:(NSUInteger)options; + +//- (id)objectByApplyingXSLT:(NSData *)xslt arguments:(NSDictionary *)arguments error:(NSError **)error; +//- (id)objectByApplyingXSLTString:(NSString *)xslt arguments:(NSDictionary *)arguments error:(NSError **)error; +//- (id)objectByApplyingXSLTAtURL:(NSURL *)xsltURL arguments:(NSDictionary *)argument error:(NSError **)error; + +//- (BOOL)validateAndReturnError:(NSError **)error; +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLDocument.m b/Classes/VoiceBase/XML/MGMXMLDocument.m new file mode 100644 index 0000000..73245db --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLDocument.m @@ -0,0 +1,68 @@ +// +// MGMXMLDocument.m +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMXMLDocument.h" +#import "MGMXMLElement.h" +#import +#import + +@implementation MGMXMLDocument +- (id)initWithXMLString:(NSString *)string options:(NSUInteger)mask error:(NSError **)error { + NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; + return [self initWithData:data options:mask error:error]; +} +- (id)initWithContentsOfURL:(NSURL *)url options:(NSUInteger)mask error:(NSError **)error { + NSData *data = [NSData dataWithContentsOfURL:url]; + return [self initWithData:data options:mask error:error]; +} +- (id)initWithData:(NSData *)data options:(NSUInteger)mask error:(NSError **)error { + if (self = [super init]) { + if (data==nil || [data length]<=0) { + if (error!=nil) *error = [NSError errorWithDomain:MGMXMLErrorDomain code:0 userInfo:[NSDictionary dictionaryWithObject:@"Data has no length." forKey:NSLocalizedDescriptionKey]]; + [self release]; + self = nil; + } else { + xmlKeepBlanksDefault(0); + + xmlDocPtr document = NULL; + if (mask & MGMXMLDocumentTidyHTML) { + document = htmlReadMemory([data bytes], [data length], NULL, NULL, XML_PARSE_RECOVER | HTML_PARSE_NONET); + } else { + document = xmlParseMemory([data bytes], [data length]); + } + if (document==NULL) { + if (error!=nil) *error = [NSError errorWithDomain:MGMXMLErrorDomain code:1 userInfo:[NSDictionary dictionaryWithObject:@"Unable to parse document." forKey:NSLocalizedDescriptionKey]]; + [self release]; + self = nil; + } else { + [self setTypeXMLPtr:(xmlTypPtr)document]; + } + } + } + return self; +} + +- (void)setRootElement:(MGMXMLNode *)root { + if ([root kind]==MGMXMLNamespaceKind) + return; + xmlDocSetRootElement(MGMXMLDocPtr, (xmlNodePtr)[root commonXML]); +} +- (MGMXMLElement *)rootElement { + xmlNodePtr element = xmlDocGetRootElement(MGMXMLDocPtr); + if (element!=NULL) + return [MGMXMLElement nodeWithTypeXMLPtr:(xmlTypPtr)element]; + return nil; +} + +- (NSData *)XMLData { + return [[self XMLStringWithOptions:0] dataUsingEncoding:NSUTF8StringEncoding]; +} +- (NSData *)XMLDataWithOptions:(NSUInteger)options { + return [[self XMLStringWithOptions:options] dataUsingEncoding:NSUTF8StringEncoding]; +} +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLElement.h b/Classes/VoiceBase/XML/MGMXMLElement.h new file mode 100644 index 0000000..702bc59 --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLElement.h @@ -0,0 +1,50 @@ +// +// MGMXMLElement.h +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import + +@interface MGMXMLElement : MGMXMLNode { + +} +//- (id)initWithName:(NSString *)name; +//- (id)initWithName:(NSString *)name URI:(NSString *)URI; //primitive +//- (id)initWithName:(NSString *)name stringValue:(NSString *)string; +- (id)initWithXMLString:(NSString *)string error:(NSError **)error; + +- (NSArray *)elementsForName:(NSString *)name; +- (NSArray *)elementsForLocalName:(NSString *)localName URI:(NSString *)URI; + +- (void)addAttribute:(MGMXMLNode *)attribute; //primitive +- (void)removeAttributeForName:(NSString *)name; //primitive +//- (void)setAttributes:(NSArray *)attributes; //primitive +//- (void)setAttributesAsDictionary:(NSDictionary *)attributes; +- (NSArray *)attributes; //primitive +- (MGMXMLNode *)attributeForName:(NSString *)name; +//- (MGMXMLNode *)attributeForLocalName:(NSString *)localName URI:(NSString *)URI; //primitive + +//- (void)addNamespace:(MGMXMLNode *)aNamespace; //primitive +//- (void)removeNamespaceForPrefix:(NSString *)name; //primitive +//- (void)setNamespaces:(NSArray *)namespaces; //primitive +//- (NSArray *)namespaces; //primitive +//- (MGMXMLNode *)namespaceForPrefix:(NSString *)name; +//- (MGMXMLNode *)resolveNamespaceForName:(NSString *)name; +- (NSString *)resolvePrefixForNamespaceURI:(NSString *)namespaceURI; + +//- (void)insertChild:(MGMXMLNode *)child atIndex:(NSUInteger)index; //primitive +//- (void)insertChildren:(NSArray *)children atIndex:(NSUInteger)index; +//- (void)removeChildAtIndex:(NSUInteger)index; //primitive +//- (void)setChildren:(NSArray *)children; //primitive +//- (void)addChild:(MGMXMLNode *)child; +//- (void)replaceChildAtIndex:(NSUInteger)index withNode:(MGMXMLNode *)node; +//- (void)normalizeAdjacentTextNodesPreservingCDATA:(BOOL)preserve; +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLElement.m b/Classes/VoiceBase/XML/MGMXMLElement.m new file mode 100644 index 0000000..c84ecfd --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLElement.m @@ -0,0 +1,127 @@ +// +// MGMXMLElement.m +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMXMLElement.h" +#import "MGMXMLDocument.h" +#import "MGMXMLAddons.h" + +@implementation MGMXMLElement +- (id)initWithXMLString:(NSString *)string error:(NSError **)error { + MGMXMLDocument *document = [[MGMXMLDocument alloc] initWithXMLString:string options:0 error:error]; + MGMXMLElement *element = nil; + if (document!=nil) { + element = [[document rootElement] retain]; + if (element!=nil) + [element detach]; + [document release]; + } + return element; +} + +- (NSArray *)elementsForName:(NSString *)name URI:(NSString *)URI resolvingNamespacePrefix:(BOOL)resolveNamespacePrefix { + NSMutableArray *elements = [NSMutableArray array]; + + if (resolveNamespacePrefix && URI!=nil) { + NSString *prefix = [self resolvePrefixForNamespaceURI:URI]; + if (prefix!=nil) + name = [NSString stringWithFormat:@"%@:%@", prefix, name]; + } + NSString *localName = [[self class] localNameForName:name]; + BOOL hasPrefix = ([[self class] prefixForName:localName]!=nil); + + xmlNodePtr child = MGMXMLNodePtr->children; + while (child!=NULL) { + if (child->type==MGMXMLElementKind) { + BOOL shouldAddElement = NO; + if (URI==nil) { + shouldAddElement = xmlStrEqual(child->name, [name xmlString]); + } else { + if (hasPrefix && xmlStrEqual(child->name, [name xmlString])) + shouldAddElement = YES; + else if (child->ns!=NULL) + shouldAddElement = xmlStrEqual(child->name, [(hasPrefix ? localName : name) xmlString]) && xmlStrEqual(child->ns->href, [URI xmlString]); + } + + if (shouldAddElement) + [elements addObject:[MGMXMLElement nodeWithTypeXMLPtr:(xmlTypPtr)child]]; + } + + child = child->next; + } + return elements; +} +- (NSArray *)elementsForName:(NSString *)name { + NSString *localName = [[self class] localNameForName:name]; + NSString *prefix = [[self class] prefixForName:name]; + NSString *uri = nil; + if (prefix!=nil) { + xmlNsPtr namespace = xmlSearchNs(MGMXMLNodePtr->doc, MGMXMLNodePtr, [prefix xmlString]); + if (namespace!=NULL) + uri = [NSString stringWithXMLString:namespace->href]; + } + + return [self elementsForName:localName URI:uri resolvingNamespacePrefix:NO]; +} +- (NSArray *)elementsForLocalName:(NSString *)localName URI:(NSString *)URI { + return [self elementsForName:localName URI:URI resolvingNamespacePrefix:YES]; +} + +- (void)addAttribute:(MGMXMLNode *)attribute { + if ([attribute kind]==MGMXMLAttributeKind && [attribute commonXML]->parent!=NULL) { + [self removeAttributeForName:[attribute name]]; + xmlAddChild(MGMXMLNodePtr, (xmlNodePtr)[attribute commonXML]); + } +} +- (void)removeAttributeForName:(NSString *)name { + xmlAttrPtr attribute = MGMXMLNodePtr->properties; + while (attribute!=NULL) { + if (xmlStrEqual(attribute->name, [name xmlString])) { + [[self class] detatchAttribute:attribute fromNode:MGMXMLNodePtr]; + + if(attribute->_private == NULL) + xmlFreeProp(attribute); + break; + } + attribute = attribute->next; + } +} +- (NSArray *)attributes { + NSMutableArray *attributes = [NSMutableArray array]; + xmlAttrPtr attribute = MGMXMLNodePtr->properties; + while (attribute!=NULL) { + [attributes addObject:[MGMXMLNode nodeWithTypeXMLPtr:(xmlTypPtr)attribute]]; + attribute = attribute->next; + } + return attributes; +} +- (MGMXMLNode *)attributeForName:(NSString *)name { + xmlAttrPtr attribute = MGMXMLNodePtr->properties; + while (attribute!=NULL) { + if (xmlStrEqual(attribute->name, [name xmlString])) + return [MGMXMLNode nodeWithTypeXMLPtr:(xmlTypPtr)attribute]; + attribute = attribute->next; + } + return nil; +} + +- (NSString *)resolvePrefixForNamespaceURI:(NSString *)namespaceURI { + xmlNodePtr child = MGMXMLNodePtr; + while (child!=NULL) { + xmlNsPtr namespace = child->nsDef; + while (namespace!=NULL) { + if (xmlStrEqual(namespace->href, [namespaceURI xmlString])) { + if (namespace->prefix!=NULL) + return [NSString stringWithXMLString:namespace->prefix]; + } + namespace = namespace->next; + } + } + + return nil; +} +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLNode.h b/Classes/VoiceBase/XML/MGMXMLNode.h new file mode 100644 index 0000000..2425465 --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLNode.h @@ -0,0 +1,146 @@ +// +// MGMXMLNode.h +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import +#import +#import +#import +#import +#import +#import + +#define MGMXMLNodePtr ((xmlNodePtr)commonXML) +#define MGMXMLAttrPtr ((xmlAttrPtr)commonXML) +#define MGMXMLDTDPtr ((xmlDtdPtr)commonXML) + +@class MGMXMLDocument, MGMXMLElement; + +extern NSString * const MGMXMLErrorDomain; + +typedef enum { + MGMXMLInvalidKind = 0, + MGMXMLDocumentKind = XML_DOCUMENT_NODE, + MGMXMLElementKind = XML_ELEMENT_NODE, + MGMXMLAttributeKind = XML_ATTRIBUTE_NODE, + MGMXMLNamespaceKind = XML_NAMESPACE_DECL, + MGMXMLProcessingInstructionKind = XML_PI_NODE, + MGMXMLCommentKind = XML_COMMENT_NODE, + MGMXMLTextKind = XML_TEXT_NODE, + MGMXMLDTDKind = XML_DTD_NODE, + MGMXMLEntityDeclarationKind = XML_ENTITY_DECL, + MGMXMLAttributeDeclarationKind = XML_ATTRIBUTE_DECL, + MGMXMLElementDeclarationKind = XML_ELEMENT_DECL, + MGMXMLNotationDeclarationKind = XML_NOTATION_NODE +} MGMXMLNodeKind; + +//The common XML structure that has type. +typedef struct _xmlTyp xmlTyp; +typedef xmlTyp *xmlTypPtr; +struct _xmlTyp { + void *trash; + xmlElementType type; +}; + +//The common XML structure. +typedef struct _xmlCom xmlCom; +typedef xmlCom *xmlComPtr; +struct _xmlCom { + void *_private; + xmlElementType type; + char *name; + struct _xmlNode *children; + struct _xmlNode *last; + struct _xmlNode *parent; + struct _xmlNode *next; + struct _xmlNode *prev; + struct _xmlDoc *doc; +}; + +@interface MGMXMLNode : NSObject { + xmlComPtr commonXML; + xmlNsPtr namespaceXML; + xmlNodePtr parentNode; + MGMXMLNodeKind type; +} ++ (id)nodeWithTypeXMLPtr:(xmlTypPtr)theXMLPtr; +- (id)initWithTypeXMLPtr:(xmlTypPtr)theXMLPtr; ++ (void)stripDocumentFromAttribute:(xmlAttrPtr)theAttribute; ++ (void)stripDocumentFromNode:(xmlNodePtr)theNode; ++ (void)removeAttributesFromNode:(xmlNodePtr)theNode; ++ (void)removeNamespacesFromNode:(xmlNodePtr)theNode; ++ (void)removeChildrenFromNode:(xmlNodePtr)theNode; ++ (void)freeNode:(xmlNodePtr)theNode; +- (void)setTypeXMLPtr:(xmlTypPtr)theXMLPtr; ++ (BOOL)isNode:(MGMXMLNodeKind)theType; +- (BOOL)isNode; ++ (NSError *)lastError; +- (NSError *)lastError; +//- (id)initWithKind:(MGMXMLNodeKind)kind; +//- (id)initWithKind:(MGMXMLNodeKind)kind options:(NSUInteger)options; //primitive +//+ (id)document; +//+ (id)documentWithRootElement:(MGMXMLElement *)element; +//+ (id)elementWithName:(NSString *)name; +//+ (id)elementWithName:(NSString *)name URI:(NSString *)URI; +//+ (id)elementWithName:(NSString *)name stringValue:(NSString *)string; +//+ (id)elementWithName:(NSString *)name children:(NSArray *)children attributes:(NSArray *)attributes; +//+ (id)attributeWithName:(NSString *)name stringValue:(NSString *)stringValue; +//+ (id)attributeWithName:(NSString *)name URI:(NSString *)URI stringValue:(NSString *)stringValue; +//+ (id)namespaceWithName:(NSString *)name stringValue:(NSString *)stringValue; +//+ (id)processingInstructionWithName:(NSString *)name stringValue:(NSString *)stringValue; +//+ (id)commentWithStringValue:(NSString *)stringValue; +//+ (id)textWithStringValue:(NSString *)stringValue; +//+ (id)DTDNodeWithXMLString:(NSString *)string; + +- (MGMXMLNodeKind)kind; +- (xmlComPtr)commonXML; +- (xmlNsPtr)nameSpaceXML; +- (void)setName:(NSString *)name; +- (NSString *)name; +//- (void)setObjectValue:(id)value; //primitive +//- (id)objectValue; //primitive +//- (void)setStringValue:(NSString *)string; +//- (void)setStringValue:(NSString *)string resolvingEntities:(BOOL)resolve; //primitive +- (NSString *)stringValue; //primitive + +//- (NSUInteger)index; //primitive +//- (NSUInteger)level; +- (MGMXMLDocument *)rootDocument; +- (MGMXMLNode *)parent; //primitive +//- (NSUInteger)childCount; //primitive +//- (NSArray *)children; //primitive +- (MGMXMLNode *)childAtIndex:(NSUInteger)index; //primitive +//- (MGMXMLNode *)previousSibling; +//- (MGMXMLNode *)nextSibling; +//- (MGMXMLNode *)previousNode; +//- (MGMXMLNode *)nextNode; ++ (void)detatchAttribute:(xmlAttrPtr)theAttribute fromNode:(xmlNodePtr)theNode; +- (void)detach; //primitive +//- (NSString *)XPath; + +//- (NSString *)localName; //primitive +//- (NSString *)prefix; //primitive +//- (void)setURI:(NSString *)URI; //primitive +//- (NSString *)URI; //primitive ++ (NSString *)localNameForName:(NSString *)name; ++ (NSString *)prefixForName:(NSString *)name; +//+ (MGMXMLNode *)predefinedNamespaceForPrefix:(NSString *)name; + +- (NSString *)description; +- (NSString *)XMLString; +- (NSString *)XMLStringWithOptions:(NSUInteger)options; +//- (NSString *)canonicalXMLStringPreservingComments:(BOOL)comments; + +- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; +//- (NSArray *)objectsForXQuery:(NSString *)xquery constants:(NSDictionary *)constants error:(NSError **)error; +//- (NSArray *)objectsForXQuery:(NSString *)xquery error:(NSError **)error; +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLNode.m b/Classes/VoiceBase/XML/MGMXMLNode.m new file mode 100644 index 0000000..be35558 --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLNode.m @@ -0,0 +1,488 @@ +// +// MGMXMLNode.m +// MGMXML +// +// Created by Mr. Gecko on 9/22/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import "MGMXMLNode.h" +#import "MGMXMLAddons.h" +#import "MGMXMLDocument.h" +#import "MGMXMLElement.h" +#import "MGMXMLNodeOptions.h" + +NSString * const MGMXMLErrorDomain = @"MGMXMLErrorDomain"; +NSString * const MGMXMLLastError = @"MGMXMLLastError"; + +static NSMutableDictionary *MGMXMLInfo = nil; + +static void MGMXMLErrorHandler(void *userData, xmlErrorPtr error) { + NSAutoreleasePool *pool = [NSAutoreleasePool new];; + if (error==NULL) { + [MGMXMLInfo removeObjectForKey:MGMXMLLastError]; + } else { + [MGMXMLInfo setObject:[NSValue valueWithXMLError:error] forKey:MGMXMLLastError]; + } + [pool drain]; +} + +@implementation MGMXMLNode ++ (void)initialize { + if (MGMXMLInfo==nil) { + MGMXMLInfo = [NSMutableDictionary new]; + + initGenericErrorDefaultFunc(NULL); + xmlSetStructuredErrorFunc(NULL, MGMXMLErrorHandler); + xmlKeepBlanksDefault(0); + } +} + +- (id)init { + if (self = [super init]) { + commonXML = NULL; + namespaceXML = NULL; + parentNode = NULL; + type = MGMXMLInvalidKind; + } + return self; +} ++ (id)nodeWithTypeXMLPtr:(xmlTypPtr)theXMLPtr { + return [[[self alloc] initWithTypeXMLPtr:theXMLPtr] autorelease]; +} +- (id)initWithTypeXMLPtr:(xmlTypPtr)theXMLPtr { + if (self = [self init]) { + if (theXMLPtr->type==MGMXMLNamespaceKind) { + xmlNsPtr xmlPtr = (xmlNsPtr)theXMLPtr; + if (xmlPtr->_private!=NULL) { + [self release]; + self = nil; + return [(MGMXMLNode *)xmlPtr->_private retain]; + } + } else { + xmlComPtr comXML = (xmlComPtr)theXMLPtr; + if (comXML->_private!=NULL) { + [self release]; + self = nil; + return [(MGMXMLNode *)comXML->_private retain]; + } + } + [self setTypeXMLPtr:theXMLPtr]; + } + return self; +} +- (void)clearParent { + parentNode = NULL; +} +- (void)freeXML { + if (namespaceXML!=NULL) { + namespaceXML->_private = NULL; + + if (parentNode==NULL) + xmlFreeNs(namespaceXML); + namespaceXML = NULL; + parentNode = NULL; + } + if (commonXML!=NULL) { + commonXML->_private = NULL; + + if (commonXML->parent==NULL) { + if (type==MGMXMLDocumentKind) { + xmlNodePtr child = commonXML->children; + while (child!=NULL) { + xmlNodePtr nextChild = child->next; + if (child->type == XML_ELEMENT_NODE) { + if (child->prev!=NULL) + child->prev->next = child->next; + if (child->next!=NULL) + child->next->prev = child->prev; + if (commonXML->children==child) + commonXML->children = child->next; + if (commonXML->last==child) + commonXML->last = child->prev; + [[self class] freeNode:child]; + } + child = nextChild; + } + xmlFreeDoc(MGMXMLDocPtr); + } else if (type==MGMXMLAttributeKind) { + xmlFreeProp(MGMXMLAttrPtr); + } else if (type==MGMXMLDTDKind) { + xmlFreeDtd(MGMXMLDTDPtr); + } else { + [[self class] freeNode:MGMXMLNodePtr]; + } + } + commonXML = NULL; + } + type = MGMXMLInvalidKind; +} +- (void)dealloc { + [self freeXML]; + [super dealloc]; +} ++ (void)stripDocumentFromAttribute:(xmlAttrPtr)theAttribute { + xmlNodePtr child = theAttribute->children; + while (child!=NULL) { + child->doc = NULL; + child = child->next; + } + theAttribute->doc = NULL; +} ++ (void)stripDocumentFromNode:(xmlNodePtr)theNode { + xmlAttrPtr attribute = theNode->properties; + while (attribute!=NULL) { + [self stripDocumentFromAttribute:attribute]; + attribute = attribute->next; + } + + xmlNodePtr child = theNode->children; + while (child!=NULL) { + [self stripDocumentFromNode:child]; + child = child->next; + } + theNode->doc = NULL; +} ++ (void)removeAttributesFromNode:(xmlNodePtr)theNode { + xmlAttrPtr attribute = theNode->properties; + while (attribute!=NULL) { + xmlAttrPtr nextAttribute = attribute->next; + + if (attribute->_private==NULL) { + xmlFreeProp(attribute); + } else { + attribute->parent = NULL; + attribute->prev = NULL; + attribute->next = NULL; + if (attribute->doc!=NULL) [self stripDocumentFromAttribute:attribute]; + } + attribute = nextAttribute; + } + theNode->properties = NULL; +} ++ (void)removeNamespacesFromNode:(xmlNodePtr)theNode { + xmlNsPtr namespace = theNode->nsDef; + while (namespace!=NULL){ + xmlNsPtr nextNamespace = namespace->next; + if (namespace->_private!=NULL) { + [(MGMXMLNode *)namespace->_private clearParent]; + namespace->next = NULL; + } else { + xmlFreeNs(namespace); + } + namespace = nextNamespace; + } + theNode->nsDef = NULL; + theNode->ns = NULL; +} ++ (void)removeChildrenFromNode:(xmlNodePtr)theNode { + xmlNodePtr child = theNode->children; + while (child!=NULL) { + xmlNodePtr nextChild = child->next; + [self freeNode:child]; + child = nextChild; + } + theNode->children = NULL; + theNode->last = NULL; +} ++ (void)freeNode:(xmlNodePtr)theNode { + if (![[self class] isNode:theNode->type]) { + NSLog(@"Cannot free node as it is the wrong type %d.", theNode->type); + } else { + if (theNode->_private==NULL) { + [self removeAttributesFromNode:theNode]; + [self removeNamespacesFromNode:theNode]; + [self removeChildrenFromNode:theNode]; + + xmlFreeNode(theNode); + } else { + theNode->parent = NULL; + theNode->prev = NULL; + theNode->next = NULL; + if (theNode->doc!=NULL) [self stripDocumentFromNode:theNode]; + } + } +} + +- (void)setTypeXMLPtr:(xmlTypPtr)theXMLPtr { + [self freeXML]; + type = theXMLPtr->type; + if (type==XML_HTML_DOCUMENT_NODE) + type = MGMXMLDocumentKind; + if (type==MGMXMLNamespaceKind) { + namespaceXML = (xmlNsPtr)theXMLPtr; + namespaceXML->_private = self; + } else { + commonXML = (xmlComPtr)theXMLPtr; + commonXML->_private = self; + if (type==MGMXMLDocumentKind && [self isMemberOfClass:[MGMXMLNode class]]) + self->isa = [MGMXMLDocument class]; + else if (type==MGMXMLElementKind && [self isMemberOfClass:[MGMXMLNode class]]) + self->isa = [MGMXMLElement class]; + } +} ++ (BOOL)isNode:(MGMXMLNodeKind)theType { + switch (theType) { + case MGMXMLElementKind: + case MGMXMLProcessingInstructionKind: + case MGMXMLCommentKind: + case MGMXMLTextKind: + case XML_CDATA_SECTION_NODE: + return YES; + break; + default: + break; + } + return NO; +} +- (BOOL)isNode { + return [[self class] isNode:type]; +} ++ (NSError *)lastError { + if ([MGMXMLInfo objectForKey:MGMXMLLastError]!=nil) { + xmlErrorPtr lastError = [[MGMXMLInfo objectForKey:MGMXMLLastError] xmlErrorValue]; + NSString *description = [[NSString stringWithUTF8String:lastError->message] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + return [NSError errorWithDomain:MGMXMLErrorDomain code:lastError->code userInfo:[NSDictionary dictionaryWithObject:description forKey:NSLocalizedDescriptionKey]]; + } + return nil; +} +- (NSError *)lastError { + return [[self class] lastError]; +} + +- (MGMXMLNodeKind)kind { + return type; +} +- (xmlComPtr)commonXML { + return commonXML; +} +- (xmlNsPtr)nameSpaceXML { + return namespaceXML; +} +- (void)setName:(NSString *)name { + if (type==MGMXMLNamespaceKind) { + if (namespaceXML->prefix!=NULL) + xmlFree((xmlChar *)namespaceXML->prefix); + namespaceXML->prefix = xmlStrdup([name xmlString]); + } else { + xmlNodeSetName(MGMXMLNodePtr, [name xmlString]); + } +} +- (NSString *)name { + if (type==MGMXMLNamespaceKind) { + if (namespaceXML->prefix!=NULL) + return [NSString stringWithXMLString:namespaceXML->prefix]; + } else { + if (MGMXMLNodePtr->name!=NULL) + return [NSString stringWithXMLString:(xmlChar *)MGMXMLNodePtr->name]; + } + return nil; +} +- (NSString *)stringValue { + if (type==MGMXMLNamespaceKind) { + return [NSString stringWithXMLString:namespaceXML->href]; + } else if (type==MGMXMLAttributeKind) { + if (MGMXMLAttrPtr->children!=NULL) + return [NSString stringWithXMLString:MGMXMLAttrPtr->children->content]; + } else if ([self isNode]) { + xmlChar *contentString = xmlNodeGetContent(MGMXMLNodePtr); + NSString *stringValue = [NSString stringWithXMLString:contentString]; + xmlFree(contentString); + return stringValue; + } + return nil; +} + +- (MGMXMLDocument *)rootDocument { + if (MGMXMLNodePtr->doc!=NULL) + return [MGMXMLDocument nodeWithTypeXMLPtr:(xmlTypPtr)MGMXMLNodePtr->doc]; + return nil; +} +- (MGMXMLNode *)parent { + return [MGMXMLNode nodeWithTypeXMLPtr:(xmlTypPtr)MGMXMLNodePtr->parent]; +} +- (MGMXMLNode *)childAtIndex:(NSUInteger)index { + if (type==MGMXMLNamespaceKind) + return nil; + + NSUInteger i = 0; + xmlNodePtr child = commonXML->children; + while (child!=NULL) { + if (i==index) + return [MGMXMLNode nodeWithTypeXMLPtr:(xmlTypPtr)child]; + i++; + child = child->next; + } + return nil; +} ++ (void)detatchAttribute:(xmlAttrPtr)theAttribute fromNode:(xmlNodePtr)theNode { + if (theAttribute->prev==NULL && theAttribute->next==NULL) { + theNode->properties = NULL; + } else if (theAttribute->prev==NULL) { + theNode->properties = theAttribute->next; + theAttribute->next->prev = NULL; + } else if (theAttribute->next==NULL) { + theAttribute->prev->next = NULL; + } else { + theAttribute->prev->next = theAttribute->next; + theAttribute->next->prev = theAttribute->prev; + } + theAttribute->parent = NULL; + theAttribute->prev = NULL; + theAttribute->next = NULL; + if (theAttribute->doc!=NULL) [[self class] stripDocumentFromAttribute:theAttribute]; +} +- (void)detach { + if (type==MGMXMLNamespaceKind) { + if (parentNode!=NULL) { + xmlNsPtr previousNamespace = NULL; + xmlNsPtr currentNamespace = parentNode->nsDef; + while (currentNamespace!=NULL) { + if (currentNamespace==namespaceXML) { + if (previousNamespace!=NULL) + previousNamespace->next = currentNamespace->next; + else + parentNode->nsDef = currentNamespace->next; + break; + } + previousNamespace = currentNamespace; + currentNamespace = currentNamespace->next; + } + namespaceXML->next = NULL; + if (parentNode->ns==namespaceXML) + parentNode->ns = NULL; + parentNode = NULL; + } + return; + } + + if (commonXML->parent==NULL) return; + + if (type==MGMXMLAttributeKind) { + [[self class] detatchAttribute:MGMXMLAttrPtr fromNode:MGMXMLAttrPtr->parent]; + } else if ([self isNode]) { + if (commonXML->prev==NULL && commonXML->next==NULL) { + commonXML->parent->children = NULL; + commonXML->parent->last = NULL; + } else if (commonXML->prev==NULL) { + commonXML->parent->children = commonXML->next; + commonXML->next->prev = NULL; + } else if (commonXML->next==NULL) { + commonXML->parent->last = commonXML->prev; + commonXML->prev->next = NULL; + } else { + commonXML->prev->next = commonXML->next; + commonXML->next->prev = commonXML->prev; + } + commonXML->parent = NULL; + commonXML->prev = NULL; + commonXML->next = NULL; + if (commonXML->doc!=NULL) [[self class] stripDocumentFromNode:MGMXMLNodePtr]; + } +} + ++ (NSString *)localNameForName:(NSString *)name { + if (name!=nil && [name length]>0) { + NSRange range = [name rangeOfString:@":"]; + if (range.location!=NSNotFound) + return [name substringFromIndex:range.location+range.length]; + else + return name; + } + return nil; +} ++ (NSString *)prefixForName:(NSString *)name { + if (name!=nil && [name length]>0) { + NSRange range = [name rangeOfString:@":"]; + if (range.location!=NSNotFound) + return [name substringToIndex:range.location]; + } + return nil; +} + +- (NSString *)description { + return [self XMLString]; +} +- (NSString *)XMLString { + return [self XMLStringWithOptions:0]; +} +- (NSString *)XMLStringWithOptions:(NSUInteger)options { + if(options & MGMXMLNodeCompactEmptyElement) + xmlSaveNoEmptyTags = 0; + else + xmlSaveNoEmptyTags = 1; + + int format = 0; + if (options & MGMXMLNodePrettyPrint) { + format = 1; + xmlIndentTreeOutput = 1; + } + + xmlBufferPtr bufferPtr = xmlBufferCreate(); + if (type==MGMXMLNamespaceKind) + xmlNodeDump(bufferPtr, NULL, MGMXMLNodePtr, 0, format); + else + xmlNodeDump(bufferPtr, commonXML->doc, MGMXMLNodePtr, 0, format); + + NSString *result = [NSString stringWithXMLString:bufferPtr->content]; + if (type!=MGMXMLTextKind) + result = [result stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + xmlBufferFree(bufferPtr); + return result; +} + +- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error { + BOOL shouldRemoveDocument = NO; + xmlDocPtr document; + if ([self isNode]) { + document = MGMXMLNodePtr->doc; + if (document==NULL) { + shouldRemoveDocument = YES; + document = xmlNewDoc(NULL); + xmlDocSetRootElement(document, MGMXMLNodePtr); + } + } else if (type==MGMXMLDocumentKind) { + document = MGMXMLDocPtr; + } else { + return nil; + } + + xmlXPathContextPtr xPathContext = xmlXPathNewContext(document); + xPathContext->node = MGMXMLNodePtr; + + xmlNodePtr rootNode = document->children; + if (rootNode!=NULL) { + xmlNsPtr namespace = rootNode->nsDef; + while (namespace!=NULL) { + xmlXPathRegisterNs(xPathContext, namespace->prefix, namespace->href); + namespace = namespace->next; + } + } + + xmlXPathObjectPtr xPathObject = xmlXPathEvalExpression([xpath xmlString], xPathContext); + + NSMutableArray *nodes = [NSMutableArray array]; + + if (xPathObject==NULL) { + if (error!=nil) *error = [self lastError]; + nodes = nil; + } else { + int count = xmlXPathNodeSetGetLength(xPathObject->nodesetval); + if (count!=0) { + for (int i=0; inodesetval->nodeTab[i]]]; + } + } + + if (xPathObject) xmlXPathFreeObject(xPathObject); + if (xPathContext) xmlXPathFreeContext(xPathContext); + + if (shouldRemoveDocument) { + xmlUnlinkNode(MGMXMLNodePtr); + xmlFreeDoc(document); + [[self class] stripDocumentFromNode:MGMXMLNodePtr]; + } + + return nodes; +} +@end \ No newline at end of file diff --git a/Classes/VoiceBase/XML/MGMXMLNodeOptions.h b/Classes/VoiceBase/XML/MGMXMLNodeOptions.h new file mode 100644 index 0000000..e12910a --- /dev/null +++ b/Classes/VoiceBase/XML/MGMXMLNodeOptions.h @@ -0,0 +1,53 @@ +/* + * MGMXMLNodeOptions.h + * MGMXML + * + * Created by Mr. Gecko on 9/22/10. + * Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ + * + */ + +enum { + MGMXMLNodeOptionsNone = 0, + + MGMXMLNodeIsCDATA = 1 << 0, + MGMXMLNodeExpandEmptyElement = 1 << 1, + MGMXMLNodeCompactEmptyElement = 1 << 2, + MGMXMLNodeUseSingleQuotes = 1 << 3, + MGMXMLNodeUseDoubleQuotes = 1 << 4, + + MGMXMLDocumentTidyHTML = 1 << 9, + MGMXMLDocumentTidyXML = 1 << 10, + + MGMXMLDocumentValidate = 1 << 13, + + MGMXMLDocumentXInclude = 1 << 16, + + MGMXMLNodePrettyPrint = 1 << 17, + MGMXMLDocumentIncludeContentTypeDeclaration = 1 << 18, + + MGMXMLNodePreserveNamespaceOrder = 1 << 20, + MGMXMLNodePreserveAttributeOrder = 1 << 21, + MGMXMLNodePreserveEntities = 1 << 22, + MGMXMLNodePreservePrefixes = 1 << 23, + MGMXMLNodePreserveCDATA = 1 << 24, + MGMXMLNodePreserveWhitespace = 1 << 25, + MGMXMLNodePreserveDTD = 1 << 26, + MGMXMLNodePreserveCharacterReferences = 1 << 27, + MGMXMLNodePreserveEmptyElements = + (MGMXMLNodeExpandEmptyElement | MGMXMLNodeCompactEmptyElement), + MGMXMLNodePreserveQuotes = + (MGMXMLNodeUseSingleQuotes | MGMXMLNodeUseDoubleQuotes), + MGMXMLNodePreserveAll = ( + MGMXMLNodePreserveNamespaceOrder | + MGMXMLNodePreserveAttributeOrder | + MGMXMLNodePreserveEntities | + MGMXMLNodePreservePrefixes | + MGMXMLNodePreserveCDATA | + MGMXMLNodePreserveEmptyElements | + MGMXMLNodePreserveQuotes | + MGMXMLNodePreserveWhitespace | + MGMXMLNodePreserveDTD | + MGMXMLNodePreserveCharacterReferences | + 0xFFF00000) +}; \ No newline at end of file diff --git a/Classes/VoiceMac/Preferences/MGMSIPPane.m b/Classes/VoiceMac/Preferences/MGMSIPPane.m index b7e8aa0..8ca50a3 100644 --- a/Classes/VoiceMac/Preferences/MGMSIPPane.m +++ b/Classes/VoiceMac/Preferences/MGMSIPPane.m @@ -61,7 +61,7 @@ - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; if (shouldRestart) { - NSAlert *alert = [[NSAlert new] autorelease]; + /*NSAlert *alert = [[NSAlert new] autorelease]; [alert setMessageText:@"Restart Required"]; [alert setInformativeText:@"You have changed some settings that requires you to restart VoiceMac for them to take place, do you want to restart VoiceMac now?"]; [alert addButtonWithTitle:@"Yes"]; @@ -73,7 +73,7 @@ NSString *relaunchPath = [[[NSBundle bundleWithIdentifier:@"org.andymatuschak.Sparkle"] resourcePath] stringByAppendingPathComponent:@"relaunch"]; [NSTask launchedTaskWithLaunchPath:relaunchPath arguments:[NSArray arrayWithObjects:pathToRelaunch, [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]], nil]]; [[NSApplication sharedApplication] terminate:self]; - } + }*/ [[MGMSIP sharedSIP] restart]; } if (mainView!=nil) diff --git a/Classes/VoiceMac/Preferences/MGMSoundsPane.h b/Classes/VoiceMac/Preferences/MGMSoundsPane.h index d50278b..927363a 100644 --- a/Classes/VoiceMac/Preferences/MGMSoundsPane.h +++ b/Classes/VoiceMac/Preferences/MGMSoundsPane.h @@ -9,7 +9,7 @@ #import #import -@class MGMThemeManager, WebView; +@class MGMSound, MGMThemeManager, WebView; @interface MGMSoundsPane : MGMPreferencesPane { MGMThemeManager *themeManager; @@ -37,7 +37,7 @@ IBOutlet NSPopUpButton *SIPSound5PopUp; IBOutlet NSButton *SIPSound5AuthorButton; NSMutableDictionary *sounds; - NSSound *soundPlayer; + MGMSound *soundPlayer; IBOutlet NSWindow *browserWindow; IBOutlet WebView *browser; diff --git a/Classes/VoiceMac/Preferences/MGMSoundsPane.m b/Classes/VoiceMac/Preferences/MGMSoundsPane.m index 25bbab5..1c8b6a6 100644 --- a/Classes/VoiceMac/Preferences/MGMSoundsPane.m +++ b/Classes/VoiceMac/Preferences/MGMSoundsPane.m @@ -204,12 +204,10 @@ NSString * const MGMNoAuthor = @"No Author Found"; } [self reload:soundName]; } -- (void)sound:(NSSound *)sound didFinishPlaying:(BOOL)finishedPlaying { - if (finishedPlaying) { - if (soundPlayer!=nil) { - [soundPlayer release]; - soundPlayer = nil; - } +- (void)soundDidFinishPlaying:(MGMSound *)theSound { + if (soundPlayer!=nil) { + [soundPlayer release]; + soundPlayer = nil; } } - (IBAction)stopSound:(id)sender { diff --git a/Classes/VoiceMac/SIP/MGMSIPUser.m b/Classes/VoiceMac/SIP/MGMSIPUser.m index 5176dbb..8635e61 100644 --- a/Classes/VoiceMac/SIP/MGMSIPUser.m +++ b/Classes/VoiceMac/SIP/MGMSIPUser.m @@ -63,21 +63,21 @@ NSString * const MGMSIPUserAreaCode = @"MGMVSIPUserAreaCode"; } - (void)dealloc { [super dealloc]; + if (calls!=nil) { + [calls removeAllObjects]; + [calls release]; + } + if (account!=nil) { + [account setDelegate:nil]; + [account logout]; + [account release]; + } if (contacts!=nil) { [contacts stop]; [contacts release]; } if (user!=nil) [user release]; - if (account!=nil) { - [account setDelegate:nil]; - [account logout]; - [account release]; - } - if (calls!=nil) { - [calls removeAllObjects]; - [calls release]; - } } - (void)registerSettings { diff --git a/Contributing.txt b/Contributing.txt index e14b69b..d42f966 100644 --- a/Contributing.txt +++ b/Contributing.txt @@ -1,5 +1,5 @@ Contributing to VoiceMac. -Contributing to MGMSIP is exactly the same as VoiceMac. However there may not be an about box. If you want to contribute to VoiceMac, here is what I will do: 1. Add your name (and email if provided) to the change describing what you changed. 2. Add your name (and email/website if provided) to the contributors section. +Contributing to MGMSIP and MGMXML is exactly the same as VoiceMac. However there may not be an about box. If you want to contribute to VoiceMac, here is what I will do: 1. Add your name (and email if provided) to the change describing what you changed. 2. Add your name (and email/website if provided) to the contributors section. Terms for adding: 1. The patch must not disrupt up the functionality of VoiceMac. 2. The patch must provide useful changes. diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMHTTPCookieStorage.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMHTTPCookieStorage.h index 6cebce3..7df873c 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMHTTPCookieStorage.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMHTTPCookieStorage.h @@ -6,7 +6,11 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif @interface MGMHTTPCookieStorage : NSObject { @private @@ -14,7 +18,9 @@ NSHTTPCookieAcceptPolicy policy; NSMutableArray *cookieJar; } +#if !TARGET_OS_IPHONE + (void)override; +#endif + (void)setCookieJarPath:(NSString *)thePath; + (MGMHTTPCookieStorage *)sharedHTTPCookieStorage; + (MGMHTTPCookieStorage *)sharedCookieStorageWithPath:(NSString *)thePath; diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMJSON.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMJSON.h index 82d3b42..e7d6bfe 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMJSON.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMJSON.h @@ -6,7 +6,11 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif @interface NSString (MGMJSON) - (id)parseJSON; diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychain.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychain.h index 3f40424..585cb3d 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychain.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychain.h @@ -6,11 +6,23 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif #import @class MGMKeychainItem; +#if TARGET_OS_IPHONE +typedef enum { + kSecGenericPasswordItemClass, + kSecInternetPasswordItemClass, + kSecCertificateItemClass +} SecItemClass; +#endif + @interface MGMKeychain : NSObject { } diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychainItem.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychainItem.h index bb4ad41..f7fbf03 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychainItem.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMKeychainItem.h @@ -6,22 +6,128 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif +#import #import + +#if TARGET_OS_IPHONE +typedef enum { + kSecCreationDateItemAttr, + kSecModDateItemAttr, + kSecDescriptionItemAttr, + kSecCommentItemAttr, + kSecCreatorItemAttr, + kSecTypeItemAttr, + kSecLabelItemAttr, + kSecInvisibleItemAttr, + kSecNegativeItemAttr, + kSecAccountItemAttr, + kSecServiceItemAttr, + kSecGenericItemAttr, + kSecSecurityDomainItemAttr, + kSecServerItemAttr, + kSecAuthenticationTypeItemAttr, + kSecPortItemAttr, + kSecProtocolItemAttr, + kSecCertificateType, + kSecCertificateEncoding +} SecItemAttributes; + +typedef enum { + kSecAuthenticationTypeNTLM, + kSecAuthenticationTypeMSN, + kSecAuthenticationTypeDPA, + kSecAuthenticationTypeRPA, + kSecAuthenticationTypeHTTPBasic, + kSecAuthenticationTypeHTTPDigest, + kSecAuthenticationTypeHTMLForm, + kSecAuthenticationTypeDefault +} SecAuthenticationType; + +typedef enum { + kSecProtocolTypeFTP, + kSecProtocolTypeFTPAccount, + kSecProtocolTypeHTTP, + kSecProtocolTypeIRC, + kSecProtocolTypeNNTP, + kSecProtocolTypePOP3, + kSecProtocolTypeSMTP, + kSecProtocolTypeSOCKS, + kSecProtocolTypeIMAP, + kSecProtocolTypeLDAP, + kSecProtocolTypeAppleTalk, + kSecProtocolTypeAFP, + kSecProtocolTypeTelnet, + kSecProtocolTypeSSH, + kSecProtocolTypeFTPS, + kSecProtocolTypeHTTPS, + kSecProtocolTypeHTTPProxy, + kSecProtocolTypeHTTPSProxy, + kSecProtocolTypeFTPProxy, + kSecProtocolTypeSMB, + kSecProtocolTypeRTSP, + kSecProtocolTypeRTSPProxy, + kSecProtocolTypeDAAP, + kSecProtocolTypeEPPC, + kSecProtocolTypeIPP, + kSecProtocolTypeNNTPS, + kSecProtocolTypeLDAPS, + kSecProtocolTypeTelnetS, + kSecProtocolTypeIMAPS, + kSecProtocolTypeIRCS, + kSecProtocolTypePOP3S +} SecProtocolType; + + +// From OS X cssmtype.h +typedef enum { + CSSM_CERT_UNKNOWN = 0x00, + CSSM_CERT_X_509v1 = 0x01, + CSSM_CERT_X_509v2 = 0x02, + CSSM_CERT_X_509v3 = 0x03 +} CSSM_CERT_TYPE; +typedef enum { + CSSM_CERT_ENCODING_UNKNOWN = 0x00, + CSSM_CERT_ENCODING_CUSTOM = 0x01, + CSSM_CERT_ENCODING_BER = 0x02, + CSSM_CERT_ENCODING_DER = 0x03 +} CSSM_CERT_ENCODING; +#endif + @interface MGMKeychainItem : NSObject { @private +#if TARGET_OS_IPHONE + NSMutableDictionary *keychainItem; + SecItemClass itemClass; +#else SecKeychainItemRef keychainItem; +#endif int error; } +#if TARGET_OS_IPHONE ++ (id)itemWithDictionary:(NSDictionary *)theKeychainItem itemClass:(SecItemClass)theClass; +- (id)initWithDictionary:(NSDictionary *)theKeychainItem itemClass:(SecItemClass)theClass; +- (NSDictionary *)keychainItem; +#else + (id)itemWithRef:(SecKeychainItemRef)theItem; - (id)initWithRef:(SecKeychainItemRef)theItem; - (SecKeychainItemRef)keychainItem; +#endif +#if TARGET_OS_IPHONE +- (NSString *)attributeKey:(SecItemAttributes)theAttribute; +#endif - (SecItemClass)kind; - (NSString *)kindString; - (BOOL)isInternetItem; - (BOOL)isGenericItem; +#if !TARGET_OS_IPHONE - (BOOL)isAppleShareItem; +#endif - (BOOL)isCertificate; - (int)error; - (NSData *)data; @@ -33,10 +139,10 @@ - (NSData *)attributeData:(int)theAttribute; - (void)setString:(NSString *)theString forAttribute:(int)theAttribute; - (NSString *)attributeString:(int)theAttribute; -- (void)setCreationDate:(NSCalendarDate *)theDate; -- (NSCalendarDate *)creationDate; -- (void)setModifiedDate:(NSCalendarDate *)theDate; -- (NSCalendarDate *)modifiedDate; +- (void)setCreationDate:(NSDate *)theDate; +- (NSDate *)creationDate; +- (void)setModifiedDate:(NSDate *)theDate; +- (NSDate *)modifiedDate; - (void)setDescription:(NSString *)theDescription; - (NSString *)description; - (void)setComment:(NSString *)theComment; @@ -51,8 +157,10 @@ - (BOOL)isVisible; - (void)setPasswordValid:(BOOL)isPasswordValid; - (BOOL)isPasswordValid; +#if !TARGET_OS_IPHONE - (void)setHasCustomIcon:(BOOL)hasCustomIcon; - (BOOL)hasCustomIcon; +#endif - (void)setAccount:(NSString *)theAccount; - (NSString *)account; - (void)setService:(NSString *)theService; @@ -65,15 +173,17 @@ - (NSString *)server; - (void)setAuthenticationType:(SecAuthenticationType)theAuthenticationType; - (SecAuthenticationType)authenticationType; -- (NSString*)authenticationTypeString; +- (NSString *)authenticationTypeString; - (void)setPort:(UInt16)thePort; - (UInt16)port; +#if !TARGET_OS_IPHONE - (void)setVolume:(NSString *)theVolume; - (NSString *)volume; - (void)setAddress:(NSString *)theAddress; - (NSString *)address; - (void)setSignature:(SecAFPServerSignature *)theSignature; - (SecAFPServerSignature *)signature; +#endif - (void)setProtocol:(SecProtocolType)theProtocol; - (SecProtocolType)protocol; - (NSString *)protocolString; @@ -81,13 +191,15 @@ - (CSSM_CERT_TYPE)certificateType; - (void)setCertificateEncoding:(CSSM_CERT_ENCODING)theCertificateEncoding; - (CSSM_CERT_ENCODING)certificateEncoding; +#if !TARGET_OS_IPHONE - (void)setCRLType:(CSSM_CRL_TYPE)theCRLType; - (CSSM_CRL_TYPE)CRLType; -- (NSString*)CRLTypeString; +- (NSString *)CRLTypeString; - (void)setCRLEncoding:(CSSM_CRL_ENCODING)theCRLEncoding; - (CSSM_CRL_ENCODING)CRLEncoding; -- (NSString*)CRLEncodingString; +- (NSString *)CRLEncodingString; - (void)setAlias:(BOOL)isAlias; - (BOOL)isAlias; +#endif - (void)remove; @end \ No newline at end of file diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteConnection.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteConnection.h index 2884751..0c16777 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteConnection.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteConnection.h @@ -6,8 +6,13 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#import +#else #import #import +#endif #define MGMLiteDebug 0 diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteResult.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteResult.h index d4c049a..fced9ad 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteResult.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMLiteResult.h @@ -6,9 +6,13 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#import +#else #import #import - +#endif @class MGMLiteConnection; @interface MGMLiteResult : NSObject { diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUser.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUser.h index c53afc5..01fb940 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUser.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUser.h @@ -6,7 +6,11 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif extern NSString * const MGMUserStartNotification; extern NSString * const MGMUserDoneNotification; diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUsers.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUsers.h index b9d5379..117891b 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUsers.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMUsers.h @@ -7,6 +7,18 @@ * */ +#if TARGET_OS_IPHONE +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#else #import #import #import @@ -19,4 +31,5 @@ #import #import #import -#import \ No newline at end of file +#import +#endif \ No newline at end of file diff --git a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMWhitePages.h b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMWhitePages.h index 3be1f60..aa1766d 100644 --- a/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMWhitePages.h +++ b/Frameworks/MGMUsers.framework/Versions/A/Headers/MGMWhitePages.h @@ -6,7 +6,11 @@ // Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ // +#if TARGET_OS_IPHONE +#import +#else #import +#endif extern NSString * const MGMWPDelegate; extern NSString * const MGMWPDidFindInfo; diff --git a/Frameworks/MGMUsers.framework/Versions/A/MGMUsers b/Frameworks/MGMUsers.framework/Versions/A/MGMUsers index 8d23d17b9f080681448da47a2587de5952572e4a..24c310215b9199fa3f469060cbe90808ee5a33f9 100755 GIT binary patch delta 557640 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

hG|bMo)K-_oEXAb`Oy-@B_Tw)`vJ%@pst z2TUE-bcXAGW>AK&_jY!*sz-LaTG0B|y!j|J#hh(0D+S` zdSIO=j74-L|3^Bai-=0oh4&@Bh`E8PempS!R|%(+VY&k-7=Bw8N2x2a^ORi;BEgjf zqkE!9zrK@FqQgdO(Ji<^M+$=3(CgR3su&r07u~tgi0Tc9%c!GRB@I?SSdM!HiHOGf z+yt?(l(uH_-O>{NZKCZLl|Id3ZxBRPX-IpFq9>UrtX#aajK17D%9T*KR&p{$szcmL zQUTQyMtL|CEu2g9M&~Reys?ZXRy|0IE+GGH)g)7q0JdaPBE+T;A;JiB%e)6M$88NJ zpDP;0`79V%zb(Fq3A9yOsxva(Rr5r#9jzK3%_6nnLdtPfg2EdMN>QoS>w^}+wz{`3 z)2a}O-AT){oe;8xK;8<96N|lx|0XO8(!gaP#r6Jpi%3fEp<;S_!IkOgAu+fB@X^?) ziRqxqvY`J&`3uW}E)&(Vz!SVh^vnqDc2L!_zyxxYHkJho;y76fCvrs`Cuv#GNT7mc zK|cKQ|BLIRCOZPxXd~ z%2Wd(FA|j>lT^xr$MCm_p;3mR|?d<>x2 zqj8*Q9B015X?s;1Cu#6$BT&KMvj%?o<><64br*7nTs>=O=LltuK^adxS^_QVzC%BZ;f7~* zxL168Kiq{}Bo}WO%GIgN%q#63N!owEVrUTah}X^f%Y~VQPSixmY!(h2=`YjG2W@p1@&nyS965dyfej2iY$J{w@6fcp zK^*wNRwKvDBD}*C#>nv~srF_?m65{%#T+?K@d%Cmg^mXSWOX&`wkQ80GD4% z826sh_3wDr$bHc3JJ6~zY%?#;FhH#lAsO4`&FuKC;BsO7jJWb}HZAr$3IJ~=AcSg2 zYdS*U@jdKYKk5|%KQaj7(xFsiuQW2zo-A~HwxZ*H5OU&EWV+a57Jwa|oI&;dy^d}d zFQ9Kpcf$gTu!4fr^Y{`Plu0R+_B43U3GYFg3aZGsC%p^Y-1#R;WM>9O%@Hh1bl-q( z(#HSbb(Lt*?5f?@dHx`rW}JihNXlR**Dz>!eN_2eU@cjXPHZinh0hXUvvL6;hN_j0 ztc|~Ufs_%TII%fv@n1|k2hC|`Jp}SHzdDodlUlbcmFFpCW8%3(H1}fXRjiJIjcDx3 z8vrNsPAl~n=AC*s$h?!;Q}8Cxm-%0rxxN?-HT9TKGvZKV;!pz>RHTUBxC&~o3AG!H z@VN3qc;-L7hO(2xq{P>~PYTL3a-<9w(oWE#of`T}z~@l8SOT08A~g1IA`A7nR9M+$ z83oc$fagTiMATTW=7s8h6`?FND5Z%J625j7EAE5a*G zVGISGNwptPRGEk_0>zw&^65opn&Ylm2s?TlE=#q3hx59oo~fVs;<)s&`3H3wM5On9 z3{KwG+`?+N;w~kp4j#gYkE;ym)fBNQ;N)+TIGzDF>aH6p=JgzNnA6DZVrR8-J{^YA z@PCY+GbkElLd}I|jzoR) zUI7%mg35cWqBbb^5G6kF7Ci?g_Z1_iFP=;3r1F*G*xM!K*A4btqOcwmC-ye}8!Z^a z2(l56Ok9V(L8mLEM{J5^9>#lX@{|F0_16!PvvQ*xJAE!~mbeWgEslWeRvHWioEFD> zAd2qHPtmO*jnQ7Sd!;fbj(ZY0H?*q;Y@DkmyJHgn;*IZc}f28O?3j(sVZ(ZVaPhaN|hPD5_Rpl%81faQ>GNkmv2Xn!>6aVyLeN<$ws6LU9JaLV zwmw1$c##EO)SW#Av>J76puKV?A8kSgN4;kqDguaXs#TFR!jY7`{MHNYEw4f{vWQPlY z72ci0teWF8W)t~yAO!iF30>ytygAH5rNP26voJ`&zokmhE0KVXLjBGFY6^-~xZXQB zzhadLih7gMKxgFnbZ2CWfAT48?CrG{-zocg0iQi}KREc<7&Y`D$r0jxP*F+1dS7F) z7G44s4tHnWSHeL8!v&8pHV!H@2ij0FSa-TV-6l33F~p}3se7vT^II9!Yo|I3pJQ_L zc{W}9Z6T7oshU@Ej8(a=HG^Jmg;ao9j+paPoL;Gpd$-qe1oqv(c@m`27+LpFjxdOC zJBjXiMNu9ZORTlz+8eVe^MZjM6RnR);mBBc{k8H}Jfhj6r@Z=5>y>5VMm_267-7|I zzA^`p2?zB2W`g-77(ooxKw-PR(6LfRSNlX3y?Dmp`>R07OmXHQ#s_BM?--6bmaq!+ z?x!yN_bBDg$nkC-iMREiG<04!u%aT>BS*@-#?8Fa7FQcm*RS%NVOT)#kj{P!@)G#k zRP+af5{nj?(9T|6d4AN?o*N zPrijX^0R_eZH&sP1}dJV^b?Lk z(K%P;LtcTQ&s@jD?n*GbJB1QSJDE~XknDimVWaZJTGU={^ad$}U}BgouwT!THm=#1 zSGG!ErjfulkEeJQb2F+(?5CwyUB!gxl$92QmY_sq_YDBuXyv0TB_8`>a@{A$O>E^Y z5O7>7o2|S~t34*h+J?ra`!TXO8Ih>xDULG>K*v(5i(_8_4rWlLBts+lqlC|M1;U{w zckore<_g2_L}Z+f56%^IpXr?*V_g=RcQf(QZUI+Ed~gN+M(w^rnv{e(lnOHDe-NXw z_5Hyz60wFVa66qU95nS%b3f?H?ONbCZZ-0a#dpq%E;6dZZ(&iDes>DbLtIN}<2*#Y z1QY5!MB8yzMwi{lrr1TH{rwn6%9Nzn0Q#jkeNvo-Ynb-Lk#*Z+a+bJ-ovlH1FMR?y zj=LQxipFO21HKXS9gpcl75}h9+D}8s$ktHNd|nab9jM!5o;4nWNv$cw{ghmt^mNK& zV7symW|AI`I}ki4_8TP(n?L4Dx*AflcNxv+M5qV8kA!b6#*fIrrPpPom}6L33qG1Q zVs8@GijWmwa^6J|H05gWqV6kKi;LzId=mt4s*0+5AtEuLKMoR(SdEP!UwhR-=vNXj zwu*o)jgV>!bFwf$CDY)Q6yA)RrT0b-Jxarpy4YR={zIYfWJIyI4f@MM{|c1&LgYFc z$VR?&*6)Ex&?WT0#|A%=QUVL&Yp)-Yd%RY#C?0uZ%48U?f(a?m9ZY!p=bP|fcL|IK z^vaQ8^!vkf{#jvGxhiCm_l59YoGvXr_$^+sGw^<)HKr1p z&`tIjd0geBIPUKT{SMH#_L3)7c;I;>O;xAYT5a;f-mytmlafz(m2Sil+S?xT+VkHL z4|&6Gv<9`fMml6)x>~U-HF=gVQM06IVxQ$NG5IwNL}Twj80Cvc!)w%E*ll~XtL(P*Uhe_I z{f3U@95lz1r@_EY!Z-=QMEfC*_H`U>heC^tGtj;=(fSCQwd7TP2pK6U{15*5HR->5 zB+N^E&#k%u9V18f-2S5}<2Ff7F`}eP(sB0(jnIt!?*KqK>YpR5pUE<6WrLXf{YLey z`C+;GORG~mPbmKxl>ZTrrqIq&w|qBT8Pom^B7aU;CGpwk3gMg^a{P;l#Aa1cwYx$m$Erit|}D6%1|ur5w=YojQf$*pG%s0mn~AZAanutj^Wq%6oLS@T4?d>BML zym7)YQ#X(>NEDkkFY{Bs$#Ob<%*&W=)#==s4suO|KI>$DO6(Lts7UOvWsAD8Jo3xa z6T71LQ+=}9tJ@@awM}^}7uS+%S5Z{CDSQMJtkj+ezJ_d3A~TK0f}Y19MtrxmF+5Bo zfBs&4QUH^bSbQgp*Y8j604z`<8x&QoP~d+%Wd{q{Dxy{2z^o2l-e24a>;u(fiJHh^ zs_c~fdLKPI>@3WqD#xUpy?K{3^!I@t?U`CM1Y4S0ujH9bh+P4>mE&Y=tS_CixYbqA z%d;tjZAd523^MON@BJ*iHqlR8LUIV}52Fh@(NQCSZiK>yKgt!2c%hMyCg3oa`=H+X z4<#`FuyeN*o3S7%L4=LY9rtRBT-zUyETeMv*hKQ@paKAbNn8H!fPtnQgpJ2Uja8y? ze{l^5j1DKW>ngvPg$HS0S6<$5wA&Pj^bh$)Y(4#cRNrDPYRo$@4&8&a_d&jz)3E)h zrt0>p3S!;~?}eIHt?}3syb}#zY#AQ9mn*Y0Y-S+x;_OX|ZSEK@ng%@X7_J?wkT}=k zULYT$(TOL$U7f7-Na4QGa0Q!&I6>%^rUqsscNR3*$D;jwYK(#g8o`agCDrxh2B;gz z*l`&HBA>2};QsLNE95G^FsdVdH4k=GWf7CAZ$nc265haDFbkfhIqluidl;v>Q{jp; zEm(2x)k0jmVr~5{8}s4^4&3p3=c3$PaVqWBkpm= zpw|I65|~}}gd)a!YJV_LMp#_*pq4w(0Bj?GsiId+(F47BKdnGu`*m^|D`NQfZfR35 zeLP;bb5$P81U0e~Oq@BX%>l?Vr?RYC61}b~s60Wpn%T5}3H(y$F&k>AkSu#H<<5P)g>-@03UYCWUQ{skR83*^1u$piiFhwXEw~UFfXz+pM<%4K zm!Azz2kui^i+19rL+l?dVxwX=)X3UE+O_w`os_EYD8yx&7_=5nUwSLCQ+b2!jzkPh zrtGZxe??`i>dk$nEV4L===T2_JjZRow$gJKdm{YaL`ED5rPAGh(R(c0su$@pN}&gK z7mDPqnyRbhCK6dC88oQtdI*Rdaq&C6ED_#KK;n-PkT61S1t}?%d_ro~nk1rG@<&DR zM_4FjXvh6S1spGwAMY{?9*#6r85*>^X=2bQKRPKT zyq%fYZ;mj%NLawx01mzarm4EQRtvG$Fs5Mia46`sF9%&7wRRWQyVTOGxx)HN8u@xd zWi04y3;r}%tIxQt(6a>9iW?Z zM(uyzBG5m97|nmT16b@-IyHmAO@(bzBP?y$w4N|9#LC-I5%{Uh6zyT zpTPvklLV?L9Utx2WkD|olDaj5-E$;A8au#L8bP!X3pqmqesYkN6u-UVOCvB)m^*1p z_{;DKJ&rAdj|Z^&0PtS$gZ_Pezi@oQDAX%&zVGw+8wb_#|C~O(aQ>kZ*;O3-<9LC{ z$QmProvVq#__@&bcHL&Ri!8bxp-9(|?^<6DVXOp4J9fyBuSV8ajGiV#G*ZA|lO)OW z_?Y8v86xOvNI@R=fr{21%grSFyTK_Xt_fQFJ#b)HX7?>%n6vv+f_1C%RIrc|_O&P( zf}>%&`?oIf_RO>TMZUk5_TMCu9?q&mSVn`j!rF3O$U3zce{T))Txf6(g9Eq5W6{Bl z@l+?4PcBDEy)pS7Bpi1E1J#DsfzlbPC<=ym(*8pf)QbhfM0fvoFgk3U`Is=vIPRjs zvR7H{1}fN#R0^@Al;NevVtJrc!)vm@Dj)gc8XAAra5x1@yaf?M@EnhhUp3gra*6q9 zF|}Q!_e~zUuH2S?o_rD#%q+;6>-5L_4U$1c0!&EEznSUlak-k!6qfXUTR^vfiHm%q<38m zg!dtV&*^~T#6~T|e-mDTc@A7z-xOE8+feL0u9)U6qInQs(iW3FVIUf7bP?cWgEB+? zg$>HG7pdcbtpu+x9ZCFpX;m=LwJ~y-P($KSJ>yXA6;$LidgCgngXY46$BV+_fRo^v ze=p{K$L$|xgzd#!Q~z#3xrQ9snw&&Cx`;S*-wZy-r>PR)kPxADy&$NTOFuSC{XIqblk1F!V$OT>5n~^ z2Z`HIg)^BlTe7LA>|YiTXLgv5IL=<-n5pB}dzdITEe{dq&u2K-3{r;(pQ48xVUZ?% zh;RWR+*=7AHZ2bk&K5szl?GfiNH!*?b{1jV6vhzKm{fa#qRP^v3Mg1_$A6}6DZSt! z!g0np#1cAAhP^@Djd)T{WiPiFo zUZCna^`Dq0iNRAKJZ!r0DqOfV;ab36OtyQKp)hlvcVLOt=z?#r4yC#%5X{MjVAFYC z6WhAH$s!8sLi*-5z+tDs9!5b;+zw)1_jGS(xk?#4b=6EO=-bstspFP~Yk^Y^71Ue6 z86i%*CZ|yWbL3ELGS>+C{&fOWM^V(W1+~*f!0^P5272&CCsai<5RvS`81VYidIKsM zq4?-3vL3q&blwjjz-yO)>l2;8E61fR@p`mLIsD@WUmwZm<_e`(z=wsrz-!uu;x|X zS4*unrMk}b((gu3tLG*NT^6`h zr>}P;&+1>Umas3A6LOJ-y%8ZQQ&-=w|AR4iL@yOKyW=;YFo)CnC_&Uqy!19xn#;3v zWV9YmS3@QmYt;ynN#CV>SWB`peGV{e;wGy~} z>{pG0*W?@tl6GVF1fao;0i#zFG_w{m(nO*+#8;d_ytatf3&hXU;+O=Zv2|yV|B(Wj z4Fmao*`YV<&mjJ;h&KtuR~zCx&meve#P7^(j;9AJdIC5$4`Esb>yeE33O!4ENCyv| z0ir+o`iR3SmWk2aZOG%<2dN+3ptV87XVI)BpK~hPcGFFtA&AulMmzuf#6>t8%s6D4r)k!8ui=V-#*hc%UkFCKK~Q6EWRrstcf;$AE`v z3Y#eF#l^*h*TYi}>hTsQjpuQ^>aKM`B$5ff4z(Ql-0OXzM@al-7N3F0$Acs{cXW^Q z;xT^&88iyCushWNd?V(Uz=K1zoL*R0n7|JbIMRz>kyKf~HgqM9oI_+b$8+z8@H;UGogMS)41YZ+dh;Y$ypD?f;!Iq}r*N6t^dEPM0YOGCEfVKD$M(1ub z;=YEK*gk(VUfpP&K{VTEch@*Cp2g}^bhkk(8auB(`1LR*4QIbqX6$n9T_gj76Oq`ZGY~1nxFqat5D> z7S^Z-3XVXV4)&!kXA4xpR3NA=B7Q5rOkTuj=L;yuZ=Ph)4fh%&M=4@{2q}j7UuMWn z*5YrOXrAV6VFdUYm~4g3U}7H2A4gCM)i8wCMIeP=0#k7%tRZ6H$Qpv#;9!k-7YSze zY>B1}*AT2(0n|No47G6A!=#+Y=F0!OE+|HK>LM1~YbR3Kg3X0=d3W!kW%vSV3a{e& zg_o<0#>a@l7XHQRDexrLj7Ub|JVrr2>dm4v^U$f-BE6t$ zYa4e<1Lm)^Nzx;Sd?c9vYUW?^cxyYK%z*8MG-U%B+TB`lYE^OE% zwQy-PYzo*cxSyCb9{#472V8Qt8+XBbf>V&m7aA!8m4z})rwb*c~wyTN^j8pR@JH( zLo@h{iyowYhtKLM)(~cfEu_}!AAo@l)Coi_`WnN7^Qy-eW_6@Mmrx*{PghizF-u0L zo+IiQ1s)Q`1z|(@Bf*Mbb5VI9t%#cprnCn*d>$<$fjvw?!bM>=2Gbk~TmsuY6NO4a z2yYN6V!}Y+-vkG-5FW)4dQ4Cw!KWZ%mXD7FH~=Jo$bnwRy+k$aS#Zc{509hyjcS5o z6wE!4z@0ix>eMX|%A_vd-!TjX!+2%*DfdR1ghlb36}6#Y1kNxym4wp8$QrxOzf;u? z)lGb+7Kbae>7$nVNnlosMSN}oG*X?ObmrFBB%W?x#Gn-e_D}f%Y zD8iPV9dB8cq~nv>usL-FAuSPMCwRfiL9eyX6T_+~;$8Sz$jQ1&I)^sDT!5{`rTHjL zuPl~H0%a6PT3JjY#94YsU*WmT)5sKbozy(<+{dl+BNq#Osu6NcP-Nk4Exv50_;|2?pbMh&8$Vo4}xF`+}qX|8=zfL__d|zDD*l}eX)Dh2LoOQc1|i8HU1?8bmj~HsFBDk6ds-QRz8zaxzx%@-mZtOW|5=qAg7{^ z7r|J_%Di}>Jz^@nqDmrEH}S(-{2SYas}YKse$=Nvdh7WU@voW}1u1qq9R#Ddo}4%w z1kQ`yFT)>3Cy;=?z9v6%1&c3h|Qxj2R)+nE*+)GH(HKHvhn-pz9*3LM+`|ErZUFJj8pe zPEWM3E)gR}hqd$DqC0qs^qaIMAW-El`r;L&yz zOX{wJh#^gg2jNNW(@uDoUZ(DjtI1X6&=0>XC`ot6Qcp=H4vdeRP-!r-un|0D0e8n& zh>xWSuRG||)JwQKPWS2^#cz({e!oT=Vt$YRCRgtSvDO7>W{2tzsyrwBwk>PAK_y%o zZnP9PtR;m~)0ovnEH;i}M!}{CcH}!?1nK@`ob1?-aqMqf)1}>^Oa7PO$;g%F#QG|o z;6|5Ihde7Ppp3iU&{_qGs={S7k1C9eg$%1OP3})3e@hHA$>kE+=o3?j#wkLDd5sc@ zuaEnJ&2F{B4Aaa*Q`&~b%CM+cB`Oo8h@>+ik624klD)qtGi{{uC{)o|vhWzK4V;Pf z4O&9C>Q+Ld+x8FibhmwhLE6`VdX`Dn6@ek`@+CE$ z)PwFPgs#cm6*CZ>QIvCqd3ih4OGn66M(Bs%7nG!4dL|negf@zGk8$E$~ZTGDy#ki)E^2ea=!t!(}bEQP{B9O8o@Jv&`6rC zz_h7SV=c*OF+fl%kt0u*8_^E?Kjm-}&=P#E8=6Ug86iSrzY1CCcP)ffgDj)h{z;RC zby}(?%e&;Nfs&CG_`5=BWKh5W5Bjr(2?JkNc z4fPo)<`d`MBC$-cjQa7{4EHuaWz{QH(Aqot6yBsB1Ua6vci+Ucm)ype5QNM^GL15; z88F^EgVw2GbS_rR^mnAYTcCmNQ~`h({Nmqd+a^rOw;q;X2ZexkWa{Q%ThzE#bh?PMeOrO4t#=&eUHXjGI=CksX9D@0*d{a|ph%w=D)BOvUvR)G+t}>{BY{skakq=cYD44ZP@|dK9|n>%I*P_5 zL!&7u@)Z%4bfqsAjjIw7vvayzZ1BaGq2_JPRydIw(wUb8_jQF6yhr>&c{s1F+wo)Z%#E z{n}t4wJ(MrqQE1i;hQtgtLZGg{sJg1bl{rw4|LojxSP8PCn<~YL(;v-c1M$~8~-GdHkcSP%myx{9KpTZoJMk7wB$kW-nCZsiyvt~jWojPXkNLNlyqVw9#nkzS~=L* zW~iuaH=1XLsC)`ak_x}g!>{Pvj^D?-xT5GSG4z^>-o3^3(v+#@JL=Pyu7=7HiEvPH zmF?cx7p!W{^F-r6qYYMyM#bV9%alf@XuM%)j1-Mspd^LULur&0jT}Rxx@hDvz{H%D zP#W*lV;rpwjn4*=(yzFUx4m1|A&$AC@dIitXqS6MqkM6VIik^}ooGC3X!H|}cj#@R zSCdc+=KN*uH?_&!k4V-L)M5`eM4;X z06=5N&k@dGaDK7UGShysDh8tfdc_I|A=k{$;A$8!5=P(L0rKI2>#h)lmyxW%)$2vA zyQuN2b@5yEE?}si3CDx1;OD?`9_bZCYjn!01H9ocTQvvFBWBoFi~8d-^RB!-?BM)% z%0lw>F!m9dp9Gx6iX(=j{SI;s@pgZ2^UK!Y$WpS@`qu9YrKL-<@jgg!H+>hmx<5Au z*KzMLC^bmoqw&eL@ki_du$=tm6yWQm+_o?Vs2}>pZ^o^{cf^Rjw0;E<4u+p?-qWvG zwJ#E%!ayH|CSM5JL@RD@P9MH~m$s zLuA|4(7`@*cdYM@qXo2Pe8PT?d@@gvNq2R$_XdpL&Y+b|=5TEEN@7_d$Y3;c1&7WX z!OJ~fhUK&37w^IXE3MQc^}S0AtX7e8sb;TG36fRCpI6Da-hvIq<5nhbA9#+NqNJ5y zmCKLB%F=Lnw%;p3+Q+(!n-bFWG(^{7tjpb8JsW=PY?_LGHk9l<%>%x za$DC|I3)uA4Nfa^2B$dPkjXOS8<|WOtf;d&!B|&nN`}jevxuilm;sXLSIkd(dbBTW4tW z6UtKEIq6tOp}eAH^c>m8HeWg=SAMAtBa^JG_kOi1N)Pi(Kui&asxGH{@#{c? z5N`ct-qqgh?!y$kO-o3Ww)75&XS9@H$b*y+yt%Ji=hwOtO|(AIhEDyIKHj-+SbbQo z*S&#qJ>DBOwO5;HS^M%S=rHRBg9Cr51C{v>#ohNQ7>t=n(bGZ=L@9T_P`2w(&}HJC z@iuZYQx?uiFOl8NnFiB*n6e^BxO~@jsAx++(Qfw?NT4`nXiJ$p9$Bu8hxt@OD!TX2E@R| zb{7?NDxA#UI5^BF<19*Jdo_VPggW)4b|d;SFC37%LlsNF5surehI~-ziuwYE<}5Va zPSwPMSfHPclNA;4a4fji@g4Hqx2!r97Ahy@zVh{+-kWb(bt^;+n$y!e`j*wI-S5>T zM7e|MCl3B)P&$&rnc(M)P^?i;@9MX$`n7kYgK0-8j%=u>f*37#GS)x5JKwfyRX(Da za(1*Zli?rp-gw(;e$7L;z-a2sfB#nusN2yoGFRi*q73mVA};9qh9R1{j?kl(D)m{AJ684KLJ9$1 zgPhv%Y$;Dr)8y*}D=Jev-O#=pa(J(o!|B${r4a}XXW*cFf(Hh_K=sTZX) z4|BVGkGwEkP?4#NRRUQjzAo*#4}s#u3cBLI2|LCm34jG$alND6LcK0;7E}BHZ226| zn_@8^`1tXh;}Q(Mm6WCa!Y=QqNR~hQT}iG;NDkU{)BhWCaZqaL5bq)M7&RN@uw(W#rtWKl`<*#0%NMUig$^6 zrqW0O{u_*NJf4E1a=;0eC*>k>~Z3UDSW92=cB^Rv9rE5SjjM0o|5+Clw@?Z8v6fq#NY5ZE(O}rjwxR2-I!f= zK5w0Oo%ohv_*MWF{HU8jS*1a~N987kokteJ9>Of?jOKJy8NEcHSK+@w*gXWgi~-$7 zL(eG=T~$LLrnrVKt)Q=a?_B!W#(>^^IVsBw%6d>3dfDR8Pm%?%XByD=dN*&i>I@zz z$m{Xn!09o9T+cx6uaTD{^-1|?tC33>$aODg8Kirs2I1*%&niIXWWJUr5SE_Ik9Ls7 z5Pxc<9i}K`G=%}_=Z7-G@#7qL&P4}fLoUOA6DISO;4<9edUqIlU4|7?oI*vubUI8d zb^(4gR_73gQ+fJZLH&iv{M5I4GH)V)-57u|nO6c;P39(0|2R;WI8cj23MjIZ&bS0h zn#^AVBYdrR6dd#Kx|Fg#X;k&__+);kp!6k2Ci77=6pr}*RPdRZaS~tu5TUU@kSr9! zBw<}cmJv}K0UmO$n#@z>YFMc5|1Bh?WXP3HOZFmW=UD-bgY9yTo}^DO#d&lGQNJy$04 zo|lR60#g{{UIS9?*@`M-e;O#}WS&be>~96DQF$-2-Kx=kuXtt-EL%vy?|Ja~XEO`| zSmqv+-l8^DaBH-xo%iu}+#7$$xrd#-?K$Fi(AlQ}LEZUqIqKN^N(0e-s|Z3i^Km#AVqbG@95m*j}>hC7jCvmKeajcg$R^%E3>tN8pyqD}CSi$1`5Pb71(0BL4 zFemZ;o+>CGlOz585DkSz;U9-4YwM_l_(_P+*xyYS`g@VE_K;=t_g84La92);CVthWKgCOkETG2y1&v9qrYEGdAEr2N&UTzaDECoemx?wzbmNH2a@`G$+Kb| zZ9^+2)@PtdBP*=R2NK;XphBUzr8cqS{qzyx2vqPHfjb2YpAqVxTfTznyf1kj! z7Wk5*>SXb)%~hn@|0oFQ@5?|j`};YR;AaG?mW3VN^`?U;n+SD@r-?&bdo_1ijfTBn zGGU!xAF}50g(P+<#WrsP7ILA)+koRG5^e*&@*du0HRy1h`C)!>XYfobf}i25kU6Kz zA>0iV)$Yx2<^8eCs?%b#qQy7W`T+vpfd6|d`VtIkz>N-6*GFocV1n;P7^!`FB|B#XU+TcYUmQ^A8*xhLyK zYGV&$$y1mKqXnf|3iyy~hZbJrPw-6QkazVbR{fGcd0C%W%_klOM$z2dlM^GAa!=ln z{bTOQ;W?F@f&(Ov%RMqEG8dl5hMa<6o&p| zw_|H7Z?CA0Gt`PM<_v(3u*qu|&rvZrvWh0f@o{Eo3xtr!)7T`mX>+Vp2K-q|hK_Nn zLXD?&8F-U&Pd2xf@XfinZlF5r|53gEVz1U`R`q5QABzx^W-H2fPjRk73nrUNzt|i7 z8D8KKI(wqy661hTy}S50*!($2Yso-< zYYnf=EkM;P0r^(J?GO<7v`B~EsaEbwg7Td-M1j!|!w7_xdrv(98vpQZ`bEInX!$*=pmOMs&VX7f3ey!{sCS0|52bL z$YTYP1PNbj^Z3JkSa0lRG=MIV3Am%%4WR6eu1N`u$)Va z>Fr?*x-gT~-co8KvvaWbf@V@}DO>zJ)`i!uJM>DOHQBK*|C`~RM-hZ4r>Yl1Ab56w zT1ti*~sq3obXWpYFFCpCL^cpQQb~PW=iRysd+m>%;d^98`b;RxVl5{DV zMoffs`s3`*R|Q$_s zh+b4-VH|&#+vi2s>be@3>f}#iz0kgTVC(aY5jNc;AgeV8%DRw{@dB1~jE+NIsh%zl zKx53}-|{sHK{X1bm7q?IgR1RM^&z=*@VHqp84ZbF**HI1@X_bxt}k({1RJ(r%IQ9s zvg@byo_?W=^M+#a6fc1!S((^_!3lw*s_Zn@vRp$G8f zyosvF_;~t7197Tnn9^j4*ObI0Ye}w-j=_yc#9@N*)4e5pIUwd{E3P!!|DcZ_&3a{3w8 zu05l*$06#t+FGWKE5uwQTJR#Q6)ke?@_bsXr{Bqx71yoY+gbfQqMq!2_qtxILss=_ z$@FTbp{f5O2;3B7*xUd^$9|V@ew()TK_Ia8*V$|pKnPjQ3`;yY6U*y(2M$@aFG==h zqSCxLyD^NMIgUDBtHV~EVsTWaV?n|qf7TA-*u^+bV1iA|+2;@ln&}4?MVW@`#a1be zrW;T{ss4);a*zESmeXTG`5I*w6j&6L(*yWQ0^X0F%leB|{H>lej;b=;yibJ;1j+@A zO8XnH`VstQ?ZZVZ*F!&qXcr0oQBqiXC}RCsuM!xjfa*@c$0xw#MwKj3Qc!xw9^oiq z3yv;{L$y%$n2UDTWCTwDFB*IPBPbe+gLfkk0w%u3`bmHZ^<#aCp~W=X5(Dk6B(#|d z4B!9T1F)hOG5O*rj9cPKY+{6cA?LUfA%1Z|?ayE-b%|0xAN!wBKQ@CSlf9={e#(d1 zhVq~A3xPoS0F~Q{vR6!br??*`SAP)j&A9dz0e;|7f(h`ZRl8TE%+1!S_tz zDMS;L+&Sc6<@*$rqVDJ0!NJdz1bdCO@GVHVbvu%9I>Mj9rdV()hvfl*jSx82NZNTf z;PcvmuFu3h3l{GY&jl9?L3|z9&Z2XyxKJv$hPU@9-rx}zV&BmPR+fgpobdNybjUq9 zBIi2oXzUM272)TRlup?lxY`z6W$^0l;HnX?)&^JYd9@dC8R7+vcAueMX(U8@p@ zb>)y9-u=GS;KJF}QcCpdIRCh{=wE3`6~1r!7pd-ja4D)`|Srvw_R!**0Px!;>V7I2j@S4tG+V$-cdGKK0)*(v;{87i`6~R9q<8! z4|TdU`)RQ8&S9d}WukK&pJ$*!Y@AYPoYq|5*2VpgU}glE{LH1kn;$5+U8o;# zJy~yGN`~8B8Pu!iG}dz+Vf@WnORU~=#BlZumfaZuzpF~XsqloK+0=+BMBE{q{=(r+ zZ6o>_$Cgcp=R|~IgxkKtxEG9Gcq|leC2{^XQ2FU}S<$QL-S$M)9pF5@RdZd{6mQ0p zY3W|8gB8!=w@2%K$9DM#trMj40zk2gJ%K)eUu#7R1|Yn~scq)pQlcKm1GI=Mxy2q_*SIjsfsHhJyR~alEkVZoAS;Y6jGA4&V ztB^O33cB`=R8gPPu8|1xjtIWQ+$O%;uu2$>41{G>)aSH+z%VQKm=|g&{n&dHG}M!@ zDe@$22cG;n?wZ4)50?t&i=a5M9hKo>!jrJ-;L2l@;)D#Q{S%{8I!j+;O;^SAP+H`fQ@02B!&kV{40@4;}QTGTv38p7_ z(uMNw*OXT#7z08m;Wre{HzCKbL?k{6Q&7JbMiQ}pt#mf5FN9-aZ3RVISz(>?ZX(n( zR45d;k{*S*!V#!>6Vy%qJi)@Fuy2?%Thhtd58;g!=_6q};^FlYj+wf4gh8U%wtN&; zz9Pff;B`D<)#+G;4vq+hQ#rl;gYb_LJ8W7$2|FTg9Fqq88BJAhJ04N27U|zj=~_5k zO{)EaqKe0hK`|eN{mCOunQ2>krL&zlg6UEi4ncVwR^I5=Jwc2PC=sy}7?yl_EX94a3pv z!nbg8ik15Q*92Te?{rbD1V^nl^S0unp#@h%nLqE&9h5oDCg zc&;tN}$%6h*x6v>2$Y$NBMY|OaC5PV zC=M^Cxb$p_H;bZE80iQdyfS0ojd~5{O9@scy?!iULy^cG~ zt9ugLIWLkI_XhUEWdtT(e;L@A=(;6>Pkl^%79WVHvF%*vS&ie}=RsD|7Qot+Ph0ixedzInc*AmWbIW4%z~; zMb9O2VIk~wUoa9dMvG=*n zWyTxojiRY7|BtDNck|!Y1(w#}iS*QHVZOKWZ|kBYVwSh>Z@gcVD7k?6AB%DPlJC|8La{z_p9}5F)r&=_O@FNO*5D3r-6mmKI(#!s!kfZK? z?}dM?s^Yq;?Wp@B)t>wR)lN~y{{LkvybGCe|G!Kf%5?e9%ly}}&JR6b;En#*s*)NK zTDm z`*xX>5;w??$b8OG$Zi2Cb}`oJO7Qrr9iOUU$LY5>+NYErb1^o`;4>dG!Qc}-4pjFT z02t%B|Dj>j_$K!ADX+kAbK2mivc$YA=Jg<0k*tk*BenT>|G-N@z~&(_7(VV4 zHiOH-*(WaXYc=#g2NO%*a?;DahNr9xF1)pr8gaCF8TllFXaE!+K5z1JPhl6VJT*9c zmf`o@F#<|cq6Y>3AFKWs(re$TM!c;)smLESTqh&(%mWu(02 zSp~mPoi_w&h`RY~FRWM}Dv7o4{KHt^Jd7~`XAFQJbx*wxuD%D;BkN+|AoMw0lJY%K zJMc~oD-*rE(^m6xKgyJ|#e4g-RlQ<0s1&6|3tZa5(((7#{*Scx4vXse;>MXv7j);| zySoB{f}&ys;Da>+3mBX3FcI=m+C!VUxZq_T#tVlW#Nm^3 z3H7xn9^3}1{Ix@urw&n=#9R0sKB0$vRC^50MXc1WXFVyrtD&%|h3-8kX!5#KM6M@Q zN`$q|K~W>ZWcT+x4ta_ScSI42ig-`!t9zq$T}2$!lD5?LpK-bTL0~!oW6OwpkKZqJ z6}u6t?`!`z;?j>1>m%l<|A{$Ck9h;aw4P*FBw){oS_O8xiGFz}glY?1m8Yv{s59&- za`L6FqAUWOx{A+v4aw)#HJ?|@JYES7k)Kp2uNxn`w-}x$5%9@Me=PFmSpH7X_We{R zqGRZ~ilsW2fg(h#GnTO;p-%7p)PG0N&ldYB_LYAH_F_C>X=Bnr+dbU2A z?FQ?-psPp`b!O44GjHN{*Quv|s*e2P<-i8Umi2knT@+R^s3_64LRYc*4Jc9vo}j45 zhM>q@B8Ocud{Iq#ckZSO7O821`KPuO%8IFaKGO6SoQ<~9l@+aZ>iM5jW31N}SWCJS ztFJX-z=wOy_?ctStIo{WnxlV*(KbnKDDZ63fK%R7d z7ZBgtgeTZ6UY}tP=!N^7pC~R4h;0_%&&cKjne?h}TuGRr8j{oTHBUUjFA~aQJ{IBO zdy@`E>ED01WpWWWZ&Tb8VfT6=3U0Q2-I3;baz(y?(}mBj4u-#>EKgn{@;~VJuf=ZS ziyMWHg>{9{U%Z3<_p=*?e^Q_q@59beq8B%QS5!3Jr?x<2JJl5R!4Mnq;-Y!Q0gF9# z;!03{HV%q`0#ik0Tb6QIw1_wi(VIK3pt-{8EbAJ=#QZHLgnx*6^WcOnzw1eUl+t$# z>yRcqDZ$GnZUC&DvJow{i-?xjZ1V-9Sg)kf9Gz`^ZJ`&~FIb4Kg|zZi*FOrX)bB;S zPsMTc1hye4B0KT1hsE7#-|n>7n-?vA_K;wje~jMrzZSWpL{jjrZpM@$iWsbT?M#otZPX0-o!zR@1FfYo^9OHbU8l#P@Xsd!R4 z2!sFlO%N(5Ir9F+6E6i}50oR(W)GvPpIT62X~msfeRyb>`$+U-9U#%1a`~m!f)B5pP*#wCs^1ETfqor7(q?J? zWr(Wt8sA+A`IapQMN&tRU|v$;xsHFI!-om_D-lmj&7Zjbi6Fe=E66{#8ix2jV5zb% zFPUHwo$3?06#>YEA$gWA$o%|e=wO5DLpW}^ZOnFS1)Q@w=WkZCq#PU4TLT_N6FDm;T072+X2)82ZB8iUl*f{qp96+?LM{>3S}#Q7o`%9NWX10#gj*`{4I zit|A8e%L#px7@(-Vm^`oFSLg9kOYU|8s`Zc!V@s0O3E6h`*G+$5J1k?Nm-Y-6@IZq|$;2(s#g*qGH1#0JbV2`J(5#ZNOMFsWm8jBJU63*$d)sz@RC z6r`<~$FL*qsHdtY67QY&07Oo3UIBA61hF7}5Qoo}J;3lq*y zL-KC;lCqi#PrTV~8HJpRo(E34fbwK3wKVef39C@U;xDgYaViM#yn>4}DXS$7;n0bK z4W`fDw$$GNCB5!D_G??lDSEyV_F7a)$ zEusyat?^FK#@Di?R@+I#Rjw8kEhv1Tx4fh2Ds;9k=%7jC9=LpJ(?kRdUWVkWx+Yd| zLD{|av_yj^W$7K&klYF3Nm&no0&xp?vMs_R63@2mLe|A!wq-{?bTA*orx8*JIdatBBwAR6;~^s&YT{=0iYz8xB_UcQ9M{ig5nWH18K>&q zQ+zc_bd982udErBL1Rs=hTr79*_Nohtj3iN-)oC?V4}jT=4s6mc=o6Df??x+*Oge-)x{C?r=G@o}P(Nl0jg6`GS zsyoSh6N3H|D-JZ-IwQgTKi!a)n0fKQ#I2q#-Ewb0ii7BZ%96Sra2kc!62GJCW?mw} z8x&$LzMK=7KUKv5hpFlSdTk&^NG!b8*N*ynBEHC0o9&*60(L$SI;~m4n`3~{wJw4R zpLLWk%nzKgJ0P|YGktY26FEsf5?3oP6KUB6w|Tlm9F6y}wehv4Wm9TlUQ3GFLWc|U zV!@-f=v8zL6)v)o2rsfB%&&BR3VHhRl2Y&%s_4gq*fVPB#{=1Q8sx`&Hk{!s!k^Y- zaRz66OYv)q^|hwX)d9@s836LzWFqO`z}h=JL!R&4VVJY@z}&dPSlx0n z(h-;=)-cRKt(z+ttzl%Uv51~XqAF^8;O0O3B~vnIKIKW8{4jZ8_c^hmZ@cj@I=O5QqvN=qHESw zXma+NjiCilxsG*L(G-uF_o;X(Ja@{Z@%y83N*Z(3-l!g%GRb2rA{D6uXyrZU&q0;(F$zwul!2i2Xqgl2{F7%6-KNL*N}N;%6zjP9Fek12U7e$Mm>JWB9dWKEFIx|*qfre_^RoY zsUCVFNB_$z9URJoce);K$kcO|;-rR8u#rCc_MtU8kxx}#s>C=HZo`ZwRn_N@(5k4 z#e;md{qb=d(UUwPc)hN*u^~=6%)n3FxW)D!OFPCy383xUTZ=5_=^n}o!dJQRH65$O z4!p8BcMp{K+rkT&;~mos9s=6{sBd+{WDc*cQ*N zjorduX<)sR3N06<9_+%(FwYO*+aOftN>+&L| z!Ta?J35LQ#P+$*gx2z|hdOX~}5`vQQZh`B@B)+0)3hei!#s3=2G`Jo&g?9&y-7+Hx z)uyWj#eT-c;bc0xq#d%A&{=>;h*^;i2~%P{9_%v&7#!iC-N(`uq$SnfPljmp;Y6w# zjUqLm3DLZ=W9Y(EWZ&jbBdtP}Nj zP@I9dLPwD|TSTna7PRMQ7#pe$>j*yVg*K}buftd~I@_6t!TYW=R!#KpF5mFG@HXhm zlNi>RL*003pMvZ2dZg8=z3Rq?F(*cpWRI0b^x#{im~SbpC$Em>w|h@?&kvN`laG@; zz9qL_yrhT6x2UQM^rR0rY7KkwvMi+88=a-tM4LpPTW|tXaMnL7^AgHjO{u+kMNFo< zd-Gy=O8RPVzP;eV{$TUk(GwA@2S{!t`_V$Y(npD#RZlw9hnIwO_@EDpl}ly&@@kUn zAgyO#zJ#%>n$#bQFI%To9e`1c?DZVTZIVZC`ez`&ESYC(M+aeMGK}-|#Ph8c504DO zZ(_1mVlY3%SWE5x5Pq6T{xfO!_xz<)a)y>Ul*hOlcdhYo$&r)ZNO4b--uT8nw56vV zC&LId#%3BYg17UTlku^^JJ4?<(3fUuQXH=+`CJkO)ko_SE%HaqhHSMqbR^#hfrW~V z=H?=cQZO>@T*%f!SaP2A-4HdEOsz-r9qcW6|HM~GB_`9>pZIpk;|_g0h6hQeJ7gWh zi%L=&tscX>hg@EVEG~Sp&nw=`ZYg#Lp5BmCqP;#IX`iRCu{_AP6hiKGLu&TaaB4G_ z`?1>e?O2|Jp3rd|e=MOVG)d$=*lAjs$U`J{g^nh2!iefUflp8S>CLaey3IQ`B5pL0>v%hRcrKvU*_DMQsN`agLd7v%!nIRKO&?C@?7V1Y=7hqcdnIaZK*1fGgS%^L_ zmFq=o7xO@=U@tndn5RksBdPNe9$K!`Skwr#w)U((PAGp~Nt!0+m6rqca9F8qrBzFK zP;j3y$aUK1OVQIXPnX1mqAqb5Ct&;65?-QIb1=jBekI2DD>1$&S-x>a%i^;qpH`>0 zRB-^cLf{YAK$?8`Cb-=WRRLG*yWU%?khF`-oOXLQooP-^fqukLfN44dQKSxbLirUtCs|Aux!v<}k@_pmSc?gw zAN{))^V}4wv<^KphB~g}b&bu%t_YvTg(!s_W2b4i_M=tn_!7Ta?GXZHv>u|H0P3N$ zsMmVlR|>*a&GpFkZ}fCMwowml4Hb*n!ha1f>^1|z1|rwLgT(dnY~7DJ1u7yNLd0Jld5-{3 zicZG4Pxnobac^`+m5OO;>wL0oLeIKFJ2pXVxkJ&L`9`17qRn&xp*p?U%&W0@s$Ab8Zu5RZyQGF>-Qj9WK}=O?-0?OfV3H{aWHfYQ7uUf2bww z=HI)rG4yaRM8|$qYadqXCNyXtZ^*u)_4^=Hbfnt?`3)KO^R{dd4cHHPYz)zU-bER+ z&BNuzzQ%D?4VkT&m^sF1t_L8yCW<2fGdOroE*eGm zp(&EGTs;K7n9Z^X1P}v#Y^elDY@1JITl7$!E?18~+GZJ?PdD@v9YKN+f7zCq`Ou<# zXr8BM=e*#R`N(DY(8hddZ9cR$AJP*>?4+!>dKSz!%SdMyB$30nH2XJR)cD>_6r+mW zG9Bf2&N{Jl^f%rjp_vH5U$!MS54xA5Yq>>$*l*?hm2LS5JBbAL-XRd#VqWPMORr$D z)HK+dx&Tpx9N{NUW@hDi#1}j)cBe;#HWgAvYO;=yEzQOOxcAe4nCYCbXA{a3Cm&fb z<#~MMXfWlLJRU-9;g)f9^$-t?jQ>2<@BW)=zr0kti9{cv97$OM)DLj%R4tnq4|6ie zOU}t4FS)$P&g8n$_-yV!C`K?E2}Yl)0vgJz!0MK;ukck6YwAti>uZgDg||bjmcK-t zhX0Lo@5?yQ9S#$oQ);Rui@Yc%Rbw(QIE=#{-Q&!boNW~b*!1Ppq8>VcXb7d+9r=M*o5jpB(@*xuVH=rlh75%1<{ zOsk`)(iuL_=Xp((L7%oa)A=*}og_D_)e*^3rk{#1=|q z=edR5(wT}}<2A~OK7eTsy=9UU%9l_!wuOXZ@hh)~LoafU#$H2pO{W{zcyD%=8eT_f z|D?g!u`5X;+jSmU)~`5pCgU6~aV?Xw&fbU3IgEi~9%M&1LP>CG1e;Y1W*q1ma_I4O z9wrsep@18_V)S4_B29*gVblj825pmp!t+g@r>F3=%ky*+o)&qY*22?}Qf}}R7D@6= z^q&^g^Cl$87Bt)GoVv-Y`?VFtcu`HxiL-I|i)agXzW`6z*2cb6CO zypFcU(*tzkE^h#&rZ{*EW3Q>xJ>J5HiG3Fggz(50J;_m3+INq4^RWa2s|)oFsLXvn zi1pTH-bbdOsacZ)^No$y^Z`P+DCI%?0XIvPuTknbUYP1V;Qd`|UGw;KPzvQC!3^Avz zU;E{&)qVm+_+Fa64thQ$?M~}6xh#cTp_&gdtK6dahkTG!<_g__H=@)vXG7RCYg`B9 zRKL2Sb2t`2!F8_`Oc?B0dJtO6o+-$4E*=uMEIK}dy!cdm@Q80=flNzT2Mt}0M z>8~-lVNWR~0R#E_n!nJE$M1n{P0@)|`5AWMX|( z!bVn&$T|r3N7!ENIPW12jfE3wao|^+k_i{aAc74JuZ5daLEk&vI4ip1E(D8XMd3!K zK5#}#eL#y}@WGh6d|yICvyDo=_^K)Qza%@wZg@GDfp{@<`iGZzH-Uy4x ziomZpAQY}G>j~0nV%43zwf@1$&UV z5_$>zLF#IG4*pjCH_}ql$sVq@_7x9cfd(&ZEAS45uYNf24D~I}A5e+7noKue^9un* zAohZrFfsiixS*$Y_6_C%X}>%5T8afC{2fn{%DPkLJB*kYbp0Jq$BG#DoRlzh+gC8{;=lJ_$X0 zBPKtxQ9O?FTa!uAl`!QJVz@#D{wBsRik^~J|n^5^@i5=8lm6CV6N@f1kw6gLbR?Iyf zh3dw0+>)}r8Yg{lO$f0yc_+G%$hrR?RIj}JH3Tp!j~=(3u9cT7u;=7kL9Wb7Qk@F$ z^`pTRQsqN zDlNK_{KyjxT)Cz^(34fy=F~;MW!1EQ>d9ZZV%dypCe5hd#JbX=hH`B-QaB~( zeM8wBD1?;2DT^FdDD;#&n$gQqBMdLBR{SKWx!N;o(oc=#9&89*Y9xn9=4^W3NIoMO zc4?<$KfO#Yp^a!J*OQ8Sc0}{Kh2|8sb?3ImMj_I{h8171 zdtmG4u+5+8*-<;!LVhnvu3PEsS8^P)YfW3pugy?cH0Uo^M3W5fFW2&tO3kFT-^(4O ziZe+XDt`-s;k%)7QPxbGI#l*&Ql;s%a+n+{xi8a>50lTkN)_z1JWhToMNHKe#LLGd z$R~qF$t&1CGK`j|N)ajAg3)ph2@UXmj69yT*T#;;IAO1}3*%&W2Ep;#c)1b|UkW9F zYnddiT7ukDV$HQ#6XZp{=zP^vp>GIc7m0{ZQ>2gmd z&VFag&6q`NHB-LkA=T(lmFCI;(EK!?D-Sm;9)POBchei|7gc7^(YbO*DRKZ6pNBD@ zOE>1p1dZaT`EpUIZaO z%jBmRuy2-OMCMS><;Zn9&0H?;XI8D_3KUy9^bLL3EjOaeKg*qHja+2lFP&QauvGLBr3HURbZpo)pARSmvdKR$WNm)tL3&Z z<0!dCF3#pq(=~EA=-A`dfZ1Z2y$0D{K>Gx8IsLOn-V8Z#(OPiXNQc(S4MAC8og54G zf2VbFQ-%Zbb#gJN-1e;lv)|~>Iuvjp1+7OXI7S23qr;x0hwJ44TD%@}z;ZgV9^~f) zs!7pH!`<8{`P&2rT{R*aq2z zUF6LTsGGYKvJq)MrA8Z(t;dwIQ7((~hpijsCO8&*i!cderr0LAq~!erHQprGMe@m; zfHwRs z^DXF8mB_Y5ZXEoB$yUUo`n`)wy=siay$yCT<0X z5_Djz+y8N3fL}xhoYx!M{au4 z%I(O1dwQ~64#pl>$C9*dpR68*)Xuwj^5~%GeQ2J|g##*h($_7^(mV zDz|@^x4P}#=`$tXXJ}m&t{&Lt4e-@ z7h+gr$l7DBAUi@T^FlI?f9cwJc^B$w-XF5n#1=S-u(ah$B)11-zlIgU>j7=LCPzyA0sV6g0twt9*X8dd_u_QQzdq^#D$20rd5UEqlW zEG`sm0tM*3bwO`7khlT}RGEub-Hl95flrtd3Kt*a%?lH5Wa_BAFyZQ4ha~76zF@i- zsE-;GClL@i|5#s@IXvfO)`QO?;OxTiDIa>~ZI)HwZEwn~sRFP@CD|J6adK=mo5glgr*qn5jsO~uR_G{0 zvQ_W9Ul5D|K~h#Z{6cea@_)kx18Y`8Fi42V8UaUaafBd5|ArD$02qLtW z_(iF7*Lo;v&sg~JGKlrD>trv0k(1-_>vtsarf%Ljc@&k+l>?fGfdj;G|Bv(>`_vfJ zA6DmF5`nrwXK4)9T&gC#hg>zm&Z_@LYPA5Pg5XkWu3S1|%kKz_d4LxF9$$XcJ&$c! zbpd2sM40%qzTNj0Cn!I|o4<3+poh6~Q1BPHREUAl5Loqyx`B4)ta8eB_Gs2kr6pUc zRb)zi*s9PlNvVas3li4H>j7=6q*Q0VDIUP+%2YQqJ#$r-J2B$W%nHnMH)UpJokmzp zCAyhGjk!zANey9%eoxn4$KJ6|&!-Ww2DmH1PCi1bGY^=V?#fc1pWHsC{z8lPP~0Up zUTf^7+;EfJo@rqPm5CA-ptT02iC$} z)gEc<6vgBw70S^Ln3bc9HPBN1lnf>ryJ)2Xl+KK`&=QL%Kfoop;aX^rlJ1sJX|1!W zvn}QFp_=(n)qJR4J`|Y`HOYq>=0mOWp%(d2yF4fAFc@nLUu`fq9Ospk;N}t+ zg|~uMf7WH!{VcktuXSI!R=zB?HG*JC?}*UfAo+rD+t2Re3Si+1mVZ%E$$MemmS^7H zRp6w1`S7AyTO;^h-&l zKQ=KTr4&Csv51skD7uu=j{QRErIZ?Qj+Iir{r_WV{+T+KR;rZlx#F|R+`AOn>)>nm z4S?Y&8mbWP`XD^QGK4mkR;tw+<|H;)n{t~)c&v?7-yE!ZaRN>inA|1^`hw}t&x&ccxciN)Z17*K3J8-Av|% zo7gNXKBskGg2IgR3O|FTB^vz=FAtZotOf{WtA!h1Ms%`Ugf;H-HSf8l*PATtN z^$&Mp1Zs3DhewuE{MiS>PiZ9&YP<%V+<>z z+=YGJsUNHTi|<1xQ)CULPT_y*xZ}ixXXFK*{;?K(smV00hEhQlfjJ9tppvH#u&17- zlQoo`#+FCjU8cC=nsG6E3!M9(!lP!dX?{&*nQ7LMypY0r$X*zTo1>_GEv1L=o0D!X zjtf;kSo z^hjlwVyX|i)=*8W&R5h-^|c;R3XCm^Xk+Rqoh8X-KmAcp35S7&SF{q(s?qpprGtc> z-T7!`Da+PI)mMs0th<)pPzjJ&S=tz*Y=%0wS7YTE6j2qLC_~sBZEh3AkHLg>Yg5I8 zNuGbwug#PNu(9jhT!F&jE%j)jq(MvZxP?*?PO+9s5S%(Kl?rTtHn^p-m%&^9D zex(%g6O=CwxW(16cV&{jwPeUFV#pLk*Sj2nSz{QuY~Gsi?<#oE?At}D1ffR>Hjd ze(S=^rC>x0pQKsmRo#Md;xWoy7(KSEJaCdRvo6+^I zH6}eNOY176#en<+gQxK4?*rb#V~V>n2;j@|DTHxh{9?1_$|4CDtYkt0WD@;E(0NfQPWZ+9A<#BAcZNAS($R^^ zkNntpcjs4p1|KPJpTxRT>mv6Ogj)bsGfzz za)IyUK|9bN<+~TTFIuaL__`1PJpD9!8ZVGUBnRF!naMJ#U zqtwJ*WLtc%4;Cv0yrHUlxmx+x9VYtsH!2ZKD%qM!Zbr9ULTxsqt&fxI7UeB0igULpurr>Z z8Mi4p9#X*ojs2>;^n}I5>;1|tI9Co}tzJUu2ldJQ?}JKT&k3{LTOL;F$7| zvHDv0anWyjQqvPkFKoltoKV&y#ZD(7f<@7klNiPOXv0Y*rudW9&Q;K6?+S)kQE*WX zKyiDDc@46Z7_^2=r=VI0rxvG_ea?JlrfceHB}>9N$(gfCaY-h6aaIYz8KK`fCDjc_ zBr7jq`(G!3%3W0INI?PGw-=$qkZ_h3av5U-Ik>EphN0}1%gR@X#jc>mf~L8KS$qtoIpm?Q9}uFbJiTY7g* zsfr4yd|heGHftlVEB6>}y{Rbl!%d|=rk6J6wxWu9nD!TB&YN1+U#MA}G2QxGDJ|hF#OJOu zjip1QeAnN+_UI+-E!6?b zRLL6c*c-*fpb5YE7QOx#D)J6u>M8pAol*z7`&sXl@&4^AfC~-4uc6Ud(FABE+;?zm zL*?HqeW0^Xdk^6`Rr~e5G69ErTAf@mLJrJotM0)LNMUL%n9HUDY9ME^TmCLy^g|u4+F_ z{t<3!3n`!xS=`j}xVf{{O|9?Qyf`vz?WVnTQ|B`nRL}NM+u*qDzK6O~!dp=*Jk{SJ zN&n!bo@YO4O}*86tWZ`XQLMve8ZMQ7 zMjH#Nz1TI93#qZVszN;rsVi`R=3!7LimqT#$1u-5DzcDxM)Q%?AjW>8G72)COJ6B! zWn;0bm=}+uaH?LoSX^gmrOi+f8x$s^Iu`1`8Ai1_TSSMAYAI|H9vRir*cKHwsS^uE zn#&`4m~HzmA&O@P3tzxTUuog<{pjGVQr>%XB{+0GgbD$A;p_kY8_X< zx({9T8AQxtsFh&yx2l8smH#g}AjU;rTl@tql*vcz zQxbm{y*_~q9nmQFwF({8d+t)l`_yxpYNm=^)vm09X6vf@yRj?Uik@m{LFwdeXW-56 z)MU0x8}PlF;2{+`tvTY{c!$yagN#$i&@ZIwJ6RXqvonbr0IEC8ah`k;QC#C zHee!5Zo2RbDnQ+v6HAynBp?&i)YlKjbWolunyFe`|ZDu}`if;+Sdm0<{pU>4Z-RxPcC9PZy{+87}>tU!;DEBf9!4 zRdb>6%ho61XB-8NBmT4yfh$Zs7hwO8xLEZP2}dtg18DhT^#TrU$1PERWW5A4Kk{9w z`sQcs#weq=XQgA{v8Nx^TdLl`1RA_dt?MK%kxz#Lc+jF{suwC7WJR<|4kQ6u&|_$J@<C|H!?h`!)Dlc8$Y|qcl`znnY(cL+O-HsM;qQrWRf|J(sk&92CROmGgIm>3 zQn()#-KNIW+qV{78Zy2u_OQ?bv~s-5y;njQq|zmXAd3$7dwK@L>~t>=^AtqREWez(CvYJULOF4Mwei%Brf2430%@++PX^} zfcc=vZgra^1@@)WdsN(;?W;Z8qXxT6Ropf6Z&-5iPD#f@>TF!R)*fZ6o~~@P_VTE@ zLChdO|BhOFpdI~P{f7B1XscI*m;TB~V{xxW98%HGROf^`#;|{xtMl4&0dZ~lsFr;~ zEs1sHYkGJR6X7&6oKlxTAm4flqiY0}J+1x)GX#D{^>izhT@F$C@CzjFb{DD!xN@%VBRMRBS%5B6FQcJsgQGLo_Qg->WIuchdwov=4 z>TIcQhW7BPy2X_>)t1~;cQNRSy5CkCKqS`@0GDITd$&RF7%|In7+I5gzg0g-K5*ZueM_vZ431A6yBB}##%-L4 zbxuTKJ8h+V@6-(ep1?zip<6%t!YWP(X|M>fTWiwh_gKjX(8>4ea+avYeNZJg*v*WT zjKMG}nJpPRsp*xFO3Y%rWv>pT*fSSvuCB&+61$P%VT5^SWh&)i?2Z0v^)N1#*j6g< zZEOO;KhE3uog2GMw+b3hWA)rt$Y^IhsDZ)QynsDK)Wrq6HC@Xv7%xhAN?@2`{2F`Y z!-_Gf^1(no*t*ZrVykX{UC$PO#h!IqpvQ)C+qetj1lKn1FdQ#?<^vj|8v9AULE0_V zn8pfJEeN_;*a0=r#+rdNdf=Ru42ZRqIGhmFE5)+vV3Jhj65s;V!=>uWKx@8<4nmz zrN4uXbyz7aG{lH=kC~KN+;|(dS#wJmyGbTrdR@X;Oe$DN3kWq%W%4jzgv|&97vv#=g={!;x6J z=268sz|+<2;!49Jj2~DHZD?)dQ!mz0>(kKK*$sl=?k2`&5=3&(=Ek#ZHC=9QT*&&- zPc4l7*mLbh3u9GxHd`~cF_z~r>8jt$=+9ni-}EwaX4-K|a_*y?_Wg>Os9S4^y^X&z zNCHuPjXhw+GrzC#9`?_ce#S1Cwr}<`78Y+=yzXx-hHCd8VEhS_clrS1WzTB6B{j$-ka2TR6k(FY37wa%wVUX%x+c0um@s}V zOxm7rjRB19)h-P-!op{s*62IbG3?sIh8o+bS!ml;cqIJ+K02vi)q*B^>QG}8-&IU> zjXU-o+X2{TZ=ef9jTKoH&2yNso`lbfH~GPMy@+Kqaxr-Xew`Z{agRp~Li^-)RDXnV zw&b2lmq!>6L0n!MXT&#yw3Bhh$`X5=InuaSlK2sA|7g@|V7Vixx7bzolxjM#+@4ZT z2Nv5CTWJl)7%xjKN-H+r7*GIeiP|Yf5AoPUeXFsx8@4Jl?8g1BxWL_Ex-k_8H+QBR z*Robx+6<#zLV`tS84J0>(zwEGV^ayQc#NEFJem-)9_iV|_v-8^yL4E5nb4jxUx)Pr ziIlNAtRG0Ebk$+~KqBR$4vV**>?u(??9kz|I($cm|I*8u|GC0G zUE4dyxXB$lx8aM7gS}afc6F686Z*Cf+N|}){!9w~puOKE(|3KDl#?n&7589S( z#trVUZ|L=l5tDu&GG-Z*Aq39NGNwZgsqk zMN(Vj;r)P*7Z*|!+flhg#uluhHu8}1M_0*bGd((DELFgn0H337rea5p-9kkMMsk~7 zs8bMaf(X}3qC>z;2j$|U#(Jo>8%K>vaQYrI&SibH++#+lSVmBZiT^Hd5fbQZ8_UICxN8&(BdD|mXt7s;(3;I0rnZt# z$s5c$sy4b0#&LN6RXiR{89_ghX_krRrM8%BD!ho@q0} zO_9O?@Jc^S^UOV1maMmiBX z^Sd;%p{b0|I-I&XQw!79HZ;waB*P>vrm+c==`t$Q)HL2_-&s)T)=(E{OHS!|zTDxTOxyM_XBEh3fDX9S(NV=y0G8SHR?8o#m&)i?@ilMjd{j zh|icYgjhcD>xV;w%H!_Rg2ln!_G z5NZ9c!&7zmaDwhxr+W_S@b5ajSBKx}@Gcz=^c0bIIO%nGn-lLP@SAjaz7DU`;jZ2S zze#p%$LghQr^DNHxRVZ#(&2_W9H+xk zIy_Z}k6jadhUxJB3j!V@U~7QrG4_Fgt;u`!-*xYDwYe=!{vHxf(zdrTsaQ9Y=x96B za)B7u-sE2pGRu@+ro9EQiE1z9rTXnTj6z9}pSf+m~3mm$|poo%{Y2zsS~D@`Lj zq2jr+!Bm|c(3Fj)A3UT$56!aOv_*mqcf<};88%kyv%_?lVTvjLi>W@_t$qKC$&PCs zG1~iIO?xD)AG@Milx+K~IE)2>pv zt6IH>CO_so4{sGZ=YYcHwLXtbDIPv0%s`2;ow*F`tyKII8L zd|{fxwrZnanr3^lewvbND#h5bSrO(`pU47vJQB6-XUx5U)~ZY9vdpKP=f{AR+PAJ| z6nL{1>S3NFIYV?gcqMK1GDm)ac}@Xh1){&VIRdvC7JHkUz;Sq+hr{Vo zz%yh!r7`2nXE`s~$BJ5$gc&zu-N@orjMgZV1+sf^FXJH_&KR9iOJMcs~; z%>$kIIMhz!I_-gMh914MR#P>m~ZFjACqx+r-FXwomdF6 z{mkRp6s@tp`2b_*wE{)V_arPo&w|WlCCNX6f`iR|c$P0B*gOEXJ4=GiEpbcWVX(P7 z4o+i3%s*jYbU4J^!(Xk6dYlz1mcHqIbU0YR)~Z@`akK2oZd2Qm=7}sxJ73Z)i8=T} zDRVTi{-w=baCsrFw0Rg-`oBt}whmB*FmoWB=3(Zq&2=tx>*5T+P3RgOWiFBy zW{w3H_cG>xU@a6~*6dHdWzAJ3*XmTitU1(tU@fBI__FSU*WxxRPBL&w-~f#&YhI1Z zB_+$5hoEQAC}%DwN#(RX<;*^k&qTZ~>uiM&+W89R0I9&COTajHT(2vcYcjS$3lBH{ zz@*5N+KMX3xbLhBpwMeyc4$7;%!MT1h39}0>xwnt4wbB7Zin-m(QuprdMhK~LJf13 zFEQqt=5t?Qv==o|MbP@zj4&_si94N_lJ&86Bf?yOIWhVI_L!d6HaGf2GUG8diZp*K zl{!S5BF%>jzJ;dIYS+&N5=T;U6zVDPH|>`wa|t&_bS)aSP1@UN^JG`nmXaEocR}8W zjxo=aB&fg6H!+uFm$bJ{%s9vk-Jxx1WBKnp7ymj7sKVLo9)eO@%cP^2Xia&5>E$nluyy^$R#vJ z_RP5y+RahmR_rKwcQ=f#~Aj8)=uUY zZrGWg?`rN-#J-%lg#Qtq?fnw3TjHiwT=|ew;weg_;{>(qX0HB!IC~$ssH*LK_zaSa zih_ynT~Eh;iJENw86(18idI9BSVvhtR}RdD|NlAr>~m%&`~^6yu3z)|vhLnW zYyE69HLM3TbzMWOpKrmB27EW$9NK*zH1cvdd_o?z;^vscaY{3Nj+ulrQP&*v>OOBh zB8e3B^o~csZLFCZRoAt%RV6=N5i-{t9CM|%JLNWS5yI+C^Pb)>thBl2fN&KF-&2hN z`-64ET(d78gsh%xCUpJ!VU?`uz24e6*Srb`4L$SBGrE4D)XQ%4es7J*GjHzkT#dM? z*V-byH(Af;nHk**b<`!^el^x<^UN)HLiXf5b8|@ILhGVy%(Ft`|6$#7jkyXBlm2^+ znHkdmAJ&9x&D-#{&(3SjIsIEVp^Q_*@dc_ExL;8BQe{b7(LZWUYO+S>n|Fr)d!s|X z)Du6*IW^pJ^v1=``=0fFzInZ4vUS0HGhMP;HQyW(lDyE`Hs8F^@h|JQ`KBA6Ho9wp zIX*IZAzEs++_SCRn}~UBtxNA|T3;`~M4N5(zs~evV*l$pb6-gK1J;s-=7ZS$MJ_^% z&$lKn!l-%6TDJ(x;CoiXA~OzW+dnTdhYt8^E)uf6ZZj}XwV!^?d1#(B_Ih)a<43FD zdJOqIYt8i-i_cj9yxttvKQSogLU44bj#+H|e7$*Aw~5tC7v;q#y$0T34(i%lD|&kW zV@h*7UF3IeIf^^3Kn#sseKY z?g$$SOtb3)>(S)>@n&MZ)$>!ly4LwdOyP0YSc`8ozYZBV+q(KDGd{v`pK5dcxe)Jq ztMVpulNb|kHqSl1|GmnH53a};eT8|SS%(&maqocrj+@Pt=mX$*m!tGvETXG$^)HnV zmw2z-`S#7`<&LO7bFDEWrVxHISAU>QTITd;rST8Rz-{|_$TGixVcr9z~QuDmf1-Q0Y zX=@^*x~}>&cFn)oVq(dAiyR+JwdTW~c3xMJ`}$Nr%b!tYB( zl=i`cWOrGQtI#-}AMr01ef5(&x535j`9<{AJ+R;I_>*H-!73l~KRMn6TfFhTPKr2C zB2H;`m*E2pNdGtdTUq^~TqD&lj_uPSe2?vp(GKh39ua*eH%l6xKc#3m3G@~3ZD{q+ zjoB0Goa{^JH-AE3Ga*;GKOy(knbQ&1?ddFjI)wzUQ%v|ZoBqnwRZO;0e5bPPakazxq6>Z+ zeXpXu0`a}iDGe^Pz7)MR(5SqitMm+(lHj;R`dQxnyG!}^5BN(RWT1H$D$AJxi}wmi zNq!prbd}VYWLL+u&ikKf^*br8ZYnKwu}*7hP_bI?mWDZ1vEEk}U91Iq6xKtfeyH)x z;O6u`ro0CSD&eo5TUqQ)w@i{jr%2z*&y8JLCS^b;S{JlM#GZeJ6j8QS@>0zd_2cLx zRT{%2^+4y!?~M(Xf|LzY#TkVJ)bEY8sr1I!y>V&#ShQv5Xszm!{m|HdZ|r>K@sdjH z!$3{EH7dP}W+8V@M~`Um`>+}Kam5+R|KD?D>O4LbKCbogxcY!q3tJz*L6I^|)+@49 z6RcfuTcAmWB3EdFPJ?BtCZ&pu(WFF?!I~^r#MGo%k6ot zG(`q$lB$TQNs1z!HNmJrd45Aw)GkSpuQib?G?pz*@Q`2FKF#8lX@@3piaf4KtRmH# z#3)jxNt7Z>HHlPYfhOUKT%n0mk*S)5Dl$e9SG=LvU~M{vIbK<9YSOMqXHAYO@*BQ# z4mFbBIH|1uT9Z~qKGZ~>^r1qUv?#JelV(L8*95l+aI2n-`Xf1P{=v$$3EO^7Qnygo3sU}s5EYPIFFkDh2&B~Q&swSn1 zjM1b-k-pT8QH7P(Ch>I+TamA|cnz_*`^^ zR_34+bZ91eK!>u?{5q6{lIl<QEvIm?raoW_$ulsFm?3p$^5NggO+90_so<3aCR-D4-5SqJTPtOaB!*XspF0=8)XhOR-&Q_5U#66d3SbMfl(qcCImQPmp=AHm_-}%xqh8 zU`;W8Q79REKJ~kY_&O*1?;aW}@oK<(5z)Qe7lyh^j$!>#msq@T&|vjnX`04L-V4vQg>b*K7vdW%lX!BFye7@*QDkOUWL$c_faoE`^KhZgDAVxD1J7 zi=nF^7hU=GAMf>I^c11|@^xOj4^0QHJ|O>Yt`ntt?zvo=K(43w<`#Kl^IR3FUfca! zr~yj5LASHMD9Z!BVe#J1V!=llFAa6?FlHb;Tb|KNJE&JH*6BqjYI zbDr8qr>LCp!&RlyskS@@FpqU;J-4TP8cJDRE zr!ss4S*dxt^EFMft%ui|Q7-vKIq$=w+OZz7aTz9H`adV{7_S6LBJ6ETTEd?X^_m@*t#1{98 zRx~7wwmEGS9CPDczE#T`r{dR1hB(Jjy($fY3U?NZ&b2yQqDhU^jB1f`e}fj1A3$%G zN7DF_a!(D4zGhmZyIK`=bM0W2q#h(lZm0O;fhiuN=Q#1xv%0BjYza%I_e#5~X7m>& z7QfG-v=vgxbi8yivznzOPr#0q zEEVrsX}5rbvfmv@f4AxZ9IW~3E7RmUoxXL>-DZp{Qztg&e z=`Uvb{%TcL2fJJ%(OtS9e8vtH93c+=Ij}oPval_2_;CW&;lIcd=X0|={DeCQ>9521 z;$&GyeY2^${%k1pM88%oBKyP>H>e)DLfVt~7Ys6}?vXq^PK;!CwbOS&;WD~LB4Y&# z_r>KhdJFXKvdBvuR*(B4Vw~BewuN+rsCGmlo_ku0>OL-{CJg?cV)mDNw~^SfbU&eD z=)@2FRkIiUeW^8SziTNlxb})b!Z^HjC3Qt3yOE|y2`|D*N=68RLhp9#IxUaE^n z7K&v_`+16FzfxUqy}Q;Nkm!);@@0r;=6WxGV5%FRZt~Z~e2JW(`ORN~TIjG-q zxjR&|Q9fKQ%O+M}!~2k`rqy$uIcyL<$xkO4!?VSL5@y+S7g~?G%@LRXwnR)3JJK&G zU$bY=x1nn*dQ3lT80F!2tZI(HC$|+zzr&HS>O|y{#(k6Hq)NDb!|%#pgqXgGf>u5# zDeaTly}%k;VLsTmClssrb-~I}J}d@DJYlRbKMqMKvg#^vT))|x=rJqL7>-T4+jDsa z{=Hn5UjI7Z`Bv*&k2yB>y@}%Ru-upM!uR50gr}6c@m0j*?=j7x4+zJ6e^K`P(t@b^ zYSE$UpW1Y{SS#)^V!ej;w;%A<-`eG!3XpJ?r=GDk!n{f|2M z#`aHrbHM8Ab>`fVVTIPbb>?})KfT#u;M1K0(cSnmx%fhzUb!#52N2hv-UB<|SZ6xJ zF1RVhS51{5zRL;CIOhUs=SX`yx8vZz?YUjN*}h*dbXX%wBKo`Dle=3v=3K_Kc+B}6 zqTs0c&4|)t7^d#Bf#*pQ4qFm#mFQ{ExT^jbt-mp#2L1Tt#pzO=gN z5YqaCX}LDo(rUJ+kO4v zvoEcyf{Jx)zSL6{OD`?{VtuJBs#wc;(%Ar&?Dlq_D{WS$nv-k93(9+}R3a#yhm^(M zbZaCTbc*z?oOI61m!?4{%1LLxaZ*Aq0X*oOC`ouOki-LhD+irpRXHwDJvasN<)HH# zLwR3l_r`+yon%rrQESz*)(DOLpz~t!z&)=VUrtm>P8*9HIgy`)bxlT;e2I3d`o4S@ z_OfZ=ZqGZCB%N-PBs@RKxqeV5&z9(@^Fy$?J>B&Eu^LE|Rh%P%INp&;bI@J^4COPR z<@XxnX6MQ)tS>j2z0O~k3~k^*;k#>t(^!(`E^AAYbdHLjJfhy5AnDjHHMbxg3!dGdWcRU9_b((RBZ|q}CZ<5HK8zeJU)U7m^AYx^8v^9?YmpW=>^L0 zh)#9&BkHc8Hyqs65js&dxbcdp%+ovIR*r94WUj-thnm9k{Mp(wyjarxq^Q5!6EV^n zvBiuHi5_W9+hPuNwa<}ao?QH9rSDk$ZUkal%WtB?(DPJIEr+EZqTx981%p#IzUR_U)-;URaPAITUin$~BQiwjCNL>VUd z^26N-l)XfGxzl}nxO);-y_+R5PW#_y!Q{CP{+Yg6BHOoSs8{Vx#E({tIX@!G^(l^7 z+@2}6c+bK?E~`J_Ufk`uP+N5SAo_iN_}`XcXi7L2l2qplZ#M z(v)4QwQ9A$PzvH|cSNj~$1m744%aOyg*->RJs-$jHERJm4sth<~(1-i8u zPSWS^V~Xv=C*t0mA`i|G?+5FiCvZf5A?$LN>G?q)!K+k2GLZM7SzWymRECI+CY7nk5G4>&)JTD;y}wn;L>9lvKF0=O?iE|q0dqAk}} zvrpJnl8@(a>!GcehH9qPRVuo$atj=0-&K#t#F4J}5p+^Mv)&lV+UjblJ(s z?eM*f&)ea5u8=HolMzvx-9rZLxU(dM(`_j{3KzVb0gbzQ+~xSU!~O7TSaDNvs)*MI zB2K6te^SgW74wk0Y`n_yOk_}59bzCkbwB(Iei1_^B!0g7grQ#hnc7VyI9N)eJ_@Ku z7l!jMNL=3!+tV85PwPw_LR!5HeQ)immGXFWT8HfYZK0&U{I zAHH6ta*kNkW_gliWV^Ur1iP$EQ&km51yV@xCW#44(?!ZOMohL**GnZlZZO~cX;mc{ zABgY$SZOBNH2a}Zc|lj{nIR>y-48#h{4Wal`)@p}lx2Fr;=NN+!hL7iRF%{rQ%*{2v`P!(L#MSks8~_|GpRo>lSbFYa_RNV3za<8D4QPKoZfep_l!U#{MCD2 zS?o>suq1;{k-o*3A9$C|kes9w-Lns2%Eq{7Hv*#Evzq{N12-P`FLz1FbM-#cJ*7de z_E)K-uaHaweJ=OOGo*ZFSEy3XK_99Yf?|~SHFj^T7a^i8yIO12qSl7u*zc3CmEui_ z!mkXinTT6uH9@P#%VD^@)$4gKN`>^J9~A0Y9leix$6{Gpa5jw((PHUweLEQ6cIz(t zT9qoqw(OLs`Y*L{@1Qo~QnSn~FdXA*j3!ehUhR-3R@Ain6S}%imgo55Y1d!_L?j~DCZw|s;TOk_NH~> zc{8qi2ztuxc?3mvS8uiwx0_?;yT!+2Z=Ge(teKq3sZ{+Pni{Kvd$+nU>X}uxR7R{` zWo2)Rj-9O1QJ2lY+Up&zw2xbFZa0UGJeGx&UH|0 z9A1Sd7Zuy?;-5-8%9gNfUGGy`m%VRRib_WAsVDX|Fk=s+)?nZ6g%^elmDoi=S&W2M z?mO_|M73IB?Nrm!ww(0xc9&H3+Nu|L>*pPKi^Y49R7I^|YHjPVc)cS=`wFC2O0*|0 zG8mpus00Sv_SE+)jlGaua+kv(4ZI3dL6Xh!U%&7wuy4Gf$u5T^Y86>Dw=B z@k(=wMZTLdNbQh7plZnD=L=QUTv%NtD}BN1xWFD17mvMWuRw#Ik)iKf`Bvy{E*I^M zDvG@zG6c$$R$nD}q4r&8To}@9oq6Jgq|rOU!%h~!Nw!2zeW{5P5C1ytUeP4cx`{Fa zZ{__sRPF@cmqo?5ML_SlS~JBSi`fc0*MC_*)pB-F8RJees@!E6vTFj{TFglu@g>;+3YhV>X?Z*Z9={--<5BV-+ofm$9<+$9W_Zu z^~Jo~Z$2qzfzKqX{>inOmf;vC<+VTWD90(SdfpMrhT)ZWNQU+9OXeU~KF%`Sn@gwQ z-!uFdPb}bHO@+o2c{*bICKLw2LD8xwJ?h9L!33@Lo&hJ0+o$0mdrCYE!kQ$B`!?lr z1*%es7KlGr;G{d1s#R3Bd=@Hgn@x+?F(idctbe?0o_S6jEcgvRd)j>^ii}UO*$u{2 z>!+8^{(aM>uqDgW@vqK{Mc!`>-epd3J=Zr-s^!ug8QAeGmin`(*ZGu#k&sV01Ijlu z5@j5_%hu}FQrnEN${WRb1nrI&X*(f~ZMvKev+cPLo?rF9Hlmv=4zmiqZYxSF$}4Rx zhd@{=a{Itxcll)eJHfUpd*2W@EGW9&#mm0XJt39$9F=6{$j^V9q?&XsjC`(RHTE+j ztQD`AU9b7PmqeK*39qyF~2r83qK>^RE>DP)3=K*bn_> zD`uG(%6?ZBa@+JbLGO}hGflpB)0Oy1SHgDFf`KVA&>8OlFe4-Eg^NUGAFur<{% z(cp`!xJ6c-CQ0abh14n@rd`w)`3%)Pwk`7a6IFa=RDBl|`5l{mP+z@8e$=Onb5{pt zsIDoie0FS+gY2q6*ZS<-BHM>VhSJI-@B}~$Rl)|H50K#eyiS$>*1DW^PG+P zxT}ZswSKQR&vord6P>+zo`FW~k<}zEyA_etivj^vIyvqukWp($Dv%cH_LML#J$xV9O=3<JGeP}VrV zwZo`8GF}RVomY!{^N=10d;aQ7K000t8c{5GeD^Sm1@~2rK(gORjEYyQt=-n^jFsZNY2)v zt0Q`c7~`#bUFmLhr>81;$!{ha@JY9CB<=JaS;fqNh z-D}3dt~yW0|`Z>|LI=$Y&Ycdz$WB|&Xk{b zjZ|MHu<~d4tDNLs5INOY)88=9>>ecr;_d_Q%e`SH4LY}{DxZ!aozb9U2tl>Lb z93+p!(e1g)n!eBMpRrO%*~ytMIytqnA0#zhUnVtKB{dY^j(N}gh(1Hl5{hEV&5{(r zclnjE(nYzxD}}HA!uok1-d%2y^x!W0Csp3+4@83_xhDGt;uTSPUa?KXr<7(WG?mq> ze^#gS{!w=iY;waiOm6JTR!GNr4%=GuX4vJ-b#_meoKE+V9<-fKUn)uKmM(i1T_FpP zYE1jJBvI0k`+2npo@DMWX?Pycqf+(wUt>jcKMI3k5v$*1k8xF&U9QJZ6rNz|P-JD< zxjKXw-Oth?RWqb{9{HQm0?02Fv9wYLLh@L!4O^CuJaSW4b+R#LaFF&SSP1%idCxZHld@@G==9 zjkFDz3sS6IZ<(ieeL;n*Pu2p})9D3%Hp*oHneY7V#3`a(~yUeaUVs(4h z>^pfM@jp3F_!CHGt8ACHKApe&;2hc z3YAl#^xyN%)%8}bJ6w6=p6@pFOl9>MpLJY>dx*L0p-$3VKiSfgFFtU4-h^IqaLE8~ zflAinN0EA^=b;}vF30kf3+}QflzgKiayQ(}B1#F*hSJ{%#ep=WXVqfdb+q->zs<9|5B1qFRNk}t z9W+OG>nBqdzkXika9Xntn#0T+M@bIY8UAe>(wA8e9mIPbr#Y=12hF%Eqfg}%B1%se zTVdNq;)Q|6qO(s*?jso7p4Boze3KKyYL7L%!HmuQvonUOei@W+Gu#Vz+@RxqnYmH! zvJVZ1A$MrU;U{-!ol#EPDbsxIjPEC)-j)MC1khk6bnA+RL7l^N4YL{>@YP*yJ3GB+ zzIfWX(pb}Pj?14{G%s$!%}Z{|$G?l?iWbg~yJ7yaYZuO2bkjLT!Tg)9D_Uq=v#eI-(WiHTeg2h;iWbhanqL?cWp)3^bXR|5 zcCiMWH7IXqWTSb|flYu__(IoV)?bIs8?1G8T~FUx^|5(VSj^;k*Dgd3{JV92(Pc%8 z7u|H-IP1h0=3?{KqIrvpj77IzCOALexHcs%XeR+z{hg z$Wh2?lR}KukadvTCWjc$K{j6;Vmthm)F;+r;hM1p)7#Bb6Fkaq*hc*9n7}r1PFmBuCFdl(S{FlR+{EWjm z4!IKI0)G~A1QOHcFusAj{++`(47oKt#CQktJJM-+%whC=++nQjrKDf3zj1Xin z9)_DB)ezSc4&wwQ`0s7lMnInn`5oa;+a1QW%?=~~h{O03AD@1$TZnPj&kiHusKdDW zL)ekgJI`X1-RLl0$#WQgyp4409madd97gwj4x?2*^xowzhtY%`VK+n=);+`+_Nc@7 z^?jXrArgB5wK%`UVa$eP!f#r(!>B!u0wcp$kzmGqSVK^dLe%OUOD({CVgWPUp`xcWX_fH5f0zfpj5 zk-_7&_|7r-jYhZpRu2C)s1c;=T8Hrv%5MMo6`xQ@)4H|42dWKn`Gcbu%_N zzXR6-dqH;wTHqI8G75Y2UbGVYM}U7Z!eKlHpT+RK4y`r=wtFDkdSD)0>M+t!ffD!@ z9UqE5de&hypc}3`2U`hr_y~;Lhasy&IvJOB>SVkDInb%ox=V+;=8nSzfyiGCupZJZ z{CuY|B*kgO0jEGNh2%lxuL@WTX@ImrB2&Q=FnNI4kU~feq#n`?F)n}&B7ch}b~1WS z>SU~iWK8blG9I4X$!LL$$^b$h$n0eN2zmCRPDZzjI~nni&5&myuR``ga<8qwFfkn=Bm-cZPYC+{_FU>T{&gGTL+T)}Lf(Kh zKt6zc3ONG#4)PP^DCBQQNU_rhgLH>PLk2(+Ac>ICkP9FeL9T$zfm~bcbQuc}D1h7w zSq`}yQVFpjk3gP=ya;(6(f~OOIRg0^astwI872cH8qyzf79AN`26853IAkPb9Aq-&A{YLd37G|%2U!RygcL*Wgsg>BLmq)V19=hh zI^-ba6UbMPHppL)PIowsE|A`kSjZsAP{;_#7|3`?24n_g4rD&WRfvCXgRF#h)F0`d%GJLDzEYmm1ghaewAK8Jh*`4w^k(rr0v3+W3P1Q`mErSL&)P!2*KUJ+*8 zerK5R5@e<;%y`lj<}xZu!i=<)VTKFx9Ap>db;$i?VMd=dVa8C1B(femol_-J1N{?_ zry>7W8nP7BRs^SkQbKRq+53X~mTieYAjlpc#D{|03p^Se z1<)5{N#Hyv?0r05JNRoj3EV!&GQjNxmiZ2JwAC z@!tuuzYngyqeoJd7WfbfdksDYx7VOKh#SYljC@@l6~7QX#>T6_qiwtv+`cX}9LFN8 zrU47k1_$-Z0eKu28vC>v1#T};3b?(%so?e&oEYSvjuFt^R-ki2a1pjQ;g{Iz*fTi) zG<_M7IMPDT1##aN#%FI1>zLj*;Pye-Bc!AK4;LKled@qcYmX2fwDcNS3GJge4tD#x zFd7`6r%-=V;7Q>2r8*m2uY9^fu6a<{NBIpw{9jn<>`hwR-PxfJKLEF9&>Y#ZiEDax zETDmFg{@0n#_XVr$AhQqy|b@LYtF!K&Q_y(aQh%?1NR+fNR8uSoyI_$e>V78HeLcg z$j>qVYM~hJR~SY!c$|$#_QUSZ#*@J97ppvQ`yi|bw-+F;ztcFw7C#N#pPvgQE`(yJ z&7lUImq#_|>cQ;=_#9lHIOsn7GKd=kI#wVXyss_&+rfQZ>XIhg0EN8<8^P_f;1O_p zhELiOkoeC8#jgjqw?G@Xy#R4>PGguZ5U>AG*!!pkyq~Sa4dC`!;RUx}o|6VTjq_~& zMc@t_UkYxoz%oBa|4R*)`xTrPLHw>DzB-7P2XQyJeO=iIZZFU_pTDgCQh-;W@b!uC z*McJK4dVNP_~0`;t_w{!cFZsd_QAFmxd&WYMDkY!*bIfe08fJ3$H1;2dm|I@#cu<* z@1Rl#bu2(GxV;N*)LiAS3Q!p2a4WcdP~H~A?+D_qAigSy-yOu=;P{1%ueV3{pJy-F zdZm|Y>4vd__=7=wQxLBS;*SfrE`K3wa1VUXM z3m67&uW|1ny9sVDzyOY}?$wD;dl0izmlw}9JAe|wO91$dbCSY7l0mwm0M405Xix0k^RvOfrJ&*sq}`{UsD zVOJYuf8K?|8+$!o406~7ZqMM2Ap3rB`#$i)Ap7B<_+JLuzj8rgFX2x?4!?lghsp6E zyQ8FI0lR|R=RtRH`zYuWWRGzLB``3^As*b`1!o7@&jGi$Kx&YE0=RviTohz?O$&0! z338YPZtsHpAp3RT_KoV&Ap0_K`@XWQqa9!K4269VdOA87>%i>=creJm3EbX7`q7Vn zu{555-Clt09pa;Nc8Y`b)ytR+_KJMi!Ot)b2c`3Mko{Y5`%wBd$o?C+eXJh~vY#ly zWUx0x=*o^`DGb~`mLh`ey}<1abw-fAKe&A;3=Og;uEgNBkEL-z4i|viYnTyazX;r3 zz!^dI--CGMT~6bsz-7&7b3tLh&+N6TW7qZtx3^G#aC?nLf!kZ){Gj;R-~((KPActq z*>u%HVXr|QxP9!r0d5~7hl1>11o0n({Qm~G7qBy~+qMe0jGj=~2Xjo&g*`5a#|QBQ za9e`LXmERa?}6J3@G*FxLb$NEK@qsCG7Qh%9b2RZJl)oW`_^<^Ab(uj(Lbr8<5uZy zaC-qpSK4NUT-e7#VP8R0gZP9XJ_+33WfukU8Q}I7xC-1phUS3#wx{aCeoasUH-Ou> z{MF!rCNqrf;PwLV4B{^Z@mIj@1!@Cli|d=Hu^wBKplW&G_T6R+xbK=I87E11umpJt zPNSsWX-v4xVKn3GTk>W*j7G@nIS%7dh!=9&Ts*FXJPJ7snVIJ>WH^z#3g=qQ5zPYBj4`e>x)y_VRiYM!mv9WvnAl` ztW((~dEaQT+e5|&3h;l~Pn-JN_x(i#;`>yFQ$7#MzZ#qu$)7a2 z?{6%AgPngaqaPEnKU1|i`0arnGmMg%{sfHpQxstJ=zq`&%vI-S62iQ zIOh}@Y`ijHPxjfZkyf|pPUFTqt${~+^tQ%Z-MYHKR87$fX}&sNoD+!bv)eOYX|qob zl>U_QGiaA_;QO0?l|OweV{deyiH8FUv%sQF8+E|D@eEh+M`^ zHV5Yf|7`I!lkrJjAc4qJ*q6==*!$9MA4R9K2iilQWEj1!!Fvsmgi~Z7B@z3+YdaZ< z|A+l=*hkThj*de#|6g8yC*x5_RcKHJnZNNr9hgL)`JIdgNa`tSC@!b4cZz#eXSQrX zpoK0B#COEQuJX4#Os50-NI6L2r?T6dxbeC`26=%DB&zzWT^O*J1kx9quK&(O0f!no zU@q#|_;=6ZfW6@q_Oosc*t4-Gkw1IdXJH%)EUse=IprwO@O3OHXNx=RC?e@t$ zWJSRK+bQhRZ1%`BT|gB-QKxU*YI8W#@1TtdD{#OB8MpJ{x1ulU>}tS++Ga=wp15Eea&Q<$zPHn;h(Rro$O6dwkYb!9 z4jkY#?gcK5!@CB+LGd^V!;^(fHxRq=E3qM7fGwwNBOTaU{)R%`ge{^Qo1&4}=ez+~ zwhpf+;Q>$*W=bvm+7W*lD!BzxgTglajD6$hAfc#nB&6a_ylnx)Heecf4qD(wNIB$j z$PS21yC$F$1@DHIiG#=`um0~aqY15W5%}XsV=FRjL`!^z@LbrRfXJhi=OAxEnjl}f z@Xue6zG&7FkgFhzAh$u>kjEijWcVuZBglUtQFyRB4Dw${EuP0MMGa$6`$*KT2I1!* znPtcv7>fc8hg=6)2H5~ffh`AVMxwP`uRyUM(g0~iiSHeV?&yxUYrtdClu@Wb45S?0 zkpz@Cfii%3ka%>}(!pqQgdc!B4%rWBhSa04%i#MR!aqagu~#3+nUHdHXDTow1pR** z0yjcdLw>}d`4iF)5ep$Q{i=aaLFypyLXJX?LAsxYM}81T=P7$3lCkOh!c zkcBA72HFhK%_QN|+2+zd88UjAF3kDpd z6tW$%7t#tj1{u)RX-tLWK^8-HLq3L#?dCM5LtcW6Lm`UFFzSKp??TrA4*)}5XzI@p zI0KjjIS(=qQUbXjG62&g3$g{RQwV$>@+Ra6~6d9;5)`f;K5RoP+Q< zNE##yk_#z>EQLG@83Ui!MTfV(;!yLC5pITfAx9y{AkIGM|ENBAR0SzSgyFzsNI$Fx zLm*2b8z4_WUVyv?c@Od#bQ*ggp~$>9WCUb9mZvT zk3c?w`~o>231&fZAq9{!NEPIAjQ)fOyjKR?1bGc2=OWHkXkAEtDaI8fZMD<53bGX9 zT7`e^g=~WCgS@{6%~Xa6_nD&#Pv9dao$odvlavH|i>$n%grkpDp1 zA&yF{8IZ>ydm-;b4nv}_<`05QfaE}KgWL_-0(l0~0BM65C}pAkly8A7#-q!fz^@@s;i;rt296>8{Xj!q3L>z?Ck!!+vw+!U``pTsAH@j6t1r_?4>-S+QNpaB!AkOs1iC zE}j!I!c_>%sx6TR%rlHD=#z_Z9>cF)V;I*X+}0fv=UT%kW;l1gVU!{~3XL%BdR-Vf zSt#m^%feZBo3P9S^Dr=SGSNEl%mXBjDL>zQPJ4<43p=6TSa(s&G zV}vE*`v}XQ{3{b^&k$Uf&J5^|mutT}>-0^jSY#Ya&F8$0Ex;*Kt|a|(6|wcfL5B>S9Tmzm0?i?1xNT0b0)9^xX{bnC~%(S!X_en$%iN2%#p4%u@ByVQ3~wPjVuRAVvsgQFbkn5yj9 zf?d3UR9i6r7OYmOb~)D0-mx})g4!njp{cJUq%-A^H5G@;`PLVops#Z2;_C=;k+)rP z;Bw6B*#wsgy7)T6=TZWfcx$4#?4paWBg7>ZvK21-wM#2qUd0k3f8ruFj-9G}8vIbD4H<;$oPF6q`taoI)} zUw`>h*$bC=Yo53?(WPZoAR}p)cDOWam+-%IaeZCr%P20Si;-&WkyKLY;_E_j$%f>? zCDa=D8C(kBqPsAVk+jRqPSOEz8Q|Io7vG%j4;ietFU_wqeI(2bM}o$pWX zz$?IWf_!#$@ab%{f*1Ab;xek>xDB!&(jt+1cT7C?Z+qf~krl+3+qe`bHYol!n_Vi{ z)PdtRG5okbdX^rL7syhBcvcY44dMksyd;QM1@SF*?m~v!?F#UwAl@3pj|K7Y6CEoM z8^jZXcq+Iot-b!lO9&t0GAIY>n?Sl^8z+seZh7y-Ru2~!v5Dg@gvI6rmR0HJDdP76 zE;@T4;`c7_5Jdbw1U5rtj>*+bu9{b4DHXq4fMSE6%W#3Lg^1%O;FA#PinDs?gk=Wy zMfgqVW$ensx4GDt{u^^$5{owdi5X4Mc_EV4aiCO4(h3KrVYek|NzLEwi#-Y?RE{aW zMI{FMh*;(sJTA1!31E_(u|-1C&;f(k(?;`bU~eq44R> z)`|wkLL|Q2_W9yZfG!gvapwX>FI|@pTm+HTdx;L4MjXfr5E)eQ2&-CI?|vB_-B&7` z1l4;mNjMqdFC}dK4f9B89~xiLFB+e_E!@x!0%pRAV~&KAuPAzq8~8cFusD%<49m3 z!g9{=Ji=cgEN2w;2v3|~sIv(1`3hkDOQ0?Ck{sdu3|34G4!2RjchJQ>l zj6Z02X)@+0?hPeE8CuaBstfco!Y1|KA}pU8l7#wCF^pl`jrTer~Vm)GpKJt zIE(sTuBm#kNJ1G1Uk$?{WV{4nxj~iYeG1{*ss94u3hJXX3}Ykp(-3}|`c(+;LRc#B zBEtI-mh^u_xPkgu42dR$U1GQtq=g0-!oM)Wc7%^n|0Ti^$8C+H;ZK7@}W-0N@j z|5cY_2ZeP%5%Lnkqk+93#}U4m`nfYOcd36AVL99q|Io_};|8E4nu+i-`fNgY4Z`Ac z9O3)vGifGnOc0hXu1EM;7l`!nZy<7TCDShv_gnHOi-a6@$<4&=w*;o=nAK=qsUwk0aa@S2szs%bl1d^tl^r zyYD9Q$r3ER@PWU}xNjw<3?uA9Sk40_p;m-_HZ6D>O)vq;Uj%Mc_Tg^iLi{L=?KeT3`9;|rE;%s#*}uV zz;epA{vUx7fA?sh)`z#?ejZLzfEI+iAQK5+_?X@UNJ94_EPDe9Z$kK7`fNq`LWGw< z+7OmwKIzUcp1{?yt1fWAt>}L_7u*7;r66)P_zJ@BAuQ*EhY=qAPeYv(wj=x?!ly^* zZn)!LhC0%bE*bd@rX}=}K^wxCGW_;)$bjL?pU3Cj5PlP~cRQA6t#=t`yo`PUk($Nq zRxPDo2KF`8p*?}t@w};bJ5t+({pcRvmybsH4(x)~L#{)3Gs7<+{1U>FcBi+HDZ>{c z{5!(k<&DUDKxEq_iMAswhn7;SPH&@z(9eUM_73)GKD+Dim)7h zN_Z#2atJEnzYzWdzF}zo2@QcMdOyN)IND$O9bq{nJsaVq_b?bS)up>!cYsVm;7Z6o zgypbXYH;rRxBwx7gqI;K$FlkG`3J(c0HuXq#1D+FWcY)R4dY&fWt}*V@M8!|+;N}i zF6|1CLsKd6M@{~j;4)G_3-oX9m$)<{Q|XH2BPakiqmt1CgylF_R;_e|<(T&(Bz7^v za%3yv`w^C7TnT@Uu$NgzW2h6^w(jWv=+;017PR5Yh8tcfz!wP1 zajX=e$Ipg3QI)V8VL7@LALlQII+iHEE->^tAT>m@viT$1GB3JMiKFURX z=$Q)V@6dHI$!omwmew<{pHnKquh` z5uSmt?BTvZSk8_m@jnrkGh_+x?uD;#7^K7UC5x9LJP&a)OnmeV!gBx6G6elEKYSwx*s@tnKv-@vqyP;F%YnA&7vhTyi*PISl1|>)_^JkmLlg1!4Ju=#kMJWdk~R?e3xoJZ=@->u z{?bpXLE$3wV0;DPO{?_${Tg98O@9sioQK2I;~tsUA3qYN9{b1?yn2hIst=pwgk4(k zJsdjzbT{U|jOeIW0vT;W*tenh17SIN7oX7G*#DR5@Op&hv|SPpc{R-V8wp8xEyAJY zdf`f`4>N`!oDG?Wa30VDS%|Ql$V(xgug6F1o`zD$;Ww~fXSmOsc&3Q(uaGm|3iB@} zClHpuD2N>8%TZ|^j!J!fJpFK(I^LH8SAUGwfL#i9{U>4S5rA~ZiwMiTkPO5hKf(Sl z>RR1Tf5K482&XlL8EYBdjPSh-kN7l99rsHHy}v|U54Kvcy?7){9q&uuU)U06JOiDq zmVLj%15@}M0-u7gJY$f!zkY{j*m$In;)2tp)-d&~L0X{#VR_yl;iMlhzz~)iT>PW1 zd8pK$SFxv|^A&y_1gS+WUV zISB_T?bFzy{1ahmvgZ-riLm&*gs}X{aFr)*vfMtvH9iD7d88w8lCkWb&sFkqF2NGV zXOH;`1lt3Zkk9duR(8-${aQJ8(AAwnH|!hjCxwtl!%~RvohSGPW7~~N$k}Rg z&o0{8upay+x@(tQR6-v8ms;z7iN=W;$}MjlYzRb#OF5 zO!_stIsAo~nDXKM+M3ldRA@U8?GzgRh31jKFzbWiF&7U{ zK~PMo#57_$F$aj+hvovqtZC;UN-0g{#0p{+aSKqQYz2l{Zy<`Rfu=*mMq(4OmDmoH zsNrAgQpEs;Cz7X-XOZWS7myc|SCDVe+!eZwiaI(p65FUhN^GY-{0IvGlmes>v#Fm+ z%%Q%3yqLU#e1qb6U40uBb#ypD-bmg`-cBCg!U6zQ3y`OfXOZWS7myc|Zy?qQ;x;Mt z038}>XeDna5C4i80#%0ODdbt?IphW8#pD&_8_2hj*8yFU-~lQc>Cj5vP9FX>3jkCF zAWtFBBF`Z&ATK7bAm2c~jlAw_YzR~VsA!}^D|tJ4o?G;os_lTor?Wlq8Xg6!I+c9P$G4 zV)6>|4dh#i+laM0CytI8(8Cq}yG}on7)y*J#sj5A637#YNz^Bkrw~)APa{t!W>TL; zo~_XpI+KPR8ghww)EAH!5{sxWAulDCQ(r+|MO;t)2J(%>8l}hjvW1GR#BIueu|>X} zSV#RX@_OQ4>i3f$AU05ch`f>5M18YxSzlUc@Y2vq-bOr1eLMLvqS3CqCLAb3B$60K zeGGXlF^>9p@&uq-UlM6Zq9K`>LVYTE8Zn*vO!6#ZHubsWdBl9`7m^nc3)`{2$lzK| zMG3JKDEe~p3St%Y>&Z6|H&VZqd>gTr`t9U(#9h?yZ|C}QfQAMdn#h}pE!4M>A0@U^ ze~jGtLw7|eF$UNJ6_MxB(nU$cWMZa^4)Qcw9P)_y#A4dzQMA~ri0g@4X_x2FVy`Fe zB{tG7523~0Mm$P%#r~-cam09H3Q$Te&z&V=HgP6#IkALTO56aHc=DuK;?)wj6Zg~J zq`51!nT8gkJY1HDk;Eus0#Fi`C(B|_Bc>B`XqU&zVlN~X5#?DjZbn0E$hRoO{FjHy zVrZb@5U~Z=8+tDgcQ~Q)uvz>JJRFt`LWxm8@rwb9pFD&Xza-j|iRnP`%LIy_JeZD< z`JYFJd}0w$9E*YCC{L^J>&dkgU>Q2g3~;wMkh#V-;l6^SCoAD^Wi z6QB^sOkgB1hq#bfOk57c=cGa_$Tt#esIMij7qtGB88gUrh^9uOmoDu@=Lwx<3{a9z zAWtD?5@!OX>^Z=mzEiKCPP6NNmUJb^r!JcT@sJe`$_HexNYj<}1sm$;wUKs-cj0;&ntOof-&N^B<{BZlG~8|h;wF_IWX zj3veq6Nrh#6k;kd-GO&lB*9E7W)gFVdBl8T0kM!+Ok7SZCsq*G6E_fRh+Bx;94=j> zS}N*@yNLUV2Z)D=jl^bR3$c~hMm$C|@LrK>Ibt|5%EdqoF`k$}Od=)|Q;BKBOkx&s zCNYPYPh3bWBo+}}%NZykmJ=(8>xmnPHN-8%ZNyq)9dQ?NFL6Jyfp|!xE3}DtP@x%mT5;0jJ=6@;`X~axo7BPpIODrH35{rPc8!RSY zPAs9ml)Ri+L4B2Qng8o)*g(TZ@*3h6>bH__Bi2&CoxF~?i~4%a#;R|7X&WLqjfk9xUWXX6ZcZTpZoyP)j-1`DjJDR)Hjp25WUp5 zlD83$Qr}K~jA)#uyD}80RzPC7*1JL@sfZ%RXhUc$c^omG`ULVsViNVqeI;6 ziJ8=ADUSJ{O~XtYa>#RudDQ2VFC-RFUr1g=ET(=rc?q$U`f~CLL7D$mG_0p#192nu zHRM}}TdChhUQ66geI5BOVmaz51Mv_IjpR+lX6jqWy~I}P+sKa++o=x?b@-RO-{n(}|hXXOU+s#QdL0LkoV>iSQ`2I59Bpowb8w-C2dzm2?>xSjes@?FGw>i3fGCmx`_ z0jRJ4G&IuCMBYqnq25d0N^GP4D0w^a81;se^PcDgs(DWy>E!&6q9KNcSYjOYiR4Md zWa?AMQ;BKRr;}$Av#8G|pGnMdV*X2sa;eB8<^x5)ki39cNPQ7`F>yKdCFG^Va_TF{ ztBC8V-{7KRBe8~tE#zB?+o-Q4-%hNfeiwN?aWC}^(RN8WMs31w1B*jSVVm>`Ep_j^`+$H#0u)G$k!7$P`^>Q%>No1w$QMZ zd>gTr`t9U(#9h?alkX+&r~UwW1Mv{`jpR*0eg98G3k_akEA{Q<$B0H(-N&IowWlM7 zQy)nlMU0_7mOPFa-b@-RO-{n(}|hXXOU+UXHuU-o=eQ5KEErk z{|jj-prMewh*(Vha`F;lDfQ*#6~rp)*OPA`Zlu13e2a^Ltu$;SuO)7$zK(nsv7Y+9 zSM@biE&!* z3XP{CftaWbp-JS)#1!gN$R5E7Sd2aUPvsWzLV_4~;W5F4mJMBYejqQ05D zh3EyU{eLSJZN#HM>C1NVV?-mI^B$SvPY5Ob-|BhM!;q`rW>Fr4$hh=yVsmJ>^;FC{N0R#0C>zMi;&`ig&n(68BSofV_cti26qICSo)7E#zKeEA_56DvlD{X*fo1 zbmu$=%9wDHhZ7^Ik0OsD#!??g9#2f5K2dX5Xc7&{G^CKH64R*9BF`qyq&|l{mzYO= zKKVjo0riFCMG7(hi)mO+LkY2z`f~CLVioo4$u|%;QeQ*9g}9aaZREAY?V^|YUq{6* zV!ark-%Gxqc!2r_@YK=$i7nK7$ywh~9$7nEmu+NE3pjz9>BZ*Pe z$B@SowA$b9@koqF>V&d{1 z-2azQQA#WaN{uVXtBC8V-$1^RSVR35@~y;e)Yp=4C)QEF%SA;!aW4(~$qx`4s6RyB zNNl3sOWsOsqy8v)JMkFxMuhHSS11Ecpz34tNMaQAG32qtIO^lc6Nrh_Cy^%;Q>afT z&(!D&&7vWjhMB}1>T}8Si22knBrhNqQeQ+~Ok7TV33(~8T6Nn zypFhw`g-!c#QoGCAa8InaEOLR@+M+4^)2LHVk`A+}XqBI=9D zmlI2Zdx`t0KSbV0Y@*&v-b!qv{usG|FJ_Rg z2nDJxAdeE1`5!|=JPirNMCy~slZh$R%U4NA!fC{GAU?MgDqkNV`dnfj_4vvNr7tEf z2f8GJe2s)eSWnyl6uo@4gy?ID+o_kYn-Kj0VgvQ^6%?ZP5?iU4ucZ)uDA5U&^zn5Q zGn65YhIksPEPUXd@7%v*3m-;!0UGhQ7dK|1DGmHcsQON$OE%z#)EHi6O}il`v3oy! z4-d6Z^|Q)uh#AyAcRl*SKYf&ZQ6Khm$Nwm!WkFPfYx3O%) zzwf>Fu(nuh8OyY>ks`sDYHzOcZ0~3iqe2B8qH&5 zrXt}x&vl>PcmMy#_kE7z?fpH!bwAH@Kl8BHISyoaIed1j zw{h?K9$w4VL#8CX49^~tr@w2%rxv^`%pcL8ke_h39mcG}weh2#>Aop`S8tI&3#Nwo zqxzDPIqKMrVFgP@_~ZIUa$t+LEtDFG{mNbvYzHnEOpWm8_JbwC7AamRHN@ZDzbl#B zvif2n`SbgAQfXfCSNI2{26)9E2hG}S|5GpkM(;?g6-x-^qIffe^nA}U6aw0Ki^*=3AS@NA^AK0pCrLHp(0yC zUcJ>4a`rh)vsOd&8b4X#Rsj2zvj(!6B-qYf!utLp4IvYfKcrdZx6pU~F z|5r(V+SoT_2Ea}^ux(<87zS`j5^T{q=nzu@^5XX~><~ECGQ@a*YLdmQdw*;grUX1B z^^jGgVpzb_QW?G#GXq|eTIpLcI$)mEQQs;r0s;7&9L_VZwH|siu}e#W;bp zQUfi|^H59`2+j5*F7=Ax0(VIr@`@P)t)%X-G>*uqfdNwKUNLdNq(;S5WG&PhDX?E_ zOd$A45*%A=p`y)@I3QWns=a_&w1&zv$M>zZb*G9#Rg{YQRv$s7OMT>99fo>J>acIc zu!6Uw?y%H>m{t?052Tt{Ybr(;?38*b)+(|X>Xa1Ny5`4W#wdgQbA8WpSlS?r%0z?O zQt8&83c&{M38~v{E*0YqMoJB_ET{-m4&Idl`&GoagEf+1zlxZ9uuC%4;$Fn`7=Lg< zs=ZZ%iZBHs*F4`hu(e9Uj>@M45OWclOQu@tV4S8HkMNY#$aLHIa>0^e z#w5HZw>8~H4lYirDCwcaH(dNMa6uD*-|sDKNVvZK9{-?8!^(Tt#gN@z!q(S z6~fqsr1`!ZU~6z2B;yxKNrGcC#2kkDk`?X3O9ji;%YKn~1RwQu{@>$ZUdFCxyGSrL zZ?{G#|7Go7E?6PV1ijh|{QNg`wDDZg4AN^Qw*!gQa3KcjJtLRT&b*98WUk(;Qjc27 zP$0-j8xwJ#0T*h~azZ{yS=D7^cPy zzNCe|yXjVsidhturCzeWRE(r(A$7OSgbFj6qKniYFWPooX(^Vqy%t=py&H?PD`$UJR1DF)X%N zA!c8Uk;`HAMxYrZFcwL@9<_cWa1~lI0(l&AV0*R#F13ur_(5`VhHXc~FrzU}$gR(? zV(3cvG~7+O(;5DlWmHDd#eTu6j=zlXXPoa) z_9L$$+T1$wI)HiP-N<(2wSEn|HaxG1yV8k zuaCCcuV8D2LX?iD4$+$t`@#?>Y=M`BQGk zTXxs0+?^)k7H^sF&H9Pf5iY`zle%(Xd$thvMW&r}lgu?Gw(o?Qdh(jww^QvDM`rrT zayhV_3u9!)p!_b`c!uvG<52P~_j7JJBX+!p_>1I5a-Hn`*Kjf8?~(^ffvrjkrpF&B zFO(cO({6hmGv*JKe~|;*%^g`Wx7c3i_|;cZe2NibU$>N^&K``di%Z?nXU z!K=l~{(ttvFVW`Kez+gZ{jk87|9g;O%1gJEz8B;XmO2{yArnV;OM|Uz06k{(=nYA* z-#wTNQ)88%z?9kc>1Zr36JmPFfh~GBRt%$JMoa!OKenPHjEu>Y1N%Lj*)jVi!Lgh3 zFhgW=Wct}mTHrSm!(^(;&Gat9P?^W%z_BAB%ygMClIIs#?J?N9m@<7zYDoq^4<5X zy>$Txg>xs8DfF`s6jTs2$!CeFo-sd-oG{7O58W)a5K?3M%D$_vib=P=3{wpgs9$Ti|*9hj2EBAG5FALRxdr7W_ z4I7Uw(;Mn-sor1P3Xb|Q+-A9t<>I&DUPUf`o4?RK2v=;apY4Nk6X5a9-*e7Iagt$9CV2nL#Po z>$vV0$uT=9P3{jlW(akYtFpt7%PgS`x##7WDKuB^6FFuJZI!zw$Bd!lat(IctV!q} zvxbt^`@T%wY1`?TIaE&W&`!Gn7h?8M3%RORX)@L_6NsLZdO4=T3?iB$wKdDePsY?3 zNVG<-)-Jyk3?|wyH)NNcWjh8G{UtYhmleagC(NLt(i?p5*8XBG=@?k_fZU#6{Z?ae zQ6IS*zsAm6AqE(Ym#c02reG&v-bJR=JHJ_YYQe(o_F(wd%@elA|Lc9r3ADL&F#QYu zzYiuxO%K62gBz4Q--b=a!Nj^>@BZO)9p@H?3>Ors9gp@TB{s!2WH@8psZk zVB66SXI&;&MY>oA_GW1k=kwDshB_VqtpYonTqivm!#Hs z#q^QeKlk&!%Pyc*cm`BWsTn71dED{i5!*bRc)n~-muTvj44+Ab6I zYP1yCB6niHW2)5*$(~8pW(KarOt<<-4s7Qp<4Vk!tM4Si7D>P^#=NV;lHk~`9AWU) z6-lt|XodMO0W1HPe(`$WW{qYREb~AG4EMwy#(#aYaR!)sR$R6{i_z}a;dyY9OKrhH z8XMD}0U7r`7>=Ls%4z#&VjVDHYp&d#7Mg`s#hk4#rS{~u`m?aO%-cF72ezBTu(%A~ z3U2k&1AEB?u2e~|MWeVIVH8(m$wPVU1|}J1Bv&`NfAU!6*>H^J%8=Wb*Sf$pU_{q^ zIWju$O5=Z{13u!XCB!Y}yLrZVZB=`)Rl$}CG0*F`&%Pf5k_F$%bHImA2!>Abc)kUh2EvI7US5#`P?Sl$4`fH)o`BcBqi~##uE=Nha z!tIV@xC|ENv6BDi^JMl-p9i-WJ!6{^@ws4b`uJ>{o~ixsz;j{9U)l1xIH@pQtRU_r zsKGWN4Lc-b#_pE{+s%5A%p2=03AP=#Lo#=4uq4<^29Qma1X}~{Xaziqb zY=v+bPO_l^(mA5cO=9w*%1Y4EAux~Qg>~qQU6}d@@{r9|{eG~kGHn%px5imDF z-E5m6SEV@D4)akZrnJNqm}LO0vwx%s>HbzIj~JAf%WuKRfOD0zGP_&F}Y{&#z83cto5fF z1NDg17_SyU^_5y+S!`A9o;Wv3s+z?uf*JrdUTT0SD~{C#VSSM!E1{f34pOSw<3UH~AcW z5weaXICcXNz6$xUkk##3pGy) zY_stvq)?CANF0>xVObn?G}LCP(H6G^+we%8IF}`Lq>fczf_@CF8|RM54YclP7CGMv z`H50sYlWxiQ2Kx3Tu$6Ta}}i9X0!{v1jYMts+a5nN8JxqSqf|iaDSewHCD-go3&nw zF&(Ovwvuv|LB#^5-J}{=CRBv=OrMeh+k~d*2Me4IlI&)AmZ2T%osN_O+w4csjs;Ms zNWNkbuRZPkNPV0-!%Y#A0?y&&1vHgiSW;>XylN=b-vXfo%f*Mj6W2GtRvrna}d9#9aILiF0pA^|v&r z@O7veQrG*~fR(s5e*GNoIOM*5&R@NY^pA7f(7ErRPyr{l^x)XricpP#xLioqu!(3F8Z#)))sz}zo2ecd8t48a^@v@73Lk-b zM(W5=E18LzeiFs4l-wuQIukR!3^iQ}9D4&7xi$iq4oR@BdlTF1(+pfEB|o)87&){B z>af(7mNZRJm`ecFQtEc=Pc94Vfocm?QmU=BrdkhmkJNh0fQsydYAFS_R%Nle+l-5Iy(Qb&A&xp4YM9h$%d-Y* z*#uk#q?TD4ROB$!QYo-)O2pLec`MFslDxuZBTYk{agKVyFkC7ROZh2dJ)6KTNcXYjLA+3~rzt*f!ywDAZ;W z&OVZDto5gu=>({GQWGo#DsmZWgA~{%6vl$qoQzUZk~QrRN9_ppmsCf~vkt259NcH` z@k`a#(x|3F-61vA`a?zbLY0vMTa~NmTaCHcev&mTi=#G#YA%HuKkK1dK=qPpVb!QM zK#h>XAxhPJUYwgP)!Zgh-Sr-JN~ybSGgUg&*HYIosU?;M z6*&skTMFzSy7Mf=o+_Eg`g7F!P*bJqTNYJ6sAW?9EN&Cj+fbiLy=~Q~zJdBt>YLcK zB7Z~uAqBRTRk7u(EW)1plV92@)}5nvf+{H0$u3Yup(;s5E%h^~n^29UZh9469OoYW zZ>tQp3cQcgsZ_u+sa}N|C-tfwqWT1Cj?^cXXEW4OOXA!Tsi!OrD)J@NCMmETxC{M% zaT(69k}uj^jyex&pVU0dqDotin+B;gi~AfZ3YGA)UvPZKgDMm14ynwT3Lk;0D0O7H zP5K-M-)Af0TthixdAmt3T!K< zU?-}*D$Z?`tZkVbbs^L*QVZ=6NBtA(vJ}{=@asq4X5xIxSCF`Fe4FV{7yIB!$btR! zu)+s;D3h#UbHBtqT0%9GYH3+i&q4K+dd}juK;83UoO?;?9;-(64Af+)XRJF^S8mfX6*q_z!v2lN5#+azC*I2#eI$LO@&$`HPxy? zMLz!md$1HZ_QV_te~EoqGHeq$YMm|Eho$P+W~%8>Nq9fZ<)3aBs8&D~mRez{+n_>Q zahj3}S!=5H-(VM(YHt}-o1ofDZL&bG4+v*0njFS}#Giki4|ZKK~Z|cxyM_`N+Lx7dW|`KjL0q zDyOA>2h|a3v{XlHP1XA+TzI5J`hRdhAy`6iYp3hp67%k2@i$H!aWi zP(2P}f0pWDX;eLr;3eEXznDF(KUCxos3KC}*jEulb&ld>ELq30IO;=CX;Ke))fwtx zsm@kyJ6iRI>L=CPtNu_UrTW{%SgT`r(ED$z%~T~$Vn>!LVHc<>K&_UlV5vKxhC*$V z8fvYnK0bw$mej|V0TuZI>arBrziQkLnTWqKl*SeY$7J{y$fA>M|}=zxD-xqSs3*M)HEruKULPc z5a(7%*0Szs7kUnA+kZ!$NHr2_uhdA}3>E$t>QAYEFWAK_EJC@Jg-Uiu?(~eHU0~a`BIH7lcVnX8|P;!uuZs$QEOd6%>zlC+OiQR2mO-bRS4C3sFG6aZ6Z~#YjLi&R4>~M6*&);E(Nx(?Qyr2^)DXQB*C_FC|(a8 zypH<|Nw7afy>J5$GLkP?#vaUM71VU8Rh9`A-UIc%)Ser5cn`Ksk>r5;M6QVC`4MB* zhx%HozNJA${(<^g3TzYb{o>GbIRfsYWopJ z&lPZWC7-uyKVj5wq1sD*>lJRM+yJRkHj%CFf*K=*+g_@>q2@{5Z5OEOKz%Az$5MZW z8UeLUYJ|0h3THw6E|nFskw0T~EDHzR4Y_5O$uU>u4Y>S={W7hxLsZT31zaVmW+?Is z704fOwWR`Gr`tQYTzlWME^?i!X+l$!_FA;DH<%XlED(3MU z)W=d_e{4LP8gQRWK8v!c=-xu8pQIL|1}fC@$^my;YPn6Mx~(eq1*zLm1{Es4dcYMp zdTWhbpehViQmQb@oI(wUx>strwWeAF)m&rBP)Q#$72sIJv52=Y(jq1h50e4;MMe9!W0aW;yUmG9TM5qFe=P`#zTZ(*~}q5CNhA%avc#WK+>^iVpE45^3g5Y;D8 zGo|o!br`B*mw;O#RngL*BELNzaGRvScIjJONZR)dxGc%`Hka+beKO#VN`dXt7PNc3 zPr&^t`MAX$LA#q!Igk6*0k#8tuIchrz?G5gV%^#97*spmNBJ0af%#%X18>asPn3Ce_%|s0KsjKjD{ju=R%u-+(G5b)&z{JBE$b^W}i6CD+rk zIOYSx1FoqQYONnf*N$WaTvsWu6~`Z4L-|Gq+(5~E)*bCaJ)mBb>R}V9;>HKu6sb7d zOf`5yz-3AewhL72CI;L$QtK@B1k~I~0e4VpuC;~=UxWHb>e?h5c>)Vi;GKZG<9END z1uT(Lr{^wr{iKK1-7oGusxrd5pXRfpRu&x(e5ZzZz-_(uxcT@4lY0tkf)w6@Kt;|&&6NV%jtTrL+4}+a zfh5=_@Gs@vmtdVpcDF1}?|rBrq~5o<)0p1j6#;il3T&k^G3x3}T>d0iTX(bz)%YOb zl1}-Rg1;zGErlv3wbV9KRsRsHM5?-7h_!-h{@+%qXV5C}QNVSP3Rr8X$U&%~QsCGZ zE<%Mq#^OsBvP_OT0BWJs06Rq0YfZqdlj>!8&O+5%i#s%_T9!ujG}IZXr>#F!;UA#l z|L}`M&JBLW@t;-3x4S~cJ`K3W`n;I!<5XHewU=sPp>t4^Hw9czsmWFkDl&9)zzvrI z+c|zAq2A{>JSFSdOpZDZYO&Nf`<|-E7Xi0cs)${ustmPDsfanxC?OWC%M z+~Ffu`7iD?N3ryB0qgu1=Fkc1pj0OtM>X^qPNq^rZ39%K#_@nlIIHu) zynNh>@kCtxM8K7mt8VFkV{$J*HIRD2hEX;BJ>c3&HMQkbPoKtZv((eJkE+YLfEy*% z#X?u0=3T~3v(!ARN0sL3r|S4`z#Wk4XxFKh zLY7Duq=B6)p`GJm*(N>Fc&1`&FbrTv0i2?E7b7gRCiO*X_ndG&~5` zTn_Aitrxx#aNQ)smi`ZBa^fZq8L1ODZ3TDU0WRK+ksDyk(JYc27w_Ja0$YUNd#D2W zv1AnsUBhC`h5ABjuGOP@H4yK1O1)}*p~4Tx$GiPf564^h8uqO%aOdQ<#M^ed@8JHG z`!3#Yz(o$jh0go60`}j9@0$?sQY68#BP9FOi5^VgxShS49cz2InhHdy4i`FeE z-Zhm1$KK?IPe68*JdtF@u4CL)!FV@7Zk459=W0ogccZ1ib`#&h4?PMwUGh;|&UOoL zi+78pz}5<{Bf>`@w@4nj&B8Y@j{^DQ-EVRQtlkZ*zm7%X-D#HOcN)=_aB&-c2|yfN9A@` zw)%A6RE>8RBRF8Loi+;s{?Eqg3wX7NM3QB_g-yj!2R+L;|*W(J63iYiO z@9IkRwMqe~`S-@VbgB8)87guGs;3k<_C>c){rlqG3zGG114o?&HBxGpouR5*8|z7` zuBF674QdeYK9m|{=}_UrP&=g#H?ZOHg-V9rXc+HK%DrLBIp#-DH>5tYeN8cbef)l6=QDu-#dxWm4eS zA7~;OfY$GcN^FBO%vHj4WoLsUA#Lk^{Oq0 ziX3Z?qfZKKo3M98W^};$ToP;zu=+wR9*K9sKmCesVfAjq^fI9GOJ!JJs7T94vF4?~ zvD1F|7s&FGzdUN&Z^J5S+A-eMl51+$F>ZJyRGQStj#eMdB5UAU$$@P`d932c;@uN+ z-of&KoHzY8v#l3;&~^n?6BvY!ph zg&zLaE#7UC`mLL-$b}vb>K^aDmjmwLIWcGAeTyl{Vx)>|F;n^ZL=KJsqxIK}2*!ofx9*7kxRoG@iMamAtSwjl!e+rNenfSL~ zpI|Sahb$loj>*tFkR>GFvCergll5=JyK++NZ5&ncH?fkXirWUN`eWl=1F8CU1}gkF zR12xU$6B$x*c21T$Gc8)6D>V2nw^^*@A^ocn{30;Ed1!(SnYC;z8%|pLUk0sLfKBrdeg)ON@Re-tCebZ8O;{b4I*7ER{LK zR^&j3^UR8OSLO29bu0M|M+{1E<>VXnk+T!d8d+U8=gxq^bjTO{$K4Pt^%3*HyokI>lN= zdO;PJ0^0;!Xd>Utk9UY1Wx4T0FsZlZx6ns!dS+ zq&C?Gs!^#4?iHy~b_ObPqe6n4CI$9i{!FWw;69X0v-BbuHFwnn_nlO38%Fic-3e~L z)H}8uD)P&-3GR#(*e2w`Le=e`;BHFRwNO#C%QGOs-G0rl53v6UMhD2sl3+W)pBB%D ztRo4Iy;qLxhI~X4Y|rwy9@C#saDyble6T4Qf}0@s^Yd0Y1)KZi3khz4+{qWL3tTAo zpai#CF1L;2lS0{{32vJd*uU8826;@fo1H>WNA|FB4lLW`IutG`86I>g~BnuVC$oD|?mIC|Cnjw(G zB!^gEw!8o51UFU+91E2SZ-!hbx%p??UL5P7&97Joa&7E7#tjYoEx~P-8fKMBK!x{X zqf3RYGgT|73sS9Y98~0YsD$f&4S-|cFpS)BAi))u1X~rRAMApxD7ou^6-&h}L*Ph) zYbXcyzn@Bn{EuY14NJvb_CWQL0$XwJFinmoxWSTOfAcdN@>NN&-Nd)B!oNbkEBWhD z8($bJq42Q;mnm1+`j*68Hb8wN1-2-2E_xnMa7QG;F&WBvBEkJBnbWRgbt!Ocfg?>%C%7h(U^@`Ov9uJjjpR~0!;$Yfli+$v zfo&6#5<&*~yrfxrY0UTWv)B=&9=Bmo;X_c1r4F676{WHAN1aP>pUQz_zj+FugWM%~ z?wp11#Bp@#0*-aLOBbv@T%_719O`o5*zHf~709AD{W^HXX5PtjDr_HQhj)LN@l2CDxRY)Ps9))^|&j_qiXsxHyhkOaq`%0f#Z@0VO+^~zz+%@Yz`JE`W@7b)c?rlkM?A=kMSSZmglLY&d$#anFB%ia+AhGq(e;-C$8H6}TOl(fw-&X2 z6|m)3rX;$law}~n$Gv%HqFW#Z_VG0@mq~ORB*Fd?^flxzNw5{iy+tIcY@$0Z3ARnx z`l05Kmn56pxQf`*&qBoo{8~6$);3neQBta0q6^D`eagpB$YPRUYsKH+mrrz6<))QK zcW?@b{0rGa5*&+Mi*&v#(RGvr$NqX5*#-HOB-m&9#8*gkLnXofw|X-mr%KMSdX=$$ zwpL7Zi>1K+P1)0x65XegPuonkd#x&V9VxK?GWo}lhb2F@>ulGi8rF>z*q=tPLdM1W zwFCB#=BuhFx&o45Yk+qkp~^KAU1`b6wxJ59II?!4t0e`FJz0j`#MC+S6709rvyeFw{Hg)RUIj+B zLKc?<$1dif#!V7k70JfdxjJVJRbT3-Cbps~W*vDT(Y2BT$F38RXCb>wg8grVYBo)D z&q~&`lp0tOU79DlQBq+4X8IW9RLNt_ZFmjL<#`FsINpxRH6|`Yg!Kbi?NCj;5W7;SPC3_&lRaW1{+us9Qy`; zWCr8{NpS41Jdul#>mMGS^saWJz%Bx*X{Od0rB1UGXdG$ZSYd z9**5*fc+V$!nj0NL=x=NV_$%*E(x}ke7jY1JWhv_IF##RA$vo0kplax&u5TBB*FeB zvcv=|xnv1jj*-LXq2@@PpJ4mzVr$)aE77f&1N%e%k%@`!J4vwrx<|)JiSCFb*t+6} zN0Abfv9Tq={;*vNd0P&@*kJ$l;P8}0S3(khX{?8ZnFUot3hckqnty7dOOwoRo$KQ; z7!B1?YP5}m3ZH}OFLiFJZLE(S`SG_C-59yY?F`4fcXpy%Ds``=G=S>y9=5Yo4@-xN z?3thF_DF$k)8mCo=312K&dRm3|2G? zyxhK3Rv#|()Q{M_a!*;`hM4IWzhdJ`f&Hl`|8H1QNpLJ2A-o>4kL3E_tmS>!Y-xKF z-OF;|*f+)_6Chug1jq6gLaQK6a+Qrs10x+_xP*iIGx8!}%`zpnniX!{#sG3H&u zU4R_eA0U-4;{-1W_J3wD$j2nj`ZmVOk6cM~{iGsStV=CSa0T2DIk10vZ*~=jf@Cwh zj&UPrq2@?|t;$X8%%lEEbgL!7{{8Qdkl#rD_>YahA9Hy+XOjC#4(u7t3LqbXJs?-omX@X9F7fy1ya{0CJUD#SS!QN3jPm(JmSKEf6S!4}V6De>ksW4PE zZ<6aIS=IKTU8ronB-c->tc4!HsJ)6Nxe-!e|8$!xCCSZ{%w>JiF4VL{l3OO#)Mj$j zf+dsOXHsB0kQXPh+@+FSmL%98;?p4yN`ie{^&gNIB*FgYtPM*ixx|oP;D$D?Db~Sf zP=%#FD{UK_VwG;YGs#t#1N#TE-^wJp2PMI=TaVByWs_VN$yY4B85ZTO@=0!>)LS+T zDpIv_l6y@G>~EOff}DG+on-htPd$K(cDM!> zSuSidAH>g8g5t=G~p-N=VMLO3kq(WA4LhkQ!s1sn$cK zOW|!kRODoxB-dFA?0;%7I!2Sb+cCMwn~x{C z=j6b#yNpPS9!YMPB-jVne+@ZK5^NKAH*~aDl6y}Q?1QBXKau1}%<*v4lJS!6`D2UubabD@WlQkmV$A{9`LxV{vxH2i<*g z;MkXmB3B_>NrGdM*r68_g06?;i&n1<=F%fE=!Q#y?b(vpFiA;4XOdvQGq#6ZCJBzc zLI_QP{9JO1UB?u|r-MQFo7Cx`Rel&<%t{Wri*n%DcWxs&as*vcUcZ1~|1`Y{GDQ;X z56j871zk1C$#&*p^!uw^L6;^4_Lt0uLqXS05^PoY_lUW&W5n^99{5$?x-7zjoMbClw01 z<8qU1CdLgV6b-t6q!R3VPVQN#y!rfE09z}bN{XZeT?I+7f5Gt)WJAf1taE#eJhfQR zb&>+d?w-QOA%{pFFJ>FtV*`YX2i+TT;MkrRS_ApEj z+1f$ZT@oC-Bae)M93%<0+5FPk6Lo^_HOVJz!=squ<8^~>iWE5Zql)lm$OV#{>sqmn zSm>Pfg6{EO zB2`-i-8D(Df1;ZOnOMNDM6j)_i)P+ z+YiO6kOEtAZsj*17fZfjDc#WSU8oIGV4qID1M*u*uth@X&fH-^w?`7}-{`$GJm?Ne zf@5JNkxwDdN`hk#7Lm5mpt~Xo_Se28kV$v=)dRK$m{Dl#h@i_SIo4)&M=u*@U|*C1 z$9~-ri9*(u1jiOJ@&RPJB$(Nusgd=Noh89OqwEXF!IEEO*myk1My9?Nbg#&PE!qHM z7kDG+CQ5>R-bi`KxsqU8SsE?Bg`sU~{3qGn zR>=Eqk0rYj;#ayQyV~NWFDAQY;=MzYT{m&FVaaZgxHUK`eiJ-}jIT|)5|fkNdw#%` z1FsW*2Hts#rzE@6;?v;kw|Hu@D^NH#Ay@J3WS1&_1YA@6!n9=9RD22CQT)t1$?loL z$nruj+;I$K=!2i%MeoF|rzg7=;w@nUcZ z@v}2+MnasHLb?i+Cl@L_RD@HKJi zmB~?;E5*;a3_d6&UIVTt-U)6l-V1(IT=K(Y*Gn8;lkA=sm)eNViJt(^77qY_Dt;Nf zJH}D`>hX@fvWNxb&CF zuB|xwBnF<;z;5tcVz(vPeJm~k-Xbmy-Y;$j{zv=_I9CbZiJ{=K;u+vZ;`QK;;)Jcq zu3rgM@#QLd0Rt2D!CT-(;%VRw;yK_w;*Y?m#Gio^QvHligYOXM|0>y46L;E{>>7*b zfZK|XZi^}Pc6G$l zz@5mqq23uPTs$p42!4qi#RmzelietNkQ@AlxF&eI_+IdGaYOJH@f`3@@ps^Z;+^30 z;)CGp;`3*4A}ZxObop$u>t0p^S1?c=Tq38x7R2HIdh$Q`mpvG~IokB}+I0joKsF&; zfb1b$WOl)q#<=9)ZNoE#DnuI13A*ZV)Zkd2Wn=?n3rTS7HY|J`@(Ib~b8L89T=Xi> z4Y~<(mF?BOxQ6~Z5BE$`;MfgwwBvm2On3UZklFvzT!5tir7V+6p-l-i<-h9L`2KAC zST^pPjR$Ar*Rt`{JFzq0n&|9oAFRm68?*7YY`iBMpUB2nvN0E?C;x+g*|$hinOj?= ztaA|zaFZlv+a#x!1lAen^K79Cp_f+R&ZexN?n{>SEVjy@EAc=q1@>=!XRHdk-jXw{+H<%mT9Apm7^wx; z{kcL#dJM-PZ$2J)1xEn*)~d|D*c0Jz?R>kk@e%O)*8FLKX$PE8*mFPm*1N7$D+)Hx}&@wAM9iPuR>On1p5S^gpEP>kR;egQBQ&F zBMJ5oh=EPGQ)GYZ(NXcj55E$Duc0{brp-GmHQ z@a@2Sz%11LE{GC3h-zlz#@V=SHtvy)2V~<>*?4?5o@KATP^eV&^K9z-Z2WUJ{yiK2 zf9)?<(dO2^6Rha>m!xb*NtbVeZWuh*1$iO(75p6f!?^|T46T8-xS6ma@gDHkDoxEzSmAxhj4pV7@x~U*U@Er-hbibZawr1M{?y zeKW7Xgnre8$XBiW5S+`_16x$}(_e4hhhQO&LG_S2cGe~h!QFPCv4cYj zr9=y%1P4ycVXTCn;D+J>;1|S8Q&0|5{6{J-kK%GTZ{wLEHtzh2sPG`(Rn@s^VphLh zBWCs6pT#J3i?55J%m`=9a<>R1icN@RZYzjc-S$B-3fa1+#kuREG^?0JY*&c~fV0Fb zTYE~(dbI&OBXC|UQ(H`olC)8GuLg?ONBJQ!tI2co`qL)CVOVZ)qBJ&wfeA_HCCS%v$*OTc;bqUd4VgVP;p7jBC7ku zte$#9%%Z79a`>6CR%#tFi==iCvpDJyF^i(k5wjZV7vdYOvHj0#fb~xc;I^83DGQ(0 z6tm)KD{(XMb7Iywoh)W?(+|X~YWkCy#Y``YS;I7v(@&qJOUsj^m>G+Yw$KNxKH5#p zs-wfi`8uKMmY8Kmmx+sacW#5Y6L^>S^T$z+Qk>NTCyZQv#+`aOcZZmzL!%8ez@nj@ z#H<$jte9m&M~PV;)Wj?cx>C$?pkIku2J~k!%YU8`v+ieN$ajMEK8t&fI#&9urw>@- zv#pr5J)ae`rswNo7W14gW)aUdVpi|mAzm^91tP?gGf-7SydIo8>^pH9Tq%r^xV@{6 z#0{iA7zA!FW);pS#jHg6hPcb?sNy636?{Zoax~roM*K8cWwO3_3AnGAH6IOFG^!W+lf#Vis`xM9g}MKZ#jTF)p7Umvt2H z7NdM()IF&I)Jk-3idio4Bk@u2A@PF?up{U96Jk-s8seGYF5<=DapLpf-Qq)waQGGQ z-8W3QH99 z?OCC)y_kgwXNg&m@W-eISc))&Yd&|z-J9|BDQ2O*`r>k5JNLMlh53eydxPH>e+>Rf z%nE!-h5a;HdGB5^EADj@M_Foblm=L0Z=RU7_0EV{RIgYOKOq*=Yb9n8y-{Ko&s!p9 z(Y$S97Uwu2W|6$aqJBDyz~zhT{LiX*&GZ4Q;q?)-3f>!HR=-;zX4SjxVph95D`u6u z+$nwrtZr9B%&K;eh*{2VsCa7@w*MRruz=lGajbBim<8){74s8ip}NXq7N~12W?{NP zViu%(N6boe8^o*__q&)Sh@0Czf!@|fZ^;1|TDj^N>4%t~;p#SOrR z#P@^aOZe%q-djoWRB%J_0dN;_`J*`gCu*Q323Cm|f_I1u9z!Jw@osR=R6m0Uj-z;> znDy3Li0?Xq%_p7#9wKICwJBnjR9oaZ>R3x{jXq!rwOwM?PWxTVqG^GWe#WepRzl1w zY4?d)9_?W<%c2bsvmDwRV%9->Pt5vf8%jp~L{aU`W$6PJJUc07p|iMBz76Y}-63XK zvr1xCGkZ|XB4*vhEJF60n8n9didl4Qmv~PUUmiK90hSpnP}-A12OA_?H02h*kv)xfaSf@PoMR_YJy|uf7bo_k3L|*uV=)p^fgY*5?>#Q zS=;MJaSps7yewwzt&(N@3|M@trIroA`q|jtBYY8n7vxHEl zn6-m8idi&ho0!FdeiXAx(D7UC!574=3lu2t7l7q}@{6M^1ay}MSjOjGG3)m<7PCfA zdohdi^b@lv&nPjA@k|r53eO@jtM7a&X4#!xVpiKZTVCgX*4er3F5f#A*eN4sWt~Q1 zR@7-HX4Rah#jIsBLd+sIZ;4r`W}cW8YSxHZg=UBNzBe$@lNw<4n164LFb0Q81>Yf- zeJLwuahLnVEV8m?mZcgB4;{ zF8E5!`UJm;S(e~}nDqz}EBVf`4#DkW79gl7X5E3hVip{D$aB=O)Ie8#zzPEc#VjrG zrkE84=7?D~;A1iC0DL88*8g5Hv-&TJnU|lVvhN%t@Qa8UX$fPJl{dg zF!?@WX0;CyGgEz{m|^Pk#Y|COEoK6GmYAXDN5xDo|5MyJ`WN>6D!zBjB`+yv4)}dy zrhPvoX3Te2G1IvFiW#LnT+F;_6EkRfzL*Kq8^ny3-U*JK{~0R1PaiN%`mC5S($~a{ zkIq}wca*u&cZnGn-9*fs=r&>oM0XQ28G3-2kJFU z#0+QtNX%5`uf&XF-YaGd^F=Y!mlLb|&M|hmfS7s9rK1{P((>J6CM-W7X0&oUF*B8W ziy5XoSj-gVF=ECiPZu*cd8wFz$s5E>O3o5TnUQ=_1I$LgCT1vdu!iq7(~t{_8G~G2 z%>3gzV#Xe~6f^I*tC%sz1I5fYeoM?)<0Un8{%4@^C;EUn#@~w>V0=Q%y zrkDx7Uy2#s`?Hvly?=z?nDM$F-SXhC#SGLvevi)ojMBZT5162v`(D2q8J&Bln3=ha#0<;r zAZAK#Uoj(bUlKD4cbu3RxYNZ9zx`M|G`cz9zSRKJZV!kVb9-LQeA^uN`3^DIwt$$4 zwy9z!+1@K=fb9cf2G_O|GqJY2m{GO;z_If`Luy~r2TZ3OEoLn3TVm$XzAI)B?L09P zXqSo^Jo}-TiL>j)44U00X2R@GVnoYE-Ej>tQ}&{mS+Y09%#h7l+b=!CV~dNK8e3h= zxY%Z5#>74@W;*OZF=JuJh?xgFJI2`l41!&)510V^g_zN=zla(6dP&Tv*PCKSyxvjA zcaGVvcZnJ5T1U(@*9XN6aqS{zceLHNdFVhsBIoeOk<9)eJEcRZYww)um!4sBRWB zIrUdDBU4X{nUwmEm=UQ#{{4q%D~6*MsONjiRMax!E#Mkrrl8(0X8LJcF+)$giJ5iU zPt1(d;bH`ux`|?Dn!Yby6~teeHfewown(o$lklinj{ zENQx!d88f03?k(pwz$B|A00~O`Jc(7WAy$e%(&2KISnu;^gc23L0gF#3)(}>G|=b8i~)T`JRg6qX5{82F_SiLOY`G0U^7+BV9jb` z=4mz(Ge)zmnCY24#igSdcu@lk%Y6OT2;g_cjK*9dW+diDF{3cQ7Bd2Kx0uKU}9u-F@qu-h#3&sT>KvRQ85D{pAs_(GAd>QUdGiEXTO}{n9YQF{hZ>jRnLEZ7d~bT4OaaV;bv< zna=o-ILcJU4jNz>V^=X#7@ra|esPePxr-yk3|yQnX3*jsF%uS-if! zkX3xY&i@lJa77ku9Q;vN(Vutg%2YrW_%2!m(Fun?6rtsAkGk&j?n5lc+#Ejc}LCloBH^fO%q~^`i z0Auw&5;INj3o&E#_KBIEcSg+Ayz64d$W_n#kF+%I2u8{^9 zSJzI=oVq?@2Gk7|GneiSG2`f_iRUT8!`_|}Gvn=LF{9naikay)Tg))GHDYGCeJ_qOyX}Yu7}<7F z%%rxYmcDb0Xe%aWGFw?O1KI8tGl#8(nDJ{}#mrqBAZFa!crjDfX0+7#pZRKw^#Oy` z)`*#>_MMnHYJ0^DP`fNnkx+xb}(}zI9T}%&i+@hHc&Pu#n0Z+n#Ei+>BW66-MKN=+lG^%CFb=CIIClPL4ps$y!2GM) zV#Z!QCT8B%05M~(hKreRHBHP|tCeErS$!pDjMZK-)2l9u5mXg*iS2xk7*=(Mm>E@N z#f+w^BW5C18!>~Z`iPl7^^%yeQ&Yvvn_4Ai%+yz6rc3=4V{CusN?pod8 zslsBWM^z9rG%8KZtf&rRMnpX&W;WDdF(aWSikStqSj-Tp%~1_7{pqlnu}>Gp%zMh! z!FPy3Pj`yjEyAf+%w(qr#Ef)mFJ_ceA2B1GUJ^6AX`(pF%%(XSU{uowVn#G=6f>D= zyO@DY2gOWcIxl7f({(YEmx7P@PBU_;keFFZRm2QgYW|4M{|r}pMjtR#DJo``(j+k> zlop7YowQ2K%%rcxj7s`R%#5TnVn!pyJ?cBeM5M6z>73Cdm#P6KAXODJ`lzv(nMa+) z%sLt>X2{WGF|&;ph#6}1iI{0dyTuGKIwEFz(cfgA|Cw8q+|l=raYc8CnNn0v%y6Q* zVrCMx7Bh^fkC-7uBgD)enkr`G&@wTzhWH&*o?#g>6#eqJ=4X^!@NAE@<1&R z?~KVb%)4UR8RjK1Ifi*V%wWU36y^cLybI8>OYq{81%`R! z$$N%*)yZ1Jyy9f5VP0*r&oFN^`Nc3VGWpLiFEFV-L@UO7OBx#HbtUH!bN=TwCD)pO zx0Bptn75J)Hq7ft@(uGAl39j%`N%TEymMr$VO}4fE!Z3kdA-IC!@O4GTf@9g z<2S?KM3C_RPYZ$Xn|+N8^AqO|hWTalV8i^Pxxg?#W!__$UoHP-nBVGFAErL}t?fC6 z`88`V!~B?a9I(v){EGEi6Y%rZMTYs+>PLq8vFahi{6@9HaLs_9rnWN7FH$=j=7*?v z8|L??uN&rPr-uyVYtx9Y@(6Xr?@Zem=J%yH8|H_ld4~Bt=>o(2)^ev|erEZnVSZm( z?Jo7n4=bA+<`cuQJSU9tRud$Bqw0EWxiF7aHc*jh`FlM~xLmsv~~Oc#dIyf|z5N z-yjY$%#RPJ8RkcaYlzEXH`fdoR2b$pEfwxj{vh7d(#jINrzLEd_q5z%nD?{{HOzZj zCK%>DEzcO{JuNR7<~=R%8op-5Jxl7xDnw4;mV_6_A=AowW5QCyyfNV$!@Mz}^8KpA z8xt;zW89L^+c0lT7-X0?CX6%88xx)D;EAS%o`TUKcG%|!$M`lykQ|^m^Uo6G0Ynlx*FyU3q1{QJA(Tn23mqwEQ~SC zD;6dg<`oN18s-%X3k>syg(bilHGIDF{>4=uhK~UMZuo^$>AvdYRc9OU1%?~`hn6Fb zz_>dS_nKfjjAs~L3%tzmThRH;@IK&UhO6PzyR#nD3~q=1<%a)7W_=7l0{vWKOsM>J ze}Z9t`rl@XC3t(lQ-=A~{~W{ovi}XktyVN$RewdfNH@FyyLN&)T!WWhKQnx2dz$YT z!^g3LR(Mo(_6$t()i?aXq%_|}hF1gkFnrdXX}-aR^YN1GIKy}0CE00)A9yRx_rjwX zGpxycBo>>X%iC$bO@^;}C(ZYb;nTpShHn9Gh-rnk5$IoF_+8+u4SxsR*KpyYG~Z~$ zbMOx9WW(oeM9n-)jKo{G3k^TF5g#rXuD%)Xm>RBkG|l&;;U9tjGrZ|%ygEEl3v_%6 zUamI$1^ABPvDNT`mEn(p?lVhYVi;!3@K<1HW$gZ|JNwy#EAR z#cCT-GJXR{1{&I{lIV*Uh_R@xZme#zP}9*+neUAIav#_A1&9?@VR)sxV_6fe+t~Y%)CJ&otlH zhTlgY|7Q5wUHHsniWY7Inzx?e0Qlz_jv_k3hR0x@xW({8z3@?m;UV~z<&lUbj-dw6 z8a{t=n(r0EFYHM3Z7|##A3%I=crEZRhI_l{%c)wRx1Pk?_lBQ*I?Z>9;ftS1^Yu1- z9Q@ISBj3VcvL!BkD$O^`@O0oshFi@*s~GML{H5Uuz<(Gn0In9*LhJ!u5Ot zBnn}85vJk0qBj5cz=(~Q;9d;08HPJz#LhGP5XQ$6!xx~nJ~rGP`uh#kNnAcwX zW4Iq`pFT|sckYrjU#8&?+F<^@fQhQuF<}pItqI=3ey+daOHhb$hKC`usNwC1lzE07 z^!Gc4Utf$*O$@g~jSm>U2ov2g!+%Z1%@;A`%lUs%6n(}7@JZkc4Of|#=F2ub2lzI_ zIrubn1X*u!R4P!`VXbxj*4qZ#)DG?le|G6)UO-alEV5W z1^b^$`r{YnsED}eptut2adQg)-W2|{6#Pz#&POTu8^w71$A70&1odVlGrKqi_fRbQ z!&C5-6rC4S@cSuve+vFjvG}R`G$u#XOcEDAoy_<~#T8k&J5um?#iBnk1wW%$TIlr@ zygUW3OTl~M82S4S#S_5)3ie3`&7NU_6knZ!2MbQai1zs&O2N;k;FT$OM+!cif-66Z zFON}sanu5dIPNCcSAiJ}P%JGmNp;GTA5$zk&!*sc-u^8ZR?AXU3sdmNDXM!?@E3~x zbbTxZr#~mfl58?kaJ>}VGzGU-91(-IDS}H<@D(YzYYOh3f^SU0x2E8MDR@K*9+QF} z=1;3=Oew_V6hSNnKa+xA7VMKoUX_A(rRePQdVPfZsQyS{ol3zKo=;|3Ed|#~!3`8k zBWI=Hjw$$t6g)(+RAYo z$7)c|XqM6TMzf9fH9Fkrc%xH|&NNzJbfwXvk8uhh1u#a5(Gy0~w^;#?5fYB_Y?Tuy|?Q3+n(eXy78l7ph!01Y)k!nT8C^lMR^n}s$9aaFN zSw`C%%{JQC=y0RsjZQT>(`bRwl|pfAZILmGjg}ZaVKjZG6~Jhg(e_5OjrKJ<+~|0t zQ;p6vT3~b~X#}Ic$QZ>&ON^c{n!d{lU^L5Ud!yM#`x+f?biC22MrRr=FuD>n!qH!3 zjAElDMo$<`-)#jjnq{=T(QKoAjSe?D-sn`LGmRD)UAf!hzsMNHMoWyIFq*!{3SczL zXnUjCM*A8aZgjlSsYYiSEik%rkHvqHF^Y|r7(HP${ZlJ|(JZ6wjb7(HP$eXkY3XqM6TMzf9f zH9Fkrc%xH|&NNye6!E{(7)3^ljg}ZaVKlwi3SczLXnUjCM*A8aZgjlSsYYiSEg)t5 zuQW!H(PE<|Mo$<`|H2AjG|OmvquECL8XazQywRyfXBsU4mH1z2j3T4OMoWyIFq;0Q z6~Jhg(e_5OjrKJ<+~|0tQ;p6vTJWXC|4L&N87($iV)TU3^slS{Mzf5zH=1pg;*vy8Sknr*bN(cwnN8=Y!&rqM`&ft5y!j20U$F?zyi`qx$fqgh7V z8_hP_*XVGgG<7@t7bi;Sw`C%%{JQC=y0RsjZQT>lk_S$Dlo=MqeVuG zjg}ZaCleQe;$LY)JlTP!;a?T}^LEV&oa-H&74Um)Kd;~7>eG;y1HU}};lIumK>hev z5&tUTUpoF(#=mO#7r?*j_?Llyyr-)s{?W#p`FZ{G(lg_!ZA`Vc)bo4m-=2z|i)!wPqA{i^A0*0sgiUkF9R!#4lJS)=?%9{(F^Y2xlHJ~&W+dj*_IKl^?CR)MtC zYI#N9*Kb@ojkQBl`@Eyy*MFdLTD$?gF+bFwUg3sJU)qW>&9e&HcnxZ{4tfWF4ft2A zKdV7#V3k3+L$4Wq-#vqJbG^d$)$6Rd;gagJD|$a|%&NBH(T5ted+qrqp{cc=4X_lr z=xd`K5%``Bc#j^e-r$+3!D?P%lTf{y8+WJxC;9Ta z8sa8h?_RR!8M|+7RiEc=06XBDpib(ss?W?jtD)CAE7Yo7y-8m0tk50!&H`sH&pcJP zsdwnd>iuf0%4v6K=wBmV_~7BIYgD*n|9f8N)}h+%+Q+k^=U5eA7LF6LW>mr71wv$j z#pc>sp{g&vkzWI>%{GpofQRKCAK^5P;6`!>Zyit&W=3Qyo#^88~(itNc42u!qVU&!0cF{ z6I8NeHM_ele;^~erF--c#e0#;iGGkB3-_U^+AL9WB7l^GVXp zmFlKj+|5696Baia`2*0N*|E&m;VM#6c>~^qbDawzTg~o6uGDQN4uXw|3H;xr zv%(*;B%h~OiLe81P!C$>D>VVllBDK-Ks0UlSj)prs`yH-$9qQIqZhY8S;k6PeuS3? zMSVl}Sl697(J$zK7&)%vgGaP?c61||$G|*%8OFc{c*>5%!W&6l=M?zIGHUo=!TU*z z(@KMf)%Z9GMu8e1Qs(<0@JM${0rLvSEqrt2;{SwU!@9UsO z^=0Z{Jqbr!`O@Hf-iPf%T_PVfW*3IfsYKTjjg0{jjpNtHqp=YgiD;~Wlt$wdG*z3! z6~(5z+9Z{~17FAH2q>dK-%`;HuK7%&@zc*V8h=63qH&`rI3JTFqH!Hk7LCo+&m8sh zsrsQkqOs!V2{#X`o4mLiiN^cIO(Gf(G-5PfiI>e#u)85kjmF!=K~OS~XzVAhBpPoJ z$Y^{GE)b2^gJIEl6`jL}R8JB%(1O>^61cY>AI_Nl7%ekxoc>+2OaAw`feH#cr2K8I5(z z+jDVee+5shzs z%64EhE~&uMr$*yEa$KhajFZuLE>aSW|1^ZOcPxC0)O9WfpV7E)twv)Dq`_`Ol8DB} z$~*zb7LC6ECZjPQ1@j883USuSK@G7J<2shAFZ5pXfL~WAFbwrs9#0yYHfr3~~>gtv<^6v8y0b2H|yO^4^wa{bg2(v{-G2RD*D7eKvu=hp0;sUYVvr zxJEr_5H8XLG;d03<^XCC-U2Trt5+m~@W9S^5dPp}IZ}gg4>_(g62{3OyaOo-!Zs`q zmc;X=T+T4?8H5=a6kHN-K^n#bNfJTWTbbvASP(V=Oa|df6bxhIJM8^odnaV=0^R>+Li7YrS8WH7t>gPfALwigGZzkO|Q8%sQZe%J5iJOf4 zp}ITHgR4l%k4t4Lr~z5(RNxZ_LCHX-g3|w3BAE(~3*=OA9b8~4_yY`^3Q7QVD!4>T z`lBezRIrcGb$$RTI~D8@9Zm(G36iN`t7`928AnqQpiTwbMHc*f8}p6tj#q(+A+}Ks z5>vqvVYgWmXG?ItEvfwBrKP3WZX~#)jH7$wsutIYw3v<+DQAOKWvn`$VU%21*&y;RvFn_p9&|Ry)C4p)B{f$9>TK{Kp1n(2zn7Q|u9vcKNxn(c zF&jwjY>(VYb0`K$P6%6(;)D>%oCR;_&ebIQ9&UJhxvidANtqpc||C*b~lymOiFV8^(I{r zs@r({SyI)Lrz*=t^*d;G6rH+m42DF>Vs8Z;-?9cTE9V#HUVQkP?AUYTIaXrf3)Ha0 z3=h)Kb$$~2`18Y8OvNTl%yyU2s^lK^vzojT-@D#m5G>f~DnWwh6No+zUz*VH=AYKbc z!74+RI`f=7AqABTWac?RhR!^{2;|Ij6wFDT zcIGJ(9nL)414@{h55#3o+V(SyVj^dV&-{M*lm`^*)lX= zmy~QmKHgGh6LL>n&!(M3TI@!Pl+(_#GI?KmhE*ahRvjSKX{T`wcAtOc-)u~ocHaKG zvOJfctsZpRsjmrWzMs@w3aHc0#tck5Ef*!Go$I75oOXJOdg>&6;=_SB2_D-oU3JSn8|%MQaJT(m&xn7U=sn2?Opl8Hs>9ij)T2D4MFx z$7*w)+9Z`Xi82E&2g<0?Mk>0&Ih#oWOE+u4eS)L~+Mr3PF_aS)UYB;YO+SF+S!Admr< z4;Kiy^TDuyYYwOZcQ0h9aWhetfU8UBI!!>z23!@OqU$R};`Yoz(mTP-89)UP|s< zn25Qkl!Y<(q^NVLXYFjMe@JsU3r>?^=SNDH`cJE(OtJ81B(75(e1_d}e6GW=lLEL- zB`HySIXkHycY|2iZ2?S%-2j%Y%u?S zffMce)|Rd-M-Cn|GCMX`wr*VTWpA)T4GNPB{W39FyQOQ<&>{Dag@Fu!%!I|`YLT)v z$oqp^gWx&tI$5+Uyiv&)-GmC;p5kU0a7dCNc{+c1`PYWdZL+a|yM%EKvtxZGqGfO8 zaj@&uf;vZXl|Q_l*M?fPd--=w&jN+GoMgWRCx=uzeoUBeQ>LfW^MCi6{vE3CEqXFk zHF7mOE6O!vLJ@4&L7P^~Xq8`xLS^LLi5~@!c|RV4y5TiP*;O*fEe6CKSGjoUjv`&-#L z?g-K-r(_^=++i|wQ*lrr=eSGY0dw2|Fl>(d6fmc$oc1@9rz4*V*-3WiM@Y zv$G;=M8vsmgCLpPmaEeHDr2`T1=P81wa9|st!IAm&BSY9qMH_}L1HuUqOjX6h_fYr zW=X1RA*!~1eI(V(z_^}GY>Bkk4HhXUwt_NwpL2#)A}vhB(a%Ttjs8g&1#PVCTF!eC|GvP->b5> zt6Qj5P8NT#h+SSjJHIs7U(y2KVP{7VX1n8$W=H?cj`lr@7#k-C_t_^hw3%l!qG%`?zrRacDMVeYrDdd(pQ*cV5v8*d#G{dt1zXD z7eFVUI31}G_SNuB92Z1uj#%ft+dXtvBzIk9U;j=@8T}#^i)oypmGJFk> zM!E~KtD_aFV&ZKa>v0@&ZwUgphaNtUvJC$Rdbmcm8@>niZChA!J8at(@;NUyp+r0K zZ|`uAP}8eUV&L?MU0xAg_xuqVC2aZ_U`}*1m^I-ELx;?YfLBMqZTFXq!wn_Pv_S8B zH(Vde>~*W0^*U7!Ym<}%WyrWrQPS-?Lf82aWEFpqMC{wK*Ly1Y_h;rNN7lc4>#h&g zJ$sf|@0D#E3lUYtr-dC~r}Mmjt`9YB_B8UevQ7bvcKsfi1yqx^<&Jpa8$$K!FUI+J zj?{VFP7cA6^0;&WO*_vUbwlXt1~>BfTt{fJh+m&4;;a1Lwi`li`c_NG`xK*RWCUNW zDksqm+BY50F-NoWcaN*kuJCaESdSyLy3-~k}S>klQQWyM>)MgR^<-5b4YRu>_kZ{+yq5IcHN`0s{Z_wH|EArv&gTd;{Bzc zwB#NrS1oKERj?e4cDrrrd;Ge}a+dk`g4)CA&yc zyQGkeSojN`FJhrWe(Vw!fh9WzDcGlk1S;SVT&6ksO+9jmTLPWCfba+f0Wc{d8*{6A7B%g>_Y;RRhgyHbsnejpkYHtF~i7%sn&1NIxc$Y|Fq7L ztjCU%cDX#&c(i0~lEMF{F$=VcN4Ly+2NL}wx`)AG4Xxv%4=9RD3TVU!E*i~AmApus zxMW7EB$qaWu&O@`bzA|t<*@~&3inA}mLGV;$-UQgv+G-mXejQmo*y65_DkL%qtHY5MA z@`jtg@uR`ptGrz0MaB%e2bpYA=0r0dbmz#7{CAW$-HeBih4CEaoe&;!%aGCooUPRu zKQ?#xxCfEGS<_7h-!pdH2&5m6E6z2+m@y;9^~`qr`vZwq95t>pG&AGrJ4Z_Rwuz_j z86n{twlo??!na3UK6*@UW!O)UG{8;o>KGe(HP6&=rnsLZWsKb<4CieS&QmEHzuAzu(*0KUD8d9{eGzl6_}nwO1HUTUe|bGHPf_R+)5CCaVxQ ztEt3MTAgCoSwMTu>IH8{|4{wNb(+)NXXeyTb9xVC)fg=K$snCaNtv8p1ZOpsn9~e3 zJcmScY7CeXI0I1>D)t4P?0tVnsAj`j@m_5m2ZakcbkX{Iy_y5?{=k%DQvQOkNK)F~ z6NYmX1Pzi}%>9&cxYgMa(*?+5&|NBEN{!>X|( zM(Q$#gw3@zU8gZptK*_tUwQ2Zh8otrokJ22k0ozDDG!Y|@u0UtRd2?VP3n5{{uinc z`SK`REVE-V>nSH?Z3$z6=#wNksdO$78D0^V_imdar9U^kL{qi-cdyv=R~s~#DIX_a zcB&6aKF%LxxWR3&lLUTv9eYU}F`h=!PAd0^g0oKy;YOZ?wj*UHl^3a>x75!M>WB7l zQ+Gka&2)A1oVu|G$|>R|aZq{mx61f6=Ef(`GOqIoWU0T#j1&h!$v{pj?-o}Z*yRHS z@{veS75xK*AqQ|b0qXP3e7J|>8$~7umDz-@(+k9Yjrlu*$1I#V(Q8Lh#Ia?di=gdf zUZN(QR7TFl0ym*wE)!XB2-|??>C!zd!Nke)`D%c}XMG@QBs-B zyrPVkgLtJ>deO`iX|ekjQXW>j!K^Y?3(v4hq{Zqjk+RjE#t9Ze<6JOMe`&TR6uQnV z^`K>*t_d{Ag@U9(S^?_AmIE&(GjU5~cC;biO<#Yv~$CkgidTi++4dW|F633Qpm01}C9+}5!Brgh)FG+`<7U>L8#GlOHlsimxx0f z&zZu2L2xn+5@Wy*zK+4WHTw!+&=JFwv5V(TaQHYH(T91)X{XYR51ulm;2M+1}3b&FbTAxhYz8!mzVQxHqV0Sjd<59Bwh?HrKob3YGulZG2wi6x zIBg5j{-r?PLk|c)jkk9pZEm;HB%E?q_=5A`p8c>Tc z7Pvb~!Zo0#$l}v_d8Bj=m_$>x`FfYwbW$5>NSTp7CtrH#cFD*2j0`upXdX#m%RF5J z4kBr5z%o&A){9|$4OonntpWHxgB5&2{cKS`w8t87GU;ZNx_Lm|Sj>zNH;FZ1_fK2{ zoT;(~+yPnY8gRWh2ucRB2J{eDvIbl!kh9rLxWH`IMHn)fT>_}_mnSmE5t*z3=McKi zMIisj8jvZ9Tmza5k}0pAnlx1zM?)QfTmu@4EZCK8kcj_EU}6oZp$3UHz$fgMmE&xg zl~3(Vt^rNTc-gp*!1NrO}dMEm0OtS-EiJcMhEZ4G$oC7EB~<+U9wed-$U3^}fI9*mP~ zKqI7d4fqA8QYhE2B(Bp6e69gIrsx__7iqAYkR*brmNE~+v8@3I0h4RMcor-c{z_eL zM$oYH)-se_r>l_QqSvMU#e*i)VO(?X4_8$ zrNQ2y(7TO9XQ7_Ey?d)Stb_Ua!$TtLWU7~n4txA<6+DmO$D(WWI(0c3-QYwl-sZ{= zjz-T_YO#5{H5{m}UQYv|8|Y>VAct9Y(4th;G zQI1k)3*>^>R?BfK%0X=jwph4|mf$K1^_!&jg!nPz9F!JjoK8^ua%R@5AJVdN#owU5 zm4zH(7m{mA1)sEDGz$xN@D3p;H?C0RPYFu=&0`ugl0#3vbLlA%A2D&eNc<4^hG# zJ_XgfU8jPJOmHqJTD8S1%z|ZFh*qSN@gtlCJw$Z z7ab{M`ZZG=f_LLV4Rd1m=x-=;y4K<4`C9UmQ0k|Z$)H4EIH>@LeOKOvu!Q@r;@){; ztJ*vc3QxaDZkUMW6U}d!!p49yjlCxUy)G|g*7FL_Y8r?{_rTK#oH}87*!mG`E6ecv zfLPM&O(MaP9$rs|%lT@B8%KXf*GL%u8$EfHAZ=1>4 z+zsS{Vl8$-Y)Kz13eMdm%u_~Uf23?l->AoF9n}x*;fD5b^Lo-vNZquEyOEt*9dQ$1 z(j%D>_$v7pH|C*WRUu1V(oYphK_vrO(*GetUqJayAg8LXQX2oS!jL8XJ3t+(?X;xd zicFUDy@alF5Cls)ZmQ$JOFY(X6-5lJ%$vfwd~-4K5p zWht20Wv^3%#M>xu3%kwoIQ!SOg?LM+K$7xq>nCNrjE?Ks+bD@N>@e4hl#dfD%2;(c z!zz&$tB#Or%QQX6c8K^_Z();4v%N#;I$7#Lm-LV(5MLXTipv2po8br9%?HqXt?*|M z?32^(QkEa#rMIZdl5TIKbXNCYfMC+qNR9+QMp7Q@X2TVFa}J5?ds>^#VP)C3w+KzEpMi2%s(j`W@1m6DmVExO2 zej6D$Cu9V>!6#IiS=~sEEc5l%{}O0Yuuv`DQ%~mRHKY(d1Cd0DDyc>1tv9Mkd-}pU zb)`D|;%mvX*@r4^0E!|^mJH+jhH+9L=X}a^W@!$1xLmtJ@8u<-+TK$m8&&rPj15(e zoRHJP%v(R8rVQxo31fi;kC5;!vcYPJscfw!AEzc6 zZt&-4NCM@bjj*--4WCWSF28T4#QBGW?JkE#N074FrI-5IDr&*7kyy3ri@k58CHq3 zSZx(4TWvAUH_>W2V8kC7uAtC$R;UM^T^4Er4boGPG)PxKPOh==jqp;k{6X}d9vXf1 zG-@t~M&E2?=~EvVc97#b!(ps5I$N?IQu@Hqngxo5&yjLDL%`?kQWYbEv&)T0!}xZR z#O!jtGFySbBi%IwOwKM#Sun)1x}1k$Po0^GcsTu~IF0;hk^>qT#j}_R_bzvcs*I@{ z0a53YuK4pc*fL@9s5zUx+@>D{hkK$eK7zNB>JUdaa?9$5#~|F%d(3mFP6A+dLn|1w zvoz6`?h!Y9b5gY%AY!`*UdVfs?SvmNWx&Xm3$8xa;RF64EuF3YET9a*_*Qu%6nO|W zST{oAolv-5n&IsCHN&Stkh9#R7{5McRvxxxwSbwU~Sk2hHY9l0NM-J8Cujr(Uv7?8KLW} zUuQ2|7l;VMCv%Y?*%7>=N^hx*gY9KN&cbeZfyjb8r!&9!7WZi|(M@yIAhE@b3A@d+ zakgwaAD5K8aQ)_VZU+)xdc^f?i9fn1z5b@EmK$E_5-Xyh3XhEyY@(_E?mQ?#xOkx0Kqo-J`(<}(V7g6Z(6U%o0LQ*zM-~;O9>E))mj1`? z|BIYxagGk{!^{)A-v-?MVqha_2lN|MGOjh)A7H}4$l=&r4G7MrBxfaH*LHs$ZU=TX z7`5AtMxkoyYEdnqh1Br6;9TNZ;F_-!4Ro6}(6bQGX1Xc_co>F*York856qD1Lgoi~ zkiGwX@1^JP%4axDtuHg{3u)~--AFJe>(N1&shEG!eiD5jJ_AaJFjFwcuQ_AH{N5Sj zEhc`S;xk{IU&w5u*%7`ue}ObvX|NUB%T2sF-{qDrH+Q+|#_Z^xoakw&6~T`+;X1m+ z>(t`;fIf@`S0aTeuQvk}UshAw4VOp7G0)gK90Zdm53(C2uRe;OMlY`O5Tc5wHG0l8 z(#xEP!^oxkAWOWcj!M2lMzprQxemrOZ@|P*!^i}^-J}kDu}P}aCzc91vUBEP_>jw3 z*5JNI1+9?hYW@sGX#*tq;DYOGfG`~EKgGOcAe=88=SMh@`R5;-SNXy}@;MOUks6xF zTCz}D(#a7LT=FFS$m#B-D%h!llS#pP73>8;2Fd*go?R)4h3D#pB-fxIEbJ95P%P|e zzB|vh8WyoUuG3B{@X!;IF~Wr=4KasrINU6F3tsdO%jq_*c7k)t?geGbxXz{GAy`9- zCUtMAJ|9gKjRs>_Dz&$&jq<8K779f;4_W+qfZaPB&B&9V8fBWv6KQGi5%uZN3)f7E z364Jupu6CAr0Ag~N`r%_$|q(20PGUw?RjiJIsQH9vn)@F7d{z>cSNLEk0NdOBf3T=?e2(^7prxKMg#DS0#8(wbviq7!39@+s8T4&vWn`fenJ*<}uOAF&;F6 za<0Nw2IZuq=TQLE&U#=fixczD5_v<)ABTy}%n!3wEMEaWy#PXjl> z32U;3&RnO3m<8X)y26&s)Gc5Jxwsij3;4U4{Nxo*4h7Gyiu|pjQ{kG-&@)0lrTc6vQxEh-_4WuJ)U^RT>HyD_G|azQknt@cC6kNI<9 zn-i1T4}v$V{mpcY&ns7!t$ilS_6T^$sE?N9G`z6He}Q^Cr!}b;;c%{~rTA@y3V#H} z95e<5ar{LLgriK(Xl?^j!#s@za)V!rScdv<$O;95rZxTf;=$RXj*hA$X1|OazEaf1 z`)G2gTG|w^Uw)`n{Nq=pqTU2<^VrLs;WuM6Ztb^Fo;vln50AsVOgUN-FI6*KaR zF)Otz>=NDFHTpe=0zUnEj|O!z&Kb*0LfuXAh%AmRskeUe^9OV4-`P>BS}= zBO5mUrWJfSzy9-6@S)}>dXlw#nTi&HqUSFKLD$ZUf+Tvr8JODhMRe;1Uly_S{Bm&0 z^!%UFJ=`(hra2r3gP9)z)v59r&`_DJWvl!>lGs}DWr5Z_y~C>@Vj{EHUJ=U60{Z~@ zvVdBa2Dc$CFAMAeNWLtfVtH9$wfEbUP#tgaq)>Wfjk>-Gx-3n1P%X_y)=3B13aOsc z1TxgJwKf8^tCJ(!q!vKQqSrynihdi9Y+a`|I8wyYU}X_X(W@`T{F++!)97L;yB|vb zXW5THBRh%@73_;44D$M)f~E6gBb1Z{s{?B9x5fM?_ax-iO7zQNn)OT>^*PbvQW@l91T^9y~h2uO-IgYkpO-e?n$zve#Uy?0AM^l1@MsGa%9T~DfKWWBSYQ_&6 zcPzR1Nl-|zYd%uk;>zY^3z;&X%I7TERTKE9HD0G!s7~Z_y<%jvIU7cUSokTNNWo`o z6rCA21(g;IJ}C!8PFpb0CX}@V>@t-ts1u>Y{Xn?snpc|J1rzD3z|wx4OF7E%1}k&H zyEyO3L8w@C`v0{?f_1nPr{e!##th)0GKog#X*Agx*>t27r^Q<4HdYxHSY!L}yYl22 z+?<#2@&$zOTT64a-l(8{T=jGRVr`UBpiuq$9g^Tc@gW`lgK(TjMIKy`6pU1he2{p5 zkFYH6qbTO@xRXQ!p*@`6W@WyS#fteG#>F@nGf9q05`Wrxgpj9J%wG;hb2e7C)`lq zEI9^uGuN|>`oqI}fErS1I4Lvci(d67Lgz(J^0trskMMw#+n7xWRqkAOlm;u&!506g zP~d;aWu#0x8NjE z+>Nbb-~fc(WB$%K70aywyB%WJJ-VfI7hidH-bcFK?!!m;PO!c6W!sBrNO$a%@+R=ultjsdhPyxLw)`R z3Z?dCe4fLU>y&4HI^CXlBjx4Z&Rzx)Obnk+%U?W23R^Qxlok zpyP6c+5S5rio4KwQsl7qZzsuWZiC%`Iz=reRv4Uq*qu)c{S zxKj&Qh?W)9AaRg)T-a^?1Cf@LqqW~8B?o!6AHY5$>1BCb&kphuX|Y==QXb@;zCYD! z;u%(nv{*d`sRsUVo}Re=G*Op>yuai{Ed0=>9&~{ntO;nQCpG_jonH7`byavN8Pz{= zkoSy~Ea+ecNIA%xLJr;_gP-J9wiZ%ykoOJGCUB7Vt)6>?z~@2UraSZ?uPSrL z28<-JHL0k~18@wF?3hmhlLvVtQ83I=`f3!c&t|mgauXtq1zO#;?E<|wA z)j1k<<*5;?T^*7v4Lb@m0g(@{3BODW9J2{$GADpo;8Q$$sbl{J!dUH!SOC@wl&||A zh6hxi%OCWEmz?}ehuE7+N z9qnI?oOo!T9qoFM7aE{m8?EH4LG^jBkaf^-Sf*J&45%xD*7FuJ>q$l z+BK}{HR**9j$|Bdx12s?PIy%wnlNGBuL2^7e&TnI2%6_!W_cxOrUBxdSYF=qXL2|x zzZPKPXu_Z5|07QEDqf(cR9cTR5aU-$#WV6=M~jL#=O9#>c`<0*mGiMNHzoX3PVrM3 zJcXf%O~4R!@wREdmg-`rF`r7f_%Ol&9E~5VtW+OO(Bb2X*ug;)5-Ps{0!nR=g0k#QlIz}066!c+B$NY7+Xq!N|2`;I-22^I- zD=|P&5@;R$P_=ZLZ9oMb85w|y5hK&I@;!J*H%GXXy8da*O9c@r0f)?I4EaPiZ9$4p z=*bZ?6q+nfe|06EoMa=iB6Raa88;KfO?<>$$lU1ToKzo~#tee0k8Wjrgw+Q}%s(G! zy=BA5VyiV$ue?9 z#@}h?h=SE2vefD;fjDFM8n1_}WQpFu7{*MyZW#_@`H#^l?v5t9p3;JUMB!ty%ekbN>oW-)2KrvPQ|#C=f|fHivr_yX4T#LH&F$IlD?I2=_h90- z>_h)Ngq&o()N!P=e%LhX=1{9 zEEZa9obDtZL=vShM{dl2RYE`FAM-r@V}h4m#b8NsA}VI*=xqK8pf;_w+j;8dzjgF> zd3mep>#)TKBly|rz88?mUXj*jpgXs4e^sWndF0h$-Znkne;=HdNTRv40;Yq268faoD6*r>nDLcnd}4)n6OH~ zu#?ICfOax@t`>ElXiJCfBE;u%Gwft?vxpG;nOgjU0RHQO?+d4q*2;J}|kp+(o zWPX@=rNb71iEdh<2ACCfC@v6oo5gXq%#HIUB`1?x21Zi7jEL)*c_J-#cZ-xKlkb+v z`=T?f5^1q=AeH$t9D0K__b+{ljVL>wH=fd044bJ3Ept#4&|H($Tnwlulk4#uT+;N~ z#L46}QWh@H-9(g#S%$>g)}#FNSANL^<;_&k}sAA^Cf7_L|2 zEhLGP$yLgH8U!BMF;f7sg4-W%Ym9;+GU2Y2bH6_MAD4+c%(H6<9=AYzlz|v4A9!Gm zH~kO1OmXuXrjzfxjWWIeiJrexikPqXJqf3hzpe^R;$obUn_(L@{A+d6FAe{~ghs<( zImcnaF!4}`{qS{2H|gVOFVoMVek@RBwRi5D zq0lY zX-M=jE|HM74CHzT-wd^hRG0krve@NSb)*Xmo#F=pa!ZUCx?sd-gCD6lO?%@o-VMPU zF_j>m3XTaUP>7KuocPNk3*oI^QhotMIi6&m-kNdNPgu+drL{B9*C_KQZEG0p50#ln*)=sTpsm}JkJRWM3tWtc z*zU1lOOoi-Ez>TX;!B2|xKEJoCU35hux!!;O&9Z*dTkbkaPhBc?kWwo zSIs6#O*sG98?h+VB2Yc4R{mLU_M*^b)%Ifa+Jd;vJGdxxZbaWwlyT*MQYtuV8i0Y!6?TK$Rxv(~;|J;fQrx4n+2{!hcKI z5-=ePNgf>K-J{=-Uxkd=(6;ymIb2EIWkHpqCZIj?zsFugey`po9s<`{t z@>-^{>mkFY5G$k&`?<=0KEaQFTEmYO_(OOL%sC}5b*dykB8^e)sA^j~+(zc)2|Im! z6=uTDlCe-mMXpxe31xIIAQOMefZOJ#B{{0uKsCpf(e$fkJ=JX7sgk^nf0RMt21b-o zl}L$AXriirULo0ksG0-HXub>Pw60lbNj{oqtmk%?FH^EHUlRl83AMYnjNOA^qW%5z z-{UxvGxEAowxs-OTn!My{G@Q&RQ357X!hh2X&L!n%5#=~P+TXL`8Y~|><>(dZ=62^ z0%K8(B)9+zyN&G^gcEU=af*_)*e0J>b~ilRI<-eaDIiYNaSlqB92@i$H?^4%oe9L)xT+p!EX zH&`uE(nxTS#vNY&kNN+5msv?3RV54}g1;)2rG#IJSc8V+3P%wLnk>^m7|{zno8aAugNsCe=ZrX<c5~t$f6nVBz6r!;ff-|c22JK`*igv}K-{&B-J4y)ywfnV=K(TNIRw5=^lT7PDYT@Ew5Ug4961u!WvH^?;pFi-W(PYVyWq1n^K68ho4l@_g zS;O+?u$?(<4a)U2CO@)%C2<%0^fs--HVwmZ(6I)&ix7b+92|cg!`F$n;TRAhQ~f-v zege0vpZs`0eXjLJBWB*KDnBDDoCmVB1IUSPDcRG$5*t8W1>Z<2Tp?3)3&<%DLE$O4@sD(bNd}(SQ z9k`WTQOFgAo7hRK8NNItmG3~_Vv7FdYS>t~1&_*bmyak(Kg|Zze&QS6$$om8Dc70f zy|gM+=Y~8Q{Quo_kFcHl)zZ3YI8uijq2V8R6GogfG|=gvBVcBK47)Gx1KL)rq)@=fDwtycm7qZJPuZVc%T^-OH1))w4cj}aI zkIVt_2buw#81&3lo|y4xnvs=!h1ZgK;w5^?`hab_njpnFV<-Cse=Zn{xQ(s*xt_C0 zmqCPVp@nL9&W_44ps2R=;Lxk)o14_zEWk+ zI8{|vTMg_%qM|ZovUd9vnQBjRWB99D`K7oJS`O9yM;2J^@eI%&d0Z~T92Ws_c*p#o z#Krie0@aewT)yNC74yGGQR1C3=|UeRZg5r~9S6VbIF+4)n{+grjxe;IRzG9Q`0?}2 z9NX2WA*8h{{^kIS`P(jlM-w`asFyaN(yD%~P#|s}%e;^exvmp?IPPW=5E%VfE;o4N zO&~f|WDCa`l!$5D)Au9;_u5k|nvvkI#IeAN*HIGP)W1c@O?^h*V=^uKr;(#iCK-v$ z{hImLkJ4rEfn?^}$iW6H8w=yqXDD@YkO`Zpi)Pl_GCSNd0%4{JgB0S6xracs8e;|W zG}S3Ui?Qv{-|#bA+b<;L(kJf*P})Sc8>n_8b5qU5s=4bm)}SG$l~KZ(AhW^Xh*&sx zlOzrz`%8+e$tzL-nSy2#Vv@R^N071b%TF^a=SrxuVwb6(Jrl^y9NC-h;;Z9&VLGj- z!rv7WoATgel`DYN)!Wq$e=H8Ksi%9F7vjSlKMHH>=(GppeLWEASTX-kuRx#6tVMhW3&(aEj$7kmJPlij z?PZAJ(?d!Uj}a2^|8Y#?gO%rdX}A8$v^^`x%PaZ_;F+T*)zO$Tj{G^v98V(@G~$ml zC}RFLN!f+tHIH*ZrSI&)uZq4JgC8Md&IM0FhU3Zy;%*)V0^=5mynKL|(FhU)1YYeH?xA{&>Cefl$mR(D%s)mx&w+x^?WT z`F?!^IkI)UNb}9eU#vr(8_dS4)gGl|{xu}&)F+XbN$}YkFn&?MX+`)HAH`kgt#PXS zDkz#I|7DWeRUx?#RgV90DY_f1P4FfawG8tJ-EeDZ4gBg-5F7(QRWw>e!Qmzu$Ry)(p!U7t{>4+VWL z8-QVFVazW&d+F4Szj}g=qt^d=vNVpb0@OIp5wmz4ccco=+=L)tQ&#J?D(Vo|mtZ}Y z%$Wb;c_fLzj5v7~Hjil71mkl2>Wc!iWty>OG5@KTK$4NkHq2&}xWR9FsA2~V8d-`z zqqdIMZ!M<2q&Vi6*Z$&uA~FB7NzELLO^wV>GD`j9ld=i9n#nlO)X3~(Dj2{I;TasI z+A}upu4b|o@I?lTs;ZYrsRN}ik|U9MoG@`D z^Ep#m(c2Ok_tK2dk!*sSk{Q<{$4+EE#dBS4WcD0*Y-g9USm4DM8JP{ei6=ADu@jz9 zfHr%XHRCIIE|T~G9qwsyjM?NDVuP5GS4}^<@$d|Y@pA!_Z{l@nv6%Gi0F79e*;)m|9gx%)*I9q;t{#;UB=b=MRbxL}{Ic8kVe&gl`uw4Lp53K0O8r-Y%jEOkNigMy?jpECZ+=9AO$(IxJNLp?`aAbA zwLK+H(7zrfpM zpXhXPM{>HjF*!jLLa1%AT-5xRnhd?a6dZ)4J&e7s^14aeR};3gMHcRc+F23mp){!I zjPd#zX_Xu#b@qx-7w;ERK{=U#9B(qhEH|0BU1uCSqzO}hx}P8} zQ(mRZ1LMOAvX>a7+3{EFD{S_@1hmYXOsDX-EK8a-r+%P=>T?70;yuhg0^4R4xewB@(#|lFmRKsZ)uO6e zifT*Jw51e5nfG_!=gdsf_xrxo&lH89LvRl2ud*u}~Jv%h+;5 z3bUmGy|AHAk&#fH)>K7nkuh`%DWnq^`p%Rcour%&WjC(i!LJ!IV?dbVt%8t;3B3|A zN3)#&Wq>k$*=duc;ADh|{ub76XoV`9SAms&T%dpzBcjBCh4!j+K=)e6(kqaq7}p>~ zjKws$`T*0}FyDxO8whB`SCr+FGK!*>{bK-un4vKp=-ooL+o?phl6JS-j26{1{XRD3?dDg}8ZbA~87JjEgnpEk0 zL7IG}5kd@t%3bRvs>fWFJW{xYBY9NJOBgJn@3}2P-lsg52u%-V>}Noko@hYdFcgom zv%fU4ZamHEx7EbH9GFb?YcG)s4=ZbsREokwsmB&~FlNAOfKk%3iR96zhlH=d0;jcs z-+Yc?Bt39t7h8l>EcV z#8HI)g$O2dzhe3jQZk3hTd>t-O5Y%=M}Ija9|wvm>j(x_o1h4Okz;V zp0qT`%;%oZPUw#rEGWEco1*>Xx&ld|>8$Qo=mexelp zQjODx#LK5FjZ+#*s#j6-X!J%K=RrK+xycthC<}irWL|G2+Et3aUPkl<7OlNgiqcAs za$8P{ZlZ=1%aO^Uv#M7>fpvW#fSG&bAn z_5!x^gp%zoWecg!gGu<2F!;-eCwuhnX=2`YSX8_zwIh}GL%CKFQV`EFsm;q$5Q1Z+ zdd=$Fn{f%9@nhc3QPRdi=u*Z$l{Q988#m+PA>{s%t^xKTQkg+sc)qigtH+KicmkDy zSqQU6pFx5fN*gK>wrOJTcb01Pewxp@X{*Fr$oQJb9HYAi#K(&V-&w3($a@1@C2Bst zE>|f?cSXtA0sWmCmT{d6@fe~s_T^L5ok|_3e=0_vu~<5^kSapiTE$blBf3m|-=lwxAq5?WlxQi8rDzCo)W-O;&Wj`5VqfxTm zrHm2-&RTk#s!S4ZowYoneJ1>8@sZf;m?E)GN_`%Qa7V-;o3#m)*<1srT$H+5OfMhe zE#tYBr`h?E`RA&j;@qI(G|4*&9zSg6-P?-l$7^0TnaV7RH)r!Fi;X{6CcB1%hK&dP zL_2kr-XwzOwpo(h&OHglAlnS-d?aYn(IO<#Ky&01<;+ zxnL1BXEyK3$sQ7t;bIc+fm%rUmP#J8a2hkOPz3b=(xv#|$1gPRkpWr@$@I1$(Cdg} zC48*K%U%r_KfwvkSad_OHB63uRY`uhT+UVijO9ubq<6PBm|h)JmFas_r+BD@bfij& zq`d!Rkg|n9{O$%As%8EvdY`vceY}6rq}4=P^33`Ul6E6*p!WoQaf_p%ppaubgwQqf z&VsYkgdMevYD>uQD{MI9kCiH|(&CF{Eq)!~;+3NRSR6tYJ^H(1%X!O7t_IKxK3!=8 z0+!zsEQWVMp>q2laoqHj_7^BYWDzSLqVJLANwL#HKogCA(*kUU-@ z^|;V|7qy8B%kBhpImgRS`rR5CEXdyhqG;EU8Cl!3lmjJW98m(1HYW_9K!g;hlcFb< zZds_l-Zhl52&4cRFq!`qZ7;w-&378)qOdN^Q{Ivg(vKqP->e`*ZNlU7_@)9LEFCK) z_92v8jy)tIw;bD)H1^uIA(RVte^myE6sEbr##}tLhEQF&_2@x9Hr4b)cI%bUYH{qMCF$|y ztj^cIviry@Urw$(cIG#eHP<>sX-c3+?;A>Dui>)9yC4LorCYSQWT{i51ugmDt3+A9 z!$m`%`BB|%5DP9@YR4R5n>?0&CU#u1G>Y2*3cMNWW0O^)_>v_l`627F*i8bxd&kqL zP2LN(_Lpe*vn5G;QS|&7O(kNWOv}Gdkf=kK=~nCFJFM@Bhm2~iI)R}TfPDY6y?k`( z2S`(LPm-4Uc4&}1`rSu8*o{L=kCPUOh-f9^<0iXA-2U0p-!+_+WRG~9Ku>HZ)}iN? z^>jG^(3xi!Fh3=?J;jvHl6s90yCo=cByS{n4`nYQ)doRcvgBP3@x~+unP$m65@J>k z^2$lx+aX?5koRB=C0lM+hV)@( zYQPM5XEmwZF`;k?F8~p<%u=ZkbVJW#awAuO%#PvdjPdtY>uO>q z30Y|skW&ujAkKP^GMD_&i^{}p`j1u+XRQcud9Zi>K8f`uQ*1d=O4k}iPK5AB7O!t3RNerPkNz955jWxuMqrV>k3@N>6`} za}1};u>o}QLw80~ppBMSDzBp;I6o|x#8C*8A9?`5kQ@3hBnN&5#S{)H6ZEEA+8UzBO0>74uGMKvmHAPnDW zfz1gr`_1!M@ldGG&+R9!FQaEy@w{!H%}5>;`XLfZeh(ShSgs6SbPNV4b5Ga9L%Fw0 zv(T-MI92Xr`-$nlTdMVLBdz|~OIrO6Ap{=|rR=fQn*gQNW3V5x`WZ(|Rro$SfU>$p zO#9tZz4v!mD}k|88C@uiijdKjL8DKWG1@O^v|Gq%J2v|G6lpY38LcLbHVqj~2^zf* zD3sDaS%gyh%VWWmo&}gG5-uj1MY~LkF8cg}q2N445t@`!R8d>0sMT5VM{-g=hzTEU zrDjhu$Y)vA0b){~9zg+3%GHPvoRrG}lan%iNvCvv?ZG;orB10y`8*g@=pN^jwAS!C z&XJ_o{E>x%*y9K=n_fYnCgsnV?>J0Ba8lj{OijubX=bf7L;5g7`Y_`Un8Bo+E$u7_ z*x^ZeD%%N8%4f%5ly4o*lkym_N>9rDSl`SM@TB}WTjEJMlR=u4UxNh)Cf+}kwo`4iVKi=+SC~1NxF6!D@VJl;#YHY5NEY7m`ihXd>O450$MJm z79_CRTCinXm^+$_tuo7Vu|*Sz>&()EoTIZPg7U2q5{v^V=V&X86fV+&bM%`vs2pgH ze#g~~l3#j~UQZM}hY0P^BwY&_PtrHZL*Q}#BOL{eK&CnRJCmHFt-zsMn}Xo1S6veS zhFvvBUjeA*=n-LIg$t1~*j&t6bv!zV7V@7Ysg-^MpfFjB`lB439wE>Z+bx$Ue8r?4 zfpQZV!{X-7DROLkAYQ+Q6Qa{(I@HN2nbbhclrptnc|~^ePvLk&gRx{$VtFYS4-nB! z2%~`BI*20zb+{{JLjxw?I&hJy)H$EYI!>u0J2^|A27`}poP!~ae0@ujUh})vD2V+W z0ea^J1gevN$b82h3Mfwgp6)$hs*_iiW>!iwqz^Ns4>NZHX3)teOFKCMJG>!$itPkD z`3WpL3Y+^QDP2RsD&5I@u)dii;7;D1EpaDr&meX3b+CXTvK|OjvHt z(%i}G5{PSXh4NLp zTdyVxZmB^z)U6F*+^zX5IJ|Z62dx|M?hfeGua7^BC@NEk`u>t5C08dHDs#6E?BR`;}r5-4wFr*@5#y|NzJMgMlmcMlREQhKfa2?h^p z1@F^1g}2}qmSw-J*e?+KzgHRFM1iTLya}<8nR{F=!KFMb?k0=MwT~;0jyYICktFTY zq^l_STR=F?ck)`)>lm%1h9H!Ua}*%7!-)ur=|!7SWY-@N4sZY`nveGB!eVCYD&aF5 zfZmwtbiU0)Pa;&~;(Yi%w=A)}iGd2H1mqFu(T9hk z;OpFSOl}1x2{lC+=gZG6Np@LrK{W4g4Dq;nnw3cG!r9`pTbBB#-<%M1TqNb0%A#Phc; zRUT_KKUfG>2HAC3i3M@#17V!+Iug~##)%qnH!`f~GMw1CB{N-*nJj8^O$9TAtcMjME@TzeWVQ`0$PZU2q(3uqRLmCJ( zF-2kW=?j6PjnaSCUs++>5I2M8H^=oA8}GnbF`gQ)^i~fe5D!Nxc@&_Et`iulxKf;KMEwhKSy6SDCdfiBdqYO1TGkp*!}yf9L9 zfU4G`yZ-M>!yN4XXy^vQAuHKGLR&Gd7))Lyz(`?IRwR;0K!?$MoPg_oPVzj(s*k zJvR0o0@EWZ#O2aAW2nCRywK3Yx!QOHFX=>`5QljBLe}G+Hk!d;?r0~6R4jeSOMaS4jvVwtv@>3FxlPE8lS`B5nW`#ZJwKVLJ%6%YTg8xnqPbzGAkfc zjF)Ac2c&QxDV!S+E`ANX&m}JnyyCUMb4ck;-pkYPoAnp(?6b$ZcGHoYY`Vv3%N1+~ z`w7G66Hg$(yxm?l-FgUVLh`0e1;6M>sC*r5LBPuvq()c5T_7tpj)b_?@p38*0@QSK=-eedXds}UAoYKLhLpHEzG0B6gZ1;V zLxcXXxFzd3(fk~k!_^Ia$#3o?d(@k(!i|7$Msp)rCL2LA7leMV17(IA!8L%q9Mp3{ zu?{X9Yxh8`dEe8)86JD$F#wVK&EEhNrUau>H`Gp-8eHu;|8TW$1q(7b-oR_1&Tf)7 z2)yEh!0$c6vRP7gen1w}R%h|xzQyX|t8cOt-lB_XREluB&}K)DORE8n%YeVeqpu?Y zo;94F0RS;fAzwU9asCc>j`R8PwAwggdYrwSfDZ$p9k6Qrb*{Nb$&OmTb<%PuNg zIaD2^h&s6!oX&K2J__|uSY3Z11M0FAmjUEuvL4Gx<+{6(Ly^&VtqWLCqAMB1no+-u z{-=oFGf2b@lmaqp#m8-cQ8%)Z$C94UzWu09d=*9Y>(K`j)5HDg2?D7< zJ!^eH9l=>!M(`q;!4GY41U$|)0tm|ObOdr2SPZbJ1JXP0`4RZ*MNjgI@BEg=u9KLZ zA^Rk4)9@R{Rb|6{TyEp`%s_TLX%(_^k3?Wtf0NMGX%%Lf5qmz17GAp+i7~aP4po_K zpv$Di>usf}LWI;hahp}f@fH--61X9KCYZ4Ymp*8-(GK%SF`lH;yC5Dl1T|ogh9KS( z7!Zl`;d4+bDBfD)(P#`lwx-6EN8xc+gbeS9wxOoPN;GKhA zK#C4Z*}>CjD<_BAcAP3+WTvTFA@xF~3nI$k+u6st@n>>+gtW;YNxpkFD~MG%*yx z2%enqv)c$!;9au~Jp2wf zrB^1ss!aMd>hxZ7VdWs>Cs3$vPRLR9>nY%%ZqT8f^=ZoYIw~M@ato~iD%vIm-y}g< zFDn@2dU0X0pu%%K0{}Vf#W|cCk{uC}?WbgWNYN>Ac|E1+?jiA}A@N%f<4?`VejyMf zEd#k$8EioydcDk`t8OTV4_a~M;2N-g<7o(?_ZKC}o_d*ZnTY}hITI@>CK`1(Co-n9 z6v(1HE-71J7DainQjoD$MpO$Cx!hzd7y6B0!01R(9BtDl!)|`>WV`B1DQC=VU{<4++Q=cMjQUrtHjY z2NA2X0TY#!iSh_#g5v?H1nU4%jx-~E8jl2jEEmO%DZ#FMPH|0{;`0-OWpj)`PI0R2 zfIFGT#q*}xmux_Y1b62CEU!%R;FcE>ovTD=NYSxzd6#7YOeYzCgo{>A<5-?mA19D% zgf^RPLw1@gI}N0rMm)AR4(U}6iAF2YFe%y~rvglc6JHi*$pnD1+59$v#zcya%JT#> zIESCNlMP@mLRp@N0IBla4N#S*HxA`Fp4V26pE+JG&NBdEkZvyWEP~%;VK64VN4>vM zT`ji!|qiE{4=uA!`k!HA>&>WvsmbtY|2@BVOP2vCK*vrXDcc8M= zM_L+G#!~m7C5K!S2g>U*R>np1W&f=zRVZH-7%V8v`ITzGIXN|!GKfuC;XtN1T60@s zPhwL7@!AF~u~poGElPPPrmw*Tj;T*u^j`Y5aggv-iGtKPCzlk(F$AFWt*b>)c|=MK z6GFLKA4t+(vxeAJSLxyuePWC%k2M8HZdRxr*?|@Dj?L?++L$=pYbpR_FGdzd97NSQ z^;azMZ(&mz+%E#=HzmW`h+Q#8$EZm$wDEayU94fa#xpzvB1Kzyo<lU4DSn32ClwYjxek#>mLe}@ay*fY+5%e|ZUj78=Z{$t1@ z0nf2S2?-=1RhizLGrX`ZY;-x2eyXBp`jxo6!?IdGfD}}QR8S>``%|sgCEzD2%U3j# zJ8x?sO9Nj8yarI+ti)ciNsvAcAnv1jV;hwtOSpH4Ag=R)fUN$am{!rK=}MK0hL_PE zs2X2DD66qhE@j_G3RE?oVTxlvRgm;Yf5af2|4&3R6mbNB^xY-b5>XlK1&2TzRKk7bkt!EP6R4=ds5P8n zDveKD5}!+B2Z69jO_NM0ClY3%QaPRoO}}{z{vyXSR>Hzoo~FzRq1>(${&;l6th%yA zWgvvy3aUh}`DQtakf(#$OmXxjzNB;kDBEYLt6rM2bGHuL>A;O4@Yz+Gv=JM!VImNo zT~X(brLuT$6@IPzJXSuLrH-YMdTQ!sgvc<4n7Ab-{(QvwDMn~ImPS;{;T})1;#m4Z zGy*=BCPL^~8W{T_oi0*U$I`V~$0>D6A4`M5YiZ|TNTX1`B}p7h--2}xeKk?)} z6s$7G(yVXh2)H$MXG`)}n!!Uz%{rP)a4Zdia(Sfz3>-^?i5xd)X?ZM7Al%!v1INj-{mq zbu29r42_jSl2HKBhVV3j8CD8sp9>vJ|3f*riXz=yi}F?GSehs}mWDD7YO-$|z~r$s z%};bJ&GVEa1#~`^KCh0YfkW9w0cu|=$4g=n469-40zfQ?)f4=)kT8;l&ub)Hbw}_E zo3Jsrq3nAz5TaYH0ZScGFLx0v?O;sI>5G^S)+%XeO^nk(=9A;vSstQvlcw9im z+8IZ}WI^N!^8YWx5AmN4gRy8}c&jI20=h4(BQ?eS+RYrBqGn9=&-Pf*eCVdWwu0 zpW9haVNxr+fnRz=VZ4SiQEwIn>eSPG6rwG4BNm^652w;-6E&=8J6_-oo?!LEW1{ps z&=YG?I(beS0g#%v*YR73_#=adx_jrh(0Y5@v?$ymhE_AGYp;l$YDTkUou^&Lm1dMh zUecWdNS_Y5uNFq2T*at=lWK?)JFStTu$mDwIhvEhi_)CbVAK-<%AU1T8hk_*ZUPnV zCzzJ$pDQc1S~J*}BJWz7Ka`2PpTUZS2(_?$a0@S13fP%^N&>%-;NMw zb|K)@@Kn4N7IFpGV z%zR~FMf6E61TMBTbS^VhFf^epE( zsr!st3rfxHaxF{Zh3LI>w?KW+>jIH#+8dk4?7(vV8DKrVE={J-&D)5;msInB(M^_o zTs3(jZdq;x8n|NL5ap~!`-FZ-w_0#z0W5AKGLnrt^)o%Ku!3uWJSb)Z2Je9QKFoor z61!QvV>LP?oZxivJ)qA47Qe)1M59_pg|<$q0M%a}(AD$QdF0Hp3|Y7#5^3;x}iBltiOb zm587~`GD%*VnL$OF6MnHiRixncU_`kDZc`f467~{ell&5gK<9r|%Krcijw2=BgVnr>ZO@+6DgyZ5Q2)#!J30v+$u?hJCJsaVlFmaNK-E01$2m&rhU~#%1BrJ=k!Pb(HEj)E^g1iX{;xPn2 z^O%4=7p+q=y*+p0wKg95j}-d1(b6*~6>l`}L@B3ZOn}~8u0NG7zj+eS;&`NN#%)Sj zVFr?w3a9?!!zD;psY_0AiDBFS@%zsq8v5TCwfiRi2k`&5a3*}n#5;m^{r~4b+i|H# zN*f)I$bY*pjhPW1LgfG6_4^wlf))4vzY}6WuC%QHT=jN{ezqh8y8;6L4PU!2g-#+u zO2BRy9*O@QfjlNV{#>r7Ws?#qP}5kkycUmpN0rwCxz^gzaj7*N)4z~Sjhj}^B{bT4 z9S=Z21)Mp@j*@E#;BSdOAN05U#C*pU3WENYv%pYC&@ zw6if_hy5+9*-p^kat|YC;jlxzEhd+8X@AQs);CiGa!r=QmUvY?kwF@9Y4Mx}hsy*| zl*45>K$+urd8l>_V`=ucJVv0`F(gL$TRJm~{4L!XVt-3}DU>C7RJd&cV*Q9}>cl+r z(^PChe@hb(;csar6@vbjx=e1A8X&U=q$XqRZ^=AY#^3UL1y$n8a}vZ^?+@mZzol83 zxIg-jRuE^cUEs=H;j1*Sd36Viv%jT&1-U2KEG%kh-bNDA`!pt&jO2o zlW8*It7njD{(#d45UN+f&mdK=!w4}Gh>6=Tp~2u9fu7iWGAG3!Sc0~00L(2Jlid&( z$K&$uV*G^i_KM{i1}45u(8hF^d$?|?i3&1bKvB(&`^9Tb@B&&(M8GGh%Ej^oG^vU9 z=J@rbQf$3&sf=~zhTzaK8Nr3#U57Y}NXZ0B-KvfCw^M_Sy^7Hygu zR`@UmH#O|8*_j+c6rTG13B#oOLSgR(ycT%t5#?YBttr-mL_YQ;YL^&iYXF7s@#o-t zP#F}AH4XXU_=<8_vLC&MQsSfDgTu~f1ac655umu=)JS&4Lr={bIvMrE(v2(m+14IF z@@3$87&Lmxq5K=DlF?q%hdw{gUV|tsT!*>5lC;7a^Z$zi= zA2=d79bGOuEW=M1S_g~GsYU}=ZHkdzN%B}LP?4M|jGo6u@*?Fw*rb;c7TVGV{8fcr zg4)NiF^Bf}xvc$EWqNH3`hN3JfTdIs^#@7|;)zE|9>r`yetB>2b^K9{VrK8k&th^j z!&Y@76v*F*3VV4rd1ojC{l)9e3~S}9*fVC1ri*>LDyIkHL^C7V6y8PLY=#_8sZPa* zVxWV}Q9z0ZLU?>>>JXxK0QJez)c!DJjHxO%HHT{{2RTz!KM^3hS`H>92YsBT$ln6Y%U?Jl1C7q(^jg_Y#Yh=N zBtld;mg=bNEFe6H=sTc;)w-(lH-OQ;BUtB25JZ)CPJbu{q!~?I1)N~6nmquKh`2od zAssx#7D`AmCnWB<#aNWe#8i`sX{AcJDMFbTnToJ7ski~l!Na{AAS!hetIFgd*E?YV zXLT5isrWVti^FKDZ4*5lMxy2xlO4t+ZG$-LFfMf3w})035jYP`&6kU$Tz|QlEi*@B zLUg8&D;MTzv&`KVCWjH6w$$A$?^rh8?u@k(9FB`$-xlKkpQ`qp5z7 zFww5D&F;!|X2NnlldSN=nG+yTqn8Cd4R&=@;)Z#V6HQREmYo5 z7wb^shYr$s=qgOa=SGapT zQ)`guUxA*kAm}_glGZ0^aXB7qOOO}e4}<4s{!<=DBVc*A7Y=h@%)MIT?d0>XzvHiW z#O*MH9=GE{=IBG2+JQ`WtQ+pp~E2<}s$e*h+DG}pO{6}Aft$hqNk&jNWXbDIJwSLvL2WB4kF8S z)|JR>KnnEgKqv|5MQ@^ArQZH@H(_pn;YS}u(hUTRY%#scg?0C4r!e_dlL_k{(Xow@ z5Iuefb-zZV#LzZ|J$m6_##)M{Z46uHDnuNX9pOG(Oz*v29!4q3&#AG$BFv+m&e>1x zw6M_*O0a&2*dFIc2>d6|jH29!is&Pz0=={Nqm9v|=~im<+0#5ae^rP_h9K#&{(`^U zt|o$wdYgnGFCXnoXAM<-4rV7!lIQh76+10)_sCDr6=Y?z240W(fCJMy#mO)+k@OJ;=Ne z%Jb)#h8-H_PiZS!wl$JmFQFuP9PkGRJO1@N8V3rflKp;j5tX+4PGNV%ly?rLb{0jP zqf@cQX1TlI?8I>dl;X;np7!xXpneHL5BIeAo@foy%7?JRD@J_3H9TX49KIi+5@-u~ zdiNtUy(9+@)^?>)YnHgy)@Y?26?NMgMy+`0BD(CKX-`ArZyXWu_%L1BXF|mxVthNJ zL7f9=3uQCvD@8%$=FER6K5b`o(Xxfs-l%Hr2?-=&01C5*n@brv8cBuiwq}X6_J+Ns zO&L);^U?a7C{T$6W}-ZQ=4hR2GCRf-yOgRScBk;RH-~09;S(t0fI3ibh}a>NBh_suNvWri`z zb^QsNGYcrjKM71Ph+A?9Z6d>cIM=xel(4uZ`+*}CtBi#P0uwB`t-Dcx>DJ5myCBkS z{Sjd&_tj4I{O*!)eL1kq(fOIJ^}hhk$1dPkjT&4h_Z7dHo*$x?X3fOhdItQk?8+#! ziKRsPLIe$iIzer244EKwst3zWAn(@e;csjGar{Mr=-m+_h4U$pL)CPM!@ofr8E%+p z3l9fylSc{yRR1Mk{fUHvcH`JJ@HU7K}gn$0s7L}=T6J6%RIO`Gfc zWs$K=({A`CJ!`Dgw6VUDT%(OCs(lswCP2qZV${c$Dq^P_Z}9Y6YE;wiipfijI@(FG zcB$dko)ETWMy>E>mCK30j~N!<$YsV{Oy4XJ+!LB;tg=M&7$vn28w@&;m|sX zY8%Cw9mZ+X7e&JLm0?-83Z$=jM1)(ocEERW8&TSjq%z@pZNn=GS$B- z_J4%idSgCB75?d4{vn8(Pwe~1SZqr9O=Ns*^wlo=)_hELxJew^WqgThTIEAEZ54Zc z&{^yI*=KCfv@1T>C&q?w?Ngt1uhAjgWd6}ND&Mec+TXq<2aE?Ais;!xhDS$DR6J&M ztsd7*?nuZt;F%X_Xys0dr;iy!v{%KkV>qcJLR@0_sBrmiv+Du)@I;;c&uI zqd-3dl>Qay?~Cha3`@iWh>45~MrC3D-srFWDQ16fJZ)NakaAm1JpA6+ObzL*am-Zi z0MmR+elX%RlR3xt;*V&%XdQdb87nlCZLgS4W`_I(**<$nwz5dSfVOo@OuJzGX{z>_ zq|La9c6(54zGyViw)noeXiU%|+k6s@WtKS5JIO3A9kE3FhWu;{F~z)Bjq(t40Q=0V z;@~evE$yK1>Muqc{Qmq-VAX z{(VsHE0&uKxq|mXa)$u>PoS8pejp733=e_V-w#lG=|2Tw{fiLj3xWSrV1Yh780+I4 zD>j$VQ%- z2wNmE{koANu3tAIP2ul~`+phrv`b>gHKV@viRg0;gP&X6`wQ4ONo*&6yk@jA=DrPe z8=X$)I&%P1qSbCDPBgxbX|>kdV&Zk9sp-jWVkZhSvh_BU;m}gC4S1UvDRAzYP#CGc zT7MhIH0`4J>juWQ!@h)@#tcpSSuFVn^VcL_`CG;o4I}pZw=uA+69u=8ulfw#L=nR) z651%d2U3|qV><{Lo-QN(M>E`AM#6gq@n4I(qWRQBf_kK1$9}=nWjs<)d7JpUkyGv&9ZiQeQV*>z zo}X-s@qK^KXlK%TiE0lpFWeG~9vFXXH^q#HXsGZWJv4sP{JwpDV~VD=5{)!#ZBz1k zG16phic(lg=+T!Xx>Q^wbgDudiB=|{RTX+#tOkl@!ETfFF>SD@5Du&(z7e(7tnth% zTprozBX|THE73wTHEDb#C8ma3n_%&P0wJMdd4ReVh%tnX`Dy!ctSR<1a0 zZFJb8dG*6E1bFptg(=dSp(Tq>2+Y^k(4>kb>hNJWQPJD)!pjCX#KKcXs`xU}x?7tp zmPA==M)Z6EgX8pz@zqVvA>#8WYr6Kg@JCszX>CQdXlt_8(3c)_t*ce>t&XuqYP61sMalmvj>TFRX$?fTiq;yYu$5w5 zMHEvtv96+ZmNDK#Qwd&$!5%dARN?c3{eDmE#TA&1%-@N+an@9m#p4?iXKk&~DkdIz z{h#k-ytSrDn>4BkrFJ7x+%|%_?&DL5Gjq^~_tA`k7v1p_vLX0+} zkbf8R%+}YnK>~Zq{f!dbC_9|EEQ=2NG#n*dc=-oCtf&W_p?aOaf(quJ%h6ANKBAxY zMOU*PH(Bm10okpWASfCNoy^facW36_t?SXB7S|uKHq_b+YYpqG+B@RY8dkgZlJBP) z*1F-`T7#JH*f9KnTZvn=GtwnyCt8!oRtE1GXJ)#! z5`bB0XzB|vBOP_)wIehXeL4Qpo@)_8^n+UqDSLQ3$68E~JVoHizx7;NWi)~q?O;<# zIkvY{j_oQQCR(3COPZBrz37@c2Md!^!~B=z?wija(w*s$b>E-g6OnWQNb_h$CVn#r z(*SX-8|Fo0`&od$wEf(V&|{sBzy3pR>jZ?Yt!wZXNwsBF^}oSRy}!tvY?6!dtqu0JZR>&<+X?bbz6w)7k+Z}NYOeei*+ z5rs+BsDNQsPstJQ*F$IN==-sr^>Y)J%&#}JKB0B@l{B?*z5+8K}zthRQ50M}b9vA3}`C%nU?=yk2oH_#KCSRd7{ z`|_GtQ#7=%cbZy1)a$)48V1QVc&@mL@`(Qek|%Z!{vy%Xt|h0!QS`M~*1}pl)kjp1 z-hN^<8e-S+@ToWea>=|47X8kzUNgk3KGAofg|&r7i}_a8lxVGnuXTIt>IiLUnO?-2Yp`mN@ee17STSjZ=#mT>{ zo3()==bH6d?I%%k&Dze~`917W&-8pq-l9Th6O^^bnJRi*x7N^R`JTFN{YR@d{ark@ zh=#+%_r*d(j@_euGj3Sjm>hlo-n2Fj*FNwyxMTgdyyo!LHQ72uXpf3Xk+wvWeXUp- zX={tY;>$?eVr`nQXOyjmrsep?N837UNaK6uY_&~VwC}qLwx+ta-xrx+%c|ts{tU%= zEZdx!{=+j^JUG(kf{=b8ZrO4kljqOEuc&0t;IexIusnddHixvhRh|YB-ZKz7)w}N2 z7XWCjzlFcl?KUFx=z{{xKFpk}m@^Q%*l;>*pg3Lz0akOy%UQ;KkwSlp1zh*pdPmpa zaYj>WJ(;{& z7OxzV;i3p?!h&)&;X&s3bmu0D@&0`LB#JW%f-0wf&8F0>z>Te_QKA@Ry42afGm+O@S=w z2{3@?vWs(QcV*P zh@sN#lwcH5u#+|VNM^X62S_>qbF(Sh&V?es0xs2WPO*LM`fw(qb33-8m^!69P9j(k z1^g%gY9G1IzX641Td@%f*QWrM&NXT(^P@YV{ZB>dAjF+jSVEJ}u|R1LD$L!cf4Zwv^kT?~O=g}_fj;1&huIx9a$Wt*@+5;-Vz z-Fe{0r(*g_unY7r@RycS0go{9>I<3pUkF?s0vCqBNg;4x2<#jJn}xu{5E!Ek5K}U3 z&omMJxx8|sc9%yYiWB_ir~9Hsc)DUI;+zYnrZ18rHQ5Ga7V> z(e!2@XSj#Q6l%yPRg@IV(Rpl;1H;2Uvfl=-0Nn0J@#oX`H`sq+HaZRg4D}Zz-7}<$ znx#GmU7b;gPqS>cNB+kWJf1BEFL%LdEr;H{I4}OrvON{u5bOqe{eEI(H(Oid!sD`8 zl*do1^``vws*VAa#H;iZpLVm=tZ|1W>a;EY(+(>6_8u&x&>t!IzmhzaLBKMv3#B$^0rM*8r& zGw7ohT$FI5HTb_oZDRN8tRdyfR%G|m73s!PM9!NiSrzjMa8qw%q9|++L!OQ?_3Zjj zV0$`7*VE4eD0~Za=;ViVwu_^^Y=6f_DacFsLO@$?Kg0|JC8HwM#j01s_ zyAluT*nX_tlh_nX_0RVtzS?B-FM3$vH@W}fbCa=)@Iy$o!m_KSV)c=;s4%7IUo83b z#gHhvS{-FrpidXi?@g?&eeLt@P5efy@z~ShXd?I(E?g}xjQKh&Y#$cq*f_*a_PxG8 zalA=8;VXAAaWJhj#vFp4sn>Yl%EO6+$W3|W^TZ=DNX7P3iLJCa-<4B|UK4zx+219e zj?qs0vMwj~i#1gk>DzcMaip$o+jT2ZtEnCGnW`r}U(HlCNvv&>R0QYs!lp@C2{9Y+ z(V22=o$-B}ku;?#JjxwrB=v2Gh0xm9lD_H~6Y&U%RDtiy;q*)^9&NG_~o3ft(@cP4L$g4cJm zFFB%#Nt@u?b|pC?F2<*a2l9R0_sOl~spYl*y;#rQMH~C^H2Y^!+8d%_w0#^5t%+-!gEW(Ws%W>) z?sl!+W1_Vf-a6v<<38VP!c_u%n}!fc!$v4>$xL`LQQlAD*O+h!cIXWR@&(D=0O1i# zfE!T$9)gbubYGdj9@z#=?%L~+s?=E`b$%PjI`W%zmY&bjROu#2qsPr7Nw2xzGzwy$ zMu5A`OA)AV(uXkLF@^$)^D?D-05Ek&`ZK)51v6>V4C%uR>BG#%fEgFQpaLjbMaKF z2HcqB0^bfI{T{+DsS&&}y@lxBMmqvzzQgqy>3lx{5>~_-ROR2S9mYdan<) zmo$K`;_$oaojEOZVY<7E;gslA)(~Y$t!O$2@an(4Aki?1?owz8`N6#UGKF3@h2e6SS0AYG zLdmYD&`T1%w_4gdE730%dP1VFD)gvCpH^tTMB6G9S)+*J6uMKQm!3Bvex!P<#NU5j z#)R4=>1P%Cl0+X@C<5ZvQs{Dt-dZJf7fJMpLT5`>!bb&(KOSG3lTS+ugp-m-v-78JimFNMlOX5iqe?hUUOLVkC<0YD= z&}fP33JsI!nU&I133)@k`dbRUF45TvEtF`MLNCepZSli;Qu(Z87kebi4=#H3JqkT4 zxn70lOLVwG>6#%TZlchg5)D)6R*9ZmAuYcy(M>Leza;UQ3VmLpofNuUqGp9IlIRt; zv^86zK7~$`=yHXQm*^mcj+AJ9g}Mex{63lywZuLW{Ys&k65XKC_7a_<&{h&{r_iPn zjaO)0iT=DyT27Ma2MVn&QCF_Q<0altq0tgeQD~S%Z!eX$N_fSr7bx_)L|;;9p+qMr z^pZp$Rp?oXR*E0lvLh8mbQX3kAmmeoevAfM+lq zQ7f}xNi8f0`5$JBFW-Tx*L->r1+jl3=;5ucM?$!VH#QLg%?)pnP;k8eVFNJSV--VQ zw>NM#K1W#SWsjxclFmYw(yRT4{gh&lAohR1Fj?^d5i?7Wu5Z>$GX)4Uy`>-a*!v?# z7zLqwZ=33IWH;V6sat|QJh2aUAo1{EB7n?QuqZtjMdLT@^<5D>@tKEVY~d3xzxl>% zH1WkPNvGzFxoan@&3{FzWh0c=|Lea>jM$nBVV!ULt8bMnNqU9p0eav?@4HZ?vx-`@ zr?1kBT9U){8xg&+`xdaYn#oUqNItw;; zX?%~`kq&4Xm_1&-fQ?Lc=OvP&-IIA6W|UC!&JhDY=El=ZVD)yy#Z<>d$=ofO6vc5+sAH6)qf~r-vz@dZ zEkPx26Owo1?R>9wiB#PnBU2SQm5Gk!Yfbz$IVXA^5a_@;k#m%uufr~2>s%Mn0zWqV zD72_edL7TReKfMW6x*{hidW`B*t1}_iX#S8u6`uL-FYiK;HGyW;59cNEzQU_^_$>6 zoaxb9pCSF8aEUb3Aod5$^>9%akh>Mg@h=1fTIqHWkdy(mj>U_`m_xZRaXUJn64jRJ zv2|pkwnFkeDaa40PO`4~?XoEzLR4zr@9}6e>}U_K%h^?mE>fauE0oGq#|jQ&4^1S? z7nSiGsWFApAKW|PHygNVr)PSGp;{c*xksC`q!1QaZAq7`hZ2Ov!uulh^Rb`Aqt+$I@>icW>F7) zZ{mocL`RmOG0Xij5d&k^Ji?G}`ahGci= zw#r>R;*5_4 zC^J3@P$=WW2*bOqBuP1@iE=2jd64c+bdR&HEXX%Dk(9XxR*RpYOTv%CU3&$Q`SH8{ z`9)vgmU!skbQ)688hb`|w@@iG78keKn8&q$+iaXtu%cx=9`B>0{}i!Jx+EaXtlUl4jORGo%kQqz^L@nC96GJbiPd zoo54fcr?vsJ3&w1PXfN8_APi_I03BEp1wh>Z{`T7B{&AMCH};-Cxhha+YAfn6Fops zUYiVn_&IXQ@hUK(*q)`?)8`-%KP@8spV;w=1v9WJvNmRjdv;AJ(opiKz>@)@)uWQ? zFwfkFavPkUDuIYfvPgxXXRiX28&wIA+1D1y7<={_^dfMYLvB6cCUgYcWe(t?b1jzrM25<`+z0HOuqixfMo z6y~J`U3+i$q#U3lI(A~&U-m78*NB2u6_nB0)Kpv#7<=|gXhy(W2zPllaWn&+Tzfw{ zq-)O(9LfzS;2Dsr!77Qjd56KSy<&i&w-9oXFf4^`AE4wKk<>V(^?y_s{)4)yC-x^6 zh^W{@ths5iOvYnBAn=FlSTbYip}5-6XykP`5CJ_I#EZPTlq0^^Hib*mu}s-@kzG8b zKA-q3dYnM7Ba+9oz}lu{l}WsR%2N3WoR8`)WSqfwBZn(n1IX5Yw~ua$Pi`NNAQ6;6 z+GmyBKAsoaUVD;j-YRO1&eKQ%8s!4U8ZAXoTt{_~K|o|nBSS+17`K>VgyA|+J_Yo% zH$1b{3CKJojX9J#oL1nTm=eo*6PaxWp{Dr}7~fZk)rYYMc>X&h!lgS{#=ym4y@nL0 zHxpLz3e%AUQ)IHbEU)Bwu#9(A~K;+6Y)3=v5I#Nq&sp6}BcAKjb8S*yzjB3@R|FJJ9 zH)k%z!0Q=W?1t*&66Px;j2<1`tHdeEe?b`EvcXQ4|LZLOH#yia9sXLQa$0fG1qj4PhIRc8Y6BrUgnvu^}2+23M7S>nQ)s;-< zy{;UXr-k$!lFaIFxL)24I68XS9rs{pq^d66k8{RsHo$!DN=J) z#8xx_OMNU_k%l`9rO-8mvd?`Camal=i5RF4{74>AXpeH7nxxk;lR6%DN@V;g*$FSP zQtTs8QdQ^z^Gl*)p!)>2Jv;}Wlm*cNTJS4k>?Ip%(nil&kPgo8?FjQa>arxxO?hyv zAtiI!MZp8|Z0eI9eRVJjeIbKwYDPlalOuDNi!jsMhh7~j8VS7DSO_`=W zU{Gp4LdZww=5BHX*!&D7_A2pS0*Hk#bt5{Lpk)&Glpp+NFYw|zV5|keM4l6t0t0cC zB$ACK0CP*UxIFb-plb|94`qK44=s+%)DY!Z_C15Nw#|{LS%)N$ndcD7Q7jt}Ds00< zQsRs~$rMKeuJPDkC#VGRcCsoH9dVo>?0hccEjF%&hhqQd_QnZu*`}}~oxcghAC@g1 z{vWo!1iYu?dw=d0J|qZYt0j@3c0mxerBz$g5_GYZ5NmBAs8)R}(ITQ!^q`8AuUe~G zOVv`Ty{M*k)e^PS64ffT{NFQYlC;0)|H<>@z4M+kXVyF0ojZ3=#S#Oqj)e7;cXnbh z*n=;5HS%R$173oY2ZXqDQ@u>x8R#M9UVVw-v=^%%252%yUou&eN(b zp(Ex(!nYoaazvw9aC;LxrPOdnq+u9)lp83VY9Ye1HVDl_@>04bw^b zw#~HD9EoC@zlCU3)j6WGw>&P9eHJ=9l80m#}=oJr+Cr0G((G4dYppQIkqlUdnxqIIAz`xDsru2 z7~R`fG06WnFRrInO4LyEdNL}i)8+~4l(%;yvIOTJaSq|k*(1TwyyCNU-?%)Pyoqtd}AwI_9eXf4K1Lwy7 zIzOY<2P#%<@Fn^`_OqJ%K^%<8QR1lQ9B9~wiPWfVdEMlCT+(o>dsgMxDgmbJtML2t82#3YVB+1XpIj%)RMmCO8Uu z0&&K@1E%-EwNX4pT>uz%j8!)E-E2ROOK#ZI{#JGvn*tnK8^+~0()t3O5P z-ob_F-!u2S+`VCs4hNuT?tke1PLJlV>Pv3jn(5ehS2UrUinD%P%Y3z(MD-^v)b;QO zzQi6K!2f5Dj@CnaQSN}g(i8a|;$xr4IAPmxDHHi`wJhXD6E23_JvtmdZktWwBX=gh zT+=nz<O16EF zt1&uhzK5lUoyM0bLC>;z-q(Zu8_~=Z;q-sZjRP8T_L|1m7zRz5$p>*^Agw)$>`$#1 z6p&*C-;VtP=}F;lM0mYmFBV6V^8+961=i$aXLN_vlwDXF;8aL-{=q;DH)2FIM$oY- zVcJvB810FVOOKtF#c}DU!wVq^q?nk_=CtLS{#BnDUBt}C2W27j%a9kkoIlx2gWvGW7r-eX$yM^50xoc|FYF$_L_;U#^ zW2RzI5mE?2n+$k^L&`0P9&kOMd{K`YCqkVE^*N8D6XDi_`ZsZrH>hWEPW#&v5=5#E zFB;(M6etspQ#6-NYSbM)=+m>FE4aKEOPmb9fls&VxCj}^=KFX{wYqh9aF<&iTl?*JFbX$UIv05|SeaE_Oh zbv@45M2CuoI91?2oE`Tf^UOVuRRQK!=75{MJjTv zVsU>XF&vj;II3ix-9WK>{6BX03Hby2lg4omU#5h-yM`HEVsG;$mssu%nh9S#a?xuk z=BC{aj(e;V|FORxE?%T4!W$LwVR~Z87b4VNC3dM=cCmLwCI z9QiAdBbasC(=8O5nLaK8ff1{BWVOT=L6k)hyv;*~yXD2>r+JlgAz$L*p*EGXtin0Q zIsLxe5EEd|bfd>3#awFBqy0hV4%GI*B{BAQ$_so6v}04AM&Rb5)nce2v;lhFsav5Q ze3=?GTG#KK@CQi!&Xgc@`mXWKu#>%~c-gCRtKS*6FC%Uk|dAv9!tk`Y%tzglyhe9Z3(Wb&Jf*2l;_J7Z&+>wqYe$%q5rR|v35zyx!S#y z9!zaUWOx8~?n%fRN<3LH+`r#g;P=M3nSE1hJP8@j(N6JV{*Sne5yy$R%)i7{;kyhb zj+~uEf$;s$3W**hp~hn=@p#`z@Zs1e__S_nRQzc1*#!unXYzb@Ov!(zmI>u)hj}J_u##FiNGz|ajIgNe+umA zdnLsykYh5{>tBmmuBJT_xU6z&MtiuBycHPptFc-w9(^CDwF^+H z@u#1%>c5($<{^(T3Wv$%BLPzDKjKSFGT|$)N>}E76nnoknKKd!8^zCwO5=d8e6;;^ z#eDuHu+M7~XrUgV&~PK0PXCq^;qV-JuHXa<_!Nk|10j)?tINUiLDZ>U)0%wAoyjwL zzVJlvpfZOrrg(*5G52Fi{!8#1qSKi3d8M2;Q%i!~>*nKL`7Df2z$2!@$+Nk=;+Gx0 z;SwP3@2F9Ul50bNkPOX}{Dh3*{5;ATl;U;Hlf+BZT8DJu+)VKrvnXe+11lk%NEy-n zEq({)`PDP4)R1pp5#yT&n};zpJQE*y-y`kaP!n`NpdQwG8~(>3=@u!h2C`b$mVCWA z({pOeeN;6m_xFr)p6qAHkXW{-+n$`GmtW@i>GJ3v((z%2gBN%2~M&9IAv*F^iD%A4Qtar<%Mn!ObNL?w-mnlKl_0}eSPsh8$ zm)ugNMlJLYVBcmy|2`a$?>BNp>u2tzWNz`JbXcqNgg=0hdcp5u!Q=aRvfW^E<`!Rx zbgYs7du~yV!-vm)MwS~DPxx1IESj#M8Pd!--$19m>H8hwJ2k42Ve2rP5){Usq!yRQ zW!~JPl(@{?qA0r}a~Dkm;WTp#A1?Fe7Dsi(Z8}4$&?D+~uHsYvEbbUmqgK7nLFv)c zV!liX(k~)P;4h~$qo)=HxGlieV>XrQ&8WfxuD=U|eM-{VVZQV>&%2-wHeB1FeHsJw=d3L2t9spk2Lm7Xrs8%A@d7J=-- zQ#w5r)nlINd^ve{9SYrEu9V-~vINe&FMmD*<;z-Gr&+H+rg(F-l3u*-ViFX`3BobU zEXirCQ@lQKN*m{e8b7Fn$I-3lj+s!nd*FuO$BTInj=nFWis>+QGn1b$G4Nc>z}>AG zY{6ryc>Laoa>rVug#Qpcj|Wf?Z|i%jDNc>#xK;&m5#l*D=esUcf5=w8PVo}p z6|H8VbEk0k478O$K<#!nU0Ce#5-zbwwW$&-<9M;CyIPjhmtSUaidRy{t1J(62Ww5; zg0W2cubyJ%O)bMWwW6B!!Z_1ZuX=omZ#HP=97<5Hj&R_onfh-x->+~j?}H{vjX_+3 zrnN^a^*q}9AU~)(g)# z$uruQ;gm7LzROZ);6*?}32b}tjH>hc}>DYo}55R$j^BrUYTCn1eE(^9;6mgLpXc5qH;;$Rm> z0k)jdbUjzLRIlA@09j9N&KvD?j}&xxA=_wzCDNcW;e5%@G(z<)tRHBE;8IV-f|llK z=7(l%O4Yo1*e$k=aVMgxM++CQv&ZxRb9D5Z)|5!>eN`gCPm;IdTDrxyVwx+}qKX`e zocZNEu^WekO7|d-FJdI&{Q8Q%7xc8zObPpHFF`}K9j?Y3K;-o;%UPV_`A>etsQb(M z{|U0P1bL)CM^rZuyZJITO5d1xUAJ+r;BDNJJgu#)C*n<$brPdS!2p-r5FjTHpKTt< z213@ns3XF%v|dc5cpXhFa5t~h6K9+;z-bDFuSLin^Mq%%&ME8;@xpSW9W_2rJ`$Jk z@sP7c;+#znFI6n%->>_YkQjuF0`AHYNcBc)2%4dzqZjAXr3-qX`_Y^m{wDWcsZoCl z$+5mJ%pZBoRbkR~RP@^Eha8oZrnPly{89UHGqBg4Kq>2&7O;YDXIJAUG$~x7Z_lVM z$g`Xg1bb`Cg@J8l@M9JX#)R^vth+}I(gyURdr!Vht*Iw`xzAMm1^RIa{Bcqpz%*HH z*DK-gONjfSVVbV(e2Im}`4X7+7nNTJp%=X$@qM0admRcNh5B~|_GFf?pJAK)`Bgp3 zulWk@GUUZyy7;4RA!j&ESER6(bYfjy!RGR1iq{MQ=e5r*3)i>}aw15bUDMwA0nU!1 z<8u2yTI`NN^)z448H`I=H7TPL;m1NxYE*w+mCv=5?G|06HecufyQv|oU*HVFmVvAn zr(JC;+wt~kQIsB<@!ok!4G-55fmQP)KIrm#qNn+H&(&TJ9=xeW10nlA=1h{I*9Uxw zW-Q15zq-7V+GEoe+)|`Q9pGZX7r_uS&aSVuGpdthJ~M4hT}q9bi3+c8ZQZF(;Od_m zH6I>8vL?QNS@;@ugWMzz8+Fc%z>akm+lPRNQzgU+8SmoM!E_Ij|&z~yeh;I?5A^8N3a_% zd5aGQjPS*YC@4D5=IJ!-qm_7*#HA0BH@y6Z&74{xr&dI07hbVUjavBtK`Y%z!ZySh{>QlNf|W3 zEGf!OG4@K#L16n_K0%E0ZX5JXZmt)v74y9M^^hy%R9UewoSo?P<-YkK4vi2So*oA} zHR{(`fK=sExRefRXdjk^P}AH{x@#t?uLu^k&J}bLftE{Q#tG9EpzlT9_QeW$yqA9D zr*FpZaGhJyW+N&utrS2~O@}ZBQ%;WSFqwMZo}DXsgf@vKe{$QD;+QH8k7&$?e7&Ubz7j7klRl}-p6I~PT1Ii`~O9~wAPo; z2`h<8$ltV$8gC4a2HxN`*HlAH0m3;HkT+fHMKy0#Y-krrpnkV1)`=~lb&(NILJDg2 zzUOm3cCqV8rK!qRPby8<|7Ym`Gxh&j`u_*|{~Z1QL;T{o25^d@PBx+gpVpz3XjLjpGs|hyHfZc z7Di|^d}D!Xo2OR^9~_W>;K=6_N5v0ry!mm>@CYm5x%fT<`i`Wq+Tri>xp?MBEq*Og ztx}H5;K-!-5lL#`$WDxX6I7qb1}*9|rq8w)C_&BZgqNoK&BF`Rj~7amp|m>TJ@IHs zZN6S7{L}no?NO@1rUJ%5f#TJl?o5}P|T4u8uD9N9OiW#7Sl`y)Y(>HX{yr8fWG zG`y`%#qO4a`7Io_*s75U!8z@@b?CJ7!|Jm>!L8I$7VwU4kx6bB1&xJp6 zN+tB|GjK@!;FbgX4@`P)K>UdKK1qE?bn2T#?f)r}xcR5n;g{UG4@&mhT<68`EUQJO z7C8~p*ag3uLx$8$NC<7yrty#=jYp1D96Q9U)vysm;*%Pykx3&44(;D+#IPaEQgf%| z%FSgugs-r0wwnHJJ`fikm_R9mO4iyOzA60KeE!RI@oY4yaBOP1OSp>Z^rX^pAm69g zLWkdbGN2*~3&H{QEp_cMUYnaWfIlS*<|SsfYQ_uo|)>JnJi2KGo>}t z8B;Dq$mZblX{N4b{N=8)(x2EYh?I%a_ssmNnQTef24*rf^N}#qnfXRDn}nIb%v#MH z6J|6sA89589R`BG$qY9CA*=vl{68`^MpO4B_^+7htC{PPitvM{yk;#`(%Z)>WRP{mnkpk|_lc@PQaRn1_O z!%_SjCy-owUNg;w`GuK!nyD$wZf3$XQ%0Co%oNs40byp)q4?OI@d)=aQ4Czv^?84#?qjhQW)sVX<#w`}KA%{(Q{ z3TEbNCP%uM!c>WP#`5>ttqxh+grW_oI-fp{Cv%!`_7DNH|Rp3zKaVY)L@RWo`I zL29{<%#_qjlIXNy#{0+5Y5i3KyUgkM1K%W{HQ=}~hnUII%wA!>VCINsHVHG2neCcc zF3fmlR%-_12hO1cX69?=O<~$G^WK9efd~xaLRP9%i!Of~{*piW_W)HE+g!UNckds; z#yb4?8u3la{H4P{lSsq9Z{Dz8v23ZK(WKbR%U?Yox5uXk`zG zR@NNgufW%vDtm2HW&H%K)=XKiHA5i4r|r<@IeC<_AB|G( zsL{$=K3X|nj8UrVBxOyRq*TxpWsRJI)K5`r@ib*mpRTNrrYq;=6lIM`QO@=hr9Sqj zD(mZ+N=^JgIo&WyYCKoD$4NN@<|%jAe5HO_th|)vIL>UfvL~!j*0wdu{(h};nti6M z_MhQn80(Z<1_uWH^|`W&u2<^tdS$QMpqyJ9l-+Qnaw=?6c8^WU8np>!xI?*3zERe! zZ!iwqsoc^T%J%opP|oddm0GY@*&X*OtHplh6gr^X-3OG@>!4DdkD{!PDl7Y_@`8>l z`wWfpY^fiE zQKUsJYf4eey;Ib3ekg{|zJ*wJ624|MBg9gTOITLpl9qa*l;xhn8BmqWTUNXBmU{tM zy@KV8t60RJfGX5-2ZdVJx=_o`4D(ygKVg>FHr#TqhFj|I29|xKk>%Zsw$$)v zEN8_tmO9bWa>wDo$eFDy=R4q)R+ihRwPoLHZCOu%?c3nfTsYF|o3@sl)y`6Xbg-NW zah4kTn&q9vL0D(HS@v{%qv5;WmOHeM<&^Aa*`4}XZruTvHOW7~a>E8%PPc)GA#nT~ zmg+qWsUL1xy@y-&|A0Gy^%E_tS)yhC06dduIaBZzmV+ZKr|3w_3LR;WDfZFvb}EbHqrmXq|RW!-$!vP+J&RHJt-Yva3?8;Wm>`5V4xxoh6D>}RK1 zZX=vt-)ows+E2G!A3hNET#Dt~NwMq(Gc0Gp4CD+jJJoXkm}z-`zHeFfEK41kWx0`Q zmbdi-MCb$L+HA{NI@_{3%(2w3b1dtxIhIp;9o-t@+SWpO9s3Aj|JO z#6`JzNbx+&EivD+V&_{bd5L8^>6S|R#B!T2wY>F9Eo<^JL}r=g9rz!LV!5U2uCUyX zS6I%5m6lt4m8EK}w!EpUVR((@1+PUethL;fwU&B<&!)IvTI!>Xmh;<2%U!X_vMX%1 zRDrLMqhDb}Fl&ot{SS{I4sEmC8rv;3{Ts{cmSL&T?<{Becb5I=JIk8&qop1kwX71y zEbs9NoSu8q@;*CdIZsYmZqL(}cm1?wy>!M>%YH^`f3ZCKoTc`hx12IrmUr@kW&M4@ z^5TBAoLRqGZi9=KcN!lhTye>AR{1Ym*6UX+_1P`U`s$YDzJ1$LkN>dT9d~h-?Ol}D zpOzEX69R^iJfmTgzJZFSqRJ^Wd-JllEf+3M+hwly=Kt+ET)*6Rgr zRXNbMI|bTmd@0*LT-sIz%i4C$vbMXhEWY7}YyXyVwi8+2cK-CZPlxh?Y$6fJ3)&i-+>n*E;b`li}`tM^pfxjWUiYfZD= z`O|Fm)O6c=b-HaY1|FIY#aXuV<1AZEO0%t1X^_vh?QXO2RixRrTNaB3=jPZ}ow>F% z21_ApKeC;&3vKs*3vDm@W82+?hagWcvYkhZY^&m8+v&a7wpK63O3){^TY9N&cU|hY zts={8r|~jd6Q+bQs)Z7=xIcHTaU3HAxweeblb z>i=SUZkFv#$+Fc87j66AMcazFWP4LC;f&);s1TQJEBZ3@uG;SYt4QHB+Zu4qb`D;% z)%!PW=gtk=^4+xUr8jM_%x_qh+55ZgcDZFc<8Is5&$n&6YBo~-2R#0Pg$~DYKEb)h z0|Oj4Dxc%6&F8r1^E*~spQBza;5Y#V!QuGfs36DfRmf4_7jnF#IDI!X#Bt`7aJ+<4 zj(W4S$mcb+oFi*X6Dm9Qmz5pA*QAQ$yjjJu-hCQ@RCS!`RUP{f zMt0BC!gVdjzEjIl!)rVChT4ubqmJX8tm9ah>NsAfNXPO=I%;lx$1NS@IOC%n>o(A7 z=%`-Nj`Koe$NjU3V-;)axS35Ir+qWW-QLV`{%Yn}#hW{hzqw=YY3_Htn=y`a=~+j$ zd){#lJnwkJS~+g@){b+owPW{c<2ZNmm4#hxagFcgbZ_rCGhT7rUtV#n7hZMjIj=fS zr7n(oxhEonY5t0Vj&=ME$1Xe6anFo)>_KljR*$ic`gxq=H5%_YE5|!-BOL$y&P2ya zpXAuP{F9I^lN>cH8L61!I6vdCkgM-H&d&E7>-2k$S8uB0RGH@3U8gx#Xo}-}l;Wr& z*^c)`wxhZ{alDV8I4ZD^Yrj^=RbAS*}gWsjgRN zrfY4Q>3YHMyY7(pT|51K*YTfx-&Mo5yUwQVuIjtPwP}azJdH1%b>HdQOLw|ntqfOv zo8dZDzjdwjZ(ZlqE?4D0;Cde(aNSqFbDc}yxpwS9*9|`8T4N5ms^ekTS%277M~=AO z=uB7j{?Ya79(7f(6Ry|klxux|%5`_2c2&QhT&wL_oExy`tZN-U>#7?+yY9YUT=mX1 z*M04}t6JP}ozpj56?4;dhyCWN!MEY@wrhEqCFi^2+P&|%YTHBCF80V()$@5?dOlAL z^Lg%$0J^Kl8dZ1_R2=v@$L7tjh)U&@Y>Z!@aJn#A9eoxtDJ-bm^ zPi2<#oVw*bHxXZB-y80E%_@0r{>q;7TxHK%SJ|_hRPo$VPkZV_EzkRV7@XonGH__SE;(npU3oN^4IIZR5HBwDG*x+j^>CJJ0Id&Ql59Jg;|mPbK#9Y+t*|;#oI` zcxuT|&p9{Lb6XGd>=na2e8Hr(O*=fV_&1*O48ANI_k(Bom;T_XJI6fh&T&sIJ>l8KPkJigjOUER+`r&Yp1bHL z&wJ;rr=ouMycxGV73u}JRq_R>+4%yzYWV|HZC`*_vp|446&&C_S2REkC>7w|Dg`VX zV9zfLz48I>gYp6D&F}!PcSL|{Q7ORtxl({SQ8~b>TqVG-{;D2ex2q9grPl~>Zr2D< zKi3Jc3Pr*|-2ks&y#V*SdI9RC#sT)8#sOCECIPDWvjJ{gOMF7MRe+PwI=~vxHo#uf zF2GSQ1gKu80-TRe1*qf;0oH>H0V?~~0H^Au05$${fYs|tfERH!z)Wn0t3#L;V^yxi z58>ZhwBd1hguSC1J;)4iV7*9@KZZB7FZ8BCKf+m$(&4o7(P@Sh3O*X%-io03qv5r! zrj&LRs@uoVcSpl(`F|iBjoS}S_^=o)_uL-CZY2ryJAAU=ejbsfZizu5V<;RJn3|U2xdsynp zpUZG|xnSiYx;oPnh4zl&`VA_57Lj;4*Dt5k z!wkN;@tc6_s&XAP2iL`NHFa9SJTj%!p0Zv*TEUbxI<<6K1F;TX#xUPd;u+Wnv+^yj z?bW8C?Lum&Q6);l`Q$y~I zW1x}^)t)ks;%0Gihb=W!EnVxGNvE;rP%n1SN`UX@ccdcJBAsZ+e=>|oG?)juI$Xek zSn2pXS10W{iV;l7@i}&+tU-kss+E*AnCgZx@w*7BU9LaQ2e%L&*h4AJA!rvlM(0P=wkt^rDFXU+e<0 zvrO*pV`xTp8frepFGLgq(G-MH*d>H*GgS8mgZY&vGJ{8Hmtf_{M`Gm-%Dx|7Jtz>j zy}eMVZ*@X~T7sHks8HfKdr6?i(X`8mOc~0!3~LoA8!q3{kHzb3O1q5UVsZ07ruZvR zI7ew$px%TI0DOTuVA|`G~w>$mooapIWp(XO`4MPoLXW3!QlkZlrTV`=pvuV9$w(z_umYZ>Nw z84Q4V&M>V_^#|3J2HruWu6-l+&QQkh5!Hh(LXwgp)H$gH#gUzj$@d48Ki(~p**a|j z$&mcLo8I~Z<@FS;hlc(5AYF&kx8r-!+(tiJ)fm_*BlBxTAa4`I&9Kq zefTa(aSRP<;(f%X`A-s?Hd0V?P@i9=um|DwyhFI`$(Id%{f*K98F=|0VBkfR_5f!7 zM;Q#Mlnq7u@&&5)4~p*MuVU4V39&~;9WzvYxp4-AI%TNg681t+r6~KK@bUB+dWl>aRDCQ9tm64cMhi|P@ zhSK+MxVHw>XOszLeDU6T446%k3`;1UVJ)RS4sVU`V+B7!E_Fs|i}|vl?|WlslN9-G zNMdOsB-Yyu^}PD9yo$1!IV}uVtNe50BO2Prf1kS`qJcGIZe~Pn-|;(=q6n!XNvI+R z3^kLBpt^@8APn>(t%%wbdMe!Gdwdk7!)XIU>vB?6qz4>`cgbYJ4(wR(b`wa=)E9qIMdC1Ta2fR2H>Z>Zry@su*!_?t>$KcQg3q#34~)T_auCey@V#BhG3SX|8BOVgR) zh!O=&|mWcjaMI#FNCK&FBaI3&!Si7Yt%olDg z>SHPKef09h(OP$CBUB?9XfQ+Z#h}|NP6VlxJ`Oh_1Rqf*3(gtA$1*mqfvI9kiYbn4 zu1tx=p-`=(_$;EQL_Do5(2>fx5!JlAxW2+xYRkP_12e+v6cYl!k(9{LlhPR)QYOQz zWR(EarbvJ<$k^>_+C$6&Yt#G^s5Yf3li?QmN&>c048ShZmEJ0eR%|b=XZ9goV;D+d zr2x~ZODULqw~s_MS$AJS%P{6RW2h7fv zK_|kC1|@@kZ?N!9q+8qoYBn7xjev)fRR*@~p`zfESpsHcKMl!YWR?JGgP|(OT?S@p zE~8tQi=aL*)MB!JK{*vh9i+&o5Yj(1@F^s*qzP%9bo}2u6%mYvJ(D%Yldmjb0L1`& zcScAATG0A)sNY2}ff^}HJE_dOL6tSsYkFScf@w+F<5*%Ft(8{r4Kr(j_R7FMCp%SYt*RWtEe zZ3c1>f6Vr4TjMCK0-zhkF*IgBwb6w^R)r>9Mu%~z7`HlE6}S|Pl|r(lRa~j_Ce(K& z$qAqu7$wX=dCoWoR25noij1p9S)nlg6a|ODSkx%Vtqu~U!6AA{DhvwMX+0FIWV!~I zubjpMF zD4`5ylZGm0A`fbsp~^^c>;^TG;+~GE=RL&b01B>xD1Sk1s~{G*^#L^e4;1^tr!Yrg zcSGOT#zd5)-!04Q6xu`+TyEgYhSth|`CS8gDP@4B&#Oe#5rbvRVZnnUt3o%8(yJl@ zGr*kT%Z8Zb1Xn}IpPxj?4?z!RcSC#Q6ln+(%HzhRv7oFfw4Nc3t}!g7u zsx@W9Kc>fFH34Z9R}+DrHF_P4*D$O)8tN|@Hk<|ZHD$A(g%nl`e%4Hr7=%eVB~`@j zXs9ZtX$3XMP(Mm_ISZ;5W!Hk4`q&kV)YqpjwK4vjoJMa|i>T|Z3Fp~F1|+`Z4NQi?M`jiB@>7)zi`hE`-XfY)A2#jA|Sz0TF} z(FYm`iS-$!v%H} zNubsm>KD$(2p3E@+7b=l%QlN|v}Sm|;nq@WJe6*YOz1#u8zVlGXd=71(|U#|$^!Tb zZ4pmbrMoY13Eh4D+IR}HRrn6_AOy@WH1-)JCt$k>;$-N543Y|lGMN`xhf6lB36vKY ziCKtCf+WpQHFfk^ccx*ANEJN>YA9WUcPvPUHHDQ=zmXuSY@&2yT% zCiT!?vb&-0)m>u3beqc{Y4b15vv3cjY}OoZG?&Z06I-9NFTMp#x25?E=P485TeU|l zj+AEyIO6{|!_<*c)W4Wu$)03T-_!gU7`aTDF(}EMWIYR8FMKby-jZDE-ax5TN@PjY z4al0%TZO<9mwzf;_ENa*=X$hRg9G5E_A&0e}W3rYgj%usr1F(U9^N(JObJ_hPG zU4tFpUK3D^%nKS}8f%z#W?lg58cl48pwnmzLnvhfe4n3`fPa!G#zv!;r}*a~dF`}F zFn;FS2ZEl4X(Qk2#TIT%4146jl) z!)p}Q8t^N{wMO{E&r0}3DVrB`*F1v<6qLaVD<~TZ)_SVi2C$ss0ls;^h`N~~ZfJti zGSoPowxFA!ik=g#E3`fo1E7eeN@ZjTHAEWq&Y&I}YQJgSK+UA|wg@_fGTS0djCR|> z^)W@agKH@zvTH7-!{s}aE%s`Xekg~-0}dFbnp8GyDc)t6z0w7BeF1Z=E_cM=n^Iyk zpf;bGTUIsR z&wyu=9T2B_WW~YH-Adx;gt_OQ=P^(sOAc2SNj;gP9ErmmWj|#>WCvBDG959C!?H+6 zXr@0cnoXsqE^CE_K10oy8gmv@;i{swiQ>OOH7wp5i!fBR6Jm6f;sL&^jYOf9)SnGd zcx6ZbG zC=TFzwu9(p%B*rtTTJ*UgC(UqilmD~rFc6$A~w_q5|#F^AUhUP{42;xENZ<1Pp6H> zB&qB-;VGP~SD}E#w^xzm*cY%oLGfUGB|Av~H6?&GkQ6u6KFVkb<%^(}(*0Kv-BlF% z8thl>B7S7t?j^@^uR9+Ss}p6uhG6=T)dhOvx{BU#t~oW_7kTuY$b#nGL=Y!|?uMk7 zp;}9-o^(N~hEZ@=7~Mo|8KP(+z&AKv{7$2cV=(#>R^lm}1*Ln7;2qOZv{&kNith%= zJR>Jv)u0b|e7X@D>P5HW@_#;yymMn}H$VqQmdu2JIaP^djr z6r`UD*bRjuL+Q-xsOc|Ja8GFbJWMoR(a zeODAlQ&>lo^s79-iR%Nwhwq61uj1ipuD1q~ZzzK$*+w#*tk>WLZ+|>TkqHnCpDJD= zO;ZfXKuU)Mqt??5cPO|o^ae~5y_ck88{CCk_X6pG9j>H$Qp!D+(javBRSRmb=gQaS@x9a-<7(Yr2f zV2z%5gM(t;fTY3_vCzlV8c5pF`ZwUUB4q)5mQh$BeO!%RyzL}rFublZlFe+ih6_Pe zTF-*Z>0)!XGy;L~N?`;w1d%6xDF4?!lfF?_R!4Jn^@HzNP-7{69D@9Y<}>_B znE>Bkxn6aaB`S5%F!E$As5_{V7sP%mxy5IIs!8eZz)D#P9?#2mU>foz-;A0WJVL1< zG!cw%!DaF7ms{#ABxq4t(*BA_wwb}eNTo2i^RwitNX#S%f>#V9?X!0g)Nr~FU270U zPJov=M&XDwk~5NcMKyf_iW=J!SYgX`v3bF?aih37kC_Nb^i7d`DI>dukZhp!ELn3` zBps#w3>>Z0UJ9Fp8sq#a60^T%FeGJZ;w1Qa-AKks7ky?@L<#E?%7)1H{-SD=F+O-i z@skm;pD2xC3uQ16Wlu(Orc%{pxF%2+fbZpecu5bxuXRV|zR4R5wy?YjT}y`cJPMnF zFpm@#wXGES4_cyeV|kxL+7#&ZrVNHjl+Cb#!rq0|kYb`ffvg{)p7a))S(^4P>`kBy zhAniTVID=k2kWOwi@Moull(S@Pq~zSdI)B!VG7D3512l5|2+g2Z3F?b$TJRO`&`em z$OGz1DG5S9{f`I)v)wQz&|{$H=2ChY-+hPcSm|kqXcvl`hUC3K6B#PedWM4RGEWR1 zLiZ8{Pe*EMmyw`WN%;(#j`B&Ti7cx5l!$P|1GiXb$MaUfY?kad5(ucn z2qlivQV@fY3}JLV1=i-0H3NR`l@)7P`sE#h6R<{U7@Q!$t#vY}S>;9PZMi$PfjUZ= z?7c{`NIsF#OO1)xVMZ~j2x}LOWyqlQ0N>a&(L-CwqnyA=ywNCZCKQ@c7lvd?n~8`n zp$v8%qx%f+P~`i7YBZ1`gVF)MQRl^!EQfdxC-Wnj;92mzfnpdkDRCC`M)NDE_{DOh zYq-fgY0P55s0$(}CwEelDLe#^OM|4p`MrG-2f`fP)lWT7fdW!1n(QENzy&ETbJ*ACo zG6M^u6gLkFCukZ2))nU=z6q2KmoK}csGH@OmZ^Bs)k!F`)HDv%ca%0CUbE={1GZi) zfY)DN5j~9bP>+JT&s3_=t3ut>kqnvx>RUto@UK;aL*Vg5myJy7Dn76~fu{rS^O95C zM-UwCE`qluZ1Keuf&Drc`jeD9x0d>kO(t4g45Zex!7OZ|xhR@RKM!ghB@jUId96B9i$s zZXdP?%Y3i=j}Q-xtU4HC<(c_-NqzhQc71A3tsY z^*kM5<-#LGxtsK?W#{k)y~ri7wvz@jw4ii=@8;X0_o@ut?n1BFIH4{}1*$O@OKKF8 z4&|*=L^7IVU&DpqKCNd#t#@-m%Wi_g`4A6VDC`pmMjC->_r^hTh0-9g{-6V_Q1m_V zSzIzag79$HP)TNJ1*#e)E=5)BPw7kH=j*BB2M>n0vAYX}9fq2qM@WJ5u$yI?DD@P> z37~3D7b=4jR>K9eiPkTJ!HuaRh?Y!n=fj|(HcE8^^9;rP54wA1impk~8c3ok0}_xg2plPw~s4KK4UV-%sf+@X%ucZ_^XTOkeMUs!P64;WL_I0KVBqK@TTtxF2EQ zP3u{HnXWNZrmz)I`|4w{^NeKExP^G{nbKAu=zEmG(3!GXZ}lS4Grdx~mFP#xQT$4X zUS2Gs%M!VdF*sZz%tMOogyqz`p!R(t)Q6@zEK;fx#jJw&e#=BMSgHdA3urwH9vgw# zAsx6_DXd_vMw}*5+-fLnUM@brmDYR>6k;fYB@0%Fm6!55;x9~4hD$y`_jF0ygnCWDg zn=&g;237b+u`5rSgEoLFZm97x)Vv9*D_QFi)E$akkD#WW5I@gKr#|CE~21sfcYJ=2@o1j*ZwE@cOjAVdW8Cbz1%ft<6T#Ni9X7-7n-H6Eqw%6}ONHnM$!_6LHpWPOd%d%;T7_-l;b zXHz1azV%UJp`*0wyFcTR+i8~g_~;Y-TIu^Hp#C~cp&C)Ut?-M7Ra=n-b7?(88OquU z{n?F0KT$tMazDp5U23}x(Z|vQz_+WZ$mdC1&q4uDURg4}nMkIX%CH{Gd=$SOUVo$c z3~x~;z!%j)^j?)Esv2M5)CP*#0fpr>mH|B-!wtH|@FInM187ZM7#33+LnIwwz+JZ! zaGRnTwo)R)Q=_QERdh8>}fV1Cn+9MegZU}>aTCppqrrVw}g74 zXHY>ATd?ow9iay3P=dOHDl%TE>pG=Db3lD-s9z*5hd>RWtUXB0VJf{BFq7i;qH18r zCtSW(Q^Z1NX^@V6jTbKrg$?4|uew|DjM-4_rL|}RY6ZpZga01W#DAnHFN5TDLzz8z zXF*M%Y*ucSBFd&YirvP$3*z@9QVnT7Llw#d_+H{ugYX+8O>M+>eoG_z0NM_Fwn+3F z0i|jB0n~@ylzsqyr_pJEFL0h{m@c9I4lLVH+wY)&&Da3nypKd-J?B|@I`>^furGL_ zaIz+Ww^MnrT=gIVEVW1^jbw`%1fevI1s#k4-xJ}IJqF1kL!rmz73sj8I5UO94k64U zHE;?OeoeI`XdEOVhPuMfpGs5X8`vkX0sQVLQLQSQWWj7V3~m}OkK!5FL1ZXQJ$N1& z3kvT+9Y#o2L-F2G;;;>przn#pRgL6jnrOpMjc>8thhn}*RoF*~3>cey553OOV&Q>Q zvxm?t(O4*X`tQ}>#naZdN1$AyiAesEfxCYDK;dHNO$=!A$IWPBo z;9lNb6ZRt{U%w!d_a*z1ASoRy)JDmqHK0DE3@BSw=|01BiaZJ!O#>OmQ98hP`gQR& z&I~s8@hW-nF-Yq66iJHdX7}?9c_JieaJH~QP%lyVffBJE5>)(vQvXX33iIR-&7HtIDCFj2N*sj>jVs3?I{k{1j2k>PKyVLYTv7BEZ*+Ph`Untu?wku+z3E~~l)a0P?5F#XV5S}U3l!o$5rtDSqMz}jQrVRL3#!IQ z%4B$ptaI8G$?y`zGgPLubGTuOd`jP)!wnNp)_JfkDDpfkZ>7xhSgD$I9@}C!tQ7O_ zi1}^Dc=`r04=$}NKr%%#;9(HMGnB?qi~-Zpwc1V@Fe~ULtF9wCte{rPT8#2f1Buym9kD&SPL{1 zb}^VY36>bfEcRT4(rnst5ushCY=*z7>ZOSGzCOFf7+wjThS+z89-b~k{-X zQR&No-4q9~gZI<)%MrDFWA}@<2XdR7xr|=s8NBt0Se~SqEAW1s60ab#X~#ryJS$f5 zoik4JiV{c5$HxfbCl7Ih_zj2aMr*Zcyg~J##H%nj(gzyxY6|fqA6Htm`817Rd!&FMY2^-hxGy{$)_zgCS{wX%z zmIo_{Xb;0|kOwPZvJ8Xeemq#=LjVrbX?R9^9Q->c|Do7u#TiqBfAzQk1_)D9#||&q=cbDbt4pjWnUHWm=@f^V>|nanE6}JI07KSj~?HO z=;)uCo?p908%!|R(O?UMwG5UuSis=lOT_%_?Dnw4KTzj23s1e zYcSMcA%hPWOMr(y5&YWV3WFaSOg1>eU@wC&8N8qq;KwA;q-2M|H3k#qdP?PwFgSYhM0fRV% zOS^Fnmqwh$#pqW!kV_Loa3~l5_;4=%;ealUIHXG>4(if~!@4x`fnEH=p)d%m)Okh}dl~$}V2dWgPcZno!Se<~n~J=H!C3}(8oX^Vw3*Q} zxU+eF9lpAa3;r#eA!sXCyX&_Qw_~9(#II4VTXLd_ak~m__P>5OO-#FRqL@aUDy9)9 zi)rN3#mtY>kH#9uiSZ9difP2LVj6L@m_|NcjDI-9Pa_WP(}=_QG~#eRjX0c7BOlPm zKOEAh5eM{X#Nm7z|1$2Sv*U&M(kSjSi1Y5WBF?+h=pGZqxp>-*qw6%jepe7D2x>P@ z5Y#xpV2KnfEiNPy2MKCA$;20j3~DzH8r1mEAPybW?hzDxFQSUSs&URU_?^LS1`lP4 z`h&fKILS|Y=fm~**U7|^PweC0J$}y|KR*4Be^pJaaYmtb<3vD>ui}(P{QPR>7ee6t zK`p>hej53_LH_j_AUMfj+c0tCh(RsiYqAFiE^0R)KltxoGZQf!IjCtIL8!6hK}OUK z9A2r3UJV6b#1Vr0!x4fShnWc0_)6R(O^)EKLM_iU5yFv^+P!UrV9}9+I8IXYI8IVy zxWQ43TsQX^0_RI=h0zA58eCv-jluC3j3JXle9WZ&H4@}=DgXWZ!Q@bosaQBjQH#5O zh*OODs**8?LoBu6lVO6Lh7020OwDgFhyygW8wY4=#F3L4TN*hI)YR@d2A3NA!XQov z)pDHfDEB7LkJJQ?kJPwis9@XjU$BhIPR$md(~kI$^+AD>ytzvFiV`Lsv= zO)*70+#t>{)qLghIJ1&}IM7sMqw<1Vj2lNuYW^ML5yyUN_b!7tR#Llh7^+4bnyL{8 zrfS52sTwQl%BEC3;}1uOYCgvQmt626sr;*HilC&4c{x)ValEINw={Rbu@d5z{}@H% zOhW$g*@XPtcwG?Z6lyolD%AMEpmyLN)%ho)jlX>>X@q+j%#qGA?#~VWVDPrVk}btw zk=BAy24f6%FqmU+f^jb~xKq%t&gUq$5kpJr3x*nZ3xmB3&NBG9!5<9XHW=Dg{O1IW zLlO05(WeD*K%#czkVGIVAx=uv1fQ13zpXU{hu0Lu35uG>DT*3#dZI?0pr{e2C~Cw> ziW>VGOf)#wpcdj^-xno|vNK@%QDlyY#;9mi&;RDw{RDC6RItbY$L;nN zxl}8h&`fcUBT81yah5k?iH%Z~jax?!|7ud=Y~F2`L&Jod_Q zhl+bbj$4Vs>|D1fEXj2%osh5d+#G^m{g6vY46fz6C+ZOH=ei|jMf#hVDZx6qZlx8T z%X4dk2aWqjgJ%r>q7fDEGecZ4cy)jn&dK*J-T&)u|C+dSGWJx+f8F)@lr#LEej;P# z#>U;;U`vC$7!#m)zz~@RXO9vC^9(LF_=&;)8C+p-wZRAZ#os35u4XFCwz-LwDp*g? zO{-MFzrKg)d^}n36N4)Zt~0pN;7)^k3?4Rk)ZiI|=L}vn_?y8y2JZ>_)gwdXOO^-} zHdxAFS%cvQYZ`29u$94=40ba3ioxy%`xqQ-aEwM2_dAAo&)^3J7a3e>@JoX`4IVIf z)L@puTLvE(R8u5j`3x2^7{bV%ZCOKv8LVcoj=^Yy&l!w0__D$72KyNtV(?9aeuM8B zOf@(c$lHg7;5CCc4c?lPUx%;m7~)TZ z{}{C2m8{Eeu&BXu|Btvg509c)!@fHqgs_^0C4j&L?T~;#0Fi(SK@kI}1aXN6g$Wo; zKw&_Z;5LII22dOjcmlWtWtp%@ScGBIK^B98L{SOg5?m8N38D}X<$J21yF#YV;hguM z?|tXG(s%CPQ(aYEUA;_qPZu-}+7{Xc+5_4LIsiHdnhteNcS`|T0Arv}L8n9KLf?WG zKsP`?fPMn~5?Ts92|WwF0IlJENh(ke8Ut+#Z3T^oc7S$+-Uht~dOy?&eGEDdngjJf z-81mdt5AZz1zieV30)7}3f&F;7J^i0c1RlmA^2eIVbX-h9QM|I>;*|AeI9G!8mJR8`~wl~Hh${O^hs|Bj1C zmqpWX5vdqH@(hL6GUMC2j5;cNqp(cUd9{ZYLn{orx0d-p@1#gcp9G!;?}B=vg-|PV zo)pRQ@U7tEwfMjmNg)v|`4p!liFzyH*UBhy(NrZ~TB0PCcCwHo&Wxb42s4&bh19lE z#nm>yi%SZVjkA?52&&6_jza2i>Qahh>1TvX>Zq%vb|BvHD)Fv}UqdtMnys2%EgSwx zzAE$uI?l47KG!^=F4z1`isQK`MS)ZWRtRubfkFZKRbUGp=UMon`rb-*i|n)VZcn!~#bq%M#hT{1DxP}Nx zKe*BWx+VGPe@@1~%d&)jjHKKRv_wf~kz|pclH_*DHx>D!15{> zs)T>yql6z1P%=s6Daqbr$%07LA-MjDj(W08u~k{iKe~Vv#GBBJNM32pu9D0{864&= zIaNt9Em874?Nm}m$CaF-kSLZj0{N!2a&svznwzg>wA7;JRkEMVuW#bizlkK!PIkQ` z8_7(#*HAU9u6h&1Wt*!CS8Yw>t+F!`k?d+s-06R0a|_~9nSU>)f|l?i@|L$#$p|{G zWITn$uy`m=$sFpfWUBQj(GYzc-4df-+d*9Ep-s`>T|j#_yHl)cgwtCHZum zg&d95#@pD8jf-q6v&UU!cK&^9W1i1T8A|xa(Mq`CSjf@DjA+{ODl>MZolQ7tXGjt_tL7Whlxw+^;*>0>-bxBAA!jqw!FMMuv|fZ? z1gaAFMfhcz&DiainZFjuKc!aicY%M1@SA7Ud=F4abD2R&A@x?mzjJ2EXwp%Z1Yeu0 z>Z`lnwTNGB8}9Hw=I>2$*K$uwL$a8v0^}cE4F6D%laaFpFZ%&&7H(=aC-2gyT9KA& z6LRs0v>{GJvS{!QeJ2)BoVyvJ8^QRHt++(weLfId&rHPlrL{~z(% z|07=SzsH9g*ZlVcM)d!PH~Js(BnoN8OU=*qD&cKNNik(8aqyeIST4{KC45g<3IEJg zNn1HDxkPaecHP9KP=;~?X{wU@Wd{E3sB(|XeEUVdptv}Ohv~RFXZcp#afy|SJ0*GY zGc+n?rQ}kBmb7NaKTA?_jksu%%a=hzONd}7>VmWeL z&z-2~I_^Z763(KK>p9gJapNRgKBn@lRH_oEs>Cl!IG1*+#QbVMm9v+2s&Yu&B5PI( zm^_cKHP5r0rkWfsl<)>AXN$P)QqCT6MbtZmXT z{4i#s+8ZXC36z`23prglzjA;%KSpWgK1b%^cR#7J-mprh{I+J6%(GkgN0OJb9rB_; zJGIDdI9GmqOFN$PtR&>0swj8Ka^$>$Qx&PQ!)S?G+*&lXJqvde<+z(DX)camFsfXl zxEm;hQD(42y;a2LcX1!Cw{UxJ&#hn+4q~n|<&UjUJ5l!^I0jhTqt@(XkRzba$ zbf63+x6xE310?38oyy%J8|m_%0kZ0YVCC9wKI*MPGdfU zjw_z8c$VS|D6R|ht<+mdiDYt2TB2eu*fPuV`OeN8%{H~mK>5LTPE;eJcbz$d%-WGXW!7AasuQZNoYuHaXo*mM zbDpAEcL+_O<6XHXetuyX)1-bvbA<9MPZTY@M<~C@MWxN+cZV^}yH{u|#dWiCIHPF9 z146TedZ>3drYR2z^$Sg*If|AH5gI{J$(%zW9al7YsL*twF6xxb)Sn^LCzPLoXWA(+ zQmF1?#^vC1Yk$17td2YB2$vMK#g^st&Nbcj3zm5u??UXIvI5aqZt<86``80f4*UP;CUk%~uu^wg= z_xUM3xGA&d2j}glf*xi^in!T~bU$LtXSmHzvH6#6e!k7GviYqxUmWb+#_3>ST(&4rb;I0mi$4+M`GVA}Aixht*?hp}=i|bKE+8$q<&E(A!4=N8wf^$z zJ%P(NI@@OGYx4nH2LH0f-?aI)Hvfgq|6I+-tED(MH@L<(+I&O@ked>JZy`PwE3|%|83`>{N0AvmLR2RPy(Zu6q}!J^OYTf zE9i;{_KR)lS5)(=d}C)dp#1BO;0*4!EkTCOPqX=5HvjQ};QYS761U1X&R+qld?O#% zKrF+P+R?!o*!KrXws^A5_p|wbRrzEoBBKh3KZR>zx&k9@@r$p}%oN^wX4v@KHvfUm zx11ZiAYa(x6*eCl6P&(Luy-4s8U`o0#pZ9b`5`vH5|_60g6_5XA8r1RAkS;>6fPU- z3>r2Lu27QAFAZJ-qq{Bsn9WbK`Hj`R>OH%w1NNtE{*ukNY7$(*@iu?d=I@COPQSI9 zw|eg*wjI{pO<5z&?&(Ve3_-v(3v*2?2+WZik zU)~}({UMt_Ve{v0{<`3e)@^hP2F75UA7k^++5BrZ|E|q%viZ+~d>4MBR}kPITG@Q# zR>4c$f%^5~?-x0J_#A4SE#|TL`8L1K=J(qCJCVUAm7vG$J_kNHow5;U$^;5 zx&?4tHl}NUVi(%{Ih$`n-BWqrcNcDp=*m7}^KP4;YxApYeyhzNu=!)b-ff%+2F5v? zubB|skRIDPT#4;Y`8yeis*7S z+5B0XuWS4IaJ|iUwD}&v-favB21cNBa6>t|1pC$yqUqJQf-2Cc*{SupBWAp26{;bW{v9;JOG-ZI<(fx!C zdu)ED&ENk@a6>n|HrRh?i@R;7EwQf#rFR>iU|acTf3^AZHeWL@xPT@$e~ZoEQO#S2>bz=z%QyDfe3{Lkv-!Vm{>FvD6}sK# zAH3q_OMvSNP~{s$GX|QiI`6jOgEn7g^AU^a=s@n%?QMNDY;16Sn!O(ElWe|+&G)hS zdu@JFaCvUy5nF;Rczxll{xwnoeQ`ry)actpxD)z5w0o@Z0XVHbiL=dTvDW5Vf8$S$wuZ^Dv zcY=?EHo-{}tAINF1aN(E|7jGw0bE}q zp8?*!qvT^<{8#%pLf|C?^hJ1`QDljl`;N%9F)OKaGic3_(YxFjeoWy@RDtYufXSn>lV5Iz64w^K+H|DWCgbL?ZMx(rFY+nzz*9C z8Q`DTW_TL>OI!N+;AOV-Yr)Uk((e=QHbUzJuYw;iLv3&e^lxx|he_{n?&>B>+|HKI zQ{a8T?}m2AH{f*3bN_z?ff)#7!t18?gS)_WQ-2OV*_QqkceDamiJrB4UfH~n<_72wHr@f#0a(=QR|Ys;v4FDc*wTfw8ihlA^U^1vs6 z>&>`cisbVg_*0R?WC`OD(D$_T(XSu4gXdF^uKDqpf<79)f{fIYAu6W;;`$)uqlX?g z+cee3+@!8@n!zcp4-cSmquGQCA2uCseIrsY!=w~R^DEBBG{5-{;rd3U=I#0lKW|I_ z5V*b{sngE`$9+itvV$Y_7yTupnsS7$;-LeCUt{AB-X**#xN)7d>F~RScee2#?-AY; z+-V(mxdqecvq#KUb-%#^7`LitK*%xFjBr=o>_pxr4@n;Ovz1Fjh3lK8cOiZLFyR$5 zq;7gyyE}#JOYnM|?+=dke5G-QATSD**B#|?a2L4V;jhh*0`yt6E}+?P;Z-+PQPHo# zpGQ807I*VFhY0A)-FnGBA0Zj(tI*StQ7v`FgFpHnr(WV+;5$%&<_}~_`n}+~qK_%g zD@T~|O?Agj$5Ttz zOgzb_kPJT4zAHxhp04kjCnUim;JU>xgX=qjy1}0rBk8Md5@Suj2R_l3|7CDI!N3cR z8RBVY25)EGkUq4(j+HX)+u5{dQ0yL!~Nh$sO~&Y#IFVKi|f-?ydh_hjszwWIH+I* zA42rnO2xx(oYMN_s%PSwEO?Yx-ZPkE7W5fZP2c3#js7CIewsk@O)p56Ycan*YSw>I z_*dY1rN)5&D7>|yGir{&ILx5GZS&K2nS2|t=utDdt$wgaXO@h4N^lg?o%P8Vt*@;}t1b-+PyC% z^}YDz;2ma5KKh>gF7PM8^}YEYz_%){_R8Vc2Jh6S&XtVxMQq(AhRhS*66s|L_^t5s zh2Lu9Uy|_AHlCFyd^&UMsIUPEb}f{^Zrcpsz9sxPxNhpN-WKj)3Fp5EJU*)X!rw@* zw_5}8hPXNJXc5ua%0VZHM1s!LDa&j!C>Ayi=^ugWM5F%WwvRq zH-kcitt#-O@=o3?8c}hUnG&*{-)6_h8~fHVYq=!0Zv|zmgnxpYrn>WbRtwip59pSg z173#oA+4ngYzMC=-fieW_!`M50SR?RY2bI*_^aTV;7>z81)mPDE86p2$zMO#AbpN| z$3O%~&j7u9t;}#7Uhiv~6$-D5{f6e}z}wn*^g2neFMa9-JD|AgomI~&V8#yXWd{36 z+~eR?&n_VS8t|%T7{E`0>qi+L1W()``Kw17tgT}>0*@h3^^hU>GVrQr9>9M9uX^?Y zJZ_^D@C5wR&|%=!&O)v7jkO5qha%=-hST8s;fS}vyS*m`=!X^cequ8C`$$&|-3+du ztkbKY)g~$5(3hii;E_#IfPT#6YwOzwzo{Gi6f)L3uJHFI{UsZ}^dR6-a$knu6sN0aI6w_JOS}um~Vh>{!Xz-kb!`2v1Aa+ z*@W?*1M#tlN7A?__(WqnHtQUOtwMPcsUE23@2V~{qMd$1#gAEyfTUWZy`JeF-Yc~r z&wXaYJ5;@^p7lXvHr*)+JK)}dZmU1`3fB*&=q>$T8aIZ|T#ImR+NrWPDKLgleyX0> zK-R;NwS6yG@u6gG-wQ56k@{g8UF5KjB)xvbME469I3C7v8~PjHBn0$RJ-Usa1J}>K zXub_xKQyCxCAfZeMd#nONGjxDQL8e|`Yl5{9tQ+ZY}^6W9VHzsdEq zCBl-cdTDki7ytND-&NM_kb+`YBNxqAfWHl{v+>Xzm)R!Ko=t;&lE9w4Op@Dk-+h(j z$<%2a=Wb8l?&JTQJHL4UKP8`gmE@^<#zFI**g!o5~6PZ@6}*Wl%vGpN0~q7&wB z#FepkKj$Y>!>Z?T&|NbR3b%L5`wj`$kL&1WKLD z0y?AmUkcX`;%I*KE8+Tq9L;we5w0K1(R{-(;rj8IN9y3x`s?3GKtH&nXGl3NTtC30 zdFA)Q^@BW`&-+Pu)q_fCx!L8ys~(sE-{?LmfvP8G5IFU#@Tw%9Q1AgeVgRAirc)l(U-~MKSuMzGx^j*IF2vj|_gq3j|yz1#C z@Yl~v!BtNwfiI~Pt{+a?feIYFD10Bh?2UO7tN)h-jv}DHG`9q=dMXJ8bO8Sy>2>$M zwoZtZQPopTNZ$qg0@CXh@}}Zy6R(RKwz?&DV1`)mIOyk^OMMLot2z$}++W8cdetN% zy*_;S5!X-hSMQzotF;!9E*bR3jFGR)x>UKUWhz1jy8Az5E1(c@-L!ljlEcR*-P6(@ zknB}<>cbBJsPhos+d7)YvR6guN5eksB1M-`$P_+LSOM#J$U09*o5JS_`l&FTv`bx; z0bkiit@QqK(>22N(_6ZE`$P)Y50hy=99%ynrf<@E!11uzl`F}Oq9mhRP)R+*=iqnS zcx1Gsf5gTIfa}N3bUrVF>&MN6bC3BQf$x!#?t#TIQotD-f3Bf${dk;S;=39N*N@3* zJ^|dpt*Ul^27W5pS)IVDtIuIK%39JrECLByzbf2ei^n34CNw(P;*p5!RpO)WPxDu0 zz4mhvR#j1-%71ZhXhhzp&4e0ny?W(vU5jJ(!}Sil(%RlTUh=5a{3cUeCD6Ubm@0e? z7Da!3ae(V*`3@m|J2*dF6K`dxXZZAa$w)tKqtA?EY0fizb)g79H2n?v7~bF}Ek?XK zcx!w7VcDoUgInkRO(^nNGqO3iiB%N`(pZKkB@bKemiDX}(OdtvO!u8bGo-rHk)P)E zUJ>pF*Lmft-^=n(tncF=90#5?6Jj>LCWY$V+ckN$=;UCtMcrix#16H#Ve7;ylC!CL zXc7C#^gJo)3#8X;q|@ud?Q3u?xV{UZYh3#cNw1$-)cG_6=VukwUYB3djV~d45YP`B z>NVBjP08pdR7mr6;HSWA&XXn2eM{0u!gq)I!284J%)^OQAp-g#MBR1%1Yd+1G+)0| z3RrF9$Ce4-1^ylM{0iX?e5un5aMJBVfLlQwK`I`R&ZL|2Br?$3cO-uQ{42Qqo34R) zO+5X04OGt`fp|;sxD0&P&Z` zLh``j1=8Jz3n!1d#Sy5&0UjL;kCDN_ResivPuGZSuOix$w*V`naId z7^>qQ#2w(KEuMq8{w<`vJ3A0h#(cdOW0#`~$U=g2B(P_Yg!m(f54Tky0r4?ciANwl z3GwDp*yZR77)Wrn!%r;YFCc^2whBZd{wBEn(o_oKD|OtBfAqC0FA{9i32bpE;`_i4 zL-hhABmO;j^^;n)!KEU85%COr4bzZd1$wbPo{l)SU&DS1PMOXJV7==x zh6kVdmW{9uz@F*+`X+uU%yhoSuYVY&`*P+1>C5)L!z6J1bnyZdy8v821g!bTpI+G} z)LEV%ucg?9`92Y)2Vdf^n9~6x9t*B7zfUpQY~s$tv$y}hKZA>Baf|y%H5_tbtFz%x z6A&>-G#%=LRzg$p6*)i;<(h5WX*bG&*>|Wmw*Zekc(a`Ee$_{G#2upFL7(X>em3-D z=uzk|&=Ge^x`oj5(92Nkq8>jLdO6pOa^H_i6#l=g#4uFC|9`m>A=Z~WgIdkx*K@e3 z(@e7ozoVz$OtZ}uH=~+6Mf-wW?O9h+{!aaZ+zjQ;(z;ok=Xu&U%k0Hc`(?9Z)chOO zUV=yK>neJl`n`N5?O!zGWlsAS?fXw@|DxKjaN6gn(<_|sWpR8(m0f6B7|ndejIU9n zn|iln!mS6PKX*Qpnq`qn<@LP?>@&BQ*{jC|RSu5p>bVfy6_9x5U&I8|b znb%XlSIu5E+V+p2L3h-RSum<@1ofo4b>}#n@T=d3wGUC6E>oteW6 zPiQWG_xwV@r z`OnFF+LG5WLjFtg(4O3&^UOAMhKmYKLvt>sPQ=zVz}gV_&5YyN^3NA$5cjA7v`)Ez zxOw6}7T18r<#FtwxS8U<5NFalj@9^PKyd%B!*9_$qXIwwTVR9)jJxb}jFUk0U3`t8 zMN}*v9gKsv-MnR?c}@6&eDl6qKZeG-67Id7hUJ?{G56l?a(Fy7BAgBTxg2azE6kQPN_K~+Y-6Y}kPuG8SD3A87VqYTq3IkoJ$pGvS>(I#xUct>#lAiB@yCsE zg>yo@u_<(5dx9g>Q${COaBa(I+)7^9=00B7G-~TJ9dUuGOs-_W?Uvbh?D!`#CQQg2 zPaO-)Ml_UX2^;6z6GCHrW>e}^z_nWBGu!e@+N?@D3d}J2#%Fd2&D%}&3(Q+XbFEe! z7wX+j9~79)YgY1VD5dWTc=hM)p}#HkVMu;}TC6m$t&zJIi#l*6H+r6xY54v3-eru- zl>*KO5*pBJE6untuWHCKI}@(0InJ{y#Jl;Mm8LVi7V)S_VLUitpLJ#+^yO6)zTSMO z{?^rD3^%V)(=X`p_2vM6p__lb*{|g%g?wQyG6Z zQ>}w%lsivvZ8UGJRdG(4gLHJGc{9KAvhjQ71Fe4Y)?{{?)b!APHCr^bk}k7gRD>P;9sc6jz<#_#pU zjC~@LT$|1Cm_IlkX6!nnrl+ha|GIHAzqu}-3N~}Qt)ZgLX4jC-^v`DALj9EDH=9M2 z&JE|}GZxTrznNNV!2;z9Xr13|=-y?SO?ly}!S-JhW|ZZHbBm9is8;mP*JO@(e1dA# zEsW_+?tfr{m7`pyb#ruP|dSfRi! zYg+8%>TuId95cZvj~bKlM5b{%DtpYMnK{Ovob-nRmGqo7UA|ze*{kW-s}*^Bt(tDM zrkAYg8Rm{z=U+?PoPzd{Rw+wWhvb!;QEw zV`hayt1H4o)LgT92Jcx#mRZyNWNtItT)+CFgg;eVuM; z2d6D)$-yxhj~knsaw~k;l=lXt0(0I_(}FkE^qqV)4QxKL!`vUnyW!;@ni&oA3KBy4 zO~`!0n0Yr zc#K!CFaCk-%*n>Kc<%OvDpg@&LWp$?FJe@p&8KWU>r|Y7QnQcaiMItZww#1MJc~3BQvT=#6XS-E`HT7<%h`nZEgUX$X zc|NovAJX2vX4?i{%jH?q{154$y=IdLpXCZaq!u5Ut=)chM(E(o5ysvd3~zgGLMvQk zO^dB*i8U?dDR+vIV~yW$7%_H?F^$ufS&<5BT4_x^yR71^sn?qN4=9rNd|RCRr?K)` zdw9B~o8SM)yx7X^>|@=w3-_|da4?Ux0jnQA0AC6pafhUfWL4>s;M1W_a1Xo>S_obY zUn%MiH~LCO4pvoxRA?Hw3qB8;4<3LogI0h?-YNMcLsM8)MV;`uP_M-wG{Or3N}#1y zfS(dhm5dUgNvtZPH255-2Rt9XNa^NA<>tw{wS7)$U4C!upXOwDa)#IxXeu-fnhteB z3t3f>CD2l+Flzv4(MF@}WM~ z5cY-eerN!^2)-CvBHSHb3Qz{EkU)4Pyt-?w3W{J=1w_KfLLJ~K@Tsh-=j6f{Lrb8g ztSTQPQ|0UCjQJlmL$U>o@Dyk&t4f##pAL0`XTkI7idDfJa1VSg)C-;mpAYpZ&i59= z3jzGlfC?}#f-i=afS1CTK`X#3;f;}KF;=U^;A5c<@B~(O7#Ea;Kr#X;@Tt%=@N{@5 zGz;7Xp9A%P=fZoTdEoi*zLDJisse=w_z?&|i@=NFOQ5CTW$+cyN^s*bv;Z`cRkcJc zyaSr>7`ML)BmpEtQ&<&Gg-?T~gFE4~pf2zncn>re+zX!v%?J0n0Scjh1Oo6y&|>fs z_)=&Ycm;eV)X0(rh+tJM90`pDcfh+7@J|u~$?z%ARPZ$Tbf^77^@FMtPXbE^Jd>OO?yb|8XMjv3cwgUKAsKesC{U-nH*J%_d@f)^OaZIzYl>z1pM#;Xc2fZdSt9v z0ABXBc8yzfyT0`nmXVUph@7#@F~z#@HF^z zs1rO3-UZD8_gJ2{|6ByT2;{-%Lw(?d@P23jya>J+S^{1QUk0rJuY@0G|X+22XJVq(ajWNQZYq zv%p>OIZzLHF1#0-2kv84eW?)K4=nU>$ z7v2la1J8%|iMqoJ5%41rfEIxl!J+S^{1QU#3)T{}l*SB49j;PQ_|@IGiExF0?+0muI$1d0(T zVQs(_DP>hPPM#GzmNzJ_VX;ao+yZ0MemOE5JJl zco#GW+ykEr^@8WY=ROO?+{ls66v1jOIn)830G|X+ z0Z)ZbgF3;pSgqr~3jq%Tx$s_SKDZCQ5LyB)MZ5x<%J1V)74$%Jphj?8r(pZ{ zAy9~b9~uBJf-i=afS1CTK`X#3;SGKPh^j~gt137WJ{IbD3djEhfFx)#tC}GNJ{6h< zo(}JXW`VolbD$pZTzD@u4?N!u;DZ(-;D--Di@=NFOQ5CTW$+cyN^s+8v;Z`cRV`R7 zyxW0)5)ep&Pll#|r^2T})4`qaSx^^v4!j4N3+{!_6Lp8@Bj7`z5b6gHz!yP_!Asyv zp=IC|@Rd;G8Cl{8R%@$)##)@We+NJUG|39^J|8{>nhKr{;IaRZSwE!@7aSvZ|Uo;FDNYx-57XG>28C^T6jq zz2JH9`A{Et5q$A;-2N(Ku7~U>ppmRrQ^7l+3E)Za$^K|$uR+Y{Rp9jrn z4Pows_p_>WrIsIHgqI;u!5YGWO8AK9C1Db)sz@?4g;k|Xg->Ty85Z(*;qfun233h9 z#tUd%Xe6teH5T3hO#n}VPll#|r^2T})4`qaSy0ythFnm~0q{U`SyjPa_&jJnxDUP% z>IV0GKXd!c#Y`S3nV`G8u8fFFSXv;t50i3L=#$Nb5Xg;f2B|i8dryH1CR^#g6F~KLw(?d@P23jya>J+S^{1Q zUk0rZ&W}*ck|vK}wU!*}08fBVf~J6{!lyx<;92l4XdW~l@j_^Y#d-Trcp04nn#`)! zbqahcGz~l*-U-bDcfsdCJ>a?UUT7Y8zVd4O_aRV-fFC{pEdnoPRh_d8yaH;xf)-@8 zS`g|0Pk>K?rbC^qZk3^n|FL>K0(sDUR;$;;7ef8u0r+B8HNRuFR3HJG#H!{`gHLBw z>2l${v$6f>Az?lOK4>AhA3gvr0xyOyftG@o!B;>l!Hrj?f)UWjSF!!a0yv-vtg7Zo z@X62=@KpFTXgatPJ`3ss&w=+qbHTlCfIMhE0zUXcs2@B4Uj!`%FM%(GmVsBmS3(W1 zELbF~S{3eC{zr8h2Q&$RWcUnno=R&>U zdGPsAA9x|W9~uBJf-hF8w*L|YN)af7R)AN+8?VWdN3g0Tj)aeeI=~a)lc34qDe$S# zG*;_^dOCm;n#HOLaKYz5J>a?UUT7Y8KD-ZF2=0duK#RbOU&Hoaf= z9@aUl;<4}!XcBlbd3buz7$#kUI}l^ z#{#fg3jptMcjU>vmIP=LG#Q!#O@*ehss>Ak zI-%64);;8~XELy8B$hXeumGI--nECH*v1n^n#9(W&o0KN>~cnkBhTJytaDevZ*c>n@X zBOf!cS~I|B!F%9+@B#QTcw-6XXSL>s&w}^B`&g|*N&uh?35>Uq0c(g_XYg6@9(W&o z0KN>~cn9;dTJyta!F%9+@8FVB0H6#BjHSqc)ye=q3*G}?2=9jmz$@S@p~f=FFNsy< zmkdo=#_b=*zy**4^{^^l2=9jmz$@S@p~i9)z-ko$O#x45t-<+afqTI7+z9v(2p~`b zUIuQgkOC4|trmgLg7?7t-~;ew@P-fbvs&}RyR!g106zEtd>On^fDBlz4B)fiJ@7vG z0DLL53|ax*%zfoi!{~45&+h`XHB=`W$wk%L`ubf8a-l{Cp6H>_ayWi{HNTq9Tp!;p zN{@*42f`DnyBXgxN)L$EnR|qq>o%IgIQo;OQeFn|CrxRq8Q&pVkB7Dh{BTRU$UF+; zp&4I*zee5TB#An(_qHj5_ zDy#iJbUZ%3Tl5};`*Yt=;XQ4rZ5ytf9#L%+__LJVhL`a`JIU=u-~;Wb+5Oxkz{`NY zZAT|mE_yt*9pG`4n83N{(bSFs(+xB#fm=$CruH}ZW^g^4T1)PLs*;Dn^=N9hfu9#1 zrAJd60p5hN6XQF^$Y5&R1iF;9BT0)w+Q9q;k$KN)M^_0C2kC@i$5-6M@GI<^k2L&phCl1?%C| z)&egVtVdJ(6gVLGC^9JrK5F4;J(gO{l~VCPZln`QT*IzXWDDR1U8!xSE4VvwLRT79 z4G#jojei5qI1-t-fFGuUj@*`d6t!1?-CgN~YAZd8+IsMXl3b6W_9gIkB-dl8T?GG1 zlItPVny-=tx**A;^$==3z+-N*N{!Y-sNE0V9$b&0HUa!ja6N+BtKb>ndIYsX@TbA` z2xG9Jh1K&jj z3P06NQojNG6qPfM)}yEG1MZ$oqtxz551#fD_zcRvk(2AO)BXnbCrev?o-DaHUn6z@ z99)l`))o8|xE?$0KJf7F(i8O1X=A~8u#~P`c|CHP7dVT`8At1Z)7Ajb>rSJ(@XoPn z;56_by3Os>&*Ge^;_mXTz^^#&u z@KL?2Vq^56X??)i(_eqYw~wxuA~R$oP%lMRVm$bC@c0y3*^!&AANUgRepKE)zKweu z+v-Q(BR2mR`*{BLrpH(_3&ra()zlvJQ8mHGe%Mas^wkgB_p(=q?K*PUZq5J7o_kV? z9!^^n)FT)xI^?1a4+}};Zcu+`@kQk3q3iPwHcE87T~qiy%%FWdfKPJ&1eea zXgzq^&%j>~w@!Yd^w?>}23gQcbV22!hfZq={5f?`VO$HHs4H+SnxgP7;56V}w1si> z1DR68EZ_$+)$(_Uvc^s0&@bpF0J91pE}Z9yRR@c)e`tUwY8A1{KZb(LR&?Gzsx5;lAk;-!5u8l5RrM>D2TNUS)bXxetKX&_j%)^=NXXz?Yw( zMR)Lu*Q3eR*(?Pj!0%DhzABe7Qirj?m&Z^u&Luj2tnm5Z@nh*kJm)?Z zd^h-5I>OmR>0#qe08gW)cXIA})VMl+smtFJ>0ftp?t0X?4&W0fS=&~$9yRVB@adCe zJJ*B8O$J|1O;fp4J!afu;Pv#7!jq>+-QNeEObZp(BgTCX970DJN9zIOBDP2!KYyB< z_2VV&HC1xy2;Pex>c`3TaB-u6|Mk37T@M#GAAGd%C_Pr&Zt!QQX@9Pa9;)p;@Qd`2 z!g{2(gsoDUO|(#9Jy6>a;QDk#VLeXUV&E8RI)JerrR@N4bCtS{yTP{LO{SC0r?Xd^ zj2`H2I=mjYZausn=f)4~&1JJ21tp|~t2ELsV@8(u~ zYlf7v3HU9_W*j|prr;yMGiSDwV5T^ssSzfrn7yAjW#sxRby=D4TJ#9yHGUP%{6LXln{*u5Jsc&lqt2 zI-rv4A>)<;?^;N0@8#W&9y0C}__uG-D8==Vao6vX?7w=OR^A&Q?;gUw`cZMD%}=oT z88-ix&HHWspw0gr?A=DK-N6;O-sXGR{7{>pWb?Caeu?tcj-nq0c|IzhVW9R2dXT)< zd&KKO_3nq)W8}REuLsH746g^hD}&dA`?A1Qu8rxx3kAYXf zakWp-K0tHs<9&i23a{=*5-wXsNAKe`uZO}j!9A;GYo5bjYt^S8_#AqOFWE)wk?=Bs zx38vVed9aCg!A`E_3?tUr>8^Obch0fA3SZ1wP{7`f$)9>e-->wq;FLu)%>{m-njH2csGGZQ`2-#ZjFJ*$wvVnSV#X#=j0vu++2O;fOnvUoIFa8fL93oI2}<~ z4}kY6@ES?2$GUVpOnhjw-8N3(xWbn=4BfvK^f0)y^;!{2Kc?rDLCaI<#`fd&QBb#W{Kwc#ik$w;O zL^|>?x4j*zngZvp>fFST{@D!rHY80zyV_`Q_v3(1#*yFQ|${W*I*mfdIIlRlzm133HVkp3+AbCjLIJ!Ttlbg|Tao8U^|B;ZQH zU3veaKKB53rNrUf1E#XAzQ*6S`Hz(6HLgEr*{dF)hq?Q&#|oaQ#b?1Qunl{)0;BAg ziS&qfi#dThR%pMK&J5>cg&z3sAB0yF(TPNE8$H5Zi_c}Y1~g>^H@zOot_Se$eOB^l zJ!IWO;O#yZK9_e6>N5#^F1Q|qZXx&u;Zb^Exy|5C+VUu`l1yGh>hlqBCS710t%sHS z9{9dP)J%Qj(!S91%VSe8&;ms<<9g?j`UI$LJ#SC_SXy67bil`(s>c%5lji z0GvWo7)R>?2+4*N~`K=82N=!DwK>*3@w!IOTYQEHRb!^u4jek)DM=Ijrh zmTU<4&}r*_lKWlu)i;yfHvcVqwOQ!F=l+J*gUz+zRixs2@VM^qdaybBX7nJ(tL^u0 zGZqE|V-0(?9YxztxxTKD1!%`BUp2G#gJ{Vp-i)q2BjM!;tAXa?xjFPmatFaPDRH#g z#r!GBe+TAW4C81$j@&herI74%vSZWZ$aMvO3S5sPHxPW*IXbG&6!xE!?8kxcKS!e; zXRe2ln+<;a95qvCGq0bQ^lQOir}D?+JKn2Dk^3B2d)27d^IwNhnN9h7cv9V~o9BA8 zxj!)f!HaSP*MrS9ERn^m|CcPL9&D~Nc+0%r#k1J_>H<2M{xbv>$kRS!KV zoeT4`r_p!Cw~x`I(!GoTd%C$-eETSCSUO&+H3+;(-5H8 zPE>6pFh;QdPkp`&W9@yzan~3(TIjWpb

}hd2uNpnz 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 delta 555749 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

+** assert( sqlite3_libversion_number()==SQLITE_VERSION_NUMBER );
+** assert( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)==0 );
+** assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 );
+** 
)^ +** +** ^The sqlite3_version[] string constant contains the text of [SQLITE_VERSION] +** macro. ^The sqlite3_libversion() function returns a pointer to the +** to the sqlite3_version[] string constant. The sqlite3_libversion() +** function is provided for use in DLLs since DLL users usually do not have +** direct access to string constants within the DLL. ^The +** sqlite3_libversion_number() function returns an integer equal to +** [SQLITE_VERSION_NUMBER]. ^The sqlite3_sourceid() function returns +** a pointer to a string constant whose value is the same as the +** [SQLITE_SOURCE_ID] C preprocessor macro. +** +** See also: [sqlite_version()] and [sqlite_source_id()]. +*/ +SQLITE_API SQLITE_EXTERN const char sqlite3_version[]; +SQLITE_API const char *sqlite3_libversion(void); +SQLITE_API const char *sqlite3_sourceid(void); +SQLITE_API int sqlite3_libversion_number(void); + +/* +** CAPI3REF: Run-Time Library Compilation Options Diagnostics +** +** ^The sqlite3_compileoption_used() function returns 0 or 1 +** indicating whether the specified option was defined at +** compile time. ^The SQLITE_ prefix may be omitted from the +** option name passed to sqlite3_compileoption_used(). +** +** ^The sqlite3_compileoption_get() function allows interating +** over the list of options that were defined at compile time by +** returning the N-th compile time option string. ^If N is out of range, +** sqlite3_compileoption_get() returns a NULL pointer. ^The SQLITE_ +** prefix is omitted from any strings returned by +** sqlite3_compileoption_get(). +** +** ^Support for the diagnostic functions sqlite3_compileoption_used() +** and sqlite3_compileoption_get() may be omitted by specifing the +** [SQLITE_OMIT_COMPILEOPTION_DIAGS] option at compile time. +** +** See also: SQL functions [sqlite_compileoption_used()] and +** [sqlite_compileoption_get()] and the [compile_options pragma]. +*/ +#ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS +SQLITE_API int sqlite3_compileoption_used(const char *zOptName); +SQLITE_API const char *sqlite3_compileoption_get(int N); +#endif + +/* +** CAPI3REF: Test To See If The Library Is Threadsafe +** +** ^The sqlite3_threadsafe() function returns zero if and only if +** SQLite was compiled mutexing code omitted due to the +** [SQLITE_THREADSAFE] compile-time option being set to 0. +** +** SQLite can be compiled with or without mutexes. When +** the [SQLITE_THREADSAFE] C preprocessor macro is 1 or 2, mutexes +** are enabled and SQLite is threadsafe. When the +** [SQLITE_THREADSAFE] macro is 0, +** the mutexes are omitted. Without the mutexes, it is not safe +** to use SQLite concurrently from more than one thread. +** +** Enabling mutexes incurs a measurable performance penalty. +** So if speed is of utmost importance, it makes sense to disable +** the mutexes. But for maximum safety, mutexes should be enabled. +** ^The default behavior is for mutexes to be enabled. +** +** This interface can be used by an application to make sure that the +** version of SQLite that it is linking against was compiled with +** the desired setting of the [SQLITE_THREADSAFE] macro. +** +** This interface only reports on the compile-time mutex setting +** of the [SQLITE_THREADSAFE] flag. If SQLite is compiled with +** SQLITE_THREADSAFE=1 or =2 then mutexes are enabled by default but +** can be fully or partially disabled using a call to [sqlite3_config()] +** with the verbs [SQLITE_CONFIG_SINGLETHREAD], [SQLITE_CONFIG_MULTITHREAD], +** or [SQLITE_CONFIG_MUTEX]. ^(The return value of the +** sqlite3_threadsafe() function shows only the compile-time setting of +** thread safety, not any run-time changes to that setting made by +** sqlite3_config(). In other words, the return value from sqlite3_threadsafe() +** is unchanged by calls to sqlite3_config().)^ +** +** See the [threading mode] documentation for additional information. +*/ +SQLITE_API int sqlite3_threadsafe(void); + +/* +** CAPI3REF: Database Connection Handle +** KEYWORDS: {database connection} {database connections} +** +** Each open SQLite database is represented by a pointer to an instance of +** the opaque structure named "sqlite3". It is useful to think of an sqlite3 +** pointer as an object. The [sqlite3_open()], [sqlite3_open16()], and +** [sqlite3_open_v2()] interfaces are its constructors, and [sqlite3_close()] +** is its destructor. There are many other interfaces (such as +** [sqlite3_prepare_v2()], [sqlite3_create_function()], and +** [sqlite3_busy_timeout()] to name but three) that are methods on an +** sqlite3 object. +*/ +typedef struct sqlite3 sqlite3; + +/* +** CAPI3REF: 64-Bit Integer Types +** KEYWORDS: sqlite_int64 sqlite_uint64 +** +** Because there is no cross-platform way to specify 64-bit integer types +** SQLite includes typedefs for 64-bit signed and unsigned integers. +** +** The sqlite3_int64 and sqlite3_uint64 are the preferred type definitions. +** The sqlite_int64 and sqlite_uint64 types are supported for backwards +** compatibility only. +** +** ^The sqlite3_int64 and sqlite_int64 types can store integer values +** between -9223372036854775808 and +9223372036854775807 inclusive. ^The +** sqlite3_uint64 and sqlite_uint64 types can store integer values +** between 0 and +18446744073709551615 inclusive. +*/ +#ifdef SQLITE_INT64_TYPE + typedef SQLITE_INT64_TYPE sqlite_int64; + typedef unsigned SQLITE_INT64_TYPE sqlite_uint64; +#elif defined(_MSC_VER) || defined(__BORLANDC__) + typedef __int64 sqlite_int64; + typedef unsigned __int64 sqlite_uint64; +#else + typedef long long int sqlite_int64; + typedef unsigned long long int sqlite_uint64; +#endif +typedef sqlite_int64 sqlite3_int64; +typedef sqlite_uint64 sqlite3_uint64; + +/* +** If compiling for a processor that lacks floating point support, +** substitute integer for floating-point. +*/ +#ifdef SQLITE_OMIT_FLOATING_POINT +# define double sqlite3_int64 +#endif + +/* +** CAPI3REF: Closing A Database Connection +** +** ^The sqlite3_close() routine is the destructor for the [sqlite3] object. +** ^Calls to sqlite3_close() return SQLITE_OK if the [sqlite3] object is +** successfullly destroyed and all associated resources are deallocated. +** +** Applications must [sqlite3_finalize | finalize] all [prepared statements] +** and [sqlite3_blob_close | close] all [BLOB handles] associated with +** the [sqlite3] object prior to attempting to close the object. ^If +** sqlite3_close() is called on a [database connection] that still has +** outstanding [prepared statements] or [BLOB handles], then it returns +** SQLITE_BUSY. +** +** ^If [sqlite3_close()] is invoked while a transaction is open, +** the transaction is automatically rolled back. +** +** The C parameter to [sqlite3_close(C)] must be either a NULL +** pointer or an [sqlite3] object pointer obtained +** from [sqlite3_open()], [sqlite3_open16()], or +** [sqlite3_open_v2()], and not previously closed. +** ^Calling sqlite3_close() with a NULL pointer argument is a +** harmless no-op. +*/ +SQLITE_API int sqlite3_close(sqlite3 *); + +/* +** The type for a callback function. +** This is legacy and deprecated. It is included for historical +** compatibility and is not documented. +*/ +typedef int (*sqlite3_callback)(void*,int,char**, char**); + +/* +** CAPI3REF: One-Step Query Execution Interface +** +** The sqlite3_exec() interface is a convenience wrapper around +** [sqlite3_prepare_v2()], [sqlite3_step()], and [sqlite3_finalize()], +** that allows an application to run multiple statements of SQL +** without having to use a lot of C code. +** +** ^The sqlite3_exec() interface runs zero or more UTF-8 encoded, +** semicolon-separate SQL statements passed into its 2nd argument, +** in the context of the [database connection] passed in as its 1st +** argument. ^If the callback function of the 3rd argument to +** sqlite3_exec() is not NULL, then it is invoked for each result row +** coming out of the evaluated SQL statements. ^The 4th argument to +** to sqlite3_exec() is relayed through to the 1st argument of each +** callback invocation. ^If the callback pointer to sqlite3_exec() +** is NULL, then no callback is ever invoked and result rows are +** ignored. +** +** ^If an error occurs while evaluating the SQL statements passed into +** sqlite3_exec(), then execution of the current statement stops and +** subsequent statements are skipped. ^If the 5th parameter to sqlite3_exec() +** is not NULL then any error message is written into memory obtained +** from [sqlite3_malloc()] and passed back through the 5th parameter. +** To avoid memory leaks, the application should invoke [sqlite3_free()] +** on error message strings returned through the 5th parameter of +** of sqlite3_exec() after the error message string is no longer needed. +** ^If the 5th parameter to sqlite3_exec() is not NULL and no errors +** occur, then sqlite3_exec() sets the pointer in its 5th parameter to +** NULL before returning. +** +** ^If an sqlite3_exec() callback returns non-zero, the sqlite3_exec() +** routine returns SQLITE_ABORT without invoking the callback again and +** without running any subsequent SQL statements. +** +** ^The 2nd argument to the sqlite3_exec() callback function is the +** number of columns in the result. ^The 3rd argument to the sqlite3_exec() +** callback is an array of pointers to strings obtained as if from +** [sqlite3_column_text()], one for each column. ^If an element of a +** result row is NULL then the corresponding string pointer for the +** sqlite3_exec() callback is a NULL pointer. ^The 4th argument to the +** sqlite3_exec() callback is an array of pointers to strings where each +** entry represents the name of corresponding result column as obtained +** from [sqlite3_column_name()]. +** +** ^If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer +** to an empty string, or a pointer that contains only whitespace and/or +** SQL comments, then no SQL statements are evaluated and the database +** is not changed. +** +** Restrictions: +** +**
    +**
  • The application must insure that the 1st parameter to sqlite3_exec() +** is a valid and open [database connection]. +**
  • The application must not close [database connection] specified by +** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. +**
  • The application must not modify the SQL statement text passed into +** the 2nd parameter of sqlite3_exec() while sqlite3_exec() is running. +**
+*/ +SQLITE_API int sqlite3_exec( + sqlite3*, /* An open database */ + const char *sql, /* SQL to be evaluated */ + int (*callback)(void*,int,char**,char**), /* Callback function */ + void *, /* 1st argument to callback */ + char **errmsg /* Error msg written here */ +); + +/* +** CAPI3REF: Result Codes +** KEYWORDS: SQLITE_OK {error code} {error codes} +** KEYWORDS: {result code} {result codes} +** +** Many SQLite functions return an integer result code from the set shown +** here in order to indicates success or failure. +** +** New error codes may be added in future versions of SQLite. +** +** See also: [SQLITE_IOERR_READ | extended result codes] +*/ +#define SQLITE_OK 0 /* Successful result */ +/* beginning-of-error-codes */ +#define SQLITE_ERROR 1 /* SQL error or missing database */ +#define SQLITE_INTERNAL 2 /* Internal logic error in SQLite */ +#define SQLITE_PERM 3 /* Access permission denied */ +#define SQLITE_ABORT 4 /* Callback routine requested an abort */ +#define SQLITE_BUSY 5 /* The database file is locked */ +#define SQLITE_LOCKED 6 /* A table in the database is locked */ +#define SQLITE_NOMEM 7 /* A malloc() failed */ +#define SQLITE_READONLY 8 /* Attempt to write a readonly database */ +#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/ +#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */ +#define SQLITE_CORRUPT 11 /* The database disk image is malformed */ +#define SQLITE_NOTFOUND 12 /* NOT USED. Table or record not found */ +#define SQLITE_FULL 13 /* Insertion failed because database is full */ +#define SQLITE_CANTOPEN 14 /* Unable to open the database file */ +#define SQLITE_PROTOCOL 15 /* Database lock protocol error */ +#define SQLITE_EMPTY 16 /* Database is empty */ +#define SQLITE_SCHEMA 17 /* The database schema changed */ +#define SQLITE_TOOBIG 18 /* String or BLOB exceeds size limit */ +#define SQLITE_CONSTRAINT 19 /* Abort due to constraint violation */ +#define SQLITE_MISMATCH 20 /* Data type mismatch */ +#define SQLITE_MISUSE 21 /* Library used incorrectly */ +#define SQLITE_NOLFS 22 /* Uses OS features not supported on host */ +#define SQLITE_AUTH 23 /* Authorization denied */ +#define SQLITE_FORMAT 24 /* Auxiliary database format error */ +#define SQLITE_RANGE 25 /* 2nd parameter to sqlite3_bind out of range */ +#define SQLITE_NOTADB 26 /* File opened that is not a database file */ +#define SQLITE_ROW 100 /* sqlite3_step() has another row ready */ +#define SQLITE_DONE 101 /* sqlite3_step() has finished executing */ +/* end-of-error-codes */ + +/* +** CAPI3REF: Extended Result Codes +** KEYWORDS: {extended error code} {extended error codes} +** KEYWORDS: {extended result code} {extended result codes} +** +** In its default configuration, SQLite API routines return one of 26 integer +** [SQLITE_OK | result codes]. However, experience has shown that many of +** these result codes are too coarse-grained. They do not provide as +** much information about problems as programmers might like. In an effort to +** address this, newer versions of SQLite (version 3.3.8 and later) include +** support for additional result codes that provide more detailed information +** about errors. The extended result codes are enabled or disabled +** on a per database connection basis using the +** [sqlite3_extended_result_codes()] API. +** +** Some of the available extended result codes are listed here. +** One may expect the number of extended result codes will be expand +** over time. Software that uses extended result codes should expect +** to see new result codes in future releases of SQLite. +** +** The SQLITE_OK result code will never be extended. It will always +** be exactly zero. +*/ +#define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8)) +#define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8)) +#define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8)) +#define SQLITE_IOERR_FSYNC (SQLITE_IOERR | (4<<8)) +#define SQLITE_IOERR_DIR_FSYNC (SQLITE_IOERR | (5<<8)) +#define SQLITE_IOERR_TRUNCATE (SQLITE_IOERR | (6<<8)) +#define SQLITE_IOERR_FSTAT (SQLITE_IOERR | (7<<8)) +#define SQLITE_IOERR_UNLOCK (SQLITE_IOERR | (8<<8)) +#define SQLITE_IOERR_RDLOCK (SQLITE_IOERR | (9<<8)) +#define SQLITE_IOERR_DELETE (SQLITE_IOERR | (10<<8)) +#define SQLITE_IOERR_BLOCKED (SQLITE_IOERR | (11<<8)) +#define SQLITE_IOERR_NOMEM (SQLITE_IOERR | (12<<8)) +#define SQLITE_IOERR_ACCESS (SQLITE_IOERR | (13<<8)) +#define SQLITE_IOERR_CHECKRESERVEDLOCK (SQLITE_IOERR | (14<<8)) +#define SQLITE_IOERR_LOCK (SQLITE_IOERR | (15<<8)) +#define SQLITE_IOERR_CLOSE (SQLITE_IOERR | (16<<8)) +#define SQLITE_IOERR_DIR_CLOSE (SQLITE_IOERR | (17<<8)) +#define SQLITE_IOERR_SHMOPEN (SQLITE_IOERR | (18<<8)) +#define SQLITE_IOERR_SHMSIZE (SQLITE_IOERR | (19<<8)) +#define SQLITE_IOERR_SHMLOCK (SQLITE_IOERR | (20<<8)) +#define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) +#define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) +#define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8)) + +/* +** CAPI3REF: Flags For File Open Operations +** +** These bit values are intended for use in the +** 3rd parameter to the [sqlite3_open_v2()] interface and +** in the 4th parameter to the xOpen method of the +** [sqlite3_vfs] object. +*/ +#define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_CREATE 0x00000004 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_DELETEONCLOSE 0x00000008 /* VFS only */ +#define SQLITE_OPEN_EXCLUSIVE 0x00000010 /* VFS only */ +#define SQLITE_OPEN_AUTOPROXY 0x00000020 /* VFS only */ +#define SQLITE_OPEN_MAIN_DB 0x00000100 /* VFS only */ +#define SQLITE_OPEN_TEMP_DB 0x00000200 /* VFS only */ +#define SQLITE_OPEN_TRANSIENT_DB 0x00000400 /* VFS only */ +#define SQLITE_OPEN_MAIN_JOURNAL 0x00000800 /* VFS only */ +#define SQLITE_OPEN_TEMP_JOURNAL 0x00001000 /* VFS only */ +#define SQLITE_OPEN_SUBJOURNAL 0x00002000 /* VFS only */ +#define SQLITE_OPEN_MASTER_JOURNAL 0x00004000 /* VFS only */ +#define SQLITE_OPEN_NOMUTEX 0x00008000 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_FULLMUTEX 0x00010000 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_SHAREDCACHE 0x00020000 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_PRIVATECACHE 0x00040000 /* Ok for sqlite3_open_v2() */ +#define SQLITE_OPEN_WAL 0x00080000 /* VFS only */ + +/* +** CAPI3REF: Device Characteristics +** +** The xDeviceCharacteristics method of the [sqlite3_io_methods] +** object returns an integer which is a vector of the these +** bit values expressing I/O characteristics of the mass storage +** device that holds the file that the [sqlite3_io_methods] +** refers to. +** +** The SQLITE_IOCAP_ATOMIC property means that all writes of +** any size are atomic. The SQLITE_IOCAP_ATOMICnnn values +** mean that writes of blocks that are nnn bytes in size and +** are aligned to an address which is an integer multiple of +** nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means +** that when data is appended to a file, the data is appended +** first then the size of the file is extended, never the other +** way around. The SQLITE_IOCAP_SEQUENTIAL property means that +** information is written to disk in the same order as calls +** to xWrite(). +*/ +#define SQLITE_IOCAP_ATOMIC 0x00000001 +#define SQLITE_IOCAP_ATOMIC512 0x00000002 +#define SQLITE_IOCAP_ATOMIC1K 0x00000004 +#define SQLITE_IOCAP_ATOMIC2K 0x00000008 +#define SQLITE_IOCAP_ATOMIC4K 0x00000010 +#define SQLITE_IOCAP_ATOMIC8K 0x00000020 +#define SQLITE_IOCAP_ATOMIC16K 0x00000040 +#define SQLITE_IOCAP_ATOMIC32K 0x00000080 +#define SQLITE_IOCAP_ATOMIC64K 0x00000100 +#define SQLITE_IOCAP_SAFE_APPEND 0x00000200 +#define SQLITE_IOCAP_SEQUENTIAL 0x00000400 +#define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN 0x00000800 + +/* +** CAPI3REF: File Locking Levels +** +** SQLite uses one of these integer values as the second +** argument to calls it makes to the xLock() and xUnlock() methods +** of an [sqlite3_io_methods] object. +*/ +#define SQLITE_LOCK_NONE 0 +#define SQLITE_LOCK_SHARED 1 +#define SQLITE_LOCK_RESERVED 2 +#define SQLITE_LOCK_PENDING 3 +#define SQLITE_LOCK_EXCLUSIVE 4 + +/* +** CAPI3REF: Synchronization Type Flags +** +** When SQLite invokes the xSync() method of an +** [sqlite3_io_methods] object it uses a combination of +** these integer values as the second argument. +** +** When the SQLITE_SYNC_DATAONLY flag is used, it means that the +** sync operation only needs to flush data to mass storage. Inode +** information need not be flushed. If the lower four bits of the flag +** equal SQLITE_SYNC_NORMAL, that means to use normal fsync() semantics. +** If the lower four bits equal SQLITE_SYNC_FULL, that means +** to use Mac OS X style fullsync instead of fsync(). +*/ +#define SQLITE_SYNC_NORMAL 0x00002 +#define SQLITE_SYNC_FULL 0x00003 +#define SQLITE_SYNC_DATAONLY 0x00010 + +/* +** CAPI3REF: OS Interface Open File Handle +** +** An [sqlite3_file] object represents an open file in the +** [sqlite3_vfs | OS interface layer]. Individual OS interface +** implementations will +** want to subclass this object by appending additional fields +** for their own use. The pMethods entry is a pointer to an +** [sqlite3_io_methods] object that defines methods for performing +** I/O operations on the open file. +*/ +typedef struct sqlite3_file sqlite3_file; +struct sqlite3_file { + const struct sqlite3_io_methods *pMethods; /* Methods for an open file */ +}; + +/* +** CAPI3REF: OS Interface File Virtual Methods Object +** +** Every file opened by the [sqlite3_vfs] xOpen method populates an +** [sqlite3_file] object (or, more commonly, a subclass of the +** [sqlite3_file] object) with a pointer to an instance of this object. +** This object defines the methods used to perform various operations +** against the open file represented by the [sqlite3_file] object. +** +** If the xOpen method sets the sqlite3_file.pMethods element +** to a non-NULL pointer, then the sqlite3_io_methods.xClose method +** may be invoked even if the xOpen reported that it failed. The +** only way to prevent a call to xClose following a failed xOpen +** is for the xOpen to set the sqlite3_file.pMethods element to NULL. +** +** The flags argument to xSync may be one of [SQLITE_SYNC_NORMAL] or +** [SQLITE_SYNC_FULL]. The first choice is the normal fsync(). +** The second choice is a Mac OS X style fullsync. The [SQLITE_SYNC_DATAONLY] +** flag may be ORed in to indicate that only the data of the file +** and not its inode needs to be synced. +** +** The integer values to xLock() and xUnlock() are one of +**
    +**
  • [SQLITE_LOCK_NONE], +**
  • [SQLITE_LOCK_SHARED], +**
  • [SQLITE_LOCK_RESERVED], +**
  • [SQLITE_LOCK_PENDING], or +**
  • [SQLITE_LOCK_EXCLUSIVE]. +**
+** xLock() increases the lock. xUnlock() decreases the lock. +** The xCheckReservedLock() method checks whether any database connection, +** either in this process or in some other process, is holding a RESERVED, +** PENDING, or EXCLUSIVE lock on the file. It returns true +** if such a lock exists and false otherwise. +** +** The xFileControl() method is a generic interface that allows custom +** VFS implementations to directly control an open file using the +** [sqlite3_file_control()] interface. The second "op" argument is an +** integer opcode. The third argument is a generic pointer intended to +** point to a structure that may contain arguments or space in which to +** write return values. Potential uses for xFileControl() might be +** functions to enable blocking locks with timeouts, to change the +** locking strategy (for example to use dot-file locks), to inquire +** about the status of a lock, or to break stale locks. The SQLite +** core reserves all opcodes less than 100 for its own use. +** A [SQLITE_FCNTL_LOCKSTATE | list of opcodes] less than 100 is available. +** Applications that define a custom xFileControl method should use opcodes +** greater than 100 to avoid conflicts. +** +** The xSectorSize() method returns the sector size of the +** device that underlies the file. The sector size is the +** minimum write that can be performed without disturbing +** other bytes in the file. The xDeviceCharacteristics() +** method returns a bit vector describing behaviors of the +** underlying device: +** +**
    +**
  • [SQLITE_IOCAP_ATOMIC] +**
  • [SQLITE_IOCAP_ATOMIC512] +**
  • [SQLITE_IOCAP_ATOMIC1K] +**
  • [SQLITE_IOCAP_ATOMIC2K] +**
  • [SQLITE_IOCAP_ATOMIC4K] +**
  • [SQLITE_IOCAP_ATOMIC8K] +**
  • [SQLITE_IOCAP_ATOMIC16K] +**
  • [SQLITE_IOCAP_ATOMIC32K] +**
  • [SQLITE_IOCAP_ATOMIC64K] +**
  • [SQLITE_IOCAP_SAFE_APPEND] +**
  • [SQLITE_IOCAP_SEQUENTIAL] +**
+** +** The SQLITE_IOCAP_ATOMIC property means that all writes of +** any size are atomic. The SQLITE_IOCAP_ATOMICnnn values +** mean that writes of blocks that are nnn bytes in size and +** are aligned to an address which is an integer multiple of +** nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means +** that when data is appended to a file, the data is appended +** first then the size of the file is extended, never the other +** way around. The SQLITE_IOCAP_SEQUENTIAL property means that +** information is written to disk in the same order as calls +** to xWrite(). +** +** If xRead() returns SQLITE_IOERR_SHORT_READ it must also fill +** in the unread portions of the buffer with zeros. A VFS that +** fails to zero-fill short reads might seem to work. However, +** failure to zero-fill short reads will eventually lead to +** database corruption. +*/ +typedef struct sqlite3_io_methods sqlite3_io_methods; +struct sqlite3_io_methods { + int iVersion; + int (*xClose)(sqlite3_file*); + int (*xRead)(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); + int (*xWrite)(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst); + int (*xTruncate)(sqlite3_file*, sqlite3_int64 size); + int (*xSync)(sqlite3_file*, int flags); + int (*xFileSize)(sqlite3_file*, sqlite3_int64 *pSize); + int (*xLock)(sqlite3_file*, int); + int (*xUnlock)(sqlite3_file*, int); + int (*xCheckReservedLock)(sqlite3_file*, int *pResOut); + int (*xFileControl)(sqlite3_file*, int op, void *pArg); + int (*xSectorSize)(sqlite3_file*); + int (*xDeviceCharacteristics)(sqlite3_file*); + /* Methods above are valid for version 1 */ + int (*xShmMap)(sqlite3_file*, int iPg, int pgsz, int, void volatile**); + int (*xShmLock)(sqlite3_file*, int offset, int n, int flags); + void (*xShmBarrier)(sqlite3_file*); + int (*xShmUnmap)(sqlite3_file*, int deleteFlag); + /* Methods above are valid for version 2 */ + /* Additional methods may be added in future releases */ +}; + +/* +** CAPI3REF: Standard File Control Opcodes +** +** These integer constants are opcodes for the xFileControl method +** of the [sqlite3_io_methods] object and for the [sqlite3_file_control()] +** interface. +** +** The [SQLITE_FCNTL_LOCKSTATE] opcode is used for debugging. This +** opcode causes the xFileControl method to write the current state of +** the lock (one of [SQLITE_LOCK_NONE], [SQLITE_LOCK_SHARED], +** [SQLITE_LOCK_RESERVED], [SQLITE_LOCK_PENDING], or [SQLITE_LOCK_EXCLUSIVE]) +** into an integer that the pArg argument points to. This capability +** is used during testing and only needs to be supported when SQLITE_TEST +** is defined. +** +** The [SQLITE_FCNTL_SIZE_HINT] opcode is used by SQLite to give the VFS +** layer a hint of how large the database file will grow to be during the +** current transaction. This hint is not guaranteed to be accurate but it +** is often close. The underlying VFS might choose to preallocate database +** file space based on this hint in order to help writes to the database +** file run faster. +*/ +#define SQLITE_FCNTL_LOCKSTATE 1 +#define SQLITE_GET_LOCKPROXYFILE 2 +#define SQLITE_SET_LOCKPROXYFILE 3 +#define SQLITE_LAST_ERRNO 4 +#define SQLITE_FCNTL_SIZE_HINT 5 + +/* +** CAPI3REF: Mutex Handle +** +** The mutex module within SQLite defines [sqlite3_mutex] to be an +** abstract type for a mutex object. The SQLite core never looks +** at the internal representation of an [sqlite3_mutex]. It only +** deals with pointers to the [sqlite3_mutex] object. +** +** Mutexes are created using [sqlite3_mutex_alloc()]. +*/ +typedef struct sqlite3_mutex sqlite3_mutex; + +/* +** CAPI3REF: OS Interface Object +** +** An instance of the sqlite3_vfs object defines the interface between +** the SQLite core and the underlying operating system. The "vfs" +** in the name of the object stands for "virtual file system". +** +** The value of the iVersion field is initially 1 but may be larger in +** future versions of SQLite. Additional fields may be appended to this +** object when the iVersion value is increased. Note that the structure +** of the sqlite3_vfs object changes in the transaction between +** SQLite version 3.5.9 and 3.6.0 and yet the iVersion field was not +** modified. +** +** The szOsFile field is the size of the subclassed [sqlite3_file] +** structure used by this VFS. mxPathname is the maximum length of +** a pathname in this VFS. +** +** Registered sqlite3_vfs objects are kept on a linked list formed by +** the pNext pointer. The [sqlite3_vfs_register()] +** and [sqlite3_vfs_unregister()] interfaces manage this list +** in a thread-safe way. The [sqlite3_vfs_find()] interface +** searches the list. Neither the application code nor the VFS +** implementation should use the pNext pointer. +** +** The pNext field is the only field in the sqlite3_vfs +** structure that SQLite will ever modify. SQLite will only access +** or modify this field while holding a particular static mutex. +** The application should never modify anything within the sqlite3_vfs +** object once the object has been registered. +** +** The zName field holds the name of the VFS module. The name must +** be unique across all VFS modules. +** +** SQLite will guarantee that the zFilename parameter to xOpen +** is either a NULL pointer or string obtained +** from xFullPathname(). SQLite further guarantees that +** the string will be valid and unchanged until xClose() is +** called. Because of the previous sentence, +** the [sqlite3_file] can safely store a pointer to the +** filename if it needs to remember the filename for some reason. +** If the zFilename parameter is xOpen is a NULL pointer then xOpen +** must invent its own temporary name for the file. Whenever the +** xFilename parameter is NULL it will also be the case that the +** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE]. +** +** The flags argument to xOpen() includes all bits set in +** the flags argument to [sqlite3_open_v2()]. Or if [sqlite3_open()] +** or [sqlite3_open16()] is used, then flags includes at least +** [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]. +** If xOpen() opens a file read-only then it sets *pOutFlags to +** include [SQLITE_OPEN_READONLY]. Other bits in *pOutFlags may be set. +** +** SQLite will also add one of the following flags to the xOpen() +** call, depending on the object being opened: +** +**
    +**
  • [SQLITE_OPEN_MAIN_DB] +**
  • [SQLITE_OPEN_MAIN_JOURNAL] +**
  • [SQLITE_OPEN_TEMP_DB] +**
  • [SQLITE_OPEN_TEMP_JOURNAL] +**
  • [SQLITE_OPEN_TRANSIENT_DB] +**
  • [SQLITE_OPEN_SUBJOURNAL] +**
  • [SQLITE_OPEN_MASTER_JOURNAL] +**
+** +** The file I/O implementation can use the object type flags to +** change the way it deals with files. For example, an application +** that does not care about crash recovery or rollback might make +** the open of a journal file a no-op. Writes to this journal would +** also be no-ops, and any attempt to read the journal would return +** SQLITE_IOERR. Or the implementation might recognize that a database +** file will be doing page-aligned sector reads and writes in a random +** order and set up its I/O subsystem accordingly. +** +** SQLite might also add one of the following flags to the xOpen method: +** +**
    +**
  • [SQLITE_OPEN_DELETEONCLOSE] +**
  • [SQLITE_OPEN_EXCLUSIVE] +**
+** +** The [SQLITE_OPEN_DELETEONCLOSE] flag means the file should be +** deleted when it is closed. The [SQLITE_OPEN_DELETEONCLOSE] +** will be set for TEMP databases, journals and for subjournals. +** +** The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction +** with the [SQLITE_OPEN_CREATE] flag, which are both directly +** analogous to the O_EXCL and O_CREAT flags of the POSIX open() +** API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the +** SQLITE_OPEN_CREATE, is used to indicate that file should always +** be created, and that it is an error if it already exists. +** It is not used to indicate the file should be opened +** for exclusive access. +** +** At least szOsFile bytes of memory are allocated by SQLite +** to hold the [sqlite3_file] structure passed as the third +** argument to xOpen. The xOpen method does not have to +** allocate the structure; it should just fill it in. Note that +** the xOpen method must set the sqlite3_file.pMethods to either +** a valid [sqlite3_io_methods] object or to NULL. xOpen must do +** this even if the open fails. SQLite expects that the sqlite3_file.pMethods +** element will be valid after xOpen returns regardless of the success +** or failure of the xOpen call. +** +** The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS] +** to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to +** test whether a file is readable and writable, or [SQLITE_ACCESS_READ] +** to test whether a file is at least readable. The file can be a +** directory. +** +** SQLite will always allocate at least mxPathname+1 bytes for the +** output buffer xFullPathname. The exact size of the output buffer +** is also passed as a parameter to both methods. If the output buffer +** is not large enough, [SQLITE_CANTOPEN] should be returned. Since this is +** handled as a fatal error by SQLite, vfs implementations should endeavor +** to prevent this by setting mxPathname to a sufficiently large value. +** +** The xRandomness(), xSleep(), xCurrentTime(), and xCurrentTimeInt64() +** interfaces are not strictly a part of the filesystem, but they are +** included in the VFS structure for completeness. +** The xRandomness() function attempts to return nBytes bytes +** of good-quality randomness into zOut. The return value is +** the actual number of bytes of randomness obtained. +** The xSleep() method causes the calling thread to sleep for at +** least the number of microseconds given. The xCurrentTime() +** method returns a Julian Day Number for the current date and time as +** a floating point value. +** The xCurrentTimeInt64() method returns, as an integer, the Julian +** Day Number multipled by 86400000 (the number of milliseconds in +** a 24-hour day). +** ^SQLite will use the xCurrentTimeInt64() method to get the current +** date and time if that method is available (if iVersion is 2 or +** greater and the function pointer is not NULL) and will fall back +** to xCurrentTime() if xCurrentTimeInt64() is unavailable. +*/ +typedef struct sqlite3_vfs sqlite3_vfs; +struct sqlite3_vfs { + int iVersion; /* Structure version number (currently 2) */ + int szOsFile; /* Size of subclassed sqlite3_file */ + int mxPathname; /* Maximum file pathname length */ + sqlite3_vfs *pNext; /* Next registered VFS */ + const char *zName; /* Name of this virtual file system */ + void *pAppData; /* Pointer to application-specific data */ + int (*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*, + int flags, int *pOutFlags); + int (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir); + int (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut); + int (*xFullPathname)(sqlite3_vfs*, const char *zName, int nOut, char *zOut); + void *(*xDlOpen)(sqlite3_vfs*, const char *zFilename); + void (*xDlError)(sqlite3_vfs*, int nByte, char *zErrMsg); + void (*(*xDlSym)(sqlite3_vfs*,void*, const char *zSymbol))(void); + void (*xDlClose)(sqlite3_vfs*, void*); + int (*xRandomness)(sqlite3_vfs*, int nByte, char *zOut); + int (*xSleep)(sqlite3_vfs*, int microseconds); + int (*xCurrentTime)(sqlite3_vfs*, double*); + int (*xGetLastError)(sqlite3_vfs*, int, char *); + /* + ** The methods above are in version 1 of the sqlite_vfs object + ** definition. Those that follow are added in version 2 or later + */ + int (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*); + /* + ** The methods above are in versions 1 and 2 of the sqlite_vfs object. + ** New fields may be appended in figure versions. The iVersion + ** value will increment whenever this happens. + */ +}; + +/* +** CAPI3REF: Flags for the xAccess VFS method +** +** These integer constants can be used as the third parameter to +** the xAccess method of an [sqlite3_vfs] object. They determine +** what kind of permissions the xAccess method is looking for. +** With SQLITE_ACCESS_EXISTS, the xAccess method +** simply checks whether the file exists. +** With SQLITE_ACCESS_READWRITE, the xAccess method +** checks whether the named directory is both readable and writable +** (in other words, if files can be added, removed, and renamed within +** the directory). +** The SQLITE_ACCESS_READWRITE constant is currently used only by the +** [temp_store_directory pragma], though this could change in a future +** release of SQLite. +** With SQLITE_ACCESS_READ, the xAccess method +** checks whether the file is readable. The SQLITE_ACCESS_READ constant is +** currently unused, though it might be used in a future release of +** SQLite. +*/ +#define SQLITE_ACCESS_EXISTS 0 +#define SQLITE_ACCESS_READWRITE 1 /* Used by PRAGMA temp_store_directory */ +#define SQLITE_ACCESS_READ 2 /* Unused */ + +/* +** CAPI3REF: Flags for the xShmLock VFS method +** +** These integer constants define the various locking operations +** allowed by the xShmLock method of [sqlite3_io_methods]. The +** following are the only legal combinations of flags to the +** xShmLock method: +** +**
    +**
  • SQLITE_SHM_LOCK | SQLITE_SHM_SHARED +**
  • SQLITE_SHM_LOCK | SQLITE_SHM_EXCLUSIVE +**
  • SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED +**
  • SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE +**
+** +** When unlocking, the same SHARED or EXCLUSIVE flag must be supplied as +** was given no the corresponding lock. +** +** The xShmLock method can transition between unlocked and SHARED or +** between unlocked and EXCLUSIVE. It cannot transition between SHARED +** and EXCLUSIVE. +*/ +#define SQLITE_SHM_UNLOCK 1 +#define SQLITE_SHM_LOCK 2 +#define SQLITE_SHM_SHARED 4 +#define SQLITE_SHM_EXCLUSIVE 8 + +/* +** CAPI3REF: Maximum xShmLock index +** +** The xShmLock method on [sqlite3_io_methods] may use values +** between 0 and this upper bound as its "offset" argument. +** The SQLite core will never attempt to acquire or release a +** lock outside of this range +*/ +#define SQLITE_SHM_NLOCK 8 + + +/* +** CAPI3REF: Initialize The SQLite Library +** +** ^The sqlite3_initialize() routine initializes the +** SQLite library. ^The sqlite3_shutdown() routine +** deallocates any resources that were allocated by sqlite3_initialize(). +** These routines are designed to aid in process initialization and +** shutdown on embedded systems. Workstation applications using +** SQLite normally do not need to invoke either of these routines. +** +** A call to sqlite3_initialize() is an "effective" call if it is +** the first time sqlite3_initialize() is invoked during the lifetime of +** the process, or if it is the first time sqlite3_initialize() is invoked +** following a call to sqlite3_shutdown(). ^(Only an effective call +** of sqlite3_initialize() does any initialization. All other calls +** are harmless no-ops.)^ +** +** A call to sqlite3_shutdown() is an "effective" call if it is the first +** call to sqlite3_shutdown() since the last sqlite3_initialize(). ^(Only +** an effective call to sqlite3_shutdown() does any deinitialization. +** All other valid calls to sqlite3_shutdown() are harmless no-ops.)^ +** +** The sqlite3_initialize() interface is threadsafe, but sqlite3_shutdown() +** is not. The sqlite3_shutdown() interface must only be called from a +** single thread. All open [database connections] must be closed and all +** other SQLite resources must be deallocated prior to invoking +** sqlite3_shutdown(). +** +** Among other things, ^sqlite3_initialize() will invoke +** sqlite3_os_init(). Similarly, ^sqlite3_shutdown() +** will invoke sqlite3_os_end(). +** +** ^The sqlite3_initialize() routine returns [SQLITE_OK] on success. +** ^If for some reason, sqlite3_initialize() is unable to initialize +** the library (perhaps it is unable to allocate a needed resource such +** as a mutex) it returns an [error code] other than [SQLITE_OK]. +** +** ^The sqlite3_initialize() routine is called internally by many other +** SQLite interfaces so that an application usually does not need to +** invoke sqlite3_initialize() directly. For example, [sqlite3_open()] +** calls sqlite3_initialize() so the SQLite library will be automatically +** initialized when [sqlite3_open()] is called if it has not be initialized +** already. ^However, if SQLite is compiled with the [SQLITE_OMIT_AUTOINIT] +** compile-time option, then the automatic calls to sqlite3_initialize() +** are omitted and the application must call sqlite3_initialize() directly +** prior to using any other SQLite interface. For maximum portability, +** it is recommended that applications always invoke sqlite3_initialize() +** directly prior to using any other SQLite interface. Future releases +** of SQLite may require this. In other words, the behavior exhibited +** when SQLite is compiled with [SQLITE_OMIT_AUTOINIT] might become the +** default behavior in some future release of SQLite. +** +** The sqlite3_os_init() routine does operating-system specific +** initialization of the SQLite library. The sqlite3_os_end() +** routine undoes the effect of sqlite3_os_init(). Typical tasks +** performed by these routines include allocation or deallocation +** of static resources, initialization of global variables, +** setting up a default [sqlite3_vfs] module, or setting up +** a default configuration using [sqlite3_config()]. +** +** The application should never invoke either sqlite3_os_init() +** or sqlite3_os_end() directly. The application should only invoke +** sqlite3_initialize() and sqlite3_shutdown(). The sqlite3_os_init() +** interface is called automatically by sqlite3_initialize() and +** sqlite3_os_end() is called by sqlite3_shutdown(). Appropriate +** implementations for sqlite3_os_init() and sqlite3_os_end() +** are built into SQLite when it is compiled for Unix, Windows, or OS/2. +** When [custom builds | built for other platforms] +** (using the [SQLITE_OS_OTHER=1] compile-time +** option) the application must supply a suitable implementation for +** sqlite3_os_init() and sqlite3_os_end(). An application-supplied +** implementation of sqlite3_os_init() or sqlite3_os_end() +** must return [SQLITE_OK] on success and some other [error code] upon +** failure. +*/ +SQLITE_API int sqlite3_initialize(void); +SQLITE_API int sqlite3_shutdown(void); +SQLITE_API int sqlite3_os_init(void); +SQLITE_API int sqlite3_os_end(void); + +/* +** CAPI3REF: Configuring The SQLite Library +** +** The sqlite3_config() interface is used to make global configuration +** changes to SQLite in order to tune SQLite to the specific needs of +** the application. The default configuration is recommended for most +** applications and so this routine is usually not necessary. It is +** provided to support rare applications with unusual needs. +** +** The sqlite3_config() interface is not threadsafe. The application +** must insure that no other SQLite interfaces are invoked by other +** threads while sqlite3_config() is running. Furthermore, sqlite3_config() +** may only be invoked prior to library initialization using +** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. +** ^If sqlite3_config() is called after [sqlite3_initialize()] and before +** [sqlite3_shutdown()] then it will return SQLITE_MISUSE. +** Note, however, that ^sqlite3_config() can be called as part of the +** implementation of an application-defined [sqlite3_os_init()]. +** +** The first argument to sqlite3_config() is an integer +** [SQLITE_CONFIG_SINGLETHREAD | configuration option] that determines +** what property of SQLite is to be configured. Subsequent arguments +** vary depending on the [SQLITE_CONFIG_SINGLETHREAD | configuration option] +** in the first argument. +** +** ^When a configuration option is set, sqlite3_config() returns [SQLITE_OK]. +** ^If the option is unknown or SQLite is unable to set the option +** then this routine returns a non-zero [error code]. +*/ +SQLITE_API int sqlite3_config(int, ...); + +/* +** CAPI3REF: Configure database connections +** +** The sqlite3_db_config() interface is used to make configuration +** changes to a [database connection]. The interface is similar to +** [sqlite3_config()] except that the changes apply to a single +** [database connection] (specified in the first argument). The +** sqlite3_db_config() interface should only be used immediately after +** the database connection is created using [sqlite3_open()], +** [sqlite3_open16()], or [sqlite3_open_v2()]. +** +** The second argument to sqlite3_db_config(D,V,...) is the +** configuration verb - an integer code that indicates what +** aspect of the [database connection] is being configured. +** The only choice for this value is [SQLITE_DBCONFIG_LOOKASIDE]. +** New verbs are likely to be added in future releases of SQLite. +** Additional arguments depend on the verb. +** +** ^Calls to sqlite3_db_config() return SQLITE_OK if and only if +** the call is considered successful. +*/ +SQLITE_API int sqlite3_db_config(sqlite3*, int op, ...); + +/* +** CAPI3REF: Memory Allocation Routines +** +** An instance of this object defines the interface between SQLite +** and low-level memory allocation routines. +** +** This object is used in only one place in the SQLite interface. +** A pointer to an instance of this object is the argument to +** [sqlite3_config()] when the configuration option is +** [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC]. +** By creating an instance of this object +** and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC]) +** during configuration, an application can specify an alternative +** memory allocation subsystem for SQLite to use for all of its +** dynamic memory needs. +** +** Note that SQLite comes with several [built-in memory allocators] +** that are perfectly adequate for the overwhelming majority of applications +** and that this object is only useful to a tiny minority of applications +** with specialized memory allocation requirements. This object is +** also used during testing of SQLite in order to specify an alternative +** memory allocator that simulates memory out-of-memory conditions in +** order to verify that SQLite recovers gracefully from such +** conditions. +** +** The xMalloc and xFree methods must work like the +** malloc() and free() functions from the standard C library. +** The xRealloc method must work like realloc() from the standard C library +** with the exception that if the second argument to xRealloc is zero, +** xRealloc must be a no-op - it must not perform any allocation or +** deallocation. ^SQLite guarantees that the second argument to +** xRealloc is always a value returned by a prior call to xRoundup. +** And so in cases where xRoundup always returns a positive number, +** xRealloc can perform exactly as the standard library realloc() and +** still be in compliance with this specification. +** +** xSize should return the allocated size of a memory allocation +** previously obtained from xMalloc or xRealloc. The allocated size +** is always at least as big as the requested size but may be larger. +** +** The xRoundup method returns what would be the allocated size of +** a memory allocation given a particular requested size. Most memory +** allocators round up memory allocations at least to the next multiple +** of 8. Some allocators round up to a larger multiple or to a power of 2. +** Every memory allocation request coming in through [sqlite3_malloc()] +** or [sqlite3_realloc()] first calls xRoundup. If xRoundup returns 0, +** that causes the corresponding memory allocation to fail. +** +** The xInit method initializes the memory allocator. (For example, +** it might allocate any require mutexes or initialize internal data +** structures. The xShutdown method is invoked (indirectly) by +** [sqlite3_shutdown()] and should deallocate any resources acquired +** by xInit. The pAppData pointer is used as the only parameter to +** xInit and xShutdown. +** +** SQLite holds the [SQLITE_MUTEX_STATIC_MASTER] mutex when it invokes +** the xInit method, so the xInit method need not be threadsafe. The +** xShutdown method is only called from [sqlite3_shutdown()] so it does +** not need to be threadsafe either. For all other methods, SQLite +** holds the [SQLITE_MUTEX_STATIC_MEM] mutex as long as the +** [SQLITE_CONFIG_MEMSTATUS] configuration option is turned on (which +** it is by default) and so the methods are automatically serialized. +** However, if [SQLITE_CONFIG_MEMSTATUS] is disabled, then the other +** methods must be threadsafe or else make their own arrangements for +** serialization. +** +** SQLite will never invoke xInit() more than once without an intervening +** call to xShutdown(). +*/ +typedef struct sqlite3_mem_methods sqlite3_mem_methods; +struct sqlite3_mem_methods { + void *(*xMalloc)(int); /* Memory allocation function */ + void (*xFree)(void*); /* Free a prior allocation */ + void *(*xRealloc)(void*,int); /* Resize an allocation */ + int (*xSize)(void*); /* Return the size of an allocation */ + int (*xRoundup)(int); /* Round up request size to allocation size */ + int (*xInit)(void*); /* Initialize the memory allocator */ + void (*xShutdown)(void*); /* Deinitialize the memory allocator */ + void *pAppData; /* Argument to xInit() and xShutdown() */ +}; + +/* +** CAPI3REF: Configuration Options +** +** These constants are the available integer configuration options that +** can be passed as the first argument to the [sqlite3_config()] interface. +** +** New configuration options may be added in future releases of SQLite. +** Existing configuration options might be discontinued. Applications +** should check the return code from [sqlite3_config()] to make sure that +** the call worked. The [sqlite3_config()] interface will return a +** non-zero [error code] if a discontinued or unsupported configuration option +** is invoked. +** +**
+**
SQLITE_CONFIG_SINGLETHREAD
+**
There are no arguments to this option. ^This option sets the +** [threading mode] to Single-thread. In other words, it disables +** all mutexing and puts SQLite into a mode where it can only be used +** by a single thread. ^If SQLite is compiled with +** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then +** it is not possible to change the [threading mode] from its default +** value of Single-thread and so [sqlite3_config()] will return +** [SQLITE_ERROR] if called with the SQLITE_CONFIG_SINGLETHREAD +** configuration option.
+** +**
SQLITE_CONFIG_MULTITHREAD
+**
There are no arguments to this option. ^This option sets the +** [threading mode] to Multi-thread. In other words, it disables +** mutexing on [database connection] and [prepared statement] objects. +** The application is responsible for serializing access to +** [database connections] and [prepared statements]. But other mutexes +** are enabled so that SQLite will be safe to use in a multi-threaded +** environment as long as no two threads attempt to use the same +** [database connection] at the same time. ^If SQLite is compiled with +** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then +** it is not possible to set the Multi-thread [threading mode] and +** [sqlite3_config()] will return [SQLITE_ERROR] if called with the +** SQLITE_CONFIG_MULTITHREAD configuration option.
+** +**
SQLITE_CONFIG_SERIALIZED
+**
There are no arguments to this option. ^This option sets the +** [threading mode] to Serialized. In other words, this option enables +** all mutexes including the recursive +** mutexes on [database connection] and [prepared statement] objects. +** In this mode (which is the default when SQLite is compiled with +** [SQLITE_THREADSAFE=1]) the SQLite library will itself serialize access +** to [database connections] and [prepared statements] so that the +** application is free to use the same [database connection] or the +** same [prepared statement] in different threads at the same time. +** ^If SQLite is compiled with +** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then +** it is not possible to set the Serialized [threading mode] and +** [sqlite3_config()] will return [SQLITE_ERROR] if called with the +** SQLITE_CONFIG_SERIALIZED configuration option.
+** +**
SQLITE_CONFIG_MALLOC
+**
^(This option takes a single argument which is a pointer to an +** instance of the [sqlite3_mem_methods] structure. The argument specifies +** alternative low-level memory allocation routines to be used in place of +** the memory allocation routines built into SQLite.)^ ^SQLite makes +** its own private copy of the content of the [sqlite3_mem_methods] structure +** before the [sqlite3_config()] call returns.
+** +**
SQLITE_CONFIG_GETMALLOC
+**
^(This option takes a single argument which is a pointer to an +** instance of the [sqlite3_mem_methods] structure. The [sqlite3_mem_methods] +** structure is filled with the currently defined memory allocation routines.)^ +** This option can be used to overload the default memory allocation +** routines with a wrapper that simulations memory allocation failure or +** tracks memory usage, for example.
+** +**
SQLITE_CONFIG_MEMSTATUS
+**
^This option takes single argument of type int, interpreted as a +** boolean, which enables or disables the collection of memory allocation +** statistics. ^(When memory allocation statistics are disabled, the +** following SQLite interfaces become non-operational: +**
    +**
  • [sqlite3_memory_used()] +**
  • [sqlite3_memory_highwater()] +**
  • [sqlite3_soft_heap_limit()] +**
  • [sqlite3_status()] +**
)^ +** ^Memory allocation statistics are enabled by default unless SQLite is +** compiled with [SQLITE_DEFAULT_MEMSTATUS]=0 in which case memory +** allocation statistics are disabled by default. +**
+** +**
SQLITE_CONFIG_SCRATCH
+**
^This option specifies a static memory buffer that SQLite can use for +** scratch memory. There are three arguments: A pointer an 8-byte +** aligned memory buffer from which the scrach allocations will be +** drawn, the size of each scratch allocation (sz), +** and the maximum number of scratch allocations (N). The sz +** argument must be a multiple of 16. The sz parameter should be a few bytes +** larger than the actual scratch space required due to internal overhead. +** The first argument must be a pointer to an 8-byte aligned buffer +** of at least sz*N bytes of memory. +** ^SQLite will use no more than one scratch buffer per thread. So +** N should be set to the expected maximum number of threads. ^SQLite will +** never require a scratch buffer that is more than 6 times the database +** page size. ^If SQLite needs needs additional scratch memory beyond +** what is provided by this configuration option, then +** [sqlite3_malloc()] will be used to obtain the memory needed.
+** +**
SQLITE_CONFIG_PAGECACHE
+**
^This option specifies a static memory buffer that SQLite can use for +** the database page cache with the default page cache implemenation. +** This configuration should not be used if an application-define page +** cache implementation is loaded using the SQLITE_CONFIG_PCACHE option. +** There are three arguments to this option: A pointer to 8-byte aligned +** memory, the size of each page buffer (sz), and the number of pages (N). +** The sz argument should be the size of the largest database page +** (a power of two between 512 and 32768) plus a little extra for each +** page header. ^The page header size is 20 to 40 bytes depending on +** the host architecture. ^It is harmless, apart from the wasted memory, +** to make sz a little too large. The first +** argument should point to an allocation of at least sz*N bytes of memory. +** ^SQLite will use the memory provided by the first argument to satisfy its +** memory needs for the first N pages that it adds to cache. ^If additional +** page cache memory is needed beyond what is provided by this option, then +** SQLite goes to [sqlite3_malloc()] for the additional storage space. +** ^The implementation might use one or more of the N buffers to hold +** memory accounting information. The pointer in the first argument must +** be aligned to an 8-byte boundary or subsequent behavior of SQLite +** will be undefined.
+** +**
SQLITE_CONFIG_HEAP
+**
^This option specifies a static memory buffer that SQLite will use +** for all of its dynamic memory allocation needs beyond those provided +** for by [SQLITE_CONFIG_SCRATCH] and [SQLITE_CONFIG_PAGECACHE]. +** There are three arguments: An 8-byte aligned pointer to the memory, +** the number of bytes in the memory buffer, and the minimum allocation size. +** ^If the first pointer (the memory pointer) is NULL, then SQLite reverts +** to using its default memory allocator (the system malloc() implementation), +** undoing any prior invocation of [SQLITE_CONFIG_MALLOC]. ^If the +** memory pointer is not NULL and either [SQLITE_ENABLE_MEMSYS3] or +** [SQLITE_ENABLE_MEMSYS5] are defined, then the alternative memory +** allocator is engaged to handle all of SQLites memory allocation needs. +** The first pointer (the memory pointer) must be aligned to an 8-byte +** boundary or subsequent behavior of SQLite will be undefined.
+** +**
SQLITE_CONFIG_MUTEX
+**
^(This option takes a single argument which is a pointer to an +** instance of the [sqlite3_mutex_methods] structure. The argument specifies +** alternative low-level mutex routines to be used in place +** the mutex routines built into SQLite.)^ ^SQLite makes a copy of the +** content of the [sqlite3_mutex_methods] structure before the call to +** [sqlite3_config()] returns. ^If SQLite is compiled with +** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then +** the entire mutexing subsystem is omitted from the build and hence calls to +** [sqlite3_config()] with the SQLITE_CONFIG_MUTEX configuration option will +** return [SQLITE_ERROR].
+** +**
SQLITE_CONFIG_GETMUTEX
+**
^(This option takes a single argument which is a pointer to an +** instance of the [sqlite3_mutex_methods] structure. The +** [sqlite3_mutex_methods] +** structure is filled with the currently defined mutex routines.)^ +** This option can be used to overload the default mutex allocation +** routines with a wrapper used to track mutex usage for performance +** profiling or testing, for example. ^If SQLite is compiled with +** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then +** the entire mutexing subsystem is omitted from the build and hence calls to +** [sqlite3_config()] with the SQLITE_CONFIG_GETMUTEX configuration option will +** return [SQLITE_ERROR].
+** +**
SQLITE_CONFIG_LOOKASIDE
+**
^(This option takes two arguments that determine the default +** memory allocation for the lookaside memory allocator on each +** [database connection]. The first argument is the +** size of each lookaside buffer slot and the second is the number of +** slots allocated to each database connection.)^ ^(This option sets the +** default lookaside size. The [SQLITE_DBCONFIG_LOOKASIDE] +** verb to [sqlite3_db_config()] can be used to change the lookaside +** configuration on individual connections.)^
+** +**
SQLITE_CONFIG_PCACHE
+**
^(This option takes a single argument which is a pointer to +** an [sqlite3_pcache_methods] object. This object specifies the interface +** to a custom page cache implementation.)^ ^SQLite makes a copy of the +** object and uses it for page cache memory allocations.
+** +**
SQLITE_CONFIG_GETPCACHE
+**
^(This option takes a single argument which is a pointer to an +** [sqlite3_pcache_methods] object. SQLite copies of the current +** page cache implementation into that object.)^
+** +**
SQLITE_CONFIG_LOG
+**
^The SQLITE_CONFIG_LOG option takes two arguments: a pointer to a +** function with a call signature of void(*)(void*,int,const char*), +** and a pointer to void. ^If the function pointer is not NULL, it is +** invoked by [sqlite3_log()] to process each logging event. ^If the +** function pointer is NULL, the [sqlite3_log()] interface becomes a no-op. +** ^The void pointer that is the second argument to SQLITE_CONFIG_LOG is +** passed through as the first parameter to the application-defined logger +** function whenever that function is invoked. ^The second parameter to +** the logger function is a copy of the first parameter to the corresponding +** [sqlite3_log()] call and is intended to be a [result code] or an +** [extended result code]. ^The third parameter passed to the logger is +** log message after formatting via [sqlite3_snprintf()]. +** The SQLite logging interface is not reentrant; the logger function +** supplied by the application must not invoke any SQLite interface. +** In a multi-threaded application, the application-defined logger +** function must be threadsafe.
+** +**
+*/ +#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ +#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ +#define SQLITE_CONFIG_SERIALIZED 3 /* nil */ +#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ +#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ +#define SQLITE_CONFIG_SCRATCH 6 /* void*, int sz, int N */ +#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ +#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ +#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ +#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ +#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ +/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ +#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ +#define SQLITE_CONFIG_PCACHE 14 /* sqlite3_pcache_methods* */ +#define SQLITE_CONFIG_GETPCACHE 15 /* sqlite3_pcache_methods* */ +#define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ + +/* +** CAPI3REF: Database Connection Configuration Options +** +** These constants are the available integer configuration options that +** can be passed as the second argument to the [sqlite3_db_config()] interface. +** +** New configuration options may be added in future releases of SQLite. +** Existing configuration options might be discontinued. Applications +** should check the return code from [sqlite3_db_config()] to make sure that +** the call worked. ^The [sqlite3_db_config()] interface will return a +** non-zero [error code] if a discontinued or unsupported configuration option +** is invoked. +** +**
+**
SQLITE_DBCONFIG_LOOKASIDE
+**
^This option takes three additional arguments that determine the +** [lookaside memory allocator] configuration for the [database connection]. +** ^The first argument (the third parameter to [sqlite3_db_config()] is a +** pointer to an memory buffer to use for lookaside memory. +** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb +** may be NULL in which case SQLite will allocate the +** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the +** size of each lookaside buffer slot. ^The third argument is the number of +** slots. The size of the buffer in the first argument must be greater than +** or equal to the product of the second and third arguments. The buffer +** must be aligned to an 8-byte boundary. ^If the second argument to +** SQLITE_DBCONFIG_LOOKASIDE is not a multiple of 8, it is internally +** rounded down to the next smaller +** multiple of 8. See also: [SQLITE_CONFIG_LOOKASIDE]
+** +**
+*/ +#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ + + +/* +** CAPI3REF: Enable Or Disable Extended Result Codes +** +** ^The sqlite3_extended_result_codes() routine enables or disables the +** [extended result codes] feature of SQLite. ^The extended result +** codes are disabled by default for historical compatibility. +*/ +SQLITE_API int sqlite3_extended_result_codes(sqlite3*, int onoff); + +/* +** CAPI3REF: Last Insert Rowid +** +** ^Each entry in an SQLite table has a unique 64-bit signed +** integer key called the [ROWID | "rowid"]. ^The rowid is always available +** as an undeclared column named ROWID, OID, or _ROWID_ as long as those +** names are not also used by explicitly declared columns. ^If +** the table has a column of type [INTEGER PRIMARY KEY] then that column +** is another alias for the rowid. +** +** ^This routine returns the [rowid] of the most recent +** successful [INSERT] into the database from the [database connection] +** in the first argument. ^If no successful [INSERT]s +** have ever occurred on that database connection, zero is returned. +** +** ^(If an [INSERT] occurs within a trigger, then the [rowid] of the inserted +** row is returned by this routine as long as the trigger is running. +** But once the trigger terminates, the value returned by this routine +** reverts to the last value inserted before the trigger fired.)^ +** +** ^An [INSERT] that fails due to a constraint violation is not a +** successful [INSERT] and does not change the value returned by this +** routine. ^Thus INSERT OR FAIL, INSERT OR IGNORE, INSERT OR ROLLBACK, +** and INSERT OR ABORT make no changes to the return value of this +** routine when their insertion fails. ^(When INSERT OR REPLACE +** encounters a constraint violation, it does not fail. The +** INSERT continues to completion after deleting rows that caused +** the constraint problem so INSERT OR REPLACE will always change +** the return value of this interface.)^ +** +** ^For the purposes of this routine, an [INSERT] is considered to +** be successful even if it is subsequently rolled back. +** +** This function is accessible to SQL statements via the +** [last_insert_rowid() SQL function]. +** +** If a separate thread performs a new [INSERT] on the same +** database connection while the [sqlite3_last_insert_rowid()] +** function is running and thus changes the last insert [rowid], +** then the value returned by [sqlite3_last_insert_rowid()] is +** unpredictable and might not equal either the old or the new +** last insert [rowid]. +*/ +SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*); + +/* +** CAPI3REF: Count The Number Of Rows Modified +** +** ^This function returns the number of database rows that were changed +** or inserted or deleted by the most recently completed SQL statement +** on the [database connection] specified by the first parameter. +** ^(Only changes that are directly specified by the [INSERT], [UPDATE], +** or [DELETE] statement are counted. Auxiliary changes caused by +** triggers or [foreign key actions] are not counted.)^ Use the +** [sqlite3_total_changes()] function to find the total number of changes +** including changes caused by triggers and foreign key actions. +** +** ^Changes to a view that are simulated by an [INSTEAD OF trigger] +** are not counted. Only real table changes are counted. +** +** ^(A "row change" is a change to a single row of a single table +** caused by an INSERT, DELETE, or UPDATE statement. Rows that +** are changed as side effects of [REPLACE] constraint resolution, +** rollback, ABORT processing, [DROP TABLE], or by any other +** mechanisms do not count as direct row changes.)^ +** +** A "trigger context" is a scope of execution that begins and +** ends with the script of a [CREATE TRIGGER | trigger]. +** Most SQL statements are +** evaluated outside of any trigger. This is the "top level" +** trigger context. If a trigger fires from the top level, a +** new trigger context is entered for the duration of that one +** trigger. Subtriggers create subcontexts for their duration. +** +** ^Calling [sqlite3_exec()] or [sqlite3_step()] recursively does +** not create a new trigger context. +** +** ^This function returns the number of direct row changes in the +** most recent INSERT, UPDATE, or DELETE statement within the same +** trigger context. +** +** ^Thus, when called from the top level, this function returns the +** number of changes in the most recent INSERT, UPDATE, or DELETE +** that also occurred at the top level. ^(Within the body of a trigger, +** the sqlite3_changes() interface can be called to find the number of +** changes in the most recently completed INSERT, UPDATE, or DELETE +** statement within the body of the same trigger. +** However, the number returned does not include changes +** caused by subtriggers since those have their own context.)^ +** +** See also the [sqlite3_total_changes()] interface, the +** [count_changes pragma], and the [changes() SQL function]. +** +** If a separate thread makes changes on the same database connection +** while [sqlite3_changes()] is running then the value returned +** is unpredictable and not meaningful. +*/ +SQLITE_API int sqlite3_changes(sqlite3*); + +/* +** CAPI3REF: Total Number Of Rows Modified +** +** ^This function returns the number of row changes caused by [INSERT], +** [UPDATE] or [DELETE] statements since the [database connection] was opened. +** ^(The count returned by sqlite3_total_changes() includes all changes +** from all [CREATE TRIGGER | trigger] contexts and changes made by +** [foreign key actions]. However, +** the count does not include changes used to implement [REPLACE] constraints, +** do rollbacks or ABORT processing, or [DROP TABLE] processing. The +** count does not include rows of views that fire an [INSTEAD OF trigger], +** though if the INSTEAD OF trigger makes changes of its own, those changes +** are counted.)^ +** ^The sqlite3_total_changes() function counts the changes as soon as +** the statement that makes them is completed (when the statement handle +** is passed to [sqlite3_reset()] or [sqlite3_finalize()]). +** +** See also the [sqlite3_changes()] interface, the +** [count_changes pragma], and the [total_changes() SQL function]. +** +** If a separate thread makes changes on the same database connection +** while [sqlite3_total_changes()] is running then the value +** returned is unpredictable and not meaningful. +*/ +SQLITE_API int sqlite3_total_changes(sqlite3*); + +/* +** CAPI3REF: Interrupt A Long-Running Query +** +** ^This function causes any pending database operation to abort and +** return at its earliest opportunity. This routine is typically +** called in response to a user action such as pressing "Cancel" +** or Ctrl-C where the user wants a long query operation to halt +** immediately. +** +** ^It is safe to call this routine from a thread different from the +** thread that is currently running the database operation. But it +** is not safe to call this routine with a [database connection] that +** is closed or might close before sqlite3_interrupt() returns. +** +** ^If an SQL operation is very nearly finished at the time when +** sqlite3_interrupt() is called, then it might not have an opportunity +** to be interrupted and might continue to completion. +** +** ^An SQL operation that is interrupted will return [SQLITE_INTERRUPT]. +** ^If the interrupted SQL operation is an INSERT, UPDATE, or DELETE +** that is inside an explicit transaction, then the entire transaction +** will be rolled back automatically. +** +** ^The sqlite3_interrupt(D) call is in effect until all currently running +** SQL statements on [database connection] D complete. ^Any new SQL statements +** that are started after the sqlite3_interrupt() call and before the +** running statements reaches zero are interrupted as if they had been +** running prior to the sqlite3_interrupt() call. ^New SQL statements +** that are started after the running statement count reaches zero are +** not effected by the sqlite3_interrupt(). +** ^A call to sqlite3_interrupt(D) that occurs when there are no running +** SQL statements is a no-op and has no effect on SQL statements +** that are started after the sqlite3_interrupt() call returns. +** +** If the database connection closes while [sqlite3_interrupt()] +** is running then bad things will likely happen. +*/ +SQLITE_API void sqlite3_interrupt(sqlite3*); + +/* +** CAPI3REF: Determine If An SQL Statement Is Complete +** +** These routines are useful during command-line input to determine if the +** currently entered text seems to form a complete SQL statement or +** if additional input is needed before sending the text into +** SQLite for parsing. ^These routines return 1 if the input string +** appears to be a complete SQL statement. ^A statement is judged to be +** complete if it ends with a semicolon token and is not a prefix of a +** well-formed CREATE TRIGGER statement. ^Semicolons that are embedded within +** string literals or quoted identifier names or comments are not +** independent tokens (they are part of the token in which they are +** embedded) and thus do not count as a statement terminator. ^Whitespace +** and comments that follow the final semicolon are ignored. +** +** ^These routines return 0 if the statement is incomplete. ^If a +** memory allocation fails, then SQLITE_NOMEM is returned. +** +** ^These routines do not parse the SQL statements thus +** will not detect syntactically incorrect SQL. +** +** ^(If SQLite has not been initialized using [sqlite3_initialize()] prior +** to invoking sqlite3_complete16() then sqlite3_initialize() is invoked +** automatically by sqlite3_complete16(). If that initialization fails, +** then the return value from sqlite3_complete16() will be non-zero +** regardless of whether or not the input SQL is complete.)^ +** +** The input to [sqlite3_complete()] must be a zero-terminated +** UTF-8 string. +** +** The input to [sqlite3_complete16()] must be a zero-terminated +** UTF-16 string in native byte order. +*/ +SQLITE_API int sqlite3_complete(const char *sql); +SQLITE_API int sqlite3_complete16(const void *sql); + +/* +** CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors +** +** ^This routine sets a callback function that might be invoked whenever +** an attempt is made to open a database table that another thread +** or process has locked. +** +** ^If the busy callback is NULL, then [SQLITE_BUSY] or [SQLITE_IOERR_BLOCKED] +** is returned immediately upon encountering the lock. ^If the busy callback +** is not NULL, then the callback might be invoked with two arguments. +** +** ^The first argument to the busy handler is a copy of the void* pointer which +** is the third argument to sqlite3_busy_handler(). ^The second argument to +** the busy handler callback is the number of times that the busy handler has +** been invoked for this locking event. ^If the +** busy callback returns 0, then no additional attempts are made to +** access the database and [SQLITE_BUSY] or [SQLITE_IOERR_BLOCKED] is returned. +** ^If the callback returns non-zero, then another attempt +** is made to open the database for reading and the cycle repeats. +** +** The presence of a busy handler does not guarantee that it will be invoked +** when there is lock contention. ^If SQLite determines that invoking the busy +** handler could result in a deadlock, it will go ahead and return [SQLITE_BUSY] +** or [SQLITE_IOERR_BLOCKED] instead of invoking the busy handler. +** Consider a scenario where one process is holding a read lock that +** it is trying to promote to a reserved lock and +** a second process is holding a reserved lock that it is trying +** to promote to an exclusive lock. The first process cannot proceed +** because it is blocked by the second and the second process cannot +** proceed because it is blocked by the first. If both processes +** invoke the busy handlers, neither will make any progress. Therefore, +** SQLite returns [SQLITE_BUSY] for the first process, hoping that this +** will induce the first process to release its read lock and allow +** the second process to proceed. +** +** ^The default busy callback is NULL. +** +** ^The [SQLITE_BUSY] error is converted to [SQLITE_IOERR_BLOCKED] +** when SQLite is in the middle of a large transaction where all the +** changes will not fit into the in-memory cache. SQLite will +** already hold a RESERVED lock on the database file, but it needs +** to promote this lock to EXCLUSIVE so that it can spill cache +** pages into the database file without harm to concurrent +** readers. ^If it is unable to promote the lock, then the in-memory +** cache will be left in an inconsistent state and so the error +** code is promoted from the relatively benign [SQLITE_BUSY] to +** the more severe [SQLITE_IOERR_BLOCKED]. ^This error code promotion +** forces an automatic rollback of the changes. See the +** +** CorruptionFollowingBusyError wiki page for a discussion of why +** this is important. +** +** ^(There can only be a single busy handler defined for each +** [database connection]. Setting a new busy handler clears any +** previously set handler.)^ ^Note that calling [sqlite3_busy_timeout()] +** will also set or clear the busy handler. +** +** The busy callback should not take any actions which modify the +** database connection that invoked the busy handler. Any such actions +** result in undefined behavior. +** +** A busy handler must not close the database connection +** or [prepared statement] that invoked the busy handler. +*/ +SQLITE_API int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); + +/* +** CAPI3REF: Set A Busy Timeout +** +** ^This routine sets a [sqlite3_busy_handler | busy handler] that sleeps +** for a specified amount of time when a table is locked. ^The handler +** will sleep multiple times until at least "ms" milliseconds of sleeping +** have accumulated. ^After at least "ms" milliseconds of sleeping, +** the handler returns 0 which causes [sqlite3_step()] to return +** [SQLITE_BUSY] or [SQLITE_IOERR_BLOCKED]. +** +** ^Calling this routine with an argument less than or equal to zero +** turns off all busy handlers. +** +** ^(There can only be a single busy handler for a particular +** [database connection] any any given moment. If another busy handler +** was defined (using [sqlite3_busy_handler()]) prior to calling +** this routine, that other busy handler is cleared.)^ +*/ +SQLITE_API int sqlite3_busy_timeout(sqlite3*, int ms); + +/* +** CAPI3REF: Convenience Routines For Running Queries +** +** Definition: A result table is memory data structure created by the +** [sqlite3_get_table()] interface. A result table records the +** complete query results from one or more queries. +** +** The table conceptually has a number of rows and columns. But +** these numbers are not part of the result table itself. These +** numbers are obtained separately. Let N be the number of rows +** and M be the number of columns. +** +** A result table is an array of pointers to zero-terminated UTF-8 strings. +** There are (N+1)*M elements in the array. The first M pointers point +** to zero-terminated strings that contain the names of the columns. +** The remaining entries all point to query results. NULL values result +** in NULL pointers. All other values are in their UTF-8 zero-terminated +** string representation as returned by [sqlite3_column_text()]. +** +** A result table might consist of one or more memory allocations. +** It is not safe to pass a result table directly to [sqlite3_free()]. +** A result table should be deallocated using [sqlite3_free_table()]. +** +** As an example of the result table format, suppose a query result +** is as follows: +** +**
+**        Name        | Age
+**        -----------------------
+**        Alice       | 43
+**        Bob         | 28
+**        Cindy       | 21
+** 
+** +** There are two column (M==2) and three rows (N==3). Thus the +** result table has 8 entries. Suppose the result table is stored +** in an array names azResult. Then azResult holds this content: +** +**
+**        azResult[0] = "Name";
+**        azResult[1] = "Age";
+**        azResult[2] = "Alice";
+**        azResult[3] = "43";
+**        azResult[4] = "Bob";
+**        azResult[5] = "28";
+**        azResult[6] = "Cindy";
+**        azResult[7] = "21";
+** 
+** +** ^The sqlite3_get_table() function evaluates one or more +** semicolon-separated SQL statements in the zero-terminated UTF-8 +** string of its 2nd parameter and returns a result table to the +** pointer given in its 3rd parameter. +** +** After the application has finished with the result from sqlite3_get_table(), +** it should pass the result table pointer to sqlite3_free_table() in order to +** release the memory that was malloced. Because of the way the +** [sqlite3_malloc()] happens within sqlite3_get_table(), the calling +** function must not try to call [sqlite3_free()] directly. Only +** [sqlite3_free_table()] is able to release the memory properly and safely. +** +** ^(The sqlite3_get_table() interface is implemented as a wrapper around +** [sqlite3_exec()]. The sqlite3_get_table() routine does not have access +** to any internal data structures of SQLite. It uses only the public +** interface defined here. As a consequence, errors that occur in the +** wrapper layer outside of the internal [sqlite3_exec()] call are not +** reflected in subsequent calls to [sqlite3_errcode()] or +** [sqlite3_errmsg()].)^ +*/ +SQLITE_API int sqlite3_get_table( + sqlite3 *db, /* An open database */ + const char *zSql, /* SQL to be evaluated */ + char ***pazResult, /* Results of the query */ + int *pnRow, /* Number of result rows written here */ + int *pnColumn, /* Number of result columns written here */ + char **pzErrmsg /* Error msg written here */ +); +SQLITE_API void sqlite3_free_table(char **result); + +/* +** CAPI3REF: Formatted String Printing Functions +** +** These routines are work-alikes of the "printf()" family of functions +** from the standard C library. +** +** ^The sqlite3_mprintf() and sqlite3_vmprintf() routines write their +** results into memory obtained from [sqlite3_malloc()]. +** The strings returned by these two routines should be +** released by [sqlite3_free()]. ^Both routines return a +** NULL pointer if [sqlite3_malloc()] is unable to allocate enough +** memory to hold the resulting string. +** +** ^(In sqlite3_snprintf() routine is similar to "snprintf()" from +** the standard C library. The result is written into the +** buffer supplied as the second parameter whose size is given by +** the first parameter. Note that the order of the +** first two parameters is reversed from snprintf().)^ This is an +** historical accident that cannot be fixed without breaking +** backwards compatibility. ^(Note also that sqlite3_snprintf() +** returns a pointer to its buffer instead of the number of +** characters actually written into the buffer.)^ We admit that +** the number of characters written would be a more useful return +** value but we cannot change the implementation of sqlite3_snprintf() +** now without breaking compatibility. +** +** ^As long as the buffer size is greater than zero, sqlite3_snprintf() +** guarantees that the buffer is always zero-terminated. ^The first +** parameter "n" is the total size of the buffer, including space for +** the zero terminator. So the longest string that can be completely +** written will be n-1 characters. +** +** These routines all implement some additional formatting +** options that are useful for constructing SQL statements. +** All of the usual printf() formatting options apply. In addition, there +** is are "%q", "%Q", and "%z" options. +** +** ^(The %q option works like %s in that it substitutes a null-terminated +** string from the argument list. But %q also doubles every '\'' character. +** %q is designed for use inside a string literal.)^ By doubling each '\'' +** character it escapes that character and allows it to be inserted into +** the string. +** +** For example, assume the string variable zText contains text as follows: +** +**
+**  char *zText = "It's a happy day!";
+** 
+** +** One can use this text in an SQL statement as follows: +** +**
+**  char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES('%q')", zText);
+**  sqlite3_exec(db, zSQL, 0, 0, 0);
+**  sqlite3_free(zSQL);
+** 
+** +** Because the %q format string is used, the '\'' character in zText +** is escaped and the SQL generated is as follows: +** +**
+**  INSERT INTO table1 VALUES('It''s a happy day!')
+** 
+** +** This is correct. Had we used %s instead of %q, the generated SQL +** would have looked like this: +** +**
+**  INSERT INTO table1 VALUES('It's a happy day!');
+** 
+** +** This second example is an SQL syntax error. As a general rule you should +** always use %q instead of %s when inserting text into a string literal. +** +** ^(The %Q option works like %q except it also adds single quotes around +** the outside of the total string. Additionally, if the parameter in the +** argument list is a NULL pointer, %Q substitutes the text "NULL" (without +** single quotes).)^ So, for example, one could say: +** +**
+**  char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES(%Q)", zText);
+**  sqlite3_exec(db, zSQL, 0, 0, 0);
+**  sqlite3_free(zSQL);
+** 
+** +** The code above will render a correct SQL statement in the zSQL +** variable even if the zText variable is a NULL pointer. +** +** ^(The "%z" formatting option works like "%s" but with the +** addition that after the string has been read and copied into +** the result, [sqlite3_free()] is called on the input string.)^ +*/ +SQLITE_API char *sqlite3_mprintf(const char*,...); +SQLITE_API char *sqlite3_vmprintf(const char*, va_list); +SQLITE_API char *sqlite3_snprintf(int,char*,const char*, ...); + +/* +** CAPI3REF: Memory Allocation Subsystem +** +** The SQLite core uses these three routines for all of its own +** internal memory allocation needs. "Core" in the previous sentence +** does not include operating-system specific VFS implementation. The +** Windows VFS uses native malloc() and free() for some operations. +** +** ^The sqlite3_malloc() routine returns a pointer to a block +** of memory at least N bytes in length, where N is the parameter. +** ^If sqlite3_malloc() is unable to obtain sufficient free +** memory, it returns a NULL pointer. ^If the parameter N to +** sqlite3_malloc() is zero or negative then sqlite3_malloc() returns +** a NULL pointer. +** +** ^Calling sqlite3_free() with a pointer previously returned +** by sqlite3_malloc() or sqlite3_realloc() releases that memory so +** that it might be reused. ^The sqlite3_free() routine is +** a no-op if is called with a NULL pointer. Passing a NULL pointer +** to sqlite3_free() is harmless. After being freed, memory +** should neither be read nor written. Even reading previously freed +** memory might result in a segmentation fault or other severe error. +** Memory corruption, a segmentation fault, or other severe error +** might result if sqlite3_free() is called with a non-NULL pointer that +** was not obtained from sqlite3_malloc() or sqlite3_realloc(). +** +** ^(The sqlite3_realloc() interface attempts to resize a +** prior memory allocation to be at least N bytes, where N is the +** second parameter. The memory allocation to be resized is the first +** parameter.)^ ^ If the first parameter to sqlite3_realloc() +** is a NULL pointer then its behavior is identical to calling +** sqlite3_malloc(N) where N is the second parameter to sqlite3_realloc(). +** ^If the second parameter to sqlite3_realloc() is zero or +** negative then the behavior is exactly the same as calling +** sqlite3_free(P) where P is the first parameter to sqlite3_realloc(). +** ^sqlite3_realloc() returns a pointer to a memory allocation +** of at least N bytes in size or NULL if sufficient memory is unavailable. +** ^If M is the size of the prior allocation, then min(N,M) bytes +** of the prior allocation are copied into the beginning of buffer returned +** by sqlite3_realloc() and the prior allocation is freed. +** ^If sqlite3_realloc() returns NULL, then the prior allocation +** is not freed. +** +** ^The memory returned by sqlite3_malloc() and sqlite3_realloc() +** is always aligned to at least an 8 byte boundary. +** +** In SQLite version 3.5.0 and 3.5.1, it was possible to define +** the SQLITE_OMIT_MEMORY_ALLOCATION which would cause the built-in +** implementation of these routines to be omitted. That capability +** is no longer provided. Only built-in memory allocators can be used. +** +** The Windows OS interface layer calls +** the system malloc() and free() directly when converting +** filenames between the UTF-8 encoding used by SQLite +** and whatever filename encoding is used by the particular Windows +** installation. Memory allocation errors are detected, but +** they are reported back as [SQLITE_CANTOPEN] or +** [SQLITE_IOERR] rather than [SQLITE_NOMEM]. +** +** The pointer arguments to [sqlite3_free()] and [sqlite3_realloc()] +** must be either NULL or else pointers obtained from a prior +** invocation of [sqlite3_malloc()] or [sqlite3_realloc()] that have +** not yet been released. +** +** The application must not read or write any part of +** a block of memory after it has been released using +** [sqlite3_free()] or [sqlite3_realloc()]. +*/ +SQLITE_API void *sqlite3_malloc(int); +SQLITE_API void *sqlite3_realloc(void*, int); +SQLITE_API void sqlite3_free(void*); + +/* +** CAPI3REF: Memory Allocator Statistics +** +** SQLite provides these two interfaces for reporting on the status +** of the [sqlite3_malloc()], [sqlite3_free()], and [sqlite3_realloc()] +** routines, which form the built-in memory allocation subsystem. +** +** ^The [sqlite3_memory_used()] routine returns the number of bytes +** of memory currently outstanding (malloced but not freed). +** ^The [sqlite3_memory_highwater()] routine returns the maximum +** value of [sqlite3_memory_used()] since the high-water mark +** was last reset. ^The values returned by [sqlite3_memory_used()] and +** [sqlite3_memory_highwater()] include any overhead +** added by SQLite in its implementation of [sqlite3_malloc()], +** but not overhead added by the any underlying system library +** routines that [sqlite3_malloc()] may call. +** +** ^The memory high-water mark is reset to the current value of +** [sqlite3_memory_used()] if and only if the parameter to +** [sqlite3_memory_highwater()] is true. ^The value returned +** by [sqlite3_memory_highwater(1)] is the high-water mark +** prior to the reset. +*/ +SQLITE_API sqlite3_int64 sqlite3_memory_used(void); +SQLITE_API sqlite3_int64 sqlite3_memory_highwater(int resetFlag); + +/* +** CAPI3REF: Pseudo-Random Number Generator +** +** SQLite contains a high-quality pseudo-random number generator (PRNG) used to +** select random [ROWID | ROWIDs] when inserting new records into a table that +** already uses the largest possible [ROWID]. The PRNG is also used for +** the build-in random() and randomblob() SQL functions. This interface allows +** applications to access the same PRNG for other purposes. +** +** ^A call to this routine stores N bytes of randomness into buffer P. +** +** ^The first time this routine is invoked (either internally or by +** the application) the PRNG is seeded using randomness obtained +** from the xRandomness method of the default [sqlite3_vfs] object. +** ^On all subsequent invocations, the pseudo-randomness is generated +** internally and without recourse to the [sqlite3_vfs] xRandomness +** method. +*/ +SQLITE_API void sqlite3_randomness(int N, void *P); + +/* +** CAPI3REF: Compile-Time Authorization Callbacks +** +** ^This routine registers a authorizer callback with a particular +** [database connection], supplied in the first argument. +** ^The authorizer callback is invoked as SQL statements are being compiled +** by [sqlite3_prepare()] or its variants [sqlite3_prepare_v2()], +** [sqlite3_prepare16()] and [sqlite3_prepare16_v2()]. ^At various +** points during the compilation process, as logic is being created +** to perform various actions, the authorizer callback is invoked to +** see if those actions are allowed. ^The authorizer callback should +** return [SQLITE_OK] to allow the action, [SQLITE_IGNORE] to disallow the +** specific action but allow the SQL statement to continue to be +** compiled, or [SQLITE_DENY] to cause the entire SQL statement to be +** rejected with an error. ^If the authorizer callback returns +** any value other than [SQLITE_IGNORE], [SQLITE_OK], or [SQLITE_DENY] +** then the [sqlite3_prepare_v2()] or equivalent call that triggered +** the authorizer will fail with an error message. +** +** When the callback returns [SQLITE_OK], that means the operation +** requested is ok. ^When the callback returns [SQLITE_DENY], the +** [sqlite3_prepare_v2()] or equivalent call that triggered the +** authorizer will fail with an error message explaining that +** access is denied. +** +** ^The first parameter to the authorizer callback is a copy of the third +** parameter to the sqlite3_set_authorizer() interface. ^The second parameter +** to the callback is an integer [SQLITE_COPY | action code] that specifies +** the particular action to be authorized. ^The third through sixth parameters +** to the callback are zero-terminated strings that contain additional +** details about the action to be authorized. +** +** ^If the action code is [SQLITE_READ] +** and the callback returns [SQLITE_IGNORE] then the +** [prepared statement] statement is constructed to substitute +** a NULL value in place of the table column that would have +** been read if [SQLITE_OK] had been returned. The [SQLITE_IGNORE] +** return can be used to deny an untrusted user access to individual +** columns of a table. +** ^If the action code is [SQLITE_DELETE] and the callback returns +** [SQLITE_IGNORE] then the [DELETE] operation proceeds but the +** [truncate optimization] is disabled and all rows are deleted individually. +** +** An authorizer is used when [sqlite3_prepare | preparing] +** SQL statements from an untrusted source, to ensure that the SQL statements +** do not try to access data they are not allowed to see, or that they do not +** try to execute malicious statements that damage the database. For +** example, an application may allow a user to enter arbitrary +** SQL queries for evaluation by a database. But the application does +** not want the user to be able to make arbitrary changes to the +** database. An authorizer could then be put in place while the +** user-entered SQL is being [sqlite3_prepare | prepared] that +** disallows everything except [SELECT] statements. +** +** Applications that need to process SQL from untrusted sources +** might also consider lowering resource limits using [sqlite3_limit()] +** and limiting database size using the [max_page_count] [PRAGMA] +** in addition to using an authorizer. +** +** ^(Only a single authorizer can be in place on a database connection +** at a time. Each call to sqlite3_set_authorizer overrides the +** previous call.)^ ^Disable the authorizer by installing a NULL callback. +** The authorizer is disabled by default. +** +** The authorizer callback must not do anything that will modify +** the database connection that invoked the authorizer callback. +** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their +** database connections for the meaning of "modify" in this paragraph. +** +** ^When [sqlite3_prepare_v2()] is used to prepare a statement, the +** statement might be re-prepared during [sqlite3_step()] due to a +** schema change. Hence, the application should ensure that the +** correct authorizer callback remains in place during the [sqlite3_step()]. +** +** ^Note that the authorizer callback is invoked only during +** [sqlite3_prepare()] or its variants. Authorization is not +** performed during statement evaluation in [sqlite3_step()], unless +** as stated in the previous paragraph, sqlite3_step() invokes +** sqlite3_prepare_v2() to reprepare a statement after a schema change. +*/ +SQLITE_API int sqlite3_set_authorizer( + sqlite3*, + int (*xAuth)(void*,int,const char*,const char*,const char*,const char*), + void *pUserData +); + +/* +** CAPI3REF: Authorizer Return Codes +** +** The [sqlite3_set_authorizer | authorizer callback function] must +** return either [SQLITE_OK] or one of these two constants in order +** to signal SQLite whether or not the action is permitted. See the +** [sqlite3_set_authorizer | authorizer documentation] for additional +** information. +*/ +#define SQLITE_DENY 1 /* Abort the SQL statement with an error */ +#define SQLITE_IGNORE 2 /* Don't allow access, but don't generate an error */ + +/* +** CAPI3REF: Authorizer Action Codes +** +** The [sqlite3_set_authorizer()] interface registers a callback function +** that is invoked to authorize certain SQL statement actions. The +** second parameter to the callback is an integer code that specifies +** what action is being authorized. These are the integer action codes that +** the authorizer callback may be passed. +** +** These action code values signify what kind of operation is to be +** authorized. The 3rd and 4th parameters to the authorization +** callback function will be parameters or NULL depending on which of these +** codes is used as the second parameter. ^(The 5th parameter to the +** authorizer callback is the name of the database ("main", "temp", +** etc.) if applicable.)^ ^The 6th parameter to the authorizer callback +** is the name of the inner-most trigger or view that is responsible for +** the access attempt or NULL if this access attempt is directly from +** top-level SQL code. +*/ +/******************************************* 3rd ************ 4th ***********/ +#define SQLITE_CREATE_INDEX 1 /* Index Name Table Name */ +#define SQLITE_CREATE_TABLE 2 /* Table Name NULL */ +#define SQLITE_CREATE_TEMP_INDEX 3 /* Index Name Table Name */ +#define SQLITE_CREATE_TEMP_TABLE 4 /* Table Name NULL */ +#define SQLITE_CREATE_TEMP_TRIGGER 5 /* Trigger Name Table Name */ +#define SQLITE_CREATE_TEMP_VIEW 6 /* View Name NULL */ +#define SQLITE_CREATE_TRIGGER 7 /* Trigger Name Table Name */ +#define SQLITE_CREATE_VIEW 8 /* View Name NULL */ +#define SQLITE_DELETE 9 /* Table Name NULL */ +#define SQLITE_DROP_INDEX 10 /* Index Name Table Name */ +#define SQLITE_DROP_TABLE 11 /* Table Name NULL */ +#define SQLITE_DROP_TEMP_INDEX 12 /* Index Name Table Name */ +#define SQLITE_DROP_TEMP_TABLE 13 /* Table Name NULL */ +#define SQLITE_DROP_TEMP_TRIGGER 14 /* Trigger Name Table Name */ +#define SQLITE_DROP_TEMP_VIEW 15 /* View Name NULL */ +#define SQLITE_DROP_TRIGGER 16 /* Trigger Name Table Name */ +#define SQLITE_DROP_VIEW 17 /* View Name NULL */ +#define SQLITE_INSERT 18 /* Table Name NULL */ +#define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */ +#define SQLITE_READ 20 /* Table Name Column Name */ +#define SQLITE_SELECT 21 /* NULL NULL */ +#define SQLITE_TRANSACTION 22 /* Operation NULL */ +#define SQLITE_UPDATE 23 /* Table Name Column Name */ +#define SQLITE_ATTACH 24 /* Filename NULL */ +#define SQLITE_DETACH 25 /* Database Name NULL */ +#define SQLITE_ALTER_TABLE 26 /* Database Name Table Name */ +#define SQLITE_REINDEX 27 /* Index Name NULL */ +#define SQLITE_ANALYZE 28 /* Table Name NULL */ +#define SQLITE_CREATE_VTABLE 29 /* Table Name Module Name */ +#define SQLITE_DROP_VTABLE 30 /* Table Name Module Name */ +#define SQLITE_FUNCTION 31 /* NULL Function Name */ +#define SQLITE_SAVEPOINT 32 /* Operation Savepoint Name */ +#define SQLITE_COPY 0 /* No longer used */ + +/* +** CAPI3REF: Tracing And Profiling Functions +** +** These routines register callback functions that can be used for +** tracing and profiling the execution of SQL statements. +** +** ^The callback function registered by sqlite3_trace() is invoked at +** various times when an SQL statement is being run by [sqlite3_step()]. +** ^The sqlite3_trace() callback is invoked with a UTF-8 rendering of the +** SQL statement text as the statement first begins executing. +** ^(Additional sqlite3_trace() callbacks might occur +** as each triggered subprogram is entered. The callbacks for triggers +** contain a UTF-8 SQL comment that identifies the trigger.)^ +** +** ^The callback function registered by sqlite3_profile() is invoked +** as each SQL statement finishes. ^The profile callback contains +** the original statement text and an estimate of wall-clock time +** of how long that statement took to run. +*/ +SQLITE_API void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*); +SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*, + void(*xProfile)(void*,const char*,sqlite3_uint64), void*); + +/* +** CAPI3REF: Query Progress Callbacks +** +** ^This routine configures a callback function - the +** progress callback - that is invoked periodically during long +** running calls to [sqlite3_exec()], [sqlite3_step()] and +** [sqlite3_get_table()]. An example use for this +** interface is to keep a GUI updated during a large query. +** +** ^If the progress callback returns non-zero, the operation is +** interrupted. This feature can be used to implement a +** "Cancel" button on a GUI progress dialog box. +** +** The progress handler must not do anything that will modify +** the database connection that invoked the progress handler. +** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their +** database connections for the meaning of "modify" in this paragraph. +** +*/ +SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); + +/* +** CAPI3REF: Opening A New Database Connection +** +** ^These routines open an SQLite database file whose name is given by the +** filename argument. ^The filename argument is interpreted as UTF-8 for +** sqlite3_open() and sqlite3_open_v2() and as UTF-16 in the native byte +** order for sqlite3_open16(). ^(A [database connection] handle is usually +** returned in *ppDb, even if an error occurs. The only exception is that +** if SQLite is unable to allocate memory to hold the [sqlite3] object, +** a NULL will be written into *ppDb instead of a pointer to the [sqlite3] +** object.)^ ^(If the database is opened (and/or created) successfully, then +** [SQLITE_OK] is returned. Otherwise an [error code] is returned.)^ ^The +** [sqlite3_errmsg()] or [sqlite3_errmsg16()] routines can be used to obtain +** an English language description of the error following a failure of any +** of the sqlite3_open() routines. +** +** ^The default encoding for the database will be UTF-8 if +** sqlite3_open() or sqlite3_open_v2() is called and +** UTF-16 in the native byte order if sqlite3_open16() is used. +** +** Whether or not an error occurs when it is opened, resources +** associated with the [database connection] handle should be released by +** passing it to [sqlite3_close()] when it is no longer required. +** +** The sqlite3_open_v2() interface works like sqlite3_open() +** except that it accepts two additional parameters for additional control +** over the new database connection. ^(The flags parameter to +** sqlite3_open_v2() can take one of +** the following three values, optionally combined with the +** [SQLITE_OPEN_NOMUTEX], [SQLITE_OPEN_FULLMUTEX], [SQLITE_OPEN_SHAREDCACHE], +** and/or [SQLITE_OPEN_PRIVATECACHE] flags:)^ +** +**
+** ^(
[SQLITE_OPEN_READONLY]
+**
The database is opened in read-only mode. If the database does not +** already exist, an error is returned.
)^ +** +** ^(
[SQLITE_OPEN_READWRITE]
+**
The database is opened for reading and writing if possible, or reading +** only if the file is write protected by the operating system. In either +** case the database must already exist, otherwise an error is returned.
)^ +** +** ^(
[SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]
+**
The database is opened for reading and writing, and is creates it if +** it does not already exist. This is the behavior that is always used for +** sqlite3_open() and sqlite3_open16().
)^ +**
+** +** If the 3rd parameter to sqlite3_open_v2() is not one of the +** combinations shown above or one of the combinations shown above combined +** with the [SQLITE_OPEN_NOMUTEX], [SQLITE_OPEN_FULLMUTEX], +** [SQLITE_OPEN_SHAREDCACHE] and/or [SQLITE_OPEN_SHAREDCACHE] flags, +** then the behavior is undefined. +** +** ^If the [SQLITE_OPEN_NOMUTEX] flag is set, then the database connection +** opens in the multi-thread [threading mode] as long as the single-thread +** mode has not been set at compile-time or start-time. ^If the +** [SQLITE_OPEN_FULLMUTEX] flag is set then the database connection opens +** in the serialized [threading mode] unless single-thread was +** previously selected at compile-time or start-time. +** ^The [SQLITE_OPEN_SHAREDCACHE] flag causes the database connection to be +** eligible to use [shared cache mode], regardless of whether or not shared +** cache is enabled using [sqlite3_enable_shared_cache()]. ^The +** [SQLITE_OPEN_PRIVATECACHE] flag causes the database connection to not +** participate in [shared cache mode] even if it is enabled. +** +** ^If the filename is ":memory:", then a private, temporary in-memory database +** is created for the connection. ^This in-memory database will vanish when +** the database connection is closed. Future versions of SQLite might +** make use of additional special filenames that begin with the ":" character. +** It is recommended that when a database filename actually does begin with +** a ":" character you should prefix the filename with a pathname such as +** "./" to avoid ambiguity. +** +** ^If the filename is an empty string, then a private, temporary +** on-disk database will be created. ^This private database will be +** automatically deleted as soon as the database connection is closed. +** +** ^The fourth parameter to sqlite3_open_v2() is the name of the +** [sqlite3_vfs] object that defines the operating system interface that +** the new database connection should use. ^If the fourth parameter is +** a NULL pointer then the default [sqlite3_vfs] object is used. +** +** Note to Windows users: The encoding used for the filename argument +** of sqlite3_open() and sqlite3_open_v2() must be UTF-8, not whatever +** codepage is currently defined. Filenames containing international +** characters must be converted to UTF-8 prior to passing them into +** sqlite3_open() or sqlite3_open_v2(). +*/ +SQLITE_API int sqlite3_open( + const char *filename, /* Database filename (UTF-8) */ + sqlite3 **ppDb /* OUT: SQLite db handle */ +); +SQLITE_API int sqlite3_open16( + const void *filename, /* Database filename (UTF-16) */ + sqlite3 **ppDb /* OUT: SQLite db handle */ +); +SQLITE_API int sqlite3_open_v2( + const char *filename, /* Database filename (UTF-8) */ + sqlite3 **ppDb, /* OUT: SQLite db handle */ + int flags, /* Flags */ + const char *zVfs /* Name of VFS module to use */ +); + +/* +** CAPI3REF: Error Codes And Messages +** +** ^The sqlite3_errcode() interface returns the numeric [result code] or +** [extended result code] for the most recent failed sqlite3_* API call +** associated with a [database connection]. If a prior API call failed +** but the most recent API call succeeded, the return value from +** sqlite3_errcode() is undefined. ^The sqlite3_extended_errcode() +** interface is the same except that it always returns the +** [extended result code] even when extended result codes are +** disabled. +** +** ^The sqlite3_errmsg() and sqlite3_errmsg16() return English-language +** text that describes the error, as either UTF-8 or UTF-16 respectively. +** ^(Memory to hold the error message string is managed internally. +** The application does not need to worry about freeing the result. +** However, the error string might be overwritten or deallocated by +** subsequent calls to other SQLite interface functions.)^ +** +** When the serialized [threading mode] is in use, it might be the +** case that a second error occurs on a separate thread in between +** the time of the first error and the call to these interfaces. +** When that happens, the second error will be reported since these +** interfaces always report the most recent result. To avoid +** this, each thread can obtain exclusive use of the [database connection] D +** by invoking [sqlite3_mutex_enter]([sqlite3_db_mutex](D)) before beginning +** to use D and invoking [sqlite3_mutex_leave]([sqlite3_db_mutex](D)) after +** all calls to the interfaces listed here are completed. +** +** If an interface fails with SQLITE_MISUSE, that means the interface +** was invoked incorrectly by the application. In that case, the +** error code and message may or may not be set. +*/ +SQLITE_API int sqlite3_errcode(sqlite3 *db); +SQLITE_API int sqlite3_extended_errcode(sqlite3 *db); +SQLITE_API const char *sqlite3_errmsg(sqlite3*); +SQLITE_API const void *sqlite3_errmsg16(sqlite3*); + +/* +** CAPI3REF: SQL Statement Object +** KEYWORDS: {prepared statement} {prepared statements} +** +** An instance of this object represents a single SQL statement. +** This object is variously known as a "prepared statement" or a +** "compiled SQL statement" or simply as a "statement". +** +** The life of a statement object goes something like this: +** +**
    +**
  1. Create the object using [sqlite3_prepare_v2()] or a related +** function. +**
  2. Bind values to [host parameters] using the sqlite3_bind_*() +** interfaces. +**
  3. Run the SQL by calling [sqlite3_step()] one or more times. +**
  4. Reset the statement using [sqlite3_reset()] then go back +** to step 2. Do this zero or more times. +**
  5. Destroy the object using [sqlite3_finalize()]. +**
+** +** Refer to documentation on individual methods above for additional +** information. +*/ +typedef struct sqlite3_stmt sqlite3_stmt; + +/* +** CAPI3REF: Run-time Limits +** +** ^(This interface allows the size of various constructs to be limited +** on a connection by connection basis. The first parameter is the +** [database connection] whose limit is to be set or queried. The +** second parameter is one of the [limit categories] that define a +** class of constructs to be size limited. The third parameter is the +** new limit for that construct. The function returns the old limit.)^ +** +** ^If the new limit is a negative number, the limit is unchanged. +** ^(For the limit category of SQLITE_LIMIT_XYZ there is a +** [limits | hard upper bound] +** set by a compile-time C preprocessor macro named +** [limits | SQLITE_MAX_XYZ]. +** (The "_LIMIT_" in the name is changed to "_MAX_".))^ +** ^Attempts to increase a limit above its hard upper bound are +** silently truncated to the hard upper bound. +** +** Run-time limits are intended for use in applications that manage +** both their own internal database and also databases that are controlled +** by untrusted external sources. An example application might be a +** web browser that has its own databases for storing history and +** separate databases controlled by JavaScript applications downloaded +** off the Internet. The internal databases can be given the +** large, default limits. Databases managed by external sources can +** be given much smaller limits designed to prevent a denial of service +** attack. Developers might also want to use the [sqlite3_set_authorizer()] +** interface to further control untrusted SQL. The size of the database +** created by an untrusted script can be contained using the +** [max_page_count] [PRAGMA]. +** +** New run-time limit categories may be added in future releases. +*/ +SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); + +/* +** CAPI3REF: Run-Time Limit Categories +** KEYWORDS: {limit category} {*limit categories} +** +** These constants define various performance limits +** that can be lowered at run-time using [sqlite3_limit()]. +** The synopsis of the meanings of the various limits is shown below. +** Additional information is available at [limits | Limits in SQLite]. +** +**
+** ^(
SQLITE_LIMIT_LENGTH
+**
The maximum size of any string or BLOB or table row.
)^ +** +** ^(
SQLITE_LIMIT_SQL_LENGTH
+**
The maximum length of an SQL statement, in bytes.
)^ +** +** ^(
SQLITE_LIMIT_COLUMN
+**
The maximum number of columns in a table definition or in the +** result set of a [SELECT] or the maximum number of columns in an index +** or in an ORDER BY or GROUP BY clause.
)^ +** +** ^(
SQLITE_LIMIT_EXPR_DEPTH
+**
The maximum depth of the parse tree on any expression.
)^ +** +** ^(
SQLITE_LIMIT_COMPOUND_SELECT
+**
The maximum number of terms in a compound SELECT statement.
)^ +** +** ^(
SQLITE_LIMIT_VDBE_OP
+**
The maximum number of instructions in a virtual machine program +** used to implement an SQL statement.
)^ +** +** ^(
SQLITE_LIMIT_FUNCTION_ARG
+**
The maximum number of arguments on a function.
)^ +** +** ^(
SQLITE_LIMIT_ATTACHED
+**
The maximum number of [ATTACH | attached databases].)^
+** +** ^(
SQLITE_LIMIT_LIKE_PATTERN_LENGTH
+**
The maximum length of the pattern argument to the [LIKE] or +** [GLOB] operators.
)^ +** +** ^(
SQLITE_LIMIT_VARIABLE_NUMBER
+**
The maximum number of variables in an SQL statement that can +** be bound.
)^ +** +** ^(
SQLITE_LIMIT_TRIGGER_DEPTH
+**
The maximum depth of recursion for triggers.
)^ +**
+*/ +#define SQLITE_LIMIT_LENGTH 0 +#define SQLITE_LIMIT_SQL_LENGTH 1 +#define SQLITE_LIMIT_COLUMN 2 +#define SQLITE_LIMIT_EXPR_DEPTH 3 +#define SQLITE_LIMIT_COMPOUND_SELECT 4 +#define SQLITE_LIMIT_VDBE_OP 5 +#define SQLITE_LIMIT_FUNCTION_ARG 6 +#define SQLITE_LIMIT_ATTACHED 7 +#define SQLITE_LIMIT_LIKE_PATTERN_LENGTH 8 +#define SQLITE_LIMIT_VARIABLE_NUMBER 9 +#define SQLITE_LIMIT_TRIGGER_DEPTH 10 + +/* +** CAPI3REF: Compiling An SQL Statement +** KEYWORDS: {SQL statement compiler} +** +** To execute an SQL query, it must first be compiled into a byte-code +** program using one of these routines. +** +** The first argument, "db", is a [database connection] obtained from a +** prior successful call to [sqlite3_open()], [sqlite3_open_v2()] or +** [sqlite3_open16()]. The database connection must not have been closed. +** +** The second argument, "zSql", is the statement to be compiled, encoded +** as either UTF-8 or UTF-16. The sqlite3_prepare() and sqlite3_prepare_v2() +** interfaces use UTF-8, and sqlite3_prepare16() and sqlite3_prepare16_v2() +** use UTF-16. +** +** ^If the nByte argument is less than zero, then zSql is read up to the +** first zero terminator. ^If nByte is non-negative, then it is the maximum +** number of bytes read from zSql. ^When nByte is non-negative, the +** zSql string ends at either the first '\000' or '\u0000' character or +** the nByte-th byte, whichever comes first. If the caller knows +** that the supplied string is nul-terminated, then there is a small +** performance advantage to be gained by passing an nByte parameter that +** is equal to the number of bytes in the input string including +** the nul-terminator bytes. +** +** ^If pzTail is not NULL then *pzTail is made to point to the first byte +** past the end of the first SQL statement in zSql. These routines only +** compile the first statement in zSql, so *pzTail is left pointing to +** what remains uncompiled. +** +** ^*ppStmt is left pointing to a compiled [prepared statement] that can be +** executed using [sqlite3_step()]. ^If there is an error, *ppStmt is set +** to NULL. ^If the input text contains no SQL (if the input is an empty +** string or a comment) then *ppStmt is set to NULL. +** The calling procedure is responsible for deleting the compiled +** SQL statement using [sqlite3_finalize()] after it has finished with it. +** ppStmt may not be NULL. +** +** ^On success, the sqlite3_prepare() family of routines return [SQLITE_OK]; +** otherwise an [error code] is returned. +** +** The sqlite3_prepare_v2() and sqlite3_prepare16_v2() interfaces are +** recommended for all new programs. The two older interfaces are retained +** for backwards compatibility, but their use is discouraged. +** ^In the "v2" interfaces, the prepared statement +** that is returned (the [sqlite3_stmt] object) contains a copy of the +** original SQL text. This causes the [sqlite3_step()] interface to +** behave differently in three ways: +** +**
    +**
  1. +** ^If the database schema changes, instead of returning [SQLITE_SCHEMA] as it +** always used to do, [sqlite3_step()] will automatically recompile the SQL +** statement and try to run it again. ^If the schema has changed in +** a way that makes the statement no longer valid, [sqlite3_step()] will still +** return [SQLITE_SCHEMA]. But unlike the legacy behavior, [SQLITE_SCHEMA] is +** now a fatal error. Calling [sqlite3_prepare_v2()] again will not make the +** error go away. Note: use [sqlite3_errmsg()] to find the text +** of the parsing error that results in an [SQLITE_SCHEMA] return. +**
  2. +** +**
  3. +** ^When an error occurs, [sqlite3_step()] will return one of the detailed +** [error codes] or [extended error codes]. ^The legacy behavior was that +** [sqlite3_step()] would only return a generic [SQLITE_ERROR] result code +** and the application would have to make a second call to [sqlite3_reset()] +** in order to find the underlying cause of the problem. With the "v2" prepare +** interfaces, the underlying reason for the error is returned immediately. +**
  4. +** +**
  5. +** ^If the value of a [parameter | host parameter] in the WHERE clause might +** change the query plan for a statement, then the statement may be +** automatically recompiled (as if there had been a schema change) on the first +** [sqlite3_step()] call following any change to the +** [sqlite3_bind_text | bindings] of the [parameter]. +**
  6. +**
+*/ +SQLITE_API int sqlite3_prepare( + sqlite3 *db, /* Database handle */ + const char *zSql, /* SQL statement, UTF-8 encoded */ + int nByte, /* Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const char **pzTail /* OUT: Pointer to unused portion of zSql */ +); +SQLITE_API int sqlite3_prepare_v2( + sqlite3 *db, /* Database handle */ + const char *zSql, /* SQL statement, UTF-8 encoded */ + int nByte, /* Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const char **pzTail /* OUT: Pointer to unused portion of zSql */ +); +SQLITE_API int sqlite3_prepare16( + sqlite3 *db, /* Database handle */ + const void *zSql, /* SQL statement, UTF-16 encoded */ + int nByte, /* Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const void **pzTail /* OUT: Pointer to unused portion of zSql */ +); +SQLITE_API int sqlite3_prepare16_v2( + sqlite3 *db, /* Database handle */ + const void *zSql, /* SQL statement, UTF-16 encoded */ + int nByte, /* Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const void **pzTail /* OUT: Pointer to unused portion of zSql */ +); + +/* +** CAPI3REF: Retrieving Statement SQL +** +** ^This interface can be used to retrieve a saved copy of the original +** SQL text used to create a [prepared statement] if that statement was +** compiled using either [sqlite3_prepare_v2()] or [sqlite3_prepare16_v2()]. +*/ +SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt); + +/* +** CAPI3REF: Dynamically Typed Value Object +** KEYWORDS: {protected sqlite3_value} {unprotected sqlite3_value} +** +** SQLite uses the sqlite3_value object to represent all values +** that can be stored in a database table. SQLite uses dynamic typing +** for the values it stores. ^Values stored in sqlite3_value objects +** can be integers, floating point values, strings, BLOBs, or NULL. +** +** An sqlite3_value object may be either "protected" or "unprotected". +** Some interfaces require a protected sqlite3_value. Other interfaces +** will accept either a protected or an unprotected sqlite3_value. +** Every interface that accepts sqlite3_value arguments specifies +** whether or not it requires a protected sqlite3_value. +** +** The terms "protected" and "unprotected" refer to whether or not +** a mutex is held. A internal mutex is held for a protected +** sqlite3_value object but no mutex is held for an unprotected +** sqlite3_value object. If SQLite is compiled to be single-threaded +** (with [SQLITE_THREADSAFE=0] and with [sqlite3_threadsafe()] returning 0) +** or if SQLite is run in one of reduced mutex modes +** [SQLITE_CONFIG_SINGLETHREAD] or [SQLITE_CONFIG_MULTITHREAD] +** then there is no distinction between protected and unprotected +** sqlite3_value objects and they can be used interchangeably. However, +** for maximum code portability it is recommended that applications +** still make the distinction between between protected and unprotected +** sqlite3_value objects even when not strictly required. +** +** ^The sqlite3_value objects that are passed as parameters into the +** implementation of [application-defined SQL functions] are protected. +** ^The sqlite3_value object returned by +** [sqlite3_column_value()] is unprotected. +** Unprotected sqlite3_value objects may only be used with +** [sqlite3_result_value()] and [sqlite3_bind_value()]. +** The [sqlite3_value_blob | sqlite3_value_type()] family of +** interfaces require protected sqlite3_value objects. +*/ +typedef struct Mem sqlite3_value; + +/* +** CAPI3REF: SQL Function Context Object +** +** The context in which an SQL function executes is stored in an +** sqlite3_context object. ^A pointer to an sqlite3_context object +** is always first parameter to [application-defined SQL functions]. +** The application-defined SQL function implementation will pass this +** pointer through into calls to [sqlite3_result_int | sqlite3_result()], +** [sqlite3_aggregate_context()], [sqlite3_user_data()], +** [sqlite3_context_db_handle()], [sqlite3_get_auxdata()], +** and/or [sqlite3_set_auxdata()]. +*/ +typedef struct sqlite3_context sqlite3_context; + +/* +** CAPI3REF: Binding Values To Prepared Statements +** KEYWORDS: {host parameter} {host parameters} {host parameter name} +** KEYWORDS: {SQL parameter} {SQL parameters} {parameter binding} +** +** ^(In the SQL statement text input to [sqlite3_prepare_v2()] and its variants, +** literals may be replaced by a [parameter] that matches one of following +** templates: +** +**
    +**
  • ? +**
  • ?NNN +**
  • :VVV +**
  • @VVV +**
  • $VVV +**
+** +** In the templates above, NNN represents an integer literal, +** and VVV represents an alphanumeric identifer.)^ ^The values of these +** parameters (also called "host parameter names" or "SQL parameters") +** can be set using the sqlite3_bind_*() routines defined here. +** +** ^The first argument to the sqlite3_bind_*() routines is always +** a pointer to the [sqlite3_stmt] object returned from +** [sqlite3_prepare_v2()] or its variants. +** +** ^The second argument is the index of the SQL parameter to be set. +** ^The leftmost SQL parameter has an index of 1. ^When the same named +** SQL parameter is used more than once, second and subsequent +** occurrences have the same index as the first occurrence. +** ^The index for named parameters can be looked up using the +** [sqlite3_bind_parameter_index()] API if desired. ^The index +** for "?NNN" parameters is the value of NNN. +** ^The NNN value must be between 1 and the [sqlite3_limit()] +** parameter [SQLITE_LIMIT_VARIABLE_NUMBER] (default value: 999). +** +** ^The third argument is the value to bind to the parameter. +** +** ^(In those routines that have a fourth argument, its value is the +** number of bytes in the parameter. To be clear: the value is the +** number of bytes in the value, not the number of characters.)^ +** ^If the fourth parameter is negative, the length of the string is +** the number of bytes up to the first zero terminator. +** +** ^The fifth argument to sqlite3_bind_blob(), sqlite3_bind_text(), and +** sqlite3_bind_text16() is a destructor used to dispose of the BLOB or +** string after SQLite has finished with it. ^If the fifth argument is +** the special value [SQLITE_STATIC], then SQLite assumes that the +** information is in static, unmanaged space and does not need to be freed. +** ^If the fifth argument has the value [SQLITE_TRANSIENT], then +** SQLite makes its own private copy of the data immediately, before +** the sqlite3_bind_*() routine returns. +** +** ^The sqlite3_bind_zeroblob() routine binds a BLOB of length N that +** is filled with zeroes. ^A zeroblob uses a fixed amount of memory +** (just an integer to hold its size) while it is being processed. +** Zeroblobs are intended to serve as placeholders for BLOBs whose +** content is later written using +** [sqlite3_blob_open | incremental BLOB I/O] routines. +** ^A negative value for the zeroblob results in a zero-length BLOB. +** +** ^If any of the sqlite3_bind_*() routines are called with a NULL pointer +** for the [prepared statement] or with a prepared statement for which +** [sqlite3_step()] has been called more recently than [sqlite3_reset()], +** then the call will return [SQLITE_MISUSE]. If any sqlite3_bind_() +** routine is passed a [prepared statement] that has been finalized, the +** result is undefined and probably harmful. +** +** ^Bindings are not cleared by the [sqlite3_reset()] routine. +** ^Unbound parameters are interpreted as NULL. +** +** ^The sqlite3_bind_* routines return [SQLITE_OK] on success or an +** [error code] if anything goes wrong. +** ^[SQLITE_RANGE] is returned if the parameter +** index is out of range. ^[SQLITE_NOMEM] is returned if malloc() fails. +** +** See also: [sqlite3_bind_parameter_count()], +** [sqlite3_bind_parameter_name()], and [sqlite3_bind_parameter_index()]. +*/ +SQLITE_API int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*)); +SQLITE_API int sqlite3_bind_double(sqlite3_stmt*, int, double); +SQLITE_API int sqlite3_bind_int(sqlite3_stmt*, int, int); +SQLITE_API int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64); +SQLITE_API int sqlite3_bind_null(sqlite3_stmt*, int); +SQLITE_API int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*)); +SQLITE_API int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*)); +SQLITE_API int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*); +SQLITE_API int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n); + +/* +** CAPI3REF: Number Of SQL Parameters +** +** ^This routine can be used to find the number of [SQL parameters] +** in a [prepared statement]. SQL parameters are tokens of the +** form "?", "?NNN", ":AAA", "$AAA", or "@AAA" that serve as +** placeholders for values that are [sqlite3_bind_blob | bound] +** to the parameters at a later time. +** +** ^(This routine actually returns the index of the largest (rightmost) +** parameter. For all forms except ?NNN, this will correspond to the +** number of unique parameters. If parameters of the ?NNN form are used, +** there may be gaps in the list.)^ +** +** See also: [sqlite3_bind_blob|sqlite3_bind()], +** [sqlite3_bind_parameter_name()], and +** [sqlite3_bind_parameter_index()]. +*/ +SQLITE_API int sqlite3_bind_parameter_count(sqlite3_stmt*); + +/* +** CAPI3REF: Name Of A Host Parameter +** +** ^The sqlite3_bind_parameter_name(P,N) interface returns +** the name of the N-th [SQL parameter] in the [prepared statement] P. +** ^(SQL parameters of the form "?NNN" or ":AAA" or "@AAA" or "$AAA" +** have a name which is the string "?NNN" or ":AAA" or "@AAA" or "$AAA" +** respectively. +** In other words, the initial ":" or "$" or "@" or "?" +** is included as part of the name.)^ +** ^Parameters of the form "?" without a following integer have no name +** and are referred to as "nameless" or "anonymous parameters". +** +** ^The first host parameter has an index of 1, not 0. +** +** ^If the value N is out of range or if the N-th parameter is +** nameless, then NULL is returned. ^The returned string is +** always in UTF-8 encoding even if the named parameter was +** originally specified as UTF-16 in [sqlite3_prepare16()] or +** [sqlite3_prepare16_v2()]. +** +** See also: [sqlite3_bind_blob|sqlite3_bind()], +** [sqlite3_bind_parameter_count()], and +** [sqlite3_bind_parameter_index()]. +*/ +SQLITE_API const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int); + +/* +** CAPI3REF: Index Of A Parameter With A Given Name +** +** ^Return the index of an SQL parameter given its name. ^The +** index value returned is suitable for use as the second +** parameter to [sqlite3_bind_blob|sqlite3_bind()]. ^A zero +** is returned if no matching parameter is found. ^The parameter +** name must be given in UTF-8 even if the original statement +** was prepared from UTF-16 text using [sqlite3_prepare16_v2()]. +** +** See also: [sqlite3_bind_blob|sqlite3_bind()], +** [sqlite3_bind_parameter_count()], and +** [sqlite3_bind_parameter_index()]. +*/ +SQLITE_API int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); + +/* +** CAPI3REF: Reset All Bindings On A Prepared Statement +** +** ^Contrary to the intuition of many, [sqlite3_reset()] does not reset +** the [sqlite3_bind_blob | bindings] on a [prepared statement]. +** ^Use this routine to reset all host parameters to NULL. +*/ +SQLITE_API int sqlite3_clear_bindings(sqlite3_stmt*); + +/* +** CAPI3REF: Number Of Columns In A Result Set +** +** ^Return the number of columns in the result set returned by the +** [prepared statement]. ^This routine returns 0 if pStmt is an SQL +** statement that does not return data (for example an [UPDATE]). +*/ +SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt); + +/* +** CAPI3REF: Column Names In A Result Set +** +** ^These routines return the name assigned to a particular column +** in the result set of a [SELECT] statement. ^The sqlite3_column_name() +** interface returns a pointer to a zero-terminated UTF-8 string +** and sqlite3_column_name16() returns a pointer to a zero-terminated +** UTF-16 string. ^The first parameter is the [prepared statement] +** that implements the [SELECT] statement. ^The second parameter is the +** column number. ^The leftmost column is number 0. +** +** ^The returned string pointer is valid until either the [prepared statement] +** is destroyed by [sqlite3_finalize()] or until the next call to +** sqlite3_column_name() or sqlite3_column_name16() on the same column. +** +** ^If sqlite3_malloc() fails during the processing of either routine +** (for example during a conversion from UTF-8 to UTF-16) then a +** NULL pointer is returned. +** +** ^The name of a result column is the value of the "AS" clause for +** that column, if there is an AS clause. If there is no AS clause +** then the name of the column is unspecified and may change from +** one release of SQLite to the next. +*/ +SQLITE_API const char *sqlite3_column_name(sqlite3_stmt*, int N); +SQLITE_API const void *sqlite3_column_name16(sqlite3_stmt*, int N); + +/* +** CAPI3REF: Source Of Data In A Query Result +** +** ^These routines provide a means to determine the database, table, and +** table column that is the origin of a particular result column in +** [SELECT] statement. +** ^The name of the database or table or column can be returned as +** either a UTF-8 or UTF-16 string. ^The _database_ routines return +** the database name, the _table_ routines return the table name, and +** the origin_ routines return the column name. +** ^The returned string is valid until the [prepared statement] is destroyed +** using [sqlite3_finalize()] or until the same information is requested +** again in a different encoding. +** +** ^The names returned are the original un-aliased names of the +** database, table, and column. +** +** ^The first argument to these interfaces is a [prepared statement]. +** ^These functions return information about the Nth result column returned by +** the statement, where N is the second function argument. +** ^The left-most column is column 0 for these routines. +** +** ^If the Nth column returned by the statement is an expression or +** subquery and is not a column value, then all of these functions return +** NULL. ^These routine might also return NULL if a memory allocation error +** occurs. ^Otherwise, they return the name of the attached database, table, +** or column that query result column was extracted from. +** +** ^As with all other SQLite APIs, those whose names end with "16" return +** UTF-16 encoded strings and the other functions return UTF-8. +** +** ^These APIs are only available if the library was compiled with the +** [SQLITE_ENABLE_COLUMN_METADATA] C-preprocessor symbol. +** +** If two or more threads call one or more of these routines against the same +** prepared statement and column at the same time then the results are +** undefined. +** +** If two or more threads call one or more +** [sqlite3_column_database_name | column metadata interfaces] +** for the same [prepared statement] and result column +** at the same time then the results are undefined. +*/ +SQLITE_API const char *sqlite3_column_database_name(sqlite3_stmt*,int); +SQLITE_API const void *sqlite3_column_database_name16(sqlite3_stmt*,int); +SQLITE_API const char *sqlite3_column_table_name(sqlite3_stmt*,int); +SQLITE_API const void *sqlite3_column_table_name16(sqlite3_stmt*,int); +SQLITE_API const char *sqlite3_column_origin_name(sqlite3_stmt*,int); +SQLITE_API const void *sqlite3_column_origin_name16(sqlite3_stmt*,int); + +/* +** CAPI3REF: Declared Datatype Of A Query Result +** +** ^(The first parameter is a [prepared statement]. +** If this statement is a [SELECT] statement and the Nth column of the +** returned result set of that [SELECT] is a table column (not an +** expression or subquery) then the declared type of the table +** column is returned.)^ ^If the Nth column of the result set is an +** expression or subquery, then a NULL pointer is returned. +** ^The returned string is always UTF-8 encoded. +** +** ^(For example, given the database schema: +** +** CREATE TABLE t1(c1 VARIANT); +** +** and the following statement to be compiled: +** +** SELECT c1 + 1, c1 FROM t1; +** +** this routine would return the string "VARIANT" for the second result +** column (i==1), and a NULL pointer for the first result column (i==0).)^ +** +** ^SQLite uses dynamic run-time typing. ^So just because a column +** is declared to contain a particular type does not mean that the +** data stored in that column is of the declared type. SQLite is +** strongly typed, but the typing is dynamic not static. ^Type +** is associated with individual values, not with the containers +** used to hold those values. +*/ +SQLITE_API const char *sqlite3_column_decltype(sqlite3_stmt*,int); +SQLITE_API const void *sqlite3_column_decltype16(sqlite3_stmt*,int); + +/* +** CAPI3REF: Evaluate An SQL Statement +** +** After a [prepared statement] has been prepared using either +** [sqlite3_prepare_v2()] or [sqlite3_prepare16_v2()] or one of the legacy +** interfaces [sqlite3_prepare()] or [sqlite3_prepare16()], this function +** must be called one or more times to evaluate the statement. +** +** The details of the behavior of the sqlite3_step() interface depend +** on whether the statement was prepared using the newer "v2" interface +** [sqlite3_prepare_v2()] and [sqlite3_prepare16_v2()] or the older legacy +** interface [sqlite3_prepare()] and [sqlite3_prepare16()]. The use of the +** new "v2" interface is recommended for new applications but the legacy +** interface will continue to be supported. +** +** ^In the legacy interface, the return value will be either [SQLITE_BUSY], +** [SQLITE_DONE], [SQLITE_ROW], [SQLITE_ERROR], or [SQLITE_MISUSE]. +** ^With the "v2" interface, any of the other [result codes] or +** [extended result codes] might be returned as well. +** +** ^[SQLITE_BUSY] means that the database engine was unable to acquire the +** database locks it needs to do its job. ^If the statement is a [COMMIT] +** or occurs outside of an explicit transaction, then you can retry the +** statement. If the statement is not a [COMMIT] and occurs within a +** explicit transaction then you should rollback the transaction before +** continuing. +** +** ^[SQLITE_DONE] means that the statement has finished executing +** successfully. sqlite3_step() should not be called again on this virtual +** machine without first calling [sqlite3_reset()] to reset the virtual +** machine back to its initial state. +** +** ^If the SQL statement being executed returns any data, then [SQLITE_ROW] +** is returned each time a new row of data is ready for processing by the +** caller. The values may be accessed using the [column access functions]. +** sqlite3_step() is called again to retrieve the next row of data. +** +** ^[SQLITE_ERROR] means that a run-time error (such as a constraint +** violation) has occurred. sqlite3_step() should not be called again on +** the VM. More information may be found by calling [sqlite3_errmsg()]. +** ^With the legacy interface, a more specific error code (for example, +** [SQLITE_INTERRUPT], [SQLITE_SCHEMA], [SQLITE_CORRUPT], and so forth) +** can be obtained by calling [sqlite3_reset()] on the +** [prepared statement]. ^In the "v2" interface, +** the more specific error code is returned directly by sqlite3_step(). +** +** [SQLITE_MISUSE] means that the this routine was called inappropriately. +** Perhaps it was called on a [prepared statement] that has +** already been [sqlite3_finalize | finalized] or on one that had +** previously returned [SQLITE_ERROR] or [SQLITE_DONE]. Or it could +** be the case that the same database connection is being used by two or +** more threads at the same moment in time. +** +** For all versions of SQLite up to and including 3.6.23.1, it was required +** after sqlite3_step() returned anything other than [SQLITE_ROW] that +** [sqlite3_reset()] be called before any subsequent invocation of +** sqlite3_step(). Failure to invoke [sqlite3_reset()] in this way would +** result in an [SQLITE_MISUSE] return from sqlite3_step(). But after +** version 3.6.23.1, sqlite3_step() began calling [sqlite3_reset()] +** automatically in this circumstance rather than returning [SQLITE_MISUSE]. +** +** Goofy Interface Alert: In the legacy interface, the sqlite3_step() +** API always returns a generic error code, [SQLITE_ERROR], following any +** error other than [SQLITE_BUSY] and [SQLITE_MISUSE]. You must call +** [sqlite3_reset()] or [sqlite3_finalize()] in order to find one of the +** specific [error codes] that better describes the error. +** We admit that this is a goofy design. The problem has been fixed +** with the "v2" interface. If you prepare all of your SQL statements +** using either [sqlite3_prepare_v2()] or [sqlite3_prepare16_v2()] instead +** of the legacy [sqlite3_prepare()] and [sqlite3_prepare16()] interfaces, +** then the more specific [error codes] are returned directly +** by sqlite3_step(). The use of the "v2" interface is recommended. +*/ +SQLITE_API int sqlite3_step(sqlite3_stmt*); + +/* +** CAPI3REF: Number of columns in a result set +** +** ^The sqlite3_data_count(P) the number of columns in the +** of the result set of [prepared statement] P. +*/ +SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt); + +/* +** CAPI3REF: Fundamental Datatypes +** KEYWORDS: SQLITE_TEXT +** +** ^(Every value in SQLite has one of five fundamental datatypes: +** +**
    +**
  • 64-bit signed integer +**
  • 64-bit IEEE floating point number +**
  • string +**
  • BLOB +**
  • NULL +**
)^ +** +** These constants are codes for each of those types. +** +** Note that the SQLITE_TEXT constant was also used in SQLite version 2 +** for a completely different meaning. Software that links against both +** SQLite version 2 and SQLite version 3 should use SQLITE3_TEXT, not +** SQLITE_TEXT. +*/ +#define SQLITE_INTEGER 1 +#define SQLITE_FLOAT 2 +#define SQLITE_BLOB 4 +#define SQLITE_NULL 5 +#ifdef SQLITE_TEXT +# undef SQLITE_TEXT +#else +# define SQLITE_TEXT 3 +#endif +#define SQLITE3_TEXT 3 + +/* +** CAPI3REF: Result Values From A Query +** KEYWORDS: {column access functions} +** +** These routines form the "result set" interface. +** +** ^These routines return information about a single column of the current +** result row of a query. ^In every case the first argument is a pointer +** to the [prepared statement] that is being evaluated (the [sqlite3_stmt*] +** that was returned from [sqlite3_prepare_v2()] or one of its variants) +** and the second argument is the index of the column for which information +** should be returned. ^The leftmost column of the result set has the index 0. +** ^The number of columns in the result can be determined using +** [sqlite3_column_count()]. +** +** If the SQL statement does not currently point to a valid row, or if the +** column index is out of range, the result is undefined. +** These routines may only be called when the most recent call to +** [sqlite3_step()] has returned [SQLITE_ROW] and neither +** [sqlite3_reset()] nor [sqlite3_finalize()] have been called subsequently. +** If any of these routines are called after [sqlite3_reset()] or +** [sqlite3_finalize()] or after [sqlite3_step()] has returned +** something other than [SQLITE_ROW], the results are undefined. +** If [sqlite3_step()] or [sqlite3_reset()] or [sqlite3_finalize()] +** are called from a different thread while any of these routines +** are pending, then the results are undefined. +** +** ^The sqlite3_column_type() routine returns the +** [SQLITE_INTEGER | datatype code] for the initial data type +** of the result column. ^The returned value is one of [SQLITE_INTEGER], +** [SQLITE_FLOAT], [SQLITE_TEXT], [SQLITE_BLOB], or [SQLITE_NULL]. The value +** returned by sqlite3_column_type() is only meaningful if no type +** conversions have occurred as described below. After a type conversion, +** the value returned by sqlite3_column_type() is undefined. Future +** versions of SQLite may change the behavior of sqlite3_column_type() +** following a type conversion. +** +** ^If the result is a BLOB or UTF-8 string then the sqlite3_column_bytes() +** routine returns the number of bytes in that BLOB or string. +** ^If the result is a UTF-16 string, then sqlite3_column_bytes() converts +** the string to UTF-8 and then returns the number of bytes. +** ^If the result is a numeric value then sqlite3_column_bytes() uses +** [sqlite3_snprintf()] to convert that value to a UTF-8 string and returns +** the number of bytes in that string. +** ^The value returned does not include the zero terminator at the end +** of the string. ^For clarity: the value returned is the number of +** bytes in the string, not the number of characters. +** +** ^Strings returned by sqlite3_column_text() and sqlite3_column_text16(), +** even empty strings, are always zero terminated. ^The return +** value from sqlite3_column_blob() for a zero-length BLOB is an arbitrary +** pointer, possibly even a NULL pointer. +** +** ^The sqlite3_column_bytes16() routine is similar to sqlite3_column_bytes() +** but leaves the result in UTF-16 in native byte order instead of UTF-8. +** ^The zero terminator is not included in this count. +** +** ^The object returned by [sqlite3_column_value()] is an +** [unprotected sqlite3_value] object. An unprotected sqlite3_value object +** may only be used with [sqlite3_bind_value()] and [sqlite3_result_value()]. +** If the [unprotected sqlite3_value] object returned by +** [sqlite3_column_value()] is used in any other way, including calls +** to routines like [sqlite3_value_int()], [sqlite3_value_text()], +** or [sqlite3_value_bytes()], then the behavior is undefined. +** +** These routines attempt to convert the value where appropriate. ^For +** example, if the internal representation is FLOAT and a text result +** is requested, [sqlite3_snprintf()] is used internally to perform the +** conversion automatically. ^(The following table details the conversions +** that are applied: +** +**
+** +**
Internal
Type
Requested
Type
Conversion +** +**
NULL INTEGER Result is 0 +**
NULL FLOAT Result is 0.0 +**
NULL TEXT Result is NULL pointer +**
NULL BLOB Result is NULL pointer +**
INTEGER FLOAT Convert from integer to float +**
INTEGER TEXT ASCII rendering of the integer +**
INTEGER BLOB Same as INTEGER->TEXT +**
FLOAT INTEGER Convert from float to integer +**
FLOAT TEXT ASCII rendering of the float +**
FLOAT BLOB Same as FLOAT->TEXT +**
TEXT INTEGER Use atoi() +**
TEXT FLOAT Use atof() +**
TEXT BLOB No change +**
BLOB INTEGER Convert to TEXT then use atoi() +**
BLOB FLOAT Convert to TEXT then use atof() +**
BLOB TEXT Add a zero terminator if needed +**
+**
)^ +** +** The table above makes reference to standard C library functions atoi() +** and atof(). SQLite does not really use these functions. It has its +** own equivalent internal routines. The atoi() and atof() names are +** used in the table for brevity and because they are familiar to most +** C programmers. +** +** ^Note that when type conversions occur, pointers returned by prior +** calls to sqlite3_column_blob(), sqlite3_column_text(), and/or +** sqlite3_column_text16() may be invalidated. +** ^(Type conversions and pointer invalidations might occur +** in the following cases: +** +**
    +**
  • The initial content is a BLOB and sqlite3_column_text() or +** sqlite3_column_text16() is called. A zero-terminator might +** need to be added to the string.
  • +**
  • The initial content is UTF-8 text and sqlite3_column_bytes16() or +** sqlite3_column_text16() is called. The content must be converted +** to UTF-16.
  • +**
  • The initial content is UTF-16 text and sqlite3_column_bytes() or +** sqlite3_column_text() is called. The content must be converted +** to UTF-8.
  • +**
)^ +** +** ^Conversions between UTF-16be and UTF-16le are always done in place and do +** not invalidate a prior pointer, though of course the content of the buffer +** that the prior pointer points to will have been modified. Other kinds +** of conversion are done in place when it is possible, but sometimes they +** are not possible and in those cases prior pointers are invalidated. +** +** ^(The safest and easiest to remember policy is to invoke these routines +** in one of the following ways: +** +**
    +**
  • sqlite3_column_text() followed by sqlite3_column_bytes()
  • +**
  • sqlite3_column_blob() followed by sqlite3_column_bytes()
  • +**
  • sqlite3_column_text16() followed by sqlite3_column_bytes16()
  • +**
)^ +** +** In other words, you should call sqlite3_column_text(), +** sqlite3_column_blob(), or sqlite3_column_text16() first to force the result +** into the desired format, then invoke sqlite3_column_bytes() or +** sqlite3_column_bytes16() to find the size of the result. Do not mix calls +** to sqlite3_column_text() or sqlite3_column_blob() with calls to +** sqlite3_column_bytes16(), and do not mix calls to sqlite3_column_text16() +** with calls to sqlite3_column_bytes(). +** +** ^The pointers returned are valid until a type conversion occurs as +** described above, or until [sqlite3_step()] or [sqlite3_reset()] or +** [sqlite3_finalize()] is called. ^The memory space used to hold strings +** and BLOBs is freed automatically. Do not pass the pointers returned +** [sqlite3_column_blob()], [sqlite3_column_text()], etc. into +** [sqlite3_free()]. +** +** ^(If a memory allocation error occurs during the evaluation of any +** of these routines, a default value is returned. The default value +** is either the integer 0, the floating point number 0.0, or a NULL +** pointer. Subsequent calls to [sqlite3_errcode()] will return +** [SQLITE_NOMEM].)^ +*/ +SQLITE_API const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); +SQLITE_API int sqlite3_column_bytes(sqlite3_stmt*, int iCol); +SQLITE_API int sqlite3_column_bytes16(sqlite3_stmt*, int iCol); +SQLITE_API double sqlite3_column_double(sqlite3_stmt*, int iCol); +SQLITE_API int sqlite3_column_int(sqlite3_stmt*, int iCol); +SQLITE_API sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); +SQLITE_API const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); +SQLITE_API const void *sqlite3_column_text16(sqlite3_stmt*, int iCol); +SQLITE_API int sqlite3_column_type(sqlite3_stmt*, int iCol); +SQLITE_API sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol); + +/* +** CAPI3REF: Destroy A Prepared Statement Object +** +** ^The sqlite3_finalize() function is called to delete a [prepared statement]. +** ^If the statement was executed successfully or not executed at all, then +** SQLITE_OK is returned. ^If execution of the statement failed then an +** [error code] or [extended error code] is returned. +** +** ^This routine can be called at any point during the execution of the +** [prepared statement]. ^If the virtual machine has not +** completed execution when this routine is called, that is like +** encountering an error or an [sqlite3_interrupt | interrupt]. +** ^Incomplete updates may be rolled back and transactions canceled, +** depending on the circumstances, and the +** [error code] returned will be [SQLITE_ABORT]. +*/ +SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); + +/* +** CAPI3REF: Reset A Prepared Statement Object +** +** The sqlite3_reset() function is called to reset a [prepared statement] +** object back to its initial state, ready to be re-executed. +** ^Any SQL statement variables that had values bound to them using +** the [sqlite3_bind_blob | sqlite3_bind_*() API] retain their values. +** Use [sqlite3_clear_bindings()] to reset the bindings. +** +** ^The [sqlite3_reset(S)] interface resets the [prepared statement] S +** back to the beginning of its program. +** +** ^If the most recent call to [sqlite3_step(S)] for the +** [prepared statement] S returned [SQLITE_ROW] or [SQLITE_DONE], +** or if [sqlite3_step(S)] has never before been called on S, +** then [sqlite3_reset(S)] returns [SQLITE_OK]. +** +** ^If the most recent call to [sqlite3_step(S)] for the +** [prepared statement] S indicated an error, then +** [sqlite3_reset(S)] returns an appropriate [error code]. +** +** ^The [sqlite3_reset(S)] interface does not change the values +** of any [sqlite3_bind_blob|bindings] on the [prepared statement] S. +*/ +SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); + +/* +** CAPI3REF: Create Or Redefine SQL Functions +** KEYWORDS: {function creation routines} +** KEYWORDS: {application-defined SQL function} +** KEYWORDS: {application-defined SQL functions} +** +** ^These two functions (collectively known as "function creation routines") +** are used to add SQL functions or aggregates or to redefine the behavior +** of existing SQL functions or aggregates. The only difference between the +** two is that the second parameter, the name of the (scalar) function or +** aggregate, is encoded in UTF-8 for sqlite3_create_function() and UTF-16 +** for sqlite3_create_function16(). +** +** ^The first parameter is the [database connection] to which the SQL +** function is to be added. ^If an application uses more than one database +** connection then application-defined SQL functions must be added +** to each database connection separately. +** +** The second parameter is the name of the SQL function to be created or +** redefined. ^The length of the name is limited to 255 bytes, exclusive of +** the zero-terminator. Note that the name length limit is in bytes, not +** characters. ^Any attempt to create a function with a longer name +** will result in [SQLITE_ERROR] being returned. +** +** ^The third parameter (nArg) +** is the number of arguments that the SQL function or +** aggregate takes. ^If this parameter is -1, then the SQL function or +** aggregate may take any number of arguments between 0 and the limit +** set by [sqlite3_limit]([SQLITE_LIMIT_FUNCTION_ARG]). If the third +** parameter is less than -1 or greater than 127 then the behavior is +** undefined. +** +** The fourth parameter, eTextRep, specifies what +** [SQLITE_UTF8 | text encoding] this SQL function prefers for +** its parameters. Any SQL function implementation should be able to work +** work with UTF-8, UTF-16le, or UTF-16be. But some implementations may be +** more efficient with one encoding than another. ^An application may +** invoke sqlite3_create_function() or sqlite3_create_function16() multiple +** times with the same function but with different values of eTextRep. +** ^When multiple implementations of the same function are available, SQLite +** will pick the one that involves the least amount of data conversion. +** If there is only a single implementation which does not care what text +** encoding is used, then the fourth argument should be [SQLITE_ANY]. +** +** ^(The fifth parameter is an arbitrary pointer. The implementation of the +** function can gain access to this pointer using [sqlite3_user_data()].)^ +** +** The seventh, eighth and ninth parameters, xFunc, xStep and xFinal, are +** pointers to C-language functions that implement the SQL function or +** aggregate. ^A scalar SQL function requires an implementation of the xFunc +** callback only; NULL pointers should be passed as the xStep and xFinal +** parameters. ^An aggregate SQL function requires an implementation of xStep +** and xFinal and NULL should be passed for xFunc. ^To delete an existing +** SQL function or aggregate, pass NULL for all three function callbacks. +** +** ^It is permitted to register multiple implementations of the same +** functions with the same name but with either differing numbers of +** arguments or differing preferred text encodings. ^SQLite will use +** the implementation that most closely matches the way in which the +** SQL function is used. ^A function implementation with a non-negative +** nArg parameter is a better match than a function implementation with +** a negative nArg. ^A function where the preferred text encoding +** matches the database encoding is a better +** match than a function where the encoding is different. +** ^A function where the encoding difference is between UTF16le and UTF16be +** is a closer match than a function where the encoding difference is +** between UTF8 and UTF16. +** +** ^Built-in functions may be overloaded by new application-defined functions. +** ^The first application-defined function with a given name overrides all +** built-in functions in the same [database connection] with the same name. +** ^Subsequent application-defined functions of the same name only override +** prior application-defined functions that are an exact match for the +** number of parameters and preferred encoding. +** +** ^An application-defined function is permitted to call other +** SQLite interfaces. However, such calls must not +** close the database connection nor finalize or reset the prepared +** statement in which the function is running. +*/ +SQLITE_API int sqlite3_create_function( + sqlite3 *db, + const char *zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void (*xFunc)(sqlite3_context*,int,sqlite3_value**), + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*) +); +SQLITE_API int sqlite3_create_function16( + sqlite3 *db, + const void *zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void (*xFunc)(sqlite3_context*,int,sqlite3_value**), + void (*xStep)(sqlite3_context*,int,sqlite3_value**), + void (*xFinal)(sqlite3_context*) +); + +/* +** CAPI3REF: Text Encodings +** +** These constant define integer codes that represent the various +** text encodings supported by SQLite. +*/ +#define SQLITE_UTF8 1 +#define SQLITE_UTF16LE 2 +#define SQLITE_UTF16BE 3 +#define SQLITE_UTF16 4 /* Use native byte order */ +#define SQLITE_ANY 5 /* sqlite3_create_function only */ +#define SQLITE_UTF16_ALIGNED 8 /* sqlite3_create_collation only */ + +/* +** CAPI3REF: Deprecated Functions +** DEPRECATED +** +** These functions are [deprecated]. In order to maintain +** backwards compatibility with older code, these functions continue +** to be supported. However, new applications should avoid +** the use of these functions. To help encourage people to avoid +** using these functions, we are not going to tell you what they do. +*/ +#ifndef SQLITE_OMIT_DEPRECATED +SQLITE_API SQLITE_DEPRECATED int sqlite3_aggregate_count(sqlite3_context*); +SQLITE_API SQLITE_DEPRECATED int sqlite3_expired(sqlite3_stmt*); +SQLITE_API SQLITE_DEPRECATED int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*); +SQLITE_API SQLITE_DEPRECATED int sqlite3_global_recover(void); +SQLITE_API SQLITE_DEPRECATED void sqlite3_thread_cleanup(void); +SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int),void*,sqlite3_int64); +#endif + +/* +** CAPI3REF: Obtaining SQL Function Parameter Values +** +** The C-language implementation of SQL functions and aggregates uses +** this set of interface routines to access the parameter values on +** the function or aggregate. +** +** The xFunc (for scalar functions) or xStep (for aggregates) parameters +** to [sqlite3_create_function()] and [sqlite3_create_function16()] +** define callbacks that implement the SQL functions and aggregates. +** The 4th parameter to these callbacks is an array of pointers to +** [protected sqlite3_value] objects. There is one [sqlite3_value] object for +** each parameter to the SQL function. These routines are used to +** extract values from the [sqlite3_value] objects. +** +** These routines work only with [protected sqlite3_value] objects. +** Any attempt to use these routines on an [unprotected sqlite3_value] +** object results in undefined behavior. +** +** ^These routines work just like the corresponding [column access functions] +** except that these routines take a single [protected sqlite3_value] object +** pointer instead of a [sqlite3_stmt*] pointer and an integer column number. +** +** ^The sqlite3_value_text16() interface extracts a UTF-16 string +** in the native byte-order of the host machine. ^The +** sqlite3_value_text16be() and sqlite3_value_text16le() interfaces +** extract UTF-16 strings as big-endian and little-endian respectively. +** +** ^(The sqlite3_value_numeric_type() interface attempts to apply +** numeric affinity to the value. This means that an attempt is +** made to convert the value to an integer or floating point. If +** such a conversion is possible without loss of information (in other +** words, if the value is a string that looks like a number) +** then the conversion is performed. Otherwise no conversion occurs. +** The [SQLITE_INTEGER | datatype] after conversion is returned.)^ +** +** Please pay particular attention to the fact that the pointer returned +** from [sqlite3_value_blob()], [sqlite3_value_text()], or +** [sqlite3_value_text16()] can be invalidated by a subsequent call to +** [sqlite3_value_bytes()], [sqlite3_value_bytes16()], [sqlite3_value_text()], +** or [sqlite3_value_text16()]. +** +** These routines must be called from the same thread as +** the SQL function that supplied the [sqlite3_value*] parameters. +*/ +SQLITE_API const void *sqlite3_value_blob(sqlite3_value*); +SQLITE_API int sqlite3_value_bytes(sqlite3_value*); +SQLITE_API int sqlite3_value_bytes16(sqlite3_value*); +SQLITE_API double sqlite3_value_double(sqlite3_value*); +SQLITE_API int sqlite3_value_int(sqlite3_value*); +SQLITE_API sqlite3_int64 sqlite3_value_int64(sqlite3_value*); +SQLITE_API const unsigned char *sqlite3_value_text(sqlite3_value*); +SQLITE_API const void *sqlite3_value_text16(sqlite3_value*); +SQLITE_API const void *sqlite3_value_text16le(sqlite3_value*); +SQLITE_API const void *sqlite3_value_text16be(sqlite3_value*); +SQLITE_API int sqlite3_value_type(sqlite3_value*); +SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*); + +/* +** CAPI3REF: Obtain Aggregate Function Context +** +** Implementions of aggregate SQL functions use this +** routine to allocate memory for storing their state. +** +** ^The first time the sqlite3_aggregate_context(C,N) routine is called +** for a particular aggregate function, SQLite +** allocates N of memory, zeroes out that memory, and returns a pointer +** to the new memory. ^On second and subsequent calls to +** sqlite3_aggregate_context() for the same aggregate function instance, +** the same buffer is returned. Sqlite3_aggregate_context() is normally +** called once for each invocation of the xStep callback and then one +** last time when the xFinal callback is invoked. ^(When no rows match +** an aggregate query, the xStep() callback of the aggregate function +** implementation is never called and xFinal() is called exactly once. +** In those cases, sqlite3_aggregate_context() might be called for the +** first time from within xFinal().)^ +** +** ^The sqlite3_aggregate_context(C,N) routine returns a NULL pointer if N is +** less than or equal to zero or if a memory allocate error occurs. +** +** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is +** determined by the N parameter on first successful call. Changing the +** value of N in subsequent call to sqlite3_aggregate_context() within +** the same aggregate function instance will not resize the memory +** allocation.)^ +** +** ^SQLite automatically frees the memory allocated by +** sqlite3_aggregate_context() when the aggregate query concludes. +** +** The first parameter must be a copy of the +** [sqlite3_context | SQL function context] that is the first parameter +** to the xStep or xFinal callback routine that implements the aggregate +** function. +** +** This routine must be called from the same thread in which +** the aggregate SQL function is running. +*/ +SQLITE_API void *sqlite3_aggregate_context(sqlite3_context*, int nBytes); + +/* +** CAPI3REF: User Data For Functions +** +** ^The sqlite3_user_data() interface returns a copy of +** the pointer that was the pUserData parameter (the 5th parameter) +** of the [sqlite3_create_function()] +** and [sqlite3_create_function16()] routines that originally +** registered the application defined function. +** +** This routine must be called from the same thread in which +** the application-defined function is running. +*/ +SQLITE_API void *sqlite3_user_data(sqlite3_context*); + +/* +** CAPI3REF: Database Connection For Functions +** +** ^The sqlite3_context_db_handle() interface returns a copy of +** the pointer to the [database connection] (the 1st parameter) +** of the [sqlite3_create_function()] +** and [sqlite3_create_function16()] routines that originally +** registered the application defined function. +*/ +SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); + +/* +** CAPI3REF: Function Auxiliary Data +** +** The following two functions may be used by scalar SQL functions to +** associate metadata with argument values. If the same value is passed to +** multiple invocations of the same SQL function during query execution, under +** some circumstances the associated metadata may be preserved. This may +** be used, for example, to add a regular-expression matching scalar +** function. The compiled version of the regular expression is stored as +** metadata associated with the SQL value passed as the regular expression +** pattern. The compiled regular expression can be reused on multiple +** invocations of the same function so that the original pattern string +** does not need to be recompiled on each invocation. +** +** ^The sqlite3_get_auxdata() interface returns a pointer to the metadata +** associated by the sqlite3_set_auxdata() function with the Nth argument +** value to the application-defined function. ^If no metadata has been ever +** been set for the Nth argument of the function, or if the corresponding +** function parameter has changed since the meta-data was set, +** then sqlite3_get_auxdata() returns a NULL pointer. +** +** ^The sqlite3_set_auxdata() interface saves the metadata +** pointed to by its 3rd parameter as the metadata for the N-th +** argument of the application-defined function. Subsequent +** calls to sqlite3_get_auxdata() might return this data, if it has +** not been destroyed. +** ^If it is not NULL, SQLite will invoke the destructor +** function given by the 4th parameter to sqlite3_set_auxdata() on +** the metadata when the corresponding function parameter changes +** or when the SQL statement completes, whichever comes first. +** +** SQLite is free to call the destructor and drop metadata on any +** parameter of any function at any time. ^The only guarantee is that +** the destructor will be called before the metadata is dropped. +** +** ^(In practice, metadata is preserved between function calls for +** expressions that are constant at compile time. This includes literal +** values and [parameters].)^ +** +** These routines must be called from the same thread in which +** the SQL function is running. +*/ +SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N); +SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*)); + + +/* +** CAPI3REF: Constants Defining Special Destructor Behavior +** +** These are special values for the destructor that is passed in as the +** final argument to routines like [sqlite3_result_blob()]. ^If the destructor +** argument is SQLITE_STATIC, it means that the content pointer is constant +** and will never change. It does not need to be destroyed. ^The +** SQLITE_TRANSIENT value means that the content will likely change in +** the near future and that SQLite should make its own private copy of +** the content before returning. +** +** The typedef is necessary to work around problems in certain +** C++ compilers. See ticket #2191. +*/ +typedef void (*sqlite3_destructor_type)(void*); +#define SQLITE_STATIC ((sqlite3_destructor_type)0) +#define SQLITE_TRANSIENT ((sqlite3_destructor_type)-1) + +/* +** CAPI3REF: Setting The Result Of An SQL Function +** +** These routines are used by the xFunc or xFinal callbacks that +** implement SQL functions and aggregates. See +** [sqlite3_create_function()] and [sqlite3_create_function16()] +** for additional information. +** +** These functions work very much like the [parameter binding] family of +** functions used to bind values to host parameters in prepared statements. +** Refer to the [SQL parameter] documentation for additional information. +** +** ^The sqlite3_result_blob() interface sets the result from +** an application-defined function to be the BLOB whose content is pointed +** to by the second parameter and which is N bytes long where N is the +** third parameter. +** +** ^The sqlite3_result_zeroblob() interfaces set the result of +** the application-defined function to be a BLOB containing all zero +** bytes and N bytes in size, where N is the value of the 2nd parameter. +** +** ^The sqlite3_result_double() interface sets the result from +** an application-defined function to be a floating point value specified +** by its 2nd argument. +** +** ^The sqlite3_result_error() and sqlite3_result_error16() functions +** cause the implemented SQL function to throw an exception. +** ^SQLite uses the string pointed to by the +** 2nd parameter of sqlite3_result_error() or sqlite3_result_error16() +** as the text of an error message. ^SQLite interprets the error +** message string from sqlite3_result_error() as UTF-8. ^SQLite +** interprets the string from sqlite3_result_error16() as UTF-16 in native +** byte order. ^If the third parameter to sqlite3_result_error() +** or sqlite3_result_error16() is negative then SQLite takes as the error +** message all text up through the first zero character. +** ^If the third parameter to sqlite3_result_error() or +** sqlite3_result_error16() is non-negative then SQLite takes that many +** bytes (not characters) from the 2nd parameter as the error message. +** ^The sqlite3_result_error() and sqlite3_result_error16() +** routines make a private copy of the error message text before +** they return. Hence, the calling function can deallocate or +** modify the text after they return without harm. +** ^The sqlite3_result_error_code() function changes the error code +** returned by SQLite as a result of an error in a function. ^By default, +** the error code is SQLITE_ERROR. ^A subsequent call to sqlite3_result_error() +** or sqlite3_result_error16() resets the error code to SQLITE_ERROR. +** +** ^The sqlite3_result_toobig() interface causes SQLite to throw an error +** indicating that a string or BLOB is too long to represent. +** +** ^The sqlite3_result_nomem() interface causes SQLite to throw an error +** indicating that a memory allocation failed. +** +** ^The sqlite3_result_int() interface sets the return value +** of the application-defined function to be the 32-bit signed integer +** value given in the 2nd argument. +** ^The sqlite3_result_int64() interface sets the return value +** of the application-defined function to be the 64-bit signed integer +** value given in the 2nd argument. +** +** ^The sqlite3_result_null() interface sets the return value +** of the application-defined function to be NULL. +** +** ^The sqlite3_result_text(), sqlite3_result_text16(), +** sqlite3_result_text16le(), and sqlite3_result_text16be() interfaces +** set the return value of the application-defined function to be +** a text string which is represented as UTF-8, UTF-16 native byte order, +** UTF-16 little endian, or UTF-16 big endian, respectively. +** ^SQLite takes the text result from the application from +** the 2nd parameter of the sqlite3_result_text* interfaces. +** ^If the 3rd parameter to the sqlite3_result_text* interfaces +** is negative, then SQLite takes result text from the 2nd parameter +** through the first zero character. +** ^If the 3rd parameter to the sqlite3_result_text* interfaces +** is non-negative, then as many bytes (not characters) of the text +** pointed to by the 2nd parameter are taken as the application-defined +** function result. +** ^If the 4th parameter to the sqlite3_result_text* interfaces +** or sqlite3_result_blob is a non-NULL pointer, then SQLite calls that +** function as the destructor on the text or BLOB result when it has +** finished using that result. +** ^If the 4th parameter to the sqlite3_result_text* interfaces or to +** sqlite3_result_blob is the special constant SQLITE_STATIC, then SQLite +** assumes that the text or BLOB result is in constant space and does not +** copy the content of the parameter nor call a destructor on the content +** when it has finished using that result. +** ^If the 4th parameter to the sqlite3_result_text* interfaces +** or sqlite3_result_blob is the special constant SQLITE_TRANSIENT +** then SQLite makes a copy of the result into space obtained from +** from [sqlite3_malloc()] before it returns. +** +** ^The sqlite3_result_value() interface sets the result of +** the application-defined function to be a copy the +** [unprotected sqlite3_value] object specified by the 2nd parameter. ^The +** sqlite3_result_value() interface makes a copy of the [sqlite3_value] +** so that the [sqlite3_value] specified in the parameter may change or +** be deallocated after sqlite3_result_value() returns without harm. +** ^A [protected sqlite3_value] object may always be used where an +** [unprotected sqlite3_value] object is required, so either +** kind of [sqlite3_value] object can be used with this interface. +** +** If these routines are called from within the different thread +** than the one containing the application-defined function that received +** the [sqlite3_context] pointer, the results are undefined. +*/ +SQLITE_API void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*)); +SQLITE_API void sqlite3_result_double(sqlite3_context*, double); +SQLITE_API void sqlite3_result_error(sqlite3_context*, const char*, int); +SQLITE_API void sqlite3_result_error16(sqlite3_context*, const void*, int); +SQLITE_API void sqlite3_result_error_toobig(sqlite3_context*); +SQLITE_API void sqlite3_result_error_nomem(sqlite3_context*); +SQLITE_API void sqlite3_result_error_code(sqlite3_context*, int); +SQLITE_API void sqlite3_result_int(sqlite3_context*, int); +SQLITE_API void sqlite3_result_int64(sqlite3_context*, sqlite3_int64); +SQLITE_API void sqlite3_result_null(sqlite3_context*); +SQLITE_API void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*)); +SQLITE_API void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*)); +SQLITE_API void sqlite3_result_text16le(sqlite3_context*, const void*, int,void(*)(void*)); +SQLITE_API void sqlite3_result_text16be(sqlite3_context*, const void*, int,void(*)(void*)); +SQLITE_API void sqlite3_result_value(sqlite3_context*, sqlite3_value*); +SQLITE_API void sqlite3_result_zeroblob(sqlite3_context*, int n); + +/* +** CAPI3REF: Define New Collating Sequences +** +** These functions are used to add new collation sequences to the +** [database connection] specified as the first argument. +** +** ^The name of the new collation sequence is specified as a UTF-8 string +** for sqlite3_create_collation() and sqlite3_create_collation_v2() +** and a UTF-16 string for sqlite3_create_collation16(). ^In all cases +** the name is passed as the second function argument. +** +** ^The third argument may be one of the constants [SQLITE_UTF8], +** [SQLITE_UTF16LE], or [SQLITE_UTF16BE], indicating that the user-supplied +** routine expects to be passed pointers to strings encoded using UTF-8, +** UTF-16 little-endian, or UTF-16 big-endian, respectively. ^The +** third argument might also be [SQLITE_UTF16] to indicate that the routine +** expects pointers to be UTF-16 strings in the native byte order, or the +** argument can be [SQLITE_UTF16_ALIGNED] if the +** the routine expects pointers to 16-bit word aligned strings +** of UTF-16 in the native byte order. +** +** A pointer to the user supplied routine must be passed as the fifth +** argument. ^If it is NULL, this is the same as deleting the collation +** sequence (so that SQLite cannot call it anymore). +** ^Each time the application supplied function is invoked, it is passed +** as its first parameter a copy of the void* passed as the fourth argument +** to sqlite3_create_collation() or sqlite3_create_collation16(). +** +** ^The remaining arguments to the application-supplied routine are two strings, +** each represented by a (length, data) pair and encoded in the encoding +** that was passed as the third argument when the collation sequence was +** registered. The application defined collation routine should +** return negative, zero or positive if the first string is less than, +** equal to, or greater than the second string. i.e. (STRING1 - STRING2). +** +** ^The sqlite3_create_collation_v2() works like sqlite3_create_collation() +** except that it takes an extra argument which is a destructor for +** the collation. ^The destructor is called when the collation is +** destroyed and is passed a copy of the fourth parameter void* pointer +** of the sqlite3_create_collation_v2(). +** ^Collations are destroyed when they are overridden by later calls to the +** collation creation functions or when the [database connection] is closed +** using [sqlite3_close()]. +** +** See also: [sqlite3_collation_needed()] and [sqlite3_collation_needed16()]. +*/ +SQLITE_API int sqlite3_create_collation( + sqlite3*, + const char *zName, + int eTextRep, + void*, + int(*xCompare)(void*,int,const void*,int,const void*) +); +SQLITE_API int sqlite3_create_collation_v2( + sqlite3*, + const char *zName, + int eTextRep, + void*, + int(*xCompare)(void*,int,const void*,int,const void*), + void(*xDestroy)(void*) +); +SQLITE_API int sqlite3_create_collation16( + sqlite3*, + const void *zName, + int eTextRep, + void*, + int(*xCompare)(void*,int,const void*,int,const void*) +); + +/* +** CAPI3REF: Collation Needed Callbacks +** +** ^To avoid having to register all collation sequences before a database +** can be used, a single callback function may be registered with the +** [database connection] to be invoked whenever an undefined collation +** sequence is required. +** +** ^If the function is registered using the sqlite3_collation_needed() API, +** then it is passed the names of undefined collation sequences as strings +** encoded in UTF-8. ^If sqlite3_collation_needed16() is used, +** the names are passed as UTF-16 in machine native byte order. +** ^A call to either function replaces the existing collation-needed callback. +** +** ^(When the callback is invoked, the first argument passed is a copy +** of the second argument to sqlite3_collation_needed() or +** sqlite3_collation_needed16(). The second argument is the database +** connection. The third argument is one of [SQLITE_UTF8], [SQLITE_UTF16BE], +** or [SQLITE_UTF16LE], indicating the most desirable form of the collation +** sequence function required. The fourth parameter is the name of the +** required collation sequence.)^ +** +** The callback function should register the desired collation using +** [sqlite3_create_collation()], [sqlite3_create_collation16()], or +** [sqlite3_create_collation_v2()]. +*/ +SQLITE_API int sqlite3_collation_needed( + sqlite3*, + void*, + void(*)(void*,sqlite3*,int eTextRep,const char*) +); +SQLITE_API int sqlite3_collation_needed16( + sqlite3*, + void*, + void(*)(void*,sqlite3*,int eTextRep,const void*) +); + +#ifdef SQLITE_HAS_CODEC +/* +** Specify the key for an encrypted database. This routine should be +** called right after sqlite3_open(). +** +** The code to implement this API is not available in the public release +** of SQLite. +*/ +SQLITE_API int sqlite3_key( + sqlite3 *db, /* Database to be rekeyed */ + const void *pKey, int nKey /* The key */ +); + +/* +** Change the key on an open database. If the current database is not +** encrypted, this routine will encrypt it. If pNew==0 or nNew==0, the +** database is decrypted. +** +** The code to implement this API is not available in the public release +** of SQLite. +*/ +SQLITE_API int sqlite3_rekey( + sqlite3 *db, /* Database to be rekeyed */ + const void *pKey, int nKey /* The new key */ +); + +/* +** Specify the activation key for a SEE database. Unless +** activated, none of the SEE routines will work. +*/ +SQLITE_API void sqlite3_activate_see( + const char *zPassPhrase /* Activation phrase */ +); +#endif + +#ifdef SQLITE_ENABLE_CEROD +/* +** Specify the activation key for a CEROD database. Unless +** activated, none of the CEROD routines will work. +*/ +SQLITE_API void sqlite3_activate_cerod( + const char *zPassPhrase /* Activation phrase */ +); +#endif + +/* +** CAPI3REF: Suspend Execution For A Short Time +** +** ^The sqlite3_sleep() function causes the current thread to suspend execution +** for at least a number of milliseconds specified in its parameter. +** +** ^If the operating system does not support sleep requests with +** millisecond time resolution, then the time will be rounded up to +** the nearest second. ^The number of milliseconds of sleep actually +** requested from the operating system is returned. +** +** ^SQLite implements this interface by calling the xSleep() +** method of the default [sqlite3_vfs] object. +*/ +SQLITE_API int sqlite3_sleep(int); + +/* +** CAPI3REF: Name Of The Folder Holding Temporary Files +** +** ^(If this global variable is made to point to a string which is +** the name of a folder (a.k.a. directory), then all temporary files +** created by SQLite when using a built-in [sqlite3_vfs | VFS] +** will be placed in that directory.)^ ^If this variable +** is a NULL pointer, then SQLite performs a search for an appropriate +** temporary file directory. +** +** It is not safe to read or modify this variable in more than one +** thread at a time. It is not safe to read or modify this variable +** if a [database connection] is being used at the same time in a separate +** thread. +** It is intended that this variable be set once +** as part of process initialization and before any SQLite interface +** routines have been called and that this variable remain unchanged +** thereafter. +** +** ^The [temp_store_directory pragma] may modify this variable and cause +** it to point to memory obtained from [sqlite3_malloc]. ^Furthermore, +** the [temp_store_directory pragma] always assumes that any string +** that this variable points to is held in memory obtained from +** [sqlite3_malloc] and the pragma may attempt to free that memory +** using [sqlite3_free]. +** Hence, if this variable is modified directly, either it should be +** made NULL or made to point to memory obtained from [sqlite3_malloc] +** or else the use of the [temp_store_directory pragma] should be avoided. +*/ +SQLITE_API SQLITE_EXTERN char *sqlite3_temp_directory; + +/* +** CAPI3REF: Test For Auto-Commit Mode +** KEYWORDS: {autocommit mode} +** +** ^The sqlite3_get_autocommit() interface returns non-zero or +** zero if the given database connection is or is not in autocommit mode, +** respectively. ^Autocommit mode is on by default. +** ^Autocommit mode is disabled by a [BEGIN] statement. +** ^Autocommit mode is re-enabled by a [COMMIT] or [ROLLBACK]. +** +** If certain kinds of errors occur on a statement within a multi-statement +** transaction (errors including [SQLITE_FULL], [SQLITE_IOERR], +** [SQLITE_NOMEM], [SQLITE_BUSY], and [SQLITE_INTERRUPT]) then the +** transaction might be rolled back automatically. The only way to +** find out whether SQLite automatically rolled back the transaction after +** an error is to use this function. +** +** If another thread changes the autocommit status of the database +** connection while this routine is running, then the return value +** is undefined. +*/ +SQLITE_API int sqlite3_get_autocommit(sqlite3*); + +/* +** CAPI3REF: Find The Database Handle Of A Prepared Statement +** +** ^The sqlite3_db_handle interface returns the [database connection] handle +** to which a [prepared statement] belongs. ^The [database connection] +** returned by sqlite3_db_handle is the same [database connection] +** that was the first argument +** to the [sqlite3_prepare_v2()] call (or its variants) that was used to +** create the statement in the first place. +*/ +SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*); + +/* +** CAPI3REF: Find the next prepared statement +** +** ^This interface returns a pointer to the next [prepared statement] after +** pStmt associated with the [database connection] pDb. ^If pStmt is NULL +** then this interface returns a pointer to the first prepared statement +** associated with the database connection pDb. ^If no prepared statement +** satisfies the conditions of this routine, it returns NULL. +** +** The [database connection] pointer D in a call to +** [sqlite3_next_stmt(D,S)] must refer to an open database +** connection and in particular must not be a NULL pointer. +*/ +SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt); + +/* +** CAPI3REF: Commit And Rollback Notification Callbacks +** +** ^The sqlite3_commit_hook() interface registers a callback +** function to be invoked whenever a transaction is [COMMIT | committed]. +** ^Any callback set by a previous call to sqlite3_commit_hook() +** for the same database connection is overridden. +** ^The sqlite3_rollback_hook() interface registers a callback +** function to be invoked whenever a transaction is [ROLLBACK | rolled back]. +** ^Any callback set by a previous call to sqlite3_rollback_hook() +** for the same database connection is overridden. +** ^The pArg argument is passed through to the callback. +** ^If the callback on a commit hook function returns non-zero, +** then the commit is converted into a rollback. +** +** ^The sqlite3_commit_hook(D,C,P) and sqlite3_rollback_hook(D,C,P) functions +** return the P argument from the previous call of the same function +** on the same [database connection] D, or NULL for +** the first call for each function on D. +** +** The callback implementation must not do anything that will modify +** the database connection that invoked the callback. Any actions +** to modify the database connection must be deferred until after the +** completion of the [sqlite3_step()] call that triggered the commit +** or rollback hook in the first place. +** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their +** database connections for the meaning of "modify" in this paragraph. +** +** ^Registering a NULL function disables the callback. +** +** ^When the commit hook callback routine returns zero, the [COMMIT] +** operation is allowed to continue normally. ^If the commit hook +** returns non-zero, then the [COMMIT] is converted into a [ROLLBACK]. +** ^The rollback hook is invoked on a rollback that results from a commit +** hook returning non-zero, just as it would be with any other rollback. +** +** ^For the purposes of this API, a transaction is said to have been +** rolled back if an explicit "ROLLBACK" statement is executed, or +** an error or constraint causes an implicit rollback to occur. +** ^The rollback callback is not invoked if a transaction is +** automatically rolled back because the database connection is closed. +** +** See also the [sqlite3_update_hook()] interface. +*/ +SQLITE_API void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*); +SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); + +/* +** CAPI3REF: Data Change Notification Callbacks +** +** ^The sqlite3_update_hook() interface registers a callback function +** with the [database connection] identified by the first argument +** to be invoked whenever a row is updated, inserted or deleted. +** ^Any callback set by a previous call to this function +** for the same database connection is overridden. +** +** ^The second argument is a pointer to the function to invoke when a +** row is updated, inserted or deleted. +** ^The first argument to the callback is a copy of the third argument +** to sqlite3_update_hook(). +** ^The second callback argument is one of [SQLITE_INSERT], [SQLITE_DELETE], +** or [SQLITE_UPDATE], depending on the operation that caused the callback +** to be invoked. +** ^The third and fourth arguments to the callback contain pointers to the +** database and table name containing the affected row. +** ^The final callback parameter is the [rowid] of the row. +** ^In the case of an update, this is the [rowid] after the update takes place. +** +** ^(The update hook is not invoked when internal system tables are +** modified (i.e. sqlite_master and sqlite_sequence).)^ +** +** ^In the current implementation, the update hook +** is not invoked when duplication rows are deleted because of an +** [ON CONFLICT | ON CONFLICT REPLACE] clause. ^Nor is the update hook +** invoked when rows are deleted using the [truncate optimization]. +** The exceptions defined in this paragraph might change in a future +** release of SQLite. +** +** The update hook implementation must not do anything that will modify +** the database connection that invoked the update hook. Any actions +** to modify the database connection must be deferred until after the +** completion of the [sqlite3_step()] call that triggered the update hook. +** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their +** database connections for the meaning of "modify" in this paragraph. +** +** ^The sqlite3_update_hook(D,C,P) function +** returns the P argument from the previous call +** on the same [database connection] D, or NULL for +** the first call on D. +** +** See also the [sqlite3_commit_hook()] and [sqlite3_rollback_hook()] +** interfaces. +*/ +SQLITE_API void *sqlite3_update_hook( + sqlite3*, + void(*)(void *,int ,char const *,char const *,sqlite3_int64), + void* +); + +/* +** CAPI3REF: Enable Or Disable Shared Pager Cache +** KEYWORDS: {shared cache} +** +** ^(This routine enables or disables the sharing of the database cache +** and schema data structures between [database connection | connections] +** to the same database. Sharing is enabled if the argument is true +** and disabled if the argument is false.)^ +** +** ^Cache sharing is enabled and disabled for an entire process. +** This is a change as of SQLite version 3.5.0. In prior versions of SQLite, +** sharing was enabled or disabled for each thread separately. +** +** ^(The cache sharing mode set by this interface effects all subsequent +** calls to [sqlite3_open()], [sqlite3_open_v2()], and [sqlite3_open16()]. +** Existing database connections continue use the sharing mode +** that was in effect at the time they were opened.)^ +** +** ^(This routine returns [SQLITE_OK] if shared cache was enabled or disabled +** successfully. An [error code] is returned otherwise.)^ +** +** ^Shared cache is disabled by default. But this might change in +** future releases of SQLite. Applications that care about shared +** cache setting should set it explicitly. +** +** See Also: [SQLite Shared-Cache Mode] +*/ +SQLITE_API int sqlite3_enable_shared_cache(int); + +/* +** CAPI3REF: Attempt To Free Heap Memory +** +** ^The sqlite3_release_memory() interface attempts to free N bytes +** of heap memory by deallocating non-essential memory allocations +** held by the database library. Memory used to cache database +** pages to improve performance is an example of non-essential memory. +** ^sqlite3_release_memory() returns the number of bytes actually freed, +** which might be more or less than the amount requested. +*/ +SQLITE_API int sqlite3_release_memory(int); + +/* +** CAPI3REF: Impose A Limit On Heap Size +** +** ^The sqlite3_soft_heap_limit() interface places a "soft" limit +** on the amount of heap memory that may be allocated by SQLite. +** ^If an internal allocation is requested that would exceed the +** soft heap limit, [sqlite3_release_memory()] is invoked one or +** more times to free up some space before the allocation is performed. +** +** ^The limit is called "soft" because if [sqlite3_release_memory()] +** cannot free sufficient memory to prevent the limit from being exceeded, +** the memory is allocated anyway and the current operation proceeds. +** +** ^A negative or zero value for N means that there is no soft heap limit and +** [sqlite3_release_memory()] will only be called when memory is exhausted. +** ^The default value for the soft heap limit is zero. +** +** ^(SQLite makes a best effort to honor the soft heap limit. +** But if the soft heap limit cannot be honored, execution will +** continue without error or notification.)^ This is why the limit is +** called a "soft" limit. It is advisory only. +** +** Prior to SQLite version 3.5.0, this routine only constrained the memory +** allocated by a single thread - the same thread in which this routine +** runs. Beginning with SQLite version 3.5.0, the soft heap limit is +** applied to all threads. The value specified for the soft heap limit +** is an upper bound on the total memory allocation for all threads. In +** version 3.5.0 there is no mechanism for limiting the heap usage for +** individual threads. +*/ +SQLITE_API void sqlite3_soft_heap_limit(int); + +/* +** CAPI3REF: Extract Metadata About A Column Of A Table +** +** ^This routine returns metadata about a specific column of a specific +** database table accessible using the [database connection] handle +** passed as the first function argument. +** +** ^The column is identified by the second, third and fourth parameters to +** this function. ^The second parameter is either the name of the database +** (i.e. "main", "temp", or an attached database) containing the specified +** table or NULL. ^If it is NULL, then all attached databases are searched +** for the table using the same algorithm used by the database engine to +** resolve unqualified table references. +** +** ^The third and fourth parameters to this function are the table and column +** name of the desired column, respectively. Neither of these parameters +** may be NULL. +** +** ^Metadata is returned by writing to the memory locations passed as the 5th +** and subsequent parameters to this function. ^Any of these arguments may be +** NULL, in which case the corresponding element of metadata is omitted. +** +** ^(
+** +**
Parameter Output
Type
Description +** +**
5th const char* Data type +**
6th const char* Name of default collation sequence +**
7th int True if column has a NOT NULL constraint +**
8th int True if column is part of the PRIMARY KEY +**
9th int True if column is [AUTOINCREMENT] +**
+**
)^ +** +** ^The memory pointed to by the character pointers returned for the +** declaration type and collation sequence is valid only until the next +** call to any SQLite API function. +** +** ^If the specified table is actually a view, an [error code] is returned. +** +** ^If the specified column is "rowid", "oid" or "_rowid_" and an +** [INTEGER PRIMARY KEY] column has been explicitly declared, then the output +** parameters are set for the explicitly declared column. ^(If there is no +** explicitly declared [INTEGER PRIMARY KEY] column, then the output +** parameters are set as follows: +** +**
+**     data type: "INTEGER"
+**     collation sequence: "BINARY"
+**     not null: 0
+**     primary key: 1
+**     auto increment: 0
+** 
)^ +** +** ^(This function may load one or more schemas from database files. If an +** error occurs during this process, or if the requested table or column +** cannot be found, an [error code] is returned and an error message left +** in the [database connection] (to be retrieved using sqlite3_errmsg()).)^ +** +** ^This API is only available if the library was compiled with the +** [SQLITE_ENABLE_COLUMN_METADATA] C-preprocessor symbol defined. +*/ +SQLITE_API int sqlite3_table_column_metadata( + sqlite3 *db, /* Connection handle */ + const char *zDbName, /* Database name or NULL */ + const char *zTableName, /* Table name */ + const char *zColumnName, /* Column name */ + char const **pzDataType, /* OUTPUT: Declared data type */ + char const **pzCollSeq, /* OUTPUT: Collation sequence name */ + int *pNotNull, /* OUTPUT: True if NOT NULL constraint exists */ + int *pPrimaryKey, /* OUTPUT: True if column part of PK */ + int *pAutoinc /* OUTPUT: True if column is auto-increment */ +); + +/* +** CAPI3REF: Load An Extension +** +** ^This interface loads an SQLite extension library from the named file. +** +** ^The sqlite3_load_extension() interface attempts to load an +** SQLite extension library contained in the file zFile. +** +** ^The entry point is zProc. +** ^zProc may be 0, in which case the name of the entry point +** defaults to "sqlite3_extension_init". +** ^The sqlite3_load_extension() interface returns +** [SQLITE_OK] on success and [SQLITE_ERROR] if something goes wrong. +** ^If an error occurs and pzErrMsg is not 0, then the +** [sqlite3_load_extension()] interface shall attempt to +** fill *pzErrMsg with error message text stored in memory +** obtained from [sqlite3_malloc()]. The calling function +** should free this memory by calling [sqlite3_free()]. +** +** ^Extension loading must be enabled using +** [sqlite3_enable_load_extension()] prior to calling this API, +** otherwise an error will be returned. +** +** See also the [load_extension() SQL function]. +*/ +SQLITE_API int sqlite3_load_extension( + sqlite3 *db, /* Load the extension into this database connection */ + const char *zFile, /* Name of the shared library containing extension */ + const char *zProc, /* Entry point. Derived from zFile if 0 */ + char **pzErrMsg /* Put error message here if not 0 */ +); + +/* +** CAPI3REF: Enable Or Disable Extension Loading +** +** ^So as not to open security holes in older applications that are +** unprepared to deal with extension loading, and as a means of disabling +** extension loading while evaluating user-entered SQL, the following API +** is provided to turn the [sqlite3_load_extension()] mechanism on and off. +** +** ^Extension loading is off by default. See ticket #1863. +** ^Call the sqlite3_enable_load_extension() routine with onoff==1 +** to turn extension loading on and call it with onoff==0 to turn +** it back off again. +*/ +SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff); + +/* +** CAPI3REF: Automatically Load An Extensions +** +** ^This API can be invoked at program startup in order to register +** one or more statically linked extensions that will be available +** to all new [database connections]. +** +** ^(This routine stores a pointer to the extension entry point +** in an array that is obtained from [sqlite3_malloc()]. That memory +** is deallocated by [sqlite3_reset_auto_extension()].)^ +** +** ^This function registers an extension entry point that is +** automatically invoked whenever a new [database connection] +** is opened using [sqlite3_open()], [sqlite3_open16()], +** or [sqlite3_open_v2()]. +** ^Duplicate extensions are detected so calling this routine +** multiple times with the same extension is harmless. +** ^Automatic extensions apply across all threads. +*/ +SQLITE_API int sqlite3_auto_extension(void (*xEntryPoint)(void)); + +/* +** CAPI3REF: Reset Automatic Extension Loading +** +** ^(This function disables all previously registered automatic +** extensions. It undoes the effect of all prior +** [sqlite3_auto_extension()] calls.)^ +** +** ^This function disables automatic extensions in all threads. +*/ +SQLITE_API void sqlite3_reset_auto_extension(void); + +/* +** The interface to the virtual-table mechanism is currently considered +** to be experimental. The interface might change in incompatible ways. +** If this is a problem for you, do not use the interface at this time. +** +** When the virtual-table mechanism stabilizes, we will declare the +** interface fixed, support it indefinitely, and remove this comment. +*/ + +/* +** Structures used by the virtual table interface +*/ +typedef struct sqlite3_vtab sqlite3_vtab; +typedef struct sqlite3_index_info sqlite3_index_info; +typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor; +typedef struct sqlite3_module sqlite3_module; + +/* +** CAPI3REF: Virtual Table Object +** KEYWORDS: sqlite3_module {virtual table module} +** +** This structure, sometimes called a a "virtual table module", +** defines the implementation of a [virtual tables]. +** This structure consists mostly of methods for the module. +** +** ^A virtual table module is created by filling in a persistent +** instance of this structure and passing a pointer to that instance +** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. +** ^The registration remains valid until it is replaced by a different +** module or until the [database connection] closes. The content +** of this structure must not change while it is registered with +** any database connection. +*/ +struct sqlite3_module { + int iVersion; + int (*xCreate)(sqlite3*, void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVTab, char**); + int (*xConnect)(sqlite3*, void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVTab, char**); + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + int (*xDisconnect)(sqlite3_vtab *pVTab); + int (*xDestroy)(sqlite3_vtab *pVTab); + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + int (*xClose)(sqlite3_vtab_cursor*); + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + int (*xNext)(sqlite3_vtab_cursor*); + int (*xEof)(sqlite3_vtab_cursor*); + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int); + int (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid); + int (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *); + int (*xBegin)(sqlite3_vtab *pVTab); + int (*xSync)(sqlite3_vtab *pVTab); + int (*xCommit)(sqlite3_vtab *pVTab); + int (*xRollback)(sqlite3_vtab *pVTab); + int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg); + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); +}; + +/* +** CAPI3REF: Virtual Table Indexing Information +** KEYWORDS: sqlite3_index_info +** +** The sqlite3_index_info structure and its substructures is used to +** pass information into and receive the reply from the [xBestIndex] +** method of a [virtual table module]. The fields under **Inputs** are the +** inputs to xBestIndex and are read-only. xBestIndex inserts its +** results into the **Outputs** fields. +** +** ^(The aConstraint[] array records WHERE clause constraints of the form: +** +**
column OP expr
+** +** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is +** stored in aConstraint[].op.)^ ^(The index of the column is stored in +** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the +** expr on the right-hand side can be evaluated (and thus the constraint +** is usable) and false if it cannot.)^ +** +** ^The optimizer automatically inverts terms of the form "expr OP column" +** and makes other simplifications to the WHERE clause in an attempt to +** get as many WHERE clause terms into the form shown above as possible. +** ^The aConstraint[] array only reports WHERE clause terms that are +** relevant to the particular virtual table being queried. +** +** ^Information about the ORDER BY clause is stored in aOrderBy[]. +** ^Each term of aOrderBy records a column of the ORDER BY clause. +** +** The [xBestIndex] method must fill aConstraintUsage[] with information +** about what parameters to pass to xFilter. ^If argvIndex>0 then +** the right-hand side of the corresponding aConstraint[] is evaluated +** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit +** is true, then the constraint is assumed to be fully handled by the +** virtual table and is not checked again by SQLite.)^ +** +** ^The idxNum and idxPtr values are recorded and passed into the +** [xFilter] method. +** ^[sqlite3_free()] is used to free idxPtr if and only if +** needToFreeIdxPtr is true. +** +** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in +** the correct order to satisfy the ORDER BY clause so that no separate +** sorting step is required. +** +** ^The estimatedCost value is an estimate of the cost of doing the +** particular lookup. A full scan of a table with N entries should have +** a cost of N. A binary search of a table of N entries should have a +** cost of approximately log(N). +*/ +struct sqlite3_index_info { + /* Inputs */ + int nConstraint; /* Number of entries in aConstraint */ + struct sqlite3_index_constraint { + int iColumn; /* Column on left-hand side of constraint */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *aConstraint; /* Table of WHERE clause constraints */ + int nOrderBy; /* Number of terms in the ORDER BY clause */ + struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ +}; +#define SQLITE_INDEX_CONSTRAINT_EQ 2 +#define SQLITE_INDEX_CONSTRAINT_GT 4 +#define SQLITE_INDEX_CONSTRAINT_LE 8 +#define SQLITE_INDEX_CONSTRAINT_LT 16 +#define SQLITE_INDEX_CONSTRAINT_GE 32 +#define SQLITE_INDEX_CONSTRAINT_MATCH 64 + +/* +** CAPI3REF: Register A Virtual Table Implementation +** +** ^These routines are used to register a new [virtual table module] name. +** ^Module names must be registered before +** creating a new [virtual table] using the module and before using a +** preexisting [virtual table] for the module. +** +** ^The module name is registered on the [database connection] specified +** by the first parameter. ^The name of the module is given by the +** second parameter. ^The third parameter is a pointer to +** the implementation of the [virtual table module]. ^The fourth +** parameter is an arbitrary client data pointer that is passed through +** into the [xCreate] and [xConnect] methods of the virtual table module +** when a new virtual table is be being created or reinitialized. +** +** ^The sqlite3_create_module_v2() interface has a fifth parameter which +** is a pointer to a destructor for the pClientData. ^SQLite will +** invoke the destructor function (if it is not NULL) when SQLite +** no longer needs the pClientData pointer. ^The sqlite3_create_module() +** interface is equivalent to sqlite3_create_module_v2() with a NULL +** destructor. +*/ +SQLITE_API int sqlite3_create_module( + sqlite3 *db, /* SQLite connection to register module with */ + const char *zName, /* Name of the module */ + const sqlite3_module *p, /* Methods for the module */ + void *pClientData /* Client data for xCreate/xConnect */ +); +SQLITE_API int sqlite3_create_module_v2( + sqlite3 *db, /* SQLite connection to register module with */ + const char *zName, /* Name of the module */ + const sqlite3_module *p, /* Methods for the module */ + void *pClientData, /* Client data for xCreate/xConnect */ + void(*xDestroy)(void*) /* Module destructor function */ +); + +/* +** CAPI3REF: Virtual Table Instance Object +** KEYWORDS: sqlite3_vtab +** +** Every [virtual table module] implementation uses a subclass +** of this object to describe a particular instance +** of the [virtual table]. Each subclass will +** be tailored to the specific needs of the module implementation. +** The purpose of this superclass is to define certain fields that are +** common to all module implementations. +** +** ^Virtual tables methods can set an error message by assigning a +** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should +** take care that any prior string is freed by a call to [sqlite3_free()] +** prior to assigning a new string to zErrMsg. ^After the error message +** is delivered up to the client application, the string will be automatically +** freed by sqlite3_free() and the zErrMsg field will be zeroed. +*/ +struct sqlite3_vtab { + const sqlite3_module *pModule; /* The module for this virtual table */ + int nRef; /* NO LONGER USED */ + char *zErrMsg; /* Error message from sqlite3_mprintf() */ + /* Virtual table implementations will typically add additional fields */ +}; + +/* +** CAPI3REF: Virtual Table Cursor Object +** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} +** +** Every [virtual table module] implementation uses a subclass of the +** following structure to describe cursors that point into the +** [virtual table] and are used +** to loop through the virtual table. Cursors are created using the +** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed +** by the [sqlite3_module.xClose | xClose] method. Cursors are used +** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods +** of the module. Each module implementation will define +** the content of a cursor structure to suit its own needs. +** +** This superclass exists in order to define fields of the cursor that +** are common to all implementations. +*/ +struct sqlite3_vtab_cursor { + sqlite3_vtab *pVtab; /* Virtual table of this cursor */ + /* Virtual table implementations will typically add additional fields */ +}; + +/* +** CAPI3REF: Declare The Schema Of A Virtual Table +** +** ^The [xCreate] and [xConnect] methods of a +** [virtual table module] call this interface +** to declare the format (the names and datatypes of the columns) of +** the virtual tables they implement. +*/ +SQLITE_API int sqlite3_declare_vtab(sqlite3*, const char *zSQL); + +/* +** CAPI3REF: Overload A Function For A Virtual Table +** +** ^(Virtual tables can provide alternative implementations of functions +** using the [xFindFunction] method of the [virtual table module]. +** But global versions of those functions +** must exist in order to be overloaded.)^ +** +** ^(This API makes sure a global version of a function with a particular +** name and number of parameters exists. If no such function exists +** before this API is called, a new function is created.)^ ^The implementation +** of the new function always causes an exception to be thrown. So +** the new function is not good for anything by itself. Its only +** purpose is to be a placeholder function that can be overloaded +** by a [virtual table]. +*/ +SQLITE_API int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); + +/* +** The interface to the virtual-table mechanism defined above (back up +** to a comment remarkably similar to this one) is currently considered +** to be experimental. The interface might change in incompatible ways. +** If this is a problem for you, do not use the interface at this time. +** +** When the virtual-table mechanism stabilizes, we will declare the +** interface fixed, support it indefinitely, and remove this comment. +*/ + +/* +** CAPI3REF: A Handle To An Open BLOB +** KEYWORDS: {BLOB handle} {BLOB handles} +** +** An instance of this object represents an open BLOB on which +** [sqlite3_blob_open | incremental BLOB I/O] can be performed. +** ^Objects of this type are created by [sqlite3_blob_open()] +** and destroyed by [sqlite3_blob_close()]. +** ^The [sqlite3_blob_read()] and [sqlite3_blob_write()] interfaces +** can be used to read or write small subsections of the BLOB. +** ^The [sqlite3_blob_bytes()] interface returns the size of the BLOB in bytes. +*/ +typedef struct sqlite3_blob sqlite3_blob; + +/* +** CAPI3REF: Open A BLOB For Incremental I/O +** +** ^(This interfaces opens a [BLOB handle | handle] to the BLOB located +** in row iRow, column zColumn, table zTable in database zDb; +** in other words, the same BLOB that would be selected by: +** +**
+**     SELECT zColumn FROM zDb.zTable WHERE [rowid] = iRow;
+** 
)^ +** +** ^If the flags parameter is non-zero, then the BLOB is opened for read +** and write access. ^If it is zero, the BLOB is opened for read access. +** ^It is not possible to open a column that is part of an index or primary +** key for writing. ^If [foreign key constraints] are enabled, it is +** not possible to open a column that is part of a [child key] for writing. +** +** ^Note that the database name is not the filename that contains +** the database but rather the symbolic name of the database that +** appears after the AS keyword when the database is connected using [ATTACH]. +** ^For the main database file, the database name is "main". +** ^For TEMP tables, the database name is "temp". +** +** ^(On success, [SQLITE_OK] is returned and the new [BLOB handle] is written +** to *ppBlob. Otherwise an [error code] is returned and *ppBlob is set +** to be a null pointer.)^ +** ^This function sets the [database connection] error code and message +** accessible via [sqlite3_errcode()] and [sqlite3_errmsg()] and related +** functions. ^Note that the *ppBlob variable is always initialized in a +** way that makes it safe to invoke [sqlite3_blob_close()] on *ppBlob +** regardless of the success or failure of this routine. +** +** ^(If the row that a BLOB handle points to is modified by an +** [UPDATE], [DELETE], or by [ON CONFLICT] side-effects +** then the BLOB handle is marked as "expired". +** This is true if any column of the row is changed, even a column +** other than the one the BLOB handle is open on.)^ +** ^Calls to [sqlite3_blob_read()] and [sqlite3_blob_write()] for +** a expired BLOB handle fail with an return code of [SQLITE_ABORT]. +** ^(Changes written into a BLOB prior to the BLOB expiring are not +** rolled back by the expiration of the BLOB. Such changes will eventually +** commit if the transaction continues to completion.)^ +** +** ^Use the [sqlite3_blob_bytes()] interface to determine the size of +** the opened blob. ^The size of a blob may not be changed by this +** interface. Use the [UPDATE] SQL command to change the size of a +** blob. +** +** ^The [sqlite3_bind_zeroblob()] and [sqlite3_result_zeroblob()] interfaces +** and the built-in [zeroblob] SQL function can be used, if desired, +** to create an empty, zero-filled blob in which to read or write using +** this interface. +** +** To avoid a resource leak, every open [BLOB handle] should eventually +** be released by a call to [sqlite3_blob_close()]. +*/ +SQLITE_API int sqlite3_blob_open( + sqlite3*, + const char *zDb, + const char *zTable, + const char *zColumn, + sqlite3_int64 iRow, + int flags, + sqlite3_blob **ppBlob +); + +/* +** CAPI3REF: Close A BLOB Handle +** +** ^Closes an open [BLOB handle]. +** +** ^Closing a BLOB shall cause the current transaction to commit +** if there are no other BLOBs, no pending prepared statements, and the +** database connection is in [autocommit mode]. +** ^If any writes were made to the BLOB, they might be held in cache +** until the close operation if they will fit. +** +** ^(Closing the BLOB often forces the changes +** out to disk and so if any I/O errors occur, they will likely occur +** at the time when the BLOB is closed. Any errors that occur during +** closing are reported as a non-zero return value.)^ +** +** ^(The BLOB is closed unconditionally. Even if this routine returns +** an error code, the BLOB is still closed.)^ +** +** ^Calling this routine with a null pointer (such as would be returned +** by a failed call to [sqlite3_blob_open()]) is a harmless no-op. +*/ +SQLITE_API int sqlite3_blob_close(sqlite3_blob *); + +/* +** CAPI3REF: Return The Size Of An Open BLOB +** +** ^Returns the size in bytes of the BLOB accessible via the +** successfully opened [BLOB handle] in its only argument. ^The +** incremental blob I/O routines can only read or overwriting existing +** blob content; they cannot change the size of a blob. +** +** This routine only works on a [BLOB handle] which has been created +** by a prior successful call to [sqlite3_blob_open()] and which has not +** been closed by [sqlite3_blob_close()]. Passing any other pointer in +** to this routine results in undefined and probably undesirable behavior. +*/ +SQLITE_API int sqlite3_blob_bytes(sqlite3_blob *); + +/* +** CAPI3REF: Read Data From A BLOB Incrementally +** +** ^(This function is used to read data from an open [BLOB handle] into a +** caller-supplied buffer. N bytes of data are copied into buffer Z +** from the open BLOB, starting at offset iOffset.)^ +** +** ^If offset iOffset is less than N bytes from the end of the BLOB, +** [SQLITE_ERROR] is returned and no data is read. ^If N or iOffset is +** less than zero, [SQLITE_ERROR] is returned and no data is read. +** ^The size of the blob (and hence the maximum value of N+iOffset) +** can be determined using the [sqlite3_blob_bytes()] interface. +** +** ^An attempt to read from an expired [BLOB handle] fails with an +** error code of [SQLITE_ABORT]. +** +** ^(On success, sqlite3_blob_read() returns SQLITE_OK. +** Otherwise, an [error code] or an [extended error code] is returned.)^ +** +** This routine only works on a [BLOB handle] which has been created +** by a prior successful call to [sqlite3_blob_open()] and which has not +** been closed by [sqlite3_blob_close()]. Passing any other pointer in +** to this routine results in undefined and probably undesirable behavior. +** +** See also: [sqlite3_blob_write()]. +*/ +SQLITE_API int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset); + +/* +** CAPI3REF: Write Data Into A BLOB Incrementally +** +** ^This function is used to write data into an open [BLOB handle] from a +** caller-supplied buffer. ^N bytes of data are copied from the buffer Z +** into the open BLOB, starting at offset iOffset. +** +** ^If the [BLOB handle] passed as the first argument was not opened for +** writing (the flags parameter to [sqlite3_blob_open()] was zero), +** this function returns [SQLITE_READONLY]. +** +** ^This function may only modify the contents of the BLOB; it is +** not possible to increase the size of a BLOB using this API. +** ^If offset iOffset is less than N bytes from the end of the BLOB, +** [SQLITE_ERROR] is returned and no data is written. ^If N is +** less than zero [SQLITE_ERROR] is returned and no data is written. +** The size of the BLOB (and hence the maximum value of N+iOffset) +** can be determined using the [sqlite3_blob_bytes()] interface. +** +** ^An attempt to write to an expired [BLOB handle] fails with an +** error code of [SQLITE_ABORT]. ^Writes to the BLOB that occurred +** before the [BLOB handle] expired are not rolled back by the +** expiration of the handle, though of course those changes might +** have been overwritten by the statement that expired the BLOB handle +** or by other independent statements. +** +** ^(On success, sqlite3_blob_write() returns SQLITE_OK. +** Otherwise, an [error code] or an [extended error code] is returned.)^ +** +** This routine only works on a [BLOB handle] which has been created +** by a prior successful call to [sqlite3_blob_open()] and which has not +** been closed by [sqlite3_blob_close()]. Passing any other pointer in +** to this routine results in undefined and probably undesirable behavior. +** +** See also: [sqlite3_blob_read()]. +*/ +SQLITE_API int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset); + +/* +** CAPI3REF: Virtual File System Objects +** +** A virtual filesystem (VFS) is an [sqlite3_vfs] object +** that SQLite uses to interact +** with the underlying operating system. Most SQLite builds come with a +** single default VFS that is appropriate for the host computer. +** New VFSes can be registered and existing VFSes can be unregistered. +** The following interfaces are provided. +** +** ^The sqlite3_vfs_find() interface returns a pointer to a VFS given its name. +** ^Names are case sensitive. +** ^Names are zero-terminated UTF-8 strings. +** ^If there is no match, a NULL pointer is returned. +** ^If zVfsName is NULL then the default VFS is returned. +** +** ^New VFSes are registered with sqlite3_vfs_register(). +** ^Each new VFS becomes the default VFS if the makeDflt flag is set. +** ^The same VFS can be registered multiple times without injury. +** ^To make an existing VFS into the default VFS, register it again +** with the makeDflt flag set. If two different VFSes with the +** same name are registered, the behavior is undefined. If a +** VFS is registered with a name that is NULL or an empty string, +** then the behavior is undefined. +** +** ^Unregister a VFS with the sqlite3_vfs_unregister() interface. +** ^(If the default VFS is unregistered, another VFS is chosen as +** the default. The choice for the new VFS is arbitrary.)^ +*/ +SQLITE_API sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName); +SQLITE_API int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt); +SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); + +/* +** CAPI3REF: Mutexes +** +** The SQLite core uses these routines for thread +** synchronization. Though they are intended for internal +** use by SQLite, code that links against SQLite is +** permitted to use any of these routines. +** +** The SQLite source code contains multiple implementations +** of these mutex routines. An appropriate implementation +** is selected automatically at compile-time. ^(The following +** implementations are available in the SQLite core: +** +**
    +**
  • SQLITE_MUTEX_OS2 +**
  • SQLITE_MUTEX_PTHREAD +**
  • SQLITE_MUTEX_W32 +**
  • SQLITE_MUTEX_NOOP +**
)^ +** +** ^The SQLITE_MUTEX_NOOP implementation is a set of routines +** that does no real locking and is appropriate for use in +** a single-threaded application. ^The SQLITE_MUTEX_OS2, +** SQLITE_MUTEX_PTHREAD, and SQLITE_MUTEX_W32 implementations +** are appropriate for use on OS/2, Unix, and Windows. +** +** ^(If SQLite is compiled with the SQLITE_MUTEX_APPDEF preprocessor +** macro defined (with "-DSQLITE_MUTEX_APPDEF=1"), then no mutex +** implementation is included with the library. In this case the +** application must supply a custom mutex implementation using the +** [SQLITE_CONFIG_MUTEX] option of the sqlite3_config() function +** before calling sqlite3_initialize() or any other public sqlite3_ +** function that calls sqlite3_initialize().)^ +** +** ^The sqlite3_mutex_alloc() routine allocates a new +** mutex and returns a pointer to it. ^If it returns NULL +** that means that a mutex could not be allocated. ^SQLite +** will unwind its stack and return an error. ^(The argument +** to sqlite3_mutex_alloc() is one of these integer constants: +** +**
    +**
  • SQLITE_MUTEX_FAST +**
  • SQLITE_MUTEX_RECURSIVE +**
  • SQLITE_MUTEX_STATIC_MASTER +**
  • SQLITE_MUTEX_STATIC_MEM +**
  • SQLITE_MUTEX_STATIC_MEM2 +**
  • SQLITE_MUTEX_STATIC_PRNG +**
  • SQLITE_MUTEX_STATIC_LRU +**
  • SQLITE_MUTEX_STATIC_LRU2 +**
)^ +** +** ^The first two constants (SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) +** cause sqlite3_mutex_alloc() to create +** a new mutex. ^The new mutex is recursive when SQLITE_MUTEX_RECURSIVE +** is used but not necessarily so when SQLITE_MUTEX_FAST is used. +** The mutex implementation does not need to make a distinction +** between SQLITE_MUTEX_RECURSIVE and SQLITE_MUTEX_FAST if it does +** not want to. ^SQLite will only request a recursive mutex in +** cases where it really needs one. ^If a faster non-recursive mutex +** implementation is available on the host platform, the mutex subsystem +** might return such a mutex in response to SQLITE_MUTEX_FAST. +** +** ^The other allowed parameters to sqlite3_mutex_alloc() (anything other +** than SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) each return +** a pointer to a static preexisting mutex. ^Six static mutexes are +** used by the current version of SQLite. Future versions of SQLite +** may add additional static mutexes. Static mutexes are for internal +** use by SQLite only. Applications that use SQLite mutexes should +** use only the dynamic mutexes returned by SQLITE_MUTEX_FAST or +** SQLITE_MUTEX_RECURSIVE. +** +** ^Note that if one of the dynamic mutex parameters (SQLITE_MUTEX_FAST +** or SQLITE_MUTEX_RECURSIVE) is used then sqlite3_mutex_alloc() +** returns a different mutex on every call. ^But for the static +** mutex types, the same mutex is returned on every call that has +** the same type number. +** +** ^The sqlite3_mutex_free() routine deallocates a previously +** allocated dynamic mutex. ^SQLite is careful to deallocate every +** dynamic mutex that it allocates. The dynamic mutexes must not be in +** use when they are deallocated. Attempting to deallocate a static +** mutex results in undefined behavior. ^SQLite never deallocates +** a static mutex. +** +** ^The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt +** to enter a mutex. ^If another thread is already within the mutex, +** sqlite3_mutex_enter() will block and sqlite3_mutex_try() will return +** SQLITE_BUSY. ^The sqlite3_mutex_try() interface returns [SQLITE_OK] +** upon successful entry. ^(Mutexes created using +** SQLITE_MUTEX_RECURSIVE can be entered multiple times by the same thread. +** In such cases the, +** mutex must be exited an equal number of times before another thread +** can enter.)^ ^(If the same thread tries to enter any other +** kind of mutex more than once, the behavior is undefined. +** SQLite will never exhibit +** such behavior in its own use of mutexes.)^ +** +** ^(Some systems (for example, Windows 95) do not support the operation +** implemented by sqlite3_mutex_try(). On those systems, sqlite3_mutex_try() +** will always return SQLITE_BUSY. The SQLite core only ever uses +** sqlite3_mutex_try() as an optimization so this is acceptable behavior.)^ +** +** ^The sqlite3_mutex_leave() routine exits a mutex that was +** previously entered by the same thread. ^(The behavior +** is undefined if the mutex is not currently entered by the +** calling thread or is not currently allocated. SQLite will +** never do either.)^ +** +** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), or +** sqlite3_mutex_leave() is a NULL pointer, then all three routines +** behave as no-ops. +** +** See also: [sqlite3_mutex_held()] and [sqlite3_mutex_notheld()]. +*/ +SQLITE_API sqlite3_mutex *sqlite3_mutex_alloc(int); +SQLITE_API void sqlite3_mutex_free(sqlite3_mutex*); +SQLITE_API void sqlite3_mutex_enter(sqlite3_mutex*); +SQLITE_API int sqlite3_mutex_try(sqlite3_mutex*); +SQLITE_API void sqlite3_mutex_leave(sqlite3_mutex*); + +/* +** CAPI3REF: Mutex Methods Object +** +** An instance of this structure defines the low-level routines +** used to allocate and use mutexes. +** +** Usually, the default mutex implementations provided by SQLite are +** sufficient, however the user has the option of substituting a custom +** implementation for specialized deployments or systems for which SQLite +** does not provide a suitable implementation. In this case, the user +** creates and populates an instance of this structure to pass +** to sqlite3_config() along with the [SQLITE_CONFIG_MUTEX] option. +** Additionally, an instance of this structure can be used as an +** output variable when querying the system for the current mutex +** implementation, using the [SQLITE_CONFIG_GETMUTEX] option. +** +** ^The xMutexInit method defined by this structure is invoked as +** part of system initialization by the sqlite3_initialize() function. +** ^The xMutexInit routine is calle by SQLite exactly once for each +** effective call to [sqlite3_initialize()]. +** +** ^The xMutexEnd method defined by this structure is invoked as +** part of system shutdown by the sqlite3_shutdown() function. The +** implementation of this method is expected to release all outstanding +** resources obtained by the mutex methods implementation, especially +** those obtained by the xMutexInit method. ^The xMutexEnd() +** interface is invoked exactly once for each call to [sqlite3_shutdown()]. +** +** ^(The remaining seven methods defined by this structure (xMutexAlloc, +** xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld and +** xMutexNotheld) implement the following interfaces (respectively): +** +**
    +**
  • [sqlite3_mutex_alloc()]
  • +**
  • [sqlite3_mutex_free()]
  • +**
  • [sqlite3_mutex_enter()]
  • +**
  • [sqlite3_mutex_try()]
  • +**
  • [sqlite3_mutex_leave()]
  • +**
  • [sqlite3_mutex_held()]
  • +**
  • [sqlite3_mutex_notheld()]
  • +**
)^ +** +** The only difference is that the public sqlite3_XXX functions enumerated +** above silently ignore any invocations that pass a NULL pointer instead +** of a valid mutex handle. The implementations of the methods defined +** by this structure are not required to handle this case, the results +** of passing a NULL pointer instead of a valid mutex handle are undefined +** (i.e. it is acceptable to provide an implementation that segfaults if +** it is passed a NULL pointer). +** +** The xMutexInit() method must be threadsafe. ^It must be harmless to +** invoke xMutexInit() mutiple times within the same process and without +** intervening calls to xMutexEnd(). Second and subsequent calls to +** xMutexInit() must be no-ops. +** +** ^xMutexInit() must not use SQLite memory allocation ([sqlite3_malloc()] +** and its associates). ^Similarly, xMutexAlloc() must not use SQLite memory +** allocation for a static mutex. ^However xMutexAlloc() may use SQLite +** memory allocation for a fast or recursive mutex. +** +** ^SQLite will invoke the xMutexEnd() method when [sqlite3_shutdown()] is +** called, but only if the prior call to xMutexInit returned SQLITE_OK. +** If xMutexInit fails in any way, it is expected to clean up after itself +** prior to returning. +*/ +typedef struct sqlite3_mutex_methods sqlite3_mutex_methods; +struct sqlite3_mutex_methods { + int (*xMutexInit)(void); + int (*xMutexEnd)(void); + sqlite3_mutex *(*xMutexAlloc)(int); + void (*xMutexFree)(sqlite3_mutex *); + void (*xMutexEnter)(sqlite3_mutex *); + int (*xMutexTry)(sqlite3_mutex *); + void (*xMutexLeave)(sqlite3_mutex *); + int (*xMutexHeld)(sqlite3_mutex *); + int (*xMutexNotheld)(sqlite3_mutex *); +}; + +/* +** CAPI3REF: Mutex Verification Routines +** +** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routines +** are intended for use inside assert() statements. ^The SQLite core +** never uses these routines except inside an assert() and applications +** are advised to follow the lead of the core. ^The SQLite core only +** provides implementations for these routines when it is compiled +** with the SQLITE_DEBUG flag. ^External mutex implementations +** are only required to provide these routines if SQLITE_DEBUG is +** defined and if NDEBUG is not defined. +** +** ^These routines should return true if the mutex in their argument +** is held or not held, respectively, by the calling thread. +** +** ^The implementation is not required to provided versions of these +** routines that actually work. If the implementation does not provide working +** versions of these routines, it should at least provide stubs that always +** return true so that one does not get spurious assertion failures. +** +** ^If the argument to sqlite3_mutex_held() is a NULL pointer then +** the routine should return 1. This seems counter-intuitive since +** clearly the mutex cannot be held if it does not exist. But the +** the reason the mutex does not exist is because the build is not +** using mutexes. And we do not want the assert() containing the +** call to sqlite3_mutex_held() to fail, so a non-zero return is +** the appropriate thing to do. ^The sqlite3_mutex_notheld() +** interface should also return 1 when given a NULL pointer. +*/ +#ifndef NDEBUG +SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*); +SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*); +#endif + +/* +** CAPI3REF: Mutex Types +** +** The [sqlite3_mutex_alloc()] interface takes a single argument +** which is one of these integer constants. +** +** The set of static mutexes may change from one SQLite release to the +** next. Applications that override the built-in mutex logic must be +** prepared to accommodate additional static mutexes. +*/ +#define SQLITE_MUTEX_FAST 0 +#define SQLITE_MUTEX_RECURSIVE 1 +#define SQLITE_MUTEX_STATIC_MASTER 2 +#define SQLITE_MUTEX_STATIC_MEM 3 /* sqlite3_malloc() */ +#define SQLITE_MUTEX_STATIC_MEM2 4 /* NOT USED */ +#define SQLITE_MUTEX_STATIC_OPEN 4 /* sqlite3BtreeOpen() */ +#define SQLITE_MUTEX_STATIC_PRNG 5 /* sqlite3_random() */ +#define SQLITE_MUTEX_STATIC_LRU 6 /* lru page list */ +#define SQLITE_MUTEX_STATIC_LRU2 7 /* lru page list */ + +/* +** CAPI3REF: Retrieve the mutex for a database connection +** +** ^This interface returns a pointer the [sqlite3_mutex] object that +** serializes access to the [database connection] given in the argument +** when the [threading mode] is Serialized. +** ^If the [threading mode] is Single-thread or Multi-thread then this +** routine returns a NULL pointer. +*/ +SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3*); + +/* +** CAPI3REF: Low-Level Control Of Database Files +** +** ^The [sqlite3_file_control()] interface makes a direct call to the +** xFileControl method for the [sqlite3_io_methods] object associated +** with a particular database identified by the second argument. ^The +** name of the database "main" for the main database or "temp" for the +** TEMP database, or the name that appears after the AS keyword for +** databases that are added using the [ATTACH] SQL command. +** ^A NULL pointer can be used in place of "main" to refer to the +** main database file. +** ^The third and fourth parameters to this routine +** are passed directly through to the second and third parameters of +** the xFileControl method. ^The return value of the xFileControl +** method becomes the return value of this routine. +** +** ^If the second parameter (zDbName) does not match the name of any +** open database file, then SQLITE_ERROR is returned. ^This error +** code is not remembered and will not be recalled by [sqlite3_errcode()] +** or [sqlite3_errmsg()]. The underlying xFileControl method might +** also return SQLITE_ERROR. There is no way to distinguish between +** an incorrect zDbName and an SQLITE_ERROR return from the underlying +** xFileControl method. +** +** See also: [SQLITE_FCNTL_LOCKSTATE] +*/ +SQLITE_API int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*); + +/* +** CAPI3REF: Testing Interface +** +** ^The sqlite3_test_control() interface is used to read out internal +** state of SQLite and to inject faults into SQLite for testing +** purposes. ^The first parameter is an operation code that determines +** the number, meaning, and operation of all subsequent parameters. +** +** This interface is not for use by applications. It exists solely +** for verifying the correct operation of the SQLite library. Depending +** on how the SQLite library is compiled, this interface might not exist. +** +** The details of the operation codes, their meanings, the parameters +** they take, and what they do are all subject to change without notice. +** Unlike most of the SQLite API, this function is not guaranteed to +** operate consistently from one release to the next. +*/ +SQLITE_API int sqlite3_test_control(int op, ...); + +/* +** CAPI3REF: Testing Interface Operation Codes +** +** These constants are the valid operation code parameters used +** as the first argument to [sqlite3_test_control()]. +** +** These parameters and their meanings are subject to change +** without notice. These values are for testing purposes only. +** Applications should not use any of these parameters or the +** [sqlite3_test_control()] interface. +*/ +#define SQLITE_TESTCTRL_FIRST 5 +#define SQLITE_TESTCTRL_PRNG_SAVE 5 +#define SQLITE_TESTCTRL_PRNG_RESTORE 6 +#define SQLITE_TESTCTRL_PRNG_RESET 7 +#define SQLITE_TESTCTRL_BITVEC_TEST 8 +#define SQLITE_TESTCTRL_FAULT_INSTALL 9 +#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10 +#define SQLITE_TESTCTRL_PENDING_BYTE 11 +#define SQLITE_TESTCTRL_ASSERT 12 +#define SQLITE_TESTCTRL_ALWAYS 13 +#define SQLITE_TESTCTRL_RESERVE 14 +#define SQLITE_TESTCTRL_OPTIMIZATIONS 15 +#define SQLITE_TESTCTRL_ISKEYWORD 16 +#define SQLITE_TESTCTRL_PGHDRSZ 17 +#define SQLITE_TESTCTRL_LAST 17 + +/* +** CAPI3REF: SQLite Runtime Status +** +** ^This interface is used to retrieve runtime status information +** about the preformance of SQLite, and optionally to reset various +** highwater marks. ^The first argument is an integer code for +** the specific parameter to measure. ^(Recognized integer codes +** are of the form [SQLITE_STATUS_MEMORY_USED | SQLITE_STATUS_...].)^ +** ^The current value of the parameter is returned into *pCurrent. +** ^The highest recorded value is returned in *pHighwater. ^If the +** resetFlag is true, then the highest record value is reset after +** *pHighwater is written. ^(Some parameters do not record the highest +** value. For those parameters +** nothing is written into *pHighwater and the resetFlag is ignored.)^ +** ^(Other parameters record only the highwater mark and not the current +** value. For these latter parameters nothing is written into *pCurrent.)^ +** +** ^The sqlite3_db_status() routine returns SQLITE_OK on success and a +** non-zero [error code] on failure. +** +** This routine is threadsafe but is not atomic. This routine can be +** called while other threads are running the same or different SQLite +** interfaces. However the values returned in *pCurrent and +** *pHighwater reflect the status of SQLite at different points in time +** and it is possible that another thread might change the parameter +** in between the times when *pCurrent and *pHighwater are written. +** +** See also: [sqlite3_db_status()] +*/ +SQLITE_API int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag); + + +/* +** CAPI3REF: Status Parameters +** +** These integer constants designate various run-time status parameters +** that can be returned by [sqlite3_status()]. +** +**
+** ^(
SQLITE_STATUS_MEMORY_USED
+**
This parameter is the current amount of memory checked out +** using [sqlite3_malloc()], either directly or indirectly. The +** figure includes calls made to [sqlite3_malloc()] by the application +** and internal memory usage by the SQLite library. Scratch memory +** controlled by [SQLITE_CONFIG_SCRATCH] and auxiliary page-cache +** memory controlled by [SQLITE_CONFIG_PAGECACHE] is not included in +** this parameter. The amount returned is the sum of the allocation +** sizes as reported by the xSize method in [sqlite3_mem_methods].
)^ +** +** ^(
SQLITE_STATUS_MALLOC_SIZE
+**
This parameter records the largest memory allocation request +** handed to [sqlite3_malloc()] or [sqlite3_realloc()] (or their +** internal equivalents). Only the value returned in the +** *pHighwater parameter to [sqlite3_status()] is of interest. +** The value written into the *pCurrent parameter is undefined.
)^ +** +** ^(
SQLITE_STATUS_PAGECACHE_USED
+**
This parameter returns the number of pages used out of the +** [pagecache memory allocator] that was configured using +** [SQLITE_CONFIG_PAGECACHE]. The +** value returned is in pages, not in bytes.
)^ +** +** ^(
SQLITE_STATUS_PAGECACHE_OVERFLOW
+**
This parameter returns the number of bytes of page cache +** allocation which could not be statisfied by the [SQLITE_CONFIG_PAGECACHE] +** buffer and where forced to overflow to [sqlite3_malloc()]. The +** returned value includes allocations that overflowed because they +** where too large (they were larger than the "sz" parameter to +** [SQLITE_CONFIG_PAGECACHE]) and allocations that overflowed because +** no space was left in the page cache.
)^ +** +** ^(
SQLITE_STATUS_PAGECACHE_SIZE
+**
This parameter records the largest memory allocation request +** handed to [pagecache memory allocator]. Only the value returned in the +** *pHighwater parameter to [sqlite3_status()] is of interest. +** The value written into the *pCurrent parameter is undefined.
)^ +** +** ^(
SQLITE_STATUS_SCRATCH_USED
+**
This parameter returns the number of allocations used out of the +** [scratch memory allocator] configured using +** [SQLITE_CONFIG_SCRATCH]. The value returned is in allocations, not +** in bytes. Since a single thread may only have one scratch allocation +** outstanding at time, this parameter also reports the number of threads +** using scratch memory at the same time.
)^ +** +** ^(
SQLITE_STATUS_SCRATCH_OVERFLOW
+**
This parameter returns the number of bytes of scratch memory +** allocation which could not be statisfied by the [SQLITE_CONFIG_SCRATCH] +** buffer and where forced to overflow to [sqlite3_malloc()]. The values +** returned include overflows because the requested allocation was too +** larger (that is, because the requested allocation was larger than the +** "sz" parameter to [SQLITE_CONFIG_SCRATCH]) and because no scratch buffer +** slots were available. +**
)^ +** +** ^(
SQLITE_STATUS_SCRATCH_SIZE
+**
This parameter records the largest memory allocation request +** handed to [scratch memory allocator]. Only the value returned in the +** *pHighwater parameter to [sqlite3_status()] is of interest. +** The value written into the *pCurrent parameter is undefined.
)^ +** +** ^(
SQLITE_STATUS_PARSER_STACK
+**
This parameter records the deepest parser stack. It is only +** meaningful if SQLite is compiled with [YYTRACKMAXSTACKDEPTH].
)^ +**
+** +** New status parameters may be added from time to time. +*/ +#define SQLITE_STATUS_MEMORY_USED 0 +#define SQLITE_STATUS_PAGECACHE_USED 1 +#define SQLITE_STATUS_PAGECACHE_OVERFLOW 2 +#define SQLITE_STATUS_SCRATCH_USED 3 +#define SQLITE_STATUS_SCRATCH_OVERFLOW 4 +#define SQLITE_STATUS_MALLOC_SIZE 5 +#define SQLITE_STATUS_PARSER_STACK 6 +#define SQLITE_STATUS_PAGECACHE_SIZE 7 +#define SQLITE_STATUS_SCRATCH_SIZE 8 + +/* +** CAPI3REF: Database Connection Status +** +** ^This interface is used to retrieve runtime status information +** about a single [database connection]. ^The first argument is the +** database connection object to be interrogated. ^The second argument +** is an integer constant, taken from the set of +** [SQLITE_DBSTATUS_LOOKASIDE_USED | SQLITE_DBSTATUS_*] macros, that +** determiness the parameter to interrogate. The set of +** [SQLITE_DBSTATUS_LOOKASIDE_USED | SQLITE_DBSTATUS_*] macros is likely +** to grow in future releases of SQLite. +** +** ^The current value of the requested parameter is written into *pCur +** and the highest instantaneous value is written into *pHiwtr. ^If +** the resetFlg is true, then the highest instantaneous value is +** reset back down to the current value. +** +** See also: [sqlite3_status()] and [sqlite3_stmt_status()]. +*/ +SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg); + +/* +** CAPI3REF: Status Parameters for database connections +** +** These constants are the available integer "verbs" that can be passed as +** the second argument to the [sqlite3_db_status()] interface. +** +** New verbs may be added in future releases of SQLite. Existing verbs +** might be discontinued. Applications should check the return code from +** [sqlite3_db_status()] to make sure that the call worked. +** The [sqlite3_db_status()] interface will return a non-zero error code +** if a discontinued or unsupported verb is invoked. +** +**
+** ^(
SQLITE_DBSTATUS_LOOKASIDE_USED
+**
This parameter returns the number of lookaside memory slots currently +** checked out.
)^ +** +**
SQLITE_DBSTATUS_CACHE_USED
+**
^This parameter returns the approximate number of of bytes of heap +** memory used by all pager caches associated with the database connection. +** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0. +**
+**
+*/ +#define SQLITE_DBSTATUS_LOOKASIDE_USED 0 +#define SQLITE_DBSTATUS_CACHE_USED 1 +#define SQLITE_DBSTATUS_MAX 1 /* Largest defined DBSTATUS */ + + +/* +** CAPI3REF: Prepared Statement Status +** +** ^(Each prepared statement maintains various +** [SQLITE_STMTSTATUS_SORT | counters] that measure the number +** of times it has performed specific operations.)^ These counters can +** be used to monitor the performance characteristics of the prepared +** statements. For example, if the number of table steps greatly exceeds +** the number of table searches or result rows, that would tend to indicate +** that the prepared statement is using a full table scan rather than +** an index. +** +** ^(This interface is used to retrieve and reset counter values from +** a [prepared statement]. The first argument is the prepared statement +** object to be interrogated. The second argument +** is an integer code for a specific [SQLITE_STMTSTATUS_SORT | counter] +** to be interrogated.)^ +** ^The current value of the requested counter is returned. +** ^If the resetFlg is true, then the counter is reset to zero after this +** interface call returns. +** +** See also: [sqlite3_status()] and [sqlite3_db_status()]. +*/ +SQLITE_API int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); + +/* +** CAPI3REF: Status Parameters for prepared statements +** +** These preprocessor macros define integer codes that name counter +** values associated with the [sqlite3_stmt_status()] interface. +** The meanings of the various counters are as follows: +** +**
+**
SQLITE_STMTSTATUS_FULLSCAN_STEP
+**
^This is the number of times that SQLite has stepped forward in +** a table as part of a full table scan. Large numbers for this counter +** may indicate opportunities for performance improvement through +** careful use of indices.
+** +**
SQLITE_STMTSTATUS_SORT
+**
^This is the number of sort operations that have occurred. +** A non-zero value in this counter may indicate an opportunity to +** improvement performance through careful use of indices.
+** +**
SQLITE_STMTSTATUS_AUTOINDEX
+**
^This is the number of rows inserted into transient indices that +** were created automatically in order to help joins run faster. +** A non-zero value in this counter may indicate an opportunity to +** improvement performance by adding permanent indices that do not +** need to be reinitialized each time the statement is run.
+** +**
+*/ +#define SQLITE_STMTSTATUS_FULLSCAN_STEP 1 +#define SQLITE_STMTSTATUS_SORT 2 +#define SQLITE_STMTSTATUS_AUTOINDEX 3 + +/* +** CAPI3REF: Custom Page Cache Object +** +** The sqlite3_pcache type is opaque. It is implemented by +** the pluggable module. The SQLite core has no knowledge of +** its size or internal structure and never deals with the +** sqlite3_pcache object except by holding and passing pointers +** to the object. +** +** See [sqlite3_pcache_methods] for additional information. +*/ +typedef struct sqlite3_pcache sqlite3_pcache; + +/* +** CAPI3REF: Application Defined Page Cache. +** KEYWORDS: {page cache} +** +** ^(The [sqlite3_config]([SQLITE_CONFIG_PCACHE], ...) interface can +** register an alternative page cache implementation by passing in an +** instance of the sqlite3_pcache_methods structure.)^ The majority of the +** heap memory used by SQLite is used by the page cache to cache data read +** from, or ready to be written to, the database file. By implementing a +** custom page cache using this API, an application can control more +** precisely the amount of memory consumed by SQLite, the way in which +** that memory is allocated and released, and the policies used to +** determine exactly which parts of a database file are cached and for +** how long. +** +** ^(The contents of the sqlite3_pcache_methods structure are copied to an +** internal buffer by SQLite within the call to [sqlite3_config]. Hence +** the application may discard the parameter after the call to +** [sqlite3_config()] returns.)^ +** +** ^The xInit() method is called once for each call to [sqlite3_initialize()] +** (usually only once during the lifetime of the process). ^(The xInit() +** method is passed a copy of the sqlite3_pcache_methods.pArg value.)^ +** ^The xInit() method can set up up global structures and/or any mutexes +** required by the custom page cache implementation. +** +** ^The xShutdown() method is called from within [sqlite3_shutdown()], +** if the application invokes this API. It can be used to clean up +** any outstanding resources before process shutdown, if required. +** +** ^SQLite holds a [SQLITE_MUTEX_RECURSIVE] mutex when it invokes +** the xInit method, so the xInit method need not be threadsafe. ^The +** xShutdown method is only called from [sqlite3_shutdown()] so it does +** not need to be threadsafe either. All other methods must be threadsafe +** in multithreaded applications. +** +** ^SQLite will never invoke xInit() more than once without an intervening +** call to xShutdown(). +** +** ^The xCreate() method is used to construct a new cache instance. SQLite +** will typically create one cache instance for each open database file, +** though this is not guaranteed. ^The +** first parameter, szPage, is the size in bytes of the pages that must +** be allocated by the cache. ^szPage will not be a power of two. ^szPage +** will the page size of the database file that is to be cached plus an +** increment (here called "R") of about 100 or 200. ^SQLite will use the +** extra R bytes on each page to store metadata about the underlying +** database page on disk. The value of R depends +** on the SQLite version, the target platform, and how SQLite was compiled. +** ^R is constant for a particular build of SQLite. ^The second argument to +** xCreate(), bPurgeable, is true if the cache being created will +** be used to cache database pages of a file stored on disk, or +** false if it is used for an in-memory database. ^The cache implementation +** does not have to do anything special based with the value of bPurgeable; +** it is purely advisory. ^On a cache where bPurgeable is false, SQLite will +** never invoke xUnpin() except to deliberately delete a page. +** ^In other words, a cache created with bPurgeable set to false will +** never contain any unpinned pages. +** +** ^(The xCachesize() method may be called at any time by SQLite to set the +** suggested maximum cache-size (number of pages stored by) the cache +** instance passed as the first argument. This is the value configured using +** the SQLite "[PRAGMA cache_size]" command.)^ ^As with the bPurgeable +** parameter, the implementation is not required to do anything with this +** value; it is advisory only. +** +** ^The xPagecount() method should return the number of pages currently +** stored in the cache. +** +** ^The xFetch() method is used to fetch a page and return a pointer to it. +** ^A 'page', in this context, is a buffer of szPage bytes aligned at an +** 8-byte boundary. ^The page to be fetched is determined by the key. ^The +** mimimum key value is 1. After it has been retrieved using xFetch, the page +** is considered to be "pinned". +** +** ^If the requested page is already in the page cache, then the page cache +** implementation must return a pointer to the page buffer with its content +** intact. ^(If the requested page is not already in the cache, then the +** behavior of the cache implementation is determined by the value of the +** createFlag parameter passed to xFetch, according to the following table: +** +** +**
createFlag Behaviour when page is not already in cache +**
0 Do not allocate a new page. Return NULL. +**
1 Allocate a new page if it easy and convenient to do so. +** Otherwise return NULL. +**
2 Make every effort to allocate a new page. Only return +** NULL if allocating a new page is effectively impossible. +**
)^ +** +** SQLite will normally invoke xFetch() with a createFlag of 0 or 1. If +** a call to xFetch() with createFlag==1 returns NULL, then SQLite will +** attempt to unpin one or more cache pages by spilling the content of +** pinned pages to disk and synching the operating system disk cache. After +** attempting to unpin pages, the xFetch() method will be invoked again with +** a createFlag of 2. +** +** ^xUnpin() is called by SQLite with a pointer to a currently pinned page +** as its second argument. ^(If the third parameter, discard, is non-zero, +** then the page should be evicted from the cache. In this case SQLite +** assumes that the next time the page is retrieved from the cache using +** the xFetch() method, it will be zeroed.)^ ^If the discard parameter is +** zero, then the page is considered to be unpinned. ^The cache implementation +** may choose to evict unpinned pages at any time. +** +** ^(The cache is not required to perform any reference counting. A single +** call to xUnpin() unpins the page regardless of the number of prior calls +** to xFetch().)^ +** +** ^The xRekey() method is used to change the key value associated with the +** page passed as the second argument from oldKey to newKey. ^If the cache +** previously contains an entry associated with newKey, it should be +** discarded. ^Any prior cache entry associated with newKey is guaranteed not +** to be pinned. +** +** ^When SQLite calls the xTruncate() method, the cache must discard all +** existing cache entries with page numbers (keys) greater than or equal +** to the value of the iLimit parameter passed to xTruncate(). ^If any +** of these pages are pinned, they are implicitly unpinned, meaning that +** they can be safely discarded. +** +** ^The xDestroy() method is used to delete a cache allocated by xCreate(). +** All resources associated with the specified cache should be freed. ^After +** calling the xDestroy() method, SQLite considers the [sqlite3_pcache*] +** handle invalid, and will not use it with any other sqlite3_pcache_methods +** functions. +*/ +typedef struct sqlite3_pcache_methods sqlite3_pcache_methods; +struct sqlite3_pcache_methods { + void *pArg; + int (*xInit)(void*); + void (*xShutdown)(void*); + sqlite3_pcache *(*xCreate)(int szPage, int bPurgeable); + void (*xCachesize)(sqlite3_pcache*, int nCachesize); + int (*xPagecount)(sqlite3_pcache*); + void *(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag); + void (*xUnpin)(sqlite3_pcache*, void*, int discard); + void (*xRekey)(sqlite3_pcache*, void*, unsigned oldKey, unsigned newKey); + void (*xTruncate)(sqlite3_pcache*, unsigned iLimit); + void (*xDestroy)(sqlite3_pcache*); +}; + +/* +** CAPI3REF: Online Backup Object +** +** The sqlite3_backup object records state information about an ongoing +** online backup operation. ^The sqlite3_backup object is created by +** a call to [sqlite3_backup_init()] and is destroyed by a call to +** [sqlite3_backup_finish()]. +** +** See Also: [Using the SQLite Online Backup API] +*/ +typedef struct sqlite3_backup sqlite3_backup; + +/* +** CAPI3REF: Online Backup API. +** +** The backup API copies the content of one database into another. +** It is useful either for creating backups of databases or +** for copying in-memory databases to or from persistent files. +** +** See Also: [Using the SQLite Online Backup API] +** +** ^Exclusive access is required to the destination database for the +** duration of the operation. ^However the source database is only +** read-locked while it is actually being read; it is not locked +** continuously for the entire backup operation. ^Thus, the backup may be +** performed on a live source database without preventing other users from +** reading or writing to the source database while the backup is underway. +** +** ^(To perform a backup operation: +**
    +**
  1. sqlite3_backup_init() is called once to initialize the +** backup, +**
  2. sqlite3_backup_step() is called one or more times to transfer +** the data between the two databases, and finally +**
  3. sqlite3_backup_finish() is called to release all resources +** associated with the backup operation. +**
)^ +** There should be exactly one call to sqlite3_backup_finish() for each +** successful call to sqlite3_backup_init(). +** +** sqlite3_backup_init() +** +** ^The D and N arguments to sqlite3_backup_init(D,N,S,M) are the +** [database connection] associated with the destination database +** and the database name, respectively. +** ^The database name is "main" for the main database, "temp" for the +** temporary database, or the name specified after the AS keyword in +** an [ATTACH] statement for an attached database. +** ^The S and M arguments passed to +** sqlite3_backup_init(D,N,S,M) identify the [database connection] +** and database name of the source database, respectively. +** ^The source and destination [database connections] (parameters S and D) +** must be different or else sqlite3_backup_init(D,N,S,M) will file with +** an error. +** +** ^If an error occurs within sqlite3_backup_init(D,N,S,M), then NULL is +** returned and an error code and error message are store3d in the +** destination [database connection] D. +** ^The error code and message for the failed call to sqlite3_backup_init() +** can be retrieved using the [sqlite3_errcode()], [sqlite3_errmsg()], and/or +** [sqlite3_errmsg16()] functions. +** ^A successful call to sqlite3_backup_init() returns a pointer to an +** [sqlite3_backup] object. +** ^The [sqlite3_backup] object may be used with the sqlite3_backup_step() and +** sqlite3_backup_finish() functions to perform the specified backup +** operation. +** +** sqlite3_backup_step() +** +** ^Function sqlite3_backup_step(B,N) will copy up to N pages between +** the source and destination databases specified by [sqlite3_backup] object B. +** ^If N is negative, all remaining source pages are copied. +** ^If sqlite3_backup_step(B,N) successfully copies N pages and there +** are still more pages to be copied, then the function resturns [SQLITE_OK]. +** ^If sqlite3_backup_step(B,N) successfully finishes copying all pages +** from source to destination, then it returns [SQLITE_DONE]. +** ^If an error occurs while running sqlite3_backup_step(B,N), +** then an [error code] is returned. ^As well as [SQLITE_OK] and +** [SQLITE_DONE], a call to sqlite3_backup_step() may return [SQLITE_READONLY], +** [SQLITE_NOMEM], [SQLITE_BUSY], [SQLITE_LOCKED], or an +** [SQLITE_IOERR_ACCESS | SQLITE_IOERR_XXX] extended error code. +** +** ^(The sqlite3_backup_step() might return [SQLITE_READONLY] if +**
    +**
  1. the destination database was opened read-only, or +**
  2. the destination database is using write-ahead-log journaling +** and the destination and source page sizes differ, or +**
  3. The destination database is an in-memory database and the +** destination and source page sizes differ. +**
)^ +** +** ^If sqlite3_backup_step() cannot obtain a required file-system lock, then +** the [sqlite3_busy_handler | busy-handler function] +** is invoked (if one is specified). ^If the +** busy-handler returns non-zero before the lock is available, then +** [SQLITE_BUSY] is returned to the caller. ^In this case the call to +** sqlite3_backup_step() can be retried later. ^If the source +** [database connection] +** is being used to write to the source database when sqlite3_backup_step() +** is called, then [SQLITE_LOCKED] is returned immediately. ^Again, in this +** case the call to sqlite3_backup_step() can be retried later on. ^(If +** [SQLITE_IOERR_ACCESS | SQLITE_IOERR_XXX], [SQLITE_NOMEM], or +** [SQLITE_READONLY] is returned, then +** there is no point in retrying the call to sqlite3_backup_step(). These +** errors are considered fatal.)^ The application must accept +** that the backup operation has failed and pass the backup operation handle +** to the sqlite3_backup_finish() to release associated resources. +** +** ^The first call to sqlite3_backup_step() obtains an exclusive lock +** on the destination file. ^The exclusive lock is not released until either +** sqlite3_backup_finish() is called or the backup operation is complete +** and sqlite3_backup_step() returns [SQLITE_DONE]. ^Every call to +** sqlite3_backup_step() obtains a [shared lock] on the source database that +** lasts for the duration of the sqlite3_backup_step() call. +** ^Because the source database is not locked between calls to +** sqlite3_backup_step(), the source database may be modified mid-way +** through the backup process. ^If the source database is modified by an +** external process or via a database connection other than the one being +** used by the backup operation, then the backup will be automatically +** restarted by the next call to sqlite3_backup_step(). ^If the source +** database is modified by the using the same database connection as is used +** by the backup operation, then the backup database is automatically +** updated at the same time. +** +** sqlite3_backup_finish() +** +** When sqlite3_backup_step() has returned [SQLITE_DONE], or when the +** application wishes to abandon the backup operation, the application +** should destroy the [sqlite3_backup] by passing it to sqlite3_backup_finish(). +** ^The sqlite3_backup_finish() interfaces releases all +** resources associated with the [sqlite3_backup] object. +** ^If sqlite3_backup_step() has not yet returned [SQLITE_DONE], then any +** active write-transaction on the destination database is rolled back. +** The [sqlite3_backup] object is invalid +** and may not be used following a call to sqlite3_backup_finish(). +** +** ^The value returned by sqlite3_backup_finish is [SQLITE_OK] if no +** sqlite3_backup_step() errors occurred, regardless or whether or not +** sqlite3_backup_step() completed. +** ^If an out-of-memory condition or IO error occurred during any prior +** sqlite3_backup_step() call on the same [sqlite3_backup] object, then +** sqlite3_backup_finish() returns the corresponding [error code]. +** +** ^A return of [SQLITE_BUSY] or [SQLITE_LOCKED] from sqlite3_backup_step() +** is not a permanent error and does not affect the return value of +** sqlite3_backup_finish(). +** +** sqlite3_backup_remaining(), sqlite3_backup_pagecount() +** +** ^Each call to sqlite3_backup_step() sets two values inside +** the [sqlite3_backup] object: the number of pages still to be backed +** up and the total number of pages in the source databae file. +** The sqlite3_backup_remaining() and sqlite3_backup_pagecount() interfaces +** retrieve these two values, respectively. +** +** ^The values returned by these functions are only updated by +** sqlite3_backup_step(). ^If the source database is modified during a backup +** operation, then the values are not updated to account for any extra +** pages that need to be updated or the size of the source database file +** changing. +** +** Concurrent Usage of Database Handles +** +** ^The source [database connection] may be used by the application for other +** purposes while a backup operation is underway or being initialized. +** ^If SQLite is compiled and configured to support threadsafe database +** connections, then the source database connection may be used concurrently +** from within other threads. +** +** However, the application must guarantee that the destination +** [database connection] is not passed to any other API (by any thread) after +** sqlite3_backup_init() is called and before the corresponding call to +** sqlite3_backup_finish(). SQLite does not currently check to see +** if the application incorrectly accesses the destination [database connection] +** and so no error code is reported, but the operations may malfunction +** nevertheless. Use of the destination database connection while a +** backup is in progress might also also cause a mutex deadlock. +** +** If running in [shared cache mode], the application must +** guarantee that the shared cache used by the destination database +** is not accessed while the backup is running. In practice this means +** that the application must guarantee that the disk file being +** backed up to is not accessed by any connection within the process, +** not just the specific connection that was passed to sqlite3_backup_init(). +** +** The [sqlite3_backup] object itself is partially threadsafe. Multiple +** threads may safely make multiple concurrent calls to sqlite3_backup_step(). +** However, the sqlite3_backup_remaining() and sqlite3_backup_pagecount() +** APIs are not strictly speaking threadsafe. If they are invoked at the +** same time as another thread is invoking sqlite3_backup_step() it is +** possible that they return invalid values. +*/ +SQLITE_API sqlite3_backup *sqlite3_backup_init( + sqlite3 *pDest, /* Destination database handle */ + const char *zDestName, /* Destination database name */ + sqlite3 *pSource, /* Source database handle */ + const char *zSourceName /* Source database name */ +); +SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage); +SQLITE_API int sqlite3_backup_finish(sqlite3_backup *p); +SQLITE_API int sqlite3_backup_remaining(sqlite3_backup *p); +SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); + +/* +** CAPI3REF: Unlock Notification +** +** ^When running in shared-cache mode, a database operation may fail with +** an [SQLITE_LOCKED] error if the required locks on the shared-cache or +** individual tables within the shared-cache cannot be obtained. See +** [SQLite Shared-Cache Mode] for a description of shared-cache locking. +** ^This API may be used to register a callback that SQLite will invoke +** when the connection currently holding the required lock relinquishes it. +** ^This API is only available if the library was compiled with the +** [SQLITE_ENABLE_UNLOCK_NOTIFY] C-preprocessor symbol defined. +** +** See Also: [Using the SQLite Unlock Notification Feature]. +** +** ^Shared-cache locks are released when a database connection concludes +** its current transaction, either by committing it or rolling it back. +** +** ^When a connection (known as the blocked connection) fails to obtain a +** shared-cache lock and SQLITE_LOCKED is returned to the caller, the +** identity of the database connection (the blocking connection) that +** has locked the required resource is stored internally. ^After an +** application receives an SQLITE_LOCKED error, it may call the +** sqlite3_unlock_notify() method with the blocked connection handle as +** the first argument to register for a callback that will be invoked +** when the blocking connections current transaction is concluded. ^The +** callback is invoked from within the [sqlite3_step] or [sqlite3_close] +** call that concludes the blocking connections transaction. +** +** ^(If sqlite3_unlock_notify() is called in a multi-threaded application, +** there is a chance that the blocking connection will have already +** concluded its transaction by the time sqlite3_unlock_notify() is invoked. +** If this happens, then the specified callback is invoked immediately, +** from within the call to sqlite3_unlock_notify().)^ +** +** ^If the blocked connection is attempting to obtain a write-lock on a +** shared-cache table, and more than one other connection currently holds +** a read-lock on the same table, then SQLite arbitrarily selects one of +** the other connections to use as the blocking connection. +** +** ^(There may be at most one unlock-notify callback registered by a +** blocked connection. If sqlite3_unlock_notify() is called when the +** blocked connection already has a registered unlock-notify callback, +** then the new callback replaces the old.)^ ^If sqlite3_unlock_notify() is +** called with a NULL pointer as its second argument, then any existing +** unlock-notify callback is cancelled. ^The blocked connections +** unlock-notify callback may also be canceled by closing the blocked +** connection using [sqlite3_close()]. +** +** The unlock-notify callback is not reentrant. If an application invokes +** any sqlite3_xxx API functions from within an unlock-notify callback, a +** crash or deadlock may be the result. +** +** ^Unless deadlock is detected (see below), sqlite3_unlock_notify() always +** returns SQLITE_OK. +** +** Callback Invocation Details +** +** When an unlock-notify callback is registered, the application provides a +** single void* pointer that is passed to the callback when it is invoked. +** However, the signature of the callback function allows SQLite to pass +** it an array of void* context pointers. The first argument passed to +** an unlock-notify callback is a pointer to an array of void* pointers, +** and the second is the number of entries in the array. +** +** When a blocking connections transaction is concluded, there may be +** more than one blocked connection that has registered for an unlock-notify +** callback. ^If two or more such blocked connections have specified the +** same callback function, then instead of invoking the callback function +** multiple times, it is invoked once with the set of void* context pointers +** specified by the blocked connections bundled together into an array. +** This gives the application an opportunity to prioritize any actions +** related to the set of unblocked database connections. +** +** Deadlock Detection +** +** Assuming that after registering for an unlock-notify callback a +** database waits for the callback to be issued before taking any further +** action (a reasonable assumption), then using this API may cause the +** application to deadlock. For example, if connection X is waiting for +** connection Y's transaction to be concluded, and similarly connection +** Y is waiting on connection X's transaction, then neither connection +** will proceed and the system may remain deadlocked indefinitely. +** +** To avoid this scenario, the sqlite3_unlock_notify() performs deadlock +** detection. ^If a given call to sqlite3_unlock_notify() would put the +** system in a deadlocked state, then SQLITE_LOCKED is returned and no +** unlock-notify callback is registered. The system is said to be in +** a deadlocked state if connection A has registered for an unlock-notify +** callback on the conclusion of connection B's transaction, and connection +** B has itself registered for an unlock-notify callback when connection +** A's transaction is concluded. ^Indirect deadlock is also detected, so +** the system is also considered to be deadlocked if connection B has +** registered for an unlock-notify callback on the conclusion of connection +** C's transaction, where connection C is waiting on connection A. ^Any +** number of levels of indirection are allowed. +** +** The "DROP TABLE" Exception +** +** When a call to [sqlite3_step()] returns SQLITE_LOCKED, it is almost +** always appropriate to call sqlite3_unlock_notify(). There is however, +** one exception. When executing a "DROP TABLE" or "DROP INDEX" statement, +** SQLite checks if there are any currently executing SELECT statements +** that belong to the same connection. If there are, SQLITE_LOCKED is +** returned. In this case there is no "blocking connection", so invoking +** sqlite3_unlock_notify() results in the unlock-notify callback being +** invoked immediately. If the application then re-attempts the "DROP TABLE" +** or "DROP INDEX" query, an infinite loop might be the result. +** +** One way around this problem is to check the extended error code returned +** by an sqlite3_step() call. ^(If there is a blocking connection, then the +** extended error code is set to SQLITE_LOCKED_SHAREDCACHE. Otherwise, in +** the special "DROP TABLE/INDEX" case, the extended error code is just +** SQLITE_LOCKED.)^ +*/ +SQLITE_API int sqlite3_unlock_notify( + sqlite3 *pBlocked, /* Waiting connection */ + void (*xNotify)(void **apArg, int nArg), /* Callback function to invoke */ + void *pNotifyArg /* Argument to pass to xNotify */ +); + + +/* +** CAPI3REF: String Comparison +** +** ^The [sqlite3_strnicmp()] API allows applications and extensions to +** compare the contents of two buffers containing UTF-8 strings in a +** case-indendent fashion, using the same definition of case independence +** that SQLite uses internally when comparing identifiers. +*/ +SQLITE_API int sqlite3_strnicmp(const char *, const char *, int); + +/* +** CAPI3REF: Error Logging Interface +** +** ^The [sqlite3_log()] interface writes a message into the error log +** established by the [SQLITE_CONFIG_LOG] option to [sqlite3_config()]. +** ^If logging is enabled, the zFormat string and subsequent arguments are +** used with [sqlite3_snprintf()] to generate the final output string. +** +** The sqlite3_log() interface is intended for use by extensions such as +** virtual tables, collating functions, and SQL functions. While there is +** nothing to prevent an application from calling sqlite3_log(), doing so +** is considered bad form. +** +** The zFormat string must not be NULL. +** +** To avoid deadlocks and other threading problems, the sqlite3_log() routine +** will not use dynamically allocated memory. The log message is stored in +** a fixed-length buffer on the stack. If the log message is longer than +** a few hundred characters, it will be truncated to the length of the +** buffer. +*/ +SQLITE_API void sqlite3_log(int iErrCode, const char *zFormat, ...); + +/* +** CAPI3REF: Write-Ahead Log Commit Hook +** +** ^The [sqlite3_wal_hook()] function is used to register a callback that +** will be invoked each time a database connection commits data to a +** [write-ahead log] (i.e. whenever a transaction is committed in +** [journal_mode | journal_mode=WAL mode]). +** +** ^The callback is invoked by SQLite after the commit has taken place and +** the associated write-lock on the database released, so the implementation +** may read, write or [checkpoint] the database as required. +** +** ^The first parameter passed to the callback function when it is invoked +** is a copy of the third parameter passed to sqlite3_wal_hook() when +** registering the callback. ^The second is a copy of the database handle. +** ^The third parameter is the name of the database that was written to - +** either "main" or the name of an [ATTACH]-ed database. ^The fourth parameter +** is the number of pages currently in the write-ahead log file, +** including those that were just committed. +** +** The callback function should normally return [SQLITE_OK]. ^If an error +** code is returned, that error will propagate back up through the +** SQLite code base to cause the statement that provoked the callback +** to report an error, though the commit will have still occurred. If the +** callback returns [SQLITE_ROW] or [SQLITE_DONE], or if it returns a value +** that does not correspond to any valid SQLite error code, the results +** are undefined. +** +** A single database handle may have at most a single write-ahead log callback +** registered at one time. ^Calling [sqlite3_wal_hook()] replaces any +** previously registered write-ahead log callback. ^Note that the +** [sqlite3_wal_autocheckpoint()] interface and the +** [wal_autocheckpoint pragma] both invoke [sqlite3_wal_hook()] and will +** those overwrite any prior [sqlite3_wal_hook()] settings. +*/ +SQLITE_API void *sqlite3_wal_hook( + sqlite3*, + int(*)(void *,sqlite3*,const char*,int), + void* +); + +/* +** CAPI3REF: Configure an auto-checkpoint +** +** ^The [sqlite3_wal_autocheckpoint(D,N)] is a wrapper around +** [sqlite3_wal_hook()] that causes any database on [database connection] D +** to automatically [checkpoint] +** after committing a transaction if there are N or +** more frames in the [write-ahead log] file. ^Passing zero or +** a negative value as the nFrame parameter disables automatic +** checkpoints entirely. +** +** ^The callback registered by this function replaces any existing callback +** registered using [sqlite3_wal_hook()]. ^Likewise, registering a callback +** using [sqlite3_wal_hook()] disables the automatic checkpoint mechanism +** configured by this function. +** +** ^The [wal_autocheckpoint pragma] can be used to invoke this interface +** from SQL. +** +** ^Every new [database connection] defaults to having the auto-checkpoint +** enabled with a threshold of 1000 pages. The use of this interface +** is only necessary if the default setting is found to be suboptimal +** for a particular application. +*/ +SQLITE_API int sqlite3_wal_autocheckpoint(sqlite3 *db, int N); + +/* +** CAPI3REF: Checkpoint a database +** +** ^The [sqlite3_wal_checkpoint(D,X)] interface causes database named X +** on [database connection] D to be [checkpointed]. ^If X is NULL or an +** empty string, then a checkpoint is run on all databases of +** connection D. ^If the database connection D is not in +** [WAL | write-ahead log mode] then this interface is a harmless no-op. +** +** ^The [wal_checkpoint pragma] can be used to invoke this interface +** from SQL. ^The [sqlite3_wal_autocheckpoint()] interface and the +** [wal_autocheckpoint pragma] can be used to cause this interface to be +** run whenever the WAL reaches a certain size threshold. +*/ +SQLITE_API int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb); + +/* +** Undo the hack that converts floating point types to integer for +** builds on processors without floating point support. +*/ +#ifdef SQLITE_OMIT_FLOATING_POINT +# undef double +#endif + +#ifdef __cplusplus +} /* End of the 'extern "C"' block */ +#endif +#endif + diff --git a/Libraries/lib/libMGMUsers.a b/Libraries/lib/libMGMUsers.a new file mode 100644 index 0000000000000000000000000000000000000000..a564623db06e51e5ec051cfc12898579764b7d72 GIT binary patch literal 3482192 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�))-j zNeSyD{7mNT4aYy}dHO^3;Z0XmnYq=KmN?s8Ypl-brxO_PWa@eRU^b?$+IFvmu!Pbf z(mYP0)+fB1=GgOLntc2D1&7aePWId^dyCb(-OJ}95MikM@TXN6G{u9+Tr=c5J$R;0 z$i`<~U1@Y3G-lc6kMW0~F`EzTZfML}!+HQ3s~%x}1)9sY{4@4fnBSQTYkr>{&og12 z292kmuug}@bTX{@eOGV#5HucA!|~M<(jS8MmaiKcs~zF=1JJ1+oxjp?KI_rkTLLR@ z=8xr13A+0+a*winxMH{pxH>rQ@pA~S1Fjpc7j6LVT7TTv>y!SLqik#7o`(A#-1R71 z23!N&kKq0*+$p#*xEoN;JK(m$JqO3VF@6sBKj7Yn`v@)}2g?j_^Wg4x!A<`S1_J`Oro#%YR=iW(QwF{lM)+Ct%*}8@7M^4C#_k=81nSGy5E`0d0O8 z3%snqG}!quCN8{2_rrfLmN&luvTT12e-Qo+aDNT|V+wx<{wLt)vA==80(=JUMiheA zhv|30&uhrMZo|^zHxbqh_XYTW3No*Mga5yPufyGk4#aE5eE$*tw-84ELl_u-1wU;* z#w9Y7~2bHn&*`zmJ8;lIv1 zoWp%?yZq@6ESVki=v?Ry=zhiThi>=iGUzsFz4iFh3@o7?f$mWHh0uqf8>H`qZiVJ~ z;qRxjp6%+U0NrH>2*9e%*{j{=A(Pe z6%)jd5y$W$@s#+s_=b2)JS-j*_lbMOE#i7{nV2Td5#z*5w@2!6F8aYmk3NMyG7Md; z>+me%2N|#Ps)0TO-K%;ihaP}#QhW&d6tu0EEzteYwp|uN_d(lswHCS;+P14~=#$X4 zT`hy|;qfZZ66h1qwq2z`cSGBDl?>elU83^Lgzkj4?J5TP7_@CyV>sUq=o31h5$Ja4 zG95n%-3D#j*?Z7Opie6PP3S|=97EV{k3+Y5;$MMofwt|c4Z7Krz7@I&+Sb=W=tgMU zjvAr&q0DSAmEtyWy|_}$5a)}t#Tnuy*rJ^Q@uYZEd|s@ZgK@%MPlVM%$4hU9u7U1Q zeQks;*Kx&S9^&&AzYJly(Dr&|K<7Z)e!2iUOUEq~1BmZYelro43~k4)8PKzoZtON( zH>DfGz2FM8P4@xs4RAc)euVp#?l8jopdIN(=w9ezm3JTXNoZT%TIe2VTiy!j6VP^C zD1q*Vw&TJU=%aAVw^^(g_lhAgAII5pB_J#h+Lmh!_q<$BJ{O^LJoyYkXG7a|-3Ofo zZQJ$R(3#M--<*KXfVSs#96BA^j;F_<@o~0rKY9f^pmN5Dmk`GD`atX#-xNE=LrG{a z>JLc>YlY5GeaAz$K$l35<38UEohdy6-2|N_JpkS4iSLDOfVTEeK-YWHABC>-q(2N@ z3vK&X9`dh&w&PI{x*FP!N14zS&|S)Z0dyI(&952uLeTbn_CuFIrz(9dbTPEeuM&DQ zwC&Gj(D|^*ddwEn#aZGE@iNmQ-G^eo*eSj&9uW75d&R;}MasPnVY$$DoDD$dK-+P4 z4s9e6vK-=rv0^JR5ukU{7E@*pwYoR-#ZF}4S zeGJ;(4+^0>pv!c9*F(2M+v~Xu`Y;^Je^A^fmWx}&95EHg=g3|n!cw5Kq~o9i(Dr;| zpp$gmO!3OCk^1SxbM+-?o4y?SqDL1(4|~$DgC2yo^>Y;Z40MI=uWir+(8pAs!_cRo z?ft$5x*xhp@du&%pl$uuL-#`4`rQkC657^pF?0{Kt-oC8E;!a-yVxo=inU@$TrXzA zj;*)(2+M%B^>8Qj0;NmzgrC7fe*$!)%KtueJanhV|6b@==z!wig7!lYPBQSoCyD@va!UpT{fzLg+qdJD#nF?uCw(y_L`>p=~?PfbM~|^_vQP0@~K^ zTMsw+o0|FZi7DJi7$jc)*M!{VUJpl!X4;j;oE=z8Th0$l=~Aw2+H3|*)G#80tordIrM=t5}QevUyG zK->273UoenkLsfhIuF{8FNdLXp-(El1v&@1M)nUvXM55&KxaX7kA1d-XP`5o`*nOZ zbOv;*^b^qO(Dr(iK&L_5cCZOL6}npaudqBMVdJsG-9`UU7D=waz* z=tSsr>F1ympa-SvpyQ#>NLN6|LLZUd0qut#kj_GR9O!^_2J~10uD5hL^cCns(kalF zpifEP34IaT+KYo8hISN>53oCf&=+-m$I(8|KwEnsK@UJ%d&AK9P|o2B)&FVeerS6= z-hl3dw%4Nzx)<7BkE77|&HBR?s_zzPd}T4*ubZGxpblVu*Ku$ecnr)3UljL?HR2QC z=McY9I#Wy*XNfW5Wt?+9(w`Cg#7?nQtP{({0&%6dR7?>4;u)L+?Y}4Xh_8w-f{!4+ zZYJiZs)r*tpkG68mVN=c2D(uC0CY99z3=RUu7FNf{0S@$mq8EcI=%)Sg0}a?W6&kg z_CEL$bTPDjPH2VR3~ld&4bX+2_z-jfw9PLTIv?8RH;(e;LEHSUK<7f+{Dz=&psjs= zR4Ut}--OPBc62@!(3#NI{toC2XluV1Ivv{DUk{z;(V5Vx&;_!03FS?J&X*p94nW)U zKMkD>ou~MI=p<Cl&;ZNFLoeG%IBs{r&cv>oT>Ko3IqD!(Dl&P z-mB1c(AHiDbS<- zAjhR_F-@E!#)BM3ub}NP-H7;scv9>VUl9+9O=6u`CTSaA$>#{B!l9x&XR+4IgKmpDu*XhYqZDbt-fov>g{`L+3)szdH%>Zs{dkLXftV{U5tGFPaU6Nk?nQA>d|%`z_8I@0_`JAZd_vqTt{1b# z)Y!;8vGqE%8|dC#_c}I12cWam?i-<#p*z>O@wL!N(6(Rfg-(RF&j)4D3DCBk?|_bn zw(WWobS!kH?5~CPLuW`YgLXXWQ=!MMi}dTapszsNetjJJ6143n$Dl7l+kX8D^e}XX z&Tk>~AhhjA$9V&Lx*s}KdO36-w5{hQ(7n+1xhf6%I2`NYsCYy?Al8d}#cg7NxKdmy24LTo_r!Fx zLugwcozO|pw%xu0od|8uzYRJ8x?AVh0v!)++wDQju^eJfD zE)$`-iwW!dxY!}Kiu=V{v0U6F=84P1H1SR`7Wvuh{}Dc0j*KpnISl#kWGAfNt0IJP6$lJto}<-34v0 z=RW98XnQ@m)zdL(TmRM29niM^%c0w$ZGD$Ow?W(Mu?6}Fbhh$aj&nQ&eNj3Ux)s{q zZ0pzZy3Hgq#|y3)r&H$mI`Z47iHw7uVcg!~$y?frHTx*pozAJ;+GK?h_n2we-E zAiWa02KtcnQs`>vQ_|_s70}k+ozP{_j^bxShoCQN+?)kn0&VThfG&o%_8jQV(Dr`& z5kBZs2yO4T??V?r_sf1CbUt*e^jpw*(0$S;po6HBhtQs~LEdkdf^1&_F<$%_d7E|z z@_ySd-6M92hsEc`dU3B95(~s!F-1%gudwXMXGk0n-xfP#a2?cc44a|23@V=c8G;&PyEKf4H>NgFu-IbxjnG2$40#uv$d1jEDtw9UUC`V_Ra ze-gSM+S-2;x)0j+(=O;S4x&hku(~Z#e(AFNCK^?TUmjhi3ZTsm` z=o)C-Pw#}ThPM3_Z?5D+`ncsqJ2ianpI7f^J*-t;l zu}pVb>=loTuZS;*2gH!LSA~z~vy0^riiQfQu9$yppik0Fnai_@l z1em^9{EGOfI9KFaI@8@I-YU)%xwg*uQ)sMYzxa;$_u_X&etwtfo)w=F7m5qSdE#B- zZ?I0o<9;o^C%!BGNc@3#K-@2WOZp-BuZw%cuZmBIJ4CJ*@p!IrlDCPsioe484a5J3*dv}0>%>}dkN8z_v3Q?2 zUz{uU$GP^oF2sEPUi>?8pZKi!w75qs7oQOC6Ymx0ig${?z242|pG2$|n0&ELVE8BE zPsJC+=fy|GN5r*aP`qB8E^^+_^ZHoinhJH7_)GCG#CEYwED-a>HR5U!^KxSk^KrxL z#A)I<=AkBk@%Q3Ci$mgvVw1=<0v`7r@mu1v;xl5ExLb@DW5sFWRm}fPImFB21@WBN zCUTz1^#4ixiTJ#DQ2f65U6J!q9#s>&05JS}YSw#LZ%X zm?!3lSz?BmCZ>qVVxkx?`o%G|Q>+V_@?-tS@QjG{9HX&rV|Y?LA$Ez!#CFm4r&j4^ zu~D@BrdGOIEE7w_&0>L=C+3J*VuqL|rijU6q8KmwMXbk|^TN7|A=Xz6v5sPh^%BEA z@ubMLBy;`6V`95_MC3XO(>05YV!g<96~NGC?v~yQ5+Np z#D3A%^eAT;y5<{{0KZ`Qn}8 zY;mSIL*(yc!0W#(j))(MoKG|UJ@IYvO_B3!#=k1QA|4T2MXp^iU87hpa*cxF)nb`g zBBmk|Q%ipUT#IG*B^cO+uLFobMe(7H69_eoBPU#NmHt9psEz(WW z4bpYeHPRK*A?af2Lg{?zTf@ zkoo0;%+1JhUtZTS#FJOVOX5XwSR543hy&s&v0v;Hd&QGtk9b1t z7Q4hw@tD{lwu^1z5%G}NDz=EtVw2b?Hi-3NomeZ@h}B|+SSE(V60um^EEb9dV!oIs z=88FDwwNVmiWy?Mm?ox*DPllO7L&w8F+q$MV@1CRnCnh^IMyEkQC8E=9t3G`4M=+= z?J*tgF&*tO9qk1{z_d$C-cOjG_Y*P;G~`L=K!gPLxUr~F#BwhrW{tSqJ z|A4|ziTw)ae28{>#ghu}kv<`IE4)j(Q#_{d4(WEWP2oqR4~eY`Z;@^mn-tzC-5}O0 zyiU4StWkKibcI-^@Q`$gSgi2P(uHDy!ts#C_EsY zEG8*DQ9414S9q+nUvv~chK4h7972@2?=XB=@q-}4&qxo5rxe~V-6!@c{G@b`*bcHC zwMjRFwA&=zC^jg(Ub;@KRd|hbwOFC>GU&$(os{0`>LKbAiY*>%Vt!g^o7{Pi;(=lAquVVs|hp9WjZ zw*?J^TQ}3sZE_dL-vR$}`McrgHqK1b3qRj)r+)zcZ^+NVu37#v_}k@A!gr~-wKLOa z!GA{nG5G&g{xsZ_XXAXBrXT)=^7EG;_}K}Da|_ra`MEvoUirD@>i6X5cB)(}V|r(f zeJ*`_K-UrUL%O3a^9zu>39Xk10(J{M?L^>6_sHq5RG8 zf1otg@ZYNNTKI!#H#edF2Jo=ij5K$locvx+rThu-7s$`=C$Rl7{UxNwTMO*N=I<_# ze;(4<@O#j1t^ZAUtpDd8|Nrr%zs}?TqUYH6JmGi`Ic$gTPg|QaJ^sC(G^f0IdHhd# z(jWDd|NEX}4|)9aJ!v!#Hs`LnvhlMlwmjJ$f2POJvBIWtim(~h_M%-?k8i-{YEIF* z4Z%HSW!xEx`$tjd?S9-TDy`XB?G#m2VlS)RyGly;Iz_HG`fzOaR$95lDSCM2+Eqns zHm+D-lv1RfmKKJ$YML@OYS*YKQ-t@ODk>^k6~q>9*juVxyKCT+B6Bc|G6k#TmLDDxW;44AxsuF2LDZ1xkI7^uzhSh}ikIkDlQ z&ELHQupi#*)vcOUc`G(-K;5p}pp6(O2D`sWI5AXvVonUk9)r4M5xd;K%c!Z zjmHi}-Y^Vr;ob1O;ZJ&Yl=Ft0o$=vmttGJ#VaM zV?A#$4)X4?HzCUGu*b~@rwaFmP1=Od8|m3!(Hrb(k&)B0d-r)0qKx5f{Ji0lwh_H% zq&I^50D86E#JJ4cch^50xqmr|Nhxy29dzB?hjTXAk=jN_di2x>uUWUDV8yystBbC2 zd`eL`1#X{fR;g>8zgcHHf7~z~|2|*K~pZWmU5K6mbMm5T<5P zdEJV|3#zN?>X$CaJKH!^g}Snk`SU9(7c9Md{z55;cD(408)n7j>@Jn1fr**QqH5St z;?}Hk6LnV*hYk^z#r*l*L4Gn z`JD6U=ciXbbV~1;;_$2<#$V|N4E^sFN6pd&OLQP>&wMD3_gKrGWgPWrAL|vzdzZU! zw!Fcb%y++f<%4seosXXR$kT=aSLs>AVNKhsPR}xqvidSVE&V4SH_X1Fi}w>p($oC; z3pnJr>*^VY#vF}Vx{?)unXa3>xcB`dvCXFEeOpL*t!{gFSsWEXrSyy=`)a-+!)Gx+0w|8sySvVU^BDD;V>xlC9yVJX8Hr?lhT_85Ms$rep>KMhN7zc~ z^IAhZinHg{@M7f0BX0Rx(fNrHaqqGLO~a-xFN!2a#ZPy9cq|LEcTsAoH-13V5d3^L z5ySq2W0{yom8QlA$vxraq%{qkwxVc2Vl=J?j{PG3&20_87)=?+aWAESBf%DKq7RT$ zS5YR?95DTXqTvbsACbu5|F8tQz4m!yWAV=t%XW)pSNsk9?;-qp!YZ87K0o1IHgw;J z_&}GZ(;ZJA8{kZ13E6n;9G5%q(5SedlU?yz!ahbkYmj1#C*74Zea6b7SmJcY%41$E zRvP%9g1>C@HzGd3mF;xLJ;%;*CZ$qwEX{07EvGqz8HKt$1rSHAx?0#%Hn0)N{Tfbg(Y2xo(T?`{n6OW}f{KolF4#yw6 zH1R)^ZrR5o4S(z0HuIl07<+Ggbm=DCH&Oc29V3oCue(zo$lDt{vBtIlGY3D7aUsSd_|wkEdI7L@p10HZ()ig^k3;d-TpB7&M4LY z0q`fxaoy$bRO=^!!u1MOKTT0{FBYCT*y!6(WTx=@G*!J6;Il4jj<>>YpJ^tZs z$A6JS4PH!53~T?q3md&eu?}ocjb}Um7t!W9*rc?l#Iq9@I=dMERhuV|ro=CBHeT%B z_^8rY{7QVb9gW0CV@vxVjga!;qa(N{kLU5N9Q}Pi_y}YC5@ZWz-D}SwFCmY?>yf#b zpFlPtbKws%|5`hdi9PZv<{EG&xB%P$j>6Aj{9X@^0w;iDk&}qx-hg=G_+5rss zZ^mu`=6cL=>rNb46~nd)E{vUDlfUzCHO9w z4oG8pixgKzIkc;`Acvh)K)*RP% zLr6uvVpsfm;(QHBM^2H>Mx+yS3Vw$rR+ZG;yemGEv{$`Y9rwq#!jh=vwXN+J@m0i; zg8L@IZF@20$0Oot@k`D9U|WtWc@Fh4py?8`ZE91GV|=>s(qeD?HBDoadEMO>bN6|o z_;b!qeNO#vN85#odrHPw_-$>cFU*+onSGyieny#}XWKr5`@qDO;*ri~TuDYEr(}c+ zqcP-(HvcK6KHfmSAKJF<7mtwVy_EGZ^X`|xCU66I5_}W4X7C{L0_FddP7d2Mkp>sEbO*kc@bdv(?x!wJoLL z2Jl{rfZyyM&5C4>G7+RzO(V2=a@#FF>N_h zE^N9Y>30NvFHia%g5U8;zv=iL)a19D*H~DR zP25+av1k2T8Sx>0toVMvHPf#P@^-LwV6tA`ZVmd|UDVx7MD-g7pPj(HiY!F(;B%1a z$OvQt5<@<~Egd`wzKo0|>=tk!xDr%bsNd|KMCyV~G}xN1xmGYSOi|WmnR5ZcECOYo=s1?M$ZdbLW;$$QdnZjgkDch6s5W z`<~{7kwm(CZeQQ>Q|IfajKZfo@>|m4KXI-qZ*EI8{$s~99~#$^5SbN0Q$_?n&gMKbij7C$#Xcj-h4^Rr}_Q%Ah)!#AeI{d}oE zo;adj;Jvl?&5#oL6h+69}4=qdDJb$F#)li*FQQ5l=#KXi>dC=Vc+`=!CnHy+eeau7yf+{H z;B?G;GBPEt$)7KzQa>3-{Mmx;@QGWO#(LiU)4fZA8f z!TdZTyH~L*0ylyazz4ulU=^|pc?s!6P9PH%mNehN&uYx+ND6WS`3So;$bMu!vJ=^e zz03{Z6i{Q&L)*OXkBCPaE~Q;GA0jhNDLFUqyTrAE*2IZsFXwYj=R9?hwbkj4Qfx*x z`CQ|4Nwe3WF*TA<4=ip@iTiUGxlM0&qes(u&RspMkkCB4E*>`X!J-jntCd3@;ru6@ z#@`9eSGXtLxaP=J-FMl+C8M*LhwKJP8bve?1FVWf2a?ES+pDL;k*}Tsx)PJtT?5Wbp`rpfmQKA?n z%HZ94g1cnNz;lye(64txihiCJ~?Ao9V*^ig;LvI)5h8G`uF`bfi7 z$@X5*bfrsA|5d^o%6x@0>j|lu{shZs#j!6qpLzz%=e%Q=IhP2lPQS*6m1ssxKQJHD zkEJyD^Wx5qB5LUpW(>hod2oql#_0)vew@-cmin4VE%|ffT-bQn7(YH(_A#x-BCNo{C(6xe0j{c^Te@|IRvwKaMfc7xXdgElYA@YsUdy>GfkIt*E@(||9S`V z5I2{M$0vrwzI5%&3(i_q7Az zY(NJ7GlsHW2>I7po8k0N^x#n(wf~k34_6%ooHI{7y{8#)y$cuiKMt<_&%k|xxnE5> z{=Qx`qE}QZV{9p-vGR%uS9w`y{E=`mu`nMayspcODwkDORo5)$HH6EZTGY^sE_IjN zOCEKXyVr6m>n@M$_pbY^Ywz_UDJiFkz`aG#>n)NPKk?q^-bI*RR_jzh+FJl;dxSpg@J8(-bGDUHeCMrwcwnI1kFmmfI+2XEUGK>Qn8Ip zNx6u+I;Yt8VQs(GYoJogRi z@RW-(Q@w$|^V7?Gi}dT3O@U8+`jxr=0;R3HSty?az}I}@HFCO-pPI6 zZ~A`E>Zx4x6Ee|PpvZie6XilTBstj*ypMP(|Il|%Of%-~u7G_e-NRR;BBC@j*pZIj zwH$`g%e;|WyN?q4ZF<&a?aMpQP}R3mcCVM;5!F{wQ5H?J|cls=8MM-(qlLC+4+jx8&T1eqWc*0j#L@*u}Xc=41@KC@Hn#eG!m`g-{Xik_!!okF}*A6 z9sGM;)~Px(=y}8$8Zkt5+K>$HO1Zc15_EqfsCNmI?vckL%B>zTw36OJUX6H}Z}Gp6 za#vK=mDet+sYi*ey^3D9?H$oA7+aLiK#c+1_nFu7%<3aOznM`L z{z>kUCnL(X(r};q-Vx<=Hg5>xrTnPx`2BZiZm6od(GB8#C)C?xWJ5$L>48h_>04vH zPwl0Q?ofM3vpK5I1jK*LMq#}Os1IRnopeP%uvW2(+z92Xck4AP69!p6OMqx8pO({}|} zMW00m>Xd_DM3lN_Dda#0S?G|9)HnEd0*T6?qfeEtjgqOJz(nl`J{XWJUa8i-oXAAW77TM>zw(_Cb z70EK|E}b!CxgGjTlxllSfsVhL+t;!``>qXV&OEuH#x147aG%`36QK2>Mq~N1~ zmyy)v{M#C6H#~>=gofzuHF91gq6vmFq`5D*elyUnl!ttd zYW}2p3P;y>A4t|s5ATuBMj}d9(`=GHiLp~jXDz(HVuD`4nUIUa@PW#Sri?n?`^I>$ zF`Dg#rmf1br=Q!Ox6Wszt#?qBYS}PE`(g)HNB$GUf82D`w1VpCK7R9HMy)u1EV+eT1Kg}sXf*nm9g#^&o}KO?B9kL-2BzhsmWH)xPNarch&rV+>|=L{!?557U%fivgxr)EqWF6aD#6S=VmjKO~w z* z>E==?UInH|U+W&>^JcH*kNoK%RN238*ba_@ ze{Ak7;+;P&lH`A~p_WMEI-pg!0n7rof)P*)D&b4u`Jg@=b?Jes#{*z$seEW%bQP#Y zk$g-yoNZWYsAHVv{-B}OIm)>fIkMMhm_n^fgj$pcbrg|MD+r;M55jSVn)Qoo$}gO0 zsF}Zbg`rjfN>2*`**{{a^?>-RhVOu`Mh!Ks7uTF#{t69s#FV(E_`;u{s4j5vYGSYWb%dYtI}VipiH4el zD?QD?WxvI6yV<{HTt^McT@!TS5Jpa+rsoQOkMUZ=2SAlaGj{oV0aUrAGDBPwc)1T_ zL>1TcU6^O6Db#4Vrt+T!HItWrsmqZ+sZ9}P8%{Kg8!j-^#9#h4fx6?KGyVdo_;!J* zx2uLw8sln8%MbB)!6L93R17B!J3*CLvv{GV@N(A-UZ{DyP;+;c_<2zAX;LrLEMGa% zgj?Y?+m`<}L(PU|uc@%?r3g)^>7~L6UHYKxHSZH@+9#Z7SY)WlpX@aORDK=@l@HAf zg&RQC#0#MOY3iu>HFFc!v`wg4oA46D>kUf`YYjD*lfRvy(%TIx9ZmFvO`y`#3{dH4 zZYBRham{$dHQf={yh2xVYN&SqCZEB1aib9(Qg z^s^6_+@+dL*FT#nWVejp>7DJOqQ@k>|J@sZrbQ|H*=z9gQI}lhYxdb~ig&hi;(lk7 z{qFyT_TO~7g;RG^#M|i!eQd+l^|g`xiJRqq-SpnT)g+~_#CrdD($D5mkL{V?@@PGC zzld2A-07Y0>;6oW=zccedu(Rk%B|B!LOnK%``P;CW_(=UDhYO+RA$Nx4cjVd;TqR=I-y6Rp|?@ZvDh7TUuWo#3vU| zTW0oEJYRNHme(_QOyi@BuCKiLXu80gQ@yCX^497F%2s_P-=LJ$)|Rc%7=4=yRafBg z(V+5I=UW6TK>U|iFP?B~?ah_t_g2^4T3NBEY(hA;Gr7AIk~NU1udgY%{PMDzMH3dU za9>PM&}So;f3dE=+)KNvb8W}#SIk|U~y$_Is1S&)s>g=aoCsr zU5D~&ITe^!<)88{E~^h^*P9l*cS-gAu@%)zWBd{qtFK)_kXU_nEKyc|Z)|bp_*jCK zd2CUgywvim&BE$}7|FBas0jT=4JX0r3-#or?zV;6l;q3>KNEaWR9#!(Ra7o4TUu2g z93QZdh4f9!`8=oY2EO2}PZW4dD)0C1uU%AMIlEdzXhB(h_2Nb4v@Y#3zuPm!qrva> zv>8ODFXcB?ze#VXpSGl;a(RJQxx8jkZDn1NJOp2AdzEFiReT#S%L4k?;_79UK@%=r z;v$?M>hWaP?^m98aiK~b`dNlVwOLnZvGCJ|b&f6zzpK`H9E+j8TtfjpHJ?{jQ4yq? zyvGatUZ##P!Aq3YX-{Mk#Yj}s0h5hgQ^QFdv`|p*bhjElSEjyiudFGnrC1eHRs@d8 zZtH#y?q1$xHFd=>y_)YNL&3evm5*Uzf5a>XQzAv{uh)BMaNQw=*71ZAC;A0)0D zz$+XZjFe+N`<;E7dC<0%oWsBI6^=`$Zg11 zk>$vP$XcWkc?#Kr{4?@z$f7IQOh%fK4&-waxqpyCqzIXZ+>7XYkfq4ikVlaxkiS8; zA}=GqMBYH&MOu&#kyO6X7=fIR=zEQekzC|jB#wLunS)d#YY}}D@)Jbgjr;~Vg!}=y zPv4Uu4J{2Kw(Ch0N!V?&(TX?Juaoi>e%%oh5a%C)z*shDl(xq zSGrGOR@=**#s-esUw+QRtp2EPhpxe_J|OeOl>I4C=ATgEKQi;VYilQPz@_?FXZ4XE>SL-8is9`f?5~kD0;vD1tOGFXo{{-KF}LGBkZ-dt9Y!8O)y-v? z$6}VB%Q621Kk9#*Lun{|*_|-EAWzO-dgKYu^~}rXa&N&88h;)xJ@qla!#%SRE|Um59h92?iUR1kECp!9c zlKcbsA^0K7r*xtpga`Gu7JdNUX6|#~`$K#xya^t(%NqFJ5SLD#J@73Sz5>2G6h0rm zE5t8>?}P{W9SMI9Q9W!jTxYn_@E*f?hBFPXHym#m4dr8j1{0-g{iOtc3O(J&EuXXC zC*gtnR5-f@o9uz|Odr*kDdXAjW_VC9S@6T~ljh#Za`F&7i2no}eL|Z~ zn0q@My+X-)e;>Xd9`vt+@FsXrudl=R%Ds|bh359WsD>4y1+ zIfl}=uJ|(zKc>yaTMVT~OI&)hgs&QIGu&j@V7SsSVJLm;3OC&_-*CL)NW-Y%N3@yz zHybt?zH0cK;ReIU3|AR0G@NdDz2SJnm|>P7uLrpF-lwjW?i+?X4YwL@G+cu|@1Q?q zVz*lQzHPkF5Av(vLH|aVx3@Cn-U43^5Bl#r@Otawy+acyND=ffvDp z`nVqdh47$0Cc!7egZ@1Zo(~WD_XY3?#G!g0Ylyye$3MnR_J<7LG?b2a*>5*|*09m= z5yRz%_ZZ$~IK?p6FxxOwde5yLnptmTz=Qe5L3k7%)YD$L7xFJ1fj7c~esd7MF2tp)yCLLX`oY)2 z_gne4!PkViba<~0`IkP>O;E0E8s!DnGP?72mR)H_&j*fZzjTvi9_{WWSDOlGaP7m9KWtz4EG!EHhjr& zi=p(G%l{ff>1`92K6Bw5!y?0c!x;L~gZv&~0XPO8%-i?EN5O-6^Da30tdiy30ndU5 z&xz;Z=($SHyQSkT1HRhouMr-Fm)djZQMdgZkR`Wdn~@O*yX~5 z_8$$u#QbH2?9;LH;0LYT@35zE3jN#l7Ecpg`p9=1-wi(j-(~zIxb%_htSzo*o`<)= zON>7YKZGd1uN&?JC&SU5zGS+9+YPmd`-xGDx9wrlJz?o z{s5wM7Jy2BhG8!Lg8O7Mn;7Fm@k%#S4m=n)*21$x?$Xf|g9q~|>1Y}Q-)!Yr2p)Fx7h>l?jO=(i5Wgg(_y@w<;K6*WlTDmvc%%702|o-E#)&rgA$YJ(I|S#9{A7GOTbwUi zlJ~`4_cqSb8tP_k{d!h3|$3_uVG=E_g65tb^}_2jhay z@!t{hzY@M39+bBh&iVYw^b_!{@F4vK@GbCQT$lyl3=hVIBKSu5D$DQn@D1=Fe|hjm zcrY&Hz}La|+Wjz|4YCIKN((Rj18d>)%zYqy4Scz|N8zjCJI(zg+G`a&xId4>SHf$| z{~`EtcyRx{4X=k+nfnm(Qv=^>@ukD7;2Vsmz!UIbzv(0TR|Py_;g7>h;X!=wz~{l& zTKG5NCGeHT-+<4C2l2fMFNO#4?S#*O$E<%m51$Ix8FA__kHd@L6_&ofSuKPYTl^2f zC&TBNyFN3!lTmBz_uR|2R2K%XIKNY(wc#waN!PIxx$#~_h0v_DoNTcN>-) z-estDxcq(D@JohTm&-nG_%`cd@iz^BZTOFd+GCOXNW-CqgAD(M^_$#(Xt>U>!SG_k z3k|h~l>bqN!wrWT4m3bJSa<1%i3@Xhvd(kvtnVEDwc+;-A2WQ^@LPu8 zGe9|@M*&*4S!&$wV~YC8urw8z0&OU zlC}I@WcWG5(S{=p&ovxu$U4V`V}0XLI(HP$9}PDfZZv$-@CSyI3?~|1X83u-H<(u| zKF#lizcT!LL%j?yd(FdzUp2hLFx@c4@IQGj%ikXjPZ%CIY%%=6P-jugzusjPzGe7- z4PQ5W&F~k7KQr8JxXtiKhJR~#ye zcy24azVH_Q%JA={{9D7P41<31UE|*}{JP;%!^MV`hIbl%+3;4wn+&fryvpzkh8G+Dh2eRI zgALOR|I_-@9}JHg{@(Ck4gcBjpA7%O@E3+J8vdQ(-x})oceU3K48LpmEyJ%HE;U?i zSZR2t;g=0>HN462I>RdsFEhNz@O;DJhJy^HTTJ=-ll9O4Fl;sao#Af{gZt&z#(!n_ zbHkq+{x8G-VfaJC?;C!{@L|KR8P*xzYglghRm0m2Z!x^l@LIzw4KFji$nbo_;f8|@ zQw{%Q_t$?Iwi^D<@VAC<83uaoe`WmVhCem@Uxxp~@P~%qH~fy_!-iiotTVjVu-x#g zhPNBuVtAwBwT4$3US@ca;rWKc4F?&f8ve<~57P-2Z8iQo!`~X}6>jyHUmFJF&(Dqj z)bM{9{tv?+8h+pKJBAM%e$BAX@Lt1m!>=0NZg`8~jfU46UTJul;YEh$8=h-8z%XL? zM+&8K{k!22!}kn-W4O=o{}}$#@MnfUG5nF?GlowZe$VhP4Zmr)!tg%BMTTXDUorfW z;WWb=46iY~!theV3k^SOc&_09!-!$<-1v7J_m3F9XZRb#eTM(X@Rx=^GyI9+j|`tN zeA4iHhJR`JO~Vz2_Zc1nSr0|^d=l#UB-GkZ*kriZaF5|`!(E0u4R;uBH{52p)o_d9 zX2Xq!8w?u_wGLGJ4TftC*BGugTxGb@aJgZ8|EA48Ri;}H_S22HjEjLF&t$$!Z6D)(=fv@Y6!S`QhbDs#z2t(0IOa^628rF&;BM z%DD2a^fHVCjvtEn^>h$aeH;LlU+v%U=kx%J?=|~9X209`E<^35@fY1;T>Cx>x6SOg z8sB2L+3YtO-(c8i_Unu{7_I~OdYFyHLQ8`u7Y@~6Ed z#XAb*FFL~PvkWuMUi%yJul*yTJoD$DBL$wcdOZQk{5o3Xt>Vo8;q|tTx0gDjjuAS07p^Y zQsXl~m4B-7BEv$npKLteFwg9BjgL3XG5c)eF~c!tPnxbBMi>Ig`%d|}2Ci+u=XoAG zov@e>$b2rpso>CJX6?0UPgH*D@uU4xnN@FhoB0Ih@0xiGh0|I~e$@Bgmzg;A8-w=4 zWuM0!I4kO#H(=Htu^NSl0M1iCwx`yq_BQ$E-7s^3}a|x_`~m zE8q-$;?*;R`=ZOY4A)@tjLx3^Z|M3Au(-Oqs#knn%@fk2`YH6Qc7?YOj$+9#eu591 ze6^zfw@28iKAfV_Gkq}I*EhUnq>B{rGj==P6HJy+WVw_YqCEuhRPT zWhJw()%x_7?1ue)3;oqIeZFgT7ye-FlT!)%?z4p550~oJlln@bdyvrQnP(TE+ef2k z7o_j6+RiR~_W?w^shHpacpCvsj{d(a=w}T_EFSbK^*$HT^8t9?52CSjRo5N z^N?)c|4HIF;2V3z(U;!bT@z_@^07sep);^<3n?x%^P zFTJ^n<4V?UK|Xe@VZBV*xO(M7r!wg3S*ItoXy!UtYBo2xhq=?rHX#~JnJ z=H0}akHp8^8p?rh?3E8bb9XL1%ko3w(Dm?H#L<`D+_Q`$P!a3W>!}B{pE#U<{re=H zw;L%-9yj_L$`Vb63N@@BN548=_ZRaH5B*_hi63tH_uT$tC^namK)tK8?^%|-S?(P( zZ_HdjjsuUg&h8e2;&AJrK6UR_5r_7?W?LLnzt6jG#KE?Kh7NaG92_H2X1u#D;+40% zcig;+ulo5&{2+M*vBl7pkG}NgZYB=ZeiTwl9_f-^>?z*u%EAS`%hN(_hiZ>RGmuO2_^@|1cJ=q7k8QV?Ut9&#kwY|RY{LaL0Au<_p`g4;y zV&4quh~1kEwTDpBi8~7a1Cew@x@W$Hj@Z4**wrF$V15qq^?~|Ykz!6uP@p^U^>%6W@%1SUZu0dXo$lDxF1Q@==}6`GfC5Dw8_^wL=R~9#%Jss z>~yka@;^o|n9&}M$Kt+j=+hlV?f$)$DE2jS?uxG`&RL{08<~T-2wV_K$Ja0Ir{n8R zmCoB(+}Fd5*30&ESK=VX>j~R36MbLE7|h}PclIdHhj5iA8b2@YjZ149K)w1pyN(|{ zCuwdu>gz!*P3HMg;(h{oh4B789R0p@Mc(4VWN|Mv9i3*awfAURJoN`RJEn1D_fhF{ z^Ag!5zBWl|2zwcQyZ(Ku`{;$EQPT)|x?}56FK1NK*!W}@v+gzBS(}df8YHiwj-@GX zJ>jo*K62t0!5=?5aJ{cXQvbb#^g^euk8Y6L>Z2(Qz79#HwUYR+Zi>dG!742wy(y4&=w2bns*5HwVD?!L8u);48=zNF#h1 z_$cxaqIUh}HoxV(?8Wi%rKda6(Sj>Iuo<`q?dJDPX%Rm^F@XBaP7Hi%N&F9`k&9m} ztuMW@H2TBS9WCgOm7cK=$;V;jeZ&v%hxWq_CfrqJnNR(pbkI{TmJWPsX=xs5?zONx z3G;%5dt{rhqj#W7Zz$oGmJNC8s7We?`@Dr+OSp#+mFe3SHfzJ;_|~$a z8>-5NY#3iQctcxh=7z1MUUn5>Rn|b~?QBc)Vf5Omk3Q+zN`3Ufw!gOad;op4KS=h_ z+P3fGM|#)1apyFB&-woz^&@?x6>Wdz+#*kAmOSQMWIGq#vfpt`eQH))H2#+s^NcpX z|32be18v+Lr!HuceoZ9_Krn!5F0y)g$Zxr{AMzShVG$c=iFblzrc zSni&P_d7f3=N#5{MPjLA9xSuX8$YN?`AR318kb77b3NVB**c&RUE)nV|IwCuuXDS{ z+>W;nG`AMq7CN^|b9=vakhvYit<1TVn%n-?Omlk!H(zt)SIzCU*1_w);(Y7Bmw5Aq z(;YkUHOJY_F<&pV&Zb^siOAErCAYhJ((`spYb=plQf&3Qu{Dx2ec!Dvmb`eZWCr$w z6Sp{5jWP|b{`fPEXZPujM@i#mmxez+Jk)xV#j~>YMoa?}8;dh|!boeMufO)fc%Z*l zvE9?^>m;7+Vq1Ww+su98c>)>_Tk~Cv(tPLNE3e*y8W!YvHcq^D?9g zDMjMg%?79A9tUfYG1$p%B6c&t31Bf2!#o9yf|J1J={(QCz2F7lHgFiY37m?bN5NB5 z`3)BHa?B&-j`=t^6ZsIoqi~;uc{}E}!B-Fu*$f|z+gxxp{BcD0y+8YUi2K9a_nkvg zt6SYu`&(`@9nikEXYT)&oP>Ar#l;%m^%O63^`sVkrNy6pUGHjj2O4Jw?wf2H6R)-Q z+1iquxVSjq;`C=tc}KM_YV-g%eyltI_$Y z(O%Cv-D@jb##vg+TBHTKt1n#8bg{+g&tw!=MT@V?ajc8$F47&e&)0P6&t^_{%x>}L zGkRKT%-lrX&7lq-0j~!ag3p07k==3H7VcqI8!iLWktpWF;1uM8n|WCTf8#K3!TdV- z0`d{&^+*bHCkCg`Po7Kn#tcra1WS?Y{PsB zYxd_cFTlJOoDC}P()FJ5eT|fnL}^I{DGg4PyY#$Eq}6&e+HFf6*UVwVkx0W`j-{-> zlktNUz>)i{)qFj*ksm75nj?3(81>&vq&#)HV-@ktc6N$q`4MR)y|Kw(e`rjvp~TlV zrNuSIq$l)WnkMN1M^fX{9m|cYp5~$9)}P%l|0B$WP2J}=3Nsxo!Rr6$A8Rah^;vkt z*N%m&YMpcz7p7&Swfc*GxFB8}HL-{Xk)`lhQH6)z-)NzN{I1f9oD=WnEOqO%!^ zc3fZkx$>1onCzyMxUZp8|MeV+k`rG?r~Gs_UrK+tG!c0&<)U2pN6nWeQl3k7=Ht!2 zKG$6LoM~P99#!Ji#&*|f|r5|kVkIhJ^;nF zm(>W5fvdpa?((B@a=7*<0)t=kFNWZ ztIMo-XUG0ye{^~5?0Dl?YD0(B&qvs0CjQ`Dys@1fyI9Tsht+>)$IHjk8;(1s|I#G8 z4fl3ulZk%t&WnuQ|U3i%$#&&p_n|<0`H%3cmS}5FkN?l4 zufy$s>&M|njLwdO?VB9;Yx?c>jgF-~CvClNw5Kr>^qT(a&<|Z)QKvol+@>d8Z0J00 z|7$nTi$0Z8@`TxKZ;vHX){iUJ3|yMfA9p!@j=W{=Ye@Qj%zQs>zQ2=ndDOY6hc)1q zQ}S)|xrP|#G_CgYu_0FSF!qBJ4<&ssZ(rrit6X}u?J048{;fGeXU9G5D=nUi_6IO^ z%@M{o`A-{_ZCNt5S?yiA+B-X@llG{6_qh`3ziPFxz1sPXGG82cXtBjUslCcfx$UV9 z_qY(=*i?F0PP_KO)Mp2}RY|3DtDslNb#!~Vxn`F5vvJuDp%n9-KlPjp_95n3>?z6- ztLpGvytCt@qjxy>JE%?dh;~-hUv}YB8&wM*98I-#YtY z6684YA!A7tJP5uE?gU>!-v1)|Q=s@N^i|Y$UB%TkR_N)!C{20z`PvuL?j<` z4)Ovr8X1P9BO{PnB&U#P2$%)tAzS!}Hy5sS2ZFP)JB;~#a2Ij`@+!RfI^w~+8uPQ@ zV@MO`dZY!naiGF3Kqg>5K)hqX0{AF!G=4HMw_tw=c^i2h*@oLI;C6oh*#;JphZFdF z7tvU{n&(OC_v>9d#!Bj3OL$`=+|A?Iv8Zvp+V#${>^|JswAhXQDUDUmZq(7vj*;v< z@ceFE>^A@DAI$#?Y3tSWiEQNMYw4%pv*2uGF6J4?+sO6EB;*2QFK)Y$wU~?O zFU!CQ;4I`dev6$6Pr*D6Tn45iQOt+IDaZ$e&BWh0%v&(O4!(eVgn2!Zg)!_GB4eGy2tv=Yy3fkZAP;Yp@HKpM@&h#dqwpTAF|ZzS=s)zhw4fAn2Y@=X_0^rFs=ms-E!%sl^FBk`}}v$JDs>q-}5Y>B`3 zkFk)= z>i7Du`f)YRb-B5o^at%LF~9!ki_UxVJKOC2JrMQ2OK^$V9th8WLf_n^m5J^;e+NYW z{hpfDI^CJI1H%1J`%QIe`@Pb#Ai^bQQ7oP@uk-xZ)&50NQpj`aH;8VL^ovK2VsdX%o+(+UV%%Q8>&HDZCi1Y$pWn$Mcj(vw zeRn|-%cvpu66_hncUNX%FV&uvPt>$3P3qK}fskelC`33tqu(?amn|u~yRufN`1|jh z+H1JHaM^c8`w4`$R^>#wSdEaAIlywni>{!d`>)+IW#iL_h+ORQp!9XyM(#+L@c{LZ zw$%*01lQhgZo0oP+(#ogWgaNI{z63QXh;zV|JwHvF- z>gwoi8Gk{5tmJFv^#1{i>dHLjD>5bJB5sR;GjH$pe&aOLxQeHX1}O%5aK^)aOuamN z8IcK@e^P`V5k>|iH79u2DYI9kTog_92HoVx68%rG@7g}oyR~PmmmVG?*F}^))s6;9 zdW6nU(>FxkIr{Rv?-Y~o8+Y}|PvtpM7*UEEib=Hyc*Ldp`%g@@wz2{pD2vLflCM^u zv82jiH?NU+M5$@8C&jJ60i{SgDtyvws13&sQf}0SH!@n%8@hR<{VqLo`$g~_8Sl5> z0L;V?{TbMI1(he05413!u}s~(MW#oTEtN+PEXvdde5f*I{0k1`*FM{bMoK~%^#&;~ z%9GBH=qFE0>(IyZ<+{pR2B9T^2H`X3tEbn<%!sm}eCgpy-cDgm!RVdyfBQ{U&DK4( z;Pvt|rhG>4kuOD*svgs%tS{LLlyXKZDN`$aQ&L9xuk2PQ%9ZM5`#Js9N!^Mi<%!zr zCDlvoW>umtrLMjJjm#+Vuj3r};+>7#dp1gkkGJ!nAJEv*DpHX8Kiz?z}i>g#5H#xOe zvfwM2x>5oTtc7BFczXtYqep62h1+%^mYF zr0F<*9RbL7&NVDs&!%;Cr}Z3}`pr)AL3ZYlkzYoXKdqw4qZA70kj25-WJlTwo<`Ef zo54$$CQy_*cxi2BP}cwb(`TJ8R}-4omY3-hqZ<>fU(mvLwvXgcN&1c`@@_0AV z_&nR*(tVP2mX*@$5z2c0x=2K&*B%u$upVRLGZgCA2LFI0db_|@J|M=A$uw9*_5p)nC{J}E^``K&#q`^2o|Y`L{utm zol&w;81EWQuI6BP6&d`uWa%9YQ$LGs7XM`M(n|QhOjeKaZxfQfmwzP+dIA4r;2Ns+ zSj27H`Fly8N*IX@N=wz}H(7i_siocxTI!ioW?E{#Idy&ec$=G#n~x!BsrrsVfxCPJ z_nRO8(6m&2?$F)KZB@bjVi9Gfr55$_72HDR=iIc^slEIZ*~-QI3`J;pLc|2dlut)X{ma_zk6xb*5M_B`5l>-I`52r-Ri+SeI_ln zw3nx8!NS5kjY>ZP47wI$>PTSL?=WdkZ%_{{`t&l!xd7~h_peTjC8m`#45u%J^ThfGlmn# z2j3voAc+Bkz0{0p!<9t-KbC3VR$ph`9XZhJ=$#`+R1Q+|Wxb z1TB&0()nVhQj$I#?{X$vDeg1CNaUkG4CEHjr@oS3kf8;&c@Z7*I9 zYP0z~kOA5uH?zZ-p?(yQ`wYW5hP8&Pd*D{%Ge}3_N(^-<`DftE!J(jbKu3ex{*=Fk zhBb!T4VC>PhK=AzxHd;+|GeQYvzKB5*}rM1!-&MSkEn3kL=@ML2tw`j3AN29oMTvP zxXMuba|*A`Ir-ad_@<%ux@517E};%A5^A4G;k3yl?y)B#)Gm-vTR_5WLmg-&u00in z(}s$8t>J@)n+&zjBKQ4 ziu|oJ+zcxG3&vkIl!71mlj0v?i=mX=h-c98g*v@Wm~EJ2s1JK(FXcHxlv$&^)T1>fk47IRQy=(oWa2mDbuC zd0Q}9HEvu!jBCz82H48fl61aA8{RiE}UuhS{lh+%M!(_ zHHr8ep!~gSc*5+pOp(15{t2~O5f&TXWvD~o6`$5Ha+d-=;X8)!8)|7I`%c4wtQf>c z8eU?kb&%>?s|@8&OAMh_7{YWW?{XgvD!k_Yve(34SZel~`^$Z`;S+{W8)``)_m>S{ zGknwVeM2o6l%5t1ieFP_q2|rPdqBmr&bX$~;wTw)sF}35rrkoF$S;(#Rn?p3*5W%1 z_ZYqpD&3RD2M+W74KuvJFxPOh;S9sMpu$%e*KA$sJZQMau+eZ6sPbqIFMqEYHktkV z#x=E zjB6zz_c1I2gjx^?XBuj8p!76NSA3eI3yTajRhR!|hR++m1}dCp?{aT5>@-Yg!Y+GF z>V;zsCm3FDI0IDsXv!~t3k+)v9{`mftpw!0!SGqLf62HO2y!3B+CZpvg0RR?YX;@l z{fZxnOlFwn3D2dIG5(E4?l$3PejD1$^WLI!IQQy%7gb7sWPj_ZuAQN4h`MLA-KWjx z_Vm$h0$$nEHMzv{(tGCE7BT-{TEBVg{xj5_-k%l0k(*KzoF&+jmM>#v0BPxfo`o!%$^I^7jDzaIT}@AOj%p+5iT z>|f{f?3}^+S?`AQT^+$eYdv2K`7dmm_Pt?vU+=v6zj1m;84UV<2c_rBGX1|=)6W|# z{r?*KiN8pG!rt{K>;wOxXX%rh4WIC9Nca8sANLxV^!szGKT3A(xg26n*>`h)LQ%WA zW3XxR=XA;b-wQb7PwqeKRaeOyB*>BXU)U74ZQ@6JR$?Xb56ZIqOa0UPI=c-k6$<2jixiaJLT!El;kTbdL6^w)Xw^nsnf$;Z2m z$-O-MYG63?!0x%%*}Sr@<4v7MZ*ke8C3e=UUrNr2oW{{+MT^`?b!D|HZmC>RK%#T1 z7nN7uTD?H&*Yn-Z!0*^7Kp6Kd)3kBjTuU=)I^OD(UBF03wykvtoCiqL;! zsvwjE8{75dr0%wbcqyn1GU31E^H8bki?v_s-=|$3#)6DRwx*?!Vg`ypZzOP>a?No zbwU1=eDG8VyDLpqvg_4F)#XbUQ}HTSvX=Wi+?1&MeLKl7WI<3FZmJ#LlTW%Nhc|aW z^!LJ3&pW%n>3cZcp38tw%6ivm6VzGn+$%3`MCtv~QIK?av2-?N>zU2)AouAq@Ci+G z=JNfw%&r-IgJDp8$Oblgnd|CHmM&i4zg<0rqoNDEvWg1xVNZ-3>ZdKKs9gSuwM7-{ z2KNIe19hdX{@yhptE<&im6iAKe?Ojri`ZJ~Q7nVX`rK2cq9`=Yy- zl<~%4B{%u)3^V2R)wKnBid6eA4k)c#yZh9ATi@juazpLi?%paW3reU6?yXed*=4nN zS2Cp5)K)HA#CwifgOl8iZYmYDz6ordrQw4w_lkJf)G+~6KOQ(Z#IA-u2OZ5W;xmMyKS zw_{$t!u-PAf;U5yT~3giF{1*ZLsi`14SvF7Dk_po=Gg3eM^6&eyX z)bt#R&g|T0C+ix2LXr7>F65-~t>0}EFIl5jWud?tf4e_Ux*Uswu{n4{z$+YkhWYQ< zP^s#ims|ZO{|%a`gLsr-z9^NU8( zJr~YmAjym1{KAvuI!`0a=fU}wfbc?#Kz=v(!H!+T zkZG9J9zVzYUYg&gdoV}R{WjJ4csF2HyZ$@o6`0kwgKwkmF{_QoV?K&`Ca8Q~Gmy77 z&HS4|ob`fP@&AB=e#^|i7~*+9HS={tInxXCpO71<;6dCE^8a17cXBYRT!X0~)g{Sz zhp0o{h^6hwPfM`)l~-klk_YR8KF4?AowXJ^nIeM=~z0 zF*0zeJtxzzbXA1v z=fDq`doDa1o@3#&;W4=CK>o+T$G}y7@l5zA_znx70v`b%Z|*1PxLNS1rPl(_ga_#z zhG)Qo^bWwI@ZA>vO*n_^4FTB|Jc=#Up z4C68QZukM?BjCH>Q;iRS?}Qf_KSkf&0nfAg{Sdw#t}$Kha|pf-9+c+*d~3*kFMLbL zeK&kFT+af9-wEFcA7kllhi`xf^|uw?2+y|iZ-%df*BftyH^7%$__gr0q42BWYv9|= z{Q>xDc#Vaxhp&Ryn|lR(C0x%dH*IXo!eY&|4;6eY( zhF8G%nEM6rQh3mxM#5*%$GLqM=NpbQOgB758_B)R@Lj`QhA$X48a`xLWjNQc$Z(S3 zC5EF6Qw&d#C#ClR$lPG@`^Miee8uota1!ntj6ZJppkc!BF2m`D1%~4dGe&i_|2%%4 zj>3cSW)_?WPIA1N0YCMbuJ$N|pM(ePRRBK$59)sc{5U+Q?@Qoq@Zf$M32%n)u>O$= zKMW7Xn@%QAhv30@a{_)49;DX}KL8KXdmp|Z9*j2!;Z5)${r&L0@L;@o4Za5+j5jaA zcZd8x58nk3#+#?%JK@dNpPqp4fCv5aQTTRvkiUoE+d|=M;alNB`R{>mfd}JFDSUIt zeKvd}e1z4{4ETl+FM>D1gYjr0d>uR(k4C~9;K6t_5WW^3j7Ob3H`lwSHpwx z=mYpFcrYFvgs+6x+x_}Fd^tQQ@2l|oko!yUnvnZ8cojTouZ{2oJZPUr_#FCx`u`Ne zJi{!*biMMaSXgZp@HTPzCDSVIdci{8jnlCB6CU^;4YYy?(;IrXD{&vBO;m6JY z3-B56-4@?w_*8iExdAVN?=ttt;DzwuK6(f~8QyfepWbqKK0KJ`)WY-N!F{$6o(m89 zT`7D#Jm^=m;W_Z2UrmQ+!-M;-03L(yu>9o0$H0SeXDoaaJQ#OI!AHP@^oGH+;6Zxn z@J#sb+x`4|@CG{Zf3uK7OzKQ*Gu{~Pd=@L=3|1%3h^)Yo?Sad=Q4 zTi|W*Ab%U-&7trO@Wb$+{Exs7!Gm#UCH!E>eF^*kyvFiZ0^bi0#+m8xCU~*A7r^(z zgK=g8d=ESrXU4*J!>5}6G4NgRBI6nGo$x#xS30>LcEBr)H^aBX^UZ$~d>cHd-`C(< z;UmodHux6!81w%ed^0>~&kgX6@F4z2;2YpU{XGb8gjZSkd*JIr;pf5|LjGsL*TRGQ zsR+IXeteeSA9CTV;cdn*fvi!U z7XKl5A{72jcm;fym1i%!6n@zJzYL!TFEsbf@DlibhZn>1jIV~zfCu-( zGWb;Z9&@jO7r}$}O27-@!T2x_J{ca255@3Y#xRYyF~cmwkB9sA?S_X8UpL%pxWVvo z!5JPQXshsV!v7RR_ zp!hq6`Z7y=yWu9oHHI~Y3k>HOPB*;XaGYVxP&#`R?+NN!*lc*faF^j$!wrUy8m=@f zHJoEOIm_FWxZUsf(!rY#Z#Lcr&w~f!$RT(xJQzoI!^gveabyQP2Y$f9Z-r;W|9{%v z2d>KN&hx()FNPRmsHK)#YOaJ>w8RiYEV0xgAp|Wk)KE)P>R&Ku5E&#Xv5ch-lRDPT zQkP8`%Vem_xQ^py*bH?Yhvw%mFE-<5*u2m>875^@#$h8W8aK-ZCqGAj@9*<`4m_Zy z*?;%Nx$pBi=X?G<=bYzx&T}sJ+ydzX=qTD}e5jui)+kK-8^u*()?Hkm zRBi%cndnmK2s#73R{F!~v>SR@`Vu-VV1EXk8i;=z9YvSO{tfg@l{-zmO4te;7h;ci zbo%)5_p?sZ8PIL$4z%mvRMH$qyZ((sA4I$Uy?Q6tWwh(x%jh<=>)-R}RCNe(e65Z zh4wE(yX*7^=t6Xs`gsstfKF9=okr)OlNH~C&Oy8D`fKQHv>X4gptH~?WPcEyu5mG2 zoFT@DBh+yPF~;5_BVaNXNej-GFx2m-*;=v>Sh^=sL7(za(@m+U1{s zu1353ZQ-~QJ*fPzuqIl8KB)4C(Pe@7chM!JvE$4Y)5Y0hMEn3-vpapqc>PNW>qYmf zyp`x4w3~MqqEDdR@#Ubq(eC&bqmQHA@hw1iq22M#MIS}GL?6}h#G^aV=_>yk z>%oW7?tB|TA4I$IE}`4euDmnoHgvbr_oG|UuKd&J7PLG6-at2_Gh}}R-4w8Y1-%FD z`lAiK3+?*51>J~t?P0$|-+*@YdjVaKcJ^CSKg8DThQv3;F0oyFQEU)5ip65)wDIF#c{}$Vv>Pu4=ybFj zFS+P6v}>P5=v1_8pA2*q?b;_5os4$vGYg%BcI`0@orreh#Xg)%K)dns0Ux-;quqEJ zLdT(9d1ufOv@7pzG#^Ngjh9~Z)!WC*e*=95?Z(Sd^awgti62Vyhh3Fo1nc^3rPXyvK z(A{X)AG6TM1M!LIE_9yKU%QR-H4uLV-HFar`~bQG?b`bk`f$MBey{c*+CHb`_4C)z z?Sc5C=r;5T*PiHBbdvObbPL+8Gwek-qun~l3+N`a>)!_S9<;k(K8N0A_PV}QqZ`q# zKi8rg&^?M@iLOVx`*$9?4n3gyEJoL&-8x7Hx*F~3Hy>SzzAXFM=n8bV@}Ge&L%Zjk zspz$6_nh+)A5s-ErtLh<66cE%@gw@k;?IlyVwd=e*do3l)`)9i7U@?>+gBt_FP2V| zo-J)(v9x&muCbMCU%@o}9yHx2c8iC_ed2C$yI3Zch|9%HF-e>zhD5dv+MlR)?V_FD zwa*PHzk~32g}*@9VRV9Y1A4#gY6*`hd<9`_V6{I^x&XaVcG-kqRe#MSEDL=_Isu)D z4k_I<^n9gbYqI?#vK!*_&<}7{zkb3mD||CyeP}nIT#Y`BcH?aYx)<%nTOPUx?Z)dO z^a=Ek@|%n94y2!nK8|+dKLOo^9+dqxKJYw>?pFPW(4FW3#h*cUpxt;rg+7dS=i3|T zgJ^fY9Y?pLU3o{)ZDz0hI?%0XSN}G23)-D;d(q8kcl?d$CbT>Ldh{N&JAbOtyU_0Z zS&wc+yYpuix{hPEb}tiGiHpSr;%qS@en?tN_m23ccuZ^;Tg2VsbK*v^RLqNvUk4Tt zmV@q6yQHAA(eA!K6P>1X$zmjs{v$qvADJ@#Ja-;F7|=cF0kq5ib#y=4<$na-7qCBs zegkL6drWL4-nIL7!dlQrRo`lKGrCLTW<9zI-KqFe^d7V;Zv}c6+U1vvuEkk-8^x7k zX25PfVX5d2<$Hz?>7$mf%6$i&Y+CVeqLa`=ihm8A7>MsgC!pPY;xIZM?dJFU(Q$$J zm(YQ{zlci6FZC_%r6dxCa&3tD>|6%U9_ z;tsJwEF_1!qDM3@cnKXvHz~deos8Zi-GEL)cPPK-(23|>iqAqP zpa+#-209*nS~?vahd!+IQFH{|sPwbYA+*ac4t+Jubwuey=qu<>>8qHJpk02K(U;LK zzw_u}bn+@Z%wzg_8$u^ZA4deqqpN7pI71>J{sm#sypi zyP=JbSHykdE^#}2i1@YAMdA{1p*UTP5zkPT<$GFuL+lh^hBiJMxOKYg>}JC1(Uq$I zYIGgCTDllrg|mFi#1gR}kWVIId4YV=&^dv8W}}%~c=;?4Q^dqTI&Qh%|5RCd2RSbO zA}yk|kLfzGLM#yr#4IsQOcLY7E0lpZG9>niC&Z)TL9s>LCDw@*Vu@HFW{GKHlK3}# zUifLs{WI|eah>>(c&GS}G>qB*Li~xiMSM(56=TG+B(ik>kvBWe|5xl1kBWaG{<(Na zJRr7-w!Uup{8ao`;%@N;@rUB?iqDBP;>Zj?pUdI}@vL}8d{_K?@oz=jqQL55TaOvv z5MLL6DgLEspPiXqhxl*Beo=s<85#L|e}{{et*I@pr{qv0B_D zmWvlyFShh&McX>V^toW`9atDt=Y8H3*AeD89n;oasa2pNKyfTg4XfC*r>l-{j(N>E96lAMvlm zBC$|>RJ8v^wRAl1c;q?9nKYN-w!$*IzY+gh+$L@nH;c9fm)Wlozazd!poO0ie=YuEe-#s4Dyy~t0*cls$=RgH@gaabG_ZGFS+PK!Na zw`l7g7T+lz7Td*Ev02xMnx*%Mjbgo6D^`kSVyRdx7K(XdwwNiV zi>YF=m?*}J5z)2~v-*yRwzZh)L9t&vE%u1rqOAp)eW%F!kAM7PtJo~=5gWyNu~w`U z%fwQ#SS%Ft#B4EBOcztdWHC{U7b7C;M*i`O!{VUG`jHpUI*~`#gFJSNtnYZ*UDsHz z@pQY$`irMoXYt5-ipNH=UaS=>#WJx}EEWsJJTY6$6w}32FOcj&GL@{2B zh*u}wFKjD9Z~Tk>;%U*=dMw_yGBkFHo#J7!U2GMb#XVx9STEL!m13D#Di(`{VxE{S zW{T-zs+cS$it%DZWIe?@4%SUP4vX&o*e`ur>=C=gF0oTQEVhfSVzanMY!vIoTCq|r z6HCQnu~5ttv&Bp?T}%~|#Y8b)jEJmD_{T4@&fsa*6FjnR;L+9x_>0)ujM3Hyj9p@< zcvx%~Tg7H^kJu>Ii?w2v|eMO$mJ z_|syK*e!O6o#J7!U2GMb#XVx9STEL!HV@*_C}Qg=1uQezdV%R2X7YVhx9?|Ht81WCh1+$4bpYe z)zTHxYo$x1i=+#rbELDRGo;g`qtZ#z3DR-Wz&qYd$Rl#Z(i_u7%g1!87!{L6%h%!) zMa$oGylCZ^j)=gISNpquuyN=5!*~@t;}vm4yetljL*k$~Aoh!W;%Tv0>=93h-Qsbv zOFSxeiXGx%@u1i)wu!A`i`XnSiF?FdVx!m~){AvwtynEqiWOp+xK=C`OT=QaNGuc! z#5^%a%oel6Off@D7t_R4F)AjDNn)ayAjXSvVnhU9zgvE!jYQ#c&PU5{8MOQ!gO;Ds z@-sWj&+IHev$Omjfq;ME<~$dz{`}-@yw#tdgpIfQ=Rhkj7e?VyXyxTYE01R>uRPks zE03Qlj<<{-g;ri3v;rQ6Aha0Tea7l#_ZcJW>fUi()i}Q*jzEhak{%QX6nP{w(|(}_pm zKz`dw{4Sn>E!?&ZUnTzl<=C2+g@>^HmHavQ?SC{Z-23e*`8x^!3Tr7AK8*jQ{I*5) zNAmZv_IEehY?|XaUirINR5ZJpdFe@;Ru6eW$>@8P0WBEMav{-yb$eOLZ32k6#=MS!?^7#d%)q9)Dj&Kf<+!zju|aU7*{t zagyoy{)-bM+y-Zpav9rqb)q#J>rC1iXmYwS1KS2?Qe<#Hv`JC6V^455pPNMc+c!?E z&-kXK6T|(&z47}<;nF9cy!8Oqh!BNr{ZVp5ux->gIfLL9MmI#>_>0JslaE{6ka)uWM>oW( z-0@AnMd;d=6G5 z^RHRMEnr(M@9QcpY;rw5CJ&bdX{tAE*!KLE^;;{q)jqpE^ONS`uki5y#9p~&{7#=25ebU-jj|Zql*D+QJyG zi}sH>6JIyvv1Q!`?{NNi@~GTYWleh1dQ4$m$<-s{N1>4YZ!)hN>QT9MgBLNm9&xr% z!0Yl-pMm!q@~D1xz3l+M?Phs=gOlnL=281R+r&@KQ__ zc+>d)t}YWjEqXgp*OYIxHl0w99`eY+*!F_8JQ9B5pR4A@c`vRXG$;G+kLiimu>?M7 z`A60|uaJjbzT9i9QwUH!wv|^}Exd6$p&lcTajr8i`?-!6&5S>6IDJiOHYTOg0B$~FGIVNEsX-Q+x4 zlt;s)JX9AiH#8z5IS8f10PRkDh-&Hb2g@j1qI^{j~gF z=I`w2_~j4-^BCt%KRktd6L+(G-&DTWN4v@CjxzYtMf|#y^hPjJf5FLdDHEB054@TNZ>TwN8F-sc6?8b9bfT;<6AM| z`0~e&uY-JclCSX~ZtpGfT`-n!+Jt;lCgeM7EZ-9HnNPk(+cSFcE%J>S%lGP~V1Img zDcB#EF1h}&4~9>Dg%Jep+I9wavvzpT;_st3UzCM<(?ZdsDe2un8x7~}Z zpMSq&O4BN@A0tiQ^!jSb!Rw<3F2yv3(l+<5EUeF)Q}GQ(LKIyH2*;?<1dBtKTqiO(W#fh(d(m;OULsU zbAMPxTNmM`)Bbtz^+NW##wFu_n|aRL1@tp620fe?3LPNq4Ycj2eF~k4-VUp96@;yZ z@q`t@T=d(p!P3CPjGI^CQNsQHjoCY;=}E8Nk*1YiovnwDT#V$0(l+!~cp;CghYwx+ zy4S;B=h*!o-hVONwAQn+Ufy@{fePzIKd$*=Z2rW4uwKp~KF8~|#*2QBSTFCmczte0 z?)|-A@$#~F>o>E182g7k`^t-1UQf)YEjM1w$W7{vY036Nu8*$1XuUYC!tc?C6}s}` zmp$LwB0GPqSJTw1`4_+F#rVCtb4RIlWFD9w6x(M9XkIbN9cr1fe#VY9uEV6R3m zhVy3;dVMtcqV;Oh#S*ShwU2OL;GZ(q!-3^|M;o^Y|K%(keQ*_*jGl@+PS^l?*jz6C zhi->0IJ+M0f{O^-4lB_gz<&C05WWek$YVLK=@;QYkL1trY8x%#>%+YXYKOOm{rid^ z8n4jq;hh~7`H{7^dwS{GIE5b_{$>6TJDPskOP+1a4_|}3;ZuyiS7F01w&urrwxN{V zqKHzplB(gC&tcnujen2$tk+sIy&7E~-7_4UpUC)0R1F`fSYNU;_p_%yCGBckHyo31 z^$mM>gX-bybK-I%y%`mAO2QA!Df-P>zbB99S5VG1o`;rDrnPMfZV6$FZc%>WCoDf} zLiriDEPo`2ee)^*HTvNQZa?ld!j9nlzOd`e?Tno1!`a?3rj+<2J6f_>F)_n)(r)Vy zrDdO7g2naGk1m9wr2})*V)|3)zXt}=(<1#}OuO&oLShRC9!;Cpe_vL7+P!_@IX}#q zUl8U>cRw*-8+e=)`Dvd!dH=wZ_*SGPo}52WLfYcAyH483UNBIeHnsoTX;*r`lQ#9F zjpBO;wxlKYZ%mun>yPi0lDi2FaXp-^x^-R%=O+_(ee{(Je{psjxmBeNowV_F+dysF zuX>+PJK6jFwBMY(osh71Ki_x3A34YK>u7^~+G7!JCH{Y6V)WA2SXaO;M#tce;!lSK zjNwD{**@G6!d|BzZT#%)h~(FJvyAm6;f3pq>Q%3b3sqi;TX?tga_xms({r9bS~9O< zUC9q~L%;gVfo+~mjcit22sfowq?BxxU6u06z3{uVN2zxo3%79nztA>dc2CQ0qwE%3 zNJ)$DwU`ZxS+AJrg)gSXom@kx-v&t+rsjth+;P(GZ`Vg>TzG6O?|AyQhTQ#eTs)Q{ zbiwldhVm^^z9Z)sr%mn6@^ZO!{>$X@>$5JcfA92WfagPLU+;Y|KPErV%P+(+^qqHh zIb&tKMOaG7S5=0)YQBCxJ?#r8o%NT;tdDrsnX-ORH9CCW+RA2p%mB`RmKv3vz0XTy zE!TQJ`>f6Qu8+2y54HH`=pCMJIzJ8D`m@vN-)#E#P$ugsJfGS1tp%>PF#tc%Xu%p_cq&%2GW1?NLeU-$fOjBP&U_kz8fMe_Nn`PRmd%F3U? zTpvw1|J}6PPd?<0f(-5~abvAx*93peTss#^d#pDm|6wo0`tZYZu2&u!vl=EWrNpiT zc9uS%nhu-`_F?*%^=Z#~o~->j%=OVX&wZCZ{0yNy0h~*uR)2BUpSxJyj-A_cHo=QK za_-O0+If9_wBuadSlthu3q{+`TDuQ1w_U*l&t5o}Hh-JBODVhxi{KlC@4)UDOvA1i ze>MJmTpcbGH$opIz^S-5@Sh>=hdAq(AJH%W!JBoYlpN79{6a@uan85C81?=<;(h`ORMV6xulNT&U^ip0amKzxdpgra$)l zDJ3s^jF$Y7N=-laGx^fa?UOI%Tx`CT7gG^?a9)0h5@wx?eYw8ih1@$&))UV8fA0HU z>sfj6w4P=m`9Jn@2&LG(Fhs3(VI8iB!RpG;3!Z;{$==VcFACA)zlXLS->FiEhQdE< z$-V7l`B={H4#l*bJo|mmE~R90}|+*GCTxeVsCYdiFc>KG*-vc_Sw`d3pFfVOLCl zG`Dy;r=iD<8 zmtU22TiTm_4WaP)EHh#b6gPK5W{=Y)BW zn-gw`{AoDFTC#Y^zux)v^JkXU4+TSZo>`0f^GWZHaq6Gm^RH}KL;kGAa#%R@8MV%W zp*d%lGd2%raJ|8uU_M<1_i#N)CY zz>k>E%`iW1wvBtzl#yR6=fWP`W%PO6Ag&*G2=_8>7I87S+4${zv1h?cwuZ?bhKPKP53x!**jn=+zGr!L<^P7CtyEeM<{VDl2^RaVgftP#f z`)-C9{_1}|8@ey1*XAxAXYD;?SBr<|6wUHde9jAr*>`O;SF09N4qY3~_DYNNPB|Fb z<)5WCFKs$|JpZFFGe^0PF-N=aq#bwQ?7G)Q_-w-8fc5AlgwKUN^lcttI~k~ppk33_ zh_kS4+%@87!5Z8G?ESf-e|JeKS?<*?TC&V*@oS@(FBPXv@AdCPlkYCqM$cTTO-ny% zPg!$>Jx#!yGDeqbL_KItxJ(v8uezw2<^5gdU8?-vy10UR zeOs|5iv5;ik6)}xt3PS0J2r-j75k(Y8$-Q1F8Z^gYomuQKH-Jh3eUCC_KUVMb4PC> z_v!m8)_yyjvGyCwy;|A(Uz}a09Q_$mwB#`_t&PeTE&PlS_kY>TwTN8fdu<+N*8v+- zHk!i~{!Hpu-k7pA)H)jE5jrg-+I<5`>VcY>+JLj`)%Cigqv3Xoy86Um4 z;RpS(^D6$g@VCQeTpV_ZxaqiL(rzZ~1L9LjyAppc?uezub>ZHzYXo5j@b{%LuOi(r zZY{bJw-MKjO*dgh_;+IC=Cd7|H-+~8xp$nect_3^VA!9b{+XwvC5O}p$A|Arn|t!0 zXX`&{9q?k-mDqULott#(-zdd?r8vM7a+_zLk$-Kp&3i(QJ=sdgwb7R0Q1o;Eu+K}8 zQu2pN*`k!YhcnXdIcc-9Fi-zB7ipeQ*5^z zrO)?Dk2z^in}2ZDt^$7Pvxn_z(@L)yD}Bo;|2hyY*{ZzahacrE^q*Q&O8o0UwB#AZ zUcFGB_TmtmFn1qnEWRR3s>0jzIwr~JTWJW2>I06C%kZL?E@Dc zS2{cQ?U_5Y@5i&2E02~7?%uWcf`86m8-4M@JnQep%stcY-F!t zwhr>^_ugSlk37J2`irbN;eQK%yN!8V1FjX_jI;aeDs(<>Jvs}f;SzBf=rr6roTq!> z0M8-)xD&WR=32+#A>2#2SJ8)XmDo0!*|T38 zv+Kt0_4C0wL6>K@7(1?s=?UK2L%1S~6d|s?hpEG&vD61V+Xu1zLyR&lSHQSo~vb{~zYm~!yiXySSQOj=1u zsA5X%wb5zkWApv>9sdp*bAClZBTsTGbR1#kq*u;8Kj8PZ&4E8)W#D&uLrtMn>utNE zhAYA?DID?Oxfq_;rsRk7zmpd2pYx^9^e5%VWyPlD_cerK^aOR>9=AiaxDwn>9Lvz5 zjkuIAEj($Tw)wNc*Uo)qp!7@gybxP&zcza0+`<8izt2;zocofe?)TKebE%%1@2R$P zU+~mCPwhK5(^Dy)+I#MMWdhYt1SZW)W8$KC< z3DmdYm&>smRdc@k5?zF%?ghC zOSIiaukGwv!aiHL+q26Vvej^RRxPG2KJOi!wcSF}P33NteA6Ut--Qdt=fq6ZE$9JkTz+*C=C=WD`y*Eb z%IiR<2J~rkLqHebHc_8O=LGVzy`ah{bF92OXs1AY!kyG_%6R;)1lAD)@%F|3!vSr- z@zWZ}uV5x~v0?w>xlcn0xN525?>%AYH*+*-Y*ysGy8<@S$j zmT=RCb+w!Lm&yC>zhe1*)VBM*?@*O*yFcIlb@6*!Yn};(V`BJD@szFPv#Bf;4n=;A z@4oN2uWF^Kym`^;bv4_{?f*^fpL;(xIvgL~=2y!bF5z#*PDAEdkXMdZ35uFJje}1Z z`vwXJd)uaM>q1t6aBj>!w87Lg-$GyQiG)kyhAcKjY&dkgrKj?d7vat7WVKzjuJYOP zn^!py9i9=kqHJ{ASwWT8gH~L~`>MO;ZvR<*%jURcWO$a>7?!J@U*voYueY^qB%fZk zoc%BTjOQJw*l&prr+W3aob7BS_gqkq3q{(-a<8oXn7nTh8BX_dwp{JJCuiF__OzGt zR89)7MK*1)@wKkz`CH~c{#B=&nuIgGQmlj=s!J&!;I++fLJ`{@+Dh@h?RC@CA0Hde z_VTuT?aD;n%R!@;_hBz@jqRxajV14Y{jKSx!}(s%Sz5c2g}*h;ytavUtnCnO9%^Yj zDNIahUu^LQtos_kSf&%A!YjP|EpNLrlD~Jsj3xgz!g}%We`6~q%*3pUB@{(+iHIi-q^XkEx?hpZTmIedX_$K)6<)3w*@O04CR(< zx!Ik799M%QxYz@{*^ZDL?Y;>)dIy)kwdM)$%R#|hC&z@VyyLf=y*&o0FJ9Y@GIkno z_8T6|M7qeGE7tg^wjDAjT$8MPyC&6fwBtwSN*hmjv$_Oh!_8qU%<95#z1Y!4@t)yI zI_)WWVqd`XA}*F+=Lo%No_BaVZytUR#eO3t6uX?amALpyDrCRLV!uuk`>H&l*mv<+ zu6A_)8WWDr|9WL4Jbl7}*#X&s+0J}79+;QrX2+z6@ZW?jcRLijEps^h;!WrGx2*uMN9AEm53Jlk=x&&d;tZN+Cvc}4#6rq%J!znj&^#f0DYt`1h2 z3g!h=C>gK)^xL!sJdJo_-@#)Wv&QmkRrZTop=q|=tNo-}EWbAvvfpis9l$e)v)7%s zJzKSH)6-SuWzlUFTWe}VF;lF1&sJ^PP_eEi6po!<$S}IG@xF<{*0SF)2{_7M&Y3&jGT*D=2626rXFwN zosBnkYBE{lrp@FnLddiQctXx|&7$gfGf(V$ynSGvj}&56qEbJ*u~L3tO=uXeQe)xa z_xwuPbl#@$+zMMjJ1#Wcu2GYYGI#6N${Vv&X!x9;nPt@HXVw9Fyv!cr8a64j73?%| zV`d5s5Br%}M)vSP&HBN+US_|zF|+ae$&Fb~h~r}DjR(uro4S7J8aKHRiQ-d+iMVrx+ixYz@VvJ$;l z_*3C~<34@Il(b%L(;qOy2tenYtWqyE8N;ZrP_ThpcG}Y3R6QvK*J}9=`0; z&Uo4#RLb(XV^UGBp!hq;-#584HMGPlhoKd;jty4qt_5LN;R)fP>s-oWLf@hx!r>49 z$28u<6dMZvuRjfjG?iPhg}VT+Seq^L1%=oc8i@R%YpK8gAO=;Ko|frsAeMpxN1k+O*B4jrJu` zqfM$aU?a5S>V{J`gz@#@dkEUp*DP(`YqTxFjrQ|@#sbl%!>0L(G>mRvXyG>5 zHrmfQ8kEKJPN}dQZQntQu^G0}X4zKv6lis@pBlArn{*qCMEf~V(>4b;HbSfWUTEoT zMn0v=N@$mbO{~+>p5EoL*c+CL|4Kf`R{_LI>@o26U4P0>vslD(16MBm; zfR(TrL)<$(I(zTn|B-ch;7jFwOP1@+a%nWA})Ydj!md7 z+-B28n@AgN9&KDKu7H-G&8jWjCe_AXv0t<~wuMKMoT6@@>+H?%FXroQ7Eqpn&Yk!Pc#oNT&;*-U-VkNZl z4@0v*3N63)6n{yy`MRZ#FlRT$K`Y-T;+EcK;TCR_aASdJb8(BeskqT*;zpZ@8*LtL z_A{aB4C#E)CfF8lvuoqK;s@e2(I(wqKG5=+Ep1b83(pa4;%)J}p&e(7ctGqFUl)7D zcSW18TYffOw|s08Kc&phFq_~Tr@=)q37Un?#w|sQ*e2S<+QMyCZ9F0Ni8evD^ftA% zc$?Q6r!sdnCWo7w~4LU*{s&MLM#<+ zl562MwKXG3sA z=DVSruUELWfr(G>7|+ZkHR-?KlkayEk8oI zaj|;BI`a6Z2)9_u|0AYwH@2A9q2CR?!+h+<$O%hMHdVG`@cZqi$KbEkyLDiHJ$>TJ z_}DV_#3f(XwQhm-=BtZt(e5S>%;O!;!{)>_kcn#zzsostv!3v3U@PI@^-iNlc^^Na zY|+y#h}z2Tgr#45L~%VEvc)pjL|#UGhvcjBIQ{jB+EnIpRu(4N-DvgOL)KN=t`~0a zGcCM?ykiU1u)X5CZRK8U$PIY+r03h%@rQDip=YG5^*dT5(|6{dv(}wcLx30I^^JzhCXkAUsy60`|`n|nv zvDK!Q+_w1vq;aneTemEDyymg;4bN=d_IP>OrgaN~xv@v?4e?$HE_tY;wzhil{r9h{ z-n3xL^UvC6p9^eTfcw9;t+sq!J&Hg89W+~=2;*})Z+*KFV;)JL~% zSjWa4-`qyfqhrVIn_B%j;4SNF1Jw;Ji#}7e^?T9hw>}$PS5qFXt$CiL(b}!iigg>F ziEb%Rk5;g6WpvXvGpXSdrj1({M=74oiUKFIYGWaf&@$9y+Y=ix8E<@cd)Qh-yRlTf zZbNN(&6DM|X1&sOZ&^%FTWeY)q?Cr%m6h3wvS+q!S(O_TmE~1W*H(mdKKk81_6bSo zdt)E$EUhYAQT{#Kk7XU6#>PTh^CTy|VHR?8H#%T`MP~o_OOK zD|~$9j0Jg@r!nPMeoS&B81wtr^>OKMplE}5arB#2<#p8zP!{Cb-8H&(W7O}%1>PXH zcs!T-*GHCq2Zru_q;z~J>LeH&X@Swc?b-Ey3fo)O z4cM*K&xh7MTf5a=7`+X0p4d2+-rt{g!ujpj&pXYcRa>ov+z{}G=7P{zNrCfmU3E3% z&bL@RHbetA*RdY=^Iuk3S^o68%4oTF{fVYz)ZJT`5*Sa~H?S;fAAm%^S5aOS^#{0J zY{mw$HU4jJPgifh3KoS%PW6$WByq6K0ZGR%%}^6ICuO5 zzVY%nmfriID>~NFoD|QorEM9_w_zQ-^VUqb7!p)aUbn1@p74*yw!h_E=CW$$TvF>6 zgetdwkBc_Ay%etBc(Z<&269bLDPD{gelrmAPRO&;LBePQ`JyNg7(m)C6dhX@BY_Mx_y zvEF=pt|wm3+ccj10(A9^R&U)@W&eL_uaC252yCt5Ua`Pkcm0W4uql=Pk*&{GmQ{VR zHp+IQ>uSrRe%mYvdD|+{WMAJ@RmOQxxo#Wx=HT>+sm&w#eztzN?_cbNTf3I8tMViK zM%E`Pe3s#dj$eip;GNBZ8>oMLY*o9ia#LA!1HEHyQWLds?vv?JZf(!jR9WMeady;f zsdJ*&~yG=>Pa8|`E0k( zoRk$$YBS%llYsCPuY)v#&BphpgsQi0+hj)?D&*6!B|Q4!=Hk+E_Fd(Napkyr+>da- z!2LCD+1EG^a3^qohr5oOnZus(xW%}oxMjE!-1E2}<6g%72izODzsH@$eTa)$%5O~I zzJuF{+l+f1SCvZ{xPQV$9$~o;myKJBdmOhHcL3Lk`)MA(DS#WqO=FHd2R9%04csBz zOs+L6aK*R{xbNedaes_Eg!?O8+++Mk0q!x}D%@(^)41nwtU7wr_T?PAeQ!97{*L_L z#&6%Hw3qFz6?|DbvvukIJ$`3fa0^?P@53Z?wza>-_9p?`w%=lVE@0d9TWpucjMw4H zB-;qb!c$3zHAJs{>^NC>^BfqfyZM7JYZKPnyzymi`G=HYz>1mb8CB z#clkVO_+sA8;9oqcPu*Ecr^bq7WC{Ku)5tj%O5-D|K;cXF=YOqe8C?}=KoXtHm1z~ z_xNpWng74yw=rh^`|kGJ$l5QJ=d)J`JBp(jLKc=r*hzGMAS{D0+fVDi1;Ww^vvVyN zMshC?>j!(;_$kHCUTXu-hwhp1#BDquVq^ViFVh`ptB1Wz51=`8?`1k<=XyX#(P;tQ zg#L0sM|1pRvmi?!rEO^f?`1j%9n8NPof3#|L(d850rb5AosjGQR)qz5`JwL%#5bU$ z0o{R~9nih#VEsdkk12upYILxC+k=Mg_g+@sWpuE-XrA}4(_`_r=TWe|s?ovno6s?V z{F*1}4sRXMT7SOxUoT6j#z3AZhNqo$|hMIw;PeKRlpFBxNC+XBl zI&G3ppQJM;=}h!gzj|Kz#prNAmrb&7Lw=S5zS=!FY46d=IxLvqT+yE|K z=dWF7-778{+8-f~*UvjRnIh#lM5Xuy%&A;ZnW%oqWSK_{?sRY`|aovv`b%u zzKkwY{0a1MApUjq5Zaah6nYR{Ec=z{fq;D>x*u(OYw-Gc4w`?&*uO{hTa50(tq6s- z91#zRE#hvmUR)~{i+N%i`MP>_a+0M6>Tv)aMQ5s>FQb#u9jZq&Itkq`{Q^1>?b_`* zbb@Kcm!ad)@oLvq=(vD=K01PS?YsmXLc4ZeguXgEv_DVv=|NvXyZATIBWQO#QS@bW zNaf8y52F*6ej0ixkUoMQM7wss!bv!QcJ2NF`V=Y4s@;Bb1wQY`m}2=^g;Ax>3DQI zx=;Ella4miU-ggoGP*U8{ye$`JuLe{baNp6X>=1hZi(6py(f_Vb@VRukkWUd8w2SN zqZ`on1B|?W-iEFZq~C|GLk}u_6S@{%rsHiySEG+Beh0cTkiH6CfgVtN1-cAftn{Vm zwSn}j(4~R&`REd~yB;n^7o%PKrJ;+^y=uQ?bYURW8a*h|Yv`f3Mo@ zL-f_ph4!~fzl*+tZjnBX9znNDzlpw#wmG}?>ucy?w9V^HA3+bHdt`qIJ&4X!ecI6j z=px1MMfaoKb>szfAKK-&1AQ9p%Bw;5qV4&>%G-?Y3B<2PpFq3(iqPF?mtO(;c)&gf z-4(E3h&~#ypO5ZDyYgnCI|AwLH}(z(((@k-p@V_+SNP|L_JI9mbX&mw47xR7{|>q( zVE-1n8STn{1Kosn?RyNp2c4?+?L_ZFyY}6WZbZBGcnRHrcJ1*Zx*qNF-+`_}kF__t zHjusyT^&eYimnXU7ojWAF24eF8QRr18@(2tsQNBKm!e&LQ_&@8SKlObG1}EP0bPW4 z`STwXp+dB)?+6bg1%dSMq4NUi-$myH?B7Obqa&)%o9HaGtItt%Cfe2KFggS6>eG%+ zN4xqoqtno?KD*GVf%Mza(LnkdbTWES*O~R`By_RPk5Y6Z+U2(r9pap(x?9dL){K4P zTVjXUBJLK8#YJL7e2+G?e2$9;#eHIhm@Cc~lg0DY$l`8 z*v?`}4*G1cPo%0Z{0U4LbvQ_(K} z40IIj?o+AgWVEZ#Y;;nhlVE2<__Ajvhq2`m~@2 z(5^mB=zg@ze;2wB?Z*Fh^yz?o4Z1gAzZu;VurEcQ2-p{+y94%x=;LU2yi3qsXm`9> z=%WGqbabc1>v)sV9cXvFGtr09?s)CToDZVi@!A4jJK7!Z71qPr(C&CIqg&DLc+a3) z0`~8qn*;Wz&`kmRZuFjjeHVIHz`hf`nlWPMOOco_ripRlN7U8qE{jLRgW}8L4sorR zC(afV#Hr$Y)WPySAs+nnc>B*KtR3yzKZ=j=XUlMD?GVv*K zv6w7g{S?n98V9-j)9e*=hmLzOdIar`YXSN)+O@-6^f21pXA{sv0s9DgFkpX`1)>3T zv&!2?d_VfA%G-hNL)-qdynbGTK8@~Fd?mUU?b>}Ux(D5;{GLLe2*h8ayl!-v;s?>k z(e8QnU33@PJ%64;A4Ts`c|GV(bg|OEhVDSS@?Sw8M!R{#0rWw1p6p*nx1-&>patEA zZc_ex(T&vE`m;{V6Bmjz#W?Xj(wP0*qW$A^Cb~_!EFrZ2u<}1KopFzL_3c8J26X*h zjC-`Je=WKgU9a>N=%RpqDY_8t#zO=76`?_bY0sE)W*#Y~N=&XSKa&%_E zem*)QV4s3c57^H@r=eYcPDQ7p-Ff@roy-f+Z91Og=wx)ObSF9q?Vghkp%c-~if=6jpvtwzJhl7%|ef$UHx9By)UC( z{q~}V(V36?=f`gJ5Zd+EdmR5DI#u!SqWc5!ub}(TiHbjf?hV8*M)w5t0QEV6j>x_b zeH`t^Z#B9LJ;GO*2(Gj#8XRGZ4NOXzXZ3X&j{J4D<`U=|F zXP`&W&OVC1jNYa6@#tZ6p7ck2m@$NQ<@ccn(JsGU^Z?q8>*MHtv>VsQ(0yok-8h6k zjdta~i0(xX7W(6&iSm2UZk*PmPoPgLz82jbh~JMsj_y|cK6F< z-KgVhL3g0td9@RLkUXq^TcP!&POMqI}82s*TeB7qTTpAicUbcE4~9A zABZ1B$Dx}Q-;a(2;^(46=tjlQMqiyap8o*lUqRO@z7IVTh;Kw+Mh|KHE=CWVz1lYu zJ%o1ScQ)F-6lde}EwLNgxO-LlfOL~sC$1M)h>OK2wEPmKuTh5O_nv59614ap=`L}< zxLe#Vt{0bx3&e!m88>Q&m*Z$>v>SJO(Q#-u?slUiXm{K@(IIrP(#N5%#)bA*7x?{} zgT8{UlGkN#Xg6->qWLYd{c9CpiylIkO23XCK)d>VcpKL}w5#7GbRXK) z?>+Qsv>SK*=o92&?brsb{a%uuCjAjM7C#{N-Znmeeu=Oiv@3tN<%f3V??iW_-MFto zA4j|TRH3`j?*6(SeH2|>;I~&Px)o>TzbI}Li?Az_-Auv?(XJlT&;@8$j~H|w+STI& zK77tWyLwzgXQN#`&Y-i<18ZoXE9jz=deJ{=v0PE>xW=mR_d=pwWmZ*QOr(QdpQMHiS> z{;#6*&~Ci#N9Um3cxyptquuz(M`xkkcw2(bM7!~}7@dK3<6{9j9qq!R2t9uixjjlbQ}RbrV~DCUUCVuE;? zGA;izVxRbi*a2-EHpc|6r-U`3jN<;&80I9CS6#@?S3&i|i2Kg=b=aRqcO`Zs2>FW95HyNe5Tr`))v3B93HZvV7 zZ#p^;?aGToXW^{8`QmJm3Gt|SP;3!*iFIOySRxjPSz?-)B;L(>hn4$zai%y!yi>egWZlEFXT8JY{}=Cb zRAe2)3upbp_SFoabeaUltz}7l`x4d&M~-&$(VYo^L&VTD(h~CQcQ@ z;y+LG?LQPh5dU2KGtr(St=_gKVf-WU55;EDo-@7U6MrP`6nBWvi_eNx;%4!F@k`=d zF-81>_&L#@SFPLx@ec7eF)aQw&!1*zYZt~5@q&0(v}bjT?-!dz+dRj@e=Pn;+$ru5 zpBJAMw~Eh*8%29Qw*0;=ep6f_E*E3OYjM8)KZ*ZCd|$jEz9*g$|6crC@h$O9F<;CT zzbZZ~W{Mf&Jn>%f-}Ag?$MNsPgJQe*$Kub#m&Co|zYzaGY!n;B?~C6PtHnz3UU822 zdGWL24AGt|t)8)BSiH(}oP}Qz|GW6UcwV&UQM3Dv_-pZZ#4X~};s(*Sp|W&OiQf<( z7Yjt5BR#vXiC+;Hi3`R1#Camme_lGC`#gSL{H)0HoEOe>oX2LKJFGrU;*Z52iS`_0 z@%7>&(Vkx{{62A>m?F*=2YF60y8-dn;@^qAVvqP^@ke5VST8OU9~GB~i^Zv8jQG#Y zW3Bvu57ABrD{KNEi{GEesG zm>+wz?<-lluZoMrh2lRFY4N`i`$XoKUicq~zc20(w~KGGzXwu`NzyRPn$ZWQaqTCq|r6HCQnu~5ttv&Bp? zT}%~|#Y8b)jEJl!di7`B&?D=E9tTC%|2)k)pGS8ceO>yP_^NnF+%N7E_lmp4o#J+} zM%*l}7oQSWip#}Zak02ioG+$`v&0$VG%-fB^+@Z#55)808Sx$Ql=!Cjx_C@{RXil_ z7x#&K#ogjgal2R}ZWh;zPl+qV!ht=T06MwzpYuC zen&hdzA4(affj#Ed{sOo?icrod&S+Ntx;O~?P86%SzIqZC9V{gi@D-raiKV0Oc7^^ zGsJ0PjQEkR;~$9U#WUhN;wkY>@pbW-_^NnF+%N7E_lmp4o#J+}MywFmingw1?NlV@ zi?&v3;qHF5K-$*ZEZp6nW=h*yq=iovuj>9WA`Xl0e%3F2T6FiXZs{(uQ#>rTi>+d_ zxLe#QZWn9B&Ek6TDRHH^T+9{S{cxc)>t5dRMMc)JJk5HQN7ki0hQuqnkJ&ntwabt= zAigcWCE8k_*}Wzn5nmDAefDMPmqd48eL;GM_?%cJZWLFGtHc#zzPLnOBrXu=inGO; z;&gGUXls0S9PYk-N%}qUUGZ(PN9-1D4bRediigE^u~lTf%(HX%eb&D`T`$&(m13D# zDi(`{VxE{SW{T-zs+cS$it%DZyh`P*{v+bB$oiKT-Y>fOMvrv2*d=y~hsAcWRcsdb zh>c>sSSwbFWn!sVEEbA+Vz!tmri-a!vY05wixKgv<~<|gusA68i>JjNv0LmCJH^9d zyU6;J*N)BN9aXa_yBJdG3 z2=Omtk!*;IxAmH@z)ZLlX24vS4)b6d%z;)u%eL`R_+@D2e+^ps4?`<|3AFO_p%t_U zTKSX_Z{+SaR#);~sTJmXc;8?T5X;$?AI91;h`0kL1~ z6Hkl1Vvl%2>=uuUUE)!(Q|u5AiwDJau}y3hTf}CuN!%mu5*x(^v0khbYsG4@Qmhcm z#I<6nSRxjSMPi{?Am)iVVz!tiW{MeNx|k-Wicv9HOcE2t1TkKW6C)z<`n{X$m5uK% z@hG(M&?>fw&5Gyq1~0x*Y*2WubhT*LTg!K?bg5XPaCg16&nT?CJTV6{G$Yy4d>-M& zyX!EYKX}@%$CfS)ntiHtR7_TQlC)i?%|1clcD*(oCq@(=lD?|*;|jF=N2D){!wMgg z9ux-@-Y;#>l~&Gah4)JLh$j@@Eqz?g_lXM6-yOfB3&$IiV(CqW1bHp@g_NmaW+fjulL$gnkP81Uq9xojy0`GcnpHbVmYJij(UngBHT_L?z zx(Ne@W(N%u;hkUlPbRJud@pmdvb zi*(cf&))mTRaNEd<7>kK0YOnw(Ws6Hdi;@sp^;f3;t`FMl#I#(6!cJ_jG$5D6q-{^ zsjl)-s{I+d+oJ;Wfgmg;xmo2rm?#FFaRxw(tz$>B3WlyM#N1 z#|w`Y9wA%_KZl*j{m~B8^%veE{IGDJa31%RZxX&oc%yLZxNZ<$FY#XC)^S@SyjtQb zg!8zh{zBpT!gGaZ3(pXqE<8oJOSn^byzp4z5yF-5bJ9QCfx7;}TZA7L?i0RWc$4rw z!W)I}5Z)lXUbt6yt?(M*)xs-;dxRGX&ljF6JX?5%@O0rR!d=3h!sCU<3Xc#D(Dfy9 z9?0XD$2sMQJbsCkCprWHnseN^74CaDj`|ps!n0NJv&_F0ed#m{|pR{UQ0{Os4ai@zTJ67g39YsAlcb6+aEcuMq!Ebj%-#pN7_-7k@Oq$$mxrd+{CkpT+OJQmIqo z-vNIp%Ex?ZdV7fYkHJ4t{9|DQB!_-9_?}x}OHBN<$+cPhw6F4-__N{vLi`Khk4HV3 zmbSKLi@z5BO7SX)+IFK-1@K=DoqV4yL;QRf=@IesJ-BDY&vyfPj56&Wr2P}ZLG?D==D*hF zKW_6Mfv_dN1^veI|I-$}&=&rPEj$i=(vokog}-K#zscr*#O9a#0lJ(&v!&&{#nL(2 z=D%P|>#>E8wuMiym51ZCrDv*5p7Rnb9OrSrpZ3nJ@DiJ!VODrwoBuy;epLYbeTxdp zE0@fJRnD$#-inHnK4@f@yA3FBW=5ZT!XrD_LeUhGtC7 zwN_2_({iTHo7Y)%sn4y`^QH!mu|oYTv=*2JDJie0daz(o(IO8T$R4z^s%T*u!gM=z zrtVVz&R|-V?j|cXCIeN_ihVcPPNS0DqO^I*ZlPkdx}X4!2m8vERYgmy%);qrnp?6M zHky|%>RtnwVD6?Yh!w|fGXA|n(~p655(Ss4MW>D0To|hCNkj0;iuxWJf8HW(Znc}r zEYosxm)&6RA)S5U{%LNrJ*QWfELx%WJgj1>0)P0-V%Q`tU0hm1Ynk6oCtO>dg6@4+^{R_r(U++%v(#684zwR+!aOW(4dZtekCr|*pN8^iAm zk_87k1G<{Zwx{m2C~FT5w4~pu$%^UhX~ELzDh7)%%O5PpX2>{LbPp>;S_?6BFQB;- z?W!zm_4Y8kUD|Hpriw0&t>v{@+91-wR@>`rr|x=mD_y+Ag$aD^>!Fx})++>)sdR|gzx59*E z=G4rb>GP~f3FbV*Q^!w8cXn>66VfMMJ253CJ;mvqn39SJ`kc#m;! zz*ZQAoN};wC(e*dVLP8@mX|@JxxID%)J0x9VOp-|TbP2WTFkSR)8tP2gKT4QGo9~9 z5h+54%L=^}6jYT|^M;OW1qFH2^LZo3wngLGgy}I|R6g8*=X@1+scI|{Q^%rZMP&uB z+>E(-fDWeT)@WsFQhdf{*MZ@tvZ{bu82v4Dh&HCFC|y+fVEMvjWtCMc7N%XU4qRgB zjn}6I1;r%`S1c)5yqr@|@~k_i&UKpt_-9>mG1+BZ*bGg%xYjgdN%dyw;6f7&2-HEF zCR|2N@kST6!rN&7T5sKS6fIo1ykuo}9be*l?q-x@(?~O+?Z3MYZDSvk(}2269A>8a ztIL+!^mfxxUbIM8=YOMv>se5JFdZrA)K)ptZ-+hO9?HR$R)Xm$k#>k2Zzi<;cdJXq ziiKQ(q%yD^)WK)Dm#L%bK`c`esN;vD&Fj(ee4)GR)~y_sRm-(RppHL62e)OHp+k0U zw>G^@9lQ+iZz#vqys3VwE}_FOR8X)8)qrVu2?;#re5lJB?At2T1-D83o4+v-BG)mM zC1uM?7FX*2(WM-Dskm;3+&SEkV!HObu!cPlw?BBu>J8;sY%fS)U80eH3lcZtK_Yb& zF2MIklGXw#N3qo?fjUm6;eG>zy;Dpb8Mp}%WhEB0>cUG})+SI#+(fe-_J|HIbl@=N zW~+<7R@Msx1k(`@9Vtk#S9H`v2hR)Gy6NDc%80;nWJ8A!8J`p#=b$5(g0@ZSqRUZM ziorRcf5hW_!hO0I=LEKC^}-(Of)#0&lyCqE)R6!k9Dkcchb?ox14td6svwS`Og>9$wgHLoid8P5A_;}>!M)bF+R z((;M!js@U*@I`qVaw9y>d^1JI+1YK`I=(2r<7{@D za`o~}*Eu<%E2C|!yMIfj=KNQlsmQbAY+74}=uBz5S^Eleo$goMk2bcyGAd_PRx)aw z*fvtfI7Uo>ri8XocaqkV1Pv~P^luAsCwYeHF#ao~i9p!ZIz&0|cgGhx-Pc0$;%UP@ z6rmkw&z&}$9cRBh-Q@OS>^OvdwH&wyxD*fg=EJRne-gq*V_!~!TMoVeE*xP)!AHPl zf_tvTO5ixRZHHS6{xmQhVYR?}!6P6)8F&t1F5oA?{=jg!diXy9ehJx~@b81a0gnAG z0k!MzS(A@mGCJB9i_$-Lnr%8**Kk<=AYG5T(*rek=Hnwr-vDXLCr89Y zdfbk}7|o{^Moake(`L_Ya&N*|{4m^0D9=*hRt)Baz;!?eum%{S%T<$KF{8;Hf-pNj zjW%J~&EqU1pGR3V_D1IE5O+9AWOy9I*&8NHjvqjNJKP}XbU%+w7eo zn{o6*^VQjFGkY~(rDI%fg(LLEQ^_q?Xs+rz&Tc;i!^b}C{}J5hhDX)2|8G8JJRear z(iPD>KvMSCN0RrHqs4gMNaPXm#3^Ia_RPP(W0hJt&mU($n}qU?h1&{$M@PpagINBt z=znlW;r4=??TvOEt(sqNiE}T~x$vLI)q+zY?jjw+cA0;wBiWUyd@r`#qr(=6)GSEd z<(JAlm5(;*<8fui`tHCeHwraj>rOfq>dwP4KFl)@HAq3oxKlrDxlN}d8v!kI{92r+ zT$%lRIY@tv=N27mYKeoEY^^05T3qfU$7kqRH~v{-2ef4QwOlyq%8c|))urIS%aegr z!`)5CZ`LyWXR6kdA?_RfsXjugWZz`XuNR5KC)4$w?l}AQ$uRdM?VqUk#DSA(kO}wj z-|)EHtZUQBPWeQ|!kEb9m%rjm~uq7Lj-!+%jcPs1GpKM2f3*sH+Ba1rz)obj>n z*8gnJ!fu?RZ>KaYQhJ5rZE0{?8yOw`Ui z{#n<_C#~@&4e7R{tn+~~j?Cw{vK3(=I3Hc%c|DJO1NiDj_DpZ%z^4ZOtnX85w9%~E zQ!m81!|M$1S)CjInOoG!UfwU@5Anq880P+5pV!pMn0klzpV^L$t20&ebARv9DO6(k zW~bZnOvl;we}uTd(qX;O{wMzNFYR~KPfu{Vc`j`E$FTG}Td(+YA4DHg1InBHsaKSPdr0m*WD{Tf7i?6^gDwz!Tt`aEzuv55InAJ^Q25&tlf*L`Hld}d33;Y5hL4O0I& zZpNL`abrBa>i>aI?&*^!jO1k>b%>^mI`mzUHhT!A&m;V}gr4*3VE#vso276(`$9rE zO0w_73Rgd0sZ06(EahqQ%b(KPJI?Mp5t2MnVn6lAwj#Fe_;LJ?@>tq7p9tIKxu)OI zeCYc*Q@A5i`g+HB{-#rvdpz#2!d~@9k>>5=)viRJmG@6k|7G zVt;On{bQHd{fK=|THy^H!?yW7LhqE&|MG{vhS1p(`a6H zEu3q!Fb13iUc^|zb601H8@r_WInoTZY5clNtnNF`(Br_ z{ROc*Y_aAMVwLRzVmE&BG5$w+`0w%@!$14>!=HwEneQkM|9R9@eH!Kt{jr(1qkfI< zvG;u%;*Q=CQgcM-$@#>>Pdk!Be(cILnnRKkS{%=wObAJie$hw_t4~Gj+)v-ulHvNS zo`cjAYW`b?grfgveQHd^OlxCA=Eu#^J5=pr^xWJJqcKwn!`O=}fKU6@8}5kIzUxCh zztd;Y49|V;*uv*qn%oJvs6RFm_AuZMz_r3{gY&_Cg1DD-F8o)XUt^pf3VqS2Vy?9^?+Qna_4HN3IeNX~Dmf&M1w-wNChTnBs| zmkqV?K%*O1JF+x;P)R>K{>elB>3CvwMa`Yd{H zYvePIr|v#>vni$bUtVjddy3{N**sUyLOD50GLRegf9rMdE03`$b^)(ZI4kOfIdOVx zuX^R0<4e_&shHv;Yv zPsB64&W&nKM&CJ|jQdJx(|y1mtXOFch zr=EH3jo526#$zrrKMC*IBw|hkmjSmQ@_pd$g+Btg8ScO^?00bLehjz=ZX0np`U}#t zZ#;xNK7l_D{-=RWaG7w_zZPx~Tn=OgK}QJuDe&(?`VZh*q3Z(NX!xTLzY1~f=Q=ua zF)-4l{Hvp5Hk`$K!q^L@%o*V2xSsSJLf(hIGIc!xycc=*0e%KIU&4DzyZwCda#q>O z@9jaxuJa|yrwYjY+mU83Tsrs@;0&|NTYl!>0GY!QA17$f{~^e9UZ1MOi)Rn(>(iI7 z#(m3QhhV;|M)&p&bobSLu`l|v%YE_e8>iWqBYe?%lcBl4{$roV;HF}o~_sUb4{u~5^r5QUp)JSj=Qg0_`^DU zF2bWRWkWaVFqE;X5B%iThTD#QPCst#`gs+3NGIP3|7Ke}=YFv^&i8oj+yidc*8t9Y ze^&l`z_;1>0tc>FY}^%wW6qX8?-O>>2X4==F@QILJ0m;u%jn-V|9tRbTYj`b?zHiv z0rF>r)4m6ah0S5$&7-msCvMFyUE)j~H&MlQe{fi?MXiT#$h=AD#yF|0PKNf%kLjQ?>0V>R7OY$UQiFMf!5MuWhlpa z_{QAbEnh6SUcPMkgPl(>@3~AVBgR;(i>%*fSH>M-5ulidp}u^zK3HCOXeiG~x#Dha zQI!Yp2VAzG5vy}#|6`v+j&6VlPC43;qkc=G>*H7~np~<^eV4p0L&O-Mb72nb$;KVw z^zy7M;gNoX2*jCS?-265#F#Scn-ti zG_v@C;&FV4H4gV_jE_Q@UFCPmu&=KLjl35WJKXUhFjy(fZeicemnUVU80ApOa`C`L zqti|pZ5^1MOLsu@uPDA&AM1bT30=N-X=RaOag5B6;W!ea_yHy)%$HcGo8vns`;-Sy7<+qkpR^o9- zaNS)cjO%nB)Xz~0c~k)E;8aW)R-jf6#~h4KJ!UmC>k_#z(wJgT7V90Hfc7!pyA%QACS3(;=Rj)Q(Z>i{T$|EySUlWZdt3bgW14YuSm+hF z?h5Axy&F2hL-5D1hr=uni~C~?%ROs0JHaIj>=!ZS=pwVY9P4p-(0hRyZpPnsxNv?{ z{TV$?_-nU3eAPRQ_7myRn}cs&2P@WhRxGP3nX~XdyvET(sk%xSi*=z`Af9kgs1$hL zfc7vq{%YaS2(iCcLtA$*# zV6DD~iglGRY7FXbf`k6ufS2J^)V=t}NYUk;P=^uQWxQY+FkVFci?ZELYbxFtXcO-p zIQ%INYQ~_D;f|2r96uDt4r6f0@Q4tMTQW?R6e~7?5g#%&q;jF(hPoY)Egb zy-dNOA;a;NUL-B$qG)~nBQ~B`7}FwS4V)om$i}P5;G;K1=VlgRtE3r*c4iV2R<;atU;e3x{txt!W9d>%YO7`z z2j4xNu|~RKu++?jGiKy;0bZ_rgE7$@3t&q$6K&^t7u zpV8ll4ZkAd!$+b&rcg*<)w}oP-Z#J-I!MhN5E@|;$2h|Pc|1e&k z`eAQqrKeYbtR;!Ug+^G~Bl|+TMWO~k`zMc}JXT2W7|6~Xz|7O5CZNyb<9a)dNm4gy zadiDOzi0@`)7PI1&PG_NOzHsAuQzfri`d^@#4vkx28@t=a0?;{ZE+J?VxVEnM8ggm zhN$u2G(3&zoQDl*eECHb{tZrnjsNvEi|RIvk1NM6#1@9pS}7+G0|mZ13kw+`$g2Tz zx8OoSPTCo6A?NPoH$fjUTW~&b5O{@fPVE_ABjKFklk;okc;HLG&`N_LC{rSkb9G8^ zs!rS|cu?>tkU6vpr~NO=T@-X+m?h`46(XnFl;=E~JXer2TXIfoiG_lkjp`Z*e^QW> zNXl^rNo*A4)Q|G|c?|Gv3Fq@6%C!Oq138%^j}qkbr2gPe;1J*l37;&O0i<3|&X~@^ zG6`QJ;k0wZc+TC3oVqdHZsDB4F`V-@mg9sV=WsFLoZYegzXT2gatcOy&cBEYflOBe zq+Z$&V!3HgNarU=`$XiY1!)hDoObhwoW>Cs3RVbi08)RGa8Cay$5|P1t>8LA&Y)Nh zPM;XRU63;$a!z}Qu)nX7=SOm$9GUJd;Vr^H6AZ_pKslZ}DM!0ru}1J|L9E}R!`~Lh7R(iV7|8lODV%FLF`r!$en`TxUXu>TI#?>SoJYiD_*_8F zTbKhUEyP?wPBzFn(_ju*S@UXR)LOow#^(bGN5&Wj$~eZ`(`3Hooj@h)Ys+yd?y zKHNiJv@ZSbQD5{>bzM2$*6Hc0$-3a+vB8N<=TXADVg6fXy!h&R(Z`#A{;SIrCO5aD zGV_i5$>tuPth&@i6?J|ksbf@mQR!0o)Dtf;W47;JwtObu`|bSB2OlI(#`C9TrHe{# zUAB<9RF&Wz<)Y=wiymZSo3~6VCoAlODrl>ednjgk7A-3uckA*QC5!G~R(WelacR*w zyC#K1f$>_qnHc|`s;Y{~H7GoyuA`Z)0Zw<#;D06%Ce)fQs zTj4BPUgE4;{veV#tCl%EMT_pot@5!>559YKmR3?^IqohmUN+f@?D5qr70MB9%K~>2 zs!)>3Ig24O8DGqrh0r~NZC3H1x;@XGZYEUAOUg=$Dod0asdy1ngsZRR_#T$3{r5sD zXD+p}!N<*Laev|AxqT_G3t8YrWy>nz@sv2tVadt+e+!|U#g#+AUQW^JFQH0Fop5d1 z#7WnsUq3Z-TGn*8lJBnlrMfwA5tN8vZPOX}` zw78@iJ7Od%URG3DsY)wvDP39&Rb-RZ?Avp4SkL^C$r&S+Z3IG?Ey&WWP{*Yu4=8mf zwrk4EuPH8eW@k?>FP{w6IESDuO01nS41rrB(i2g5A;Cw`Ss?EMHi%+0au8z%$tloUClOJ(QX^ zJ!kr~JSUG@r+e<4Tb<_Zu!8a;9MH?1cVthWJKf2L95;^C=|-YKd1Hy$a{Jclol|FL znc3ycyk$E3ewQtG?$jB#PIc%lP- z@pB*e2pjjJPUghGEZ+`rd;X2!VK(`F0r7_e(zk%~Mj1EOZ!Frvp8o=HdwvxGyefcK zgJZU$H|kpz!1;ZEJ$`KfuMOaQhuALf1-F-{E`Zku@XZ0dA%JfS;5!2N&H&yRz;_4m zJpp`g0B;K5`vUm>0M7TV?fu6Ej!Soc`=&`>WdPf|0vrz*^hVwYo@wL!_-r6Kz9F-3 z?f9N0aI1z4znlBETO1Pb7-7G}MW}vvgZqr%wpOhE0y&46^)oIm%P-KzgvT-5VgsZLO_8SbZSYjMD$OfxVSw#I}WN%X1K!iuH?d zf8QVe5yD&Hu#d|RBm8KZDSrTAc-XKtVuH!{fggm!iM@Oe!VijE9m00og!L9ODfbRge%ExuKw}D&r*$&=dlTQQRY?HqV zydK;tA8n)6fm`K^0{4QilJ=s(gLU9m`LOo1f(iEUAABcm+5Y_U3+k54;S#R^(p>_kdgd7Hf*DVsNX!G=LX^Tm5Ad z_yX|FQXj6Ho)6AriTYQ8=Yj7Q{T1N3;8uC>1?|h?*mf4Ns#w%8Q#zb zws<#q3b-|nq=SzIw~osc@C4c4QG(|%Rv2MN9o?L?~7ThXt5;zR5`^TkN@cmea+-k4$n78Z$x5nLe z@Fs9;+&%`r7rar*`vK+A25djBIZs?E$aUDr9fBuOH}Vez_X$ox85quWXNU=c7oeNR zaVwDFd%6CzjJLZGw$sM9f^P=5+HnndJ-AckSAy4p?~rm=fY-uN??Zych~Fvai&t@P zw-EfG@IBxQz^f(wF7SNt{ld3_=Yd=M`DyT6a4UZ=cn-Lw?+Ng1a7*7>@GS5{qOS@( z!EJ$*F9c5mUm!dWJOw;M>OTv7Ecii*&jNRWHwjMzPXeDJ@-A>E z_+E)m1Wy1zD*1Cwn0RojesSP&;8uP5fX9Mc`Y&Q48x5W=`ac7Y0Jrp?1b2X2?SnO% zX~4m+?*nkGyXJ52x4^Ofnm_;j;Agw#CO;Yc1+*FaBki~n zR|$Fq^95%Ma@`)v@wE%0L-0%JB7ax#Rl!EVt%6>`YQg&i=L%*CV$JTYo2A{3;v&Hb zZjC3jpPK-_N7{|Hb>qPsgueieHNE}vo4}*Nt?}eB@Ca~gJgEV9fbW#_T-!#0^Ew9G zmixf@+@Is)2SC>I4Z%jit%BUJV*l11;64NGoSOg4$J}H zCgt#fXM%;zZOTqc5jCvmeW&n#3pCj#Z7sB#v^0UCR!0SbS9Mgc)ZVk3A(cn|S z*GW8W&ZdJ~?c5HYW{cf@qLU3!`dJB93c$LV%3Z4&c z^`qV3dEgZiPdmf8;5ni%5j+Qcitwwzv%wRjJbZC23%pFyM}ud8Tl&spe@p=%E9pN2 zPiK1Jr@_<6Mc+r@Dd3jAqu^t~UFMC?EpLIlz-bEz+m>DUO9J;u{yV{);Iy5DZOc~t zC4d)7d@Xo9xYf^V!26@kAzmI0WIqc5vfrIVU5JMT-w@mbOhou|!s`V2{XXUScsLVS zD14S+ieQqU56?Sa84K9>E=g^@6p6)q)t!p___;5jMeam>^6EPoV`BMe0^$wjBUmoz5iAxg5WHJ3 zPcT>TEY9c5=W{{6Ur5e*2k~RU4+S|V>WAIn)uY^^1o|KjQib4DTlx zDQE~<{p+8yU#))iq42*7HVeKf_?qB<3jR{?dBH7$8wI)E1IzKapw%xQ5WY-siJ;a0 z?hrmlaE9Q`g4YR-7aS>gwcudEzJk33JEVVE{kTo|alyX{{zdS=1^*!UJHg)w{z6c{ z_=S4@RQOK>ec?|3mPnfKNkj|e^>xJ+<~V1eKrf^!6C z2;MAso#1%Ek%CtX4i@Yy*h{cOj_0$2ZGy)I|0ehs!T%QggW&H3e?_zy@M{?_t?~7g@Q(%G7yPr}p9Fs|_=@1K1%EF1?}EQ5YQZYO3PH@LwSJFa zv0$O#0>OO2Ji%PS9KmeCEWr%HDT3*OX@V(&V+CD;NrFzn1i^U0IKf!KXu$|Uhaf=L zi}L}tpAU%Xe)N9fO~UsGZxp^mc!ThI;a=gj!fS+A3$GCF5nd=fUwE$YY~dNg(}kx9 zcL{e2j~5;*JVLkPGaTH!Uq ztA$qx_XsZ(o-aICc((8i;pxItgu8@0g~tnz6&@j62|p+MxgDtMFT6$gVc|aE`-L|N z-y^(H_zvL>!s~^5h1UwN5ne64LbykGq40d+xx%xBX9!Oho+8{O+$lU>c&zXU;Q(D< z9xsEjznwrFTY7z2Jg(8}%ccT(ybzh5ay(urM?I9|@iGnw;5!zi8hKnow_e9~G?4j> z0y=@$0C`-ZtU4da>U_okna@Zd6{1c$pYcE{P6h(_-d6NJ>_3)guizfpubTzy1$n=L za<#(O3f4$?m2mby_IuuspnRcl&a)YwFX1`Dt$vs#;b}np9PEdbA1lcI$nYfLPQe5T zxB6$CgtMRG=ZF?=^;d_4Gm`o*pdEh;Rglx zOZYzFO@ezRe2?(mf{hZsQ}_$fcSZD`eD?W z;e02H_w4BBJ>iw&=l$akL=SIHPKO^qy`|#c@=vw-<@!L&$lO``d0w^T>uvs4o1gdp zEtyd^|F3N_@7Vlb+x)y=YNgfI5p=HlzPLYpkxeJZGfRGmEiLZz`optr^%`T7f8M6& zHJg99O@_KH{dlFr?@zVKaBQ?>KDWv6ezp}JV)L)I`G?!&Wv-48Y+crn>&mRP?<^}0 z%dnu_w_6FXt8JEX{ z0K0H}z=B2J%FPdruk!Sd_#eSPpklZ`%#6r z^7)E-!SZDflwu*mZ@C^_w-3r?6}QeMh4k`-T^qaGN^j;TP1eE}-*!zuYbm{erT$Dq zANIAelKiV(bt^%zRrT!e-FHiH=_T!guMxluBfLMFtt|E>pl#MVCNxd zEv?p*!eEQ6eWPrb<<6>^ee+wj=3#-dm+>5}WM zT|$SY0(H6cdTTxDFs~f=`Y+q#((A2J2d@)Z7q&+(E|8fH8>!wb9sJym0azcX%bIPp z5k*@Tc&}S;KIrh6-flX2T5s(l(jG>dt-L7ex^>sl!+LA);yQ-gLqklo{dd#R(|T*) zMn_NUtx?Czm?K-|h{er~QnN7K%F)w$Yu@gw)~zo1wpNP-_K#%Qr*B?{j-J+AyG$L{(qdLQx~y|{2_62bebahtDX7bb z*tdsJ7hER$H-BRw#9E`Qr}ft2a06g7GE+cIueM>W;ufVI*P3d1+K}}2puk@ z$xAYIc&~#MK5+YHm7}M%(hfrh>#$06v_J=kLTrKM(BF6mTPy7-bRfB^5go12f!7td z*>qfb?Kp)#UV#MLL`O^@dv@ z{*AhMSnWX>rvPhj#63<3;2h*%XO2S%9n)O_Hw><)tr2BP*vp z)v`{9mC9NMZ?rAZE2k}ig=}->v{&0gylb@#*E)C!E2kCt;~KH5+PylC|2XaFmD3g= zeu1`i-_UlqwznMui}IV=xXw|5?+z``f5?xx&poK{cF5nZ`QuuyPt+*lwnUeZxb0_KVxn+@o6N`1!qU=6Y*|xjFu@ zJXxQu<7{r*OwpO`k9D^dyKeH8xWbz|S6-Xarjo1`)y854q7f+1gtjp{ts|MMA&ka~ zYA&r~Bx=KzmlE}gYRS4alklH{H1P;a)FEnw#~ohibdP~#berM63Te6Gnt>J79BrmO ze%9yW>DRG##}nA62e41efG+~qqMw(+t${xUVOemwa31ivaO?wVa2asv;IrVon53l@h z$==#(TRqM2Veg-&U3W{$Ts^JhtXEc3i_)p47Fufyu7#C#t^>%tyqHhy0=@uuAN(ia z7Q@k=d${h2HRuDO$it&;vvaKhu0J>%^4(?Tcaa$l86IPC?jgDa8Ts+R7|$@YJl9*} zx@TN(jq7(zKCN6)zA$$`E!ht_cbrYp*6I8B65V~Yefk(Vijq#7_Uf_T0@hjM3SvAu zo7@iMSBA2`hr#0jToe3zfRlhbfjnj%?kjZ;9cR_)E3~gLm+S4BZRhgE>oW15>vEhv zHAu@8<%hYAQ3H>t5$1|!PB+&%Yr(o*v09!rIDD#)=rJZemU-fcePy#IcP{c@j&iVV z=fm%Vn+^YD;5fKM__@E$eU*{VeHHEL2faIyOK;oSRNGEjYg4hFv)~S39uqw6lL2WT z^QV0d>H5HJKw9p{-nyO{`OL8jtGY$`LfpM{-T2S8@E~o?E7tyBh_v@2?H)L`Yn(gG z-CxUl^0|NKo(k7%4JeOG^I50VxM*LfTaAhIO_17f{R(QHa!R$x8WyiaK;KfhtE7Bp z|1nq7vveh$GSVHc(T8hPh<}|c+#1*CYCJ>Z^Dw?6udLPQxSmMVsn{0ot1pl9|MTNK zUfT7);W76cR$M&E(ayfc9(n*)0%Pxb9c9`+2;c9*)x$jvR|j_jt_JR1I4{;KXn@-e zw-as`9NT7fqw=!nbDVwSWU*^xGmmMmme+Ci)su$n>LU(mJGLNOWY?ss^QY%3gOJPDZ=!T?aarDdndzO|MHn_ehl&Ko7TD!SZ@z| zqvn-25FU;Fi{|aPob@5_F1z_a6logZUj<}(ZnSgBIiAHc0yw^RQ0r{*?cfbI?!}~P zij5x(;Cu#^VT;cOUtr_gz<1hsF(x!?Z5-bVby>e+Ev{*uws>Ca<4{qw$!yMXdS2f_ zZcvm%91oz7klX*-PO7Z!z(&PAaoEfc$Gp;i-_p#}Y1-cjZj{Hi=)z@5W37i8mK+;f z9_Dtr^LWrJ$BW3@fBQ_dSysoyXbem#S>}LjH@PlD7Aro~AP?rrUIdHL^j<`c;U4jX z@p1MfhD^a9qr%qU?+JP?NC-q#FOtA=cE1-Zh4M!jBMj!uK8sqv!2Jy`o^zVk{_jLU zH>J49(gw7<*Ok{_5`}dYSRyLs0RZLrjz&$Ua>uWNXf*B+M{VGqv(if@VI+ zy_cFp*=4L18zMhKHeFV1h~kP3%v@G%h-6*6tk}@IiLpwr*bvS1c=+#F2&uqEFiS-9 z;`TeY(z;zDvE%`>VNrRcqqzJC>Mb}G`3U~)HqpCe&up1JpK14;z1?zkx9kyVWEjka zS#w}P7dsE{VtB*j@pmsh>G-<~E{q<0KBl+G1b9%m`9)GqUd*LD{o00PP#9<`$ zW-+anV^S7Et093JmzUs~Qg@XS zZ2VN~q&}YO(Sh*oy4s^vQQiMHcIP{7#Yc8CG!OeNT@B6m?rLa0+HR*lW}Fe!2EKX; zLtBVmBkTVqgYf3S-Q5^GXCX8+%u5g=X9srVB!Qf-su70@It4j*U^riqqhaGI!gB?e z3UWq4lh98BX#$(C@R=r;d8WM@Aq_YeUJ2w3ff`>D5sfj*o9O;-g$0&a*nhc}ged3gV++9naG!!+8!RJ}LO3#P1i*^Bv=PvLo^>M&`?N z9ywnQBl3(##7ETHcy&IIrl#)_ECkZ%HBUWE&+`uD_XzTYLC&)U@r)pcd2){N#G!&o zf+;}i<6z8qj>N=b!KH%yV4vYn0x8d-m7L=$@ns3;@XGjb3@lDye<1fLM_bB`0MaBj z$4Sa@kYxBuL5`K=j|p)2MDU81|6BtO6zg zPoN#X-DT7OG-sevIRoFLf}IS_lh5Ng>H?E>PKq%r4aH6g6kuUx{vYgQC+DDuORC0f zGT2NeaMF;8qckx4?z2vIn_Rfg4#X+BwS*C;1YPC~9O^8KqKY%%+4E$2%qg7A?x@qY znXj4k+z0>X7OnqhHm$qctN#D(S<|Steya%fpG||*mKkf?L8@%s8>Wg&DjRaNmf>VoR9tMn!#7!Vrpv)vM0EDBEPY{Q*{h~@ zyLoFKfeg!}3GB(HJ#3m-?|Q+e0)`&3%x39xf4X0^E&o`x02f&drBsRDoL^o)z=?`Q>i=an4wWdf|ktH}ZOLjEH{T1dd|) zc?&phFZ(&>T>5!E1DL)7{5msQ^K?l}oy><1i#b`Q!%1GHFV)YO1 z2W!K1;a292ZOaQNBfoo?jINJsP=EM3gmI9)Em@RLB-7BjfaP6wiHclH|_(o>y8PU(RtZ+kWYpw8A;Jjx= zeVj$%o09UofVeeZo&~vMBIiO_2KZXxiQrSft$h1{kAVlK*D#qu|97|1|hv#tWz2 zutVV1{;UG`fm`J-18;(3Ie0gQ_?#f^iIG19oCqwmrE?>Uw-6>Ee2OhR5n;UbkdE+p zg!5er?gy@2hi{Cw9u`j9Ua{cW!f7uo8l2-N<=+Cw6^Xx`uYx;l^1HzmILBqm?*RW2 z4zGNce*k2;dF$kQ;2zDh#o%?|R(Wc0a`S@ci~M=;b>P;xQU+cN zZk4wfd@XpE$lnEC1D-2+Q+O+QI(Uo79|fl!u(8751y5mm;rqbxec0Am zNxv7|1+Ike0Z#(A^z8(9f?N8wgC~GTnD2gWsRxe-=R0oLwyeTm9JovJTL~TuepGlF zcr>_E_+0P^aH~Jh0$0+{&Y&&u-EaA6AjHd$0ofnl5`0;3hu|h4rV!e2!_uW3>ECad5_`e1bIuBe2buE7mMd~hHnr&i}MNj z=YppNPY8Z2$oHWshx4IEoCh^F3;s#)9zm}6K>4|Xvjtzoam;Yuk|+L~;7)s zj~WB*Xq`nOru$rwV=;NF;C8{Sg3k(W6s!~U3jR>=aX~&*z|Zlp;DdrI1eXflCuj(M zEyu@~f}aV>_rwl-dad>TO4{LPg8wG?jNns(KNNga@VkPQg7*u`x4(|Nh0hbbMR1zn z4T9GSju9L#c!l5q!QO(Qf?vu0_+0QGf`1o0A}HT6JN_vAzXX3Ps9$72`~FP0wf~Sk1s@gsu3)9${ep`G?-raVc#GgP!5ajx6&xctT<{9P0fM~+Lj}K*{cQESe+d7( zpk=4+9pQfz{4c@Z3jRv)XM+DG_>ACFf>ytLRQPuVD+TWtTqJn6;5@-w1g8n!Ab73d z7{TF!R|pOe>@657_?7hEe+qso_@Urm1)Bxm6nstaKLvj&_`Kj2!Ht6J1%Dv8TJS-^ z?+Dfd`=KAz3G)0)zD}@KaIIjC;3~mt!74$XubG~65u!)1Sg=rVfndI1o?xzEj$pQ6 zmSBe96v1@CG(nvIb-rT-U4lu1PC?EGSiX3{IKf!KXu$|Uhaf2Lx^W7Z2U>QI7g3M}5%2U@kR7s?iA?hH&aj1X3TSe_9{nw7%g$CL95zzGNU3 zV4A7*;nqyF2b}dQ1iHZUg|mIhvxR2}PZ!SiV?3Nr?-b5*P#^2V_z2+u%~u&_J*xyO zfRyLFkeDl&Bk>u+`B0ki=@LFxxJxie!h_jsVY@mIkDr5o)N?_~bq>hzGs4>iPfB>J z@MD545`I+pVZlQZ?h}4caKD7_6W%1aSHkxQ-!0fE;X8%z5Zor=4Z=4I)=PMuaIfGx z39l8tRf$76v! zSAQSpJ=!ke_ABvEf&XvfZ@_th_a7*e036^j{TcA5h@X%BZxufu?cXPUK9*l6{)51u zi=WS3-x5C`v7Zt@AD{DH5c4X=ym6fP`S^N<_&JZhNBn%eTtz=B&U@p0S&IG|9B8zw zNq-&u?~9-JM#G?s;k-Zk1{$a@4(>)Y689JFr|{bP7vkr2d4~9T&AeFryq^9@((Xgr z;RpxS8}2>%{XN-FIc=V6wY=C<)qdRT@TZmehz@_*CLdz+|H$UwZu9d!POCh2TPi)- zNx^+zzx?g?v^GEWSvq+i-tw2iWBFw+smpx9CUc`rM(hh}8M~bnjzg9nnY(J4R+}DP z&s#FTvB^Jg^LMoe(v?~EQ)bU|`b+tDhx} zvpsUUgp@pZx`c%N!Q?lJv4l3GB#TRzVr|riY<5fdJP+SzuUKj~q@rKm>>-rPpLSX~ zF$)7bCsmWux`mq061xTKuhRW?QbfbTvSkaqNt(;`28#0I+)h#bJk~FQ=A%iNF6K(Q zK4>)KI&BB|ZK#;LDIjg9X%Ev-%>T3YQ@*7^82<|hUF$b{UN8$Q@_Is`sMuBsZonlA zouOL;1huy!YHV*+c5m0tw!43t+cYHeEp45cyW|_b2I&5-hiS&-a^BzfzsnP-gonlD zyssXZ&g{+K`099&7rO(W#CLyDGvLvDcY$s%9|e}K%ftKb=>s0$cNggTFulk4?h)pj zLxIK72kRwlgUAtiX}cg@g*uOGyG@X;GD!tJ*#qfOuA40ok?hG1NNU;yr*mRTDlC4a zYcnCKDJhfE(wxrJwA2*S5=dc`Sc(!0Ao_Hrg4qGd!aPMe&2ty;&js639*^N#P^#t8 z7)5cqAtHD=c0g9)Mijo2J0RaiM^AP@sAKKkP-T@P<-vaHU-t)Z zkDly+EXj-33I1@miJF*y-P)rkJ0R5YpHC@unL2{n0dclQ>ko};+P=9Q7?O1f1NZGa zC(N|ha#7K)TerIOWC!Fjb?}_--vVuC96~v^;Xz6o%E64!9gb7G{nDoAo9uwpd=agF zj|<9{3(*)dIyZks5G2RGKQgc!*|THR?nu1fbbE|0NBswJini13TS39X%1T>6pbn0G zIk@KFW-kY(_x`PWIl7Kx7w(8rw`1&EP+*qBpU~!^j`H$lORb>5a*V}TY~^pSLf3Mv zFwfSaByc>Pi@My0xLr@g_^(;4{46XeC@Y1rx}q{(ykiU0u@^dG5uSkY+`d_5W0+qD zFZ?y{+8zf*$JhWJ(#(?P(l$JfLI?Al0v-1Du%F5p&U*}bZE@-Y2=5&=P!-?Z)rJSx z9--R>Io=zX4eV*lg&uo*TXNR-)d~2%x>urVzu_Dn;WlF##uVjM^~z;5tEA`_Rqv=) zV~6?F=E7qumE7_1xIwg5{BFUT0$h%f4CyWl?b(@Z$!>g_YC)uZn4z2%GYt3HK*Bx{dZ-Upw9XTh=OCQMl&Ln8IkpMBdr2P>l)q)hKNnB0mx(>zB)K@%hbr z;+N6t1l)IVV`#^k80CZ80Jj&8?Y_3rcuH*u_3F}&GJJ;f)|Sxv43BcfAH{=mZ$?XG zee1B$O}FK%XNDA>9Clm20qo~Knc6xbbc5bE&NQS@o`}MK9mk{gI;Ro3@duuW_zVyC zQi3nT6XvOQy6&nOR+`@@K5kNj)0JOypP4eWr4MVctae7lw2+PN_$Yjbo_U|k?VXVt zAF`h1SeyCok&t?|DYj5Kjc4Ku&HdNp-iPu2Z8+A!fjxaA_VhK)wE4iYqsJsiw+v(} zm4!HW%m{PCII)jk=C3YuxocIz~;FGCbb6#~JGVliruqqnraiIshG5gbS88-h^-M{R3O} zqeNw%{m5O7HGF>nrgpT77zmS@> z!ZG0t^G3IP$+DqdwKKvX;qZM9zPc=|zIH~F^PebzkrbV~5Bn}6pXr}(IfeL|Qb;yC zoc~}6+aLSt1j5v?@byW^FXMD87<1_5`vg9tEEKvwhGcDFz4I6_GGC2K@oi502tD$d z{NgdAk2EAdjnc2YQ;kbH(#zR2&2d9$#u21_G`Div{`mKhW`B_y*Z=+S=fVsBf^hep z#<dMX{0n}o;&h3B*F{BTAC3Xz9}kqvok7pn^Sq;0*}Zy zP|NFmJDh(6i^(qx`F`evBRfa1O>6FScn#MWl;E{#qcR-zYt$3*xmR_ZefN}OW8~1+ zkk9(tZk=XqnmgooDEZKZYE-}X!#DOTdiyqB=C_FJci+FOoZB|uX{4<~ zdG;Xmw!-k1-#|`16Tay{?vCLHa(9De-~Z-)wb(P^7?+Zpe~B^}!$LN#&OMlSa_&p!pnPpD2b~V@vykH64D~$&-w(=aXKaF8=*A3$Dc{bPz1Z775gFy%*79Rr zE@M4QrjiyU?gXbrk6EXFgc4ml;(72 zYiB6eyygcfwb8gO%Bk8HoX7IyXoc(+*nGh;^yTqrbrS9vTs&NOZj4HVQ|)!1bc5&ey`z2rVYp_LHJWe%|$9HZ=rJa^DRV< z;hSRIBiv&Pr!PDepXOdLEqVw(5TB$*f6*LXKW*BZ@prLQ3-9FrrqGR<7&*he+V+y( zueT%Iq1!psH;*+!UCcdo8)D3(&gYzi80^K#QMqb#pQE&+WTlyfn3>pLGZChSIj}#> z)NXKVKU-tki>UW=a8JUmfm;f*(TFnN2089t& z1MY^~4p$Gi67JncV$=fQtH9a79l$i;2)H=75V$iRN2^x2x8Yug+X=T7ZWCNB+$y*c z$n&jJ(P}>2frn$%P=rOp9nOhS=Z;0I&)`0R+YGlA@m^pJumUazZWj0yxCwA0;Nsz; z;V%9iY2i-5y$2V8@|}Zx3mol-uJKVIERntDx;j~EW0;Lk#`|nE?mQRQFpktaPi>mji!B`)tNCqo^7Mt z%@`*fzSWukYHsrQ3M*!;&OGm{nDLq?gqp$KNP86=>%%#~Ob^a`0>fox$O3w_%~sZ@5F;p=jr@ zb7oF_HqQF3Y3v89VcR_FDPu#78+!)lVZS^1L>f{*@16T){jn9OaMlz=EU;bQw`0tUO#ZwKtuMK@A%a6Xj!Flgb-rgtc(buEyL1dj|7h zv%NYlc06+WZ|Gwv*L%Q8z$V~JaLik|#`zrXD~FX>nr6l%fTbTl=$-aD&+k^b&T==3*i>RUkmpz z+!XNVfG*%rINAy_kImw*czg|m?Jq32EiGu;0Aqi6v@x2;yzc9_cl@9QGq|yiqqNbr z4*Ows%k=EEnV9n@f43zI{rx+bGuF;9yuZ}-GB&QxT;>b$-h?u;-OGJ9!e_R^4blpe z5t3EJ|BTXx%#ioeH4oWn)JF_e-bs*(^kl@}41CjLB&y-Hnf=`Aogwa~!8dUHC~eGC zM~1rb??d<~Uabsjzx&)MXbC}CLN9hQ;qHIRY!WSAF?rG{zrqi#ph)VtTR%F ztRKA5kve#NTnnX*q#>K)?ilV)xgjcf;BzacWeiD4ALunE4A~Gh#(3N5K7G9RdZ+vL zq-|bjzbhkQLrB_?I_5qIxhK?xBn{aZeMh1@WpdQ;glF%c))b$T zp5SE}qeh##N4SlYAzr7uj8{5IF)c%IOb5ojHHm3j9n^e$a*!b@A@~V zoxsd&&;}zle8S*SVYpV0@*YRO9pvrTGU%Brs_))apV`*zs8_HlIjFv-I%HTxCN#G{ z|Mj5yrs^o~Gw5RpII6?mAGGlY)sDn|nW{O#8&%)5E7ohI_jMV6RqaoGU1PH)m#LI; z;|7N1Ucjx^2;9q}dl~)%a5eDLmEm676L1+wL(a4+iRCbcMX!&@9OvtBIx@q3gEtp> z5F0HN270N#7xdHbfL~EVT}M(> zUH^J#W;9wnYGdE}h|K7Eh4FE~=A@ws^$nToy@a~h&9P%cd=Zv>`ma?D9?T2cShStmb@pHw=j}rBRfuzvk@qV%2Jpt1Wu9$ZfFCQO-x6QLtRP} zLphC|g=PUNJBB04a*hLmI+Rj3r*Jsu(jJG>e!!u8=x*HK&ulkJA5d{>T~&cm+Rk z^ra|Y9^1q|zzT79>!NwB)`-=wzZ)O zPL_ORkg}!Euk%03kLio2QIq~|dw9@a9kl@|HA8_GN3xUZBxxk&osNLg5j=}QI4 zW#^W%+U!$h5iYjLULM(G_c*v#?k2iB7B7nlVOCm>biWi zyiodNWJOtds2sgd1h5~XTnj9iF0>%Wo%*q^!TyOI+V{YF<= z1Wsl{R_R&Cv$gD`Ln?~VIub;4t}~|caKKw0n&-+=Q!YDJkpo;9)DrDXbOArQtk^TG z8vMjbkCYqL*Dz&~v}#UHmmaX5)0q<^`Zu|{1ha1Lwy0w(nK-s;{MPAY;0kvWgG^=) zm2~FD_*zrEG+Z7rM@z68>#mfB$~#MAZCKBTy4zw8g|~&ac0Uwp3vZ2X!*d^W9$9gn zivhQh4xl{r>kkH{KRf^#0tev&s>=ynKAo(^yP$Kp_m2AhYJ2zlt4-adF;Ob-t(NRj z6KX5FV$kL#eN}kHfO%nVr&gv+{cP1|=&eQT(QjA(_O>+K@mGw17HWf_as0B!UltP= zm1*-fwwmCYKS9s`h+Xs9ZJ)n+7P%=uzj`0#n7cfFSu0VjmAJI(652a{nPvduQl`DP z{-WG#T6+T8qxy%xQ2)z+@!pG>`hWk0`lG9&sQ>9q{l_!)NB^Q+msUTg)&It-H*TdK zPbc?W&Q|G+IbTB!?OF|ktB&FP;md&Wn`rb`Fl+YiUuY$qn3?-8=c$P=*_c+&^>4S* zy-ixlm$dVHP?FP1UXK67wTaQpIZo2s1QUfy8Xi_%E)SJ_?<+NYm2~8`@;(s_@epN49 z4m>ywy=>pJN4tbm4!<}*gHee=bj)quTwo@NknMn>Pk948{rn&v7<`Dthg}LRF+%I4S8Gz zYI;U~c1e#}9=JrgThn)*zr>syFn7;g@+_ixDg;Kf$6mm0u9Z%Xh*C++Wv3l_#%}^G z(<}3@wiGC1?wk|D{+ux9u}CF7p33r8=ph!enz49Ebe+AVOJAJRO}o7AR7tNroa?p? zd8)2aVZr%wG(vy>{^i;mZLH{i!%Hu{av;;6M&$AY2KYh`zlt7ShaTQ}$+LudIG?cR zVmn&3V-}9bOL}u+^NLHJG>0uQ(O0dQ&|(!SX?j7>DL#} z0=;`~ zY`mXKWiosJUG?+5&(01?WZQ7MO1iIg<%V;hpDgJnUIx9;=pm<+_fqRwwT z@RoJ1VEW?2#ep)yfmj`Fjxc*FbU~xc{ZEP=k_3$t5`s$yo(yB4nVz3_%H8HYS{@PZ zXecX-`#bu(uXMKexcfjGv}bmgMKh{Zpyb z+nM8g`2PfsWhhIB2aA0>4n4}yHI>zLAeyeKSW%Jj-m*UMJqDRAARm%Dd^vGZ9+tT} zed2$l`U0eTX^>CL+=A)kr5s8 z^>e+;tHP_g0sC_3uAl?iGmv$Fa~BLj{|)JbWK?~~(Agp#+UnTaur=#PrURP2XOw=A zq?jro12amZ4i0q;N;?KfLQM^%2D%1PFX$IN)704XJ6ACznEbm~&9%_nAx-p;HZ0^0 z@cpSH`no-hZ!|JTs$cJ^Z{+UHU6J~+ezAP-k$Y1=b}v4%wR&rCE9otEjlL^VX7KC{ z*1PDsCB;jSjw5|(%@tbb(YpJ$(38N9dgeE2J?85JOVRE+8Dj~t8o(Ez}Wa!pqe% zLo1-$L-0KoSIcw}GoI+$X0=_kKil@T;%8cij(%W2)n;sazZGxZz%AfBtolk^7ZzJ# zf%ODhhsy?!S~fn@)?=r4|7&B``o1=-b(^rU-9C6!*vNs(BD3969+GnvX;>VDpvQhYJ$B|2V11~PfC1(+#Ub?z}tI+tTX$7&X)%pC~Dv>kT+q+6+3hma4JUSm>!VavmbaUS26+r*g8GVobYtA z?;Iz>eyY9Cl<%wWqb@7%cb_BPT1t4P-diCr6Fl!>?ak2m(!B?!tRiR?w9{J@TkMQK z7n+I+)gu4q*3HYl))Mszai6?j{)(5ESIg_YWsqt(#Z~vm5wR}22Vo|)r?8j8K1h0t z9MWeatoHXxAMCGELYflg+)z&V^#(Ixs<05^6dQhFN#%_Z!Jh@3nbpaZtdLn`d=~D2 z1FNR%T)fXtyrf#gwh$xysATt41W;2DX&jW?u&AA9_uL!M_prGC>bVZD?azTvb<^q#hAwOM2LtK)!5mrOF4KCldXr1;T!>-t_gEk;;a?o=X&vnXk>_u4b z)R7U?W$Px0u{~uAPbHO)?4HZ3`=E{G#IfOPTq5_!)h)}Wv8x=CttXZI5H|IxTk^Cmod;bo<>Iq&M_U4 zD$d$y4xbygh3m1;SoK8Q7O5}!J^Tka$D8`>sKv*{xrm|D5Ls3-eA|{~Z{6yaY@h{G z$*+FIME4!1FiUP+tw-ND<&72J8zu;B-}7tm)@fChVi^o?$@m zkei04p%Z6+1buqp!fe;`n8D{)5x!kJwP2W4+Mdik=m9rZgVKz?_~GZZl^nm4cZ62- zvn!YV{l1d;RPs+(^m0ybOT)7m0fQ}_8=6XaNUgefPWV`}!+)%?TdM`oPO?bgjesp`X|#q{G>Y2pH7mp$ zWrJ7D2`_8NhGu~ayr=SEZ;+R*;T-66vqNOn1V^VFRHcM}A}9Q)yfXu(F|_pUcssT5 z&F#4N=KY+XRhPtT#hi$+QS{AH?nhb9N#lF;3gS;qgAA^th zCTd#NsBe6|VKddac{85B(IDfzee*Y{{>}HTYF@UsF}Lw9(nxFG4EN%x)meuY?nEt4 z#RYGMMZh%Af^KqglWU%8lomN1crIPpfI6&NZ@gEy%I`F+#NKnut&KlxoF^lUNO`gG z7TlR1;MMO0xy9dU$O%h<+}<2@P#VNMPbFPfn4A*}G|YBc9P7d5S+V1%k|kH9gl=NK zdNc5N%kQmh*E}2Bfd6Z7^k*>yD8csxy0`0SrolfmW%-B|<)$z1DkpAb%>?;s=+IZQ z%0Yiug?&o87AtmY?xZc26W-mB+iQ#FgnbRHmc{3eWYNw6RGhrb=JEJq#}vNefm9<( zPIxdlo&3(k%vWh_;je)=r8?iQMc;5RLC}1EEGB%105V7beGJ2v`L!UvRfWgT)j&tS z2>cLuBqz>K-)mzr9Q$xA0k3q{4cidrg2vMh6JH??4~-E=JB}ERv@N4hvO#83w z4+Uo7o@AJ>`yjouc&%hu!9}dVz%yPd7WBu0*eDAE^Qi5f0s1-;%GbbtIuHE5gIA3X zrs}o*=DSSXHRu%N>H?_(+!%wb$L8h4S+y-51b>3vkCsevaPkp?XW~G_08?k^FSW5_ zVEr6cS$>DDZH~lsvCiw}S>gp)Hx6D{4C}UNV&-ky^HWIyHD<-FY1~jnR?)0g^hFH+ zgh#qCqV4}nT(qF1&Q4#iu|u*Rl;+2+Y#EM6U|;k%!wk68}1u_KiBIq-~t(8eY|EAX}e+`d-e|mmVLj zA9IKrzUse3)-eXka2T~0oRIPM!An6&?<6`By)=~!U*bYyId?=4{L^(w$Z#sg48Gd~ ztpbg4*CkQS0_>v(t9TfZwf`+)}`w?&p_%In0ZL`T~EgPQIVH=*>-+ z{z?25*#DPaD?%Q;$f|nbR$=9!eQo_za`hz>bVXCi6`0+% zf!x5%&S1{3-2BFWGS(XDt|zV_8^kHA6)YXhv2#3yeYTP*Ra5ac{UL%J8lwUfn-kEZ)*%3RM_;9kR6 zeujg1(fRm42So**QOr2X+h;NU*JAo&~8`G9^A8HAvjN>*BYF#~3^S5+8y>m@$i` z+6c9cqNh@22c{}S&+Zmr6$m+}vd4pbU{WoXU zKRebJWQo#o5!PIzl74n@<{5ZYV=a5{gJDjzh5Eb=(DbwT$>HpnLk`G3IbSw+9S%0i z1+oQ_x1cy3Yd7-MdQe!t+W^aoQ_YUN3BH_%Or8UK6z^b(s_`7~LS);@SF?LzWTu((EgWd9FLMU> zmN*)B_%6OHO1qj_?FaE)7@tc%>}cHZT4P`h=i1fy9&q%}2CXa`o}jQ303uo9e@$7# zH2&h_f@Ff9P;YCZQ5K_&%8MG>kG#c}g|MTo03tmn?Bv zY8c}*#|}N*w^=W53ifI5>{4?=0q`^~+1xFJU3OzPCo+dA+Urej2az7f zmpCLySy3D5!eJpMO%ynA=w`v6#f;tNuod<)wTPhQYruHSY3zyl;0y6ip_D~hu%SGZ z4xudW)vi*~?+e{$ilAe6>Cm<{=CGSOA^$0;3U2%%wy7M%h=@qBT5{C5^ zXSZo*G>4Yh;T9KYLXNT%n$CK>$=8~PmU(FR!JA3e0m`q$tsYo7Tsq(Zr?fQT7^9Ua zJ#C5XZ3fo|xxY}dMBaYTD$QQRcUz^3MGU{rMI5vdu&tw}Y-kXvOz*HB@W|qk;dCEa zykJ;xJvmHPOV|a*T-*?2uvD44$)3TVL@)P0gI!zMk_%4Y4ECi%noPc}$-^Zs zW#olNV4-*ieTZ2fyz~fP`^md}ZE>8%T=4pzg;mMwrv7Ce@g;7?oc&vzqSr3yoaOovWa*=T+Uewxso+SCVPuWQH>`Rxwt&P9&kMze9T^ZAYWdW-*h zT;=(f&=qg-vl;;u$QXeY=R02Qz52|1e(gQq)%Q5OC3IS%LS*fC4j(+&U(DRMD~^X)bs^}+oBsU7FUAS>`Zja&TS2`e zw48Gs`Znz?gS1w4%bX)W@#FD%^11DFPpI^(ZtaX!392kJ2j{d@O+GzlJBC`?fy9SL=rK-~kE~Z-MR(pm)R( L1vc#QO#Wp~+ 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

dp$^fJ-% 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

OTghy9PGo>qCijF%UUb+A3 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⪚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 z�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 diff --git a/Frameworks/MGMUsers.framework/Versions/A/Resources/MGMTaskView.nib b/Frameworks/MGMUsers.framework/Versions/A/Resources/MGMTaskView.nib index d4d54d7b0d603b1f3cd0fdcca9a5a3be38682e9d..198ab7614e02e79efc12c37ac9e320120738e32e 100644 GIT binary patch delta 663 zcmZvZ&rcIU6vy8V5ut_fWOfi*G>f(>YIm9mBPZo(h=xg}(-fvCxyV7? z z&`F8NFUJ+8Bz4iW#MMo6)GVRxf_}(U+avDuqYGQmi^ou4Cmuu(x^X`?;Zf|uL)e2H zRsQGS`i+ON8xJ62Gq&OpY{QQ7H_@=KYk*(jd488a;4Azy|G|H$t?DWDj5=*sT#tI5 jh^OMYSP?J8EAd*C#Hx5J%Ho}PFV@7m*btlcOLz1y@rlgq delta 644 zcmYk3&ref95XbkeY2-(>BfE?C2j-!zh#{Ov8d@Yl(pIn(5hA8E)~0fI2ivj>sliC(|TH=17gy$+5Pig|szNl_l9L`=w8MWQ%N-T=vO` zjLVn|%Y^JvuC~xh6|2@UawK3YG_pD>9+RA;vIna?7_FE$6dE^zigA3)-^c**(q776 z15gJ!LMH*+$EK}OLyfurob;m?YCG}SDt)NJoBo;k+BR`^s8q_E*^Fft3u*AGA;!Ay z7!@m1wz|{cnlc_*dek)XIepm3=TlKLZ**1k@#TV1RtId%IWxRiv5E`&UDH@rgRDb^ zc-WsDS;)*9c10T6Z!B6?v0(r7t5ccE{G?SZb*m>V=$x6fuya;#v{8?_e+6esAjMH+ zdK-yMlPHPcgtw6G5~-3Aq+Lhy6FBD>iP;oyl5wOENA3m^P9g7kq}3wbvKeQ;kKAL( zG>Myt;8qrpKvrI}3Ez{m$mhXds!u6be(~r!`}OCXKqq+M5^xAW2b=>JT!ss95za#s z2sjPxa0dL~1|KkR0>Bk$2JiNFamwKyWhrK|Ri@YuJ7hoD3HR^-ALL0@^E~T(E;hsq f@lw1JTjGs)D|W;?u`Bk(zBmwv;{Fb5o%OuLX$L6W17-K8wp7qabevJ>)MJG ze9@Z_5Eit4)>^B0P=q2md+4Dz@jnm(-o51@_01L`0|Nu|e8BT-PqnAM&M9MT4W7Xo zJck$X5?;Y;cmwP37B=7=`vIHq9=6z%?PWzBnN&hbTbW}W<*~8~5oL$kb^wTLIH|! z8Lq%pD4~V7@gmyjV9S51#kCrbEJ)Wgn{~^mG+oECr0cgt?BwEnyx*4@)Jeso^m^Ng%1tsB8lHEUY( z)E%R=VoSH0p;T#mLD5phqok(MH~7D_G5>=|RN5@7>;$7U2t$YESb@zzgka?Rcxaqi zR_u>X^TY^9iV%fq?l_*uIt~-05MB>(saV5CAA%p#<(XkV!jJGUAL56($~o6~B)YeM z{_;ay=OKQON4em~wm<882gI)STl*u1#Dtg>1yL2ISQZcc@1u{@b$vtM)VK7H`X|41 G;?h5e|Gm!u delta 601 zcmY+BO=}ZT6o&6TSZrsE-X?R$Y9*aTTT}|V5TW%0n%FdL)Gc%hzJ83W39D*>=dC$)(Ty?Qv3%(|3nv3&s2qa&*E|}?|EPDb6VrA@s9;Q3{Tm2 zXtT%g3_9=}mRTEKzzV#CRd@w!@EYF0+x6RAkDp>&tjbDklNWf4FR?D);2Lj&$?`ag zG1M`IXK)&GID~l|LmL-S3qK`J-|wKo3QO{EyetmPId=mq<2vfPm3EX0AIRZcS@h34e&E(B$|}};PbtSQ zi$vD*-Fsd=*!6mKu2NNwHSaoiNRYY}1YUi|$2yu;PQ^bK_DU=KY9t31CL0Y!j)Cjd z7m5MhH7m*v-^r2U62a4Uz!N?~m*E?1i*Qb}Db{7PEXQVei%?_bn*y&@)h#X->{;$pwpCxqx1x-f(k3DK9>{&Ri_bN#)! ry+?jAz8ODdk31w#$O(BxHsmAO2|o`$)Z1pqTsBwCRdX%0kDUJv2=}z8 diff --git a/Libraries/include/MGMUsers/MGMHTTPCookieStorage.h b/Libraries/include/MGMUsers/MGMHTTPCookieStorage.h new file mode 100644 index 0000000..7df873c --- /dev/null +++ b/Libraries/include/MGMUsers/MGMHTTPCookieStorage.h @@ -0,0 +1,40 @@ +// +// MGMHTTPCookieStorage.h +// MGMUsers +// +// Created by Mr. Gecko on 12/28/08. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + +@interface MGMHTTPCookieStorage : NSObject { +@private + NSString *cookiesPath; + NSHTTPCookieAcceptPolicy policy; + NSMutableArray *cookieJar; +} +#if !TARGET_OS_IPHONE ++ (void)override; +#endif ++ (void)setCookieJarPath:(NSString *)thePath; ++ (MGMHTTPCookieStorage *)sharedHTTPCookieStorage; ++ (MGMHTTPCookieStorage *)sharedCookieStorageWithPath:(NSString *)thePath; ++ (void)releaseShared; ++ (MGMHTTPCookieStorage *)cookieStorageWithPath:(NSString *)thePath; +- (id)initWithPath:(NSString *)thePath; +- (NSArray *)cookies; +- (void)removeAllCookies; +- (void)setNewPath:(NSString *)thePath; +- (void)setCookie:(NSHTTPCookie *)theCookie; +- (void)setCookies:(NSArray *)theCookies; +- (void)deleteCookie:(NSHTTPCookie *)theCookie; +- (NSArray *)cookiesForURL:(NSURL *)theURL; +- (void)setCookies:(NSArray *)theCookies forURL:(NSURL *)theURL mainDocumentURL:(NSURL *)theMainDocumentURL; +- (NSHTTPCookieAcceptPolicy)cookieAcceptPolicy; +- (void)setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)cookieAcceptPolicy; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMJSON.h b/Libraries/include/MGMUsers/MGMJSON.h new file mode 100644 index 0000000..e7d6bfe --- /dev/null +++ b/Libraries/include/MGMUsers/MGMJSON.h @@ -0,0 +1,62 @@ +// +// MGMJSON.h +// MGMUsers +// +// Created by Mr. Gecko on 7/31/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + +@interface NSString (MGMJSON) +- (id)parseJSON; +- (NSString *)JSONValue; +@end +@interface NSData (MGMJSON) +- (id)parseJSON; +@end +@interface NSNumber (MGMJSON) +- (NSString *)JSONValue; +@end +@interface NSNull (MGMJSON) +- (NSString *)JSONValue; +@end +@interface NSDictionary (MGMJSON) +- (NSString *)JSONValue; +@end +@interface NSArray (MGMJSON) +- (NSString *)JSONValue; +@end + +@interface MGMJSON : NSObject { +@private + NSMutableCharacterSet *escapeSet; + NSString *JSONString; + unsigned long position; + unsigned long length; +} +- (id)initWithString:(NSString *)theString; +- (id)parse; +- (void)skipWhitespace; +- (void)skipDigits; +- (id)parseForObject; +- (NSDictionary *)parseForDictionary; +- (NSArray *)parseForArray; +- (NSString *)parseForString; +- (unichar)parseForUnicodeChar; +- (NSNumber *)parseForYES; +- (id)parseForNONULL; +- (NSNumber *)parseForNumber; + +- (NSString *)convert:(id)theObject; +- (NSString *)writeString:(NSString *)theString; +- (NSString *)writeNumber:(NSNumber *)theNumber; +- (NSString *)writeBool:(NSNumber *)theNumber; +- (NSString *)writeNull:(NSNull *)theNull; +- (NSString *)writeDictionary:(NSDictionary *)theDictionary; +- (NSString *)writeArray:(NSArray *)theArray; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMKeychain.h b/Libraries/include/MGMUsers/MGMKeychain.h new file mode 100644 index 0000000..585cb3d --- /dev/null +++ b/Libraries/include/MGMUsers/MGMKeychain.h @@ -0,0 +1,35 @@ +// +// MGMKeychain.h +// MGMUsers +// +// Created by Mr. Gecko on 4/3/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import + +@class MGMKeychainItem; + +#if TARGET_OS_IPHONE +typedef enum { + kSecGenericPasswordItemClass, + kSecInternetPasswordItemClass, + kSecCertificateItemClass +} SecItemClass; +#endif + +@interface MGMKeychain : NSObject { + +} ++ (BOOL)itemExists:(NSString *)theDescription withName:(NSString *)theName service:(NSString *)theService account:(NSString *)theAccount; ++ (BOOL)itemExists:(NSString *)theDescription withName:(NSString *)theName service:(NSString *)theService account:(NSString *)theAccount itemClass:(SecItemClass)theClass; ++ (NSArray *)items:(NSString *)theDescription withName:(NSString *)theName service:(NSString *)theService account:(NSString *)theAccount; ++ (NSArray *)items:(NSString *)theDescription withName:(NSString *)theName service:(NSString *)theService account:(NSString *)theAccount itemClass:(SecItemClass)theClass; ++ (MGMKeychainItem *)addItem:(NSString *)theDescription withName:(NSString *)theName service:(NSString *)theService account:(NSString *)theAccount password:(NSString *)thePassword; ++ (MGMKeychainItem *)addItem:(NSString *)theDescription withName:(NSString *)theName service:(NSString *)theService account:(NSString *)theAccount password:(NSString *)thePassword itemClass:(SecItemClass)theClass; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMKeychainItem.h b/Libraries/include/MGMUsers/MGMKeychainItem.h new file mode 100644 index 0000000..f7fbf03 --- /dev/null +++ b/Libraries/include/MGMUsers/MGMKeychainItem.h @@ -0,0 +1,205 @@ +// +// MGMKeychainItem.h +// MGMUsers +// +// Created by Mr. Gecko on 4/14/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif +#import +#import + + +#if TARGET_OS_IPHONE +typedef enum { + kSecCreationDateItemAttr, + kSecModDateItemAttr, + kSecDescriptionItemAttr, + kSecCommentItemAttr, + kSecCreatorItemAttr, + kSecTypeItemAttr, + kSecLabelItemAttr, + kSecInvisibleItemAttr, + kSecNegativeItemAttr, + kSecAccountItemAttr, + kSecServiceItemAttr, + kSecGenericItemAttr, + kSecSecurityDomainItemAttr, + kSecServerItemAttr, + kSecAuthenticationTypeItemAttr, + kSecPortItemAttr, + kSecProtocolItemAttr, + kSecCertificateType, + kSecCertificateEncoding +} SecItemAttributes; + +typedef enum { + kSecAuthenticationTypeNTLM, + kSecAuthenticationTypeMSN, + kSecAuthenticationTypeDPA, + kSecAuthenticationTypeRPA, + kSecAuthenticationTypeHTTPBasic, + kSecAuthenticationTypeHTTPDigest, + kSecAuthenticationTypeHTMLForm, + kSecAuthenticationTypeDefault +} SecAuthenticationType; + +typedef enum { + kSecProtocolTypeFTP, + kSecProtocolTypeFTPAccount, + kSecProtocolTypeHTTP, + kSecProtocolTypeIRC, + kSecProtocolTypeNNTP, + kSecProtocolTypePOP3, + kSecProtocolTypeSMTP, + kSecProtocolTypeSOCKS, + kSecProtocolTypeIMAP, + kSecProtocolTypeLDAP, + kSecProtocolTypeAppleTalk, + kSecProtocolTypeAFP, + kSecProtocolTypeTelnet, + kSecProtocolTypeSSH, + kSecProtocolTypeFTPS, + kSecProtocolTypeHTTPS, + kSecProtocolTypeHTTPProxy, + kSecProtocolTypeHTTPSProxy, + kSecProtocolTypeFTPProxy, + kSecProtocolTypeSMB, + kSecProtocolTypeRTSP, + kSecProtocolTypeRTSPProxy, + kSecProtocolTypeDAAP, + kSecProtocolTypeEPPC, + kSecProtocolTypeIPP, + kSecProtocolTypeNNTPS, + kSecProtocolTypeLDAPS, + kSecProtocolTypeTelnetS, + kSecProtocolTypeIMAPS, + kSecProtocolTypeIRCS, + kSecProtocolTypePOP3S +} SecProtocolType; + + +// From OS X cssmtype.h +typedef enum { + CSSM_CERT_UNKNOWN = 0x00, + CSSM_CERT_X_509v1 = 0x01, + CSSM_CERT_X_509v2 = 0x02, + CSSM_CERT_X_509v3 = 0x03 +} CSSM_CERT_TYPE; +typedef enum { + CSSM_CERT_ENCODING_UNKNOWN = 0x00, + CSSM_CERT_ENCODING_CUSTOM = 0x01, + CSSM_CERT_ENCODING_BER = 0x02, + CSSM_CERT_ENCODING_DER = 0x03 +} CSSM_CERT_ENCODING; +#endif + +@interface MGMKeychainItem : NSObject { +@private +#if TARGET_OS_IPHONE + NSMutableDictionary *keychainItem; + SecItemClass itemClass; +#else + SecKeychainItemRef keychainItem; +#endif + int error; +} +#if TARGET_OS_IPHONE ++ (id)itemWithDictionary:(NSDictionary *)theKeychainItem itemClass:(SecItemClass)theClass; +- (id)initWithDictionary:(NSDictionary *)theKeychainItem itemClass:(SecItemClass)theClass; +- (NSDictionary *)keychainItem; +#else ++ (id)itemWithRef:(SecKeychainItemRef)theItem; +- (id)initWithRef:(SecKeychainItemRef)theItem; +- (SecKeychainItemRef)keychainItem; +#endif +#if TARGET_OS_IPHONE +- (NSString *)attributeKey:(SecItemAttributes)theAttribute; +#endif +- (SecItemClass)kind; +- (NSString *)kindString; +- (BOOL)isInternetItem; +- (BOOL)isGenericItem; +#if !TARGET_OS_IPHONE +- (BOOL)isAppleShareItem; +#endif +- (BOOL)isCertificate; +- (int)error; +- (NSData *)data; +- (void)setData:(NSData *)theData; +- (NSString *)string; +- (void)setString:(NSString *)theString; +- (void)setData:(NSData *)theData forAttribute:(int)theAttribute; +- (void)setBool:(BOOL)theBool forAttribute:(int)theAttribute; +- (NSData *)attributeData:(int)theAttribute; +- (void)setString:(NSString *)theString forAttribute:(int)theAttribute; +- (NSString *)attributeString:(int)theAttribute; +- (void)setCreationDate:(NSDate *)theDate; +- (NSDate *)creationDate; +- (void)setModifiedDate:(NSDate *)theDate; +- (NSDate *)modifiedDate; +- (void)setDescription:(NSString *)theDescription; +- (NSString *)description; +- (void)setComment:(NSString *)theComment; +- (NSString *)comment; +- (void)setCreator:(NSString *)theCreator; +- (NSString *)creator; +- (void)setType:(NSString *)theType; +- (NSString *)type; +- (void)setName:(NSString *)theName; +- (NSString *)name; +- (void)setVisible:(BOOL)isVisible; +- (BOOL)isVisible; +- (void)setPasswordValid:(BOOL)isPasswordValid; +- (BOOL)isPasswordValid; +#if !TARGET_OS_IPHONE +- (void)setHasCustomIcon:(BOOL)hasCustomIcon; +- (BOOL)hasCustomIcon; +#endif +- (void)setAccount:(NSString *)theAccount; +- (NSString *)account; +- (void)setService:(NSString *)theService; +- (NSString *)service; +- (void)setAttribute:(NSString *)theAttribute; +- (NSString *)attribute; +- (void)setSecurityDomain:(NSString *)theSecurityDomain; +- (NSString *)securityDomain; +- (void)setServer:(NSString *)theServer; +- (NSString *)server; +- (void)setAuthenticationType:(SecAuthenticationType)theAuthenticationType; +- (SecAuthenticationType)authenticationType; +- (NSString *)authenticationTypeString; +- (void)setPort:(UInt16)thePort; +- (UInt16)port; +#if !TARGET_OS_IPHONE +- (void)setVolume:(NSString *)theVolume; +- (NSString *)volume; +- (void)setAddress:(NSString *)theAddress; +- (NSString *)address; +- (void)setSignature:(SecAFPServerSignature *)theSignature; +- (SecAFPServerSignature *)signature; +#endif +- (void)setProtocol:(SecProtocolType)theProtocol; +- (SecProtocolType)protocol; +- (NSString *)protocolString; +- (void)setCertificateType:(CSSM_CERT_TYPE)theCertificateType; +- (CSSM_CERT_TYPE)certificateType; +- (void)setCertificateEncoding:(CSSM_CERT_ENCODING)theCertificateEncoding; +- (CSSM_CERT_ENCODING)certificateEncoding; +#if !TARGET_OS_IPHONE +- (void)setCRLType:(CSSM_CRL_TYPE)theCRLType; +- (CSSM_CRL_TYPE)CRLType; +- (NSString *)CRLTypeString; +- (void)setCRLEncoding:(CSSM_CRL_ENCODING)theCRLEncoding; +- (CSSM_CRL_ENCODING)CRLEncoding; +- (NSString *)CRLEncodingString; +- (void)setAlias:(BOOL)isAlias; +- (BOOL)isAlias; +#endif +- (void)remove; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMLiteConnection.h b/Libraries/include/MGMUsers/MGMLiteConnection.h new file mode 100644 index 0000000..0c16777 --- /dev/null +++ b/Libraries/include/MGMUsers/MGMLiteConnection.h @@ -0,0 +1,51 @@ +// +// MGMLiteConnection.h +// MGMUsers +// +// Created by Mr. Gecko on 8/13/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#import +#else +#import +#import +#endif + +#define MGMLiteDebug 0 + +@class MGMLiteResult; + +@interface MGMLiteConnection : NSObject { + sqlite3 *SQLiteConnection; + NSString *path; + BOOL isConnected; + NSCharacterSet *escapeSet; + BOOL logQuery; +} ++ (id)memoryConnection; ++ (id)connectionWithPath:(NSString *)thePath; +- (id)initWithPath:(NSString *)thePath; + +- (sqlite3 *)SQLiteConnection; +- (NSString *)path; + +- (NSString *)errorMessage; +- (int)errorID; + +- (NSString *)escapeData:(NSData *)theData; +- (NSString *)escapeString:(NSString *)theString; +- (NSString *)quoteObject:(id)theObject; +- (NSString *)quoteChar:(const char *)theChar; + +- (BOOL)logQuery; +- (void)setLogQuery:(BOOL)shouldLogQuery; +- (MGMLiteResult *)query:(NSString *)format, ...; +- (MGMLiteResult *)tables; +- (MGMLiteResult *)tablesLike:(NSString *)theName; +- (MGMLiteResult *)columnsFromTable:(NSString *)theTable; +- (int)affectedRows; +- (long long int)insertId; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMLiteResult.h b/Libraries/include/MGMUsers/MGMLiteResult.h new file mode 100644 index 0000000..fced9ad --- /dev/null +++ b/Libraries/include/MGMUsers/MGMLiteResult.h @@ -0,0 +1,42 @@ +// +// MGMLiteResult.h +// MGMUsers +// +// Created by Mr. Gecko on 8/13/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#import +#else +#import +#import +#endif +@class MGMLiteConnection; + +@interface MGMLiteResult : NSObject { + MGMLiteConnection *connection; + sqlite3_stmt *result; + NSArray *columnNames; + int columnCount; +} ++ (id)resultWithConnection:(MGMLiteConnection *)theConnection result:(sqlite3_stmt *)theResult; +- (id)initWithConnection:(MGMLiteConnection *)theConnection result:(sqlite3_stmt *)theResult; + +- (int)dataCount; +- (int)columnCount; +- (NSString *)columnName:(int)theColumn; +- (NSArray *)columnNames; + +- (NSNumber *)integerAtColumn:(int)theColumn; +- (NSNumber *)doubleAtColumn:(int)theColumn; +- (NSString *)stringAtColumn:(int)theColumn; +- (NSData *)dataAtColumn:(int)theColumn; +- (id)objectAtColumn:(int)theColumn; + +- (NSArray *)nextRowAsArray; +- (NSDictionary *)nextRow; +- (int)step; +- (int)reset; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMMD5.h b/Libraries/include/MGMUsers/MGMMD5.h new file mode 100644 index 0000000..87222e6 --- /dev/null +++ b/Libraries/include/MGMUsers/MGMMD5.h @@ -0,0 +1,48 @@ +// +// MGMMD5.h +// +// Created by Mr. Gecko on 1/6/10. +// No Copyright Claimed. Public Domain. +// + +#ifndef _MD_MD5 +#define _MD_MD5 + +#ifdef __NEXT_RUNTIME__ +#import + + +extern NSString * const MDNMD5; + +@interface NSString (MGMMD5) +- (NSString *)MD5; +- (NSString *)pathMD5; +@end +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +char *MD5String(const char *string, int length); +char *MD5File(const char *path); + +#define MD5Length 16 +#define MD5BufferSize 4 + +struct MD5Context { + uint32_t buf[MD5BufferSize]; + uint32_t bits[2]; + unsigned char in[64]; +}; + +void MD5Init(struct MD5Context *context); +void MD5Update(struct MD5Context *context, const unsigned char *buf, unsigned len); +void MD5Final(unsigned char digest[MD5Length], struct MD5Context *context); +void MD5Transform(uint32_t buf[MD5BufferSize], const unsigned char inraw[64]); + +#ifdef __cplusplus +} +#endif + +#endif \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMMDTypes.h b/Libraries/include/MGMUsers/MGMMDTypes.h new file mode 100644 index 0000000..1e181c1 --- /dev/null +++ b/Libraries/include/MGMUsers/MGMMDTypes.h @@ -0,0 +1,100 @@ +// +// MGMMDTypes.h +// +// Created by Mr. Gecko on 2/24/10. +// No Copyright Claimed. Public Domain. +// + +#ifdef __NEXT_RUNTIME__ +#import +#endif + +#define INT64(n) n ## ULL + +#define ROR32(x, b) ((x >> b) | (x << (32 - b))) +#define ROR64(x, b) ((x >> b) | (x << (64 - b))) +#define SHR(x, b) (x >> b) + +#define MDFileReadLength 1048576 + +static const char hexdigits[] = "0123456789abcdef"; + +static const unsigned char MDPadding[128] = +{ + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static uint32_t getu32(const uint8_t *addr) { + return ((uint32_t)addr[0] << 24) + | ((uint32_t)addr[1] << 16) + | ((uint32_t)addr[2] << 8) + | ((uint32_t)addr[3]); +} +static void putu32(uint32_t data, uint8_t *addr) { + addr[0] = (uint8_t)(data >> 24); + addr[1] = (uint8_t)(data >> 16); + addr[2] = (uint8_t)(data >> 8); + addr[3] = (uint8_t)data; +} + +static uint64_t getu64(const uint8_t *addr) { + return ((uint64_t)addr[0] << 56) + | ((uint64_t)addr[1] << 48) + | ((uint64_t)addr[2] << 40) + | ((uint64_t)addr[3] << 32) + | ((uint64_t)addr[4] << 24) + | ((uint64_t)addr[5] << 16) + | ((uint64_t)addr[6] << 8) + | ((uint64_t)addr[7]); +} +static void putu64(uint64_t data, uint8_t *addr) { + addr[0] = (uint8_t)(data >> 56); + addr[1] = (uint8_t)(data >> 48); + addr[2] = (uint8_t)(data >> 40); + addr[3] = (uint8_t)(data >> 32); + addr[4] = (uint8_t)(data >> 24); + addr[5] = (uint8_t)(data >> 16); + addr[6] = (uint8_t)(data >> 8); + addr[7] = (uint8_t)data; +} + +static uint32_t getu32l(const uint8_t *addr) { + return ((uint32_t)addr[0]) + | ((uint32_t)addr[1] << 8) + | ((uint32_t)addr[2] << 16) + | ((uint32_t)addr[3] << 24); +} +static void putu32l(uint32_t data, uint8_t *addr) { + addr[0] = (uint8_t)data; + addr[1] = (uint8_t)(data >> 8); + addr[2] = (uint8_t)(data >> 16); + addr[3] = (uint8_t)(data >> 24); +} + +static uint64_t getu64l(const uint8_t *addr) { + return ((uint64_t)addr[0]) + | ((uint64_t)addr[1] << 8) + | ((uint64_t)addr[2] << 16) + | ((uint64_t)addr[3] << 24) + | ((uint64_t)addr[4] << 32) + | ((uint64_t)addr[5] << 40) + | ((uint64_t)addr[6] << 48) + | ((uint64_t)addr[7] << 56); +} +static void putu64l(uint64_t data, uint8_t *addr) { + addr[0] = (uint8_t)data; + addr[1] = (uint8_t)(data >> 8); + addr[2] = (uint8_t)(data >> 16); + addr[3] = (uint8_t)(data >> 24); + addr[4] = (uint8_t)(data >> 32); + addr[5] = (uint8_t)(data >> 40); + addr[6] = (uint8_t)(data >> 48); + addr[7] = (uint8_t)(data >> 56); +} \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMURLConnectionManager.h b/Libraries/include/MGMUsers/MGMURLConnectionManager.h new file mode 100644 index 0000000..432f650 --- /dev/null +++ b/Libraries/include/MGMUsers/MGMURLConnectionManager.h @@ -0,0 +1,54 @@ +// +// MGMURLConnectionManager.h +// MGMUsers +// +// Created by Mr. Gecko on 7/23/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#import + +extern NSString * const MGMCookie; +extern NSString * const MGMUserAgent; + +extern NSString * const MGMConnectionObject; +extern NSString * const MGMConnectionRequest; +extern NSString * const MGMConnectionOldRequest; +extern NSString * const MGMConnectionResponse; +extern NSString * const MGMConnectionDelegate; +extern NSString * const MGMConnectionDidReceiveResponse; +extern NSString * const MGMConnectionDidReceiveData; +extern NSString * const MGMConnectionWillRedirect; +extern NSString * const MGMConnectionDidFailWithError; +extern NSString * const MGMConnectionDidFinish; +extern NSString * const MGMConnectionInvisible; +extern NSString * const MGMConnectionData; + +@interface MGMURLConnectionManager : NSObject { +@private + NSHTTPCookieStorage *cookieStorage; + NSMutableArray *connections; + NSURLConnection *connection; + NSMutableData *receivedData; + NSString *customUseragent; + NSURLCredential *credentials; +} ++ (id)defaultManager; ++ (id)managerWithCookieStorage:(id)theCookieStorage; +- (id)initWithCookieStorage:(id)theCookieStorage; +- (NSHTTPCookieStorage *)cookieStorage; +- (void)setCredentials:(NSURLCredential *)theCredentials; +- (NSURLCredential *)credentials; +- (void)setCookieStorage:(id)theCookieStorage; +- (NSString *)customUseragent; +- (void)setCustomUseragent:(NSString *)theCustomUseragent; +- (NSData *)synchronousRequest:(NSURLRequest *)theRequest returningResponse:(NSURLResponse **)theResponse error:(NSError **)theError; +- (void)connectionWithRequest:(NSURLRequest *)theRequest delegate:(id)theDelegate; +- (void)connectionWithRequest:(NSURLRequest *)theRequest delegate:(id)theDelegate object:(id)theObject; +- (void)connectionWithRequest:(NSURLRequest *)theRequest delegate:(id)theDelegate didFailWithError:(SEL)didFailWithError didFinish:(SEL)didFinish invisible:(BOOL)isInvisible object:(id)theObject; +- (void)connectionWithRequest:(NSURLRequest *)theRequest delegate:(id)theDelegate didReceiveResponse:(SEL)didReceiveResponse didFailWithError:(SEL)didFailWithError didFinish:(SEL)didFinish invisible:(BOOL)isInvisible object:(id)theObject; +- (void)connectionWithRequest:(NSURLRequest *)theRequest delegate:(id)theDelegate didReceiveResponse:(SEL)didReceiveResponse willRedirect:(SEL)willRedirect didFailWithError:(SEL)didFailWithError didFinish:(SEL)didFinish invisible:(BOOL)isInvisible object:(id)theObject; +- (void)connectionWithRequest:(NSURLRequest *)theRequest delegate:(id)theDelegate didReceiveResponse:(SEL)didReceiveResponse didReceiveData:(SEL)didReceiveData willRedirect:(SEL)willRedirect didFailWithError:(SEL)didFailWithError didFinish:(SEL)didFinish invisible:(BOOL)isInvisible object:(id)theObject; +- (void)cancelCurrent; +- (void)cancelAll; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMUser.h b/Libraries/include/MGMUsers/MGMUser.h new file mode 100644 index 0000000..01fb940 --- /dev/null +++ b/Libraries/include/MGMUsers/MGMUser.h @@ -0,0 +1,66 @@ +// +// MGMUser.h +// MGMUsers +// +// Created by Mr. Gecko on 7/4/10. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + +extern NSString * const MGMUserStartNotification; +extern NSString * const MGMUserDoneNotification; +extern NSString * const MGMUserUpdatedNotification; +extern NSString * const MGMUserID; +extern NSString * const MGMUserName; + +@class MGMUser, MGMKeychainItem, MGMHTTPCookieStorage; + +@protocol MGMUserDelegate +- (BOOL)isUserDone:(MGMUser *)theUser; +@end + +@interface MGMUser : NSObject { +@private + id delegate; + MGMKeychainItem *keychainItem; + NSMutableDictionary *settings; +} ++ (NSString *)applicationSupportPath; ++ (NSString *)cachePath; ++ (NSString *)cookieStoragePath; ++ (MGMHTTPCookieStorage *)cookieStorage; ++ (NSMutableDictionary *)usersPlist; ++ (NSArray *)users; ++ (NSArray *)userNames; ++ (NSArray *)lastUsers; ++ (MGMUser *)userWithName:(NSString *)theName; ++ (MGMUser *)userWithID:(NSString *)theID; ++ (MGMUser *)createUserWithName:(NSString *)theName password:(NSString *)thePassword; +- (id)initWithSettings:(NSDictionary *)theSettings; +- (BOOL)isEqual:(id)theObject; +- (id)delegate; +- (void)setDelegate:(id)theDelegate; +- (MGMKeychainItem *)keychainItem; +- (void)start; +- (BOOL)isStarted; +- (id)settingForKey:(NSString *)theKey; +- (void)setSetting:(id)theSetting forKey:(NSString *)theKey; +- (BOOL)boolForKey:(NSString *)theKey; +- (void)setBool:(BOOL)theBool forKey:(NSString *)theKey; +- (NSString *)settingsPath; +- (NSDictionary *)settings; +- (void)registerSettings:(NSDictionary *)theSettings; +- (NSString *)supportPath; +- (NSString *)cachePath; +- (NSString *)password; +- (void)setPassword:(NSString *)thePassword; +- (NSString *)cookieStoragePath; +- (MGMHTTPCookieStorage *)cookieStorage; +- (void)done; +- (void)remove; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMUsers.h b/Libraries/include/MGMUsers/MGMUsers.h new file mode 100644 index 0000000..117891b --- /dev/null +++ b/Libraries/include/MGMUsers/MGMUsers.h @@ -0,0 +1,35 @@ +/* + * MGMUsers.h + * MGMUsers + * + * Created by Mr. Gecko on 4/14/10. + * Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ + * + */ + +#if TARGET_OS_IPHONE +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#else +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#endif \ No newline at end of file diff --git a/Libraries/include/MGMUsers/MGMWhitePages.h b/Libraries/include/MGMUsers/MGMWhitePages.h new file mode 100644 index 0000000..aa1766d --- /dev/null +++ b/Libraries/include/MGMUsers/MGMWhitePages.h @@ -0,0 +1,36 @@ +// +// MGMWhitePages.h +// MGMUsers +// +// Created by Mr. Gecko on 9/2/09. +// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/ +// + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + +extern NSString * const MGMWPDelegate; +extern NSString * const MGMWPDidFindInfo; +extern NSString * const MGMWPDidFailWithError; +extern NSString * const MGMWPPhoneNumber; +extern NSString * const MGMWPName; +extern NSString * const MGMWPAddress; +extern NSString * const MGMWPLocation; +extern NSString * const MGMWPZip; +extern NSString * const MGMWPLatitude; +extern NSString * const MGMWPLongitude; + +@class MGMURLConnectionManager; + +@interface MGMWhitePages : NSObject { + MGMURLConnectionManager *connectionManager; + NSDictionary *states; + BOOL lookingup; +} +- (void)cancelAll; +- (void)reverseLookup:(NSString *)thePhoneNumber delegate:(id)theDelegate; +- (void)reverseLookup:(NSString *)thePhoneNumber delegate:(id)theDelegate didFailWithError:(SEL)didFailWithError didFindInfo:(SEL)didFindInfo; +@end \ No newline at end of file diff --git a/Libraries/include/MGMUsers/sqlite3.h b/Libraries/include/MGMUsers/sqlite3.h new file mode 100644 index 0000000..6511a6e --- /dev/null +++ b/Libraries/include/MGMUsers/sqlite3.h @@ -0,0 +1,5914 @@ +/* +** 2001 September 15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This header file defines the interface that the SQLite library +** presents to client programs. If a C-function, structure, datatype, +** or constant definition does not appear in this file, then it is +** not a published API of SQLite, is subject to change without +** notice, and should not be referenced by programs that use SQLite. +** +** Some of the definitions that are in this file are marked as +** "experimental". Experimental interfaces are normally new +** features recently added to SQLite. We do not anticipate changes +** to experimental interfaces but reserve the right to make minor changes +** if experience from use "in the wild" suggest such changes are prudent. +** +** The official C-language API documentation for SQLite is derived +** from comments in this file. This file is the authoritative source +** on how SQLite interfaces are suppose to operate. +** +** The name of this file under configuration management is "sqlite.h.in". +** The makefile makes some minor changes to this file (such as inserting +** the version number) and changes its name to "sqlite3.h" as +** part of the build process. +*/ +#ifndef _SQLITE3_H_ +#define _SQLITE3_H_ +#include /* Needed for the definition of va_list */ + +/* +** Make sure we can call this stuff from C++. +*/ +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Add the ability to override 'extern' +*/ +#ifndef SQLITE_EXTERN +# define SQLITE_EXTERN extern +#endif + +#ifndef SQLITE_API +# define SQLITE_API +#endif + + +/* +** These no-op macros are used in front of interfaces to mark those +** interfaces as either deprecated or experimental. New applications +** should not use deprecated interfaces - they are support for backwards +** compatibility only. Application writers should be aware that +** experimental interfaces are subject to change in point releases. +** +** These macros used to resolve to various kinds of compiler magic that +** would generate warning messages when they were used. But that +** compiler magic ended up generating such a flurry of bug reports +** that we have taken it all out and gone back to using simple +** noop macros. +*/ +#define SQLITE_DEPRECATED +#define SQLITE_EXPERIMENTAL + +/* +** Ensure these symbols were not defined by some previous header file. +*/ +#ifdef SQLITE_VERSION +# undef SQLITE_VERSION +#endif +#ifdef SQLITE_VERSION_NUMBER +# undef SQLITE_VERSION_NUMBER +#endif + +/* +** CAPI3REF: Compile-Time Library Version Numbers +** +** ^(The [SQLITE_VERSION] C preprocessor macro in the sqlite3.h header +** evaluates to a string literal that is the SQLite version in the +** format "X.Y.Z" where X is the major version number (always 3 for +** SQLite3) and Y is the minor version number and Z is the release number.)^ +** ^(The [SQLITE_VERSION_NUMBER] C preprocessor macro resolves to an integer +** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z are the same +** numbers used in [SQLITE_VERSION].)^ +** The SQLITE_VERSION_NUMBER for any given release of SQLite will also +** be larger than the release from which it is derived. Either Y will +** be held constant and Z will be incremented or else Y will be incremented +** and Z will be reset to zero. +** +** Since version 3.6.18, SQLite source code has been stored in the +** Fossil configuration management +** system. ^The SQLITE_SOURCE_ID macro evalutes to +** a string which identifies a particular check-in of SQLite +** within its configuration management system. ^The SQLITE_SOURCE_ID +** string contains the date and time of the check-in (UTC) and an SHA1 +** hash of the entire source tree. +** +** See also: [sqlite3_libversion()], +** [sqlite3_libversion_number()], [sqlite3_sourceid()], +** [sqlite_version()] and [sqlite_source_id()]. +*/ +#define SQLITE_VERSION "3.7.0.1" +#define SQLITE_VERSION_NUMBER 3007000 +#define SQLITE_SOURCE_ID "2010-08-04 12:31:11 042a1abb030a0711386add7eb6e10832cc8b0f57" + +/* +** CAPI3REF: Run-Time Library Version Numbers +** KEYWORDS: sqlite3_version, sqlite3_sourceid +** +** These interfaces provide the same information as the [SQLITE_VERSION], +** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros +** but are associated with the library instead of the header file. ^(Cautious +** programmers might include assert() statements in their application to +** verify that values returned by these interfaces match the macros in +** the header, and thus insure that the application is +** compiled with matching library and header files. +** +**