[CalendarServer-changes] [11562] CalendarServer/trunk/txdav/carddav

source_changes at macosforge.org source_changes at macosforge.org
Sun Jul 28 19:16:44 PDT 2013


Revision: 11562
          http://trac.calendarserver.org//changeset/11562
Author:   gaya at apple.com
Date:     2013-07-28 19:16:44 -0700 (Sun, 28 Jul 2013)
Log Message:
-----------
Shared groups: Delete of sharee group unshares. Addressbook and group sharing now use only urn:uuid:+UID calendar addresses. Add & fix CalDAVTester sharing tests.

Modified Paths:
--------------
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/4.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/4.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/5.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/3.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/3.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/15a.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/16.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/4.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/5.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/6.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/3.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/6.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/4.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/3.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/6.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/addressbook/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml
    CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/1.xml
    CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/2.xml
    CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/3.xml
    CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/4.xml
    CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/5.xml
    CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/6.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-unshare.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
    CalendarServer/trunk/twistedcaldav/resource.py
    CalendarServer/trunk/twistedcaldav/sharing.py
    CalendarServer/trunk/twistedcaldav/storebridge.py
    CalendarServer/trunk/txdav/carddav/datastore/sql.py
    CalendarServer/trunk/txdav/carddav/iaddressbookstore.py

Added Paths:
-----------
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/gAddressBook.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/10.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/8.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/setup/9.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/1.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/2.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/3.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/4.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/g123.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/2.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/3.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/4.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/1.xml
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/2.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-access.xml

Removed Paths:
-------------
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/7.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/8.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/g567.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/acls/
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.vcf
    CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedelete/
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-acl.xml

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/addressbook/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>User2s read-write Shared Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/addressbook/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email1:</href>
+  <href xmlns='DAV:'>$cuaddrurn1:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath2:</href>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/addressbook/4.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/addressbook/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>User2s Read-Only Shared Address Book</CS:summary>
         <CS:read/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/groups/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>Read-Write Group123</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/groups/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email1:</href>
+  <href xmlns='DAV:'>$cuaddrurn1:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath2:/g123.vcf</href>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/groups/4.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>Read-Only Group345</CS:summary>
         <CS:read/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/5.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/groups/5.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/groups/5.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email1:</href>
+  <href xmlns='DAV:'>$cuaddrurn1:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath2:/g345.vcf</href>

Deleted: CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/7.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/setup/7.vcf	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/7.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,2010 +0,0 @@
-BEGIN:VCARD
-VERSION:3.0
-N:Inc.;Test;;;
-FN:Test Inc.
-ORG:Test Inc.;
-EMAIL;type=INTERNET;type=WORK;type=pref:testinc_sf at example.com
-TEL;type=WORK;type=pref:777-777-7777
-item1.ADR;type=WORK;type=pref:;;3 TV Street;San Francisco;California;99999;US
-item1.X-ABADR:us
-NOTE: Company with picture
-PHOTO;BASE64:
-  /9j/4AAQSkZJRgABAQAAAQABAAD/7QA8UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAB8cAVoAAx
-  sl RxwCAAACAAIcAhkAC1Bob3RvIEJvb3RoAP/iG6hJQ0NfUFJPRklMRQABAQAAG5hhcHBsAgA
-  AAG1u dHJSR0IgWFlaIAfaAAEAEwAJADEABGFjc3BBUFBMAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-  AAAAAAD2 1gABAAAAANMtYXBwbFYcEOZVYuhIRg5LwLIi62wAAAAAAAAAAAAAAAAAAAAAAAAAA
-  AAAAAAAAAAA AAAAEXJYWVoAAAFQAAAAFGdYWVoAAAFkAAAAFGJYWVoAAAF4AAAAFHd0cHQAAA
-  GMAAAAFGNoYWQA AAGgAAAALHJUUkMAAAHMAAAIDGdUUkMAAAnYAAAIDGJUUkMAABHkAAAIDGF
-  hcmcAABnwAAAAIGFh Z2cAABoQAAAAIGFhYmcAABowAAAAIHZjZ3QAABpQAAAAMG5kaW4AABqA
-  AAAAOGRlc2MAABq4AAAA ZGRzY20AABscAAAALm1tb2QAABtMAAAAKGNwcnQAABt0AAAAJFhZW
-  iAAAAAAAAB7vQAAQXsAAAJL WFlaIAAAAAAAAFYqAACp0AAAFF9YWVogAAAAAAAAJO8AABS1AA
-  C8glhZWiAAAAAAAADz2AABAAAA ARYIc2YzMgAAAAAAAQu3AAAFlv//81cAAAcpAAD91///+7f
-  ///2mAAAD2gAAwPZjdXJ2AAAAAAAA BAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUA
-  SgBPAFQAWQBeAGMAaABtAHIAdwB8AIEA hgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0
-  ADVANoA4ADlAOoA8AD1APsBAQEHAQwBEgEY AR4BJQErATEBOAE+AUUBSwFSAVkBYAFmAW0BdQ
-  F8AYMBigGSAZkBoQGoAbABuAHAAcgB0AHYAeAB 6QHxAfoCAgILAhQCHAIlAi4CNwJAAkoCUwJ
-  cAmYCcAJ5AoMCjQKXAqECqwK1Ar8CygLUAt8C6gL0 Av8DCgMVAyADKwM3A0IDTQNZA2UDcAN8
-  A4gDlAOgA6wDuQPFA9ID3gPrA/gEBAQRBB4ELAQ5BEYE VARhBG8EfASKBJgEpgS0BMIE0QTfB
-  O4E/AULBRoFKAU3BUcFVgVlBXQFhAWTBaMFswXDBdMF4wXz BgMGFAYkBjUGRQZWBmcGeAaJBp
-  oGqwa9Bs4G4AbyBwMHFQcnBzkHTAdeB3AHgweWB6gHuwfOB+EH 9AgICBsILwhCCFYIagh+CJI
-  Ipgi6CM4I4wj3CQwJIQk2CUsJYAl1CYoJoAm1CcsJ4An2CgwKIgo5 Ck8KZQp8CpIKqQrACtcK
-  7gsFCx0LNAtLC2MLewuTC6sLwwvbC/MMDAwkDD0MVgxuDIcMoQy6DNMM 7Q0GDSANOg1UDW4Ni
-  A2iDbwN1w3xDgwOJw5CDl0OeA6TDq8Oyg7mDwIPHg86D1YPcg+OD6sPyA/k EAEQHhA7EFgQdh
-  CTELEQzhDsEQoRKBFGEWQRgxGhEcAR3xH+Eh0SPBJbEnoSmhK5EtkS+RMZEzkT WRN6E5oTuxP
-  bE/wUHRQ+FF8UgRSiFMQU5RUHFSkVSxVtFZAVshXVFfcWGhY9FmAWgxanFsoW7hcS FzUXWRd9
-  F6IXxhfqGA8YNBhZGH0YoxjIGO0ZExk4GV4ZhBmqGdAZ9hodGkMaahqQGrca3hsGGy0b VBt8G
-  6MbyxvzHBscQxxsHJQcvRzmHQ4dNx1gHYodsx3dHgYeMB5aHoQerh7YHwMfLR9YH4Mfrh/Z IA
-  QgMCBbIIcgsyDeIQohNyFjIY8hvCHpIhUiQiJwIp0iyiL4IyUjUyOBI68j3SQMJDokaSSXJMYk
-  9SUkJVQlgyWzJeImEiZCJnImoybTJwMnNCdlJ5Ynxyf4KCooWyiNKL4o8CkiKVUphym5KewqHy
-  pS KoUquCrrKx4rUiuGK7or7iwiLFYsiiy/LPQtKS1eLZMtyC39LjMuaS6eLtQvCy9BL3cvri/
-  kMBsw UjCJMMEw+DEwMWcxnzHXMg8ySDKAMrgy8TMqM2MznDPVNA80SDSCNLw09jUwNWo1pTXf
-  Nho2VTaQ Nss3BjdCN343uTf1ODE4bTiqOOY5IzlgOZ052joXOlQ6kjrPOw07SzuJO8c8BjxEP
-  IM8wj0BPUA9 fz2/Pf4+Pj5+Pr4+/j8/P38/wEAAQEFAgkDEQQVBR0GIQcpCDEJOQpFC00MWQ1
-  hDm0PeRCFEZUSo ROxFMEV0RbhF/EZARoVGykcOR1NHmUfeSCNIaUivSPVJO0mBScdKDkpVSpt
-  K4ksqS3FLuEwATEhM kEzYTSBNaE2xTfpOQk6MTtVPHk9nT7FP+1BFUI9Q2VEkUW5RuVIEUk9S
-  mlLlUzFTfFPIVBRUYFSt VPlVRlWSVd9WLFZ6VsdXFFdiV7BX/lhMWJpY6Vk4WYZZ1VokWnRaw
-  1sTW2NbslwDXFNco1z0XURd lV3mXjdeiV7aXyxffl/QYCJgdGDHYRlhbGG/YhJiZWK5YwxjYG
-  O0ZAhkXGSxZQVlWmWvZgRmWWav ZwRnWmewaAZoXGiyaQlpX2m2ag1qZGq8axNra2vDbBtsc2z
-  LbSNtfG3Vbi5uh27gbzpvk2/tcEdw oXD7cVZxsHILcmZywXMcc3hz03QvdIt053VDdaB1/HZZ
-  drZ3E3dwd854K3iJeOd5RXmjegJ6YHq/ ex57fXvcfDx8m3z7fVt9u34bfnx+3H89f55//4Bgg
-  MKBI4GFgeeCSYKrgw6DcIPThDaEmYT8hWCF w4YnhouG74dUh7iIHYiBiOaJTImxihaKfIrii0
-  iLrowUjHuM4o1Ija+OF45+juWPTY+1kB2QhZDu kVaRv5IokpGS+pNkk82UN5ShlQuVdZXglkq
-  WtZcgl4uX95himM6ZOpmmmhKafprrm1ebxJwxnJ+d DJ15neeeVZ7DnzGfoKAPoH2g7KFbocui
-  OqKqoxqjiqP6pGqk26VMpbymLqafpxCngqf0qGWo2KlK qbyqL6qiqxWriKv7rG+s461WrcuuP
-  66zryivnbARsIew/LFxseeyXbLTs0mzv7Q2tK21JLWbthK2 ibcBt3m38bhpuOG5WrnSuku6xL
-  s+u7e8MLyqvSS9nr4ZvpO/Dr+JwATAf8D6wXbB8cJtwunDZsPi xF/E3MVZxdbGU8bRx07HzMh
-  KyMnJR8nGykXKxMtDy8LMQszBzUHNwc5CzsLPQ8/D0ETQxtFH0cjS StLM007T0NRT1NbVWNXb
-  1l7W4tdl1+nYbdjx2XXZ+tp/2wPbiNwO3JPdGd2e3iTeqt8x37fgPuDF 4Uzh0+Ja4uLjauPy5
-  HrlAuWL5hPmnOcl56/oOOjC6Uzp1upg6urrdev/7IrtFu2h7izuuO9E79Dw XPDp8XXyAvKP8x
-  zzqvQ39MX1U/Xh9m/2/veM+Bv4qvk5+cn6Wfro+3j8CPyZ/Sn9uv5L/tz/bmN1 cnYAAAAAAAA
-  EAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0A cgB3AHwA
-  gQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2gDgAOUA6gDwAPUA+wEB AQcBD
-  AESARgBHgElASsBMQE4AT4BRQFLAVIBWQFgAWYBbQF1AXwBgwGKAZIBmQGhAagBsAG4AcAB yA
-  HQAdgB4AHpAfEB+gICAgsCFAIcAiUCLgI3AkACSgJTAlwCZgJwAnkCgwKNApcCoQKrArUCvwLK
-  AtQC3wLqAvQC/wMKAxUDIAMrAzcDQgNNA1kDZQNwA3wDiAOUA6ADrAO5A8UD0gPeA+sD+AQEBB
-  EE HgQsBDkERgRUBGEEbwR8BIoEmASmBLQEwgTRBN8E7gT8BQsFGgUoBTcFRwVWBWUFdAWEBZM
-  FowWz BcMF0wXjBfMGAwYUBiQGNQZFBlYGZwZ4BokGmgarBr0GzgbgBvIHAwcVBycHOQdMB14H
-  cAeDB5YH qAe7B84H4Qf0CAgIGwgvCEIIVghqCH4IkgimCLoIzgjjCPcJDAkhCTYJSwlgCXUJi
-  gmgCbUJywng CfYKDAoiCjkKTwplCnwKkgqpCsAK1wruCwULHQs0C0sLYwt7C5MLqwvDC9sL8w
-  wMDCQMPQxWDG4M hwyhDLoM0wztDQYNIA06DVQNbg2IDaINvA3XDfEODA4nDkIOXQ54DpMOrw7
-  KDuYPAg8eDzoPVg9y D44Pqw/ID+QQARAeEDsQWBB2EJMQsRDOEOwRChEoEUYRZBGDEaERwBHf
-  Ef4SHRI8ElsSehKaErkS 2RL5ExkTORNZE3oTmhO7E9sT/BQdFD4UXxSBFKIUxBTlFQcVKRVLF
-  W0VkBWyFdUV9xYaFj0WYBaD FqcWyhbuFxIXNRdZF30XohfGF+oYDxg0GFkYfRijGMgY7RkTGT
-  gZXhmEGaoZ0Bn2Gh0aQxpqGpAa txreGwYbLRtUG3wboxvLG/McGxxDHGwclBy9HOYdDh03HWA
-  dih2zHd0eBh4wHloehB6uHtgfAx8t H1gfgx+uH9kgBCAwIFsghyCzIN4hCiE3IWMhjyG8Ieki
-  FSJCInAinSLKIvgjJSNTI4EjryPdJAwk OiRpJJckxiT1JSQlVCWDJbMl4iYSJkImciajJtMnA
-  yc0J2UnlifHJ/goKihbKI0ovijwKSIpVSmH Kbkp7CofKlIqhSq4KusrHitSK4YruivuLCIsVi
-  yKLL8s9C0pLV4tky3ILf0uMy5pLp4u1C8LL0Ev dy+uL+QwGzBSMIkwwTD4MTAxZzGfMdcyDzJ
-  IMoAyuDLxMyozYzOcM9U0DzRINII0vDT2NTA1ajWl Nd82GjZVNpA2yzcGN0I3fje5N/U4MTht
-  OKo45jkjOWA5nTnaOhc6VDqSOs87DTtLO4k7xzwGPEQ8 gzzCPQE9QD1/Pb89/j4+Pn4+vj7+P
-  z8/fz/AQABAQUCCQMRBBUFHQYhBykIMQk5CkULTQxZDWEOb Q95EIURlRKhE7EUwRXRFuEX8Rk
-  BGhUbKRw5HU0eZR95II0hpSK9I9Uk7SYFJx0oOSlVKm0riSypL cUu4TABMSEyQTNhNIE1oTbF
-  N+k5CToxO1U8eT2dPsU/7UEVQj1DZUSRRblG5UgRST1KaUuVTMVN8 U8hUFFRgVK1U+VVGVZJV
-  31YsVnpWx1cUV2JXsFf+WExYmljpWThZhlnVWiRadFrDWxNbY1uyXANc U1yjXPRdRF2VXeZeN
-  16JXtpfLF9+X9BgImB0YMdhGWFsYb9iEmJlYrljDGNgY7RkCGRcZLFlBWVa Za9mBGZZZq9nBG
-  daZ7BoBmhcaLJpCWlfabZqDWpkarxrE2tra8NsG2xzbMttI218bdVuLm6HbuBv Om+Tb+1wR3C
-  hcPtxVnGwcgtyZnLBcxxzeHPTdC90i3TndUN1oHX8dll2tncTd3B3zngreIl453lF eaN6Anpg
-  er97Hnt9e9x8PHybfPt9W327fht+fH7cfz1/nn//gGCAwoEjgYWB54JJgquDDoNwg9OE NoSZh
-  PyFYIXDhieGi4bvh1SHuIgdiIGI5olMibGKFop8iuKLSIuujBSMe4zijUiNr44Xjn6O5Y9N j7
-  WQHZCFkO6RVpG/kiiSkZL6k2STzZQ3lKGVC5V1leCWSpa1lyCXi5f3mGKYzpk6maaaEpp+muub
-  V5vEnDGcn50MnXmd555VnsOfMZ+goA+gfaDsoVuhy6I6oqqjGqOKo/qkaqTbpUylvKYupp+nEK
-  eC p/SoZajYqUqpvKovqqKrFauIq/usb6zjrVaty64/rrOvKK+dsBGwh7D8sXGx57JdstOzSbO
-  /tDa0 rbUktZu2EraJtwG3ebfxuGm44blaudK6S7rEuz67t7wwvKq9JL2evhm+k78Ov4nABMB/
-  wPrBdsHx wm3C6cNmw+LEX8TcxVnF1sZTxtHHTsfMyErIyclHycbKRcrEy0PLwsxCzMHNQc3Bz
-  kLOws9Dz8PQ RNDG0UfRyNJK0szTTtPQ1FPU1tVY1dvWXtbi12XX6dht2PHZddn62n/bA9uI3A
-  7ck90Z3Z7eJN6q 3zHft+A+4MXhTOHT4lri4uNq4/LkeuUC5YvmE+ac5yXnr+g46MLpTOnW6mD
-  q6ut16//siu0W7aHu LO6470Tv0PBc8OnxdfIC8o/zHPOq9Df0xfVT9eH2b/b+94z4G/iq+Tn5
-  yfpZ+uj7ePwI/Jn9Kf26 /kv+3P9uY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AM
-  gA3ADsAQABFAEoATwBUAFkA XgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtw
-  C8AMEAxgDLANAA1QDaAOAA5QDq APAA9QD7AQEBBwEMARIBGAEeASUBKwExATgBPgFFAUsBUgF
-  ZAWABZgFtAXUBfAGDAYoBkgGZAaEB qAGwAbgBwAHIAdAB2AHgAekB8QH6AgICCwIUAhwCJQIu
-  AjcCQAJKAlMCXAJmAnACeQKDAo0ClwKh AqsCtQK/AsoC1ALfAuoC9AL/AwoDFQMgAysDNwNCA
-  00DWQNlA3ADfAOIA5QDoAOsA7kDxQPSA94D 6wP4BAQEEQQeBCwEOQRGBFQEYQRvBHwEigSYBK
-  YEtATCBNEE3wTuBPwFCwUaBSgFNwVHBVYFZQV0 BYQFkwWjBbMFwwXTBeMF8wYDBhQGJAY1BkU
-  GVgZnBngGiQaaBqsGvQbOBuAG8gcDBxUHJwc5B0wH XgdwB4MHlgeoB7sHzgfhB/QICAgbCC8I
-  QghWCGoIfgiSCKYIugjOCOMI9wkMCSEJNglLCWAJdQmK CaAJtQnLCeAJ9goMCiIKOQpPCmUKf
-  AqSCqkKwArXCu4LBQsdCzQLSwtjC3sLkwurC8ML2wvzDAwM JAw9DFYMbgyHDKEMugzTDO0NBg
-  0gDToNVA1uDYgNog28DdcN8Q4MDicOQg5dDngOkw6vDsoO5g8C Dx4POg9WD3IPjg+rD8gP5BA
-  BEB4QOxBYEHYQkxCxEM4Q7BEKESgRRhFkEYMRoRHAEd8R/hIdEjwS WxJ6EpoSuRLZEvkTGRM5
-  E1kTehOaE7sT2xP8FB0UPhRfFIEUohTEFOUVBxUpFUsVbRWQFbIV1RX3 FhoWPRZgFoMWpxbKF
-  u4XEhc1F1kXfReiF8YX6hgPGDQYWRh9GKMYyBjtGRMZOBleGYQZqhnQGfYa HRpDGmoakBq3Gt
-  4bBhstG1QbfBujG8sb8xwbHEMcbByUHL0c5h0OHTcdYB2KHbMd3R4GHjAeWh6E Hq4e2B8DHy0
-  fWB+DH64f2SAEIDAgWyCHILMg3iEKITchYyGPIbwh6SIVIkIicCKdIsoi+CMlI1Mj gSOvI90k
-  DCQ6JGkklyTGJPUlJCVUJYMlsyXiJhImQiZyJqMm0ycDJzQnZSeWJ8cn+CgqKFsojSi+ KPApI
-  ilVKYcpuSnsKh8qUiqFKrgq6yseK1Irhiu6K+4sIixWLIosvyz0LSktXi2TLcgt/S4zLmku ni
-  7ULwsvQS93L64v5DAbMFIwiTDBMPgxMDFnMZ8x1zIPMkgygDK4MvEzKjNjM5wz1TQPNEg0gjS8
-  NPY1MDVqNaU13zYaNlU2kDbLNwY3Qjd+N7k39TgxOG04qjjmOSM5YDmdOdo6FzpUOpI6zzsNO0
-  s7 iTvHPAY8RDyDPMI9AT1APX89vz3+Pj4+fj6+Pv4/Pz9/P8BAAEBBQIJAxEEFQUdBiEHKQgx
-  CTkKR QtNDFkNYQ5tD3kQhRGVEqETsRTBFdEW4RfxGQEaFRspHDkdTR5lH3kgjSGlIr0j1STtJ
-  gUnHSg5K VUqbSuJLKktxS7hMAExITJBM2E0gTWhNsU36TkJOjE7VTx5PZ0+xT/tQRVCPUNlRJ
-  FFuUblSBFJP UppS5VMxU3xTyFQUVGBUrVT5VUZVklXfVixWelbHVxRXYlewV/5YTFiaWOlZOF
-  mGWdVaJFp0WsNb E1tjW7JcA1xTXKNc9F1EXZVd5l43Xole2l8sX35f0GAiYHRgx2EZYWxhv2I
-  SYmViuWMMY2BjtGQI ZFxksWUFZVplr2YEZllmr2cEZ1pnsGgGaFxosmkJaV9ptmoNamRqvGsT
-  a2trw2wbbHNsy20jbXxt 1W4ubodu4G86b5Nv7XBHcKFw+3FWcbByC3JmcsFzHHN4c9N0L3SLd
-  Od1Q3Wgdfx2WXa2dxN3cHfO eCt4iXjneUV5o3oCemB6v3see3173Hw8fJt8+31bfbt+G358ft
-  x/PX+ef/+AYIDCgSOBhYHngkmC q4MOg3CD04Q2hJmE/IVghcOGJ4aLhu+HVIe4iB2IgYjmiUy
-  JsYoWinyK4otIi66MFIx7jOKNSI2v jheOfo7lj02PtZAdkIWQ7pFWkb+SKJKRkvqTZJPNlDeU
-  oZULlXWV4JZKlrWXIJeLl/eYYpjOmTqZ ppoSmn6a65tXm8ScMZyfnQydeZ3nnlWew58xn6CgD
-  6B9oOyhW6HLojqiqqMao4qj+qRqpNulTKW8 pi6mn6cQp4Kn9KhlqNipSqm8qi+qoqsVq4ir+6
-  xvrOOtVq3Lrj+us68or52wEbCHsPyxcbHnsl2y 07NJs7+0NrSttSS1m7YStom3Abd5t/G4abj
-  huVq50rpLusS7Pru3vDC8qr0kvZ6+Gb6Tvw6/icAE wH/A+sF2wfHCbcLpw2bD4sRfxNzFWcXW
-  xlPG0cdOx8zISsjJyUfJxspFysTLQ8vCzELMwc1BzcHO Qs7Cz0PPw9BE0MbRR9HI0krSzNNO0
-  9DUU9TW1VjV29Ze1uLXZdfp2G3Y8dl12fraf9sD24jcDtyT 3Rndnt4k3qrfMd+34D7gxeFM4d
-  PiWuLi42rj8uR65QLli+YT5pznJeev6DjowulM6dbqYOrq63Xr /+yK7Rbtoe4s7rjvRO/Q8Fz
-  w6fF18gLyj/Mc86r0N/TF9VP14fZv9v73jPgb+Kr5OfnJ+ln66Pt4 /Aj8mf0p/br+S/7c/25w
-  YXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAALA3BhcmEAAAAAAAMA AAACZmYAAPKnAAANW
-  QAAE9AAAAsDcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACwN2Y2d0 AAAAAAAAAAEAAQ
-  AAAAAAAAABAAAAAQAAAAAAAAABAAAAAQAAAAAAAAABAABuZGluAAAAAAAAADAA AKPAAABXwAA
-  ASsAAAJ5AAAAlQAAAEwAAAFBAAABUQAACMzMAAjMzAAIzM2Rlc2MAAAAAAAAACkNp bmVtYSBI
-  RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAA
-  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAc AE
-  MAaQBuAGUAbQBhACAASABEAABtbW9kAAAAAAAABhAAAJIjAgAqqcBCT4AAAAAAAAAAAAAAAAAA
-  AAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTAA/+EAQEV4aWYAAE1NACoAAA
-  AI AAGHaQAEAAAAAQAAABoAAAAAAAKgAgAEAAAAAQAAAoCgAwAEAAAAAQAAAeAAAAAA/9sAQwA
-  CAgIC AgECAgICAgICAwMGBAMDAwMHBQUEBggHCAgIBwgICQoNCwkJDAoICAsPCwwNDg4ODgkL
-  EBEPDhEN Dg4O/9sAQwECAgIDAwMGBAQGDgkICQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OD
-  g4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4O/8AAEQgB4AKAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQ
-  EBAAAAAAAAAAAB AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhN
-  RYQcicRQygZGhCCNC scEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RV
-  VldYWVpjZGVmZ2hpanN0 dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4u
-  brCw8TFxsfIycrS09TV1tfY 2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQ
-  EAAAAAAAABAgMEBQYHCAkKC//E ALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXE
-  TIjKBCBRCkaGxwQkjM1LwFWJy0QoW JDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZX
-  WFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWG h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5u
-  sLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp 6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A/Ie6uZ
-  LZoIYXSSFWZhjkgn1NZS7Y4I4yQS5woHUnP+Na MsLq7qIXfaMN22nrTWmbzIWeOMzBmckLxk+
-  gr8+hZLRH9Z18KqM3KhBK/wB339SvFbQrNGluD50T ESbj96QHjHHT29qeG3hT5bIQ/QnoQc5+
-  lLayrFJuBUqSWb1PsD606OJriMIiFwpLZA6nv9aqTd9T PDQlBuNlyteX5l3yTvExmWMFjGjbS
-  wORknionheOeFHDNHHGVyvBIPpke9SWrJJp7XJjdCj7QrHI DdTx79qhfe8yF43TswJ556CsVe
-  7TOujOMk5T1b2a0/4P4knkhYYpX+WM5wpPLDtiro+S2AEqMpcP tJ5OOPTjipZGtBYxwLcKzxK
-  FZjkhjnkj0A6VXnaFEa3KjeAfmLHll5OPwrJSctzahOM1zTXlr26f 0hk8iCYCVGcRqVBU4ySe
-  vTp2pYrkRWwhijf/AFo+Y/wDqc+vNVgPtE8QY5LMNuOy46/gakjAdfOa VDGSRu7buw/OrcY2s
-  zOc6DlyzfL2/r/gFuaWzkib93I85kZyScDnv+lRbBFYi6iuVE44ZCvKhuo+ tU3SYNC/lERwhV
-  nXbycnOKfI5iu1yI2Z3JAK5XCn0pKFtEzCbpxg47rzas/LYfbWtotvHbxyOpLk M3ufT8KhY2q
-  zpGqzOrEklTyxHA7dKgaaJpt5+RnLeWoHOewq8lqy6bFNNxuAxn+PP8Q9hVyvF+89 yeWMZKHM
-  9dkun43IzEtveq8b5IXdDIP4hjmlDKvlvETvRQoOPXmmTpDC6qsglOSAy5wABn9al8pX 2BiI/
-  l3Kw/rS0aTZ2wjGcWra9dOnn1J2kkmuVeY7nmYvImMY/uipmVv7QYbvNlOQcDA9DT2SBZys gE
-  gLsQ2/G4AduDVgNbLIk+/y1VVDRHJZuOSD+VYOVtkd9GEqauruJUt3QXscZieVHbaXQ42rj5jU
-  gtiqQBra4WJUZt2RwW/+tUhVTEv2dgiIjIzH+Jc/zzUKwSN8gcyHesZBORuOTxSb1vsTWu5c83
-  Ze fT0CK2NytuFOCAoYMOpJOP5VVuYLeLWY4nR/JbkgnlsjqPbNaEUUn9pBY5Nq43ynHCsoPFU
-  mE11J GDJHLM5CxqUx26dKqMnzb6HHUjJVZRcvdtuPsZrpLee7eMwCOQ7kdeST0I9qqJMG0Z1U
-  Au0gOQeB k/NT4nJmW3uGZU34I6cY6n2FVot88oQwi3UDa7MOhxnn61ooq7bOCNOFObdR6rrbd
-  FrdNDFJCu4h ZMwZHQdzUxluC5ijmiETHccjOCKbaW1ybR2mjwu7y3DDLKx6CoYU3/ZpJy0aJE
-  yOgX5icnBz071L 5Xc7FHC1YP2cb37atefYltoZbefa0sKJJnJwTkZ+lOhSe1v7a4BDRupywXj
-  nI2/U0yGTyFikJVZj 91X+br+FaG95VjXI/wBWcpj/AD9aU+a77M6amAnUklF+71v0+5Ic+nH7
-  RB5S/Zl+64kOTHxwD79a 6OGOKz0xGRxFLCqou/n5S2effr+dV0s2uAkCy+fEBucr958D7wPoK
-  fLJcqvmQ2zpmUK5lAYFuAhH tjPFeXVqOpaNzzZJSfspPZ+Vv839xZuLO2llZyfMZzJsVTggdS
-  D796ykkjjihZIZVlaMbGJ4bDcM B6ZrQeeSO2l+0OivDdFXkC4BYentg9Kz/wB297AY3zuG2Ln
-  gj2+nWlSUuXXYKUavspKb93p2fr0L Cwtc6oZWmj+3RAxt8vBPVjiqAkjltpc3cCJJIX2Eck5+
-  U5rcmtjLB5UkkeXk3l4/lOPT61j29hbq zxoj4VsBmbIUkH5frmnTnFq7exyuLk71Hr2026a/8
-  Ay/7PimJlW4WUcg7ONp7VlH7WI0AiIWJGXd jtnk/rWtdpcNNbm3QwTR4S6VunqPyNVru5JulJ
-  ZZHYnzggwGbjkDsK9KlOXr+hrTryvda22XbzMq 4tJmuEKkxwqWXLdx1p/2SNba0eeUwPKDIwY
-  ZJIJAIx2qaRNt8n2hxIkjE7o+MnNSfZX+feduyXY5 bqpPQfSt3UdlqOqubXn19PyK8kCKiyS3
-  MbTkEjjAb1xSwRSecs0Ubl0BGBztLcc1ry2dssrm7R2O wl1XA2noO3bvToVaDT51j8uSZ5Rhg
-  Oox1+lZe393+rDlUUYuPK5X6tW+/cyhCfICSyxxXG7ALZww xx09ahgjK2oiDrEHO9lYcjjH8h
-  V0Q3Hn7Agk3bXDAds4yKlubf8As+/iJQXAZHVW7Nxww9uf0q/a K9r6nXSjTU4xb5uy/rVGZHA
-  Yrf7xYMwKsBxjHI+tWHUNbKwR/KVgScEjd9alhVo7dI5M+Wq8ZH+e tRT53feI3HLIBgLVczcj
-  veHlBLmh+bFgsYLeKMl8ySSZCg8px1NSwzz2lzHInD71/h9P/r0yN3ku HVG3SEEhcdcelVgGG
-  wZYZOWbr+P0FJxcr8zuYuh7kqcndPtbT5WNGa7+03Jk2vnYRIw6Z6k1qxXl ta2kA2s/7pmyD9
-  0HsfcnpXNWl00drJtVJfMcktjtjFSi6aRSoYDAC4C84/8ArVnPD306Iy9gqqip ydlt/wAAvLe
-  2UlpHbLBLaOxG/wAxs/vAeD9KoXN5IU8yUhJ5Zw7nH3iARx+lN2ESxCSaPC8hthO7 3HGe2Kpm
-  G4nMD3JO4hmjAGMDkf0rSFKCdzjlhnKahZv1/r8CHYgiKMwUkbhk+nUVYxJcQqszIRt+ cKOuD
-  nj6YFPjhdrYZXcqMAOmcH39KU2zGVUE0RILK3BwR3IOOlbOSNZS5VZp66WV/wAfIqBQqBYZ Bh
-  cgMeg3dqgjU21itvHIAryF5UIyRxgc47DmtGG3fjy9jKcn7oIB/KoVhgMNtGyuk4Y5JP3ge9Vz
-  o4sRgnzRm4Wts1/wxLGyyBlk3Pt3AFeAw/hxUi3ziwt1kGXRtkQAxlfX8DVUKxjjEP7xdwDYHQ
-  DP tShVLlQ4TnKp/Fn/AA71DhF7lV6PtUnNv1/y2LNy141xG926uWRmygxnnBNRW8+9nTzRCjF
-  d4cZy vfFSSTb512QuVOflYA5AHHQVGro+2d1j2wZAAQAMzDAz6ikl7trDqKcafs6b/wDbX92o
-  15GMwC4E THAyONo6dqRY7aOSBo4pZCrBmAPQjmm7oxb2ykFZo1KsWOQ2TRE4K7MFFZwVJ64HX
-  86trQmUE4Wd /nv+RHOZGYhV3KuD7nnINJCwi/5dJ0yCSSQce9OdpQ2duOPm/OpCkbuzM7uEHB
-  U8PV30sdqT9ro3 fzt+bRRfyxlllUlgMYHfpUaOzop5aUZ3Nnj2GKsSqYn8wxOQBlRxxjHP51U
-  SR1kDKm4nOSBxn/Jr WOqPKrt+2tK6S7X1JXvGjgCyfvS45UDsTTPs6i7kiRAPLyrHOee/8qHT
-  McYuYsbV5IH3v88U64ig Z90TlCARjPfvmmrLYhqrUfNUs1HZPf7yqi+ZIFOYgSCM85wDVyNFL
-  EBxtHK5bt6VT8lpJ1VXwcjy lOeR9anWSObISKUuQRtUe9VPUww1aCk1PRrXV7r8iUw70kYXCg
-  LtzgdyOn1qtHGk1mJVnHmqzOR7 4HFNDq4fZG9uORhzktgf/rqHygVRh+6KtxnvTjF9zPFS9q0
-  4bLXrr95LGt9IV/eRKVBLHb0TuPr1 qw1zI4kXzV2bsKSOoqKNlAPy/KxYg+uOMVZtI2kMqYjG
-  Yy4LDjCg1M2lq0Vh7r3ud2e+rexBHKWU +XukPm7sg8DHb+daUkMbM2Uk4J8rLDG09KywrySwF
-  nS3TPI2/eXv071LFvGNisMhiwkOfWlKPZmt CX71Jpv8n8tSREkS2FvwIgwLE8jpx/M08WpQEx
-  sWIX5lU4NNijaWBsFiv8BA68frWgIklbyw5UMh ZnXtjms5TsddGjR9nJvRLs9eu1inLKGg/eb
-  ywA4H5imvPMTkElWAx8vbuakVf3JlVMZkAOQG6DIP Paoo3Kyp5hcbpRuKgfdOeOnftQrEzxk1
-  Fzd7eW5RnEk9wjZSELgNuHOMVLC72+/5FkweWHY4/wDr 1OYraR5GxK64BHPTsM/lVa6WMzliG
-  A6nB6mt4yTtFo5VGUE6yer8/wDgWR0NzDKtzEqGRwpwxwQP XB9+aHTY0KSJISI/lAx8oOTz61
-  El6r7Y2lDGVioYEgA+/HepfJDSKiv5jlQWYnjODwP89q4NVa57 6rQdTmVtfWy+8diFLfeqhxt
-  4PbJ6dqVHk8uOFoyjpG5XaMFgOpqv5DmGN5oXiMZ5wcZ9PypIJriJ ot77pIQyL8vr1BoautCa
-  1adRrkitNr7E7TPBB5UaFsKAXA+UKcEk/wAs1I6tPcbIgCXOTg8rjnB/ lVRblJIiSRgHaDnrU
-  sckksJkASEliNpGTgd6ORo3pQp83uy37L+vzNK9juJIBcT2wjhdyVUIARk8 /liqUELXNwsfll
-  XIZyS2dzf0yMUhlaS4WNlYnJ3dunNX4ZYvPE/ktHvJJZSAuPb2rF3hGxzV5+x0 STfSysvu/wC
-  CQ+ZNBIj20QjVkztdQSTjBwfQVloI5ImcYIU4JU4y3Y1cG1PKywnjdt5APLYP6CnG ONt6b4kQ
-  kyBVXb8x4A6dquNkVSpxcuZQWu7/AK1M+B7q2X7KXzFJMWm3c845Ge3FTsXi1AGNcsSf LDYJV
-  MdD7+9TvZPDLEZhmZVcMo6Agf8A16bYgjLNLF9oKBF3rwQepH04FW5Ra5kccYJNuO3boIUk vg
-  w8qFHV1KsqAYAXrVwPc/ZYkkClPLPlnbxyen1yMCoRtW6RpWAZNygKcZLcDPtV8xxxXgidyypG
-  RIQM4bnGOOnNYyltobYOnL23M1a22jbX5FORrpWe2WEcnJURgsoC884qSK2d4kkDAITsBJ/i7D
-  8a sl7gRIU2RKdqNLt5Ax606dY0+0I86zmObKmMYDLtwMD1zUc72R6MvbRqfu1pfXTX9EPSxii
-  nME4k bGWV93+qA+8G9TUc5R4cpaMkZbdvzznHH4e1SmeGWO3ktzMJlUocnOSRj9RmhIJjLbxB
-  dmEypccL z0ask3e8maU1Je/zX8u3ys/1JnNx9ntwyxw7oecxjghsntUgKyXKvPewIjOXGFwdw
-  6HgdKinmSRp VEbInneZuJ3bTjGD7e1Z7/Z4SHjDuq4G1m5G7t9RSjDmW1mbVKEpU/fVn3snp5
-  XW/wAydFE9/JK8 6Rxl9sjZwCSDg1lMpjjQEPxyDu5HpV2DdLbPabdpVvMXPXj1PeoI2228hIP
-  mAEdM7hnlvoK6IaNn LOkpTbe9vNW83p1IFKjzGZwjhsktzk/lW5pywSwj7QQ+3fFIqcHcT1/C
-  qyfYjGY8CSUuQX7NjnOK nfLmJ1gKOYZDKqjq5Pt+FZVpc6tax5uIpyxElGKs++zGuzCaexBMo
-  3bQUGOR3oWKI2DCPDO21pSf +WbZIx9O9VYYdluJhKHCuoZQTknB4q99me60yN4X8yRVyFQYJX
-  uT64pStHqei6c6XKtEu67+Y2K3 SV900tuAgYhiv3wDgMParM9my2SzC6tXULtXYuCecfzqtBD
-  G9ypuIplZZQqIMDcCM+noK6KOH7Pe Szq8XltIpEbrnC45H171jWquL0ZvUquDvGV/u1/yKMMN
-  1azxMtzFG03zcj7pBxt/HNasst4yCBQj G3baAF5YZBP49QKrTOJHjYSRbURgeOpIzkfSnhkaz
-  WWK5V5JkJi6/dHGT9O9cc25WbX4f10OOpyy kpVlr3tp82tSW6EE1v5e8O+M+XnlvmyxPuBUds
-  PL1k3gh3RIAsW0Arz/APXNR2k8rt5DRb5UnOJV XCuCOCPbrSztLZeW/mqwRHUccHBBB/Wps17
-  ncy9rzxdBR+L8fQS5upbbUSkzoyIQ2AuCxX0P1I/K oIpDqdvcTMjIyEoqx4G8sfvfnUpSwYXT
-  zzK1usoUEtk54IGf50lxcSWz+dCY3G2RWVEwMn+orRJa KK17luMI1oRowfP+H4GVqG+P7RF5i
-  J5LxhmP8TYBPP61nS8Xlw8ULOfMbew5HzDqPQA0s7b4YYQD vjTLHOS/vVgRTNHZKh+0bY9s3l
-  9ixyM/hXfFckVcqvGVGznBJ32X6/8ABK1rYx3tpGEbLNCzKpOS WBxke1MeEQrFGRLGshP2jzD
-  nJ42kelalvttryDzJY8GIlAo25HO7FVkjEbRyRMXAUlt3OHHQUe1k 5Pt/X9epxc85y5VK3a2m
-  vqI00bM0cwIDL5cbt/c759TnnNZCRrMojMpEqNjcCQCfUe2BXRefI1rF LNZ8gFHZkADMeePSs
-  xLfc6K1tIZBtDhBggnOCaqlOyf+ZrSUuTnlt6poIQLQh4tw3gsm9s47gfh/ Wm/apLlvNkgkmX
-  cF+X+DIwR+Oafd2c8W+JQxij27mPc4zkegqrHPcJeBomBmfd8qLxnHp0+lXFKS 5luUuRw56du
-  bv/W3yBpm8+EzJHt2FQMY3EAqPyphWNre1aMOx2ESknOSOc1OJw6mLCTwsrNlV+YB R1B7DOfy
-  qmsrSBBEqqWLKBjO4AcmtYp+h00qsZSUpOz+eo1EM0wliO11IfIHXB/lVpHS8nkkZ0Tc TuCr0
-  P5YxTJBHFEoCSxuQAVJ7cEGpfswM7bWUBHCsw4BJ5z9M0SaeprSgm+ZRs+uln+oxRmLyYzH Fu
-  kHUckjsPwqeSJ7edQI0CliXjIBZCOACa0bW1hlTzDFIH8wsqhumDwPzp32JZHmVRJGWcNIHfJB
-  6msHWXNqW051GmtF0M1YVmslQQyi6DYBByOegxVEFTkfPmMlFDHpnk1uJauLjz7aGZoSGaIk9N
-  3A ye+Kz1GYAtrt2jmZ25GeRx6Zq4VEOKjBpL/N/wDAI4EaZZUWGRwSASDwuPWldpRegSRxwsm
-  UbKjO WGM8DoK0vLZ77yYysUjvsUjox/x60kihYZI2ZfNaUm3BGS6fxNn8OM1HtE2YVKkZ1OS/
-  5XXmRyxM LY28c9lIkRysoj+9gc9u5rF8qdbjdMgZt2WCDGwZ5B44NakqolqwKywxcmFnPLEe/
-  pUDKqR2srF2 Mineu7lZBxg/zq6bsvU56kacIr3t9NLfjYqrLBDc4kXaG37EHHTpmnW5865hia
-  AEODkouCCRgc1M scTQOrgxyrMIzvGSCTyfpTolKSPFGrozNuScnC7VB56d6ttWfc5+Sm4Nyf3
-  30/ryC0+zlhBNG5Ql dpDfMAMhuf1qGe0iacFAUhZG8s5zkL/F9DVqRoRLbuCJ0jiKDbxtPO4H
-  jqM06O2As0kadCVUDC9W UAk49OtSp2fN3KhGEZqb+F6aa39Oxm29qGuIlwFG3fhurY6D8aI7J
-  pLnzImSBgzbUc5IHbPFXGtT PbJNbF5WwPlXkg4yf0qncvvKJCSY+gI6kdQa1UnJ6MJ041Obkf
-  y/4BXFv5bKHky8ZJAYE8f3SO5N SYkjjjWMKu6PIUg5FSwzCGaS5kiWYyHaoZchgeC34UnS+cS
-  MDHl48hcDbj7w9hVOTvqHtYU3JxVn bp/V/uZlssghVJ2EkpUkOnAx6fhVeWWTciIhcZ+bA6L3
-  q7HdvLAZEaEBSYz8mcj/AOvUjwB7IzGS N5A4UxgEELjmujm5X7yOOUeaFqcnZ9df+D97KE8v7
-  xkSVX3NtVj0bHpVULJAuwsMMTnIzmtjykct EHhyFLA7euBn9azpYj5ce4kblDDn3q6c1sY14O
-  Tb3a+RXkaeZoyVyBzlONoz/iKcYZ3BPCHO4np3 qd/JiLhldweFC1Ahjhk2K2/erKMnP860Um1
-  ojlqUlGTcndvfX7ug2VIphGGkMuwll2tjk9c+tW4Y vMhYBh8rZJBz26VF9mSLT7Zt8UiHPCDB
-  B9+KWCJxs8ncAPv5PXmlKScdGRg1FyUuT1SJDGHk2ylU VQNuxeTnmlW12tF98jblSPTPf8asG
-  Jhcuj7mKnBKjgelapvJpLe3VPs6rtZB+7+9g5z+PQVzzqyV rHdOmlUXu3bfUznjUlhOhV1lCK
-  i8E8ZOP0pZ7URyLHcDEinDkZGD17dulaNtaRbC9zOvLqSmfmQ5 7n+dTXEMPnrsdxIzl1aTlWQ
-  cbunTNYe3tKxq5e+1O935afO/+Rl7pgv7t4oI1m+8yjAY9R0qREba 77CpmkZlz2Vei/nQ00Vt
-  cFFT7SN3Ddsdc89aspELmWLadiJueUsPXgKPc05O2ttDGWHSrKpb3eun 5ozZo7iWaMzZQyP5g
-  TGOvf6VApVQxjjJ3Nkkjg4PUe1aSxzpOjeW6FZdnzgHB9KrbUQsSDGM/Ip5 IBJ4rSMtLG1ClD
-  mfs3p8tBDG+2TEbRHuOuDUE1tsQCSJsYLo2efx9avWscb2SyPMytliw9QOg/Go 3s5nijZSXVQ
-  Bx2B6/lTjNX3DmpV1zKO3Vr8hwsxa+Vb+X+82szHHUjn+Rp0Mkf7sCKWTcAF57k1X GJCsiyyP
-  s4Bzzk9/oKuRguD55VG88YKJtAU8Htg84pS2u2drxCov91H3enW3qKuILh4Rwwcx4zn5 h0P0N
-  QxnbCfOkCS+crDKkhgBgnilkSWOTZhWfqWxwcUwHfPE0iYc/KBjoewI9am10XK7ilzbbdEP Eb
-  GPcDCEX73y+/H86mDBbxVSSFWdiqq6574xVJFLkAKyEA8N3NXI4h9kb7s2clW9MUS03NFzTg4x
-  W6/rqh8cjtG9w4GwuwXjsOM/nU0RcwDJUoGAQkcKCOatgFLTyDENzMNy4yBn+Hp1NQPH5byBV8
-  r5 tzK3X0ArDmudOFjiPdVTp16/cCRqVaQSBpY1JxtwB+GKZEF+/JltykjAAq7bxKw2yRSO2AZ
-  Npxnn oKkEcflwq1tOjMhYjd0yeD9MVDnZtFRTjUd2/XS/5lCJNojdMMPLLEZJyc4x+NaElnY7
-  baMLKrYK ctyG6kfWrUdvBJNFMFEEEbEAuf8AWcHDD29qYGFsSdyNKiqN7cq2T6euM81hKq5PQ
-  83EU6lad4dO 2n5f8Eo2FgzXzbwBhfmLj7uc8mrcFrHHO8UiSuyx7Btb7xIJ3fnV9JSzXaxMqq
-  kvljIyWUnAOfal jkt5r3EkcskuDsZeA+DgYqJ1ptts7E6nvSinGy/pt6fmOtDbRrHHbwvPcOo
-  ZyxDBCvVSPXrReQKs LxxWbKJvmQ8bmAOBzWeUul1W3iWCSVcsrNEMc9zn2PH4VoPcXtldW7yR
-  73+ZYlP8Kkc5+hNZSi1J OLu35nL7KSq88Xd+r/zKB0+G3+zuZ/tEkUg3JESCdpyT9Of0qS4Fx
-  cWqzzI8aJuO9OA+48H6cUye bz7iLYzCRR5hC85Zf6Y6itOSLzdPee4BVS22NAcAh8H+daSk4u
-  LluelSw0qVSFSUU9db7/cY6yKt oDNBKT5jBwpALcDJ6fSniNGkSD7K6xjO1jjI6ZJ9eKrJbTT
-  3CRKQZmIyp/vdMfXirNxHMk1qof5j HLKMevdffgVrKydk9R4vmg1FSu797WMmRoortpEDBVOI
-  wW556Zx1pbaB5YHlkkjk8qUZSMYJGMkV YkkQwruiGXG5D/snGPxFaGnxOlmZBEZ0dyx2d/X+l
-  aTqcsLnHWnKa5pRtfTff8SvC/kyLIjQxM8L ja65xnv/ACqJpWlhkBjZrltgG09Ox/E1It2SYL
-  nckDueY2XJBAwOx4rQlhkklmR0E4wG8yEAfdAI 9KycuV3aNVUSp891213/ACV/vJVkijS4Rts
-  eydMggHqMUxYxa3H+onit5MpG5bgg9R+dUrBZL9Vj YeQxYtM7/wARwSD+VbxtLifTEjVPMR8y
-  Y7gcEL9a5qjVOVm/U8+M6cJW773/ADRAwu54t62xT5i3 QZQ4wAfc4qQXrLoO+6s5VYS8oxG7A
-  x8307U4JJHDClw/Mo3SFeNhB4U+5pt0Ymt7m4hhuEkBIdZH zsyRgfXqax0k0rdTohCNRwUYvf
-  0/G4ly9u9wXhjeZH3bERudoNZNoXN0yMjOoDMqqcFV6gfh39a0 rnU7FLOaILvZ5FYMnGD6fTi
-  qktyHnit3j3ZDI+zAPJBz9Pat6Sko2sd1KVRx9+DS23ennb/hgmvF GqfbIZ0MbfKoU8Zx0qe3
-  gi8pmuvNmRGCvl/uE8bT7nrWWI0lnWHymOWEhKnA+XI4+tSwec8zR78v PiWRD1Vl6fpWkoaWT
-  tb+v8yMRTlVk9bNL00JLmSG3ln8sLHtZYyj/N1HX61SuHAiSOJZkaNsYds4 9j645zTZZJZZ5G
-  nCrlt2x1+9kcEVIyxy2cM4LjHE565Yenpwa1jHlSudCp8yi5X8rf0iO3hCSs15 kxE8Opxux6H
-  0qe3ke10+OdyJY2I+WM4O7ORz9K2ATdQRgWrS2rRF1IwNgHG0++ax3hmMiCZY7WIE Id4OMseP
-  xrNVOdvmOJ0/aybqvRb69P8APuMuLiV5YTcSQGRZnkwkeCORgVblZ5ba6khXlZywKL6j PT86W
-  C2tlupYZ7232wvtEjKTuBBzViDy7ZYonu4XiaEMyDruGcc/SpnKK+FbeXzMXRo0rcsL211T e/
-  3GNMjzW65L2ylvMBckggYGPrzmrVvZpuVJXklaQMAyn7/Pyke1PuLW4khgRTstjbGQOwzu29cf
-  jUTXoSM3USZZcRkHoCw4I/WtOaTjaLIqxqxpr2Oj9dCdhZxRSW4eUMXVWd2yNxXg/QY6Vlrata
-  Sx BicSvlZB1QKCcH3NLJK0izxFMSkneCOm3p+OKrO0kiS+Y7NGzq+M9DjitadOSW5UcLNpcrs
-  3vcWd 43uifOjiHllAuMdV9h602PdbWFsgik2BS27HO4n1pscoLtsWN15Xdtz+PIqaKCN5UVhI
-  wPLKD0Pr 9K2doqzOicFTiqmjXp/X3jVndoyskamQ42uUyWXByRx0FXQ7xg7fuugVNycMT3Hqa
-  q2bBp4w8Duw RxheORyD9ParttNvKbpYoV4Rd4zgnms6mmyN4zVKm1ZW31T/ACLtttggZQDdN5
-  5QtGcYHGPxp9xD Ld3riNDahGJZnPQAdD75/nVRkQ5kil+RZCWjz8xx1/Si2uJWlLgtHbysXO8
-  5JA4PNc3K78y3HRjF XlGV/v8AwRfSW4tYFkKfIZFj24+4CCSakCRQvLJK8NwrcKsa7cjsaZNe
-  faLVXe3fyVdsHONw29fz xinWcMQS28yeOFBGpbzed3JJxWT+G70NVFSpubXrotV2Wl7kE8UbJ
-  bhJogxYs3tjk/jWbc4F0rvE YoJmYoSM4A6jNaE0LER3EAZvNHmtJwVB3YwKzpXnN1biVlABBG
-  5eAGPP61vR8mKlF04t0no/v/D/ AIJbmu3jVRHGkkboz/MARzxx6VmWYW1uobggSxpzIeoLNxj
-  nvin3EKeepEu7HIweOPb0J7VJHujt Y55SBM6syIF4PbOOnrWiilCy6nFiMDCUbKHxfL7+q9SO
-  Wa3MyKqM8bI24Dgk5+XJ9afBbO8byS3N vACQ4BzlgDxj27VJbi0EEZO5H+z7SDnJPI3Z9Paqp
-  aWRkhDBV+X5m7EDHp/nNUr7LQinQai7tqK7 q/5ofPIkjj5GQzHz3YdAewwB0pkJuJJGtzJGq4
-  BGV64BPHFX/IWXUCZImjhcuzRg4aIgYwT7dadH BFbtaTupEUkBIlBOOuMn6modSKjYxq1MOo8
-  kdX0/q1yhNPch42lUQu43rsXbjPGeO2KS1ma21pXV YbhWOxiEGD2B56cVchghclppGjBIUM2T
-  8g+8PqT0qNp7Z2eFYtkLHzowPvDH8JPfvT5k04pDqqMq UowpuzWr2+6+7KbkLem3FuyKXH2dm
-  wcIMk/XNMktLq5d5ZlW3t5SSHcYAHccVoMsFzcREsyokLBC OPlJ6/zqt9octDGq4VY2UFjkMS
-  fl4qoyl0WpwRoVXdKNlbqv6X5lX7DbWV1Bu8uRWi37kHynAOeK ijkY2ashtk3MA6NHkn1q2Fm
-  iKPcwbT9x+ANue5+nFUp9n2sx+YGXcQJVGAcDrW0W5PV3G8LHnfJK +nay/wAiG4jS0uh5DLNb
-  fOiPjPbIyfxqmsiGHe0bsVAR+RgN+XpV0pF9iRFjYmRAyHcBwCQfx460 x4UVy4CoAwkwec4re
-  LVrMKeGrqnZO6XyRXeGH96RMGBm2x4GT04H4/0qiI4hp7+aU84TqyHB+YYw fpg1dVF8yFzllQ
-  ZIHBPOalMa/ahmFmLI+fqe9aqbiclfB1JQbntHW/f16fkZkRCiIRE7Sh68jrkm pLZJJt0bzxx
-  sCWBI4Ix0+uasMR5sEMZSJCn7xmHK56j86cUnhvCjLG4VsEoNvaqlK5goR9ooRbT8 l/wdSdXl
-  +x7/ACnhm37SsmDle/Hr05q7bWjFyTE/l5Ii56joaqWMc00u1tsKLJ8zscgAjgfU461t W1xFH
-  YC3jVpy25vLJ+YZGOD7d64603HRHXepCCs25d30XfyEFxPbrFAPIjiKjLvHuJ/rUy3EYhlL we
-  cUxGj5wFwM7envmp5tPmexEm1vPQLCseMlivVvpioV024W4khCPKMBl29/b6/4Vyc1KSvc7I08
-  O6ammpd9bfcKytNZmRbeABJAOIxl1xlselI1tcNpweOHKSMXJUY2gfdB+lVIrm9hlPAYFhlNvc
-  5A q0t3cnfD5oCGZcE9MHjP0puM47WMJYerSkpU0rLXr+WpmzWrRXcQEgO+RSVHJJA61DIWm8r
-  DRhWT Ifb05/xq/cLAmqrcCYqYZwqjOQwYcEVmxb0CJcIxw20qDgqBnNdMJNq50Rr1IzlHldml
-  stf8iqlr FHbDe0jyIxKhScEHv+FXbVCjw3QYtFHG3G772Ov86r2sbyPCkTAOww5c8dTz06dK0
-  ZbWQsIVt5pG SIquw8A9wfU1pVnrZsxn7Hk5NEuqf+ZmrFiRY4AQuCXyMnHer0i5ulitz54ky4
-  CjJUYzg+pqOWZ0 fypRFHKVwy7cFjknjHTjFTo0wthdTR+fHIefKAU+gYH0HpUyk9zor15U2nH
-  7v+B/lYosS37wMVXh T6564qxPsnufM3BXaQnZ0wVGcj2qEmN5dkYMg35ZwcA46HFXkgWRSYla
-  6lYCTKDhSeCKJStZm8W5 JSk7K+t9iASpHeCbiXcCxwf4j0q3b/Z4woLuWYlXRV5z6gkYxUyQw
-  vMYGi8s7dysewHU1ONOhawt Z3k8xtzPiPgt789qwnUhszSdoVUotpvt/nqWRa+fdokaSGFYjt
-  bPLvjg5qt5ZXTp5HurdyZAsigZ bd+XFaC+ZFe2rElIS2+MZ67Rjd9PWqmTc3DbEAj3h5ZgPkL
-  Lnbx79K5oyd/I6ZVZqs/eVl2/zf6E cBuIzEBC5lAV3XuoU5z+VaNwGup3nWeJpGLNEEGPkBya
-  maZPtab2Te4cttX/AFfy8qfx6VWkDTab GwuIpHjiSIBE27cnv7mo5uaSdrDoRU5+05Xrpqrp/
-  gkMjgDOkiSQ4Me5sDoD2qBZp4oZETyywkCb SgY8DIrVYWK3lxHuMKCQLhj904x+XWksYrO3WQ
-  efHclGyNvYYPB9z2pOro21+BWKxk+b3o38mv8A gfqVI5pDf77qaKOLyysi7QCWYZA4HXOKhUb
-  bS3EJRpFQqx287geRn8aFjtpLfaI5nkfawTdkrg42 n3pLdZf7Ut4A8QdnLkEfcGeVPvWmiuwl
-  WjD95JWXbYm868ljg25LoqeWijBbrg+/vVeYyXFgZpLh ZJEm3LjPzgDqPYGtGa5kN3tAS3ihl
-  LAleYgBwGPfJ6VWia3lkaNgBdyzeai4yBx93HvUxl1t/X9f 1sc8KylO7gl/XdrYRbea8ZmXy3
-  dnDZVcZ9SPYirElpI9zPbDd8qlzluM8FcVXGousKskP2aRiFO4 cBTxVkCO1u7ppneVi4SMoSN
-  ydz+FJ86f5HpUZSbbS9F/W5Xulijt0Rfmnum83cp+6y9vx5xWWl4X hJBH+sznuOxH5VrXIdrp
-  BbxO8ZbIfr+I9KorOXhUpBHAoZ1eMqMtwMHOPXP5VrT+HVXJ9k5Plcb/ AC1CztlfUBEWKQ5Yu
-  SOVUcitezjlRdkcTxxSDc8h+7uHQj0HtVG2aOQB7iKSRiQp8ttuT2P09aZP PLatJahZfJLqW3
-  NnGPQ+45qailN8o8TRdWTj0SW9/wAFfX56Gnd21rCYhK0c7spYqnGQOSRUD2sR kSaKK4ZZUDC
-  MSc9CDz7danZ7K7WRo3y7ThQuecY6j0FRW0Zee1iZnclBllYjGScj8MVzxclHVs8h OolJp7fL
-  8CS3keA28cKpKoUHIHbsf51pyTyXEf7wtFG0hwqfL9Bx6077IZ5GiVT5bEspXgsp7j2F Qm1Js
-  4Wk3PCV2OQfXowz71zylCTv1Ob2dPmVRuz9LsqwRPE0Jud1urxMVaVsg7Tiq7yTTTIZZEb+ Jw
-  owCemPwrRFpKkCR3SSXHlSbZcHgDjP07VJcJFKyiGNvJBYNg8s7Hgj2q1VXNc6PauT1fz0sUpI
-  55A0VrBBKBIfnMYO3GMZPr1ouLeQx3O+DzFSRQ5jUAn3FWU0poneRJZYvKVo5kLnl+uar2yoE8
-  wX gZ1QxyR5J3l+jD2FOM1unt5GuHc4vmUrpdtPxK0lvLJAq2s8AVVwqkfMFA3Ek49aaIJbiyt
-  naWJb jDKSOM7uc/0p8HnWt5aoJFCMuZWcZCODyD9c1anJniMUqCNDIxhIABJxx+FaOTTSHLm+
-  sR5tt7+v y1+8zLSwWUW0ckUjyNESvzdgTk/hU8kUK3EkYAjfysBmOVyR6Y6mrP2NURRcTlZUT
-  CsrEDb/ABVk 3apJFHIgZVX5QSc7we9aRk5y3PXwik5Pm1vtuv1sWDcPAYltn+7DtcY4ORnI+l
-  NWbzdQsjdobiIo wQJxuJHDfnVY5t7oeW3mqA4YnkEAVJFHvWLfLGSsY2Y4IXOf0rRwja4sRha
-  c73VvO2v4ECRRrbJE 0qK4ABDDnOSTz9KtzLasqeTnzZZPMXLZEZA4U/UZNO+zRuiXcJQxrPsc
-  MMnpgn6c1QjJ+1IwSSSJ GYqQCASM4Ge/pRfm1T2PMrynOFqU9F6flpcspLNLexwREh/LZEjbn
-  aoOTn8Kbv0+2tmWVtrSTAWw Y5JGM/j9e1UFb/SbabftZlLMcnII6A0x1aa4gLI1xDFExDKMYP
-  OOSK1dJXtfQxxmHnN8t/d06fkN 2oXSRkcjAJAOCRnnJqKYASptGwIpXkfe96crPJDEpI2rEck
-  d25xUs7eYib0L74wcJ25/xrdaPU9K Eabp2m7P+vuIkSXzG2hQ23cPlGOnIx71YRg0EnnREfON
-  p9BjoapwFn8xmjliZSVYk9M9varMtzMU ghVMrIQM7fTvRJO5FoJxqJadO463kmiYTKECsD8+w
-  cHHAzSfafNtcCFWllbexAA2npxTB5scLjIK LJ6ZAB/rV5/tEVuDFFEsYLbiEHBGOPxrOVr3tq
-  czd6ilKKTv94uniJtTEbqYxjBU9TgZzmtWJpks 7dBp8kplXOQAAOTuFUreS8lkTbAJG8t1d1j
-  6hhwfwrW+zXIs83TMYfKby9nBU4wM1x15Lm1NK8m6 nv2T7f8ADMryNO8u0252LuCxgcsRgKfp
-  mqLzyS3G4oowAJAR1Oecela0XkLHZKI7g3MSYK7+SoPJ /DrU8ULTSIoSMwYZiwXnIGefr1FZq
-  rGO6NIYunST54fozPupC2kSrJEYsTD92ODnr+AHpVCKVDcX TmLzYyQc+4GanlYOiuFJCKeG5z
-  u/nVeSRvs7wFfLEeA7Yxg4zg/lW1OK5bHTD2UIJOOj316FdTHM lu9wdptlAQKMbwxOSfpVe4l
-  ZnUGUbI49qjHJGeoojbzwH6yMhby06jB5/TmmxTxSFYpo82zOozxu Az1z2HrXWo2bfY5Jyo0V
-  KUE35ak0MkeZGby92Rg7Rhh3A9OKc8quXkSEDzNpiCjHA4z/AJ71TeOb MqymPMbkbQMZIPX9a
-  lku3jRFhhA6bTjI2j72KXJd3RxpSlH2jTafT/h/+CSyXRQb5YpYpJZc89Gy MMfoKcbSeQJbxu
-  ziJBGnPDLn7w9qh27L6QIfOCEomRn6Ef55q2i3l9GSWX92WVSo2gk84NQ/d1Wh MKMoPm0Ue/b
-  5Fh4YVtnt1kEjeb5ipnJAHUZ/Ws6QK1zFDAylI0ZY36A7j+vpTUed7UxbWWRCAMDJ I60p+zyw
-  l1byWMi+XlumSTj9KcYuO7uEYypx7t7Pt52H2kUlsJUkBjSRWBLDow4xn8c1DOY5LKxi t4XZ1
-  ADuOpOcA59K0CZLQyCQNcoTuGOrMRyR7Cq0lvC0DCJiZkZUCdd64+99KUZXldhGc5zip6Jd tV
-  8yocbRJMs7gMyStv43nv8AhxxTbiS0MUdtFGTKmUZ853txjAxViaAWdvGVYOrSkgEcYA6H3Pr7
-  VVaO6BVjEwkLgYAAJYd/yrWDT1uc1OKac29Lvq7fdchMLiKQLbywFWKhJDk8nlen41XKFrtdrR
-  gv NhMjjZj+uKs36m4lS7WUu0U+0qODjHB/SqyRRC3hVgytt3Id3Pet4bXOaeGqV17OOke+uv3
-  lkJFA HABYNkgdwPSqIQP5aDckRXLORyuD3OKvgqLXauzcQPnY/mKpyJKbqWPOIweo6DvVQO+v
-  QlKiotNJ bWtcj/dHa3mLkqdpwPWljVVijaR2YFmO3dlgSO/HeqBNulvEqo0pYnc2cbD2zVm0W
-  JI3nfFwqnYN vTd1/lWso6XPKVeFSpF8vvL+t2vyL4hHzS+asfQOGH8eOFq7EBbiWRJbeVklVN
-  q53EdTjj8KoskE lmrBXjYjeGZ8hsHGcU44F0G3M4znA7DOT+Irnacla500ZTqQbk3u9NNf68j
-  X8uNrm3X7aUadZHjj YklPVT7miZpreFEX7REduSS2SrdMfX/Gkjeymvo/OkYbpDJE+cYHdavy
-  XFvLYi6f/SVdi8oQ4Ikz wPpjtXE5NSSauZ08RKNRRnG66K36r9SigvnhEks0LNJltnlgMdnHY
-  e9OvDNDfwybUysbKPl+7xgZ 9acLuSNoRAFGVPmbhnPzc49KbJEkt6R5NxHAJP3bl8/L0z78mm
-  rqV2tA53CV6isu3l6f5alEcm2R 4WaR4/nPoT0/HHSltZrWJth5ZiW8x+QrjOFP1ovnBZYY4mM
-  inAkLcEDio2mFuohlEZAY4UKNwKnl T7nsa3tzR9SMdVahZ3XlbX+vuIrOTa8dysTFEkCgD1OT
-  ileSG4VnzLFIzcgnqTx+n9arW81tLdLP skSLzGZ1EmQrngHoOgqKP9/CgK/Z1TO7J5fPQ+1bO
-  HvXegQU6tS8lq1pZrbz6GvFFE0cklyqtLIN 0WTycZyelJ9ilktoGIKLnCNuwqg9c/U9Kmjl+0
-  QPLJsklLYAjGAqkY6e3WplsPOYQxSbmbHlyk/I VHBPTPJrndSz1djtlXjOKU2k46/CvzKJtTb
-  XEiuMXCOscfHGW7EeuM0+FLWS/aRRKlsofG1iMEDG M/Wp4o5IL9YiDcoW2xrjlmAJU59qo+TM
-  kFukkBgm2sJMjAbrjA7VSfN1HQlKVXlet/67r9S1GzND HMCUeNAkasMkoc5PvV+2hU2tlFIk5
-  dly5D8dSQoB7kVnpHJJLBGIGeRY8bB/F74q9GYWvkdUaJwf vGQlcnoMY49qzqbaHozpTjsrSX
-  W9vvS1/M6GSa3ZYEdPs6eWzs7444+UD60RLCliZZQqhx80fcn/ AOuMmqFxcWElmu6XzH5ZlUH
-  tjFU2aP7P5zQXEbM52s8ny4A5HH1rz40W11Rw4ag5zV002/k/vZam J/syVxEAIpcwuy5BRgMA
-  +tTobUKGkCnJLOkfy+UQMBD6n0rLaVZpPMtnAkPDRMchmA+8B0wBUwu3 ijlNzBujdgVZV28Fc
-  YJ7n3rZ03ax2zg+XkW67Wu/vf5MkdZFtN0sahAVZWK8yEcbvoKczxPpbFxs Mh82EoNpKrwc46
-  81nm+jMIhmk8mEYVA2SSepUH16VOpguppNolKgiNFB5j4+6feqdNpXaMnCjTs5 PVav+r7jUuT
-  au/kRlmLqised28ZJH17VCt5NOiReULhVkCymMYZjzjBxxU1zJbx2Qs4cxRRzhiXO 53wMBgfQ
-  dxT7SQwSCQxh4mV2aVFwsjAEAj0Har05XLl1CU5Onfk19df69BzXIZZo1jZAXy7NzgqM jP1qB
-  Im8tp/9ar4kV0HcenHQZxVa0ZLiNVtw80+zDqB1cHOfoB1+tXfsssUzfvY9oYOQM8LnJ/wp 2U
-  XY3w8ox0ST+X+T/Mkjltb54zJMsMxZvMkIyvboParvliaWVYVF6SwkRVHKY6g8d/xpdOtIbbz5
-  ZXgD7225HAPUDFWItQSI2/CSSzQ7n8lMFuTkj0xXLOer5NbG6dveUW/L/g7/AIg63LT75k+xwy
-  Rl 2yvbODiqKafFbS/eS6tG3eW45ywwRzirE+2GysRHdLcElxIxJPDHr9Paop1+zRQxSSC5hOW
-  ZI+CC Bwc9hSg3bTr+hVOcqkE1Gzbta35dn53K0QzayS3dpLbSSTCTOMDaOoAHTNOlNzNbQyIy
-  PG43QIEB cgHvxzj60599wYlKSsVQbjnjI54+ucVatoWbTVmhdbhxIFaBOGUnrjsBWkpKOrMMR
-  VVCC9o7u+z1 X/AK8QK5lcRw3KSqjnb8uepbA6VrQ2aILqe3LEzsZEJPRB1x+dY8KzxzRTMVtk
-  jUoWlGQ/PLf0rc VVluPLWZZ1IwFjODj1Ht2+tc9dtbM893jUdRS0W9rteny9RcC2tIlfzSzQg
-  xtuxgZ4H54zSuYRE4 a5T7SsgQJk4PGTx9avGWC0y8LKYdshIk+YrnGOvY9qzphfNBb3cDW8gl
-  iZjGIvmVhwQT61zQbk+x eHqutNRS18+v3iR284h81JCzyjzPmOcBf4ceuajSNXggmlmCOFDOq
-  5G3JyeParP2KT7Ku6R3ZIvl CkjgY/nmrMkyqkkRCK+/93Ht+Ypx19ap1OxvKpUWy2/rzKSTxu
-  ZE/eujtlpFbhyTxj6in3NrIoI2 R28Q3I7sv3WYgKD9R0rWSSC2nkZ7JsKzonTGD/8AX4FVZp5
-  005V8n55CDscAlNg7/Q4rJVG5LlRn GpUdRcqt266nPGG2+2tbtdKDCGjZiSdxwTuHsO9GZoYL
-  FXkRkcI8cuOFAznP1qY2sBtt5mElxMFk lAODnODj6iqk9vsD+W/+iLMIclskZ53fQV6EZKWlz
-  2pRhJcs5aro1+Rblle5V1itnYvKF+U/dX+I fWmynT48JIjARM2Bu6jI5/Kp9rCSdzcRSQ+cpP
-  lcc9x7cVRP2qRxNtWGFV8phIuTkkkfj0qYJGbi pPlUvdXqtf68iu09ldmZYfkgDERjv07n271
-  Elq/2dZdwdfJ4IGBx1FaVvYQPq1pCwGDGQ+3gEjOT VieCW2t5Y2ddvBicD5dg6jHrWrrRTUYs
-  3hiIUpKlT95rX7+3mYlnPHBJCBGZIirRsoP3i3THv/hU l40IsIoIyDtx0OOB/U1cRIDI00iNJ
-  iNgI4yFOOzfgOaoMIfsX7u2mXDKvmO2Qxz249KtNSnexk8P TlX5nF/kr+jf5FNba2k05RG0xu
-  dwZFBz8oOCKlKFbu48wbRvwUHGCeg4qyzrCiDyg6OCTEgAeNc9 z+tUrqGRYxKQ8WJQAGH3gRk
-  NxW0ZXerFRcIcyau+m/53/T5kSCORLYQ5FwM4GcjaOp/DmqbMHkjV B8zKc8Z3YJ5FW2VwyyKB
-  kjAK4AUNkEGpjCsZjVA4kH7tDj7pJ+nvWqkkzKOHkpTnzrRdX/V/Qpu7 CYrEpJbqCOMcYP161
-  IFltpxLFNCzLvAyM5HQnB9c1OHhkihtMjcCxMv949KiQPIYklgk2qjN8pAP HWlzdzk9tKpU5Z
-  K3l/w7/wAiXzJTakzwmNFHlxqy8kkZ59TVyWK4mhgkkyFiUqwTAJcjg/j/AEqu giaWykWG4eK
-  SBiPnz83IzWhYi4iEG2WMIsbb/MXIbGcEficVhUlZXQ4zStZXaelv+A2MSG4WKN5x IGfBGw4D
-  Kv3jQ7xxXwkVLs2bSfIXc4P9DzWtAwEdrJdyxSvEhiUJwDuHP+FMkmE2nLZxxH92/lbC MsnOS
-  T+Arm9q3LVBh8TUlV5asb33euxT8m8EE7tguW4bpgnqv5Vntc3ioVVWR3cbmBwMjgCtSFd+ po
-  QXVjbsyBjxgevqfeqS3EUC/ZmI3MQwc8jI6D861g99LnfKNvdSWnlb7xN1xPcKkieWrg+awXjd
-  nH4AVmY2xlZFke6kbEW3ptHUmthrgs82UYTuMMOMAngjFQyW8M0zRRxyRSLOq4c8qP7v145rSE
-  +X dWMKuIdLr+GnzM5FJtIdqsswT5COAVLYz/n1ojhjOnzRxyQNmTJGPmUjoM+laRithfOlncR
-  kM25N xztxzj+dOmFnHKZ12t03qhxlT/F+FP2t3oeXObcly/l/n0MiK2JlxIWZv+WhU981sQW8
-  P2gSCSOF 9sikOM4UEc/TNU4GtVeQRbxznc7E7mydmK0bS3lFqs8zxowOWVhzycE/QdxUV5vq7
-  GOMrVeXlba8 rb/mTRxQT2StIV8/cdxXjJPRh6DA6VjrC80aLbxyywuAyFT0Az19T1Oa3IQwin
-  id4UMMwiA2+vQ/ lUkUQtL53hdXBXb5S9ieN30A5rnjVcb2ObDV504Slzarvf8Ay0MKS1X7L5s
-  iSQlFKoCceav94e1M t4hJ5DRvEspiIbcuQG/h/Tiumh+0rai3eKOchRl9uQ2OGIHYYrJs5Ekl
-  VAUWOIFUbbjKnOOfXNaR rycX5FrFVZU27Nta3vp9zRHayTmBbe7CyMs6NtAAZB3BqvcOm+a43
-  KjSox2Y5ByBj8OtWTAQkW+K V2f5iVOMDoQffNZsVrdjWIZnhaCJUYnzOR0PP8q0hy3cjOlUVF
-  udt/Sz/r0K8xMcbxorg798xfnD EYIHp61EFWOWErKTcZIB7HsCMirdhaXV5BAgG1Sh3O4yCSe
-  /4VpNp8SXF2qIT5NxGQp6njgA9vet 3WjH3X/XQ7VXpezcUtd7Xute9+nkcrBbiaaG33GBXbd8
-  /Odp5z+tXbpITqNxJ8oCy4iRBjC4/pXQ XFoilfNjadt26UwjbtJ6AemaomLakl3JbneGO1Wx0
-  BwQfehYnmdzmwlV+2UpL0WhhNG8l7Dl0jjY cs4yvHJNOu8C4HlkbJAWDHoR2NaTWbSSy7djbC
-  qsRxyTxj6jis6a0uA9xGbeYMk4TaRkpz90+9bx qRb3Omo2q0pup8tLFK3tlkhjnLQywxkiTYu
-  OcVGJhEYkiURKPmCvzub8qsMpS6kjdNpUlWXbj5um KesYQrJNE02wFVAAwMD5gffmt+bW71PP
-  +r+z95Pmb/ruRxXM/wBsjlgMTMqlMFMqAe2PWrtmZBIz Twqux/njdASRjBqg6qpDoQGDYDKMA
-  jtx61VkeO4uEKzDOeSWzlhSdNS6EVKLnJzmkm/vN+Ke3MjP NaSiBcquGxtOOn40sU32p3jZfs
-  3ntuDEfKpVTx+NY8UUwgdDcIq53iNsknHXt6UxvMW4jaKZDEWD lcenb61HsU27McY1FTk4r3v
-  np8n/AJGr5scqwzufvxElAcfN93P046U0eU1hFIrTLIpKMxYlQCM9 KpzRzSSlslNzl3UJjA74
-  9BioxLGttNHvXLykxtnqOAKPZ3WhtWjJxip6d3/X+Qj+btj3FZFcH5mJ xxznp+FNQN9n2idEw
-  /mAMcnd9aTyn+VA6yMUJXC4GM/1p25IzIGUPwMAKMj1GfrW/Qv4qvLPX1e3 3f5j4lX7PIjsFI
-  +YHsVHJH1z3ptuPJkjmmYSRfdcDtnlQfrVYqk88Kq+QB7/AHh0H4014pXVCySh nYn7uACDiny
-  30b3POxMruUYz+9/18jp3kWaQ/uQVlQunlrjgde3rWlayzskUslxAjMykJswSB6eg IqtLHHK9
-  vktE0RaMoAQV3cih0t0tmWfzEkldCDnG04PFeVPllGx6VdqtS5Ze75dfxJkETass0roY mV3XZ
-  kEgdKyrhrhdhIJBHO4Z5z2+uanlh8uKOMSNiFSu7P8AF1P+FQMJpLZJ4Y3eNADKSc4brW1N Ja
-  nqWi6XPUfvPRfIdsdpynmbHXKBCuSR3H1q9A1zBC2yIRr56nzZFyAx+6DkemaoiOfyY7mRQjOr
-  FVz8ynoM/XNWIA94nlSloZhIBMjnqQPvD09KKjutdjDFV6dSmrbLrq/vWxoTrDBDgx7xvZMgYK
-  rk bgff09qdJa2ksRgtGkdDKzJls5GB830ArLuiJSpy6w7Mx7j6kA5Pc1UlX/iYeTE2ZtxETBs
-  Ar+VZ wpNpPm1M40aipKftPhd/I27RYY7RRJeWse+YOx2+33fxFOknnmMETp9ms2jMmXTOecVi
-  JDGzhWmK oZBtAPL89R7dqvTSlNTkbdhHVwFbnZjjbSlSXNfcy9lBt8z5uv8Aw3n6oqIr5VmKM
-  ypuUFOw789a dHalfKMTu5MiuGTPK5wfxz3p4SP7AjXKSlAzKhVsZA4qRUCusdufs6Bm3PK2QC
-  P4a1c9NDrjiadS m7QSW1/6epYuZo2S980pNtIUYGCSTnIPYDGKyreIJeJCvmnLsGXd0P8A9f8
-  ApVhJlurdZLiLaytl BnGFB6H1Oe9OAtpNRaZo5WJjYqySEAnHXpSinFNWJWHrSpX5bX22X4bl
-  WNZliVJZ7dJI5mjGxMbg er8DnkY9a0Vim2F5C8sgmwdvRsr0/ACqkMP+grMkQniU4Y4ycn39j
-  WqlmWkRWDJIyu0gPQkHAYeg 5pVJpdTWhenFKUv1/KxtRW9td6OptldoU4J3ZJ29TUEbyS2Bhi
-  tDCrsCrsBlcD196itre7+zkNHJ FEiBNq8ZOcdvzPrU8kMcUbeRFchoWKySM+V3g+noc15+ibV
-  76nbQahNJT5ne68isZ5Xs4RHCIwRg hhn5egPTtzUjqs9vEk+54oodsUsZxnnjOeuenNW72QDS
-  kSRV4DIrhQOMjp9c1T3I1hDE1vMdn7p1 U4KkHdz9P61UZXiml1PRjiYSoxaWrbX9aXJ2s3WGd
-  mmEN4swxGTzgDmmxTyfZ5P9GkRJJUYEcc9j 9Kie4me/kliUsJJo3IbkqT1X8RUV0MEpLDO1vG
-  +yMqSBg9BnoTSUW9JHn4mPM7TSdtbu1/0uWzbM YLVrhiiuT5ise+7GParwjtbeK8tkSa4/eM5
-  eJsFsEYCnqOKy7V76MbPIllPyZZuQmeD/AJ9auvDL l7dbG68hA2FVhv4Hc1lNO9mzyXRl7ZRb
-  09bfk0XYY1kndyrWSzoWQXHzcD/OPxqxaTPPLLLG0TSM p3QquPLOMH/GqkTWsVis12ZI2mIZQ
-  7Z2jGDj271E8lsmnLcRCSRVYKGRsbgep9655Rcm18v6/wCH NIRlJtX301S/Pf8AE25ZrhHjLy
-  ReSkflEeXyCRgkn071UgLSXiFZ7e42RnYyJ26H8T2qH5o79ZIp cIVLBJMtkqeP0Jq1CWMjfab
-  SZUT5AUO3JJ4P0HesuVRiarDuCklZ6b6L8P8AJkl5cTWkFvtMe2OB hEWGdxyMk+vXFZsswXT3
-  BYyTp/AD8xQnJb6DvWxcQkaYzNDJhm3BmPygAjcPxqjPeCYrHHCsscpY 741ALAfxA+nalRaaV
-  kOjOm1GSXXfb+vvI4HRdTu2u1WO389Qvy4OcZUZ9Kx3u72K/QosbGYlinlg hevBrVMv76DzZE
-  jQJudnHAboD+VdT4i8Q3/jHxZFf65FpkDWkEVsiWFqtuAiLtUMF6uepbvWvtHC fw3TWvy2sut
-  /U6pXpzc3FO6/q3Q5ZYYpkg3zxC5dAzBeFceoFRm6d52QGI4beFC9SOp/CiSTN3bC GeBh5Xyq
-  F+bAyM59M1lXE9wCkV7GHSSMuTF8pY9Mj29q1hTcnqKnH2tS1r+vT00RYvPtKRxRTKQX OfNQb
-  Qy9Tj9Kou58yYxszTAmXy2+bb/eHPGO9RwSzRs7NBJOGkOHHRQvWrEV3K6TsQsgKbnVUAJY 8D
-  nHT1FdcYOPY9DD0eXmcEml1/q41ne4t7jyImn2sE3x8A7un4cVUihvVgkjXC+SwCRtyWz/ABD2
-  FRJNtj2tIYycq2DjeR0I9u1NEi3VmrfaPNmGAMKRsAzkHjk1uoNLyM6vNLRNfd/X6DSN0kj7wF
-  En lgs2cf5FV/LfyJICSqGUMDJnjAOF+prWjb7bvgMPkOGErsehIHyjpxmobYeZdxy3qhJGd2Z
-  TwMBf T2NV7Syd+hhXxajG01drorFQrAzRqqSR7o2KKxyeT096favJaR2+4qrYZmMq5Bx/Dj19
-  6cwEssrN Iql3jKEcAEjoPSrMk0T2MisFndZMsmOVPcZ/CiTurWuY1o3tTjC73+/8DOMwMTK6R
-  75QpUouGDZ6 UjtAjHG4uEIY5wc5ois0KxP52+Jst5YPz4ByRz3xVi2U/bk/1ckksLMAy5GTn+
-  VaOUVex20MQkpK Mdkt1/X5BbRPFYyyfIdj+WqkZ4I5I/OtGW38rT4EM8TQZDK654H8Q/HikUN
-  NeQ/aIZJ4kQKwh+X5 m4H5ir0KhLQ2UUbW0gJJW4+Yrg5rkqVHf+v6/A46mLrJRpu1k79NP1/A
-  pz20K2MhR3Yh94TdkqM9 D/OrFxaSqUEUcgdonkJz6c8+9Mis4LnJM26V1ZwVzjGM8ipYo5PtE
-  RacwMSI1aQkgKycnFZuduuw 1VlCEWp6pt9fyX+QqW8k9jbF5FWCaIOnHzAjgjOO9VntIAj7YJ
-  jJJJGQWIJGc8D8qswGaJbYSq0s PkeZGUGPlQnj8aVryZmjOwQQvDvLuOxPUVKlO+g3iK7Tell
-  20X3LVsUrFcakIyyRyRMqoD1MZHzH 6jjmnXJtZroQNbS27RyHZuf5mAXqfWoY3ni1aQCNLiJZ
-  FQyIv3jj5QD71cYvaaotzdYTcjK+R0cE dPzrN6NWfTQ4akFzys29LpJ316kUEUD2UefJWZURW
-  ULyCW6H3NVTbPDeX108JeIuUVcdeOMe1aSL Msk5a3Z9rEZUj5eOAffNZ8mmKloUYXMLljuWR8
-  5I5/rThNXd3uc9GvGDak7J6ar/AIYZDJCIgJrV R86bNqgEjPzfrWxPBFdWoCoVMgxkHqWOAw9
-  sDpWRAbgXkm6LzJMqWCjox4WtG2tLpZwv2e4gVNzT lzkK2CcD04qa2jvc5selTmnB3fS3+TGS
-  abc2czxwSpJlXZyR95h8u76YzTbe4RYLQ/ZpHMdpIEYH mRT/ABVPHLcLZRSeW7RKilNxyQAck
-  E9zin3+pNIs8lvp06ySI3kEKCAhwCQB2qFKTdpK/nsZQ5qr UatrPrdL7zNigjFtbsxuHC8RMs
-  hHmLtzke2f5VCkc6G3uSYVE0Bk+5gADjH+HpWjZyRWFnE7I00a ryueSR6eg56Ut3uvltjKVSF
-  yrIqDBeP+LFaKo1Jp7EwlKDkm/del97+SMCGR0vRFAx5ZWjEhJ/dj P6mrQjhmljt3uVHmxMYz
-  k/KobOD6k9M1oLPDDq4RZLUwsrC1cr98YyD9M1E1sIrEzPC0sjgeYU4w cY49BWjqXfYqTU6qi
-  pWb2/qyKCW0RvJoWuVt4ZYw+4k4hbsh9yaty2c62P7uRVLSbpQc5VwBx+Iq 2sYVSuxduSjhgN
-  28Abfz5IolmllK20REUTYkkLjJ3LgYz71DqybVjSpKTaUXtve3+VyKG1uPtVxk E+bOoOP72Ol
-  STW8htPL86JDtZWZkz83p+NSPqFxFDMUMcryOXLBeFY8AflSCzuHjSOdxK3zBgowX C87x7Vm5
-  SveVkcVab5lUmkn007eRTeWCNHcsk8oYIkcYwX5yD+GKzJ7K+utQW4mKwS3SvJhsjDDs evJxx
-  Vy4LzXtwi+Tb5dE8wrwWYcEelQz6XcSPKnnSSXUXMYVjhwp+Yiuqm1CzvZs6G1F25kpPurq 3z
-  0RhanA8X9nv5ixNJC7sHGfbH1rP87zYlXz43iUlSdvQngZrqbv7LfwurFYplAMG9v+WZ5YfXjO
-  awo9OMO1YQZxKPMBjUk7R3PFd9CquS0tx4NX0qaPXW23muhRnja38t/LDtuKsATwfy9KSCzU3q
-  RK 0WcsWJXvjIH1xSvL5IgguonVnmXMnQRqMHJFW7iJjdA28UwV5XZmAzkge3TAro5mlbv1MJ1
-  5TrOm 9+70/DZjBaxMiFpViATDE5Jk75X2xS21rbPKZJX2RYKgZ/iI4FXbWKGfT0kuHCTFcbW4
-  yp6EfhSC ezhv4yIGdFjbzCG4Jx8p/DpWLqSd0ric6klJQk5SW+iRHaWVwdQWUxlNwI2OM5OOR
-  +FULjS33Isc MrIEz+NaDwzyNCAjhERUc9dhbqTn9aIiI/tQWUyCNwkTA8eWec/Wmqkk+ZMuTk
-  m+eV21tbRfO5if vE+0bFaMNMp5PTGcD6VDsZ7uNFDlmfn25rTktRJM8M0iwsiliTnsQapSNBL
-  f4EjxIkvX269q6ozT 2KxKp001De26RIYdt5ttiJWCMQ4HDL3I+lQLDLuj4LKEIGO4PNSnzRLN
-  dW6uI5C4HooPUfrTreZx ClrIishkDBioyBjpReSRzVJzilJw5l1t/Vjoo2WFZRNDLPIpJZkOO
-  x6/n+lKl0o05UDI7FSU3ruK jo2ffuKWJZYZYxZzQ3SKGQsFz19c9T6VGVZd7CDJztI9Mfxf7o
-  7+tedaLev9f5HqNUue+7Xz/P8A yKH2OST7ivLtycqDg46896kTYSoEcqpySmeT7j8K1bKFbV5
-  TvYxk5jyc8Y+99O1QxNH5m8XEO7lm JQ/MMcAenvVus232O7629Woad7bfqjPe4VYY1w6AnCZP
-  3u/6VE5jlvYIbeKaWQuwMitx0yrU/Y82 9vK+8+MkfdOMkD3p6Ru/ARP3hVSduBnoBWqskP2F6
-  XxKPX/h9dRi21wumZEE6qhA+fPOTkkflQyc tIJI2ZgXUqvKhuMVrS6eVmERkJEX7uUjpuHIx9
-  adDHYpFlGIlSI7AxzvB5NZe3W61MqfIkuV3+Vv zbKAhaWz852RCZTuGOd2PlUemetNRFmkPnS
-  eSzjIdhwQBz071opa7cyAbWaQDY38Bxnn37/SorSI PMkcEYkVshsjdgnkip9qrPUKUlaT9orL
-  5fduZMgMssWJgwALAAHAz1qytuHcRI5MahpA56YyOTV4 2U6sFW1Ko7MyuBwoA5H41FBE8a7wj
-  hFAzuPO09vzq/aprRmsOSUHyavpbo+4WvmQC58qS2mgaQfv dgKg54HIyAfStBLRDqrH7JOCJN
-  rMCNoUjP8An61YOnXMt0IRAURiTKw4UPj5f0qUtFbW0c3mkSCN g6s2S2RgfpXHOtzP3d2cc5q
-  o/Zp+8+3+dyGOO1kvmtYLaZI2/eKQ/G0DJNPjt3EZuVlDSvEDAjdR HnBz60skUz2hiSRAY22L
-  tHKpjJU+pzTxCstrD5LFInjY8nJTkArn261m5ab/ANf8E6acvZpWdk9G nr+ZYjdbaOCNmkkR1
-  aRcN+hPtUd3fGaZY7VsNu3SHqrYHBotrNBqcoecRbJESOR+VAPUEepp89s0 GsRfKixO+zdjv2
-  /Lv9az9zn8zVKhGo03dpXSWiKpu4pLCWafMkjMCyLxliOCPQVG0s0dpiQGCdDg hhnb7H1LZ6+
-  lTysgvxE1v5hRC6hfp0I71nG5ma8C26b5ePkZd3AGST64reEU+nmelCFoNyVra2bW v+ROZLgX
-  MjxvEpEnOV4YnoR7CmXksL3scEXmLsbYCzZDZHB/nzVy2e4XEpiDo0ZwwUYXJyQff0qm BBMI5
-  VIgwmArDJOD14pxaUttjlnyufa+3LqWx9qh2Rf6xHKEt/eCnPH4VoSXCxXUoEc6QOzNlnyR 3H
-  Ppms4AgQRxP5mCrq/93HQH69fpV6G2mbUpI3zKjNwR/Gx4JHsPSueoo7s55UotynK2i9H+JLNa
-  pcS6fiWNoxExkBHEpxwV9ADWnDZW4s08vdFIIh5ivyAMYPHrWMj6p9sWWONYUkUvGjqDtUHbnp
-  07 1agsbydSJxPGwIThsBsd/wAa56iaSTnoJRcbRdXTfT+kTSQQ/YvJjkKW6jaJHOccZHP51It
-  y7Jh8 iSR02g9G3DHH0qF90sgtzNFCHbeA4zn2H5VdunumUvBHGjRnKhkBJPHSs30TO2jKo4KE
-  bX6Xdvns UpftaxwWqymQRwlmQ5JXB+YGsZjapcQyvDcRxyFWQq/3B3B+tbRe2iCefcDznYZwc
-  bs/0NVJoLFp mDzbreL5AFODnGR+Z6V0UpW0aOuE1GMoyjb0X5bDnezyrBXdVVmZN/K4OFz9Ot
-  VJnH2yIMJ5AsJM rI+N7HoPxHSp5bsKVMcaNM8ZkPHB4/lWU6B7kvLdxRK4UHk8Ajn8q0pQ6s5
-  KdKKg5u67Xd39yHyQ TxQWrW8MytJ/rGLD5WB4PsKkiu7d7j7Net5tugJEkfB3AfLg+h9Kg+e2
-  tt73a3MI+RyufmZjxj8K bPEILxEGyVYlAbaMZx3/ABrdJS0ZFKopR/ePbZrf7/8AMkSSBUR4h
-  Ise07gWyQT3NSiaTbAITBLN 5LD5ExvP/wCqiO7T+0vLlEUapDLtAQABiOM+tQRW3kadHcQybn
-  ZR8vfjHI/Ok0upM5xhpb06/wCQ k0MyMjq0EXG5mKZx/wDXOahkVSWhsYMSiTMRx95F9fU5zQR
-  fQSCCQ+YVBK/KD781FDZ33l+aI5F4 YhvYDkVqkrXbRqqa5b1JJN7Wf5rqbNhCqvLdX0yW4zsb
-  K4y38B47VlmW1ktlaRvtjq5wYiU5z93n 1q8siR6DA6p5zDHnBju+Y42j8R0qoklsbM5gWJ496
-  IwGA248Hp1FZQT5m3f+vxOWjGpXq3ld306J fduR3MsX2TDhI5pGDbMYKEev17UksU/lykmLNw
-  N5A6qV5btxioZUNvPChKOpQhWxncM849/etdl0 2f7NbJM6LIS5YsSenC/U1rJ8iVtjtrupQgu
-  TVd0k7HNSNE3lFElBYMwYNwoPH9K2IYX/ALOuUlgA Pmr+8AGY/UZ9D1xWhaWtlFp6+XPFG+4M
-  vmnJPoKjF9b272UkmXBiYTYPDMCeMetTOu5aRW3/AA55 31icpJxhd+e/4/8ABKcDPBOtz5c21
-  GA68NjIP5549K0Q7XVwqySLC0swXBHzFtuV5/n61Etw7okk M0LRoNgiK5O7OT+dRRy+bqMcty
-  6w7ZVZVxjnJx0qJJyu7am1bmqRlVWkkun5WLkENpcyRI/mwZfM yq2CWPQD0HtVojT1iW3Nyok
-  3CRy55BXp+GOKQ3FnJLJvI+0vJn5eNvzfrxmq8UUMetXW+VIVWb5f MG7dwSPwrmd3e91Y5XBy
-  fM1LTp1v/XkP1I28sLNB5iDEjDL8YYA/l/jVeBUazjEV5BGpj3kOu7y2 B4Qn3OaWK1tWhQzzG
-  QeWNwVsdG4/StV4Izdp5Nvtt0RhIMDOTz+lN1FGKj2O5csaai09Nf6v/wAA iLw3FjKZ5IiJSZ
-  AkY2lZOyfXjis1YruCWFJZo4z5DPJ567xGQeQffpWnHst7ASwQm8uVKxIV+64b knHr6HtUBkj
-  eKJ79SvkwmNU7shbkn1IpU5NXSWn9dDKivdajDT5X+4UTi4sXjSTzD5uAyt94dd34 d6zgt3Nc
-  h1n2xuoYGQk84p4FtHE7RhobJpdsTMeoPv8A561KtzYTT7lL7zJsgTfjKnqfwx+VWly3 5UcU5
-  uCbjt3texEYI59IneJnL5CmTccOc/LUstrLb2zol64mllJKsxJ4A/TtVuRryN2jIidAyliq YB
-  brkegqbzWuZ5VIQs0jYbb1XjJHoKzdSS9DzcRiK0ElGWi1/r/IQDybKaVCzsx2qM5CqRjp61mN
-  p1uWiX7Yw8iFlPzngjBA/Gt2K3DObUP5bZZstzuCjlh7VB58clgrHy8SHc5C92GP5VnTrSi7xZ
-  zx xtWPurV/13RTSVDv3xtgkGfn+NuRj0AHUVox28kkcSYUMbeXqPu7e/0PpWWl0rytawotxuc
-  bivVS B1+mBUYtGW9h86eSOCQFkBcguvRiD6VU4edhzhzTT+Hl1tvclhsYJ7a2aZWYKoZGU42B
-  hgA/zqGC 2uLTyh88ttvKyEnOWIOOvr2psFxC0zRafcCNgQEEmWAC5wD+taSu11bRpcN5CMQQR
-  xs7Kp9STVzn OOj27Fz54NX+5p3/AAI547f+ybOQ2t0ZGg37RJySvC/iKiu0uX0qNoF2zDBkBG
-  S+D1HoKmNy6acI GUCXcpYMOjE4yPRfatW4kWRIA6BmS3dJzHwNxIxWPtJRa0vqTCdWHI3G+vm
-  9PO/QxozJHcySXMO1 SWymANxGMEegFQzJLN+9SO5S4L7Qd/G36dsmpQWuPMjmkWRWxKu3g4x/
-  I4qyVuis0ovbZAW4Taej Dkf19q05uV36luElNyej/roVioe2AUrbXBlDCKUZMij+MY7AVGsar
-  MxDvEsyFkmckrg9h6Z/rWi2 nXCabJFHjyovlSRlyVJwApPqajiihMslpdB43J3MWPAK9VHpx2
-  qVUVtHc5rRgubmv5X/AKv6HOrD LHJGd0UNsnlj51yfmBHWqsFkvleXH50siy7XMb4A2tyPoRX
-  YyW1iZxGzGVZlDhA3Me052H3rDl0u 7N5G9gsjrL+/YZztC/wn3NdNPFKV9bf1/wAObTxUHzJe
-  7deiOXuYrd9akZFZrUBypJyW9D9M1XIj /wBHdTLcKIyJdrEbH/HsRWx5MCXMUTXUeAGEJVfvL
-  yT/AFFLbRRR3RWK6gLcuQUzgqO/rXo+2SR1 1J03CLT97qulvWxVtQG0iGWCWMx+YyTlueB9xR
-  6HBp94k8iaYosZWLQFGMQxnH8Rq4Z0h0qNE+zy 5bMaIuCFPUH1J5we1QRXFu8Rmj89XTPlKZN
-  2E7/lWalK/Nb+vwOLD08To46a9X/TQQWs8GnpdR3S 8qUdG/vZ5FZptoVuIlMjmRVDPg8eZn5R
-  +XatWJ9Rlt0DeT9mYhg4QYw3JX/ePrVOeCC1MMyMW3vv VS3JX1zVwk+ZpvXyOiKqTj7ObXM9r
-  fkyvI9xBqVx5iDzBMFbeuduO35dqpMVcvLtYj+FUAB29d3I qwytOymabLq6KBnllPLE/QdzU6
-  pYvcXBG7yon2RsW4K//XrdNRW2prVcabsrp9bLf+vIwS0gjVd6 hd7sx7EEDA/SrME86P8AIgV
-  iMfdB2fXIpzAb3aOARxsC2G56f/XqCU2yGMs7NyG2huWbNdN1JWsY xpclOdlpvZu977nV+ey/
-  vjCbeRWw644OeCMeuMU1LZpXUyXUaoke1m59eB9TULGaZTLJDIY2kfJH GOBkH9KsW2nwskZkn
-  8tZIi4BP3mB4/AV5ztGN9vxPYp07U+fl+e6foxxt44Y7m3hguUkeUMUkfJQ D7yn86pysn2ZY0
-  2sm3ggdw3StMhRCnmXQllizuYA4Oefx9KgaQKqzC1ISZc4OOcnGR6AH9amEn1/ r7yqClF+/dJ
-  bX/4IkbCOe5SaNoUaQMofqBnn9KdcRRhVS3vIZ0dtyRqp3DBqWG1Z7g26ROAhMcnm HJDt/hir
-  C2lmtr5UxaN1kwWz+QqJTipXKqOmqi017KzX9fMyY5JItzqsqSyTfNubgHnK49T2qdLC Z75o/
-  KcquUAAGV2jp+HetARRRlEuNsaBC0bHtzxn1I9aoXSXcCQkM6IhaOVgf9YzcnH6VUajb93Q Kc
-  p0pXste/6alo+QLCOOC6UOpG5mBwM/1NPtxE5lMit5MV0kYKNg57UyO032FqwiZ1TdgL1ODzk9
-  8fpTpd0V2LqFGW3Me5Q3Ic4xn8DWWjukxQhOrTkqctXfdobPdXIubl1LCUXB8tQM7lI+bA9OlN
-  gQ vBgAh1mX5Tz8uM5PtxSCCK50yCaORmuIyqRop5zz19STz9BVh/OsQXiCh5lBfK5OQcZHsc0
-  9EuVb m1Kh7vJ7ql6b+r7F+Nbi41WKQMxWWIzvsOArAYIP86ovGZLWFEdJCrRh37A9vzqSNY44
-  5LjModJF hChsde35VcNoq6vMbe0n2Rt5TEtkMSRj8RXPzKL/AK/rqcdVRUpS5tvS1/1KUpeyu
-  yLcGbe7Z74P /wBfNbUy202gBEXaXdXjQH5sAgH86yJYb2wV38vlZdh3DOxs4Cn3INXY72eG8u
-  FdoGaORYV+ToG/ z+dRUi5JSjrb8S3S5oxmkm12/UqTacvn3X2iYv8AvWYIpweB15plrF51t5K
-  M9u0jCZTM24v6sPYY 5q1LcGaSaORhJGjlXCDBBPyqCf1qhJPqfkJbJCryoTHKQnOTyNvoMdq1
-  i5yjZs6I1JWSlq/w/wAi pJBKwlVJBJhhIze3QCh42guy8wZZWUqxBxtbGT/hTZYHHm+ZIseJA
-  oUn+8Pl/LmtNU+xOIgyzMbZ pGLc5YHtmt5Tsl1O6eIaS5NfJ9f0sZ6xyywRP88Q2qPLz90dCx
-  /GpJY8vFbBg/kxhCyj7xJzxx3F IuoTDMgjX5Gx0zjcclT71bSaI3SGSJ5ZDKCY1O1gV6H6c0p
-  Oad2jnnOtGSlOndLVa9flYpKftF4E UNHC2CyA8kdCwOOgrZP2y0nKQSJPHEjCNgPvA/eaoolH
-  9qecAsK7hjI/hwcj86jkWGSBHlEySu2A Q/ypkYAP161jKXM0un3i5ozq6r3X87f18x7yyT6dJ
-  P8APGhQqi7uQuRmtWG6jjtXlR3ZhIDMNxON y8/TFZsyvYwxqtxGfs4MWCvXuDj9KjjSaWSONf
-  3jyxSSlV4C4HQ/SspQjKPkdMXGVNc2iTeu34WN CyDfbE8ueKdI7faqheQTnGc9TQ2o3NvJyVe
-  FU+UEfxH/AArIgSTfZyEOiOo3Nnjdnj/CpXmtE8xL mKcPJligbBjOc4P1qnRi5a6m8nQdVqKU
-  o2XTX8CXD3jW80sLzgR+WqxnbuOSQ49h0qC6n8prmJRv 81g+7HA9f/rVZN9eRNE9vD5cQVsbl
-  BwT1qv9pVFtpHmguyImXCJjGDwDnv8A4VUVK+qFOrONT3o8 3az/AKRTgvIxdsXBEewqrE/dUD
-  gH60eXNN5TwvHc4wr7V+6cdDS20PmyvEGgjRW34K9R1Y/QCpFu YY4XELBVBJVQOSc8HP0rd6P
-  3VqYShOVW1Na9nt+S/MSOdfsxhnaM7ZVdV2YLHPX8K0poyUkaYBv3 oRGXjI75/GqqzPvmmkjg
-  lRZUCzKoAX0B/Oo2e7acLHmSSFWDei/XNYyjd6aHLLDSjV9yKsvMfOYD BOwifzFbYwJ5XjnPv
-  UVn5n2CadEcohAiOeCpzkfnV20t02r5sggjnchRIc+YMYz+dKYfsf7h0e4D KC5jOApXp+FL2k
-  UuVGk8VFRcEua3m/8AhiB7G4uGt55LS7CheTu6nufoPSnyQTiITRyB/wB2+zaT gjcAPzodVkn
-  MdxfGNXDSSDJ+V+m3jpx2oQWbWlsod32QjIVyNuW6H370Xlp/kKMKianKPytp+JGI 0uJriJoJ
-  UeNkVgGwN3/1qrhHt4UTyGdJXDsx5Abv+FWJIrtpXhhglUxSBBzySfU9zT3tmguJUnlM NzGxG
-  1+ijAzke1UpdL/I2s2/ea9N7fdr+BC93JLFBJ5EbLFCyA7BkE0QiOSGPcnl8rIHHADDoPp7 Va
-  kM0wjQRo+JMII1xuU9G9wMc1Qe5khnYh4nzvIULkegFOOqskHKnDljDX5/1+BKJIJZDhZJpZ0M
-  gCHG0joPxqOFQlrEZZraIxtsCyLkgNyW/lSB4Y9OUKcpImFVRhg4PBz2HtV57KFrSBZ8xyMuAM
-  85 B5B/CiTS3Oeoocq5m/69V/kZlvagsY3u4Y5Fk+TKn5gvJNMVDPdIFni8uQfIzDgnnA/pWt/
-  Y9tIF WJLkKX3I2/kDPANE1rJBptzIwV44rkFNgxz7HtzT+sRb0e4lmE3VXK7y87aencdHCEtT
-  E0LtKG38 /eIX/CqcTyvdxzzRtsZQ5PYFsjn61Izz2YBk3G7hLQ5J4Ibkkj2BrRSAzpOks0f2b
-  7pVRg8DK8/h mseblTb6mkW2nKfXrbUpLsZo7Jka2BwJC55YL6Gp7lk8mFIZjEs4MsgZsnOMCr
-  o09pNl07G5GcAx 8csOn14qxHYSpdwiJ4bciMszzpu2kgjb9fSsXWhe9yY1YSd3K/L5/wDDlBY
-  Z5EMsz/Z4QAPMHCo/ YfWopJFYsH2tkEmU8qB0K4+vFb9pbpILVJp4ii2jq/oDnIz7+9ZDrbWt
-  v9r86J0kZXRPRQMAfXPN RGqpSsTUnRrVLNO/TRpf16/cZgR28xoGGwrmONlzgjgjHrUFsY/7N
-  kuJNqyLdRgR4wyZ6j8e1XpV sp51tjMyTPIrK4PGf7v49qfEl8k7JPBGQWbJ8sAZ7fjXVz+7qZ
-  1qXuNSirrdbO3r1BHaW4vGTckS TKrlj91ieAamFmWBhRnm2EqZIzjeq8kj2rOkR7cXEW9UIkB
-  mLDhmA4H1NadtfTJAgkKJbylWJK8s xB4B7D2rKpGSV4nJisNVjS54Ky83+Xcc9pmMsPPAbLJ8
-  5zt7nPpVtLCOK4ciOQxhWIQn7uB/jWDN qL+WI/MHmJMgGD/B/EKtz36Q3HnQrM6P5jBi+R24/
-  nUSpVdF3OCWHxEYqM+o3Z9jVZoE8xvLAfaP vs3BI9uaikSSDT9tk27a5WPzDuKqpA7+pJofU4
-  /tEJnRijQvt2nAG3kVWW7spktWZpOYnaQq2Aec n9a2jCejaOinh5qpFqN/lv5b9CNobiz1CNV
-  8mK7lTKoU546j61dg1NEMSbo5C0LhyE4V88Hn0p01 yktqZhBJ5o5GW6ggZx9KC9v5VswtARty
-  ygANuJ+UE05e8vfWpo6ejq1Y3vp9lbEskkUmlWyR3UT3 L7V3f7p+9+Nab291Lbunn273QmLsE
-  TGOO4+nNc59lmmSRmhdZy4VEHHGecfStbF9BNEjTxSRxrIu FHzEHGGzWNSCVuVmVWF4Rakm09
-  tPxtuiMM8QSQGKVUX5nVcLg5H5YrTtoLY2hQ3UZZXAZM84Xr+h qlC8Zhj80jAAXbjG4A4Y/QG
-  iKAPBcNBcxSqCUBC8t3Y1nU1XY5q9GlK17p9+j8tjbu/LNpJFbziJ GcMN+Tz/AAA+/FZs91cC
-  8t0uvIjmdW3Hy8Yz1/Gie12QIzXAOeAvcn1psTyGYABGZEKjeufcn9Kx pwio9zNYei6Gmthqx
-  piV2Yu7OigIeQDkVjX00sNsypKyyvIrlgxAGO49j6Vsz3Eql3sgiYmViWXI A25C/U1lSi5ur8
-  XEkW1JIWE8W0ZDEcY9MZrqoXveWxjTjUvepJKPbS/3GM6tJPdLCiSThw0WxfzI 9s9qdYi6m1B
-  xcRiJ3bcCUABBBBH41pW9w4s4EneDEEZjDogBfnKnPfNKLiKW3ISeBJHkWSMMOUDD kH6YrslU
-  dmrfM66s+ePJGHz3t9yMq6hiHlGJlA2oIVJ5jXP3W9W96Y6TQ3U8s9p5UXnbAdvABBz+ FX3m0
-  8RP50Es4QbY2jbAZM/epXjmuYJjbRud02/LjI+7/wDWqoza328y+WomubVeen4mbDOFtTEo aS
-  OOZDHGAQxABA/WqEhY3dvAdsPyoR5o3K2CTke1PFjPHpcUhWWJ3XchkP3gOv5npTyInu5XEcoU
-  YMbHoExyPc11pRV2tTR4ai6TdPr89fLZfgWzY2cjG6muI3UxsrpH8pDdmHtisqxjmitlkZ4VZD
-  99 l+V/7px+OPxq3cLHLcwJHMGhZiY0UEHGMDJqrKhjmInSVUQgZDEA4HH50oJ2s3uedChUkn7
-  XV9v+ BomRMn/E4jKTxiZgcRkE7F53A+9Ytu8ciQvHE7jzwgfqI25xnIrTiEswiAbzp9rLiNcE
-  c8A+5qqE tnvIFVGUq3HO0BvU8V207K6ZXs27yjNbbNar+vQ69EfzZYLp1QkhpCeAp5yMe4xVi
-  ya5tdMtQiCN VG4TTKGDDJHH51npzJN5jGSYjDKOCzHPTg9Bip1lkiSKOOTcN6J5bjJ39Mfj1x
-  Xl1INqx7+Nw0ZR Ttp2dkvlrf70X4tPeaGUzMke1xHwuO+cH396jha5SCWMrEVEm1Y9nIBHJHt
-  irV0oIZZ1mSASssrq 2Ar4ABqnpSRrrM0qrJP5J8vy92S+c/N9MVgpNwcmccZynCUpu6jsv+CR
-  LbRxX8TefldpDndyCDgZ PrWhDJG2oIrRmSMMYwndSeASe9JdPY2/2aZVdlH7tOcgqR9/3wahQ
-  tbWyRQ5kKnLS4+8V5yPqDTl JzVy515VlzRur6a2K5Rft4hc8xxYG8ZGz+L8ff2rVMFt5KpEzT
-  7QykhuCeAD+PaqZilvEku4k8mP 7sRPO5cevvVtZLRtJFrLOsCYZgp+8nQqCe5qakr2t8zsrVF
-  OUeWWmzSW36lM3VzDFJGzRl4pkUoF xuGeSPqcVaRAbO4cQSRS5KoHOQxzxgfnUbXVtDBGZDHL
-  NMpaQIOS/wDCR6D2qMzyRQXNuJ1GJV3b 1yV2j/E03FtaKxU6Kk06Ufwf6Fa1NoJVd4J4xjBw+
-  MZ+7+INWrXylupH3M4EmxtxyN204qrc+fKF lDxOFdRIij7wAzxWhYvZrqs2Z0jjdsszAkZZTj
-  FVU+FsiULU5Sjfz3YBGmsxFFGRKoy4bklh3/Kq lrhmPlvOTsBY7+CTnn8K0YI0tIZU+1RyylQ
-  5IJGQvJx9QarxSSSXAmcIttgKsaKASDkdfY4qFLR2 2No3hBqMdPuf/BFFxIsHlqrXYOG9c4HX
-  655zSwm5+02pWEP5sJldccsQfvfQUR+ZNcSolpMm3AVw funHQ8VbAgaye6j8yO4OWUbs4QcEf
-  iOaiTUdLbmNblppQS1l6P8A4Yql2aaOVraRYgmM5A8wHv8A X0NZ6ht8ckU32dZWEhMhJ2gkgZ
-  qxDZJFELh55JogNqKrY+Ugn9M0yRVNtI6sBHHLGiuBkFdvWtYt XsjalSja0Ov3fjdDoLJo3Ju
-  cs+4GIZxuVev9Kp/ZpzPsiLNJtKBGOSB1wfrmrsptiLUO0rJEjRFg /wB71Ye3OKkaWM26xsCY
-  9oLqp+ckcDn3pqc9+4QjiXUb5r/LT/L8iKa1aO4txBG880oO1E7KMbif 6fSnbNt6ELpEspacF
-  uSdowpB9D6VPE98LZpoyEk8xioIyVzxj6E0qRX0EOJo1doMxu5XhQecfmah yfVr+v6Rk+aMru
-  af9ea/IhguS9r5k1zC2844XiNccofc9qpxCB3iaRmuNvEcMZIJHPJ9/wDCtCIx PbbruB2DMPM
-  WIhdj7cAH3pbfy4rRHjtZCIEMZbgnceMf1p8yV7IrDyTbtdv5L/L9B8eoqsTuY1XK kuHAYhxw
-  p+mO1SBVlaO4BaOQx4HOCwK/MfwPNNksLh4YmBhdUQJt2ffIGfzNOlsmlljPlTRYjJkB fgEnh
-  R+FZN0+jsdsoUo2Stfv/Vv1Ik02OBY5ILpZYo/unJwSejfT0pLxmaWMyQ4LfIjEffPQn8Kl W1
-  thPKheSSKOVUCq5BGf8K0oEjkmEZUYRmMbE/d9vqTSlVcXzPU6lUnQleyb726fLr6mCtrMyqsQ
-  eU8MNp4BHX9KtpaRSWTGJlbegJA7Ed/xFbHmmSENGyW8jlclxnkA46etVZZCqzg3EH3FZgq4Mb
-  Lx il7ectNjSOIqVpXpzSt5P8d/zMtkkRI4/IZnijCFl43buao2sSTamsbQecPLO9F6lgD0rqk
-  W2mtA 0kolU4VVj4OV6knuBWBMr7A0A2mSTcSBhk7Ek+hrSlV5rrY4qVf2kpQuvx3/AD/L1Egh
-  zo0weRYw XXMZHzFiM7voKkja1SBPKLzuRhirdTmrtvb2cd5cySyM3ly7FGeNnf8AHnrUdxDap
-  GVs9ysMxg7s 8kZFT7ROVtTGEoqpy6272svw1IkPm3O7y28hXEUS55TOf1pz3rxXS+aUAGWOR9
-  5upH5VFbxyR2qP JMjE7QmB1ycZpJLCaO/YFhiIFCjDJJxwPrVe45WZvHkm3GaWv9biPKsN3I0
-  USSR5OI3AZjkZ3fQC po2m+TMSyW7EPHsXBZQPvA+grQ0+1EdxELi1fyXXMsh7seQo9Owqw1tG
-  JriQxyRuJgjjOAoK/dA7 VjOtFO1jCq4RnyqOvfT9HuVoLW7ju8bTPskUbh3Pb+dPniie9Jt5Y
-  3O10eRzuBHUfj1qS1g1VILw wzRySLPGxbZwxx1HtWc6Bb9JJLmORRG0aCMYABPGfc+tZq8pt3
-  +70MvZSlVclJJ22V7/AD6DLd2n v2mbKR4WIdssehHsMVWubX7E3mN5cx3FmOMhW6FTn6062Js
-  J4mgcMUXZKrDIVycg1PYRwPqEg1CK dwiFDhsDPr9ea6m+VuXT8zun7WLdSWqS7a/iVZl86UeV
-  EwjbcoYDAUgYqxbRytZ28iyLIDEVbIyQ xOB+NbEVrZ2sNvHCZFghDIzu+4OzHO76Crwi8nS4V
-  YxgSHzCVXAADYK/WuWeJVkkjzp43nSjb/P7 ys8LQso3llBEaheoJYYH1zTJGnk1G8hRUbdMpY
-  be685HtxViaS0MkqxOZo/MX5VbB3bsq2fSmXZE TXEiONwlIRh2HXJ9ec1zxb67/wDDHGkoSs3
-  q9romhMEs8clx5LSujOflGMMcAY9T2qL7MhWGAjaV gKMo4IZgc596lgaRdUW5uBHIkgDKqJjH
-  GPy5rQjTzLhUMkYDDCjHzEDOTmspTcXoJy9nJyh0676/ cUxMILRIYInQLtyXwQWA4P4c1TSdn
-  uZlvsw/MH3dAxAPT2reW9AXHkp5DBWUlR05GTWRc284ijkK faFjxG5jGPmB6fiDSpyV2mrXNa
-  Lgm+aOr/r+tTLgk8/U3CuIVnj3srf3iDwPapFht0RYmQzyZTcB 068ED0HeqlwCJhOrxxkxsEX
-  HKDODmtSE+QUJuIEcQsWZlz05/rXbU0Sa/qx7mKpS5VKOqatbX8dD NvYkF+QRGJWJkV1GAxXj
-  j0z2q5bWtzC0zTl/KaYNGp+9gDJ59s1dxc3tspXyc5CBwn8JGWA9+ODU +IntAsjOojhIOW+5u
-  HAPvWUqz5eU86opOHJHfr1+4zZk09beViVaMMI3JOS5bgOPpmufuIpEkFrb q89tAyJKQejD3r
-  pryWb+yUeIQyyFMyAJwxGOnpxXNrLfy226J02GRdwVeTzjmujC3te/3sinBql7 z083/wAAr3q
-  LNJA0YVNx3NIPUnCj9Kr3UTK6W6brkmRzII+MHjcPalNptsRERJ56SFZELZJJbqPQ YotYHi1f
-  E2YmCPh26Adya71ZLR7XM1ShUp817OOvX/h/wEaCGKFraOGZ388s6k7iowMYx2NU4rgQ X6FoR
-  sUsNu3p8v8ALmrhCSQtEiyxyFQDK0hOG6lTxRDp10IZ5FgZQrAAyDPXqPrirjKKi+ZmkaEY 0+
-  Wa19df8v1FsxbmCBmdxJIFI+bgbc7l+pqxIheyjiEgLIMiQdAo5Off0qC0tJFnxBPC7biEGM8H
-  gHp9abIJbYykMrEOEx6gL1+lQ0nPRm1PDSlP3anvdE7/AOQsZ/cxXKzu2Y933iCoJwc1ofaobP
-  TG kjkaR7h96MxyNq8HHsc1TMN6lmit5UhZy8qqmCAOgHoO9KhLwnzot6rGAAF4+Y/LgenHPrU
-  SSlq9 UZKjOrK+um+yv5FqbUvKMvm27FpLhREQQMKACTTrO+ZLy4le1kjJfDLkYGec/wAqz53k
-  dJFmgYkY AYcckZqeAieNPOlVQz49MBeGB9zxSlSgoaowxFKnTu59e2/4HUrMJLWUSeXI8kgMJ
-  UdVC4JHtWRd XHkRRRxlmJj25zzu6Dn8zWBc7AxigklZ41P2dt/ATGSD6k1fS2mGirctMAc7lR
-  uSuR3/ADrCOHjC zb3POU4UeV8y1e1v8i5hcRRAkSpGomdj8rYOCR6VkXEzwaxJJ9oBO5kEXOe
-  V4oK3f9ns81xHOIX2 yGJcbjj19OlVwjw2dtJPIszOm4qB83Odx/DiumnTSb1uY02nPnWt9LXu
-  EyW6WFgziaGRbfy5AzE4 cZPb61bszbyaX5kxEUrsj72+78vBwPyoSa3TS2McJuYVkTzi3zb27
-  EZ6D2qCKySa7bbLHKMsXSMY J56j2q27xak2v6/rc7aNKUqbjUbVu35f8PoX7+8SeKZIkU2yvh
-  3QDqcHA9KLGV5IZZ5C4tyQwI7F eMceo5q1cxzGxePfBsZg2FTB7Y/E4qaGT7FZ3LXSKsTT5ZA
-  uNu7jH4Cubmj7O0V/WhrUajh+SENP W/3eZi3TtLaLNENivbFo0bnCg4/rmqE1shgQXE6IgdeB
-  wSMYrduWG2BbOBpPJ3QM55Vh1Ax71gTw PNPapPN5anBG7sD/AIdK6qErrt+YkvaUbN2t56/dr
-  +YnmpDHIyPDlWZYjt+4meR9c1VJkltfnEig HcxxnlakuIooNyAhgh27gcjcecVSkhlSOWRUkC
-  LN5ZQnkMR3rrhGO5FfDUaLjOc4y9dikHmEbCNA 0gl3NlR3GT+tRiUDaTbuzseCGwE9AfXip1J
-  YyseGBAPbIHBH1qooMbqgyoeYAE89sYrsVjilNU0k r8t32t8kdUlsVuoTFIrsVMgwSSCp4z7V
-  rLJd7fNktlU+YJTlRyQfmI9MVNGIYZVkluLfzIFZBIq4 VgecY9TniqjLci3h8y5iTbuEAI+8u
-  fmz647140p871Or2sK1W84Kz6vS/wB3+RrjbdXL3AIOSef4 BuPcepHQ1mTR/ZEEkUiiV14I6A
-  c8mnGd2sWZZY0CzqsZUYyjHv8A0pzzXCNeQmBrmB5cK6DoD2H4 1jCLT8jehDVtPTte35kqzQX
-  GlqLgxyRYUKFXBHOP1pkd1DaxxIwM7S7nB7Haxz+B6VVd9Si0+YS2 pikZ/nwoAU/T8qkdYY5P
-  MmXIVGTav8DZBCn3NPkXXbyMuSHKnJ6Xen/DbEs89y/lSIvlJIG3KBxu x0Hpjj86gjtjbT2kV
-  yBI6RO0idw/UqffpVNbuGW5SZkkdBjzQrdJD938u9aE8SmCKaVi/l7gxHVn zgNn0yelaOLhaL
-  0Npy5XGHL6f1djkXT8xyurhpommyTxnH8gaqbrIyQId8L7P3nmtnJ681cgtylk rzj513QyA9m
-  J4x6Ais+aeaeaWHy0iRiWO5Bk9Mc/hRDWTs9vM2oSUnzRbSXX+ty3Pp7SqsxVzIso jmVCOWPO
-  R6ACoBZzRSLcW+4mKfayOufM54K+2KlijvWe6ltyZMlgWB43Y5wPX0psEdzdaLApdonY EgN1I
-  U9aalJLWSsYutPmSdVcr6FgzzedGtzayMLdtrquAy5Ock+gFWpbotcyLA0LpEJN4Vfv4+bc PQ
-  Cqcs7z2NwVkUtJMrbMfNntzWmjKkJk3RGV2Ln5OhPG0/XmsJxSSbRdWlTjFT3v0u1+g2W5uJ7M
-  +eq2cciBmlIAVm4wRjt2/GsqQSR3LIgkdWbEqqeYx6VekkkUvHLPAkQO2NWTqfUe2eKpWN3Mmb
-  kj lNsUgYZwxyOfenTi1FtImkmqbjHTy/4O5enjJZ45InMaodgQ42AkZU+pqaC2jjm2CN2gydk
-  TEEhT 0z+NZzieHUVXLeWu5CzfxIR1+ue9ajR3I05fLXdK7AiMctEq8EN6+tRO6SV9zplSbik9
-  O3b79RiI 091ZRmHASB1AI68/MTSzwwErLaRSxXEKlnWQ5BLDjj9auLcTW86yybIpnZkJdchi3
-  TA7ZrR+1JHY sWWMTMMsuAMkYCiueVWSaaRlKq1OL5fknb7+5k2EktqC0xTy3ljxuHscD+tRTX
-  d08hjSNsl0EvHD FuSfyrQkiZ70htsbZLbSPvFeQw9h0rHnE0kUEsQa2kYiYmQ/eG7g/QVUOWc
-  rtDTjOUpWV+/b9S1e 2rnT5vtUUkSrJ+67ZQYzn1PvVV3IsZBHG7xKwOFPOAQeT61YlZ/LnLah
-  FLILjLA52gDoMe5p6wRz 2Db5lilcgynsrD+H6mqjKyXN+peFa5V7V6X81+DLVvHFDdTXCOVDh
-  xtds8tjBH0pzXsLWht5JoVu o8KzEYDH+8PbFTzuscSQMgcxp1AwAvGQfU+9VGa3m1a6FsiCNp
-  N29hnA24Fc8fe1ZpTpSm+aSbt9 35CNawy6a5jcKZpRJI+eFI4K/U0lrFFDujTeu5SGLN/Gen6
-  UsM/kwKqWsv2lwHZnOUGD8xxVu7jR 1JVJJELFS0ZwNxI5/pVuT+F7Hou7ioN2+f6f8H5EFvCp
-  W2XzQsW0Nk99ucVaWN5pJDJCiGRlO8qM L8pyD6msiWXy2ZYZAkkZA2NyV7MPrVyOWZfPLMSIp
-  ECj0OO9KcJPUzqwrOL2+4pzz2tvIVKSIykK hDYByOf8aRgrDG4FdodGUcNtHH5mtNprI7S0Ik
-  kdPMjPXCg4OfU1H5cCXieQVEKIwjY8hkB4P5mq VTTZnEppL4NvPcrxNehIpZXt4WX92WaPhj1
-  z/SoGs70xx3KyxS4AyEX7rBsAH3NWJnuY7xZCnmoI 3RgBwG4yfwFSRqbgHdDLBChKMd+A/fIp
-  8zjroOFWUW2rfd+BTdCxuJLf5JxcFIg/TB4PHsc1OGuI IQ1yBNtc5KjmQgfKwPpTzaW7Lvkkd
-  pXBkYK2CGX0/PFNvINwaVp/KcltwOSFJHTAo5lJpHVGPtOW Mne/lr6dyT7QPsCXE1vPGZXRkZ
-  m+UBe+KmeSO43TAMZCxdQD9854bHpnis37ZdR2Sh4lmIdCrhfk K9CMe5qSVriWNo2spIY/NVV
-  wRkDOSKHSs/8AghUw8IRTqaa9/wBN/wATShvN9rcK6skr3AcDONoz jafcnpVRUabUlSeAr958
-  jgAZ+Zfr3HpUEccaXL/aIp4l3n5WfkAg4P4VU+yqpRFuDCxUMA75Jx94 frmiNOKvZi+r05J8r
-  aXn+mv5izI04k27VgKAmQD7zZ+U/j0odbopbSy3lujPCxddmDt3YYdOvvUr xRpZKFl8obtrK5
-  z8x+6PwrTginuojJdQlvIfYuBjjow+prR1FFX6HVGr+6TWy6dfxLtoQ8c8X2eT 7OkyeSx9O4P
-  qfeprmNpLxljjkjWM7cOchQT90+5I602SZ4QzbGti6kFW/hHcmrlu9r5EihyAWDBm OThTwf61
-  5km0+ZI82cb+9GNr+v8AwSsjW7xKrPGyhz5aIMMFByQfU+h7VBHpc8eru0dxHLZyOZEB GTtUe
-  vv/AErQC3GLmQJEYmkykioMHI5xUNtdS24hi8yJkRSACvKg+tSpySfKcSlVgpcuvf8A4HZ/ Iz
-  3sofNtpGlYxmDLqGOck4XHpWqQ8MUv2dhIS5IBGSoA6VmNcSPJKlvbmWEbTkAdc9KlN1eTSNLH
-  H5cu04GODu4PFaTjN2uzqrUas3FSlp6qxpwSvI4Wd4drRMyoqYPHU/TNF2sc9rCXmEbOvmSkHA
-  3q OMCoYpDECJ4jE8b+XHuPJTbV+Kc3S26SCPCxkAhcY9j7nFcsouL5lscqoTTvHZHNCKMooME
-  ql2LO XIO1gM49quNaQTWSTw/61lO5Sc85A/KpL+5jgjiT7LNcJMPMZozjcemR7Y4pbeGO2mmd
-  ILhTFMUj DyZGGGTn8a6nKXKpHe4SVPnWj/P8b/gEsSy21xAW8opdGPepwDwCuKx3EFpcPDNI6
-  CYhiznofT8q 1kHnRndIibdo6cZHc1HJN9uecS+SUaQFDtGFGOR9cinSk1p0NMLGFNuC1XXXVG
-  UjTzvPBaspjiKq X25Bb2qi9p5UYt0mCxKrHaoOTg7uv6VrhJoZWeFQ2VLsij72Bzj6ViPE8ln
-  5aiTMLADD8vH1Jrsp yu9NEOrDnqe7FL03+exERCZVu1czcFGjB5y3IJ+hqfylluXdgyxRYTzT
-  yGJ5J+lQ2lpH5zXMtzGk RdQuc/Nuzg/hSSSxQ3JktbpWicFgCchmXjj866Hq7RZHs4qbhGV2+
-  rv/AF+ZJILf7SjxSLKm1o3d eiEDof8Aa96iS4nuZbdSxiTYAE/vAn5vxz3q3BePFgxRRu543b
-  fllJOCwHpiohcyGVEW2zFuCJtA znnHNSr9UDpTjFxdr921+H/DlGCxVbi6E0rwx27vlsnnnGK
-  c88aSRTiHzI1j2qpGdxI7+pAqw0N0 IpYxbSZZjLIzHIBTsfrUbpujhuVjK+Y6FUx93J+Wtea7
-  u2b/AFeDSd/x0/r5kSNBLbRx/Z7rzEQq H8zO7v3FSxzTK9qIpYtz25Z0KZbIGdv5cita68spc
-  KIDGiSq0kx4USDgL7fSpY7ONIZLiUokxLsr Y+Xb04H6Vi68bar9Tjq4hNezcbLp1/H/ACOUMk
-  LF0McksKjEJDc7cZyT3piQGGO2mjk/cmPzJmxk K5zgfiK2IraBr6KQvHHaNAAueoPZT7ms9ra
-  K1tJo23AvMHkjLcgg/d/CuqNWL0RTdNz9lDVf1tcv wS21vZtLIY8TyLhyPuqO361QnfL2Yhcl
-  fIkJzyCVOB/Om3TRXcSBW3K8YCp6MTx/I1SVolZISxQC N1aUscHBzwO1KnS+11PIjl6hLmb6/
-  wBdmagF3KgiSMQxMS0e5c547/Ssk3l4t5AMQSBLchMx5BBH NaNtcJ9lZ3nWSE4MajIOAefzrO
-  iWWK4SR4XKgMoyc/N/hz0q6Ss2mkY4WlBVXF2t06a/PU1bCVfs QlaSJi0iK7BPlj/ugj1P9K1
-  ZYIbi4SNJovNicmIxjb5qLyT7jPrWJBNFFZkeZG7W7hCQuAQPUdzz 1rpDOv2bzYZYJFiKoSq8
-  juR+NcuITUrouvRlF7t32v8A52KsmosWeQwqULBlPGNp6j61UWSG5SdJ pUw5fqc8Yzj68VOLy
-  T7S7xpDGrqzr5iZDJ3I9MHg0wWc19bQrcyQRzCMsDGu3GDkqfU4xUxUYrXQ 6aapQa5vdfe//A
-  /UZAtumnyyW7MqvIsgBbOzj7p9zUEtrbzxu2HkllK7kDcqWPT24zUsL28jQlIJ STGfM+bhSTk
-  DHrxVi7zbTlkhIjfDD5uQFP8A9c1fM1PTccm1L3b3/MxbpbizkzDHHIj3BJUqDtbG Bn+dUpIJ
-  YLaWQyorMweTcM/MOnY8nrWkZJbWZZfNRhjzkjcZJAJH8jVR57O709AxaAq2JWz94kHa foK6o
-  OStpocEsP7KSm43T3dr/gc9crbgL8yKwQDk9fr7mqgjWBZlIyBNk4PtzjjiraqstpLK6bTH KA
-  QcEk9M9OlV1imS7BWFikZy4c/qa9WLsmrl4qUXeUUrLa17/wDAOhS3idrkROWiVxtYEkYx9PWr
-  X76ZImeVJV2NIVHDe/bip5kWSKFrGSKS3ZGxtTOecdxTzb21rpjSeaY7xNqKrHOVyNxxXmOpdL
-  v/ AEj2VOM6NN21u/Pv5XXqT/Z4r3S4HRXiR2yuT1wMAfnTIEjWRPtNpd206Sqkm+T5ckHAx65
-  rVilS a5dFjK2aTO7ODgZHQD0HtWJqCi5htsSMJJdshwenYA+/vXJTk5Plei/I8K85N05PS+//
-  AAb/AJml HLMk91ujIlR9knmjI3EZHHtVFoVluoVkP7lwfPfP3ZAMqPxqovlSPKDK9xlT5SKfm
-  LN6+uKvwyQW liqG1uHR49wkL4Dkdx+NaOHJtuegsBOLUqT956WVv1ZVaW28i38qLY+3bMM9WP
-  U/hxTGtpDFKEn2 Iku0yMcqVxk8fWpzfxNaR+TAsOSnzNzkscGnPLK32y3NnO7gtsVT/D0JP0q
-  1zJ7EUlUhO0rr5jJm uLZpJAj3KSyqUYH5Qdveqtuw3Ol+6KisAQPvMcEjB7dKfarC58ss8LjD
-  RSO+VwMgnHua0T5uIoo7 ZZJYsDO0cHHOfU9vxoclHTr9xq26TcW/efy/HYLWZrlZhBiLePMVs
-  cLkfMD6nikiGYo7gMDH5REc SnDEHjP5k1HFfvLeQSyRi0gVDHtK/wB8kfpTbuxmmkhCo7xJhE
-  MZxwO9ZctpWehjFxpNptL+u/8A wRIbG6MqxG1mhEaFXY/xMORV7SxdW0EqSRF98yy+WR8xJBy
-  QfQelJDPMFkR4pogTtDs+QST1/lVK ZRbXFtLcSSblRl++QGcHkfkaG5TvF/1+JT/2jSdr9P6u
-  aEnzTQ7UCyJC8RmZco2DuLY/SqSQKsfm WQaSVnJXccjGe47kc06K5dZhcX0TvG5DeWnGMcMPy
-  waksJY5dQwgEEQlLgscjOCFH09qVpRi/L7j aFOvCLVk4rd9PTq2W4kuPtL74SY3wVfHAIOAP8
-  afLcXsQe4VPNLviUovRs4A9qtQzvDb2gkIklEB 2qB1HJb8fenpqdrJFbspCRSr5nPYqcCuVyl
-  e/Lf+v+AU61Tm5uXTyJD54M6ytC3lybfucqQQSfwz RPLK80uQgWONozIVGCx5zj6Uyb7MZLlo
-  JDKJL1fM+bOHHQfjVq5vHgtC/wBncu7FipUcnpWPVWWv 3DpzfMmrO/TRW+8pvJE+nRvKHcfZ8
-  4DbWfoAQewqhNNcxDy4YTIF+UbhnIzyw9h3qaS6uy7pGIuQ BsMeTgc8ela0cSzzM5jc5YlwP7
-  uM8egz1rS6p6tXHUgqfxK9+n9aBaWVv5k7GLzlUlUcdJVB+Vx9 ecVcT7Mt0ITblRJHuweoxnm
-  pEgRYbe4wzDyP3m1sB+eCPQe1WDPFJamKKFt/mNnJyRnGPwrgnUcn 3PLnV5p3SuVv9FaCAvE5
-  +T52zkEnnH9Kom3RXXZbyKBGfMjBG5DnOD9KsraSnWopI5VEPll2BHCl e31q39pkkmW5ZFMTK
-  wIC9WPb8TTUuV+67nVGXsp2i2/M5mC2aW+mwWI3bkTPO3vWza27PNOyzKFM 65UjO4kdR7AVY8
-  6B7u0aTbDstnjePock8k/Sr08scWnOPNgMaDYsqDAYsBz+PQVVWvOVlbc66let Oy2v3X5abmN
-  NCdrPMiXAlPm5iXBCrwxPt3pqxzM8pBjWJ5FBbb98spwR+lIryqsizXturyEMkeOY x0Kmo4Hu
-  ZvLjjZRIqcKRnvyPqAK0s7FTjUS7tddkhs2ltBpA+0TIo8xVQnIPbP4UwRLE26FWuIw2 GZTxk
-  HgfjUbSPNeQFXaZvL3pk5UYORkGnia7hiWVpYHdgIwipw248vWiU7avUuMJxjac1d/L9P1L hJ
-  DpI0J80Psk5+UsevH0qA3EM4ZEtppoQwSNo3xjjv6mrsYSUtCt1DJIkiqzgcO2cAj8MiojLEru
-  LNDglh6hecY+uM1imr2tqYuUIVLPf56GRskMikSBlBRDgc4P3m+lW5IofPWNLa4uY5d8keHyCA
-  cL +dF2YUQhd8RiiKKCfugjjPqafGzC2i8wNskw0YU4yE9Pqa6HJtJ/1/XU76kuSKneze3T8v8
-  AMy4I HjkmsGhneUKTjd90jt/WiyEkK7r5njVxvJYnHcZ/lTb67vWuDdeQ8UUoYqcgHAAB5+tW
-  bcSJbtdS zQsPLKiNhk5BFdEnLku+v5ndOpJ0730fTe79dbfcLFfLIzSxhXjT5UDc/eHU+vNVj
-  cSmfa0lvMI1 2nan8RHBHHTtSKY7uSeGYpA7EkMi7VA69B6GrL2MCWMsjh0MjAvLu+VSeSMe+O
-  Km1OL1WpjH2EZJ TXvPyX/A/AzUWzaxjlh3mdm3bGbOzPAU8dfetlPMjs1DXCgRnbK2ThzwQR/
-  KjTbRYZWmdR5ckqSJ nogAPyn3FRy2NwLxXhmAKYJLDKvzzx9DSqVIyly3HXrqS9k3dLW7tf0v
-  5fMvvtvrq6kmnVVSTZGT 0Klen51Zt43kntRNGwLxlpQBjaQpB/AHH51lzSWa/wDLUSyqGEZQ4
-  G0EZB9W9DWnAtvA8k0XnhGy V3Pu9MD/ABrkqK0fyPOxMWqVrvXb19ehBsd47Yq0hRYQow2Bub
-  jNPQl7x4nXyGVRtZ+c461LcP5d vKDHJGuVeJ88bVOSPeny6fmae9SUSjcVDA8epI9qjnVtTOD
-  hHSW729fkTzf6FaFlCFuhIHTnJX64 70W4jw0pwskThGTPIJ6H8jSP5aWocXMUgB29M7icfNz2
-  p7wbtQQgNcbFIdYuCGHTPrxzWKempnCE akL7W666+WqJhMSssZ2OQ6lGPPANSPKRbuPMiHmfO
-  WC42lT938azYS0gQnbEDAWkdhw2T1FXH+w/ YZD5hKyN50eG+8FHy4+pqZQSZ1SioOLStf8Ar0
-  K017KJPO8geVEAhXH3R1xVhVluWX7RGwjdgz4O CpXufYcZrGaRRbiZriL5tplXHQt1P4VoQXs
-  sUyxxEeVENg387s9K1nSaj7qKrUajheO/4f5El3Dt VHBG9Q0bleFZ2xgj+VZPkJbm4nud+2OQ
-  RuqsRt68fU1dlmil3iSKaF3YSmTf8oAGNuPU+tVry9jF k0qrneA0isc4f0+taUudJR7jpzlC0
-  Hd839b3IDdwR2iraXC+YWG4P8xGRyPyqvEbeJ4zI4RPn2lu SVIwaagt7qEGK3kSSRW3ZP8Aqy
-  TkZ/n9KpRXzs8CPEt4FQjfEMAnJOefpXVGlo7fMyq4eN2438+9 vUW53w2UfmhZYQyD5FwVOOh
-  9+lVbtPPs9oEcLRO3mLjld3JrWVpZURoYtxjDFiVyuT2x6nt6U5Ve ZSssAgUx/vC4+9Ifu1pC
-  py2b6f1sFCm5csnDZ91+Wv4FO0lkP2VXgLb38zCjBYA4wPTHepLu2kij gMsn7ndIHK8YPUH8e
-  gqMTC1dI5UfzfNUO3/PItzj8qY0t3Hqn2lIpJYd4yjcg844p8rcrrQ2UHOq 27Ra1t39GyeOcm
-  2lHzI4uN7BznjHSrEt9bHTohKoDbQItoxxnk/h0qa6aKG4LDYYEYxbx2PUZ9fe sc3MDCRZGjd
-  5JF8jAwGx1I9s9qiMVPWw4uEoqXLZL8zQdI557p0JCGZQqs3bb/MUskz2LGUt50Yj 2FevIxx+
-  tRRPFdGVlina53kgxnClj0IHpxUM7XE0GZrWR5SNshU4G8cjj3AoUbuz2FKLqe7KVl2/ pjEu7
-  c3XmpbTJlsIHbKsDxkD2NYz2TmeYtdR/upk80nPLHIJ+ladzZRTzI0YkjGd+C33EH8P1PrV SS
-  BHtZ3Ln95IHIzjO3Oa66TivhZxR5HUcU3d6bf53IpbB1uYYUBlUgHzE4A2nj8+aoKlu08quJEh
-  MxdVJ5GOhz6Gr/2KYQLMPPMTAMpD9CORz6YrMuMpcyTtufcu4lRwpbtXTSfNpzGcaaqzbdS6Xb
-  Rk DLEsyqN0rvtKqnGWJ/kOla1zqEaSToskasrOrgjq2BjH+e1YQh3XrEllKOwVc4YbR8p/E1a
-  eKSaB ZWCsWctK5GAGx0rapCLauY1pxqVouT08/wCtSxZvBJd2ql0KgFWXH+szncTV1PNKyeQ2
-  2MREyoeS GHGfyrIitXe8hd5UiD5ZXxhffFXY2FrGro/zAb2JORJ82Dj2rOpFX0dzedOTk2nfT
-  b+tP1OgWT/i UZbaJFJjDkcRAkZQ+57U37JCHRI7o70jZGXeST3H6Zo+8t/JJGTbNciJE78/xf
-  nirEXltHKsIC3O 5TtbrgAg/n1rzrtbHBR0jyp63e2y9W0Urf7SQscEDKe4YZyOoNF7Yl5PlMx
-  hRVZZA/AHX9e1axVZ obHZPH81u0jEcEkfKD9MdqghQG4Ehv7cRFSAMZBwNuKSrO/MtDojimov
-  m/BfqYd3HFFdrcRuHiki YZf5s5xjHtUVppsrW0bQTWzlSSVCfe54P4VpzW9tcae9ujDeg3I2e
-  EC9Aapz+abBIVYBpR58hiO0 oRyV9s10xqPlST18zgxbVSmrXu9/T+vMyXu0uXmkcxQRhXQpsx
-  8x6E/iKyklZZnmEgEj4Vwy5Bz1 NaV6sKziRrZ1idcnkDg9jx1B71nypHJYRSLHIGUlQikbj7n
-  6V6NJRS20YKFKlBK10/JfodK8UElq 6wyOJlYsoUlRjAHSmmOK3voBJvS6nQvG8pBQZ4xjvnmp
-  FW2jluZEY3OHOxIzjC7evv1o+0tJZWbM Ix5UJGxly5HUHNcSb2W3/APUbcY+yp3t0vv8/wDgj
-  jBciM2rEq4bZtBwQBySfXHeljHmyC4Ks6j+ FTjfk8EegB7VKfKnh/1jtO5G1QeSp7/l1ojTTp
-  kSKJblZTGH3+ZwNp6EeprNy01M4RjKDTbv2tt5 7leO5jZoJriKOO5j+Rwq7QGJINXL+xiCQfu
-  p4lUlGLP8vr+HFNheT7agMlvGFVivmx5xu9fUj1q9 JmJGMVwkzW6FW3DIJx1qJzcZqxnKFWlU
-  XItfV/5f5mNcwSWlmiwtDPBvyzBejLyBTS+5JJgksDOn yFnPzBjy30BqxMsdxYqROFgMy/N65
-  HLfSmzSrbPFALZ4oWdkidzkBDjJ/A/zrWMrpLqdtFJRV1eV 9/8ALTVjEV5LgrZKtxNHIVXAyG
-  Xb1H41YRJ2iImtrlZpVBQA/fUHnHvUaJNCzSQQyOJmDxlDjIGf 5HrVxms4LaLzXlW5KsQ5ckL
-  xyuPfPFROTvpr+ZH72FW9PW/rf8HsVknji2IkLRQXLh4Wl5A4OB+d TNpkku1pPNG2LaUV+WOM
-  7h7DvTIHeS1SV7dzBkLGpxlM/dJPsev1qKWVxdXXnmSBvMEMkjMdqk9T jsP8aWvN7un4mNOb5
-  2ua3fS//BIY3ubuztrfyZHZoWmQr/EVPX6DHNSyxOGEs9tJciU+d8hwMjg4 9BTJT5AFta7yYV
-  MW4HkEkHH86da29691GtuGh+R4nMnIUsen171b0V9EjWtRhThzSklH539X1RXc i41S282KWNm
-  fIUtwTjnj04rahtrIW7SSwyxRJOGbEmMjHB+maptZXH2qO3hbNwsR/fNysijhmHpU TxXVtEoE
-  c1zBIygOG+VQDgZ/Opm1OyUrEyp05zT52vJP8f61NcLHBYxRQM0beUwfzTuKv1xn6Vbh UCyt4
-  /s3nTGAhGQAKQei49TT9gF0yNxcrIFkJHEjjqwHYAcVPPNGixi2t5S4Qyrls7AOgPvXnym3 ZI
-  1dRNxhCN7df8+5UNusskccLranIEofna2MDPv71PJbX9sSrJ9sXaQAg5C45bmkE/2lIPIZEO8j
-  btyQgOSSe5689q0rkiJLnEFzK81wJoiH6xgcge1RKclJImNZKdlq/P8ARsWxs/tItjHGViWHy3
-  kb uwPyjPvXQWunTRzKzRs+IWLIvWIgcq3qcHNWbQRCVLiCVIkGY0BGQQ38WPY55qaEiHEby+e
-  w+UFC RkdyfWvIrYmUmzzMbj5Oo4rbtZmb8jWcSRQMsbIrKzHO7HIx7VOkAmWSVmiEm8A7RjKk
-  8/4UkxtV sA2HTceDu4UHinXSmYmJZo3hDEsYhgnAGOai76aEwckk07fL+v0GSR2ttdTPIrJbq
-  pC5bqvr+vNV AlqYQouYWCgcgdxnJ/rUpWEW6y3SycKQkecce/8AOqRikayUzyQ7eMKi7TKAeW
-  B9K1grrVnXCPNr KTv3/wAt9fmVWgjlulmKtMoXbD5Zx5ikE7v05qpLdwtHG8bKWmgEkkY7t0y
-  PQD0rRt1s3uTvuDkb hEVYgHGaq3AspLm0El1axRtCdyqMEljkYPpkdK64SXNZp6HRCvFN8zbt
-  6/1+RmKYpWCHKMw2+Y/Q DNWJLSJLhHt5wylJPMKk8be31NQrLIbtX2KiKv8ApBYZCzHoPb6e9
-  ayXcxiJuFhWODdHIQgGGYdD W1SU4tWLq4mtTa5Ze6+l3/X4mNbllTdEolmli85IQPmAX39B3r
-  TTyzbNdSyQJCZBIGK99vAH41Ri vrWOGJmjaFzHtyT90McYNS3rF9IurePbI0UwChR0A5A/GnN
-  SlKzVh+0nWnGLjp3f/DWNKSSBHtnt kVSYnMuRnbJkEA+9c7LdzvqLRbNiDIdlGMs2MVPdS3U1
-  kB9imYyHO2PghiOW+g71KksNskSzTRNM snlv/wBNGYfeHpkdKdOCgr2uzeKjSjdLmf32K/8AZ
-  m7U0Ed0paNvLlDZbkHvTZmSOW7V5N/lyHy9 v8ORlR+dXLW5Es/kraTlMA4Vvm3DI5PepBOss0
-  YjeAyLCQYyuW57n3xzVOc+b3tbG9T2/teaetku 2n3f15nOzsGjh86YMnkgTqB9yQcge2atW5d
-  pJPNVZGbcz4XhG6Yx71VdbaNykkcjR7Fw4PDHPytV a6kuBEQJBIZZczsgxsJ5H0yK7VDmSS/r
-  +v8AI6qlLnSSW/loWIzNHqJ2wGOMxHzN3Pl+x9yeadvm VY4btWMUICMc8FuWH4ntS3n2iF5Xt
-  juLzEqMZyu0ZP4UtpPGIkjvJY95ZDAccMncn1PvQ7tcyX+Y qk5L94o3W3mrFkjcYE+2Rwqw3r
-  GwOSMZakvZE+wLIkrPsXaWV+BuIIH1xmrS3cRnjMUSFER9pwCT u7D8OazJZbCKyYW0oeR1IjD
-  cgLjv754zWNNNyV0zPD0n7SN4vXorfj1RPbJFNqiyFCsETPGiHqAw 4z6mty2sc2v2eAtNswy4
-  J5VRkj6msA3jtpaRRQP9pRhuUdcFeSfpVmKaeyty32pIs/KuQSX28hhj tg4NTWp1GtHYmthcR
-  J6aNuyTV/yNCJctcrIkquVLDzGyAD7VMZWOivbPcwxokiguQcOeuR7VSGo3 E1lFODEkyREOpX
-  +8ePy71NLeyyQwwBrc+c5ZW8vggCsJU5XV1/SM5UZtxbVrP8fmhyJPsYRlZZnQ sPl+UnOOBWm
-  rSxyTysrsqvh0XggheTWa0837mfckcaRNhQvLBiMVXlCxz3iolzJL5n7tRJ95QvJ/ M1Dg5bly
-  oycXG6Sfb/M2J5IDY2j7WMZhdWRTgglhg/TFZsdzG7/Z0Xc0LbAfUPzx9MVFDNdyafIk 15av8
-  6gFUxwetVJLuK2uCgdBKpKSP/tbTkfUVdOha63ZFPDxUOTVy+f9Mv3cy29rEWaCaRxtjVVx lS
-  Rk8+lQ3c5js5oyvy+ZmCQHG+IEEsPoaxnhiFnBPHeASBBhXJJx6j9aZDe3YuUjhQ3LDOwlcgIP
-  Ue9dMcNomtbfI0WEcEpJN27ppFm4u9QDgxbPlOCSuQSev5dajeW+NySINyZVJSRkEZxkVHNKUn
-  ka WGVYGLgNu4JIGPxzUFpBcRFC8u6dkYFM/c55B9z2rdQSjeyOmc3Gm5NJX7f5pluVVW9lSW9
-  S3jjk ZIgVOcDkZx19KjkK+UrmaKIgESEJwHOCBj6VTa7K3EMXlIUCfMsq7jke/wBOKszzpc2i
-  iXbbAOzy REfMxXoM+pFVySTVzmk5qUVKL+VvyaL9rLEhWZYpzFMTKxD8DA4B/DmonKzhV81ow
-  ULIxbhj2/Md KwBeh3jyWWIRsAo7Z9cVde33WzSrcoYUKqNvcgcfzpvD8ru3Zm8KPLJOctXt1/
-  ployKlt5nkTIZH BMjtlY8cBT6sfWozvkgaSAkSmQgJnOwD5Sp9z1zSERGSzHnfNtj3J1yDnKn
-  /AGj2NTbYrbVCZCwb DeWOnGO/qQTnNLb1Oec5xk1zNW/ru2KLq7j1CO3kUJbxKxl3LnJXpz69
-  Kr3ZkS7t5YIQ7EBmXbwp H8HtU0rl7WFVJDxoVaU8qWHr9etTKXWwgxLHGOfNaQZw/b86Sai07
-  A6iSulZy0tr+lyzZpm+keSG W2mlckZbAVQOePY1SVIoLiKeQzGMx71ctlW4NWR9rNgkp+aSWQ
-  TFwOEwPmX8ahlkQ2wQxyIrI24u 2QpzlR7VlG/M/PQ5YSnKTUldS00/4JRk2/YfMS6XmMKUYnO
-  abb28jwWrNPHejawW3hPzEfxdqc8g WGJnUGT742jhR2BHqRmpJlu/sYLIsXmHMRjXaVx2/Gum
-  7tY0rKrLljJJLpzW/TVfeijbxzPcJaZk gRUfaHyfcCqSR+feO9427LLuVBjIPf8ADFW1t1Qkp
-  cExfKZctzkjgA9uajuZJEt5YJAg2kCQFeck DC5roi9dOovYTm3GLS032t5ruZpk2agZIysqI5
-  8wj+LnsaS6jl+yvMsqxQs4XY5OX78fSpIYmkae IzRQqCMswIAI6DP51AiRlBGHMs/mFozngdu
-  hrp0T9DmxKUPdWr6v+tCS4kYmyWORXYKWCqMbue38 6sCRTpxcTRyTEkyYHA5xgenrVaRvLuFO
-  1WAUJuC8Zx0+tOjjWR1jlkS1cgMA3Yj1pOKshQpRp8s+ ezWun+a/yNpLactG9pL5yR7lcjoWx
-  xx6/wCFbKb5Iw8vyXQAPyjHTr+lchBJKJZwJFjZiX9MgdD/ AFrRg1OOGGAtKX2hg8hP3nPQj2
-  HpXFWoze2py42VZNe957a/MkDpPBFvv7dEKFIwoPILdP61cgtJ bdblYrqCRIpFiHy5+90NZNq
-  VnhdECl1faJAOCO5A9hWr5klhbpOgEqJ+7wf4snhj6nHSlVTXur7t DpqYia5Y3u+istya6S4h
-  uJIIjGY0QgELyWQDjPuaw5lultvlcCbzQsh28JuXhTWq2pG8SVLUqzRz FI8jqrcA/hg1hNNIy
-  l4b2CaKI4AUHLkHntRQhPqtTzpRlN++kpf18iCeRxbrHNbSkhRGxLdz0OPp WSscsUJaUvEQAO
-  mMcnj6966S7ufOhVZbZ1kSQkkHGQCOPqKwl2/bY/OLtCGLvHnk7T/9evQoSfLs JSbV+W1ul7/
-  dZnTNeNFbzKluqBZgWyvP+zz6ZzUzXl3EZHkaBi2cBYxxhgM9OlPuILq3PlWuyfzX V5AV3E7T
-  x/OrOWnlMV1ZOJtkjuVwNhB4Brz24WTsmvxO6nUpQs4QvHu7N/dYoSTiRproJlWlYAqc BvlwC
-  PQe1W7KSWOKNTPaW7RgQMkiZbkZzn3qNXtLWeASq0YaFlkLHKrJgkcf0pVFxENNkhCSzqg8 9C
-  ufMGeo+lTKzjawSq3hpv6f5k5trmCCI3SiS3SIq4UYYMTlVJ9apmK8DqL0eSGQxsQuOpzg/wC1
-  itIkuJiyyMokJJ3cSFRww9u2KYriW6HmyJmJVKKe27hgfU1EakrHbhq1SVJpfr+C7+ZS+y2jzz
-  /Z pGa383aELdFI4P50XKQpaRBVcDzfLAdsjkjj61ZkjhuLF2bFuMt5YPGUUjB/GpLSzmVXKXd
-  pHhw6 iRMjAHT61TqWV29iKtSUaampu/8AX9bGfHebrgxIDIomC8H/AGuMflV+5lFrqsTAQfZ9
-  hDiVd2/J +8PQZqjdtb3Ea4i2Y3LG6KAJAT19znimxRQPdRLdPJBbDCLFK3zg+59iPyqnGL1a+
-  RlUnT9m5TXy 6l26kIt5S6mTMhwsfy4KAY/Dn9Kz1xc2yKjCOUxESLLyGJIy34fnS3ZjEc6rIZ
-  WlYPIQeFJI/wAK fHbbyfsuN2HQhuSpyDg04JRhcKMKdPDqUtLvT/gq2w24triSC0bG4lmMmwY
-  MhHHFWLWKMX8qXCXE McUy/MZMbDgkbv5VVNtqNvbRtLudFfIC9cdx9TWtJcTXFlKgVI3aQCRS
-  vzO4GQ4/2QO1TOT5bJ3X f5hTs6Tho0+q6fn+Rbwz7rqBiwdhtQHDE4wCPRR3Hesclor17e6lY
-  pEpRsNgNkZU/hUTRPa2L7pD LEZsIQxAIPP61baGCS9SRrqG1x/BMCSejDP1NRGKj1ujehTVKi
-  6knfpp5en+RHAL2c2+JhPkFW2A 7sHhjn2rZjuXs794IrW4DJKGVnbIwOpPtjtSabBDLJLMZ0d
-  pJgz+WdoBHOAPT2rZM3kKZLsxxq6E oxXJA6nPrziuWvWTly2uc7xidRwUbp7b3v6LcoXzSyvu
-  tzEkqnZGqr/A2PzPfNbCQusUJuIZv3YZ XkLfKp4AOPSs2RJrmzhbg74S5KDBBBBI/lWpDIjrZ
-  ySCXzZo3Yqz5BI6ce1cdV+4l2v/AF+ZtWqR 9lBJdXtv8/8AhjchV7e0iRNqiMlWZhnacZwaUs
-  32i3DK5LwuGkXgZ7H6VB5T3Jji83ZuIwSevHU1 qOYIwY9rI4BIDH7hIHJ9h/WvLbs/M8rSMny
-  u79CnbQw3CwbW2ybD9/kA+mPWpt9qrojq4DIZDhsH J4FV4TCb4EMZMHcGXjtwKfI+6RGCjzNm
-  WyM4A7USu3qQ8M3O8l+NipaBJJYi+XdI2JBOeQDz9Kbc CCaCJF3uJ4TchlOAAABge2avwm2ba
-  pV03LyxPXNUL0R201vFFHJEOdjPyAgH8s1alep5ik4Kr1uZ MMNs7uQdkisNvPG053Gsm+2iJl
-  FjcSSkB7eRWGAg6j61o3UN1FDHPbzwgxPHHuZMg7vX6Zrnr2S5 knMRt7hzbuYo5I3wFHUqfUm
-  vVw8OaV0z1aVPmqJ328/+G/MezQeZcl5hHvl2xqxwWyAA34VKY4Ss gSSaeRkIWNZOZFAxn3Oe
-  c1VeaRlt5tsUMMhxh1yVBGAM+oq/9hhiiWKKC5M7hN0m8fIwPK/1P1rp k+VK7N6mJcY+9Udvl
-  /wH912YTxQp5dsjyRfu8yLI2SzAcEe3t71bt7jVPskKRRrMWPmSAL82BzV5 NPsY7tzFvlAZzE
-  5bOAex9cnpTo7M3F48ipM67P3hjbblm9PbtVyrQa1/E7KTjVpvW6Wuv9Ir3N5e nT55HcRbrg7
-  WxjAwOntUomhvrJ3MLN8xMu3jL8BcelTNbuLefbNCJBMPvrkNxyAPyq6ZIksWa4tZ Cjy4Pl4X
-  aeOPqOKxcopKyHQdKnytxW/R2/D/AIJSVL0pPH50UUyFTKoTlcct+XeiXYtpcNBPDeP9 oBzCu
-  0le34A1ckslkW8uFuCG83ZKcn5sjjHpVBfszaYvlH7ZuTa6wHaykEYpKSlqvyN6kaU7TSe+ 1v
-  zf/BMp7l2ZCQqqI5I5BjqScZHsDT7UyyaUImjMilt7FcAkL8tWWaKW/eNDDEFQhXddyk5BNaIk
-  Z55YkeJEO5lkC8bSMhfrXROVopWOuvg5WjHlt1/4bb82ZVnbWkNva25lmKMkjuWk+6SeM1cY2t
-  vJ bhZYXuVRvlIzjjj+tWo44IUiZ9sJWHGJOcfWnC4tLnTZVKpcZUHMQwxAOKwlNt31aOL6s9I
-  3fL/X l+phxahJmOQRoFVc4C/eOeSPapkurZp43lFs5ZWCgRj92PQ/U9KW9dxO0Nv5SBZEEa4z
-  letTXTXD q5MMIlEu8ARhcjv+VbtRdtLXOmWEp3Vla/oVbeKK3vspI12PIcuqNyNo4qHLJZW2Z
-  o5IjGu4Hkrk jI6dauXCEkTQARylW3EdtoHB+tWYy7i2nmmtWUl96rFgYI6/hQ6ltdxTxnsVzL
-  3umu+nbQozFRP5 CwSiMtu3bzztH3enc+9RLcyQPFdXGxp5l3sgGAOcDA7Ag4+tTCVmW9uIyAk
-  ZEa7udw/vCoDBMzQz KyS7omH1PqB6CrSj9o1UKUvebsn66mo95b3GnNFsks13lSJD9zJ4U+9U
-  Li2eOxMyieLy28pizZJG ck1Tfz3t4g0DhRuG89HJHWlW3mYuIZfN+UERHJyD+nFEKShsycLQk
-  knGdopu63X3/wCZZ85/s58p WKvIuQOoyeB+VV5rKb7YZXhkjZZywRuScEZzV1rfzLGdVtp7aS
-  OT+Ju4HyilslmUu80wxIoMu/kr Ic7R/wDWpKpZNomcpcjkpK35kN4Ynu3+zxqdoKy8fKWzkAD
-  sKqo0RDeZvtJScE5OBxnGBWtcRySF EaAzziEtOIgV3MtZEu0DYCIzNiY7xnHHNVSacbGkJNwU
-  NYrq9391/wA0WYXuHhiijMcjIoA3LkZJ ycjvVhLWV7QR+Yq3CFwXPTg96o/ZX3maDe8Xlneqn
-  5iD0IqOWOSG2th5joDAXkVmJJyfvfShxTfu s8+vh0q0ZU/h9F+P/BQyWKKDy4/OWSeYbSpwQT
-  jqOOlUXiuIxEzxtDuGQHGenWtT7Cjo0rFmiDKE cH7q5xj61WvYTFfqJGJXy3CIWySO9dFOor2
-  vc2dSU1yOrdLo/wBGU5FMke7yEy2Wyi4BPXjj0q2b HzLT7XGXSFkZgm77uOn41LBaXEcW1yLh
-  iFK+WMcdhVwQNLa2xt0ljlEJhCO2Qx3HPH0zUzrWtZnN KrGEocsklfW7v99zDmgkRIudkkij5
-  Ccscen4VLHHJjO8SERs8Z6/JnB/OrVxZRqrRs5meINgjPX/ APVTrG2tklijIfa0JIJbqcHd+G
-  KuVVclzrrynGl7WesfSxBCyy2DkoyoB+5Qnk5P6mtQWUV1b2TW rneEIcFsjcTwf51Xdke1DR7
-  PLVAFA6/L1Oakyy20zRo1u0rBuT0GPvD0ArCbb1WhhONSdOEovlV9 P+CiFI5YrxYyzyuoDqgY
-  /dU85+tNMspke8iZZirmJQBlSCOuParUVs0aoySiNVh2O7jOT1BB7Crm l2s728s1zA0ZNwGQb
-  cZC5zUTqxinJkYiqlK8mn36X/Az0s5fPgYSJJCIXjOOrEdDTjAJtJjledky N7ZY/K68Bf8AGr
-  Lia/ZER08txuEqDCqc/d+vGKz47e7lmkS4heIOCyjphicD9KFJvVuzRwztOfvS St+RkYJExI+
-  8CWAOPmHQ/Spr0rLpY8weY7Yw68BwMfN9B0q08KxQxpG6MxXLA88/wj8cGql9HOsc DiLYjuzs
-  uOIyB8qn9eK7FNSkjoxOIpzUPXt/wCO2kaC4fy/LZgjbWIyGz/Fisvyyk8RdigjHQjBb vitq3
-  eb7RGSkNvmNkMjr8vzdO3aqlzHi6toHcOIoz5jr0c47foK1hK0noYctJtpU7d3e7/y+5me2 Gd
-  S2A75YA+vYVMd0YlKxsZAWBJ5wMDI+oqJ4gm0eW8cQbcN/LD2zjnipXWUopiZtpGVXGSFzk545
-  rdu9ipSc2o29F3II7hpNNWRVUMoCEEc4Jxk1ahGx3DvCPKk2hSuc+/4VTZ7hRbCEoEU5YLH97B
-  z6 e9PRJGkcDLbe/qDzQ46M58PSqzvSl8tv8jQNw22NBH5MRjZ2XHJyMf8A16FuLeK1iAlaVlK
-  sNxO1 yO/sMcYrMaHyzCil2HIXqTgj+vNLBFLhEdssdwVyhC9Pu8jrUOlCxDp007S0t0v/AMM/
-  uRpxXUUc MhiURL9xR1Lbjy34VD+5O6CCPyZTIIyWOQxPcflVR40WLdMjxSGQbEJxlRye3rUQz
-  O0g2NGjOZWy cnIHBz6UKkt1/X+ZhUoJtSp38u33atl/UY2F3taC4G1Ww27jkDBNNhndrUySRR
-  25B2EPHk4POfxq oEu2AnLGVGiJEnOMHqPrmrMMUd0lsJJGjRQURievPQ+9DSUEn0OWrKmoJz+
-  9f8E6UxXE3l7bedoo Ytow2GLlsg/QVNCJtt4tzOvmtdRsXAwAuPm/Cp/PaZYVEMqp5Z3OrYG4
-  N7e1XJbaJrFgQxdSowDz IMckewrx5VLaNf1c2q16Sdp6Lytp+hmtBFc3F7AoMkTzMysOvAGBQ
-  v2iK1Vtiyl90nAwV2/0NF3b CJZJRcK1uJsEJkEKRj9etMtEktLW4lcPOgk8uJgeCh/qau946P
-  8Ar+rFqKqJO910TWj+b2JPtZgW 3lLqsc0bSlWXO8njK+gHpStcQtbyOQFdJApI4LKAAW+maGK
-  TRM4TyYgrIyyc43dh6VWNjcCKOYwT LE6AYJ+/2BH9aIqHXRnRTjh1G7XK3+I9s3F55iSI0RBw
-  gHQHj9DSQx3dtYBQ2wAgNuGTG2eAT7jm pWiVdNVYg29JgiAHkqTwPc5zzWlFKsOoSQzxO/mMz
-  uc/xDp+VTKpZaL+kEsReKainbo7GMtpIyTm R0PlyKvTGQOQR7VFciS4lYW0BSNW3NK/ONw4Br
-  d+zQX7xzoZCZox8itjBIwB+VVFO3S9szxrBEBG iDhmBOOT3Poaca93fqbOvGpO6d5Lps16W3+
-  ZV+yeZJEv2CdyYyqMrAAjPBPr606KL7NfSzStl4Hz IRwCcenv2rWtdPEVn/rzAys+0OxO0AYG
-  fpnmsxnKpJi6t7oIEEjKuQzE4FKNXnuk9PmTShHERlfV duv46Ed1IL21jMKzRSlfkQv91Sec+
-  uAKvxQwCNwjklgWiycliThWB9B3FV5UmRprdpIpFJLkIuGX aMbc++aUxI3kq04Bh3KQDjaxxg
-  H8KUrcqSehM6UYQjGKsr/1qPkVlsV88xvIG+RwvyFc4JA/l6Vn K0kdxLJHcW0zF8RnZn5AOv5
-  fyqNvtMbIRHI8Rk+6ecqOv6mtC7aJrSKWKMwSJLznkMuMHj9K0UeX Te50wpSppQjeSl9xHLbk
-  WqZmMhAOHh+UMBgk/jV6CeXUbeaO2uIQN4ctKmQSOoGc4Bx0qOwDzqkM 3yQkboF7gLk7Se5NJ
-  FaOz27xK8McsGWI6Bycjp9Kyk1qpbo1pzpRTjUa5lt/ka0dzcW+l3Ml2wLz TiTKrgRZxiP6mt
-  VbyZYonkEKeXmNFKcjJ4B+tYqW7pbK0sivMXHynoDnOCPUVqPb5uLpnmVZPMCz AjgucEMPQAV
-  w1YwbIlhFOC1vr2NNHZoFa5ilTZlTtON7Zzx+FTvcNJ5hjOzfIo3OM/Ke/wCFMAkT Jdh94EKe
-  oPTH1q1LHILci6XY7ZI2jHAIHFec2rnAk1Llf4f5Nk8sFjPaMWYjDARbGI3ds/nUcUip qEIR1
-  /1LLIWGdrZ6H8KUbftJhgjM0ZZCSO2OlRSyY1DzY0CiQFkz/wAtE6Eisopv3SIPSVOW3mST Qp
-  NIB5ylSMDbkHJ+6ao6pc2lvpUYnmywATGeQ+4YFMlu7qJbiDMWxv3ocJjaF4xXOajOGtZTc28z
-  FZVWPBweO/vg11YfDuU1d6BDCSUlzPT+vQdPcSyambWK4hDh2ZlK+nP6npWXqbCNEkAkjuJYsl
-  85 UKfvZH973plyrTtJFbRskrMm9mPPXrn071HsL3jQteW7qp8v5kJ3qf4h7V69Kmo2fY9CjRV
-  NuprZ bq2vrdfqadnHC1pbOZBcBg2xR3Cjj8upqKNorS682ZLqOB5QzSOxI3c4/A1lCO8SaOKF
-  gsRxJESP 4AeT9McGtC7R73KJBLNC77wUOMeg/Kh0/e1ejMYYHnquMp3Uvlp+RaE4lkjlALIpO
-  FXghugz9OtM mj8qAyMJhsmVXkSTCuCOmPfPFMjt5Q0TXFrPFFP2VsF2z1B7DpWhb2dsk0xlt7
-  gMAymKR+hH9fSo coQPXpLD0tnt26/NP9Bkd3FcXC/ZoHGwFULHIx7+p4PNVo3luY5gbG5a0mv
-  FcuDjbt64NXVhSyWW 4t4mcB1Aj79OT+RNOmeWOCOa3jeG1JLxs3IKkYH61Cav7q+/7zsjGLl7
-  iTvs3vf8wNvEJsySPty2 3BwHXru/A1nTW1ta2VvLHvjZ0LNh+M9h9TWxG9vskSW4jJU5KnqpC
-  5C/iahYWz2StOrRuQSu88Ed ScexpQnJNbipynGcd7X/AK8yOGFpIbQ23kRz+UUdXQEq56Z49K
-  rPZyQSSz3cbsiKqkRnG5/4fwqe SK6WxthCyuoIMkyDhH9D9at/vCtyslrPKfNPmANx04FPnce
-  v9XNqdWcNJWcX9/36Ff7d/aMqI6xx Ha4nDJnLHjj0HFNWzhs7a3fyZplERiIjfGSx6/hmpbZL
-  f7GrGNuSiZXgknIzVhp0s9UcypIY1RlT PIYAcmocrPlgtOxhKUVJxpJ+hlXFjaNZNEs2y4jkA
-  XLHI+v1pk1sJGH2i1u3kTduCuBuyOo9s1YX zJ0haaCUwsyGIjALjPJz6dKgiW4bVnZSY1eQzO
-  JDncBwAPTJNbRlJLfYHOUYtb8uu/4aFk6cIo/k LQsQQpc5BzjNZ0rRkqr4uWCEEQnbgnp+gpz
-  zyxXxDzeQ0S+WEk5yxOc/hVW6uSZZJfL2TedtMqj5 VOOBj3rSnCd9XcIKUXy1Hfqv+C9x0890
-  LIOFjhSVWcIUGSOBTIZQIWnSVZOARCv3s+o9sVOJbkWp a4jWCWP+KRMhezKR61ltcWjxOkI3l
-  2+RhxtQdsetbQjeNrfcOKiocj0T6rVP+vvNW0uGOXcZw+UX HDKf4h7VSniura/iMMqyuh2r5Q
-  655GRiq0RlvrjMeLeJAUXPYYxj61K5uI7a3jvE3iL/AFbr8u4A 8/0pqHLLp6GdKmqc7Rad+mn
-  6lqS5eCIqm9Z/OIfec5J5B/KofNEeoQXdxKHBRjtUYBJ4H4gc1CJR 9rldv9YV83cem4f05qae
-  9lURxrai5TecPtBCjjFPktolua4mCp+4o6Pf/h+xctLi485jHukVv9WB 1I6daoPGkljcmV1W4
-  dlZFIOVA/xqSGWyaISeY0MiuqMNx46+nvUM4uCqS7oJnRwsgROq/wD1+lKC tPsZ0ptVG7NL5K
-  /zehfhaWOAXqlXckiRVHHIwuB29asQWt6tslwjQzPFGsWGTPzMT+lQTLd3d0Y1 hMMsbkwxqMf
-  u9vcdyPWtQXUwt7dIEUJIhlcgc5BAX8u9c1SUkla2p59R1U+aMVq9U7PT/IhW2P2O WCS2mLx3
-  CK2DjJHJ/DNNkFzJDPdYt4WSRY0MkYPyH7xq/JBcurJ5ojmy2+T+FiMEn8R09KrKUl32 7N5kY
-  K4wedzdF+tYxm3qRGnOMG1bzVtv0Bbq5jKIYEmiThVjQBip5Xn1qvIkLWUN1tktVwNqueRz jd
-  +BPNaW4HV5tP8ALbfEjh8dcheCKzLiS7fQ1iUwlJY1kjhKfvCF4PPoDzRBaq2hn9Wipxjbl792
-  n96+9L1Mq5EVru8yZLptjJhDjuM/jzVKRo2ztjltyIyAWbPTA7CtWYJNLa+SVknjhbY2PlZj7d
-  yR mqK2zz3rIwChFIOD3xx+dejSmrXZ6mBr0uWUZy+Hpf8ANbFhPLngi+0yI7mItiJduARjB9y
-  cVHm0 t9Mtfs63DTq3lyo752ueRx6Y7U6GMtEv2sqilMxKowSAc/0qKXbPMbyaQQeajOIuc5PG
-  cAfjSS1t fQ5Hg4ydoS07a6/gX7v99by3ShirLkBTgY9R+VRxXBh8u6inJEh2APyEyfun3NZst
-  5NFDH5U6yDf ukbb8o4+7j3qAyXLmIACNkBYqVwFx1z7jrTjQbjZ7GijWlScJfj1Ld5DLNOjQw
-  zR4J3Kp/j9MD0H Wm7oRAkrPNFPGpHzvkE9j9M1JYSlQ1yrgySEsqHnPBGfw71EsKC6j8qaNZl
-  gK7XUkEEdfQ1Sdvdf Q56dSq4OLWi8nr5PfQqWgh8xEnma4d4z5jJwEY5wOR1prsoji8xAHKAY
-  6FCTwD71opFFZwRtJLEW GSQqcleq/wD66wiEvLyWSeQRsvzI3bHpj16Yrem+aTfQywmIxKlKS
-  b5f72qfyJyRb24QRPK8bkTf NkcjPSq2+MW0iKj+VIysjM2T8vUZ/GhomEy7ZlmcHJRM5bA69O
-  g71JCY2aS3kPEkm9SOMe341tZJ XM1FRnOa+etvwK89074aJkFukwBjYbmORyM055fMkSOVUIi
-  JBKttBU9v0qwqqmpxFoluJGjO9FAG DzyffHNRm1EUfnTwyiAnCKGwX4659BxmnzQ0Oe2G5k38
-  kna/4lKJRNI5iljK5wWJ4XP8PTrTBFho ZGE7gMcBWwpI7HjmtRYZora4jUW48pwrIke0u7dDU
-  OEtmiWVHklti0b7ThXB6kD15xVe17GUqtSS tKN/JP8AXT9SsYrhhHEyPnaNmFx8uc5+nvUQjZ
-  ZJHaKRDuyqsfu5NaE92ViEETboADs7sAeSCfao Y4ITbs84mCK642MAWHeqU3a7R0bU+aUfkv6
-  RQnVLvUINs3kRQlgTIxPHpx3rQEMDoLhJVMCtkr3y ein+dVldBcylFDJvLAMoOSO/0pI5YpXi
-  neKRlX/WbDtDHJ5pyUraHD7OpG9uutl/Wn3sluJIhZok Uu/BBTbwozyRj606NHmvpTHZy7PMC
-  yIpGUB7fWnWEjW2n3Ea+RLiUOPMjDYAppdUu47i78xi+XUx nYGJ7cdajVXS/r8jKNOpGjJJW+
-  e/l/wzOus7MJp0ixeZIxw2N2c7W5I+g6094SmomeKO5Z5cyQLv yNgGCMfjUtlfMdyOm0ySAEg
-  YwRk4q5JeSyzK3lqfMR3aNBgxkAjb7fhXiTnUU3dBPFTVZwcLrvff 8TMgVQkRW3uJo3UEgtkf
-  72D2FLDFcG6SVpo48IymNh95ugOOmMc1FC1wLHTGETRNFblgG5yc4H4Y qUGVbUywXEE+2WMBA
-  uTjNaSvqd8ZVG37y107/wDDF17aRNPYD5jHLHGXPRuOWqjZ4F6Uk86YEAjD /Ko54+uOaciP/w
-  AJOss8jtAyOxKkhVODwaWFbC1tLAQ+chlx5ckj5HOQT74zU7Raet/6/Q5atWUF yuV79uhKkd3
-  DY4DoEaPzPNZcjjgfzojSN5Lee6V43+6zbsAuQRinmS2geO3aVihVgYyclcj/AB5q m9kiWFqs
-  cdwU8wOCzk5H8X45NJa76XNIu6UZOz7liwSYR+T8wuQVBUdQQcEfXFab2rpGXkEca4yy uuSpz
-  gfzzVd5UmuoYoYpPtETFpCD1Yj730xmoJrqYwRea4QIyhdw6oTzn1PpWUlOUr7FShN1NF+r Jp
-  p3j84SsjvGGWRlGAC2B09+tZkkVrEGRZ42iwpi29SByM+vNaBhvjqaNGiz2sm4ZC5x2GfpUaW8
-  1u4t5/JjWKMIJ2ThiOeK0g4xWjO2lRp0k0nr6r8inOQs0ki3CCTC+aSONwPI/GrD31o09y80DO
-  BI AXj4AJGQD78Yqd7WO5lXzHQs0ZZ9gxtIOdp96fmHy41Elqm8MQGT7xxwf8KfNFpXX9f0jpl
-  UozUV JO/zX4lL7SbnSwY1VZjggY+6CckH3GM07yppEl/d+aZW8yNsfKB3OPSpbO4MUojiaDbI
-  A6ErnAHH 8+Knm1HyVuEmAkmjuFAEY24GOR+FD5lK0UQo1qErU43e+u5Xgto7j7T5k4VlZY9y8
-  cdTj69KsJdP taG2lWN3kEr71z5RXov4+1QEW7SuIHKTbTkseGwMjj3qSWayfSYEMiJclFM+OC
-  xJz+lTK8nrr+hb nKrK87y+W3quxNb+fPPubduddxQ9UI/qauJJILyN5FcxFOWz39D74qOGIqZ
-  5/MQr5pVUxyMjufQC rd1ZgWg3b9kUgSMqeCMZJNc85x5rEPGUvhlK99Lf5GiRJFEHO8RxsIyz
-  HPLEc/hT5biYWz+a+6Np C59QAfX0rBgRZFZVeUxqwBLOcepH196vXepNDYZihKo8wLhgCYicf
-  Kf51zOi+ZLc5IR1Vtdf61LI uWEe8kyRvESfLOCrA8DPvQ1zcvaxSJJHFLsZY2dcqysRkgemeK
-  r3NwEucMyy797L5Y2jAwMfnyKy p75lSBDGxZVXcB/snk+w9qqnR5rNI6KaVVXiti3dXl9BaTe
-  W8IAk2zl484YjhR6Vg3OqXQCRsUUR 7UbcuSSfm/pinRxFtWcPDdSRyKzyrv754qrezRwxsHgb
-  Nwu/LH7pz0r0aNGCaVrs74UKDajKF330 X3EjMY2vLmOZJy7bmRDyoPb8BVZd8k1zHGYSyzHyW
-  VeXXHHNPvmlNkPKeApLlnVV5LDAxn61Xtp5 I7+2id41jcHeuMEBff1rphH3L9f8hKpTnTc73c
-  f62tr+BMHYWsAuG3ThTDGqccnn9D1roEuZEt5g GR8yIr4XuOCR6CuVjn23IaaJg2QSM8hs8H8
-  jWw7izM0VtOl0FOAByQf4s5/Gs69O7SK9hUbUJNWe 2/X7zciYT3TW85aOBJcqSeSo6Ee2aVWt
-  767ZEaWUTK8uxW+Yds5/DNY0d3NJbiLz4IkMTOSV5+U8 Vr2N5i1imgt1ZlQwhlAGd3f8O9cVS
-  lKGqNlhPYvnvbsr9e+xJa3VqscEUayxlIvLZ5GyMnpn9aYt y0dqq3iCZVUoNgwGz90j6d6zry
-  3lS8cqymAMhyv8ZQYGPqTVqG+hEszzrtd3aSNW/hA6j8T0pulG 3NHU9OGHp814av1Kaox0mRn
-  iaB0b5pHOQCOin3NaOnqbiPZclYFQSZDDJOB29BSkrd2cdoqlWkTe M9VwclT6sexq7a2lrKsm
-  Le5Sdd3yGT+A8mlUqrld9wdSMYrm3T+75sq2e7YjGOS7gG1EihOC5x97 PtSzRCKSVkjui7Ocn
-  zPvYxVcLcWgVYklKgBh/vZzU8duLi7tnuZJYTKhlPzkdKUtG5X0DESnTi56 Wfa/5Ji2V3BPMI
-  Zyo3nzC6cKOwH48UOIJLZxIXgUPuxM2SATg/rTJI445MleH2EsvHQ/4moL82ro jSvJI6kRNEh
-  wST3pKMXK6urnH7OCkpRbjf8Ar+rlt4cBjch4LaIeWjbsD5iMkfTp+NZv2WRvOXz/ ACssuS2f
-  kAP3fqeKsPfLaXEttK4CKxYGQ7s4GSP5VHDBazQGdpn8zeCYtxyR3P4VcXKCuzGvOpQe qtf7v
-  +H730KitZSah5kqTTu7F9obG054X3PFVpjE07QpulM8hdwvTPYj2qW5igi1jz/NCwgnao6q D6
-  +vNZ7Yhu9rSiMb0eRWHzAjrz2rrgk9U3sdNS2s03ey8/yBp7pdyPE5hYNnfyckcc/WqSw7ba0d
-  WQlCBIoGCAT09yTWhPHKYJ3U+egnJUqOpPU/SqmJkZQmwNghht6HHGfc9q3g01oRS5J0vaXs/L
-  b5 ixTyQFY0yrSMRhgMBwOn5U15JXaLfDNIWwqEdMHqf0oFpN5ClsfvVEir1OORmpGuStpbRtE
-  2Y4yu fY1Wl7rVlTV7ONm32Vv1uS3VwpupYo4xGjlipI/h45z6cUttJI9kZ3eNwrrGCBwPUH3x
-  UMZZYoXh ULGCysZOS/HQelSxvCmnMu4LKrKGP8Jbk5xUOK5bJGVanOpRUUrR+/8AHUZLCU1MO
-  kTGMneExkbj 0rQF8ZtqzoE2D96AuPmBqratb7fnMpCsEDbuOeoq99h8lk8mRG2IRISMh/8Aa/
-  Cs6jW0txLbklHX +uupYslukl8zaSjLvZmPKkZyP1rQkgMttcJgTbXC7Ivlbpk49qpOk76SjzT
-  o1tlVAQYOWPr+ArQl jdLuY4csx+cqcAHHI+vSuGb9699TKVL3lNNL0/pMtfYJobBLhJ1DFirh
-  8nlsc/QiqzWrjUvK3Kxj VsKg5bA6/hTysUVpBteRnO6VAXJAjyAQfU56HtSCG/uppoXUpIJGU
-  soxhSMkfXgVzxbV22cULwTb ehVMV5aTwlXCMIWR55BnzM85/XFUJIrtQC0TBYSpAPUKOo/Dqf
-  WtcXCo8AkuEEJXEYfnIJ6/nUrg LctJI32gq58x1OFZivAA9/6VqqjT1RFWFnfkun/X9bnOIsc
-  tvJE48uVbhRFKpwoUjJbHoT0rQnlk jlgVogMRMLiRVADknt6YqSWXyNLjhuERhtJfYuCrZG3P
-  tVCETSaw0jW8qouYrhmOVVz0I9Oa2Xva vZXKo4eLhzVFbsuv4W/UzJIXFhiKGeMpIoRpG3bQP
-  vmoY/PjVwqLcxSAyoSmc+4z/CO4roGit/IX zEuA7OFdA+MsOCP8aqXPlKoVIpo4gQjvu4zt4U
-  enp9a6IV76WNKdWHa/9etzHlillZVkaGKNxmRg mBkjOPqccUSpcXNnKRKmPNC4C8gEev4Vdku
-  VuJYoUs5mEcWwLu5B9/cUW81tbARTho9y7gCfvAHj 8a255Jba/IVSLuuZO/bRmR9knc/ZiyyS
-  JOdskXyqNw+7+OOPxq3mYSgQtA1ycsqrH83pz7HrioZ5 Yo5YZYSWjdd2QTkEHjPvV2CVGigaQ
-  iHzLd3DDrkdOfQf1rSpKXKm0YYmPLG3R9H363Kd40kl0luB 5rIrAbR/rF4JH4VSWCVr+OK2KK
-  fKI+cZ9+aleORbRriWbaBKFGTyCw5/Co5TJDcsWzsiOzKnB3AZ 61rBWVkJq9JxhZeWv6/8Agk
-  tLqIK5xbrkKSy53H0zUohQxmGIlZJGeTy2OSMdFz7c1CgmMqmOQ3B CFQoBbGeSPrzTrbZEVkl
-  Ei8mSJMndx0z7Hn64rR3tuYqNorRc62t19VroSuVjsxM7h53OH2nAIYc EenSpnmigEEkEwbYC
-  HVxuCk9OPfmkuUMaedG8UsLhWKMOwPaq5uHfUd8USH5SChQEE54P4ZqEuZX I9i3T5pLRd3+A2
-  6+zo8ioZZxLhwVboF9c/jU8zW0ljcS27FZzeY8p/mYll/lSxp5qzJPPBGkaurD HzBvwHY4rPF
-  qJJYXWVERoy5kOcHtkfjVJJ7vY568Iyak29Oiu0/68iK42SSQQRskrSMDEE4YDGCD U8Zht7i4
-  dYpCY5Qq7myNuDuOP1p0Fi/2xZJIzOIQXPl8EMDwM/rUEjxXOJkV4mE4WQZ4cv3Hp0rW 6fu9D
-  n9qr8s/h8tH+hoW8yNZQIixAxzb5cr97j+XqKylkS2kRoVDJjnI3BOTwQR19Kmc2YnIBkiQ Ag
-  nOdxzgEVItudnkNJD5O8sHxznPTNTFRje/UyhGjScoq+u9+3luQQSzTzRTsUZI8/ukGGc9PSod
-  86XCB1TeBu+5yKsvCrahKWmhgbdljzznkkADtVXyUklt40kMjSDaoxyK1TidTlTo8yUtGtdHb/
-  I7 KZI547YWjkwqMSuD1Zj8vP6VqssEZkbf/pEM8aICezDBB96rGVjbt5NuU3uHRRjlFIJ/HOa
-  v3M8F xePKAoUPuIA+9/tfTH614NSUnZdP+G/4YyVGTgktUZDy3lvEyBoikbrsi25dlB55rUik
-  jCTT3Dww xGQqMLjBPOPqOKcl/G92y5g2RnahKjIVuv1qaeJCdiFCigRxjH3+cg/XrzWc530kr
-  ET1fK4cluv9 aL7jlLm5S7uYYhFNbzSFjIxfgfQf561pWdur2ygyK3l7vLQ9Rg5/+vVtklmgdU
-  SF/MPmsVj5DA4V fx9KuyRoLxpruJg4Zjsj+UISANp9zW1SuuVRWh11Z3UYr7r3f4laOeFGKFo
-  /PJSR3dcgk5zj2Aqv K6vEXjkB/csS+flBBw2BRbxo8Kuq/vQ6DLc9G6Vca1Z5JVCMJHVpI48d
-  FH3gazvGMgoctOreKt5M SGOCCB5oFmuX34wrcnjrVULMQoEDrGQrOz8jr0/GrouEWJhCY7cyg
-  bUc5JOflYe3WoXt1huZpJbp ZgCA0anbkjuPbmlGTTd9zspTVHmc939/+RLHte4QhbgpbP5ZVZ
-  MHJ+YD8qkd3muZmnkiWFrhDFkf e4zx9TxVa2nsYplZ5Tl0aSbLcb/uj9KfLfu11JHB5aiJ9ql
-  lztGOfxFS4S5tEZulJ81S11br/wAE ZPO0VmXWe2WSb94yleVx/CffmpUngkgkhupreLbIGzsw
-  QF6dOxFQu8UsqxMEMbByCR6Y2/map3Uq q15mMTM+C0gHy5A4wPQGrhTUtOp00cPTqxUZNprtb
-  82NvD9rmYwosaTFpom6AAYG3j35qaxsgbjy bpjJ8xbcDyMDkH1NVILtUjt51uIXlj6psyD13c
-  e/9Kn8u8igF7HIGjbaJABz+H1zW8lJR5b2NJTn y8rdl0et2/X/AIIs80iG1Ft5bM0Ls5xnDA/
-  4VDEWkjjnZUe6Y4UqoAC5yVI7nHOatXRaVGgkUK0b 4XYuNw7j8arXFvKliHmuYgQp8tQuCyn7
-  x/DilBqyT3MaTb5eeyu/X77FporWZlkM8kaTuHjw5G0e /v71Y811uZUguhNK0mDzkDHbB71QV
-  7a3sxAtzFlMpIWyfnOMMPRcdqLS2E2ni4hV5JM+XuRuGG77 w+gqXHS72N/rLUZKUrJ6K60/H/
-  M6hZokuZ5GBjbzAjg9M9z7cVkzTTG4bfE00bzqGCfwtjgH3Ip1 iuHZ5SfJeQsrOcjJyqt7ioD
-  BcQIJGuEH2dgrErkEjJJ+uDXNCEYyauYYeb55LnUn/W3/AA5o+RaR MbgmVEyFBd87M8BT7nrW
-  bOBb6nKxbdDHEYyzfxluSRWtJJbixiIuIn8yBiFxn8frXP8AmWsixRMZ ZJJXIR1fhlH17mqoX
-  d27mlGvDmcpN9n/AMC9i1a3cK3ELtdwmMpuYY5JGdoz7is+/cSyF7lHDK6t C2OMY5U+tS3Rs4
-  7SWRFEOZo2jBHVfT9KT7R5UjSXEBmiJdkQf8sznO1vXiuiEUpcyQoxXtPacvNf rez+RWtRFKy
-  DbJ++yevTaOR9TSSSZ1CzxbEMSXKHG4Dvz+tEaXDndbRkRtC24d1YZ49s1C08Spa2 13L5bm3K
-  tJtJ2nsDjn0re15aGtShGad3p+RJC1xNdD7MhdlyGOAck529R37UguDKVdnCSrDhjjGS D396l
-  ikf7T/elUMrRRjaQ2MZpUS0hJN8rJlVAUHG3jofc9Qad0m9DuwmJ5INJbeWvz20FgvYjEkU hS
-  N9gUOVz17VpSanvtTGhWAqVUKV/M/gapR3EEeoRLPaFoSCxAwGjYdMn24p0NvE8p3zwymZfMYI
-  MMp7jPbNZSUL3aO2lXjGV5wemqe5pRW0kgtgk3mykM5wTjAHJ+n9akspLeJgJ7WWQzIph5GfLz
-  zn 1571DCzxLFGiMo3GMHP+rycgH602YyQ3JuJmyrZxt4AxjIHpXO05XTM4znKMrt67Lr+hqwN
-  ZHUyq szNIXkLhuBt6fQZq2Gu4YYrqcrmTKoFGPkP3vxrLfybkrboCrAFlKnoO4P4c04vdy5Mi
-  P9nCnafQ AYx9SK55U0/+CH7ru0/Pf5O5dMd1O8ciypDGqeXECueD3P0x1oiZIJJTOTGXIKSOM
-  hF6EY96qRSx iHbIk8ULKJYSX7AY5+hpbxvJtt3nJcs0m/avB4ABH454qeVt8pz1qslU5H17b/
-  ft95JK0FvctdLI s9s4+RAeSBwKquwhQoDG8sC53EZ3Y5NV7ET/AG2KBIzHald8fm/NgLk5zU8
-  TyOQ0jxtMclDt4ZM/ NxW3Jyuz1/r+rluEVU/eavvf9CvLdQ3YcztDHayMGj3J8z47g+gI5qGF
-  trSMkiyF2ZnYDAVgPu49 6Y9xJdwLGYY0hd8CQKMIP4R7dPxouFke1eNXTz0ONsa4IBHIPqfet
-  1FJcux0xUJRUUku/axXnuVk ESKhMrruK4BPrSpCZ7NwGjSWOVVYyjlmJ4P0x2qaJg9xEqWssj
-  jJj56L/Hn1xUweOGRMGOFGVvsz PyCv94+p96qUuXRI86vWqQl7NW022f8AmV5oJFkaSSaPD58
-  xEJGJM8L0709IEYebHHI0k0pkMW/5 htPAqqxLQTfMzNDKkYPbB6k+p96jYXsWqF7csF8tgoIz
-  jPT86qzatcVSM6q3Sf3J/cWb5MRSbZMS +bhuf4c549BVSR7a51aJVyokzI5J4G0fdqeNp3soy
-  0ZaeBypXH3R2VvUnmqPkSAqpw87/vQiA5AH UdKunGys2PD0Zyp8t7W8/wCtPUlS4ZbpVaEMjp
-  yhAwM9D+FT3FrEqiFGEczOCzNyvTAH49qjsY4L a/cSrLHIM7GdshB3BHer32d5PJjUiVUdR5i
-  nqxBK0VJ8stNDpxVepGom042+4SzUEm3l8s+YwcAD mPYOAfU1ftIzdXjLBHKWUKuc8EfeIx6n
-  FNgWRLyJHjUGFCPNxw4P8X4Go7gSxW8zo5BadTGyErx0 I+tc0nzNruFJybdOT1e39I6BIlJub
-  tQCDL8kJ5wCMdOmRUtzMgmUM6nETngYOeBz+FZCSx/aLcNP 5bksdjE9M4zVzcxtmKOk6LMFDq
-  OoJ5FcLhZ3f9dDmp3Tbldtd9B0U88jLiNFcIyoWXIZepNMaG4Y ySxziNhGq7T/AA56598UrCK
-  e9LDfDJggLu6gHJxU8ySeT58Q8yNiHVR/CvRgfU0XszWUnG/Ilr36 /mZdvZOuoxfb9vlvE7Dj
-  AXb/AI8VoiH91lg7tsbeUOB5mMgflVSZ786nEsSh45EaRl25MfGAtNju Jfs0iwQT+e7jYpbqC
-  OW/LNXNTlZtnJX9p7Vc7V/69BkEjfabXeyBWtyGjcZJJycn6VWNsIz+6Z4A sTKpkbIcdd9WFi
-  e3817WGSdZHBU5zs2jhST65NUDai5kYsLi2JkJIZ84X0raNrt30/roazVOMuZS Vvl+RWllRZP
-  OkjuLkH5nMb4CNtxj696ogyxtCyyrMY1I8vB+b+6/5n9KdsiiDAiQqSXjJfjaOCp9 +nNNWVUn
-  82AEgoIkHXO/rz7Gu+KSR0XpuDcv+A/68rFzy7i6W33lfMRTE5jG3eW/i/DGKjaOOMGT 5WkaN
-  izMMgMo4WqlwsNo+ySdhKn7r5SfvDp+eagtUje1it0huXKE+YQ4O4nPIz09KFD3b30PPhQc bS
-  T930/zewNfK0tsrpDbyCArHlOCfTGOtNAmNrHvVtm5ZFZRgKBwQfr1qOaAbkIUIxUuC2DjA4H6
-  YqRbe9aw3q5YqygAfwg84Pvn9K6LQS0NsRyxaVl6/wBXGxXckKF2jMtqhyAQDuJOFP0qnPbM08
-  qN unkSYybl6Px6fWti4lmuIJYvLWRjJgbFABI5LD2GKxpwGkLhZPNYA/KegPXNOi7u9rM4IYe
-  lNup9 rtr/AMALW48m+juSpbKFnRRjk8U27lE01tIytEFQg543sT2pk8KJeNHFL+7VtqM2Tkev
-  SogigQ5Y HzBlVzynOOa3UY3Uh1qVJT5ndPvqa1kpTVP9JglEP3QT90D3/GqbzzPPIpeKBTMok
-  O3G1vwp8t3d W0vU8t8rEZUnufoav2yzyyS3EqwlPNAeMIMlwPlNYy918zOLEy9lJyk07rT+rW
-  uYk0YnC7i6OOcZ 5PYk0rW9w9rbkZELuSVXqDnGB6ZqeRnNjFIIJo5GygyB68dB1NTIZ5bm23I
-  YiJAr8cFsHpWrm0gx FWlGmnTd/wAH+enyJLCUPOsAhmGYpHUh+vv9OKrXLNAIEIiETkOp28se
-  uP50LiOWKVRJDtTZknIA yd6n3NQm633yTImzy1ICvyApG38+9Qoe9dLT9TgeFhKo5Rimrde/r
-  f8AzK8zN/aC7kxFtwF287Ty OfX3qL95b3Ufl7jGgwyvyTkfzq55LTJBGJEdURotwGd+Odw9qh
-  AhFo6sxxkGPI5IPfPtW8ZLY7Ka hiXZ9PXQquqGSMsrFFX5RvwSPfikdlR5iwG4t0A6e1NYmYR
-  naoDFV3dOe3SpQzBJ5JCFuCSWTHIP Q1tsbQnC/Lf5/wDDWPQtNDQlYLWKXylYB2kO4tk9R6Ad
-  x3rb33H294hYFkXJOFGcA4J+mKxgbZb2 FJXeJMPvKvjLdVxT4b2W9iNul7EkjOhdyCPn54+hx
-  0r5irBzblb8zzoqUqsny2XXfT5rcubYRcma KEJAq4hUgFtpHf1NZ++ZgqxywSLCrLhRzkdT+G
-  a1riNra1ZFUCVz5sYIyFC4JU/zqo88F156GLb5 7faCyHG3HBH49amnK6va6/r/AIJ6VGEpWqc
-  l0UJZILazjiO8LLGB9/DbgflxS2cErXU7TSnypDgu zEgtggH+lTy6YssMlymfs/nI6knOBnDC
-  l+yLBb4iEgj83awZskFWyPzBrb2kOWyerN6+LjCm1Cbu /wCvkKCLO0VjazRjMZUOwyoB6n15q
-  S7iM32gxXaRusx8pv8AZ7j8802WK9bVhNdwvJFGxSIKMBcn Jz69qe2pKjzR2yAsvzK7AEZ4rN
-  KV046s5uXmanC0pddV+pUWy1C6uLV0ubYqi7Rtj5UN/wDqpjWl u8CxPL5kxQtgNzIecYH4VDc
-  G8eXz5IZgsk2+NYjtIAGMce9aDSRC38+9gkhEcq74hw4kxwM+ntWz lNW1+6w1iakJxnBL0Vr3
-  69v0CygP9iWgQRxOsLKzSpu5Lc1bW2CIskUOUVdsink7jwvP86iHnGAF 3RcI/nLjmN+oBx3NU
-  bYXLQxtvMathgWzxt6KfU+9YNOV3cqLlUp80ZW1ZYuvOit7uFogjpMqxEgc 4A4/GoTA10s8Mc
-  sOxTmIbeWXtz35zzTxeTx/vXw5kbeARnZ25qKO9LTRyHyxb28PlNIoxlyev0rW Kmloj0KM5uE
-  Ukrp/1pZjzBJ5EFuq2wkWJfMJiB2ZOSD74qERySySwRyBY8jyvbI3EH344q1DOzNM YADdGaME
-  HngfepbYfZ7mZLd0mkE+5Vxksq5/xx+FLmaucs5TTajFX/J9zNmayiaCRorrMkL7C0nQ DkE/j
-  Tmkku4FgmAiIi2O56bsdvQdK0J4DNBZXGxGtxbuT8o4w2R+fSs+7lLXUd3FC4Z13bD/AA7h jn
-  1xWsJKVu+pNGfPCL5m2m+vUhtrCK3Yfa5I5WkbCL64U5P51qQzx/2WqxAKrIXmVTgq44X6A88V
-  m232OWbfcSMAjhFfdgBcYx9T61qmN/7OjgjMewhg42/NkH5eaVd3l724YhRVZObb+Vv8/wBCs6
-  Sr aq33wyAxBe69WP4ULeGd5EmxBHu8x2boTjgfjWcv22O+EKAxyLgx7+flHOKt3PmTBJg8cjr
-  KMIgx 17Y/M1TppOzOmeEhF2l/l9//AA5PeQt5ANy6QKyqAcYHOOn0pzzwwIYIoCZokdY5cArg
-  9eKpedNI k0V66FTmVTt4baeMexoSWeVJEysU81wJUV/4F/uml7N2V+n3Cq0nHlUlon8v+CRl4
-  Lixjtw6QgBU TzBkkA/e/OiK18rzkeQl/MVJPrg81B9kEUJuZgS8c6rJ6Nn09B0pJzLJffuxKt
-  wsmwc9d3St0t1F 6Fx55XUJWj30sSym3+yjyLqPzWUZUoQc56A4qnA4aIJfeUjiYSRlkyVC9Qe
-  O9aCwyrBcI5gLLIDK ioA4IOOtQzwILzDkukAxlemDzVRkmrXO2tCpiaVpzbt979NP67hmS4uJ
-  Ag8t5nMjjGCGHIGfpVq5 hurpbePy/nkVn3kcA44H1qta7JIp3kjlFj5u4SbueOBzVRoZnvJBC
-  0rqn3WBPODU8t5drHDTpt1P ity7f1c1Y5lijRZ0KlEVVZhnC5+YN6k+taFq9hE91LGytD5yhS
-  edqkcg1myxrMZWuI5IkL+YjE9F /iz684FJm3NkrQspkMgIXscA4zWMoqS9fuOudpRs01f7vvL
-  E1wV1F/IlWOAY2Mwzu4xmnCRbaG3g m3TuylMH+L/a57DvVaWeKWztCWWIhAhDDgZ6/liqkhMU
-  bbMkn7ztz5ZAOV+pqowTSWx0SlGq4x5e Xz/qxsxh2mhJuoZpY0kQtGMKfQ4/SlElwmnOZ3Bif
-  MhbJG2QDCj6e1Z6uY7KVWR5LffGx28MB3Gf rUlw9nM6WtqJsFt+CxI47fiah09fL+mRKnOE1z
-  q6XWy/P/gFiG4VGj89JI5Ik27mORjuMfka0yk1 ywNuoYzQl2kxxuzjgduK5q4tpLYw7pcyL0U
-  88dyc8d6Yst1FexRp5imNCEQHkoeT0qpUFL3os2lR U17alv8A10f+Zr3LzWiCORxvCMin0BA4
-  +ppbGNomVJd6rErbHc8EY5H49Kjt5XMSNbp+7WE7DMN+ PQH1PXmq0ySXt+Fg37mVfKAbA2dST
-  9DUKN04vQ4788XGbStu+33afmTz20i+Q8cy20Dw73LgkDIw F+tPsfmt4y6NJLbxnyiD99e+fX
-  iq0Ya5uLnzpFCPIpB7fL2FadonmzS+ZC6sgZTsOAxxzj9KVSXL Gz/r+tjKrVpxj7O7l+X6GXF
-  dtbFJYSPPRCE3Lu/dk8n6+9SlxLqb23mL50T+XE+Pl2kcnH+eabbx SJbbXspkneHCBjn7vapo
-  WZLuFvKEcrRfMxGQ5PQj8eKqXLq1v/X/AARfu+VuH+f3+RVhEMazr9si hMlwPlcE7doIzVu4S
-  WKyuHkYTvK6lTGcbRioRDIrmL7N9rZVIbAH3yOKmaJJYYQ9yiTouyVDn5nb GMegxQ37ydyqUX
-  CanLbraz0+SuvvIALdLJEkS4h2cFi/3t3J+tW7KIygxIphlEZ3O4ySRyPoMdqs XMFuJooIMTS
-  7GZxn0xgc96rRSlJSzK0MJYu5Y8pg8KazcueN0VUvODcE0/P/AC6ilY0uIYbgxyXM kTYwPv5H
-  9BSQSRyXSwqkkCkBgzHgqOAaXyJbh7meK0nBkcPHMSMDsQPaksILS2keVpQpBZJfMOcc cEego
-  fLyvuKpD922n926ZJcBQyKS6hx2PRV7Z9ScUk63tzbJFJiEGJn2FeQV5ozaMIEVJpEIBLb+ GG
-  ecfTvT4ikmpXSxXUJiklGwk5JYggY9AaSulfsdOGlKnG838Ouv/Duw2GLzkgnZQjSqzlj0PPb0
-  FbVhKLiOZIU4SVURfXJyT+GKyXVo7aSCSVY5Y/nXjpt/hqGzvIZXd4IZ1Vn4G/7g5JB9T71FSD
-  nB sdXnq0m5v0N4+fBfSm0MboQxAKZLDuR7daswXH2q1+cCCLpF/uHqDjqeM5rPuJUZ5tysu2N
-  mhKNg NHgZ/P1qrC15HcI0Vu7RNjcuQeTxx9BXN7LmjfqZypJ0+a2q79S+IWUyXErFmRkRdvAO
-  7v8ATpVG 5+1W9uzLG4uEUur4+UADBFXJdR8qcrHPbkKwieMpksW6H8KxLu4dLkW8CzNOA5Ys2
-  QMHpj6VpRhJ y1RhSd6n7yK+f9f5kVvcI2mvcKZDFhQED87wOufQHrVS6uk+3w3CSGSXb5rYYh
-  Wzxj2oN3HGFgO2 IKu5Dt4Hcg+pPaormUyfNF5CIkbIfl6Z5Cn3r0IU/eu1v+R0RhJv3oavzaV
-  umyIFluHmCTL5jfMw 2rjGeB+Ga0IZoY7QSEok6tzuGVwODgfXisqERxQC5lkMUZGI8knecgkU
-  24cyzTJG28FywAX7o6kH 8a3nTUnboLEUlVkoQXurdp/g+5LudmVmRWmADMXAPzA8/jzVkm3ht
-  9sTb5Em2ttODg84/ClimvZp raNbJmjJy+EwWY98+nSorSzmXUWh3KLjd5u9h8uB14+hqXbW+l
-  jJrn5rWXKujNJYtMnjucM87glN qtyMfdI9qzpLZbS9S1j8yVmJWRN3L8ZBHsKmit4JrkySLII
-  pHdwUbGVH3f1rOWVRfRpJcpBM3yq7 g+vHOKmmnrZszw1T2kJv2jtHv+WhZmQRyhHt52i4ICth
-  gSM4zWbds7XBJ2xkk5xxu9CPatAGVLto rpzKZyJW2HG3BxVUN9sugYouJ/3sYPITaSCPxxW9N
-  2d2RCrBTd1bu9l/XyM+OMz3TDcI1MmAWbIG egpGheOY4jkyDgHHtk1NPbBbsxllhUL1IJ5xnt
-  TEWKMDZIXVycY6jiupSvszeUZOqoJ6Punb7+pJ iOS2VmnRmlYs/GQp4qOB54xLItwjHzQWIzg
-  56mo0RQpViqvuUbj93vS20pkHlsm0s5bKjA+v0qXH Rnm16UYKSvr1029CT7XGZz5qkQBWSMd8
-  Z4b+tRzJAjKgL7h0O7/WN/eX2q1Z3Hm2Hl+RbTMWd8CE E9evTp2qCZ1ubeGW4jcqke0NHgc5y
-  Ov+eKS0la1jOlUmoqXLZdrp/hoVSgQBlYyMflAB6MTyPrUv 2S4juLeaKRUUbyxkGQ6j7uPqeK
-  gR4Ycy25MTCQkrL82/PHHHFajRwz71cTu0TbFUP98+306mrnKS 9DlqxqT+J2X3fLcmtYilmFE
-  0SXCAqVZehYZAPuTWVe2zxpG8jAttw2BhYyB9wj1NWLkmBZZTFIpk kVgWPDAjqP6VHDPHc3ck
-  jyxrub5S/Krnggj1x0NZwUk+dbGMaNWm3KPw7+b+4I1t28OrcJiN1+Xa ecnsfwNCiK4t41Y4l
-  Q7ZHHb3NV/NNtGIoplaPaUT5AQyk8t07VLaC1tS0aSAKJAGJGS5PvVyTSb+ 4wdOpBXb130f/A
-  O3SYS7kkMcjvKrKir83XB/SnXOnW0MwktXJLuWiYE4yOgPrnnFQJYPaRj7Mr3E xJbg52heo/E
-  VoWotpWLBzGFb9zG5ySjjgn8e9eHKXL70XodSw7ilOL0fl+auNjtLxftF1Mzpifyi jc7c9R+P
-  amy2cKSBFD2uI28wyN905xt/KtOewEOlpHHM8p2qJFLkkvkYNVkMWnT6isgZ4HuDjzDu JLL1y
-  e2axhWctUz0cPiZS1Tu/JW/AgtcW2/96zRsVAJ+7kHnimSTvJq4ZUZY4YjG2ejMT6etPWKO 7g
-  tFwZRCFiOw4yCcn8eOtWPswgaRgJFtpJCyhjksOm4H0zVOUVK73/r9CcRXvJ8+rfyGi982J2EU
-  qsZcgscjjqPqcU6W2jmeQNC7JM5lRo8DZgfcPvWlbWyAKEiaSZtzKvqBwf8AGsgwy2kUKO7TAq
-  37 xTgEg8YHvWMZRcvd0/r/AIB5PtXKWyVvPX8xEmuI4osFI0kw48xc9PT0qnDPOV3Xmy6dgSx
-  QYC/N 0Of4j61atf7QLgTRpPEJFV0VPm5zgD0pYhHDPIhUhmOTnu/PT29q3ulfRHZTcY3en9fi
-  XJZ7p2jl toMSOrtsKA7SDgFvXvWB5sxkt4TIslzKn7wpwMDPIHarcz3kH2RIoncmMLuB++M8s
-  PakNrN5zOWR cuSzY++o6lfQZwKqkowXQ1w0uTeS8rNX+fclhgmeN47iaGNdwEYZOSAPvfTpUV
-  tGkhfDRS7pFEgA +UkfeYD0rRguopCyi3kJchuSDtGMMKqSRxLbWazRSoiJhirbcgHDZ98Y5qV
-  N3aehcHUTcWt/QuGG 3tpnuhIhQOCBnqB3z+NRyR7buN5HRYyhDOo6Eds+9WltpJtQMVo0f2YA
-  iJXXcdnfPrgipXsJFsmc zxOElRRJt+ViTnOPTtWHtEnqw9ooz5ebXz/4bT8ShIphW3lkjcRxw
-  PG0Stg7mP8ATNZ627QrNErq JIpFgjD87lP3j+tauLhLy6NxIpE7eeCV4XZ979cUtncyXNi8iG
-  F2adJXOwcH0/CtVOUVf+v63G+e m3ZJ/l+RWNnZ2zRpIyPBGHCjHTHUn1rOWST7JEu9ApXcDjn
-  g5K/XpzW20UEVtc3UqSSsbgKGDfKF /u49e1VEht57ny1tJ4N5LqjPzHgcqfcmqhUurvUinOct
-  WtPkVLS1uJrSRVYCZZifmGSo67frirRX zdNhBtZY7cqPm4zyeDn9KmtYEigE0UrK77N0ZJJjY
-  kjafcip57rar2m9GiPIXHOV6HPpUzqNz0CL lOquSS06tbFeKI/ZrdIYQgjiZAZQGO3PP45rPu
-  bV7qS33W8vkAEPIuBhyOp9geMVcZnmado4ZCBK jKqtymBkg1o+bbta3UARyrSFzGG+bpkEH0H
-  enzyg7nb7GVFJ3u+/b8TjlW4ntxDdZzGcFQMc9GJ+ nFSk21tKSgaVgOG3d14P+NakLpe6fKGM
-  cSK6oJSPvlgefpxUU2mQi1DCTyXRWWUsfauv2yvaWnkd tOvFQ5Z7Pok7Ge/mm8WOOYC6Zd0gI
-  4zj5s/hTn0ib7FC63cd0ybo4xHn5xnvnrxT5YrdWeZZ1WRN qkkk/e4x+Wa0Y9Pia2dcywBJ/L
-  ALHK5IwT+FOVbkSa0+RlicQqNSMrWXmv8AgFFNMmbR5I3lSE7w QjA8flWlZ2FxHfPJDLE8aFE
-  zt/1h67h7VoBoI3eJ23xGXKt3kI4BB9M8VIXAWMrhZEDeaF6GTPHH pjtXFPEzkmu559XF1Jxd
-  J7P7kVX08yPi7ljERgYQsoxlAcs341TklhlQojwW+xgRleqgc/4VqQXH 2tbszJseWRWGT90EY
-  AHoMjpVC5itRbGRbaZJiMEFumeP07/WlCTvaRp7SpdQm9trWsUJo4ktg4lg Ikw5i2/MCOKha4
-  thdRNbRSSzONzKTkAZxtI9cZ5q8F32IhWAu8bCIMOwY5yfyqOZLmS+uVEaQt5g fbs5TjlT/nv
-  XTGS6m0KkXB3k387fgihFcHbJ5kkUayT8K4zuUcAj2qmziI23lxlpMlXkToME/wA6 vxwQtN8s
-  yrLje0TLyAvoen1pzyQzwxRIoTE6hnzwdwyf/rVvzJPYVScoNXu119P1KMwMskCz7wjQ 5MgOA
-  v1/L9adbPbRym483cwUoV7kHqf6VpS2yy3KpyvlMYxnkEt3/Ksi5V45YrZRG6hg6MigblHU 59
-  zVQmprlOjD1VVTipW7pdvuf5lmaBdkjxpMsDSL5ah+ijrTxcBIzNbxNGYN0asxyME8D69aikik
-  uru5itJSys+8nPG7GcD0zUkK3QEayshcy+b5YXpjnB+vak7curKquVve963S/TzJYpI0itJ2kU
-  Oh yy/7Hv7n1q/9uFq8cZSSeSZ/3LIcZTGT+Oe9U47yC4uJDHaySBpzsUEZQY5U+tSNZXKXkct
-  ycxOp AK8YU46elYTjFv39Dj5Kbi5S0t0vv5K2pm3QMmp2WJJlUw7mG45B7CtiGKDb5sRZmjm+
-  QM2SykYG Pxqo8MUGoJmOWaHbuOG7rnaM+9aWmT776WG4iWF5U+0ZPG0pwB7c060m6d10OrE03
-  OlzQTaS110+ etySygvgXNwNgikCYx3YfMT9Ksi4g814Tbqp3rIkhAy4UdPrRb+VPbFi8jM0uL
-  k7/wDloeOPSpXK pbyieJ5I1AijKnBO4evtXDKV5O6MVyTjzaLyWn66kDyWtxfJOkTMkqMylWw
-  VHYfU1BG9vBam7lid 3YBNjHIIzg/j0FAgS3WCOEthEdMHncTzx9T09KUwia1topEe1jYFlMh6
-  Jj5gfcHvV+78gclKacn7 r0a6kMt8qwYCuHQiN0B+65zio4EsjqDRXc6FmQDAyN4wckVKloN0Z
-  8xE+QI7MM/MTwT6kY/WpJzg zSLFHclB+9eNfuMP4Pqa1TjblidKqQUJUqd/vsx6CwMcsoBSKO
-  RU5boWrPCxxXG2RQ/lkEmPjaec GrJhsxp4W6tbizjkZZA5l4fBx0qzdRWdxqJWOUNN8xCIT8w
-  I+99BUxkk+tjNckLc3M777NffqZv2 cSadJcKWKOyqznnLg4H59aWO1Np50MbJuF4CwYcj0X86
-  vfYrZUlDF3Rm3fK5AJAwMU4IXs9rFY5h taRzyFZeuffFU6t1a+hrVqup7t7r+uhnTRNDqD3s8
-  oUqsgCEnrjhalVt9rb5hu5HaP5NkmMDHIPv 71baOS5SQuoQSEypkDjjgH61TFvLa+XeM/WDH0
-  znimp8y1eparua95pNfiVHCw6PG5t5wQw2sWzv To34iqlxK6ySFGY2m47STluRgAn1PWnvJe/
-  Z7VVDBPKwu4A4z1PSneRLN5qmN7gtKAsUWAzKBw49 hXTFKOsjLkpQXNUafdq70+eifzGQBhDI
-  JHt9+5hIXTJDgZX6DHanokU0dskZSVmgKTlTxvPINOlI W6khSN4bcljI7c7iR1FY8cclsDKZk
-  kYTCNdvZSOv1Aqox5tb2Zlypu0ZNPpZJ/kXDa7LuOKArLsT c0bLncc8MKjR/scbmCSF2LlW+U
-  ZjB55z1qjKVM8rQtKNhARg3UDqac9xIzPnZsDEABeSP7x45xXQ qcnvqb+wqOd07p73Wvz0L8s
-  WLRPJuT+7GNoY5ORlj9BVO3jurbTJJon3rkB2HVQTx+BpVtRFEJWk aTYwJ2HA4PT8afcuJGdo
-  pAUmbPljgqegBpK/wrVCoyV7Lb009P8AhyENc3DLATvVWIVVAGcntx0q nKEjuSLkhz5mFI757
-  j0q0izrceW37twu0joVz2PvVdEmuZI12KZNw25UFiSeK3jZPyNK0eWL5bKP 3W82ORi1tFJbEy
-  SqjIwz0Gev5ZpskczS/u0cqJdse3+EY4P41f8ALMF3PCkEsUjPwD6E88e1RXNt JbLA0Eh2SSk
-  ZIztUDnNTGor+pwqs4S5Oa76aXb+7oQbJZWmA3BiN4B5IA6D602GB54gAoXEvDEcK jfeB9we9
-  SAwi6liEu/L/ACEDHy49x+NSXEix2lulnJ54lVlTbwSFOS386bk9kTjsRFqOr5vnp/Xm jKIxO
-  Yyrud3AHU4p6t5yK7MyBVJfA689R7dqt2iwQXQkQTTMqsDznJYZ/wAaRzaw6cEjl8yVwAM9 Nv
-  X065rR1NbWJWJ5pck20n1X6joDHDcK8ToxbLeUB8xA/p7U2Uo0MZWCQg5yQ3B79Paq6wkwqJWE
-  LKArKwySSeufTFNXayNJFHLJHHMFByNrBep/GlZXuRKvClUU5J39N/yX4Mmfa1uqCEMyJy2OM7
-  uv 5VWRJwkpkmjBEu3KJ/CRwat3F+0stwiW+3c+SVwMen4UrXDvE6LAC6j5iQDyB7inHnS2KhG
-  rUd4p xT7P/gFaK7gjt4YtwEhO5POG4DngYx9agke4VVljhh8k5LmOIBeTg/lSn/WCRooZBGhQ
-  nYMDcMj8 fQ0ExbEgYvEsURVhnv1A+uavlSeiPMqYd05W5eu/UjWYRXcUs4jni37cIMH5eAOnG
-  anjluIdQBji VnVsyIY8/Mc4p8c0ZiaGUxqZ5lmZdv8Aq9vY/h6VEzCG5MqRzRu8oaIs2QAOoP
-  qaN7po51rzqS1f f+l+B2llMxska5nRWZlxH0fhjkZx6VfkurSG8imgmjCKrjDDIznAH6mqVpm
-  2vtsiDgsmGHVtpO4e wGKlitpZtKhWNobjYUMhVerDkD8a8OoouV3t+B3ynT9o+bVfcvysi9+8
-  mhlEaygs6uATypXt+Hes 2NZLieYNKDJIWYMQcL/skevFMf7VBPNcTHaIpPKVRxuD85rW2Tr5j
-  w+XuRykI29j97Pqan4Fo1r/ AF/kehFzi/dktdv8imlm/wDZ00bM8W6aJmA788kelaQtZElZtz
-  QmNXKeaxYHPXA/L86rSMRaxTWu RLt2lXO7cv3dw/DJrXtYRFfsTcLMY4WhhB5DL3P19/asKtV
-  2vcynWUkrS+XmVLe2uYzbKrtJhFV2 U42E87fqaTasGp+WY3gzEziSZtyLjtj15oW4aWztkMcu
-  0xlmCNhnx91gao287SSYkV0UDZK0h3Zb B/LtUqMndv8Ar+vQ8xRk5ObXy6/16otG6uTZAPsWR
-  gHyF7rwahW0lnlwd6MCUyfzP+NTPbXLWP2d mWRSo3FRyR3x+HNSxypAojSZQJv30LvyGC8H86
-  fNZe7uPmUIpwfvGch8m7JEU07qAD83BBUkEe1R /aHazhmmikP7t2jIONy9GI9qutcx6jBdNar
-  5cjSxu3sp4K/UU0soysZSaIkiIDn5QcHFaJ91qdSo QlNSqL3u1/1EhW2/szMcheQsNuDyF9a0
-  yktxAqPD8uMFvXJ5P8qW1Jd3tkSLaWywwNxPqPRQOoqZ poUtItsy7fKcKxPUMeP8RXLObcjL2
-  jUlFLW/rYhit0/tFCrFjHHJFhSRjdzk/kaGtvtVsRFMPKEi gqDyw7MPbNUo2voTsFtNcyhfma
-  PgH+9+lXtPaOSWWO1Y2t0doiMx3L5XOePz5pzUormvsdk4VEnP m27W09ev4GZeRyNqgUyGXJw
-  Qh4BI5/AjtStBO4jWBH+zCM/OnHLdKu3wzZxxuQiOpcy+oyMVVj06 5uDJLHOYDgZkfO1Mfw49
-  e9axn7qbdjSlV09pOf36r8BdLtg0iRzOwY7S6s3TGc/jU5tyuqxXUayS wupZWU9z3+nAqZ2WI
-  Nl1Z2cFdowVXHIPvjmq1tatbqDbSM8GCIAWJ4/r3qHNtuV9zKVS6lJytfQb FHkxvMrgSFXBHA
-  JGefz4olt/tN1biWSNopEZpIkGHU9Ov4CrTwxfYZCbpFMkqzhsnCBSPl/GnSSw RXjebbytE0h
-  wUIGTwQfoCeRSU3e6ClGVlNKz6dPzH3HlWlkA43NKnmNsGDkMFz9MVmvbW7I8tpIW aN9i/MT5
-  g3Y3D2HSrSpbSXZkkSWQFGM534GfYdh04pGjUERrYXCFXKffH3CMsfwODTg+U6NIpaO/ olf/A
-  DKEr20MVxFKu1TKuwLxgdh9ahkt5vMuoo8gKdspfnL7f6Zq4+mKkhKsbna2WP8AexySPr2r Su
-  CkVmpjgknadzMVUjcAMdfw5rR1krcutx1cV7N/u1dv8PvOQitVDQxRwzTDaFnYNwzE4BH0rq4o
-  7qOzkjitpGJDEM2Du2HrWbCmL0T2YMX8IWT5twznd9B1rSjjvLvUjsLEhyFK8BxjqPaniKjlu9
-  F3 FjpzqNLmvFau9/8Ahh0Ane5mknWOKBnVk3LypwT/ADqK8RhZWiSxMshJAYcYI9ffmpxAIrc
-  tdSEg Iqtg8ZOQP6VflMk/lwSwPAqRu0hfHLgAcelcbnaSa/rQ82rGTnGS2+77u5gw290JIti4
-  J/iI9ODj 8elRYmiMYlhlMYQqxb+HBxgn1NXltilmwS6BAwXOT8m05/8Ar0gu0lhuXlvLaYm5G
-  7YuByOP0rbn bba1GnUTbi7p76NW+ZFj7dI6wzRxgEeYoHIfOFH5CrjRTg3SECSZpt6uAMHPH5
-  CorkQwz3TpGSxl VZthwGOARj0xUUEp+0XT28zFzJtQuchRg5H1zUvVXW3/AAxpXhBpOCv69zn
-  r6KSPU5PL2xXIJXkc upXkj2qs8e2VjKGESPsUA43YH/6q17oXZEMsUL+aqiMhhuOSOP061SmU
-  RWSApJJdRBUdc9zyDivT p1HZI9GnXqStZJ306XXz6IpPs88AecJyN8ke/lWFDW8lvvljI3tMr
-  R7+T/u/rUTNJNtiCfMsLJLJ jktnI9/arEMkzyyJ5yRZUuodc7eOe3auhqSRs6U5Sdvne70+Qk
-  0kkL3CMPIM0sZ29GVe/Iq5LNGj 71uYpUVHWJFB3HJwDn8abZQGc4klVkEPBIyX5xkH6VNLLFH
-  ZxCGITREEblAymD0J9qwk05JExmva KD/Db/MzbhI83CKrAxEDMZxlsYJrRFx58SPDL5CiUcTf
-  NtPQA/WlaCGJZLYyjYzeZI7dWA6kH0NC GxaXzSJCgIRAp+6G4wfVs96JTUlsVXxMeXl5Wvy/E
-  2r20NxE0DuCylgTGMZxg1BbzW2VkMbvKq7d in5sMfvZ9AKhaZZI7iNJDJNFdxqI14YhRgjP+e
-  lSwXJ3T+TbMsjuphDgHMecGuFRko2f+R50lKKa k9Pu/wCGH3gSW0IidQqEI23jzGJ4cewqmlv
-  DJqMZkM4iVGH3zhCPX3PanG3eC/u13eXEsgEYY5xt HQ+5zWsjzCIAQCR41KthRwDzg+pI6Gm5
-  8itFmksQ6KUISvft/mytJPFJppUPGRuyQv3lBAzz9RxT 4b3zIzFAMRuR5bv8wxnDD9M1Uku5D
-  AqxeRBHJC8gDplowP4T6n3qlNNG9jbnzEgjlXfuHG09hx68 0KjdWaLVOpGEbrr6/pqad9DcXU
-  yW8GxsRM3mAYEhyMEVnb9Ta5ngRYy5U5AXGTjrUrXlyLx5HzEs cwjLEYAJ6UnmK19CFuVEkQX
-  J67ufmP4VpBSirNI0hKdOD0TtqvX+uhVWGCSC3+0Q3abmQqHl4UDI 2/UmtZdRsbK/INvI7YOV
-  UjKY42k+vNUbrL3f2hWE8MTeW5j6B2Py/lSLEftl24mha5QnfxkMRySB VNRmve2+ZdKFOpFqT
-  vfZXdr/AKEkTxXV/NECYRDIApdsgqByappcmaQKsokTaG+TjqeQfUnpSCeS SWWeaL947oSUwo
-  +bgjFUv7MuIZ99vIiIFZH3clGwflPvWsacFe7sXKGHjNqTs7adfuLSX88mqbxG YGLbiWORGAc
-  YIovpHMzwbmLRLhXB4fHPA96itwohjC7pCoViOrMxHHPpntVq4V5I90jxwztb75lY fxeo9ABV
-  +6prQ6aNSLrptWT07/8ABKzvI9raFkdZHVmUnoVPGfpUTzPbSTNbbnmLNGxH/LJemD9a Y8jwX
-  NpK8q3MKpx5foB7+uaq3DSCFSm6Aw/IMjls8kn1+prWELtdjmjSndqOsW35X8thY1cXqecs vk
-  yL8zk9fRh7VXcSRXJZ4+REwYkcEnoRUiTXb3MKwSRHCO7Lt7d1plyxjsEL5BGIwG/iOM4+tbpP
-  msy5VZqraVlfTf8AIqGCSVbeKFHlmwQ6ge/FWo5HAlt5Io1Eis6uVwVHp+YpYGmbe0OItkgXOO
-  Tn nNNFvDILePbI52Oxw3KlTnn61cpdH/XUyq15QldfLun+ViwJbn+ylQIJMDG8LwT3HvVSxjm
-  uZopi 0YhjYCR8dPr71JbzTw2xuBbyO88jAgdFz0OKnt7gjTJlVQhZzn5eGx1NQ7pNJGdKDqLk
-  TV5X8vzu RXweS5jKlIlDHeSMkjsayZJZGnQqjnOckfwntWlPHELCAo7lpOChYkjHf8qjy8cu6
-  Hy4x1CuueM9 +OtbUnaJ00YzVJ8t9Hb7vkLEIyWSdZ43ZS3mGTPOOTUbK8mn28yszRBQshxkKe
-  w9s0wvJHMjocbQ VAbkc05i0NzJGfly43IegK9M0Wd9BVqMo1PcWi1syFTJvWdiFKMVbK9Djp+
-  NV4IxIAzYj8s4BJ6e 3HrV24jaWzhnWGRRhlkOcjORj8ag3MkBiZAJiWMuR159O2MVpGV1ocUJ
-  e0nzWu+t7FhDD5kZIbck Rf5TjkZP49qekME1qtw0iwsVdSrDp6/zqKAv5EskEWGEyx4b5icg8
-  fWo/LdIFikBRhGwIYn5uefy rNq70ZVaUqtoUrLvtf5+Qy2e1iy5jlkhUNH97JJz6/jSS2bRws
-  8BdEjk2ybz9854x+FCBUsQ0S8g 4k+XIGen4moAsko3jayxnbNhccnpWttb3OaVKCirv5f09Pu
-  Hs0RikCh423ERqTy2DwatSQ3FxcW4 hjwrgKTnjpk5rNjiENpI87Kk8c4AXHOTz/Srq+UksCW5
-  lmnCNvCE8EDNEtNjF1alkue1+r6evl5l MxsbyzXcsm7JcIMYHfPvgVanmtnnDph1bIUA4KjHG
-  Tjk1FH5jzwLHJGzuhwqjnGOn1okiS3ZNp83 kF4/4l+Xk/mabtzHHNxjUum5SXTa/wDXctQShb
-  HyktgWcqS5ALMp4bB9OBUoSK1ncEnEPzQyPyrg df51m2sP2G2SdnMi5C/7xJ6j2FXEdJtRBu9
-  +1W/ebc4z34/Lis5x1dtjjjzTlJ04XW/d36qx0mJI YoGaeMSIrZkbnDZ5/TFNit5BNnzcKcbl
-  jcghgcqD+HP0qOyjMEK26AZWNmmZ/mG/cMD8q15khfV7 ieQSTAsQqwttyAACfwrzZz5W0fQU8
-  Q6dGUZW18l/X4jF2m8kmAdojkvuORkDIpDL9ujhMEc0oWIE Kr4MmeMj6HrTpJ4ltQsDpHsmSJ
-  S/IJPr60sVisNxFFv86VS77YTg4B6j256e1Y3ja736GUa9JpTc dfnp93+ZTtIEl01oZZGt5I5
-  VJZ2PzAnqPY9MV1SvNb37TxlPJjJjkyucO/QfhXIrczi5UPNBHHFG FLMmc+g+prZa7uotQKKU
-  MLSYPy/eJ5P49qjE05SZpjaEX7tlZ9/00NGS2mLvsUiQcEjgAL149xUU peKWGCG7tFMgdolaP
-  5iB3J71I01vkZS5QvhnPmfdPv8A1qbT5Z45JIJLUXA3j5gozjknB7A+lcd5 JXfQ4Zzkknbbul
-  /wbk1s9zBbQyzQO6xtGkjADGOf8ap6hdR3MDwQLEUjU7NqgEBSDTbm2vXKokhg GFJDfxc4/wA
-  KiL2kF/JIx+0SwnYY4uCd3b60RhHm5t35Bh8Iub2srN72X+b2EVoy93JeWlwqSTll WIhCwwMk
-  Y7Cqypbx2gjimFsInC4lOTwcn861LkC6WdJswtET8/Reg4/HinpKwtI2je0VppRK5eIH Cgcj8
-  6r2mn9W/UiUpRkua+r26fqZ1pZzzzCeItLNIoIKHAXJwRWvHCY3kiNxbNF5mCSnfsR7e1Zo eW
-  aUEK1uxfEQU4yv8XTvnvV1pIBb5lvIWtw/mMVGCe2c+lKq5SZ1TxMpSUNL+Sv/AF+A27zD9pkc
-  Sk7gpCNjJPYe5HIqGNrGIRbFltTs3J5j5IHVQT+dTXd/E5ZVhkdGmCtIDwW45/HoPeojfSS6i0
-  bw oI43KOpXlc9j9AKIKXJqvxOxVJey5eVu2rs/01Qtx5H2GCSIPdAx5ljVudwOQR6AelWbG7Y
-  RTBri GMySrIXZflyB0x7iq12zI0k/lEIW3bBgFhjGR6AUs8ccKRoJog23OTzuyRzSsnFJ9TJw
-  j7O8ou3f 9LDbi1nlGzzFMoZWdFGCgU5Ofwq28Vo8M4M+N7CcMHICr0P4YqTzJ1WScqLhwHRTG
-  MZ3YFZNpbTR 6qEeVUQBFk3gnaQOh9jzSi+aOrtYmlUc6LlN25dv6szYntYI3gWNHnt1gcsqNy
-  W/h/DHNUYmQ2lt JHDMp8rJ3tuDHPJH1FajTwRASuQ0ZQ/KOoPTH5VHBb2qTrBBLulSNiIy2dg
-  A4B9+9ZRm1HW5WGT9 nZxbXfW3z7fcUbqZSGGxiVyqRqcErjPPqalWSS5szugnSOQI4Jbrg5b8
-  DV+OG2hsoGkIuBIAQVOC +eMj2qNrMCKWBVm+R1ULu5UYyc/zp+0haxvGtSlBJ7973KzRl9ZaE
-  EtGwfeFODG2MgH8KznkWKS3 mnt7pSVww38bm7flVxLEFFnbz5N2HiZXxuHOfrntRLcQtZwyRT
-  RQtNwiT/MUJb5Qffg1rFq6S1Gn T5+Vaxfrv8v8hph+x3TKkMvnuxdSzZVQq5xj3q3a6jK9lDc
-  +TteWMtIqqBh2GOPQY7VWYmdh5kou 5gvzeUcc5pFWCNJ3iLRSk4G85X2IH51MoqStLcirTp1H
-  yPfv/WpNFJILF0wIgkqoWlG7cU5/TvVv CXdzdebeI7ySsSyEgEEdvTpiqsBkSNFZfPUHcSPXt
-  mnRXCrNI0mn3FiPOBeSQggFeQPy/nWbi7tr f5f8OeevaRcrLXuv+DqUTDGdoil2wkAFCST055
-  p7fZjYtE6CJ1kCJ8uCwbGT+HrV3c91fyXG2ImU NMiIuMheCR7UyVtLk0+RlcpsdFikZ8iQP24
-  75q+dtq9yo1Jykk38+3yM+6nl+1xW8LpIgjbLAenQ n3ogeSW1hiht2nkj4LR4G75t276VA8qQ
-  ube3ZEniOHdvmBwDnikt7SRrqO4dnjcxERhGICrg5B9T 71vypR1DEQi6bctLbX6v5WMe6kv7b
-  UWulWWK1Mv71pOQx6jHpUMaNc3MckrEbrZnXDYIKk4B9TUk 8M/2K0CzLPHcASbSCcEHA6+9Ub
-  m3kju4wXYXCMXlT+8wIyB6DHavSp2asnqdtGrCcLxfvbdfyZLI bIWoYmRZnVMpv+7jgj8+agc
-  R+fcxKkkhD7Bg8qR/jS+UJr2Qh1hhdycuc/KD1q0dPu7NIZNpkGHy VH38dG/WtOaMdL6s9GnU
-  jBqCqczl3enpctIxSO0uACoERzg8HdxkewNVY5723sMFAVhbycFOpJya tjbPbZ3iKRYyqs33S
-  oAyMfWs1pgiXWYJA00wcAvwFxg/jWUI811b+v6uVQp80mlDm7+X4luW8vhN bS+XGrCBsZQEbT
-  1J+varcNxZLpyGJtsyKqENznLZz+FZ8TQ2jPm1m81W/d+ZJwVxxnikzeyabZGY 28ysrZZIgu3
-  nIBpzpp20sv6fmXWoLminDlT7WX6M07qWEIsYKNsBLSR8ZyeCT3JFVTf3iyW0cGwk rnbt5AXk
-  /pSBUgsbeVLyFZJfmfcpbkHjseOoqNrW9vLgxrEWQzDa6gDaD94VEYQS128zhdOmoOUt I/3v0
-  0X4M0lvLoC3lleKWFk4VV5yTwSe9W11SFY5JZbuG4KKVPloV/n1J7elcxIJFvAVimhkUgkO ch
-  QeDx7VPMkLRK+1ZkDsIfLG3egHBPrnsfaplhoNq/4GU8JHmSavfayS/H/gpmrJqFg93HEEYxcc
-  nsAemf51RubssLNjbhjP++Cj/lmd2AuMY7Z+hpLVHisprgRqqEkB5ACAeMD8aDqFwyuCkUUp2n
-  DR j5SowR/WtacYQulG/q3o++htLDQi709fV7fcJefa5LqNxMirFceTJleDu5yfpWjBiGZDJAx
-  fa4Zi OAOmPqTUCR2H2eKNoLy7ZNrkxy4z1IP40xHQf6Q9rdLCylipk5JHf6CsZaq1v6+85Kan
-  zcq0Xpa/ 43+8049OS18kwM7jbiWLdkh/U1jLdTwyiXaI5HObgMMliTzj0xxTp5LloI5ITJbxy
-  WxaZ3OQW6Ae 2f61nQzgWke2VRN5ibo35J54H+NXTpSablqdcqUoxu9blppoZLeaS33yFSqZXo
-  CD/PFWEAjvwrPK SY2bhvvAkY/E9KWWGVbmfzWigRpG34XAVl5B/HOKq/ZUEkbXF4kb+WVZDnO
-  7GcVScWtyZVoVIct9 ej1+75E3leY0k8EcsbIdpg3fNGT0U+p71YkW+RkN1F5khhcbcDPUbs/h
-  xWcst4IFdUJdUDTcdW6c ++OafZpK1/se+QSpkRFskMvf9KJRaV3bQVRVFC7Sdvm/vW33Er/Zz
-  pXnW0DxxRNgCU7gw6j9aGKT rELn95ggt5fy4b0NRyTSS23lKCLO5w8TY+6B/CT68VVMrrM5Y4
-  YOgZfU+v41UYO3mP2EfY3bSktd 29yyLdDcR27q8IWErJJnqd2f/rVTt/7PmmRJFljdpCWkd8o
-  GB4bHp2qWS6nn1JLeN49rI+Pl5OOp qqyQ8Qput/kG6RznnqoH1rSMXbV/cYVI88rzbvbp089d
-  /wARC9xbPMDGGiMh8zHHPYZ7U+3e6eXa 0RVW5PGOp6/Sq5t7qdGRElJR13J1Jc//AFqha/ZXJ
-  jY5V/lP93HUH1rfk5lZWubzpp0nHRy9UW3l ZJiY3WZQpB2jjHTNQx2iuin7TGuwFyCTwMfSq2
-  WmkaV1G8tuOOMjPI4p896jo6wwtsJCIVP+rHXk 96vkktEdPNZJ2t935Dw+5U3OoTYwXI6dqml
-  Ahht3ZPNi5A2Hkntk47URCc20E0LwtKWWNY9mTjqT zVOWRXupd8wH7wmPB4Zs54/lSWsrI46u
-  NVSTjTaS6/8ADdCeGa1ICybS0bsOv39vIP41LFsuJdvl MjyZbnk5J6VQ3SpMSIQBv3FSBkZ7U
-  z/VuFG/zFYjBP5VfswhGpBOUrrs+hYkeJd8Rm8gFgAjdSQO vFSAI+9ndGM6E8DlW3CqBVVkia
-  RopOucKTwO9StIZAI/MjjCHKMBgNj/ABzTcexyzrVU2lJvza/4 BbaVob9oYATKZc9M846Y9aq
-  AfJPJJJvZCEAI6ls5qwsTlP38gWRm3JHn5yR05qRLqZmkiEcaNLvI VkGRkfz9PSoTtsZUK7pu
-  1k+7/wAylGpEsSNA3mJEwBBxu5yMjv7ULDJMziCIorANOc8f7P65q2YI 18mZdSi85YwCNhOB3
-  zxyapyzvDelrcq28MuMdBnIzVpuT939TJwTm3Tjb1T3+6wWot7mGETHyiqM rk/xMSdpqCJFVI
-  w6SRtn52Z+p6enAqKC6la5QxxbHXJORkNjkGopZQIozE2fm+bqehz6VsoO7MqL hGc5Nt2Wiff
-  0t+ZIXcruaN4m8xdgHGFH3qr+arTqQ29GkzuJ4C/wk+3rT0EbDDSn5Ry27gHtmqwR zDHuPlfI
-  VII+9zWqSFifaTqXg/Xb/hjaEsks0UciF0CucoMKfVh7VmebF9njdJ0bCMMEcsM/zo8y eW0jj
-  dGLxJsiKHGVPUn+VVYYTJuU7EZpQFVhjrnjpUwpqN7nnSlOF3K0Uv6uejyfZJJIIpmYo6MI 9p
-  xj2PqxPT6Vct2NrBI13wVcqzHjLY7e2Kz3vLR0hlMRmdmyfLOPmzgY9OKuvHLcRXQMUodrrPmM
-  cpgYycV4Ek7JPRHqRvzLndovpdf0vuIWLtfqY/LC9GDAHDgAj8cZpbGS5urzzvvTmUbWUYCxHO
-  f0 5qNbe3ublVknOxVkZo1YhiR0OalhnU6arAqqnl5FOArEcL+lOVuWyWo685JNxuv6+9mpeWh
-  eVWgj VAU5JUENjG2mrJHJMWuJI2Zn80qoxsI4I/EViNeTyXJVplCyDzMAYGewH1xUkdwlwjef
-  PFGzAvKQ uNjY5U/Ws/YTUUpDnQm0lUlv1SuzpZfJuZZGRhErO3LHhRgZP4YpAZZZNyxSxpFk+
-  YDw2ev5Vn2U tsyQSwndMIBEATkbWPJx6irEAuAY4mcnzM4IPBABFcrhy6du5moxpt8zbXS/T7
-  v1Lkkm284aQJuG 5mbhHHRfxpGjiN0UYpkShy6jGVHX8amSz/0LyDIr+UViyf4wxzu+vvReS2i
-  zsJJE2cRIVOMqTz+P vWXMm7I2nONRNpP5Fie5iivBIkR8vyZNxcZCE/dB9T3rCRXtUjkQNPtI
-  jkPbI+Y9auhp7e4JjQsg uVDbxnB6DNTT3jXH2mMrHHH5nyybflzgDH1p0046LYqhTjLRbdWVG
-  d3gd0tZo2mcyFyeEzj8uOfx qzbXMLRRySxKVVWjQYHzB+Fb6Usst0kSxBoCVBibCdAT83446e
-  lUIZY4bySIgyWUWBAw6vj7pz6V XLzRehHs+aGnutee5oT2aiO2i2v50RLMFPDOnH5Hpj1piR/
-  6MwkkWQlgwVRhiCO57kU1r61aWVjI UdF27y2AQwyRj1J71nvcXUjpECkm6RG2IMPtAznPt3pw
-  pza1O2nhpxhzS6fL9bGsZDJA2AGjlILs P+Wew/dP1pl1bImoteSyKY4o3RohwcnHP4UyP7XJq
-  WWQeW7MyqgHy49fXNP+z3kzT2qrucsCHIyD x8xqV7r3sCUef36mnXW2n3Dx9o/eNIwhtkQ5J/
-  iOBluvTpUsECDSRtulupTIrsqfeJ9c+maxWiug yqzMVDAGM85Rj839Oa6ATIkMqJE4hwS7LgE
-  MD8vPp7VNVWSsa1qMHFKK/L/hx7SQz6bKDEYi7M7u 33S38IHoOMYq1bQyujSSSwb/ACyCiphu
-  Rk80NYh4ZzAHebz1CEn5SMA4x+dWI2uFkczTW7qzZASP ByOn5/0rklNcvus5nVdOl7jt5df1t
-  95DD5pie2ZVYeYhYKPunBIwew46VG0VuodpLoxebKjZYn5g RyadKzreTbSFeSQNHkdPlxg++a
-  p3dxM9kC8kMEhIVldc7d3X8qcItvtc0pX57LRPcjnMAEkSzPLb hiUWNsNgjIAP1qO1vLZyslx
-  beTuQuY2xu3Abcj+dEkMu1TbFXlWEnAH+sA44/CqcM13EIyEiEZcq xdAcfL8tdKinHc0lGKpu
-  z/HX/gfcXfOki2Ss0T26NtaONMOx7HPoD1p6X8TuivGiqEGxyBhic5xV ARsJomu33yxwYkiQY
-  PT5j+HBpkTTC4LxXVo4hXy0zFkHd3/HtTdKLRz1IRcHbfvdr8ja+0/ar25g QCQF1wiDDYC/zp
-  ILazR0ncziQpuxJJlW54JH0rNF3II332kiSmRfLZQBgfdJP0PWnOziZ4JJFkRW dJAByz4DAj0
-  A9Kz9m1onZGcnLrK0Xvr/AEie7+1LYvMRzuwxQbQrA5C/T1Hesze0cskjqsTmfId1 +QfL0xRH
-  crJefv5SYXAWQZ4EhBwfxNWnuEhuIES/sFWMMjRyJubdjOD75rZRcfdsFWPKuSKTa1vZ 7fcyB
-  N8bxreSQTQuE2+WmGcnoc+gPX1qlc3kS3Hlos8FyIyCzt8uCeTikuJkuYdOdEf7YlvuZQeu Dx
-  xULDzhNcmIq0xBZDydwHOPQD0rohBXvI3jB815Oza22/DsZFpd3yW8EsBSUq33GXJzu9PQjNNl
-  2SanMJ2dS83mIQ3Rf7v1PWtKVnjtIooQkryQliETkn+8PbGarQQOiG72NbrHlA0w3AA4wenvXc
-  pL WVrXPQoUNHVStJ6aeXe3T5CQ3dtHa22YJSEXEjE/x5JA/KrjI0UJnn87fOm+Nd2Ain74x69
-  KnEyr oqoIlnJk4KqPmGcZ/CoIoLiW9uYoyymLgCQ7jz1rK6d3sXhaPNBt2i+uv9WGTGAWjrBO
-  qKzhmDZJ Vm7Z9B3qF7WeK7/fxuiKjIHPQnHFTBElgMinziHVJEQYyRzSvb28dvBvmkkldwSik
-  AqCcgdOpqoy UdLnZTqUqV4Qk7el/wBVb1ZVUMJYZTIjJEgZo3GS3GPyzTnEcYkllRlGAihWx1
-  H+FRgC1uRI1vMG 7BjkDrgH8ancSmFoDBK7yuG3Y4OBjj9a06m9Kynq7J9bojR1IiWJEMSSCEL
-  IudueQD79asFb+NXj gDxwvNuHru7c1atrhkKR3scccKjcvygFmHfPrV1J7VbdJPOVYiu4gnOx
-  uoU+5rnqVGn8N/xOGs3z 6U1JfejGkl1CDzDdIsuJv3pMYHzN/D/9aiVZ4B5FzEoiR8DauMkHo
-  MfhVy93/ZEklkRJWbZGhXqP 4mPrgd6rTRmTThCkcrB5so7vkMBjafxqoSTs7IwjUp80JOCSbt
-  1t/n9wk96r2cYEZSI5eM9Q3/6j Tra+ubhts9ks6glm8tQp3Hrz/SpHkuEsLj7Q0Fs4dk2vHnG
-  cE44OBVIQSjzZ7hwsAuCWdDjJIx2o UYOL0F7KjKN0km27av8AD/hxZJvOiUbHhTap354BHf6e
-  1SOZ3MsVuDdKhWLCjqxGc/jjpTJbqKGV TMDHIynygRxt245H1qCGFVtgrTtFPsBZuSAQDkYH8
-  XatEtL2NqNWT+z6aX1/P8SaYhLQSMsyyEDY rNkMDwTj0FVZLUz3AhjngkIUvHtXBbaPpV6M/Z
-  NLDAw3O9AyLIu7aAcAc+5pqWVzcC2ZbWXKxYwg A4YkE/rRGfLrcFJOF5JaPdr9P+CVUihnNxJ
-  NKyszKck9C3Y+tXIoB+4M13DNFhi0ajDnBx1NOazM EIjkKQSo6LGX/i56n6Vbit3k1N5LmIqS
-  cB14XeOQMe47VFSqrXTIxUlyOXNb+vT8jPjna1ljGxrd cBQ0vzAqTzn3qcajbokiwRo8oz5Tj
-  HT+79TVi4hsZpLRrmRk35V/mwFc5OfYCqJBjiiaG3J8tWDY 58wEffHoBUrknq1qcMHSqtcid/
-  w+8j81JmkeZWtkVCqA9z2xTNQCsVaO6hcunmEKvJAAx/WrErwT 6Zbopw4X5M/xAkAmsqVTHqg
-  j80SqqvGu0fwj/wCucVvSSbvtboddKpCO6tJdOhDM0nmxu8LnzBhN q/dB45q4xS1gYO8Z8wAb
-  tudu04IP50x0eDTkSJHaRic7jkocfMDTG82cMiSeZlecJnfjnI49ua33 S7FU/rFWjfmio6/P5
-  sgn+3pO8UZcsjkEhCN2cD86rvE1tHKjJyjgMGj+4wPANWhc3KXhmyWcxEBi vr1P1psb3N3HHb
-  yyROpBKOQBkepOOee9aJyS1tYxqUqlKVpRjyv1uvO1jOEk6kyeWcs+FG3r6ipT GjJcNvFuVO1
-  FZfmIGDn8qkMM8Cxx3Mi7hJvV1U4wOuPeniWVYzI1utwZCx2bc8E8GrlLseXVxddx Sadulv8A
-  MzoXdQBAX3MzNweQP4R9etKSq24Blhdh8oOPf+dX3tJtjIqx28LPuRto5x3GO1Z32Znj leWaB
-  nEuGKAgA5z6VpGcWysPWgpOKSbt3bHLc7lMaKJY93oNwI7E4zTkSKe9DeaLcRkMu9uWwelL Fa
-  qkErySpLI0xKiPgYPQ9O/NMaMecEMErMCACvc9qfu62NYxc6EmtL99P0ZYQmS8kbIU/MqLt/TF
-  RMhEm7EixgfddefpnHWmGF0uoVWQu046AYPLdfzqyWuHtpEOGCykDj7wPBb6cUr2ehtCpV51Ra
-  vb tfT5oa1wUu4JW2rNj5MJ3qz5swkWZvLWZZN2Cv3OxUiqXkNOwfZJjGFbrViK2H2+JXuEhyp
-  ZzICQ p9xUTUbGePgqsZTdml836P8A4YrynMxKxkAADA/hBPf6VE63O2N2gbBVuR147/StKaSG
-  SwV4ZUl7 ZVcHOcc1lF3N2+9cBWwwI61dNtoxo1Jzpqzsuy/pNEkc0sEUiKUULIAm5eSp/iz6D
-  +tVpJY47h9x S4TfxtHbp3FTQqbi/tzIFmTkSRIMMwA4GfWmQBPMMUdvJkgklz9zGc5q0kmzj5
-  KMpyXNZd3/AJLX 7ypgeXIY1cLuYEkVJ5RSFBt3ZUsDn17U8m1eCJ5QUkYf6scZwfXHtUCwtLI
-  zGTIV87cfeHXFarUh Jyn7sb2+V/k3+Y+a2kKKYX3KuN+0HpkcVUkjeS4llfchMvmDb2rYciWG
-  WW2Cshk2hUHKk84PrSyJ EYTEbaRZliIdw/3mz1xjgVMarXQmcY15OSp38lrb+vI6d7SHyo7TD
-  QqVaSNyfvYPanXl1bGysBIl 0rlSxRZMYy3zZ9cAVopduW2vash3ncWwfn7Y9FA5I70RWwv3TM
-  0MrxwtyF7d68L2lrOfTzE1FWdR WUddHcjtkt9zeS26N3bAzyRnHX6VWY28jSWcbbYxs8pgfvo
-  OrfhVmHzYjDHFBiKMYDEZ+g+tZslz AZLi4gUJOspiQMPuqR0/PNEE3JmeHrTvJNN9nfb1NdGg
-  +0XEolgl2zbIzjhoyByPpT4rNbS4uT5k RhEnIZeR3APuaxwn2e2kmmjdmFwoVFOC0Y+8RW3DL
-  bSa0pfdNESwi+bgqRkZ9TkcGs6kXFaO6LjK avOL5k/QtLNHLFE1pHGxRdgRQMrnk5+lR2y6gi
-  Ncy42wMEK7e7cZqaxh8+SaKONoWldZd2e2Ocex xirssZiuo2ihuFhaPcdzZCk8BD6t3zXJKai
-  3E6sPZXi0n1d7DnEcdmCgfYsTbBnkg9CT3PWs37Je SSW8fk7EZA+9xnIHBxWxN5l1axWyBo5t
-  jqxIyGwB849FGOlQyJLHa25WUPujyoH8Kk5P+NZU6jS8 y6fM6ajDdt79CF5LhbKVUMagziTLD
-  O3HrTEuT9uBQKfl3jK5DA9xVRzdF3McqyqZhIgUcSKBjcPa taIuJDLKq2bI+N0q/LgdBx/nmr
-  klFG8YU4wtJJt+n/Dlbzrh5SEmgV3lU7imQcDrRdyyBF226TbI 9kbIAA0fBLfnxUjG8luXeGS
-  3kVZVBjWPBTuwPvirYSaO6iuI3iuI1R1RFXkD057nPFRzJNPQy5Ve z+S1/PoZ9wy+TdGPy2Pm
-  lom28AYHBHc9cVRSe5Nx9sS0O853HAxgjnj6dKddW3nwxlnMEsiK75PA Zc0kRwIo4nN5NgyMs
-  fGG7Kf89q6YqKj3PWiqXs1bV9d0RxBjGqrM0EZYFVkyWAB9fep7+SWO8naO 43RrcRuETIbkdM
-  +3f1qO3ZppVkmjeIhB8x6M2SRgelXrmQhbi7URyvK6gbE4TgcH3obtPVf1oaqN p2klrte1vvE
-  txOtzG026XClJSO8h6Y9OO1X7OO43zJ5f2iNAE2qOR8p5PrVK2iaZWil3gSSB4W6f KvJ/H3rS
-  WZIQJwzrK0W488NzjP4A1zVm22kcs6kpScUlf7whup4ESJIpZcRjZtPMvHLD6VYiurh7 ou0kK
-  Z3YLJw3HUfyrPE48kq2YtihWJ6ls/Jg9gfSpAgnnneeVYTJJ5hHQRYGNmPWspQWraJVJJNy SX
-  9eo6dg8MMkrfvYkZJVXghm5/QVDDO7hI4Wh+V1L713EHsPxq/bXNpsaCORGaSMyOG5YN1UZ/Cq
-  DS77dLown7VIELqvAAPXj19PSmuzRM4pq0ovy0/rQtSC9innaW5tZDHcCIrHHgjcM4rNuLq4Mi
-  QR RDlWwSucAHk/X3q3vgneQhJIiZlU7myWPY/gKyLuC98yVFdFjw259v3QDkj8qujFN2f9fcc
-  lOEHP ldr/AHfkZ83kyS284mk8t4H80lzwM8fjV03P2W0E7IArH5iR17ZH0FVXgeWGHLI0Usys
-  MLjKDqR7 dqnuDK13PIAttDubJmXcoZugx/nrXa0nZMIwhPeV7f1p1BbxFO/7QssaZT5f+Wn+2
-  PYfzpEnSVD9 pmQ4kR1C8MFxzk989Kql7h2uFhgUOR8yhRw/YD0759arGS5+zRo9sdyxKJDgA5
-  BJ/SrVFM66WGi1 yvWT81dG5MqRXF00RyGlVkXHRgOB+IrLB3zubsJamaQ4Mg+6wGMH371VbVS
-  u1FjL75hJKxHH1HtT bq7u5lZCglgMzksiemMNn0qqdCa0ZcI4ty5ZRS83v/kTxQzLE8oxLJlS
-  rJ3H8RHtWi87NaSGOWFX UhQdvAz0P41nrMv2WNJw0blHLyA4UsCOAOwPHFSfZvNt7mUSAxyzI
-  Qo4IbGMfn2pSV3eRo5VKslU qO3S7XYcun3P2ppPOjJiby2Kg8secj2xTjp5JnzcKkDIXwe+0c
-  f41FcpPZ26qUuHXd+8YtwGGOtX p4FZzbHcjSTtLhj02gHFDnJWfNv+h6ClXp8slPR6aJFWyhS
-  VTunV5y6yjaCFCD73Hv1okjf+0DLH e25jD4UKCCw6g+9MgvLgXkjwiCKSXlFMY6dx9Kcy3G2K
-  eV4gpXcE24LHHOP51UoyUtX/AF9xpUw7 jUak7X9L/kW7ZFF+u5M+ejSOq8c9AR7d6ou0tjaQr
-  9nlVhhQ7gNjnPNS20aNPbubgAG13uRnjnit BkV7me3Eocq29QfUjpUN8stdTWdBxnd2aS6r+k
-  Z0qbVmBkimnnl3bsfLhe4HpUqs0FnFJFiW4jY+ Vx1TrnHvzVoQRNbwyXPzSJExJU478n6Ypsc
-  0csEiCaIlySkm04CH735Yqea62MlSlV5U1pfXtb03 M2RElTfMHDMf9Hx3TGc/0ppeNLW1RYjb
-  mVC8zy/MpOcAgdsCn+Xd/unaI3VurAKsXoBwc+lV7iDI Vmy+CJCg67F7/SuhWbs2bOz91v4dr
-  flb/NE9xbNEI5rrfLAqMigNjpjHPvVOK0WVVE100crksgLH CAdc1Ok4urtsxTyxGTzUi3fe68
-  /SqQMshlgwI3I3lWGScDt+FXBTtZuzMFGrUnaUrNden3bFqA87 1PnKSN+85ByCB170yUKWidW
-  WcxwiAoP+WjHkMP8APakniWHTrCSK4jEgiI293JORU9nEJraBhhZZ jvZz93cCen4DH40m0lzH
-  FOUYx55yur2/r/gEQQW908+Y51yy/OMkn1GegqOK3jfzhcNLFNGpDHP3 8n5WH4GtWWS3lngSB
-  02yRtKQRnYc4Gfp3qvFbPbLJvjeV9g2yBuGAyTUqr7uujNac3zc2ql9xYEU cUEsVvKkciuBKs
-  vzcjnirqXDSbHS3n8wNmNlOFVemCO55rMhmRmU8FWIKKPvKP8AaPc571ektWUz SrLtnWRfMPR
-  cA88Vzzir+8TUoc8rS/Hq/kZ9w8wjQ7HVo4yCZOcjP9DVy1uZri+dpLSaOUk/Ox+Q DHPHr6H3
-  qyrh7gwzzQMGYuWC+/8AKq1xLN9te6kjZkMZA2fKpB4/Q0X5ly21Eo+3vSsk1/XkZKzx rcx+a
-  CRIQVJbiMkEAn6d/Wr0L3L6itvbR+YsTbJ5Qvyl8cAegPTFWIms5dFUtA/nQMICM8kn+tZs tl
-  Khe3t/OEzSDZ8331HJP9M1reMrpq3qclSEailzaPbXXb5oi+0+TfszW7RLtbcrYO3jCgVbZfPh
-  iVkEzn93P5YwUOAP/wBdVZEtCZJCXWTzdpSRs4BGcH3ppmjmvnyJbYNzIhPIfHB47DFauKeqRN
-  aE J01Kle662/r8yMmC3leIxuJ4wUbe2RJn+ID6VVSFzeRRorSxyQlgyenc81YjgMtteebNEhW
-  aIq56 learyLY29w2VnkiUOqsr8fMOnTtmt4vdLc6FOdOLjF697f5/oTx/ub2ONo9qqDlnAyyn
-  qQfaq32p RdAxWxlzGEAU9Ewcj6571CkFxFbo00UuyMlWOcD/ACeKvwpbSWpkKSCJ0OQDypXqM
-  02orV6nLyp+ 85N303/4O5WMM1vEbgKscRjZAJl3enHSoXnuXcweV5sMbFMImCARnGce1aEUEF
-  zdopnJjERY5PCq BnJqhNBcIlvcvFKF2byduATng59OnFVCScrPc0aVWTUtZR20t92t/wAwtIF
-  lZIvNcrjKtu4UkUGF fteLhTKYh+7CDbvGPmPvg1Iu1pPMLfZpwW3uT8jEjjA7Clhed3sY5XUR
-  SMCxZeWK5yoP5UNvV3PL rx5FKUtu3Vej6/eRFriC3EoWN1kQMxVeAM9qYIo7maJpX8hUT98c9
-  WPTHp2q1ckwtFIssXnoDCyb crzyePYGhrUPZRyJFLL5kRyUYcso4/nQpq19r9TSlWgqS520pa
-  XMv7NcxiNpYmTjHJ5OSeR7VItv LA6wNNHKsrMEAXczlecg4zj2pryO/l7kWInr8vOPX6U62ga
-  e0ZmUiQSkDH3l2jJP8hW8m0rtnTXi qU1epf5NX+5ldIo45l88svTcQMHnn0qz9oimjieSCSaR
-  VfZGBgqBwNx71F88l1byMARMNxyOG5wM VYW0NybgF7cRQO2XRApfAxwfTPalNreTOPHKlKa12
-  6X0/C5meT5LbAGIVG6fxd8/1/Co5pxHcK5M W9n43LkOcD+ea0o5LZDI00ckiEDABwckc8+nbF
-  VSscrAgKqEqEU8sB659q1U9dUViW1C1rfiQxPI kgSC1kkuTI6h1bhOOmMdcVVdQiWYMxilkyZ
-  Cc4Htx61Zni8iVUeJ0Bz8z9x6023k813liSPdG4ZR ImduOo5H8qtbXRwywzmrKV29kv1fYI7V
-  IUKxxzuWJwCclW7Dp25oeR0kVUaFlEyIzbcjHr06Vaju HkeNZ0JN0jyKy8BcAjn8qht7tksYE
-  PkyKExuVB8vPfI5PvSvJ7oVKc6kHTi7fp+f4Iu3NusF28iQ uxjuTsWI7Qigc7vWiEIL1wkQJz
-  x5w3eYOuRntViFx9kObK7kvuszE/LgHOMfStG0vtOvpnikKwRS MW9CvbAP4VxzqSUdr2PPrS5
-  IStd269fuTJ20/wA+KeSMTxgToIwz5x/ez6nvVjyEiuS1is0oQneF f7x7Eegpbszx6a8TSLl5
-  MqyDG0jBP6YqvatcHUg7zxso+VgoxlWPP41x3k43b0Pbmp1KKm5K3bo/ n1LF2LuWFGYMgVWEs
-  YGDvP3RWAkVxJdslwoiRgN4xg7sYX9a2ob6KHU5o2indMjcS2clR8h/Kqtz qNzJayGPyTHs25
-  MfJJ6mro88fdSKoOvCXso2Sev3/eTyxKmmOyrLKN6RFlbo38Q/E1pWV1KqxrFH CrR7UcMuSpJ
-  4NVpJAmlnzEJjWVUYDgqxAxn1NWW8kW8CHcZEUiQo2N+T/hWE3zRs11JiqkqSjP3r N7frc1mu
-  DatI0sLFA21mQ7RyvBHtzSSWxa3ha2nfMcJCB2LYIIwD6k9qzxJpiy3UX2iQAMBGsshO 9O/41
-  pRpZyBZ7aR5FmYlsPwmDjafc9q45Lks7P7i4KOHs1e/mrp+VtSC2trh7xGuRJbupwct2I+b 9c
-  Va81WmjUQTTytEVKo2MkenpxT2uf3UipaXEqyzeai7ucLjP4U2W7hMSyR7djjfIy9ju4APbIrN
-  uUndo6qdec58yX9fmStBsRirJbRmRfKEi5/dnjj8arCZ01Z4J5AYY45Izle55GfpV+WQTrLPIP
-  LP 2gPEn9xc8qfXPUUySdFnmuPKA3K23f3OcbvoOlRGTe6IpVXKUkkn29fxZBbRrDaefI+CWCy
-  N2zjl vwqq0l9bm0W3YyKvAkA4ZTyf06VoKIHtImZxLtUCQKcAMAePxNRyT3H2EC3lhEhG/wCZ
-  M+WccqRV Rk29vvFTlUk0uX79v8xJC7adIyTRNG1xvUleSB3B9B/SqbanapKiBo3kZQymIbd3P
-  P5mponme0Y3 AUxxNsUouAAwxt+vepDbW9vbwwuI47oKCrOuf3ajDfzqlyrSWvoOnXcFyyXXpt
-  8+pBI0bA3KrJvZ wxGeDngkewp8MtxgRPbuYSjMCV9DhR9apmWFbuI/62NcIqqcbtx6/lVp7+P
-  dMlmrsvnjgtnJHce3 bFXKLta1zonUk0oxV/PoMLXSywuY2TeuenAwcfgKngjuGinN9BIio+2N
-  AfuLnlT7niq13dXjXrtI 0UNurHcCnVgM4HpVjcGW3lmvI4oJ4iy7s/N83B/MUmmorbXsNwcIr
-  mas+qv+HmTBJTEVQAhpFYBu u3JLH8KssYPmMUm6AYIyclgenNYJUhGmaZ3y2x0UkY+npVmG6g
-  VwFxIuCSA3TBwv50pU29imnKK5 btfcarG1P2mQwyF5HDbUOChx0pjWcq2R+1SqpAzlRjcR1I9
-  uaha5LzRAhQ7IUkwPvNnJx6cVfuby ONViWGV4JJyXLNnacDCfU1zvnTSRy1qzjaMdb767GRbx
-  Q/apgJt7u+8c/eGPvD09KazfbZlTeYl8 plCk5LHr+dXfsokmmkVTbyqdqo3XCnP9arXVyrzyI
-  1nIyySeYRFhWBPHB+tbqXNLQ7It1GvZ6+b6 f16lcwgWmWtLnfHLkAPjI9BSPpzyXdribZCS7O
-  kmSQR0zUUwmgWKSRZYyrKz7zwSM5P0Gal23J0u RzFOGFwoikJ4HcA+ua1vJK6ZzVoWio3Su9/
-  6uir58pZWR4y+zMhC9Sc4I/AGo4p5g0QHlvHMu9iV BMYA6H3q41tbTN5k0m2RH5CkjJzx+B5G
-  KpfYIbczCOK4TZK6sXkznI6fritE6bViJqjFcqWvf+rD obeGOS28wxGQRHYCox17+vNVGsrae
-  wEkry28u05+bjjq2PSlkKNPaW7tgFi0ZU4MaJ2Y9yTUn2uy 3RII5C85M0gZujA/dH4dRWq507
-  q9/wDhzOnKaqLlb/r1GRRQK0kC3UTIVwHbkMSOMfU1ckV10YQS SxyCPB2qMMSMFufaqjTBY4p
-  ljRAsLZ44LMeo9hxWjA159iX5I2lDqwJXIfAwWHtipqN6Nnqc81yu VrX0vpr62K9xcw3ssCsc
-  Kys2A3RCe/qRjrVQEW+o/LJJPIjkZJJHsamXEksUVttMqxuoO3ONxzTE ZooTaPEJLoRlVOBk9
-  8/lWkUkrL7v1PSwtFtS5tF5vRee2w2V7YeW8cEgmBKyuD8qZ9vpSxNbtqEY 3v5aj52ZuN3t6C
-  nW4lcxSgIZtwwNowQOScfSr9y0BaCVoC8fzNGUwMKByp9T70pSSfLv8x1HTpz9 lBuV+qav+N/
-  zBNQiexfEItnk+b5wMcdMe3tV0XRigt3keCKWORY3kZeGBGc/hWdMI3t13jzYyF8k LxkD+H6m
-  nXMSy6WgKEzISzx5+ZeR/KsHTg7K24pUKdVQppWTe99vX+rDrpJplGyaOUFvnSNcEZ42 fUjms
-  hkMaqsSM4zt3A8Dnp+tW5wy+Z54YwiTflDgseOR7UyNZRfNLGVcIpZhjAYnoR7V00/diejF ul
-  Tave3b/P8A4BYlldknR1aErMFUrwFQevv71nRXNs+2KUmMIpVZCffgH61HFPLcRFpSoKnYWHR8
-  HP8A9anRR2huna5lAD5dgvBVjwBVqCimn+BwVOV+7q+unQjheOS9cM4ijLEvjjHsKgkEKNEY98
-  i4 JQ7sHHTrVtbp44CIYoisbKFdkHfg59SaaGLCeG3VGjLHy3ZeNo+91HarTad7aHPGo/ae+rR
-  Xn/wN y7PPZtYRKE2RFsBm5wx7f1pPsot0jlKSi3gBjdC2CHPfNZawBLRJBlkYI5IPC84596uX
-  OotMfJiR zGjYVs9s/eY96z9m1ZRenUiOFlFpQlo3rpsvJ9yylkY7aKR3E2+MqNgxuGcZHtU3n
-  pD5FqkckZfc FeVtwVD6/wAqoPOHW6PmsrGQIJM/KFPJIHbOK04UErTSxIQ8bmJd43bdw4z9Ky
-  mnvIxqQl9uV332 X9fIdN8gaVFSMwusakjgA8Ekd8VNZ2TpMZDexM8YKcqSoAPRh3JzTYWsprF
-  rf5p5mYeZsfHzAe9V x5hurmNw6AuquF4wxNZauLV7HZRalSdp2a30Wq+ZbmZWJaSF4XWRYpG7
-  euP8+tVZ3sriGeTz2kTz QibDjaD2PqeKs3Jiud0ckv2cRNtLseGYnr+H9agnGLSTyZLeXzyp2
-  Rrj5s4/PFFPS3QmnJRa55Ne m33hKtpHZXDW0qguWkTJJ3Dpmq8Nve/YUWM75HK7GxnpycfhVp
-  ZJhmCX7OwhfayGPBA6Af1rOLzL CD5oL+WV3A4XceBj6irinZo5KkajpuCVne+qvdf16i3VosS
-  tcorRF2O3zGyCuRzU4uIobwOLOS6W eRpMpjlV44qCG1dpopi5ePyismTxyMZHpUgh0+wsVi8q
-  6uFDEFll5QYyT9DVSatyvV/15nnYh6Kn K7b9V+v6lDZDPKfJPkyGMsfMORkN1+mKrTLCDapeI
-  8gt0JOzjfk8H3xUksTS+SLWTyT28w8kHrz6 CqUsc4d2kJkWBvJLjo2eRXXBJvf/ADOmDjWSg3
-  a33r5/8OaD2zGOSSecLbhhtbJwc/1PWnGOFtPV IGEMbFgN7Z3E44/HFVAssis94ssUEkg3OCB
-  8w46VNeQEKypGxRgfNXuHUcfSptqk3/kQqicopVE2 nppp/wAOQxW6+ckUj7ZGQExr97jqPwFI
-  sFzOVti8nl28ZAIb7wOfm+g4pZEjZU8y4ETOpd5Sp+Zi PlIxyAa0obbyoGhKyXC5O90ONvy52
-  /U1U6lle4sRibtSk9Vt0t5roZptI0trEvLmJod7PnIJU9Px 6VDHJpqPIxt7pdzEqjScrkcVPH
-  qTq9mPISTJUKm3O0E9D6k1LMbf+2Z5r0qY4nMaxxjBORyfw4p3 ne0r/JnC5TlL95e/ZP8AQyU
-  KTwJFJgzhVjjPqeevvRBbpcrAju8PykrubhT3yPoM1cWOedA6w/ec EsP4V6Z+uf51VYFIgY1O
-  RJuifPCqOx9Tmt+a90jSpJykowWvS61v+IxoHLPtljkJnTy2A6oQaka0 uo9NmkmkSWdZlVtg4
-  2sOB9asRpLLaSTDEfmOWjGMZUEcj2qpLBsvJIGuGiXcGdmBIJHOcUKbbtfY pTqS9+Mr8u+5ei
-  aOK1jXymd1DpGncDOR/jVaRrdUidQ9wTGfM8tyASep6fh9a1khOx7hpoYopZPM Vip6D0rJ4tg
-  xkuIZFOGARcZGc+lY02m20edRjOabir791fy/pox3tDFYRMjOA5PDnJHqfpTgYvLl NsWlIlGG
-  A6Keg6dfWrtoxt4rm3WFw8rEuZedozk052aAXci2f2aPIHIHGR/n867HUd7Gnve7Buz/ AA9DF
-  IfGzeHYEgMRwQPT9at28ai1t/OubeBZFyDs5AyRzjqanhMFvcpFIiyMFOeenrxioGZHuS3l +V
-  FvK+W3JUVbk3oVWpyu43aa1utfu1f4kZuIJ9UtApKQRK0bNz8p5NXYRb3c9k0UkNyI90bQwxlP
-  MYgnIGO1NWJonUqkQYHKRPGDuUckn1NXw2kO7y5KSGUBvKGxcHqwGOlZTmraJ/1/Xc8tvm6t/e
-  9f zX3lqxMSXFuSGtnW0KM0rZEhwcN/SnW1ktzoUMUM1usYGclPmPrz7VZSOyWSTdcpAJGKIXO
-  d+e6+ wFNjkBeKOWNsRv5YCHGM8lfc9K4XNt3X9feYymlUVSnuv66mtFEP7NdlImj8xPqBu659
-  +n4Vm39t eSSEJGJACSEjGGGTyCafEGTQBEsjHzJVZZB0XB4H51PcKyyN5sc5lkyzhHxt2nkfU
-  iueN4zuenT5 FG8tf0/JL5DYI1huhb+WSHYlZTyMDJAPfmqqRI6CWaKQ/LtkC4ADNkgVHPbm2u
-  Z1ijuCA4VAWyT6 H8M1AJY7h5LRWeBWJkG5snco4z7DBreMW9Uzr9i3PmjL+vk7k8MN1E+5raa
-  QFgGjByZGXnePatSz uY7uVhLEYysnylu67Tmo7QSg4huo3llkVjkZ2gj5j9KZme0vYt0LOQpV
-  FUD68+uKyqPnbXUmVR1p uKav0eq/MtTMnl2xtI43X7MWQsuT14Ge/erfmtHAySMiuyiRlUY4X
-  uP60sc7+cTIq7mGI/lwpB6s PQU+SS2lEiSssksUioqrw3TOPzrlb6NHdFctoy1a3t+pXnXy7d
-  ZYZZDJIhZzvJA56D05q5BbI1zc yvBMTk5Ct8uR1OPYVJFLJCt280tsQs6CVdnfGRj0Ge1W1uZ
-  Jb4s7xDefMZFXGeOR+P8ASsp1JJWR NfGTpwdr8vfuQMi7j9n3tFMyyYB544yPY0k1pIb6eRm8
-  qMy+ZEr84UDG0/jVea5k3oxeNV3CNFC4 JUjJx9e3pVeTU3kDxxwTBWyYtzZwgIHP40owqPY5v
-  bOony9tf6/4Bf8As7BlAilZF5kCtjaw5AP8 6RlRJDO0MyQMgLOW4YscAj2FZllcLI8qxJcsRO
-  cAyZJHp+eav+YRFbpOSIiCzZP3eeAaJQlF2Zk5 Si/eV/K5Dexf6KEVZGdZU37WxuK8n9KgnEi
-  yXZF7AirMwjdxnCsNxXNX7m4Riw8+J2dGdNq4/wA5 7VmTeW2kh3+duQFB54xyfp0NaUr2VzWj
-  OUeW63f9biqYmhmWJC8wKsIgeVU8n8utXBLaN9q8xGdW uFVWi4zkZH51jLOwvDIhUF4+FHVxj
-  HFXvtVstqEit5TKkmWG7+7jH861qQd9jpxNSTmko3Xr+ZLc aj5spgSzmkYksy5B2k+tMedo1i
-  geEhdg8hXGflHf6ZqQPpxvXOJSwASRlbG0k5Gfesl55odTEk2W i6ZI+8RnAX05xxRTgmrJWNI
-  4mM4unGNrd3+Wp0Fiv/LScxqRGcIf4euc+561nPArmNtwaOBEibZw ck5IPue1MkdjF/xMNyKy
-  AyFDtKP3B/SoN1gyXCxXW1XuVl5Y8gUQhJNv8loRh6tVNrX5amwypp8i ThXZfmBRjktzgMD+N
-  ObUo7C3ijSB3ZGbZv5ySMgnPXFWDIJtUuwAGi83ace68Eeg71Nb2CyRKuEm WKMRqCMk5GS3Pp
-  XJzQ3qFUVRc/36bt+KKEeqXJsre5up0YL8pUJg4J+YH3IqWI2ss00q3MSpx5eT zuB+VfqalWw
-  tG+zrIS4dQyYPHTmpZZbVIJUhiVptyeVtwAV6v+PvTcoXtFHVGpS5uSMdX91uhXFw El/0oK4M
-  RMiY5BPBP0Hemxq9vp3lR3KTRcSEHJJYdSD9KsyXCPfzeWqMjLI6naOoxj8O1ZxglujI OI5tu
-  fK6EY6n6dqcVffQqph41FdaFYPM175gMcls08ZVlXqOauNEsl0yAPJEZW3MpPyDqFb1YnvT BJ
-  bCSRUuYflJZVA7AcEVkOb6K4MqeaFypUn7uMcg+/PWt4wc3poP6pUqScnaL/P5D5LKOXUmhhkE
-  Nw0e5/M52Duv1NPMv2ey88rFPAZVYqqjcMcdfQmtHNw/mPbIiMqMAzjJxjr+HNZHl3Bs9skkdw
-  fl 3+WuNoPQfX/CtIy5/iZz1E6sl7X4eu3520+8ry3P2l5GlUhBnMSjBBP9KtrIqJaNb3IjwCw
-  3nOV4 yv1p52R3bCe1ChG8tJccMpB5PrzSTWMccixGZXk8psKowRgZ5rTmg7LY7F9VkuSTcbbb
-  Nfht8yRd qX9zcrnyFzhwehPO0+9RNdxvBJMtu0U42tuf64qujy3Uc7rcwNvwWjCkE8ckfQVfi
-  ljs4YpYl/d5 KAuN4AznB96TVt1dm7lF2Vm326MrXAnlkeaOMZXcJ0Xgp6D8qglWSVLaNZBhY2
-  3nJ5yM8fhUzwwr M0yNLLFcO2Nr8AHGAfU1TiufsrlbYbnUmMhuev3h9T0FaQu1obQxcpxUVun
-  8/Q05lgXTwWWQHyyY WzkEcc/jTIr+CyuXuEPm5UKQ/O7I6j8arm4laSziWIYjhZTG/OFzzn1x
-  1qGCJFspo5IWaNJE78vj OSD6dKSguW0v61D21qLhNd9L7/16jzPKb1ASPO8hlbPQHnIx9KbFJ
-  Hc3QkkZhEYdpCnHIXgfiaqO rQ6hHNKd0bkPkHG49OPxNRRlrd5zEDGsUiqyvzlhmt+RNaDliK
-  krwpu2nf8AUfLHJHbwowaJEALM e7dcVYN1HHHDJbRL5w8xZFkXOAemf1qBWeRvOdWl2xjcM9e
-  aqossT9dyiUZcjjHb88/pV8l9zlq0 Vo6i08tn67kqvcMkk7cmOSPbtX5cDPBHrV2N3RXkI/co
-  5jRRwSXOc0C5EcojZQgRiJkK8sazraQS 2rT3mIyS2yLOC2P/ANdTbmTujKTppPmVr7bu/kX3d
-  50SN7aUhJQFKHAPv9KYDJYXjlkATftcMOrD nH41H5qoYnimJ2ybio/iO3j8B3p0SyXhWSd+do
-  BA6+5oSstdjKlC1+ePuv1/zGRvs0+feNs7SAMj fw47/rWhDewwh5JEkNw7Kw2tgHjb09ealDW
-  cLw7rmDAUq4aMkliMAmqBjS6vYVKmGQJjeDxxxkis 7qd7rQ6aNSNSnJSg+VdX289vwNK0t7dc
-  TwS/vYZChJOQoGQSfU81YbUbq2kh2wLIuQGbb99v/rUk hjjsWihhfIYq7g8Mxxk0kNw7xeVPt
-  RmJbzCML8pwcfhXM/e1auZ0o05q8ld/p0sTeUhuGcoFjKEs pOTnr+dVmCMYQ0qJC2HZFyD7kH
-  tg1PE3laxczFgI1Yj5uQuR0I96alz81rmDcEjO7HYvxj8KWp01 IuS5Vt3Wn5kk+oRQ3IItjIj
-  4dmGMt2Bz7U2OG1ighFy6hZk3Akkb8N2qEQfZvs8T289wAGXKng84 P86tF4L23isjZ3MXlkx7
-  nYE5Az/SpfKkrbdWcFSrSi1ON0utmR3L+XbpNDl7eQCVwvXcpwAD2B4o cmbTkYbWYxu0qY53b
-  h/L0qhPJcWI2grycmNhk5bByPbtWebkkho5gJG3BlAI2ZOOfwzW0KDaTX3k zwqlZv79QZ8osi
-  RyBpCDEM9s81auppUgYxRYRZf3pdcjfVqeSzW4iiimjZEcbWB6gcgj8KzZ7mIt GQHSKeB5CXO
-  QWz8v8q1j7zXumFPkqVUqkNPO4Ti7lKO21YmRn2sOqnrj8amsbwR20Fv5TSyqNif7 QOfm/A1F
-  DJa29pDvZpLlvlJLZCBhzkVJO6GKJbcxstsuNyjBbn19x/KqkrrltoTVXtkqcaeib6NW /wA/v
-  LEEVlsnQt9qKg+YU6A4+XHoBUCyz20dvcWkgLtBmVWGd56BvoO9NLz+VKwCW5UfL8oyytzu /D
-  +tN2Ty6MS0L+bGxRCOAA3LA+tTy93oZum4uKqStF6NN/oE0rCaK4mkhOSGQImAyqOv4npTLgCe
-  yile5gVZmLFtuMMM4/Oo4rO5PlxFPMETbAmMkgckj2GasLbWEsmFkwypnlsq4PO4e1W3GLVnt2
-  MH JKakparsk9CqqqVhRfMk2xlHkjbAZ2OePYdKt2/2lbG5S7twUkuIxKdg/dE8fh24qVI7fa5
-  QgtuU RgHG9eu8ewrOEsyWsmZBmdt2WzjeDz+lK/Pp/XcxqVvaOyaXrv8AInS8SC9uFcgxQ5hZ
-  Qv3u2R6c 1Sku1ujH9oXbtXACjBPH9akltbZ7V5beR2LSMwQnJYAjLfQc5q/PPbwaXNPC1vPKz
-  EgBfugkYH5Z NXeKaaWr0CdSnzx5U3J6dV+X5mUlxPLLJC6OsciHykPO09BWfJt+1qJIZNsJCH
-  J6EdjWje3UjmRB GkAJOH24Z+nzA+gH86zfKcxOqiRzJJ9oXJyQRwQfWuqnte1jatKVrRjZev6
-  6E1zPFJLKodnmLk7l PHQZGPoMVG8TSwW1wkihPLYgE54B4J+lQuGZFkmVVMkZIAXBJ6A0WUcs
-  V9bTsDFD5bsA4yGHTp71 ajaOj2OWpdQXJq107+X9IuxJNcaTl2ijkO5i5TllB4YH0xWbM8TR2
-  qqNrhHyeMsO2ferZmJt43Id Sp/dgHA2n7yn1qi0QjhEKrnOGB7r360U1rqcmGoVXa8LO/f/AC
-  /Uv2awCVVd3jgCtvZm7kcfhnHF XEjtn+z+VtOUK3Hy8I56D8ax7ZjHOrPIi7RjDISMHnmnzTM
-  1wHjDRMwO9ccEf4980TpuUtGddaDn UbgmrLorK/mdPcxRRwx/aoXJiUoCDjA43fiOOadKtt5M
-  rBJd7tkYk7ADmksr6O5tEieeKQRRFSGG S5PJbntxVmLUIrS0vH/dyTb0c5UEcDoPrmvMfOna2
-  v8AwTx41qqlyRT5+urtb7i7ZRBoTBHJH5DH JJ5JIyVI9OaqzXM8Ytp2/eTFFYvj5Wf0/KpZYo
-  2DkrKBHKRuR9oHy5FQ3E1obaPaxSTH7lGbJCsO p+hrGGsr73PTw9V2va8PMoz3krS2txcP5i7
-  d4CDBIU4B/XP4VCbi5M8SW8SlpJciXaMD2/GmTwSS zW6Rt5swty0hTowB4IHYVEzs0aedbywj
-  a/mnOAGP3f0x+dd0YRstP69DrnQpcqlbX06ely8zSxpN HvSFtwk9Dz2/PFPmWRoEnd3V0VhKC
-  f48gAD061HbXGm3NpFLPHKobAIL9wMY/SrP2GUWgkhJDuQz Rtyc5/p1NZuSi0nodeCr0YOKWi
-  v1W50Nus1vbODA11MisSq87Rgcc+9QwlNyugCXMh6MM7Tjv71U Nw9oywz3CSCSNpHdSeo+7+B
-  pYHk/s4eXcwkD5ZAyZZXboufXFcDpuzfcxSUbycd3uXdQMk1l5bTQ KLn98zBfvbR1Ht2rOhju
-  0iuD5ckvluoGDgrkdD+dThmCeUVwyp5aI3PH94ew709lkguYYTKoGxvL bJwyqO/qT604Nxjyl
-  08RKlT5W+byaLVjcLbzSSXTRSKVGeOrEEDHpUXl2Uott0U4ZIwku2TGw5OQ femRW8XlBp2zGw
-  LKAcFSPu5/Gqf2bfq7QC+jhUBRITnlz0/PrUqMXJtOxPNGo5VFLla9TV27Z1+z BYAswXzDznj
-  Az+NQzQ3rTJJIoe3izE8YGGDnkZNVbotBLJgmZNjeYUJ4fjj2PerdhPDPFdNNcFC8 qyKpPTav
-  Q+9S4uMedanPWo1Ir2kHzX8l/SMi1t5Li+DyLLbyL0VjwVHXH41uzWhN/CyRPcRFZJ5V jOD8o
-  wBTZILe9szNb3KxyOyquSf4u341Pb2VzFZyW7u4aGb7OTz8yscmlVrX1vbyMcZjYS5W5a9t Uz
-  F+0FDE4WMkR7sFB064/HrVdobZ7mI7pZ5XV5MRPgEAdfp/hWpcGOKeWNF3M43lcdQBjj2FZuLh
-  oYdpiESIYy4XlApyQT710QldXWhvGrSUk3dP1HxG6hhRp7WRoTGA7AAfMRgVnSDybmeKeQpsmS
-  Mu /IC4yfx96lee4k+0JCWfcN+M8YBB3fTFPghSXzXWCVw0scoLNnCdwfUit0uW7Z0z5qadS92
-  +3/BG pDmwkEjSkDI5fJyM5H16Vo2dhb/Y4Y1w0uV3g8k4PI/rVaWd7Z32Wsgh+bypG5DqeM/n
-  SW4vJJjL cKyJFJg7fl6L/U4rOfO43vYiNOs6PNL5K+/3G/dxNv2BXSGN9pdTjdznr9Knhv7Y3
-  ds1sszYR9yh s9fX6VjW85HkQsxtmmPztM24MR1I9B2qxaEfbZUMfmKswMZj4MYUHIb17Vxype
-  60+h2U4XptSVmv UvyO6x24jjfYFU7s5zt649OtOnkd4dtmI2lLMSNuSg6AH8M00XLl5ljCvk+
-  Zux8qEL938etTw3Jt rSBvI/1sS4bAwM9B9cms2mrO2p3fVpwjGX9fiPjjKw4SSKQiRQ6qPmOO
-  hHoPX1prQqNQmWRiQjFW wTl2Azke3tSsbpkeKRo41jOHbZjcVHGPqTTRJcLA53xRzrMmSyZ2M
-  F6H61HvdyalOo4tp7/12KVy Y/It7lYGjMcfzPxtUnnBH0pFW8aaWVGj/e7QkTx5wRUF/DP9g3
-  PFI0CyjcFONoAztPqeetTXFoJk S4S88mMxOQCTwcDFdC5VFa7/AD8ypezhRj3lp3T8inLczoS
-  Xy7OGbbHx8o+Xj+dQLGsttFBPcoeM fJ8pJzkE+2KIC8Ee62kSeLaMoRlgSM4z+pqjDLGl1bTP
-  l41/czFegZs4b6V1Rho7f1/kS6cVCXdf P81oLdFo98Ak3bcgHPXBB/OrgmhuJmW4SUOZWdSGx
-  yB0qwkMSynZLG8aHyWB5Oeuc+prDuEhWJwj mYqxbYMkgY5qoWnoZU3DESjTbtbW+paiZreTyx
-  NDArK6KrjLEsM4qKWa5jtYw4XYgQoGQENx15rL WUhxKsifu5AFB53ZGMitOK5vIxMTGWljyrn
-  aGVScYGDxmt5U3F30O2M6lKfI1Fp/L+vuZHIlxHcR hI2KtExRh0IHUioZpQsqExsVVAuBgdR1
-  zjrTXuFGnwkCQSOcyEtxjPCj0zzVqXc4kLRbEjZs5H3W IGAcVabT1R2UMZKcveVr6X/ytr+Qv
-  n2xsgYmKygqMk9hwAf1qQRCOwhmklJaKMhUyeRn/wCvUEdr KY4o0VCZAJWGMlWUdKRz5qONks
-  Yd1yWOcORwKhpXsmcHPSc+Xm0W76/jqWYJjLHFK0BMUb71J5AP Py/U1Uu45VltXT5nZP3qehP
-  c/hUiRTiyaFj8kL4nPq+Dge2OhqB0dfJ8+YSgfM0aEhvzxRFJSujl p0UqjcVa/wCP6fiiwFVL
-  YxRxy5kLBeeWAHQVBGbSWxzJMd0qAgAk7McYPvTIm8qSKRSTsOWU87jn HH509ImjupgqIfL+U
-  7kyoq+Vrr/X9WOmGFxCfLKVktVrb8NSoGJWXzJkaQtuYhetWoWEljLCQrYu IykgHA4xj6Vcnj
-  ki0yA+XBL5n3HRABg8HNN8m2huHQLIhjkMe4njHbPvSdVSj/XQqU/b0kkrtP1M uS1ZVlXEhli
-  nCDHQAg8H3zUsQnUpsDCKC42tnrz1ye+KvzyXeUjJjXOOduN3v9aW2ZVeYQRuXMgY h+e/X86b
-  qScdQnQbp2aTt/X9aEb2Rd7jkMBIN6jqrdqV4DLIdriWRWCtsGMk9x7U6BGgJjYtI0r+ YVB5K
-  pkn9asbA5edQxEqgqqcEZ7/AIHis+dp7nXQq1Ixeune36Ec7XEQBlw5DYyo4JPIFaTWsAgM Zm
-  VbqM7NhPJ3DLfnUsziw8gGHz2l5U9QmOMtnrzU9tZ3Mm9J4wud0nmbeQ46ZNck6uiexyzrQnOL
-  ulbrt+n6mQk0sMokiZVwArRSDcSADg/hWskk8mlQIhglEqpIzKnRh0/D2qF7RxpxWcq028AMox
-  we tTsst5A0EEiQlTuChMEAf0pVJRlZm1b2dSmmrNp6t9hsc9zcJcpHG0VxLIZg7j5QF6gemao
-  TzTbk dHQqUICAYZQ3TJ7nrzT2jleAmebKOSyyJkBVLYIqN2CagySMq+TmJAOwcZyfXFOMUnoj
-  jknLWCSS +f4/oZ8sCzBI4bgONrGPk5wOAT+tE6LFpM0C/ZxiY5fbyTxjn3qIK0M5kZTNFEApM
-  Zxu545qxIft dzcNJG0UDNuZ+yt2Fdeqa10RpiaUozTTuo6303IY4YhcCIqXVSGDA/cPYH15p0
-  oiVDayQFpI/lIX ggk5yPYGojIz237wEuU3yBePnzwP61CxhliLrP5cvmiNg5O47uapRbd2ee8
-  N7/tJpq+ztpf1LbGB pZXtmiaU4GSPlbcOw/OqN0JY4m8sAGErGGA4YEdfc1bispk1EpEyqY3G
-  4Hkgj/6xNW5raGSVFjDA tvkV2bI2g4GfpS9pGMlrcdavGlU5ea/9f13IY5kMc8e8IyS4DtyBH
-  jkfhTbeGK2u5J5DJLGG2RkE AAY7+p5qKFZVlGCnyk4BTO5e5P0qzJdTRG3gkltvsnmEZ2cgD5
-  tpPqexqZJp2XUwxkZUpcri0nvq 9V9w0MtsZZDHL5ynDNu+VvcD6cU+a3Atrie1QyASBFA6gEA
-  Y/OqcV3cG/ZgY2EiM7AjPQYJ+lV7p ZFslkklI3IBEF43L3B9SPWmqcuZXOapRnCqoOyf33X9e
-  ZetpmZreSCSJpLfKTfLw574/lVAGS81K NEkigLtnLLwuQcr9apCO5tUSNZY8PG/Qcrzk596fH
-  O8srJcRmXch2tEdpBxgGt1Stdo54YdTUpJa 9+33ktyluJvs9rDceaR8vz/6vjODUcM0DReakq
-  ZdG8zcMjJOBgfhU0V5J5CM0Qh2KB5hTODjGD9R StEdsUUJguABtxGmDnr+lUnZWZU4y05nZd7
-  /AK7fIrQ37TWbys8S7XAQOmcAdPzqQXsf2gPMjElN qhRjHOTT0tjDpyy+Syt5Q37gMZLHBxUw
-  WVkiWWS1kYjcieWOGJ4B4+tKThrZE1I04Qumtd3s/wAm ZMitcz+bK+yN32owGFB6gVfXT34mb
-  f5DgKxz39vQCqIguXuJoIY5M+fu2f3MZqxcs5smQrITGoG7 OF59q0k27KLF7Kc1pP7t16bGZc
-  281oIVZ1Eb5PzdSAeo9Kz5vP8APiCzDYxz908itWSWJkJjjYbc qpc7hg9OKryPbkp8mOBjcet
-  ddOTtqjVUZypPmla3qm/u0Ic/daaWMfLg4+Xn8qsecUubeRURI49y OzDPJ4wT61Uz8yywlJDv
-  3AFM7fz4p2x5JGW2UyLyxBG7k03FdTln78bP4e7b/LRFyygViiksksW5 ZADjIPf6VrWkcUdsv
-  2dXnDyLzuz8uDk1hRrlkEciuTEc7euAauG9JtraBQUMULKhHG7JyDXPWhKT 0Zy18NVTUYz372
-  aS9f0Okvb8ShZYwwt3jdSgONpJAGT+FZqSXFvpUYyhdZCnlFMuvfrW2tvBYxXJ tHiuplIG3G7
-  Izzwf0+lZ17Z6ozFYIWigEnzlwCdgHAz65zz3yK4aUoaRWi8z0VUUFBW0T30/9JbT X6g89wuP
-  N8os7mPcgxlAM7h7ZxVUS3dwpWWaEM7jgrgMvdxx0GKuMto2lI9zMFeSVEgXPOGGD+oq hIjW9
-  0UM8c/2VigZFxu7H8O1a07PZam+GqXbVN3f5GjbwQ+TJCrLKi3AKhRzjqD9KszmG2niks7w M8
-  sLt5ZYnbz/APrrMi2NdNG+6ORX2pg4Geuw+56VcnuFuDbR21vuuWDArs5iGeB+hzWcovnXY7Kt
-  KFOpfmunvsvvNCLZPcSyOvneXMAhX+IEcfgTmlubaGSLq/zuWkVf4cevvjNUivlRvcNdRK6N+7
-  AB AKk8Ej37VIZbq1DzR3Nu00b4ZGTqOvT8aw5XzJxZzyo1PaqdKXpuv0tbzLcE8EEPmxhwJji
-  ISHJ2 g4BHtzzTL1Un1m2tzcCEWiMskhPDnqCPY9Kkljm2LKkW+6dS8S8YjUEZXHqc0/zCby5k
-  AjaWMhXU r1BX730xWStfmX9dBPlk25tv87lszl4LhIFBkllVgP8AnkOmD/Oo7uSEpKkmyNXBL
-  SgdCuMD1ye1 UzvTyt1tMlqUKRgH5gGH3ie/NUY7Bmw0kwaKBfL9iSpP86UKUU7tmlKlCKvKVu
-  3/AA//AADW85vs 8z+bGYpSJRhfu4OOar3d08ojMBjhaUkPlOFJ4x9e9Ogjhh06CCRZVmFoVkD
-  NnDZBNOWMtesw2g4y UYZ2E+v4c0LlUrmMqkVPmta3f/gEVtGE06NUc/u2Csp6gjP8qum9SaOS
-  C5uhE0k24tkjhOv59qyZ UjsGWWBjcIxyCG/1ijgEfUmpNqvKJIruC2nj3mVZoycgdcVcqak+Y
-  HRdT3ld+aW35/eWrlJpXijL iPzVYrn7ygclCfXHNJFbQQu3mSsodWK7m4LHgVfhmknuojFGJM
-  li6gcxkjhT796o3W9o2Vp0hWMh k3DlwB1X2BrKMpP3djkoOpKbgtGv62K0YCtEl4PIieMhpOg
-  yBjFK0VmNkTLcNGcIHSTAJPAHNILZ rmSCOdxJvy8pBxtccZ+mO1RvBPbX8sjgLFH94kZCuFwP
-  0Nbqze+p1UKbvLln7/ZaL/hyxL5ccYtX WWIJGTukbIJGCcfyp9rPO939olkimjILEovyjPXj2
-  plrEshJguorm7IyAVJGPTHvVwZS3EjQG1yX K7+ijgbTjuetZyaSsdUq1OLtvff+tySC3tFjCM
-  j3LybfKZW6gnoPerQtHmlkgkjdZoW8tFRsF16u frWQikPNAqvE6vj5jnGBnj8OafczTrPb3cj
-  O7NvwEYgnoP5Vm4Sb0ZvBSfvRevTV/wCZs29l5MpP zLAgKqrHkhucn6CkmilN1bQ2ys0UduVi
-  Oc5H3ifwNU7DUJSXV1Mwb5jjHY8L9a2A0ovY2SBgEVlJ z98YySPQZrnn7SEveOx1a1J3mtfl/
-  mNuVNxYeZbJJulO7G7O4NgEj6Yqo8Ust3H9qguI7cRNI8e/ DOBwDmlS+uYdLEwaKN2dXTcmcq
-  ODj6VbW5AneUHzWU5dycqvbb+INSlOGyFGUlD4bp7WetzMN3FK sEcUm1JVOfMJPGOPxNJHNHc
-  yxqXUxrCElAOMEngfWopVWV0W4iMboR5Kr8pZAPvcVYktolt7yWOR I4TIGRz3xyP61u+VKw5V
-  ZWtG93t5P/MhRre0nQjDsy/6tf4SPlAPuRUKRpDFcpAqRtFIqfvRu3EZ OfwHWh9NWW1uZrecP
-  5kgcnJ4HWssSQNdtBK0qROCyMW+97/jWsIKV2n6nHGFKo5VFK7XxafpsUUv pGs5JGcC5kcYZe
-  AVPXj14rUitdqM/mRxJLnmQZLkHhh7Y7Uu6C31GZTbiZRc4PyjCfJkVTleS6nh VMwRbBwx+6D
-  wR9TXS3zbaIbrOV+TRLdsjSzaSaSeW3biQMGXAQjvx/KrE87S6dEfs8sMTFpJSSM7 iwGPypFl
-  maSK1jdYcKyv5vIT0B96WELKsHmXMUrOmDGoII3HFOTd7y6ETi3UVSotvX7+xUdpZL2F IEUxl
-  cxIV5I3fz61OL2VtXcw2T3cTlkwBkEDjceO3rUMsEaahJGjOiRnYCT8yn0z+tMd5I42cNtw 4D
-  ovBYkcEe3qK15YyWx6FWDs+RaND4vtJuQiCQIMMrHuq54/Gp5orqG3juoJUAcZdCuTkHkfWodz
-  JPcfvlgZJFjw3O44Iz9Kv2yOtlDCY2mWWPdJIDwCOorOpKzTOTERcZXsrPfT/MymuViuZVkYyI
-  z8 Ecb8HipWR5Bb7Co25jlyOV9zVyCCW6aZSmGBMiqFGSNuOP51BGlytr5SqMBgzHb2HU/QVXO
-  ntudq qqok4u0l+C/ryAx7LMQrAdpypLY3bieBmoY2YWkqzEhWkAYd9wBz+XGauh45J2ltpDkl
-  2R2OVx0H Xv15qSG12WNzHMVhjdlcO4zg45pc9lqddBT7K34/qVEV8W8brIVBJky3G329Oasww
-  2812HQS3GDn APXA60sz25gikihnQsuBKzZVselWYIGlikiWMo0S9hg/T86icvdvsaVKS5HKL3
-  03/wAhslsyRmUR m5BT5lQ4OQM7h7DvVIIhh3NbTtuOZJEbhj3IyOBjmtFmaEETRTsGbfuVsAt
-  3H09qfGfPs3RsIC67 UA5Xjqfas1OUVdmK9rCKlLXzTf6fqZkUFvI7gz7o43PlFeGcMOfw4q3Z
-  oWnt4XUxmKM+axPHXJ+n FPMa3FiVSFllSZV2rwWXHzEfhUhZEhuBDBOoklDKzHOAByKJTbViY
-  zi7qKavtr177/oTvObi+VEl RLcqGy65OCRgZpv2vyZpEa5E/mb3UpkAc9KLiPmCdXSFnIXbtx
-  kfwgU42luJXuJoJYn+YtGWGVyM fkOtYr2elxxhh3JPl07abjVYzyxfaJEETKXJ5HzdAtLcHbe
-  wQhmQxHbchTguSMbh6AdxVmyjlJgW 4h8hYY1QxOBuBz1P6fnVRpn826LwmJxMqNMw+VMclT78
-  Clf3rLoVU5Ze4nttbb7u4q2NlLGlvDfK h6eYWJUY6DHvzUN1bWSokkxlkUEttV8Eeise571Pc
-  rHBcvcRW0hlY78Z4XHt7E81WhuZbu6tY5EW NTC20MnXPGT+NOLn8SlocVVT91yqPkW+quvuK0
-  UUCTypGssNoVBkeVt2GB/+vTyZp3jtYwjxPC33 V5HOMH3pkEsFjqEQ8uSXEZ81G5AwOevvzU1
-  0JglognjzKdoVBhpCOTj0raV+YjGWhJO9n0b/AKuZ 8xdYYrcW4WURmQM4zkKORVBIzMUEiLCu
-  C4YjAz1BOO3pWg9vLLIPNV0hlO9pv4VYZGPYH0qBGW2v LVJ0aR5IsKgONuD3rphKy03MvbRjS
-  vDV+WuvqwB/cRIJDJKG271ON2eefU5oljaV1Y3KhiMbEz8m e39amLSS6pIYo1ZncSAIvAIGMj
-  0FRnfJcLJco0ZAALAYx7/n+lJXuFTC1oys997X/T/IWdbaPz1+ 0JI4l2qUGNyNgGoYXtIMiWC
-  YiDzFILctngP9K0YkVoYPMntZHRWErCP7xJyo/OlTV1ghJNuhnLDc rqDksKjnk1ypN/OxwV1V
-  qacrfzsjJQ3LXVokCKxjQtgLzIAOQKgvW+06dZtEksYVirFmyE3dAfpj NakkjvcwLKVDquNqD
-  aQSf61TffFKiRSxy/eZTjgY45Hrk1rCXvJ21/4c4K6caqaVmvN/1+BDaWTS WxWY+bcSSfumj4
-  GwZ6+5psZ+zNbmZ40Z49yx4+bgkAZojkuZ4ijzJBMWHloVwQoyG6VWa3lazjn8 xZltXEG9Rwy
-  sTz+taattSZhUqzc+Wc21/Xf9BywRKSJ7gOi4xtyeD1H15qSeSYOBFIkkcb7Q6Jgj Pc8d6Rba
-  eC+jVrWWQRoUlUrnLHOMehqKCQxXNtFImxRGY2OMZOc5Nab67nouVNrmT5rdNPyV2W7i ytGtg
-  ftMqvHPtCsxOF4yCKmF+2y4RYVdTOroQMEKO1UpriRrqZjGrGRwTxwB3pLaYNbSjHlnzv3c WP
-  mZe/NR7NuPvaieHpODcru/fb+vVjb5ZbnU2cs0R3MdwHVsdOKhVjPGipbmUScKI8ZXnkH3qW4a
-  G5uVaAOoJwFLZPTn8qqzwvGINknlhv3jZ/jA7j0raGyWwVHVpRcYaXWyX/BKsoKS+XuULvG4YP
-  AP +FOAE8YBxcgPtOxSBzyB068VJMrOHmkXyGWQY3dAOwPHWq7gM0qYUEys7benTgY9ufzrdO6
-  Odyqu XIne+9/6/UPs4s5BF5ckYYFhvJz79qQW+IzJ83UEDJ47c8VVmtZ4ju84DrkMOxqKS6m8
-  mOMqclvL Pzcgk5B+gPFaqLezIdRUItVo25dkl/w7/EvqyK7heCyHAA56dar4e41C1/eoFHUnj
-  juKaYlmBcRS xmI4f5uhz0/StBPOuRMkcaRqz7x8oyOMY/Gpk+XUyxLU1dpcvc6kzxrcWz28qG
-  WJZEkfqGJHynH4 /pWpG3mQQmW6EkcahNqkjecjJ/PiuY2W4uGihbfIW2qT0bvuFT2nnz+Qt4r
-  CSQnyyoADoT1x6A/z ryKlBWTv/maYjDw5UnLlXV2V/wCvQtX0ofVJsGNIWuNy5TOwKBwPxpIC
-  ks0kk08JBIDDbyS3A/Gp r0RItvard2rBo3D5HKsPu546mn2N1HC9tbmENcrEfOUoPlK85+uKV
-  7U7pf1/SLUlCgqkL3Xy077C L+5nYSmJDFIowV5XPBz6n3q9b6hdNPvhhhwFZCgiG4N0GT/nrW
-  ebiOeG8OzALh4mYZ3KOT9ajjjm nlEgWZ0lQsrJwCAaiVNNXkdE6VGS9pLd97W/QsvA6zSNemN
-  FBAcFfusF4Wli1GOE5V4cnDMXjz8x /pTY1trK9bzZzL5kgePechsjgn15p1u/2zZC9j5mMNcB
-  QFYvgjAPbpQ0mveV19wOlTUX7SDkvu/B /wCZcN/LdWpllChlZj5qDaoY8Y/Gqs63U7Ov2qKXy
-  yqOI1wZCVOMfyqoEvnWPMTwJKPkUrwOv54F OtnYxRhI3JEZeOQHgqp5z6ketCpqCvG39f10N6
-  UY0oJwS/P/AIP3FnLpZKAJYW2qxaUkgMODx6DP SpltktxKnm+ZEHMiyAnB2jkn9aSPUHlumEf
-  leVJtEe9c4DHkn8RUNzFeDTbuJmQwGThtv3s9MH0P TFRZ3s9CasnKqoysk/P8rotR7Lqzd47h
-  fKMgbJzlsc4FURdXdxJE88iZnfd8q4JwfmH4DFEV9Hbx sksDJFISzBRjYRxs+uK1dOv4nRYka
-  2ljhZ0jfYPlj6n8T60pqUE3y3OLEOrBqMY389zKZInupJYy VMPESkkgj1+nNallZLdLIPMh/d
-  p5bqF+c992fyqnLZ6emnM0UzbkXbneSORkZ/lTbCRlihk8wTxl R5qx8NjJBGfX/CnNuULxex6
-  1So/YKdK6e2qSZoqJba5w8ciuxDGXOFzjG3681Qe7WS4SKWaKOJVK NuXkNnp+lPu7dEglWP7R
-  vJPll3z1I/pTIo7e5nlWGEzskhKqG5IwRj6ipgo25mYwownLmW738vm2 aMtwlp5dzgOTHIrr/
-  tY4Htwc1Qs3uprMBFEssMibwwyGz6+pq4bT5o8SBJRbsWR8nb8vU1ammnfT YJY7yxhcKGm2xd
-  8ZA+pHSsVKKVluzCVKlCKT3b31Ms6beJNHIJFbehACLtKjP3T781Q8ue3lQPHN GIj5e2Rid5L
-  dB71ckJuILSRROxMY2RqxBPzcH8O9Thpv7VLjExkLOEIyRt+tdCqSS11/A7KVVRjq 1Jeegrah
-  N50kKQq0pbc6EfN6EfXHFRx3DW4L+TIHiPlqJDkAE5APvRNGkNvFeOkiIQZAucMB0AJ/ HNTmz
-  tDYsHn865Rw7Krnop/ng1F6aW2hs8RF2apvle9no/XU1ofJuMXJkjlmB2qkI28Nycj2NN8m RJ
-  WSK5MMucCRzlZPl5I9BzVW3kl/tOTZGV86f5owozyuMD0zVS5Bkt4AEmSSJQqqzffUHlvpXNGD
-  5rX0M6FV+35ItJPvqaVw8U+mSKsyRy2x8sow6hwMfljmoI2nijmb7VbCF5VkPyH5x0Zh7CpI1u
-  Jw 8pjSQSZlwigEsBgc/WmzRXEMZtoVzeTkO6kZEQx84I/XiiNl7t/66h7ifI3Zd9H+mn3FZ5n
-  GpNC/ +kIFPlugx5g6DHtiqK31vJbrEokMe0ADdnBzjB/CrSytYqktxGZwFAjdejL04/MVntFb
-  QxGU200Z gmREy/Xkkg+p5rqhGL6F1ZRnPSGnR3/4KJ4rk+cyRMzbnBKDuR0I/wBnHaqVxeYvJ
-  HBiBEWxMp1B HQVduordWtNgaVXDiF4zjCDnJ9frSTiOWZllkgtodmI2dckflVwcL3saUKlO7l
-  KNvVf5bjjLJb6T KH2lFdvkK/NIMAZz7ZqlHFFdyRpAkoQfu1lJyHHXPTtipoTdHSrcqYrsvgK
-  iryAD0/H+lU2FtdSQ +WJIZoC3lENhQT1B96qEbX/r8Dmw0qii40klq7vXRen/AACYrE5Bjt5R
-  MHJiO774IyAfU9a2LZok jiR4o4lki3s20AoRnCk+tYAsnRbeFJGd3XzFKsf3Z6EGrIW9e+4tp
-  1Cy+UUPVdwxz/OirBSVuYur Dmi1KasvW/4kFmYra+zG/knG5GuPmD9Se34VYBSXWFmkXCMuXI
-  6AgcjHt0+tWf7PlWGC2lnhIC7Q 23liT8pB9KtRW26/S2urZxIwKySKSFLA9MY4z9aU60NWbwr
-  05U5N7Ja2aTt313/EzpoxPZwmFN7F clRy2eufwFQW0a3EEUbu8XHOW4CA8j6mrMkkdrqfnxQS
-  iFEaNI93UnufpUaRJcqJJpoo23gOo4LZ GCw9qpSfL5BOo5U7JtR6SV2/nYdeWhglaSBmSJ5So
-  Jb7ikc5pli91sESQSyoyjaMdh0/OnvIsUC2 tvMLhUQlJApwB1wcjk1es4C9tBK0U+1kBba2Aw
-  znI9PSlKbjT946IRnSw37zW+2lv8vzIGt7VIJ4 445IZkfZ5bPzt6//AK6beO0SrAhBUph1IyR
-  jFXLyKdlE9soG87XLDJJbrj0xTreBrfUsT27XDoCo C/x8c1nGorcz18jqoVYOldO7XS/6sSEW
-  66XcLLG7AXCiJd2cLkZpgW5aSYxRuZHlaNsfxtnOR6AV phbaW2Xd8iyxCYKTyhB6Gs12vVjla
-  4haRWYAGL5c55JH6VlCV2/1LpxcXeP3X/4a/wB5K8cy6ewR WeVTwx5AB69fypGkvI7RJY/KxE
-  +zOwfKP4c+pNVpp/LaRSJDsx5YB+8uOTTbd4pmjtNs9tFO29Wd s4x/F9K05Ha7RpWpuMbzSSW
-  r6/gacswiR2tLiFpzPtVduc9Mj9TSRtbpZyrOWO2cEbTg4HGPrzn6 UxjErqIpY5pgU8xlXgnP
-  GPTNWVuJWvZGNk5iYliuBken5HrXO9F/SZwVJw5ubdLXsytfXcUjCGCN ss6AMeig8VI8JIm+0
-  3kaNHIURtpw+eCfcA0yKMREXUg2jz0JJ6MO9aM/myRTRLHFIs8m62YgfdHc /XpQ5KNktjr9pF
-  SjFO0O779ejMuG5eR5Wn3TgFclTjGOSK1nure4QrsEZKtkNz1G7J+vY1lOGECR CBm3JkheCXb
-  jFNurNEvI4FuQsm0KAepULyfwpyhCT7GeIVGfvN2a7fn/AEiSLy7rSjJBNnzFXezH IDZ6fl1q
-  nbuzzvPdSrnft3JwBk9Me+K2UMVvpj+W0LQtKMkLjJOMY+lZshimu7mGOPyysvyMfukA ZJx60
-  Qne6tocEcXUmnBrQqBW/tLmPgoWLYGQOScn0z1qrb3E7PbCS2kuH8sSYUcggnBHpV2FWMWL Nt
-  8Ux8+QuM7e5T8ccVqwRv5nmeXi3YhlKgAqoH3c+3etZ1VFaoWJrR5fehr2ujLiuYnla4WRVYMS
-  0JP3yehA6ACssRBruNY7iKVwmd5XOOPm/wAK3J7R2vGEaLl2DiQLwBjB/wAaoXCzC8eNTCzsPv
-  xx 44z/ACq6U430MsNKLctenW2n4f8ABKLSCOUlLhQxQMQo5BHAWlso8kJMXJdd5ZmJDnd94ew
-  9KvQ2 6BZTPCJJY32DGPmwMhvpVUz/AL6znELxIiPGpY8AHqT7Vrz8yaRGJrQqRaite5OLOJbh
-  zbs2USRM k5Vm6j9M1kok93I22PftdWYAc7sHHPpxV1IIoLkJcXiSW4DKux8EnHB6VmxSSiQC3
-  lXPy+YwPBIz z7CtKadnrfzM6cHyySfNpvrb5vf7jRmv2YPlUlZpFl+Ucj5eF/rVBEE6wTy285
-  aRNqIhxuGeWqK7 uX862VWSRXjLL5S4LEHr07U/7SkmntIWId3Mke04wB6e1WqbjFWW559WUoR
-  5YKzejs/+GZlS7H8p YQ21W27mOSzE9fpWj5scek3UMzssq3SlVTjtyfwqoCzR3EoVQfOR41AA
-  9Tn6Uryqtys8jQ3DHcJE C9T2b6V0yV7L+u4V1pHmWnTvf7ixdXcguwiSswD/AHgfvnjBqGO5a
-  DUFlaEN5UhRm25CseckVTa3 gm1GNTMqgLkSHIXjrT98ZeUkLH+82hWHJHb8apU4KNjeEI2dGL
-  5U9+t15vYdJdGRycbd4xICOjdB 9Kngc2kz5AmkjPllfXPcfrVXa20eXypdS4xzkcAe1IrwLAk
-  bI0bFiWZmyWPRe1NxTVkVNtrlXp8i NRJyQuF3Hn2xSRSMzxzRoU8sFf3gyBnt+IqeMSrMVbyy
-  2MFduc+oqNTtZ9kZIwCPbirua+xvaD26 33/DUgkj/doXGWJ4XnKj3OMGo5plggjii2Om5juxk
-  g45yT61JKJiyF2Csqc7uj/SqSzGO3XzmR5n GFwuQo7g8da0jG/meRjVGLTaej0ul+mxDGxZAw
-  lZmxgBzkVOGK3EQgj3s5wvGevHf+dPdovNVAUI ckBkGAB+VJakf2Y0pYk+aVUKcEHHB+laOWl
-  7HC66cbLd6eRatYpRp8scUgOZAxQ/eycjOcVNazT2 rIYkDOYmBQjJGDmlMTSXcUbSJFN5Z3A8
-  Hf3Bx+dILJ1+zmaYW3y9G549eK5nKLvzdQbhGnyyV0+i X/A/I1ILjzTLcTKrIWAYxAL14IHpx
-  WzBJZpvlYmBCPLj8x8kDPb+dYETm2W4gbbIHlRmAGM7c9Pw NWJYIbm8kSOXbCrEQF24w3IU+p
-  J6VyVaabtsv+GPXnQkr2bXez0+W5p2bW6XOwlLto42ZnA+++eM Z9KAlukiXE0MsaPJlmL4Ib3
-  Ppk9KswC4trYJdRRvMSVMcahTyPm/SsC5Xy4rOC0aT7ORukV23HPr ntWEFzydmc0IyqVPcWnV
-  7misksOoTeUgnXG0pt4PBGR7CrMAW0tw8Ql2qgHmM3yjJwePxrKQ3HmK U3PtjKlh2B9at20pW
-  5jgumDBYjgg4AO8YyKupB2PTrU3FNvWy6XEV7Ga8InlGxGEcZ3fdPofpWva TW1vqRcafduGcl
-  sTHOegHTHfPWsW5soxIQq8OS8be6nGD6k5xU0aXBE8TwziFpSR83KFuxPrnmoq RjOO+nqRKdO
-  vB22atu1b5Jq5rXXnXMYtLWKSIxoEBdsn73JqhdDZdLvtZ/lUqGjbCkE8jH0q3bKm 5lluf3kY
-  xO4JHPU/oMVnm5sprsywx3LEyAwoZM4Q9c+prKmmnZLRfqRGtaXLFO0dev53JrtIbXUH uWzEn
-  zKsQ67QAOPcE1nwb2gzH59xErYlbcSpxzx6etblywnaSEoGQSdSv8IAU/nmsOS3NjqTFJ0j SP
-  dsU5O7AxyPfNa0Jc0bPcdCq6vMqkdX6/oXRL9rhPmwNE73CBWONoQgk598d6f5dvHDMiLkM6FW
-  Q4ynQn/GpFtobiwsgEk2om2UB+euAfwqEC0jiUBzcGNirBGxuGc5HtUJrZfcKjO14rm9P+CW0i
-  lR 2lhjx5ZYx7+Qy9Rx3qFJhL9nlnTbGUIRIxtyvPX6njNWZftFxGWhAj85twJ6Y4GB/OqccUa
-  MkM6s 3kB4wynAweVH1J6VMHda7/idtCrzK6WvVrf+vQsLd7olHWWNlTYw5Q98+uKmhv7g3O57
-  dJCilGMK hSxY4DfSqdpFZtYrDPDO1zHkqivg4/iB9T3pF1GzhmzHbTfNtYHfnPBwfpmiVNO6U
-  blKjFxlFw97 5foy5vnXU4pLu5jWO3BikOMByOf14FaFwM6fMyvHctJIDIsa42nI4/Cqdoz+Ra
-  BHiMphdWEi7hIx P3vp2qFp7uCFXlaFsuR5YXDMw4zwP8msHBykrdDkadWrGUZJNaWv2+X6ot2
-  9y0Sz+ZJCgZiVm2fK hHBGPftVZJ4zEhS9t43iiwqkclh16etaXlwvpcESERkt5ZRvmJ9W/A9a
-  r3FrDKlnbugjIt3ZHAxu z/8AqqYyg3qrEwq0XLWNnfW39aleKR5YVS4kTyooWjMjD5SG5FXIV
-  228KI6XMsSSBVTqExyG9W75 rJspoIbTyEXzBNIr7nORH/sn3yKtoGlkRmguJERShhiba6An7p
-  Pc55z6VdWGr6FSjTlqk1b7v0/M mNgzTwLMk8kfl5DRvtJIHX8jVUPdRNFOkscoCZ8sqSSAe38
-  6tSp5ltbhfNilVmWPc2QU/iOPamS3 9tLAn76FAE2sAOu48D8uaUHJ9LjoYhyTly3js1YZNPLO
-  6mSdENwrSJ5eVGc8KPTmo1vdRt71pDdQ CcJh9yZ+o+tUrgRTw4+0RxRW9wYY5MHBU4yfwP8AO
-  p3uJIblg6JcIWKzKBzvzwM84xxWyguW1jvV b2kOTlV+3/BenyC4W+l01ZHZZjHhDtXGTkdPpx
-  Vq7iuRNJB5sUku5yVC8lhjn6YqjLI8sk4mWS3l mYsMnCrjhhj1PalTzknt4re5S7ZlJKoPnz6
-  Z/SnZ6PTQ5HOEUm2rp9tP1/QXyb14n3KZw6bj5ePk wRwPTNLJLNfRKmIond+Qy5Kn0/SmXwRY
-  YpA8tuGGzBcnOCBnjtmr6tNGm1XhnMZcSSKvDt0Dj2Bq XLRS/r/IKtfnUZJ3d9LKyX6FFIZbM
-  QTW8yzEKQ6qp78Aj070+zigjmNvI6WrjMjPKudxA4/ADr61 VMs39nzKWDneoZ04CEdAfrVyJ4
-  rrUZXLJmUNhT1U4wq/UmtJp8rv/X9andKlTdHmqX9V+qelvkSR W1w8UDPIkuFKh0G0EN1NVGJ
-  s7qMzmVwIyGAbB3D7uf51eWae20hYZ03yJgTBePLb+6fc9qz3kjjl mnJ3MXEZicZKkjv9Kinz
-  Nu+xGEhupaJ7ef8AkOt9QuttvKWRyLdspt5GM81MLuZ5EV7oWzOglZ3B OCO341BPOsqiFlj/A
-  HZCxmMbdy9z9KijuHilD26R+azEssqhtoUe/bFa+zTV+Wz/AK/rY7XhIqD5 o+8/T/J/kTW6vd
-  TuYY3ljcrs55OM4GfXjmr95E1rpAleJoiD5QLY+UNyc/54qW0gkMMN0sTOHjY+ XEduMHIHHc1
-  SSyYMs8t6hjLYaNiTtcg8H3rBzTlvojgqV5Tqp8ytHbTd9rX/AEH2lqlxdpmL5IlK gD+Pb61c
-  kuGO5VgmV1G8KrYEY7KQPp+tYSQxwPDbrclopF3Pz0bPI/KiW6eS5ke0LQws4Zg53FwO nOK1d
-  Fzle56sKEaj953fbZGz9pkkMb4E7SOJXSPjac/Mv6UlzHJcT3txLFcRA3QdDu7HsKpQtHai Ga
-  VvNSWL7iNhlYnp+VWbNkt7+RmZYwkZCh+fYqR3PpWbjy3aRpSp06bk1Hb1s/Ly9bGhLLA42I4J
-  b52QHoAvzCqLuLTWIJHt7hICCVSST72FwD9OaZDDBEY0luUmWJGwqEhgCOpPfrTNzHy4ZLiNFR
-  N6 NLzjHQfjUwilpuiKDTTunbqtbfkatrZ2ly8Uqv5RijVCrnPX1qpLMpYj7M8UeTG0mRgE8gf
-  kKUS3 S/Pgojq6ncBgHHfiqj3Ey6eiSwNlduG7Ke2fXipjTlzXvf5lfV3Gq5wmn6Pb5lq1CXF6
-  sUJJSM7E GPmZD1b3x61O1hb2trdJ507SM2YoxIQ2P61SVdU+1w3Vqse2MAqoQfMucYqvPd7J3
-  AtbkzNKMsX4 wB2/CnyScvdehx1K8o1G9LeqevntY1keFCZkZlE0TYWQ5A9/w6fjUsN7I1laRy
-  xGacEBFiOCRnOf pWS75RZVkQRqwVYerIOmCf1NXwYotRgu4xJvSBxvY/KTjpis5wVtTLE14VK
-  d56vp/l3JHjmhinIu ol8yXfFleSAeo9smnwi6k1GC5cJORHk4XkEHBH1zVY3TJEkkhjKYUnK/
-  c7bfyNSJHEjZtJX3JIFj BYncvr+Z5qWny6kVJJUfZyitfx8r6Fa7tEmSbbeQh/NDFATg8csB2
-  Aq5bXAnACouxyG3EYJwDzn0 4xUV4tusM7SxPvEmAVbHJGB+XekYQIbSRC63C24V0DYALf8A1q
-  pvmgkzSTjPDK9/LZ2+4jur9pYE jYRR74lZ9i7djZ9u3FTRzq8RBLiSaeN/KzyM8Efj1qN4He6
-  SzSEQwratl3AJOOQc1EM3Ailms57c ufMjOcbuMcfl+tPlhy6f1/VicXOn7NKCs/l/wPzLGoMI
-  JdsbPCYm2F3bhm6hh7YyMVRgkto90pu1 dwpAbaeRyP606a1lkx5MUxEhOZZDlVOOn1zUUkOYR
-  HLFHmRhueNAoHHK/oPzq6ajypNnLT9iopc1 79rL/P8AMjfUYzpZU/vCWVgF4bA4YUfaPN1mRo
-  mSb905CKvB45I9v8KintFtZLfyNmdrE5GdpHXN Z6SJs8x5o0RbgINq7Sc9G/3euRXTCnBxvEl
-  zpQi7LR/12JLlGNvDLHbTJtXIdiCNq9fxz3qnE10J 3xGJHbLsqrg7T1/CtW5Vbi5ubVJS4ViU
-  xnHHUfjUVpJL9rnhiWOSc/cIXOUI+Y/pWsZ2hqjOo+Wh LnjqvNozXSQpG6FdrKyxbUzhW7fnm
-  s+b7VLd21uiBQgIKgY4IFXkmminhZWRYzIpZCO4yFHtkVGk 8kOqztAP424YbiPb8K6I3XQ4ZO
-  U4WsrrZ3aIGa9ZI4js+QMANg5XvT40aOJ1fazSLvUqOUHUj+VQ IJd0YZZQjKd24c568ZoSHfc
-  pHuaMlTww5+7nP0rVpJG7nSoWqRTsuutvw/4BGsgZvMV4wcgDCHkH r+VPZHM9zuKkiRixxwee
-  MVHYSxQCIXhEkIJ4ThjmrRULEfvbCzN5Tk7h7k4/rTk7SIjKdSak07/h +H6jE8poN+5E3DIHU
-  tg8/wBabsRZWMYRlR8x7gCxH5U7f5IUrbqMgFtx4wRg444zUkzvHBtjG0kd W6daFe520IuqpS
-  qr4fIjaRPJJmkBkZ+Tjj2PSoQWIcqrJ1JLdtvUfWophlH+YFchskdgOlSgyZMg TaNp2hvSr5b
-  IyvUcrJ6emtiBimAZCyqzAwlj0Hp05qDEBL4VyEkCq4bjPXninmaT7OZBGTHH8qgq DjcMZqJp
-  CD5UZAIbawx0I/ritIpnjJpycHa3q7siSU8eWyM7MzN8vT2/KrUbKY5W2rjcMEDAB7A8 deKZ5
-  EaXivEhkKksFAzhff1471IDEFdA4GZP3RP90evvTk10HScqUuSS0XzLlulxPdvC20XM2WUn 26
-  qfc02YFYUSRJPLhYEZblVI5Q++e9BkaJmkJEkqsANvHGOefrQtxgzI+JYM9ckEH0JxXPaTd0ZT
-  9tKstPdW19Hf10LFjD5ksQeVAskLMQfvDB4H41fEq/Y2WNUDyhWZSvQ5xj8qyYXH2BlQ7FTDbm
-  HI wfu5981rWLvLNLdq8cZDbIo3X7wPAP4VlWVrtnoxcaN5Tlr07fl+hZ+0XAmfdJtkgm2ByMj
-  kY596 seVk2/lzwl4YShyOozy34Zq22be2WScpIFWTcoXBLDHP4UttfJBcpF5AmEeVmwBkk/MT
-  9K4HNtXi v6/r8zOGI9xzhC7/AD+9FOZb6LbJDFiOPKs4UYbpz9KozpHJO7SB/M4wynA5GQfoK
-  6Rrpv3xiwhe RXIcZxuGMVgO8waWO2QOFKljt3Zxxjn0NXQnJ9LHThazt71NX73t9+hMXmSwV4
-  kM4bMfmDkMW7j9 alt4Wi1h0ll+VIGBPZiBwR+dRbfKiV7iCeOZnC7AcDr8xA9hVi2aSa2lC3d
-  uSg2jenOc8fmKUn7r sZ/WWk409U93tb87lNRZSxbYJJATGvzluE55Dep60t0kEVyTEd8cO4Yj
-  GM+n4VO+nziZt09u8ImH miNcEEj6U+VbecRS20se9FZGGPfHPqaaqK6s7o2eJg3abbflt+KuJ
-  IQ8skTiSFs7lUn72FBJ+lTS SxbYDbRG4nAK7D83B5BoX7RMJ4whRTOuHbnjGDj6ikSUR36LAh
-  SRY2SEkAgrjv6nrzWf6GanC9ub Va2vp8xlwUbT32ziGaCREVdxGc8mo1kPnuFh82CdS8ip94M
-  PQ9gB2ptxfSDS4wEgKyc+Zs64P8zT JJJxdTXLELuZtqquMgrzitIxdtTpw8mqWi1d+v5bWLs9
-  z51nAI5o/KPzMw4xtAA/CmxfacmFpYJX 83dOQvOf4R+Ap1vaW5sEmiG7KYWHPLjozD2FSRKrS
-  MsjBJopEUEcZX1Pqcd6ycopNLockZxhzOCv b8GXI0txEFZXnm+ZlaM4wmcf/WqBo7Z7VLmC0d
-  JNu1Ucg7gGwCPahMPfPFBeRbZG8zO0/KEHT6Zp GihlngcXIPnJ5ihSQAB2/PmsldPf8zVJqSk
-  m9NWnf+rE0EdsHnRre5gnBBVHk5Ht+NMF4Y55DOFj m+0bgjjOz1U+9VUFzc2UsrXCgPKjEY+Z
-  +xYH0FWpPLSzlFrieXzVMRPzZTnnnqc55puKvZ6m8/Z8 /Lvf+tW/8i1GkZCJc3kW4xMV2ccDO
-  aoSzwx2qGPzWSSRSjl87VHT8O59akt7x2nhhVUaRoWZztB2 kHJFNmu5PLeIpDEXdQW2DGWHAH
-  pxUxhJSsznp0pqoo307X0+5LUnnK26NALX7QzuGRo+BtXqf1ow jXUrXUxEJYCURnaVI+6f8aj
-  Zrh7Zjb3UDMXVI1wcopOOfrVq4LyrID5bYYh0UYPy+/rxU7af10Om M40/3fPZvte/4ozw0siO
-  jTpwjqrY7sf/AK1Q28V3AJoZVilRdxEoQY5H+FWbx7h9OVtibXj3gquN xzkmoJA4t1ntpQJZV
-  Y4c5DKOcj+Vbx1Vu5tKMXTSvu9P+HWxBay+YwkaMRwJgMWGQSTwarz3dxdt cllEXnEyAlcDch
-  5Gfwq2k15HYTqkK+UzD92U+YMcbapXAAntY5VZbkbyX/gJB4GPetoJc17f1ucv PGFRt2u9O9v
-  PyHjy5kmuZLjeguMB1PChjnB96kuNh1KeNJo4NzqzScjp1PHpVe3uYhFaxXCbGVGD rjG1s8Fv
-  XFPjhVLwOG5VTGHcZV+OcfXtTas3cyp1/Zxm3o+nb8V/n6FQCW5yrrLJIT5kZB4BPGPx xWlFG
-  0LzTy+Y4hYoyI2CSRwfp/hVS4WOYW7W8oUrErhFz8oB5BPcjrW9DcIJrsBont5JfnPUk4+U j2
-  oqzajojv8AbzjD4bJ9Nn6/8MZsNxGPPCFVdpMDfyu3HLY/l6VZuTDCkc0KFlkBjCpwUX39ST3p
-  rWbw24JELs7qVUDDZHTHtSSXVzZ3LLMYjMuRjZ0J71npKXu6m1Kftbezlfvr/wAC5Zmth9kRYr
-  W7 G9SDIzg57/n71NbJCssn2x4ordjuIcZbJ9/bpVBtSvTZrDlX2Abzt5B9KrhkmTz7gtuK4VV
-  ONw/v fQGo9lNxtI6KeGrKHLUdr7W1a+8sSafbw2SyTbmMM6wyBW5GfX86fcfYY5CEjeONg4iJ
-  Iy3Ytn0q vDdG1htw7xzZlBkVhnzDnjH4VuXFsizSGSB50kfdGo6gL/B9T7UTnKMlzO5zqcqdR
-  Nu/bVK//BMm zliS4W1SWUr5ZUNu4Bxk/rVoC4S0QXOxbcRbXBAyr5xz75rOjlRL9XuIWjRjvd
-  BwQRkgCn3EcbwB mndR5oyrEkoCMkH1NVOPvevzHiWlU93Vel7Py8wtbdUFz58hZYpRFlcZIOf
-  UUkkdvHCTAXZygPzD 7gHGDxgmq+5vs8gglVYUkAAfktuOd34VZiLpLcmUpLtkEcgAwCTypHt6
-  1o73u2dNCvLl/eyd+i6D 2hWR7cJG8sUaESOp4DAcD8aginBJCNvGBtJ5wR2PqcmrMoJ0xoow2
-  4SBtwP3yvUj2qcTndJKIInj c71WNQCCetZqTsFLFOMHKyfkMtrlJbxJQI0kZBu3pkcZBGP1qC
-  UGW6MkTJJ5ThFwvBB6VE1s8iZS WPaMqrD+LnJx9elFtcXK292GKRsJApiZMNycjn2xVKK+KI3
-  U5ptqSldf1/WhZupHjkWO5jlJ2uAU faOvWqyzQm8iWMmE7SMzHcAfU0rwsq+ZcszFiERQfmI7
-  nmq8MipOgYRQptdCzqCfQ/4VUYx5dA9t S9lLkl739bLUs3d4HQNCzo8cvloFb+Hj5TjqT2qnN
-  qUt5JvSP7PtmbzVIySemB6cUyW4iW2RLWJl VGZn3/MeeMH3qpbovmK0Nu8jtIcI2DtIAG4+x6
-  YrSnSio3aPLcYqMZ1F72t15dNVp+BbVY3uJt4c AMzRgHBwBxn61qaWIIZoGlYxpNgh5D8vQhl
-  +tUTazknzjHGU3KQBjdnqfoKlEMMcsMy3EchjP7sD 7uQOWx6VFRqUbXNqtanOm4pu78m/xSt+
-  Ben05AytG5khwvybuWYf0piCZr0JPKLYBHDSlTtPcY9M 1FKzXjWKLeRbowwZFBBfHORWnbqiP
-  Gcbo0t2CmT5gcc/pmudylGPvasqhiWo+/rLbs/x/wAiulsr RWaq0su+IsfmyWbOQw9hViB/sP
-  2lpraSSScecrMegHUdPeqv9omSCFoY1V0iESDaOecnH86fa3CG 4Xyo3UlcoZm3fKQRj+ZpSjO
-  z5lodjUqcJOS5k+l3+n+Qksm6II19ChKjZnOUXrg+pNSz3CvbxTWm ZRGwQAH/AFeTnaffrQ0E
-  V7MYFAHzqGcD74A5YewFR+baw2Qmt7qKOSVpNgcEjZjGcAdfQ1GjtZan l1a8bxhFu99rfnZBc
-  yywSARN5cBT5CxLbxn7w+mefWoLhg9lFcx7p42cNJsbgFSAP8arRQW02k27 W6TzSqG3IXzuPt
-  7e1Pgtr1Lq3uYgnnsm94yo2jJ6EfrWyjFddV+P9dyKtWnUg5J2a6d/XqvX8B66 hIb65ad4o5f
-  m+Vkz1HPHpVK7tWXT7YJAzl4CJGH3Q+eB9QP51Tv2mkuoCI9kUhLKpGTtBwcn9ald PIEodZ1e
-  ab92+/5W9xW8aajZowlJRcWn8v6t+QyK3n/dxtuAAJMnTDHoCfWpZLtkWJbiCQXCxtEW Q7T8x
-  6cDrUM81zb3EyRk7FLJhgG9OaheS8jeK4mt5eSGiJHUDgn34rXlctXYdec+TWzXTVrX1IGk t2
-  l8pt8YIGd3O0r26UlzNEI0eMofNyYyvYDgg+p96givWnvBPsiL+ZtUEZyM49KhmSRrolYVQlm4
-  K8j2+tdMafvK4vbTnOLT9O/53JbadI2YzRO2MjBPHI61WIWS7iKySIUYEKxJL+1SMItjeYjh8E
-  gA 9B+X41FEF+yEjzJI0bBOCeT0FapJamFSmuf33o+70+64scFqJV3sEycqSTyT/wDXqzJIMRy
-  BhNgF ZAqkbccAn15qgJURvmid95x2+XtThKy3SxmEkFtp9vr9abi27l+1jF8ylZLol/wNSx9o
-  R4U+YM4H 7ojoQDzxSODNbyyrIJVSYBSp6++MdKpJMHVTtRWVxjA7/wCeo70Ga5jKhI0Ul8MNv
-  Ue1P2epz+2W 769lf8Cz5jQ3ckWCQcgFhkAdc9O9VJ3kYxeTIWKZEiMD0GORx0qWNXnlIMckbg
-  c89ewxSJbTxlpk VtqPhi65ww4IP9RVKyfmcuKrVKkLRk/S6X6XKqRiWXJ8x9nKANgfjVeOJt8
-  AiKA5PmEnnPXP0rR8 uaNPljYnG0ADnrx/OqkUN3MQ/lnYpJPyHnHJraM9HqcuJpRpOLlfn7aK
-  /lrsTNdll2Sja5wq8djy aHx533ldEYBiF4NKsLKqlQZAVynHb1zUaoWARJUK7gZBg5PoOnXFT
-  7vQ6pzqO0pu9/T8+v3lnzld ZXkRn3NncBjdxz26U23knW5R7Et8zhcMoOARwTkY4phgAI2jIV
-  Sck579KSR1gjtWjcywSStgISCu MEZNSkun/AOHGQtT5Zu172X6dvxL0QdY4nRSltO3VjnIB5P
-  4VuwK0SWXlobqaRJCuzptJ5H1FVLe 2jlWKLyJYEVsFXblic4I9B6+tKjzRX0UbMI5S6DJ/hJb
-  t6VwVHz6HoRm6ivdNx1fb8DqZLiBNOgD W0/3N4QtlmHGT+dULgSXeryKlrKoaQ72BHHy5q3PM
-  zJevHNBJKLkALs524AOPQVcijiBZT5gjtmM Bkz97eMj8e2a8yM+RXtqXRrOhBzjo/V6fIzYre
-  SKK5K7pJFkjJIPDDHb8OazxJENWQRRysCDhlbg A9z9a0TA1pMsltchZRbner8gkDg/lxWXEqy
-  WisWDfKuHTgR84w3qc10wd7s9Jy505R2a31/Ine2m jZJJGaNGO9WkYtuC8n9P51oWSWc10YJL
-  iNJpnypwQF44U+p7UyZTBpgtpnZ4TJ8zn+HAwcE9iaqN uDqUSFJX8xsheVwOV+vcfWod5x3OF
-  /7XFq+uy5bW+7qW7q6uLOS8gVRGJZ0cOy5AwASKZb6legSG OO2ZPOY5EQ+ZWFSJNNLbRXEtlJ
-  GVjxC7kEbMfNkdz71Wmmne1txB5Z3orLtXHy1MYpqzirkKFOpZ cqvt9332LSXsMcNrHcSKksk
-  uQBwemPyPaqKTKXYSI4ztHXBQ54H88+tSW9xLc3hM0cYjkYSKSgyF wQSD6DirSzQTyC3t7ORQ
-  JFYlmBbAGQM/WnyqDen4k0aCpSlGMb97NafkQRXNm1uiuVOHKlffPDfQ UyRAwuAZFdoblGLDO
-  0tj5uP7vtWtbwQ3FkbmMRCSZ94wByc4wB7/AM6jXSjPE0LZjdxvI7oQDtDe tZqtBN9CcPXpKX
-  vJr1s/wsUoo2WcSeTN5fzKpRuF55qHybmeRBb286OU2sHbluoz+FW7eO5srP7Q xOZlMgVhnfx
-  gsPYGmv5loPtNzdJu8oqO25uMEe1aKb5nb9T06GLvUlyyS00639UWLXy/IMbyxyJb qIkZOCVc
-  YOT35omDw3KQrJE2bZjkL1KnHHoPak8qO3jj+1uqxKWWZV4LNwQPw4q3FZLc6xKFSWRF CsoDY
-  OQMkfjWMpJNyvp/X/DlyqR5ZtbW62t8iC2gWztZvLlXDSDG7kIM/dPuc1IkD2m37UrRKuUX HH
-  llzwp9TzmrLyTSI8kVsLcv87JKAeW/wAqrdPJLFbMpKxiMhQ/PQg5J7moUpSevU56L9rZuS+/X
-  8Cf7Ozz7YLWTzI28oyqfl+7yD7mqkRuo4438yCRVfy1Qx8jP3c+46Vqgzi3muTIj+ZcRCEJkD5
-  vv GqMscxcwW0ihg7mUMOcr0b6YqYSvo/67jptynaMk4+jf37laeLyQyI4WdnVdwOAo6c/rUA0
-  y4i85 WaQbztVi2dw6k/iKvQE3ulNmCSVVKMrqcE8/MaiS7mGozrOTNDIjSEIMEkdMegx2rZTm
-  rpbo7ozq Rva116O/oUPs4SwJa7+Zf9WpY/dbGPy71bK7J4Ty6hWLMvTrzgemOahnWcCye3tnf
-  NswDkZUqOS1 U542ihMjrO6OC0bK3BXHJ+nNbL37XZMqilDl5rX+/wDr5sjks5pXZopPtKMzOr
-  gnDYHXH8qdHI9x BE9xDIwYKY0HDFQCvX6jNakcEuz5EYuAxZU4w6DqPbB6VizvNPALiRkK5+V
-  QMfe44HpWkJ8+hzrF KpL2bkkl1t+hLdrE0KTCQSo8m3CDB3jgjNV0g3Swkz/ZoIn+TzTn3I46
-  1O1iPs0UUbG4Kk/u4j1Y d+fqaLi0uHtT5YMaxseDzn2+vWqjNWtcwniIygqTavfe35X/AMiuL
-  hXuAtsY2LuVBA/vf4U2C6lI j8sgAsIxIB8qgDGCO5680ItrHC8QBtwASsjHOM4Kr9evNWrGyj
-  lbcZTtD8p6MDwfpVycFF3NfaNQ 5ai28v1X5DgJFjztnkYErFznCdDn396tpLJBA8UMLvMW3gz
-  DcQoHQ5qK7uHjupzg5QADacAZxkfU 1YH2x3zEgUSKWBZQSRngg+lYPVJtHp048y/eR9P+CTW0
-  EM16I5CVjZMh84z6H86sTWtpbtFIJBvc Mixn19RU9pmCzcyJ5qtKpDKMDnpj2zU9pbia5ka4j
-  eSdZWjQrwCG7j8a451WpN30RksdPn3tFeZk zRpMyhgrMgCqFGCSe31NXZL6S28mMK0jKmGbGf
-  nJwAPxrRm02Y7txjd02tIVXGHXv9AKqm2hudWM UW5pnTzPMB+VgP4gPQVKqwktdUjrlWpVI81
-  rpev47GHJHLFdRRGJjPuQOvXJB5xVk2c02p3ASFt7 KxQnG1VHAB/2vepp7aC0lWaSVrgbGUFW
-  Odx561RS4aTTokjMkchAA+bnqSB9Sa6VJyV4jdWd1Ui/ d762+epbRUs57VrieDdsTdEEz8vfP
-  GCcmnTQi41ZxERIFDLtTghgPlJqtOjTSkwxMZD80pc5wcdB 6Ac09LmS0YbZo92xhG2zIKEcE+
-  p9DU8r3T1MKlNuo3Tl7z7pfp/w5UY3K6mGwnnN8gAHD5HJA+lM jliil2eVKu1AG3Nna3UH6Yq
-  x51vdTxp5UodTuUbuSMZx+GKkmhs3tMxuRcdSO20jn8a15ukkOU5y k1Ui1fTRbeen+RDc3iJZ
-  GKGJ+CAHJ4Y5BBH61XV/tF+ZpnEbSTq5XpuIHb25rQZbmeyt7cW+1oNm G2g7jnr9AKkkt2zcy
-  xR+WwugVLDIIyDkD0qVOMVbqcjrRgnSirX6tpsx21CeW5DSf6yJiqggYB71 dSe2/dyyyxqyw7
-  XQpkk5zmqxgAvJzc8tvdnRMA885+grNG+S5hXckbBfmLDIJA4rf2cJLTQ6bUql J+7ZrdpL+vw
-  L8TrPG0Drl2OVA4JA5Jo2xRi2nZ8jawk2HGGbpQbq9itIJnktg5AaMiP7w6Ht26U0 XX7udftF
-  uIjKMKU5Y9iOOgotLpt/Xkct51ZabLzf+RUhkZ7MEB5WyUGD09Sa1I7MJZlrtm2jIV0O AVHp9
-  ayVuGxIpZWywyUUAY7/AJ1YUf6JiIuxchvLJyVA9a0qRl3sdjhUkoqU7Ly/z/zNK3hdM3lv NC
-  ZMHam3JB9PxFTW5mgjt2ifM7DzdrcjaB6fic0yIwQwyzSMZY1cIAhwSSOopJopblLVkhkjkfIV
-  G/hHQ5/KuSTu7PY5/rMNFVel7cz6+T7/AHISRJG1aNrcLOUh/gTAI9f6VZtPPMcwA8mMPnEi5K
-  sT 8o+lRx2csEqtuI2KY5FHUknIqUlRqIkWZdskbloyeUkI+UGlOSasjqrYihO/IunUn8yS2Fs
-  yAp5p ZjuGdozyv5c1WLESsIreGWJUzCSgO6MdxUMBEdujt5kxdWaQ7uBnsPTPQVnyTQTsdknl
-  RHIRSclT 12mnCldnDh6bi25W16/5dTQjnjS4FzBhY5QPLtx944OAfp61HPLPa6vKZWZlBOEU4
-  yFB5HsDUEf7 /TlkEDkruNuV4BXPzH8Kvubf7T81ldSQ5Oz58kjGetNpKW1ylzNuqo8yenToZk
-  UsTWcc9xA7KVGw bsZQkhsH61dk8w3RNqgM2/bGW+ZSmPmIz0xUxgmeximghA3qC6FchAT0Hpn
-  FUp3jmjurgJJaywS7 FRm6Z6jiqupPQJSjNJX1/BeqILgo1iXk/eStKu0A+oxn8ayt8q3MeJAk
-  gUlQy5zjtirZgjjVNkoX zAGG9uFAOMdPWmG1zPJErRuUb75PTHUE/jXVT5YrUUYqnCUZNL5Mz
-  1MIYdWjcMfLXqp7Akj1pzl4 ZA/kOwlLID2wBy35mmvCFViZELpLtG3ocDn8jTVd0aFVheT5jG
-  zZ+VN/c/rXRvqjhqVJpKcZOy/L yJUQ/Yo8FW3qSCRnft7j2qq8saxwqoUOWGWLZBHcYx1z3q9
-  NZ7JlC/NalSY3B68/41SCPLKCBGSG wTjH3qcHF63NbOajbWz0av8A0x6/O0qugc4ypjGMD3+l
-  DxvGIjMhQtH8rFcbu+fyqZVtzZxjLJNu IJJ9OQPxp6Ry3d38zGQHhlA55HUdhjApc3XoTJTfv
-  2vr13/P8Rm+CaUptjcMDtIOADQLFwltIYpj bv8AOzL/ABKBjC5HXNacOnI2jwSlUS4MZCgLgv
-  zjP51cnsljs7iGOQmXzAJEz3HXA7D2rnliYp2R nXxftmlJ2/B/hb9TFuFs57dGjhmh/egRl2z
-  lO7H1HHFOhsd90ZXSVLZZNwJbjHXn1rQa5RHiLGJ0 KFgu3O0d1+tI8dv9reQXqfO5KoScBSKX
-  tJJW/wCCebWhKEeVrfrvf08zDW5EN48kCrKgOYxt9uvT pVJGuJGUpbyM5UgFF+9z1+ldBLZkP
-  Ir4uZGbgQqFAwuRj+tZkQkWBJchZVRQcd92cY/KumE4tNoq MqfMuV2b7oozrKh8uNjt6MMdPp
-  6VDGlyp/1eSTlsIBgVceS6nkWOIM+xdhxHyO/Jx1zTSLhYla4i kjITauR2Oc5Hc1upWVnYqUq
-  LqK7s+lnp8hjpiIGbzfMB4Yfdx9MVnRlkTaxWQGTPyjG0Y5H16VMV
-  ZpLZVl3hEJOfXng+tTh59q/6tgyA/d6ZrRaIz5FUlfVee5//2Q==
-X-ABShowAs:COMPANY
-UID:F0A6918D-8E09-43FA-9684-226810B8A96F
-END:VCARD

Deleted: CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/8.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/setup/8.vcf	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/8.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,11 +0,0 @@
-BEGIN:VCARD
-VERSION:3.0
-N:Śuteri;HiAscii;;;
-FN:HiAscii Śuteri
-EMAIL;type=INTERNET;type=WORK;type=pref:hiascii at example.com
-TEL;type=WORK;type=pref:33-1-12345678
-TEL;type=CELL:33-6-12345678
-item1.ADR;type=WORK;type=pref:;;1 ïlena;Paris;Paris;77777;France
-item1.X-ABADR:us
-UID:44EE78BF-8814-4471-899C-92280CEFB098:ABPerson
-END:VCARD

Deleted: CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/g567.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/acls/setup/g567.vcf	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/g567.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,12 +0,0 @@
-BEGIN:VCARD
-VERSION:3.0
-PRODID:-//Apple Inc.//AddressBook 6.1//EN
-UID:760d9b28-5a13-4880-b7eb-5769e6688fa5
-FN:Group 567
-N:Group567;;;;
-REV:20120503T194243Z
-X-ADDRESSBOOKSERVER-KIND:group
-X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
-X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:934731C6-1C95-4C40-BE1F-FA4215B2307B
-X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:F0A6918D-8E09-43FA-9684-226810B8A96F
-END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/gAddressBook.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/gAddressBook.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/access/setup/gAddressBook.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,14 @@
+BEGIN:VCARD
+VERSION:3.0
+PRODID:-//Apple Inc.//AddressBook 6.1//EN
+UID:$inviteuid:
+FN:Address Book
+N:Group12345;;;;
+REV:20120503T194243Z
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E2
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:44745975-AE6D-4FB0-80A6-A298427E047A
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:3765A955-1B96-41EA-994D-335192BEDCCD
+END:VCARD

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr2:</D:href>
+        <D:href>$cuaddrurn2:</D:href>
         <CS:summary>My Shared Address Book</CS:summary>
         <CS:read/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -11,7 +11,7 @@
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>My Shared Address Book</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/3.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-only/3.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email2:</href>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath1:</href>
   </hosturl>
   <in-reply-to>$inviteuid:</in-reply-to>
-  <summary>The Shared Address Book</summary>
+  <summary>My Shared Address Book</summary>
   <common-name>$username2:</common-name>
   <first-name>$firstname2:</first-name>
   <last-name>$lastname2:</last-name>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr2:</D:href>
+        <D:href>$cuaddrurn2:</D:href>
         <CS:summary>My Main Shared Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -11,7 +11,7 @@
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>My Main Shared Address Book</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/3.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/addressbooks/read-write/3.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email2:</href>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath1:</href>
   </hosturl>
   <in-reply-to>$inviteuid:</in-reply-to>
-  <summary>The Shared Address Book</summary>
+  <summary>My Shared Address Book</summary>
   <common-name>$username2:</common-name>
   <first-name>$firstname2:</first-name>
   <last-name>$lastname2:</last-name>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/15a.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/15a.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/15a.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:remove>
-        <D:href>$cuaddr2:</D:href>
+        <D:href>$cuaddrurn2:</D:href>
     </CS:remove>
 </CS:share>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/16.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/16.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/16.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -11,7 +11,7 @@
       <href xmlns='DAV:'>$addressbookpath1:/3.vcf</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>Group Address Book</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/4.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr2:</D:href>
+        <D:href>$cuaddrurn2:</D:href>
         <CS:summary>Group Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/5.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/5.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/5.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -11,7 +11,7 @@
       <href xmlns='DAV:'>$addressbookpath1:/3.vcf</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>Group Address Book</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/6.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/groups/read-write/6.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email2:</href>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath1:/3.vcf</href>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr2:</D:href>
+        <D:href>$cuaddrurn2:</D:href>
         <CS:summary>My Shared Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -11,7 +11,7 @@
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>My Shared Address Book</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/3.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/3.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email2:</href>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath1:</href>
   </hosturl>
   <in-reply-to>$inviteuid:</in-reply-to>
-  <summary>The Shared Address Book</summary>
+  <summary>My Shared Address Book</summary>
   <common-name>$username2:</common-name>
   <first-name>$firstname2:</first-name>
   <last-name>$lastname2:</last-name>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/6.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/replies/accept/6.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,13 +1,13 @@
 <?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
   <dtstamp></dtstamp>
   <invite-reply xmlns='http://calendarserver.org/ns/'>
-    <href xmlns='DAV:'>mailto:$email2:</href>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
     <invite-accepted/>
     <hosturl>
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <in-reply-to>$inviteuid:</in-reply-to>
-    <summary>The Shared Address Book</summary>
+    <summary>My Shared Address Book</summary>
     <common-name>$username2:</common-name>
     <first-name>$firstname2:</first-name>
     <last-name>$lastname2:</last-name>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email2:</href>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
   <invite-declined/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath1:</href>
   </hosturl>
   <in-reply-to>$inviteuid:</in-reply-to>
-  <summary>The Shared Address Book</summary>
+  <summary>My Shared Address Book</summary>
   <common-name>$username2:</common-name>
   <first-name>$firstname2:</first-name>
   <last-name>$lastname2:</last-name>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/4.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/replies/decline/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
   <dtstamp></dtstamp>
   <invite-reply xmlns='http://calendarserver.org/ns/'>
-    <href xmlns='DAV:'>mailto:$email2:</href>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
     <invite-declined/>
     <hosturl>
       <href xmlns='DAV:'>$addressbookpath1:</href>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr2:</D:href>
+        <D:href>$cuaddrurn2:</D:href>
         <CS:common-name>Display Name 02</CS:common-name>
         <CS:summary>My Shared Address Book</CS:summary>
         <CS:read-write/>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/10.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/10.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/10.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,21 @@
+<?xml version='1.0' encoding='UTF-8'?><multistatus xmlns='DAV:'>
+  <response>
+    <href>$addressbookpath1:/</href>
+    <propstat>
+      <prop>
+        <invite xmlns='http://calendarserver.org/ns/'>
+          <user>
+            <uid></uid>
+            <href xmlns='DAV:'>$cuaddrurn2:</href>
+            <common-name>User 02</common-name>
+            <access>
+              <read/>
+            </access>
+            <invite-accepted/>
+          </user>
+        </invite>
+      </prop>
+      <status>HTTP/1.1 200 OK</status>
+    </propstat>
+  </response>
+</multistatus>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -11,7 +11,7 @@
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>My Shared Address Book</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/3.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/3.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,12 +1,12 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email2:</href>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath1:</href>
   </hosturl>
   <in-reply-to>$inviteuid:</in-reply-to>
-  <summary>The Shared Address Book</summary>
+  <summary>My Shared Address Book</summary>
   <common-name>$username2:</common-name>
   <first-name>$firstname2:</first-name>
   <last-name>$lastname2:</last-name>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/6.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/6.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,13 +1,13 @@
 <?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
   <dtstamp></dtstamp>
   <invite-reply xmlns='http://calendarserver.org/ns/'>
-    <href xmlns='DAV:'>mailto:$email2:</href>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
     <invite-accepted/>
     <hosturl>
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <in-reply-to>$inviteuid:</in-reply-to>
-    <summary>The Shared Address Book</summary>
+    <summary>My Shared Address Book</summary>
     <common-name>$username2:</common-name>
     <first-name>$firstname2:</first-name>
     <last-name>$lastname2:</last-name>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/8.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/8.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/8.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:set>
+        <D:href>$cuaddrurn2:</D:href>
+        <CS:common-name>Display Name 02</CS:common-name>
+        <CS:summary>My Shared Address Book</CS:summary>
+        <CS:read/>
+    </CS:set>
+</CS:share>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/setup/9.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/setup/9.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/setup/9.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='addressbook'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
+    <invite-noresponse/>
+    <access>
+      <read/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$addressbookpath1:</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>My Shared Address Book</summary>
+  </invite-notification>
+</notification>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/sync/addressbook/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/sync/addressbook/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/sync/addressbook/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -12,7 +12,7 @@
       <href xmlns='DAV:'>$addressbookpath1:</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>My Shared Calendar</summary>

Modified: CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/sync/group-one/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -12,7 +12,7 @@
       <href xmlns='DAV:'>$addressbookpath1:/3.vcf</href>
     </hosturl>
     <organizer>
-      <href xmlns='DAV:'>$principaluri1:</href>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
       <common-name>User 01</common-name>
     </organizer>
     <summary>My Shared Calendar</summary>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/1.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/1.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/1.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,11 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Thompson;Default;;;
+FN:Default Thompson
+EMAIL;type=INTERNET;type=WORK;type=pref:lthompson at example.com
+TEL;type=WORK;type=pref:1-555-555-5555
+TEL;type=CELL:1-444-444-4444
+item1.ADR;type=WORK;type=pref:;;1245 Test;Sesame Street;California;11111;USA
+item1.X-ABADR:us
+UID:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/2.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/2.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/2.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,17 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Contact;Mulberry;;;
+FN:Mulberry Contact
+NICKNAME:mulberry
+ORG:Apple Inc.;
+EMAIL;type=INTERNET;type=WORK;type=pref:mulberry at example.com
+TEL;type=HOME;type=pref:777-777-7777
+TEL;type=WORK:8888888888
+TEL;type=WORK;type=FAX:5555555555
+item1.ADR;type=WORK;type=pref:;;1234 Infinite Circle;Exampletino\, CA 99999;USA;;
+item1.X-ABADR:us
+NOTE:This is a contact created in Mulberry.
+item2.URL;type=pref:http://www.example.com/~magic
+item2.X-ABLabel:_$!<HomePage>!$_
+UID:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E2
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/3.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/3.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/3.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,12 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Kawado;Saeko;;;
+FN:Snow Leopard
+ORG:Snow Leopard;
+EMAIL;type=INTERNET;type=WORK;type=pref:snowleopard at example.com
+TEL;type=WORK;type=pref:777-777-7777
+item1.ADR;type=WORK;type=pref:;;1 Fidel Ave. Suite 100;Mountain Top;CA;99999;USA
+item1.X-ABADR:us
+X-ABShowAs:COMPANY
+UID:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/4.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/4.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/4.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,12 @@
+BEGIN:VCARD
+VERSION:3.0
+N:Mariotte;WithNote;;;
+FN:WithNote Mariotte
+EMAIL;type=INTERNET;type=WORK;type=pref:withnmariotte at example.com
+TEL;type=WORK;type=pref:1-777-777-7777
+TEL;type=CELL:1-8888888888
+item1.ADR;type=WORK;type=pref:;;1 North Blvd;Cupertino;CA;99999;United States
+item1.X-ABADR:us
+NOTE: Address book server test contact that hsa note field filled in.
+UID:44745975-AE6D-4FB0-80A6-A298427E047A
+END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/g123.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/g123.vcf	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/setup/g123.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,12 @@
+BEGIN:VCARD
+VERSION:3.0
+PRODID:-//Apple Inc.//AddressBook 6.1//EN
+UID:760d9b28-5a13-4880-b7eb-5769e6688fa3
+FN:Group 123
+N:Group123;;;;
+REV:20120503T194243Z
+X-ADDRESSBOOKSERVER-KIND:group
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E2
+X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:FCBA0FA3-00B2-4C95-B4EC-4CCC4843F8B1
+END:VCARD

Deleted: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.vcf
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedelete/1.vcf	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.vcf	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,11 +0,0 @@
-BEGIN:VCARD
-VERSION:3.0
-N:Thompson;Default;;;
-FN:Default Thompson
-EMAIL;type=INTERNET;type=WORK;type=pref:lthompson at example.com
-TEL;type=WORK;type=pref:1-555-555-5555
-TEL;type=CELL:1-444-444-4444
-item1.ADR;type=WORK;type=pref:;;1245 Test;Sesame Street;California;11111;USA
-item1.X-ABADR:us
-UID:ED7A5AEC-AB19-4CE0-AD6A-2923A3E5C4E1:ABPerson-15
-END:VCARD

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-reply xmlns='http://calendarserver.org/ns/'>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
+    <invite-declined/>
+    <hosturl>
+      <href xmlns='DAV:'>$addressbookpath1:</href>
+    </hosturl>
+    <in-reply-to>$inviteuid:</in-reply-to>
+    <common-name>$username2:</common-name>
+    <first-name>$firstname2:</first-name>
+    <last-name>$lastname2:</last-name>
+  </invite-reply>
+</notification>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/2.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<invite-reply xmlns='http://calendarserver.org/ns/'>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
+  <invite-declined/>
+  <hosturl>
+    <href xmlns='DAV:'>$addressbookpath1:</href>
+  </hosturl>
+  <in-reply-to>$inviteuid:</in-reply-to>
+  <summary>My Shared Address Book</summary>
+  <common-name>$username2:</common-name>
+  <first-name>$firstname2:</first-name>
+  <last-name>$lastname2:</last-name>
+</invite-reply>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/3.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/3.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-reply xmlns='http://calendarserver.org/ns/'>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
+    <invite-declined/>
+    <hosturl>
+      <href xmlns='DAV:'>$addressbookpath1:/g123.vcf</href>
+    </hosturl>
+    <in-reply-to>$inviteuid:</in-reply-to>
+    <common-name>$username2:</common-name>
+    <first-name>$firstname2:</first-name>
+    <last-name>$lastname2:</last-name>
+  </invite-reply>
+</notification>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/4.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareedecline/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<invite-reply xmlns='http://calendarserver.org/ns/'>
+  <href xmlns='DAV:'>$cuaddrurn2:</href>
+  <invite-declined/>
+  <hosturl>
+    <href xmlns='DAV:'>$addressbookpath1:/g123.vcf</href>
+  </hosturl>
+  <in-reply-to>$inviteuid:</in-reply-to>
+  <summary>Read-Only Group123</summary>
+  <common-name>$username2:</common-name>
+  <first-name>$firstname2:</first-name>
+  <last-name>$lastname2:</last-name>
+</invite-reply>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/1.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:remove>
+        <D:href>$cuaddrurn2:</D:href>
+        <CS:summary>My Shared Address Book</CS:summary>
+        <CS:read/>
+    </CS:remove>
+</CS:share>

Added: CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/2.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/CardDAV/sharing/unshare/shareruninvite/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='UTF-8'?><notification xmlns='http://calendarserver.org/ns/'>
+  <dtstamp></dtstamp>
+  <invite-notification shared-type='addressbook'>
+    <uid></uid>
+    <href xmlns='DAV:'>$cuaddrurn2:</href>
+    <invite-deleted/>
+    <access>
+      <read/>
+    </access>
+    <hosturl>
+      <href xmlns='DAV:'>$addressbookpath1:</href>
+    </hosturl>
+    <organizer>
+      <href xmlns='DAV:'>$cuaddrurn1:</href>
+      <common-name>User 01</common-name>
+    </organizer>
+    <summary>My Shared Address Book</summary>
+  </invite-notification>
+</notification>

Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/1.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/1.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/1.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>User 2s Shared Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/2.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/2.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/2.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email1:</href>
+  <href xmlns='DAV:'>$cuaddrurn1:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath2:</href>

Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/3.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/3.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/3.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>User 3s Shared Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/4.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/4.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/4.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email1:</href>
+  <href xmlns='DAV:'>$cuaddrurn1:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath3:</href>

Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/5.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/5.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/5.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
     <CS:set>
-        <D:href>$cuaddr1:</D:href>
+        <D:href>$cuaddrurn1:</D:href>
         <CS:summary>User 4s Shared Address Book</CS:summary>
         <CS:read-write/>
     </CS:set>

Modified: CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/6.xml
===================================================================
--- CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/6.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/Resource/CardDAV/vreports/sharing/6.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <invite-reply xmlns='http://calendarserver.org/ns/'>
-  <href xmlns='DAV:'>mailto:$email1:</href>
+  <href xmlns='DAV:'>$cuaddrurn1:</href>
   <invite-accepted/>
   <hosturl>
     <href xmlns='DAV:'>$addressbookpath4:</href>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -559,120 +559,7 @@
 			</request>
 		</test>
 	</test-suite>
-	
-	<test-suite name='Reshare after sharee DELETE shared calendar' ignore='no'>
-		<test name='0' ignore='no'>
-			<description>Sharee deletes calendar</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>DELETE</method>
-				<ruri>$sharedcalendar:/</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request user="$useradmin:" pswd="$pswdadmin:">
-				<method>DELETEALL</method>
-				<ruri>$notificationpath1:/</ruri>
-				<ruri>$notificationpath2:/</ruri>
-			</request>
-		</test>
-		<test name='1' ignore='no'>
-			<description>POST invitation</description>
-			<request print-response='no'>
-				<method>POST</method>
-				<ruri>$calendarhome1:/shared/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/calendars/read-write/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='2'>
-			<description>Check Sharee notification collection</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath2:/</ruri>
-			</request>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>GETNEW</method>
-				<ruri>$notificationpath2:/</ruri>
-				<verify>
-					<callback>xmlDataMatch</callback>
-					<arg>
-						<name>filepath</name>
-						<value>Resource/CalDAV/sharing/calendars/read-write/2.xml</value>
-					</arg>
-					<arg>
-						<name>filter</name>
-						<value>{http://calendarserver.org/ns/}dtstamp</value>
-						<value>{http://calendarserver.org/ns/}uid</value>
-					</arg>
-				</verify>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-		</test>
-		<test name='3'>
-			<description>Sharee replies ACCEPTED</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>POST</method>
-				<ruri>$calendarhome2:/</ruri>
-				<data substitutions='yes'>
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/calendars/read-write/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-				<grabelement>
-					<name>{DAV:}href</name>
-					<variable>$sharedcalendar:</variable>
-				</grabelement>
-			</request>
-		</test>
-		<test name='4'>
-			<description>Shared calendar exists</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
-				<method>PROPFIND</method>
-				<ruri>$sharedcalendar:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CalDAV/sharing/calendars/read-write/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
 
-
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-unshare.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -237,6 +237,125 @@
 		</test>
 	</test-suite>
 
+	<test-suite name='Reshare after sharee DELETE shared calendar' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/setup/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/setup/2.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$calendarhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/setup/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareecalendar:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CalDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/setup/5.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CalDAV/sharing/setup/6.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+
 	<test-suite name='Invite, display name change, uninvite' ignore="no">
 		<test name='1' ignore='no'>
 			<description>POST invitation</description>

Copied: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-access.xml (from rev 11561, CalDAVTester/trunk/scripts/tests/CardDAV/sharing-acl.xml)
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-access.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-access.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -0,0 +1,1330 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<caldavtest>
+	<description>Test sharing address books</description>
+
+	<require-feature>
+		<feature>carddav</feature>
+		<feature>shared-addressbooks</feature>
+	</require-feature>
+
+	<start>
+		<description>clean up old data</description>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
+			<ruri>$notificationpath1:/</ruri>
+			<ruri>$notificationpath2:/</ruri>
+		</request>
+
+		<description>add 7 persons and 3 groups to user2 address book</description>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/1.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/1.vcf</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/2.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/2.vcf</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/3.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/3.vcf</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/4.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/4.vcf</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/5.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/5.vcf</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/g123.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/g123.vcf</filepath>
+			</data>
+		</request>
+		<request user="$userid2:" pswd="$pswd2:">
+			<method>PUT</method>
+			<ruri>$addressbookpath2:/g345.vcf</ruri>
+			<data>
+				<content-type>text/vcard; charset=utf-8</content-type>
+				<filepath>Resource/CardDAV/sharing/access/setup/g345.vcf</filepath>
+			</data>
+		</request>
+	</start>
+	
+
+	<test-suite name='fully-shared read-write addressbook' ignore='no'>
+		<test name='0' ignore='no'>
+			<description>reset user1 home and share user2 addressbook read-write with user1</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<description>user2 POSTs invitation</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/1.xml</filepath>
+				</data>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/2.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='1' ignore='no'>
+			<description>Sharee shared address book is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Group for shared address book is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/addressbook.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>vCard in shared address book is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Cannot change group address book</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/addressbook.vcf</ruri>
+				<data substitutions="yes">
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/gAddressBook.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>vCard in shared address book can be deleted</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>vCard in shared address book can be added</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/2.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	<test-suite name='fully-shared read-only addressbook' ignore='no'>
+		<test name='0' ignore='no'>
+			<description>reset user1 home and share user2 addressbook read-only with user1</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<description>user2 POSTs invitation</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/4.xml</filepath>
+				</data>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/2.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='1' ignore='no'>
+			<description>shared address book is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>Group for shared address book is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/addressbook.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>vCard in shared address book is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>vCard in shared address book cannot be deleted</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>vCard in shared address book cannot be modified</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/2.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+
+	<test-suite name='read-write shared group' ignore='no'>
+		<test name='0' ignore='no'>
+			<description>reset user1 home and share user2 group read-write with user1</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<description>user2 POSTs invitation</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='1' ignore='no'>
+			<description>Sharee shared address book is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>vCard for shared group is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>vCard in shared group is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>vCard in shared group can be deleted</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>adding vCard with UID in owner's address book fails</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/9.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/2.vcf</filepath>
+				</data>
+				<verify>
+					<callback>prepostcondition</callback>
+					<arg>
+						<name>error</name>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>adding vCard with name in owner's address book fails</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/6.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>vCard with new UID shared read-write group can be added</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/6.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/6.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>restore group membership</description>
+			<request user="$userid2:" pswd="$pswd2:">
+				<method>PUT</method>
+				<ruri>$addressbookpath2:/g123.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/g123.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+
+	<test-suite name='read-only shared group' ignore='no'>
+		<test name='0' ignore='no'>
+			<description>reset user1 home and share user2 group 345 read-only with user1</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<description>user2 POSTs invitation</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/g345.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/5.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='1' ignore='no'>
+			<description>Sharee shared address book is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>vCard for shared read-only group is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/g345.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>vCard in shared read-only group is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>vCard in shared read-only group cannot be deleted</description>
+			<request>
+				<method>DELETE</method>
+				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>vCard in shared read-only group cannot be modified</description>
+			<request>
+				<method>PUT</method>
+				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/4.vcf</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>403</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<test-suite name='overlapping read-only, read-write shared groups, addressbooks' ignore='no'>
+		<test name='0' ignore='no'>
+			<description>reset user1 home and share user2 group g123 read-write, group 345 read-only with user1</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<description>user2 POSTs read-write invitation to group</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/2.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+			
+			<description>user2 POSTs invitation read-only to group</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/g345.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/groups/5.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='1' ignore='no'>
+			<description>Sharee shared address book is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='2' ignore='no'>
+			<description>vCard for shared read-write group is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3' ignore='no'>
+			<description>vCard for shared read-only group is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/g345.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>vCard in read-write group is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5' ignore='no'>
+			<description>vCard in read-only and read-write group is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/3.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>vCard in shared read-only group is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>share user2 addressbook read-write with user1</description>
+			<description>user2 POSTs invitation</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/1.xml</filepath>
+				</data>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/2.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='8' ignore='no'>
+			<description>vCard in read-only group is read-write</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='9' ignore='no'>
+			<description>share user2 addressbook read-only with user1</description>
+			<description>user2 POSTs invitation</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookpath2:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/4.xml</filepath>
+				</data>
+			</request>
+			<description>Check user1 notification collection and get invite uid</description>
+			<request print-response="no">
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response="no">
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<description>user1 replies ACCEPTED and deletes notification</description>
+			<request print-response="no">
+				<method>POST</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<data substitutions="yes">
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/2.xml</filepath>
+				</data>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:</ruri>
+			</request>
+		</test>
+		<test name='11' ignore='no'>
+			<description>shared address book is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='10' ignore='no'>
+			<description>vCard in shared read-only group is read-only</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/addressbook/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+	
+	<end>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>$addressbookpath1:/</ruri>
+			<ruri>$addressbookpath2:/</ruri>
+			<ruri>$notificationpath1:/</ruri>
+			<ruri>$notificationpath2:/</ruri>
+		</request>
+	</end>
+
+</caldavtest>

Deleted: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-acl.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-acl.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-acl.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1,1333 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-
-<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
-
-<!--
- Copyright (c) 2006-2013 Apple Inc. All rights reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<caldavtest>
-	<description>Test sharing address books</description>
-
-	<require-feature>
-		<feature>carddav</feature>
-		<feature>shared-addressbooks</feature>
-	</require-feature>
-
-	<start>
-		<description>clean up old data</description>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>$addressbookhome1:/</ruri>
-			<ruri>$addressbookhome2:/</ruri>
-			<ruri>$notificationpath1:/</ruri>
-		</request>
-
-		<description>add 7 persons and 3 groups to user2 address book</description>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/1.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/1.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/2.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/2.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/3.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/3.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/4.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/4.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/5.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/5.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/6.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/6.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/7.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/7.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/g123.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/g123.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/g345.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/g345.vcf</filepath>
-			</data>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>PUT</method>
-			<ruri>$addressbookpath2:/g567.vcf</ruri>
-			<data>
-				<content-type>text/vcard; charset=utf-8</content-type>
-				<filepath>Resource/CardDAV/sharing/acls/setup/g567.vcf</filepath>
-			</data>
-		</request>
-	</start>
-	
-
-	<test-suite name='fully-shared read-write addressbook' ignore='no'>
-		<test name='0' ignore='no'>
-			<description>reset user1 home and share user2 addressbook read-write with user1</description>
-			<request user="$useradmin:" pswd="$pswdadmin:">
-				<method>DELETEALL</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<description>user2 POSTs invitation</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/1.xml</filepath>
-				</data>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/2.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='1' ignore='no'>
-			<description>Sharee shared address book is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>shared address book is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/addressbook.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>vCard in shared address book is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>vCard in shared address book can be deleted</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>vCard in shared address book can be added</description>
-			<request>
-				<method>PUT</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/2.vcf</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	<test-suite name='fully-shared read-only addressbook' ignore='no'>
-		<test name='0' ignore='no'>
-			<description>reset user1 home and share user2 addressbook read-only with user1</description>
-			<request user="$useradmin:" pswd="$pswdadmin:">
-				<method>DELETEALL</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<description>user2 POSTs invitation</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/4.xml</filepath>
-				</data>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/2.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='1' ignore='no'>
-			<description>shared address book is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>Shared address book group is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/addressbook.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>vCard in shared address book is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>vCard in shared address book cannot be deleted</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>vCard in shared address book cannot be modified</description>
-			<request>
-				<method>PUT</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/2.vcf</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-
-	<test-suite name='read-write shared group' ignore='no'>
-		<test name='0' ignore='no'>
-			<description>reset user1 home and share user2 group read-write with user1</description>
-			<request user="$useradmin:" pswd="$pswdadmin:">
-				<method>DELETEALL</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<description>user2 POSTs invitation</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/g123.vcf</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/2.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='1' ignore='no'>
-			<description>Sharee shared address book is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>vCard for shared group is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/g123.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>vCard in shared group is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>vCard in shared group can be deleted</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>adding vCard with UID in owner's address book fails</description>
-			<request>
-				<method>PUT</method>
-				<ruri>$addressbookhome1:/$userid2:/9.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/2.vcf</filepath>
-				</data>
-				<verify>
-					<callback>prepostcondition</callback>
-					<arg>
-						<name>error</name>
-						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>adding vCard with name in owner's address book fails</description>
-			<request>
-				<method>PUT</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/8.vcf</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>vCard with new UID shared read-write group can be added</description>
-			<request>
-				<method>PUT</method>
-				<ruri>$addressbookhome1:/$userid2:/8.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/8.vcf</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>restore group membership</description>
-			<request user="$userid2:" pswd="$pswd2:">
-				<method>PUT</method>
-				<ruri>$addressbookpath2:/g123.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/g123.vcf</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-
-
-	<test-suite name='read-only shared group' ignore='no'>
-		<test name='0' ignore='no'>
-			<description>reset user1 home and share user2 group 345 read-only with user1</description>
-			<request user="$useradmin:" pswd="$pswdadmin:">
-				<method>DELETEALL</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<description>user2 POSTs invitation</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/g345.vcf</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/5.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='1' ignore='no'>
-			<description>Sharee shared address book is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>vCard for shared read-only group is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/g345.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>vCard in shared read-only group is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>vCard in shared read-only group cannot be deleted</description>
-			<request>
-				<method>DELETE</method>
-				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>vCard in shared read-only group cannot be modified</description>
-			<request>
-				<method>PUT</method>
-				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
-				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/setup/4.vcf</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<test-suite name='overlapping read-only and read-write shared groups and addressbook' ignore='no'>
-		<test name='0' ignore='no'>
-			<description>reset user1 home and share user2 group 345 read-only, group g567 read-write with user1</description>
-			<request user="$useradmin:" pswd="$pswdadmin:">
-				<method>DELETEALL</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<description>user2 POSTs read-write invitation to group</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/g123.vcf</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/1.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/2.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-			
-			<description>user2 POSTs invitation read-only to group</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/g345.vcf</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/4.xml</filepath>
-				</data>
-				<verify>
-					<callback>statusCode</callback>
-				</verify>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/groups/5.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='1' ignore='no'>
-			<description>Sharee shared address book is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='2' ignore='no'>
-			<description>vCard for shared read-write group is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/g123.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='3' ignore='no'>
-			<description>vCard for shared read-only group is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/g345.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='4' ignore='no'>
-			<description>vCard in read-write group is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/2.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='5' ignore='no'>
-			<description>vCard in read-only and read-write group is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/3.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='6' ignore='no'>
-			<description>vCard in shared read-only group is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='7' ignore='no'>
-			<description>share user2 addressbook read-write with user1</description>
-			<description>user2 POSTs invitation</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/1.xml</filepath>
-				</data>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/2.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='8' ignore='no'>
-			<description>vCard in read-only group is read-write</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='9' ignore='no'>
-			<description>share user2 addressbook read-only with user1</description>
-			<description>user2 POSTs invitation</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookpath2:/</ruri>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/4.xml</filepath>
-				</data>
-			</request>
-			<description>Check user1 notification collection and get invite uid</description>
-			<request print-response="no">
-				<method>WAITCOUNT 1</method>
-				<ruri>$notificationpath1:/</ruri>
-			</request>
-			<request print-response="no">
-				<method>GETNEW</method>
-				<ruri>$notificationpath1:/</ruri>
-				<grabelement>
-					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
-					<variable>$inviteuid:</variable>
-				</grabelement>
-			</request>
-			<description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
-			<request print-response="no">
-				<method>POST</method>
-				<ruri>$addressbookhome1:/</ruri>
-				<data substitutions="yes">
-					<content-type>application/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/2.xml</filepath>
-				</data>
-			</request>
-			<request>
-				<method>DELETE</method>
-				<ruri>$notificationpath1:/$inviteuid:</ruri>
-			</request>
-		</test>
-		<test name='11' ignore='no'>
-			<description>shared address book is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:carddav}addressbook</value>
-						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-		<test name='10' ignore='no'>
-			<description>vCard in shared read-only group is read-only</description>
-			<request>
-				<method>PROPFIND</method>
-				<ruri>$addressbookhome1:/$userid2:/4.vcf</ruri>
-				<header>
-					<name>Depth</name>
-					<value>0</value>
-				</header>
-				<data>
-					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/acls/addressbook/3.xml</filepath>
-				</data>
-				<verify>
-					<callback>xmlElementMatch</callback>
-					<arg>
-						<name>exists</name>
-						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri2:]</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
-					</arg>
-					<arg>
-						<name>notexists</name>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
-	</test-suite>
-	
-	<end>
-		<request user="$useradmin:" pswd="$pswdadmin:">
-			<method>DELETEALL</method>
-			<ruri>$addressbookpath1:/</ruri>
-			<ruri>$addressbookpath2:/</ruri>
-			<ruri>$notificationpath1:/</ruri>
-			<ruri>$notificationpath2:/</ruri>
-		</request>
-	</end>
-
-</caldavtest>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -280,7 +280,7 @@
 			</request>
 		</test>
 		<test name='14' ignore='no'>
-			<description>Sharee sees group with shared address book members</description>
+			<description>Sharee sees group for shared address book</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>GET</method>
 				<ruri>$sharedaddressbook:/addressbook.vcf</ruri>
@@ -297,20 +297,6 @@
 				</verify>
 			</request>
 		</test>
-		<test name='15' ignore='no'>
-			<description>Sharee cannot delete special group</description>
-			<request user="$userid2:" pswd="$pswd2:" print-response="no">
-				<method>DELETE</method>
-				<ruri>$sharedaddressbook:/addressbook.vcf</ruri>
-				<verify>
-					<callback>statusCode</callback>
-					<arg>
-						<name>status</name>
-						<value>403</value>
-					</arg>
-				</verify>
-			</request>
-		</test>
 	</test-suite>
 	
 	<test-suite name='Shared address book cannot be default address' ignore='no'>
@@ -640,8 +626,6 @@
 			<method>DELETEALL</method>
 			<ruri>$addressbookhome1:/</ruri>
 			<ruri>$addressbookhome2:/</ruri>
-			<ruri>$addressbookhome3:/</ruri>
-			<ruri>$addressbookhome4:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
 		</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -27,12 +27,9 @@
 	</require-feature>
 
 	<start>
-		<request user="$userid1:" pswd="$pswd1:">
-			<method>DELETE</method>
-			<ruri>$addressbookpath1:/</ruri>
-		</request>
-		<request user="$userid1:" pswd="$pswd1:">
+		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 		</request>
 	</start>
@@ -149,7 +146,8 @@
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
-			<ruri>$addressbookpath1:/</ruri>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$notificationpath1:/</ruri>
 		</request>
 	</end>
 	

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-groups.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -27,16 +27,11 @@
 	</require-feature>
 
 	<start>
-		<request user="$userid1:" pswd="$pswd1:">
-			<method>DELETE</method>
-			<ruri>$addressbookpath1:/</ruri>
-		</request>
-		<request user="$userid1:" pswd="$pswd1:">
+		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
 			<ruri>$notificationpath2:/</ruri>
 		</request>
 	</start>
@@ -111,7 +106,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='3a' ignore='yes'>
+		<test name='3a' ignore='no'>
 			<description>Sharer sees group as shared-owner</description>
 			<request user="$userid1:" pswd="$pswd1:" print-response='no'>
 				<method>PROPFIND</method>
@@ -134,11 +129,11 @@
 						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
 						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
 						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
 					</arg>
 					<arg>
 						<name>notexists</name>
 						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
-						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
 					</arg>
 				</verify>
 			</request>
@@ -308,7 +303,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='9' ignore='no'>
+		<test name='9' ignore='yes'>
 			<description>Sharee cannot delete shared group vcard</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>DELETE</method>
@@ -411,6 +406,20 @@
 				</verify>
 			</request>
 		</test>
+		<test name='14+' ignore='no'>
+			<description>Sharee sees changed vcard</description>
+			<request>
+				<method>GET</method>
+				<ruri>$addressbookpath1:/4.vcf</ruri>
+				<verify>
+					<callback>addressDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/groups/read-write/12.vcf</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
 		<test name='15' ignore='no'>
 			<description>Sharee sees changed vcard</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
@@ -644,23 +653,14 @@
 				</verify>
 			</request>
 		</test>
-		<test name='26' ignore='no'>
-			<description>Clean up main addressbook</description>
-			<request>
-				<method>DELETEALL</method>
-				<ruri>$addressbookpath1:/</ruri>
-			</request>
-		</test>
 	</test-suite>
-
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
-			<ruri>$addressbookpath1:/</ruri>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
-			<ruri>$notificationpath3:/</ruri>
-			<ruri>$notificationpath4:/</ruri>
 		</request>
 	</end>
 

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -27,16 +27,11 @@
 	</require-feature>
 
 	<start>
-		<request user="$userid1:" pswd="$pswd1:">
-			<method>DELETE</method>
-			<ruri>$addressbookpath1:/</ruri>
-		</request>
-		<request user="$userid1:" pswd="$pswd1:">
+		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
 			<ruri>$notificationpath2:/</ruri>
 		</request>
 	</start>
@@ -404,10 +399,10 @@
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
-			<ruri>$notificationpath3:/</ruri>
-			<ruri>$notificationpath4:/</ruri>
 		</request>
 	</end>
 

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -27,16 +27,11 @@
 	</require-feature>
 
 	<start>
-		<request user="$userid1:" pswd="$pswd1:">
-			<method>DELETE</method>
-			<ruri>$addressbookpath1:/</ruri>
-		</request>
-		<request user="$userid1:" pswd="$pswd1:">
+		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
 			<ruri>$notificationpath2:/</ruri>
 		</request>
 	</start>
@@ -174,7 +169,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value>{DAV:}displayname$The Shared Address Book</value>
+						<value>{DAV:}displayname$My Shared Address Book</value>
 						<value>{http://calendarserver.org/ns/}sharedurl$$calendarhome1:/shared</value>
 					</arg>
 				</verify>
@@ -272,10 +267,10 @@
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
-			<ruri>$notificationpath3:/</ruri>
-			<ruri>$notificationpath4:/</ruri>
 		</request>
 	</end>
 

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-sync.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -28,18 +28,15 @@
 	</require-feature>
 
 	<start>
-		<request user="$userid1:" pswd="$pswd1:">
-			<method>DELETE</method>
-			<ruri>$addressbookpath1:/</ruri>
-		</request>
-		<request user="$userid1:" pswd="$pswd1:">
+	<end>
+		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
 			<ruri>$notificationpath2:/</ruri>
 		</request>
+	</end>
 	</start>
 	
 	<test-suite name='Read-write addressbook' ignore='yes'>
@@ -830,10 +827,10 @@
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
-			<ruri>$notificationpath3:/</ruri>
-			<ruri>$notificationpath4:/</ruri>
 		</request>
 	</end>
 	

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-unshare.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-unshare.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-unshare.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -27,21 +27,16 @@
 	</require-feature>
 
 	<start>
-		<request user="$userid1:" pswd="$pswd1:">
-			<method>DELETE</method>
-			<ruri>$addressbookpath1:/</ruri>
-		</request>
-		<request user="$userid1:" pswd="$pswd1:">
+		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
-		</request>
-		<request user="$userid2:" pswd="$pswd2:">
-			<method>DELETEALL</method>
 			<ruri>$notificationpath2:/</ruri>
 		</request>
 	</start>
 	
-	<test-suite name='Set up share' ignore='no'>
+	<test-suite name='share addressbook, sharee decline' ignore='no'>
 		<test name='1' ignore='no'>
 			<description>POST invitation</description>
 			<request print-response='no'>
@@ -49,7 +44,7 @@
 				<ruri>$addressbookpath1:/</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/setup/1.xml</filepath>
+					<filepath>Resource/CardDAV/sharing/setup/8.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
@@ -69,7 +64,7 @@
 					<callback>xmlDataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/CardDAV/sharing/setup/2.xml</value>
+						<value>Resource/CardDAV/sharing/setup/9.xml</value>
 					</arg>
 					<arg>
 						<name>filter</name>
@@ -82,6 +77,13 @@
 					<variable>$inviteuid:</variable>
 				</grabelement>
 			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
 		</test>
 		<test name='3'>
 			<description>Sharee replies ACCEPTED</description>
@@ -126,7 +128,7 @@
 					<callback>xmlDataMatch</callback>
 					<arg>
 						<name>filepath</name>
-						<value>Resource/CardDAV/sharing/setup/5.xml</value>
+						<value>Resource/CardDAV/sharing/setup/10.xml</value>
 					</arg>
 					<arg>
 						<name>filter</name>
@@ -156,25 +158,212 @@
 					</arg>
 				</verify>
 			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
 		</test>
+		<test name='6' ignore='no'>
+			<description>Sharee replies DECLINED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/unshare/shareedecline/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$shareeaddressbook:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/1.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
-	
-	<test-suite name='Delete' ignore='no'>
-		<test name='1'>
-			<description>Sharer adds event</description>
+
+	<test-suite name='reshare addressbook, sharee delete' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
 			<request print-response='no'>
-				<method>PUT</method>
-				<ruri>$addressbookpath1:/1.vcf</ruri>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
 				<data>
-					<content-type>text/vcard; charset=utf-8</content-type>
-					<filepath>Resource/CardDAV/sharing/unshare/shareedelete/1.vcf</filepath>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/8.xml</filepath>
 				</data>
 				<verify>
 					<callback>statusCode</callback>
 				</verify>
 			</request>
 		</test>
-		<test name='2' ignore='no'>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/9.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareeaddressbook:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/10.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/6.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
 			<description>Sharee deletes shared addressbook</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>DELETE</method>
@@ -188,7 +377,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='3' ignore='no'>
+		<test name='7' ignore='no'>
 			<description>No more shared addressbook</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
 				<method>PROPFIND</method>
@@ -210,38 +399,1869 @@
 				</verify>
 			</request>
 		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/1.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='reshare addressbook, sharee delete addressbook group' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/8.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/9.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareeaddressbook:</variable>
+				</grabelement>
+			</request>
+		</test>
 		<test name='4' ignore='no'>
-			<description>Sharer still has addressbook data</description>
+			<description>Check accept status</description>
 			<request print-response='no'>
 				<method>PROPFIND</method>
 				<ruri>$addressbookpath1:/</ruri>
 				<header>
 					<name>Depth</name>
-					<value>1</value>
+					<value>0</value>
 				</header>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
-					<filepath>Resource/Common/PROPFIND/count.xml</filepath>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
 				</data>
 				<verify>
-					<callback>multistatusItems</callback>
+					<callback>xmlDataMatch</callback>
 					<arg>
-						<name>count</name>
-						<value>1</value>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/10.xml</value>
 					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
 				</verify>
 			</request>
 		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/6.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sharee deletes shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$shareeaddressbook:/addressbook.vcf</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$shareeaddressbook:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/1.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
 	</test-suite>
 
+	<test-suite name='reshare addressbook, sharer uninvite' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/8.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/9.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareeaddressbook:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/10.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/6.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>POST uninvitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/unshare/shareruninvite/1.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$shareeaddressbook:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareruninvite/2.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='reshare addressbook, sharer delete' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/8.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/9.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/3.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareeaddressbook:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/10.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/6.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>sharer deletes address book</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$shareeaddressbook:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareruninvite/2.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='create and share group, sharee decline' ignore='no'>
+		<test name='0' ignore='no'>
+			<description>cleanup and initialize</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>DELETEALL</method>
+				<ruri>$addressbookhome1:/</ruri>
+				<ruri>$addressbookhome2:/</ruri>
+				<ruri>$notificationpath1:/</ruri>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>PUT</method>
+				<ruri>$addressbookpath1:/1.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/1.vcf</filepath>
+				</data>
+			</request>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>PUT</method>
+				<ruri>$addressbookpath1:/2.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/2.vcf</filepath>
+				</data>
+			</request>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>PUT</method>
+				<ruri>$addressbookpath1:/3.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/3.vcf</filepath>
+				</data>
+			</request>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>PUT</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/g123.vcf</filepath>
+				</data>
+			</request>
+		</test>
+
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/12.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareegroup:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/14.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/15.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sharee replies DECLINED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/unshare/shareedecline/2.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/1.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>	
+	<test-suite name='reshare group, sharee delete addressbook' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/12.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareegroup:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/14.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/15.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sharee deletes shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>	
+	<test-suite name='rehare group, sharee delete group' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/12.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareegroup:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/14.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/15.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sharee deletes shared group</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$shareegroup:</ruri>
+				<header>
+					<name>Depth</name>
+					<value>infinity</value>
+				</header>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>	
+	<test-suite name='reshare group, sharer uninvite' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/12.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareegroup:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/14.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/15.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>Sharee replies DECLINED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/unshare/shareedecline/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareedecline/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>	
+	<test-suite name='reshare group, sharer delete group' ignore='no'>
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/12.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareegroup:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/14.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/15.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>sharer deletes address book</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareruninvite/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>	
+	<test-suite name='recreate and share group, sharer delete addressbook' ignore='no'>
+		<test name='0' ignore='no'>
+			<request user="$userid1:" pswd="$pswd1:">
+				<method>PUT</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/vcard; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/access/setup/g123.vcf</filepath>
+				</data>
+			</request>
+		</test>
+
+		<test name='1' ignore='no'>
+			<description>POST invitation</description>
+			<request print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/11.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/12.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Sharee replies ACCEPTED</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>POST</method>
+				<ruri>$addressbookhome2:/</ruri>
+				<data substitutions='yes'>
+					<content-type>application/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/13.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/7.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{DAV:}href</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{DAV:}href</name>
+					<variable>$shareegroup:</variable>
+				</grabelement>
+			</request>
+		</test>
+		<test name='4' ignore='no'>
+			<description>Check accept status</description>
+			<request print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookpath1:/g123.vcf</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/CardDAV/sharing/setup/4.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/14.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Check Sharer notification collection</description>
+			<request>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath1:/</ruri>
+			</request>
+			<request print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath1:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/setup/15.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>DELETE</method>
+				<ruri>$notificationpath1:/$inviteuid:-reply</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6' ignore='no'>
+			<description>sharer deletes address book</description>
+			<request print-response='no'>
+				<method>DELETE</method>
+				<ruri>$addressbookpath1:/</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='7' ignore='no'>
+			<description>No more shared addressbook</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>PROPFIND</method>
+				<ruri>$addressbookhome2:/$userid1:/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/resourcetype.xml</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+					<arg>
+						<name>status</name>
+						<value>404</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='8'>
+			<description>Check Sharee notification collection</description>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>WAITCOUNT 1</method>
+				<ruri>$notificationpath2:/</ruri>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>GETNEW</method>
+				<ruri>$notificationpath2:/</ruri>
+				<verify>
+					<callback>xmlDataMatch</callback>
+					<arg>
+						<name>filepath</name>
+						<value>Resource/CardDAV/sharing/unshare/shareruninvite/3.xml</value>
+					</arg>
+					<arg>
+						<name>filter</name>
+						<value>{http://calendarserver.org/ns/}dtstamp</value>
+						<value>{http://calendarserver.org/ns/}uid</value>
+					</arg>
+				</verify>
+				<grabelement>
+					<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name>
+					<variable>$inviteuid:</variable>
+				</grabelement>
+			</request>
+			<request user="$userid2:" pswd="$pswd2:" print-response='no'>
+				<method>DELETE</method>
+				<ruri>$notificationpath2:/$inviteuid:</ruri>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>	
 	<end>
 		<request user="$useradmin:" pswd="$pswdadmin:">
 			<method>DELETEALL</method>
-			<ruri>$addressbookpath1:/</ruri>
+			<ruri>$addressbookhome1:/</ruri>
+			<ruri>$addressbookhome2:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
 			<ruri>$notificationpath2:/</ruri>
-			<ruri>$notificationpath3:/</ruri>
-			<ruri>$notificationpath4:/</ruri>
 		</request>
 	</end>
 

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml	2013-07-29 02:16:44 UTC (rev 11562)
@@ -1682,11 +1682,7 @@
 			<method>DELETEALL</method>
 			<ruri>$addressbookhome1:/</ruri>
 			<ruri>$addressbookhome2:/</ruri>
-			<ruri>$addressbookhome3:/</ruri>
-			<ruri>$addressbookhome4:/</ruri>
 			<ruri>$notificationpath1:/</ruri>
-			<ruri>$notificationpath2:/</ruri>
-			<ruri>$notificationpath3:/</ruri>
 			<ruri>$notificationpath4:/</ruri>
 		</request>
 	</end>

Modified: CalendarServer/trunk/twistedcaldav/resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/resource.py	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2013-07-29 02:16:44 UTC (rev 11562)
@@ -466,7 +466,7 @@
                     customxml.SharedURL.qname(),
                 )
 
-            elif config.Sharing.AddressBooks.Enabled and self.isAddressBookCollection() and not self.isDirectoryBackedAddressBookCollection():
+            elif config.Sharing.AddressBooks.Enabled and (self.isAddressBookCollection() or self.isGroup()) and not self.isDirectoryBackedAddressBookCollection():
                 baseProperties += (
                     customxml.Invite.qname(),
                     customxml.AllowedSharingModes.qname(),
@@ -649,7 +649,7 @@
         elif qname == customxml.Invite.qname():
             if config.Sharing.Enabled and (
                 config.Sharing.Calendars.Enabled and self.isCalendarCollection() or
-                config.Sharing.AddressBooks.Enabled and self.isAddressBookCollection() and not self.isDirectoryBackedAddressBookCollection()
+                config.Sharing.AddressBooks.Enabled and (self.isAddressBookCollection() or self.isGroup()) and not self.isDirectoryBackedAddressBookCollection()
             ):
                 result = (yield self.inviteProperty(request))
                 returnValue(result)
@@ -657,7 +657,7 @@
         elif qname == customxml.AllowedSharingModes.qname():
             if config.Sharing.Enabled and config.Sharing.Calendars.Enabled and self.isCalendarCollection():
                 returnValue(customxml.AllowedSharingModes(customxml.CanBeShared()))
-            elif config.Sharing.Enabled and config.Sharing.AddressBooks.Enabled and self.isAddressBookCollection() and not self.isDirectoryBackedAddressBookCollection():
+            elif config.Sharing.Enabled and config.Sharing.AddressBooks.Enabled and (self.isAddressBookCollection() or self.isGroup()) and not self.isDirectoryBackedAddressBookCollection():
                 returnValue(customxml.AllowedSharingModes(customxml.CanBeShared()))
 
         elif qname == customxml.SharedURL.qname():

Modified: CalendarServer/trunk/twistedcaldav/sharing.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/sharing.py	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalendarServer/trunk/twistedcaldav/sharing.py	2013-07-29 02:16:44 UTC (rev 11562)
@@ -103,7 +103,11 @@
                     invitations = yield original.validateInvites(request)
 
                     ownerPrincipal = (yield original.ownerPrincipal(request))
-                    owner = ownerPrincipal.principalURL()
+                    # FIXME:  use urn:uuid in all cases
+                    if self.isCalendarCollection():
+                        owner = ownerPrincipal.principalURL()
+                    else:
+                        owner = "urn:uuid:" + ownerPrincipal.principalUID()
                     ownerCN = ownerPrincipal.displayName()
 
                     returnValue(customxml.Invite(
@@ -263,7 +267,7 @@
 
 
     @inlineCallbacks
-    def removeShareeCollection(self, request):
+    def removeShareeResource(self, request):
 
         sharee = self.principalForUID(self._share.shareeUID())
 
@@ -693,7 +697,11 @@
     def sendInviteNotification(self, invitation, request, notificationState=None, displayName=None):
 
         ownerPrincipal = (yield self.ownerPrincipal(request))
-        owner = ownerPrincipal.principalURL()
+        # FIXME:  use urn:uuid in all cases
+        if self.isCalendarCollection():
+            owner = ownerPrincipal.principalURL()
+        else:
+            owner = "urn:uuid:" + ownerPrincipal.principalUID()
         ownerCN = ownerPrincipal.displayName()
         hosturl = (yield self.canonicalURL(request))
 
@@ -1034,7 +1042,8 @@
         @rtype: L{Share} or L{NoneType}
         """
         # Find a matching share
-        if not storeObject or storeObject.owned():
+        # use "storeObject.shareUID is not None" to prevent partially shared address books form getting a share
+        if storeObject is None or storeObject.owned():
             returnValue(None)
 
         # Get the shared object's URL - we may need to fake this if the sharer principal is missing or disabled
@@ -1082,7 +1091,7 @@
     @inlineCallbacks
     def _shareForUID(self, shareUID, request):
 
-        if shareUID:  # shareUID may be None for not fully shared addressbooks
+        if shareUID is not None:  # shareUID may be None for partially shared addressbooks
             shareeStoreObject = yield self._newStoreHome.objectWithShareUID(shareUID)
             if shareeStoreObject:
                 share = yield self._shareForStoreObject(shareeStoreObject, request)
@@ -1262,7 +1271,7 @@
         Remove a shared collection but do not send a decline back. Return the
         current display name of the shared collection.
         """
-        # FIXME: This is only works for calendar
+        # FIXME: only works for calendar
         shareURL = joinURL(self.url(), share.name())
         shared = (yield request.locateResource(shareURL))
         displayname = shared.displayName()
@@ -1330,12 +1339,16 @@
         notificationUID = "%s-reply" % (replytoUID,)
         xmltype = customxml.InviteReply()
 
-        # Prefer mailto:, otherwise use principal URL
-        for cua in shareePrincipal.calendarUserAddresses():
-            if cua.startswith("mailto:"):
-                break
+        # FIXME:  use urn:uuid in all cases
+        if self._newStoreHome and self._newStoreHome._homeType == EADDRESSBOOKTYPE:
+            cua = "urn:uuid:" + shareePrincipal.principalUID()
         else:
-            cua = shareePrincipal.principalURL()
+            # Prefer mailto:, otherwise use principal URL
+            for cua in shareePrincipal.calendarUserAddresses():
+                if cua.startswith("mailto:"):
+                    break
+            else:
+                cua = shareePrincipal.principalURL()
 
         commonName = shareePrincipal.displayName()
         record = shareePrincipal.record

Modified: CalendarServer/trunk/twistedcaldav/storebridge.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/storebridge.py	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalendarServer/trunk/twistedcaldav/storebridge.py	2013-07-29 02:16:44 UTC (rev 11562)
@@ -60,8 +60,7 @@
     AttendeeAllowedError, ResourceDeletedError, InvalidAttachmentOperation, \
     ShareeAllowedError
 from txdav.carddav.iaddressbookstore import KindChangeNotAllowedError, \
-    GroupWithUnsharedAddressNotAllowedError, GroupForSharedAddressBookDeleteNotAllowedError, \
-    SharedGroupDeleteNotAllowedError
+    GroupWithUnsharedAddressNotAllowedError
 from txdav.common.datastore.sql_tables import _BIND_MODE_READ, _BIND_MODE_WRITE, \
     _BIND_MODE_DIRECT, _BIND_STATUS_ACCEPTED
 from txdav.common.icommondatastore import NoSuchObjectResourceError, \
@@ -459,7 +458,7 @@
         # Check sharee collection first
         if self.isShareeResource():
             log.debug("Removing shared collection %s" % (self,))
-            yield self.removeShareeCollection(request)
+            yield self.removeShareeResource(request)
             returnValue(NO_CONTENT)
 
         log.debug("Deleting collection %s" % (self,))
@@ -2974,7 +2973,35 @@
         return FORBIDDEN
 
 
+    @inlineCallbacks
+    def makeChild(self, name):
+        """
+        call super and provision group share
+        """
+        abObjectResource = yield super(AddressBookCollectionResource, self).makeChild(name)
+        if abObjectResource.exists() and abObjectResource._newStoreObject.shareUID() is not None:
+            abObjectResource = yield self.parentResource().provisionShare(abObjectResource)
+        returnValue(abObjectResource)
 
+
+    @inlineCallbacks
+    def storeRemove(self, request):
+        """
+        handle handle remove of partially shared addressbook, else call super
+        """
+        if self.isShareeResource() and self._newStoreObject.shareUID() is None:
+            log.debug("Removing shared collection %s" % (self,))
+            for childname in (yield self.listChildren()):
+                child = (yield request.locateChildResource(self, childname))
+                if child.isShareeResource():
+                    yield child.storeRemove(request)
+
+            returnValue(NO_CONTENT)
+
+        returnValue((yield super(AddressBookCollectionResource, self).storeRemove(request)))
+
+
+
 class GlobalAddressBookCollectionResource(GlobalAddressBookResource, AddressBookCollectionResource):
     """
     Wrapper around a L{txdav.carddav.iaddressbook.IAddressBook}.
@@ -3041,8 +3068,17 @@
         """
         Remove this address book object
         """
+
         # Handle sharing
-        if self.isShared():
+        if self.isShareeResource():
+            log.debug("Removing shared resource %s" % (self,))
+            yield self.removeShareeResource(request)
+            returnValue(NO_CONTENT)
+        elif self._newStoreObject.isGroupForSharedAddressBook():
+            abCollectionResource = (yield request.locateResource(parentForURL(request.uri)))
+            returnValue((yield abCollectionResource.storeRemove(request)))
+
+        elif self.isShared():
             yield self.downgradeFromShare(request)
 
         response = (
@@ -3166,23 +3202,16 @@
 
     @inlineCallbacks
     def http_DELETE(self, request):
+        """
+        Override http_DELETE handle shared group deletion without fromParent=[davxml.Unbind()]
+        """
+        if (self.isShareeResource() or
+            self.exists() and self._newStoreObject.isGroupForSharedAddressBook()):
+            returnValue((yield self.storeRemove(request)))
 
-        try:
-            returnValue((yield super(AddressBookObjectResource, self).http_DELETE(request)))
+        returnValue((yield super(AddressBookObjectResource, self).http_DELETE(request)))
 
-        except GroupForSharedAddressBookDeleteNotAllowedError:
-            raise HTTPError(StatusResponse(
-                FORBIDDEN,
-                "Sharee cannot delete the group for a shared address book",)
-            )
 
-        except SharedGroupDeleteNotAllowedError:
-            raise HTTPError(StatusResponse(
-                FORBIDDEN,
-                "Sharee cannot delete a shared group",)
-            )
-
-
     @inlineCallbacks
     def accessControlList(self, request, *a, **kw):
         """

Modified: CalendarServer/trunk/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/sql.py	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalendarServer/trunk/txdav/carddav/datastore/sql.py	2013-07-29 02:16:44 UTC (rev 11562)
@@ -45,9 +45,8 @@
 from txdav.base.propertystore.base import PropertyName
 from txdav.base.propertystore.sql import PropertyStore
 from txdav.carddav.iaddressbookstore import IAddressBookHome, IAddressBook, \
-    IAddressBookObject, GroupForSharedAddressBookDeleteNotAllowedError, \
-    GroupWithUnsharedAddressNotAllowedError, KindChangeNotAllowedError, \
-    SharedGroupDeleteNotAllowedError
+    IAddressBookObject, GroupWithUnsharedAddressNotAllowedError, \
+    KindChangeNotAllowedError
 from txdav.common.datastore.sql import CommonHome, CommonHomeChild, \
     CommonObjectResource, EADDRESSBOOKTYPE, SharingMixIn, SharingInvitation
 from txdav.common.datastore.sql_legacy import PostgresLegacyABIndexEmulator
@@ -545,8 +544,8 @@
 
             # account for fully-shared address book group
             if self.fullyShared():
-                if not self._fullySharedAddressBookGroupName() in objectNames:
-                    objectNames.append(self._fullySharedAddressBookGroupName())
+                if not self._groupForSharedAddressBookName() in objectNames:
+                    objectNames.append(self._groupForSharedAddressBookName())
             self._objectNames = sorted(objectNames)
 
         returnValue(self._objectNames)
@@ -582,12 +581,12 @@
                       Where=obj.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookResourceID"),)
 
 
-    def _fullySharedAddressBookGroupRow(self):  #@NoSelf
+    def _groupForSharedAddressBookRow(self):  #@NoSelf
         return [
             self._resourceID,  # obj.ADDRESSBOOK_HOME_RESOURCE_ID,
             self._resourceID,  # obj.RESOURCE_ID,
-            self._fullySharedAddressBookGroupName(),  # obj.RESOURCE_NAME, shared name is UID and thus avoids collisions
-            self._fullySharedAddressBookGroupUID(),  # obj.UID, shared name is uuid
+            self._groupForSharedAddressBookName(),  # obj.RESOURCE_NAME, shared name is UID and thus avoids collisions
+            self._groupForSharedAddressBookUID(),  # obj.UID, shared name is uuid
             _ABO_KIND_GROUP,  # obj.KIND,
             "1",  # obj.MD5, unused
             "1",  # Len(obj.TEXT), unused
@@ -596,20 +595,20 @@
         ]
 
 
-    def _fullySharedAddressBookGroupName(self):
+    def _groupForSharedAddressBookName(self):
         return self.ownerHome().addressbook().name() + ".vcf"
 
 
-    def _fullySharedAddressBookGroupUID(self):
-        return self.name()
+    def _groupForSharedAddressBookUID(self):
+        return self.shareUID()
 
 
     @inlineCallbacks
-    def _fullySharedAddressBookGroupComponent(self):
+    def _groupForSharedAddressBookComponent(self):
 
         n = self.shareeName()
         fn = n
-        uid = self.name()
+        uid = self._groupForSharedAddressBookUID()
 
         #  store bridge should substitute principal name and full name
         #      owner = yield CalDAVResource.principalForUID(self.ownerHome().uid())
@@ -783,16 +782,16 @@
                     groupBindRows = yield AddressBookObject._bindForHomeIDAndAddressBookID.on(
                             home._txn, homeID=home._resourceID, addressbookID=ownerAddressBook._resourceID
                     )
-                    if groupBindRows:
-                        groupBindRow = groupBindRows[0]
-                        cachedBindStatus = groupBindRow[4]  # save off bindStatus
-                        groupBindRow[0] = _BIND_MODE_WRITE
-                        groupBindRow[3] = None  # bindName
-                        groupBindRow[4] = None  # bindStatus
-                        groupBindRow[6] = None  # bindMessage
-                        groupBindRow.insert(AddressBookObject.bindColumnCount, ownerAddressBook._resourceID)
-                        groupBindRow.insert(AddressBookObject.bindColumnCount + 1, cachedBindStatus)
-                        rows = [groupBindRow]
+                    for groupBindRow in groupBindRows:
+                        if (groupBindRow[4] == _BIND_STATUS_ACCEPTED) == bool(accepted):
+                            groupBindRow.insert(AddressBookObject.bindColumnCount, ownerAddressBook._resourceID)
+                            groupBindRow.insert(AddressBookObject.bindColumnCount + 1, groupBindRow[4])
+                            groupBindRow[0] = _BIND_MODE_WRITE
+                            groupBindRow[3] = None  # bindName
+                            groupBindRow[4] = None  # bindStatus
+                            groupBindRow[6] = None  # bindMessage
+                            rows = [groupBindRow]
+                            break
 
             if rows and queryCacher:
                 # Cache the result
@@ -859,6 +858,7 @@
             addressbook = yield home.childWithName(ownerHome.shareeAddressBookName())
             if not addressbook:
                 addressbook = yield cls.objectWithName(home, ownerHome.shareeAddressBookName(), accepted=False)
+                assert addressbook
 
             if accepted:
                 returnValue((yield addressbook.objectResourceWithID(resourceID)))
@@ -1293,6 +1293,10 @@
         return self._kind
 
 
+    def isGroupForSharedAddressBook(self):
+        return self._resourceID == self.addressbook()._resourceID
+
+
     @classmethod
     def _deleteMembersWithMemberIDAndGroupIDsQuery(cls, memberID, groupIDs):
         aboMembers = schema.ABO_MEMBERS
@@ -1309,12 +1313,13 @@
             # storebridge should already have done this
             yield self.unshare()
         else:
-            # Can't delete a share here with notification so raise.
-            if self._resourceID == self.addressbook()._resourceID:
-                raise GroupForSharedAddressBookDeleteNotAllowedError
+            # handled in storebridge as unshare, should not be here.  assert instead?
+            if self.isGroupForSharedAddressBook():
+                raise HTTPError(FORBIDDEN)
             elif self.shareUID():
-                raise SharedGroupDeleteNotAllowedError
+                raise HTTPError(FORBIDDEN)
 
+
         if not self.owned() and not self.addressbook().fullyShared():
             readWriteObjectIDs = []
             readWriteGroupIDs = yield self.addressbook().readWriteGroupIDs()
@@ -1364,19 +1369,22 @@
     @inlineCallbacks
     def readWriteAccess(self):
         assert not self.owned(), "Don't call items in owned address book"
+        yield None
 
+        #shared address book group is always read-only
+        if self.isGroupForSharedAddressBook():
+            returnValue(False)
+
         # if fully shared and rw, must be RW since sharing group read-only has no affect
         if self.addressbook().fullyShared() and self.addressbook().shareMode() == _BIND_MODE_WRITE:
-            yield None
             returnValue(True)
 
+        #otherwise, must be in a read-write group
         readWriteGroupIDs = yield self.addressbook().readWriteGroupIDs()
-        if self._resourceID in (yield self.addressbook().expandGroupIDs(self._txn, readWriteGroupIDs)):
-            returnValue(True)
+        readWriteIDs = yield self.addressbook().expandGroupIDs(self._txn, readWriteGroupIDs)
+        returnValue(self._resourceID in readWriteIDs)
 
-        returnValue(False)
 
-
     @classmethod
     def _allColumnsWithResourceIDsAnd(cls, resourceIDs, column, paramName):
         """
@@ -1439,14 +1447,14 @@
 
             if not rows and self.addressbook().fullyShared():  # perhaps add special group
                 if self._name:
-                    if self._name == self.addressbook()._fullySharedAddressBookGroupName():
-                        rows = [self.addressbook()._fullySharedAddressBookGroupRow()]
+                    if self._name == self.addressbook()._groupForSharedAddressBookName():
+                        rows = [self.addressbook()._groupForSharedAddressBookRow()]
                 elif self._uid:
-                    if self._uid == (yield self.addressbook()._fullySharedAddressBookGroupUID()):
-                        rows = [self.addressbook()._fullySharedAddressBookGroupRow()]
+                    if self._uid == (yield self.addressbook()._groupForSharedAddressBookUID()):
+                        rows = [self.addressbook()._groupForSharedAddressBookRow()]
                 elif self._resourceID:
-                    if self._resourceID == self.addressbook()._resourceID:
-                        rows = [self.addressbook()._fullySharedAddressBookGroupRow()]
+                    if self.isGroupForSharedAddressBook():
+                        rows = [self.addressbook()._groupForSharedAddressBookRow()]
         else:
             acceptedGroupIDs = yield self.addressbook().acceptedGroupIDs()
             allowedObjectIDs = yield self.addressbook().expandGroupIDs(self._txn, acceptedGroupIDs)
@@ -1554,7 +1562,7 @@
         if addressbook.owned() or addressbook.fullyShared():
             rows = yield super(AddressBookObject, cls)._allColumnsWithParent(addressbook)
             if addressbook.fullyShared():
-                rows.append(addressbook._fullySharedAddressBookGroupRow())
+                rows.append(addressbook._groupForSharedAddressBookRow())
         else:
             acceptedGroupIDs = yield addressbook.acceptedGroupIDs()
             allowedObjectIDs = yield addressbook.expandGroupIDs(addressbook._txn, acceptedGroupIDs)
@@ -1578,8 +1586,8 @@
 
         if addressbook.owned() or addressbook.fullyShared():
             rows = yield super(AddressBookObject, cls)._allColumnsWithParentAndNames(addressbook, names)
-            if addressbook.fullyShared() and addressbook._fullySharedAddressBookGroupName() in names:
-                rows.append(addressbook._fullySharedAddressBookGroupRow())
+            if addressbook.fullyShared() and addressbook._groupForSharedAddressBookName() in names:
+                rows.append(addressbook._groupForSharedAddressBookRow())
         else:
             acceptedGroupIDs = yield addressbook.acceptedGroupIDs()
             allowedObjectIDs = yield addressbook.expandGroupIDs(addressbook._txn, acceptedGroupIDs)
@@ -1671,7 +1679,7 @@
             if self._uid != new_uid:
                 raise InvalidUIDError("Cannot change the UID in an existing resource.")
         else:
-            # for not fully shared addressbooks, cannot use name that already exists in owner
+            # for partially shared addressbooks, cannot use name that already exists in owner
             if not self.owned() and not self.addressbook().fullyShared():
                 nameElsewhere = (yield self.ownerHome().addressbook().addressbookObjectWithName(self.name()))
                 if nameElsewhere is not None:
@@ -1957,8 +1965,8 @@
 
         if self._component is None:
 
-            if not self.owned() and  self._resourceID == self.addressbook()._resourceID:
-                component = yield self.addressbook()._fullySharedAddressBookGroupComponent()
+            if self.isGroupForSharedAddressBook():
+                component = yield self.addressbook()._groupForSharedAddressBookComponent()
             else:
                 text = yield self._text()
 
@@ -2387,7 +2395,7 @@
             # safer to just invalidate in all cases rather than calculate when to invalidate
             queryCacher = self._txn._queryCacher
             if queryCacher:
-                cacheKey = queryCacher.keyForObjectWithName(shareeView.viewerHome()._resourceID, self.shareeName())
+                cacheKey = queryCacher.keyForObjectWithName(shareeView.viewerHome()._resourceID, self.addressbook().shareeName())
                 queryCacher.invalidateAfterCommit(self._txn, cacheKey)
 
             shareeView._name = bindNameRows[0][0]

Modified: CalendarServer/trunk/txdav/carddav/iaddressbookstore.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/iaddressbookstore.py	2013-07-25 23:03:22 UTC (rev 11561)
+++ CalendarServer/trunk/txdav/carddav/iaddressbookstore.py	2013-07-29 02:16:44 UTC (rev 11562)
@@ -26,9 +26,7 @@
 
 __all__ = [
     # Classes
-    "GroupForSharedAddressBookDeleteNotAllowedError",
     "GroupWithUnsharedAddressNotAllowedError",
-    "SharedGroupDeleteNotAllowedError",
     "KindChangeNotAllowedError",
     "IAddressBookTransaction",
     "IAddressBookHome",
@@ -37,13 +35,7 @@
 ]
 
 
-class GroupForSharedAddressBookDeleteNotAllowedError(CommonStoreError):
-    """
-    Sharee cannot delete the group for a shared address book.
-    """
 
-
-
 class GroupWithUnsharedAddressNotAllowedError(CommonStoreError):
     """
     Sharee cannot add unshared group members.
@@ -58,12 +50,6 @@
 
 
 
-class SharedGroupDeleteNotAllowedError(CommonStoreError):
-    """
-    Sharee cannot delete a shared group.
-    """
-
-
 class IAddressBookTransaction(ICommonTransaction):
     """
     Transaction interface that addressbook stores must provide.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130728/e811242e/attachment-0001.html>


More information about the calendarserver-changes mailing list